Reading/writing of model definition file.
More...
|
| subroutine | w3iogr (INXOUT, NDSM, IMOD, FEXT ifdef W3_ASCII |
| | Reading and writing of the model definition file. More...
|
| |
Reading/writing of model definition file.
Arrays allocated here on read or ing ww3_grid on write.
- Author
- H. L. Tolman
-
F. Ardhuin
- Date
- 15-Apr-2020
◆ w3iogr()
| subroutine w3iogrmd::w3iogr |
( |
character, dimension(*), intent(in) |
INXOUT, |
|
|
integer, intent(in) |
NDSM, |
|
|
integer, intent(in), optional |
IMOD, |
|
|
character, dimension(*), intent(in), optional |
FEXT, |
|
|
|
ifdef, |
|
|
|
W3_ASCII |
|
) |
| |
Reading and writing of the model definition file.
The file is opened within the routine, the name is pre-defined and the unit number is given in the parameter list. The model definition file is written using UNFORMATTED write statements.
- Parameters
-
| [in] | INXOUT | Test string for read/write. |
| [in] | NDSM | File unit number. |
| [in] | IMOD | Model number for W3GDAT etc. |
| [in] | FEXT | File extension to be used. |
- Author
- H. L. Tolman
-
F. Ardhuin
- Date
- 19-Oct-2020
Definition at line 117 of file w3iogrmd.F90.
321 INTEGER,
INTENT(IN) :: NDSM
322 INTEGER,
INTENT(IN),
OPTIONAL :: IMOD
323 CHARACTER,
INTENT(IN) :: INXOUT*(*)
324 CHARACTER,
INTENT(IN),
OPTIONAL :: FEXT*(*)
326 INTEGER,
INTENT(IN),
OPTIONAL :: NDSA
332 INTEGER :: IGRD, IERR, I, J, MTH, MK, ISEA, IX, IY
333 INTEGER :: IEXT, IPRE
335 INTEGER :: IK, ITH, IK2, ITH2
337 INTEGER,
ALLOCATABLE :: MAPTMP(:,:)
339 INTEGER :: IERR_MPI, IP
342 INTEGER,
SAVE :: IENT = 0
347 LOGICAL :: WRITE, FLTEST = .false., testll, &
349 LOGICAL,
SAVE :: FLINP = .false. , fldisp = .false., &
351 CHARACTER(LEN=10) :: VERTST
352 CHARACTER(LEN=13) :: TEMPXT
353 CHARACTER(LEN=30) :: TNAME0, TNAME1, TNAME2, TNAME3, &
354 TNAME4, TNAME5, TNAME6, &
355 TNAMEP, TNAMEG, TNAMEF, TNAMEI
356 CHARACTER(LEN=30) :: FNAME0, FNAME1, FNAME2, FNAME3, &
357 FNAME4, FNAME5, FNAME6, &
358 FNAMEP, FNAMEG, FNAMEF, FNAMEI
359 CHARACTER(LEN=35) :: IDTST
360 CHARACTER(LEN=60) :: MESSAGE(5)
363 REAL,
ALLOCATABLE :: XGRD4(:,:), YGRD4(:,:)
371 CALL strace (ient,
'W3IOGR')
374 call print_memcheck(memunit,
'memcheck_____:'//
' WIOGR SECTION 1')
376 message =(/
' MOD DEF FILE WAS GENERATED WITH A DIFFERENT ', &
377 ' WW3 VERSION OR USING A DIFFERENT SWITCH FILE. ', &
378 ' MAKE SURE WW3_GRID IS COMPILED WITH SAME SWITCH', &
379 ' AS WW3_SHEL OR WW3_MULTI, RUN WW3_GRID AGAIN ', &
380 ' AND THEN TRY AGAIN THE PROGRAM YOU JUST USED. '/)
382 tnamef =
'------------------------------'
383 tname0 =
'------------------------------'
384 tname1 =
'------------------------------'
385 tname2 =
'------------------------------'
386 tname3 =
'------------------------------'
387 tname4 =
'------------------------------'
388 tname5 =
'------------------------------'
389 tname6 =
'------------------------------'
390 tnamep =
'------------------------------'
391 tnameg =
'------------------------------'
392 tnamei =
'------------------------------'
395 tnamef =
'Wu (1980) '
398 tnamef =
'Tolman and Chalikov (1996) '
401 tnamef =
'T and C(1996) with cap on Cd '
404 tnamef =
'Hwang (2011) with cap on Cd '
407 tnamef =
'Direct use of stress '
410 tname0 =
'Not defined '
413 tname0 =
'Cavaleri and M.-R. (1982) '
416 tname1 =
'Not defined '
419 tname1 =
'WAM cycles 1 through 3 '
422 tname1 =
'Tolman and Chalikov (1996) '
425 tname1 =
'WAM cycle 4+ '
428 tname1 =
'Ardhuin et al. (2009+) '
431 tname1 =
'BYDB input and dissipation '
434 tname2 =
'Not defined '
437 tname2 =
'Discrete Interaction Approx. '
440 tname2 =
'Exact nonlinear interactions '
443 tname2 =
'Generalized Multiple DIA '
446 tname2 =
'Two Scaled Approximation '
449 tname2 =
'Generalized Kinetic Equation '
452 tname3 =
'Not defined '
461 tname3 =
'Muddy Bed (D & L) '
464 tnamei =
'Ice sink term (uniform k_i) '
467 tnamei =
'Ice sink term (Lui et al) '
470 tnamei =
'Ice sink term (Wang and Shen) '
473 tnamei =
'Ice sink term (empirical) '
476 tnamei =
'Ice sink term (eff. medium) '
479 tname4 =
'Not defined '
482 tname4 =
'Battjes and Janssen (1978) '
485 tname5 =
'Not defined '
488 tname6 =
'Not defined '
491 tnamep =
'No propagation '
494 tnamep =
'First order upstream '
497 tnamep =
'3rd order UQ scheme '
500 tnamep =
'2nd order UNO scheme '
503 tnameg =
'No GSE aleviation '
506 tnameg =
'No GSE aleviation (1up prop) '
509 tnameg =
'Diffusion operator '
512 tnameg =
'Averaging operator '
536 IF (
PRESENT(imod) )
THEN
542 IF (
PRESENT(fext) )
THEN
548 IF (inxout.NE.
'READ' .AND. inxout.NE.
'WRITE' &
549 .AND. inxout.NE.
'GRID')
THEN
554 WRITE = inxout .EQ.
'WRITE'
557 WRITE (
ndst,9000) inxout,
WRITE, ndsm, igrd, tempxt
563 call print_memcheck(memunit,
'memcheck_____:'//
' WIOGR SECTION 2')
573 form=
'UNFORMATTED', convert=
file_endian,err=800,iostat=ierr)
576 form=
'FORMATTED',err=800,iostat=ierr)
591 fname4, fname5, fname6, fnamep, fnameg, &
595 'IDSTR, VERGRD, NX, NY, NSEA, NTH, NK, &
596 NBI, NFBPO, GNAME, FNAME0, FNAME1, FNAME2, FNAME3, &
597 FNAME4, FNAME5, FNAME6, FNAMEP, FNAMEG, &
601 fname4, fname5, fname6, fnamep, fnameg, &
608 WRITE (ndsa,*)
'NCel, NUFc, NVFc, NRLv, MRFct:', &
613 WRITE (ndsa,*)
'NGLO, NARC, NBGL, NBAC, NBSMC:', &
622 '(NBO(I),I=0,NFBPO), (NBO2(I),I=0,NFBPO):', &
628 fname4, fname5, fname6, fnamep, fnameg, &
634 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
635 idtst, vertst,
nx,
ny,
nsea, mth, mk, &
637 fname4, fname5, fname6, fnamep, fnameg, &
641 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
643 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
654 fname4, fname5, fname6, fnamep, fnameg, &
658 IF ( idtst .NE. idstr )
THEN
660 WRITE (
ndse,901) idtst, idstr
663 IF ( vertst .NE. vergrd )
THEN
665 WRITE (
ndse,902) vertst, vergrd
668 IF (
nfbpo .GT. 9 )
THEN
673 IF ( fname0 .NE. tname0 )
THEN
675 WRITE (
ndse,905) 0,
filext(:iext), fname0, tname0, &
679 IF ( fname1 .NE. tname1 )
THEN
681 WRITE (
ndse,905) 1,
filext(:iext), fname1, tname1, &
685 IF ( fname2 .NE. tname2 )
THEN
687 WRITE (
ndse,905) 2,
filext(:iext), fname2, tname2, &
691 IF ( fname3 .NE. tname3 )
THEN
693 WRITE (
ndse,905) 3,
filext(:iext), fname3, tname3, &
697 IF ( fnamei .NE. tnamei )
THEN
699 WRITE (
ndse,905) 3,
filext(:iext), fnamei, tnamei, &
703 IF ( fname4 .NE. tname4 )
THEN
705 WRITE (
ndse,905) 4,
filext(:iext), fname4, tname4, &
709 IF ( fname5 .NE. tname5 )
THEN
711 WRITE (
ndse,905) 5,
filext(:iext), fname5, tname5, &
715 IF ( fname6 .NE. tname6 )
THEN
717 WRITE (
ndse,905) 6,
filext(:iext), fname6, tname6, &
721 IF ( fnamep .NE. tnamep )
THEN
723 WRITE (
ndse,906) fnamep, tnamep
726 IF ( fnameg .NE. tnameg )
THEN
728 WRITE (
ndse,907) fnameg, tnameg, message
731 IF ( fnamef .NE. tnamef )
THEN
733 WRITE (
ndse,908)
filext(:iext), fnamef, tnamef, message
737 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
745 call print_memcheck(memunit,
'memcheck_____:'//
' WIOGR SECTION 3')
750 ALLOCATE ( maptmp(
ny,
nx) )
758 'GTYPE, FLAGLL, ICLOSE:', &
764 SELECT CASE (
gtype )
776 REAL(XGRD),
REAL(YGRD)
779 'REAL(XGRD), REAL(YGRD):', &
780 REAL(XGRD),
REAL(YGRD)
802 'FSN, FSPSI,FSFCT,FSNIMP,FSTOTALIMP,FSTOTALEXP, &
803 FSBCCFL, FSREFRACTION, FSFREQSHIFT, FSSOURCE, &
804 DO_CHANGE_WLV, SOLVERTHR_STP, CRIT_DEP_STP, &
805 NTRI,COUNTOT, COUNTRI, NNZ, &
806 B_JGS_TERMINATE_MAXITER, &
807 B_JGS_TERMINATE_DIFFERENCE, &
808 B_JGS_TERMINATE_NORM, &
810 B_JGS_BLOCK_GAUSS_SEIDEL, &
817 B_JGS_SOURCE_NONLINEAR:', &
846 'X0, Y0, SX, SY, DXYMAX, XGRD, YGRD, TRIGP, TRIA, &
847 LEN, IEN, ANGLE0, ANGLE, SI, MAXX, MAXY, &
848 DXYMAX, INDEX_CELL, CCON, COUNTCON, IE_CELL, &
849 POS_CELL, IOBP, IOBPA, IOBDP, IOBPD, IAA, JAA, POSI:', &
861 'ZB, MAPTMP, MAPFS, MAPSF, TRFLAG:', &
873 WRITE (ndsa,*)
'NLvCel, NLvUFc, NLvVFc:', &
875 WRITE (ndsa,*)
'IJKCel, IJKUFc, IJKVFc, ISMCBP:', &
877 WRITE (ndsa,*)
'ICLBAC:', &
879 WRITE (ndsa,*)
'ANGARC:', &
881 WRITE (ndsa,*)
'CTRNX, CTRNY, CLATF:', &
887 WRITE (
ndse,
"(' CTRNXY transparency write for 2x', I9)")
ncel
906 'DTCFL, DTCFLI, DTMAX, DTMIN, DMIN, CTMAX, &
907 FICE0, FICEN, FICEL, PFMOVE, FLDRY, FLCX, FLCY, FLCTH, &
908 FLCK, FLSOU, FLBPI, FLBPO, CLATS, CLATIS, CTHG0S, &
909 STEXU, STEYU, STEDU, IICEHMIN, IICEHINIT, IICEDISP, &
910 ICESCALES(1:4), CALTYPE, CMPRTRCK, IICEHFAC, IICEHDISP,&
911 IICEDDISP, IICEFDISP, BTBETA, &
912 AAIRCMIN, AAIRGB:', &
924 WRITE(ndsa,*)
'GRIDSHIFT:', &
930 WRITE (ndsa,*)
'NITERSEC1:', &
938 WRITE (ndsa,*)
'PoLat, PoLon, AnglD, FLAGUNR:', &
946 call print_memcheck(memunit,
'memcheck_____:'//
' WIOGR SECTION 4')
948 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
960 SELECT CASE (
gtype )
963 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
966 xgrd(:,ix) = real(
x0 + real(ix-1)*
sx)
969 ygrd(iy,:) = real(
y0 + real(iy-1)*
sy)
972 ALLOCATE(xgrd4(
ny,
nx),ygrd4(
ny,
nx)); xgrd4 = 0.; ygrd4 = 0.
973 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
977 DEALLOCATE(xgrd4, ygrd4)
982 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1002 call print_memcheck(memunit,
'memcheck_____:'//
' WIOGR SECTION 5')
1004 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1009 call print_memcheck(memunit,
'memcheck_____:'//
' WIOGR SECTION 6')
1014 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1019 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1021 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1035 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1037 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1039 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1044 mapsta = mod(maptmp+2,8) - 2
1047 IF (
trflag .NE. 0 )
THEN
1048 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) TRNX,
trny
1057 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1066 READ(ndsm,
END=801,ERR=802,IOSTAT=IERR)
gridshift
1068 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR)
nitersec1
1073 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) PoLat, PoLon, AnglD,
flagunr
1078 call print_memcheck(memunit,
'memcheck_____:'//
' WIOGR SECTION 7')
1082 WRITE (
ndst,9011)
'MAPSTA'
1083 DO iy=min(
ny,20), 1, -1
1086 WRITE (
ndst,9011)
'MAPST2'
1087 DO iy=min(
ny,20), 1, -1
1090 WRITE (
ndst,9011)
'MAPFS'
1091 DO iy=min(
ny,20), 1, -1
1094 IF (
trflag .NE. 0 )
THEN
1095 WRITE (
ndst,9011)
'TRNX'
1096 DO iy=min(
ny,20), 1, -1
1097 WRITE (
ndst,9014) (
trnx(iy,ix),ix=1,min(
nx,12))
1099 WRITE (
ndst,9011)
'TRNY'
1100 DO iy=min(
ny,20), 1, -1
1101 WRITE (
ndst,9014) (
trny(iy,ix),ix=1,min(
nx,12))
1106 DEALLOCATE ( maptmp )
1114 WRITE (
ndst,9017) (
clats(isea),isea=1,1), &
1128 'MAPWN, MAPTH, DTH, TH, ESIN, ECOS, ES2, ESC, EC2, &
1129 XFR, FR1, SIG, SIG2, DSIP, DSII, DDEN, DDEN2, FTE, &
1130 FTF, FTWN, FTTR, FTWL, FACTI1, FACTI2, FACHFA, FACHFE:', &
1137 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1159 'E3DF, P2MSF, US3DF,USSPF, USSP_WN:', &
1163 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1167 IF ( inxout .EQ.
'GRID' )
THEN
1180 'XBPO, YBPO, RDBPO, IPBPO, ISBPO:', &
1185 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1210 'IHMAX, HSPMIN, WSMULT, WSCUT, FLCOMB, NOSWLL, &
1216 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1234 'FACP, XREL, XFLT, FXFM, FXPM, XFT, XFC, FACSD, FHMAX, &
1235 FFACBERG, DELAB, FWTABLE:', &
1262 'RREF, REFPARS, REFLC, REFLD:', &
1298 'IC4PARS,IC4_KI,IC4_FC,IC4_CN,IC4_FMIN,IC4_KIBK:', &
1312 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1316 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1320 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1324 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1328 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1332 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1336 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1340 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1344 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1365 WRITE (ndsa,*)
' NITTIN, CINXSI:', &
1369 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) NITTIN,
cinxsi
1380 'NITTIN, CINXSI, CD_MAX, CAP_ID:', &
1384 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1394 WRITE (ndsa,*)
' FLX4A0:', &
1398 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR)
flx4a0
1407 WRITE (ndsa,*)
' SLNC1, FSPM, FSHF:', &
1411 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) SLNC1, FSPM,
fshf
1420 WRITE (ndsa,*)
' SINC1, SDSC1:', &
1424 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) SINC1,
sdsc1
1439 SHSTAB, OFSTAB, CCNG, CCPS, FFNG, FFPS, &
1440 CDSA0, CDSA1, CDSA2, SDSALN, &
1441 CDSB0, CDSB1, CDSB2, CDSB3, FPIMIN, XFH, XF1, XF2:',&
1448 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1453 IF ( .NOT. flinp )
CALL inptab
1456 IF ( fltest )
WRITE (
ndst,9050) &
1472 'ZZWND, AALPHA, ZZ0MAX, BBETA, SSINTHP, ZZALP, &
1473 SSWELLF, SSDSC1, WWNMEANP, WWNMEANPTAIL, SSTXFTF, &
1474 SSTXFTFTAIL, SSTXFTWN, &
1475 DDELTA1, DDELTA2, SSTXFTF, SSTXFTWN, &
1484 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1490 IF ( .NOT. flinp )
THEN
1514 'ZZWND, AALPHA, ZZ0MAX, BBETA, SSINTHP, ZZALP, &
1515 TTAUWSHELTER, SSWELLFPAR, SSWELLF, SSINBR, &
1517 SSDSISO, SSDSBR, SSDSBT, SSDSBM, SSDSP, &
1518 SSDSCOS, SSDSDTH, WWNMEANP, WWNMEANPTAIL,SSTXFTF, &
1519 SSTXFTFTAIL, SSTXFTWN, SSTXFTF, SSTXFTWN, &
1520 SSDSBRF1, SSDSBRF2, SSDSBRFDF,SSDSBCK, SSDSABK, &
1521 SSDSPBK, SSDSBINT, FFXPM, FFXFM, FFXFA, &
1523 IKTAB, DCKI, QBI, SATINDICES, SATWEIGHTS, &
1524 DIKCUMUL, CUMULW, SINTAILPAR, CAPCHNK:', &
1542 WRITE (ndsa,*)
'DELUST, DELTAIL, DELTAUW, DELU, DELALP,&
1550 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1564 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1578 WRITE (ndsa,*)
'SIN6A0, SDS6ET, SDS6A1, SDS6A2, &
1579 SDS6P1, SDS6P2, SWL6S6, SWL6B1, SWL6CSTB1, &
1586 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1603 'SNLC1, LAM, KDCON, KDMN, SNLS1, SNLS2, SNLS3, &
1604 IQTPE, NLTAIL, GQNF1, GQNT1, &
1605 GQNQ_OM2, GQTHRSAT, GQTHRCOU, GQAMP:', &
1611 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1627 WRITE (ndsa,*)
'IQTPE, NLTAIL, NDPTHS:', &
1629 WRITE (ndsa,*)
'DPTHNL:', &
1633 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1638 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR)
dpthnl
1651 WRITE (ndsa,*)
'SNLNQ, SNLMSC, SNLNSC, SNLSFD, SNLSFS:',&
1653 WRITE (ndsa,*)
'SNLL(1:SNLNQ), SNLM(1:SNLNQ), &
1654 SNLT(1:SNLNQ), SNLCD(1:SNLNQ), &
1661 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1674 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1691 WRITE (ndsa,*)
'ITSA, IALT:', &
1695 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1708 WRITE (ndsa,*)
'QR5DPT, QR5OML, QI5DIS, QI5KEV, &
1709 QI5NNZ, QI5IPL, QI5PMX:', &
1714 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1729 'CNLSA, CNLSC, CNLSFM, CNLSC1, CNLSC2, CNLSC3:', &
1733 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1736 IF ( fltest )
WRITE (
ndst,9251) &
1741 IF ( .NOT.
WRITE )
THEN
1742 IF (
iqtpe.GT.0)
THEN
1750 IF ( .NOT.
WRITE )
CALL insnl3
1753 IF ( .NOT.
WRITE )
CALL insnls
1759 IF ( flsnl2 .AND. .NOT.
WRITE )
THEN
1766 IF ( .NOT.
WRITE )
CALL insnl2
1769 IF ( flsnl2 .AND. .NOT.
WRITE )
THEN
1782 WRITE (ndsa,*)
'SBTC1:',
sbtc1
1785 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR)
sbtc1
1797 'SBTCX, SED_D50, SED_PSIC:', &
1801 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1808 call print_memcheck(memunit,
'memcheck_____:'//
' WIOGR SECTION 8')
1815 'SDBC1, SDBC2, FDONLY:', &
1819 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1831 WRITE (ndsa,*)
'UOSTFILELOCAL, UOSTFILESHADOW, &
1832 UOSTFACTORLOCAL, UOSTFACTORSHADOW:', &
1837 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1856 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) IS1C1,
is1c2
1864 WRITE (ndsa,*)
'IS3PARS:',
is2pars
1867 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR)
is2pars
1868 IF ( .NOT. flis )
THEN
1885 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1896 WRITE (ndsa,*)
'WDCG, WDTH:',
wdcg,
wdth
1899 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1910 WRITE(ndsa,*)
'DTMS, Refran, FUNO3, FVERG, FSWND, ARCTC:', &
1914 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1925 WRITE (ndsa,*)
'TAIL_ID, TAIL_LEV, TAIL_TRAN1, TAIL_TRAN2:', &
1929 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1937 WRITE (ndsa,*)
'TAIL_ID, TAIL_LEV, TAIL_TRAN1, TAIL_TRAN2:', &
1941 READ (ndsm,
END=801,ERR=802,IOSTAT=IERR) &
1949 IF ( .NOT.
WRITE .AND. .NOT.fldisp )
THEN
1963 call print_memcheck(memunit,
'memcheck_____:'//
' WIOGR SECTION 9')
1984 900
FORMAT (/
' *** WAVEWATCH III ERROR IN W3IOGR :'/ &
1985 ' ILEGAL INXOUT VALUE: ',a/)
1986 901
FORMAT (/
' *** WAVEWATCH III ERROR IN W3IOGR :'/ &
1987 ' ILEGAL IDSTR, READ : ',a/ &
1989 902
FORMAT (/
' *** WAVEWATCH III ERROR IN W3IOGR :'/ &
1990 ' ILEGAL VERGRD, READ : ',a/ &
1992 904
FORMAT (/
' *** WAVEWATCH III ERROR IN W3IOGR :'/ &
1993 ' ILEGAL NFBPO READ : ',i8/ &
1995 905
FORMAT (/
' *** WAVEWATCH III ERROR IN W3IOGR :'/ &
1996 ' UNEXPECTED SOURCE TERM IDENTIFIER',i2/ &
1997 ' IN mod_def.',a,
' FILE : ',a/ &
1998 ' EXPECTED FROM switch FILE : ',a,/ &
2001 906
FORMAT (/
' *** WAVEWATCH III ERROR IN W3IOGR :'/ &
2002 ' UNEXPECTED PROPAGATION SCHEME IDENTIFIER'/ &
2005 ' CHECK CONSISTENCY OF SWITCHES IN PROGRAMS'/)
2006 907
FORMAT (/
' *** WAVEWATCH III ERROR IN W3IOGR :'/ &
2007 ' UNEXPECTED GSE ALEVIATION IDENTIFIER'/ &
2012 908
FORMAT (/
' *** WAVEWATCH III ERROR IN W3IOGR :'/ &
2013 ' UNEXPECTED FLUX PARAMETERIZATION IDENTIFIER'/ &
2014 ' IN mod_def.',a,
' :',a/ &
2019 1000
FORMAT (/
' *** WAVEWATCH III ERROR IN W3IOGR : '/ &
2020 ' ERROR IN OPENING mod_def.',a,
' FILE'/ &
2022 1001
FORMAT (/
' *** WAVEWATCH III ERROR IN W3IOGR : '/ &
2023 ' PREMATURE END OF mod_def.',a,
' FILE'/)
2024 1002
FORMAT (/
' *** WAVEWATCH III ERROR IN W3IOGR : '/, &
2025 ' ERROR IN READING FROM mod_def.',a,
' FILE'/ &
2030 9000
FORMAT (
' TEST W3IOGR : INXOUT = ',a,
', WRITE = ',l1, &
2031 ', UNIT =',i3,
', IGRD =',i3,
', FEXT = ',a)
2032 9001
FORMAT (
' TEST W3IOGR : TEST PARAMETERS :'/ &
2035 ' NX/Y/SEA : ',3i10/ &
2036 ' NTH,NK : ',2i10/ &
2051 9002
FORMAT (
' NBO : ',10i5)
2052 9003
FORMAT (
' NBO2 : ',10i5)
2054 9010
FORMAT (
' TEST W3IOGR : MODULE W3GDATMD GRID'/ &
2058 ' SX, SY : ',2e10.3/ &
2059 ' X0, Y0 : ',2e10.3/ &
2061 9011
FORMAT (
' LOWER LEFT PART OF ',a)
2062 9012
FORMAT (
' ',4x,30i2)
2063 9013
FORMAT (
' ',12i6)
2064 9014
FORMAT (
' ',12f6.2)
2065 9015
FORMAT (
' STEPS : ',4f8.1/ &
2066 ' DEPTH : ',f8.1,f10.3/ &
2067 ' FICE0/N: ',f9.2,f8.2/ &
2068 ' FICEL : ',f9.1 / &
2069 ' PFMOVE : ',f9.2 / &
2070 ' STEXU : ',f9.2 / &
2071 ' STEYU : ',f9.2 / &
2074 9016
FORMAT (
' FLAGS : ',8l2)
2075 9017
FORMAT (
' CLATS : ',3f8.3,
' ...'/ &
2076 ' CLATIS : ',3f8.3,
' ...'/ &
2077 ' CTHG0S : ',3e11.3,
' ...')
2079 9020
FORMAT (
' TEST W3IOGR : MODULE W3ODATMD OUT5')
2080 9021
FORMAT (
' INTERPOLATION DATA : FILE ',i1)
2081 9022
FORMAT (
' ',i5,2x,4i4,2x,4f5.2)
2082 9023
FORMAT (
' ',10i7)
2083 9025
FORMAT (
' TEST W3IOGR : MODULE W3ODATMD OUT6'/ &
2084 ' PARTITIONING DATA :',i5,3e10.3,l4,2x,i4)
2086 9030
FORMAT (
' TEST W3IOGR : MODULE W3GDATMD SGRD'/ &
2087 ' MAPWN : ',8i4,
' ...'/ &
2088 ' MAPTH : ',8i4,
' ...'/ &
2090 ' TH : ',4f6.1,
' ...'/ &
2091 ' ESIN : ',4f6.3,
' ...'/ &
2092 ' ECOS : ',4f6.3,
' ...'/ &
2094 ' FR : ',f6.3,
' ...',f6.3/ &
2095 ' FACs : ',6e10.3/ &
2098 9040
FORMAT (
' TEST W3IOGR : MODULE W3GDATMD NPAR'/ &
2099 ' FACs : ',5e10.3/ &
2104 9048
FORMAT (
' TEST W3IOGR : MODULE W3GDATMD SFLP'/ &
2105 ' FLUXES : ',i5,3x,e10.3)
2108 9048
FORMAT (
' TEST W3IOGR : MODULE W3GDATMD SFLP'/ &
2109 ' FLUXES : ',2i5,3x,2e10.3)
2113 9049
FORMAT (
' TEST W3IOGR : MODULE W3GDATMD SLNP'/ &
2118 9050
FORMAT (
' TEST W3IOGR : MODULE W3GDATMD SRCP'/ &
2119 ' INPUT : ',e10.3/ &
2123 9050
FORMAT (
' TEST W3IOGR : MODULE W3GDATMD SRCP'/ &
2124 ' INPUT : ',2e10.3/ &
2125 ' DISSIP : ',4e10.3/ &
2132 9051
FORMAT (
' TEST W3IOGR : MODULE W3GDATMD SNLP'/ &
2133 ' DATA : ',2e10.3/ &
2138 9051
FORMAT (
' TEST W3IOGR : MODULE W3GDATMD SNLP'/ &
2139 ' DATA : ',i4,f5.1,i4)
2140 9151
FORMAT (
' ',5f7.1)
2144 9051
FORMAT (
' TEST W3IOGR : MODULE W3GDATMD SNLP'/ &
2145 ' DATA : ',i4,4f8.3)
2146 9151
FORMAT (
' ',2f8.3,f6.1,2e12.4)
2150 9051
FORMAT (
' TEST W3IOGR : MODULE W3GDATMD SNLP'/ &
2155 9051
FORMAT (
' TEST W3IOGR : MODULE W3GDATMD SNLP'/ &
2156 ' DATA : ', f7.1, f8.2, 2i2.1, i12, 2i2.1)
2160 9251
FORMAT (
' TEST W3IOGR : MODULE W3GDATMD SNLP (NLS)'/ &
2161 ' DATA : ',f8.3,e12.4,4f8.3)
2165 9052
FORMAT (
' TEST W3IOGR : MODULE W3GDATMD SBTP'/ &
2170 9053
FORMAT (
' TEST W3IOGR : MODULE W3GDATMD SDBP'/ &
2171 ' DATA : ',2e10.3,l4)
2175 9060
FORMAT (
' TEST W3IOGR : MODULE W3GDATMD PROP'/ &
2180 9060
FORMAT (
' TEST W3IOGR : MODULE W3GDATMD PROP'/ &
2185 9260
FORMAT (
' TEST W3IOGR : MODULE W3GDATMD SMCG'/ &
2190 9070
FORMAT (
' TEST W3IOGR : DISPERSION INTEPOLATION TABLES')
References w3timemd::caltype, w3src4md::delalp, w3src4md::deltail, w3src4md::deltauw, w3src4md::delu, w3src4md::delust, w3src4md::dikcumul, w3servmd::extcde(), file(), constants::file_endian, w3gdatmd::filext, w3odatmd::fnmpre, w3gdatmd::gname, w3odatmd::iaproc, include(), w3src2md::inptab(), w3src3md::insin3(), w3src4md::insin4(), w3sis2md::insis2(), w3snl1md::insnl1(), w3snl2md::insnl2(), w3snl3md::insnl3(), w3snl5md::insnl5(), w3snl1md::insnlgqm(), w3snlsmd::insnls(), w3adatmd::mpi_comm_wave, w3gdatmd::mrfct, w3odatmd::naperr, w3gdatmd::narc, w3gdatmd::nbac, w3gdatmd::nbgl, w3odatmd::nbi, w3odatmd::nbo, w3odatmd::nbo2, w3gdatmd::nbsmc, w3gdatmd::ncel, w3odatmd::ndse, w3odatmd::ndst, w3odatmd::nfbpo, w3gdatmd::nglo, w3gdatmd::nk, w3gdatmd::nrlv, w3gdatmd::nsea, w3gdatmd::nth, w3gdatmd::nufc, w3gdatmd::nvfc, w3gdatmd::nx, w3gdatmd::ny, w3servmd::print_memcheck(), w3servmd::strace(), w3src4md::tauhft, w3src4md::tauhft2, w3src4md::taut, w3uostmd::uost_initgrid(), w3gdatmd::w3setg(), and w3odatmd::w3seto().
Referenced by gxoutf(), gxoutp(), w3bounc(), w3bound(), w3grib(), w3gspl(), w3initmd::w3init(), w3ounf(), w3ounp(), w3outf(), w3outp(), w3prep(), w3prnc(), w3prtide(), w3shel(), w3strt(), w3trnc(), w3uprstr(), wminitmd::wminit(), and wminitmd::wminitnml().
integer, dimension(:), pointer nbo
real, dimension(:), pointer esc
integer, dimension(:,:), pointer trigp
real, dimension(:), pointer snlcs
subroutine insin3
Initialization for source term routine.
cmake src_list cmake include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/check_switches.cmake) check_switches("$
logical, pointer do_change_wlv
integer, pointer nitersec1
integer, dimension(:), pointer iaa
real, dimension(:), pointer wwcor
double precision, dimension(:,:), pointer ygrd
real, pointer sstxftftail
subroutine insnl2
Preprocessing for nonlinear interactions (Xnl).
integer, pointer sswellfpar
Parmeterization of the unresolved obstacles.
Define data structures to set up wave model auxiliary data for several models simultaneously.
real, dimension(:), pointer clatis
integer, pointer ssdsbrfdf
real, dimension(:,:), pointer trnx
real, dimension(:), pointer zb
integer, parameter ungtype
integer, dimension(:), pointer p2msf
real, dimension(:), pointer sed_d50
integer, dimension(:,:), pointer iktab
integer, dimension(:,:), pointer ipbpo
real, dimension(:), pointer ssdsc
integer, parameter rlgtype
real, dimension(:), pointer ctrny
integer, dimension(:), pointer mapth
real(8), pointer b_jgs_diff_thr
real, dimension(:), pointer ic4_cn
real, dimension(:,:), pointer cumulw
integer, dimension(:,:), pointer ijkvfc
integer, dimension(:), pointer ie_cell
real, dimension(:,:), pointer reflc
real, dimension(:), pointer sig
double precision, dimension(:,:), pointer xgrd
real(8), pointer b_jgs_pmin
logical, pointer fsrefraction
real, dimension(:), pointer ic5pars
real, dimension(:,:), pointer angle0
real, pointer wwnmeanptail
integer, dimension(:), pointer nlvvfc
real, dimension(:,:), pointer satweights
real, dimension(:,:), pointer dcki
real, dimension(:), pointer ecos
real, parameter rade
RADE Conversion factor from radians to degrees.
real, dimension(:), pointer dden2
real, dimension(:), pointer snll
real, dimension(:), pointer clatf
character(len=30), pointer gname
integer, dimension(:), pointer iclbac
logical, pointer fssource
logical, pointer swl6cstb1
integer, dimension(:), pointer isbpo
real, dimension(:), pointer dsip
integer *1, dimension(:), pointer iobpa
logical, pointer cmprtrck
integer, pointer b_jgs_maxiter
real, dimension(:), pointer th
real(8), pointer crit_dep_stp
integer, dimension(:), pointer ismcbp
real(8), pointer solverthr_stp
real, dimension(:,:), allocatable taut
integer, dimension(:), pointer ijkufc5
subroutine w3dimx(IMOD, MX, MY, MSEA, NDSE, NDST ifdef W3_SMC
real, dimension(:), pointer ussp_wn
real, dimension(:,:,:), allocatable tauhft2
logical, pointer b_jgs_terminate_difference
subroutine w3setg(IMOD, NDSE, NDST)
logical, pointer b_jgs_source_nonlinear
character(len=8), dimension(max_timers), save status
real(8), dimension(:,:), pointer len
logical, dimension(:), pointer rref
subroutine w3dims(IMOD, MK, MTH, NDSE, NDST)
real, dimension(:), pointer es2
integer, dimension(:,:), pointer mapfs
real, dimension(:), pointer esin
subroutine insin4(FLTABS)
Initialization for source term routine.
integer, dimension(:,:), pointer refld
subroutine w3dmo5(IMOD, NDSE, NDST, IBLOCK)
real, dimension(:), pointer sed_psic
logical, pointer b_jgs_block_gauss_seidel
integer, parameter clgtype
character(len=:), pointer uostfilelocal
real, dimension(:), pointer ssdsbm
integer, pointer b_jgs_nlevel
real, dimension(:), pointer dsii
integer, dimension(:), pointer nbo2
character, public caltype
subroutine, public insis2
Fill tables used for scattering.
real(8), dimension(:), pointer tria
real, parameter tpiinv
TPIINV Inverse of 2*Pi.
subroutine w3seto(IMOD, NDSERR, NDSTST)
subroutine print_memcheck(iun, msg)
Write memory statistics if requested.
Nonlinear interaction based ‘smoother’ for high frequencies.
integer, pointer gqnq_om2
integer(kind=8), pointer qi5nnz
integer, dimension(:), pointer ijkvfc5
real, dimension(:), pointer clats
subroutine w3dimug(IMOD, MTRI, MX, COUNTOTA, NNZ, NDSE, NDST)
real(8), dimension(:,:), pointer ien
integer, dimension(:,:), pointer satindices
logical, pointer iicedisp
real, dimension(:), pointer angarc
integer, dimension(:,:), pointer mapsf
integer, dimension(:), pointer us3df
integer, parameter smctype
real, dimension(:), pointer cthg0s
integer, dimension(:), pointer ijkvfc6
file(STRINGS ${CMAKE_BINARY_DIR}/switch switch_strings) separate_arguments(switches UNIX_COMMAND $
logical, pointer b_jgs_limiter
integer *1, dimension(:,:), pointer iobpd
integer, dimension(:), pointer ijkufc6
real, dimension(:), pointer sig2
subroutine inptab
Generate an interpolation table for the air-sea interaction parameter of Chalikov and Belevich (1993)...
subroutine, public uost_initgrid(IGRID, FILELOCAL, FILESHADOW, LOCALFACTOR, SHADOWFACTOR)
Allocate the UOST variables for a given grid, and load them from file.
logical, pointer fstotalexp
integer, dimension(:), pointer jaa
real, dimension(:), pointer dpthnl
real, pointer ttauwshelter
real, dimension(:), pointer gqamp
real, dimension(:), pointer xbpo
integer, dimension(:,:), pointer ijkcel
integer, dimension(:), pointer ijkcel4
subroutine strace(IENT, SNAME)
real, dimension(0:sizefwtable) fwtable
FWTABLE.
integer, dimension(:), pointer mapwn
integer *1, dimension(:), pointer iobdp
real, dimension(:), pointer sintailpar
Floe-size dependant scattering of waves in the marginal ice zone.
integer, dimension(:), pointer ic4pars
logical, pointer b_jgs_terminate_norm
real, dimension(:,:), allocatable tauhft
real, dimension(:), pointer ic2pars
real, pointer uostfactorshadow
integer, dimension(:), pointer ccon
real, dimension(:,:), pointer qbi
integer *2, dimension(:), pointer iobp
subroutine, public insnl5
Initialization for the GKE module (Prepare wavenumber grid & kernel coefficients).
real(8), dimension(:), pointer si
real, dimension(:), pointer icescales
integer, pointer mpi_comm_wave
character(len=:), pointer uostfileshadow
Define some much-used constants for global use (all defined as PARAMETER).
real, dimension(:), pointer sbtcx
integer, dimension(:), pointer ijkcel3
logical, pointer b_jgs_use_jacobi
real, dimension(:), pointer ic3pars
real, dimension(:), pointer dden
real, dimension(:), pointer sswellf
real, dimension(:), pointer ybpo
logical, pointer b_jgs_terminate_maxiter
real, dimension(:), pointer ic4_ki
real, dimension(:), pointer igpars
real, dimension(:), pointer refpars
real, dimension(:,:), pointer angle
subroutine insnl1(IMOD)
Preprocessing for nonlinear interactions (weights).
real(8), pointer b_jgs_norm_thr
character(*), parameter file_endian
FILE_ENDIAN Filled by preprocessor with 'big_endian', 'little_endian', or 'native'.
real, dimension(:), pointer snlt
Generalized and optimized multiple DIA implementation.
real(8), pointer gridshift
Interface module for GKE (resonant & quasi-resonant four-wave interactions).
The 'WAM4+' source terms based on P.A.E.M.
The 'SHOM/Ifremer' source terms based on P.A.E.M.
Bundles routines to calculate nonlinear wave-wave interactions according to the Discrete Interaction ...
Interface module to exact nonlinear interactions.
real, dimension(:), pointer angld
real, dimension(:), pointer capchnk
integer, dimension(:), pointer countcon
Tolman and Chalikov (1996) input and dissipation source terms.
integer, dimension(:), pointer index_cell
real, dimension(:), pointer is2pars
subroutine insnl3
Initialization for generalized multiple DIA routine.
subroutine insnls
Initializations for the Snl / filter source term for high frequencies.
integer, dimension(:), pointer nlvufc
subroutine w3gntx(IMOD, NDSE, NDST)
logical, pointer fsfreqshift
real, dimension(:), pointer ic4_fc
integer, dimension(:), pointer nlvcel
type(mpar), dimension(:), allocatable, target mpars
real, dimension(:), pointer ec2
integer, dimension(:), pointer usspf
integer, dimension(:,:), pointer ijkufc
logical, pointer fstotalimp
integer, dimension(:), pointer pos_cell
integer, dimension(:,:), pointer e3df
integer, dimension(:,:), pointer mapsta
real, pointer uostfactorlocal
real, dimension(:), pointer snlm
real, dimension(:,:), pointer trny
integer, dimension(:,:), pointer mapst2
real, dimension(:,:), pointer rdbpo
integer, dimension(:,:), pointer posi
real, dimension(:), pointer snlcd
real, dimension(:), pointer ctrnx
character(len=13), pointer filext