lecdon_split_outputpoints.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\sisyphe\lecdon_split_outputpoints.f
00002 !
00043                   SUBROUTINE LECDON_SPLIT_OUTPUTPOINTS
00044 !                 ************************************
00045 !
00046      &(INT_LIST, POINT_ARRAY, FULLOUTPUT)
00047 !
00048 !***********************************************************************
00049 ! SISYPHE   V6P2                                  21/08/2010
00050 !***********************************************************************
00051 !
00052 !
00053 !
00054 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00055 !| INT_LIST       |<->| STRING OF INTEGER NUMBERS
00056 !| POINT_ARRAY    |<->| ARRAY with same INTEGERS
00057 !| FULLOUTPUT     |<->| if FULLOUTPUT IS FOUND THIS IS TRUE
00058 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00059 !
00060       IMPLICIT NONE
00061       INTEGER LNG,LU
00062       COMMON/INFO/LNG,LU
00063 !
00064 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00065 !
00066       CHARACTER(LEN=*), INTENT(INOUT) :: INT_LIST
00067       INTEGER, INTENT(INOUT) :: POINT_ARRAY(100)
00068       LOGICAL, INTENT(INOUT) :: FULLOUTPUT
00069 !
00070 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00071 !
00072 ! INTERNAL VARIABLES:
00073 !
00074       CHARACTER C(2)
00075       CHARACTER(LEN=8) MOT(100)
00076       INTEGER I,J,LONG,I1,I2,NMOT
00077 !
00078       INTRINSIC LEN
00079 !
00080 !-----------------------------------------------------------------------
00081 !
00082 !  RECOGNISED SEPARATORS IN 'INT_LIST'
00083 !
00084       C(1) = ';'
00085       C(2) = '|'
00086       LONG = LEN(INT_LIST)
00087       IF(LONG.EQ.0) THEN
00088         WRITE(LU,*) 'LECDON_SPLIT STRING ERROR'
00089         CALL PLANTE(1)
00090         STOP
00091       ENDIF
00092 !
00093       DO I=1,LONG
00094         DO J=1,2
00095           IF(INT_LIST(I:I).EQ.C(J)) INT_LIST(I:I) = ' '
00096         ENDDO
00097       ENDDO
00098 !
00099 ! 'INT_LIST' NOW IS MADE UP OF WORDS SEPARATED BY WHITE SPACES
00100 !
00101       I1 = 0
00102       NMOT=0
00103 !
00104  10   CONTINUE
00105       IF(I1.GE.LONG) GOTO 30
00106       I1=I1+1
00107       IF(INT_LIST(I1:I1).EQ.' ') GOTO 10
00108 !
00109       I2=0
00110 !
00111  20   CONTINUE
00112       I2=I2+1
00113       IF(INT_LIST(I1+I2:I1+I2).NE.' ') GOTO 20
00114 !
00115       NMOT=NMOT+1
00116       MOT(NMOT)=INT_LIST(I1:I1+I2)
00117       I1=I1+I2
00118       GOTO 10
00119 !
00120 30    CONTINUE
00121 !
00122 !     Builds The POINT_ARRAY
00123 !
00124       FULLOUTPUT = .FALSE.
00125       DO J=1,100
00126         POINT_ARRAY(J) = -1
00127       ENDDO
00128       DO J=1,NMOT
00129         READ(MOT(J),* ) POINT_ARRAY(J)
00130         IF (POINT_ARRAY(J).EQ.0) FULLOUTPUT = .TRUE.
00131       ENDDO
00132 !
00133 !-----------------------------------------------------------------------
00134 !
00135       RETURN
00136       END

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