5 &(icol , ligne , adress ,
dimens , trouve , motcle , nmot2 ,
6 & motint , motrea , motlog , motcar , motatt , indic ,
SIZE ,
7 & utindx , dynam , vucmd , execmd , nficda , nmaxr )
86 INTEGER ICOL,NMOT2(4),ADRESS(4,*),DIMENS(4,*),TROUVE(4,*)
87 INTEGER SIZE(4,*),INDIC(4,*),MOTINT(*),NFICDA,NMAXR(4)
88 LOGICAL MOTLOG(*),DYNAM,UTINDX(4,*),VUCMD(5),EXECMD
89 CHARACTER(LEN=*) MOTCLE(4,*),LIGNE
90 CHARACTER(LEN=PATH_LEN) MOTATT(4,*),MOTCAR(*)
91 DOUBLE PRECISION MOTREA(*)
94 EXTERNAL preval,longlu
98 INTEGER I1,IAD,L1,L2,TRANS,ISIZE,K,I,N
99 CHARACTER(LEN=72) :: FMT0, FMT1, FMT2, FMT3, FMT4, FMT5, FMT6,
100 & fmt7, fmt8, fmt10, fmt12, fmt14,
101 & fmt16, fmt18, fmt20, fmt22,
102 & fmt24, fmt26, fmt28, fmt30,
103 & fmt32, fmt34, fmt35
104 CHARACTER(LEN=6) :: TYP(4)
105 CHARACTER(LEN=1) TABUL
113 parameter( typ = (/
'MOTINT',
'MOTREA',
'MOTLOG',
'MOTCAR' /) )
127 IF(ligne(i1:i1+2).EQ.
'FIN'.OR.(execmd.AND.vucmd(5)))
THEN 128 IF (.NOT.(execmd))
THEN 134 12
FORMAT(1x,/,1x,
'END OF FILE FOR DAMOCLES',/)
138 ELSE IF (ligne(i1:i1+2).EQ.
'ETA'.OR.(execmd.AND.vucmd(2)))
THEN 139 IF (.NOT.(execmd))
THEN 144 13
FORMAT(1x,/,1x,
'VALUES OF THE KEY-WORDS:',/)
146 fmt1 =
"(1X,A,/,1X,'MOTINT(',1I3,')=',A,I9 ,/)" 147 fmt2 =
"(1X,A,/,1X,'MOTREA(',1I3,')=',A,G16.7,/)" 148 fmt3 =
"(1X,A,/,1X,'MOTLOG(',1I3,')=',A,L1 ,/)" 149 fmt4 =
"(1X,A,/,1X,'MOTCAR(',1I3,')=',A,A ,/)" 150 fmt5 =
"(1X,A,/,1X,'MOTINT(',1I3,') = ',A,' ; ',I9 ,/)" 151 fmt6 =
"(1X,A,/,1X,'MOTREA(',1I3,') = ',A,' ; ',G16.7,/)" 152 fmt7 =
"(1X,A,/,1X,'MOTLOG(',1I3,') = ',A,' ; ',L1 ,/)" 153 fmt8 =
"(1X,A,/,1X,'MOTCAR(',1I3,') = ',A,' ; ',A ,/)" 159 IF(trouve(n,i).GE.1)
THEN 161 iad = adress(n,i) + k - 1
162 IF (indic(n,i).LT.2)
THEN 168 l1=longlu(motatt(n,iad))
172 SELECT CASE (n+trans)
192 & motcle(n,i)(1:isize),iad,motatt(n,iad)(1:l1),
194 ELSE IF (n.EQ.2)
THEN 196 & motcle(n,i)(1:isize),iad,motatt(n,iad)(1:l1),
198 ELSE IF (n.EQ.3)
THEN 200 & motcle(n,i)(1:isize),iad,motatt(n,iad)(1:l1),
202 ELSE IF (n.EQ.4)
THEN 203 l2 = longlu(motcar(iad))
205 & motcle(n,i)(1:isize),iad,motatt(n,iad)(1:l1),
211 WRITE(
lu,213) motcle(n,i)(1:isize)
212 213
FORMAT(1x,a,/,1x,
'VALUE NOT FOUND',/,1x)
221 ELSE IF (ligne(i1:i1+2).EQ.
'IND'.OR.(execmd.AND.vucmd(3)))
THEN 222 IF (.NOT.(execmd))
THEN 229 fmt1 =
"(1X,'MOTINT(',1I3,') =',A,I9 )" 230 fmt2 =
"(1X,'MOTREA(',1I3,') =',A,G16.7)" 231 fmt3 =
"(1X,'MOTLOG(',1I3,') =',A,L1 )" 232 fmt4 =
"(1X,'MOTCAR(',1I3,') =',A,A )" 233 fmt5 =
"(1X,'MOTINT(',1I3,') = ',A,' ; ',I9 )" 234 fmt6 =
"(1X,'MOTREA(',1I3,') = ',A,' ; ',G16.7)" 235 fmt7 =
"(1X,'MOTLOG(',1I3,') = ',A,' ; ',L1 )" 236 fmt8 =
"(1X,'MOTCAR(',1I3,') = ',A,' ; ',A )" 237 fmt10=
"(1X,'!!! COMPACTED ARRAY !!!')" 238 fmt12=
"(1X,'WARNING ! OUTPUT SIZE = 0')" 239 fmt14=
"(1X,'SIZE = ',I4)" 240 fmt16=
"(1X,'OPTIONAL VALUE NOT FOUND')" 241 fmt18=
"(1X,'FORCED VALUE NOT FOUND')" 242 fmt20=
"(1X,'INDEX = ',I4)" 243 fmt22=
"(1X,'VALUE NOT FOUND')" 244 fmt24=
"(/,1X,'VALUES OF THE KEY-WORDS :',/)" 245 fmt26=
"(1X,'NUMBER OF INTEGER KEY WORDS = ',I4,"//
246 &
"10X,'(LAST INDEX :',I4,')')" 247 fmt28=
"(1X,'NUMBER OF REAL KEY WORDS = ',I4,"//
248 &
"10X,'(LAST INDEX :',I4,')')" 249 fmt30=
"(1X,'NUMBER OF LOGICAL KEY WORDS = ',I4,"//
250 &
"10X,'(LAST INDEX :',I4,')')" 251 fmt32=
"(1X,'NUMBER OF CHARACTER KEY WORDS = ',I4,"//
252 &
"10X,'(LAST INDEX :',I4,')')" 253 fmt34=
"(1X,'TOTAL NUMBER OF KEY WORDS = ',I4)" 254 fmt35=
"(/,1X,70('-'),/,1X,A,/,1X,70('-'))" 260 WRITE(
lu,*)
'=====================================' 261 WRITE(
lu,fmt26) nmot2(1),nmaxr(1)
262 WRITE(
lu,fmt28) nmot2(2),nmaxr(2)
263 WRITE(
lu,fmt30) nmot2(3),nmaxr(3)
264 WRITE(
lu,fmt32) nmot2(4),nmaxr(4)
265 WRITE(
lu,*)
'-------------------------------------' 266 WRITE(
lu,fmt34) nmot2(1)+nmot2(2)+nmot2(3)+nmot2(4)
267 WRITE(
lu,*)
'=====================================' 274 IF(trouve(n,i).GE.1.OR.dimens(n,i).GT.1)
THEN 275 WRITE(
lu,fmt35) motcle(n,i)(1:
SIZE(n,i))
277 IF (trouve(n,i).EQ.5)
THEN 283 WRITE(
lu,fmt14) dimens(n,i)
284 IF (dimens(n,i).GT.1.AND.
285 & trouve(n,i).EQ.0.AND.dynam)
THEN 290 IF (trouve(n,i).EQ.3)
THEN 293 IF (trouve(n,i).EQ.6)
THEN 298 IF (dimens(n,i).GT.1)
WRITE(
lu,*)
' ' 301 iad = adress(n,i) + k - 1
302 IF (indic(n,i).GE.2)
THEN 304 l1=longlu(motatt(n,iad))
312 SELECT CASE (n+trans)
332 & iad,motatt(n,iad)(1:l1),motint(iad)
333 ELSE IF (n.EQ.2)
THEN 335 & iad,motatt(n,iad)(1:l1),motrea(iad)
336 ELSE IF (n.EQ.3)
THEN 338 & iad,motatt(n,iad)(1:l1),motlog(iad)
339 ELSE IF (n.EQ.4)
THEN 340 l2 = longlu(motcar(iad))
342 & iad,motatt(n,iad)(1:l1),motcar(iad)(1:l2)
347 WRITE(
lu,fmt35) motcle(n,i)(1:
SIZE(n,i))
350 WRITE(
lu,fmt14) dimens(n,i)
360 ELSE IF (ligne(i1:i1+2).EQ.
'LIS'.OR.(execmd.AND.vucmd(1)))
THEN 361 IF (.NOT.(execmd))
THEN 366 fmt2 =
"(/,1X,'KEY-WORDS LIST :',/)" 367 fmt4 =
"(1X,'SIZE : ',I3,5X,'ADRESS IN ',A,"//
378 WRITE (
lu,fmt5) motcle(n,i)(1:
SIZE(n,i))
379 IF (dimens(n,i).GT.1.AND.trouve(n,i).EQ.0.AND.dynam)
THEN 380 WRITE (
lu,fmt4) 0,typ(n),iad
382 WRITE (
lu,fmt4) dimens(n,i),typ(n),iad
390 ELSE IF ( ligne(i1:i1+2).EQ.
'DOC' )
THEN 392 WRITE(
lu,*)
'COMMAND &DOC HAS BEEN SUPPRESSED IN THIS RELEASE' 396 ELSE IF (ligne(i1:i1+2).EQ.
'STO'.OR.(execmd.AND.vucmd(4)))
THEN 397 IF (.NOT.(execmd))
THEN 403 1114
FORMAT(1x,/,1x,
'DAMOCLES STOPPED BY COMMAND &STO')
409 ELSEIF ( ligne(i1:i1+2).EQ.
'DYN' )
THEN 410 IF (
nfic.EQ.nficda)
THEN 411 WRITE(
lu,*)
'WARNING : INSTRUCTION &DYN FROM STEERING ',
412 &
'FILE HAS BEEN IGNORED !!' 418 WRITE(
lu,
'(1X,A6,I4,A)')
'LINE: ',
nlign,
' UNKNOWN COMMAND' 424 icol = preval(i1+1,ligne,
' ',tabul,
' ')
integer function dimens(IELM)
subroutine cmd(ICOL, LIGNE, ADRESS, DIMENS, TROUVE, MOTCLE, NMOT2, MOTINT, MOTREA, MOTLOG, MOTCAR, MOTATT, INDIC, SIZE, UTINDX, DYNAM, VUCMD, EXECMD, NFICDA, NMAXR)