Page 1 Source Listing W3NOUT 2014-09-16 16:47 w3odatmd.f90 1 !/ ------------------------------------------------------------------- / 2 MODULE W3ODATMD 3 !/ 4 !/ +-----------------------------------+ 5 !/ | WAVEWATCH III NOAA/NCEP | 6 !/ | H. L. Tolman | 7 !/ | FORTRAN 90 | 8 !/ | Last update : 19-Dec-2012 | 9 !/ +-----------------------------------+ 10 !/ 11 !/ 13-Dec-2004 : Origination. ( version 3.06 ) 12 !/ 20-Jul-2005 : Adding output fields. ( version 3.07 ) 13 !/ 29-Sep-2005 : Second storage for input bound. sp. ( version 3.08 ) 14 !/ Add FILED for the dump of data. 15 !/ 26-Jun-2006 : Add output type 6, wave field sep. ( version 3.09 ) 16 !/ Wiring of code only. 17 !/ 27-Jun-2006 : Adding file name preamble. ( version 3.09 ) 18 !/ 24-Jul-2006 : Adding unified point output storage.( version 3.10 ) 19 !/ 25-Jul-2006 : Originating grid ID for points. ( version 3.10 ) 20 !/ 04-Oct-2006 : Add filter to array pointers. ( version 3.10 ) 21 !/ 30-Oct-2006 : Add pars for partitioning. ( version 3.10 ) 22 !/ 26-Mar-2007 : Add pars for partitioning. ( version 3.11 ) 23 !/ 17-May-2007 : Adding NTPROC/NAPROC separation. ( version 3.11 ) 24 !/ 21-Jun-2007 : Dedicated output processes. ( version 3.11 ) 25 !/ 29-May-2009 : Preparing distribution version. ( version 3.14 ) 26 !/ 30-Oct-2009 : Implement curvilinear grid type. ( version 3.14 ) 27 !/ (W. E. Rogers & T. J. Campbell, NRL) 28 !/ 14-Jul-2010 : Fix VAAUX declaration bug. ( version 3.14.2 ) 29 !/ 27-Jul-2010 : Add NKI, NTHI, XFRI, FR1I, TH1I. ( version 3.14.3 ) 30 !/ 08-Nov-2010 : Implementing unstructured grids ( version 3.14.4 ) 31 !/ (A. Roland and F. Ardhuin) 32 !/ 18-Dec-2012 : New 2D field output structure, ( version 4.11 ) 33 !/ reducing memory footprint for fields. 34 !/ 19-Dec-2012 : Move NOSWLL to data structure. ( version 4.11 ) 35 !/ 36 !/ Copyright 2009-2012 National Weather Service (NWS), 37 !/ National Oceanic and Atmospheric Administration. All rights 38 !/ reserved. WAVEWATCH III is a trademark of the NWS. 39 !/ No unauthorized use without permission. 40 !/ 41 ! 1. Purpose : 42 ! 43 ! Define data structures to set up wave model grids and aliases 44 ! to use individual grids transparently. Also includes subroutines 45 ! to manage data structure and pointing to individual models. 46 ! This module considers the parameters required for model output. 47 ! 48 ! 2. Variables and types : 49 ! 50 ! Name Type Scope Description 51 ! ---------------------------------------------------------------- 52 ! NOUTP Int. Public Number of models in array dim. 53 ! IOUTP Int. Public Selected model for output, init. at -1. 54 ! IOSTYP Int. Public Output data server type. 55 ! NOGRP I.P. Public Number of output field groups 56 ! NGRPP I.P. Public Max numb of parameters per output group 57 ! NOGE I.P. Public Number of output group elements Page 2 Source Listing W3NOUT 2014-09-16 16:47 w3odatmd.f90 58 ! NOTYPE I.P. Public Number of output types 59 ! NOEXTR I.P. Public Number of extra (user available) 60 ! output fields. 61 ! IDOUT C.A. Public ID strings for output fields. 62 ! FNMPRE Char Public File name preamble. 63 ! UNDEF Real Public Value for undefined parameters in 64 ! gridded output fields. 65 ! UNIPTS Log. Public Flag for unified point output (output 66 ! to single file). 67 ! UPPROC Log. Public FLag for dedicated point output proc. 68 ! OUTPUT TYPE Public Data structure defining output. 69 ! OUTPTS GRID Public Array of output for models. 70 ! ---------------------------------------------------------------- 71 ! 72 ! Elements of OUTPUT are aliased to pointers with the same 73 ! name. These pointers are defined as : 74 ! 75 ! Name Type Scope Description 76 ! ---------------------------------------------------------------- 77 ! NDSO Int. Public General output unit number ("log 78 ! file"). 79 ! NDSE Int. Public Error output unit number. 80 ! NDST Int. Public Test output unit number. 81 ! SCREEN Int. Public Unit for 'direct' output. 82 ! NTPROC Int. Public Number of processors. 83 ! NAPROC Int. Public Number of processors for computation. 84 ! IAPROC Int. Public Actual processor number (base 1), 85 ! NAPLOG Int. Public Proc. dealing with log output. 86 ! NAPOUT Int. Public Proc. dealing with standard output. 87 ! NAPERR Int. Public Proc. dealing with error output. 88 ! NAPFLD Int. Public Proc. dealing with raw field output. 89 ! NAPPNT Int. Public Proc. dealing with raw point output. 90 ! NAPTRK Int. Public Proc. dealing with track output. 91 ! NAPRST Int. Public Proc. dealing with restart output. 92 ! NAPBPT Int. Public Proc. dealing with boundary output. 93 ! NAPPRT Int. Public Proc. dealing with partition output. 94 ! NOSWLL I.P. Public Number of swell fields from part. 95 ! to be used in field output. 96 ! TOFRST I.A. Public Times for first output. 97 ! TONEXT I.A. Public Times for next output. 98 ! TOLAST I.A. Public Times for last output. 99 ! TBPI0 I.A Public Time of first set of input boundary 100 ! spectra. 101 ! TBPIN I.A Public Id. second set. 102 ! NDS I.A. Public Data set numbers (see W3INIT). 103 ! DTOUT R.A. Public Output intervals. 104 ! FLOUT L.A. Public Output flags. 105 ! OUT1 TYPE Public Data structure of type OTYPE1 with 106 ! suppl. data for output type 1. 107 ! OUT2 TYPE Public Data structure of type OTYPE2 with 108 ! suppl. data for output type 2. 109 ! OUT3 TYPE Public Data structure of type OTYPE3 with 110 ! suppl. data for output type 3. 111 ! OUT4 TYPE Public Data structure of type OTYPE4 with 112 ! suppl. data for output type 4. 113 ! OUT5 TYPE Public Data structure of type OTYPE5 with 114 ! suppl. data for output type 5. Page 3 Source Listing W3NOUT 2014-09-16 16:47 w3odatmd.f90 115 ! OUT6 TYPE Public Data structure of type OTYPE6 with 116 ! suppl. data for output type 6. 117 ! ---------------------------------------------------------------- 118 ! 119 ! Elements of OUT1 are aliased to pointers with the same 120 ! name. These pointers are defined as : 121 ! 122 ! Name Type Scope Description 123 ! ---------------------------------------------------------------- 124 ! IPASS1 Int. Public Pass counter for file management, 125 ! renamed to IPASS in routine. 126 ! WRITE1 Int. Public Write flag for file management, 127 ! renamed to WRITE in routine. 128 ! NRQGO(2) Int. Public Number of MPI handles W3IOGO. 129 ! IRQGO I.A. Public Array with MPI handles W3IOGO. 130 ! FLOGRD L.A. Public FLags for output fields. 131 ! FLOGR2 L.A. Public FLags for coupling fields. 132 ! FLOG L.A. Public Flags for output groups 133 ! ---------------------------------------------------------------- 134 ! 135 ! Elements of OUT2 are aliased to pointers with the same 136 ! name. These pointers are defined as : 137 ! 138 ! Name Type Scope Description 139 ! ---------------------------------------------------------------- 140 ! IPASS2 Int. Public Pass counter for file management, 141 ! renamed to IPASS in routine. 142 ! NOPTS Int. Public Number of output points. 143 ! NRQPO(2) Int. Public Number of MPI handles IRQPOn. (!/MPI) 144 ! IPTINT I.A. Public (I,J)-indices of enclosing cell corner points 145 ! IL I.A. Public Number of land points in interpola- 146 ! tion box for output point. 147 ! IW I.A. Public Id. water. 148 ! II I.A. Public Id. ice. 149 ! IRQPO1/2 I.A. Public Array with MPI handles. (!/MPI) 150 ! PTLOC R.A. Public Name of output locations. 151 ! PTIFAC R.A. Public Interpolation weights. 152 ! DPO R.A. Public Interpolated depths. 153 ! WAO R.A. Public Interpolated wind speeds. 154 ! WDO R.A. Public Interpolated wind directions. 155 ! ASO R.A. Public Interpolated air-sea temp. diff. 156 ! CAO R.A. Public Interpolated current speeds. 157 ! CDO R.A. Public Interpolated current directions. 158 ! SPCO R.A. Public Output spectra. 159 ! PTNME C.A. Public Output locations. 160 ! GRDID C.A. Public Originating grid ID. 161 ! O2INIT Log. Public Flag for array initialization. 162 ! O2IRQI Log. Public Flag for array initialization. 163 ! ---------------------------------------------------------------- 164 ! 165 ! Elements of OUT3 are aliased to pointers with the same 166 ! name. These pointers are defined as : 167 ! 168 ! Name Type Scope Description 169 ! ---------------------------------------------------------------- 170 ! IPASS3 Int. Public Pass counter for file management, 171 ! renamed to IPASS in routine. Page 4 Source Listing W3NOUT 2014-09-16 16:47 w3odatmd.f90 172 ! IT0PNT Int. Public Base tag number of MPI communication. 173 ! IT0TRK Int. Public Base tag number of MPI communication. 174 ! IT0PRT Int. Public Base tag number of MPI communication. 175 ! NRQTR Int. Public Number of handles in IRQTR. 176 ! IRQTR I.A. Public Array with MPI handles. 177 ! O3INIT Log. Public Flag for array initialization. 178 ! STOP Log. Public Flag for end of output. 179 ! MASKn L.A. Public Mask arrays for internal use. 180 ! ---------------------------------------------------------------- 181 ! 182 ! Elements of OUT4 are aliased to pointers with the same 183 ! name. These pointers are defined as : 184 ! 185 ! Name Type Scope Description 186 ! ---------------------------------------------------------------- 187 ! IFILE4 Int. Public File number for output files. 188 ! NBLKRS Int. Public Number of blocks in communication of 189 ! spectra. 190 ! RSBLKS Int. Public Corresponding block size. 191 ! NRQSR Int. Public Number of MPI handles. 192 ! IRQRS I.A. Public Array with MPI handles. 193 ! IRQRSS I.A. Public Array with MPI handles. 194 ! VAAUX R.A. Public Aux. spectra storage. 195 ! ---------------------------------------------------------------- 196 ! 197 ! Elements of OUT5 are aliased to pointers with the same 198 ! name. These pointers are defined as : 199 ! 200 ! Name Type Scope Description 201 ! ---------------------------------------------------------------- 202 ! NBI(2) Int. Public Number of input bound. points. 203 ! NFBPO Int. Public Number of files for output bound. data. 204 ! NRQBP(2) Int. Public Number of MPI handles. 205 ! NKI,NTHI Int. Public Size of input spectra 206 ! NBO(2) I.A. Public Number of output bound. pts. per file. 207 ! NDSL I.A. Public Array with unit numbers. 208 ! IPBPI I.A. Public Interpolation data input b.p. 209 ! ISBPI I.A. Public Sea point counters for input b.p. 210 ! IRQBP1/2 I.A. Public Array with MPI handles. 211 ! XFRI, FR1I, TH1I 212 ! Real Public Definition of input spectra. 213 ! X/YBPI R.A. Public Location of input boundary points. 214 ! RDBPI R.A. Public Interpolation factors input b.p. 215 ! ABPI0/N R.A. Public Storage of spectra from which to 216 ! interpolate b.d. 217 ! BBPI0/N R.A. Public idem, secondary storage. 218 ! ABPOS R.A. Public Temporarily storage for output b.d. 219 ! IPBPO, ISBPO, X/YBPO, RDBPO 220 ! Misc. Public Id. for output b.p. 221 ! FLBPI Log. Public Flag for input of boundary data. 222 ! FLBPO Log. Public Flag for output of boundary data. 223 ! FILER/W/D Log. Public Read/write flags for file management. 224 ! SPCONV Log. Public Flag for change of spectral res. 225 ! O5INIn Log. Public Flag for array initializations. 226 ! ---------------------------------------------------------------- 227 ! 228 ! Elements of OUT6 are aliased to pointers with the same Page 5 Source Listing W3NOUT 2014-09-16 16:47 w3odatmd.f90 229 ! name. These pointers are defined as : 230 ! 231 ! Name Type Scope Description 232 ! ---------------------------------------------------------------- 233 ! IPASS6 Int. Public Pass counter for file management, 234 ! renamed to IPASS in routine. 235 ! IHMAX Int. Public Number of discrete spectral levels. 236 ! IX0/N/S Int. Public First-last-step IX counters. 237 ! IY0/N/S Int. Public Idem IY counters. 238 ! HSPMIN Real Public Minimum significant height per part. 239 ! WSMULT Real Public Multiplier for wind sea boundary. 240 ! WSCUT Real Public Cut-off wind factor for wind seas. 241 ! ICPRT I.A. Public Counters for partitions. 242 ! DTPRT R.A. Public Data from partitions. 243 ! FLCOMB Log. Public Flag for combining wind seas. 244 ! FLFORM Log. Public Flag for (un)formatted output 245 ! O6INIT Log. Public Flag for array initializations. 246 ! ---------------------------------------------------------------- 247 ! 248 ! 3. Subroutines and functions : 249 ! 250 ! Name Type Scope Description 251 ! ---------------------------------------------------------------- 252 ! W3NOUT Subr. Public Set number of grids. 253 ! W3DMO2 Subr. Public Allocate arrays output type 2. 254 ! W3DMO3 Subr. Public Allocate arrays output type 3. 255 ! W3DMO5 Subr. Public Allocate arrays output type 5. 256 ! W3SETO Subr. Public Point to selected grid / model. 257 ! ---------------------------------------------------------------- 258 ! 259 ! 4. Subroutines and functions used : 260 ! 261 ! Name Type Module Description 262 ! ---------------------------------------------------------------- 263 ! W3SETG Subr. W3GDATMD Point to proper model grid. 264 ! STRACE Subr. W3SERVMD Subroutine tracing. 265 ! EXTCDE Subr. W3SERVMD Abort program with exit code. 266 ! ---------------------------------------------------------------- 267 ! 268 ! 5. Remarks : 269 ! 270 ! - The number of grids is taken from W3GDATMD, and needs to be 271 ! set first with W3DIMG. 272 ! 273 ! 6. Switches : 274 ! 275 ! !/MPI MPI specific calls. 276 ! !/S Enable subroutine tracing. 277 ! !/T Enable test output 278 ! 279 ! 7. Source code : 280 ! 281 !/ ------------------------------------------------------------------- / 282 PUBLIC 283 !/ 284 !/ Conventional declarations 285 !/ Page 6 Source Listing W3NOUT 2014-09-16 16:47 w3odatmd.f90 286 INTEGER :: NOUTP = -1, IOUTP = -1, IOSTYP = 1 287 ! 288 INTEGER, PARAMETER :: NOGRP = 10 289 INTEGER, PARAMETER :: NGRPP = 20 290 INTEGER :: NOGE(NOGRP) 291 INTEGER :: NOTYPE 292 INTEGER, PARAMETER :: NOEXTR= 2 293 CHARACTER(LEN=20) :: IDOUT(NOGRP,NGRPP) 294 CHARACTER(LEN=80) :: FNMPRE = './' 295 REAL :: UNDEF = -999.9 296 LOGICAL :: UNIPTS = .FALSE., UPPROC = .FALSE. 297 !/ 298 !/ Set NOGE and IDOUT identifiers in W3NOUT 299 !/ 300 !/ Data structures 301 !/ 302 TYPE OTYPE1 303 INTEGER :: IPASS1 304 INTEGER :: NRQGO, NRQGO2 305 INTEGER, POINTER :: IRQGO(:), IRQGO2(:) 306 LOGICAL :: FLOGRD(NOGRP,NGRPP), FLOG(NOGRP), & 307 FLOGR2(NOGRP,NGRPP), WRITE1 308 END TYPE OTYPE1 309 !/ 310 TYPE OTYPE2 311 INTEGER :: IPASS2, NOPTS 312 INTEGER :: NRQPO, NRQPO2 313 INTEGER, POINTER :: IPTINT(:,:,:), IL(:), IW(:), II(:) 314 INTEGER, POINTER :: IRQPO1(:), IRQPO2(:) 315 REAL, POINTER :: PTLOC(:,:), PTIFAC(:,:), & 316 DPO(:), WAO(:), WDO(:), ASO(:), & 317 CAO(:), CDO(:), SPCO(:,:) 318 CHARACTER(LEN=10), POINTER :: PTNME(:), GRDID(:) 319 LOGICAL :: O2INIT 320 LOGICAL :: O2IRQI 321 END TYPE OTYPE2 322 !/ 323 TYPE OTYPE3 324 INTEGER :: IPASS3 325 INTEGER :: IT0PNT, IT0TRK, IT0PRT, NRQTR 326 INTEGER, POINTER :: IRQTR(:) 327 LOGICAL :: O3INIT, STOP 328 LOGICAL, POINTER :: MASK1(:,:), MASK2(:,:) 329 END TYPE OTYPE3 330 !/ 331 TYPE OTYPE4 332 INTEGER :: IFILE4 333 INTEGER :: NRQRS, NBLKRS, RSBLKS 334 INTEGER, POINTER :: IRQRS(:), IRQRSS(:) 335 REAL, POINTER :: VAAUX(:,:,:) 336 END TYPE OTYPE4 337 !/ 338 TYPE OTYPE5 339 INTEGER :: NBI, NBI2, NFBPO, NBO(0:9), & 340 NBO2(0:9), NDSL(9), NKI, NTHI 341 INTEGER :: NRQBP, NRQBP2 342 INTEGER, POINTER :: IPBPI(:,:), ISBPI(:), & Page 7 Source Listing W3NOUT 2014-09-16 16:47 w3odatmd.f90 343 IPBPO(:,:), ISBPO(:) 344 INTEGER, POINTER :: IRQBP1(:), IRQBP2(:) 345 REAL :: XFRI, FR1I, TH1I 346 REAL, POINTER :: XBPI(:), YBPI(:), RDBPI(:,:), & 347 XBPO(:), YBPO(:), RDBPO(:,:), & 348 ABPI0(:,:), ABPIN(:,:), ABPOS(:,:), & 349 BBPI0(:,:), BBPIN(:,:) 350 LOGICAL :: O5INI1, O5INI2, O5INI3, O5INI4 351 LOGICAL :: FLBPI, FLBPO, FILER, FILEW, FILED, & 352 SPCONV 353 END TYPE OTYPE5 354 !/ 355 TYPE OTYPE6 356 INTEGER :: IPASS6, IHMAX, IX0, IXN, IXS, & 357 IY0, IYN, IYS 358 INTEGER, POINTER :: ICPRT(:,:) 359 REAL :: HSPMIN, WSMULT, WSCUT 360 REAL, POINTER :: DTPRT(:,:) 361 LOGICAL :: FLFORM, FLCOMB, O6INIT 362 END TYPE OTYPE6 363 !/ 364 TYPE OUTPUT 365 INTEGER :: NDSO, NDSE, NDST, SCREEN 366 INTEGER :: NTPROC, NAPROC, IAPROC, NAPLOG, & 367 NAPOUT, NAPERR, NAPFLD, NAPPNT, & 368 NAPTRK, NAPRST, NAPBPT, NAPPRT 369 INTEGER :: NOSWLL 370 INTEGER :: TOFRST(2), TONEXT(2,7), TOLAST(2,7), & 371 TBPI0(2), TBPIN(2), NDS(13) 372 REAL :: DTOUT(7) 373 LOGICAL :: FLOUT(7) 374 TYPE(OTYPE1) :: OUT1 375 TYPE(OTYPE2) :: OUT2 376 TYPE(OTYPE3) :: OUT3 377 TYPE(OTYPE4) :: OUT4 378 TYPE(OTYPE5) :: OUT5 379 TYPE(OTYPE6) :: OUT6 380 END TYPE OUTPUT 381 !/ 382 !/ Data storage 383 !/ 384 TYPE(OUTPUT), TARGET, ALLOCATABLE :: OUTPTS(:) 385 !/ 386 !/ Data aliasses for structure OUTPUT 387 !/ 388 INTEGER, POINTER :: NDSO, NDSE, NDST, SCREEN 389 INTEGER, POINTER :: NTPROC, NAPROC, IAPROC, NAPLOG, & 390 NAPOUT, NAPERR, NAPFLD, NAPPNT, & 391 NAPTRK, NAPRST, NAPBPT, NAPPRT 392 INTEGER, POINTER :: NOSWLL 393 INTEGER, POINTER :: TOFRST(:), TONEXT(:,:), TOLAST(:,:), & 394 TBPI0(:), TBPIN(:), NDS(:) 395 REAL, POINTER :: DTOUT(:) 396 LOGICAL, POINTER :: FLOUT(:) 397 !/ 398 !/ Data aliasses for substructures for output types 399 !/ Type 1 ... Page 8 Source Listing W3NOUT 2014-09-16 16:47 w3odatmd.f90 400 !/ 401 INTEGER, POINTER :: IPASS1 402 INTEGER, POINTER :: NRQGO, NRQGO2 403 INTEGER, POINTER :: IRQGO(:), IRQGO2(:) 404 LOGICAL, POINTER :: FLOGRD(:,:), FLOGR2(:,:), FLOG(:), & 405 WRITE1 406 !/ 407 !/ Type 2 ... 408 !/ 409 INTEGER, POINTER :: IPASS2, NOPTS 410 INTEGER, POINTER :: NRQPO, NRQPO2 411 INTEGER, POINTER :: IPTINT(:,:,:), IL(:), IW(:), II(:) 412 INTEGER, POINTER :: IRQPO1(:), IRQPO2(:) 413 REAL, POINTER :: PTLOC(:,:), PTIFAC(:,:), & 414 DPO(:), WAO(:), WDO(:), ASO(:), & 415 CAO(:), CDO(:), SPCO(:,:) 416 CHARACTER(LEN=10), POINTER :: PTNME(:), GRDID(:) 417 LOGICAL, POINTER :: O2INIT 418 LOGICAL, POINTER :: O2IRQI 419 !/ 420 !/ Type 3 ... 421 !/ 422 INTEGER, POINTER :: IPASS3 423 INTEGER, POINTER :: IT0PNT, IT0TRK, IT0PRT, NRQTR 424 INTEGER, POINTER :: IRQTR(:) 425 LOGICAL, POINTER :: O3INIT, STOP 426 LOGICAL, POINTER :: MASK1(:,:), MASK2(:,:) 427 !/ 428 !/ Type 4 ... 429 !/ 430 INTEGER, POINTER :: IFILE4 431 INTEGER, POINTER :: NRQRS, NBLKRS, RSBLKS 432 INTEGER, POINTER :: IRQRS(:), IRQRSS(:) 433 REAL, POINTER :: VAAUX(:,:,:) 434 !/ 435 !/ Type 5 ... 436 !/ 437 INTEGER, POINTER :: NBI, NBI2, NFBPO, NKI, NTHI 438 INTEGER, POINTER :: NBO(:), NBO2(:), NDSL(:) 439 INTEGER, POINTER :: NRQBP, NRQBP2 440 INTEGER, POINTER :: IPBPI(:,:), ISBPI(:), & 441 IPBPO(:,:), ISBPO(:) 442 INTEGER, POINTER :: IRQBP1(:), IRQBP2(:) 443 REAL, POINTER :: XFRI, FR1I, TH1I 444 REAL, POINTER :: XBPI(:), YBPI(:), RDBPI(:,:), & 445 XBPO(:), YBPO(:), RDBPO(:,:), & 446 ABPI0(:,:), ABPIN(:,:), ABPOS(:,:), & 447 BBPI0(:,:), BBPIN(:,:) 448 LOGICAL, POINTER :: O5INI1, O5INI2, O5INI3, O5INI4 449 LOGICAL, POINTER :: FLBPI, FLBPO, FILER, FILEW, FILED, & 450 SPCONV 451 !/ 452 !/ Type 6 ... 453 !/ 454 INTEGER, POINTER :: IPASS6, IHMAX, IX0, IXN, IXS, & 455 IY0, IYN, IYS, ICPRT(:,:) 456 REAL, POINTER :: HSPMIN, WSMULT, WSCUT, DTPRT(:,:) Page 9 Source Listing W3NOUT 2014-09-16 16:47 w3odatmd.f90 457 LOGICAL, POINTER :: FLFORM, FLCOMB, O6INIT 458 !/ 459 CONTAINS 460 !/ ------------------------------------------------------------------- / 461 SUBROUTINE W3NOUT ( NDSERR, NDSTST ) 462 !/ 463 !/ +-----------------------------------+ 464 !/ | WAVEWATCH III NOAA/NCEP | 465 !/ | H. L. Tolman | 466 !/ | FORTRAN 90 | 467 !/ | Last update : 19-Dec-2012 | 468 !/ +-----------------------------------+ 469 !/ 470 !/ 13-Dec-2004 : Origination. ( version 3.06 ) 471 !/ 27-Jun-2006 : Adding file name preamble ( version 3.09 ) 472 !/ 24-Jul-2006 : Adding unified point output storage.( version 3.10 ) 473 !/ 04-Oct-2006 : Add filter to array pointers. ( version 3.10 ) 474 !/ 30-Oct-2006 : Add pars for partitioning. ( version 3.10 ) 475 !/ 26-Mar-2007 : Add pars for partitioning. ( version 3.11 ) 476 !/ 17-May-2007 : Adding NTPROC/NAPROC separation. ( version 3.11 ) 477 !/ 18-Dec-2012 : Moving IDOUT initialization here. ( version 4.11 ) 478 !/ 19-Dec-2012 : Move NOSWLL to data structure. ( version 4.11 ) 479 !/ 480 ! 1. Purpose : 481 ! 482 ! Set up the number of grids to be used. 483 ! 484 ! 2. Method : 485 ! 486 ! Use data stored in NGRIDS in W3GDATMD. 487 ! 488 ! 3. Parameters : 489 ! 490 ! Parameter list 491 ! ---------------------------------------------------------------- 492 ! NDSERR Int. I Error output unit number. 493 ! NDSTST Int. I Test output unit number. 494 ! ---------------------------------------------------------------- 495 ! 496 ! 4. Subroutines used : 497 ! 498 ! See module documentation below. 499 ! 500 ! 5. Called by : 501 ! 502 ! Any main program that uses this grid structure. 503 ! 504 ! 6. Error messages : 505 ! 506 ! - Error checks on previous setting of variable NGRIDS. 507 ! 508 ! 7. Remarks : 509 ! 510 ! 8. Structure : 511 ! 512 ! 9. Switches : 513 ! Page 10 Source Listing W3NOUT 2014-09-16 16:47 w3odatmd.f90 514 ! !/S Enable subroutine tracing. 515 ! !/T Enable test output 516 ! 517 ! 10. Source code : 518 ! 519 !/ ------------------------------------------------------------------- / 520 USE W3GDATMD, ONLY: NGRIDS, NAUXGR 521 USE W3SERVMD, ONLY: EXTCDE 522 ! 523 IMPLICIT NONE 524 !/ 525 !/ ------------------------------------------------------------------- / 526 !/ Parameter list 527 !/ 528 INTEGER, INTENT(IN) :: NDSERR, NDSTST 529 !/ 530 !/ ------------------------------------------------------------------- / 531 !/ Local parameters 532 !/ 533 INTEGER :: I, NLOW, J 534 CHARACTER(LEN=20) :: STRING 535 !/ 536 ! 537 ! -------------------------------------------------------------------- / 538 ! 1. Test input and module status 539 ! 540 IF ( NGRIDS .EQ. -1 ) THEN 541 WRITE (NDSERR,1001) NGRIDS 542 CALL EXTCDE (1) 543 END IF 544 ! 545 ! -------------------------------------------------------------------- / 546 ! 2. Set variable and allocate arrays 547 ! 548 NLOW = MIN ( 0 , -NAUXGR ) 549 ALLOCATE ( OUTPTS(NLOW:NGRIDS) ) 550 NOUTP = NGRIDS 551 ! 552 ! -------------------------------------------------------------------- / 553 ! 3. Initialize parameters 554 ! 555 DO I=NLOW, NGRIDS 556 ! 557 OUTPTS(I)%NDSO = 6 558 OUTPTS(I)%NDSE = 6 559 OUTPTS(I)%NDST = 6 560 OUTPTS(I)%SCREEN = 6 561 ! 562 OUTPTS(I)%NTPROC = 1 563 OUTPTS(I)%NAPROC = 1 564 OUTPTS(I)%IAPROC = 1 565 OUTPTS(I)%NAPLOG = 1 566 OUTPTS(I)%NAPOUT = 1 567 OUTPTS(I)%NAPERR = 1 568 OUTPTS(I)%NAPFLD = 1 569 OUTPTS(I)%NAPPNT = 1 570 OUTPTS(I)%NAPTRK = 1 Page 11 Source Listing W3NOUT 2014-09-16 16:47 w3odatmd.f90 571 OUTPTS(I)%NAPRST = 1 572 OUTPTS(I)%NAPBPT = 1 573 OUTPTS(I)%NAPPRT = 1 574 ! 575 OUTPTS(I)%NOSWLL = -1 576 ! 577 OUTPTS(I)%TBPI0 = (-1,0) 578 OUTPTS(I)%TBPIN = (-1,0) 579 ! 580 OUTPTS(I)%OUT1%IPASS1 = 0 581 OUTPTS(I)%OUT1%NRQGO = 0 582 OUTPTS(I)%OUT1%NRQGO2 = 0 583 ! 584 OUTPTS(I)%OUT2%IPASS2 = 0 585 OUTPTS(I)%OUT2%NOPTS = 0 586 OUTPTS(I)%OUT2%O2INIT = .FALSE. 587 OUTPTS(I)%OUT2%O2IRQI = .FALSE. 588 ! 589 OUTPTS(I)%OUT3%IPASS3 = 0 590 OUTPTS(I)%OUT3%O3INIT = .FALSE. 591 OUTPTS(I)%OUT3%STOP = .FALSE. 592 OUTPTS(I)%OUT3%NRQTR = 0 593 ! 594 OUTPTS(I)%OUT4%IFILE4 = 0 595 OUTPTS(I)%OUT4%NRQRS = 0 596 ! 597 OUTPTS(I)%OUT5%O5INI1 = .FALSE. 598 OUTPTS(I)%OUT5%O5INI2 = .FALSE. 599 OUTPTS(I)%OUT5%O5INI3 = .FALSE. 600 OUTPTS(I)%OUT5%O5INI4 = .FALSE. 601 OUTPTS(I)%OUT5%FILER = .TRUE. 602 OUTPTS(I)%OUT5%FILEW = .TRUE. 603 OUTPTS(I)%OUT5%FILED = .TRUE. 604 ! 605 OUTPTS(I)%OUT6%IPASS6 = 0 606 OUTPTS(I)%OUT6%O6INIT = .FALSE. 607 ! 608 END DO 609 ! 610 ! Set IDOUT 611 ! Commented outlines represent reserved slots. 612 ! 613 DO I=1, NOGRP 614 DO J=1, NGRPP 615 IDOUT(I,J) = 'Undefined / Not Used' 616 END DO 617 END DO 618 ! 619 ! 1) Forcing fields 620 ! 621 NOGE(1) = 7 622 ! 623 IDOUT( 1, 1) = 'Water depth ' 624 IDOUT( 1, 2) = 'Current vel. ' 625 IDOUT( 1, 3) = 'Wind speed ' 626 IDOUT( 1, 4) = 'Air-sea temp. dif. ' 627 IDOUT( 1, 5) = 'Water level ' Page 12 Source Listing W3NOUT 2014-09-16 16:47 w3odatmd.f90 628 IDOUT( 1, 6) = 'Ice concentration ' 629 IDOUT( 1, 7) = 'Iceberg damp coeffic' 630 ! IDOUT( 1, 9) = 'Critical Shields num' 631 ! IDOUT( 1,10) = 'Base roughness K_N0 ' 632 ! 633 ! 2) Standard mean wave parameters 634 ! 635 NOGE(2) = 9 636 ! 637 IDOUT( 2, 1) = 'Wave height ' 638 IDOUT( 2, 2) = 'Mean wave length ' 639 IDOUT( 2, 3) = 'Mean wave period(+2)' 640 IDOUT( 2, 4) = 'Mean wave period(+1)' 641 IDOUT( 2, 5) = 'Mean wave period(-1)' 642 IDOUT( 2, 6) = 'Peak frequency ' 643 IDOUT( 2, 7) = 'Mean wave dir. a1b1 ' 644 IDOUT( 2, 8) = 'Mean dir. spr. a1b1 ' 645 IDOUT( 2, 9) = 'Peak direction ' 646 IDOUT( 2, 10) = 'Infragravity height' 647 ! IDOUT( 2,10) = 'Mean wave dir. a2b2 ' 648 ! IDOUT( 2,11) = 'Mean dir. spr. a2b2 ' 649 ! IDOUT( 2,12) = 'Windsea height (Sin)' 650 ! IDOUT( 2,13) = 'Windsea peak f (Sin)' 651 ! IDOUT( 2,14) = 'Subrange wave height' 652 ! 653 ! 3) Frequency-dependent standard parameters 654 ! 655 NOGE(3) = 6 656 ! 657 IDOUT( 3, 1) = '1D Freq. Spectrum ' 658 IDOUT( 3, 2) = 'Mean wave dir. a1b1 ' 659 IDOUT( 3, 3) = 'Mean dir. spr. a1b1 ' 660 IDOUT( 3, 4) = 'Mean wave dir. a2b2 ' 661 IDOUT( 3, 5) = 'Mean dir. spr. a2b2 ' 662 IDOUT( 3, 6) = 'Wavenumber array ' 663 ! 664 ! 4) Spectral Partitions parameters 665 ! 666 NOGE(4) = 8 667 ! 668 IDOUT( 4, 1) = 'Part. wave heigt ' 669 IDOUT( 4, 2) = 'Part. peak period ' 670 IDOUT( 4, 3) = 'Part. peak wave l. ' 671 IDOUT( 4, 4) = 'Part. mean direction' 672 IDOUT( 4, 5) = 'Part. dir. spread ' 673 IDOUT( 4, 6) = 'Part. wind sea frac.' 674 IDOUT( 4, 7) = 'Total wind sea frac.' 675 IDOUT( 4, 8) = 'Number of partitions' 676 ! 677 ! 5) Atmosphere-waves layer 678 ! 679 NOGE(5) = 10 680 ! 681 IDOUT( 5, 1) = 'Friction velocity ' 682 IDOUT( 5, 2) = 'Charnock parameter ' 683 IDOUT( 5, 3) = 'Energy flux ' 684 IDOUT( 5, 4) = 'Wind-wave enrgy flux' Page 13 Source Listing W3NOUT 2014-09-16 16:47 w3odatmd.f90 685 IDOUT( 5, 5) = 'Wind-wave net mom. f' 686 IDOUT( 5, 6) = 'Wind-wave neg.mom.f.' 687 IDOUT( 5, 7) = 'Whitecap coverage ' 688 IDOUT( 5, 8) = 'Whitecap mean thick.' 689 IDOUT( 5, 9) = 'Mean breaking height' 690 IDOUT( 5,10) = 'Dominant break prob ' 691 ! IDOUT( 5,11) = 'Breaker passage rate' 692 ! 693 ! 6) Wave-ocean layer 694 ! 695 NOGE(6) = 9 696 ! 697 IDOUT( 6, 1) = 'Radiation stresses ' 698 IDOUT( 6, 2) = 'Wave-ocean mom. flux' 699 IDOUT( 6, 3) = 'wave ind p Bern Head' 700 IDOUT( 6, 4) = 'Wave-ocean TKE flux' 701 IDOUT( 6, 5) = 'Stokes transport ' 702 IDOUT( 6, 6) = 'Stokes drift at z=0 ' 703 IDOUT( 6, 7) = '2nd order pressure ' 704 IDOUT( 6, 8) = 'Stokes drft spectrum' 705 IDOUT( 6, 9) = '2nd ord press spectr' 706 ! 707 ! 7) Wave-bottom layer 708 ! 709 NOGE(7) = 5 710 ! 711 IDOUT( 7, 1) = 'Bottom rms ampl. ' 712 IDOUT( 7, 2) = 'Bottom rms velocity ' 713 IDOUT( 7, 3) = 'Bedform parameters ' 714 IDOUT( 7, 4) = 'Energy diss. in WBBL' 715 IDOUT( 7, 5) = 'Moment. loss in WBBL' 716 ! IDOUT( 7, 6) = 'Bottom mean period ' 717 ! IDOUT( 7, 7) = 'Bottom mean direct ' 718 ! IDOUT( 7, 8) = 'Bottom direct spread' 719 ! IDOUT( 7, 9) = 'Calc grain rough K_N' 720 ! 721 ! 8) Spectrum parameters 722 ! 723 NOGE(8) = 2 724 ! 725 IDOUT( 8, 1) = 'Mean square slopes ' 726 IDOUT( 8, 2) = 'Philllips tail const' 727 ! IDOUT( 8, 3) = '3rd spectral moment ' 728 ! IDOUT( 8, 4) = '4th spectral moment ' 729 ! IDOUT( 8, 5) = 'Goda peakedness parm' 730 ! IDOUT( 8, 6) = 'Kurtosis ' 731 ! IDOUT( 8, 7) = 'Skewness ' 732 ! 733 ! 9) Numerical diagnostics 734 ! 735 NOGE(9) = 5 736 ! 737 IDOUT( 9, 1) = 'Avg. time step. ' 738 IDOUT( 9, 2) = 'Cut-off freq. ' 739 IDOUT( 9, 3) = 'Maximum spatial CFL ' 740 IDOUT( 9, 4) = 'Maximum angular CFL ' 741 IDOUT( 9, 5) = 'Maximum k advect CFL' Page 14 Source Listing W3NOUT 2014-09-16 16:47 w3odatmd.f90 742 ! IDOUT( 9, 6) = 'Avg intrsp proptstep' 743 ! 744 ! 10) User defined 745 ! 746 NOGE(10) = NOEXTR 747 ! 748 DO I=1, MIN ( 20 , NOEXTR ) 749 WRITE (STRING,'(A14,I2.2,A4)') 'User defined #', I, ' ' 750 IDOUT(10, I) = STRING 751 END DO 752 ! 753 RETURN 754 ! 755 ! Formats 756 ! 757 1001 FORMAT (/' *** ERROR W3NOUT : NGRIDS NOT YET SET *** '/ & 758 ' NGRIDS = ',I10/ & 759 ' RUN W3NMOD FIRST'/) 760 ! 761 !/ 762 !/ End of W3NOUT ----------------------------------------------------- / 763 !/ 764 END SUBROUTINE W3NOUT ENTRY POINTS Name w3odatmd_mp_w3nout_ Page 15 Source Listing W3NOUT 2014-09-16 16:47 Symbol Table w3odatmd.f90 SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 1001 Label 757 541 EXTCDE Subr 521 521,542 FILED Local 603 L(4) 4 scalar TGT 603,1458 FILER Local 601 L(4) 4 scalar TGT 601,1456 FILEW Local 602 L(4) 4 scalar TGT 602,1457 I Local 533 I(4) 4 scalar 555,557,558,559,560,562,563,564,56 5,566,567,568,569,570,571,572,573, 575,577,578,580,581,582,584,585,58 6,587,589,590,591,592,594,595,597, 598,599,600,601,602,603,605,606,61 3,615,748,749,750 IAPROC Local 564 I(4) 4 scalar TGT 564,1354 IDOUT Local 615 CHAR 20 2 200 615,623,624,625,626,627,628,629,63 7,638,639,640,641,642,643,644,645, 646,657,658,659,660,661,662,668,66 9,670,671,672,673,674,675,681,682, 683,684,685,686,687,688,689,690,69 7,698,699,700,701,702,703,704,705, 711,712,713,714,715,725,726,737,73 8,739,740,741,750 IFILE4 Local 594 I(4) 4 scalar TGT 594,1431 IPASS1 Local 580 I(4) 4 scalar TGT 580,1377 IPASS2 Local 584 I(4) 4 scalar TGT 584,1387 IPASS3 Local 589 I(4) 4 scalar TGT 589,1417 IPASS6 Local 605 I(4) 4 scalar TGT 605,1495 J Local 533 I(4) 4 scalar 614,615 MIN Func 548 scalar 548,748 NAPBPT Local 572 I(4) 4 scalar TGT 572,1362 NAPERR Local 567 I(4) 4 scalar TGT 567,1357 NAPFLD Local 568 I(4) 4 scalar TGT 568,1358 NAPLOG Local 565 I(4) 4 scalar TGT 565,1355 NAPOUT Local 566 I(4) 4 scalar TGT 566,1356 NAPPNT Local 569 I(4) 4 scalar TGT 569,1359 NAPPRT Local 573 I(4) 4 scalar TGT 573,1363 NAPROC Local 563 I(4) 4 scalar TGT 563,1353 NAPRST Local 571 I(4) 4 scalar TGT 571,1361 NAPTRK Local 570 I(4) 4 scalar TGT 570,1360 NAUXGR Local 520 I(4) 4 scalar 520,548 NDSE Local 558 I(4) 4 scalar TGT 558,1348 NDSERR Dummy 461 I(4) 4 scalar ARG,IN 541 NDSO Local 557 I(4) 4 scalar TGT 557,1347 NDST Local 559 I(4) 4 scalar TGT 559,1349 NDSTST Dummy 461 I(4) 4 scalar ARG,IN NGRIDS Local 520 I(4) 4 scalar 520,540,541,549,550,555 NGRPP Param 614 I(4) 4 scalar 293,306,307,614 NLOW Local 533 I(4) 4 scalar 548,549,555 NOEXTR Param 746 I(4) 4 scalar 746,748 NOGE Local 621 I(4) 4 1 10 621,635,655,666,679,695,709,723,73 5,746 NOGRP Param 613 I(4) 4 scalar 290,293,306,307,613 NOPTS Local 585 I(4) 4 scalar TGT 585,1388 Page 16 Source Listing W3NOUT 2014-09-16 16:47 Symbol Table w3odatmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References NOSWLL Local 575 I(4) 4 scalar TGT 575,1365 NOUTP Local 550 I(4) 4 scalar 286,550,860,861,1016,1017,1155,115 6,1328,1334,1335 NRQGO Local 581 I(4) 4 scalar TGT 581,1379 NRQGO2 Local 582 I(4) 4 scalar TGT 582,1380 NRQRS Local 595 I(4) 4 scalar TGT 595,1432 NRQTR Local 592 I(4) 4 scalar TGT 592,1421 NTPROC Local 562 I(4) 4 scalar TGT 562,1352 O2INIT Local 586 L(4) 4 scalar TGT 586,865,892,1391 O2IRQI Local 587 L(4) 4 scalar TGT 587,1392 O3INIT Local 590 L(4) 4 scalar TGT 590,1021,1035,1423 O5INI1 Local 597 L(4) 4 scalar TGT 597,1179,1460 O5INI2 Local 598 L(4) 4 scalar TGT 598,1195,1461 O5INI3 Local 599 L(4) 4 scalar TGT 599,1210,1462 O5INI4 Local 600 L(4) 4 scalar TGT 600,1218,1463 O6INIT Local 606 L(4) 4 scalar TGT 606,1510 OUT1 Local 580 OTYPE1 1808 scalar 580,581,582,1377,1378,1379,1380,13 81,1382,1383,1384,1385 OUT2 Local 584 OTYPE2 1368 scalar 584,585,586,587,865,876,877,878,87 9,880,881,882,883,884,885,886,887, 888,889,890,892,1387,1388,1389,139 0,1391,1392,1395,1396,1397,1398,13 99,1400,1401,1402,1403,1404,1405,1 406,1407,1408,1409,1413,1414 OUT3 Local 589 OTYPE3 296 scalar 589,590,591,592,1021,1032,1033,103 5,1417,1418,1419,1420,1421,1422,14 23,1424,1427,1428 OUT4 Local 594 OTYPE4 280 scalar 594,595,1431,1432,1433,1434,1436,1 437,1438 OUT5 Local 597 OTYPE5 1640 scalar 597,598,599,600,601,602,603,1167,1 168,1169,1170,1171,1173,1174,1175, 1176,1177,1179,1183,1184,1185,1186 ,1187,1189,1190,1191,1192,1193,119 5,1199,1200,1201,1202,1204,1205,12 06,1207,1210,1214,1216,1218,1441,1 442,1443,1444,1445,1446,1447,1448, 1449,1450,1451,1452,1453,1454,1455 ,1456,1457,1458,1459,1460,1461,146 2,1463,1466,1467,1468,1469,1470,14 74,1475,1476,1477,1478,1482,1483,1 484,1485,1489,1492,1493 OUT6 Local 605 OTYPE6 256 scalar 605,606,1495,1496,1497,1498,1499,1 500,1501,1502,1503,1504,1505,1506, 1507,1508,1509,1510 OUTPTS Local 549 RECORD 5960 1 1 ALC,TGT 549,557,558,559,560,562,563,564,56 5,566,567,568,569,570,571,572,573, 575,577,578,580,581,582,584,585,58 6,587,589,590,591,592,594,595,597, 598,599,600,601,602,603,605,606,86 5,876,877,878,879,880,881,882,883, 884,885,886,887,888,889,890,892,10 21,1032,1033,1035,1167,1168,1169,1 170,1171,1173,1174,1175,1176,1177, 1179,1183,1184,1185,1186,1187,1189 ,1190,1191,1192,1193,1195,1199,120 Page 17 Source Listing W3NOUT 2014-09-16 16:47 Symbol Table w3odatmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 0,1201,1202,1204,1205,1206,1207,12 10,1214,1216,1218,1347,1348,1349,1 350,1352,1353,1354,1355,1356,1357, 1358,1359,1360,1361,1362,1363,1365 ,1367,1368,1369,1370,1371,1372,137 4,1375,1377,1378,1379,1380,1381,13 82,1383,1384,1385,1387,1388,1389,1 390,1391,1392,1395,1396,1397,1398, 1399,1400,1401,1402,1403,1404,1405 ,1406,1407,1408,1409,1413,1414,141 7,1418,1419,1420,1421,1422,1423,14 24,1427,1428,1431,1432,1433,1434,1 436,1437,1438,1441,1442,1443,1444, 1445,1446,1447,1448,1449,1450,1451 ,1452,1453,1454,1455,1456,1457,145 8,1459,1460,1461,1462,1463,1466,14 67,1468,1469,1470,1474,1475,1476,1 477,1478,1482,1483,1484,1485,1489, 1492,1493,1495,1496,1497,1498,1499 ,1500,1501,1502,1503,1504,1505,150 6,1507,1508,1509,1510 SCREEN Local 560 I(4) 4 scalar TGT 560,1350 STOP Local 591 L(4) 4 scalar TGT 591,1424 STRING Local 534 CHAR 20 scalar 749,750 TBPI0 Local 577 I(4) 4 1 2 577,1370 TBPIN Local 578 I(4) 4 1 2 578,1371 W3GDATMD Module 520 520 W3NOUT Subr 461 W3SERVMD Module 521 521 Page 18 Source Listing W3NOUT 2014-09-16 16:47 w3odatmd.f90 765 !/ ------------------------------------------------------------------- / 766 SUBROUTINE W3DMO2 ( IMOD, NDSE, NDST, NPT ) 767 !/ 768 !/ +-----------------------------------+ 769 !/ | WAVEWATCH III NOAA/NCEP | 770 !/ | H. L. Tolman | 771 !/ | FORTRAN 90 | 772 !/ | Last update : 30-Oct-2009 | 773 !/ +-----------------------------------+ 774 !/ 775 !/ 10-Nov-2004 : Origination. ( version 3.06 ) 776 !/ 24-Jul-2006 : Adding unified point output storage.( version 3.10 ) 777 !/ 25-Jul-2006 : Originating grid ID for points. ( version 3.10 ) 778 !/ 04-Oct-2006 : Add filter to array pointers. ( version 3.10 ) 779 !/ 30-Oct-2009 : Implement curvilinear grid type. ( version 3.14 ) 780 !/ (W. E. Rogers & T. J. Campbell, NRL) 781 !/ 782 ! 1. Purpose : 783 ! 784 ! Initialize an individual data storage for point output. 785 ! 786 ! 2. Method : 787 ! 788 ! Allocate directly into the structure array. Note that 789 ! this cannot be done through the pointer alias! 790 ! 791 ! 3. Parameters : 792 ! 793 ! Parameter list 794 ! ---------------------------------------------------------------- 795 ! IMOD Int. I Model number to point to. 796 ! NDSE Int. I Error output unit number. 797 ! NDST Int. I Test output unit number. 798 ! NPT Int. I Array size. 799 ! ---------------------------------------------------------------- 800 ! 801 ! 4. Subroutines used : 802 ! 803 ! See module documentation below. 804 ! 805 ! 5. Called by : 806 ! 807 ! Name Type Module Description 808 ! ---------------------------------------------------------------- 809 ! W3IOPO Subr. W3IOPOMD Point output module. 810 ! ---------------------------------------------------------------- 811 ! 812 ! 6. Error messages : 813 ! 814 ! - Check on input parameters. 815 ! - Check on previous allocation. 816 ! 817 ! 7. Remarks : 818 ! 819 ! - W3SETO needs to be called after allocation to point to 820 ! proper allocated arrays. 821 ! - Note that NOPTS is overwritten in W3IOPP. Page 19 Source Listing W3DMO2 2014-09-16 16:47 w3odatmd.f90 822 ! 823 ! 8. Structure : 824 ! 825 ! See source code. 826 ! 827 ! 9. Switches : 828 ! 829 ! !/S Enable subroutine tracing. 830 ! !/T Enable test output 831 ! 832 ! 10. Source code : 833 ! 834 !/ ------------------------------------------------------------------- / 835 USE W3GDATMD, ONLY: W3SETG, NGRIDS, NAUXGR, IGRID, NSPEC 836 USE W3SERVMD, ONLY: EXTCDE 837 ! 838 IMPLICIT NONE 839 !/ 840 !/ ------------------------------------------------------------------- / 841 !/ Parameter list 842 !/ 843 INTEGER, INTENT(IN) :: IMOD, NDSE, NDST, NPT 844 !/ 845 !/ ------------------------------------------------------------------- / 846 !/ Local parameters 847 !/ 848 INTEGER :: JGRID, NLOW 849 !/ 850 ! 851 ! -------------------------------------------------------------------- / 852 ! 1. Test input and module status 853 ! 854 IF ( NGRIDS .EQ. -1 ) THEN 855 WRITE (NDSE,1001) 856 CALL EXTCDE (1) 857 END IF 858 ! 859 NLOW = MIN ( 0 , -NAUXGR ) 860 IF ( IMOD.LT.NLOW .OR. IMOD.GT.NOUTP ) THEN 861 WRITE (NDSE,1002) IMOD, NLOW, NOUTP 862 CALL EXTCDE (2) 863 END IF 864 ! 865 IF ( OUTPTS(IMOD)%OUT2%O2INIT ) THEN 866 WRITE (NDSE,1003) 867 CALL EXTCDE (3) 868 END IF 869 ! 870 JGRID = IGRID 871 IF ( JGRID .NE. IMOD ) CALL W3SETG ( IMOD, NDSE, NDST ) 872 ! 873 ! -------------------------------------------------------------------- / 874 ! 2. Allocate arrays 875 ! 876 ALLOCATE ( OUTPTS(IMOD)%OUT2%IPTINT(2,4,NPT) , & 877 OUTPTS(IMOD)%OUT2%IL(NPT) , & 878 OUTPTS(IMOD)%OUT2%IW(NPT) , & Page 20 Source Listing W3DMO2 2014-09-16 16:47 w3odatmd.f90 879 OUTPTS(IMOD)%OUT2%II(NPT) , & 880 OUTPTS(IMOD)%OUT2%PTIFAC(4,NPT) , & 881 OUTPTS(IMOD)%OUT2%PTNME(NPT) , & 882 OUTPTS(IMOD)%OUT2%GRDID(NPT) , & 883 OUTPTS(IMOD)%OUT2%DPO(NPT) , & 884 OUTPTS(IMOD)%OUT2%WAO(NPT) , & 885 OUTPTS(IMOD)%OUT2%WDO(NPT) , & 886 OUTPTS(IMOD)%OUT2%ASO(NPT) , & 887 OUTPTS(IMOD)%OUT2%CAO(NPT) , & 888 OUTPTS(IMOD)%OUT2%CDO(NPT) , & 889 OUTPTS(IMOD)%OUT2%SPCO(NSPEC,NPT) , & 890 OUTPTS(IMOD)%OUT2%PTLOC(2,NPT) ) 891 ! 892 OUTPTS(IMOD)%OUT2%O2INIT = .TRUE. 893 ! 894 ! -------------------------------------------------------------------- / 895 ! 3. Point to allocated arrays 896 ! 897 CALL W3SETO ( IMOD, NDSE, NDST ) 898 ! 899 ! -------------------------------------------------------------------- / 900 ! 4. Update counters in grid 901 ! 902 NOPTS = NPT 903 ! 904 ! -------------------------------------------------------------------- / 905 ! 5. Restore previous grid setting if necessary 906 ! 907 IF ( JGRID .NE. IMOD ) CALL W3SETG ( JGRID, NDSE, NDST ) 908 ! 909 RETURN 910 ! 911 ! Formats 912 ! 913 1001 FORMAT (/' *** ERROR W3DMO2 : GRIDS NOT INITIALIZED *** '/ & 914 ' RUN W3NMOD FIRST '/) 915 1002 FORMAT (/' *** ERROR W3DMO2 : ILLEGAL MODEL NUMBER *** '/ & 916 ' IMOD = ',I10/ & 917 ' NLOW = ',I10/ & 918 ' NOUTP = ',I10/) 919 1003 FORMAT (/' *** ERROR W3DMO2 : ARRAY(S) ALREADY ALLOCATED *** ') 920 ! 921 !/ 922 !/ End of W3DMO2 ----------------------------------------------------- / 923 !/ 924 END SUBROUTINE W3DMO2 Page 21 Source Listing W3DMO2 2014-09-16 16:47 Entry Points w3odatmd.f90 ENTRY POINTS Name w3odatmd_mp_w3dmo2_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 1001 Label 913 855 1002 Label 915 861 1003 Label 919 866 ASO Local 886 R(4) 4 1 1 PTR 886,1404 CAO Local 887 R(4) 4 1 1 PTR 887,1405 CDO Local 888 R(4) 4 1 1 PTR 888,1406 DPO Local 883 R(4) 4 1 1 PTR 883,1401 EXTCDE Subr 836 836,856,862,867 GRDID Local 882 CHAR 10 1 1 PTR 882,1409 IGRID Local 835 I(4) 4 scalar 835,870 II Local 879 I(4) 4 1 1 PTR 879,1398 IL Local 877 I(4) 4 1 1 PTR 877,1396 IMOD Dummy 766 I(4) 4 scalar ARG,IN 860,861,865,871,876,877,878,879,88 0,881,882,883,884,885,886,887,888, 889,890,892,897,907 IPTINT Local 876 I(4) 4 3 1 PTR 876,1395 IW Local 878 I(4) 4 1 1 PTR 878,1397 JGRID Local 848 I(4) 4 scalar 870,871,907 MIN Func 859 scalar 859 NAUXGR Local 835 I(4) 4 scalar 835,859 NDSE Dummy 766 I(4) 4 scalar ARG,IN 855,861,866,871,897,907 NDST Dummy 766 I(4) 4 scalar ARG,IN 871,897,907 NGRIDS Local 835 I(4) 4 scalar 835,854 NLOW Local 848 I(4) 4 scalar 859,860,861 NOPTS Local 902 I(4) 4 scalar PTR 902,1388 NPT Dummy 766 I(4) 4 scalar ARG,IN 876,877,878,879,880,881,882,883,88 4,885,886,887,888,889,890,902 NSPEC Local 835 I(4) 4 scalar PTR 835,889 PTIFAC Local 880 R(4) 4 2 1 PTR 880,1400 PTLOC Local 890 R(4) 4 2 1 PTR 890,1399 PTNME Local 881 CHAR 10 1 1 PTR 881,1408 SPCO Local 889 R(4) 4 2 1 PTR 889,1407 W3DMO2 Subr 766 W3GDATMD Module 835 835 W3SERVMD Module 836 836 W3SETG Subr 835 835,871,907 WAO Local 884 R(4) 4 1 1 PTR 884,1402 WDO Local 885 R(4) 4 1 1 PTR 885,1403 Page 22 Source Listing W3DMO2 2014-09-16 16:47 w3odatmd.f90 925 !/ ------------------------------------------------------------------- / 926 SUBROUTINE W3DMO3 ( IMOD, NDSE, NDST ) 927 !/ 928 !/ +-----------------------------------+ 929 !/ | WAVEWATCH III NOAA/NCEP | 930 !/ | H. L. Tolman | 931 !/ | FORTRAN 90 | 932 !/ | Last update : 04-Oct-2006 ! 933 !/ +-----------------------------------+ 934 !/ 935 !/ 24-Nov-2004 : Origination. ( version 3.06 ) 936 !/ 04-Oct-2006 : Add filter to array pointers. ( version 3.10 ) 937 !/ 938 ! 1. Purpose : 939 ! 940 ! Initialize an individual data storage for track output. 941 ! 942 ! 2. Method : 943 ! 944 ! Allocate directly into the structure array. Note that 945 ! this cannot be done through the pointer alias! 946 ! 947 ! 3. Parameters : 948 ! 949 ! Parameter list 950 ! ---------------------------------------------------------------- 951 ! IMOD Int. I Model number to point to. 952 ! NDSE Int. I Error output unit number. 953 ! NDST Int. I Test output unit number. 954 ! ---------------------------------------------------------------- 955 ! 956 ! 4. Subroutines used : 957 ! 958 ! See module documentation below. 959 ! 960 ! 5. Called by : 961 ! 962 ! Name Type Module Description 963 ! ---------------------------------------------------------------- 964 ! W3IOTR Subr. W3IOTRMD Track output module. 965 ! ---------------------------------------------------------------- 966 ! 967 ! 6. Error messages : 968 ! 969 ! - Check on input parameters. 970 ! - Check on previous allocation. 971 ! 972 ! 7. Remarks : 973 ! 974 ! - W3SETO needs to be called after allocation to point to 975 ! proper allocated arrays. 976 ! 977 ! 8. Structure : 978 ! 979 ! See source code. 980 ! 981 ! 9. Switches : Page 23 Source Listing W3DMO3 2014-09-16 16:47 w3odatmd.f90 982 ! 983 ! !/SHRD, !/DIST, !/MPI 984 ! Shared / distributed memory model 985 ! 986 ! !/S Enable subroutine tracing. 987 ! !/T Enable test output 988 ! 989 ! 10. Source code : 990 ! 991 !/ ------------------------------------------------------------------- / 992 USE W3GDATMD, ONLY: W3SETG, NGRIDS, IGRID, NX, NY 993 USE W3SERVMD, ONLY: EXTCDE 994 ! 995 IMPLICIT NONE 996 !/ 997 !/ ------------------------------------------------------------------- / 998 !/ Parameter list 999 !/ 1000 INTEGER, INTENT(IN) :: IMOD, NDSE, NDST 1001 !/ 1002 !/ ------------------------------------------------------------------- / 1003 !/ Local parameters 1004 !/ 1005 INTEGER :: JGRID 1006 !/ 1007 ! 1008 ! -------------------------------------------------------------------- / 1009 ! 1. Test input and module status 1010 ! 1011 IF ( NGRIDS .EQ. -1 ) THEN 1012 WRITE (NDSE,1001) 1013 CALL EXTCDE (1) 1014 END IF 1015 ! 1016 IF ( IMOD.LT.1 .OR. IMOD.GT.NOUTP ) THEN 1017 WRITE (NDSE,1002) IMOD, NOUTP 1018 CALL EXTCDE (2) 1019 END IF 1020 ! 1021 IF ( OUTPTS(IMOD)%OUT3%O3INIT ) THEN 1022 WRITE (NDSE,1003) 1023 CALL EXTCDE (3) 1024 END IF 1025 ! 1026 JGRID = IGRID 1027 IF ( JGRID .NE. IMOD ) CALL W3SETG ( IMOD, NDSE, NDST ) 1028 ! 1029 ! -------------------------------------------------------------------- / 1030 ! 2. Allocate arrays 1031 ! 1032 ALLOCATE ( OUTPTS(IMOD)%OUT3%MASK1(NY,NX) , & 1033 OUTPTS(IMOD)%OUT3%MASK2(NY,NX) ) 1034 ! 1035 OUTPTS(IMOD)%OUT3%O3INIT = .TRUE. 1036 ! 1037 ! -------------------------------------------------------------------- / 1038 ! 3. Point to allocated arrays Page 24 Source Listing W3DMO3 2014-09-16 16:47 w3odatmd.f90 1039 ! 1040 CALL W3SETO ( IMOD, NDSE, NDST ) 1041 ! 1042 ! -------------------------------------------------------------------- / 1043 ! 4. Update counters in grid 1044 ! 1045 ! -------------------------------------------------------------------- / 1046 ! 5. Restore previous grid setting if necessary 1047 ! 1048 IF ( JGRID .NE. IMOD ) CALL W3SETG ( JGRID, NDSE, NDST ) 1049 ! 1050 RETURN 1051 ! 1052 ! Formats 1053 ! 1054 1001 FORMAT (/' *** ERROR W3DMO3 : GRIDS NOT INITIALIZED *** '/ & 1055 ' RUN W3NMOD FIRST '/) 1056 1002 FORMAT (/' *** ERROR W3DMO3 : ILLEGAL MODEL NUMBER *** '/ & 1057 ' IMOD = ',I10/ & 1058 ' NOUTP = ',I10/) 1059 1003 FORMAT (/' *** ERROR W3DMO3 : ARRAY(S) ALREADY ALLOCATED *** ') 1060 ! 1061 !/ 1062 !/ End of W3DMO3 ----------------------------------------------------- / 1063 !/ 1064 END SUBROUTINE W3DMO3 ENTRY POINTS Name w3odatmd_mp_w3dmo3_ Page 25 Source Listing W3DMO3 2014-09-16 16:47 Symbol Table w3odatmd.f90 SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 1001 Label 1054 1012 1002 Label 1056 1017 1003 Label 1059 1022 EXTCDE Subr 993 993,1013,1018,1023 IGRID Local 992 I(4) 4 scalar 992,1026 IMOD Dummy 926 I(4) 4 scalar ARG,IN 1016,1017,1021,1027,1032,1033,1035 ,1040,1048 JGRID Local 1005 I(4) 4 scalar 1026,1027,1048 MASK1 Local 1032 L(4) 4 2 1 PTR 1032,1427 MASK2 Local 1033 L(4) 4 2 1 PTR 1033,1428 NDSE Dummy 926 I(4) 4 scalar ARG,IN 1012,1017,1022,1027,1040,1048 NDST Dummy 926 I(4) 4 scalar ARG,IN 1027,1040,1048 NGRIDS Local 992 I(4) 4 scalar 992,1011 NX Local 992 I(4) 4 scalar PTR 992,1032,1033 NY Local 992 I(4) 4 scalar PTR 992,1032,1033 W3DMO3 Subr 926 W3GDATMD Module 992 992 W3SERVMD Module 993 993 W3SETG Subr 992 992,1027,1048 Page 26 Source Listing W3DMO3 2014-09-16 16:47 w3odatmd.f90 1065 !/ ------------------------------------------------------------------- / 1066 SUBROUTINE W3DMO5 ( IMOD, NDSE, NDST, IBLOCK ) 1067 !/ 1068 !/ +-----------------------------------+ 1069 !/ | WAVEWATCH III NOAA/NCEP | 1070 !/ | H. L. Tolman | 1071 !/ | FORTRAN 90 | 1072 !/ | Last update : 04-Oct-2006 ! 1073 !/ +-----------------------------------+ 1074 !/ 1075 !/ 13-Dec-2004 : Origination. ( version 3.06 ) 1076 !/ 06-Sep-2005 : Second storage for input bound. sp. ( version 3.08 ) 1077 !/ 04-Oct-2006 : Add filter to array pointers. ( version 3.10 ) 1078 !/ 1079 ! 1. Purpose : 1080 ! 1081 ! Initialize an individual data storage for boundary data. 1082 ! 1083 ! 2. Method : 1084 ! 1085 ! Allocate directly into the structure array. Note that 1086 ! this cannot be done through the pointer alias! 1087 ! 1088 ! 3. Parameters : 1089 ! 1090 ! Parameter list 1091 ! ---------------------------------------------------------------- 1092 ! IMOD Int. I Model number to point to. 1093 ! NDSE Int. I Error output unit number. 1094 ! NDST Int. I Test output unit number. 1095 ! IBLOCK Int. I Select block to allocate. 1096 ! ---------------------------------------------------------------- 1097 ! 1098 ! 4. Subroutines used : 1099 ! 1100 ! See module documentation below. 1101 ! 1102 ! 5. Called by : 1103 ! 1104 ! Name Type Module Description 1105 ! ---------------------------------------------------------------- 1106 ! W3IOBC Subr. W3IOBCMD Boundary data output module. 1107 ! W3IOGR Subr. W3IOGRMD Grid data output module. 1108 ! W3WAVE Subr. W3WAVEMD Actual wave model routine. 1109 ! WW3_GRID Prog. N/A Grid preprocessing program. 1110 ! ---------------------------------------------------------------- 1111 ! 1112 ! 6. Error messages : 1113 ! 1114 ! - Check on input parameters. 1115 ! - Check on previous allocation. 1116 ! 1117 ! 7. Remarks : 1118 ! 1119 ! 8. Structure : 1120 ! 1121 ! See source code. Page 27 Source Listing W3DMO5 2014-09-16 16:47 w3odatmd.f90 1122 ! 1123 ! 9. Switches : 1124 ! 1125 ! !/S Enable subroutine tracing. 1126 ! !/T Enable test output 1127 ! 1128 ! 10. Source code : 1129 ! 1130 !/ ------------------------------------------------------------------- / 1131 USE W3GDATMD, ONLY: W3SETG, NGRIDS, IGRID, NX, NY, NSPEC 1132 USE W3SERVMD, ONLY: EXTCDE 1133 ! 1134 IMPLICIT NONE 1135 !/ 1136 !/ ------------------------------------------------------------------- / 1137 !/ Parameter list 1138 !/ 1139 INTEGER, INTENT(IN) :: IMOD, NDSE, NDST, IBLOCK 1140 !/ 1141 !/ ------------------------------------------------------------------- / 1142 !/ Local parameters 1143 !/ 1144 INTEGER :: JGRID 1145 !/ 1146 ! 1147 ! -------------------------------------------------------------------- / 1148 ! 1. Test input and module status 1149 ! 1150 IF ( NGRIDS .EQ. -1 ) THEN 1151 WRITE (NDSE,1001) 1152 CALL EXTCDE (1) 1153 END IF 1154 ! 1155 IF ( IMOD.LT.1 .OR. IMOD.GT.NOUTP ) THEN 1156 WRITE (NDSE,1002) IMOD, NOUTP 1157 CALL EXTCDE (2) 1158 END IF 1159 ! 1160 ! -------------------------------------------------------------------- / 1161 ! 2. Allocate arrays and reset pointers 1162 ! 1163 SELECT CASE (IBLOCK) 1164 ! 1165 CASE (1) 1166 ! 1167 ALLOCATE ( OUTPTS(IMOD)%OUT5%IPBPI(NBI,4), & 1168 OUTPTS(IMOD)%OUT5%ISBPI(NBI) , & 1169 OUTPTS(IMOD)%OUT5%XBPI(NBI) , & 1170 OUTPTS(IMOD)%OUT5%YBPI(NBI) , & 1171 OUTPTS(IMOD)%OUT5%RDBPI(NBI,4) ) 1172 ! 1173 IPBPI => OUTPTS(IMOD)%OUT5%IPBPI 1174 ISBPI => OUTPTS(IMOD)%OUT5%ISBPI 1175 XBPI => OUTPTS(IMOD)%OUT5%XBPI 1176 YBPI => OUTPTS(IMOD)%OUT5%YBPI 1177 RDBPI => OUTPTS(IMOD)%OUT5%RDBPI 1178 ! Page 28 Source Listing W3DMO5 2014-09-16 16:47 w3odatmd.f90 1179 OUTPTS(IMOD)%OUT5%O5INI1 = .TRUE. 1180 ! 1181 CASE (2) 1182 ! 1183 ALLOCATE ( OUTPTS(IMOD)%OUT5%IPBPO(NBO(NFBPO),4), & 1184 OUTPTS(IMOD)%OUT5%ISBPO(4*NBO(NFBPO)), & 1185 OUTPTS(IMOD)%OUT5%XBPO(NBO(NFBPO)) , & 1186 OUTPTS(IMOD)%OUT5%YBPO(NBO(NFBPO)) , & 1187 OUTPTS(IMOD)%OUT5%RDBPO(NBO(NFBPO),4) ) 1188 ! 1189 IPBPO => OUTPTS(IMOD)%OUT5%IPBPO 1190 ISBPO => OUTPTS(IMOD)%OUT5%ISBPO 1191 XBPO => OUTPTS(IMOD)%OUT5%XBPO 1192 YBPO => OUTPTS(IMOD)%OUT5%YBPO 1193 RDBPO => OUTPTS(IMOD)%OUT5%RDBPO 1194 ! 1195 OUTPTS(IMOD)%OUT5%O5INI2 = .TRUE. 1196 ! 1197 CASE (3) 1198 ! 1199 ALLOCATE ( OUTPTS(IMOD)%OUT5%ABPI0(NSPEC,0:NBI2), & 1200 OUTPTS(IMOD)%OUT5%ABPIN(NSPEC,0:NBI2), & 1201 OUTPTS(IMOD)%OUT5%BBPI0(NSPEC,0:NBI), & 1202 OUTPTS(IMOD)%OUT5%BBPIN(NSPEC,0:NBI) ) 1203 ! 1204 ABPI0 => OUTPTS(IMOD)%OUT5%ABPI0 1205 ABPIN => OUTPTS(IMOD)%OUT5%ABPIN 1206 BBPI0 => OUTPTS(IMOD)%OUT5%BBPI0 1207 BBPIN => OUTPTS(IMOD)%OUT5%BBPIN 1208 BBPI0 = -1. 1209 ! 1210 OUTPTS(IMOD)%OUT5%O5INI3 = .TRUE. 1211 ! 1212 CASE (4) 1213 ! 1214 ALLOCATE ( OUTPTS(IMOD)%OUT5%ABPOS(NSPEC,0:NBO2(NFBPO)) ) 1215 ! 1216 ABPOS => OUTPTS(IMOD)%OUT5%ABPOS 1217 ! 1218 OUTPTS(IMOD)%OUT5%O5INI4 = .TRUE. 1219 ! 1220 CASE DEFAULT 1221 WRITE (NDSE,1010) 1222 CALL EXTCDE (10) 1223 ! 1224 END SELECT 1225 ! 1226 ! -------------------------------------------------------------------- / 1227 ! 1228 RETURN 1229 ! 1230 ! Formats 1231 ! 1232 1001 FORMAT (/' *** ERROR W3DMO5 : GRIDS NOT INITIALIZED *** '/ & 1233 ' RUN W3NMOD FIRST '/) 1234 1002 FORMAT (/' *** ERROR W3DMO5 : ILLEGAL MODEL NUMBER *** '/ & 1235 ' IMOD = ',I10/ & Page 29 Source Listing W3DMO5 2014-09-16 16:47 w3odatmd.f90 1236 ' NOUTP = ',I10/) 1237 1010 FORMAT (/' *** ERROR W3DMO5 : ILLEGAL BLOCK NUMBER *** '/ & 1238 ' IBLOCK = ',I10/) 1239 ! 1240 !/ 1241 !/ End of W3DMO5 ----------------------------------------------------- / 1242 !/ 1243 END SUBROUTINE W3DMO5 ENTRY POINTS Name w3odatmd_mp_w3dmo5_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 1001 Label 1232 1151 1002 Label 1234 1156 1010 Label 1237 1221 ABPI0 Local 1199 R(4) 4 2 1 PTR 1199,1204,1482 ABPI0 Local 1204 R(4) 4 2 1 PTR 1204,1482 ABPIN Local 1200 R(4) 4 2 1 PTR 1200,1205,1483 ABPIN Local 1205 R(4) 4 2 1 PTR 1205,1483 ABPOS Local 1214 R(4) 4 2 1 PTR 1214,1216,1489 ABPOS Local 1216 R(4) 4 2 1 PTR 1216,1489 BBPI0 Local 1201 R(4) 4 2 1 PTR 1201,1206,1484 BBPI0 Local 1206 R(4) 4 2 1 PTR 1206,1208,1484 BBPIN Local 1202 R(4) 4 2 1 PTR 1202,1207,1485 BBPIN Local 1207 R(4) 4 2 1 PTR 1207,1485 EXTCDE Subr 1132 1132,1152,1157,1222 IBLOCK Dummy 1066 I(4) 4 scalar ARG,IN 1163 IGRID Local 1131 I(4) 4 scalar 1131 IMOD Dummy 1066 I(4) 4 scalar ARG,IN 1155,1156,1167,1168,1169,1170,1171 ,1173,1174,1175,1176,1177,1179,118 3,1184,1185,1186,1187,1189,1190,11 91,1192,1193,1195,1199,1200,1201,1 202,1204,1205,1206,1207,1210,1214, 1216,1218 IPBPI Local 1167 I(4) 4 2 1 PTR 1167,1173,1466 IPBPI Local 1173 I(4) 4 2 1 PTR 1173,1466 IPBPO Local 1183 I(4) 4 2 1 PTR 1183,1189,1474 IPBPO Local 1189 I(4) 4 2 1 PTR 1189,1474 ISBPI Local 1168 I(4) 4 1 1 PTR 1168,1174,1467 ISBPI Local 1174 I(4) 4 1 1 PTR 1174,1467 ISBPO Local 1184 I(4) 4 1 1 PTR 1184,1190,1475 ISBPO Local 1190 I(4) 4 1 1 PTR 1190,1475 JGRID Local 1144 I(4) 4 scalar NBI Local 1167 I(4) 4 scalar PTR 1167,1168,1169,1170,1171,1201,1202 ,1441 NBI2 Local 1199 I(4) 4 scalar PTR 1199,1200,1442 NBO Local 1183 I(4) 4 1 1 PTR 1183,1184,1185,1186,1187,1446 NBO2 Local 1214 I(4) 4 1 1 PTR 1214,1447 Page 30 Source Listing W3DMO5 2014-09-16 16:47 Symbol Table w3odatmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References NDSE Dummy 1066 I(4) 4 scalar ARG,IN 1151,1156,1221 NDST Dummy 1066 I(4) 4 scalar ARG,IN NFBPO Local 1183 I(4) 4 scalar PTR 1183,1184,1185,1186,1187,1214,1443 NGRIDS Local 1131 I(4) 4 scalar 1131,1150 NSPEC Local 1131 I(4) 4 scalar PTR 1131,1199,1200,1201,1202,1214 NX Local 1131 I(4) 4 scalar PTR 1131 NY Local 1131 I(4) 4 scalar PTR 1131 RDBPI Local 1171 R(4) 4 2 1 PTR 1171,1177,1470 RDBPI Local 1177 R(4) 4 2 1 PTR 1177,1470 RDBPO Local 1187 R(4) 4 2 1 PTR 1187,1193,1478 RDBPO Local 1193 R(4) 4 2 1 PTR 1193,1478 W3DMO5 Subr 1066 W3GDATMD Module 1131 1131 W3SERVMD Module 1132 1132 W3SETG Subr 1131 1131 XBPI Local 1169 R(4) 4 1 1 PTR 1169,1175,1468 XBPI Local 1175 R(4) 4 1 1 PTR 1175,1468 XBPO Local 1185 R(4) 4 1 1 PTR 1185,1191,1476 XBPO Local 1191 R(4) 4 1 1 PTR 1191,1476 YBPI Local 1170 R(4) 4 1 1 PTR 1170,1176,1469 YBPI Local 1176 R(4) 4 1 1 PTR 1176,1469 YBPO Local 1186 R(4) 4 1 1 PTR 1186,1192,1477 YBPO Local 1192 R(4) 4 1 1 PTR 1192,1477 Page 31 Source Listing W3DMO5 2014-09-16 16:47 w3odatmd.f90 1244 !/ ------------------------------------------------------------------- / 1245 SUBROUTINE W3SETO ( IMOD, NDSERR, NDSTST ) 1246 !/ 1247 !/ +-----------------------------------+ 1248 !/ | WAVEWATCH III NOAA/NCEP | 1249 !/ | H. L. Tolman | 1250 !/ | FORTRAN 90 | 1251 !/ | Last update : 19-Dec-2012 | 1252 !/ +-----------------------------------+ 1253 !/ 1254 !/ 13-Dec-2004 : Origination. ( version 3.06 ) 1255 !/ 06-Sep-2005 : Second storage for input bound. sp. ( version 3.08 ) 1256 !/ 24-Jul-2006 : Adding unified point output storage.( version 3.10 ) 1257 !/ 25-Jul-2006 : Originating grid ID for points. ( version 3.10 ) 1258 !/ 04-Oct-2006 : Add filter to array pointers. ( version 3.10 ) 1259 !/ 30-Oct-2006 : Add pars for partitioning. ( version 3.10 ) 1260 !/ 26-Mar-2007 : Add pars for partitioning. ( version 3.11 ) 1261 !/ 17-May-2007 : Adding NTPROC/NAPROC separation. ( version 3.11 ) 1262 !/ 27-Jul-2010 : Add NKI, NTHI, XFRI, FR1I, TH1I. ( version 3.14.3 ) 1263 !/ 19-Dec-2012 : Move NOSWLL to data structure. ( version 4.11 ) 1264 !/ 1265 ! 1. Purpose : 1266 ! 1267 ! Select one of the WAVEWATCH III grids / models. 1268 ! 1269 ! 2. Method : 1270 ! 1271 ! Point pointers to the proper variables in the proper element of 1272 ! the GRIDS array. 1273 ! 1274 ! 3. Parameters : 1275 ! 1276 ! Parameter list 1277 ! ---------------------------------------------------------------- 1278 ! IMOD Int. I Model number to point to. 1279 ! NDSERR Int. I Error output unit number. 1280 ! NDSTST Int. I Test output unit number. 1281 ! ---------------------------------------------------------------- 1282 ! 1283 ! 4. Subroutines used : 1284 ! 1285 ! See module documentation below. 1286 ! 1287 ! 5. Called by : 1288 ! 1289 ! Many subroutines in the WAVEWATCH system. 1290 ! 1291 ! 6. Error messages : 1292 ! 1293 ! Checks on parameter list IMOD. 1294 ! 1295 ! 7. Remarks : 1296 ! 1297 ! 8. Structure : 1298 ! 1299 ! 9. Switches : 1300 ! Page 32 Source Listing W3SETO 2014-09-16 16:47 w3odatmd.f90 1301 ! !/MPI MPI specific calls. 1302 ! !/S Enable subroutine tracing. 1303 ! !/T Enable test output 1304 ! 1305 ! 10. Source code : 1306 ! 1307 !/ ------------------------------------------------------------------- / 1308 USE W3GDATMD, ONLY: NAUXGR 1309 USE W3SERVMD, ONLY: EXTCDE 1310 ! 1311 IMPLICIT NONE 1312 ! 1313 !/ 1314 !/ ------------------------------------------------------------------- / 1315 !/ Parameter list 1316 !/ 1317 INTEGER, INTENT(IN) :: IMOD, NDSERR, NDSTST 1318 !/ 1319 !/ ------------------------------------------------------------------- / 1320 !/ Local parameters 1321 !/ 1322 INTEGER :: NLOW 1323 !/ 1324 ! 1325 ! -------------------------------------------------------------------- / 1326 ! 1. Test input and module status 1327 ! 1328 IF ( NOUTP .EQ. -1 ) THEN 1329 WRITE (NDSERR,1001) 1330 CALL EXTCDE (1) 1331 END IF 1332 ! 1333 NLOW = MIN ( 0 , -NAUXGR ) 1334 IF ( IMOD.LT.NLOW .OR. IMOD.GT.NOUTP ) THEN 1335 WRITE (NDSERR,1002) IMOD, NLOW, NOUTP 1336 CALL EXTCDE (2) 1337 END IF 1338 ! 1339 ! -------------------------------------------------------------------- / 1340 ! 2. Set model number 1341 ! 1342 IOUTP = IMOD 1343 ! 1344 ! -------------------------------------------------------------------- / 1345 ! 3. Set pointers in structure OUTPUT 1346 ! 1347 NDSO => OUTPTS(IMOD)%NDSO 1348 NDSE => OUTPTS(IMOD)%NDSE 1349 NDST => OUTPTS(IMOD)%NDST 1350 SCREEN => OUTPTS(IMOD)%SCREEN 1351 ! 1352 NTPROC => OUTPTS(IMOD)%NTPROC 1353 NAPROC => OUTPTS(IMOD)%NAPROC 1354 IAPROC => OUTPTS(IMOD)%IAPROC 1355 NAPLOG => OUTPTS(IMOD)%NAPLOG 1356 NAPOUT => OUTPTS(IMOD)%NAPOUT 1357 NAPERR => OUTPTS(IMOD)%NAPERR Page 33 Source Listing W3SETO 2014-09-16 16:47 w3odatmd.f90 1358 NAPFLD => OUTPTS(IMOD)%NAPFLD 1359 NAPPNT => OUTPTS(IMOD)%NAPPNT 1360 NAPTRK => OUTPTS(IMOD)%NAPTRK 1361 NAPRST => OUTPTS(IMOD)%NAPRST 1362 NAPBPT => OUTPTS(IMOD)%NAPBPT 1363 NAPPRT => OUTPTS(IMOD)%NAPPRT 1364 ! 1365 NOSWLL => OUTPTS(IMOD)%NOSWLL 1366 ! 1367 TOFRST => OUTPTS(IMOD)%TOFRST 1368 TONEXT => OUTPTS(IMOD)%TONEXT 1369 TOLAST => OUTPTS(IMOD)%TOLAST 1370 TBPI0 => OUTPTS(IMOD)%TBPI0 1371 TBPIN => OUTPTS(IMOD)%TBPIN 1372 NDS => OUTPTS(IMOD)%NDS 1373 ! 1374 DTOUT => OUTPTS(IMOD)%DTOUT 1375 FLOUT => OUTPTS(IMOD)%FLOUT 1376 ! 1377 IPASS1 => OUTPTS(IMOD)%OUT1%IPASS1 1378 WRITE1 => OUTPTS(IMOD)%OUT1%WRITE1 1379 NRQGO => OUTPTS(IMOD)%OUT1%NRQGO 1380 NRQGO2 => OUTPTS(IMOD)%OUT1%NRQGO2 1381 IF ( NRQGO .NE. 0 ) IRQGO => OUTPTS(IMOD)%OUT1%IRQGO 1382 IF ( NRQGO2 .NE. 0 ) IRQGO2 => OUTPTS(IMOD)%OUT1%IRQGO2 1383 FLOGRD => OUTPTS(IMOD)%OUT1%FLOGRD 1384 FLOGR2 => OUTPTS(IMOD)%OUT1%FLOGR2 1385 FLOG => OUTPTS(IMOD)%OUT1%FLOG 1386 ! 1387 IPASS2 => OUTPTS(IMOD)%OUT2%IPASS2 1388 NOPTS => OUTPTS(IMOD)%OUT2%NOPTS 1389 NRQPO => OUTPTS(IMOD)%OUT2%NRQPO 1390 NRQPO2 => OUTPTS(IMOD)%OUT2%NRQPO2 1391 O2INIT => OUTPTS(IMOD)%OUT2%O2INIT 1392 O2IRQI => OUTPTS(IMOD)%OUT2%O2IRQI 1393 ! 1394 IF ( O2INIT ) THEN 1395 IPTINT => OUTPTS(IMOD)%OUT2%IPTINT 1396 IL => OUTPTS(IMOD)%OUT2%IL 1397 IW => OUTPTS(IMOD)%OUT2%IW 1398 II => OUTPTS(IMOD)%OUT2%II 1399 PTLOC => OUTPTS(IMOD)%OUT2%PTLOC 1400 PTIFAC => OUTPTS(IMOD)%OUT2%PTIFAC 1401 DPO => OUTPTS(IMOD)%OUT2%DPO 1402 WAO => OUTPTS(IMOD)%OUT2%WAO 1403 WDO => OUTPTS(IMOD)%OUT2%WDO 1404 ASO => OUTPTS(IMOD)%OUT2%ASO 1405 CAO => OUTPTS(IMOD)%OUT2%CAO 1406 CDO => OUTPTS(IMOD)%OUT2%CDO 1407 SPCO => OUTPTS(IMOD)%OUT2%SPCO 1408 PTNME => OUTPTS(IMOD)%OUT2%PTNME 1409 GRDID => OUTPTS(IMOD)%OUT2%GRDID 1410 END IF 1411 ! 1412 IF ( O2IRQI ) THEN 1413 IRQPO1 => OUTPTS(IMOD)%OUT2%IRQPO1 1414 IRQPO2 => OUTPTS(IMOD)%OUT2%IRQPO2 Page 34 Source Listing W3SETO 2014-09-16 16:47 w3odatmd.f90 1415 END IF 1416 ! 1417 IPASS3 => OUTPTS(IMOD)%OUT3%IPASS3 1418 IT0PNT => OUTPTS(IMOD)%OUT3%IT0PNT 1419 IT0TRK => OUTPTS(IMOD)%OUT3%IT0TRK 1420 IT0PRT => OUTPTS(IMOD)%OUT3%IT0PRT 1421 NRQTR => OUTPTS(IMOD)%OUT3%NRQTR 1422 IF ( NRQTR .EQ. 0 ) IRQTR => OUTPTS(IMOD)%OUT3%IRQTR 1423 O3INIT => OUTPTS(IMOD)%OUT3%O3INIT 1424 STOP => OUTPTS(IMOD)%OUT3%STOP 1425 ! 1426 IF ( O3INIT ) THEN 1427 MASK1 => OUTPTS(IMOD)%OUT3%MASK1 1428 MASK2 => OUTPTS(IMOD)%OUT3%MASK2 1429 END IF 1430 ! 1431 IFILE4 => OUTPTS(IMOD)%OUT4%IFILE4 1432 NRQRS => OUTPTS(IMOD)%OUT4%NRQRS 1433 NBLKRS => OUTPTS(IMOD)%OUT4%NBLKRS 1434 RSBLKS => OUTPTS(IMOD)%OUT4%RSBLKS 1435 IF ( NRQRS .NE. 0 ) THEN 1436 IRQRS => OUTPTS(IMOD)%OUT4%IRQRS 1437 IRQRSS => OUTPTS(IMOD)%OUT4%IRQRSS 1438 VAAUX => OUTPTS(IMOD)%OUT4%VAAUX 1439 END IF 1440 ! 1441 NBI => OUTPTS(IMOD)%OUT5%NBI 1442 NBI2 => OUTPTS(IMOD)%OUT5%NBI2 1443 NFBPO => OUTPTS(IMOD)%OUT5%NFBPO 1444 NRQBP => OUTPTS(IMOD)%OUT5%NRQBP 1445 NRQBP2 => OUTPTS(IMOD)%OUT5%NRQBP2 1446 NBO => OUTPTS(IMOD)%OUT5%NBO 1447 NBO2 => OUTPTS(IMOD)%OUT5%NBO2 1448 NDSL => OUTPTS(IMOD)%OUT5%NDSL 1449 NKI => OUTPTS(IMOD)%OUT5%NKI 1450 NTHI => OUTPTS(IMOD)%OUT5%NTHI 1451 XFRI => OUTPTS(IMOD)%OUT5%XFRI 1452 FR1I => OUTPTS(IMOD)%OUT5%FR1I 1453 TH1I => OUTPTS(IMOD)%OUT5%TH1I 1454 FLBPI => OUTPTS(IMOD)%OUT5%FLBPI 1455 FLBPO => OUTPTS(IMOD)%OUT5%FLBPO 1456 FILER => OUTPTS(IMOD)%OUT5%FILER 1457 FILEW => OUTPTS(IMOD)%OUT5%FILEW 1458 FILED => OUTPTS(IMOD)%OUT5%FILED 1459 SPCONV => OUTPTS(IMOD)%OUT5%SPCONV 1460 O5INI1 => OUTPTS(IMOD)%OUT5%O5INI1 1461 O5INI2 => OUTPTS(IMOD)%OUT5%O5INI2 1462 O5INI3 => OUTPTS(IMOD)%OUT5%O5INI3 1463 O5INI4 => OUTPTS(IMOD)%OUT5%O5INI4 1464 ! 1465 IF ( O5INI1 ) THEN 1466 IPBPI => OUTPTS(IMOD)%OUT5%IPBPI 1467 ISBPI => OUTPTS(IMOD)%OUT5%ISBPI 1468 XBPI => OUTPTS(IMOD)%OUT5%XBPI 1469 YBPI => OUTPTS(IMOD)%OUT5%YBPI 1470 RDBPI => OUTPTS(IMOD)%OUT5%RDBPI 1471 END IF Page 35 Source Listing W3SETO 2014-09-16 16:47 w3odatmd.f90 1472 ! 1473 IF ( O5INI2 ) THEN 1474 IPBPO => OUTPTS(IMOD)%OUT5%IPBPO 1475 ISBPO => OUTPTS(IMOD)%OUT5%ISBPO 1476 XBPO => OUTPTS(IMOD)%OUT5%XBPO 1477 YBPO => OUTPTS(IMOD)%OUT5%YBPO 1478 RDBPO => OUTPTS(IMOD)%OUT5%RDBPO 1479 END IF 1480 ! 1481 IF ( O5INI3 ) THEN 1482 ABPI0 => OUTPTS(IMOD)%OUT5%ABPI0 1483 ABPIN => OUTPTS(IMOD)%OUT5%ABPIN 1484 BBPI0 => OUTPTS(IMOD)%OUT5%BBPI0 1485 BBPIN => OUTPTS(IMOD)%OUT5%BBPIN 1486 END IF 1487 ! 1488 IF ( O5INI4 ) THEN 1489 ABPOS => OUTPTS(IMOD)%OUT5%ABPOS 1490 END IF 1491 ! 1492 IF ( NRQBP .NE. 0 ) IRQBP1 => OUTPTS(IMOD)%OUT5%IRQBP1 1493 IF ( NRQBP2 .NE. 0 ) IRQBP2 => OUTPTS(IMOD)%OUT5%IRQBP2 1494 ! 1495 IPASS6 => OUTPTS(IMOD)%OUT6%IPASS6 1496 IHMAX => OUTPTS(IMOD)%OUT6%IHMAX 1497 HSPMIN => OUTPTS(IMOD)%OUT6%HSPMIN 1498 WSMULT => OUTPTS(IMOD)%OUT6%WSMULT 1499 WSCUT => OUTPTS(IMOD)%OUT6%WSCUT 1500 IX0 => OUTPTS(IMOD)%OUT6%IX0 1501 IXN => OUTPTS(IMOD)%OUT6%IXN 1502 IXS => OUTPTS(IMOD)%OUT6%IXS 1503 IY0 => OUTPTS(IMOD)%OUT6%IY0 1504 IYN => OUTPTS(IMOD)%OUT6%IYN 1505 IYS => OUTPTS(IMOD)%OUT6%IYS 1506 ICPRT => OUTPTS(IMOD)%OUT6%ICPRT 1507 DTPRT => OUTPTS(IMOD)%OUT6%DTPRT 1508 FLCOMB => OUTPTS(IMOD)%OUT6%FLCOMB 1509 FLFORM => OUTPTS(IMOD)%OUT6%FLFORM 1510 O6INIT => OUTPTS(IMOD)%OUT6%O6INIT 1511 ! 1512 RETURN 1513 ! 1514 ! Formats 1515 ! 1516 1001 FORMAT (/' *** ERROR W3SETO : GRIDS NOT INITIALIZED *** '/ & 1517 ' RUN W3NMOD FIRST '/) 1518 1002 FORMAT (/' *** ERROR W3SETO : ILLEGAL MODEL NUMBER *** '/ & 1519 ' IMOD = ',I10/ & 1520 ' NLOW = ',I10/ & 1521 ' NOUTP = ',I10/) 1522 ! 1523 !/ 1524 !/ End of W3SETO ----------------------------------------------------- / 1525 !/ 1526 END SUBROUTINE W3SETO Page 36 Source Listing W3SETO 2014-09-16 16:47 Entry Points w3odatmd.f90 ENTRY POINTS Name w3odatmd_mp_w3seto_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 1001 Label 1516 1329 1002 Label 1518 1335 ASO Local 1404 R(4) 4 1 1 PTR 1404 CAO Local 1405 R(4) 4 1 1 PTR 1405 CDO Local 1406 R(4) 4 1 1 PTR 1406 DPO Local 1401 R(4) 4 1 1 PTR 1401 DTOUT Local 1374 R(4) 4 1 1 PTR 1374 DTOUT Local 1374 R(4) 4 1 7 1374 DTPRT Local 1507 R(4) 4 2 1 PTR 1507 EXTCDE Subr 1309 1309,1330,1336 FILED Local 1458 L(4) 4 scalar PTR 1458 FILER Local 1456 L(4) 4 scalar PTR 1456 FILEW Local 1457 L(4) 4 scalar PTR 1457 FLBPI Local 1454 L(4) 4 scalar PTR,TGT 1454 FLBPO Local 1455 L(4) 4 scalar PTR,TGT 1455 FLCOMB Local 1508 L(4) 4 scalar PTR,TGT 1508 FLFORM Local 1509 L(4) 4 scalar PTR,TGT 1509 FLOG Local 1385 L(4) 4 1 1 PTR 1385 FLOG Local 1385 L(4) 4 1 10 1385 FLOGR2 Local 1384 L(4) 4 2 1 PTR 1384 FLOGR2 Local 1384 L(4) 4 2 200 1384 FLOGRD Local 1383 L(4) 4 2 1 PTR 1383 FLOGRD Local 1383 L(4) 4 2 200 1383 FLOUT Local 1375 L(4) 4 1 1 PTR 1375 FLOUT Local 1375 L(4) 4 1 7 1375 FR1I Local 1452 R(4) 4 scalar PTR,TGT 1452 GRDID Local 1409 CHAR 10 1 1 PTR 1409 HSPMIN Local 1497 R(4) 4 scalar PTR,TGT 1497 IAPROC Local 1354 I(4) 4 scalar PTR 1354 ICPRT Local 1506 I(4) 4 2 1 PTR 1506 IFILE4 Local 1431 I(4) 4 scalar PTR 1431 IHMAX Local 1496 I(4) 4 scalar PTR,TGT 1496 II Local 1398 I(4) 4 1 1 PTR 1398 IL Local 1396 I(4) 4 1 1 PTR 1396 IMOD Dummy 1245 I(4) 4 scalar ARG,IN 1334,1335,1342,1347,1348,1349,1350 ,1352,1353,1354,1355,1356,1357,135 8,1359,1360,1361,1362,1363,1365,13 67,1368,1369,1370,1371,1372,1374,1 375,1377,1378,1379,1380,1381,1382, 1383,1384,1385,1387,1388,1389,1390 ,1391,1392,1395,1396,1397,1398,139 9,1400,1401,1402,1403,1404,1405,14 06,1407,1408,1409,1413,1414,1417,1 418,1419,1420,1421,1422,1423,1424, Page 37 Source Listing W3SETO 2014-09-16 16:47 Symbol Table w3odatmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 1427,1428,1431,1432,1433,1434,1436 ,1437,1438,1441,1442,1443,1444,144 5,1446,1447,1448,1449,1450,1451,14 52,1453,1454,1455,1456,1457,1458,1 459,1460,1461,1462,1463,1466,1467, 1468,1469,1470,1474,1475,1476,1477 ,1478,1482,1483,1484,1485,1489,149 2,1493,1495,1496,1497,1498,1499,15 00,1501,1502,1503,1504,1505,1506,1 507,1508,1509,1510 IOUTP Local 1342 I(4) 4 scalar 286,1342 IPASS1 Local 1377 I(4) 4 scalar PTR 1377 IPASS2 Local 1387 I(4) 4 scalar PTR 1387 IPASS3 Local 1417 I(4) 4 scalar PTR 1417 IPASS6 Local 1495 I(4) 4 scalar PTR 1495 IPTINT Local 1395 I(4) 4 3 1 PTR 1395 IRQBP1 Local 1492 I(4) 4 1 1 PTR 1492 IRQBP2 Local 1493 I(4) 4 1 1 PTR 1493 IRQGO Local 1381 I(4) 4 1 1 PTR 1381 IRQGO2 Local 1382 I(4) 4 1 1 PTR 1382 IRQPO1 Local 1413 I(4) 4 1 1 PTR 1413 IRQPO2 Local 1414 I(4) 4 1 1 PTR 1414 IRQRS Local 1436 I(4) 4 1 1 PTR 1436 IRQRSS Local 1437 I(4) 4 1 1 PTR 1437 IRQTR Local 1422 I(4) 4 1 1 PTR 1422 IT0PNT Local 1418 I(4) 4 scalar PTR,TGT 1418 IT0PRT Local 1420 I(4) 4 scalar PTR,TGT 1420 IT0TRK Local 1419 I(4) 4 scalar PTR,TGT 1419 IW Local 1397 I(4) 4 1 1 PTR 1397 IX0 Local 1500 I(4) 4 scalar PTR,TGT 1500 IXN Local 1501 I(4) 4 scalar PTR,TGT 1501 IXS Local 1502 I(4) 4 scalar PTR,TGT 1502 IY0 Local 1503 I(4) 4 scalar PTR,TGT 1503 IYN Local 1504 I(4) 4 scalar PTR,TGT 1504 IYS Local 1505 I(4) 4 scalar PTR,TGT 1505 MASK1 Local 1427 L(4) 4 2 1 PTR 1427 MASK2 Local 1428 L(4) 4 2 1 PTR 1428 MIN Func 1333 scalar 1333 NAPBPT Local 1362 I(4) 4 scalar PTR 1362 NAPERR Local 1357 I(4) 4 scalar PTR 1357 NAPFLD Local 1358 I(4) 4 scalar PTR 1358 NAPLOG Local 1355 I(4) 4 scalar PTR 1355 NAPOUT Local 1356 I(4) 4 scalar PTR 1356 NAPPNT Local 1359 I(4) 4 scalar PTR 1359 NAPPRT Local 1363 I(4) 4 scalar PTR 1363 NAPROC Local 1353 I(4) 4 scalar PTR 1353 NAPRST Local 1361 I(4) 4 scalar PTR 1361 NAPTRK Local 1360 I(4) 4 scalar PTR 1360 NAUXGR Local 1308 I(4) 4 scalar 1308,1333 NBI Local 1441 I(4) 4 scalar TGT 1441 NBI2 Local 1442 I(4) 4 scalar TGT 1442 NBLKRS Local 1433 I(4) 4 scalar PTR,TGT 1433 NBO Local 1446 I(4) 4 1 10 1446 NBO2 Local 1447 I(4) 4 1 10 1447 NDS Local 1372 I(4) 4 1 1 PTR 1372 Page 38 Source Listing W3SETO 2014-09-16 16:47 Symbol Table w3odatmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References NDS Local 1372 I(4) 4 1 13 1372 NDSE Local 1348 I(4) 4 scalar PTR 1348 NDSERR Dummy 1245 I(4) 4 scalar ARG,IN 1329,1335 NDSL Local 1448 I(4) 4 1 1 PTR 1448 NDSL Local 1448 I(4) 4 1 9 1448 NDSO Local 1347 I(4) 4 scalar PTR 1347 NDST Local 1349 I(4) 4 scalar PTR 1349 NDSTST Dummy 1245 I(4) 4 scalar ARG,IN NFBPO Local 1443 I(4) 4 scalar TGT 1443 NKI Local 1449 I(4) 4 scalar PTR,TGT 1449 NLOW Local 1322 I(4) 4 scalar 1333,1334,1335 NOSWLL Local 1365 I(4) 4 scalar PTR 1365 NRQBP Local 1444 I(4) 4 scalar PTR,TGT 1444,1492 NRQBP2 Local 1445 I(4) 4 scalar PTR,TGT 1445,1493 NRQGO Local 1379 I(4) 4 scalar PTR 1379,1381 NRQGO2 Local 1380 I(4) 4 scalar PTR 1380,1382 NRQPO Local 1389 I(4) 4 scalar PTR,TGT 1389 NRQPO2 Local 1390 I(4) 4 scalar PTR,TGT 1390 NRQRS Local 1432 I(4) 4 scalar PTR 1432,1435 NRQTR Local 1421 I(4) 4 scalar PTR 1421,1422 NTHI Local 1450 I(4) 4 scalar PTR,TGT 1450 NTPROC Local 1352 I(4) 4 scalar PTR 1352 O2INIT Local 1391 L(4) 4 scalar PTR 1391,1394 O2IRQI Local 1392 L(4) 4 scalar PTR 1392,1412 O3INIT Local 1423 L(4) 4 scalar PTR 1423,1426 O5INI1 Local 1460 L(4) 4 scalar PTR 1460,1465 O5INI2 Local 1461 L(4) 4 scalar PTR 1461,1473 O5INI3 Local 1462 L(4) 4 scalar PTR 1462,1481 O5INI4 Local 1463 L(4) 4 scalar PTR 1463,1488 O6INIT Local 1510 L(4) 4 scalar PTR 1510 PTIFAC Local 1400 R(4) 4 2 1 PTR 1400 PTLOC Local 1399 R(4) 4 2 1 PTR 1399 PTNME Local 1408 CHAR 10 1 1 PTR 1408 RSBLKS Local 1434 I(4) 4 scalar PTR,TGT 1434 SCREEN Local 1350 I(4) 4 scalar PTR 1350 SPCO Local 1407 R(4) 4 2 1 PTR 1407 SPCONV Local 1459 L(4) 4 scalar PTR,TGT 1459 STOP Local 1424 L(4) 4 scalar PTR 1424 TBPI0 Local 1370 I(4) 4 1 1 PTR 1370 TBPIN Local 1371 I(4) 4 1 1 PTR 1371 TH1I Local 1453 R(4) 4 scalar PTR,TGT 1453 TOFRST Local 1367 I(4) 4 1 1 PTR 1367 TOFRST Local 1367 I(4) 4 1 2 1367 TOLAST Local 1369 I(4) 4 2 1 PTR 1369 TOLAST Local 1369 I(4) 4 2 14 1369 TONEXT Local 1368 I(4) 4 2 1 PTR 1368 TONEXT Local 1368 I(4) 4 2 14 1368 VAAUX Local 1438 R(4) 4 3 1 PTR 1438 W3GDATMD Module 1308 1308 W3SERVMD Module 1309 1309 W3SETO Subr 1245 897,1040 WAO Local 1402 R(4) 4 1 1 PTR 1402 WDO Local 1403 R(4) 4 1 1 PTR 1403 WRITE1 Local 1378 L(4) 4 scalar PTR,TGT 1378 WSCUT Local 1499 R(4) 4 scalar PTR,TGT 1499 Page 39 Source Listing W3SETO 2014-09-16 16:47 Symbol Table w3odatmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References WSMULT Local 1498 R(4) 4 scalar PTR,TGT 1498 XFRI Local 1451 R(4) 4 scalar PTR,TGT 1451 Page 40 Source Listing W3SETO 2014-09-16 16:47 w3odatmd.f90 1527 !/ 1528 !/ End of module W3ODATMD -------------------------------------------- / 1529 !/ 1530 END MODULE W3ODATMD SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References FNMPRE Local 294 CHAR 80 scalar 294 IOSTYP Local 286 I(4) 4 scalar 286 NOTYPE Local 291 I(4) 4 scalar OTYPE1 Type 302 1808 scalar 308,374 OTYPE2 Type 310 1368 scalar 321,375 OTYPE3 Type 323 296 scalar 329,376 OTYPE4 Type 331 280 scalar 336,377 OTYPE5 Type 338 1640 scalar 353,378 OTYPE6 Type 355 256 scalar 362,379 OUTPUT Type 364 5960 scalar 380,384 UNDEF Local 295 R(4) 4 scalar 295 UNIPTS Local 296 L(4) 4 scalar 296 UPPROC Local 296 L(4) 4 scalar 296 W3ODATMD Module 2 Page 41 Source Listing W3SETO 2014-09-16 16:47 Subprograms/Common Blocks w3odatmd.f90 SUBPROGRAMS/COMMON BLOCKS Name Object Declared Type Bytes Dimen Elements Attributes References W3DMO2 Subr 766 W3DMO3 Subr 926 W3DMO5 Subr 1066 W3NOUT Subr 461 W3ODATMD Module 2 W3SETO Subr 1245 897,1040 COMPILER OPTIONS BEING USED -align nocommons -align nodcommons -align noqcommons -align records -align nosequence -align norec1byte -align norec2byte -align norec4byte -align norec8byte -align norec16byte -altparam -assume accuracy_sensitive -assume nobscc -assume nobuffered_io -assume byterecl -assume cc_omp -assume nocstring -assume nodummy_aliases -assume nofpe_summary -assume noieee_fpe_flags -assume nominus0 -assume noold_boz -assume old_unit_star -assume old_ldout_format -assume noold_logical_ldio -assume old_maxminloc -assume old_xor -assume protect_constants -assume noprotect_parens -assume split_common -assume source_include -assume nostd_intent_in -assume nostd_mod_proc_name -assume norealloc_lhs -assume underscore -assume no2underscores -auto no -auto_scalar no -bintext -ccdefault default -check noargs -check noarg_temp_created -check nobounds -check noformat -check nooutput_conversion -check nooverflow -check nopointers -check power -check noshape -check nounderflow -check nouninitialized -coarray-num-procs 0 no -coarray-config-file -convert big_endian -cross_reference -D __INTEL_COMPILER=1210 -D __unix__ -D __unix -D __linux__ -D __linux -D __gnu_linux__ -D unix -D linux -D __ELF__ -D __x86_64 -D __x86_64__ -D _MT -D __INTEL_COMPILER_BUILD_DATE=20120612 -D _OPENMP=201107 -D __pentium4 -D __pentium4__ -D __tune_pentium4__ -D __SSE2__ -D __SSE3__ -D __SSSE3__ -D __SSE4_1__ -D __SSE4_2__ -D __SSE__ -D __MMX__ -D __AVX__ -double_size 64 no -d_lines no -Qdyncom -error_limit 30 Page 42 Source Listing W3SETO 2014-09-16 16:47 w3odatmd.f90 no -f66 no -f77rtl no -fast -fpscomp nofilesfromcmd -fpscomp nogeneral -fpscomp noioformat -fpscomp noldio_spacing -fpscomp nologicals no -fpconstant -fpe3 -fprm nearest no -ftz -fp_model noprecise -fp_model fast -fp_model nostrict -fp_model nosource -fp_model nodouble -fp_model noextended -fp_model novery_fast -fp_model noexcept -fp_model nono_except -heap_arrays 0 no -threadprivate_compat -free -g0 -iface nomixed_str_len_arg -iface nono_mixed_str_len_arg no -intconstant -integer_size 32 no -mixed_str_len_arg no -module -names lowercase no -noinclude -openmp -O2 no -pad_source -real_size 32 no -recursive -reentrancy threaded no -sharable_localsaves -vec=simd -show noinclude -show map -show options no -syntax_only no -threadcom no -U no -vms -w noall -w nonone -w alignments -w noargument_checking -w nodeclarations -w general -w noignore_bounds -w noignore_loc -w nointerfaces -w notruncated_source -w uncalled -w uninitialized -w nounused -w usage -includepath : /usrx/local/intel/composerxe/tbb/include/,/usr/include/,./,/usrx/local/intel/impi/4.0.3.008/intel64/include/, /usrx/local/intel/impi/4.0.3.008/intel64/include/,/usrx/local/intel/composerxe/mkl/include/,/usrx/local/intel/composerxe/tbb/include/, /gpfs/gp1/usrx/local/intel/composer_xe_2011_sp1.11.339/compiler/include/intel64/,/gpfs/gp1/usrx/local/intel/composer_xe_2011_sp1.11.339/compiler/include/, /usr/local/include/,/usr/lib/gcc/x86_64-redhat-linux/4.4.7/include/,/usr/include/,/usr/include/ -list filename : w3odatmd.lst -o filename : none COMPILER: Intel(R) Fortran 12.1-2100