WAVEWATCH III  beta 0.0.1
w3iogrmd Module Reference

Reading/writing of model definition file. More...

Functions/Subroutines

subroutine w3iogr (INXOUT, NDSM, IMOD, FEXT ifdef W3_ASCII
 Reading and writing of the model definition file. More...
 

Detailed Description

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

Function/Subroutine Documentation

◆ 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]INXOUTTest string for read/write.
[in]NDSMFile unit number.
[in]IMODModel number for W3GDAT etc.
[in]FEXTFile extension to be used.
Author
H. L. Tolman
F. Ardhuin
Date
19-Oct-2020

Definition at line 117 of file w3iogrmd.F90.

117  ,ndsa &
118 #endif
119  )
120  !/
121  !/ +-----------------------------------+
122  !/ | WAVEWATCH III NOAA/NCEP |
123  !/ | H. L. Tolman |
124  !/ ! F. Ardhuin !
125  !/ | FORTRAN 90 |
126  !/ | Last update : 19-Oct-2020 |
127  !/ +-----------------------------------+
128  !/
129  !/ 14-Jan-1999 : Distributed FORTRAN 77 version. ( version 1.18 )
130  !/ 04-Feb-2000 : Upgrade to FORTRAN 90 ( version 2.00 )
131  !/ Major changes to logistics.
132  !/ 14-Feb-2000 : Exact-NL added. ( version 2.01 )
133  !/ 09-Jan-2001 : Flat grid option. ( version 2.06 )
134  !/ 02-Feb-2001 : Exact-NL version 3.0 ( version 2.07 )
135  !/ 27-Feb-2001 : Third propagation scheme added. ( version 2.08 )
136  !/ 16-Mar-2001 : Fourth propagation scheme added. ( version 2.09 )
137  !/ 29-Mar-2001 : Sub-grid islands added. ( version 2.10 )
138  !/ 11-Jan-2002 : Sub-grid ice added. ( version 2.15 )
139  !/ 09-May-2002 : Switch clean up. ( version 2.21 )
140  !/ 27-Aug-2002 : Exact-NL version 4.0 ( version 2.22 )
141  !/ 26-Nov-2002 : Adding first VDIA and MDIA. ( version 3.01 )
142  !/ 01-Aug-2003 : Adding moving grid GSE correction. ( version 3.03 )
143  !/ 08-Mar-2004 : Multiple grid version. ( version 3.06 )
144  !/ 04-May-2005 : Change to MPI_COMM_WAVE. ( version 3.07 )
145  !/ 24-Jun-2005 : Add MAPST2 processing. ( version 3.07 )
146  !/ 09-Nov-2005 : Remove soft boundary options. ( version 3.08 )
147  !/ 23-Jun-2006 : Add W3SLN1 parameters. ( version 3.09 )
148  !/ 27-Jun-2006 : Adding file name preamble. ( version 3.09 )
149  !/ 25-Jul-2006 : Reorder for 'GRID' option to read ( version 3.10 )
150  !/ spectral data also.
151  !/ 28-Oct-2006 : Add partitioning pars. ( version 3.10 )
152  !/ 26-Mar-2007 : Add partitioning pars. ( version 3.11 )
153  !/ 16-Apr-2006 : Add Miche limiter pars. ( version 3.11 )
154  !/ 25-Apr-2007 : Adding Battjes-Janssen Sdb. ( version 3.11 )
155  !/ 09-Oct-2007 : Adding WAM cycle 4+ Sin and Sds. ( version 3.13 )
156  !/ 29-May-2009 : Preparing distribution version. ( version 3.14 )
157  !/ 30-Oct-2009 : Fix ndst arg in call to w3dmo5. ( version 3.14 )
158  !/ (T. J. Campbell, NRL)
159  !/ 30-Oct-2009 : Implement curvilinear grid type. ( version 3.14 )
160  !/ (W. E. Rogers & T. J. Campbell, NRL)
161  !/ 23-Dec-2009 : Addition of COU namelists ( version 3.14 )
162  !/ 31-Oct-2010 : Implement unstructured grids ( version 3.14 )
163  !/ (A. Roland and F. Ardhuin)
164  !/ 06-Dec-2010 : Change from GLOBAL (logical) to ICLOSE (integer) to
165  !/ specify index closure for a grid. ( version 3.14 )
166  !/ (T. J. Campbell, NRL)
167  !/ 12-Jun-2012 : Add /RTD option or rotated grid option.
168  !/ (Jian-Guo Li) ( version 4.06 )
169  !/ 13-Jul-2012 : Move GMD (SNL3) and nonlinear filter (SNLS)
170  !/ from 3.15 (HLT). ( version 4.08 )
171  !/ 12-Dec-2012 : Adding SMC grid. JG_Li ( version 4.08 )
172  !/ 19-Dec-2012 : Add NOSWLL to file. ( version 4.11 )
173  !/ 01-Jul-2013 : Document UQ / UNO switches in file ( version 4.12 )
174  !/ 10-Sep-2013 : Add IG1 parameters ( version 4.12 )
175  !/ 16-Sep-2013 : Add Arctic part in SMC grid. ( version 4.12 )
176  !/ 11-Nov-2013 : Make SMC and RTD grids compatible. ( version 4.13 )
177  !/ 06-Mar-2014 : Writes out a help message on error ( version 4.18 )
178  !/ 10-Mar-2014 : Add IC2 parameters ( version 5.01 )
179  !/ 29-May-2014 : Add IC3 parameters ( version 5.01 )
180  !/ 20-Aug-2016 : Add IOBPA ( version 5.12 )
181  !/ 08-Mar-2018 : Add FSWND for SMC grid. ( version 6.02 )
182  !/ 05-Jun-2018 : Add PDLIB/DEBUGINIT and implcit scheme parameters
183  !/ for unstructured grids ( version 6.04 )
184  !/ 27-Jul-2018 : Added PTMETH and PTFCUT parameters ( version 6.05 )
185  !/ (C. Bunney, UKMO)
186  !/ 18-Aug-2018 : S_{ice} IC5 (Q. Liu) ( version 6.06 )
187  !/ 26-Aug-2018 : UOST (Mentaschi et al. 2015, 2018) ( version 6.06 )
188  !/ 15-Apr-2020 : Adds optional opt-out for CFL on BC ( version 7.08 )
189  !/ 18-Jun-2020 : Adds 360-day calendar option ( version 7.08 )
190  !/ 19-Oct-2020 : Add AIRCMIN, AIRGB parameters ( version 7.08 )
191  !/ 07-07-2021 : S_{nl} GKE NL5 (Q. Liu) ( version 7.12 )
192  !/ 19-Jul-2021 : Momentum and air density support ( version 7.14 )
193  !/
194  !/ Copyright 2009-2013 National Weather Service (NWS),
195  !/ National Oceanic and Atmospheric Administration. All rights
196  !/ reserved. WAVEWATCH III is a trademark of the NWS.
197  !/ No unauthorized use without permission.
198  !/
199  ! 1. Purpose :
200  !
201  ! Reading and writing of the model definition file.
202  !
203  ! 2. Method :
204  !
205  ! The file is opened within the routine, the name is pre-defined
206  ! and the unit number is given in the parameter list. The model
207  ! definition file is written using UNFORMATTED write statements.
208  !
209  ! 3. Parameters :
210  !
211  ! Parameter list
212  ! ----------------------------------------------------------------
213  ! INXOUT C*(*) I Test string for read/write, valid are:
214  ! 'READ', 'WRITE' and 'GRID'.
215  ! NDSM Int. I File unit number.
216  ! NDSA Int. I File unit number. ascii
217  ! IMOD Int. I Model number for W3GDAT etc.
218  ! FEXT C*(*) I File extension to be used.
219  ! ----------------------------------------------------------------
220  !
221  ! 4. Subroutines used :
222  !
223  ! See above.
224  !
225  ! 5. Called by :
226  !
227  ! Name Type Module Description
228  ! ----------------------------------------------------------------
229  ! W3INIT Subr. W3INITMD Wave model initialization routine.
230  ! ...... Prog. N/A All WAVEWATCH III aux programs and
231  ! drivers.
232  ! ----------------------------------------------------------------
233  !
234  ! 6. Error messages :
235  !
236  ! Tests on INXOUT, file status and on array dimensions.
237  !
238  ! 7. Remarks :
239  !
240  ! - The model definition file has the pre-defined name
241  ! 'mod_def.FILEXT'.
242  !
243  ! 8. Structure :
244  !
245  ! See source code.
246  !
247  ! 9. Switches :
248  !
249  ! !/MPI MPI calls
250  !
251  ! !/LNn Select source terms
252  ! !/STn
253  ! !/NLn
254  ! !/BTn
255  ! !/DBn
256  ! !/TRn
257  ! !/BSn
258  ! !/XXn
259  !
260  ! !/S Enable subroutine tracing.
261  ! !/T Enable test output
262  !
263  ! 10. Source code :
264  !
265  !/ ------------------------------------------------------------------- /
266  use w3servmd, only : print_memcheck
267 
268  USE constants
269  USE w3gdatmd
270 #ifdef W3_MPI
271  USE w3adatmd, ONLY: mpi_comm_wave
272 #endif
273  USE w3odatmd
274 #ifdef W3_ST2
275  USE w3src2md, ONLY: inptab
276 #endif
277 #ifdef W3_ST3
278  USE w3src3md, ONLY: insin3
279 #endif
280 #ifdef W3_ST4
281  USE w3src4md, ONLY: insin4, taut, tauhft, tauhft2, &
282  delu, deltauw, delust, &
283  delalp, deltail, &
284  dikcumul
285 #endif
286 #ifdef W3_NL1
287  USE w3snl1md, ONLY: insnl1, insnlgqm
288 #endif
289 #ifdef W3_NL2
290  USE w3snl2md, ONLY: insnl2
291 #endif
292 #ifdef W3_NL3
293  USE w3snl3md, ONLY: insnl3
294 #endif
295 #ifdef W3_NL5
296  USE w3snl5md, ONLY: insnl5
297 #endif
298 #ifdef W3_NLS
299  USE w3snlsmd, ONLY: insnls
300 #endif
301 #ifdef W3_IS2
302  USE w3sis2md, ONLY: insis2
303 #endif
304  USE w3timemd, ONLY: caltype
305  USE w3servmd, ONLY: extcde
306 #ifdef W3_S
307  USE w3servmd, ONLY: strace
308 #endif
309  USE w3dispmd
310 #ifdef W3_UOST
311  USE w3uostmd, ONLY: uost_initgrid
312 #endif
313  !
314 #ifdef W3_MPI
315  include "mpif.h"
316 #endif
317  !/
318  !/ ------------------------------------------------------------------- /
319  !/ Parameter list
320  !/
321  INTEGER, INTENT(IN) :: NDSM
322  INTEGER, INTENT(IN), OPTIONAL :: IMOD
323  CHARACTER, INTENT(IN) :: INXOUT*(*)
324  CHARACTER, INTENT(IN), OPTIONAL :: FEXT*(*)
325 #ifdef W3_ASCII
326  INTEGER, INTENT(IN), OPTIONAL :: NDSA
327 #endif
328  !/
329  !/ ------------------------------------------------------------------- /
330  !/ Local parameters
331  !/
332  INTEGER :: IGRD, IERR, I, J, MTH, MK, ISEA, IX, IY
333  INTEGER :: IEXT, IPRE
334 #ifdef W3_ST4
335  INTEGER :: IK, ITH, IK2, ITH2
336 #endif
337  INTEGER, ALLOCATABLE :: MAPTMP(:,:)
338 #ifdef W3_MPI
339  INTEGER :: IERR_MPI, IP
340 #endif
341 #ifdef W3_S
342  INTEGER, SAVE :: IENT = 0
343 #endif
344 #ifdef W3_T
345  INTEGER :: K
346 #endif
347  LOGICAL :: WRITE, FLTEST = .false., testll, &
348  flsnl2 = .false.
349  LOGICAL, SAVE :: FLINP = .false. , fldisp = .false., &
350  flis = .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)
361  LOGICAL :: GLOBAL
362 
363  REAL, ALLOCATABLE :: XGRD4(:,:), YGRD4(:,:)
364 
365  integer :: memunit
366  !/
367  !/ ------------------------------------------------------------------- /
368  !/
369  memunit = 740+iaproc
370 #ifdef W3_S
371  CALL strace (ient, 'W3IOGR')
372 #endif
373  !
374  call print_memcheck(memunit, 'memcheck_____:'//' WIOGR SECTION 1')
375 
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. '/)
381  !
382  tnamef = '------------------------------'
383  tname0 = '------------------------------'
384  tname1 = '------------------------------'
385  tname2 = '------------------------------'
386  tname3 = '------------------------------'
387  tname4 = '------------------------------'
388  tname5 = '------------------------------'
389  tname6 = '------------------------------'
390  tnamep = '------------------------------'
391  tnameg = '------------------------------'
392  tnamei = '------------------------------'
393  !
394 #ifdef W3_FLX1
395  tnamef = 'Wu (1980) '
396 #endif
397 #ifdef W3_FLX2
398  tnamef = 'Tolman and Chalikov (1996) '
399 #endif
400 #ifdef W3_FLX3
401  tnamef = 'T and C(1996) with cap on Cd '
402 #endif
403 #ifdef W3_FLX4
404  tnamef = 'Hwang (2011) with cap on Cd '
405 #endif
406 #ifdef W3_FLX5
407  tnamef = 'Direct use of stress '
408 #endif
409 #ifdef W3_LN0
410  tname0 = 'Not defined '
411 #endif
412 #ifdef W3_LN1
413  tname0 = 'Cavaleri and M.-R. (1982) '
414 #endif
415 #ifdef W3_ST0
416  tname1 = 'Not defined '
417 #endif
418 #ifdef W3_ST1
419  tname1 = 'WAM cycles 1 through 3 '
420 #endif
421 #ifdef W3_ST2
422  tname1 = 'Tolman and Chalikov (1996) '
423 #endif
424 #ifdef W3_ST3
425  tname1 = 'WAM cycle 4+ '
426 #endif
427 #ifdef W3_ST4
428  tname1 = 'Ardhuin et al. (2009+) '
429 #endif
430 #ifdef W3_ST6
431  tname1 = 'BYDB input and dissipation '
432 #endif
433 #ifdef W3_NL0
434  tname2 = 'Not defined '
435 #endif
436 #ifdef W3_NL1
437  tname2 = 'Discrete Interaction Approx. '
438 #endif
439 #ifdef W3_NL2
440  tname2 = 'Exact nonlinear interactions '
441 #endif
442 #ifdef W3_NL3
443  tname2 = 'Generalized Multiple DIA '
444 #endif
445 #ifdef W3_NL4
446  tname2 = 'Two Scaled Approximation '
447 #endif
448 #ifdef W3_NL5
449  tname2 = 'Generalized Kinetic Equation '
450 #endif
451 #ifdef W3_BT0
452  tname3 = 'Not defined '
453 #endif
454 #ifdef W3_BT1
455  tname3 = 'JONSWAP '
456 #endif
457 #ifdef W3_BT4
458  tname3 = 'SHOWEX '
459 #endif
460 #ifdef W3_BT8
461  tname3 = 'Muddy Bed (D & L) '
462 #endif
463 #ifdef W3_IC1
464  tnamei = 'Ice sink term (uniform k_i) '
465 #endif
466 #ifdef W3_IC2
467  tnamei = 'Ice sink term (Lui et al) '
468 #endif
469 #ifdef W3_IC3
470  tnamei = 'Ice sink term (Wang and Shen) '
471 #endif
472 #ifdef W3_IC4
473  tnamei = 'Ice sink term (empirical) '
474 #endif
475 #ifdef W3_IC5
476  tnamei = 'Ice sink term (eff. medium) '
477 #endif
478 #ifdef W3_DB0
479  tname4 = 'Not defined '
480 #endif
481 #ifdef W3_DB1
482  tname4 = 'Battjes and Janssen (1978) '
483 #endif
484 #ifdef W3_TR0
485  tname5 = 'Not defined '
486 #endif
487 #ifdef W3_BS0
488  tname6 = 'Not defined '
489 #endif
490 #ifdef W3_PR0
491  tnamep = 'No propagation '
492 #endif
493 #ifdef W3_PR1
494  tnamep = 'First order upstream '
495 #endif
496 #ifdef W3_UQ
497  tnamep = '3rd order UQ scheme '
498 #endif
499 #ifdef W3_UNO
500  tnamep = '2nd order UNO scheme '
501 #endif
502 #ifdef W3_PR0
503  tnameg = 'No GSE aleviation '
504 #endif
505 #ifdef W3_PR1
506  tnameg = 'No GSE aleviation (1up prop) '
507 #endif
508 #ifdef W3_PR2
509  tnameg = 'Diffusion operator '
510 #endif
511 #ifdef W3_PR3
512  tnameg = 'Averaging operator '
513 #endif
514  !
515  fnamef = tnamef
516  fname0 = tname0
517  fname1 = tname1
518  fname2 = tname2
519  fname3 = tname3
520  fname4 = tname4
521  fname5 = tname5
522  fname6 = tname6
523  fnamep = tnamep
524  fnameg = tnameg
525  fnamei = tnamei
526  !
527 #ifdef W3_T
528  fltest = .true.
529 #endif
530 #ifdef W3_NL2
531  flsnl2 = .true.
532 #endif
533  !
534  ! test input parameters ---------------------------------------------- *
535  !
536  IF ( PRESENT(imod) ) THEN
537  igrd = imod
538  ELSE
539  igrd = 1
540  END IF
541  !
542  IF ( PRESENT(fext) ) THEN
543  tempxt = fext
544  ELSE
545  tempxt = 'ww3'
546  END IF
547  !
548  IF (inxout.NE.'READ' .AND. inxout.NE.'WRITE' &
549  .AND. inxout.NE.'GRID') THEN
550  IF ( iaproc .EQ. naperr ) WRITE (ndse,900) inxout
551  CALL extcde ( 1 )
552  END IF
553  !
554  WRITE = inxout .EQ. 'WRITE'
555  !
556 #ifdef W3_T
557  WRITE (ndst,9000) inxout, WRITE, ndsm, igrd, tempxt
558 #endif
559  !
560  CALL w3seto ( igrd, ndse, ndst )
561  CALL w3setg ( igrd, ndse, ndst )
562  filext = tempxt
563  call print_memcheck(memunit, 'memcheck_____:'//' WIOGR SECTION 2')
564  !
565  ! open file ---------------------------------------------------------- *
566  !
567  iext = len_trim(filext)
568  ipre = len_trim(fnmpre)
569  !
570  !AR: ADD DEBUGFLAG WRITE(*,*) 'FILE=', FNMPRE(:IPRE)//'mod_def.'//FILEXT(:IEXT)
571  IF ( WRITE ) THEN
572  OPEN (ndsm,file=fnmpre(:ipre)//'mod_def.'//filext(:iext), &
573  form='UNFORMATTED', convert=file_endian,err=800,iostat=ierr)
574 #ifdef W3_ASCII
575  OPEN (ndsa,file=fnmpre(:ipre)//'mod_def.'//filext(:iext)//'.txt', &
576  form='FORMATTED',err=800,iostat=ierr)
577 #endif
578  ELSE
579  OPEN (ndsm,file=fnmpre(:ipre)//'mod_def.'//filext(:iext), &
580  form='UNFORMATTED', convert=file_endian,status='OLD',err=800,iostat=ierr)
581  ENDIF
582  !
583  rewind( ndsm )
584  !
585  ! Dimensions and test information --------------------------------------
586  !
587  IF ( WRITE ) THEN
588  WRITE (ndsm) &
589  idstr, vergrd, nx, ny, nsea, nth, nk, &
590  nbi, nfbpo, gname, fname0, fname1, fname2, fname3, &
591  fname4, fname5, fname6, fnamep, fnameg, &
592  fnamef, fnamei
593 #ifdef W3_ASCII
594  WRITE (ndsa,*) &
595  'IDSTR, VERGRD, NX, NY, NSEA, NTH, NK, &
596  NBI, NFBPO, GNAME, FNAME0, FNAME1, FNAME2, FNAME3, &
597  FNAME4, FNAME5, FNAME6, FNAMEP, FNAMEG, &
598  FNAMEF, FNAMEI:', &
599  idstr, vergrd, nx, ny, nsea, nth, nk, &
600  nbi, nfbpo, gname, fname0, fname1, fname2, fname3, &
601  fname4, fname5, fname6, fnamep, fnameg, &
602  fnamef, fnamei
603 #endif
604  !
605 #ifdef W3_SMC
606  WRITE (ndsm) ncel, nufc, nvfc, nrlv, mrfct
607 #ifdef W3_ASCII
608  WRITE (ndsa,*) 'NCel, NUFc, NVFc, NRLv, MRFct:', &
609  ncel, nufc, nvfc, nrlv, mrfct
610 #endif
611  WRITE (ndsm) nglo, narc, nbgl, nbac, nbsmc
612 #ifdef W3_ASCII
613  WRITE (ndsa,*) 'NGLO, NARC, NBGL, NBAC, NBSMC:', &
614  nglo, narc, nbgl, nbac, nbsmc
615 #endif
616 #endif
617  !
618  WRITE (ndsm) &
619  (nbo(i),i=0,nfbpo), (nbo2(i),i=0,nfbpo)
620 #ifdef W3_ASCII
621  WRITE (ndsa,*) &
622  '(NBO(I),I=0,NFBPO), (NBO2(I),I=0,NFBPO):', &
623  (nbo(i),i=0,nfbpo), (nbo2(i),i=0,nfbpo)
624 #endif
625 #ifdef W3_T
626  WRITE (ndst,9001) idstr, vergrd, nx, ny, nsea, nth, nk, &
627  nbi, nfbpo, 9, gname, fname0, fname1, fname2, fname3, &
628  fname4, fname5, fname6, fnamep, fnameg, &
629  fnamef, fnamei
630  WRITE (ndst,9002) (nbo(i),i=0,nfbpo)
631  WRITE (ndst,9003) (nbo2(i),i=0,nfbpo)
632 #endif
633  ELSE
634  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
635  idtst, vertst, nx, ny, nsea, mth, mk, &
636  nbi, nfbpo, gname, fname0, fname1, fname2, fname3, &
637  fname4, fname5, fname6, fnamep, fnameg, &
638  fnamef, fnamei
639  !
640 #ifdef W3_SMC
641  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
642  ncel, nufc, nvfc, nrlv, mrfct
643  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
644  nglo, narc, nbgl, nbac, nbsmc
645 #endif
646  !
647  nk = mk
648  nth = mth
649  nk2 = nk + 2
650  nspec = nk * nth
651 #ifdef W3_T
652  WRITE (ndst,9001) idstr, vergrd, nx, ny, nsea, nth, nk, &
653  nbi, nfbpo, 9, gname, fname0, fname1, fname2, fname3, &
654  fname4, fname5, fname6, fnamep, fnameg, &
655  fnamef, fnamei
656 #endif
657  !
658  IF ( idtst .NE. idstr ) THEN
659  IF ( iaproc .EQ. naperr ) &
660  WRITE (ndse,901) idtst, idstr
661  CALL extcde ( 10 )
662  END IF
663  IF ( vertst .NE. vergrd ) THEN
664  IF ( iaproc .EQ. naperr ) &
665  WRITE (ndse,902) vertst, vergrd
666  CALL extcde ( 11 )
667  END IF
668  IF ( nfbpo .GT. 9 ) THEN
669  IF ( iaproc .EQ. naperr ) &
670  WRITE (ndse,904) nfbpo, 9
671  CALL extcde ( 13 )
672  END IF
673  IF ( fname0 .NE. tname0 ) THEN
674  IF ( iaproc .EQ. naperr ) &
675  WRITE (ndse,905) 0, filext(:iext), fname0, tname0, &
676  message
677  CALL extcde ( 14 )
678  END IF
679  IF ( fname1 .NE. tname1 ) THEN
680  IF ( iaproc .EQ. naperr ) &
681  WRITE (ndse,905) 1, filext(:iext), fname1, tname1, &
682  message
683  CALL extcde ( 15 )
684  END IF
685  IF ( fname2 .NE. tname2 ) THEN
686  IF ( iaproc .EQ. naperr ) &
687  WRITE (ndse,905) 2, filext(:iext), fname2, tname2, &
688  message
689  CALL extcde ( 16 )
690  END IF
691  IF ( fname3 .NE. tname3 ) THEN
692  IF ( iaproc .EQ. naperr ) &
693  WRITE (ndse,905) 3, filext(:iext), fname3, tname3, &
694  message
695  CALL extcde ( 17 )
696  END IF
697  IF ( fnamei .NE. tnamei ) THEN
698  IF ( iaproc .EQ. naperr ) &
699  WRITE (ndse,905) 3, filext(:iext), fnamei, tnamei, &
700  message
701  CALL extcde ( 17 )
702  END IF
703  IF ( fname4 .NE. tname4 ) THEN
704  IF ( iaproc .EQ. naperr ) &
705  WRITE (ndse,905) 4, filext(:iext), fname4, tname4, &
706  message
707  CALL extcde ( 18 )
708  END IF
709  IF ( fname5 .NE. tname5 ) THEN
710  IF ( iaproc .EQ. naperr ) &
711  WRITE (ndse,905) 5, filext(:iext), fname5, tname5, &
712  message
713  CALL extcde ( 19 )
714  END IF
715  IF ( fname6 .NE. tname6 ) THEN
716  IF ( iaproc .EQ. naperr ) &
717  WRITE (ndse,905) 6, filext(:iext), fname6, tname6, &
718  message
719  CALL extcde ( 20 )
720  END IF
721  IF ( fnamep .NE. tnamep ) THEN
722  IF ( iaproc .EQ. naperr ) &
723  WRITE (ndse,906) fnamep, tnamep
724  CALL extcde ( 22 )
725  END IF
726  IF ( fnameg .NE. tnameg ) THEN
727  IF ( iaproc .EQ. naperr ) &
728  WRITE (ndse,907) fnameg, tnameg, message
729  CALL extcde ( 22 )
730  END IF
731  IF ( fnamef .NE. tnamef ) THEN
732  IF ( iaproc .EQ. naperr ) &
733  WRITE (ndse,908) filext(:iext), fnamef, tnamef, message
734  CALL extcde ( 24 )
735  END IF
736  !
737  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
738  (nbo(i),i=0,nfbpo), (nbo2(i),i=0,nfbpo)
739 #ifdef W3_T
740  WRITE (ndst,9002) (nbo(i),i=0,nfbpo)
741  WRITE (ndst,9003) (nbo2(i),i=0,nfbpo)
742 #endif
743  !
744  ENDIF
745  call print_memcheck(memunit, 'memcheck_____:'//' WIOGR SECTION 3')
746  !
747  ! Parameters in modules --------------------------------------------- *
748  ! Module W3GDAT GRID
749  !
750  ALLOCATE ( maptmp(ny,nx) )
751  !
752  IF ( WRITE ) THEN
753  maptmp = mapsta + 8*mapst2
754  WRITE (ndsm) &
756 #ifdef W3_ASCII
757  WRITE (ndsa,*) &
758  'GTYPE, FLAGLL, ICLOSE:', &
760 #endif
761  !
762  ! Writes different kind of information depending on grid type
763  !
764  SELECT CASE ( gtype )
765  !!Li SMCTYPE shares info with RLGTYPE. JGLi12Oct2020
766  CASE ( rlgtype, smctype )
767  WRITE (ndsm) &
768  sx, sy, x0, y0
769 #ifdef W3_ASCII
770  WRITE (ndsa,*) &
771  'SX, SY, X0, Y0:', &
772  sx, sy, x0, y0
773 #endif
774  CASE ( clgtype )
775  WRITE (ndsm) &
776  REAL(XGRD), REAL(YGRD)
777 #ifdef W3_ASCII
778  WRITE (ndsa,*) &
779  'REAL(XGRD), REAL(YGRD):', &
780  REAL(XGRD), REAL(YGRD)
781 #endif
782  CASE (ungtype)
783  WRITE (ndsm) &
787  ntri,countot, countri, nnz, &
791  b_jgs_limiter, &
794  b_jgs_maxiter, &
795  b_jgs_pmin, &
796  b_jgs_diff_thr, &
797  b_jgs_norm_thr, &
798  b_jgs_nlevel, &
800 #ifdef W3_ASCII
801  WRITE (ndsa,*) &
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, &
809  B_JGS_LIMITER, &
810  B_JGS_BLOCK_GAUSS_SEIDEL, &
811  B_JGS_USE_JACOBI, &
812  B_JGS_MAXITER, &
813  B_JGS_PMIN, &
814  B_JGS_DIFF_THR, &
815  B_JGS_NORM_THR, &
816  B_JGS_NLEVEL, &
817  B_JGS_SOURCE_NONLINEAR:', &
821  ntri,countot, countri, nnz, &
825  b_jgs_limiter, &
828  b_jgs_maxiter, &
829  b_jgs_pmin, &
830  b_jgs_diff_thr, &
831  b_jgs_norm_thr, &
832  b_jgs_nlevel, &
834 #endif
835  !Init COUNTCON and IOBDP to zero, it needs to be set somewhere or
836  !removed
837  countcon=0
838  iobdp=0
839  WRITE (ndsm) &
840  x0, y0, sx, sy, dxymax, xgrd, ygrd, trigp, tria, &
841  len, ien, angle0, angle, si, maxx, maxy, &
844 #ifdef W3_ASCII
845  WRITE (ndsa,*) &
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:', &
850  x0, y0, sx, sy, dxymax, xgrd, ygrd, trigp, tria, &
851  len, ien, angle0, angle, si, maxx, maxy, &
854 #endif
855  END SELECT !GTYPE
856  !
857  WRITE (ndsm) &
858  zb, maptmp, mapfs, mapsf, trflag
859 #ifdef W3_ASCII
860  WRITE (ndsa,*) &
861  'ZB, MAPTMP, MAPFS, MAPSF, TRFLAG:', &
862  zb, maptmp, mapfs, mapsf, trflag
863 #endif
864  !
865 #ifdef W3_SMC
866  IF( gtype .EQ. smctype ) THEN
867  WRITE (ndsm) nlvcel, nlvufc, nlvvfc
868  WRITE (ndsm) ijkcel, ijkufc, ijkvfc, ismcbp
869  WRITE (ndsm) iclbac
870  WRITE (ndsm) angarc
871  WRITE (ndsm) ctrnx, ctrny, clatf
872 #ifdef W3_ASCII
873  WRITE (ndsa,*) 'NLvCel, NLvUFc, NLvVFc:', &
875  WRITE (ndsa,*) 'IJKCel, IJKUFc, IJKVFc, ISMCBP:', &
877  WRITE (ndsa,*) 'ICLBAC:', &
878  iclbac
879  WRITE (ndsa,*) 'ANGARC:', &
880  angarc
881  WRITE (ndsa,*) 'CTRNX, CTRNY, CLATF:', &
882  ctrnx, ctrny, clatf
883 #endif
884  IF ( fltest ) THEN
885  WRITE (ndse,"(' NRLv, MRFct and NBSMC values are',3I9)") nrlv, mrfct, nbsmc
886  WRITE (ndse,"(' IJKCel, IJKUFc, IJKVFc Write for',3I9)") ncel, nufc, nvfc
887  WRITE (ndse,"(' CTRNXY transparency write for 2x', I9)") ncel
888  ENDIF
889  ENDIF
890 #endif
891  !
892  IF ( trflag .NE. 0 ) WRITE (ndsm) trnx, trny
893 #ifdef W3_ASCII
894  IF ( trflag .NE. 0 ) WRITE (ndsa,*) 'TRNX, TRNY:', trnx, trny
895 #endif
896  WRITE (ndsm) &
897  dtcfl, dtcfli, dtmax, dtmin, dmin, ctmax, &
904 #ifdef W3_ASCII
905  WRITE (ndsa,*) &
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:', &
913  dtcfl, dtcfli, dtmax, dtmin, dmin, ctmax, &
920 #endif
921 
922  WRITE(ndsm)gridshift
923 #ifdef W3_ASCII
924  WRITE(ndsa,*)'GRIDSHIFT:', &
925  gridshift
926 #endif
927 #ifdef W3_SEC1
928  WRITE (ndsm) nitersec1
929 #ifdef W3_ASCII
930  WRITE (ndsa,*) 'NITERSEC1:', &
931  nitersec1
932 #endif
933 #endif
934 #ifdef W3_RTD
935  !! Add rotated Polat/lon and AnglD to mod_def JGLi12Jun2012
936  WRITE (ndsm) polat, polon, angld, flagunr
937 #ifdef W3_ASCII
938  WRITE (ndsa,*) 'PoLat, PoLon, AnglD, FLAGUNR:', &
940 #endif
941 
942 #endif
943  !! WRITE(NDSM) &
944  !! COUG_2D, COUG_RAD3D, COUG_US3D
945  ELSE
946  call print_memcheck(memunit, 'memcheck_____:'//' WIOGR SECTION 4')
947 
948  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
950  !!Li IF (.NOT.GINIT) CALL W3DIMX ( IGRD, NX, NY, NSEA, NDSE, NDST )
951  IF (.NOT.ginit) CALL w3dimx ( igrd, nx, ny, nsea, ndse, ndst &
952 #ifdef W3_SMC
953  , ncel, nufc, nvfc, nrlv, nbsmc &
954  , narc, nbac, nspec &
955 #endif
956  )
957  !
958  ! Reads different kind of information depending on grid type
959  !
960  SELECT CASE ( gtype )
961  !!Li SMCTYPE shares info with RLGTYPE. JGLi12Oct2020
962  CASE ( rlgtype, smctype )
963  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
964  sx, sy, x0, y0
965  DO ix=1,nx
966  xgrd(:,ix) = real(x0 + real(ix-1)*sx)
967  END DO
968  DO iy=1,ny
969  ygrd(iy,:) = real(y0 + real(iy-1)*sy)
970  END DO
971  CASE ( clgtype )
972  ALLOCATE(xgrd4(ny,nx),ygrd4(ny,nx)); xgrd4 = 0.; ygrd4 = 0.
973  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
974  xgrd4, ygrd4
975  xgrd = xgrd4
976  ygrd = ygrd4
977  DEALLOCATE(xgrd4, ygrd4)
978  !Set SX, SY, X0, Y0 to large values if curvilinear grid
979  x0 = huge(x0); y0 = huge(y0)
980  sx = huge(sx); sy = huge(sy)
981  CASE (ungtype)
982  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
986  ntri,countot, countri, nnz, &
990  b_jgs_limiter, &
993  b_jgs_maxiter, &
994  b_jgs_pmin, &
995  b_jgs_diff_thr, &
996  b_jgs_norm_thr, &
997  b_jgs_nlevel, &
999  IF (.NOT. guginit) THEN
1000  CALL w3dimug ( igrd, ntri, nx, countot, nnz, ndse, ndst )
1001  END IF
1002  call print_memcheck(memunit, 'memcheck_____:'//' WIOGR SECTION 5')
1003 
1004  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1005  x0, y0, sx, sy, dxymax, xgrd, ygrd, trigp, tria, &
1006  len, ien, angle0, angle, si, maxx, maxy, &
1009  call print_memcheck(memunit, 'memcheck_____:'//' WIOGR SECTION 6')
1010 
1011  END SELECT !GTYPE
1012  !
1013  IF (gtype.NE.ungtype) CALL w3gntx ( igrd, ndse, ndst )
1014  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1015  zb, maptmp, mapfs, mapsf, trflag
1016  !
1017 #ifdef W3_SMC
1018  IF( gtype .EQ. smctype ) THEN
1019  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1020  nlvcel, nlvufc, nlvvfc
1021  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1023  DO j=lbound(ijkcel,2), ubound(ijkcel,2)
1024  ijkcel3(j) = ijkcel(3,j)
1025  ijkcel4(j) = ijkcel(4,j)
1026  END DO
1027  DO j=lbound(ijkvfc,2), ubound(ijkvfc,2)
1028  ijkvfc5(j) = ijkvfc(5,j)
1029  ijkvfc6(j) = ijkvfc(6,j)
1030  END DO
1031  DO j=lbound(ijkufc,2), ubound(ijkufc,2)
1032  ijkufc5(j) = ijkufc(5,j)
1033  ijkufc6(j) = ijkufc(6,j)
1034  END DO
1035  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1036  iclbac
1037  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1038  angarc
1039  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1040  ctrnx, ctrny, clatf
1041  ENDIF
1042 #endif
1043  !
1044  mapsta = mod(maptmp+2,8) - 2
1045  mapst2 = (maptmp-mapsta) / 8
1046  mapsf(:,3) = mapsf(:,2) + (mapsf(:,1)-1)*ny
1047  IF ( trflag .NE. 0 ) THEN
1048  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) TRNX, trny
1049  END IF
1050 #ifdef W3_UOST
1051  ! UOST (Unresolved Obstacles Source Term) is enabled.
1052  ! setting TRNX, TRNY to null values
1053  trnx = 1
1054  trny = 1
1055 #endif
1056 
1057  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1058  dtcfl, dtcfli, dtmax, dtmin, dmin, ctmax, &
1059  fice0, ficen, ficel, pfmove, fldry, flcx, flcy, &
1064  aaircmin, aairgb
1065 
1066  READ(ndsm,END=801,ERR=802,IOSTAT=IERR)gridshift
1067 #ifdef W3_SEC1
1068  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) nitersec1
1069 #endif
1070  !
1071 #ifdef W3_RTD
1072  !! Read rotated Polat/lon and AnglD from mod_def JGLi12Jun2012
1073  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) PoLat, PoLon, AnglD, flagunr
1074 
1075 #endif
1076  !
1077  END IF
1078  call print_memcheck(memunit, 'memcheck_____:'//' WIOGR SECTION 7')
1079  !
1080 #ifdef W3_T
1081  WRITE (ndst,9010) gtype, flagll, iclose, sx, sy, x0, y0, trflag
1082  WRITE (ndst,9011) 'MAPSTA'
1083  DO iy=min(ny,20), 1, -1
1084  WRITE (ndst,9012) (mapsta(iy,ix),ix=1,min(nx,30))
1085  END DO
1086  WRITE (ndst,9011) 'MAPST2'
1087  DO iy=min(ny,20), 1, -1
1088  WRITE (ndst,9012) (mapst2(iy,ix),ix=1,min(nx,30))
1089  END DO
1090  WRITE (ndst,9011) 'MAPFS'
1091  DO iy=min(ny,20), 1, -1
1092  WRITE (ndst,9013) (mapfs(iy,ix),ix=1,min(nx,12))
1093  END DO
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))
1098  END DO
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))
1102  END DO
1103  END IF
1104 #endif
1105  !
1106  DEALLOCATE ( maptmp )
1107  !
1108 #ifdef W3_T
1109  WRITE (ndst,9015) dtcfl, dtcfli, dtmax, dtmin, &
1110  dmin, ctmax, fice0, ficen, ficel, pfmove, &
1111  stexu, steyu, stedu
1112  WRITE (ndst,9016) fldry, flcx, flcy, flcth, flck, &
1113  flsou, flbpi, flbpo
1114  WRITE (ndst,9017) (clats(isea),isea=1,1), &
1115  (clatis(isea),isea=1,1), (cthg0s(iy),isea=1,1)
1116 #endif
1117  !
1118  ! Spectral parameters ------------------------------------------------ *
1119  ! Module W3GDATMD SGRD
1120  !
1121  IF ( WRITE ) THEN
1122  WRITE (ndsm) &
1123  mapwn, mapth, dth, th, esin, ecos, es2, esc, ec2, &
1124  xfr, fr1, sig, sig2, dsip, dsii, dden, dden2, fte, &
1126 #ifdef W3_ASCII
1127  WRITE (ndsa,*) &
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:', &
1131  mapwn, mapth, dth, th, esin, ecos, es2, esc, ec2, &
1132  xfr, fr1, sig, sig2, dsip, dsii, dden, dden2, fte, &
1134 #endif
1135  ELSE
1136  IF (.NOT.sinit) CALL w3dims ( igrd, nk, nth, ndse, ndst )
1137  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1138  mapwn, mapth, dth, th, esin, ecos, es2, esc, ec2, &
1139  xfr, fr1, sig, sig2, dsip, dsii, dden, dden2, fte, &
1141  END IF
1142 
1143  !
1144 #ifdef W3_T
1145  WRITE (ndst,9030) (mapwn(i),i=1,8), (mapth(i),i=1,8), dth*rade, &
1146  (th(i)*rade,i=1,4), (esin(i),i=1,4), (ecos(i),i=1,4), &
1147  xfr, sig(1)*tpiinv, sig(nk)*tpiinv, fte, ftf, ftwn, fttr, &
1149 #endif
1150  !
1151  !
1152  ! Output flags for 3D parameters ------------------------------------- *
1153  ! Module W3GDATMD
1154  IF ( WRITE ) THEN
1155  WRITE (ndsm) &
1157 #ifdef W3_ASCII
1158  WRITE (ndsa,*) &
1159  'E3DF, P2MSF, US3DF,USSPF, USSP_WN:', &
1161 #endif
1162  ELSE
1163  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1165  END IF
1166 
1167  IF ( inxout .EQ. 'GRID' ) THEN
1168  CLOSE (ndsm)
1169  RETURN
1170  END IF
1171  !
1172  ! Parameters for output boundary points ------------------------------ *
1173  ! Module W3ODATMD OUT5
1174  !
1175  IF ( WRITE ) THEN
1176  WRITE (ndsm) &
1177  xbpo, ybpo, rdbpo, ipbpo, isbpo
1178 #ifdef W3_ASCII
1179  WRITE (ndsa,*) &
1180  'XBPO, YBPO, RDBPO, IPBPO, ISBPO:', &
1181  xbpo, ybpo, rdbpo, ipbpo, isbpo
1182 #endif
1183  ELSE
1184  CALL w3dmo5 ( igrd, ndse, ndst, 2 )
1185  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1186  xbpo, ybpo, rdbpo, ipbpo, isbpo
1187  END IF
1188  !
1189 #ifdef W3_T
1190  WRITE (ndst,9020)
1191  DO i=1, nfbpo
1192  WRITE (ndst,9021) i
1193  DO j=nbo(i-1)+1,nbo(i)
1194  WRITE (ndst,9022) j-nbo(i-1), (ipbpo(j,k),k=1,4), &
1195  (rdbpo(j,k),k=1,4)
1196  END DO
1197  WRITE (ndst,9023) (isbpo(j),j=nbo2(i-1)+1,nbo2(i))
1198  END DO
1199 #endif
1200  !
1201  ! Parameters for spectral partitioning ------------------------------ *
1202  ! Module W3ODATMD OUT6
1203  !
1204  IF ( WRITE ) THEN
1205  WRITE (ndsm) &
1207  ptmeth, ptfcut
1208 #ifdef W3_ASCII
1209  WRITE (ndsa,*) &
1210  'IHMAX, HSPMIN, WSMULT, WSCUT, FLCOMB, NOSWLL, &
1211  PTMETH, PTFCUT:', &
1213  ptmeth, ptfcut
1214 #endif
1215  ELSE
1216  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1218  ptmeth, ptfcut
1219  END IF
1220  !
1221 #ifdef W3_T
1222  WRITE (ndst,9025) ihmax, hspmin, wsmult, wscut, flcomb, noswll
1223 #endif
1224  !
1225  ! Numerical parameters ----------------------------------------------- *
1226  ! Module W3GDATMD NPAR
1227  !
1228  IF ( WRITE ) THEN
1229  WRITE (ndsm) &
1230  facp, xrel, xflt, fxfm, fxpm, xft, xfc, facsd, fhmax, &
1232 #ifdef W3_ASCII
1233  WRITE (ndsa,*) &
1234  'FACP, XREL, XFLT, FXFM, FXPM, XFT, XFC, FACSD, FHMAX, &
1235  FFACBERG, DELAB, FWTABLE:', &
1236  facp, xrel, xflt, fxfm, fxpm, xft, xfc, facsd, fhmax, &
1238 #endif
1239 #ifdef W3_RWND
1240  WRITE (ndsm) &
1241  rwindc
1242 #ifdef W3_ASCII
1243  WRITE (ndsa,*) &
1244  'RWINDC:', &
1245  rwindc
1246 #endif
1247 #endif
1248 #ifdef W3_WCOR
1249  WRITE (ndsm) &
1250  wwcor
1251 #ifdef W3_ASCII
1252  WRITE (ndsa,*) &
1253  'WWCOR:', &
1254  wwcor
1255 #endif
1256 #endif
1257 #ifdef W3_REF1
1258  WRITE (ndsm) &
1259  rref, refpars, reflc, refld
1260 #ifdef W3_ASCII
1261  WRITE (ndsa,*) &
1262  'RREF, REFPARS, REFLC, REFLD:', &
1263  rref, refpars, reflc, refld
1264 #endif
1265 #endif
1266 #ifdef W3_IG1
1267  WRITE (ndsm) &
1268  igpars(1:12)
1269 #ifdef W3_ASCII
1270  WRITE (ndsa,*) &
1271  'IGPARS(1:12):', &
1272  igpars(1:12)
1273 #endif
1274 #endif
1275 #ifdef W3_IC2
1276  WRITE (ndsm) &
1277  ic2pars(1:8)
1278 #ifdef W3_ASCII
1279  WRITE (ndsa,*) &
1280  'IC2PARS(1:8):', &
1281  ic2pars(1:8)
1282 #endif
1283 #endif
1284 #ifdef W3_IC3
1285  WRITE (ndsm) &
1286  ic3pars
1287 #ifdef W3_ASCII
1288  WRITE (ndsa,*) &
1289  'IC3PARS:', &
1290  ic3pars
1291 #endif
1292 #endif
1293 #ifdef W3_IC4
1294  WRITE (ndsm) &
1296 #ifdef W3_ASCII
1297  WRITE (ndsa,*) &
1298  'IC4PARS,IC4_KI,IC4_FC,IC4_CN,IC4_FMIN,IC4_KIBK:', &
1300 #endif
1301 #endif
1302 #ifdef W3_IC5
1303  WRITE (ndsm) &
1304  ic5pars
1305 #ifdef W3_ASCII
1306  WRITE (ndsa,*) &
1307  'IC5PARS:', &
1308  ic5pars
1309 #endif
1310 #endif
1311  ELSE
1312  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1313  facp, xrel, xflt, fxfm, fxpm, xft, xfc, facsd, fhmax, &
1315 #ifdef W3_RWND
1316  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1317  rwindc
1318 #endif
1319 #ifdef W3_WCOR
1320  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1321  wwcor
1322 #endif
1323 #ifdef W3_REF1
1324  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1325  rref, refpars, reflc, refld
1326 #endif
1327 #ifdef W3_IG1
1328  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1329  igpars(1:12)
1330 #endif
1331 #ifdef W3_IC2
1332  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1333  ic2pars(1:8)
1334 #endif
1335 #ifdef W3_IC3
1336  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1337  ic3pars
1338 #endif
1339 #ifdef W3_IC4
1340  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1342 #endif
1343 #ifdef W3_IC5
1344  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1345  ic5pars
1346 #endif
1347  END IF
1348  !
1349 #ifdef W3_T
1350  WRITE (ndst,9040) facp, xrel, xflt, fxfm, fxpm, xft, xfc, &
1351  facsd, fhmax
1352 #endif
1353  !
1354  ! Source term parameters --------------------------------------------- *
1355  ! Module W3GDATMD SFLP
1356  ! Module W3GDATMD SLNP
1357  ! Module W3GDATMD SRCP
1358  ! Module W3GDATMD SNLP
1359  ! Module W3GDATMD SBTP
1360  !
1361 #ifdef W3_FLX2
1362  IF ( WRITE ) THEN
1363  WRITE (ndsm) nittin, cinxsi
1364 #ifdef W3_ASCII
1365  WRITE (ndsa,*)' NITTIN, CINXSI:', &
1366  nittin, cinxsi
1367 #endif
1368  ELSE
1369  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) NITTIN, cinxsi
1370  END IF
1371  IF ( fltest ) WRITE (ndst,9048) nittin, cinxsi
1372 #endif
1373  !
1374 #ifdef W3_FLX3
1375  IF ( WRITE ) THEN
1376  WRITE (ndsm) &
1378 #ifdef W3_ASCII
1379  WRITE (ndsa,*) &
1380  'NITTIN, CINXSI, CD_MAX, CAP_ID:', &
1382 #endif
1383  ELSE
1384  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1386  END IF
1387  IF ( fltest ) WRITE (ndst,9048) nittin, cap_id, cinxsi, cd_max
1388 #endif
1389  !
1390 #ifdef W3_FLX4
1391  IF ( WRITE ) THEN
1392  WRITE (ndsm) flx4a0
1393 #ifdef W3_ASCII
1394  WRITE (ndsa,*)' FLX4A0:', &
1395  flx4a0
1396 #endif
1397  ELSE
1398  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) flx4a0
1399  END IF
1400 #endif
1401  !
1402  !
1403 #ifdef W3_LN1
1404  IF ( WRITE ) THEN
1405  WRITE (ndsm) slnc1, fspm, fshf
1406 #ifdef W3_ASCII
1407  WRITE (ndsa,*)' SLNC1, FSPM, FSHF:', &
1408  slnc1, fspm, fshf
1409 #endif
1410  ELSE
1411  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) SLNC1, FSPM, fshf
1412  END IF
1413  IF ( fltest ) WRITE (ndst,9049) slnc1, fspm, fshf
1414 #endif
1415  !
1416 #ifdef W3_ST1
1417  IF ( WRITE ) THEN
1418  WRITE (ndsm) sinc1, sdsc1
1419 #ifdef W3_ASCII
1420  WRITE (ndsa,*)' SINC1, SDSC1:', &
1421  sinc1, sdsc1
1422 #endif
1423  ELSE
1424  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) SINC1, sdsc1
1425  END IF
1426  IF ( fltest ) WRITE (ndst,9050) sinc1, sdsc1
1427 #endif
1428  !
1429 #ifdef W3_ST2
1430  IF ( WRITE ) THEN
1431  WRITE (ndsm) &
1432  zwind, fswell, &
1433  shstab, ofstab, ccng, ccps, ffng, ffps, &
1434  cdsa0, cdsa1, cdsa2, sdsaln, &
1436 #ifdef W3_ASCII
1437  WRITE (ndsa,*) &
1438  'ZWIND, FSWELL, &
1439  SHSTAB, OFSTAB, CCNG, CCPS, FFNG, FFPS, &
1440  CDSA0, CDSA1, CDSA2, SDSALN, &
1441  CDSB0, CDSB1, CDSB2, CDSB3, FPIMIN, XFH, XF1, XF2:',&
1442  zwind, fswell, &
1443  shstab, ofstab, ccng, ccps, ffng, ffps, &
1444  cdsa0, cdsa1, cdsa2, sdsaln, &
1446 #endif
1447  ELSE
1448  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1449  zwind, fswell, &
1450  shstab, ofstab, ccng, ccps, ffng, ffps, &
1451  cdsa0, cdsa1, cdsa2, sdsaln, &
1453  IF ( .NOT. flinp ) CALL inptab
1454  flinp = .true.
1455  END IF
1456  IF ( fltest ) WRITE (ndst,9050) &
1457  zwind, fswell, cdsa0, cdsa1, cdsa2, &
1460 #endif
1461  !
1462 #ifdef W3_ST3
1463  IF ( WRITE ) THEN
1464  WRITE (ndsm) &
1467  sstxftftail, sstxftwn, &
1469  ffxpm, ffxfm
1470 #ifdef W3_ASCII
1471  WRITE (ndsa,*) &
1472  'ZZWND, AALPHA, ZZ0MAX, BBETA, SSINTHP, ZZALP, &
1473  SSWELLF, SSDSC1, WWNMEANP, WWNMEANPTAIL, SSTXFTF, &
1474  SSTXFTFTAIL, SSTXFTWN, &
1475  DDELTA1, DDELTA2, SSTXFTF, SSTXFTWN, &
1476  FFXPM, FFXFM:', &
1479  sstxftftail, sstxftwn, &
1481  ffxpm, ffxfm
1482 #endif
1483  ELSE
1484  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1487  sstxftftail, sstxftwn, &
1489  ffxpm, ffxfm
1490  IF ( .NOT. flinp ) THEN
1491  CALL insin3
1492  flinp = .true.
1493  END IF
1494  END IF
1495 #endif
1496  !
1497 #ifdef W3_ST4
1498  IF ( WRITE ) THEN
1499  CALL insin4(.true.)
1500  WRITE (ndsm) &
1503  zz0rat, ssdsc, &
1509  ssdshck, &
1512 #ifdef W3_ASCII
1513  WRITE (ndsa,*) &
1514  'ZZWND, AALPHA, ZZ0MAX, BBETA, SSINTHP, ZZALP, &
1515  TTAUWSHELTER, SSWELLFPAR, SSWELLF, SSINBR, &
1516  ZZ0RAT, SSDSC, &
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, &
1522  SSDSHCK, &
1523  IKTAB, DCKI, QBI, SATINDICES, SATWEIGHTS, &
1524  DIKCUMUL, CUMULW, SINTAILPAR, CAPCHNK:', &
1527  zz0rat, ssdsc, &
1533  ssdshck, &
1536 #endif
1537  IF (sintailpar(1).GT.0.5) THEN
1538  WRITE (ndsm) delust, deltail, deltauw, delu, delalp, &
1539  taut, tauhft
1540  IF (ttauwshelter.GT.0) WRITE (ndsm) tauhft2
1541 #ifdef W3_ASCII
1542  WRITE (ndsa,*) 'DELUST, DELTAIL, DELTAUW, DELU, DELALP,&
1543  TAUT, TAUHFT:', &
1545  taut, tauhft
1546  IF (ttauwshelter.GT.0) WRITE (ndsa,*) 'TAUHFT2:', tauhft2
1547 #endif
1548  END IF
1549  ELSE
1550  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1553  zz0rat, ssdsc, &
1559  ssdshck, &
1562  IF (sintailpar(1).GT.0.5) THEN
1563  CALL insin4(.false.)
1564  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1566  taut, tauhft
1567  IF (ttauwshelter.GT.0) READ(ndsm,END=801,ERR=802,IOSTAT=IERR) tauhft2
1568  END IF
1569  END IF
1570 #endif
1571  !
1572 #ifdef W3_ST6
1573  IF ( WRITE ) THEN
1574  WRITE (ndsm) sin6a0, sds6et, sds6a1, sds6a2, &
1576  sin6ws, sin6fc
1577 #ifdef W3_ASCII
1578  WRITE (ndsa,*) 'SIN6A0, SDS6ET, SDS6A1, SDS6A2, &
1579  SDS6P1, SDS6P2, SWL6S6, SWL6B1, SWL6CSTB1, &
1580  SIN6WS, SIN6FC:', &
1581  sin6a0, sds6et, sds6a1, sds6a2, &
1583  sin6ws, sin6fc
1584 #endif
1585  ELSE
1586  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1587  sin6a0, sds6et, sds6a1, sds6a2, &
1589  sin6ws, sin6fc
1590  END IF
1591 #endif
1592  !
1593  ! ... Nonlinear interactions
1594  !
1595 #ifdef W3_NL1
1596  IF ( WRITE ) THEN
1597  WRITE (ndsm) &
1598  snlc1, lam, kdcon, kdmn, snls1, snls2, snls3, &
1599  iqtpe, nltail, gqnf1, gqnt1, &
1601 #ifdef W3_ASCII
1602  WRITE (ndsa,*) &
1603  'SNLC1, LAM, KDCON, KDMN, SNLS1, SNLS2, SNLS3, &
1604  IQTPE, NLTAIL, GQNF1, GQNT1, &
1605  GQNQ_OM2, GQTHRSAT, GQTHRCOU, GQAMP:', &
1606  snlc1, lam, kdcon, kdmn, snls1, snls2, snls3, &
1607  iqtpe, nltail, gqnf1, gqnt1, &
1609 #endif
1610  ELSE
1611  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1612  snlc1, lam, kdcon, kdmn, snls1, snls2, snls3, &
1613  iqtpe, nltail, gqnf1, gqnt1, &
1615  END IF
1616  IF ( fltest ) WRITE (ndst,9051) snlc1, lam, &
1617  kdcon, kdmn, snls1, snls2, snls3, &
1620 #endif
1621  !
1622 #ifdef W3_NL2
1623  IF ( WRITE ) THEN
1624  WRITE (ndsm) iqtpe, nltail, ndpths
1625  WRITE (ndsm) dpthnl
1626 #ifdef W3_ASCII
1627  WRITE (ndsa,*) 'IQTPE, NLTAIL, NDPTHS:', &
1628  iqtpe, nltail, ndpths
1629  WRITE (ndsa,*) 'DPTHNL:', &
1630  dpthnl
1631 #endif
1632  ELSE
1633  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1634  iqtpe, nltail, ndpths
1635  ALLOCATE ( mpars(igrd)%SNLPS%DPTHNL(ndpths) )
1636  dpthnl => mpars(igrd)%SNLPS%DPTHNL
1637  pinit = .true.
1638  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) dpthnl
1639  END IF
1640  IF ( fltest ) WRITE (ndst,9051) iqtpe, nltail, ndpths
1641  IF ( fltest ) WRITE (ndst,9151) dpthnl
1642 #endif
1643  !
1644 #ifdef W3_NL3
1645  IF ( WRITE ) THEN
1646  WRITE (ndsm) snlnq, snlmsc, snlnsc, snlsfd, snlsfs
1647  WRITE (ndsm) snll(1:snlnq), snlm(1:snlnq), &
1648  snlt(1:snlnq), snlcd(1:snlnq), &
1649  snlcs(1:snlnq)
1650 #ifdef W3_ASCII
1651  WRITE (ndsa,*) 'SNLNQ, SNLMSC, SNLNSC, SNLSFD, SNLSFS:',&
1653  WRITE (ndsa,*) 'SNLL(1:SNLNQ), SNLM(1:SNLNQ), &
1654  SNLT(1:SNLNQ), SNLCD(1:SNLNQ), &
1655  SNLCS(1:SNLNQ):', &
1656  snll(1:snlnq), snlm(1:snlnq), &
1657  snlt(1:snlnq), snlcd(1:snlnq), &
1658  snlcs(1:snlnq)
1659 #endif
1660  ELSE
1661  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1663  ALLOCATE ( mpars(igrd)%SNLPS%SNLL(snlnq), &
1664  mpars(igrd)%SNLPS%SNLM(snlnq), &
1665  mpars(igrd)%SNLPS%SNLT(snlnq), &
1666  mpars(igrd)%SNLPS%SNLCD(snlnq), &
1667  mpars(igrd)%SNLPS%SNLCS(snlnq) )
1668  snll => mpars(igrd)%SNLPS%SNLL
1669  snlm => mpars(igrd)%SNLPS%SNLM
1670  snlt => mpars(igrd)%SNLPS%SNLT
1671  snlcd => mpars(igrd)%SNLPS%SNLCD
1672  snlcs => mpars(igrd)%SNLPS%SNLCS
1673  pinit = .true.
1674  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1675  snll, snlm, snlt, snlcd, snlcs
1676  END IF
1677  IF ( fltest ) WRITE (ndst,9051) snlnq, snlmsc, snlnsc, &
1678  snlsfd, snlsfs
1679  IF ( fltest ) THEN
1680  DO i=1, snlnq
1681  WRITE (ndst,9151) snll(i), snlm(i), snlt(i), &
1682  snlcd(i), snlcs(i)
1683  END DO
1684  END IF
1685 #endif
1686  !
1687 #ifdef W3_NL4
1688  IF ( WRITE ) THEN
1689  WRITE (ndsm) itsa, ialt
1690 #ifdef W3_ASCII
1691  WRITE (ndsa,*) 'ITSA, IALT:', &
1692  itsa, ialt
1693 #endif
1694  ELSE
1695  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1696  itsa, ialt
1697  END IF
1698  IF ( fltest ) WRITE (ndst,9051) itsa, ialt
1699 #endif
1700  !
1701  ! (QL: INXOUT = Grid option ?)
1702 #ifdef W3_NL5
1703  IF (write) THEN
1704  CALL insnl5
1705  WRITE (ndsm) qr5dpt, qr5oml, qi5dis, qi5kev, &
1706  qi5nnz, qi5ipl, qi5pmx
1707 #ifdef W3_ASCII
1708  WRITE (ndsa,*) 'QR5DPT, QR5OML, QI5DIS, QI5KEV, &
1709  QI5NNZ, QI5IPL, QI5PMX:', &
1710  qr5dpt, qr5oml, qi5dis, qi5kev, &
1711  qi5nnz, qi5ipl, qi5pmx
1712 #endif
1713  ELSE
1714  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1715  qr5dpt, qr5oml, qi5dis, qi5kev, &
1716  qi5nnz, qi5ipl, qi5pmx
1717  END IF
1718  IF ( fltest ) WRITE (ndst,9051) qr5dpt, qr5oml, qi5dis, &
1719  qi5kev, qi5nnz, qi5ipl, &
1720  qi5pmx
1721 #endif
1722  !
1723 #ifdef W3_NLS
1724  IF ( WRITE ) THEN
1725  WRITE (ndsm) &
1727 #ifdef W3_ASCII
1728  WRITE (ndsa,*) &
1729  'CNLSA, CNLSC, CNLSFM, CNLSC1, CNLSC2, CNLSC3:', &
1731 #endif
1732  ELSE
1733  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1735  END IF
1736  IF ( fltest ) WRITE (ndst,9251) &
1738 #endif
1739  !
1740 #ifdef W3_NL1
1741  IF ( .NOT. WRITE ) THEN
1742  IF (iqtpe.GT.0) THEN
1743  CALL insnl1 ( igrd )
1744  ELSE
1745  CALL insnlgqm
1746  END IF
1747  END IF
1748 #endif
1749 #ifdef W3_NL3
1750  IF ( .NOT. WRITE ) CALL insnl3
1751 #endif
1752 #ifdef W3_NLS
1753  IF ( .NOT. WRITE ) CALL insnls
1754 #endif
1755  !
1756  ! Layered barriers needed for file management in xnl_init
1757  !
1758 #ifdef W3_MPI
1759  IF ( flsnl2 .AND. .NOT.WRITE ) THEN
1760  DO ip=1, iaproc-1
1761  CALL mpi_barrier ( mpi_comm_wave, ierr_mpi )
1762  END DO
1763  END IF
1764 #endif
1765 #ifdef W3_NL2
1766  IF ( .NOT. WRITE ) CALL insnl2
1767 #endif
1768 #ifdef W3_MPI
1769  IF ( flsnl2 .AND. .NOT.WRITE ) THEN
1770  DO ip=iaproc, naproc-1
1771  CALL mpi_barrier ( mpi_comm_wave, ierr_mpi )
1772  END DO
1773  END IF
1774 #endif
1775  !
1776  ! ... Bottom friction ...
1777  !
1778 #ifdef W3_BT1
1779  IF ( WRITE ) THEN
1780  WRITE (ndsm) sbtc1
1781 #ifdef W3_ASCII
1782  WRITE (ndsa,*) 'SBTC1:', sbtc1
1783 #endif
1784  ELSE
1785  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) sbtc1
1786  END IF
1787  IF ( fltest ) WRITE (ndst,9052) sbtc1
1788 #endif
1789  !
1790  !
1791 #ifdef W3_BT4
1792  IF ( WRITE ) THEN
1793  WRITE (ndsm) &
1795 #ifdef W3_ASCII
1796  WRITE (ndsa,*) &
1797  'SBTCX, SED_D50, SED_PSIC:', &
1799 #endif
1800  ELSE
1801  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1803  END IF
1804 #endif
1805  !
1806  ! ... Depth induced breaking ...
1807  !
1808  call print_memcheck(memunit, 'memcheck_____:'//' WIOGR SECTION 8')
1809 #ifdef W3_DB1
1810  IF ( WRITE ) THEN
1811  WRITE (ndsm) &
1812  sdbc1, sdbc2, fdonly
1813 #ifdef W3_ASCII
1814  WRITE (ndsa,*) &
1815  'SDBC1, SDBC2, FDONLY:', &
1816  sdbc1, sdbc2, fdonly
1817 #endif
1818  ELSE
1819  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1820  sdbc1, sdbc2, fdonly
1821  END IF
1822  !
1823  IF ( fltest ) WRITE (ndst,9053) sdbc1, sdbc2, fdonly
1824 #endif
1825 
1826 #ifdef W3_UOST
1827  IF ( WRITE ) THEN
1828  WRITE (ndsm) uostfilelocal, uostfileshadow, &
1830 #ifdef W3_ASCII
1831  WRITE (ndsa,*) 'UOSTFILELOCAL, UOSTFILESHADOW, &
1832  UOSTFACTORLOCAL, UOSTFACTORSHADOW:', &
1835 #endif
1836  ELSE
1837  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1842 #endif
1843 
1844 #ifdef W3_UOST
1845  END IF
1846 #endif
1847 
1848  !
1849 #ifdef W3_IS1
1850  IF ( WRITE ) THEN
1851  WRITE (ndsm) is1c1, is1c2
1852 #ifdef W3_ASCII
1853  WRITE (ndsa,*) 'IS1C1, IS1C2:', is1c1, is1c2
1854 #endif
1855  ELSE
1856  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) IS1C1, is1c2
1857  END IF
1858 #endif
1859  !
1860 #ifdef W3_IS2
1861  IF ( WRITE ) THEN
1862  WRITE (ndsm) is2pars
1863 #ifdef W3_ASCII
1864  WRITE (ndsa,*) 'IS3PARS:', is2pars
1865 #endif
1866  ELSE
1867  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) is2pars
1868  IF ( .NOT. flis ) THEN
1869  CALL insis2
1870  flis = .true.
1871  END IF
1872  END IF
1873 #endif
1874  !
1875  ! Propagation scheme ------------------------------------------------- *
1876  ! Module W3GDATMD PROP
1877  !
1878 #ifdef W3_PR2
1879  IF ( WRITE ) THEN
1880  WRITE (ndsm) dtme, clatmn
1881 #ifdef W3_ASCII
1882  WRITE (ndsa,*) 'DTME, CLATMN:', dtme, clatmn
1883 #endif
1884  ELSE
1885  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1886  dtme, clatmn
1887  END IF
1888  !
1889  IF ( fltest ) WRITE (ndst,9060) dtme, clatmn
1890 #endif
1891  !
1892 #ifdef W3_PR3
1893  IF ( WRITE ) THEN
1894  WRITE (ndsm) wdcg, wdth
1895 #ifdef W3_ASCII
1896  WRITE (ndsa,*) 'WDCG, WDTH:', wdcg, wdth
1897 #endif
1898  ELSE
1899  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1900  wdcg, wdth
1901  END IF
1902  !
1903  IF ( fltest ) WRITE (ndst,9060) wdcg, wdth
1904 #endif
1905  !
1906 #ifdef W3_SMC
1907  IF ( WRITE ) THEN
1908  WRITE(ndsm) dtms, refran, funo3, fverg, fswnd, arctc
1909 #ifdef W3_ASCII
1910  WRITE(ndsa,*) 'DTMS, Refran, FUNO3, FVERG, FSWND, ARCTC:', &
1912 #endif
1913  ELSE
1914  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1916  END IF
1917  !
1918  IF ( fltest ) WRITE (ndst,9260) dtms, refran
1919 #endif
1920  !
1921 #ifdef W3_FLD1
1922  IF ( WRITE ) THEN
1923  WRITE (ndsm) tail_id, tail_lev, tail_tran1, tail_tran2
1924 #ifdef W3_ASCII
1925  WRITE (ndsa,*) 'TAIL_ID, TAIL_LEV, TAIL_TRAN1, TAIL_TRAN2:', &
1927 #endif
1928  ELSE
1929  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1931  END IF
1932 #endif
1933 #ifdef W3_FLD2
1934  IF ( WRITE ) THEN
1935  WRITE (ndsm) tail_id, tail_lev, tail_tran1, tail_tran2
1936 #ifdef W3_ASCII
1937  WRITE (ndsa,*) 'TAIL_ID, TAIL_LEV, TAIL_TRAN1, TAIL_TRAN2:', &
1939 #endif
1940  ELSE
1941  READ (ndsm,END=801,ERR=802,IOSTAT=IERR) &
1943  END IF
1944 #endif
1945  !
1946  ! Interpolation tables ( fill locally ) ----------------------------- *
1947  ! Module W3DISPMD
1948  !
1949  IF ( .NOT.WRITE .AND. .NOT.fldisp ) THEN
1950 #ifdef W3_T
1951  WRITE (ndst,9070)
1952 #endif
1953  CALL distab
1954  fldisp = .true.
1955  END IF
1956  !
1957  CLOSE ( ndsm )
1958 #ifdef W3_ASCII
1959  IF ( WRITE ) THEN
1960  CLOSE ( ndsa )
1961  END IF
1962 #endif
1963  call print_memcheck(memunit, 'memcheck_____:'//' WIOGR SECTION 9')
1964  !
1965  RETURN
1966  !
1967  ! Escape locations read errors --------------------------------------- *
1968  !
1969 800 CONTINUE
1970  IF ( iaproc .EQ. naperr ) WRITE (ndse,1000) filext(:iext), ierr
1971  CALL extcde ( 50 )
1972  !
1973 801 CONTINUE
1974  IF ( iaproc .EQ. naperr ) WRITE (ndse,1001) filext(:iext)
1975  CALL extcde ( 51 )
1976  !
1977 802 CONTINUE
1978  IF ( iaproc .EQ. naperr ) WRITE (ndse,1002) filext(:iext), ierr, &
1979  message
1980  CALL extcde ( 52 )
1981  !
1982  ! Formats
1983  !
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/ &
1988  ' CHECK : ',a/)
1989 902 FORMAT (/' *** WAVEWATCH III ERROR IN W3IOGR :'/ &
1990  ' ILEGAL VERGRD, READ : ',a/ &
1991  ' CHECK : ',a/)
1992 904 FORMAT (/' *** WAVEWATCH III ERROR IN W3IOGR :'/ &
1993  ' ILEGAL NFBPO READ : ',i8/ &
1994  ' CHECK : ',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,/ &
1999  5(a,/) /)
2000  ! ' CHECK CONSISTENCY OF SWITCHES IN PROGRAMS'/)
2001 906 FORMAT (/' *** WAVEWATCH III ERROR IN W3IOGR :'/ &
2002  ' UNEXPECTED PROPAGATION SCHEME IDENTIFIER'/ &
2003  ' IN FILE :',a/ &
2004  ' EXPECTED :',a/ &
2005  ' CHECK CONSISTENCY OF SWITCHES IN PROGRAMS'/)
2006 907 FORMAT (/' *** WAVEWATCH III ERROR IN W3IOGR :'/ &
2007  ' UNEXPECTED GSE ALEVIATION IDENTIFIER'/ &
2008  ' IN FILE :',a/ &
2009  ' EXPECTED :',a/ &
2010  , 5(a,/) /)
2011  ! ' CHECK CONSISTENCY OF SWITCHES IN PROGRAMS'/)
2012 908 FORMAT (/' *** WAVEWATCH III ERROR IN W3IOGR :'/ &
2013  ' UNEXPECTED FLUX PARAMETERIZATION IDENTIFIER'/ &
2014  ' IN mod_def.',a,' :',a/ &
2015  ' EXPECTED :',a/ &
2016  , 5(a,/) /)
2017  ! ' CHECK CONSISTENCY OF SWITCHES IN PROGRAMS'/)
2018  !
2019 1000 FORMAT (/' *** WAVEWATCH III ERROR IN W3IOGR : '/ &
2020  ' ERROR IN OPENING mod_def.',a,' FILE'/ &
2021  ' IOSTAT =',i5/)
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'/ &
2026  ' IOSTAT =',i5, &
2027  5(a,/) /)
2028  !
2029 #ifdef W3_T
2030 9000 FORMAT (' TEST W3IOGR : INXOUT = ',a,', WRITE = ',l1, &
2031  ', UNIT =',i3,', IGRD =',i3,', FEXT = ',a)
2032 9001 FORMAT (' TEST W3IOGR : TEST PARAMETERS :'/ &
2033  ' IDSTR : ',a/ &
2034  ' VERGRD : ',a/ &
2035  ' NX/Y/SEA : ',3i10/ &
2036  ' NTH,NK : ',2i10/ &
2037  ' NBI : ',i10/ &
2038  ' NFBPO : ',2i10/ &
2039  ' GNAME : ',a/ &
2040  ' FNAME0 : ',a/ &
2041  ' FNAME1 : ',a/ &
2042  ' FNAME2 : ',a/ &
2043  ' FNAME3 : ',a/ &
2044  ' FNAME4 : ',a/ &
2045  ' FNAME5 : ',a/ &
2046  ' FNAME6 : ',a/ &
2047  ' FNAMEP : ',a/ &
2048  ' FNAMEG : ',a/ &
2049  ' FNAMEF : ',a/ &
2050  ' FNAMEI : ',a)
2051 9002 FORMAT (' NBO : ',10i5)
2052 9003 FORMAT (' NBO2 : ',10i5)
2053  !
2054 9010 FORMAT (' TEST W3IOGR : MODULE W3GDATMD GRID'/ &
2055  ' GTYPE : ',i9/ &
2056  ' FLAGLL : ',l9/ &
2057  ' ICLOSE : ',i9/ &
2058  ' SX, SY : ',2e10.3/ &
2059  ' X0, Y0 : ',2e10.3/ &
2060  ' TRFLAG : ',i9)
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 / &
2072  ' STEDU : ',f9.2)
2073  !
2074 9016 FORMAT (' FLAGS : ',8l2)
2075 9017 FORMAT (' CLATS : ',3f8.3,' ...'/ &
2076  ' CLATIS : ',3f8.3,' ...'/ &
2077  ' CTHG0S : ',3e11.3,' ...')
2078  !
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)
2085  !
2086 9030 FORMAT (' TEST W3IOGR : MODULE W3GDATMD SGRD'/ &
2087  ' MAPWN : ',8i4,' ...'/ &
2088  ' MAPTH : ',8i4,' ...'/ &
2089  ' DTH : ',f6.1/ &
2090  ' TH : ',4f6.1,' ...'/ &
2091  ' ESIN : ',4f6.3,' ...'/ &
2092  ' ECOS : ',4f6.3,' ...'/ &
2093  ' XFR : ',f6.3/ &
2094  ' FR : ',f6.3,' ...',f6.3/ &
2095  ' FACs : ',6e10.3/ &
2096  ' ',3e10.3)
2097  !
2098 9040 FORMAT (' TEST W3IOGR : MODULE W3GDATMD NPAR'/ &
2099  ' FACs : ',5e10.3/ &
2100  ' ',4e10.3)
2101 #endif
2102  !
2103 #ifdef W3_FLX2
2104 9048 FORMAT (' TEST W3IOGR : MODULE W3GDATMD SFLP'/ &
2105  ' FLUXES : ',i5,3x,e10.3)
2106 #endif
2107 #ifdef W3_FLX3
2108 9048 FORMAT (' TEST W3IOGR : MODULE W3GDATMD SFLP'/ &
2109  ' FLUXES : ',2i5,3x,2e10.3)
2110 #endif
2111  !
2112 #ifdef W3_LN1
2113 9049 FORMAT (' TEST W3IOGR : MODULE W3GDATMD SLNP'/ &
2114  ' INPUT : ',3e10.3)
2115 #endif
2116  !
2117 #ifdef W3_ST1
2118 9050 FORMAT (' TEST W3IOGR : MODULE W3GDATMD SRCP'/ &
2119  ' INPUT : ',e10.3/ &
2120  ' DISSIP : ',e10.3)
2121 #endif
2122 #ifdef W3_ST2
2123 9050 FORMAT (' TEST W3IOGR : MODULE W3GDATMD SRCP'/ &
2124  ' INPUT : ',2e10.3/ &
2125  ' DISSIP : ',4e10.3/ &
2126  ' ',5e10.3/ &
2127  ' ',3e10.3/ &
2128  ' STAB2 : ',6e10.3)
2129 #endif
2130  !
2131 #ifdef W3_NL1
2132 9051 FORMAT (' TEST W3IOGR : MODULE W3GDATMD SNLP'/ &
2133  ' DATA : ',2e10.3/ &
2134  ' ',5e10.3)
2135 #endif
2136  !
2137 #ifdef W3_NL2
2138 9051 FORMAT (' TEST W3IOGR : MODULE W3GDATMD SNLP'/ &
2139  ' DATA : ',i4,f5.1,i4)
2140 9151 FORMAT (' ',5f7.1)
2141 #endif
2142  !
2143 #ifdef W3_NL3
2144 9051 FORMAT (' TEST W3IOGR : MODULE W3GDATMD SNLP'/ &
2145  ' DATA : ',i4,4f8.3)
2146 9151 FORMAT (' ',2f8.3,f6.1,2e12.4)
2147 #endif
2148  !
2149 #ifdef W3_NL4
2150 9051 FORMAT (' TEST W3IOGR : MODULE W3GDATMD SNLP'/ &
2151  ' DATA : ',i4,i4)
2152 #endif
2153  !
2154 #ifdef W3_NL5
2155 9051 FORMAT (' TEST W3IOGR : MODULE W3GDATMD SNLP'/ &
2156  ' DATA : ', f7.1, f8.2, 2i2.1, i12, 2i2.1)
2157 #endif
2158  !
2159 #ifdef W3_NLS
2160 9251 FORMAT (' TEST W3IOGR : MODULE W3GDATMD SNLP (NLS)'/ &
2161  ' DATA : ',f8.3,e12.4,4f8.3)
2162 #endif
2163  !
2164 #ifdef W3_BT1
2165 9052 FORMAT (' TEST W3IOGR : MODULE W3GDATMD SBTP'/ &
2166  ' DATA : ',e10.3)
2167 #endif
2168  !
2169 #ifdef W3_DB1
2170 9053 FORMAT (' TEST W3IOGR : MODULE W3GDATMD SDBP'/ &
2171  ' DATA : ',2e10.3,l4)
2172 #endif
2173  !
2174 #ifdef W3_PR2
2175 9060 FORMAT (' TEST W3IOGR : MODULE W3GDATMD PROP'/ &
2176  ' DATA : ',2e10.3)
2177 #endif
2178  !
2179 #ifdef W3_PR3
2180 9060 FORMAT (' TEST W3IOGR : MODULE W3GDATMD PROP'/ &
2181  ' DATA : ',2f6.2)
2182 #endif
2183  !
2184 #ifdef W3_SMC
2185 9260 FORMAT (' TEST W3IOGR : MODULE W3GDATMD SMCG'/ &
2186  ' DATA : ',3e10.3)
2187 #endif
2188  !
2189 #ifdef W3_T
2190 9070 FORMAT (' TEST W3IOGR : DISPERSION INTEPOLATION TABLES')
2191 #endif
2192  !/
2193  !/ End of W3IOGR ----------------------------------------------------- /
2194  !/

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().

w3gdatmd::qr5oml
real, pointer qr5oml
Definition: w3gdatmd.F90:1371
w3gdatmd::sdbc1
real, pointer sdbc1
Definition: w3gdatmd.F90:1393
w3gdatmd::ssdsc1
real, pointer ssdsc1
Definition: w3gdatmd.F90:1311
w3gdatmd::nk
integer, pointer nk
Definition: w3gdatmd.F90:1230
w3odatmd::nbo
integer, dimension(:), pointer nbo
Definition: w3odatmd.F90:531
w3gdatmd::xflt
real, pointer xflt
Definition: w3gdatmd.F90:1245
w3gdatmd::ddelta2
real, pointer ddelta2
Definition: w3gdatmd.F90:1311
w3gdatmd::kdmn
real, pointer kdmn
Definition: w3gdatmd.F90:1347
w3gdatmd::esc
real, dimension(:), pointer esc
Definition: w3gdatmd.F90:1234
w3gdatmd::iiceddisp
real, pointer iiceddisp
Definition: w3gdatmd.F90:1183
w3gdatmd::trigp
integer, dimension(:,:), pointer trigp
Definition: w3gdatmd.F90:1111
w3gdatmd::snlcs
real, dimension(:), pointer snlcs
Definition: w3gdatmd.F90:1361
w3odatmd::flbpo
logical, pointer flbpo
Definition: w3odatmd.F90:546
w3gdatmd::sds6p2
integer, pointer sds6p2
Definition: w3gdatmd.F90:1337
w3gdatmd::funo3
logical, pointer funo3
Definition: w3gdatmd.F90:1264
w3src3md::insin3
subroutine insin3
Initialization for source term routine.
Definition: w3src3md.F90:727
include
cmake src_list cmake include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/check_switches.cmake) check_switches("$
Definition: CMakeLists.txt:15
w3gdatmd::do_change_wlv
logical, pointer do_change_wlv
Definition: w3gdatmd.F90:1407
w3gdatmd::nitersec1
integer, pointer nitersec1
Definition: w3gdatmd.F90:1181
w3gdatmd::iaa
integer, dimension(:), pointer iaa
Definition: w3gdatmd.F90:1124
w3gdatmd::wwcor
real, dimension(:), pointer wwcor
Definition: w3gdatmd.F90:1251
w3gdatmd::tail_id
integer, pointer tail_id
Definition: w3gdatmd.F90:1270
w3gdatmd::ssinbr
real, pointer ssinbr
Definition: w3gdatmd.F90:1324
w3gdatmd::dth
real, pointer dth
Definition: w3gdatmd.F90:1232
w3gdatmd::ygrd
double precision, dimension(:,:), pointer ygrd
Definition: w3gdatmd.F90:1205
w3gdatmd::swl6s6
logical, pointer swl6s6
Definition: w3gdatmd.F90:1338
w3gdatmd::sstxftftail
real, pointer sstxftftail
Definition: w3gdatmd.F90:1340
w3snl2md::insnl2
subroutine insnl2
Preprocessing for nonlinear interactions (Xnl).
Definition: w3snl2md.F90:295
w3gdatmd::sswellfpar
integer, pointer sswellfpar
Definition: w3gdatmd.F90:1321
w3gdatmd::snlmsc
real, pointer snlmsc
Definition: w3gdatmd.F90:1360
w3gdatmd::fspsi
logical, pointer fspsi
Definition: w3gdatmd.F90:1405
w3uostmd
Parmeterization of the unresolved obstacles.
Definition: w3uostmd.F90:22
w3adatmd
Define data structures to set up wave model auxiliary data for several models simultaneously.
Definition: w3adatmd.F90:26
w3gdatmd::qi5ipl
integer, pointer qi5ipl
Definition: w3gdatmd.F90:1372
w3gdatmd::nspec
integer, pointer nspec
Definition: w3gdatmd.F90:1230
w3gdatmd::clatis
real, dimension(:), pointer clatis
Definition: w3gdatmd.F90:1197
w3gdatmd::is1c2
real, pointer is1c2
Definition: w3gdatmd.F90:1426
w3gdatmd::cd_max
real, pointer cd_max
Definition: w3gdatmd.F90:1286
w3gdatmd::ssdsbrfdf
integer, pointer ssdsbrfdf
Definition: w3gdatmd.F90:1321
w3gdatmd::flagunr
logical, pointer flagunr
Definition: w3gdatmd.F90:1193
w3gdatmd::wwnmeanp
real, pointer wwnmeanp
Definition: w3gdatmd.F90:1311
w3gdatmd::ssdsbck
real, pointer ssdsbck
Definition: w3gdatmd.F90:1324
w3gdatmd::trnx
real, dimension(:,:), pointer trnx
Definition: w3gdatmd.F90:1200
w3snl1md::insnlgqm
subroutine insnlgqm
Definition: w3snl1md.F90:1500
w3gdatmd::zb
real, dimension(:), pointer zb
Definition: w3gdatmd.F90:1195
w3gdatmd::ddelta1
real, pointer ddelta1
Definition: w3gdatmd.F90:1311
w3gdatmd::sstxftwn
real, pointer sstxftwn
Definition: w3gdatmd.F90:1311
w3gdatmd::ccps
real, pointer ccps
Definition: w3gdatmd.F90:1304
w3gdatmd::fswnd
logical, pointer fswnd
Definition: w3gdatmd.F90:1264
w3gdatmd::sdsc1
real, pointer sdsc1
Definition: w3gdatmd.F90:1301
w3gdatmd::ungtype
integer, parameter ungtype
Definition: w3gdatmd.F90:626
w3gdatmd::dmin
real, pointer dmin
Definition: w3gdatmd.F90:1183
w3gdatmd::ntri
integer, pointer ntri
Definition: w3gdatmd.F90:1109
w3gdatmd::p2msf
integer, dimension(:), pointer p2msf
Definition: w3gdatmd.F90:1098
w3gdatmd::fxfm
real, pointer fxfm
Definition: w3gdatmd.F90:1245
w3gdatmd::sed_d50
real, dimension(:), pointer sed_d50
Definition: w3gdatmd.F90:1214
w3gdatmd::iktab
integer, dimension(:,:), pointer iktab
Definition: w3gdatmd.F90:1321
w3odatmd::ipbpo
integer, dimension(:,:), pointer ipbpo
Definition: w3odatmd.F90:535
w3gdatmd::ftwl
real, pointer ftwl
Definition: w3gdatmd.F90:1232
w3gdatmd::maxx
real, pointer maxx
Definition: w3gdatmd.F90:1133
w3gdatmd::mrfct
integer, pointer mrfct
Definition: w3gdatmd.F90:1167
w3gdatmd::ccng
real, pointer ccng
Definition: w3gdatmd.F90:1304
w3gdatmd::ssdsc
real, dimension(:), pointer ssdsc
Definition: w3gdatmd.F90:1324
w3gdatmd::rlgtype
integer, parameter rlgtype
Definition: w3gdatmd.F90:624
w3gdatmd::flx4a0
real, pointer flx4a0
Definition: w3gdatmd.F90:1289
w3gdatmd::is1c1
real, pointer is1c1
Definition: w3gdatmd.F90:1426
w3gdatmd::ctrny
real, dimension(:), pointer ctrny
Definition: w3gdatmd.F90:1202
w3gdatmd::mapth
integer, dimension(:), pointer mapth
Definition: w3gdatmd.F90:1231
w3gdatmd::b_jgs_diff_thr
real(8), pointer b_jgs_diff_thr
Definition: w3gdatmd.F90:1419
w3src4md::delust
real delust
Definition: w3src4md.F90:96
w3gdatmd::ic4_cn
real, dimension(:), pointer ic4_cn
Definition: w3gdatmd.F90:1154
w3gdatmd::cumulw
real, dimension(:,:), pointer cumulw
Definition: w3gdatmd.F90:1323
w3gdatmd::ijkvfc
integer, dimension(:,:), pointer ijkvfc
Definition: w3gdatmd.F90:1170
w3gdatmd::ie_cell
integer, dimension(:), pointer ie_cell
Definition: w3gdatmd.F90:1124
w3gdatmd::fsn
logical, pointer fsn
Definition: w3gdatmd.F90:1405
w3gdatmd::ofstab
real, pointer ofstab
Definition: w3gdatmd.F90:1304
w3gdatmd::sinit
logical, pointer sinit
Definition: w3gdatmd.F90:1237
w3gdatmd::cdsa2
real, pointer cdsa2
Definition: w3gdatmd.F90:1304
w3gdatmd::reflc
real, dimension(:,:), pointer reflc
Definition: w3gdatmd.F90:1101
w3gdatmd::sds6a1
real, pointer sds6a1
Definition: w3gdatmd.F90:1335
w3gdatmd::sig
real, dimension(:), pointer sig
Definition: w3gdatmd.F90:1234
w3gdatmd::xgrd
double precision, dimension(:,:), pointer xgrd
Definition: w3gdatmd.F90:1205
w3gdatmd::sy
real, pointer sy
Definition: w3gdatmd.F90:1183
w3gdatmd::cdsb3
real, pointer cdsb3
Definition: w3gdatmd.F90:1304
w3gdatmd::ffxfa
real, pointer ffxfa
Definition: w3gdatmd.F90:1324
w3gdatmd::b_jgs_pmin
real(8), pointer b_jgs_pmin
Definition: w3gdatmd.F90:1418
w3gdatmd::flck
logical, pointer flck
Definition: w3gdatmd.F90:1217
w3odatmd::ptmeth
integer, pointer ptmeth
Definition: w3odatmd.F90:555
w3gdatmd::fsrefraction
logical, pointer fsrefraction
Definition: w3gdatmd.F90:1406
w3gdatmd::gqnf1
integer, pointer gqnf1
Definition: w3gdatmd.F90:1345
w3gdatmd::ic5pars
real, dimension(:), pointer ic5pars
Definition: w3gdatmd.F90:1158
w3odatmd::iaproc
integer, pointer iaproc
Definition: w3odatmd.F90:457
w3gdatmd::angle0
real, dimension(:,:), pointer angle0
Definition: w3gdatmd.F90:1123
w3gdatmd::wwnmeanptail
real, pointer wwnmeanptail
Definition: w3gdatmd.F90:1340
w3gdatmd::ffng
real, pointer ffng
Definition: w3gdatmd.F90:1304
w3gdatmd::nlvvfc
integer, dimension(:), pointer nlvvfc
Definition: w3gdatmd.F90:1169
w3gdatmd::satweights
real, dimension(:,:), pointer satweights
Definition: w3gdatmd.F90:1323
w3gdatmd::snls2
real, pointer snls2
Definition: w3gdatmd.F90:1347
w3gdatmd::sbtc1
real, pointer sbtc1
Definition: w3gdatmd.F90:1384
w3gdatmd::fachfe
real, pointer fachfe
Definition: w3gdatmd.F90:1232
w3gdatmd::dcki
real, dimension(:,:), pointer dcki
Definition: w3gdatmd.F90:1323
w3gdatmd::ecos
real, dimension(:), pointer ecos
Definition: w3gdatmd.F90:1234
constants::rade
real, parameter rade
RADE Conversion factor from radians to degrees.
Definition: constants.F90:76
w3gdatmd::ssdsbrf1
real, pointer ssdsbrf1
Definition: w3gdatmd.F90:1324
w3gdatmd::xf1
real, pointer xf1
Definition: w3gdatmd.F90:1304
w3gdatmd::dden2
real, dimension(:), pointer dden2
Definition: w3gdatmd.F90:1234
w3gdatmd::gqthrsat
real, pointer gqthrsat
Definition: w3gdatmd.F90:1346
w3gdatmd::snll
real, dimension(:), pointer snll
Definition: w3gdatmd.F90:1361
w3gdatmd::ssdsabk
real, pointer ssdsabk
Definition: w3gdatmd.F90:1324
w3gdatmd::clatf
real, dimension(:), pointer clatf
Definition: w3gdatmd.F90:1202
w3gdatmd::gname
character(len=30), pointer gname
Definition: w3gdatmd.F90:1223
w3gdatmd::ny
integer, pointer ny
Definition: w3gdatmd.F90:1097
w3gdatmd::zzwnd
real, pointer zzwnd
Definition: w3gdatmd.F90:1311
w3gdatmd::fhmax
real, pointer fhmax
Definition: w3gdatmd.F90:1245
w3gdatmd::nltail
real, pointer nltail
Definition: w3gdatmd.F90:1346
w3gdatmd::iclbac
integer, dimension(:), pointer iclbac
Definition: w3gdatmd.F90:1171
w3odatmd::fnmpre
character(len=80) fnmpre
Definition: w3odatmd.F90:330
w3gdatmd::fssource
logical, pointer fssource
Definition: w3gdatmd.F90:1406
w3gdatmd::swl6cstb1
logical, pointer swl6cstb1
Definition: w3gdatmd.F90:1338
w3gdatmd::fswell
real, pointer fswell
Definition: w3gdatmd.F90:1304
w3odatmd::isbpo
integer, dimension(:), pointer isbpo
Definition: w3odatmd.F90:535
w3gdatmd::dsip
real, dimension(:), pointer dsip
Definition: w3gdatmd.F90:1234
w3odatmd::nbi
integer, pointer nbi
Definition: w3odatmd.F90:530
w3gdatmd::iobpa
integer *1, dimension(:), pointer iobpa
Definition: w3gdatmd.F90:1130
w3gdatmd::fpimin
real, pointer fpimin
Definition: w3gdatmd.F90:1304
w3odatmd::flbpi
logical, pointer flbpi
Definition: w3odatmd.F90:546
w3gdatmd::ssdsbt
real, pointer ssdsbt
Definition: w3gdatmd.F90:1311
w3gdatmd::ssdsbrf2
real, pointer ssdsbrf2
Definition: w3gdatmd.F90:1324
w3gdatmd::cmprtrck
logical, pointer cmprtrck
Definition: w3gdatmd.F90:1220
w3gdatmd::tail_tran1
real, pointer tail_tran1
Definition: w3gdatmd.F90:1271
w3gdatmd::countot
integer, pointer countot
Definition: w3gdatmd.F90:1109
w3gdatmd::b_jgs_maxiter
integer, pointer b_jgs_maxiter
Definition: w3gdatmd.F90:1416
w3gdatmd::snlsfd
real, pointer snlsfd
Definition: w3gdatmd.F90:1360
w3gdatmd::sin6fc
real, pointer sin6fc
Definition: w3gdatmd.F90:1335
w3gdatmd::th
real, dimension(:), pointer th
Definition: w3gdatmd.F90:1234
w3gdatmd::crit_dep_stp
real(8), pointer crit_dep_stp
Definition: w3gdatmd.F90:1409
w3gdatmd::fxpm
real, pointer fxpm
Definition: w3gdatmd.F90:1245
w3gdatmd::ismcbp
integer, dimension(:), pointer ismcbp
Definition: w3gdatmd.F90:1171
w3gdatmd::solverthr_stp
real(8), pointer solverthr_stp
Definition: w3gdatmd.F90:1408
w3src4md::taut
real, dimension(:,:), allocatable taut
Definition: w3src4md.F90:95
w3gdatmd::ijkufc5
integer, dimension(:), pointer ijkufc5
Definition: w3gdatmd.F90:1174
w3gdatmd::w3dimx
subroutine w3dimx(IMOD, MX, MY, MSEA, NDSE, NDST ifdef W3_SMC
Definition: w3gdatmd.F90:1582
w3gdatmd::tail_tran2
real, pointer tail_tran2
Definition: w3gdatmd.F90:1271
w3gdatmd::ussp_wn
real, dimension(:), pointer ussp_wn
Definition: w3gdatmd.F90:1099
w3src4md::tauhft2
real, dimension(:,:,:), allocatable tauhft2
Definition: w3src4md.F90:95
w3gdatmd::cnlsc2
real, pointer cnlsc2
Definition: w3gdatmd.F90:1377
w3gdatmd::b_jgs_terminate_difference
logical, pointer b_jgs_terminate_difference
Definition: w3gdatmd.F90:1411
w3gdatmd::nglo
integer, pointer nglo
Definition: w3gdatmd.F90:1168
w3gdatmd::w3setg
subroutine w3setg(IMOD, NDSE, NDST)
Definition: w3gdatmd.F90:2152
w3gdatmd::ffxfm
real, pointer ffxfm
Definition: w3gdatmd.F90:1311
w3gdatmd::xrel
real, pointer xrel
Definition: w3gdatmd.F90:1245
w3gdatmd::zzalp
real, pointer zzalp
Definition: w3gdatmd.F90:1311
w3gdatmd::slnc1
real, pointer slnc1
Definition: w3gdatmd.F90:1295
w3gdatmd::zz0rat
real, pointer zz0rat
Definition: w3gdatmd.F90:1311
w3gdatmd::iicehdisp
real, pointer iicehdisp
Definition: w3gdatmd.F90:1183
w3gdatmd::b_jgs_source_nonlinear
logical, pointer b_jgs_source_nonlinear
Definition: w3gdatmd.F90:1422
w3gdatmd::ialt
integer, pointer ialt
Definition: w3gdatmd.F90:1368
w3gdatmd::xfc
real, pointer xfc
Definition: w3gdatmd.F90:1245
scrip_timers::status
character(len=8), dimension(max_timers), save status
Definition: scrip_timers.f:63
w3odatmd::ndse
integer, pointer ndse
Definition: w3odatmd.F90:456
w3gdatmd::nbsmc
integer, pointer nbsmc
Definition: w3gdatmd.F90:1168
w3gdatmd::nufc
integer, pointer nufc
Definition: w3gdatmd.F90:1167
w3gdatmd::len
real(8), dimension(:,:), pointer len
Definition: w3gdatmd.F90:1122
w3gdatmd::rref
logical, dimension(:), pointer rref
Definition: w3gdatmd.F90:1138
w3gdatmd::fachfa
real, pointer fachfa
Definition: w3gdatmd.F90:1232
w3gdatmd::clatmn
real, pointer clatmn
Definition: w3gdatmd.F90:1257
w3gdatmd::w3dims
subroutine w3dims(IMOD, MK, MTH, NDSE, NDST)
Definition: w3gdatmd.F90:1925
w3gdatmd::es2
real, dimension(:), pointer es2
Definition: w3gdatmd.F90:1234
w3gdatmd::sstxftf
real, pointer sstxftf
Definition: w3gdatmd.F90:1311
w3gdatmd::mapfs
integer, dimension(:,:), pointer mapfs
Definition: w3gdatmd.F90:1163
w3gdatmd::cdsb0
real, pointer cdsb0
Definition: w3gdatmd.F90:1304
w3gdatmd::snlnsc
real, pointer snlnsc
Definition: w3gdatmd.F90:1360
w3gdatmd::esin
real, dimension(:), pointer esin
Definition: w3gdatmd.F90:1234
w3gdatmd::ssdspbk
real, pointer ssdspbk
Definition: w3gdatmd.F90:1324
w3odatmd::naperr
integer, pointer naperr
Definition: w3odatmd.F90:457
w3gdatmd::ssdsp
real, pointer ssdsp
Definition: w3gdatmd.F90:1311
w3gdatmd::aaircmin
real, pointer aaircmin
Definition: w3gdatmd.F90:1183
w3src4md::insin4
subroutine insin4(FLTABS)
Initialization for source term routine.
Definition: w3src4md.F90:1012
w3gdatmd::bbeta
real, pointer bbeta
Definition: w3gdatmd.F90:1311
w3gdatmd::nvfc
integer, pointer nvfc
Definition: w3gdatmd.F90:1167
w3gdatmd::refld
integer, dimension(:,:), pointer refld
Definition: w3gdatmd.F90:1102
w3odatmd::w3dmo5
subroutine w3dmo5(IMOD, NDSE, NDST, IBLOCK)
Definition: w3odatmd.F90:1321
w3gdatmd::sed_psic
real, dimension(:), pointer sed_psic
Definition: w3gdatmd.F90:1214
w3gdatmd::b_jgs_block_gauss_seidel
logical, pointer b_jgs_block_gauss_seidel
Definition: w3gdatmd.F90:1415
w3gdatmd::dtms
real, pointer dtms
Definition: w3gdatmd.F90:1263
w3src4md::deltail
real deltail
Definition: w3src4md.F90:98
w3gdatmd::polat
real, pointer polat
Definition: w3gdatmd.F90:1191
w3gdatmd::cdsa1
real, pointer cdsa1
Definition: w3gdatmd.F90:1304
w3gdatmd::x0
real, pointer x0
Definition: w3gdatmd.F90:1183
w3gdatmd::nk2
integer, pointer nk2
Definition: w3gdatmd.F90:1230
w3gdatmd::nsea
integer, pointer nsea
Definition: w3gdatmd.F90:1097
w3gdatmd::sdsaln
real, pointer sdsaln
Definition: w3gdatmd.F90:1304
w3gdatmd::sds6a2
real, pointer sds6a2
Definition: w3gdatmd.F90:1335
w3gdatmd::clgtype
integer, parameter clgtype
Definition: w3gdatmd.F90:625
w3src4md::delalp
real delalp
Definition: w3src4md.F90:96
w3gdatmd::dtme
real, pointer dtme
Definition: w3gdatmd.F90:1257
w3servmd
Definition: w3servmd.F90:3
w3gdatmd::uostfilelocal
character(len=:), pointer uostfilelocal
Definition: w3gdatmd.F90:1400
w3gdatmd::ssdsbm
real, dimension(:), pointer ssdsbm
Definition: w3gdatmd.F90:1311
w3gdatmd::refran
real, pointer refran
Definition: w3gdatmd.F90:1263
w3gdatmd::b_jgs_nlevel
integer, pointer b_jgs_nlevel
Definition: w3gdatmd.F90:1421
w3gdatmd::gqnt1
integer, pointer gqnt1
Definition: w3gdatmd.F90:1345
w3gdatmd::dsii
real, dimension(:), pointer dsii
Definition: w3gdatmd.F90:1234
w3gdatmd::iicehmin
real, pointer iicehmin
Definition: w3gdatmd.F90:1183
w3gdatmd::nbac
integer, pointer nbac
Definition: w3gdatmd.F90:1168
w3odatmd::nbo2
integer, dimension(:), pointer nbo2
Definition: w3odatmd.F90:531
w3gdatmd::facsd
real, pointer facsd
Definition: w3gdatmd.F90:1245
w3gdatmd::lam
real, pointer lam
Definition: w3gdatmd.F90:1347
w3odatmd::flcomb
logical, pointer flcomb
Definition: w3odatmd.F90:554
w3timemd::caltype
character, public caltype
Definition: w3timemd.F90:79
w3gdatmd::trflag
integer, pointer trflag
Definition: w3gdatmd.F90:1097
w3sis2md::insis2
subroutine, public insis2
Fill tables used for scattering.
Definition: w3sis2md.F90:104
w3gdatmd::tria
real(8), dimension(:), pointer tria
Definition: w3gdatmd.F90:1131
w3gdatmd::fsfct
logical, pointer fsfct
Definition: w3gdatmd.F90:1405
constants::tpiinv
real, parameter tpiinv
TPIINV Inverse of 2*Pi.
Definition: constants.F90:74
w3odatmd::w3seto
subroutine w3seto(IMOD, NDSERR, NDSTST)
Definition: w3odatmd.F90:1523
w3gdatmd::dtmin
real, pointer dtmin
Definition: w3gdatmd.F90:1183
w3servmd::print_memcheck
subroutine print_memcheck(iun, msg)
Write memory statistics if requested.
Definition: w3servmd.F90:2033
w3snlsmd
Nonlinear interaction based ‘smoother’ for high frequencies.
Definition: w3snlsmd.F90:21
w3odatmd::hspmin
real, pointer hspmin
Definition: w3odatmd.F90:553
w3gdatmd::flcth
logical, pointer flcth
Definition: w3gdatmd.F90:1217
w3gdatmd::gqnq_om2
integer, pointer gqnq_om2
Definition: w3gdatmd.F90:1345
w3gdatmd::cdsb1
real, pointer cdsb1
Definition: w3gdatmd.F90:1304
w3gdatmd::ffxpm
real, pointer ffxpm
Definition: w3gdatmd.F90:1311
w3gdatmd::nth
integer, pointer nth
Definition: w3gdatmd.F90:1230
w3gdatmd::xf2
real, pointer xf2
Definition: w3gdatmd.F90:1304
w3gdatmd::qi5nnz
integer(kind=8), pointer qi5nnz
Definition: w3gdatmd.F90:1373
w3gdatmd::fttr
real, pointer fttr
Definition: w3gdatmd.F90:1232
w3odatmd
Definition: w3odatmd.F90:3
w3gdatmd::ijkvfc5
integer, dimension(:), pointer ijkvfc5
Definition: w3gdatmd.F90:1174
w3gdatmd::cdsa0
real, pointer cdsa0
Definition: w3gdatmd.F90:1304
w3gdatmd::clats
real, dimension(:), pointer clats
Definition: w3gdatmd.F90:1196
w3gdatmd::w3dimug
subroutine w3dimug(IMOD, MTRI, MX, COUNTOTA, NNZ, NDSE, NDST)
Definition: w3gdatmd.F90:3106
w3gdatmd::ien
real(8), dimension(:,:), pointer ien
Definition: w3gdatmd.F90:1122
w3gdatmd::ssdsbint
real, pointer ssdsbint
Definition: w3gdatmd.F90:1324
w3gdatmd::satindices
integer, dimension(:,:), pointer satindices
Definition: w3gdatmd.F90:1321
w3gdatmd::iicedisp
logical, pointer iicedisp
Definition: w3gdatmd.F90:1217
w3gdatmd::iicehfac
real, pointer iicehfac
Definition: w3gdatmd.F90:1183
w3gdatmd::flsou
logical, pointer flsou
Definition: w3gdatmd.F90:1217
w3gdatmd::angarc
real, dimension(:), pointer angarc
Definition: w3gdatmd.F90:1204
w3gdatmd::itsa
integer, pointer itsa
Definition: w3gdatmd.F90:1368
w3odatmd::nfbpo
integer, pointer nfbpo
Definition: w3odatmd.F90:530
w3gdatmd::mapsf
integer, dimension(:,:), pointer mapsf
Definition: w3gdatmd.F90:1163
w3gdatmd::swl6b1
real, pointer swl6b1
Definition: w3gdatmd.F90:1335
w3odatmd::naproc
integer, pointer naproc
Definition: w3odatmd.F90:457
w3src4md::dikcumul
integer dikcumul
Definition: w3src4md.F90:101
w3dispmd::distab
subroutine distab
Definition: w3dispmd.F90:552
w3gdatmd::btbeta
real, pointer btbeta
Definition: w3gdatmd.F90:1183
w3gdatmd::fsnimp
logical, pointer fsnimp
Definition: w3gdatmd.F90:1405
w3gdatmd::cinxsi
real, pointer cinxsi
Definition: w3gdatmd.F90:1282
w3gdatmd::nbgl
integer, pointer nbgl
Definition: w3gdatmd.F90:1168
w3gdatmd::us3df
integer, dimension(:), pointer us3df
Definition: w3gdatmd.F90:1098
w3gdatmd::sds6et
logical, pointer sds6et
Definition: w3gdatmd.F90:1338
w3gdatmd::ffps
real, pointer ffps
Definition: w3gdatmd.F90:1304
w3gdatmd::fsbccfl
logical, pointer fsbccfl
Definition: w3gdatmd.F90:1406
w3gdatmd::smctype
integer, parameter smctype
Definition: w3gdatmd.F90:627
w3gdatmd::cthg0s
real, dimension(:), pointer cthg0s
Definition: w3gdatmd.F90:1198
w3gdatmd::ijkvfc6
integer, dimension(:), pointer ijkvfc6
Definition: w3gdatmd.F90:1174
file
file(STRINGS ${CMAKE_BINARY_DIR}/switch switch_strings) separate_arguments(switches UNIX_COMMAND $
Definition: CMakeLists.txt:3
w3gdatmd::snlsfs
real, pointer snlsfs
Definition: w3gdatmd.F90:1360
w3gdatmd::facp
real, pointer facp
Definition: w3gdatmd.F90:1245
w3gdatmd::snlnq
integer, pointer snlnq
Definition: w3gdatmd.F90:1356
w3gdatmd::b_jgs_limiter
logical, pointer b_jgs_limiter
Definition: w3gdatmd.F90:1413
w3gdatmd::cdsb2
real, pointer cdsb2
Definition: w3gdatmd.F90:1304
w3gdatmd::countri
integer, pointer countri
Definition: w3gdatmd.F90:1109
w3gdatmd::iobpd
integer *1, dimension(:,:), pointer iobpd
Definition: w3gdatmd.F90:1130
w3odatmd::wsmult
real, pointer wsmult
Definition: w3odatmd.F90:553
w3gdatmd::ijkufc6
integer, dimension(:), pointer ijkufc6
Definition: w3gdatmd.F90:1174
w3gdatmd::nnz
integer, pointer nnz
Definition: w3gdatmd.F90:1109
w3gdatmd::sig2
real, dimension(:), pointer sig2
Definition: w3gdatmd.F90:1234
w3gdatmd::snls3
real, pointer snls3
Definition: w3gdatmd.F90:1347
w3gdatmd::pinit
logical, pointer pinit
Definition: w3gdatmd.F90:1241
w3src2md::inptab
subroutine inptab
Generate an interpolation table for the air-sea interaction parameter of Chalikov and Belevich (1993)...
Definition: w3src2md.F90:848
w3uostmd::uost_initgrid
subroutine, public uost_initgrid(IGRID, FILELOCAL, FILESHADOW, LOCALFACTOR, SHADOWFACTOR)
Allocate the UOST variables for a given grid, and load them from file.
Definition: w3uostmd.F90:123
w3gdatmd::iclose
integer, pointer iclose
Definition: w3gdatmd.F90:1096
w3gdatmd::fstotalexp
logical, pointer fstotalexp
Definition: w3gdatmd.F90:1405
w3gdatmd::fshf
real, pointer fshf
Definition: w3gdatmd.F90:1295
w3gdatmd::jaa
integer, dimension(:), pointer jaa
Definition: w3gdatmd.F90:1124
w3gdatmd::fr1
real, pointer fr1
Definition: w3gdatmd.F90:1232
w3gdatmd::stexu
real, pointer stexu
Definition: w3gdatmd.F90:1183
w3gdatmd::kdcon
real, pointer kdcon
Definition: w3gdatmd.F90:1347
w3gdatmd::dpthnl
real, dimension(:), pointer dpthnl
Definition: w3gdatmd.F90:1353
w3gdatmd::ttauwshelter
real, pointer ttauwshelter
Definition: w3gdatmd.F90:1311
w3gdatmd::gqamp
real, dimension(:), pointer gqamp
Definition: w3gdatmd.F90:1346
w3gdatmd::xft
real, pointer xft
Definition: w3gdatmd.F90:1245
w3odatmd::xbpo
real, dimension(:), pointer xbpo
Definition: w3odatmd.F90:541
w3gdatmd::cnlsc1
real, pointer cnlsc1
Definition: w3gdatmd.F90:1377
w3gdatmd::maxy
real, pointer maxy
Definition: w3gdatmd.F90:1133
w3gdatmd::ficen
real, pointer ficen
Definition: w3gdatmd.F90:1183
w3gdatmd::ijkcel
integer, dimension(:,:), pointer ijkcel
Definition: w3gdatmd.F90:1170
w3gdatmd::ijkcel4
integer, dimension(:), pointer ijkcel4
Definition: w3gdatmd.F90:1174
w3servmd::strace
subroutine strace(IENT, SNAME)
Definition: w3servmd.F90:148
w3gdatmd::facti2
real, pointer facti2
Definition: w3gdatmd.F90:1232
constants::fwtable
real, dimension(0:sizefwtable) fwtable
FWTABLE.
Definition: constants.F90:92
w3gdatmd::gtype
integer, pointer gtype
Definition: w3gdatmd.F90:1094
w3gdatmd::mapwn
integer, dimension(:), pointer mapwn
Definition: w3gdatmd.F90:1231
w3gdatmd::iobdp
integer *1, dimension(:), pointer iobdp
Definition: w3gdatmd.F90:1130
w3gdatmd::sintailpar
real, dimension(:), pointer sintailpar
Definition: w3gdatmd.F90:1324
w3gdatmd::qi5kev
integer, pointer qi5kev
Definition: w3gdatmd.F90:1372
w3gdatmd::wdcg
real, pointer wdcg
Definition: w3gdatmd.F90:1260
w3gdatmd::xfr
real, pointer xfr
Definition: w3gdatmd.F90:1232
w3gdatmd::rwindc
real, pointer rwindc
Definition: w3gdatmd.F90:1248
w3sis2md
Floe-size dependant scattering of waves in the marginal ice zone.
Definition: w3sis2md.F90:33
w3gdatmd::ic4pars
integer, dimension(:), pointer ic4pars
Definition: w3gdatmd.F90:1151
w3gdatmd::flcy
logical, pointer flcy
Definition: w3gdatmd.F90:1217
w3gdatmd::fdonly
logical, pointer fdonly
Definition: w3gdatmd.F90:1394
w3gdatmd::fverg
logical, pointer fverg
Definition: w3gdatmd.F90:1264
w3gdatmd::y0
real, pointer y0
Definition: w3gdatmd.F90:1183
w3gdatmd::sin6ws
real, pointer sin6ws
Definition: w3gdatmd.F90:1335
w3gdatmd::fldry
logical, pointer fldry
Definition: w3gdatmd.F90:1217
w3gdatmd::ssinthp
real, pointer ssinthp
Definition: w3gdatmd.F90:1311
w3gdatmd::b_jgs_terminate_norm
logical, pointer b_jgs_terminate_norm
Definition: w3gdatmd.F90:1412
w3gdatmd::fte
real, pointer fte
Definition: w3gdatmd.F90:1232
w3gdatmd::stedu
real, pointer stedu
Definition: w3gdatmd.F90:1183
w3gdatmd::ssdsiso
integer, pointer ssdsiso
Definition: w3gdatmd.F90:1321
w3src4md::tauhft
real, dimension(:,:), allocatable tauhft
Definition: w3src4md.F90:95
w3gdatmd::aairgb
real, pointer aairgb
Definition: w3gdatmd.F90:1183
w3gdatmd::sds6p1
integer, pointer sds6p1
Definition: w3gdatmd.F90:1337
w3gdatmd::snls1
real, pointer snls1
Definition: w3gdatmd.F90:1347
w3gdatmd::ic2pars
real, dimension(:), pointer ic2pars
Definition: w3gdatmd.F90:1145
w3gdatmd::uostfactorshadow
real, pointer uostfactorshadow
Definition: w3gdatmd.F90:1401
w3gdatmd::dxymax
real, pointer dxymax
Definition: w3gdatmd.F90:1133
w3src4md::deltauw
real deltauw
Definition: w3src4md.F90:96
w3gdatmd::ccon
integer, dimension(:), pointer ccon
Definition: w3gdatmd.F90:1124
w3gdatmd::qbi
real, dimension(:,:), pointer qbi
Definition: w3gdatmd.F90:1323
w3gdatmd::iobp
integer *2, dimension(:), pointer iobp
Definition: w3gdatmd.F90:1129
w3gdatmd::guginit
logical, pointer guginit
Definition: w3gdatmd.F90:1134
w3snl5md::insnl5
subroutine, public insnl5
Initialization for the GKE module (Prepare wavenumber grid & kernel coefficients).
Definition: w3snl5md.F90:435
w3gdatmd::si
real(8), dimension(:), pointer si
Definition: w3gdatmd.F90:1122
w3gdatmd::sx
real, pointer sx
Definition: w3gdatmd.F90:1183
w3gdatmd::ffacberg
real, pointer ffacberg
Definition: w3gdatmd.F90:1136
w3odatmd::ndst
integer, pointer ndst
Definition: w3odatmd.F90:456
w3gdatmd::icescales
real, dimension(:), pointer icescales
Definition: w3gdatmd.F90:1183
w3gdatmd::flcx
logical, pointer flcx
Definition: w3gdatmd.F90:1217
w3adatmd::mpi_comm_wave
integer, pointer mpi_comm_wave
Definition: w3adatmd.F90:676
w3gdatmd::uostfileshadow
character(len=:), pointer uostfileshadow
Definition: w3gdatmd.F90:1400
w3gdatmd::narc
integer, pointer narc
Definition: w3gdatmd.F90:1168
constants
Define some much-used constants for global use (all defined as PARAMETER).
Definition: constants.F90:20
constants::delab
real delab
DELAB.
Definition: constants.F90:93
w3gdatmd::sbtcx
real, dimension(:), pointer sbtcx
Definition: w3gdatmd.F90:1387
w3gdatmd::qi5dis
integer, pointer qi5dis
Definition: w3gdatmd.F90:1372
w3gdatmd::ijkcel3
integer, dimension(:), pointer ijkcel3
Definition: w3gdatmd.F90:1174
w3gdatmd::b_jgs_use_jacobi
logical, pointer b_jgs_use_jacobi
Definition: w3gdatmd.F90:1414
w3gdatmd::shstab
real, pointer shstab
Definition: w3gdatmd.F90:1304
w3gdatmd::ic3pars
real, dimension(:), pointer ic3pars
Definition: w3gdatmd.F90:1148
w3gdatmd::nittin
integer, pointer nittin
Definition: w3gdatmd.F90:1281
w3gdatmd::dden
real, dimension(:), pointer dden
Definition: w3gdatmd.F90:1234
w3gdatmd
Definition: w3gdatmd.F90:16
w3odatmd::ptfcut
real, pointer ptfcut
Definition: w3odatmd.F90:556
w3gdatmd::sswellf
real, dimension(:), pointer sswellf
Definition: w3gdatmd.F90:1311
w3odatmd::ybpo
real, dimension(:), pointer ybpo
Definition: w3odatmd.F90:541
w3gdatmd::arctc
logical, pointer arctc
Definition: w3gdatmd.F90:1264
w3gdatmd::ssdscos
real, pointer ssdscos
Definition: w3gdatmd.F90:1311
w3gdatmd::b_jgs_terminate_maxiter
logical, pointer b_jgs_terminate_maxiter
Definition: w3gdatmd.F90:1410
w3gdatmd::ic4_ki
real, dimension(:), pointer ic4_ki
Definition: w3gdatmd.F90:1152
w3gdatmd::igpars
real, dimension(:), pointer igpars
Definition: w3gdatmd.F90:1142
w3gdatmd::refpars
real, dimension(:), pointer refpars
Definition: w3gdatmd.F90:1139
w3gdatmd::ndpths
integer, pointer ndpths
Definition: w3gdatmd.F90:1351
w3gdatmd::steyu
real, pointer steyu
Definition: w3gdatmd.F90:1183
w3gdatmd::angle
real, dimension(:,:), pointer angle
Definition: w3gdatmd.F90:1123
w3snl1md::insnl1
subroutine insnl1(IMOD)
Preprocessing for nonlinear interactions (weights).
Definition: w3snl1md.F90:483
w3gdatmd::b_jgs_norm_thr
real(8), pointer b_jgs_norm_thr
Definition: w3gdatmd.F90:1420
constants::file_endian
character(*), parameter file_endian
FILE_ENDIAN Filled by preprocessor with 'big_endian', 'little_endian', or 'native'.
Definition: constants.F90:86
w3gdatmd::dtcfli
real, pointer dtcfli
Definition: w3gdatmd.F90:1183
w3gdatmd::snlt
real, dimension(:), pointer snlt
Definition: w3gdatmd.F90:1361
w3gdatmd::pfmove
real, pointer pfmove
Definition: w3gdatmd.F90:1183
w3gdatmd::sinc1
real, pointer sinc1
Definition: w3gdatmd.F90:1301
w3snl3md
Generalized and optimized multiple DIA implementation.
Definition: w3snl3md.F90:24
w3gdatmd::zwind
real, pointer zwind
Definition: w3gdatmd.F90:1304
w3gdatmd::gridshift
real(8), pointer gridshift
Definition: w3gdatmd.F90:1189
w3odatmd::ihmax
integer, pointer ihmax
Definition: w3odatmd.F90:551
w3snl5md
Interface module for GKE (resonant & quasi-resonant four-wave interactions).
Definition: w3snl5md.F90:25
w3gdatmd::ncel
integer, pointer ncel
Definition: w3gdatmd.F90:1167
w3src3md
The 'WAM4+' source terms based on P.A.E.M.
Definition: w3src3md.F90:30
w3src4md
The 'SHOM/Ifremer' source terms based on P.A.E.M.
Definition: w3src4md.F90:28
w3gdatmd::aalpha
real, pointer aalpha
Definition: w3gdatmd.F90:1311
w3snl1md
Bundles routines to calculate nonlinear wave-wave interactions according to the Discrete Interaction ...
Definition: w3snl1md.F90:25
w3gdatmd::ficel
real, pointer ficel
Definition: w3gdatmd.F90:1183
w3snl2md
Interface module to exact nonlinear interactions.
Definition: w3snl2md.F90:23
w3gdatmd::angld
real, dimension(:), pointer angld
Definition: w3gdatmd.F90:1192
w3gdatmd::cap_id
integer, pointer cap_id
Definition: w3gdatmd.F90:1285
w3gdatmd::capchnk
real, dimension(:), pointer capchnk
Definition: w3gdatmd.F90:1324
w3gdatmd::countcon
integer, dimension(:), pointer countcon
Definition: w3gdatmd.F90:1124
w3src2md
Tolman and Chalikov (1996) input and dissipation source terms.
Definition: w3src2md.F90:16
w3gdatmd::ftf
real, pointer ftf
Definition: w3gdatmd.F90:1232
w3gdatmd::ssdsdth
real, pointer ssdsdth
Definition: w3gdatmd.F90:1311
w3gdatmd::index_cell
integer, dimension(:), pointer index_cell
Definition: w3gdatmd.F90:1124
w3gdatmd::qi5pmx
integer, pointer qi5pmx
Definition: w3gdatmd.F90:1372
w3gdatmd::is2pars
real, dimension(:), pointer is2pars
Definition: w3gdatmd.F90:1161
w3snl3md::insnl3
subroutine insnl3
Initialization for generalized multiple DIA routine.
Definition: w3snl3md.F90:788
w3gdatmd::tail_lev
real, pointer tail_lev
Definition: w3gdatmd.F90:1271
w3snlsmd::insnls
subroutine insnls
Initializations for the Snl / filter source term for high frequencies.
Definition: w3snlsmd.F90:667
w3odatmd::noswll
integer, pointer noswll
Definition: w3odatmd.F90:460
w3gdatmd::nlvufc
integer, dimension(:), pointer nlvufc
Definition: w3gdatmd.F90:1169
w3gdatmd::ic4_kibk
real, pointer ic4_kibk
Definition: w3gdatmd.F90:1155
w3gdatmd::facti1
real, pointer facti1
Definition: w3gdatmd.F90:1232
w3gdatmd::qr5dpt
real, pointer qr5dpt
Definition: w3gdatmd.F90:1371
w3gdatmd::nrlv
integer, pointer nrlv
Definition: w3gdatmd.F90:1167
w3src4md::delu
real delu
Definition: w3src4md.F90:96
w3gdatmd::w3gntx
subroutine w3gntx(IMOD, NDSE, NDST)
Definition: w3gdatmd.F90:2881
w3gdatmd::iqtpe
integer, pointer iqtpe
Definition: w3gdatmd.F90:1345
w3gdatmd::ssdshck
real, pointer ssdshck
Definition: w3gdatmd.F90:1324
w3gdatmd::cnlsc
real, pointer cnlsc
Definition: w3gdatmd.F90:1377
w3gdatmd::cnlsa
real, pointer cnlsa
Definition: w3gdatmd.F90:1377
w3gdatmd::nx
integer, pointer nx
Definition: w3gdatmd.F90:1097
w3gdatmd::ic4_fmin
real, pointer ic4_fmin
Definition: w3gdatmd.F90:1155
w3gdatmd::ctmax
real, pointer ctmax
Definition: w3gdatmd.F90:1183
w3gdatmd::fsfreqshift
logical, pointer fsfreqshift
Definition: w3gdatmd.F90:1406
w3timemd
Definition: w3timemd.F90:3
w3gdatmd::fice0
real, pointer fice0
Definition: w3gdatmd.F90:1183
w3gdatmd::ic4_fc
real, dimension(:), pointer ic4_fc
Definition: w3gdatmd.F90:1153
w3gdatmd::cnlsc3
real, pointer cnlsc3
Definition: w3gdatmd.F90:1377
w3gdatmd::fspm
real, pointer fspm
Definition: w3gdatmd.F90:1295
w3gdatmd::nlvcel
integer, dimension(:), pointer nlvcel
Definition: w3gdatmd.F90:1169
w3gdatmd::mpars
type(mpar), dimension(:), allocatable, target mpars
Definition: w3gdatmd.F90:1090
w3gdatmd::ec2
real, dimension(:), pointer ec2
Definition: w3gdatmd.F90:1234
w3gdatmd::sdbc2
real, pointer sdbc2
Definition: w3gdatmd.F90:1393
w3gdatmd::zz0max
real, pointer zz0max
Definition: w3gdatmd.F90:1311
w3dispmd
Definition: w3dispmd.F90:3
w3gdatmd::usspf
integer, dimension(:), pointer usspf
Definition: w3gdatmd.F90:1098
w3gdatmd::dtcfl
real, pointer dtcfl
Definition: w3gdatmd.F90:1183
w3gdatmd::ijkufc
integer, dimension(:,:), pointer ijkufc
Definition: w3gdatmd.F90:1170
w3gdatmd::fstotalimp
logical, pointer fstotalimp
Definition: w3gdatmd.F90:1405
w3gdatmd::pos_cell
integer, dimension(:), pointer pos_cell
Definition: w3gdatmd.F90:1124
w3gdatmd::ftwn
real, pointer ftwn
Definition: w3gdatmd.F90:1232
w3gdatmd::snlc1
real, pointer snlc1
Definition: w3gdatmd.F90:1347
w3gdatmd::ginit
logical, pointer ginit
Definition: w3gdatmd.F90:1217
w3gdatmd::e3df
integer, dimension(:,:), pointer e3df
Definition: w3gdatmd.F90:1098
w3gdatmd::iicefdisp
real, pointer iicefdisp
Definition: w3gdatmd.F90:1183
w3gdatmd::cnlsfm
real, pointer cnlsfm
Definition: w3gdatmd.F90:1377
w3gdatmd::mapsta
integer, dimension(:,:), pointer mapsta
Definition: w3gdatmd.F90:1163
w3gdatmd::uostfactorlocal
real, pointer uostfactorlocal
Definition: w3gdatmd.F90:1401
w3gdatmd::xfh
real, pointer xfh
Definition: w3gdatmd.F90:1304
w3gdatmd::snlm
real, dimension(:), pointer snlm
Definition: w3gdatmd.F90:1361
w3gdatmd::iicehinit
real, pointer iicehinit
Definition: w3gdatmd.F90:1183
w3gdatmd::polon
real, pointer polon
Definition: w3gdatmd.F90:1191
w3gdatmd::sin6a0
real, pointer sin6a0
Definition: w3gdatmd.F90:1335
w3gdatmd::trny
real, dimension(:,:), pointer trny
Definition: w3gdatmd.F90:1200
w3gdatmd::mapst2
integer, dimension(:,:), pointer mapst2
Definition: w3gdatmd.F90:1163
w3odatmd::wscut
real, pointer wscut
Definition: w3odatmd.F90:553
w3odatmd::rdbpo
real, dimension(:,:), pointer rdbpo
Definition: w3odatmd.F90:541
w3gdatmd::dtmax
real, pointer dtmax
Definition: w3gdatmd.F90:1183
w3gdatmd::gqthrcou
real, pointer gqthrcou
Definition: w3gdatmd.F90:1346
w3gdatmd::posi
integer, dimension(:,:), pointer posi
Definition: w3gdatmd.F90:1124
w3gdatmd::snlcd
real, dimension(:), pointer snlcd
Definition: w3gdatmd.F90:1361
w3gdatmd::ctrnx
real, dimension(:), pointer ctrnx
Definition: w3gdatmd.F90:1202
w3gdatmd::flagll
logical, pointer flagll
Definition: w3gdatmd.F90:1219
w3gdatmd::wdth
real, pointer wdth
Definition: w3gdatmd.F90:1260
w3gdatmd::filext
character(len=13), pointer filext
Definition: w3gdatmd.F90:1224
w3gdatmd::ssdsbr
real, pointer ssdsbr
Definition: w3gdatmd.F90:1311