The TELEMAC-MASCARET system  trunk
twosum.f
Go to the documentation of this file.
1 ! ******************
2  SUBROUTINE twosum
3 ! ******************
4 !
5  &(a,b,x,y)
6 !
7 !***********************************************************************
8 ! BIEF V7P3 24/02/2016
9 !***********************************************************************
10 !
11 !brief SCALAR SUM AND CALCULATE ROUNDING ERROR.
12 !
13 !history R.NHEILI (Univerte de Perpignan, DALI)
14 !+ 24/02/2016
15 !+ V7P3
16 !+
17 !
18 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
19 !| A,B |-->| DOUBLE PRECISION SCALAR
20 !| X |<--| DOUBLE PRECISION SUM RESULT
21 !| Y |<--| DOUBLE PRECISION ROUNDING ERROR
22 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
23 !
25  IMPLICIT NONE
26 !
27 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
28 !
29  DOUBLE PRECISION, INTENT(IN) :: A,B
30  DOUBLE PRECISION, INTENT(OUT) :: X,Y
31 !
32 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
33 !
34  DOUBLE PRECISION Z, XOUT
35 !
36 !-----------------------------------------------------------------------
37 !
38  xout=a+b
39  z=xout-a
40  y=(a-(xout-z))+(b-z)
41  x = xout
42 !
43 !
44 !-----------------------------------------------------------------------
45 !
46  END
subroutine twosum(A, B, X, Y)
Definition: twosum.f:7