!/ ------------------------------------------------------------------- / MODULE W3IOGRMD !/ !$$$ MODULE DOCUMENTATION BLOCK ! . . . . ! MODULE: W3IOGRMD IO of model definition file. ! PRGMMR: H.L. Tolman ORG: W/NP21 DATE: 2002-08-27 ! ! ABSTRACT: Read/write model definition file. ! ! PROGRAM HISTORY LOG: ! 2000-02-04 Tolman Origination. ! 2000-02-14 Tolman Exact-NL option added to file. ! 2001-01-09 Tolman Flat grid flag and option added. ! 2001-02-02 Tolman Exact-NL option upgraded to verion 3.0 ! 2001-02-27 Tolman Third propagation scheme added. ! 2001-03-16 Tolman Fourth propagation scheme added. ! 2001-03-29 Tolman Sub-grid islands added. ! 2002-01-11 Tolman Sub-grid ice added. ! 2002-05-09 Tolman Switch clean up. ! 2002-08-27 Tolman Exact-NL option upgraded to verion 4.0 ! ! PUBLIC VARIABLES : See documentation below. ! PUBLIC TYPES : See documentation below. ! PUBLIC SUBPROGRAMS : See documentation below. ! ! REMARKS: None. ! ! ATTRIBUTES: ! LANGUAGE: FORTRAN 90 ! MACHINE: Portable code ! !$$$ !/ +-----------------------------------+ !/ | WAVEWATCH-III NOAA/NCEP | !/ | H. L. Tolman | !/ | FORTRAN 90 | !/ | Last update : 27-Aug-2002 | !/ +-----------------------------------+ !/ !/ 04-Feb-2000 : Origination. ( version 2.00 ) !/ For updates see W3IOGR documentation. !/ ! 1. Purpose : ! ! Bundle routine for reading/writing of model definition file ! with its variables. ! ! 2. Variables and types : ! ! Name Type Scope Description ! ---------------------------------------------------------------- ! VERGRD C*10 Private Model definition file version number. ! IDSTR C*35 Private Model definition file ID string. ! ! GNAME C*30 Public Grid name. ! NX, NY Int. Public Discrete dimensions of spatial grid. ! NSEA(L) Int. Public Number of sea points (local for MPP). ! FLAGLL Log. Public Flag for LL grid (otherwise XY). ! FLAGTR Int. Public Flag for use of transparencies ! 0: No sub-grid obstacles. ! 1: Obstructions at cell boundaries. ! 2: Obstructions at cell centers. ! 3: Like 1 with continuous ice. ! 4: Like 2 with continuous ice. ! SX,SY Real Public Spatial grid increments. ! X0,Y0 Real Public Lower left corner of spatial grid. ! ZB R.A. Public Bottom levels on storage grid. ! MAPSTA I.A. Public Grid status map. ! MAPxx I.A. Public Storage grid maps. ! TRNX/Y R.A. Public Transparencies in X/Y for sub-grid ! island treatment. ! ! DTCFL Real Public Maximum CFL time step X-Y propagation. ! DTCFLI Real Public Id. intra-spectral. ! DTMAX Real Public Maximum overall time step. ! DTMIN Real Public Minimum dynamic time step for source ! term integration. ! ! DMIN Real Public Minimum water depth. ! CFLTM Real Public Maximum CFL number for depth refr. ! CICE0/N Real Public Cut-off ice conc. for ice coverage. ! ! GLOBAL Log. Public Flag for global grid (closed parallels). ! FLDRY Log. Public Flag for 'dry' run (IO and data ! processing only). ! FLCx Log. Public Flags for prop. is different spaces. ! FLSOU Log. Public Flag for source term calcualtion. ! ! CLAT(I) R.A. Public (Inverse) cosine of latitude. ! CLATS R.A. Public Id. ! CTHG0 R.A. Public Constant in great-circle refr. term. ! ---------------------------------------------------------------- ! ! 3. Subroutines and functions : ! ! Name Type Scope Description ! ---------------------------------------------------------------- ! W3IOGR Subr. Public Read/write model definition file. ! ---------------------------------------------------------------- ! ! 4. Subroutines and functions used : ! ! Name Type Module Description ! ---------------------------------------------------------------- ! DISTAB Subr. W3DISPMD Fill interpolation tables for ! dispersion relation. ! INPTAB Subr. W3SRC2MD Input coefficient lookup table. ! INSNL1 Subr. W3SNL1MD Initialization of the DIA. ! INSNL2 Subr. W3SNL2MD Initialization of WRT. ! STRACE Subr. W3SERVMD Subroutine tracing. ! EXTCDE Subr. W3SERVMD Abort program with exit code. ! ---------------------------------------------------------------- ! ! 5. Remarks : ! ! - Arrays allocated here on read or ing ww3_grid on write. ! ! 6. Switches : ! ! See subroutine. ! ! 7. Source code : ! !/ ------------------------------------------------------------------- / PUBLIC !/ !/ Private parameter statements (ID strings) !/ CHARACTER*10, PARAMETER, PRIVATE :: VERGRD = 'III 2.05 ' CHARACTER*35, PARAMETER, PRIVATE :: & IDSTR = 'WAVEWATCH III MODEL DEFINITION FILE' !/ !/ Public variables !/ INTEGER :: NX, NY, NSEA, NSEAL, FLAGTR INTEGER, ALLOCATABLE :: MAPSTA(:,:), MAPFS(:,:), MAPSF(:,:) REAL :: SX, SY, X0, Y0, DTCFL, DTCFLI, & DTMAX, DTMIN, DMIN, CFLTM, & CICE0, CICEN REAL, ALLOCATABLE :: ZB(:), CLAT(:), CLATI(:), CLATS(:), & CTHG0(:), TRNX(:,:), TRNY(:,:) LOGICAL, PARAMETER :: FLAGLL = .TRUE. LOGICAL :: GLOBAL, FLDRY, FLCX, FLCY, FLCTH, & FLCK, FLSOU CHARACTER :: GNAME*30 !/ CONTAINS !/ ------------------------------------------------------------------- / SUBROUTINE W3IOGR ( INXOUT, NDSM ) !/ !$$$ SUBPROGRAM DOCUMENTATION BLOCK ! . . . . ! SUBPROGRAM: W3IOGR I/O model definition file ! PRGMMR: H.L. Tolman ORG: W/NP21 DATE: 2002-05-09 ! ! ABSTRACT: I/O model definition file ! ! PROGRAM HISTORY LOG: ! 1998-10-19 Tolman Origination. ! 1998-10-30 Chen/Tolman Adding docblock. ! 1999-01-14 Tolman Parallel version. ! 2000-02-04 Tolman FORTRAN 90 version. ! 2000-02-14 Tolman Exact-NL option added. ! 2001-01-09 Tolman Flat grid option added. ! 2001-02-02 Tolman Exact-NL upgraded to version 3.0 ! 2001-02-27 Tolman Third propagation scheme added. ! 2001-03-16 Tolman Fourth propagation scheme added. ! 2001-03-29 Tolman Sub-grid islands added. ! 2002-01-11 Tolman Sub-grid ice added. ! 2002-05-09 Tolman Switch clean up. ! ! USAGE: See documentation below. ! ! REMARKS: See documentation below. ! ! ATTRIBUTES: ! LANGUAGE: FORTRAN 90 ! MACHINE: Portable code ! !$$$ !/ +-----------------------------------+ !/ | WAVEWATCH-III NOAA/NCEP | !/ | H. L. Tolman | !/ | FORTRAN 90 | !/ | Last update : 27-Aug-2002 | !/ +-----------------------------------+ !/ !/ 14-Jan-1999 : Distributed FORTRAN 77 version. ( version 1.18 ) !/ 04-Feb-2000 : Upgrade to FORTRAN 90 ( version 2.00 ) !/ Major changes to logistics. !/ 14-Feb-2000 : Exact-NL added. ( version 2.01 ) !/ 09-Jan-2001 : Flat grid option. ( version 2.06 ) !/ 02-Feb-2001 : Exact-NL version 3.0 ( version 2.07 ) !/ 27-Feb-2001 : Third propagation scheme added. ( version 2.08 ) !/ 16-Mar-2001 : Fourth propagation scheme added. ( version 2.09 ) !/ 29-Mar-2001 : Sub-grid islands added. ( version 2.10 ) !/ 11-Jan-2002 : Sub-grid ice added. ( version 2.15 ) !/ 09-May-2002 : Switch clean up. ( version 2.21 ) !/ 27-Aug-2002 : Exact-NL version 4.0 ( version 2.22 ) !/ ! 1. Purpose : ! ! Reading and writing of the model definition file. ! ! 2. Method : ! ! 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. ! ! 3. Parameters : ! ! Parameter list ! ---------------------------------------------------------------- ! INXOUT C*(*) I Test string for read/write, valid are: ! 'READ', 'WRITE' and 'GRID'. ! NDSM Int. I File unit number. ! ---------------------------------------------------------------- ! ! 4. Subroutines used : ! ! DISTAB Fill interpolation tables for disp. rel. ! ! STRACE, EXTCDE Service routines. ! ! 5. Called by : ! ! W3GRID Grid preprocessing program. ! W3STRT Initial conditions program. ! W3INIT Wave model intialization routine. ! W3WAVE Wave model routine. ! W3OUTF Field output program. ! W3OUTP Point output program. ! ! 6. Error messages : ! ! Tests on INXOUT, file status and on array dimensions. ! ! 7. Remarks : ! ! - The model definition file has the pre-defined name ! 'mod_def.ww3'. ! ! 8. Structure : ! ! See source code. ! ! 9. Switches : ! ! !/MPI MPI calls ! ! !/LLG Grid type ! !/XYG ! ! !/STn Select source terms ! !/NLn ! !/BTn ! ! !/S Enable subroutine tracing. ! !/T Enable test output ! ! 10. Source code : ! !/ ------------------------------------------------------------------- / USE CONSTANTS USE W3PARMMD USE W3TESTMD USE W3PRO3MD USE W3SRCEMD USE W3SRC2MD USE W3SNL1MD USE W3SBT1MD USE W3IOBCMD USE W3SERVMD, ONLY: EXTCDE USE W3DISPMD ! IMPLICIT NONE ! INCLUDE "mpif.h" !/ !/ ------------------------------------------------------------------- / !/ Parameter list !/ INTEGER, INTENT(IN) :: NDSM CHARACTER :: INXOUT*(*) !/ !/ ------------------------------------------------------------------- / !/ Local parameters !/ INTEGER :: IERR, I, J, MTH, MK, ISEA, IX, IY INTEGER :: IERR_MPI, IP LOGICAL :: WRITE, FLTEST = .FALSE., TESTLL, & FLSNL2 = .FALSE. CHARACTER :: VERTST*10, IDTST*35 CHARACTER*30 :: TNAME1, TNAME2, TNAME3, TNAME4 CHARACTER*30 :: FNAME1, FNAME2, FNAME3, FNAME4 !/ !/ ------------------------------------------------------------------- / !/ ! TNAME1 = '------------------------------' TNAME2 = '------------------------------' TNAME3 = '------------------------------' TNAME4 = '------------------------------' ! TNAME1 = 'Tolman and Chalikov (1996) ' TNAME2 = 'Discrete Interaction Approx. ' TNAME3 = 'JONSWAP ' TNAME4 = 'Averaging ULTIMATE QUICKEST ' ! FNAME1 = TNAME1 FNAME2 = TNAME2 FNAME3 = TNAME3 FNAME4 = TNAME4 ! ! test input parameters ---------------------------------------------- * ! IF (INXOUT.NE.'READ' .AND. INXOUT.NE.'WRITE' & .AND. INXOUT.NE.'GRID') THEN IF ( IAPROC .EQ. NAPERR ) WRITE (NDSE,900) INXOUT CALL EXTCDE ( 1 ) END IF ! WRITE = INXOUT .EQ. 'WRITE' ! ! open file ---------------------------------------------------------- * ! IF ( WRITE ) THEN OPEN (NDSM,FILE='mod_def.ww3',FORM='UNFORMATTED', & ERR=800,IOSTAT=IERR) ELSE OPEN (NDSM,FILE='mod_def.ww3',FORM='UNFORMATTED', & STATUS='OLD',ERR=800,IOSTAT=IERR) ENDIF ! REWIND ( NDSM ) ! ! Dimensions and test information -------------------------------------- ! IF ( WRITE ) THEN WRITE (NDSM) & IDSTR, VERGRD, NX, NY, NSEA, NTH, NK, & NBI, NFBPO, GNAME, FNAME1, FNAME2, FNAME3, FNAME4 WRITE (NDSM) & (NBO(I),I=0,NFBPO), (NBO2(I),I=0,NFBPO) ELSE READ (NDSM,END=801,ERR=802,IOSTAT=IERR) & IDTST, VERTST, NX, NY, NSEA, MTH, MK, & NBI, NFBPO, GNAME, FNAME1, FNAME2, FNAME3, FNAME4 NK = MK NTH = MTH NK2 = NK + 2 NSPEC = NK * NTH ! IF ( IDTST .NE. IDSTR ) THEN IF ( IAPROC .EQ. NAPERR ) & WRITE (NDSE,901) IDTST, IDSTR CALL EXTCDE ( 10 ) END IF IF ( VERTST .NE. VERGRD ) THEN IF ( IAPROC .EQ. NAPERR ) & WRITE (NDSE,902) VERTST, VERGRD CALL EXTCDE ( 11 ) END IF IF ( NFBPO .GT. 9 ) THEN IF ( IAPROC .EQ. NAPERR ) & WRITE (NDSE,904) NFBPO, 9 CALL EXTCDE ( 13 ) END IF IF ( FNAME1 .NE. TNAME1 ) THEN IF ( IAPROC .EQ. NAPERR ) & WRITE (NDSE,905) FNAME1, TNAME1 CALL EXTCDE ( 14 ) END IF IF ( FNAME2 .NE. TNAME2 ) THEN IF ( IAPROC .EQ. NAPERR ) & WRITE (NDSE,905) FNAME2, TNAME2 CALL EXTCDE ( 15 ) END IF IF ( FNAME3 .NE. TNAME3 ) THEN IF ( IAPROC .EQ. NAPERR ) & WRITE (NDSE,905) FNAME3, TNAME3 CALL EXTCDE ( 16 ) END IF IF ( FNAME4 .NE. TNAME4 ) THEN IF ( IAPROC .EQ. NAPERR ) & WRITE (NDSE,906) FNAME4, TNAME4 CALL EXTCDE ( 17 ) END IF ! READ (NDSM,END=801,ERR=802,IOSTAT=IERR) & (NBO(I),I=0,NFBPO), (NBO2(I),I=0,NFBPO) ! ENDIF ! ! Parameters in this module ------------------------------------------ * ! IF ( WRITE ) THEN WRITE (NDSM) & FLAGLL, SX, SY, X0, Y0, ZB, MAPSTA, MAPFS, MAPSF, FLAGTR IF ( FLAGTR .NE. 0 ) WRITE (NDSM) TRNX, TRNY WRITE (NDSM) & DTCFL, DTCFLI, DTMAX, DTMIN, DMIN, CFLTM, & CICE0, CICEN, GLOBAL, FLDRY, FLCX, FLCY, FLCTH, FLCK, & FLSOU, FLBPI, FLBPO, CLAT, CLATI, CLATS, CTHG0 ELSE IF ( ALLOCATED(ZB) ) DEALLOCATE ( MAPSTA, MAPFS, MAPSF, ZB ) IF ( ALLOCATED(TRNX) ) DEALLOCATE ( TRNX, TRNY ) ALLOCATE ( MAPSTA(NY,NX), MAPFS(NY,NX), MAPSF(NSEA,3), & ZB(NSEA) ) READ (NDSM,END=801,ERR=802,IOSTAT=IERR) & TESTLL, SX, SY, X0, Y0, ZB, MAPSTA, MAPFS, MAPSF, FLAGTR IF ( TESTLL .NEQV. FLAGLL ) THEN IF ( IAPROC .EQ. NAPERR ) & WRITE (NDSE,910) FLAGLL, TESTLL CALL EXTCDE ( 20 ) END IF MAPSF(:,3) = MAPSF(:,2) + (MAPSF(:,1)-1)*NY IF ( FLAGTR .NE. 0 ) THEN ALLOCATE ( TRNX(NY,NX), TRNY(NY,NX) ) READ (NDSM,END=801,ERR=802,IOSTAT=IERR) TRNX, TRNY END IF IF ( INXOUT .NE. 'GRID' ) THEN ALLOCATE ( CLAT(NY), CLATI(NY), CLATS(NSEA), CTHG0(NY) ) READ (NDSM,END=801,ERR=802,IOSTAT=IERR) & DTCFL, DTCFLI, DTMAX, DTMIN, DMIN, CFLTM, & CICE0, CICEN, GLOBAL, FLDRY, FLCX, FLCY, FLCTH, & FLCK, FLSOU, FLBPI, FLBPO, CLAT, CLATI, CLATS, CTHG0 END IF END IF ! IF ( INXOUT .EQ. 'GRID' ) THEN CLOSE (NDSM) RETURN END IF ! ! Parameters for output boundary points ------------------------------ * ! Module W3IOBCMD ! IF ( WRITE ) THEN WRITE (NDSM) & XBPO, YBPO, RDBPO, IPBPO, ISBPO ELSE ALLOCATE ( IPBPO(NBO(NFBPO),4), ISBPO(NBO2(NFBPO)), & XBPO(NBO(NFBPO)), YBPO(NBO(NFBPO)), & RDBPO(NBO(NFBPO),4) ) READ (NDSM,END=801,ERR=802,IOSTAT=IERR) & XBPO, YBPO, RDBPO, IPBPO, ISBPO END IF ! ! Spectral parameters ------------------------------------------------ * ! Module W3PARMMD ! IF ( WRITE ) THEN WRITE (NDSM) & MAPWN, MAPTH, DTH, TH, ESIN, ECOS, ES2, ESC, EC2, & XFR, FR1, SIG, SIG2, DSIP, DSII, DDEN, DDEN2, FTE, & FTF, FTWN, FTTR, FTWL, FACTI1, FACTI2, FACHFA, FACHFE ELSE ALLOCATE ( MAPWN (NSPEC+NTH), MAPTH(NSPEC+NTH), TH(NTH), & ESIN(NSPEC+NTH), ECOS(NSPEC+NTH), ES2(NSPEC+NTH),& ESC(NSPEC+NTH), EC2(NSPEC+NTH), SIG(0:NK+1), & SIG2(NSPEC), DSIP(0:NK+1), DSII(NK), DDEN(NK), & DDEN2(NSPEC) ) READ (NDSM,END=801,ERR=802,IOSTAT=IERR) & MAPWN, MAPTH, DTH, TH, ESIN, ECOS, ES2, ESC, EC2, & XFR, FR1, SIG, SIG2, DSIP, DSII, DDEN, DDEN2, FTE, & FTF, FTWN, FTTR, FTWL, FACTI1, FACTI2, FACHFA, FACHFE END IF ! ! Numerical parameters ----------------------------------------------- * ! Module W3SRCEMD ! IF ( WRITE ) THEN WRITE (NDSM) & FACP, XR, XFILT, FXFM, FXPM, XFT, XFC, XSEED ELSE READ (NDSM,END=801,ERR=802,IOSTAT=IERR) & FACP, XR, XFILT, FXFM, FXPM, XFT, XFC, XSEED END IF ! ! Source term parameters --------------------------------------------- * ! Module W3SRCnMD ! Module W3SNLnMD ! Module W3SBTnMD ! IF ( WRITE ) THEN WRITE (NDSM) & NITTIN, ZWND, CINXSI, SWELLF, & STABSH, STABOF, CNEG, CPOS, FNEG, FPOS, & SDSA0, SDSA1, SDSA2, SDSALN, & SDSB0, SDSB1, SDSB2, SDSB3, FPIMIN, XFH, XF1, XF2 ELSE READ (NDSM,END=801,ERR=802,IOSTAT=IERR) & NITTIN, ZWND, CINXSI, SWELLF, & STABSH, STABOF, CNEG, CPOS, FNEG, FPOS, & SDSA0, SDSA1, SDSA2, SDSALN, & SDSB0, SDSB1, SDSB2, SDSB3, FPIMIN, XFH, XF1, XF2 CALL INPTAB END IF ! IF ( FLTEST ) WRITE (NDST,9050) & NITTIN, ZWND, CINXSI, SWELLF, SDSA0, SDSA1, SDSA2, SDSALN, & SDSB0, SDSB1, SDSB2, SDSB3, FPIMIN, XFH, XF1, XF2, & STABSH, STABOF, CNEG, CPOS, FNEG, FPOS ! ! ... Nonlinear interactions ! IF ( WRITE ) THEN WRITE (NDSM) & SNLC1, LAMBDA, KDCONV, KDMIN, SNLCS1, SNLCS2, SNLCS3 ELSE READ (NDSM,END=801,ERR=802,IOSTAT=IERR) & SNLC1, LAMBDA, KDCONV, KDMIN, SNLCS1, SNLCS2, SNLCS3 END IF ! IF ( FLTEST ) WRITE (NDST,9051) SNLC1, LAMBDA, & KDCONV, KDMIN, SNLCS1, SNLCS2, SNLCS3 ! IF ( .NOT. WRITE ) CALL INSNL1 ! ! Layered barriers needed for file management in xnl_init ! IF ( FLSNL2 .AND. .NOT.WRITE ) THEN DO IP=1, IAPROC-1 CALL MPI_BARRIER ( MPI_COMM_WORLD, IERR_MPI ) END DO END IF IF ( FLSNL2 .AND. .NOT.WRITE ) THEN DO IP=IAPROC, NAPROC-1 CALL MPI_BARRIER ( MPI_COMM_WORLD, IERR_MPI ) END DO END IF ! ! ... Bottom friction ... ! IF ( WRITE ) THEN WRITE (NDSM) SBTC1 ELSE READ (NDSM,END=801,ERR=802,IOSTAT=IERR) SBTC1 END IF ! IF ( FLTEST ) WRITE (NDST,9052) SBTC1 ! ! Propagation scheme ------------------------------------------------- * ! Module W3PROnMD ! IF ( WRITE ) THEN WRITE (NDSM) FLSOFT, WDTHCG, WDTHTH ELSE READ (NDSM,END=801,ERR=802,IOSTAT=IERR) FLSOFT, WDTHCG, WDTHTH END IF ! IF ( FLTEST ) WRITE (NDST,9060) FLSOFT, WDTHCG, WDTHTH ! ! Interpolation tables ( fill locally ) ----------------------------- * ! Module W3DISPMD ! IF ( .NOT. WRITE ) THEN CALL DISTAB END IF ! CLOSE ( NDSM ) ! RETURN ! ! Escape locations read errors --------------------------------------- * ! 800 CONTINUE IF ( IAPROC .EQ. NAPERR ) WRITE (NDSE,1000) IERR CALL EXTCDE ( 50 ) ! 801 CONTINUE IF ( IAPROC .EQ. NAPERR ) WRITE (NDSE,1001) CALL EXTCDE ( 51 ) ! 802 CONTINUE IF ( IAPROC .EQ. NAPERR ) WRITE (NDSE,1002) IERR CALL EXTCDE ( 52 ) ! ! Formats ! 900 FORMAT (/' *** WAVEWATCH-III ERROR IN W3IOGR :'/ & ' ILEGAL INXOUT VALUE: ',A/) 901 FORMAT (/' *** WAVEWATCH-III ERROR IN W3IOGR :'/ & ' ILEGAL IDSTR, READ : ',A/ & ' CHECK : ',A/) 902 FORMAT (/' *** WAVEWATCH-III ERROR IN W3IOGR :'/ & ' ILEGAL VERGRD, READ : ',A/ & ' CHECK : ',A/) 904 FORMAT (/' *** WAVEWATCH-III ERROR IN W3IOGR :'/ & ' ILEGAL NFBPO READ : ',I8/ & ' CHECK : ',I8/) 905 FORMAT (/' *** WAVEWATCH-III ERROR IN W3IOGR :'/ & ' UNEXPECTED SOURCE TERM IDENTIFIER'/ & ' IN FILE :',A/ & ' EXPECTED :',A/ & ' CHECK CONSISTENCY OF SWITCHES IN PROGRAMS'/) 906 FORMAT (/' *** WAVEWATCH-III ERROR IN W3IOGR :'/ & ' UNEXPECTED PROPAGATION SCHEME IDENTIFIER'/ & ' IN FILE :',A/ & ' EXPECTED :',A/ & ' CHECK CONSISTENCY OF SWITCHES IN PROGRAMS'/) 910 FORMAT (/' *** WAVEWATCH-III ERROR IN W3IOGR :'/ & ' UNEXPECTED LL GRID FLAG'/ & ' IN FILE :',L2/ & ' EXPECTED :',L2/ & ' CHECK CONSISTENCY OF SWITCHES IN PROGRAMS'/) ! 1000 FORMAT (/' *** WAVEWATCH-III ERROR IN W3IOGR : '/ & ' ERROR IN OPENING FILE'/ & ' IOSTAT =',I5/) 1001 FORMAT (/' *** WAVEWATCH-III ERROR IN W3IOGR : '/ & ' PREMATURE END OF FILE'/) 1002 FORMAT (/' *** WAVEWATCH-III ERROR IN W3IOGR : '/ & ' ERROR IN READING FROM FILE'/ & ' IOSTAT =',I5/) ! 9050 FORMAT (' TEST W3IOGR : MODULE W3SRC2MD'/ & ' INPUT : ',I5,5X,3E10.3/ & ' DISSIP : ',4E10.3/ & ' ',5E10.3/ & ' ',3E10.3/ & ' STAB2 : ',6E10.3) ! 9051 FORMAT (' TEST W3IOGR : MODULE W3SNL1MD'/ & ' DATA : ',2E10.3/ & ' ',5E10.3) ! 9052 FORMAT (' TEST W3IOGR : MODULE W3SBT1MD'/ & ' DATA : ',E10.3) ! 9060 FORMAT (' TEST W3IOGR : MODULE W3PRO3MD'/ & ' DATA : ',L10,2F6.2) ! !/ !/ End of W3IOGR ----------------------------------------------------- / !/ END SUBROUTINE !/ !/ End of module W3IOGRMD -------------------------------------------- / !/ END MODULE