36 CHARACTER(15) :: start
44 CHARACTER(13) :: water_levels
45 CHARACTER(13) :: currents
46 CHARACTER(13) :: winds
47 CHARACTER(13) :: atm_momentum
48 CHARACTER(13) :: air_density
49 CHARACTER(13) :: ice_conc
50 CHARACTER(13) :: ice_param1
51 CHARACTER(13) :: ice_param2
52 CHARACTER(13) :: ice_param3
53 CHARACTER(13) :: ice_param4
54 CHARACTER(13) :: ice_param5
55 CHARACTER(13) :: mud_density
56 CHARACTER(13) :: mud_thickness
57 CHARACTER(13) :: mud_viscosity
62 CHARACTER(13) :: spec1d
63 CHARACTER(13) :: spec2d
69 REAL(4) :: comm_frac(2)
84 LOGICAL :: water_levels
87 LOGICAL :: atm_momentum
88 LOGICAL :: air_density
95 LOGICAL :: mud_density
96 LOGICAL :: mud_thickness
97 LOGICAL :: mud_viscosity
107 CHARACTER(13) :: name
116 CHARACTER(1024) :: list
120 CHARACTER(13) :: name
140 CHARACTER(1024) :: sent
141 CHARACTER(1024) :: received
147 CHARACTER(1024) :: extra
165 CHARACTER(15) :: start
166 CHARACTER(15) :: stride
167 CHARACTER(15) :: stop
168 CHARACTER(1) :: outffile
194 CHARACTER(15) :: name
195 CHARACTER(15) :: date
210 SUBROUTINE w3nmlmultidef (MPI_COMM, NDSI, INFILE, NML_DOMAIN, IERR)
285 INTEGER,
INTENT(IN) :: MPI_COMM, NDSI
286 CHARACTER*(*),
INTENT(IN) :: INFILE
288 INTEGER,
INTENT(OUT) :: IERR
295 INTEGER,
SAVE :: IENT = 0
300 CALL strace (ient,
'W3NMLMULTIDEF')
310 IF ( nmplog .EQ. improc )
THEN
312 OPEN (
ndsn,
file=trim(infile)//
'.log', form=
'formatted', iostat=ierr)
314 WRITE (mdse,
'(A)')
'ERROR: open full nml file '//trim(infile)//
'.log failed'
320 OPEN (ndsi,
file=trim(infile), form=
'formatted', status=
'old', iostat=ierr)
322 WRITE (mdse,
'(A)')
'ERROR: open input file '//trim(infile)//
' failed'
332 IF ( nmplog .EQ. improc )
CLOSE (
ndsn)
346 NML_INPUT_GRID, NML_MODEL_GRID, &
347 NML_OUTPUT_TYPE, NML_OUTPUT_DATE, &
348 NML_HOMOG_COUNT, NML_HOMOG_INPUT, IERR)
438 INTEGER,
INTENT(IN) :: MPI_COMM, NDSI
439 CHARACTER*(*),
INTENT(IN) :: INFILE
447 INTEGER,
INTENT(OUT) :: IERR
454 INTEGER,
SAVE :: IENT = 0
459 CALL strace (ient,
'W3NMLMULTICONF')
469 IF ( nmplog .EQ. improc )
THEN
471 OPEN (
ndsn,
file=trim(infile)//
'.log', form=
'formatted', status=
'old', iostat=ierr)
473 WRITE (mdse,
'(A)')
'ERROR: open full nml file '//trim(infile)//
'.log failed'
479 OPEN (ndsi,
file=trim(infile), form=
'formatted', status=
'old', iostat=ierr)
481 WRITE (mdse,
'(A)')
'ERROR: open INPUT file '//trim(infile)//
' failed'
508 IF ( nmplog .EQ. improc )
CLOSE (
ndsn)
589 INTEGER,
INTENT(IN) :: NDSI
595 namelist /domain_nml/ domain
597 INTEGER,
SAVE :: IENT = 0
602 CALL strace (ient,
'READ_DOMAIN_NML')
608 domain%UNIPTS = .false.
610 domain%UPPROC = .false.
611 domain%PSHARE = .false.
612 domain%FLGHG1 = .false.
613 domain%FLGHG2 = .false.
614 domain%START =
'19680606 000000'
615 domain%STOP =
'19680607 000000'
619 READ (ndsi, nml=domain_nml, iostat=ierr, iomsg=
msg)
621 WRITE (
mdse,
'(A,/A)') &
622 'ERROR: READ_DOMAIN_NML: namelist read error', &
628 IF (domain%NRINP.LT.0)
THEN
629 WRITE (
mdse,
'(A,I3)')
'ERROR: BAD NRINP INPUT: ',domain%NRINP
632 IF (domain%NRGRD.LE.0)
THEN
633 WRITE (
mdse,
'(A,I3)')
'ERROR: BAD NRGRD INPUT: ',domain%NRGRD
636 IF (domain%IOSTYP.LT.0.or.domain%IOSTYP.GT.3)
THEN
637 WRITE (
mdse,
'(A,I3)')
'ERROR: BAD IOSTYP INPUT: ',domain%IOSTYP
724 INTEGER,
INTENT(IN) :: NDSI, NRINP
729 INTEGER,
PARAMETER :: MAX_NRINP = 99
731 namelist /input_grid_nml/ input
733 INTEGER,
SAVE :: IENT = 0
738 CALL strace (ient,
'READ_INPUT_GRID_NML')
742 IF (nrinp.GT.max_nrinp)
THEN
743 WRITE (
mdse,
'(A,/A,I6,/A,I6)') &
744 'ERROR: READ_INPUT_GRID_NML: NRINP > MAX_NRINP', &
745 'ERROR: READ_INPUT_GRID_NML: NRINP = ', nrinp, &
746 'ERROR: READ_INPUT_GRID_NML: MAX_NRINP = ',max_nrinp
751 IF (nrinp.EQ.0)
RETURN
755 input(i)%NAME =
'unset'
756 input(i)%FORCING%WATER_LEVELS = .false.
757 input(i)%FORCING%CURRENTS = .false.
758 input(i)%FORCING%WINDS = .false.
759 input(i)%FORCING%ATM_MOMENTUM = .false.
760 input(i)%FORCING%AIR_DENSITY = .false.
761 input(i)%FORCING%ICE_CONC = .false.
762 input(i)%FORCING%ICE_PARAM1 = .false.
763 input(i)%FORCING%ICE_PARAM2 = .false.
764 input(i)%FORCING%ICE_PARAM3 = .false.
765 input(i)%FORCING%ICE_PARAM4 = .false.
766 input(i)%FORCING%ICE_PARAM5 = .false.
767 input(i)%FORCING%MUD_DENSITY = .false.
768 input(i)%FORCING%MUD_THICKNESS = .false.
769 input(i)%FORCING%MUD_VISCOSITY = .false.
770 input(i)%ASSIM%MEAN = .false.
771 input(i)%ASSIM%SPEC1D = .false.
772 input(i)%ASSIM%SPEC2D = .false.
777 READ (ndsi, nml=input_grid_nml, iostat=ierr, iomsg=
msg)
779 WRITE (
mdse,
'(A,/A)') &
780 'ERROR: READ_INPUT_GRID_NML: namelist read error', &
787 IF (trim(input(i)%NAME).EQ.
'unset')
THEN
788 WRITE (
mdse,10)
'ERROR: READ_INPUT_GRID_NML: REQUIRED INPUT(',i,
')%NAME NOT SET'
794 nml_input_grid = input(1:nrinp)
878 INTEGER,
INTENT(IN) :: NDSI, NRGRD
883 INTEGER,
PARAMETER :: MAX_NRGRD = 99
885 namelist /model_grid_nml/ model
887 INTEGER,
SAVE :: IENT = 0
892 CALL strace (ient,
'READ_MODEL_GRID_NML')
896 IF (nrgrd.GT.max_nrgrd)
THEN
897 WRITE (
mdse,
'(A,/A,I6,/A,I6)') &
898 'ERROR: READ_MODEL_GRID_NML: NRGRD > MAX_NRGRD', &
899 'ERROR: READ_MODEL_GRID_NML: NRGRD = ', nrgrd, &
900 'ERROR: READ_MODEL_GRID_NML: MAX_NRGRD = ',max_nrgrd
905 IF (nrgrd.EQ.0)
RETURN
909 model(i)%NAME =
'unset'
910 model(i)%FORCING%WATER_LEVELS =
'no'
911 model(i)%FORCING%CURRENTS =
'no'
912 model(i)%FORCING%WINDS =
'no'
913 model(i)%FORCING%ATM_MOMENTUM =
'no'
914 model(i)%FORCING%AIR_DENSITY =
'no'
915 model(i)%FORCING%ICE_CONC =
'no'
916 model(i)%FORCING%ICE_PARAM1 =
'no'
917 model(i)%FORCING%ICE_PARAM2 =
'no'
918 model(i)%FORCING%ICE_PARAM3 =
'no'
919 model(i)%FORCING%ICE_PARAM4 =
'no'
920 model(i)%FORCING%ICE_PARAM5 =
'no'
921 model(i)%FORCING%MUD_DENSITY =
'no'
922 model(i)%FORCING%MUD_THICKNESS =
'no'
923 model(i)%FORCING%MUD_VISCOSITY =
'no'
924 model(i)%ASSIM%MEAN =
'no'
925 model(i)%ASSIM%SPEC1D =
'no'
926 model(i)%ASSIM%SPEC2D =
'no'
927 model(i)%RESOURCE%RANK_ID = i
928 model(i)%RESOURCE%GROUP_ID = 1
929 model(i)%RESOURCE%COMM_FRAC = (/0.00,1.00/)
930 model(i)%RESOURCE%BOUND_FLAG = .false.
935 READ (ndsi, nml=model_grid_nml, iostat=ierr, iomsg=
msg)
937 WRITE (
mdse,
'(A,/A)') &
938 'ERROR: READ_MODEL_GRID_NML: namelist read error', &
945 IF (trim(model(i)%NAME).EQ.
'unset')
THEN
946 WRITE (
mdse,10)
'ERROR: READ_MODEL_GRID_NML: required MODEL(',i,
')%NAME not set'
952 nml_model_grid = model(1:nrgrd)
1036 INTEGER,
INTENT(IN) :: NDSI, NRGRD
1041 INTEGER,
PARAMETER :: MAX_NRGRD = 99
1044 namelist /output_type_nml/ alltype, itype
1046 INTEGER,
SAVE :: IENT = 0
1051 CALL strace (ient,
'READ_OUTPUT_TYPE_NML')
1055 IF (nrgrd.EQ.0)
RETURN
1059 itype(i)%FIELD%LIST =
'unset'
1060 itype(i)%POINT%NAME =
'unset'
1061 itype(i)%POINT%FILE =
'points.list'
1062 itype(i)%TRACK%FORMAT = .true.
1063 itype(i)%PARTITION%X0 = 0
1064 itype(i)%PARTITION%XN = 0
1065 itype(i)%PARTITION%NX = 0
1066 itype(i)%PARTITION%Y0 = 0
1067 itype(i)%PARTITION%YN = 0
1068 itype(i)%PARTITION%NY = 0
1069 itype(i)%PARTITION%FORMAT = .true.
1071 itype(i)%COUPLING%SENT =
'unset'
1072 itype(i)%COUPLING%RECEIVED =
'unset'
1073 itype(i)%COUPLING%COUPLET0 = .false.
1075 itype(i)%RESTART%EXTRA =
'unset'
1077 alltype%FIELD%LIST =
'unset'
1078 alltype%POINT%NAME =
'unset'
1079 alltype%POINT%FILE =
'points.list'
1080 alltype%TRACK%FORMAT = .true.
1081 alltype%PARTITION%X0 = 0
1082 alltype%PARTITION%XN = 0
1083 alltype%PARTITION%NX = 0
1084 alltype%PARTITION%Y0 = 0
1085 alltype%PARTITION%YN = 0
1086 alltype%PARTITION%NY = 0
1087 alltype%PARTITION%FORMAT = .true.
1089 alltype%COUPLING%SENT =
'unset'
1090 alltype%COUPLING%RECEIVED =
'unset'
1091 alltype%COUPLING%COUPLET0 = .false.
1093 alltype%RESTART%EXTRA =
'unset'
1098 READ (ndsi, nml=output_type_nml, iostat=ierr, iomsg=
msg)
1100 WRITE (
mdse,
'(A,/A)') &
1101 'ERROR: READ_OUTPUT_TYPE_NML: namelist read error', &
1102 'ERROR: '//trim(
msg)
1113 READ (ndsi, nml=output_type_nml, iostat=ierr, iomsg=
msg)
1115 WRITE (
mdse,
'(A,/A)') &
1116 'ERROR: READ_OUTPUT_TYPE_NML: namelist read error', &
1117 'ERROR: '//trim(
msg)
1122 nml_output_type = itype(1:nrgrd)
1204 INTEGER,
INTENT(IN) :: NDSI, NRGRD
1209 INTEGER,
PARAMETER :: MAX_NRGRD = 99
1212 namelist /output_date_nml/ alldate, idate
1214 INTEGER,
SAVE :: IENT = 0
1219 CALL strace (ient,
'READ_OUTPUT_DATE_NML')
1223 IF (nrgrd.EQ.0)
RETURN
1227 idate(i)%FIELD%START =
'19680606 000000'
1228 idate(i)%FIELD%STRIDE =
'0'
1229 idate(i)%FIELD%STOP =
'19680607 000000'
1230 idate(i)%FIELD%OUTFFILE =
'0'
1231 idate(i)%POINT%OUTFFILE =
'0'
1232 idate(i)%POINT%START =
'19680606 000000'
1233 idate(i)%POINT%STRIDE =
'0'
1234 idate(i)%POINT%STOP =
'19680607 000000'
1235 idate(i)%TRACK%START =
'19680606 000000'
1236 idate(i)%TRACK%STRIDE =
'0'
1237 idate(i)%TRACK%STOP =
'19680607 000000'
1238 idate(i)%RESTART%START =
'19680606 000000'
1239 idate(i)%RESTART%STRIDE =
'0'
1240 idate(i)%RESTART%STOP =
'19680607 000000'
1241 idate(i)%RESTART2%START =
'19680606 000000'
1242 idate(i)%RESTART2%STRIDE =
'0'
1243 idate(i)%RESTART2%STOP =
'19680607 000000'
1244 idate(i)%BOUNDARY%START =
'19680606 000000'
1245 idate(i)%BOUNDARY%STRIDE =
'0'
1246 idate(i)%BOUNDARY%STOP =
'19680607 000000'
1247 idate(i)%PARTITION%START =
'19680606 000000'
1248 idate(i)%PARTITION%STRIDE =
'0'
1249 idate(i)%PARTITION%STOP =
'19680607 000000'
1251 idate(i)%COUPLING%START =
'19680606 000000'
1252 idate(i)%COUPLING%STRIDE =
'0'
1253 idate(i)%COUPLING%STOP =
'19680607 000000'
1256 alldate%FIELD%START =
'19680606 000000'
1257 alldate%FIELD%STRIDE =
'0'
1258 alldate%FIELD%STOP =
'19680607 000000'
1259 alldate%FIELD%OUTFFILE =
'0'
1260 alldate%POINT%START =
'19680606 000000'
1261 alldate%POINT%STRIDE =
'0'
1262 alldate%POINT%STOP =
'19680607 000000'
1263 alldate%POINT%OUTFFILE =
'0'
1264 alldate%TRACK%START =
'19680606 000000'
1265 alldate%TRACK%STRIDE =
'0'
1266 alldate%TRACK%STOP =
'19680607 000000'
1267 alldate%RESTART%START =
'19680606 000000'
1268 alldate%RESTART%STRIDE =
'0'
1269 alldate%RESTART%STOP =
'19680607 000000'
1270 alldate%RESTART2%START =
'19680606 000000'
1271 alldate%RESTART2%STRIDE =
'0'
1272 alldate%RESTART2%STOP =
'19680607 000000'
1273 alldate%BOUNDARY%START =
'19680606 000000'
1274 alldate%BOUNDARY%STRIDE =
'0'
1275 alldate%BOUNDARY%STOP =
'19680607 000000'
1276 alldate%PARTITION%START =
'19680606 000000'
1277 alldate%PARTITION%STRIDE =
'0'
1278 alldate%PARTITION%STOP =
'19680607 000000'
1280 alldate%COUPLING%START =
'19680606 000000'
1281 alldate%COUPLING%STRIDE =
'0'
1282 alldate%COUPLING%STOP =
'19680607 000000'
1288 READ (ndsi, nml=output_date_nml, iostat=ierr, iomsg=
msg)
1290 WRITE (
mdse,
'(A,/A)') &
1291 'ERROR: READ_OUTPUT_DATE_NML: namelist read error', &
1292 'ERROR: '//trim(
msg)
1303 READ (ndsi, nml=output_date_nml, iostat=ierr, iomsg=
msg)
1305 WRITE (
mdse,
'(A,/A)') &
1306 'ERROR: READ_OUTPUT_DATE_NML: namelist read error', &
1307 'ERROR: '//trim(
msg)
1312 nml_output_date = idate(1:nrgrd)
1394 INTEGER,
INTENT(IN) :: NDSI
1401 namelist /homog_count_nml/ homog_count
1403 namelist /homog_input_nml/ homog_input
1405 INTEGER,
SAVE :: IENT = 0
1410 CALL strace (ient,
'READ_HOMOGENEOUS_NML')
1415 homog_count%N_MOV = 0
1416 homog_count%N_TOT = 0
1421 READ (ndsi, nml=homog_count_nml, iostat=ierr, iomsg=
msg)
1423 WRITE (
mdse,
'(A,/A)') &
1424 'ERROR: READ_HOMOGENEOUS_NML: namelist HOMOG_COUNT read error', &
1425 'ERROR: '//trim(
msg)
1430 homog_count%N_TOT = homog_count%N_MOV
1431 ALLOCATE(homog_input(homog_count%N_TOT))
1432 ALLOCATE(nml_homog_input(homog_count%N_TOT))
1435 IF (homog_count%N_TOT .NE. 0 )
THEN
1436 DO i=1,homog_count%N_TOT
1437 homog_input(i)%NAME =
'unset'
1438 homog_input(i)%DATE =
'19680606 000000'
1439 homog_input(i)%VALUE1 = 0.
1440 homog_input(i)%VALUE2 = 0.
1441 homog_input(i)%VALUE3 = 0.
1447 READ (ndsi, nml=homog_input_nml, iostat=ierr, iomsg=
msg)
1449 WRITE (
mdse,
'(A,/A)') &
1450 'ERROR: READ_HOMOGENEOUS_NML: namelist HOMOG_INPUT_NML read error', &
1451 'ERROR: '//trim(
msg)
1456 nml_homog_count = homog_count
1457 nml_homog_input = homog_input
1540 INTEGER,
SAVE :: IENT = 0
1544 CALL strace (ient,
'REPORT_DOMAIN_NML')
1547 WRITE (
msg,
'(A)')
'DOMAIN % '
1549 WRITE (
ndsn,11) trim(
msg),
'NRINP = ', nml_domain%NRINP
1550 WRITE (
ndsn,11) trim(
msg),
'NRGRD = ', nml_domain%NRGRD
1551 WRITE (
ndsn,13) trim(
msg),
'UNIPTS = ', nml_domain%UNIPTS
1552 WRITE (
ndsn,11) trim(
msg),
'IOSTYP = ', nml_domain%IOSTYP
1553 WRITE (
ndsn,13) trim(
msg),
'UPPROC = ', nml_domain%UPPROC
1554 WRITE (
ndsn,13) trim(
msg),
'PSHARE = ', nml_domain%PSHARE
1555 WRITE (
ndsn,13) trim(
msg),
'FLGHG1 = ', nml_domain%FLGHG1
1556 WRITE (
ndsn,13) trim(
msg),
'FLGHG2 = ', nml_domain%FLGHG2
1557 WRITE (
ndsn,10) trim(
msg),
'START = ', trim(nml_domain%START)
1558 WRITE (
ndsn,10) trim(
msg),
'STOP = ', trim(nml_domain%STOP)
1560 10
FORMAT (a,2x,a,a)
1561 11
FORMAT (a,2x,a,i8)
1562 13
FORMAT (a,2x,a,l1)
1641 INTEGER,
INTENT(IN) :: NRINP
1647 INTEGER,
SAVE :: IENT = 0
1651 CALL strace (ient,
'REPORT_INPUT_GRID_NML')
1655 WRITE (
msg,
'(A,I0.2,A)')
'INPUT GRID ',i,
' % '
1657 WRITE (
ndsn,10) trim(
msg),
'NAME = ', trim(nml_input_grid(i)%NAME)
1658 WRITE (
ndsn,13) trim(
msg),
'FORCING % WATER_LEVELS = ', nml_input_grid(i)%FORCING%WATER_LEVELS
1659 WRITE (
ndsn,13) trim(
msg),
'FORCING % CURRENTS = ', nml_input_grid(i)%FORCING%CURRENTS
1660 WRITE (
ndsn,13) trim(
msg),
'FORCING % WINDS = ', nml_input_grid(i)%FORCING%WINDS
1661 WRITE (
ndsn,13) trim(
msg),
'FORCING % ATM_MOMENTUM = ', nml_input_grid(i)%FORCING%ATM_MOMENTUM
1662 WRITE (
ndsn,13) trim(
msg),
'FORCING % AIR_DENSITY = ', nml_input_grid(i)%FORCING%AIR_DENSITY
1663 WRITE (
ndsn,13) trim(
msg),
'FORCING % ICE_CONC = ', nml_input_grid(i)%FORCING%ICE_CONC
1664 WRITE (
ndsn,13) trim(
msg),
'FORCING % ICE_PARAM1 = ', nml_input_grid(i)%FORCING%ICE_PARAM1
1665 WRITE (
ndsn,13) trim(
msg),
'FORCING % ICE_PARAM2 = ', nml_input_grid(i)%FORCING%ICE_PARAM2
1666 WRITE (
ndsn,13) trim(
msg),
'FORCING % ICE_PARAM3 = ', nml_input_grid(i)%FORCING%ICE_PARAM3
1667 WRITE (
ndsn,13) trim(
msg),
'FORCING % ICE_PARAM4 = ', nml_input_grid(i)%FORCING%ICE_PARAM4
1668 WRITE (
ndsn,13) trim(
msg),
'FORCING % ICE_PARAM5 = ', nml_input_grid(i)%FORCING%ICE_PARAM5
1669 WRITE (
ndsn,13) trim(
msg),
'FORCING % MUD_DENSITY = ', nml_input_grid(i)%FORCING%MUD_DENSITY
1670 WRITE (
ndsn,13) trim(
msg),
'FORCING % MUD_THICKNESS = ', nml_input_grid(i)%FORCING%MUD_THICKNESS
1671 WRITE (
ndsn,13) trim(
msg),
'FORCING % MUD_VISCOSITY = ', nml_input_grid(i)%FORCING%MUD_VISCOSITY
1672 WRITE (
ndsn,13) trim(
msg),
'ASSIM % MEAN = ', nml_input_grid(i)%ASSIM%MEAN
1673 WRITE (
ndsn,13) trim(
msg),
'ASSIM % SPEC1D = ', nml_input_grid(i)%ASSIM%SPEC1D
1674 WRITE (
ndsn,13) trim(
msg),
'ASSIM % SPEC2D = ', nml_input_grid(i)%ASSIM%SPEC2D
1678 10
FORMAT (a,2x,a,a)
1679 13
FORMAT (a,2x,a,l1)
1758 INTEGER,
INTENT(IN) :: NRGRD
1764 INTEGER,
SAVE :: IENT = 0
1768 CALL strace (ient,
'REPORT_MODEL_GRID_NML')
1772 WRITE (
msg,
'(A,I0.4,A)')
'MODEL GRID ',i,
' % '
1774 WRITE (
ndsn,10) trim(
msg),
'NAME = ', trim(nml_model_grid(i)%NAME)
1775 WRITE (
ndsn,10) trim(
msg),
'FORCING % WATER_LEVELS = ', trim(nml_model_grid(i)%FORCING%WATER_LEVELS)
1776 WRITE (
ndsn,10) trim(
msg),
'FORCING % CURRENTS = ', trim(nml_model_grid(i)%FORCING%CURRENTS)
1777 WRITE (
ndsn,10) trim(
msg),
'FORCING % WINDS = ', trim(nml_model_grid(i)%FORCING%WINDS)
1778 WRITE (
ndsn,10) trim(
msg),
'FORCING % ATM_MOMENTUM = ', trim(nml_model_grid(i)%FORCING%ATM_MOMENTUM)
1779 WRITE (
ndsn,10) trim(
msg),
'FORCING % AIR_DENSITY = ', trim(nml_model_grid(i)%FORCING%AIR_DENSITY)
1780 WRITE (
ndsn,10) trim(
msg),
'FORCING % ICE_CONC = ', trim(nml_model_grid(i)%FORCING%ICE_CONC)
1781 WRITE (
ndsn,10) trim(
msg),
'FORCING % ICE_PARAM1 = ', trim(nml_model_grid(i)%FORCING%ICE_PARAM1)
1782 WRITE (
ndsn,10) trim(
msg),
'FORCING % ICE_PARAM2 = ', trim(nml_model_grid(i)%FORCING%ICE_PARAM2)
1783 WRITE (
ndsn,10) trim(
msg),
'FORCING % ICE_PARAM3 = ', trim(nml_model_grid(i)%FORCING%ICE_PARAM3)
1784 WRITE (
ndsn,10) trim(
msg),
'FORCING % ICE_PARAM4 = ', trim(nml_model_grid(i)%FORCING%ICE_PARAM4)
1785 WRITE (
ndsn,10) trim(
msg),
'FORCING % ICE_PARAM5 = ', trim(nml_model_grid(i)%FORCING%ICE_PARAM5)
1786 WRITE (
ndsn,10) trim(
msg),
'FORCING % MUD_DENSITY = ', trim(nml_model_grid(i)%FORCING%MUD_DENSITY)
1787 WRITE (
ndsn,10) trim(
msg),
'FORCING % MUD_THICKNESS = ', trim(nml_model_grid(i)%FORCING%MUD_THICKNESS)
1788 WRITE (
ndsn,10) trim(
msg),
'FORCING % MUD_VISCOSITY = ', trim(nml_model_grid(i)%FORCING%MUD_VISCOSITY)
1789 WRITE (
ndsn,10) trim(
msg),
'ASSIM % MEAN = ', trim(nml_model_grid(i)%ASSIM%MEAN)
1790 WRITE (
ndsn,10) trim(
msg),
'ASSIM % SPEC1D = ', trim(nml_model_grid(i)%ASSIM%SPEC1D)
1791 WRITE (
ndsn,10) trim(
msg),
'ASSIM % SPEC2D = ', trim(nml_model_grid(i)%ASSIM%SPEC2D)
1792 WRITE (
ndsn,11) trim(
msg),
'RESOURCE % RANK_ID = ', nml_model_grid(i)%RESOURCE%RANK_ID
1793 WRITE (
ndsn,11) trim(
msg),
'RESOURCE % GROUP_ID = ', nml_model_grid(i)%RESOURCE%GROUP_ID
1794 WRITE (
ndsn,12) trim(
msg),
'RESOURCE % COMM_FRAC = ', nml_model_grid(i)%RESOURCE%COMM_FRAC(1), &
1795 nml_model_grid(i)%RESOURCE%COMM_FRAC(2)
1796 WRITE (
ndsn,13) trim(
msg),
'RESOURCE % BOUND_FLAG = ', nml_model_grid(i)%RESOURCE%BOUND_FLAG
1800 10
FORMAT (a,2x,a,a)
1801 11
FORMAT (a,2x,a,i8)
1802 12
FORMAT (a,2x,a,
'(',f5.2,
',',f5.2,
' )')
1803 13
FORMAT (a,2x,a,l1)
1882 INTEGER,
INTENT(IN) :: NRGRD
1888 INTEGER,
SAVE :: IENT = 0
1892 CALL strace (ient,
'REPORT_OUTPUT_TYPE_NML')
1896 WRITE (
msg,
'(A,I1,A)')
'OUTPUT TYPE MODEL GRID',i,
' % '
1898 WRITE (
ndsn,10) trim(
msg),
'FIELD % LIST = ', trim(nml_output_type(i)%FIELD%LIST)
1899 WRITE (
ndsn,10) trim(
msg),
'POINT % NAME = ', trim(nml_output_type(i)%POINT%NAME)
1900 WRITE (
ndsn,10) trim(
msg),
'POINT % FILE = ', trim(nml_output_type(i)%POINT%FILE)
1901 WRITE (
ndsn,13) trim(
msg),
'TRACK % FORMAT = ', nml_output_type(i)%TRACK%FORMAT
1902 WRITE (
ndsn,11) trim(
msg),
'PARTITION % X0 = ', nml_output_type(i)%PARTITION%X0
1903 WRITE (
ndsn,11) trim(
msg),
'PARTITION % XN = ', nml_output_type(i)%PARTITION%XN
1904 WRITE (
ndsn,11) trim(
msg),
'PARTITION % NX = ', nml_output_type(i)%PARTITION%NX
1905 WRITE (
ndsn,11) trim(
msg),
'PARTITION % Y0 = ', nml_output_type(i)%PARTITION%Y0
1906 WRITE (
ndsn,11) trim(
msg),
'PARTITION % YN = ', nml_output_type(i)%PARTITION%YN
1907 WRITE (
ndsn,11) trim(
msg),
'PARTITION % NY = ', nml_output_type(i)%PARTITION%NY
1908 WRITE (
ndsn,13) trim(
msg),
'PARTITION % FORMAT = ', nml_output_type(i)%PARTITION%FORMAT
1910 WRITE (
ndsn,10) trim(
msg),
'COUPLING % SENT = ', trim(nml_output_type(i)%COUPLING%SENT)
1911 WRITE (
ndsn,10) trim(
msg),
'COUPLING % RECEIVED = ', trim(nml_output_type(i)%COUPLING%RECEIVED)
1912 WRITE (
ndsn,13) trim(
msg),
'COUPLING % COUPLET0 = ', nml_output_type(i)%COUPLING%COUPLET0
1914 WRITE (
ndsn,10) trim(
msg),
'RESTART % EXTRA = ', trim(nml_output_type(i)%RESTART%EXTRA)
1918 10
FORMAT (a,2x,a,a)
1919 11
FORMAT (a,2x,a,i8)
1920 13
FORMAT (a,2x,a,l1)
1998 INTEGER,
INTENT(IN) :: NRGRD
2004 INTEGER,
SAVE :: IENT = 0
2008 CALL strace (ient,
'REPORT_OUTPUT_DATE_NML')
2012 WRITE (
msg,
'(A,I1,A)')
'OUTPUT DATE MODEL GRID',i,
' % '
2014 WRITE (
ndsn,10) trim(
msg),
'FIELD % START = ', trim(nml_output_date(i)%FIELD%START)
2015 WRITE (
ndsn,10) trim(
msg),
'FIELD % STRIDE = ', trim(nml_output_date(i)%FIELD%STRIDE)
2016 WRITE (
ndsn,10) trim(
msg),
'FIELD % STOP = ', trim(nml_output_date(i)%FIELD%STOP)
2017 WRITE (
ndsn,10) trim(
msg),
'POINT % START = ', trim(nml_output_date(i)%POINT%START)
2018 WRITE (
ndsn,10) trim(
msg),
'POINT % STRIDE = ', trim(nml_output_date(i)%POINT%STRIDE)
2019 WRITE (
ndsn,10) trim(
msg),
'POINT % STOP = ', trim(nml_output_date(i)%POINT%STOP)
2020 WRITE (
ndsn,10) trim(
msg),
'TRACK % START = ', trim(nml_output_date(i)%TRACK%START)
2021 WRITE (
ndsn,10) trim(
msg),
'TRACK % STRIDE = ', trim(nml_output_date(i)%TRACK%STRIDE)
2022 WRITE (
ndsn,10) trim(
msg),
'TRACK % STOP = ', trim(nml_output_date(i)%TRACK%STOP)
2023 WRITE (
ndsn,10) trim(
msg),
'RESTART % START = ', trim(nml_output_date(i)%RESTART%START)
2024 WRITE (
ndsn,10) trim(
msg),
'RESTART % STRIDE = ', trim(nml_output_date(i)%RESTART%STRIDE)
2025 WRITE (
ndsn,10) trim(
msg),
'RESTART % STOP = ', trim(nml_output_date(i)%RESTART%STOP)
2026 WRITE (
ndsn,10) trim(
msg),
'RESTART2 % START = ', trim(nml_output_date(i)%RESTART2%START)
2027 WRITE (
ndsn,10) trim(
msg),
'RESTART2 % STRIDE = ', trim(nml_output_date(i)%RESTART2%STRIDE)
2028 WRITE (
ndsn,10) trim(
msg),
'RESTART2 % STOP = ', trim(nml_output_date(i)%RESTART2%STOP)
2029 WRITE (
ndsn,10) trim(
msg),
'BOUNDARY % START = ', trim(nml_output_date(i)%BOUNDARY%START)
2030 WRITE (
ndsn,10) trim(
msg),
'BOUNDARY % STRIDE = ', trim(nml_output_date(i)%BOUNDARY%STRIDE)
2031 WRITE (
ndsn,10) trim(
msg),
'BOUNDARY % STOP = ', trim(nml_output_date(i)%BOUNDARY%STOP)
2032 WRITE (
ndsn,10) trim(
msg),
'PARTITION % START = ', trim(nml_output_date(i)%PARTITION%START)
2033 WRITE (
ndsn,10) trim(
msg),
'PARTITION % STRIDE = ', trim(nml_output_date(i)%PARTITION%STRIDE)
2034 WRITE (
ndsn,10) trim(
msg),
'PARTITION % STOP = ', trim(nml_output_date(i)%PARTITION%STOP)
2036 WRITE (
ndsn,10) trim(
msg),
'COUPLING % START = ', trim(nml_output_date(i)%COUPLING%START)
2037 WRITE (
ndsn,10) trim(
msg),
'COUPLING % STRIDE = ', trim(nml_output_date(i)%COUPLING%STRIDE)
2038 WRITE (
ndsn,10) trim(
msg),
'COUPLING % STOP = ', trim(nml_output_date(i)%COUPLING%STOP)
2043 10
FORMAT (a,2x,a,a)
2127 INTEGER,
SAVE :: IENT = 0
2131 CALL strace (ient,
'REPORT_HOMOGENEOUS_NML')
2134 WRITE (
msg,
'(A)')
'HOMOG_COUNT % '
2136 WRITE (
ndsn,11) trim(
msg),
'N_MOV = ', nml_homog_count%N_MOV
2138 IF (nml_homog_count%N_TOT .NE. 0)
THEN
2139 DO i=1,nml_homog_count%N_TOT
2140 WRITE (
msg,
'(A,I5,A)')
'HOMOG_INPUT(',i,
') % '
2142 WRITE (
ndsn,10) trim(
msg),
'NAME = ', trim(nml_homog_input(i)%NAME)
2143 WRITE (
ndsn,10) trim(
msg),
'DATE = ', trim(nml_homog_input(i)%DATE)
2144 WRITE (
ndsn,14) trim(
msg),
'VALUE1 = ', nml_homog_input(i)%VALUE1
2145 WRITE (
ndsn,14) trim(
msg),
'VALUE2 = ', nml_homog_input(i)%VALUE2
2146 WRITE (
ndsn,14) trim(
msg),
'VALUE3 = ', nml_homog_input(i)%VALUE3
2152 10
FORMAT (a,2x,a,a)
2153 11
FORMAT (a,2x,a,i8)
2154 14
FORMAT (a,2x,a,f8.2)