18 SUBROUTINE ocpini (INIFIL, LREAD, INERR)
105 LOGICAL LREAD, FILEXI
106 CHARACTER INPFIL *40, OUTFIL *40, INIFIL *(*), TSTFIL *40, &
107 PLTOPT *4, TIMSTR *24, &
108 OUTFO *40, TSTFO *40, TXT*120
109 INTEGER PRCTIM(6), INIVER, INIVEF
114 DATA prctim /0,0,0,0,0,0/
123 INQUIRE (file=inifil, exist=filexi)
128 OPEN (11, file=inifil, status=
'OLD', &
131 READ (11, *, err=930, end=930) inivef
132 IF(inivef > iniver .OR. inivef <= 0)
GOTO 935
133 READ (11, 120, err=930, end=930)
inst 134 READ (11, *, err=930, end=930)
inputf 135 READ (11, 120, err=930, end=930) inpfil
136 READ (11, *, err=930, end=930)
printf 137 READ (11, 120, err=930, end=930) outfil
138 READ (11, *, err=930, end=930)
prtest 139 READ (11, 120, err=930, end=930) tstfil
140 READ (11, *, err=930, end=930)
screen 141 READ (11, *, err=930, end=930)
iunmax 142 READ (11, 130, err=930, end=930)
comid 143 READ (11, 130, err=930, end=930)
tabc 145 READ (11, 130, err=930, end=930)
dirch1 146 READ (11, 130, err=930, end=930)
dirch2 156 READ (11, 140, err=930, end=930) pltopt
157 READ (11, *, err=930, end=930) nplp
158 READ (11, *, err=930, end=930) (plparm(ii),ii=1,nplp)
159 READ (11, *, err=930, end=930) pfropt
161 READ (11, *, err=930, end=930)
itmopt 214 inst =
'Delft University of Technology' 240 IF(inivef < iniver)
THEN 244 OPEN (12, file=inifil, status=
'UNKNOWN', form=
'FORMATTED', err=950)
245 WRITE (12, 210) iniver,
'version of initialisation file' 246 WRITE (12, 220)
inst,
'name of institute' 247 WRITE (12, 210)
inputf,
'command file ref. number' 248 WRITE (12, 220) inpfil,
'command file name' 249 WRITE (12, 210)
printf,
'print file ref. number' 250 WRITE (12, 220) outfo,
'print file name' 251 WRITE (12, 210)
prtest,
'test file ref. number' 252 WRITE (12, 220) tstfo,
'test file name' 253 WRITE (12, 210)
screen,
'screen ref. number' 254 WRITE (12, 210)
iunmax,
'highest file ref. number' 255 WRITE (12, 230)
comid,
'comment identifier' 256 WRITE (12, 230)
tabc,
'TAB character' 257 WRITE (12, 230)
dirch1,
'dir sep char in input file' 258 WRITE (12, 230)
dirch2,
'dir sep char replacing previous one' 259 WRITE (12, 210)
itmopt,
'default time coding option' 266 210
FORMAT (i5, t41, a)
268 230
FORMAT (a1, t41, a)
269 240
FORMAT (i5, t41, a19, i3)
280 IF(outfil /=
' ')
THEN 282 OPEN (unit=
printf, file=outfil, status=
'UNKNOWN', form=
'FORMATTED', &
289 12
FORMAT (
'1',//,20x,
'Execution started at ',a, //)
292 IF(
screen /= 6)
OPEN(unit=
screen, file=
'screen',err=960)
294 IF (inpfil /=
' ')
OPEN (unit=
inputf, file=inpfil, status=
'OLD', &
298 IF (inpfil /=
' ')
CLOSE (unit=
inputf)
303 910
CALL msgerr(4,
'Input file missing')
307 IF (
inode ==
master )
WRITE(*,*)
'Cannot open PRINT file ' 310 922
CALL msgerr(4,
'Cannot open test file: '//tstfil)
314 IF(
inode ==
master)
WRITE(*,*)
'Error reading initialisation file ' 318 IF(
inode ==
master )
WRITE(*,*)
'Incorrect version of initialisation file ' 322 IF(
inode ==
master)
WRITE(*,*)
'Error opening initialisation file ' 325 960
CALL msgerr(4,
'Error opening output file: screen')
332 SUBROUTINE ocdtim (PRCTIM)
423 CHARACTER TIMSTR *24, CDUMMY *5
426 CALL date_and_time (timstr(1:8), timstr(10:20), cdummy, idummy)
427 CALL dtstti (1, timstr, prctim)
435 SUBROUTINE dtstti (IOPT, TIMSTR, DTTIME)
499 INTEGER IOPT, DTTIME(6)
500 CHARACTER TIMSTR *24, MONC(12) *3, MONCI *3
501 DATA monc /
'JAN',
'FEB',
'MAR',
'APR',
'MAY',
'JUN',
'JUL', &
502 'AUG',
'SEP',
'OCT',
'NOV',
'DEC'/
505 READ (timstr,
'(I4,I2,I2,1X,3I2)', err=98) (dttime(ii), ii=1,6)
507 print*,timstr,dttime,
'ppppppppppppppppppppppp' 509 ELSE IF(iopt == 2)
THEN 510 READ (timstr,
'(I2,1X,A3,1X,I2,3(1X,I2))', err=98) &
511 dttime(3), monci, dttime(1), (dttime(ii), ii=4,6)
512 IF(dttime(1) < 10)
THEN 513 dttime(1) = 2000 + dttime(1)
515 dttime(1) = 1900 + dttime(1)
520 IF (monci.NE.monc(imm))
GOTO 20
524 CALL msgerr (2,
'incorrect month string: '//monci)
525 ELSE IF(iopt == 3)
THEN 526 READ (timstr,
'(I2,5(1X,I2))', err=98) &
527 dttime(2), dttime(3), dttime(1), (dttime(ii), ii=4,6)
528 IF(dttime(1) < 10)
THEN 529 dttime(1) = 2000 + dttime(1)
531 dttime(1) = 1900 + dttime(1)
533 ELSE IF(iopt == 4)
THEN 534 READ (timstr,
'(I2,2(1X,I2))', err=98) (dttime(ii), ii=4,6)
538 ELSE IF(iopt == 5)
THEN 539 READ (timstr,
'(I2,5(1X,I2))', err=98) (dttime(ii), ii=1,6)
540 IF(dttime(1) < 10)
THEN 541 dttime(1) = 2000 + dttime(1)
543 dttime(1) = 1900 + dttime(1)
545 ELSE IF(iopt == 6)
THEN 546 READ (timstr,
'(5I2)', err=98) (dttime(ii), ii=1,5)
548 IF(dttime(1) < 10)
THEN 549 dttime(1) = 2000 + dttime(1)
551 dttime(1) = 1900 + dttime(1)
554 CALL msgerr (2,
'wrong time coding option in subroutine DTSTTI')
557 98
CALL msgerr (2,
'time string unreadable: '//timstr)
563 SUBROUTINE dttist (IOPT, TIMSTR, DTTIME)
616 INTEGER IOPT, DTTIME(6)
617 CHARACTER TIMSTR *24, MONC(12) *3
618 DATA monc /
'Jan',
'Feb',
'Mar',
'Apr',
'May',
'Jun',
'Jul', &
619 'Aug',
'Sep',
'Oct',
'Nov',
'Dec'/
623 WRITE (timstr, 12) (dttime(ii), ii=1,6)
624 12
FORMAT (i4,i2,i2,
'.',3i2)
626 ELSE IF(iopt == 2)
THEN 627 IF(dttime(1) >= 2000)
THEN 628 dttime(1) = dttime(1) - 2000
630 dttime(1) = dttime(1) - 1900
632 WRITE (timstr, 22) dttime(3), monc(dttime(2)), dttime(1), &
634 22
FORMAT (i2,
'-',a3,
'-',i2,
'.',i2,
':',i2,
':',i2)
636 ELSE IF(iopt == 3)
THEN 637 IF(dttime(1) >= 2000)
THEN 638 dttime(1) = dttime(1) - 2000
640 dttime(1) = dttime(1) - 1900
642 WRITE (timstr, 32) dttime(2), dttime(3), dttime(1), (dttime(ii), ii=4,6)
643 32
FORMAT (i2,
'/',i2,
'/',i2,
'.',i2,
':',i2,
':',i2)
645 ELSE IF(iopt == 4)
THEN 646 WRITE (timstr, 42) (dttime(ii), ii=4,6)
647 42
FORMAT (i2,
':',i2,
':',i2)
649 ELSE IF(iopt == 5)
THEN 650 IF(dttime(1) >= 2000)
THEN 651 dttime(1) = dttime(1) - 2000
653 dttime(1) = dttime(1) - 1900
655 WRITE (timstr, 52) (dttime(ii), ii= 1,6)
656 52
FORMAT (i2,
'/',i2,
'/',i2,
'.',i2,
':',i2,
':',i2)
658 ELSE IF(iopt == 6)
THEN 659 IF(dttime(1) >= 2000)
THEN 660 dttime(1) = dttime(1) - 2000
662 dttime(1) = dttime(1) - 1900
664 WRITE (timstr, 62) (dttime(ii), ii=1,5)
668 CALL msgerr (2,
'wrong time coding option in subroutine DTTIST')
672 IF (timstr(ic:ic).EQ.
' ') timstr(ic:ic) =
'0'
subroutine ocpini(INIFIL, LREAD, INERR)
subroutine upcase(CHARST)
subroutine msgerr(LEV, STRING)
subroutine dtstti(IOPT, TIMSTR, DTTIME)
subroutine ocdtim(PRCTIM)
subroutine dttist(IOPT, TIMSTR, DTTIME)