The TELEMAC-MASCARET system
trunk
sources
utils
bief
somme2.f
Go to the documentation of this file.
1
! ********************************
2
DOUBLE PRECISION
FUNCTION
somme2
3
! ********************************
4
!
5
&( x , npx )
6
!
7
!***********************************************************************
8
! BIEF V6P1 21/08/2010
9
!***********************************************************************
10
!
11
!brief SUMS THE COMPONENTS OF A VECTOR WHILE MINIMISING
12
!+ THE TRUNCATION ERRORS.+
13
!
14
!reference GOLDBERG, DAVID 1991. WHAT EVERY COMPUTER SCIENTIST
15
!+ SHOULD KNOW ABOUT FLOATING-POINT ARITHMETIC, ACM COMPUTING
16
!+ SURVEYS, 23(1), PP5-48 (CORRIGENDUM, COMPUTING SURVEYS, 1991, 23(3))
17
!+(ARTICLE REPRODUCED IN THE NUMERICAL COMPUTATION GUIDE OF SUN
18
!+ MICROSYSTEM, HTTP://DOCS.SUN.COM )
19
!reference KNUTH, D.E. 1981. THE ART OF PROGRAMMING.
20
!+ ADDISON-WESLEY, READING, MASS., VOL. II, 2ND ED.
21
!+ PROOF P 572
22
!
23
!history A. DESITTER (NAG)
24
!+ 08/12/98
25
!+ V5P1
26
!+
27
!
28
!history N.DURAND (HRW), S.E.BOURBAN (HRW)
29
!+ 13/07/2010
30
!+ V6P0
31
!+ Translation of French comments within the FORTRAN sources into
32
!+ English comments
33
!
34
!history N.DURAND (HRW), S.E.BOURBAN (HRW)
35
!+ 21/08/2010
36
!+ V6P0
37
!+ Creation of DOXYGEN tags for automated documentation and
38
!+ cross-referencing of the FORTRAN sources
39
!
40
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
41
!| NPX |-->| SIZE OF X
42
!| X |-->| ARRAY TO SUM
43
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
44
!
45
USE
declarations_special
46
IMPLICIT NONE
47
!
48
!+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
49
!
50
INTEGER
,
INTENT(IN)
:: NPX
51
!
52
DOUBLE PRECISION
,
INTENT(IN)
:: X(*)
53
!
54
!+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
55
!
56
INTEGER
I
57
DOUBLE PRECISION
C,Y,T
58
!
59
!-----------------------------------------------------------------------
60
! KAHAN SUMMATION FORMULA
61
!
62
somme2
= x(1)
63
c = 0.d0
64
DO
i = 2 , npx
65
y = x(i) - c
66
t =
somme2
+ y
67
c = (t -
somme2
) - y
68
somme2
= t
69
ENDDO
70
!
71
!-----------------------------------------------------------------------
72
!
73
RETURN
74
END
declarations_special
Definition:
declarations_special.F:3
somme2
double precision function somme2(X, NPX)
Definition:
somme2.f:7