integer_to_double.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\utils\bief\integer_to_double.f
00002 !
00049                      SUBROUTINE INTEGER_TO_DOUBLE
00050 !                    ****************************
00051 !
00052      &(OP,IX,X,N,QT)
00053 !
00054 !***********************************************************************
00055 ! BIEF   V7P0                                   13/01/2014
00056 !***********************************************************************
00057 !
00058 !
00059 !
00060 !
00061 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00062 !| IX             |-->| INTEGER ARRAY CODING THE REAL ARRAY
00063 !| N              |-->| NUMBER OF POINTS IN THE ARRAYS X AND IX
00064 !| OP             |-->| IF '=', X REINITIALISED, IF '+' ADDITION TO X
00065 !| QT             |-->| THE QUANTUM USED FOR CODING
00066 !| X              |<--| DOUBLE PRECISION ARRAY TO BE CODED
00067 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00068 !
00069       USE DECLARATIONS_SPECIAL
00070       USE BIEF, EX_INTEGER_TO_DOUBLE => INTEGER_TO_DOUBLE
00071 !
00072       IMPLICIT NONE
00073       INTEGER LNG,LU
00074       COMMON/INFO/LNG,LU
00075 !
00076 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00077 !
00078       INTEGER         , INTENT(IN)    :: N
00079       INTEGER(KIND=K8), INTENT(IN)    :: IX(N)
00080       DOUBLE PRECISION, INTENT(IN)    :: QT
00081       DOUBLE PRECISION, INTENT(INOUT) :: X(N)
00082       CHARACTER(LEN=1), INTENT(IN)    :: OP
00083 !
00084 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00085 !
00086       INTEGER I
00087 !
00088 !-----------------------------------------------------------------------
00089 !     RETRIEVING THE DOUBLE PRECISION VALUE
00090 !-----------------------------------------------------------------------
00091 !
00092       IF(OP.EQ.'=') THEN
00093         DO I=1,N
00094           X(I)=IX(I)*QT
00095         ENDDO
00096       ELSEIF(OP.EQ.'+') THEN
00097         DO I=1,N
00098           X(I)=X(I)+IX(I)*QT
00099         ENDDO
00100       ELSE
00101         IF(LNG.EQ.1) THEN
00102           WRITE(LU,*) 'INTEGER_TO_DOUBLE : OPERATION ',OP,' INCONNUE'
00103         ENDIF
00104         IF(LNG.EQ.2) THEN
00105           WRITE(LU,*) 'INTEGER_TO_DOUBLE: OPERATION ',OP,' UNKNOWN'
00106         ENDIF
00107         CALL PLANTE(1)
00108         STOP
00109       ENDIF
00110 !
00111 !-----------------------------------------------------------------------
00112 !
00113       RETURN
00114       END

Generated on Fri Aug 31 2013 18:12:58 by S.E.Bourban (HRW) using doxygen 1.7.0