28 CHARACTER(15) :: timestart
29 CHARACTER(15) :: timestride
30 CHARACTER(15) :: timecount
32 CHARACTER(1024) :: list
33 CHARACTER(15) :: partition
37 CHARACTER(15) :: timeref
41 CHARACTER(15) :: timeepoch
48 CHARACTER(30) :: prefix
75 SUBROUTINE w3nmlounf (NDSI, INFILE, NML_FIELD, NML_FILE, NML_SMC, IERR)
144 INTEGER,
INTENT(IN) :: NDSI
145 CHARACTER*(*),
INTENT(IN) :: INFILE
148 TYPE(
nml_smc_t),
INTENT(INOUT) :: NML_SMC
149 INTEGER,
INTENT(OUT) :: IERR
151 INTEGER,
SAVE :: IENT = 0
156 CALL strace (ient,
'W3NMLOUNF')
161 OPEN (
ndsn,
file=trim(infile)//
'.log', form=
'formatted', iostat=ierr)
163 WRITE (
ndse,
'(A)')
'ERROR: open full nml file '//trim(infile)//
'.log failed'
168 OPEN (ndsi,
file=trim(infile), form=
'formatted', status=
'old', iostat=ierr)
170 WRITE (
ndse,
'(A)')
'ERROR: open input file '//trim(infile)//
' failed'
266 INTEGER,
INTENT(IN) :: NDSI
272 namelist /field_nml/ field
274 INTEGER,
SAVE :: IENT = 0
279 CALL strace (ient,
'READ_FIELD_NML')
283 field%TIMESTART =
'19000101 000000'
284 field%TIMESTRIDE =
'0'
285 field%TIMECOUNT =
'1000000000'
288 field%PARTITION =
'0 1 2 3'
289 field%SAMEFILE = .true.
290 field%VECTOR = .true.
292 field%TIMEREF =
'unset'
293 field%FCVARS = .false.
296 field%TIMEEPOCH =
'19900101 000000'
298 field%MAPSTA = .true.
302 READ (ndsi, nml=field_nml, iostat=ierr, iomsg=
msg)
304 WRITE (
ndse,
'(A,/A)') &
305 'ERROR: READ_FIELD_NML: namelist read error', &
311 IF(field%TIMEREF ==
'unset') field%TIMEREF = field%TIMESTART
387 INTEGER,
INTENT(IN) :: NDSI
393 namelist /file_nml/ file
395 INTEGER,
SAVE :: IENT = 0
400 CALL strace (ient,
'READ_FILE_NML')
407 file%IXN = 1000000000
409 file%IYN = 1000000000
413 READ (ndsi, nml=file_nml, iostat=ierr, iomsg=
msg)
415 WRITE (
ndse,
'(A,/A)') &
416 'ERROR: READ_FILE_NML: namelist read error', &
495 INTEGER,
INTENT(IN) :: NDSI
496 TYPE(
nml_smc_t),
INTENT(INOUT) :: NML_SMC
501 namelist /smc_nml/ smc
503 INTEGER,
SAVE :: IENT = 0
508 CALL strace (ient,
'READ_SMC_NML')
521 READ (ndsi, nml=smc_nml, iostat=ierr, iomsg=
msg)
523 WRITE (
ndse,
'(A,/A)') &
524 'ERROR: READ_SMC_NML: namelist read error', &
604 INTEGER,
SAVE :: IENT = 0
608 CALL strace (ient,
'REPORT_FIELD_NML')
611 WRITE (
msg,
'(A)')
'FIELD % '
613 WRITE (
ndsn,10) trim(
msg),
'TIMESTART = ', trim(nml_field%TIMESTART)
614 WRITE (
ndsn,10) trim(
msg),
'TIMESTRIDE = ', trim(nml_field%TIMESTRIDE)
615 WRITE (
ndsn,10) trim(
msg),
'TIMECOUNT = ', trim(nml_field%TIMECOUNT)
617 WRITE (
ndsn,11) trim(
msg),
'TIMESPLIT = ', nml_field%TIMESPLIT
618 WRITE (
ndsn,10) trim(
msg),
'LIST = ', trim(nml_field%LIST)
619 WRITE (
ndsn,10) trim(
msg),
'PARTITION = ', trim(nml_field%PARTITION)
620 WRITE (
ndsn,13) trim(
msg),
'SAMEFILE = ', nml_field%SAMEFILE
621 WRITE (
ndsn,11) trim(
msg),
'TYPE = ', nml_field%TYPE
622 WRITE (
ndsn,10) trim(
msg),
'FCVARS = ', nml_field%FCVARS
623 WRITE (
ndsn,10) trim(
msg),
'TIMEREF = ', nml_field%TIMEREF
624 WRITE (
ndsn,14) trim(
msg),
'NOVAL = ', nml_field%NOVAL
625 WRITE (
ndsn,13) trim(
msg),
'MAPSTA = ', nml_field%MAPSTA
629 11
FORMAT (a,2x,a,i8)
630 13
FORMAT (a,2x,a,l1)
631 14
FORMAT (a,2x,a,f8.2)
706 INTEGER,
SAVE :: IENT = 0
710 CALL strace (ient,
'REPORT_FILE_NML')
713 WRITE (
msg,
'(A)')
'FILE % '
715 WRITE (
ndsn,10) trim(
msg),
'PREFIX = ', trim(nml_file%PREFIX)
716 WRITE (
ndsn,11) trim(
msg),
'NETCDF = ', nml_file%NETCDF
717 WRITE (
ndsn,11) trim(
msg),
'IX0 = ', nml_file%IX0
718 WRITE (
ndsn,11) trim(
msg),
'IXN = ', nml_file%IXN
719 WRITE (
ndsn,11) trim(
msg),
'IY0 = ', nml_file%IY0
720 WRITE (
ndsn,11) trim(
msg),
'IYN = ', nml_file%IYN
723 11
FORMAT (a,2x,a,i12)
794 INTEGER,
SAVE :: IENT = 0
798 CALL strace (ient,
'REPORT_SMC_NML')
801 WRITE (
msg,
'(A)')
'SMC % '
803 WRITE (
ndsn,11) trim(
msg),
'TYPE = ', nml_smc%TYPE
804 WRITE (
ndsn,14) trim(
msg),
'SXO = ', nml_smc%SXO
805 WRITE (
ndsn,14) trim(
msg),
'SYO = ', nml_smc%SYO
806 WRITE (
ndsn,14) trim(
msg),
'EXO = ', nml_smc%EXO
807 WRITE (
ndsn,14) trim(
msg),
'EYO = ', nml_smc%EYO
808 WRITE (
ndsn,11) trim(
msg),
'CELFAC = ', nml_smc%CELFAC
810 11
FORMAT (a,2x,a,i12)
811 14
FORMAT (a,2x,a,f8.2)