WAVEWATCH III  beta 0.0.1
w3odatmd.F90
Go to the documentation of this file.
1 #include "w3macros.h"
2 !/ ------------------------------------------------------------------- /
3 MODULE w3odatmd
4  !/
5  !/ +-----------------------------------+
6  !/ | WAVEWATCH III NOAA/NCEP |
7  !/ | H. L. Tolman |
8  !/ | FORTRAN 90 |
9  !/ | Last update : 22-Mar-2021 |
10  !/ +-----------------------------------+
11  !/
12  !/ 13-Dec-2004 : Origination. ( version 3.06 )
13  !/ 20-Jul-2005 : Adding output fields. ( version 3.07 )
14  !/ 29-Sep-2005 : Second storage for input bound. sp. ( version 3.08 )
15  !/ Add FILED for the dump of data.
16  !/ 26-Jun-2006 : Add output type 6, wave field sep. ( version 3.09 )
17  !/ Wiring of code only.
18  !/ 27-Jun-2006 : Adding file name preamble. ( version 3.09 )
19  !/ 24-Jul-2006 : Adding unified point output storage.( version 3.10 )
20  !/ 25-Jul-2006 : Originating grid ID for points. ( version 3.10 )
21  !/ 04-Oct-2006 : Add filter to array pointers. ( version 3.10 )
22  !/ 30-Oct-2006 : Add pars for partitioning. ( version 3.10 )
23  !/ 26-Mar-2007 : Add pars for partitioning. ( version 3.11 )
24  !/ 17-May-2007 : Adding NTPROC/NAPROC separation. ( version 3.11 )
25  !/ 21-Jun-2007 : Dedicated output processes. ( version 3.11 )
26  !/ 29-May-2009 : Preparing distribution version. ( version 3.14 )
27  !/ 30-Oct-2009 : Implement curvilinear grid type. ( version 3.14 )
28  !/ (W. E. Rogers & T. J. Campbell, NRL)
29  !/ 14-Jul-2010 : Fix VAAUX declaration bug. ( version 3.14.2 )
30  !/ 27-Jul-2010 : Add NKI, NTHI, XFRI, FR1I, TH1I. ( version 3.14.3 )
31  !/ 08-Nov-2010 : Implementing unstructured grids ( version 3.14.4 )
32  !/ (A. Roland and F. Ardhuin)
33  !/ 18-Dec-2012 : New 2D field output structure, ( version 4.11 )
34  !/ reducing memory footprint for fields.
35  !/ 19-Dec-2012 : Move NOSWLL to data structure. ( version 4.11 )
36  !/ 10-Dec-2014 : Add checks for allocate status ( version 5.04 )
37  !/ 27-Aug-2015 : Adding interpolated ICEF (mean ice ( version 5.10 )
38  !/ floe diameter), ICEH (ice thickness)
39  !/ and ICE (ice concentration).
40  !/ 01-Mar-2018 : Include UNDEF from constants.ftn to ( version 6.02 )
41  !/ avoid circular referencing in w3servmd
42  !/ 05-Jun-2018 : Add SETUP ( version 6.04 )
43  !/ 27-Jul-2018 : Added PTMETH and PTFCUT variables ( version 6.05 )
44  !/ for alternative partition methods.
45  !/ (C. Bunney, UKMO)
46  !/ 25-Sep-2020 : Flags for coupling restart ( version 7.10 )
47  !/ 15-Jan-2020 : Added TP based on existing FP ( version 7.12 )
48  !/ internal fields. (C. Bunney, UKMO)
49  !/ 22-Mar-2021 : Add extra coupling variables ( version 7.13 )
50  !/ 07-Jun-2021 : S_{nl} GKE NL5 (Q. Liu) ( version 7.13 )
51  !/ 19-Jul-2021 : Momentum and air density support ( version 7.14 )
52  !/
53  !/ Copyright 2009-2012 National Weather Service (NWS),
54  !/ National Oceanic and Atmospheric Administration. All rights
55  !/ reserved. WAVEWATCH III is a trademark of the NWS.
56  !/ No unauthorized use without permission.
57  !/
58  ! 1. Purpose :
59  !
60  ! Define data structures to set up wave model grids and aliases
61  ! to use individual grids transparently. Also includes subroutines
62  ! to manage data structure and pointing to individual models.
63  ! This module considers the parameters required for model output.
64  !
65  ! 2. Variables and types :
66  !
67  ! Name Type Scope Description
68  ! ----------------------------------------------------------------
69  ! NOUTP Int. Public Number of models in array dim.
70  ! IOUTP Int. Public Selected model for output, init. at -1.
71  ! IOSTYP Int. Public Output data server type.
72  ! NOGRP I.P. Public Number of output field groups
73  ! NGRPP I.P. Public Max numb of parameters per output group
74  ! NOGE I.P. Public Number of output group elements
75  ! NOTYPE I.P. Public Number of output types
76  ! NOEXTR I.P. Public Number of extra (user available)
77  ! output fields.
78  ! DIMP I.P. Public Number of parameters in partition
79  ! output group
80  ! IDOUT C.A. Public ID strings for output fields.
81  ! FNMPRE Char Public File name preamble.
82  ! UNDEF Real Public Value for undefined parameters in
83  ! gridded output fields.
84  ! UNIPTS Log. Public Flag for unified point output (output
85  ! to single file).
86  ! UPPROC Log. Public FLag for dedicated point output proc.
87  ! OUTPUT TYPE Public Data structure defining output.
88  ! OUTPTS GRID Public Array of output for models.
89  ! ----------------------------------------------------------------
90  !
91  ! Elements of OUTPUT are aliased to pointers with the same
92  ! name. These pointers are defined as :
93  !
94  ! Name Type Scope Description
95  ! ----------------------------------------------------------------
96  ! NDSO Int. Public General output unit number ("log
97  ! file").
98  ! NDSE Int. Public Error output unit number.
99  ! NDST Int. Public Test output unit number.
100  ! SCREEN Int. Public Unit for 'direct' output.
101  ! NTPROC Int. Public Number of processors.
102  ! NAPROC Int. Public Number of processors for computation.
103  ! IAPROC Int. Public Actual processor number (base 1),
104  ! NAPLOG Int. Public Proc. dealing with log output.
105  ! NAPOUT Int. Public Proc. dealing with standard output.
106  ! NAPERR Int. Public Proc. dealing with error output.
107  ! NAPFLD Int. Public Proc. dealing with raw field output.
108  ! NAPPNT Int. Public Proc. dealing with raw point output.
109  ! NAPTRK Int. Public Proc. dealing with track output.
110  ! NAPRST Int. Public Proc. dealing with restart output.
111  ! NAPBPT Int. Public Proc. dealing with boundary output.
112  ! NAPPRT Int. Public Proc. dealing with partition output.
113  ! NOSWLL I.P. Public Number of swell fields from part.
114  ! to be used in field output.
115  ! TOSNL5 I.A. Public Times for point ouput (!/NL5)
116  ! TOFRST I.A. Public Times for first output.
117  ! TONEXT I.A. Public Times for next output.
118  ! TOLAST I.A. Public Times for last output.
119  ! TBPI0 I.A Public Time of first set of input boundary
120  ! spectra.
121  ! TBPIN I.A Public Id. second set.
122  ! NDS I.A. Public Data set numbers (see W3INIT).
123  ! DTOUT R.A. Public Output intervals.
124  ! FLOUT L.A. Public Output flags.
125  ! OUT1 TYPE Public Data structure of type OTYPE1 with
126  ! suppl. data for output type 1.
127  ! OUT2 TYPE Public Data structure of type OTYPE2 with
128  ! suppl. data for output type 2.
129  ! OUT3 TYPE Public Data structure of type OTYPE3 with
130  ! suppl. data for output type 3.
131  ! OUT4 TYPE Public Data structure of type OTYPE4 with
132  ! suppl. data for output type 4.
133  ! OUT5 TYPE Public Data structure of type OTYPE5 with
134  ! suppl. data for output type 5.
135  ! OUT6 TYPE Public Data structure of type OTYPE6 with
136  ! suppl. data for output type 6.
137  ! OFILES I.A. Public Output in one or several files.
138  ! ----------------------------------------------------------------
139  !
140  ! Elements of OUT1 are aliased to pointers with the same
141  ! name. These pointers are defined as :
142  !
143  ! Name Type Scope Description
144  ! ----------------------------------------------------------------
145  ! IPASS1 Int. Public Pass counter for file management,
146  ! renamed to IPASS in routine.
147  ! WRITE1 Int. Public Write flag for file management,
148  ! renamed to WRITE in routine.
149  ! NRQGO(2) Int. Public Number of MPI handles W3IOGO.
150  ! IRQGO I.A. Public Array with MPI handles W3IOGO.
151  ! FLOGRD L.A. Public FLags for output fields.
152  ! FLOGR2 L.A. Public FLags for coupling fields.
153  ! FLOGRR L.A. Public FLags for optional coupling restart (2D).
154  ! FLOGD L.A. Public Flags for output groups
155  ! FLOG2 L.A. Public Flags for coupling groups
156  ! FLOGR L.A. Public FLags for optional coupling restart (1D).
157  ! ----------------------------------------------------------------
158  !
159  ! Elements of OUT2 are aliased to pointers with the same
160  ! name. These pointers are defined as :
161  !
162  ! Name Type Scope Description
163  ! ----------------------------------------------------------------
164  ! IPASS2 Int. Public Pass counter for file management,
165  ! renamed to IPASS in routine.
166  ! NOPTS Int. Public Number of output points.
167  ! NRQPO(2) Int. Public Number of MPI handles IRQPOn. (!/MPI)
168  ! IPTINT I.A. Public (I,J)-indices of enclosing cell corner points
169  ! IL I.A. Public Number of land points in interpola-
170  ! tion box for output point.
171  ! IW I.A. Public Id. water.
172  ! II I.A. Public Id. ice.
173  ! IRQPO1/2 I.A. Public Array with MPI handles. (!/MPI)
174  ! PTLOC R.A. Public Output locations.
175  ! PTIFAC R.A. Public Interpolation weights.
176  ! DPO R.A. Public Interpolated depths.
177  ! WAO R.A. Public Interpolated wind speeds.
178  ! WDO R.A. Public Interpolated wind directions.
179  ! ASO R.A. Public Interpolated air-sea temp. diff.
180  ! TAUAO R.A. Public Interpolated atm. stresses.
181  ! TAUDO R.A. Public Interpolated atm. stres directions.
182  ! DAIRO R.A. Public Interpolated rho atmosphere.
183  ! CAO R.A. Public Interpolated current speeds.
184  ! CDO R.A. Public Interpolated current directions.
185  ! SPCO R.A. Public Output spectra.
186  ! ICEO R.A. Public Interpolated ice concentration.
187  ! ICEHO R.A. Public Interpolated ice thickness.
188  ! ICEFO R.A. Public Interpolated ice floe.
189  ! PTNME C.A. Public Name of output locations.
190  ! GRDID C.A. Public Originating grid ID.
191  ! O2INIT Log. Public Flag for array initialization.
192  ! O2IRQI Log. Public Flag for array initialization.
193  ! ----------------------------------------------------------------
194  !
195  ! Elements of OUT3 are aliased to pointers with the same
196  ! name. These pointers are defined as :
197  !
198  ! Name Type Scope Description
199  ! ----------------------------------------------------------------
200  ! IPASS3 Int. Public Pass counter for file management,
201  ! renamed to IPASS in routine.
202  ! IT0PNT Int. Public Base tag number of MPI communication.
203  ! IT0TRK Int. Public Base tag number of MPI communication.
204  ! IT0PRT Int. Public Base tag number of MPI communication.
205  ! NRQTR Int. Public Number of handles in IRQTR.
206  ! IRQTR I.A. Public Array with MPI handles.
207  ! O3INIT Log. Public Flag for array initialization.
208  ! STOP Log. Public Flag for end of output.
209  ! MASKn L.A. Public Mask arrays for internal use.
210  ! ----------------------------------------------------------------
211  !
212  ! Elements of OUT4 are aliased to pointers with the same
213  ! name. These pointers are defined as :
214  !
215  ! Name Type Scope Description
216  ! ----------------------------------------------------------------
217  ! IFILE4 Int. Public File number for output files.
218  ! NBLKRS Int. Public Number of blocks in communication of
219  ! spectra.
220  ! RSBLKS Int. Public Corresponding block size.
221  ! NRQSR Int. Public Number of MPI handles.
222  ! IRQRS I.A. Public Array with MPI handles.
223  ! IRQRSS I.A. Public Array with MPI handles.
224  ! VAAUX R.A. Public Aux. spectra storage.
225  ! ----------------------------------------------------------------
226  !
227  ! Elements of OUT5 are aliased to pointers with the same
228  ! name. These pointers are defined as :
229  !
230  ! Name Type Scope Description
231  ! ----------------------------------------------------------------
232  ! NBI(2) Int. Public Number of input bound. points.
233  ! NFBPO Int. Public Number of files for output bound. data.
234  ! NRQBP(2) Int. Public Number of MPI handles.
235  ! NKI,NTHI Int. Public Size of input spectra
236  ! NBO(2) I.A. Public Number of output bound. pts. per file.
237  ! NDSL I.A. Public Array with unit numbers.
238  ! IPBPI I.A. Public Interpolation data input b.p.
239  ! ISBPI I.A. Public Sea point counters for input b.p.
240  ! IRQBP1/2 I.A. Public Array with MPI handles.
241  ! XFRI, FR1I, TH1I
242  ! Real Public Definition of input spectra.
243  ! X/YBPI R.A. Public Location of input boundary points.
244  ! RDBPI R.A. Public Interpolation factors input b.p.
245  ! ABPI0/N R.A. Public Storage of spectra from which to
246  ! interpolate b.d.
247  ! BBPI0/N R.A. Public idem, secondary storage.
248  ! ABPOS R.A. Public Temporarily storage for output b.d.
249  ! IPBPO, ISBPO, X/YBPO, RDBPO
250  ! Misc. Public Id. for output b.p.
251  ! FLBPI Log. Public Flag for input of boundary data.
252  ! FLBPO Log. Public Flag for output of boundary data.
253  ! FILER/W/D Log. Public Read/write flags for file management.
254  ! SPCONV Log. Public Flag for change of spectral res.
255  ! O5INIn Log. Public Flag for array initializations.
256  ! ----------------------------------------------------------------
257  !
258  ! Elements of OUT6 are aliased to pointers with the same
259  ! name. These pointers are defined as :
260  !
261  ! Name Type Scope Description
262  ! ----------------------------------------------------------------
263  ! IPASS6 Int. Public Pass counter for file management,
264  ! renamed to IPASS in routine.
265  ! IHMAX Int. Public Number of discrete spectral levels.
266  ! IX0/N/S Int. Public First-last-step IX counters.
267  ! IY0/N/S Int. Public Idem IY counters.
268  ! HSPMIN Real Public Minimum significant height per part.
269  ! WSMULT Real Public Multiplier for wind sea boundary.
270  ! WSCUT Real Public Cut-off wind factor for wind seas.
271  ! ICPRT I.A. Public Counters for partitions.
272  ! DTPRT R.A. Public Data from partitions.
273  ! FLCOMB Log. Public Flag for combining wind seas.
274  ! FLFORM Log. Public Flag for (un)formatted output
275  ! O6INIT Log. Public Flag for array initializations.
276  ! ----------------------------------------------------------------
277  !
278  ! 3. Subroutines and functions :
279  !
280  ! Name Type Scope Description
281  ! ----------------------------------------------------------------
282  ! W3NOUT Subr. Public Set number of grids.
283  ! W3DMO2 Subr. Public Allocate arrays output type 2.
284  ! W3DMO3 Subr. Public Allocate arrays output type 3.
285  ! W3DMO5 Subr. Public Allocate arrays output type 5.
286  ! W3SETO Subr. Public Point to selected grid / model.
287  ! ----------------------------------------------------------------
288  !
289  ! 4. Subroutines and functions used :
290  !
291  ! Name Type Module Description
292  ! ----------------------------------------------------------------
293  ! W3SETG Subr. W3GDATMD Point to proper model grid.
294  ! STRACE Subr. W3SERVMD Subroutine tracing.
295  ! EXTCDE Subr. W3SERVMD Abort program with exit code.
296  ! ----------------------------------------------------------------
297  !
298  ! 5. Remarks :
299  !
300  ! - The number of grids is taken from W3GDATMD, and needs to be
301  ! set first with W3DIMG.
302  !
303  ! 6. Switches :
304  !
305  ! !/MPI MPI specific calls.
306  ! !/S Enable subroutine tracing.
307  ! !/T Enable test output
308  !
309  ! 7. Source code :
310  !
311  !/ ------------------------------------------------------------------- /
312  USE constants, ONLY : undef
313  PUBLIC
314  !/
315  !/ Module private variable for checking error returns
316  !/
317  INTEGER, PRIVATE :: ISTAT
318  !/
319  !/ Conventional declarations
320  !/
321  INTEGER :: noutp = -1, ioutp = -1, iostyp = 1
322  !
323  INTEGER, PARAMETER :: nogrp = 10
324  INTEGER, PARAMETER :: ngrpp = 20
325  INTEGER, PARAMETER :: dimp = 15
326  INTEGER :: noge(nogrp)
327  INTEGER :: notype
328  INTEGER, PARAMETER :: noextr= 2
329  CHARACTER(LEN=20) :: idout(nogrp,ngrpp)
330  CHARACTER(LEN=80) :: fnmpre = './'
331  !Moved UNDEF to constants and included above
332  !REAL :: UNDEF = -999.9
333  LOGICAL :: unipts = .false., upproc = .false.
334  !/
335  !/ Set NOGE and IDOUT identifiers in W3NOUT
336  !/
337  !/ Data structures
338  !/
339  TYPE otype1
340  INTEGER :: ipass1
341 #ifdef W3_MPI
342  INTEGER :: nrqgo, nrqgo2
343  INTEGER, POINTER :: irqgo(:), irqgo2(:)
344 #endif
345  LOGICAL :: flogrd(nogrp,ngrpp), flogd(nogrp), &
348  write1
349  END TYPE otype1
350  !/
351  TYPE otype2
352  INTEGER :: ipass2, nopts
353 #ifdef W3_MPI
354  INTEGER :: nrqpo, nrqpo2
355 #endif
356  INTEGER, POINTER :: iptint(:,:,:), il(:), iw(:), ii(:)
357 #ifdef W3_MPI
358  INTEGER, POINTER :: irqpo1(:), irqpo2(:)
359 #endif
360  REAL, POINTER :: ptloc(:,:), ptifac(:,:), &
361  dpo(:), wao(:), wdo(:), aso(:), &
362 #ifdef w3_flx5
363  tauao(:), taudo(:), dairo(:), &
364 #endif
365  cao(:), cdo(:), iceo(:), iceho(:), &
366  icefo(:), spco(:,:)
367  REAL, POINTER :: zet_seto(:) ! For the wave setup.
368 
369  CHARACTER(LEN=40), POINTER :: ptnme(:)
370  CHARACTER(LEN=13), POINTER :: grdid(:)
371  LOGICAL :: o2init
372 #ifdef W3_MPI
373  LOGICAL :: o2irqi
374 #endif
375  END TYPE otype2
376  !/
377  TYPE otype3
378  INTEGER :: ipass3
379 #ifdef W3_MPI
380  INTEGER :: it0pnt, it0trk, it0prt, nrqtr
381  INTEGER, POINTER :: irqtr(:)
382 #endif
383  LOGICAL :: o3init, stop
384  LOGICAL, POINTER :: mask1(:,:), mask2(:,:)
385  CHARACTER(LEN=32), POINTER :: trckid(:,:)
386  END TYPE otype3
387  !/
388  TYPE otype4
389  INTEGER :: ifile4
390 #ifdef W3_MPI
391  INTEGER :: nrqrs, nblkrs, rsblks
392  INTEGER, POINTER :: irqrs(:), irqrss(:)
393  REAL, POINTER :: vaaux(:,:,:)
394 #endif
395  END TYPE otype4
396  !/
397  TYPE otype5
398  INTEGER :: nbi, nbi2, nfbpo, nbo(0:9), &
399  nbo2(0:9), ndsl(9), nki, nthi
400 #ifdef W3_MPI
401  INTEGER :: nrqbp = 0, nrqbp2 = 0
402 #endif
403  INTEGER, POINTER :: ipbpi(:,:), isbpi(:), &
404  ipbpo(:,:), isbpo(:)
405 #ifdef W3_MPI
406  INTEGER, POINTER :: irqbp1(:), irqbp2(:)
407 #endif
408  REAL :: xfri, fr1i, th1i
409  REAL, POINTER :: xbpi(:), ybpi(:), rdbpi(:,:), &
410  xbpo(:), ybpo(:), rdbpo(:,:), &
411  abpi0(:,:), abpin(:,:), abpos(:,:), &
412  bbpi0(:,:), bbpin(:,:)
413  LOGICAL :: o5ini1, o5ini2, o5ini3, o5ini4
414  LOGICAL :: flbpi, flbpo, filer, filew, filed, &
415  spconv
416  END TYPE otype5
417  !/
418  TYPE otype6
419  INTEGER :: ipass6, ihmax, ix0, ixn, ixs, &
420  iy0, iyn, iys
421  INTEGER, POINTER :: icprt(:,:)
422  REAL :: hspmin, wsmult, wscut
423  REAL, POINTER :: dtprt(:,:)
424  LOGICAL :: flform, flcomb, o6init
425  INTEGER :: ptmeth ! C. Bunney; Partitioning method
426  REAL :: ptfcut ! C. Bunney; Part. 5 freq cut
427  END TYPE otype6
428  !/
429  TYPE output
430  INTEGER :: ndso, ndse, ndst, screen
431  INTEGER :: ntproc, naproc, iaproc, naplog, &
432  napout, naperr, napfld, nappnt, &
434  INTEGER :: noswll
435 #ifdef W3_NL5
436  INTEGER :: tosnl5(2)
437 #endif
438  INTEGER :: tofrst(2), tonext(2,8), tolast(2,8), &
439  tbpi0(2), tbpin(2), nds(15), ofiles(7)
440  REAL :: dtout(8)
441  LOGICAL :: flout(8)
442  TYPE(otype1) :: out1
443  TYPE(otype2) :: out2
444  TYPE(otype3) :: out3
445  TYPE(otype4) :: out4
446  TYPE(otype5) :: out5
447  TYPE(otype6) :: out6
448  END TYPE output
449  !/
450  !/ Data storage
451  !/
452  TYPE(output), TARGET, ALLOCATABLE :: outpts(:)
453  !/
454  !/ Data aliasses for structure OUTPUT
455  !/
456  INTEGER, POINTER :: ndso, ndse, ndst, screen
457  INTEGER, POINTER :: ntproc, naproc, iaproc, naplog, &
458  napout, naperr, napfld, nappnt, &
460  INTEGER, POINTER :: noswll
461 #ifdef W3_NL5
462  INTEGER, POINTER :: tosnl5(:)
463 #endif
464  INTEGER, POINTER :: tofrst(:), tonext(:,:), tolast(:,:), &
465  tbpi0(:), tbpin(:), nds(:)
466  INTEGER, POINTER :: ofiles(:)
467  REAL, POINTER :: dtout(:)
468  LOGICAL, POINTER :: flout(:)
469  !/
470  !/ Data aliasses for substructures for output types
471  !/ Type 1 ...
472  !/
473  INTEGER, POINTER :: ipass1
474 #ifdef W3_MPI
475  INTEGER, POINTER :: nrqgo, nrqgo2
476  INTEGER, POINTER :: irqgo(:), irqgo2(:)
477 #endif
478  LOGICAL, POINTER :: flogrd(:,:), flogr2(:,:), &
479  flogrr(:,:),flogd(:), flog2(:), &
480  flogr(:), write1
481  !/
482  !/ Type 2 ...
483  !/
484  INTEGER, POINTER :: ipass2, nopts
485 #ifdef W3_MPI
486  INTEGER, POINTER :: nrqpo, nrqpo2
487 #endif
488  INTEGER, POINTER :: iptint(:,:,:), il(:), iw(:), ii(:)
489 #ifdef W3_MPI
490  INTEGER, POINTER :: irqpo1(:), irqpo2(:)
491 #endif
492  REAL, POINTER :: ptloc(:,:), ptifac(:,:), &
493  dpo(:), wao(:), wdo(:), aso(:), &
494 #ifdef w3_flx5
495  tauao(:), taudo(:), dairo(:), &
496 #endif
497  cao(:), cdo(:), iceo(:), iceho(:), &
498  icefo(:), spco(:,:)
499  REAL, POINTER :: zet_seto(:)
500  !
501  CHARACTER(LEN=40), POINTER :: ptnme(:)
502  CHARACTER(LEN=13), POINTER :: grdid(:)
503  LOGICAL, POINTER :: o2init
504 #ifdef W3_MPI
505  LOGICAL, POINTER :: o2irqi
506 #endif
507  !/
508  !/ Type 3 ...
509  !/
510  INTEGER, POINTER :: ipass3
511 #ifdef W3_MPI
512  INTEGER, POINTER :: it0pnt, it0trk, it0prt, nrqtr
513  INTEGER, POINTER :: irqtr(:)
514 #endif
515  LOGICAL, POINTER :: o3init, stop
516  LOGICAL, POINTER :: mask1(:,:), mask2(:,:)
517  CHARACTER(LEN=32), POINTER :: trckid(:,:)
518  !/
519  !/ Type 4 ...
520  !/
521  INTEGER, POINTER :: ifile4
522 #ifdef W3_MPI
523  INTEGER, POINTER :: nrqrs, nblkrs, rsblks
524  INTEGER, POINTER :: irqrs(:), irqrss(:)
525  REAL, POINTER :: vaaux(:,:,:)
526 #endif
527  !/
528  !/ Type 5 ...
529  !/
530  INTEGER, POINTER :: nbi, nbi2, nfbpo, nki, nthi
531  INTEGER, POINTER :: nbo(:), nbo2(:), ndsl(:)
532 #ifdef W3_MPI
533  INTEGER, POINTER :: nrqbp, nrqbp2
534 #endif
535  INTEGER, POINTER :: ipbpi(:,:), isbpi(:), &
536  ipbpo(:,:), isbpo(:)
537 #ifdef W3_MPI
538  INTEGER, POINTER :: irqbp1(:), irqbp2(:)
539 #endif
540  REAL, POINTER :: xfri, fr1i, th1i
541  REAL, POINTER :: xbpi(:), ybpi(:), rdbpi(:,:), &
542  xbpo(:), ybpo(:), rdbpo(:,:), &
543  abpi0(:,:), abpin(:,:), abpos(:,:), &
544  bbpi0(:,:), bbpin(:,:)
545  LOGICAL, POINTER :: o5ini1, o5ini2, o5ini3, o5ini4
546  LOGICAL, POINTER :: flbpi, flbpo, filer, filew, filed, &
547  spconv
548  !/
549  !/ Type 6 ...
550  !/
551  INTEGER, POINTER :: ipass6, ihmax, ix0, ixn, ixs, &
552  iy0, iyn, iys, icprt(:,:)
553  REAL, POINTER :: hspmin, wsmult, wscut, dtprt(:,:)
554  LOGICAL, POINTER :: flform, flcomb, o6init
555  INTEGER, POINTER :: ptmeth ! C. Bunney; Partitioning method
556  REAL, POINTER :: ptfcut ! C. Bunney; Part. 5 freq cut
557  !/
558 CONTAINS
559  !/ ------------------------------------------------------------------- /
560  SUBROUTINE w3nout ( NDSERR, NDSTST )
561  !/
562  !/ +-----------------------------------+
563  !/ | WAVEWATCH III NOAA/NCEP |
564  !/ | H. L. Tolman |
565  !/ | FORTRAN 90 |
566  !/ | Last update : 22-Mar-2021 |
567  !/ +-----------------------------------+
568  !/
569  !/ 13-Dec-2004 : Origination. ( version 3.06 )
570  !/ 27-Jun-2006 : Adding file name preamble ( version 3.09 )
571  !/ 24-Jul-2006 : Adding unified point output storage.( version 3.10 )
572  !/ 04-Oct-2006 : Add filter to array pointers. ( version 3.10 )
573  !/ 30-Oct-2006 : Add pars for partitioning. ( version 3.10 )
574  !/ 26-Mar-2007 : Add pars for partitioning. ( version 3.11 )
575  !/ 17-May-2007 : Adding NTPROC/NAPROC separation. ( version 3.11 )
576  !/ 18-Dec-2012 : Moving IDOUT initialization here. ( version 4.11 )
577  !/ 19-Dec-2012 : Move NOSWLL to data structure. ( version 4.11 )
578  !/ 10-Dec-2014 : Add checks for allocate status ( version 5.04 )
579  !/ 22-Mar-2021 : Add extra coupling variables ( version 7.13 )
580  !/
581  ! 1. Purpose :
582  !
583  ! Set up the number of grids to be used.
584  !
585  ! 2. Method :
586  !
587  ! Use data stored in NGRIDS in W3GDATMD.
588  !
589  ! 3. Parameters :
590  !
591  ! Parameter list
592  ! ----------------------------------------------------------------
593  ! NDSERR Int. I Error output unit number.
594  ! NDSTST Int. I Test output unit number.
595  ! ----------------------------------------------------------------
596  !
597  ! 4. Subroutines used :
598  !
599  ! See module documentation below.
600  !
601  ! 5. Called by :
602  !
603  ! Any main program that uses this grid structure.
604  !
605  ! 6. Error messages :
606  !
607  ! - Error checks on previous setting of variable NGRIDS.
608  !
609  ! 7. Remarks :
610  !
611  ! 8. Structure :
612  !
613  ! 9. Switches :
614  !
615  ! !/S Enable subroutine tracing.
616  ! !/T Enable test output
617  !
618  ! 10. Source code :
619  !
620  !/ ------------------------------------------------------------------- /
621  USE w3gdatmd, ONLY: ngrids, nauxgr
622  USE w3servmd, ONLY: extcde
623 #ifdef W3_S
624  USE w3servmd, ONLY: strace
625 #endif
626  !
627  IMPLICIT NONE
628  !/
629  !/ ------------------------------------------------------------------- /
630  !/ Parameter list
631  !/
632  INTEGER, INTENT(IN) :: NDSERR, NDSTST
633  !/
634  !/ ------------------------------------------------------------------- /
635  !/ Local parameters
636  !/
637  INTEGER :: I, NLOW, J
638 #ifdef W3_S
639  INTEGER, SAVE :: IENT = 0
640 #endif
641  CHARACTER(LEN=20) :: STRING
642  !/
643 #ifdef W3_S
644  CALL strace (ient, 'W3NOUT')
645 #endif
646  !
647  ! -------------------------------------------------------------------- /
648  ! 1. Test input and module status
649  !
650  IF ( ngrids .EQ. -1 ) THEN
651  WRITE (ndserr,1001) ngrids
652  CALL extcde (1)
653  END IF
654  !
655  ! -------------------------------------------------------------------- /
656  ! 2. Set variable and allocate arrays
657  !
658  nlow = min( 0 , -nauxgr )
659  ALLOCATE ( outpts(nlow:ngrids), stat=istat )
660  check_alloc_status( istat )
661  noutp = ngrids
662  !
663  ! -------------------------------------------------------------------- /
664  ! 3. Initialize parameters
665  !
666  DO i=nlow, ngrids
667  !
668  outpts(i)%NDSO = 6
669  outpts(i)%NDSE = 6
670  outpts(i)%NDST = 6
671  outpts(i)%SCREEN = 6
672  !
673  outpts(i)%NTPROC = 1
674  outpts(i)%NAPROC = 1
675  outpts(i)%IAPROC = 1
676  outpts(i)%NAPLOG = 1
677  outpts(i)%NAPOUT = 1
678  outpts(i)%NAPERR = 1
679  outpts(i)%NAPFLD = 1
680  outpts(i)%NAPPNT = 1
681  outpts(i)%NAPTRK = 1
682  outpts(i)%NAPRST = 1
683  outpts(i)%NAPBPT = 1
684  outpts(i)%NAPPRT = 1
685  !
686  outpts(i)%NOSWLL = -1
687  !
688  outpts(i)%TBPI0 = (-1,0)
689  outpts(i)%TBPIN = (-1,0)
690  !
691  outpts(i)%OUT1%IPASS1 = 0
692 #ifdef W3_MPI
693  outpts(i)%OUT1%NRQGO = 0
694  outpts(i)%OUT1%NRQGO2 = 0
695 #endif
696  !
697  outpts(i)%OUT2%IPASS2 = 0
698  outpts(i)%OUT2%NOPTS = 0
699  outpts(i)%OUT2%O2INIT = .false.
700 #ifdef W3_MPI
701  outpts(i)%OUT2%O2IRQI = .false.
702 #endif
703  !
704  outpts(i)%OUT3%IPASS3 = 0
705  outpts(i)%OUT3%O3INIT = .false.
706  outpts(i)%OUT3%STOP = .false.
707 #ifdef W3_MPI
708  outpts(i)%OUT3%NRQTR = 0
709 #endif
710  !
711  outpts(i)%OUT4%IFILE4 = 0
712 #ifdef W3_MPI
713  outpts(i)%OUT4%NRQRS = 0
714 #endif
715  !
716  outpts(i)%OUT5%O5INI1 = .false.
717  outpts(i)%OUT5%O5INI2 = .false.
718  outpts(i)%OUT5%O5INI3 = .false.
719  outpts(i)%OUT5%O5INI4 = .false.
720  outpts(i)%OUT5%FILER = .true.
721  outpts(i)%OUT5%FILEW = .true.
722  outpts(i)%OUT5%FILED = .true.
723  !
724  outpts(i)%OUT6%IPASS6 = 0
725  outpts(i)%OUT6%O6INIT = .false.
726  !
727  END DO
728  !
729  ! Set IDOUT
730  ! Commented outlines represent reserved slots.
731  !
732  DO i=1, nogrp
733  DO j=1, ngrpp
734  idout(i,j) = 'Undefined / Not Used'
735  END DO
736  END DO
737  !
738  ! 1) Forcing fields
739  !
740  noge(1) = 9
741 #ifdef W3_BT4
742  noge(1) = 10
743 #endif
744 #ifdef W3_IS2
745  noge(1) = 12 ! CB
746 #endif
747 #ifdef W3_SETUP
748  noge(1) = 13 ! CB
749 #endif
750  !
751  idout( 1, 1) = 'Water depth '
752  idout( 1, 2) = 'Current vel. '
753  idout( 1, 3) = 'Wind speed '
754  idout( 1, 4) = 'Air-sea temp. dif. '
755  idout( 1, 5) = 'Water level '
756  idout( 1, 6) = 'Ice concentration '
757  idout( 1, 7) = 'Iceberg damp coeffic'
758  idout( 1, 8) = 'Atmospheric momentum'
759  idout( 1, 9) = 'Air density '
760 #ifdef W3_BT4
761  idout( 1, 10) = 'Sediment diam D50 '
762 #endif
763 #ifdef W3_IS2
764  idout( 1, 11) = 'ice thickness '
765  idout( 1, 12) = 'Avg. ice floe diam. '
766 #endif
767 #ifdef W3_SETUP
768  idout( 1, 13) = 'wave induced setup'
769 #endif
770  !
771  ! 2) Standard mean wave parameters
772  !
773  noge(2) = 19
774 #ifdef W3_OASOCM
775  noge(2) = 20
776 #endif
777  !
778  idout( 2, 1) = 'Wave height '
779  idout( 2, 2) = 'Mean wave length '
780  idout( 2, 3) = 'Mean wave period(+2)'
781  idout( 2, 4) = 'Mean wave period(-1)'
782  idout( 2, 5) = 'Mean wave period(+1)'
783  idout( 2, 6) = 'Peak frequency '
784  idout( 2, 7) = 'Mean wave dir. a1b1 '
785  idout( 2, 8) = 'Mean dir. spr. a1b1 '
786  idout( 2, 9) = 'Peak direction '
787  idout( 2, 10) = 'Infragravity height'
788  idout( 2, 11) = 'Space-Time Max E '
789  idout( 2, 12) = 'Space-Time Max Std '
790  idout( 2, 13) = 'Space-Time Hmax '
791  idout( 2, 14) = 'Spc-Time Hmax^crest'
792  idout( 2, 15) = 'STD Space-Time Hmax'
793  idout( 2, 16) = 'STD ST Hmax^crest '
794  idout( 2, 17) = 'Dominant wave bT '
795  idout( 2, 18) = 'Peak prd. (from fp)'
796  idout( 2, 19) = 'Mean wave number '
797 #ifdef W3_OASOCM
798  idout( 2, 20) = 'Mean wave dir. norot'
799 #endif
800  ! IDOUT( 2,10) = 'Mean wave dir. a2b2'
801  ! IDOUT( 2,11) = 'Mean dir. spr. a2b2'
802  ! IDOUT( 2,12) = 'Windsea height(Sin)'
803  ! IDOUT( 2,13) = 'Windsea peak f(Sin)'
804  ! IDOUT( 2,14) = 'Subrange waveheight'
805  !
806  ! 3) Frequency-dependent standard parameters
807  !
808  noge(3) = 6
809  !
810  idout( 3, 1) = '1D Freq. Spectrum '
811  idout( 3, 2) = 'Mean wave dir. a1b1 '
812  idout( 3, 3) = 'Mean dir. spr. a1b1 '
813  idout( 3, 4) = 'Mean wave dir. a2b2 '
814  idout( 3, 5) = 'Mean dir. spr. a2b2 '
815  idout( 3, 6) = 'Wavenumber array '
816  !
817  ! 4) Spectral Partitions parameters
818  !
819  noge(4) = 17
820  !
821  idout( 4, 1) = 'Part. wave height '
822  idout( 4, 2) = 'Part. peak period '
823  idout( 4, 3) = 'Part. peak wave len.'
824  idout( 4, 4) = 'Part. mean direction'
825  idout( 4, 5) = 'Part. dir. spread '
826  idout( 4, 6) = 'Part. wind sea frac.'
827  idout( 4, 7) = 'Part. peak direction'
828  idout( 4, 8) = 'Part. peakedness '
829  idout( 4, 9) = 'Part. peak enh. fac.'
830  idout( 4,10) = 'Part. gaussian width'
831  idout( 4,11) = 'Part. spectral width'
832  idout( 4,12) = 'Part. mean per. (-1)'
833  idout( 4,13) = 'Part. mean per. (+1)'
834  idout( 4,14) = 'Part. mean per. (+2)'
835  idout( 4,15) = 'Part. peak density '
836  idout( 4,16) = 'Total wind sea frac.'
837  idout( 4,17) = 'Number of partitions'
838  !
839  ! 5) Atmosphere-waves layer
840  !
841  noge(5) = 11
842  !
843  idout( 5, 1) = 'Friction velocity '
844  idout( 5, 2) = 'Charnock parameter '
845  idout( 5, 3) = 'Energy flux '
846  idout( 5, 4) = 'Wind-wave enrgy flux'
847  idout( 5, 5) = 'Wind-wave net mom. f'
848  idout( 5, 6) = 'Wind-wave neg.mom.f.'
849  idout( 5, 7) = 'Whitecap coverage '
850  idout( 5, 8) = 'Whitecap mean thick.'
851  idout( 5, 9) = 'Mean breaking height'
852  idout( 5,10) = 'Dominant break prob '
853  idout( 5,11) = 'Wind sea period' ! C.Bunney - reinstated this as is used in ww3_ounf
854  ! Is it suposed to be defunct? It is not in ww3_outf...
855  !
856  ! 6) Wave-ocean layer
857  !
858  noge(6) = 13
859  !
860  idout( 6, 1) = 'Radiation stresses '
861  idout( 6, 2) = 'Wave-ocean mom. flux'
862  idout( 6, 3) = 'wave ind p Bern Head'
863  idout( 6, 4) = 'Wave-ocean TKE flux'
864  idout( 6, 5) = 'Stokes transport '
865  idout( 6, 6) = 'Stokes drift at z=0 '
866  idout( 6, 7) = '2nd order pressure '
867  idout( 6, 8) = 'Stokes drft spectrum'
868  idout( 6, 9) = '2nd ord press spectr'
869  idout( 6,10) = 'Wave-ice mom. flux '
870  idout( 6,11) = 'Wave-ice energy flux'
871  idout( 6,12) = 'Split Surface Stokes'
872  idout( 6,13) = 'Tot wav-ocn mom flux'
873  !
874  ! 7) Wave-bottom layer
875  !
876  noge(7) = 5
877  !
878  idout( 7, 1) = 'Bottom rms ampl. '
879  idout( 7, 2) = 'Bottom rms velocity '
880  idout( 7, 3) = 'Bedform parameters '
881  idout( 7, 4) = 'Energy diss. in WBBL'
882  idout( 7, 5) = 'Moment. loss in WBBL'
883  ! IDOUT( 7, 6) = 'Bottom mean period '
884  ! IDOUT( 7, 7) = 'Bottom mean direct '
885  ! IDOUT( 7, 8) = 'Bottom direct spread'
886  ! IDOUT( 7, 9) = 'Calc grain rough K_N'
887  !
888  ! 8) Spectrum parameters
889  !
890  noge(8) = 9
891  !
892  idout( 8, 1) = 'Mean square slopes '
893  idout( 8, 2) = 'Phillips tail const'
894  idout( 8, 3) = 'Slope direction '
895  idout( 8, 4) = 'Tail slope direction'
896  idout( 8, 5) = 'Goda peakedness parm'
897  idout( 8, 6) = 'kxky-peakdness '
898  idout( 8, 7) = 'Skewness '
899  idout( 8, 8) = 'EM bias(l120+l102)/8'
900  idout( 8, 9) = 'Tracker bias:-l300/8'
901  ! IDOUT( 8, 3) = 'Lx-Ly mean wvlength'
902  ! IDOUT( 8, 4) = 'Surf grad correl XT'
903  ! IDOUT( 8, 5) = 'Surf grad correl YT'
904  ! IDOUT( 8, 6) = 'Surf grad correl XY'
905  ! IDOUT( 8, 7) = 'Surface crest param'
906  ! IDOUT( 8, 3) = '3rd spectral moment '
907  ! IDOUT( 8, 4) = '4th spectral moment '
908  ! IDOUT( 8, 6) = 'Kurtosis '
909  ! IDOUT( 8, 7) = 'Skewness '
910  !
911  ! 9) Numerical diagnostics
912  !
913  noge(9) = 5
914  !
915  idout( 9, 1) = 'Avg. time step. '
916  idout( 9, 2) = 'Cut-off freq. '
917  idout( 9, 3) = 'Maximum spatial CFL '
918  idout( 9, 4) = 'Maximum angular CFL '
919  idout( 9, 5) = 'Maximum k advect CFL'
920  ! IDOUT( 9, 6) = 'Avg intrsp proptstep'
921  !
922  ! 10) User defined
923  !
924  noge(10) = noextr
925  !
926  DO i=1, min( 20 , noextr )
927  WRITE (string,'(A14,I2.2,A4)') 'User defined #', i, ' '
928  idout(10, i) = string
929  END DO
930  !
931 #ifdef W3_T
932  WRITE (ndstst,9000) ngrids
933 #endif
934  !
935  RETURN
936  !
937  ! Formats
938  !
939 1001 FORMAT (/' *** ERROR W3NOUT : NGRIDS NOT YET SET *** '/ &
940  ' NGRIDS = ',i10/ &
941  ' RUN W3NMOD FIRST'/)
942  !
943 #ifdef W3_T
944 9000 FORMAT (' TEST W3NOUT : SETTING UP FOR ',i4,' GRIDS')
945 #endif
946  !/
947  !/ End of W3NOUT ----------------------------------------------------- /
948  !/
949  END SUBROUTINE w3nout
950  !/ ------------------------------------------------------------------- /
951  SUBROUTINE w3dmo2 ( IMOD, NDSE, NDST, NPT )
952  !/
953  !/ +-----------------------------------+
954  !/ | WAVEWATCH III NOAA/NCEP |
955  !/ | H. L. Tolman |
956  !/ | FORTRAN 90 |
957  !/ | Last update : 10-Dec-2014 |
958  !/ +-----------------------------------+
959  !/
960  !/ 10-Nov-2004 : Origination. ( version 3.06 )
961  !/ 24-Jul-2006 : Adding unified point output storage.( version 3.10 )
962  !/ 25-Jul-2006 : Originating grid ID for points. ( version 3.10 )
963  !/ 04-Oct-2006 : Add filter to array pointers. ( version 3.10 )
964  !/ 30-Oct-2009 : Implement curvilinear grid type. ( version 3.14 )
965  !/ (W. E. Rogers & T. J. Campbell, NRL)
966  !/ 10-Dec-2014 : Add checks for allocate status ( version 5.04 )
967  !/
968  ! 1. Purpose :
969  !
970  ! Initialize an individual data storage for point output.
971  !
972  ! 2. Method :
973  !
974  ! Allocate directly into the structure array. Note that
975  ! this cannot be done through the pointer alias!
976  !
977  ! 3. Parameters :
978  !
979  ! Parameter list
980  ! ----------------------------------------------------------------
981  ! IMOD Int. I Model number to point to.
982  ! NDSE Int. I Error output unit number.
983  ! NDST Int. I Test output unit number.
984  ! NPT Int. I Array size.
985  ! ----------------------------------------------------------------
986  !
987  ! 4. Subroutines used :
988  !
989  ! See module documentation below.
990  !
991  ! 5. Called by :
992  !
993  ! Name Type Module Description
994  ! ----------------------------------------------------------------
995  ! W3IOPO Subr. W3IOPOMD Point output module.
996  ! ----------------------------------------------------------------
997  !
998  ! 6. Error messages :
999  !
1000  ! - Check on input parameters.
1001  ! - Check on previous allocation.
1002  !
1003  ! 7. Remarks :
1004  !
1005  ! - W3SETO needs to be called after allocation to point to
1006  ! proper allocated arrays.
1007  ! - Note that NOPTS is overwritten in W3IOPP.
1008  !
1009  ! 8. Structure :
1010  !
1011  ! See source code.
1012  !
1013  ! 9. Switches :
1014  !
1015  ! !/S Enable subroutine tracing.
1016  ! !/T Enable test output
1017  !
1018  ! 10. Source code :
1019  !
1020  !/ ------------------------------------------------------------------- /
1021  USE w3gdatmd, ONLY: w3setg, ngrids, nauxgr, igrid, nspec
1022  USE w3servmd, ONLY: extcde
1023 #ifdef W3_S
1024  USE w3servmd, ONLY: strace
1025 #endif
1026  !
1027  IMPLICIT NONE
1028  !/
1029  !/ ------------------------------------------------------------------- /
1030  !/ Parameter list
1031  !/
1032  INTEGER, INTENT(IN) :: IMOD, NDSE, NDST, NPT
1033  !/
1034  !/ ------------------------------------------------------------------- /
1035  !/ Local parameters
1036  !/
1037  INTEGER :: JGRID, NLOW
1038 #ifdef W3_S
1039  INTEGER, SAVE :: IENT = 0
1040  CALL strace (ient, 'W3DMO2')
1041 #endif
1042  !
1043  ! -------------------------------------------------------------------- /
1044  ! 1. Test input and module status
1045  !
1046  IF ( ngrids .EQ. -1 ) THEN
1047  WRITE (ndse,1001)
1048  CALL extcde (1)
1049  END IF
1050  !
1051  nlow = min( 0 , -nauxgr )
1052  IF ( imod.LT.nlow .OR. imod.GT.noutp ) THEN
1053  WRITE (ndse,1002) imod, nlow, noutp
1054  CALL extcde (2)
1055  END IF
1056  !
1057  IF ( outpts(imod)%OUT2%O2INIT ) THEN
1058  WRITE (ndse,1003)
1059  CALL extcde (3)
1060  END IF
1061  !
1062 #ifdef W3_T
1063  WRITE (ndst,9000) imod
1064 #endif
1065  !
1066  jgrid = igrid
1067  IF ( jgrid .NE. imod ) CALL w3setg ( imod, ndse, ndst )
1068  !
1069  ! -------------------------------------------------------------------- /
1070  ! 2. Allocate arrays
1071  !
1072  ALLOCATE ( outpts(imod)%OUT2%IPTINT(2,4,npt) , &
1073  outpts(imod)%OUT2%IL(npt) , &
1074  outpts(imod)%OUT2%IW(npt) , &
1075  outpts(imod)%OUT2%II(npt) , &
1076  outpts(imod)%OUT2%PTIFAC(4,npt) , &
1077  outpts(imod)%OUT2%PTNME(npt) , &
1078  outpts(imod)%OUT2%GRDID(npt) , &
1079  outpts(imod)%OUT2%DPO(npt) , &
1080  outpts(imod)%OUT2%WAO(npt) , &
1081  outpts(imod)%OUT2%ZET_SETO(npt) , &
1082  outpts(imod)%OUT2%WDO(npt) , &
1083  outpts(imod)%OUT2%ASO(npt) , &
1084 #ifdef W3_FLX5
1085  outpts(imod)%OUT2%TAUAO(npt) , &
1086  outpts(imod)%OUT2%TAUDO(npt) , &
1087  outpts(imod)%OUT2%DAIRO(npt) , &
1088 #endif
1089  outpts(imod)%OUT2%CAO(npt) , &
1090  outpts(imod)%OUT2%CDO(npt) , &
1091  outpts(imod)%OUT2%ICEO(npt) , &
1092  outpts(imod)%OUT2%ICEHO(npt) , &
1093  outpts(imod)%OUT2%ICEFO(npt) , &
1094  outpts(imod)%OUT2%SPCO(nspec,npt) , &
1095  outpts(imod)%OUT2%PTLOC(2,npt) , stat=istat )
1096  check_alloc_status( istat )
1097  !
1098  outpts(imod)%OUT2%O2INIT = .true.
1099  !
1100 #ifdef W3_T
1101  WRITE (ndst,9001)
1102 #endif
1103  !
1104  ! -------------------------------------------------------------------- /
1105  ! 3. Point to allocated arrays
1106  !
1107  CALL w3seto ( imod, ndse, ndst )
1108  !
1109 #ifdef W3_T
1110  WRITE (ndst,9002)
1111 #endif
1112  !
1113  ! -------------------------------------------------------------------- /
1114  ! 4. Update counters in grid
1115  !
1116  nopts = npt
1117  !
1118 #ifdef W3_T
1119  WRITE (ndst,9003)
1120 #endif
1121  !
1122  ! -------------------------------------------------------------------- /
1123  ! 5. Restore previous grid setting if necessary
1124  !
1125  IF ( jgrid .NE. imod ) CALL w3setg ( jgrid, ndse, ndst )
1126  !
1127  RETURN
1128  !
1129  ! Formats
1130  !
1131 1001 FORMAT (/' *** ERROR W3DMO2 : GRIDS NOT INITIALIZED *** '/ &
1132  ' RUN W3NMOD FIRST '/)
1133 1002 FORMAT (/' *** ERROR W3DMO2 : ILLEGAL MODEL NUMBER *** '/ &
1134  ' IMOD = ',i10/ &
1135  ' NLOW = ',i10/ &
1136  ' NOUTP = ',i10/)
1137 1003 FORMAT (/' *** ERROR W3DMO2 : ARRAY(S) ALREADY ALLOCATED *** ')
1138  !
1139 #ifdef W3_T
1140 9000 FORMAT (' TEST W3DMO2 : MODEL ',i4)
1141 9001 FORMAT (' TEST W3DMO2 : ARRAYS ALLOCATED')
1142 9002 FORMAT (' TEST W3DMO2 : POINTERS RESET')
1143 9003 FORMAT (' TEST W3DMO2 : DIMENSIONS STORED')
1144 #endif
1145  !/
1146  !/ End of W3DMO2 ----------------------------------------------------- /
1147  !/
1148  END SUBROUTINE w3dmo2
1149  !/ ------------------------------------------------------------------- /
1150  SUBROUTINE w3dmo3 ( IMOD, NDSE, NDST )
1151  !/
1152  !/ +-----------------------------------+
1153  !/ | WAVEWATCH III NOAA/NCEP |
1154  !/ | H. L. Tolman |
1155  !/ | FORTRAN 90 |
1156  !/ | Last update : 10-Dec-2014 !
1157  !/ +-----------------------------------+
1158  !/
1159  !/ 24-Nov-2004 : Origination. ( version 3.06 )
1160  !/ 10-Dec-2014 : Add checks for allocate status ( version 5.04 )
1161  !/
1162  ! 1. Purpose :
1163  !
1164  ! Initialize an individual data storage for track output.
1165  !
1166  ! 2. Method :
1167  !
1168  ! Allocate directly into the structure array. Note that
1169  ! this cannot be done through the pointer alias!
1170  !
1171  ! 3. Parameters :
1172  !
1173  ! Parameter list
1174  ! ----------------------------------------------------------------
1175  ! IMOD Int. I Model number to point to.
1176  ! NDSE Int. I Error output unit number.
1177  ! NDST Int. I Test output unit number.
1178  ! ----------------------------------------------------------------
1179  !
1180  ! 4. Subroutines used :
1181  !
1182  ! See module documentation below.
1183  !
1184  ! 5. Called by :
1185  !
1186  ! Name Type Module Description
1187  ! ----------------------------------------------------------------
1188  ! W3IOTR Subr. W3IOTRMD Track output module.
1189  ! ----------------------------------------------------------------
1190  !
1191  ! 6. Error messages :
1192  !
1193  ! - Check on input parameters.
1194  ! - Check on previous allocation.
1195  !
1196  ! 7. Remarks :
1197  !
1198  ! - W3SETO needs to be called after allocation to point to
1199  ! proper allocated arrays.
1200  !
1201  ! 8. Structure :
1202  !
1203  ! See source code.
1204  !
1205  ! 9. Switches :
1206  !
1207  ! !/SHRD, !/DIST, !/MPI
1208  ! Shared / distributed memory model
1209  !
1210  ! !/S Enable subroutine tracing.
1211  ! !/T Enable test output
1212  !
1213  ! 10. Source code :
1214  !
1215  !/ ------------------------------------------------------------------- /
1216  USE w3gdatmd, ONLY: w3setg, ngrids, igrid, nx, ny
1217  USE w3servmd, ONLY: extcde
1218 #ifdef W3_S
1219  USE w3servmd, ONLY: strace
1220 #endif
1221  !
1222  IMPLICIT NONE
1223  !/
1224  !/ ------------------------------------------------------------------- /
1225  !/ Parameter list
1226  !/
1227  INTEGER, INTENT(IN) :: IMOD, NDSE, NDST
1228  !/
1229  !/ ------------------------------------------------------------------- /
1230  !/ Local parameters
1231  !/
1232  INTEGER :: JGRID
1233 #ifdef W3_S
1234  INTEGER, SAVE :: IENT = 0
1235  CALL strace (ient, 'W3DMO3')
1236 #endif
1237  !
1238  ! -------------------------------------------------------------------- /
1239  ! 1. Test input and module status
1240  !
1241  IF ( ngrids .EQ. -1 ) THEN
1242  WRITE (ndse,1001)
1243  CALL extcde (1)
1244  END IF
1245  !
1246  IF ( imod.LT.1 .OR. imod.GT.noutp ) THEN
1247  WRITE (ndse,1002) imod, noutp
1248  CALL extcde (2)
1249  END IF
1250  !
1251  IF ( outpts(imod)%OUT3%O3INIT ) THEN
1252  WRITE (ndse,1003)
1253  CALL extcde (3)
1254  END IF
1255  !
1256 #ifdef W3_T
1257  WRITE (ndst,9000) imod
1258 #endif
1259  !
1260  jgrid = igrid
1261  IF ( jgrid .NE. imod ) CALL w3setg ( imod, ndse, ndst )
1262  !
1263  ! -------------------------------------------------------------------- /
1264  ! 2. Allocate arrays
1265  !
1266  ALLOCATE ( outpts(imod)%OUT3%MASK1(ny,nx) , &
1267  outpts(imod)%OUT3%MASK2(ny,nx) , &
1268  outpts(imod)%OUT3%TRCKID(ny,nx), stat=istat )
1269  check_alloc_status( istat )
1270  !
1271  outpts(imod)%OUT3%O3INIT = .true.
1272  !
1273 #ifdef W3_T
1274  WRITE (ndst,9001)
1275 #endif
1276  !
1277  ! -------------------------------------------------------------------- /
1278  ! 3. Point to allocated arrays
1279  !
1280  CALL w3seto ( imod, ndse, ndst )
1281  !
1282 #ifdef W3_T
1283  WRITE (ndst,9002)
1284 #endif
1285  !
1286  ! -------------------------------------------------------------------- /
1287  ! 4. Update counters in grid
1288  !
1289 #ifdef W3_T
1290  WRITE (ndst,9003)
1291 #endif
1292  !
1293  ! -------------------------------------------------------------------- /
1294  ! 5. Restore previous grid setting if necessary
1295  !
1296  IF ( jgrid .NE. imod ) CALL w3setg ( jgrid, ndse, ndst )
1297  !
1298  RETURN
1299  !
1300  ! Formats
1301  !
1302 1001 FORMAT (/' *** ERROR W3DMO3 : GRIDS NOT INITIALIZED *** '/ &
1303  ' RUN W3NMOD FIRST '/)
1304 1002 FORMAT (/' *** ERROR W3DMO3 : ILLEGAL MODEL NUMBER *** '/ &
1305  ' IMOD = ',i10/ &
1306  ' NOUTP = ',i10/)
1307 1003 FORMAT (/' *** ERROR W3DMO3 : ARRAY(S) ALREADY ALLOCATED *** ')
1308  !
1309 #ifdef W3_T
1310 9000 FORMAT (' TEST W3DMO3 : MODEL ',i4)
1311 9001 FORMAT (' TEST W3DMO3 : ARRAYS ALLOCATED')
1312 9002 FORMAT (' TEST W3DMO3 : POINTERS RESET')
1313 9003 FORMAT (' TEST W3DMO3 : DIMENSIONS STORED')
1314 #endif
1315  !/
1316  !/ End of W3DMO3 ----------------------------------------------------- /
1317  !/
1318  END SUBROUTINE w3dmo3
1319  !/ ------------------------------------------------------------------- /
1320  SUBROUTINE w3dmo5 ( IMOD, NDSE, NDST, IBLOCK )
1321  !/
1322  !/ +-----------------------------------+
1323  !/ | WAVEWATCH III NOAA/NCEP |
1324  !/ | H. L. Tolman |
1325  !/ | FORTRAN 90 |
1326  !/ | Last update : 10-Dec-2014 !
1327  !/ +-----------------------------------+
1328  !/
1329  !/ 13-Dec-2004 : Origination. ( version 3.06 )
1330  !/ 06-Sep-2005 : Second storage for input bound. sp. ( version 3.08 )
1331  !/ 10-Dec-2014 : Add checks for allocate status ( version 5.04 )
1332  !/
1333  ! 1. Purpose :
1334  !
1335  ! Initialize an individual data storage for boundary data.
1336  !
1337  ! 2. Method :
1338  !
1339  ! Allocate directly into the structure array. Note that
1340  ! this cannot be done through the pointer alias!
1341  !
1342  ! 3. Parameters :
1343  !
1344  ! Parameter list
1345  ! ----------------------------------------------------------------
1346  ! IMOD Int. I Model number to point to.
1347  ! NDSE Int. I Error output unit number.
1348  ! NDST Int. I Test output unit number.
1349  ! IBLOCK Int. I Select block to allocate.
1350  ! ----------------------------------------------------------------
1351  !
1352  ! 4. Subroutines used :
1353  !
1354  ! See module documentation below.
1355  !
1356  ! 5. Called by :
1357  !
1358  ! Name Type Module Description
1359  ! ----------------------------------------------------------------
1360  ! W3IOBC Subr. W3IOBCMD Boundary data output module.
1361  ! W3IOGR Subr. W3IOGRMD Grid data output module.
1362  ! W3WAVE Subr. W3WAVEMD Actual wave model routine.
1363  ! WW3_GRID Prog. N/A Grid preprocessing program.
1364  ! ----------------------------------------------------------------
1365  !
1366  ! 6. Error messages :
1367  !
1368  ! - Check on input parameters.
1369  ! - Check on previous allocation.
1370  !
1371  ! 7. Remarks :
1372  !
1373  ! 8. Structure :
1374  !
1375  ! See source code.
1376  !
1377  ! 9. Switches :
1378  !
1379  ! !/S Enable subroutine tracing.
1380  ! !/T Enable test output
1381  !
1382  ! 10. Source code :
1383  !
1384  !/ ------------------------------------------------------------------- /
1385  USE w3gdatmd, ONLY: w3setg, ngrids, igrid, nx, ny, nspec
1386  USE w3servmd, ONLY: extcde
1387 #ifdef W3_S
1388  USE w3servmd, ONLY: strace
1389 #endif
1390  !
1391  IMPLICIT NONE
1392  !/
1393  !/ ------------------------------------------------------------------- /
1394  !/ Parameter list
1395  !/
1396  INTEGER, INTENT(IN) :: IMOD, NDSE, NDST, IBLOCK
1397  !/
1398  !/ ------------------------------------------------------------------- /
1399  !/ Local parameters
1400  !/
1401  INTEGER :: JGRID
1402 #ifdef W3_S
1403  INTEGER, SAVE :: IENT = 0
1404  CALL strace (ient, 'W3DMO5')
1405 #endif
1406  !
1407  ! -------------------------------------------------------------------- /
1408  ! 1. Test input and module status
1409  !
1410  IF ( ngrids .EQ. -1 ) THEN
1411  WRITE (ndse,1001)
1412  CALL extcde (1)
1413  END IF
1414  !
1415  IF ( imod.LT.1 .OR. imod.GT.noutp ) THEN
1416  WRITE (ndse,1002) imod, noutp
1417  CALL extcde (2)
1418  END IF
1419  !
1420 #ifdef W3_T
1421  WRITE (ndst,9000) imod, iblock
1422 #endif
1423  !
1424  ! -------------------------------------------------------------------- /
1425  ! 2. Allocate arrays and reset pointers
1426  !
1427  SELECT CASE (iblock)
1428  !
1429  CASE (1)
1430  !
1431  ALLOCATE ( outpts(imod)%OUT5%IPBPI(nbi,4), &
1432  outpts(imod)%OUT5%ISBPI(nbi) , &
1433  outpts(imod)%OUT5%XBPI(nbi) , &
1434  outpts(imod)%OUT5%YBPI(nbi) , &
1435  outpts(imod)%OUT5%RDBPI(nbi,4), stat=istat )
1436  check_alloc_status( istat )
1437  !
1438  ipbpi => outpts(imod)%OUT5%IPBPI
1439  isbpi => outpts(imod)%OUT5%ISBPI
1440  xbpi => outpts(imod)%OUT5%XBPI
1441  ybpi => outpts(imod)%OUT5%YBPI
1442  rdbpi => outpts(imod)%OUT5%RDBPI
1443  !
1444  outpts(imod)%OUT5%O5INI1 = .true.
1445  !
1446  CASE (2)
1447  !
1448  ALLOCATE ( outpts(imod)%OUT5%IPBPO(nbo(nfbpo),4), &
1449  outpts(imod)%OUT5%ISBPO(4*nbo(nfbpo)), &
1450  outpts(imod)%OUT5%XBPO(nbo(nfbpo)) , &
1451  outpts(imod)%OUT5%YBPO(nbo(nfbpo)) , &
1452  outpts(imod)%OUT5%RDBPO(nbo(nfbpo),4), stat=istat )
1453  check_alloc_status( istat )
1454  !
1455  ipbpo => outpts(imod)%OUT5%IPBPO
1456  isbpo => outpts(imod)%OUT5%ISBPO
1457  xbpo => outpts(imod)%OUT5%XBPO
1458  ybpo => outpts(imod)%OUT5%YBPO
1459  rdbpo => outpts(imod)%OUT5%RDBPO
1460  !
1461  outpts(imod)%OUT5%O5INI2 = .true.
1462  outpts(imod)%OUT5%ISBPO = 0
1463  !
1464  CASE (3)
1465  !
1466  ALLOCATE ( outpts(imod)%OUT5%ABPI0(nspec,0:nbi2), &
1467  outpts(imod)%OUT5%ABPIN(nspec,0:nbi2), &
1468  outpts(imod)%OUT5%BBPI0(nspec,0:nbi), &
1469  outpts(imod)%OUT5%BBPIN(nspec,0:nbi), stat=istat )
1470  check_alloc_status( istat )
1471  !
1472  abpi0 => outpts(imod)%OUT5%ABPI0
1473  abpin => outpts(imod)%OUT5%ABPIN
1474  bbpi0 => outpts(imod)%OUT5%BBPI0
1475  bbpin => outpts(imod)%OUT5%BBPIN
1476  bbpi0 = -1.
1477  !
1478  outpts(imod)%OUT5%O5INI3 = .true.
1479  !
1480  CASE (4)
1481  !
1482  ALLOCATE ( outpts(imod)%OUT5%ABPOS(nspec,0:nbo2(nfbpo)), stat=istat )
1483  check_alloc_status( istat )
1484  !
1485  abpos => outpts(imod)%OUT5%ABPOS
1486  !
1487  outpts(imod)%OUT5%O5INI4 = .true.
1488  !
1489  CASE DEFAULT
1490  WRITE (ndse,1010)
1491  CALL extcde (10)
1492  !
1493  END SELECT
1494  !
1495 #ifdef W3_T
1496  WRITE (ndst,9001)
1497 #endif
1498  !
1499  ! -------------------------------------------------------------------- /
1500  !
1501  RETURN
1502  !
1503  ! Formats
1504  !
1505 1001 FORMAT (/' *** ERROR W3DMO5 : GRIDS NOT INITIALIZED *** '/ &
1506  ' RUN W3NMOD FIRST '/)
1507 1002 FORMAT (/' *** ERROR W3DMO5 : ILLEGAL MODEL NUMBER *** '/ &
1508  ' IMOD = ',i10/ &
1509  ' NOUTP = ',i10/)
1510 1010 FORMAT (/' *** ERROR W3DMO5 : ILLEGAL BLOCK NUMBER *** '/ &
1511  ' IBLOCK = ',i10/)
1512  !
1513 #ifdef W3_T
1514 9000 FORMAT (' TEST W3DMO5 : MODEL AND BLOCK ',2i4)
1515 9001 FORMAT (' TEST W3DMO5 : ARRAYS ALLOCATED')
1516 #endif
1517  !/
1518  !/ End of W3DMO5 ----------------------------------------------------- /
1519  !/
1520  END SUBROUTINE w3dmo5
1521  !/ ------------------------------------------------------------------- /
1522  SUBROUTINE w3seto ( IMOD, NDSERR, NDSTST )
1523  !/
1524  !/ +-----------------------------------+
1525  !/ | WAVEWATCH III NOAA/NCEP |
1526  !/ | H. L. Tolman |
1527  !/ | FORTRAN 90 |
1528  !/ | Last update : 25-Sep-2020 |
1529  !/ +-----------------------------------+
1530  !/
1531  !/ 13-Dec-2004 : Origination. ( version 3.06 )
1532  !/ 06-Sep-2005 : Second storage for input bound. sp. ( version 3.08 )
1533  !/ 24-Jul-2006 : Adding unified point output storage.( version 3.10 )
1534  !/ 25-Jul-2006 : Originating grid ID for points. ( version 3.10 )
1535  !/ 04-Oct-2006 : Add filter to array pointers. ( version 3.10 )
1536  !/ 30-Oct-2006 : Add pars for partitioning. ( version 3.10 )
1537  !/ 26-Mar-2007 : Add pars for partitioning. ( version 3.11 )
1538  !/ 17-May-2007 : Adding NTPROC/NAPROC separation. ( version 3.11 )
1539  !/ 27-Jul-2010 : Add NKI, NTHI, XFRI, FR1I, TH1I. ( version 3.14.3 )
1540  !/ 19-Dec-2012 : Move NOSWLL to data structure. ( version 4.11 )
1541  !/ 12-Dec-2014 : Modify instanciation of NRQTR ( version 5.04 )
1542  !/ 25-Sep-2020 : Flags for coupling restart ( version 7.10 )
1543  !/
1544  ! 1. Purpose :
1545  !
1546  ! Select one of the WAVEWATCH III grids / models.
1547  !
1548  ! 2. Method :
1549  !
1550  ! Point pointers to the proper variables in the proper element of
1551  ! the GRIDS array.
1552  !
1553  ! 3. Parameters :
1554  !
1555  ! Parameter list
1556  ! ----------------------------------------------------------------
1557  ! IMOD Int. I Model number to point to.
1558  ! NDSERR Int. I Error output unit number.
1559  ! NDSTST Int. I Test output unit number.
1560  ! ----------------------------------------------------------------
1561  !
1562  ! 4. Subroutines used :
1563  !
1564  ! See module documentation below.
1565  !
1566  ! 5. Called by :
1567  !
1568  ! Many subroutines in the WAVEWATCH system.
1569  !
1570  ! 6. Error messages :
1571  !
1572  ! Checks on parameter list IMOD.
1573  !
1574  ! 7. Remarks :
1575  !
1576  ! 8. Structure :
1577  !
1578  ! 9. Switches :
1579  !
1580  ! !/MPI MPI specific calls.
1581  ! !/S Enable subroutine tracing.
1582  ! !/T Enable test output
1583  !
1584  ! 10. Source code :
1585  !
1586  !/ ------------------------------------------------------------------- /
1587  USE w3gdatmd, ONLY: nauxgr
1588  USE w3servmd, ONLY: extcde
1589 #ifdef W3_S
1590  USE w3servmd, ONLY: strace
1591 #endif
1592  !
1593  IMPLICIT NONE
1594  !
1595  !/
1596  !/ ------------------------------------------------------------------- /
1597  !/ Parameter list
1598  !/
1599  INTEGER, INTENT(IN) :: IMOD, NDSERR, NDSTST
1600  !/
1601  !/ ------------------------------------------------------------------- /
1602  !/ Local parameters
1603  !/
1604  INTEGER :: NLOW
1605  INTEGER :: J
1606 #ifdef W3_S
1607  INTEGER, SAVE :: IENT = 0
1608  CALL strace (ient, 'W3SETO')
1609 #endif
1610  !
1611  ! -------------------------------------------------------------------- /
1612  ! 1. Test input and module status
1613  !
1614  IF ( noutp .EQ. -1 ) THEN
1615  WRITE (ndserr,1001)
1616  CALL extcde (1)
1617  END IF
1618  !
1619  nlow = min( 0 , -nauxgr )
1620  IF ( imod.LT.nlow .OR. imod.GT.noutp ) THEN
1621  WRITE (ndserr,1002) imod, nlow, noutp
1622  CALL extcde (2)
1623  END IF
1624  !
1625 #ifdef W3_T
1626  WRITE (ndstst,9000) imod
1627 #endif
1628  !
1629  ! -------------------------------------------------------------------- /
1630  ! 2. Set model number
1631  !
1632  ioutp = imod
1633  !
1634  ! -------------------------------------------------------------------- /
1635  ! 3. Set pointers in structure OUTPUT
1636  !
1637  ndso => outpts(imod)%NDSO
1638  ndse => outpts(imod)%NDSE
1639  ndst => outpts(imod)%NDST
1640  screen => outpts(imod)%SCREEN
1641  !
1642  ntproc => outpts(imod)%NTPROC
1643  naproc => outpts(imod)%NAPROC
1644  iaproc => outpts(imod)%IAPROC
1645  naplog => outpts(imod)%NAPLOG
1646  napout => outpts(imod)%NAPOUT
1647  naperr => outpts(imod)%NAPERR
1648  napfld => outpts(imod)%NAPFLD
1649  nappnt => outpts(imod)%NAPPNT
1650  naptrk => outpts(imod)%NAPTRK
1651  naprst => outpts(imod)%NAPRST
1652  napbpt => outpts(imod)%NAPBPT
1653  napprt => outpts(imod)%NAPPRT
1654  !
1655  noswll => outpts(imod)%NOSWLL
1656  !
1657 #ifdef W3_NL5
1658  tosnl5 => outpts(imod)%TOSNL5
1659 #endif
1660  tofrst => outpts(imod)%TOFRST
1661  tonext => outpts(imod)%TONEXT
1662  tolast => outpts(imod)%TOLAST
1663  tbpi0 => outpts(imod)%TBPI0
1664  tbpin => outpts(imod)%TBPIN
1665  nds => outpts(imod)%NDS
1666  ofiles => outpts(imod)%OFILES
1667  !
1668  dtout => outpts(imod)%DTOUT
1669  flout => outpts(imod)%FLOUT
1670  !
1671  ipass1 => outpts(imod)%OUT1%IPASS1
1672  write1 => outpts(imod)%OUT1%WRITE1
1673 #ifdef W3_MPI
1674  nrqgo => outpts(imod)%OUT1%NRQGO
1675  nrqgo2 => outpts(imod)%OUT1%NRQGO2
1676  IF ( nrqgo .NE. 0 ) irqgo => outpts(imod)%OUT1%IRQGO
1677  IF ( nrqgo2 .NE. 0 ) irqgo2 => outpts(imod)%OUT1%IRQGO2
1678 #endif
1679  flogrd => outpts(imod)%OUT1%FLOGRD
1680  flogr2 => outpts(imod)%OUT1%FLOGR2
1681  flogrr => outpts(imod)%OUT1%FLOGRR
1682  flogd => outpts(imod)%OUT1%FLOGD
1683  flog2 => outpts(imod)%OUT1%FLOG2
1684  flogr => outpts(imod)%OUT1%FLOGR
1685  !
1686  ipass2 => outpts(imod)%OUT2%IPASS2
1687  nopts => outpts(imod)%OUT2%NOPTS
1688 #ifdef W3_MPI
1689  nrqpo => outpts(imod)%OUT2%NRQPO
1690  nrqpo2 => outpts(imod)%OUT2%NRQPO2
1691 #endif
1692  o2init => outpts(imod)%OUT2%O2INIT
1693 #ifdef W3_MPI
1694  o2irqi => outpts(imod)%OUT2%O2IRQI
1695 #endif
1696  !
1697  IF ( o2init ) THEN
1698  iptint => outpts(imod)%OUT2%IPTINT
1699  il => outpts(imod)%OUT2%IL
1700  iw => outpts(imod)%OUT2%IW
1701  ii => outpts(imod)%OUT2%II
1702  ptloc => outpts(imod)%OUT2%PTLOC
1703  ptifac => outpts(imod)%OUT2%PTIFAC
1704  dpo => outpts(imod)%OUT2%DPO
1705  wao => outpts(imod)%OUT2%WAO
1706  zet_seto => outpts(imod)%OUT2%ZET_SETO
1707  wdo => outpts(imod)%OUT2%WDO
1708  aso => outpts(imod)%OUT2%ASO
1709 #ifdef W3_FLX5
1710  tauao => outpts(imod)%OUT2%TAUAO
1711  taudo => outpts(imod)%OUT2%TAUDO
1712  dairo => outpts(imod)%OUT2%DAIRO
1713 #endif
1714  cao => outpts(imod)%OUT2%CAO
1715  cdo => outpts(imod)%OUT2%CDO
1716  iceo => outpts(imod)%OUT2%ICEO
1717  iceho => outpts(imod)%OUT2%ICEHO
1718  icefo => outpts(imod)%OUT2%ICEFO
1719  spco => outpts(imod)%OUT2%SPCO
1720  ptnme => outpts(imod)%OUT2%PTNME
1721  grdid => outpts(imod)%OUT2%GRDID
1722  END IF
1723  !
1724 #ifdef W3_MPI
1725  IF ( o2irqi ) THEN
1726  irqpo1 => outpts(imod)%OUT2%IRQPO1
1727  irqpo2 => outpts(imod)%OUT2%IRQPO2
1728  END IF
1729 #endif
1730  !
1731  ipass3 => outpts(imod)%OUT3%IPASS3
1732 #ifdef W3_MPI
1733  it0pnt => outpts(imod)%OUT3%IT0PNT
1734  it0trk => outpts(imod)%OUT3%IT0TRK
1735  it0prt => outpts(imod)%OUT3%IT0PRT
1736  nrqtr => outpts(imod)%OUT3%NRQTR
1737  IF ( nrqtr .NE. 0 ) irqtr => outpts(imod)%OUT3%IRQTR
1738 #endif
1739  o3init => outpts(imod)%OUT3%O3INIT
1740  stop => outpts(imod)%OUT3%STOP
1741  !
1742  IF ( o3init ) THEN
1743  mask1 => outpts(imod)%OUT3%MASK1
1744  mask2 => outpts(imod)%OUT3%MASK2
1745  trckid => outpts(imod)%OUT3%TRCKID
1746  END IF
1747  !
1748  ifile4 => outpts(imod)%OUT4%IFILE4
1749 #ifdef W3_MPI
1750  nrqrs => outpts(imod)%OUT4%NRQRS
1751  nblkrs => outpts(imod)%OUT4%NBLKRS
1752  rsblks => outpts(imod)%OUT4%RSBLKS
1753  IF ( nrqrs .NE. 0 ) THEN
1754  irqrs => outpts(imod)%OUT4%IRQRS
1755  END IF
1756  irqrss => outpts(imod)%OUT4%IRQRSS
1757  vaaux => outpts(imod)%OUT4%VAAUX
1758 #endif
1759  !
1760  nbi => outpts(imod)%OUT5%NBI
1761  nbi2 => outpts(imod)%OUT5%NBI2
1762  nfbpo => outpts(imod)%OUT5%NFBPO
1763 #ifdef W3_MPI
1764  nrqbp => outpts(imod)%OUT5%NRQBP
1765  nrqbp2 => outpts(imod)%OUT5%NRQBP2
1766 #endif
1767  nbo => outpts(imod)%OUT5%NBO
1768  nbo2 => outpts(imod)%OUT5%NBO2
1769  ndsl => outpts(imod)%OUT5%NDSL
1770  nki => outpts(imod)%OUT5%NKI
1771  nthi => outpts(imod)%OUT5%NTHI
1772  xfri => outpts(imod)%OUT5%XFRI
1773  fr1i => outpts(imod)%OUT5%FR1I
1774  th1i => outpts(imod)%OUT5%TH1I
1775  flbpi => outpts(imod)%OUT5%FLBPI
1776  flbpo => outpts(imod)%OUT5%FLBPO
1777  filer => outpts(imod)%OUT5%FILER
1778  filew => outpts(imod)%OUT5%FILEW
1779  filed => outpts(imod)%OUT5%FILED
1780  spconv => outpts(imod)%OUT5%SPCONV
1781  o5ini1 => outpts(imod)%OUT5%O5INI1
1782  o5ini2 => outpts(imod)%OUT5%O5INI2
1783  o5ini3 => outpts(imod)%OUT5%O5INI3
1784  o5ini4 => outpts(imod)%OUT5%O5INI4
1785  !
1786  IF ( o5ini1 ) THEN
1787  ipbpi => outpts(imod)%OUT5%IPBPI
1788  isbpi => outpts(imod)%OUT5%ISBPI
1789  xbpi => outpts(imod)%OUT5%XBPI
1790  ybpi => outpts(imod)%OUT5%YBPI
1791  rdbpi => outpts(imod)%OUT5%RDBPI
1792  END IF
1793  !
1794  IF ( o5ini2 ) THEN
1795  ipbpo => outpts(imod)%OUT5%IPBPO
1796  isbpo => outpts(imod)%OUT5%ISBPO
1797  xbpo => outpts(imod)%OUT5%XBPO
1798  ybpo => outpts(imod)%OUT5%YBPO
1799  rdbpo => outpts(imod)%OUT5%RDBPO
1800  END IF
1801  !
1802  IF ( o5ini3 ) THEN
1803  abpi0 => outpts(imod)%OUT5%ABPI0
1804  abpin => outpts(imod)%OUT5%ABPIN
1805  bbpi0 => outpts(imod)%OUT5%BBPI0
1806  bbpin => outpts(imod)%OUT5%BBPIN
1807  END IF
1808  !
1809  IF ( o5ini4 ) THEN
1810  abpos => outpts(imod)%OUT5%ABPOS
1811  END IF
1812  !
1813 #ifdef W3_MPI
1814  IF ( nrqbp .NE. 0 ) irqbp1 => outpts(imod)%OUT5%IRQBP1
1815  IF ( nrqbp2 .NE. 0 ) irqbp2 => outpts(imod)%OUT5%IRQBP2
1816 #endif
1817  !
1818  ipass6 => outpts(imod)%OUT6%IPASS6
1819  ihmax => outpts(imod)%OUT6%IHMAX
1820  hspmin => outpts(imod)%OUT6%HSPMIN
1821  wsmult => outpts(imod)%OUT6%WSMULT
1822  wscut => outpts(imod)%OUT6%WSCUT
1823  ix0 => outpts(imod)%OUT6%IX0
1824  ixn => outpts(imod)%OUT6%IXN
1825  ixs => outpts(imod)%OUT6%IXS
1826  iy0 => outpts(imod)%OUT6%IY0
1827  iyn => outpts(imod)%OUT6%IYN
1828  iys => outpts(imod)%OUT6%IYS
1829  icprt => outpts(imod)%OUT6%ICPRT
1830  dtprt => outpts(imod)%OUT6%DTPRT
1831  flcomb => outpts(imod)%OUT6%FLCOMB
1832  ptmeth => outpts(imod)%OUT6%PTMETH
1833  ptfcut => outpts(imod)%OUT6%PTFCUT
1834  flform => outpts(imod)%OUT6%FLFORM
1835  o6init => outpts(imod)%OUT6%O6INIT
1836  !
1837  RETURN
1838  !
1839  ! Formats
1840  !
1841 1001 FORMAT (/' *** ERROR W3SETO : GRIDS NOT INITIALIZED *** '/ &
1842  ' RUN W3NMOD FIRST '/)
1843 1002 FORMAT (/' *** ERROR W3SETO : ILLEGAL MODEL NUMBER *** '/ &
1844  ' IMOD = ',i10/ &
1845  ' NLOW = ',i10/ &
1846  ' NOUTP = ',i10/)
1847  !
1848 #ifdef W3_T
1849 9000 FORMAT (' TEST W3SETO : MODEL ',i4,' SELECTED')
1850 #endif
1851  !/
1852  !/ End of W3SETO ----------------------------------------------------- /
1853  !/
1854  END SUBROUTINE w3seto
1855  !/
1856  !/ End of module W3ODATMD -------------------------------------------- /
1857  !/
1858 END MODULE w3odatmd
w3odatmd::nrqbp2
integer, pointer nrqbp2
Definition: w3odatmd.F90:533
w3odatmd::nbo
integer, dimension(:), pointer nbo
Definition: w3odatmd.F90:531
w3odatmd::iostyp
integer iostyp
Definition: w3odatmd.F90:321
w3odatmd::w3dmo3
subroutine w3dmo3(IMOD, NDSE, NDST)
Definition: w3odatmd.F90:1151
w3odatmd::tbpi0
integer, dimension(:), pointer tbpi0
Definition: w3odatmd.F90:464
w3odatmd::flbpo
logical, pointer flbpo
Definition: w3odatmd.F90:546
w3odatmd::otype3
Definition: w3odatmd.F90:377
w3odatmd::nrqpo
integer, pointer nrqpo
Definition: w3odatmd.F90:486
w3odatmd::o5ini1
logical, pointer o5ini1
Definition: w3odatmd.F90:545
w3odatmd::iptint
integer, dimension(:,:,:), pointer iptint
Definition: w3odatmd.F90:488
w3odatmd::nrqgo2
integer, pointer nrqgo2
Definition: w3odatmd.F90:475
w3odatmd::upproc
logical upproc
Definition: w3odatmd.F90:333
w3odatmd::nki
integer, pointer nki
Definition: w3odatmd.F90:530
w3odatmd::tosnl5
integer, dimension(:), pointer tosnl5
Definition: w3odatmd.F90:462
w3odatmd::iw
integer, dimension(:), pointer iw
Definition: w3odatmd.F90:488
w3odatmd::notype
integer notype
Definition: w3odatmd.F90:327
w3odatmd::spconv
logical, pointer spconv
Definition: w3odatmd.F90:546
w3gdatmd::nspec
integer, pointer nspec
Definition: w3gdatmd.F90:1230
w3odatmd::th1i
real, pointer th1i
Definition: w3odatmd.F90:540
w3odatmd::trckid
character(len=32), dimension(:,:), pointer trckid
Definition: w3odatmd.F90:517
w3odatmd::o2irqi
logical, pointer o2irqi
Definition: w3odatmd.F90:505
w3odatmd::o5ini2
logical, pointer o5ini2
Definition: w3odatmd.F90:545
w3odatmd::ipbpo
integer, dimension(:,:), pointer ipbpo
Definition: w3odatmd.F90:535
w3odatmd::dtprt
real, dimension(:,:), pointer dtprt
Definition: w3odatmd.F90:553
w3odatmd::iy0
integer, pointer iy0
Definition: w3odatmd.F90:551
w3odatmd::o6init
logical, pointer o6init
Definition: w3odatmd.F90:554
w3odatmd::nopts
integer, pointer nopts
Definition: w3odatmd.F90:484
w3odatmd::irqpo2
integer, dimension(:), pointer irqpo2
Definition: w3odatmd.F90:490
w3odatmd::flogd
logical, dimension(:), pointer flogd
Definition: w3odatmd.F90:478
w3odatmd::flogr2
logical, dimension(:,:), pointer flogr2
Definition: w3odatmd.F90:478
w3odatmd::w3_flx5
real, pointer w3_flx5
Definition: w3odatmd.F90:492
w3odatmd::ntproc
integer, pointer ntproc
Definition: w3odatmd.F90:457
w3odatmd::dtout
real, dimension(:), pointer dtout
Definition: w3odatmd.F90:467
w3odatmd::ipass6
integer, pointer ipass6
Definition: w3odatmd.F90:551
w3odatmd::ptmeth
integer, pointer ptmeth
Definition: w3odatmd.F90:555
w3odatmd::iaproc
integer, pointer iaproc
Definition: w3odatmd.F90:457
w3odatmd::ngrpp
integer, parameter ngrpp
Definition: w3odatmd.F90:324
w3odatmd::ii
integer, dimension(:), pointer ii
Definition: w3odatmd.F90:488
w3odatmd::w3dmo2
subroutine w3dmo2(IMOD, NDSE, NDST, NPT)
Definition: w3odatmd.F90:952
w3odatmd::grdid
character(len=13), dimension(:), pointer grdid
Definition: w3odatmd.F90:502
w3odatmd::otype6
Definition: w3odatmd.F90:418
w3odatmd::irqpo1
integer, dimension(:), pointer irqpo1
Definition: w3odatmd.F90:490
w3odatmd::flform
logical, pointer flform
Definition: w3odatmd.F90:554
w3odatmd::ifile4
integer, pointer ifile4
Definition: w3odatmd.F90:521
w3odatmd::bbpi0
real, dimension(:,:), pointer bbpi0
Definition: w3odatmd.F90:541
w3odatmd::unipts
logical unipts
Definition: w3odatmd.F90:333
w3odatmd::ybpi
real, dimension(:), pointer ybpi
Definition: w3odatmd.F90:541
w3gdatmd::ny
integer, pointer ny
Definition: w3gdatmd.F90:1097
w3odatmd::abpin
real, dimension(:,:), pointer abpin
Definition: w3odatmd.F90:541
w3odatmd::tbpin
integer, dimension(:), pointer tbpin
Definition: w3odatmd.F90:464
w3odatmd::fnmpre
character(len=80) fnmpre
Definition: w3odatmd.F90:330
w3odatmd::ioutp
integer ioutp
Definition: w3odatmd.F90:321
w3odatmd::ofiles
integer, dimension(:), pointer ofiles
Definition: w3odatmd.F90:466
w3odatmd::dpo
real, dimension(:), pointer dpo
Definition: w3odatmd.F90:492
w3odatmd::isbpo
integer, dimension(:), pointer isbpo
Definition: w3odatmd.F90:535
w3odatmd::zet_seto
real, dimension(:), pointer zet_seto
Definition: w3odatmd.F90:499
w3odatmd::nbi
integer, pointer nbi
Definition: w3odatmd.F90:530
w3odatmd::flbpi
logical, pointer flbpi
Definition: w3odatmd.F90:546
w3odatmd::iyn
integer, pointer iyn
Definition: w3odatmd.F90:551
w3odatmd::wdo
real, dimension(:), pointer wdo
Definition: w3odatmd.F90:492
w3odatmd::o2init
logical, pointer o2init
Definition: w3odatmd.F90:503
w3odatmd::napbpt
integer, pointer napbpt
Definition: w3odatmd.F90:457
w3gdatmd::w3setg
subroutine w3setg(IMOD, NDSE, NDST)
Definition: w3gdatmd.F90:2152
w3odatmd::ipass2
integer, pointer ipass2
Definition: w3odatmd.F90:484
w3odatmd::otype2
Definition: w3odatmd.F90:351
w3odatmd::ndse
integer, pointer ndse
Definition: w3odatmd.F90:456
w3odatmd::iys
integer, pointer iys
Definition: w3odatmd.F90:551
w3odatmd::ptloc
real, dimension(:,:), pointer ptloc
Definition: w3odatmd.F90:492
w3odatmd::abpos
real, dimension(:,:), pointer abpos
Definition: w3odatmd.F90:541
w3odatmd::nbi2
integer, pointer nbi2
Definition: w3odatmd.F90:530
w3odatmd::tonext
integer, dimension(:,:), pointer tonext
Definition: w3odatmd.F90:464
w3odatmd::naperr
integer, pointer naperr
Definition: w3odatmd.F90:457
w3odatmd::stop
logical, pointer stop
Definition: w3odatmd.F90:515
w3odatmd::nblkrs
integer, pointer nblkrs
Definition: w3odatmd.F90:523
w3odatmd::filew
logical, pointer filew
Definition: w3odatmd.F90:546
w3odatmd::w3dmo5
subroutine w3dmo5(IMOD, NDSE, NDST, IBLOCK)
Definition: w3odatmd.F90:1321
w3odatmd::flogrr
logical, dimension(:,:), pointer flogrr
Definition: w3odatmd.F90:478
w3odatmd::output
Definition: w3odatmd.F90:429
w3odatmd::otype5
Definition: w3odatmd.F90:397
w3servmd
Definition: w3servmd.F90:3
w3odatmd::flogrd
logical, dimension(:,:), pointer flogrd
Definition: w3odatmd.F90:478
w3odatmd::naplog
integer, pointer naplog
Definition: w3odatmd.F90:457
w3odatmd::nrqpo2
integer, pointer nrqpo2
Definition: w3odatmd.F90:486
w3odatmd::nbo2
integer, dimension(:), pointer nbo2
Definition: w3odatmd.F90:531
w3odatmd::flcomb
logical, pointer flcomb
Definition: w3odatmd.F90:554
w3odatmd::ipbpi
integer, dimension(:,:), pointer ipbpi
Definition: w3odatmd.F90:535
w3odatmd::wao
real, dimension(:), pointer wao
Definition: w3odatmd.F90:492
w3odatmd::noge
integer, dimension(nogrp) noge
Definition: w3odatmd.F90:326
w3odatmd::irqbp1
integer, dimension(:), pointer irqbp1
Definition: w3odatmd.F90:538
w3odatmd::w3seto
subroutine w3seto(IMOD, NDSERR, NDSTST)
Definition: w3odatmd.F90:1523
w3odatmd::hspmin
real, pointer hspmin
Definition: w3odatmd.F90:553
w3odatmd::vaaux
real, dimension(:,:,:), pointer vaaux
Definition: w3odatmd.F90:525
w3odatmd::it0prt
integer, pointer it0prt
Definition: w3odatmd.F90:512
w3odatmd
Definition: w3odatmd.F90:3
w3odatmd::rsblks
integer, pointer rsblks
Definition: w3odatmd.F90:523
w3odatmd::irqgo2
integer, dimension(:), pointer irqgo2
Definition: w3odatmd.F90:476
w3odatmd::nds
integer, dimension(:), pointer nds
Definition: w3odatmd.F90:464
w3odatmd::fr1i
real, pointer fr1i
Definition: w3odatmd.F90:540
w3odatmd::screen
integer, pointer screen
Definition: w3odatmd.F90:456
w3odatmd::tolast
integer, dimension(:,:), pointer tolast
Definition: w3odatmd.F90:464
w3odatmd::write1
logical, pointer write1
Definition: w3odatmd.F90:478
w3odatmd::nfbpo
integer, pointer nfbpo
Definition: w3odatmd.F90:530
w3odatmd::naproc
integer, pointer naproc
Definition: w3odatmd.F90:457
w3odatmd::otype1
Definition: w3odatmd.F90:339
w3gdatmd::igrid
integer igrid
Definition: w3gdatmd.F90:618
w3odatmd::irqtr
integer, dimension(:), pointer irqtr
Definition: w3odatmd.F90:513
w3odatmd::irqbp2
integer, dimension(:), pointer irqbp2
Definition: w3odatmd.F90:538
w3odatmd::xbpi
real, dimension(:), pointer xbpi
Definition: w3odatmd.F90:541
w3odatmd::xfri
real, pointer xfri
Definition: w3odatmd.F90:540
w3odatmd::o5ini3
logical, pointer o5ini3
Definition: w3odatmd.F90:545
w3odatmd::nrqrs
integer, pointer nrqrs
Definition: w3odatmd.F90:523
w3odatmd::ipass1
integer, pointer ipass1
Definition: w3odatmd.F90:473
w3odatmd::wsmult
real, pointer wsmult
Definition: w3odatmd.F90:553
w3odatmd::ptnme
character(len=40), dimension(:), pointer ptnme
Definition: w3odatmd.F90:501
w3odatmd::napprt
integer, pointer napprt
Definition: w3odatmd.F90:457
w3odatmd::ixs
integer, pointer ixs
Definition: w3odatmd.F90:551
w3odatmd::irqrs
integer, dimension(:), pointer irqrs
Definition: w3odatmd.F90:524
w3odatmd::flog2
logical, dimension(:), pointer flog2
Definition: w3odatmd.F90:478
w3odatmd::mask2
logical, dimension(:,:), pointer mask2
Definition: w3odatmd.F90:516
w3odatmd::naptrk
integer, pointer naptrk
Definition: w3odatmd.F90:457
w3odatmd::flout
logical, dimension(:), pointer flout
Definition: w3odatmd.F90:468
w3odatmd::xbpo
real, dimension(:), pointer xbpo
Definition: w3odatmd.F90:541
w3servmd::strace
subroutine strace(IENT, SNAME)
Definition: w3servmd.F90:148
w3odatmd::rdbpi
real, dimension(:,:), pointer rdbpi
Definition: w3odatmd.F90:541
w3odatmd::abpi0
real, dimension(:,:), pointer abpi0
Definition: w3odatmd.F90:541
w3odatmd::filer
logical, pointer filer
Definition: w3odatmd.F90:546
w3odatmd::ndso
integer, pointer ndso
Definition: w3odatmd.F90:456
w3odatmd::noutp
integer noutp
Definition: w3odatmd.F90:321
w3odatmd::nappnt
integer, pointer nappnt
Definition: w3odatmd.F90:457
w3odatmd::napout
integer, pointer napout
Definition: w3odatmd.F90:457
w3odatmd::dimp
integer, parameter dimp
Definition: w3odatmd.F90:325
w3odatmd::ixn
integer, pointer ixn
Definition: w3odatmd.F90:551
w3odatmd::ix0
integer, pointer ix0
Definition: w3odatmd.F90:551
w3odatmd::noextr
integer, parameter noextr
Definition: w3odatmd.F90:328
w3odatmd::idout
character(len=20), dimension(nogrp, ngrpp) idout
Definition: w3odatmd.F90:329
w3odatmd::napfld
integer, pointer napfld
Definition: w3odatmd.F90:457
w3odatmd::it0trk
integer, pointer it0trk
Definition: w3odatmd.F90:512
w3odatmd::tofrst
integer, dimension(:), pointer tofrst
Definition: w3odatmd.F90:464
w3odatmd::ndst
integer, pointer ndst
Definition: w3odatmd.F90:456
w3odatmd::mask1
logical, dimension(:,:), pointer mask1
Definition: w3odatmd.F90:516
constants
Define some much-used constants for global use (all defined as PARAMETER).
Definition: constants.F90:20
w3odatmd::nogrp
integer, parameter nogrp
Definition: w3odatmd.F90:323
w3gdatmd
Definition: w3gdatmd.F90:16
w3odatmd::ptfcut
real, pointer ptfcut
Definition: w3odatmd.F90:556
w3odatmd::ybpo
real, dimension(:), pointer ybpo
Definition: w3odatmd.F90:541
w3odatmd::ndsl
integer, dimension(:), pointer ndsl
Definition: w3odatmd.F90:531
w3servmd::extcde
subroutine extcde(IEXIT, UNIT, MSG, FILE, LINE, COMM)
Definition: w3servmd.F90:736
w3odatmd::w3nout
subroutine w3nout(NDSERR, NDSTST)
Definition: w3odatmd.F90:561
w3odatmd::outpts
type(output), dimension(:), allocatable, target outpts
Definition: w3odatmd.F90:452
w3odatmd::otype4
Definition: w3odatmd.F90:388
w3odatmd::il
integer, dimension(:), pointer il
Definition: w3odatmd.F90:488
w3odatmd::irqrss
integer, dimension(:), pointer irqrss
Definition: w3odatmd.F90:524
w3odatmd::flogr
logical, dimension(:), pointer flogr
Definition: w3odatmd.F90:478
w3odatmd::ihmax
integer, pointer ihmax
Definition: w3odatmd.F90:551
w3odatmd::o3init
logical, pointer o3init
Definition: w3odatmd.F90:515
w3odatmd::icprt
integer, dimension(:,:), pointer icprt
Definition: w3odatmd.F90:551
w3odatmd::noswll
integer, pointer noswll
Definition: w3odatmd.F90:460
w3odatmd::filed
logical, pointer filed
Definition: w3odatmd.F90:546
w3odatmd::ipass3
integer, pointer ipass3
Definition: w3odatmd.F90:510
w3odatmd::isbpi
integer, dimension(:), pointer isbpi
Definition: w3odatmd.F90:535
w3odatmd::ptifac
real, dimension(:,:), pointer ptifac
Definition: w3odatmd.F90:492
w3gdatmd::nx
integer, pointer nx
Definition: w3gdatmd.F90:1097
w3gdatmd::ngrids
integer ngrids
Definition: w3gdatmd.F90:618
w3odatmd::nthi
integer, pointer nthi
Definition: w3odatmd.F90:530
constants::undef
real undef
UNDEF Value for undefined variable in output.
Definition: constants.F90:84
w3odatmd::nrqbp
integer, pointer nrqbp
Definition: w3odatmd.F90:533
w3odatmd::aso
real, dimension(:), pointer aso
Definition: w3odatmd.F90:492
w3odatmd::irqgo
integer, dimension(:), pointer irqgo
Definition: w3odatmd.F90:476
w3odatmd::it0pnt
integer, pointer it0pnt
Definition: w3odatmd.F90:512
w3odatmd::nrqgo
integer, pointer nrqgo
Definition: w3odatmd.F90:475
w3odatmd::o5ini4
logical, pointer o5ini4
Definition: w3odatmd.F90:545
w3odatmd::naprst
integer, pointer naprst
Definition: w3odatmd.F90:457
w3gdatmd::nauxgr
integer nauxgr
Definition: w3gdatmd.F90:618
w3odatmd::ifdef
real, pointer ifdef
Definition: w3odatmd.F90:492
w3odatmd::wscut
real, pointer wscut
Definition: w3odatmd.F90:553
w3odatmd::rdbpo
real, dimension(:,:), pointer rdbpo
Definition: w3odatmd.F90:541
w3odatmd::bbpin
real, dimension(:,:), pointer bbpin
Definition: w3odatmd.F90:541
w3odatmd::nrqtr
integer, pointer nrqtr
Definition: w3odatmd.F90:512