4 & (lfi, knumer, knimes, kcode, ldfata, &
5 & cdmess, cdnspr,cdacti )
149 INTEGER (KIND=JPLIKB) KNUMER, KNIMES, KCODE, ILDMES
150 INTEGER (KIND=JPLIKB) ILBLAN, INLNOM, INUMER
151 INTEGER (KIND=JPLIKB) IDECBL, IPOSBL, ILACTI, ILACT2
152 INTEGER (KIND=JPLIKB) ILNSPR, ILMESU, IJL, J, IJ
153 INTEGER (KIND=JPLIKB) INBALO, ILMESA, INLIGN, IDECAL
157 CHARACTER(LEN=*) CDNSPR
158 CHARACTER(LEN=6) CLJOLI
159 CHARACTER(LEN=*) CDMESS
160 CHARACTER(LEN=80) CLMESA
161 CHARACTER(LEN=*) CDACTI
163 CHARACTER(LEN=LFI%JPLMES) CLMESS
172 REAL(KIND=JPRB) :: ZHOOK_HANDLE
177 iposbl=idecbl+int(
index(cdacti(idecbl+1:),
' '),
jplikb)
179 IF (iposbl.LE.idecbl)
THEN 180 ilacti=int(len(cdacti),
jplikb)
181 ELSEIF (cdacti(iposbl:).EQ.
' ')
THEN 188 ilact2=min(ilacti,lfi%JPNCPN)
189 ilacti=min(ilact2,8_jplikb )
190 ilnspr=min(int(len(cdnspr),
jplikb),lfi%JPLSPX)
196 ELSEIF (knimes.EQ.0.OR.kcode.NE.0)
THEN 202 IF (knimes.NE.0)
THEN 207 ilmesu=min(int(len(clmess),
jplikb)- &
208 & int(len(cljoli),
jplikb)-ilnspr-4, &
209 & int(len(cdmess),
jplikb))
210 clmess=cljoli//
' '//cdnspr(1:ilnspr)//
' - ' &
212 WRITE (unit=lfi%NULOUT,fmt=
'(A)')
trim(clmess)
215 IF (knimes.EQ.0.OR.ldfata)
THEN 223 IF (knumer.EQ.lfi%JPNIL)
THEN 229 IF (knumer.EQ.lfi%NUMERO(ijl))
GOTO 302
239 IF ((cdacti.EQ.
'READ'.OR.cdacti.EQ.
'WRITE') &
240 & .AND.lfi%NUMAPH(ijl).GT.0)
THEN 241 WRITE (unit=clmess,fmt=
'(''ERROR "'',A,''"'',I7, & 242 & '',UNIT'',I3,'',REC.NUM'',I6,'',*'',I6, & 243 & '' WORDS'')') cdacti(1:ilacti),kcode,knumer, &
245 & lfi%JPLARD*lfi%MFACTM(ijl)
247 WRITE (unit=clmess, &
248 & fmt=
'(''FORTRAN "'',A,''" ERROR, CODE='' & 249 & ,I7,'', UNIT='',I3)') cdacti(1:ilacti),kcode,knumer
252 ELSEIF (kcode.EQ.-1)
THEN 253 WRITE (unit=clmess,fmt=
'(''LOGICAL UNIT'',I3, & 254 & '' NOT OPENED FOR LFI SOFTWARE'')') knumer
256 ELSEIF (kcode.EQ.-2)
THEN 258 IF (knumer.EQ.lfi%JPNIL)
THEN 259 clmess=
'ACTUAL VALUE FOR LEVEL "KNIVAU" '// &
260 &
'OUTSIDE [0-2] RANGE' 262 WRITE (unit=clmess,fmt= &
263 &
'(''MESSAGE LEVEL OUTSIDE [0-2] RANGE, UNIT'',I3)') knumer
266 ELSEIF (kcode.EQ.-3)
THEN 267 ildmes=min(8_jplikb ,int(len(cdmess),
jplikb))
268 clmess=
'UNKNOWN ACTION '''//cdmess(1:ildmes) &
271 ELSEIF (kcode.EQ.-4)
THEN 272 clmess=
'EXPL.CHANGE OF MULTI-TASKING MODE '// &
273 &
'WITH UNIT(S) OPENED' 275 ELSEIF (kcode.EQ.-5)
THEN 276 WRITE (unit=clmess,fmt=
'(''LOGICAL UNIT'',I3, & 277 & '' ALREADY OPENED FOR LFI - AND SHOULD NOT.'')') knumer
279 ELSEIF (kcode.EQ.-6)
THEN 280 WRITE (unit=clmess,fmt=
'(I3,'' ENTRIES,'', & 281 & '' NOT ENOUGH PLACE WITHIN TABLES FOR UNIT'',I3)') &
284 ELSEIF (kcode.EQ.-7)
THEN 285 WRITE (unit=clmess,fmt=
'(''FORTRAN STATUS'''''',A, & 286 & '''''' UNKNOWN, UNIT'',I3)') cdacti(1:ilacti),knumer
288 ELSEIF (kcode.EQ.-8)
THEN 289 WRITE (unit=clmess,fmt=
'(''UNIT'',I3,'' OF STATUS '''''' & 290 &,A,'''''' MUST HAVE AN EXPLICIT NAME'')') knumer,cdacti(1:ilacti)
292 ELSEIF (kcode.EQ.-9)
THEN 294 IF (cdacti.EQ.
'OLD')
THEN 295 WRITE (unit=clmess,fmt= &
296 &
'(''STATUS ''''OLD'''' BUT FILE DOES NOT EXIST, UNIT'', & 300 IF (ilblan.GT.1) ilacti=ilblan-1
301 WRITE (unit=clmess,fmt= &
302 &
'(''STATUS '''''',A,'''''' BUT FILE ALREADY EXISTS, UNIT'', & 303 & I3)') cdacti(1:ilacti),knumer
306 ELSEIF (kcode.EQ.-10)
THEN 307 WRITE (unit=clmess,fmt=
'(''INCOMPATIBILITY'', & 308 & '' FILE / SOFTWARE, UNIT'',I3)') knumer
310 ELSEIF (kcode.EQ.-11)
THEN 311 WRITE (unit=clmess, &
312 & fmt=
'(''UNIT'',I3,'' NOT CLOSED AFTER '', & 313 & ''ITS LAST MODIFICATION'')') knumer
315 ELSEIF (kcode.EQ.-12)
THEN 316 WRITE (unit=clmess,fmt=
'(''UNIT'',I3, & 317 & '' OF STATUS ''''OLD'''' - READ OF FIRST RECORD FAILED'')') &
320 ELSEIF (kcode.EQ.-13)
THEN 327 IF (cdacti.EQ.lfi%CNOMFI(ij))
THEN 328 inumer=lfi%NUMERO(ij)
329 inlnom=min(lfi%NLNOMF(ij), &
330 & int(len(clmess),
jplikb)-3_jplikb )
337 clmess=
' '''//cdacti(1:inlnom)//
'''' 338 WRITE (unit=lfi%NULOUT,fmt=
'(A)')
trim(clmess)
339 WRITE (unit=clmess,fmt=
'(''UNIT'',I3,'' - FILE '', & 340 & ''ALREADY OPEN WITH UNIT'',I3)') knumer,inumer
342 ELSEIF (kcode.EQ.-14)
THEN 344 IF (cdnspr.EQ.
'LFIECR'.OR.cdnspr.EQ.
'LFILEC'.OR. &
345 & cdnspr.EQ.
'LFILAS'.OR.cdnspr.EQ.
'LFILAP')
THEN 346 WRITE (unit=clmess,fmt= &
347 &
'(''INCORRECT RECORD LENGTH, UNIT'',I3)') knumer
348 ELSEIF (knumer.EQ.lfi%JPNIL)
THEN 349 clmess=
'INCORRECT ENTRY IN *LFI%NUMERO* TABLE' 351 WRITE (unit=clmess,fmt= &
352 &
'(''INCORRECT INTEGER TYPE ARGUMENT, UNIT'',I3)') knumer
355 ELSEIF (kcode.EQ.-15)
THEN 356 WRITE (unit=clmess,fmt=
'(''RECORD NAME INCORRECT OR '', & 357 & ''TOO LONG, UNIT'',I3)') knumer
359 ELSEIF (kcode.EQ.-16)
THEN 360 WRITE (unit=clmess,fmt=
'(''INCOHERENCE (TABLES, FILE, '', & 361 & ''INTERNAL CALLS, SOFTWARE), UNIT'',I3)') knumer
363 ELSEIF (kcode.EQ.-17)
THEN 366 inbalo=lfi%MDES1D(ixm(lfi%JPNALO,ijl))
371 WRITE (unit=clmess, &
372 & fmt=
'(I6,'' RECORDS, INDEX FULL, UNIT'', & 373 & I3)') inbalo,knumer
375 ELSEIF (kcode.EQ.-18)
THEN 376 WRITE (unit=clmess,fmt=
'(''BLANK RECORD NAME IS INVALID'', & 377 & '', UNIT'',I3)') knumer
379 ELSEIF (kcode.EQ.-19)
THEN 380 WRITE (unit=clmess,fmt=
'(''UNIT'',I3, & 381 & '' IS ''''SCRATCH'''', SO MAY NOT BE KEPT'')') knumer
383 ELSEIF (kcode.EQ.-20)
THEN 384 WRITE (unit=clmess,fmt=
'(''RECORD "'',A, & 385 & ''" NOT FOUND, UNIT'',I3)') cdacti(1:ilact2),knumer
387 ELSEIF (kcode.EQ.-21)
THEN 388 WRITE (unit=clmess,fmt=
'(''RECORD "'',A, & 389 & ''" *LONGER* THAN REQUESTED, UNIT'',I3)') &
390 & cdacti(1:ilact2),knumer
392 ELSEIF (kcode.EQ.-22)
THEN 393 WRITE (unit=clmess,fmt=
'(''RECORD "'',A, & 394 & ''" *SHORTER* THAN REQUESTED-UNIT'',I3)') &
395 & cdacti(1:ilact2),knumer
397 ELSEIF (kcode.EQ.-23)
THEN 398 WRITE (unit=clmess,fmt=
'(''NO/NO MORE NEXT RECORD'', & 399 & '' TO READ, UNIT'',I3)') knumer
401 ELSEIF (kcode.EQ.-24)
THEN 402 WRITE (unit=clmess,fmt=
'(''CHARAC. VARIABLE TOO SHORT '', & 403 & ''FOR "'',A,''", UNIT'',I3)') &
404 & cdacti(1:ilact2),knumer
406 ELSEIF (kcode.EQ.-25)
THEN 407 WRITE (unit=clmess,fmt=
'(''NEW RECORD NAME: "'',A, & 408 & ''" ALREADY USED, UNIT'',I3)') &
409 & cdacti(1:ilact2),knumer
411 ELSEIF (kcode.EQ.-26)
THEN 412 WRITE (unit=clmess,fmt=
'(''NO/NO MORE PREVIOUS RECORD '', & 413 & '' TO READ, UNIT'',I3)') knumer
415 ELSEIF (kcode.EQ.-27)
THEN 416 WRITE (unit=clmess, &
417 & fmt=
'(''INSUFFICIENT CONTIGUOUS SPACE WI'', & 418 & ''THIN TABLES, UNIT'',I3)') knumer
420 ELSEIF (kcode.EQ.-28)
THEN 422 IF (knumer.EQ.lfi%JPNIL)
THEN 423 WRITE (unit=clmess, &
424 & fmt=
'(''NEW DEFAULT MULTIPLY FACTOR EX'', & 425 & ''CEEDS MAXIMUM ('',I3,'')'')') lfi%JPFACX
427 WRITE (unit=clmess,fmt=
'(''SPECIFIED MULTIPLY FACTOR '', & 428 & ''EXCEEDS MAXIMUM ('',I3,''), UNIT'',I3)') lfi%JPFACX,knumer
431 ELSEIF (kcode.EQ.-29)
THEN 432 WRITE (unit=clmess,fmt=
'(I3,'' ENTRIES,'', & 433 & '' NO MORE PLACE FOR MULTIPLY FACTOR, UNIT'',I3)') &
436 ELSEIF (kcode.EQ.-30)
THEN 437 WRITE (unit=clmess,fmt=
'(''INVALID FORTRAN LOGICAL UNIT'', & 438 & '' NUMBER:'',I8)') knumer
440 ELSEIF (kcode.EQ.-31)
THEN 441 WRITE (unit=clmess,fmt=
'(''LOGICAL UNIT NUMBER'',I3, & 442 & '' HAS NO PREDEFINED MULTIPLY FACTOR'')') knumer
446 ELSEIF (knumer.EQ.lfi%JPNIL)
THEN 447 WRITE (unit=clmess,fmt=
'(''*UNKNOWN* GLOBAL ERROR CODE'', & 450 WRITE (unit=clmess,fmt=
'(''*UNKNOWN* ERROR CODE'',I6, & 451 & '' ON LOGICAL UNIT'',I3)') kcode,knumer
454 ilmesa=int(len(clmesa),
jplikb)
455 ilmesu=ilmesa-1-2*int(len(cljoli),
jplikb)-ilnspr-4
456 clmesa=cljoli//
' '//cdnspr(1:ilnspr)//
' - '// &
457 & clmess(1:ilmesu)//cljoli
458 WRITE (unit=lfi%NULOUT,fmt=
'(A)') clmesa
465 IF (lfi%NLNOMF(ijl).LE.lfi%JPLFTX)
THEN 466 WRITE (unit=lfi%NULOUT,fmt=
'(A,/)') cljoli &
467 & //
' NAME - APPEARENT BUT' &
468 & //
' COMPLETE - OF LFI LOGICAL UNIT CONCERNED:' 470 WRITE (unit=clmess,fmt=
'(A, & 471 & '' NAME - APPEARENT, AND TRUNCATED BY'',I4, & 472 & '' CARACTERES - OF LFI LOGICAL UNIT CONCERNED:'')') &
473 & cljoli,lfi%NLNOMF(ijl)-lfi%JPLFTX
474 WRITE (unit=lfi%NULOUT,fmt=
'(A,/)')
trim(clmess)
477 inlign=(lfi%NLNOMF(ijl)-1)/lfi%JPLFIX
481 WRITE (unit=lfi%NULOUT,fmt=
'(A)') &
482 & lfi%CNOMFI(ijl)(idecal+1:idecal+lfi%JPLFIX)//
'...' 483 idecal=idecal+lfi%JPLFIX
486 IF (lfi%NLNOMF(ijl).LE.lfi%JPLFTX)
THEN 487 WRITE (unit=lfi%NULOUT,fmt=
'(A,/)') &
488 & lfi%CNOMFI(ijl)(idecal+1:lfi%NLNOMF(ijl))
490 WRITE (unit=lfi%NULOUT,fmt=
'(A,/)') &
491 & lfi%CNOMFI(ijl)(idecal+1:lfi%JPLFTX) &
495 IF (lfi%CNOMSY(ijl).NE.lfi%CNOMFI(ijl))
THEN 496 WRITE (unit=lfi%NULOUT,fmt=
'(A,/)') cljoli// &
497 &
' *SYSTEM* NAME (APPEARENT) OF LFI LOGICAL UNIT CONCERNED:' 498 inlign=(lfi%NLNOMS(ijl)-1)/lfi%JPLFIX
502 WRITE (unit=lfi%NULOUT,fmt=
'(A)') &
503 & lfi%CNOMSY(ijl)(idecal+1:idecal+lfi%JPLFIX)//
'...' 504 idecal=idecal+lfi%JPLFIX
507 WRITE (unit=lfi%NULOUT,fmt=
'(A,/)') &
508 & lfi%CNOMSY(ijl)(idecal+1:lfi%NLNOMS(ijl))
513 WRITE (unit=lfi%NULOUT,fmt=
'(A)') clmesa
514 IF (ldfata.AND.kcode.NE.0)
THEN 527 #include "lficom2.ixm.h" 535 & (knumer, knimes, kcode, ldfata, cdmess, cdnspr, &
543 INTEGER (KIND=JPLIKB) KNUMER
544 INTEGER (KIND=JPLIKB) KNIMES
545 INTEGER (KIND=JPLIKB) KCODE
547 CHARACTER (LEN=*) CDMESS
548 CHARACTER (LEN=*) CDNSPR
549 CHARACTER (LEN=*) CDACTI
554 & (lfi, knumer, knimes, kcode, ldfata, cdmess, cdnspr, &
560 & (knumer, knimes, kcode, ldfata, cdmess, cdnspr, &
568 INTEGER (KIND=JPLIKM) KNUMER
569 INTEGER (KIND=JPLIKM) KNIMES
570 INTEGER (KIND=JPLIKM) KCODE
572 CHARACTER (LEN=*) CDMESS
573 CHARACTER (LEN=*) CDNSPR
574 CHARACTER (LEN=*) CDACTI
579 & (lfi, knumer, knimes, kcode, ldfata, cdmess, cdnspr, &
585 & (lfi, knumer, knimes, kcode, ldfata, cdmess, cdnspr, &
592 INTEGER (KIND=JPLIKM) KNUMER
593 INTEGER (KIND=JPLIKM) KNIMES
594 INTEGER (KIND=JPLIKM) KCODE
596 CHARACTER (LEN=*) CDMESS
597 CHARACTER (LEN=*) CDNSPR
598 CHARACTER (LEN=*) CDACTI
600 INTEGER (KIND=JPLIKB) INUMER
601 INTEGER (KIND=JPLIKB) INIMES
602 INTEGER (KIND=JPLIKB) ICODE
605 inumer = int( knumer,
jplikb)
606 inimes = int( knimes,
jplikb)
607 icode = int( kcode,
jplikb)
610 & (lfi, inumer, inimes, icode, ldfata, cdmess, cdnspr, &
static const char * trim(const char *name, int *n)
subroutine lfieng64(KNUMER, KNIMES, KCODE, LDFATA, CDMESS, CDNSPR, CDACTI)
integer, parameter jplikb
subroutine new_lfi_default()
logical, save lficom_default_init
subroutine lfieng(KNUMER, KNIMES, KCODE, LDFATA, CDMESS, CDNSPR, CDACTI)
subroutine lfieng_fort(LFI, KNUMER, KNIMES, KCODE, LDFATA, CDMESS, CDNSPR, CDACTI)
subroutine lfieng_mt(LFI, KNUMER, KNIMES, KCODE, LDFATA, CDMESS, CDNSPR, CDACTI)
type(lficom), target, save lficom_default