The TELEMAC-MASCARET system  trunk
integer_to_double.f
Go to the documentation of this file.
1 ! ****************************
2  SUBROUTINE integer_to_double
3 ! ****************************
4 !
5  &(op,ix,x,n,qt)
6 !
7 !***********************************************************************
8 ! BIEF V7P0 13/01/2014
9 !***********************************************************************
10 !
11 !brief Retrieving a double precision array from an I8 integer.
12 !
13 !warning See also double_to_integer.
14 !
15 !history J-M HERVOUET (EDF R&D, LNHE)
16 !+ 13/01/2014
17 !+ V7P0
18 !+ First version.
19 !
20 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
21 !| IX |-->| INTEGER ARRAY CODING THE REAL ARRAY
22 !| N |-->| NUMBER OF POINTS IN THE ARRAYS X AND IX
23 !| OP |-->| IF '=', X REINITIALISED, IF '+' ADDITION TO X
24 !| QT |-->| THE QUANTUM USED FOR CODING
25 !| X |<--| DOUBLE PRECISION ARRAY TO BE CODED
26 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
27 !
28  USE bief, ex_integer_to_double => integer_to_double
29 !
31  IMPLICIT NONE
32 !
33 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
34 !
35  INTEGER , INTENT(IN) :: N
36  INTEGER(KIND=K8), INTENT(IN) :: IX(n)
37  DOUBLE PRECISION, INTENT(IN) :: QT
38  DOUBLE PRECISION, INTENT(INOUT) :: X(n)
39  CHARACTER(LEN=1), INTENT(IN) :: OP
40 !
41 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
42 !
43  INTEGER I
44 !
45 !-----------------------------------------------------------------------
46 ! RETRIEVING THE DOUBLE PRECISION VALUE
47 !-----------------------------------------------------------------------
48 !
49  IF(op.EQ.'=') THEN
50  DO i=1,n
51  x(i)=dble(ix(i))*qt
52  ENDDO
53  ELSEIF(op.EQ.'+') THEN
54  DO i=1,n
55  x(i)=x(i)+dble(ix(i))*qt
56  ENDDO
57  ELSE
58  WRITE(lu,*) 'INTEGER_TO_DOUBLE: OPERATION ',op,' UNKNOWN'
59  CALL plante(1)
60  stop
61  ENDIF
62 !
63 !-----------------------------------------------------------------------
64 !
65  RETURN
66  END
subroutine integer_to_double(OP, IX, X, N, QT)
Definition: bief.f:3