5 &( chaine , nbre , chainehyd, ind_sed, yes2d, grap_print2d)
30 INTEGER,
INTENT(IN) :: NBRE
31 INTEGER,
INTENT(IN) :: IND_SED
32 LOGICAL,
INTENT(IN) :: YES2D
33 LOGICAL,
INTENT(IN),
OPTIONAL :: GRAP_PRINT2D
35 CHARACTER(LEN=72),
INTENT(INOUT) :: CHAINE
36 CHARACTER(LEN=72),
INTENT(INOUT) :: CHAINEHYD
43 CHARACTER(LEN=8) MOT(100)
44 CHARACTER(LEN=2) :: TOBER
45 CHARACTER(4) :: MYSTRING
46 INTEGER I,J,LONG,I1,I2,NMOT,L,KI,NUMS,NUMS_TO_NUMTR,LONG2,LONG3
53 IF(
PRESENT(grap_print2d))
THEN 54 lgrap_print2d = grap_print2d
56 lgrap_print2d = .false.
71 IF(
lng.EQ.1)
WRITE(
lu,1002)
72 IF(
lng.EQ.2)
WRITE(
lu,1003)
79 IF(chainehyd(i:i).EQ.c(j))
THEN 93 IF (i1.GE.long)
GOTO 30
95 IF (chainehyd(i1:i1).EQ.
' ')
GOTO 10
101 IF (chainehyd(i1+i2:i1+i2).NE.
' ')
GOTO 20
105 IF(
lng.EQ.1)
WRITE(
lu,1004) chainehyd
106 IF(
lng.EQ.2)
WRITE(
lu,1005) chainehyd
113 mot(nmot)=chainehyd(i1:i1+i2)
127 IF(
lng.EQ.1)
WRITE(
lu,1002)
128 IF(
lng.EQ.2)
WRITE(
lu,1003)
135 IF(chaine(i:i).EQ.c(j)) chaine(i:i) =
' ' 145 IF (i1.GE.long)
GOTO 60
147 IF (chaine(i1:i1).EQ.
' ')
GOTO 40
153 IF (chaine(i1+i2:i1+i2).NE.
' ')
GOTO 50
157 IF(
lng.EQ.1)
WRITE(
lu,1004) chaine
158 IF(
lng.EQ.2)
WRITE(
lu,1005) chaine
162 mot(nmot)=chaine(i1:i1+i2)
175 IF( mot(j)(l:l+1).EQ.
'CS' )
THEN 177 IF( mot(j)(l+2:l+2).EQ.
'*' )
THEN 178 chainehyd(long3+1:long3+3)=
' T*' 182 tober=mot(j)(l+2:l+3)
184 IF(ind_sed.EQ.1)
THEN 187 nums_to_numtr=nums+ind_sed
190 WRITE(mystring,
'(i4)') nums_to_numtr
191 chainehyd(long3+1:long3+2)=
' T' 193 chainehyd(long3+3:long3+3+(len(adjustl(mystring))-1))=
205 IF(.NOT.lgrap_print2d)
THEN 209 IF( mot(j)(l:l+1).EQ.
'CS' )
THEN 211 IF( mot(j)(l+2:l+2).EQ.
'*' )
THEN 212 chainehyd(long3+1:long3+4)=
' TA*' 216 tober=mot(j)(l+2:l+3)
218 IF(ind_sed.EQ.1)
THEN 221 nums_to_numtr=nums+ind_sed
224 WRITE(mystring,
'(i4)') nums_to_numtr
225 chainehyd(long3+1:long3+3)=
' TA' 227 chainehyd(long3+4:long3+4+(len(adjustl(mystring))-1))=
232 ELSEIF( mot(j)(l:l+2).EQ.
'SVX' )
THEN 234 IF( mot(j)(l+3:l+3).EQ.
'*' )
THEN 235 chainehyd(long3+1:long3+5)=
' NAX*' 239 tober=mot(j)(l+3:l+4)
243 IF(ind_sed.EQ.1)
THEN 246 nums_to_numtr=nums+ind_sed
249 WRITE(mystring,
'(i4)') nums_to_numtr
250 chainehyd(long3+1:long3+4)=
' NAX' 252 chainehyd(long3+5:long3+5+(len(adjustl(mystring))-1))=
257 ELSEIF( mot(j)(l:l+2).EQ.
'SVY' )
THEN 259 IF( mot(j)(l+3:l+3).EQ.
'*' )
THEN 260 chainehyd(long3+1:long3+5)=
' NAY*' 264 tober=mot(j)(l+3:l+4)
268 IF(ind_sed.EQ.1)
THEN 271 nums_to_numtr=nums+ind_sed
274 WRITE(mystring,
'(i4)') nums_to_numtr
275 chainehyd(long3+1:long3+4)=
' NAY' 277 chainehyd(long3+5:long3+5+(len(adjustl(mystring))-1))=
282 ELSEIF( mot(j)(l:l+2).EQ.
'SVZ' )
THEN 284 IF( mot(j)(l+3:l+3).EQ.
'*' )
THEN 285 chainehyd(long3+1:long3+5)=
' NAZ*' 289 tober=mot(j)(l+3:l+4)
293 IF(ind_sed.EQ.1)
THEN 296 nums_to_numtr=nums+ind_sed
299 WRITE(mystring,
'(i4)') nums_to_numtr
300 chainehyd(long3+1:long3+4)=
' NAZ' 302 chainehyd(long3+5:long3+5+(len(adjustl(mystring))-1))=
313 IF( mot(j)(l:l+3).EQ.
'C2DS' )
THEN 315 IF( mot(j)(l+4:l+4).EQ.
'*' )
THEN 316 chainehyd(long3+1:long3+4)=
' TA*' 320 tober=mot(j)(l+4:l+5)
322 IF(ind_sed.EQ.1)
THEN 325 nums_to_numtr=nums+ind_sed
328 WRITE(mystring,
'(i4)') nums_to_numtr
329 chainehyd(long3+1:long3+3)=
' TA' 331 chainehyd(long3+4:long3+4+(len(adjustl(mystring))-1))=
342 1002
FORMAT(1x,
'SORTIE (BIEF) : CHAINEHYD VIDE')
343 1003
FORMAT(1x,
'SORTIE (BIEF): EMPTY STRING')
344 1004
FORMAT(1x,
'SORTIE (BIEF) : PLUS DE 8 CARACTERES PAR MOT',/,1x,
345 &
' DANS LA CHAINE :',a)
346 1005
FORMAT(1x,
'SORTIE (BIEF): MORE THAN 8 LETTERS PER WORD',/,1x,
347 &
' IN THE CHAIN: ',a)
subroutine check_sortgai(CHAINE, NBRE, CHAINEHYD, IND_SED, YES2D, GRAP_PRINT2D)