Page 1 Source Listing W3NAUX 2014-09-16 16:47 w3adatmd.f90 1 MODULE W3ADATMD 2 !/ 3 !/ +-----------------------------------+ 4 !/ | WAVEWATCH III NOAA/NCEP | 5 !/ | H. L. Tolman | 6 !/ | FORTRAN 90 | 7 !/ | Last update : 14-Nov-2013 | 8 !/ +-----------------------------------+ 9 !/ 10 !/ 28-Dec-2004 : Origination. ( version 3.06 ) 11 !/ 04-May-2005 : Adding MPI_COMM_WAVE. ( version 3.07 ) 12 !/ 20-Jul-2005 : Adding output fields. ( version 3.07 ) 13 !/ 09-Nov-2005 : Removing soft boundary option. ( version 3.08 ) 14 !/ 13-Jun-2006 : Splitting STORE in G/SSTORE. ( version 3.09 ) 15 !/ 04-Oct-2006 : Add filter to array pointers. ( version 3.10 ) 16 !/ 28_Mar-2007 : Add partitioned data arrays. ( version 3.11 ) 17 !/ Add aditional undefined arrays. 18 !/ 22-Feb-2008 ; Modify MAPTH2 declaration. ( version 3.13 ) 19 !/ 29-May-2009 : Preparing distribution version. ( version 3.14 ) 20 !/ 29-Oct-2010 : Adding unstructured grid data. ( version 3.14 ) 21 !/ (A. Roland and F. Ardhuin) 22 !/ 31-Oct-2010 : Adding output parameters ( version 3.14 ) 23 !/ 12-Dec-2012 : Adding SMC grid. JG_Li ( version 4.08 ) 24 !/ 26-Dec-2012 : Memory reduction for outputs. ( version 4.11 ) 25 !/ Add W3XETA. 26 !/ 28-Jun-2013 : Bug fix initialization P2SMS. ( version 4.11 ) 27 !/ 11-Nov-2013 : SMC and rotated grid incorporated in the main 28 !/ trunk ( version 4.13 ) 29 !/ 14-Nov-2013 : Move orphaned arrays as scalar to W3SRCE. 30 !/ Here update of documentation only. 31 !/ (Z0S, CDS, EMN, FMN, WNM, AMX) ( version 4.13 ) 32 ! 33 !/ 34 !/ Copyright 2009-2013 National Weather Service (NWS), 35 !/ National Oceanic and Atmospheric Administration. All rights 36 !/ reserved. WAVEWATCH III is a trademark of the NWS. 37 !/ No unauthorized use without permission. 38 !/ 39 ! 1. Purpose : 40 ! 41 ! Define data structures to set up wave model auxiliary daya for 42 ! several models simultaneously. 43 ! 44 ! 2. Variables and types : 45 ! 46 ! Name Type Scope Description 47 ! ---------------------------------------------------------------- 48 ! NADATA Int. Public Number of models in array dim. 49 ! IADATA Int. Public Selected model for output, init. at -1. 50 ! MPIBUF I.P. Public Number of buffer arrays for 'hidden' 51 ! MPI communications (no hiding for 52 ! MPIBUF = 1). 53 ! WADAT TYPE Public Basic data structure. 54 ! WADATS WADAT Public Array of data structures. 55 ! ---------------------------------------------------------------- 56 ! 57 ! All elements of WADAT are aliased to pointers with the same Page 2 Source Listing W3NAUX 2014-09-16 16:47 w3adatmd.f90 58 ! name. These pointers are defined as : 59 ! 60 ! Name Type Scope Description 61 ! ---------------------------------------------------------------- 62 ! Internal model definition: 63 ! 64 ! CG R.A. Public Group velocities for all wave model 65 ! sea points and frequencies. 66 ! WN R.A. Public Idem, wavenumbers. 67 ! 68 ! Aux. arrays for model input: 69 ! 70 ! CA0-I R.A. Public Absolute current velocity (initial 71 ! and inc.) in W3UCUR. 72 ! CD0-I R.A. Public Current direction (initial and 73 ! increment) in W3UCUR. 74 ! UA0-I R.A. Public Absolute wind speeds (initial and 75 ! incr.) in W3UWND (m/s) 76 ! UD0-I R.A. Public Wind direction (initial and incr.) 77 ! in W3UWND (rad) 78 ! AS0-I R.A. Public Stability par. (initial and incr.) 79 ! in W3UWND (degr) 80 ! ATRNX/Y R.A. Public Actual transparency info. 81 ! 82 ! Fields of mean wave parameters: 83 ! 84 ! DW R.A. Public Water depths. 85 ! UA R.A. Public Absolute wind speeds. 86 ! UD R.A. Public Absolute wind direction. 87 ! U10 R.A. Public Wind speed used. 88 ! U10D R.A. Public Wind direction used. 89 ! AS R.A. Public Stability parameter. 90 ! CX/Y R.A. Public Current components. 91 ! 92 ! HS R.A. Public Wave Height. 93 ! WLM R.A. Public Mean wave length. 94 ! T02 R.A. Public Mean wave period (m0,2). 95 ! T0M1 R.A. Public Mean wave period (m0,-1). 96 ! T01 R.A. Public Mean wave period (m0,1). 97 ! FP0 R.A. Public Peak frequency. 98 ! THM R.A. Public Mean wave direction. 99 ! THS R.A. Public Mean directional spread. 100 ! THP0 R.A. Public Peak direction. 101 ! 102 ! CHARN R.A. Public Charnock parameter for air-sea friction. 103 ! CGE R.A. Public Energy flux. 104 ! PHIAW R.A. Public Wind to wave energy flux. 105 ! TAUWIX/Y R.A. Public Wind to wave energy flux. 106 ! TAUWNX/Y R.A. Public Wind to wave energy flux. 107 ! WHITECAP R.A. Public 1 : Whitecap coverage 108 ! 2 : Whitecap thickness 109 ! 3 : Mean breaking height 110 ! 4 : Mean breaking height 111 ! 112 ! Sxx R.A. Public Radiation stresses. 113 ! TAUOX/Y R.A. Public Wave-ocean momentum flux. 114 ! BHD R.A. Public Wave-induced pressure (J term, Smith JPO 2006) Page 3 Source Listing W3NAUX 2014-09-16 16:47 w3adatmd.f90 115 ! PHIOC R.A. Public Waves to ocean energy flux. 116 ! TUSX/Y R.A. Public Volume transport associated to Stokes drift. 117 ! USSX/Y R.A. Public Surface Stokes drift. 118 ! 119 ! US3D R.A. Public 3D Stokes drift. 120 ! 121 ! ABA R.A. Public Near-bottom rms wave ex. apmplitude. 122 ! ABD R.A. Public Corresponding direction. 123 ! UBA R.A. Public Near-bottom rms wave velocity. 124 ! UBD R.A. Public Corresponding direction. 125 ! BEDFORMS R.A. Public Bed for parameters 126 ! PHIBBL R.A. Public Energy loss in WBBL. 127 ! TAUBBL R.A. Public Momentum loss in WBBL. 128 ! 129 ! MSSX/Y R.A. Public Surface mean square slopes in X and Y direction. 130 ! MSCX/Y R.A. Public Phillips constant. 131 ! 132 ! DTDYN R.A. Public Mean dynamic time step (raw). 133 ! FCUT R.A. Public Cut-off frequency for tail. 134 ! CFLXYMAX R.A. Public Max. CFL number for spatial advection. 135 ! CFLTHMAX R.A. Public Max. CFL number for refraction. 136 ! CFLKMAX R.A. Public Max. CFL number for wavenumber shift. 137 ! 138 ! Old parameters not yet in new structure ... 139 ! 140 ! FP1 R.A. Public Wind sea peak frequency. (parked in 2) 141 ! THP1 R.A. Public Wind sea peak direction. (parked in 2) 142 ! 143 ! Orphans, commented out here, now automatic arrays in W3WAVE, .... 144 ! 145 ! DRAT R.A. Public Density ration air/water. Was 146 ! placeholder only. Now scalar in W3SRCE, 147 ! TAUWX/Y R.A. Public Stresses particularly for PALM. 148 ! 149 ! Derivatives in space .... 150 ! 151 ! DDDx R.A. Public Spatial derivatives of the depth. 152 ! DCxDx R.A. Public Spatial dirivatives of the current. 153 ! 154 ! Mean parameters from partitiones spectra, 2D array with el. 155 ! 0 holding wind sea data, and 1:NOSWLL holding swell fields. 156 ! Last two arrays are regular single-entry arrays. 157 ! 158 ! PHS R.A. Public Wave height of partition. 159 ! PTP R.A. Public Peak period of partition. 160 ! PLP R.A. Public Peak wave leingth of partition. 161 ! PTH R.A. Public Mean direciotn of partition. 162 ! PSI R.A. Public Mean spread of partition. 163 ! PWS R.A. Public Wind sea fraction of partition. 164 ! 165 ! PWST R.A. Public Total wind sea fraction. 166 ! PNR R.A. Public Number of partitions found. 167 ! 168 ! Empty dummy fields (NOEXTR) 169 ! 170 ! USERO R.A. Public Empty output arrays than can be 171 ! used by users as a simple means to Page 4 Source Listing W3NAUX 2014-09-16 16:47 w3adatmd.f90 172 ! add output. 173 ! 174 ! Map data for propagation schemes (1Up). 175 ! 176 ! IS0/2 I.A. Public Spectral propagation maps. 177 ! FACVX/Y R.A. Public Spatial propagation factor map. 178 ! 179 ! Map data for propagation schemes (UQ). 180 ! 181 ! NMXn Int. Public Counters for MAPX2, see W3MAP3. 182 ! NMYn Int. Public 183 ! NMXY Int. Public Dimension of MAPXY. 184 ! NACTn Int. Public Dimension of MAPAXY. 185 ! NCENT Int. Public Dimension of MAPAXY. 186 ! MAPX2 I.A. Public Map for prop. in 'x' (longitude) dir. 187 ! MAPY2 I.A. Public Idem in y' (latitude) direction. 188 ! MAPXY I.A. Public 189 ! MAPAXY I.A. Public List of active points used in W3QCK1. 190 ! MAPCXY I.A. Public List of central points used in avg. 191 ! MAPTH2 I.A. Public Like MAPX2 for refraction (rotated 192 ! and shifted, see W3KTP3). Like MAPAXY. 193 ! MAPWN2 I.A. Public Like MAPX2 for wavenumber shift. 194 ! MAPTRN L.A. Public Map to block out GSE mitigation in 195 ! proper grid points. 196 ! 197 ! Nonlinear interactions ( !/NL1 ) : 198 ! 199 ! NFR Int. Public Nuber of frequencies ( NFR = NK ) 200 ! NFRHGH Int. Public Auxiliary frequency counter. 201 ! NFRCHG Int. Public Id. 202 ! NSPECX-Y Int. Public Auxiliary spectral counter. 203 ! IPnn I.A. Public Spectral address for Snl. 204 ! IMnn I.A. Public Id. 205 ! ICnn I.A. Public Id. 206 ! DALn Real Public Lambda dependend weight factors. 207 ! AWGn Real Public Interpolation weights for Snl. 208 ! SWGn Real Public Interpolation weights for diag. term. 209 ! AF11 R.A. Public Scaling array (f**11) 210 ! NLINIT Log. Public Flag for initialization. 211 ! 212 ! MPP / MPI variables : 213 ! 214 ! IAPPRO I.A. Public Processor numbers for propagation calc. 215 ! for each spectral component. 216 ! MPI_COMM_WAVE 217 ! Int. Public Communicator used in the wave model. 218 ! MPI_COMM_WCMP 219 ! Int. Public Idem, computational proc. only. 220 ! WW3_FIELD_VEC, WW3_SPEC_VEC 221 ! Int. Public MPI derived vecor types. 222 ! NRQSG1 Int. Public Number of handles in IRQSG1. 223 ! NRQSG2 Int. Public Number of handles in IRQSG2. 224 ! IBFLOC Int. Public Present active buffer number. 225 ! ISPLOC Int. Public Corresponding local spectral bin number 226 ! (1,NSPLOC,1). 227 ! NSPLOC Int. Public Total number of spectral bins for which 228 ! prop. is performed on present CPU. Page 5 Source Listing W3NAUX 2014-09-16 16:47 w3adatmd.f90 229 ! BSTAT I.A. Public Status of buffer (size MPIBUF): 230 ! 0: Inactive. 231 ! 1: A --> STORE (active or finished). 232 ! 2: STORE --> A (active or finished). 233 ! BISPL I.A. Public Local spectral bin number for buffer 234 ! (size MPIBUF). 235 ! IRQSG1 I.A. Public MPI request handles for scatters and 236 ! gathers to A() (persistent). 237 ! IRQSG2 I.A. Public MPI request handles for gathers and 238 ! scatters to STORE (persistent). 239 ! G/SSTORE R.A. Public Communication buffer (NSEA,MPIBUF). 240 ! SPPNT R.A. Public Point output buffer. 241 ! 242 ! Other: 243 ! 244 ! ITIME Int. Public Discrete time step counter. 245 ! IPASS Int. Public Pass counter for log file. 246 ! IDLAST Int. Public Last day ID for log file. 247 ! NSEALM Int. Public Maximum number of local sea points. 248 ! ALPHA R.A. Public Phillips' alpha. 249 ! FLCOLD Log. Public Flag for 'cold start' of model. 250 ! FLIWND Log. Public Flag for initialization of model 251 ! based on wind. 252 ! AINIT(2) Log. Public Flag for array initialization. 253 ! FL_ALL Log. Public Flag for all/partial initialization. 254 ! ---------------------------------------------------------------- 255 ! 256 ! 3. Subroutines and functions : 257 ! 258 ! Name Type Scope Description 259 ! ---------------------------------------------------------------- 260 ! W3NAUX Subr. Public Set number of grids/models. 261 ! W3DIMA Subr. Public Set dimensions of arrays. 262 ! W3DMNL Subr. Public Set dimensions of arrays. ( !/NL1 ) 263 ! W3SETA Subr. Public Point to selected grid / model. 264 ! W3XETA Subr. Public Like W3SETA for expanded output arrays. 265 ! ---------------------------------------------------------------- 266 ! 267 ! 4. Subroutines and functions used : 268 ! 269 ! Name Type Module Description 270 ! ---------------------------------------------------------------- 271 ! W3SETG Subr. W3GDATMD Point to proper model grid. 272 ! STRACE Subr. W3SERVMD Subroutine tracing. 273 ! EXTCDE Subr. W3SERVMD Abort program with exit code. 274 ! ---------------------------------------------------------------- 275 ! 276 ! 5. Remarks : 277 ! 278 ! - The number of grids is taken from W3GDATMD, and needs to be 279 ! set first with W3DIMG. 280 ! 281 ! 6. Switches : 282 ! 283 ! !/SHRD, !/DIST, !/MPI 284 ! Shared / distributed memory model 285 ! Page 6 Source Listing W3NAUX 2014-09-16 16:47 w3adatmd.f90 286 ! !/PRn Propagation scheme selection. 287 ! 288 ! !/S Enable subroutine tracing. 289 ! !/T Enable test output 290 ! 291 ! 7. Source code : 292 ! 293 !/ ------------------------------------------------------------------- / 294 PUBLIC 295 !/ 296 !/ Conventional declarations 297 !/ 298 INTEGER :: NADATA = -1, IADATA = -1 299 INTEGER, PARAMETER :: MPIBUF = 6 300 !/ 301 !/ Data structure WADAT 302 !/ 303 TYPE WADAT 304 ! 305 ! The grid 306 ! 307 REAL, POINTER :: CG(:,:), WN(:,:) 308 ! 309 ! Arrays for processing model input 310 ! 311 REAL, POINTER :: CA0(:), CAI(:), CD0(:), CDI(:), & 312 UA0(:), UAI(:), UD0(:), UDI(:), & 313 AS0(:), ASI(:), ATRNX(:,:), ATRNY(:,:) 314 ! 315 ! Output fields group 1) 316 ! 317 REAL, POINTER :: DW(:), UA(:), UD(:), U10(:), U10D(:),& 318 AS(:), CX(:), CY(:) 319 ! 320 ! Output fields group 2) 321 ! 322 REAL, POINTER :: HS(:), WLM(:), T02(:), T0M1(:), & 323 T01 (:), FP0(:), THM(:), & 324 THS(:), THP0(:), FP1(:), THP1(:) 325 REAL, POINTER :: XHS(:), XWLM(:), XT02(:), XT0M1(:), & 326 XT01 (:), XFP0(:), XTHM(:), & 327 XTHS(:), XTHP0(:), XFP1(:), XTHP1(:) 328 ! 329 ! Output fields group 3) 330 ! 331 REAL, POINTER :: EF(:,:), TH1M(:,:), STH1M(:,:), & 332 TH2M(:,:), STH2M(:,:) !, WN(:,:) 333 REAL, POINTER :: XEF(:,:), XTH1M(:,:), XSTH1M(:,:),& 334 XTH2M(:,:), XSTH2M(:,:) !, XWN(:,:) 335 ! 336 ! Output fields group 4) 337 ! 338 REAL, POINTER :: PHS(:,:), PTP(:,:), PLP(:,:), & 339 PTH(:,:), PSI(:,:), PWS(:,:), & 340 PWST(:), PNR(:) 341 REAL, POINTER :: XPHS(:,:), XPTP(:,:), XPLP(:,:), & 342 XPTH(:,:), XPSI(:,:), XPWS(:,:), & Page 7 Source Listing W3NAUX 2014-09-16 16:47 w3adatmd.f90 343 XPWST(:), XPNR(:) 344 ! 345 ! Output fields group 5) 346 ! 347 REAL, POINTER :: CHARN(:), CGE(:), PHIAW(:), & 348 TAUWIX(:), TAUWIY(:), TAUWNX(:), & 349 TAUWNY(:), WHITECAP(:,:) 350 REAL, POINTER :: XCHARN(:), XCGE(:), XPHIAW(:), & 351 XTAUWIX(:), XTAUWIY(:), XTAUWNX(:), & 352 XTAUWNY(:), XWHITECAP(:,:) 353 ! 354 ! Output fields group 6) 355 ! 356 REAL, POINTER :: SXX(:), SYY(:), SXY(:), TAUOX(:),& 357 TAUOY(:), BHD(:), PHIOC(:), & 358 TUSX(:), TUSY(:), USSX(:), & 359 USSY(:), PRMS(:), TPMS(:) 360 REAL, POINTER :: P2SMS(:,:), US3D(:,:) 361 REAL, POINTER :: XSXX(:), XSYY(:), XSXY(:), XTAUOX(:),& 362 XTAUOY(:), XBHD(:), XPHIOC(:), & 363 XTUSX(:), XTUSY(:), XUSSX(:), & 364 XUSSY(:), XPRMS(:), XTPMS(:) 365 REAL, POINTER :: XP2SMS(:,:), XUS3D(:,:) 366 ! 367 ! Output fields group 7) 368 ! 369 REAL, POINTER :: ABA(:), ABD(:), UBA(:), UBD(:), & 370 BEDFORMS(:,:), PHIBBL(:), & 371 TAUBBL(:,:) 372 REAL, POINTER :: XABA(:), XABD(:), XUBA(:), XUBD(:), & 373 XBEDFORMS(:,:), XPHIBBL(:), & 374 XTAUBBL(:,:) 375 ! 376 ! Output fields group 8) 377 ! 378 REAL, POINTER :: MSSX(:), MSSY(:), MSCX(:), MSCY(:) 379 REAL, POINTER :: XMSSX(:), XMSSY(:), XMSCX(:), XMSCY(:) 380 ! 381 ! Output fields group 9) 382 ! 383 REAL, POINTER :: DTDYN(:), FCUT(:), CFLXYMAX(:), & 384 CFLTHMAX(:), CFLKMAX(:) 385 REAL, POINTER :: XDTDYN(:), XFCUT(:), XCFLXYMAX(:), & 386 XCFLTHMAX(:), XCFLKMAX(:) 387 ! 388 ! Output fields group 10) 389 ! 390 REAL, POINTER :: USERO(:,:) 391 REAL, POINTER :: XUSERO(:,:) 392 ! 393 ! Spatial derivatives 394 ! 395 REAL, POINTER :: DDDX(:,:), DDDY(:,:), DCXDX(:,:), & 396 DCYDX(:,:), DCXDY(:,:), DCYDY(:,:) 397 REAL, POINTER :: DCDX(:,:,:), DCDY(:,:,:) 398 ! 399 INTEGER :: NMX0, NMX1, NMX2, NMY0, NMY1, NMY2, & Page 8 Source Listing W3NAUX 2014-09-16 16:47 w3adatmd.f90 400 NACT, NCENT 401 INTEGER, POINTER :: MAPX2(:), MAPY2(:), MAPAXY(:), & 402 MAPCXY(:), MAPTH2(:), MAPWN2(:) 403 LOGICAL, POINTER :: MAPTRN(:) 404 ! 405 ! Warning Defined but not set if UGTYPE .EQ. .T. 406 INTEGER, POINTER :: ITER(:,:) 407 ! 408 INTEGER :: NFR, NFRHGH, NFRCHG, NSPECX, NSPECY 409 INTEGER, POINTER :: IP11(:), IP12(:), IP13(:), IP14(:), & 410 IM11(:), IM12(:), IM13(:), IM14(:), & 411 IP21(:), IP22(:), IP23(:), IP24(:), & 412 IM21(:), IM22(:), IM23(:), IM24(:), & 413 IC11(:), IC12(:), IC21(:), IC22(:), & 414 IC31(:), IC32(:), IC41(:), IC42(:), & 415 IC51(:), IC52(:), IC61(:), IC62(:), & 416 IC71(:), IC72(:), IC81(:), IC82(:) 417 REAL :: DAL1, DAL2, DAL3, & 418 AWG1, AWG2, AWG3, AWG4, AWG5, AWG6, & 419 AWG7, AWG8, SWG1, SWG2, SWG3, SWG4, & 420 SWG5, SWG6, SWG7, SWG8 421 REAL, POINTER :: AF11(:) 422 LOGICAL :: NLINIT 423 ! 424 INTEGER, POINTER :: IAPPRO(:) 425 INTEGER :: MPI_COMM_WAVE, MPI_COMM_WCMP, & 426 WW3_FIELD_VEC, WW3_SPEC_VEC, & 427 NRQSG1, NRQSG2, IBFLOC, ISPLOC, & 428 NSPLOC 429 INTEGER :: BSTAT(MPIBUF), BISPL(MPIBUF) 430 INTEGER, POINTER :: IRQSG1(:,:), IRQSG2(:,:) 431 REAL, POINTER :: GSTORE(:,:), SSTORE(:,:) 432 REAL, POINTER :: SPPNT(:,:,:) 433 ! 434 INTEGER :: ITIME, IPASS, IDLAST, NSEALM 435 REAL, POINTER :: ALPHA(:,:) 436 LOGICAL :: AINIT, AINIT2, FL_ALL, FLCOLD, FLIWND 437 ! 438 END TYPE WADAT 439 !/ 440 !/ Data storage 441 !/ 442 TYPE(WADAT), TARGET, ALLOCATABLE :: WADATS(:) 443 !/ 444 !/ Data aliasses for structure WADAT(S) 445 !/ 446 REAL, POINTER :: CG(:,:), WN(:,:) 447 ! 448 REAL, POINTER :: CA0(:), CAI(:), CD0(:), CDI(:), & 449 UA0(:), UAI(:), UD0(:), UDI(:), & 450 AS0(:), ASI(:), ATRNX(:,:), ATRNY(:,:) 451 ! 452 REAL, POINTER :: DW(:), UA(:), UD(:), U10(:), U10D(:),& 453 AS(:), CX(:), CY(:) 454 ! 455 REAL, POINTER :: HS(:), WLM(:), T02(:), T0M1(:), & 456 T01 (:), FP0(:), THM(:), THS(:), & Page 9 Source Listing W3NAUX 2014-09-16 16:47 w3adatmd.f90 457 THP0(:), FP1(:), THP1(:) 458 ! 459 REAL, POINTER :: EF(:,:), TH1M(:,:), STH1M(:,:), & 460 TH2M(:,:), STH2M(:,:) 461 ! 462 REAL, POINTER :: PHS(:,:), PTP(:,:), PLP(:,:), & 463 PTH(:,:), PSI(:,:), PWS(:,:), & 464 PWST(:), PNR(:) 465 ! 466 REAL, POINTER :: CHARN(:), CGE(:), PHIAW(:), & 467 TAUWIX(:), TAUWIY(:), TAUWNX(:), & 468 TAUWNY(:), WHITECAP(:,:) 469 ! 470 REAL, POINTER :: SXX(:), SYY(:), SXY(:), TAUOX(:), & 471 TAUOY(:), BHD(:), PHIOC(:), & 472 TUSX(:), TUSY(:), USSX(:), USSY(:), & 473 PRMS(:), TPMS(:) 474 REAL, POINTER :: P2SMS(:,:), US3D(:,:) 475 ! 476 REAL, POINTER :: ABA(:), ABD(:), UBA(:), UBD(:), & 477 BEDFORMS(:,:), PHIBBL(:), TAUBBL(:,:) 478 ! 479 REAL, POINTER :: MSSX(:), MSSY(:), MSCX(:), MSCY(:) 480 ! 481 REAL, POINTER :: DTDYN(:), FCUT(:), CFLXYMAX(:), & 482 CFLTHMAX(:), CFLKMAX(:) 483 ! 484 REAL, POINTER :: USERO(:,:) 485 ! 486 ! REAL, POINTER :: TAUWX(:), TAUWY(:) 487 ! 488 REAL, POINTER :: DDDX(:,:), DDDY(:,:), DCXDX(:,:), & 489 DCYDX(:,:), DCXDY(:,:), DCYDY(:,:) 490 REAL, POINTER :: DCDX(:,:,:), DCDY(:,:,:) 491 ! 492 INTEGER, POINTER :: NMX0, NMX1, NMX2, NMY0, NMY1, NMY2, & 493 NACT, NCENT 494 INTEGER, POINTER :: MAPX2(:), MAPY2(:), MAPAXY(:), & 495 MAPCXY(:), MAPTH2(:), MAPWN2(:) 496 LOGICAL, POINTER :: MAPTRN(:) 497 ! 498 INTEGER, POINTER :: ITER(:,:) 499 ! 500 INTEGER, POINTER :: NFR, NFRHGH, NFRCHG, NSPECX, NSPECY 501 INTEGER, POINTER :: IP11(:), IP12(:), IP13(:), IP14(:), & 502 IM11(:), IM12(:), IM13(:), IM14(:), & 503 IP21(:), IP22(:), IP23(:), IP24(:), & 504 IM21(:), IM22(:), IM23(:), IM24(:), & 505 IC11(:), IC12(:), IC21(:), IC22(:), & 506 IC31(:), IC32(:), IC41(:), IC42(:), & 507 IC51(:), IC52(:), IC61(:), IC62(:), & 508 IC71(:), IC72(:), IC81(:), IC82(:) 509 REAL, POINTER :: DAL1, DAL2, DAL3, & 510 AWG1, AWG2, AWG3, AWG4, AWG5, AWG6, & 511 AWG7, AWG8, SWG1, SWG2, SWG3, SWG4, & 512 SWG5, SWG6, SWG7, SWG8 513 REAL, POINTER :: AF11(:) Page 10 Source Listing W3NAUX 2014-09-16 16:47 w3adatmd.f90 514 LOGICAL, POINTER :: NLINIT 515 ! 516 INTEGER, POINTER :: IAPPRO(:) 517 INTEGER, POINTER :: MPI_COMM_WAVE, MPI_COMM_WCMP, & 518 WW3_FIELD_VEC, WW3_SPEC_VEC, & 519 NRQSG1, NRQSG2, IBFLOC, ISPLOC, & 520 NSPLOC 521 INTEGER, POINTER :: BSTAT(:), BISPL(:) 522 INTEGER, POINTER :: IRQSG1(:,:), IRQSG2(:,:) 523 REAL, POINTER :: GSTORE(:,:), SSTORE(:,:) 524 REAL, POINTER :: SPPNT(:,:,:) 525 ! 526 INTEGER, POINTER :: ITIME, IPASS, IDLAST, NSEALM 527 REAL, POINTER :: ALPHA(:,:) 528 LOGICAL, POINTER :: AINIT, AINIT2, FL_ALL, FLCOLD, FLIWND 529 !/ 530 CONTAINS 531 !/ ------------------------------------------------------------------- / 532 SUBROUTINE W3NAUX ( NDSE, NDST ) 533 !/ 534 !/ +-----------------------------------+ 535 !/ | WAVEWATCH III NOAA/NCEP | 536 !/ | H. L. Tolman | 537 !/ | FORTRAN 90 | 538 !/ | Last update : 14-Dec-2004 ! 539 !/ +-----------------------------------+ 540 !/ 541 !/ 14-Dec-2004 : Origination. ( version 3.06 ) 542 !/ 04-Oct-2006 : Add filter to array pointers. ( version 3.10 ) 543 !/ 544 ! 1. Purpose : 545 ! 546 ! Set up the number of grids to be used. 547 ! 548 ! 2. Method : 549 ! 550 ! Use data stored in NGRIDS in W3GDATMD. 551 ! 552 ! 3. Parameters : 553 ! 554 ! Parameter list 555 ! ---------------------------------------------------------------- 556 ! NDSE Int. I Error output unit number. 557 ! NDST Int. I Test output unit number. 558 ! ---------------------------------------------------------------- 559 ! 560 ! 4. Subroutines used : 561 ! 562 ! See module documentation. 563 ! 564 ! 5. Called by : 565 ! 566 ! Any program that uses this grid structure. 567 ! 568 ! 6. Error messages : 569 ! 570 ! - Error checks on previous setting of variable NGRIDS. Page 11 Source Listing W3NAUX 2014-09-16 16:47 w3adatmd.f90 571 ! 572 ! 7. Remarks : 573 ! 574 ! 8. Structure : 575 ! 576 ! 9. Switches : 577 ! 578 ! !/S Enable subroutine tracing. 579 ! !/T Enable test output 580 ! 581 ! 10. Source code : 582 ! 583 !/ ------------------------------------------------------------------- / 584 USE W3GDATMD, ONLY: NGRIDS 585 USE W3SERVMD, ONLY: EXTCDE 586 ! 587 IMPLICIT NONE 588 !/ 589 !/ ------------------------------------------------------------------- / 590 !/ Parameter list 591 !/ 592 INTEGER, INTENT(IN) :: NDSE, NDST 593 !/ 594 !/ ------------------------------------------------------------------- / 595 !/ Local parameters 596 !/ 597 INTEGER :: I 598 !/ 599 ! 600 ! -------------------------------------------------------------------- / 601 ! 1. Test input and module status 602 ! 603 IF ( NGRIDS .EQ. -1 ) THEN 604 WRITE (NDSE,1001) NGRIDS 605 CALL EXTCDE (1) 606 END IF 607 ! 608 ! -------------------------------------------------------------------- / 609 ! 2. Set variable and allocate arrays 610 ! 611 ALLOCATE ( WADATS(NGRIDS) ) 612 NADATA = NGRIDS 613 ! 614 ! -------------------------------------------------------------------- / 615 ! 3. Initialize parameters 616 ! 617 DO I=1, NGRIDS 618 WADATS(I)%ITIME = 0 619 WADATS(I)%IPASS = 0 620 WADATS(I)%IDLAST = 0 621 WADATS(I)%AINIT = .FALSE. 622 WADATS(I)%AINIT2 = .FALSE. 623 WADATS(I)%FL_ALL = .FALSE. 624 WADATS(I)%NLINIT = .FALSE. 625 END DO 626 ! 627 RETURN Page 12 Source Listing W3NAUX 2014-09-16 16:47 w3adatmd.f90 628 ! 629 ! Formats 630 ! 631 1001 FORMAT (/' *** ERROR W3NAUX : NGRIDS NOT YET SET *** '/ & 632 ' NGRIDS = ',I10/ & 633 ' RUN W3NMOD FIRST'/) 634 ! 635 !/ 636 !/ End of W3NAUX ----------------------------------------------------- / 637 !/ 638 END SUBROUTINE W3NAUX ENTRY POINTS Name w3adatmd_mp_w3naux_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 1001 Label 631 604 AINIT Local 621 L(4) 4 scalar TGT 621,757,1015,1818 AINIT2 Local 622 L(4) 4 scalar TGT 622,1099,1521,1819 EXTCDE Subr 585 585,605 FL_ALL Local 623 L(4) 4 scalar TGT 623,1820 I Local 597 I(4) 4 scalar 617,618,619,620,621,622,623,624 IDLAST Local 620 I(4) 4 scalar TGT 620,1814 IPASS Local 619 I(4) 4 scalar TGT 619,1813 ITIME Local 618 I(4) 4 scalar TGT 618,1812 NADATA Local 612 I(4) 4 scalar 298,612,752,753,1094,1095,1634,163 5,1794,1799,1800,2103,2108,2109 NDSE Dummy 532 I(4) 4 scalar ARG,IN 604 NDST Dummy 532 I(4) 4 scalar ARG,IN NGRIDS Local 584 I(4) 4 scalar 584,603,604,611,612,617 NLINIT Local 624 L(4) 4 scalar TGT 624,1639,1681,1855 W3GDATMD Module 584 584 W3NAUX Subr 532 W3SERVMD Module 585 585 WADATS Local 611 RECORD 16448 1 1 ALC,TGT 611,618,619,620,621,622,623,624,75 7,778,779,781,782,783,785,786,787, 799,800,801,802,803,804,806,807,80 8,809,810,811,812,813,814,815,816, 820,821,822,823,824,825,826,827,82 8,829,833,834,835,836,837,838,839, 841,842,843,844,845,846,847,848,85 4,855,856,857,858,859,860,861,863, 864,865,866,867,868,869,870,874,87 5,876,877,878,879,880,881,882,883, 884,885,886,892,894,896,898,900,90 1,902,904,905,906,907,908,909,910, 911,912,913,914,915,916,917,918,92 2,923,924,925,926,928,929,930,931, 932,933,934,938,939,941,942,943,94 Page 13 Source Listing W3NAUX 2014-09-16 16:47 Symbol Table w3adatmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 4,948,949,950,951,952,954,955,956, 957,958,962,964,968,969,971,972,97 3,974,976,977,978,979,980,981,983, 984,986,987,988,989,990,991,992,99 3,995,998,1001,1002,1003,1004,1005 ,1006,1007,1008,1010,1011,1015,109 9,1114,1116,1120,1122,1126,1128,11 32,1134,1138,1140,1144,1146,1150,1 152,1156,1158,1162,1164,1179,1180, 1181,1182,1183,1184,1185,1186,1187 ,1192,1194,1198,1200,1204,1206,121 0,1212,1216,1218,1221,1224,1226,12 30,1232,1236,1238,1242,1244,1248,1 250,1254,1256,1260,1262,1266,1268, 1271,1272,1273,1274,1275,1276,1277 ,1278,1281,1283,1287,1289,1293,129 5,1299,1300,1302,1303,1307,1308,13 10,1311,1316,1318,1321,1322,1323,1 324,1325,1326,1327,1328,1331,1332, 1333,1335,1336,1337,1341,1342,1344 ,1345,1349,1351,1355,1357,1361,136 2,1364,1365,1369,1370,1372,1373,13 77,1378,1380,1381,1385,1387,1391,1 393,1396,1397,1398,1399,1400,1401, 1402,1403,1404,1405,1406,1407,1408 ,1409,1410,1413,1414,1416,1417,142 1,1422,1424,1425,1429,1431,1435,14 37,1441,1443,1446,1447,1448,1449,1 450,1451,1452,1455,1456,1458,1459, 1463,1464,1466,1467,1470,1471,1472 ,1473,1476,1478,1482,1484,1488,149 0,1494,1496,1500,1502,1505,1506,15 07,1508,1509,1513,1515,1519,1521,1 639,1647,1648,1649,1650,1651,1652, 1653,1654,1655,1656,1657,1658,1659 ,1660,1661,1662,1663,1664,1665,166 6,1667,1668,1669,1670,1671,1672,16 73,1674,1675,1676,1677,1678,1679,1 681,1812,1813,1814,1815,1816,1817, 1818,1819,1820,1822,1823,1824,1825 ,1826,1827,1828,1829,1831,1832,183 3,1834,1835,1836,1837,1838,1839,18 40,1841,1842,1843,1844,1845,1846,1 847,1848,1849,1850,1851,1852,1853, 1854,1855,1857,1858,1859,1860,1861 ,1862,1863,1864,1865,1866,1867,187 1,1872,1873,1874,1875,1876,1877,18 78,1880,1881,1882,1883,1884,1885,1 886,1887,1888,1889,1890,1892,1893, 1894,1895,1896,1898,1899,1900,1901 ,1902,1903,1904,1905,1907,1908,190 9,1910,1911,1912,1913,1914,1916,19 17,1918,1919,1920,1921,1922,1923,1 924,1925,1926,1927,1928,1929,1930, 1932,1933,1934,1935,1936,1937,1938 Page 14 Source Listing W3NAUX 2014-09-16 16:47 Symbol Table w3adatmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References ,1940,1941,1942,1943,1945,1946,194 7,1948,1949,1951,1955,1956,1958,19 59,1961,1962,1963,1964,1965,1966,1 967,1968,1970,1973,1974,1975,1976, 1980,1981,1982,1983,1984,1985,1988 ,1989,1990,1991,1992,1993,1994,199 6,1998,1999,2006,2007,2008,2009,20 10,2011,2012,2013,2014,2015,2016,2 017,2018,2019,2020,2021,2022,2023, 2024,2025,2026,2027,2028,2029,2030 ,2031,2032,2033,2034,2035,2036,203 7,2038,2042,2043,2046,2047,2123,21 24,2125,2126,2127,2128,2129,2130,2 131,2135,2137,2138,2139,2140,2141, 2142,2143,2144,2146,2147,2148,2149 ,2150,2151,2152,2153,2155,2156,215 7,2158,2159,2160,2161,2162,2163,21 64,2165,2166,2167,2168,2169,2171,2 172,2173,2174,2175,2176,2177,2179, 2180,2181,2182,2184,2185,2186,2187 ,2188,2190 Page 15 Source Listing W3NAUX 2014-09-16 16:47 w3adatmd.f90 639 !/ ------------------------------------------------------------------- / 640 SUBROUTINE W3DIMA ( IMOD, NDSE, NDST, D_ONLY ) 641 !/ 642 !/ +-----------------------------------+ 643 !/ | WAVEWATCH III NOAA/NCEP | 644 !/ | H. L. Tolman | 645 !/ | FORTRAN 90 | 646 !/ | Last update : 28-Jun-2013 ! 647 !/ +-----------------------------------+ 648 !/ 649 !/ 28-Dec-2004 : Origination. ( version 3.06 ) 650 !/ 20-Jul-2005 : Adding output fields. ( version 3.07 ) 651 !/ 04-Oct-2006 : Add filter to array pointers. ( version 3.10 ) 652 !/ 28-Mar-2007 : Add partitioned data arrays. ( version 3.11 ) 653 !/ Add aditional undefined arrays. 654 !/ 22-Feb-2008 ; Modify MAPTH2 declaration. ( version 3.14 ) 655 !/ 31-Oct-2010 : Added initialization of CX,CY,DW ( version 3.14 ) 656 !/ 25-Dec-2012 : Memory reduction for outputs. ( version 4.11 ) 657 !/ 28-Jul-2013 : Bug fix initialization P2SMS. ( version 4.11 ) 658 !/ 659 ! 1. Purpose : 660 ! 661 ! Initialize an individual data grid at the proper dimensions. 662 ! 663 ! 2. Method : 664 ! 665 ! Allocate directly into the structure array. Note that 666 ! this cannot be done through the pointer alias! 667 ! 668 ! 3. Parameters : 669 ! 670 ! Parameter list 671 ! ---------------------------------------------------------------- 672 ! IMOD Int. I Model number to point to. 673 ! NDSE Int. I Error output unit number. 674 ! NDST Int. I Test output unit number. 675 ! D_ONLY L.O. I FLag for initializing data arrays only. 676 ! ---------------------------------------------------------------- 677 ! 678 ! 4. Subroutines used : 679 ! 680 ! See module documentation. 681 ! 682 ! 5. Called by : 683 ! 684 ! Name Type Module Description 685 ! ---------------------------------------------------------------- 686 ! W3IOGO Subr. W3IOGOMD Grid output IO routine. 687 ! WW3_SHEL Prog. N/A Wave model driver. 688 ! ---------------------------------------------------------------- 689 ! 690 ! 6. Error messages : 691 ! 692 ! - Check on input parameters. 693 ! - Check on previous allocation. 694 ! 695 ! 7. Remarks : Page 16 Source Listing W3DIMA 2014-09-16 16:47 w3adatmd.f90 696 ! 697 ! - W3SETA needs to be called after allocation to point to 698 ! proper allocated arrays. 699 ! 700 ! 8. Structure : 701 ! 702 ! See source code. 703 ! 704 ! 9. Switches : 705 ! 706 ! !/SHRD, !/DIST 707 ! Shared / distributed memory model 708 ! 709 ! !/PRn Propagation scheme selection. 710 ! 711 ! !/S Enable subroutine tracing. 712 ! !/T Enable test output 713 ! 714 ! 10. Source code : 715 ! 716 !/ ------------------------------------------------------------------- / 717 USE W3GDATMD, ONLY: NGRIDS, IGRID, W3SETG, NK, NX, NY, NSEA, & 718 NSEAL, NSPEC, NTH, E3DF, P2MSF, US3DF, GTYPE, UNGTYPE 719 USE W3ODATMD, ONLY: IAPROC, NAPROC, NTPROC, NAPFLD, & 720 NOSWLL, NOEXTR, UNDEF, FLOGRD, FLOGR2 721 USE W3IDATMD, ONLY: FLCUR, FLWIND 722 USE W3SERVMD, ONLY: EXTCDE 723 ! 724 IMPLICIT NONE 725 !/ 726 !/ ------------------------------------------------------------------- / 727 !/ Parameter list 728 !/ 729 INTEGER, INTENT(IN) :: IMOD, NDSE, NDST 730 LOGICAL, INTENT(IN), OPTIONAL :: D_ONLY 731 !/ 732 !/ ------------------------------------------------------------------- / 733 !/ Local parameters 734 !/ 735 INTEGER :: JGRID, NXXX 736 !/ 737 ! 738 ! -------------------------------------------------------------------- / 739 ! 1. Test input and module status 740 ! 741 IF ( PRESENT(D_ONLY) ) THEN 742 FL_ALL = .NOT. D_ONLY 743 ELSE 744 FL_ALL = .TRUE. 745 END IF 746 ! 747 IF ( NGRIDS .EQ. -1 ) THEN 748 WRITE (NDSE,1001) 749 CALL EXTCDE (1) 750 END IF 751 ! 752 IF ( IMOD.LT.1 .OR. IMOD.GT.NADATA ) THEN Page 17 Source Listing W3DIMA 2014-09-16 16:47 w3adatmd.f90 753 WRITE (NDSE,1002) IMOD, NADATA 754 CALL EXTCDE (2) 755 END IF 756 ! 757 IF ( WADATS(IMOD)%AINIT ) THEN 758 WRITE (NDSE,1003) 759 CALL EXTCDE (3) 760 END IF 761 ! 762 JGRID = IGRID 763 IF ( JGRID .NE. IMOD ) CALL W3SETG ( IMOD, NDSE, NDST ) 764 ! 765 ! -------------------------------------------------------------------- / 766 ! 2. Allocate arrays 767 ! Call W3SETA to assure of pointes FLCUR an FLWND 768 ! 769 CALL W3SETA ( IMOD, NDSE, NDST ) 770 ! 771 NSEALM = 1 + (NSEA-1)/NAPROC 772 NXXX = NSEALM * NAPROC 773 ! 774 ! Output and input parameteres by output type 775 ! 776 ! 1) Forcing fields (these arrays are always needed) 777 ! 778 ALLOCATE ( WADATS(IMOD)%DW(0:NSEA) ) 779 WADATS(IMOD)%DW(:)=0. 780 ! 781 ALLOCATE ( WADATS(IMOD)%CX(0:NSEA) , WADATS(IMOD)%CY(0:NSEA) ) 782 WADATS(IMOD)%CX(:)=0. 783 WADATS(IMOD)%CY(:)=0. 784 ! 785 ALLOCATE ( WADATS(IMOD)%UA(0:NSEA) , WADATS(IMOD)%UD(0:NSEA) , & 786 WADATS(IMOD)%U10(NSEA) , WADATS(IMOD)%U10D(NSEA) , & 787 WADATS(IMOD)%AS(0:NSEA) ) 788 ! 789 ! Water level WLV stored in W3WDATMD 790 ! Ice concentration ICE stored in W3WDATMD 791 ! Iceberg damping BERG stored in W3WDATMD 792 ! 793 ! 2) Standard mean wave parameters 794 ! Here, all short arrays are always allocated to reduce logical 795 ! checks in all computations. The coresponding full size arrays 796 ! are allocated in W3MPIO only as needed to keep the memory 797 ! footprint down. 798 ! 799 ALLOCATE ( WADATS(IMOD)%HS (NSEALM), WADATS(IMOD)%WLM(NSEALM), & 800 WADATS(IMOD)%T02 (NSEALM), WADATS(IMOD)%T0M1(NSEALM),& 801 WADATS(IMOD)%T01 (NSEALM), WADATS(IMOD)%FP0(NSEALM), & 802 WADATS(IMOD)%THM (NSEALM), WADATS(IMOD)%THS(NSEALM), & 803 WADATS(IMOD)%THP0 (NSEALM), WADATS(IMOD)%FP1(NSEALM), & 804 WADATS(IMOD)%THP1 (NSEALM) ) 805 ! 806 WADATS(IMOD)%HS = UNDEF 807 WADATS(IMOD)%WLM = UNDEF 808 WADATS(IMOD)%T02 = UNDEF 809 WADATS(IMOD)%T0M1 = UNDEF Page 18 Source Listing W3DIMA 2014-09-16 16:47 w3adatmd.f90 810 WADATS(IMOD)%T01 = UNDEF 811 WADATS(IMOD)%FP0 = UNDEF 812 WADATS(IMOD)%THM = UNDEF 813 WADATS(IMOD)%THS = UNDEF 814 WADATS(IMOD)%THP0 = UNDEF 815 WADATS(IMOD)%FP1 = UNDEF 816 WADATS(IMOD)%THP1 = UNDEF 817 ! 818 ! 3) Frequency-dependent standard parameters 819 ! 820 ALLOCATE ( WADATS(IMOD)%EF (NSEALM,E3DF(2,1):E3DF(3,1)), & 821 WADATS(IMOD)%TH1M(NSEALM,E3DF(2,2):E3DF(3,2)), & 822 WADATS(IMOD)%STH1M(NSEALM,E3DF(2,3):E3DF(3,3)), & 823 WADATS(IMOD)%TH2M(NSEALM,E3DF(2,4):E3DF(3,4)), & 824 WADATS(IMOD)%STH2M(NSEALM,E3DF(2,5):E3DF(3,5))) 825 WADATS(IMOD)%EF = UNDEF 826 WADATS(IMOD)%TH1M = UNDEF 827 WADATS(IMOD)%STH1M = UNDEF 828 WADATS(IMOD)%TH2M = UNDEF 829 WADATS(IMOD)%STH2M = UNDEF 830 ! 831 ! 4) Spectral Partitions parameters 832 ! 833 ALLOCATE ( WADATS(IMOD)%PHS(NSEALM,0:NOSWLL), & 834 WADATS(IMOD)%PTP(NSEALM,0:NOSWLL), & 835 WADATS(IMOD)%PLP(NSEALM,0:NOSWLL), & 836 WADATS(IMOD)%PTH(NSEALM,0:NOSWLL), & 837 WADATS(IMOD)%PSI(NSEALM,0:NOSWLL), & 838 WADATS(IMOD)%PWS(NSEALM,0:NOSWLL), & 839 WADATS(IMOD)%PWST(NSEALM), WADATS(IMOD)%PNR(NSEALM) ) 840 ! 841 WADATS(IMOD)%PHS = UNDEF 842 WADATS(IMOD)%PTP = UNDEF 843 WADATS(IMOD)%PLP = UNDEF 844 WADATS(IMOD)%PTH = UNDEF 845 WADATS(IMOD)%PSI = UNDEF 846 WADATS(IMOD)%PWS = UNDEF 847 WADATS(IMOD)%PWST = UNDEF 848 WADATS(IMOD)%PNR = UNDEF 849 ! 850 ! 5) Atmosphere-waves layer 851 ! 852 ! Frcition velocity UST and USTDIR in W3WDATMD 853 ! 854 ALLOCATE ( WADATS(IMOD)%CHARN (NSEALM), & 855 WADATS(IMOD)%CGE (NSEALM), & 856 WADATS(IMOD)%PHIAW (NSEALM), & 857 WADATS(IMOD)%TAUWIX (NSEALM), & 858 WADATS(IMOD)%TAUWIY (NSEALM), & 859 WADATS(IMOD)%TAUWNX (NSEALM), & 860 WADATS(IMOD)%TAUWNY (NSEALM), & 861 WADATS(IMOD)%WHITECAP(NSEALM,4) ) 862 ! 863 WADATS(IMOD)%CHARN = UNDEF 864 WADATS(IMOD)%CGE = UNDEF 865 WADATS(IMOD)%PHIAW = UNDEF 866 WADATS(IMOD)%TAUWIX = UNDEF Page 19 Source Listing W3DIMA 2014-09-16 16:47 w3adatmd.f90 867 WADATS(IMOD)%TAUWIY = UNDEF 868 WADATS(IMOD)%TAUWNX = UNDEF 869 WADATS(IMOD)%TAUWNY = UNDEF 870 WADATS(IMOD)%WHITECAP = UNDEF 871 ! 872 ! 6) Wave-ocean layer 873 ! 874 ALLOCATE ( WADATS(IMOD)%SXX (NSEALM) , & 875 WADATS(IMOD)%SYY (NSEALM) , & 876 WADATS(IMOD)%SXY (NSEALM) , & 877 WADATS(IMOD)%TAUOX (NSEALM) , & 878 WADATS(IMOD)%TAUOY (NSEALM) , & 879 WADATS(IMOD)%BHD (NSEALM) , & 880 WADATS(IMOD)%PHIOC (NSEALM) , & 881 WADATS(IMOD)%TUSX (NSEALM) , & 882 WADATS(IMOD)%TUSY (NSEALM) , & 883 WADATS(IMOD)%USSX (NSEALM) , & 884 WADATS(IMOD)%USSY (NSEALM) , & 885 WADATS(IMOD)%PRMS (NSEALM) , & 886 WADATS(IMOD)%TPMS (NSEALM) ) 887 ! 888 ! For the 3D arrays: the allocation is performed only if these arrays are allowed 889 ! by specific variables defined through the mod_def file 890 ! and read by w3iogr, which is called before W3DIMA. 891 IF ( E3DF(1,1).GT.0 ) & 892 ALLOCATE(WADATS(IMOD)%EF(NSEALM,E3DF(2,1):E3DF(3,1))) 893 IF ( E3DF(1,2).GT.0 ) & 894 ALLOCATE(WADATS(IMOD)%TH1M(NSEALM,E3DF(2,2):E3DF(3,2))) 895 IF ( E3DF(1,3).GT.0 ) & 896 ALLOCATE(WADATS(IMOD)%STH1M(NSEALM,E3DF(2,3):E3DF(3,3))) 897 IF ( E3DF(1,4).GT.0 ) & 898 ALLOCATE(WADATS(IMOD)%TH2M(NSEALM,E3DF(2,4):E3DF(3,5))) 899 IF ( E3DF(1,5).GT.0 ) & 900 ALLOCATE(WADATS(IMOD)%STH2M(NSEALM,E3DF(2,5):E3DF(3,4))) 901 IF ( P2MSF(1).GT.0 ) ALLOCATE(WADATS(IMOD)%P2SMS(NSEALM,P2MSF(2):P2MSF(3))) 902 IF ( US3DF(1).GT.0 ) ALLOCATE(WADATS(IMOD)%US3D(NSEALM,NK*2)) ! maybe use US3DF(2:3) 903 ! 904 WADATS(IMOD)%SXX = UNDEF 905 WADATS(IMOD)%SYY = UNDEF 906 WADATS(IMOD)%SXY = UNDEF 907 WADATS(IMOD)%TAUOX = UNDEF 908 WADATS(IMOD)%TAUOY = UNDEF 909 WADATS(IMOD)%BHD = UNDEF 910 WADATS(IMOD)%PHIOC = UNDEF 911 WADATS(IMOD)%TUSX = UNDEF 912 WADATS(IMOD)%TUSY = UNDEF 913 WADATS(IMOD)%USSX = UNDEF 914 WADATS(IMOD)%USSY = UNDEF 915 WADATS(IMOD)%PRMS = UNDEF 916 WADATS(IMOD)%TPMS = UNDEF 917 IF ( P2MSF(1).GT.0 ) WADATS(IMOD)%P2SMS = UNDEF 918 IF ( US3DF(1).GT.0 ) WADATS(IMOD)%US3D = UNDEF 919 ! 920 ! 7) Wave-bottom layer 921 ! 922 ALLOCATE ( WADATS(IMOD)%ABA(NSEALM) , WADATS(IMOD)%ABD(NSEALM) , & 923 WADATS(IMOD)%UBA(NSEALM) , WADATS(IMOD)%UBD(NSEALM) , & Page 20 Source Listing W3DIMA 2014-09-16 16:47 w3adatmd.f90 924 WADATS(IMOD)%BEDFORMS(NSEALM,3), & 925 WADATS(IMOD)%PHIBBL (NSEALM) , & 926 WADATS(IMOD)%TAUBBL (NSEALM,2) ) 927 ! 928 WADATS(IMOD)%ABA = UNDEF 929 WADATS(IMOD)%ABD = UNDEF 930 WADATS(IMOD)%UBA = UNDEF 931 WADATS(IMOD)%UBD = UNDEF 932 WADATS(IMOD)%BEDFORMS = UNDEF 933 WADATS(IMOD)%PHIBBL = UNDEF 934 WADATS(IMOD)%TAUBBL = UNDEF 935 ! 936 ! 8) Spectrum parameters 937 ! 938 ALLOCATE ( WADATS(IMOD)%MSSX(NSEALM), WADATS(IMOD)%MSSY(NSEALM), & 939 WADATS(IMOD)%MSCX(NSEALM), WADATS(IMOD)%MSCY(NSEALM) ) 940 ! 941 WADATS(IMOD)%MSSX = UNDEF 942 WADATS(IMOD)%MSSY = UNDEF 943 WADATS(IMOD)%MSCX = UNDEF 944 WADATS(IMOD)%MSCY = UNDEF 945 ! 946 ! 9) Numerical diagnostics 947 ! 948 ALLOCATE ( WADATS(IMOD)%DTDYN (NSEALM) , & 949 WADATS(IMOD)%FCUT (NSEALM) , & 950 WADATS(IMOD)%CFLXYMAX(NSEALM) , & 951 WADATS(IMOD)%CFLTHMAX(NSEALM) , & 952 WADATS(IMOD)%CFLKMAX (NSEALM) ) 953 ! 954 WADATS(IMOD)%DTDYN = UNDEF 955 WADATS(IMOD)%FCUT = UNDEF 956 WADATS(IMOD)%CFLXYMAX = UNDEF 957 WADATS(IMOD)%CFLTHMAX = UNDEF 958 WADATS(IMOD)%CFLKMAX = UNDEF 959 ! 960 ! 10) User defined 961 ! 962 ALLOCATE ( WADATS(IMOD)%USERO(NSEALM,NOEXTR) ) 963 ! 964 WADATS(IMOD)%USERO = UNDEF 965 ! 966 IF ( FL_ALL ) THEN 967 ! 968 ALLOCATE ( WADATS(IMOD)%CG(0:NK+1,0:NSEA) , & 969 WADATS(IMOD)%WN(0:NK+1,0:NSEA) ) 970 ! 971 IF ( FLCUR ) ALLOCATE ( WADATS(IMOD)%CA0(NSEA) , & 972 WADATS(IMOD)%CAI(NSEA) , & 973 WADATS(IMOD)%CD0(NSEA) , & 974 WADATS(IMOD)%CDI(NSEA) ) 975 ! 976 IF ( FLWIND ) ALLOCATE ( WADATS(IMOD)%UA0(NSEA) , & 977 WADATS(IMOD)%UAI(NSEA) , & 978 WADATS(IMOD)%UD0(NSEA) , & 979 WADATS(IMOD)%UDI(NSEA) , & 980 WADATS(IMOD)%AS0(NSEA) , & Page 21 Source Listing W3DIMA 2014-09-16 16:47 w3adatmd.f90 981 WADATS(IMOD)%ASI(NSEA) ) 982 ! 983 ALLOCATE ( WADATS(IMOD)%ATRNX(NY*NX,-1:1) , & 984 WADATS(IMOD)%ATRNY(NY*NX,-1:1) ) 985 ! 986 ALLOCATE ( WADATS(IMOD)%DDDX(NY,NX) , & 987 WADATS(IMOD)%DDDY(NY,NX) , & 988 WADATS(IMOD)%DCDX(0:NK+1,NY,NX) , & 989 WADATS(IMOD)%DCDY(0:NK+1,NY,NX) , & 990 WADATS(IMOD)%DCXDX(NY,NX) , & 991 WADATS(IMOD)%DCYDX(NY,NX) , & 992 WADATS(IMOD)%DCXDY(NY,NX) , & 993 WADATS(IMOD)%DCYDY(NY,NX) ) 994 ! 995 ALLOCATE ( WADATS(IMOD)%ALPHA(NK,NSEAL) ) 996 ! 997 IF (GTYPE .EQ. UNGTYPE) THEN 998 ALLOCATE( WADATS(IMOD)%ITER(NK,NTH)) 999 END IF 1000 ! 1001 ALLOCATE ( WADATS(IMOD)%MAPX2(NY*NX) , & 1002 WADATS(IMOD)%MAPY2(NY*NX) , & 1003 WADATS(IMOD)%MAPAXY(NY*NX) , & 1004 WADATS(IMOD)%MAPCXY(NSEA) , & 1005 WADATS(IMOD)%MAPTH2((NK+2)*NTH) , & 1006 WADATS(IMOD)%MAPWN2(NSPEC+NTH) , & 1007 WADATS(IMOD)%MAPTRN(NY*NX) ) 1008 WADATS(IMOD)%MAPTH2 = 0 1009 ! 1010 ALLOCATE ( WADATS(IMOD)%IAPPRO(NSPEC) , & 1011 WADATS(IMOD)%SPPNT(NTH,NK,4) ) 1012 ! 1013 END IF 1014 ! 1015 WADATS(IMOD)%AINIT = .TRUE. 1016 ! 1017 ! -------------------------------------------------------------------- / 1018 ! 3. Point to allocated arrays 1019 ! 1020 CALL W3SETA ( IMOD, NDSE, NDST ) 1021 ! 1022 ! -------------------------------------------------------------------- / 1023 ! 4. Update counters in grid 1024 ! 1025 ! -------------------------------------------------------------------- / 1026 ! 5. Restore previous grid setting if necessary 1027 ! 1028 IF ( JGRID .NE. IMOD ) CALL W3SETG ( JGRID, NDSE, NDST ) 1029 ! 1030 RETURN 1031 ! 1032 ! Formats 1033 ! 1034 1001 FORMAT (/' *** ERROR W3DIMA : GRIDS NOT INITIALIZED *** '/ & 1035 ' RUN W3NMOD FIRST '/) 1036 1002 FORMAT (/' *** ERROR W3DIMA : ILLEGAL MODEL NUMBER *** '/ & 1037 ' IMOD = ',I10/ & Page 22 Source Listing W3DIMA 2014-09-16 16:47 w3adatmd.f90 1038 ' NADATA = ',I10/) 1039 1003 FORMAT (/' *** ERROR W3DIMA : ARRAY(S) ALREADY ALLOCATED *** ') 1040 ! 1041 !/ 1042 !/ End of W3DIMA ----------------------------------------------------- / 1043 !/ 1044 END SUBROUTINE W3DIMA ENTRY POINTS Name w3adatmd_mp_w3dima_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 1001 Label 1034 748 1002 Label 1036 753 1003 Label 1039 758 ABA Local 922 R(4) 4 1 1 PTR 922,928,1932 ABD Local 922 R(4) 4 1 1 PTR 922,929,1933 ALPHA Local 995 R(4) 4 2 1 PTR 995,1970 AS Local 787 R(4) 4 1 1 PTR 787,1876 AS0 Local 980 R(4) 4 1 1 PTR 980,1984 ASI Local 981 R(4) 4 1 1 PTR 981,1985 ATRNX Local 983 R(4) 4 2 1 PTR 983,1958 ATRNY Local 984 R(4) 4 2 1 PTR 984,1959 BEDFORMS Local 924 R(4) 4 2 1 PTR 924,932,1936 BHD Local 879 R(4) 4 1 1 PTR 879,909,1921 CA0 Local 971 R(4) 4 1 1 PTR 971,1973 CAI Local 972 R(4) 4 1 1 PTR 972,1974 CD0 Local 973 R(4) 4 1 1 PTR 973,1975 CDI Local 974 R(4) 4 1 1 PTR 974,1976 CFLKMAX Local 952 R(4) 4 1 1 PTR 952,958,1949 CFLTHMAX Local 951 R(4) 4 1 1 PTR 951,957,1948 CFLXYMAX Local 950 R(4) 4 1 1 PTR 950,956,1947 CG Local 968 R(4) 4 2 1 PTR 968,1955 CGE Local 855 R(4) 4 1 1 PTR 855,864,1908 CHARN Local 854 R(4) 4 1 1 PTR 854,863,1907 CX Local 781 R(4) 4 1 1 PTR 781,782,1877 CY Local 781 R(4) 4 1 1 PTR 781,783,1878 DCDX Local 988 R(4) 4 3 1 PTR 988,1963 DCDY Local 989 R(4) 4 3 1 PTR 989,1964 DCXDX Local 990 R(4) 4 2 1 PTR 990,1965 DCXDY Local 992 R(4) 4 2 1 PTR 992,1967 DCYDX Local 991 R(4) 4 2 1 PTR 991,1966 DCYDY Local 993 R(4) 4 2 1 PTR 993,1968 DDDX Local 986 R(4) 4 2 1 PTR 986,1961 DDDY Local 987 R(4) 4 2 1 PTR 987,1962 DTDYN Local 948 R(4) 4 1 1 PTR 948,954,1945 DW Local 778 R(4) 4 1 1 PTR 778,779,1871 D_ONLY Dummy 640 L(4) 4 scalar ARG,IN 741,742 E3DF Local 718 I(4) 4 2 1 PTR 718,820,821,822,823,824,891,892,89 Page 23 Source Listing W3DIMA 2014-09-16 16:47 Symbol Table w3adatmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 3,894,895,896,897,898,899,900 EF Local 820 R(4) 4 2 1 PTR 820,825,892,1892 EXTCDE Subr 722 722,749,754,759 FCUT Local 949 R(4) 4 1 1 PTR 949,955,1946 FLCUR Local 721 L(4) 4 scalar PTR 721,971 FLOGR2 Local 720 L(4) 4 2 1 PTR 720 FLOGRD Local 720 L(4) 4 2 1 PTR 720 FLWIND Local 721 L(4) 4 scalar PTR 721,976 FL_ALL Local 742 L(4) 4 scalar PTR 742,744,966,1820,1953 FP0 Local 801 R(4) 4 1 1 PTR 801,811,1885 FP1 Local 803 R(4) 4 1 1 PTR 803,815,1889 GTYPE Local 718 I(4) 4 scalar PTR 718,997 HS Local 799 R(4) 4 1 1 PTR 799,806,1880 IAPPRO Local 1010 I(4) 4 1 1 PTR 1010,1998 IAPROC Local 719 I(4) 4 scalar PTR 719 IGRID Local 717 I(4) 4 scalar 717,762 IMOD Dummy 640 I(4) 4 scalar ARG,IN 752,753,757,763,769,778,779,781,78 2,783,785,786,787,799,800,801,802, 803,804,806,807,808,809,810,811,81 2,813,814,815,816,820,821,822,823, 824,825,826,827,828,829,833,834,83 5,836,837,838,839,841,842,843,844, 845,846,847,848,854,855,856,857,85 8,859,860,861,863,864,865,866,867, 868,869,870,874,875,876,877,878,87 9,880,881,882,883,884,885,886,892, 894,896,898,900,901,902,904,905,90 6,907,908,909,910,911,912,913,914, 915,916,917,918,922,923,924,925,92 6,928,929,930,931,932,933,934,938, 939,941,942,943,944,948,949,950,95 1,952,954,955,956,957,958,962,964, 968,969,971,972,973,974,976,977,97 8,979,980,981,983,984,986,987,988, 989,990,991,992,993,995,998,1001,1 002,1003,1004,1005,1006,1007,1008, 1010,1011,1015,1020,1028 ITER Local 998 I(4) 4 2 1 PTR 998,1996 JGRID Local 735 I(4) 4 scalar 762,763,1028 MAPAXY Local 1003 I(4) 4 1 1 PTR 1003,1990 MAPCXY Local 1004 I(4) 4 1 1 PTR 1004,1991 MAPTH2 Local 1005 I(4) 4 1 1 PTR 1005,1008,1992 MAPTRN Local 1007 L(4) 4 1 1 PTR 1007,1994 MAPWN2 Local 1006 I(4) 4 1 1 PTR 1006,1993 MAPX2 Local 1001 I(4) 4 1 1 PTR 1001,1988 MAPY2 Local 1002 I(4) 4 1 1 PTR 1002,1989 MSCX Local 939 R(4) 4 1 1 PTR 939,943,1942 MSCY Local 939 R(4) 4 1 1 PTR 939,944,1943 MSSX Local 938 R(4) 4 1 1 PTR 938,941,1940 MSSY Local 938 R(4) 4 1 1 PTR 938,942,1941 NAPFLD Local 719 I(4) 4 scalar PTR 719 NAPROC Local 719 I(4) 4 scalar PTR 719,771,772 NDSE Dummy 640 I(4) 4 scalar ARG,IN 748,753,758,763,769,1020,1028 NDST Dummy 640 I(4) 4 scalar ARG,IN 763,769,1020,1028 NGRIDS Local 717 I(4) 4 scalar 717,747 Page 24 Source Listing W3DIMA 2014-09-16 16:47 Symbol Table w3adatmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References NK Local 717 I(4) 4 scalar PTR 717,902,968,969,988,989,995,998,10 05,1011 NOEXTR Param 720 I(4) 4 scalar 720,962 NOSWLL Local 720 I(4) 4 scalar PTR 720,833,834,835,836,837,838 NSEA Local 717 I(4) 4 scalar PTR 717,771,778,781,785,786,787,968,96 9,971,972,973,974,976,977,978,979, 980,981,1004 NSEAL Local 718 I(4) 4 scalar PTR 718,995 NSEALM Local 771 I(4) 4 scalar PTR 771,772,799,800,801,802,803,804,82 0,821,822,823,824,833,834,835,836, 837,838,839,854,855,856,857,858,85 9,860,861,874,875,876,877,878,879, 880,881,882,883,884,885,886,892,89 4,896,898,900,901,902,922,923,924, 925,926,938,939,948,949,950,951,95 2,962,1110,1111,1815 NSPEC Local 718 I(4) 4 scalar PTR 718,1006,1010 NTH Local 718 I(4) 4 scalar PTR 718,998,1005,1006,1011 NTPROC Local 719 I(4) 4 scalar PTR 719 NX Local 717 I(4) 4 scalar PTR 717,983,984,986,987,988,989,990,99 1,992,993,1001,1002,1003,1007 NXXX Local 735 I(4) 4 scalar 772 NY Local 717 I(4) 4 scalar PTR 717,983,984,986,987,988,989,990,99 1,992,993,1001,1002,1003,1007 P2MSF Local 718 I(4) 4 1 1 PTR 718,901,917 P2SMS Local 901 R(4) 4 2 1 PTR 901,917,1929 PHIAW Local 856 R(4) 4 1 1 PTR 856,865,1909 PHIBBL Local 925 R(4) 4 1 1 PTR 925,933,1937 PHIOC Local 880 R(4) 4 1 1 PTR 880,910,1922 PHS Local 833 R(4) 4 2 1 PTR 833,841,1898 PLP Local 835 R(4) 4 2 1 PTR 835,843,1900 PNR Local 839 R(4) 4 1 1 PTR 839,848,1905 PRESENT Func 741 scalar 741 PRMS Local 885 R(4) 4 1 1 PTR 885,915,1927 PSI Local 837 R(4) 4 2 1 PTR 837,845,1902 PTH Local 836 R(4) 4 2 1 PTR 836,844,1901 PTP Local 834 R(4) 4 2 1 PTR 834,842,1899 PWS Local 838 R(4) 4 2 1 PTR 838,846,1903 PWST Local 839 R(4) 4 1 1 PTR 839,847,1904 SPPNT Local 1011 R(4) 4 3 1 PTR 1011,1999 STH1M Local 822 R(4) 4 2 1 PTR 822,827,896,1894 STH2M Local 824 R(4) 4 2 1 PTR 824,829,900,1896 SXX Local 874 R(4) 4 1 1 PTR 874,904,1916 SXY Local 876 R(4) 4 1 1 PTR 876,906,1918 SYY Local 875 R(4) 4 1 1 PTR 875,905,1917 T01 Local 801 R(4) 4 1 1 PTR 801,810,1884 T02 Local 800 R(4) 4 1 1 PTR 800,808,1882 T0M1 Local 800 R(4) 4 1 1 PTR 800,809,1883 TAUBBL Local 926 R(4) 4 2 1 PTR 926,934,1938 TAUOX Local 877 R(4) 4 1 1 PTR 877,907,1919 TAUOY Local 878 R(4) 4 1 1 PTR 878,908,1920 TAUWIX Local 857 R(4) 4 1 1 PTR 857,866,1910 TAUWIY Local 858 R(4) 4 1 1 PTR 858,867,1911 TAUWNX Local 859 R(4) 4 1 1 PTR 859,868,1912 TAUWNY Local 860 R(4) 4 1 1 PTR 860,869,1913 Page 25 Source Listing W3DIMA 2014-09-16 16:47 Symbol Table w3adatmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References TH1M Local 821 R(4) 4 2 1 PTR 821,826,894,1893 TH2M Local 823 R(4) 4 2 1 PTR 823,828,898,1895 THM Local 802 R(4) 4 1 1 PTR 802,812,1886 THP0 Local 803 R(4) 4 1 1 PTR 803,814,1888 THP1 Local 804 R(4) 4 1 1 PTR 804,816,1890 THS Local 802 R(4) 4 1 1 PTR 802,813,1887 TPMS Local 886 R(4) 4 1 1 PTR 886,916,1928 TUSX Local 881 R(4) 4 1 1 PTR 881,911,1923 TUSY Local 882 R(4) 4 1 1 PTR 882,912,1924 U10 Local 786 R(4) 4 1 1 PTR 786,1874 U10D Local 786 R(4) 4 1 1 PTR 786,1875 UA Local 785 R(4) 4 1 1 PTR 785,1872 UA0 Local 976 R(4) 4 1 1 PTR 976,1980 UAI Local 977 R(4) 4 1 1 PTR 977,1981 UBA Local 923 R(4) 4 1 1 PTR 923,930,1934 UBD Local 923 R(4) 4 1 1 PTR 923,931,1935 UD Local 785 R(4) 4 1 1 PTR 785,1873 UD0 Local 978 R(4) 4 1 1 PTR 978,1982 UDI Local 979 R(4) 4 1 1 PTR 979,1983 UNDEF Local 720 R(4) 4 scalar 720,806,807,808,809,810,811,812,81 3,814,815,816,825,826,827,828,829, 841,842,843,844,845,846,847,848,86 3,864,865,866,867,868,869,870,904, 905,906,907,908,909,910,911,912,91 3,914,915,916,917,918,928,929,930, 931,932,933,934,941,942,943,944,95 4,955,956,957,958,964 UNGTYPE Param 718 I(4) 4 scalar 718,997 US3D Local 902 R(4) 4 2 1 PTR 902,918,1930 US3DF Local 718 I(4) 4 1 1 PTR 718,902,918 USERO Local 962 R(4) 4 2 1 PTR 962,964,1951 USSX Local 883 R(4) 4 1 1 PTR 883,913,1925 USSY Local 884 R(4) 4 1 1 PTR 884,914,1926 W3DIMA Subr 640 W3GDATMD Module 717 717 W3IDATMD Module 721 721 W3ODATMD Module 719 719 W3SERVMD Module 722 722 W3SETG Subr 717 717,763,1028 WHITECAP Local 861 R(4) 4 2 1 PTR 861,870,1914 WLM Local 799 R(4) 4 1 1 PTR 799,807,1881 WN Local 969 R(4) 4 2 1 PTR 969,1956 Page 26 Source Listing W3DIMA 2014-09-16 16:47 w3adatmd.f90 1045 !/ ------------------------------------------------------------------- / 1046 SUBROUTINE W3XDMA ( IMOD, NDSE, NDST, FLAGS ) 1047 !/ 1048 !/ +-----------------------------------+ 1049 !/ | WAVEWATCH III NOAA/NCEP | 1050 !/ | H. L. Tolman | 1051 !/ | FORTRAN 90 | 1052 !/ | Last update : 26-Dec-2012 ! 1053 !/ +-----------------------------------+ 1054 !/ 1055 !/ 26-Dec-2012 : Origination. ( version 3.06 ) 1056 !/ 1057 ! 1. Purpose : 1058 ! 1059 ! Version of W3DIMX for extended ouput arrays only. 1060 ! 1061 ! 10. Source code : 1062 ! 1063 !/ ------------------------------------------------------------------- / 1064 USE W3GDATMD, ONLY: NGRIDS, IGRID, W3SETG, NK, NX, NY, NSEA, & 1065 NSEAL, NSPEC, NTH, E3DF, P2MSF, US3DF, GTYPE, UNGTYPE 1066 USE W3ODATMD, ONLY: IAPROC, NAPROC, NTPROC, NAPFLD, & 1067 NOSWLL, NOEXTR, UNDEF, FLOGRD, FLOGR2, & 1068 NOGRP, NGRPP 1069 USE W3IDATMD, ONLY: FLCUR, FLWIND 1070 USE W3SERVMD, ONLY: EXTCDE 1071 ! 1072 IMPLICIT NONE 1073 !/ 1074 !/ ------------------------------------------------------------------- / 1075 !/ Parameter list 1076 !/ 1077 INTEGER, INTENT(IN) :: IMOD, NDSE, NDST 1078 LOGICAL, INTENT(IN) :: FLAGS(NOGRP,NGRPP) 1079 !/ 1080 !/ ------------------------------------------------------------------- / 1081 !/ Local parameters 1082 !/ 1083 INTEGER :: JGRID, NXXX, I 1084 !/ 1085 ! 1086 ! -------------------------------------------------------------------- / 1087 ! 1. Test input and module status 1088 ! 1089 IF ( NGRIDS .EQ. -1 ) THEN 1090 WRITE (NDSE,1001) 1091 CALL EXTCDE (1) 1092 END IF 1093 ! 1094 IF ( IMOD.LT.1 .OR. IMOD.GT.NADATA ) THEN 1095 WRITE (NDSE,1002) IMOD, NADATA 1096 CALL EXTCDE (2) 1097 END IF 1098 ! 1099 IF ( WADATS(IMOD)%AINIT2 ) THEN 1100 WRITE (NDSE,1003) 1101 CALL EXTCDE (3) Page 27 Source Listing W3XDMA 2014-09-16 16:47 w3adatmd.f90 1102 END IF 1103 ! 1104 JGRID = IGRID 1105 IF ( JGRID .NE. IMOD ) CALL W3SETG ( IMOD, NDSE, NDST ) 1106 ! 1107 ! -------------------------------------------------------------------- / 1108 ! 2. Allocate arrays 1109 ! 1110 NSEALM = 1 + (NSEA-1)/NAPROC 1111 NXXX = NSEALM * NAPROC 1112 ! 1113 IF ( FLAGS( 2, 1) ) THEN 1114 ALLOCATE ( WADATS(IMOD)%XHS(NXXX) ) 1115 ELSE 1116 ALLOCATE ( WADATS(IMOD)%XHS(1) ) 1117 END IF 1118 ! 1119 IF ( FLAGS( 2, 2) ) THEN 1120 ALLOCATE ( WADATS(IMOD)%XWLM(NXXX) ) 1121 ELSE 1122 ALLOCATE ( WADATS(IMOD)%XWLM(1) ) 1123 END IF 1124 ! 1125 IF ( FLAGS( 2, 3) ) THEN 1126 ALLOCATE ( WADATS(IMOD)%XT02(NXXX) ) 1127 ELSE 1128 ALLOCATE ( WADATS(IMOD)%XT02(1) ) 1129 END IF 1130 ! 1131 IF ( FLAGS( 2, 4) ) THEN 1132 ALLOCATE ( WADATS(IMOD)%XT0M1(NXXX) ) 1133 ELSE 1134 ALLOCATE ( WADATS(IMOD)%XT0M1(1) ) 1135 END IF 1136 ! 1137 IF ( FLAGS( 2, 5) ) THEN 1138 ALLOCATE ( WADATS(IMOD)%XT01 (NXXX) ) 1139 ELSE 1140 ALLOCATE ( WADATS(IMOD)%XT01 (1) ) 1141 END IF 1142 ! 1143 IF ( FLAGS( 2, 6) ) THEN 1144 ALLOCATE ( WADATS(IMOD)%XFP0(NXXX) ) 1145 ELSE 1146 ALLOCATE ( WADATS(IMOD)%XFP0(1) ) 1147 END IF 1148 ! 1149 IF ( FLAGS( 2, 7) ) THEN 1150 ALLOCATE ( WADATS(IMOD)%XTHM(NXXX) ) 1151 ELSE 1152 ALLOCATE ( WADATS(IMOD)%XTHM(1) ) 1153 END IF 1154 ! 1155 IF ( FLAGS( 2, 8) ) THEN 1156 ALLOCATE ( WADATS(IMOD)%XTHS(NXXX) ) 1157 ELSE 1158 ALLOCATE ( WADATS(IMOD)%XTHS(1) ) Page 28 Source Listing W3XDMA 2014-09-16 16:47 w3adatmd.f90 1159 END IF 1160 ! 1161 IF ( FLAGS( 2, 9) ) THEN 1162 ALLOCATE ( WADATS(IMOD)%XTHP0(NXXX) ) 1163 ELSE 1164 ALLOCATE ( WADATS(IMOD)%XTHP0(1) ) 1165 END IF 1166 ! 1167 ! IF ( FLAGS( 2,xx) ) THEN 1168 ! ALLOCATE ( WADATS(IMOD)%XFP1(NXXX) ) 1169 ! ELSE 1170 ! ALLOCATE ( WADATS(IMOD)%XFP1(1) ) 1171 ! END IF 1172 ! 1173 ! IF ( FLAGS( 2,xx) ) THEN 1174 ! ALLOCATE ( WADATS(IMOD)%XTHP1(NXXX) ) 1175 ! ELSE 1176 ! ALLOCATE ( WADATS(IMOD)%XTHP1(1) ) 1177 ! END IF 1178 ! 1179 WADATS(IMOD)%XHS = UNDEF 1180 WADATS(IMOD)%XWLM = UNDEF 1181 WADATS(IMOD)%XT02 = UNDEF 1182 WADATS(IMOD)%XT0M1 = UNDEF 1183 WADATS(IMOD)%XT01 = UNDEF 1184 WADATS(IMOD)%XFP0 = UNDEF 1185 WADATS(IMOD)%XTHM = UNDEF 1186 WADATS(IMOD)%XTHS = UNDEF 1187 WADATS(IMOD)%XTHP0 = UNDEF 1188 ! WADATS(IMOD)%XFP1 = UNDEF 1189 ! WADATS(IMOD)%XTHP1 = UNDEF 1190 ! 1191 IF ( FLAGS( 3, 1) ) THEN 1192 ALLOCATE ( WADATS(IMOD)%XEF(NXXX,E3DF(2,1):E3DF(3,1))) 1193 ELSE 1194 ALLOCATE ( WADATS(IMOD)%XEF(1,1)) 1195 END IF 1196 1197 IF ( FLAGS( 3, 2) ) THEN 1198 ALLOCATE ( WADATS(IMOD)%XTH1M(NXXX,E3DF(2,2):E3DF(3,2))) 1199 ELSE 1200 ALLOCATE ( WADATS(IMOD)%XTH1M(1,1) ) 1201 END IF 1202 1203 IF ( FLAGS( 3, 3) ) THEN 1204 ALLOCATE ( WADATS(IMOD)%XSTH1M(NXXX,E3DF(2,3):E3DF(3,3))) 1205 ELSE 1206 ALLOCATE ( WADATS(IMOD)%XSTH1M(1,1) ) 1207 END IF 1208 1209 IF ( FLAGS( 3, 4) ) THEN 1210 ALLOCATE ( WADATS(IMOD)%XTH2M(NXXX,E3DF(2,4):E3DF(3,4))) 1211 ELSE 1212 ALLOCATE ( WADATS(IMOD)%XTH2M(1,1) ) 1213 END IF 1214 ! 1215 IF ( FLAGS( 3, 5) ) THEN Page 29 Source Listing W3XDMA 2014-09-16 16:47 w3adatmd.f90 1216 ALLOCATE ( WADATS(IMOD)%XSTH2M(NXXX,E3DF(2,5):E3DF(3,5))) 1217 ELSE 1218 ALLOCATE ( WADATS(IMOD)%XSTH2M(1,1) ) 1219 END IF 1220 ! 1221 WADATS(IMOD)%XEF = UNDEF 1222 ! 1223 IF ( FLAGS( 4, 1) ) THEN 1224 ALLOCATE ( WADATS(IMOD)%XPHS(NXXX,0:NOSWLL) ) 1225 ELSE 1226 ALLOCATE ( WADATS(IMOD)%XPHS(1,1) ) 1227 END IF 1228 ! 1229 IF ( FLAGS( 4, 2) ) THEN 1230 ALLOCATE ( WADATS(IMOD)%XPTP(NXXX,0:NOSWLL) ) 1231 ELSE 1232 ALLOCATE ( WADATS(IMOD)%XPTP(1,1) ) 1233 END IF 1234 ! 1235 IF ( FLAGS( 4, 3) ) THEN 1236 ALLOCATE ( WADATS(IMOD)%XPLP(NXXX,0:NOSWLL) ) 1237 ELSE 1238 ALLOCATE ( WADATS(IMOD)%XPLP(1,1) ) 1239 END IF 1240 ! 1241 IF ( FLAGS( 4, 4) ) THEN 1242 ALLOCATE ( WADATS(IMOD)%XPTH(NXXX,0:NOSWLL) ) 1243 ELSE 1244 ALLOCATE ( WADATS(IMOD)%XPTH(1,1) ) 1245 END IF 1246 ! 1247 IF ( FLAGS( 4, 5) ) THEN 1248 ALLOCATE ( WADATS(IMOD)%XPSI(NXXX,0:NOSWLL) ) 1249 ELSE 1250 ALLOCATE ( WADATS(IMOD)%XPSI(1,1) ) 1251 END IF 1252 ! 1253 IF ( FLAGS( 4, 6) ) THEN 1254 ALLOCATE ( WADATS(IMOD)%XPWS(NXXX,0:NOSWLL) ) 1255 ELSE 1256 ALLOCATE ( WADATS(IMOD)%XPWS(1,1) ) 1257 END IF 1258 ! 1259 IF ( FLAGS( 4, 7) ) THEN 1260 ALLOCATE ( WADATS(IMOD)%XPWST(NXXX) ) 1261 ELSE 1262 ALLOCATE ( WADATS(IMOD)%XPWST(1) ) 1263 END IF 1264 ! 1265 IF ( FLAGS( 4, 8) ) THEN 1266 ALLOCATE ( WADATS(IMOD)%XPNR(NXXX) ) 1267 ELSE 1268 ALLOCATE ( WADATS(IMOD)%XPNR(1) ) 1269 END IF 1270 ! 1271 WADATS(IMOD)%XPHS = UNDEF 1272 WADATS(IMOD)%XPTP = UNDEF Page 30 Source Listing W3XDMA 2014-09-16 16:47 w3adatmd.f90 1273 WADATS(IMOD)%XPLP = UNDEF 1274 WADATS(IMOD)%XPTH = UNDEF 1275 WADATS(IMOD)%XPSI = UNDEF 1276 WADATS(IMOD)%XPWS = UNDEF 1277 WADATS(IMOD)%XPWST = UNDEF 1278 WADATS(IMOD)%XPNR = UNDEF 1279 ! 1280 IF ( FLAGS( 5, 2) ) THEN 1281 ALLOCATE ( WADATS(IMOD)%XCHARN(NXXX) ) 1282 ELSE 1283 ALLOCATE ( WADATS(IMOD)%XCHARN(1) ) 1284 END IF 1285 ! 1286 IF ( FLAGS( 5, 3) ) THEN 1287 ALLOCATE ( WADATS(IMOD)%XCGE(NXXX) ) 1288 ELSE 1289 ALLOCATE ( WADATS(IMOD)%XCGE(1) ) 1290 END IF 1291 ! 1292 IF ( FLAGS( 5, 4) ) THEN 1293 ALLOCATE ( WADATS(IMOD)%XPHIAW(NXXX) ) 1294 ELSE 1295 ALLOCATE ( WADATS(IMOD)%XPHIAW(1) ) 1296 END IF 1297 ! 1298 IF ( FLAGS( 5, 5) ) THEN 1299 ALLOCATE ( WADATS(IMOD)%XTAUWIX(NXXX) ) 1300 ALLOCATE ( WADATS(IMOD)%XTAUWIY(NXXX) ) 1301 ELSE 1302 ALLOCATE ( WADATS(IMOD)%XTAUWIX(1) ) 1303 ALLOCATE ( WADATS(IMOD)%XTAUWIY(1) ) 1304 END IF 1305 ! 1306 IF ( FLAGS( 5, 6) ) THEN 1307 ALLOCATE ( WADATS(IMOD)%XTAUWNX(NXXX) ) 1308 ALLOCATE ( WADATS(IMOD)%XTAUWNY(NXXX) ) 1309 ELSE 1310 ALLOCATE ( WADATS(IMOD)%XTAUWNX(1) ) 1311 ALLOCATE ( WADATS(IMOD)%XTAUWNY(1) ) 1312 END IF 1313 ! 1314 IF ( FLAGS( 5, 7) .OR. FLAGS( 5, 8) .OR. & 1315 FLAGS( 5, 9) .OR. FLAGS( 5,10)) THEN 1316 ALLOCATE ( WADATS(IMOD)%XWHITECAP(NXXX,4) ) 1317 ELSE 1318 ALLOCATE ( WADATS(IMOD)%XWHITECAP(1,4) ) 1319 END IF 1320 ! 1321 WADATS(IMOD)%XCHARN = UNDEF 1322 WADATS(IMOD)%XCGE = UNDEF 1323 WADATS(IMOD)%XPHIAW = UNDEF 1324 WADATS(IMOD)%XTAUWIX = UNDEF 1325 WADATS(IMOD)%XTAUWIY = UNDEF 1326 WADATS(IMOD)%XTAUWNX = UNDEF 1327 WADATS(IMOD)%XTAUWNY = UNDEF 1328 WADATS(IMOD)%XWHITECAP = UNDEF 1329 ! Page 31 Source Listing W3XDMA 2014-09-16 16:47 w3adatmd.f90 1330 IF ( FLAGS( 6, 1) ) THEN 1331 ALLOCATE ( WADATS(IMOD)%XSXX(NXXX) ) 1332 ALLOCATE ( WADATS(IMOD)%XSYY(NXXX) ) 1333 ALLOCATE ( WADATS(IMOD)%XSXY(NXXX) ) 1334 ELSE 1335 ALLOCATE ( WADATS(IMOD)%XSXX(1) ) 1336 ALLOCATE ( WADATS(IMOD)%XSYY(1) ) 1337 ALLOCATE ( WADATS(IMOD)%XSXY(1) ) 1338 END IF 1339 ! 1340 IF ( FLAGS( 6, 2) ) THEN 1341 ALLOCATE ( WADATS(IMOD)%XTAUOX(NXXX) ) 1342 ALLOCATE ( WADATS(IMOD)%XTAUOY(NXXX) ) 1343 ELSE 1344 ALLOCATE ( WADATS(IMOD)%XTAUOX(1) ) 1345 ALLOCATE ( WADATS(IMOD)%XTAUOY(1) ) 1346 END IF 1347 ! 1348 IF ( FLAGS( 6, 3) ) THEN 1349 ALLOCATE ( WADATS(IMOD)%XBHD(NXXX) ) 1350 ELSE 1351 ALLOCATE ( WADATS(IMOD)%XBHD(1) ) 1352 END IF 1353 ! 1354 IF ( FLAGS( 6, 4) ) THEN 1355 ALLOCATE ( WADATS(IMOD)%XPHIOC(NXXX) ) 1356 ELSE 1357 ALLOCATE ( WADATS(IMOD)%XPHIOC(1) ) 1358 END IF 1359 ! 1360 IF ( FLAGS( 6, 5) ) THEN 1361 ALLOCATE ( WADATS(IMOD)%XTUSX(NXXX) ) 1362 ALLOCATE ( WADATS(IMOD)%XTUSY(NXXX) ) 1363 ELSE 1364 ALLOCATE ( WADATS(IMOD)%XTUSX(1) ) 1365 ALLOCATE ( WADATS(IMOD)%XTUSY(1) ) 1366 END IF 1367 ! 1368 IF ( FLAGS( 6, 6) ) THEN 1369 ALLOCATE ( WADATS(IMOD)%XUSSX(NXXX) ) 1370 ALLOCATE ( WADATS(IMOD)%XUSSY(NXXX) ) 1371 ELSE 1372 ALLOCATE ( WADATS(IMOD)%XUSSX(1) ) 1373 ALLOCATE ( WADATS(IMOD)%XUSSY(1) ) 1374 END IF 1375 ! 1376 IF ( FLAGS( 6, 7) ) THEN 1377 ALLOCATE ( WADATS(IMOD)%XPRMS(NXXX) ) 1378 ALLOCATE ( WADATS(IMOD)%XTPMS(NXXX) ) 1379 ELSE 1380 ALLOCATE ( WADATS(IMOD)%XPRMS(1) ) 1381 ALLOCATE ( WADATS(IMOD)%XTPMS(1) ) 1382 END IF 1383 ! 1384 IF ( FLAGS( 6, 8) ) THEN 1385 ALLOCATE ( WADATS(IMOD)%XUS3D(NXXX,2*NK) ) 1386 ELSE Page 32 Source Listing W3XDMA 2014-09-16 16:47 w3adatmd.f90 1387 ALLOCATE ( WADATS(IMOD)%XUS3D(1,1) ) 1388 END IF 1389 ! 1390 IF ( FLAGS( 6, 9) ) THEN 1391 ALLOCATE ( WADATS(IMOD)%XP2SMS(NXXX,P2MSF(2):P2MSF(3))) 1392 ELSE 1393 ALLOCATE ( WADATS(IMOD)%XP2SMS(1,1)) 1394 END IF 1395 ! 1396 WADATS(IMOD)%XSXX = UNDEF 1397 WADATS(IMOD)%XSYY = UNDEF 1398 WADATS(IMOD)%XSXY = UNDEF 1399 WADATS(IMOD)%XTAUOX = UNDEF 1400 WADATS(IMOD)%XTAUOY = UNDEF 1401 WADATS(IMOD)%XBHD = UNDEF 1402 WADATS(IMOD)%XPHIOC = UNDEF 1403 WADATS(IMOD)%XTUSX = UNDEF 1404 WADATS(IMOD)%XTUSY = UNDEF 1405 WADATS(IMOD)%XUSSX = UNDEF 1406 WADATS(IMOD)%XUSSY = UNDEF 1407 WADATS(IMOD)%XPRMS = UNDEF 1408 WADATS(IMOD)%XTPMS = UNDEF 1409 WADATS(IMOD)%XUS3D = UNDEF 1410 WADATS(IMOD)%XP2SMS = UNDEF 1411 ! 1412 IF ( FLAGS( 7, 1) ) THEN 1413 ALLOCATE ( WADATS(IMOD)%XABA(NXXX) ) 1414 ALLOCATE ( WADATS(IMOD)%XABD(NXXX) ) 1415 ELSE 1416 ALLOCATE ( WADATS(IMOD)%XABA(1) ) 1417 ALLOCATE ( WADATS(IMOD)%XABD(1) ) 1418 END IF 1419 ! 1420 IF ( FLAGS( 7, 2) ) THEN 1421 ALLOCATE ( WADATS(IMOD)%XUBA(NXXX) ) 1422 ALLOCATE ( WADATS(IMOD)%XUBD(NXXX) ) 1423 ELSE 1424 ALLOCATE ( WADATS(IMOD)%XUBA(1) ) 1425 ALLOCATE ( WADATS(IMOD)%XUBD(1) ) 1426 END IF 1427 ! 1428 IF ( FLAGS( 7, 3) ) THEN 1429 ALLOCATE ( WADATS(IMOD)%XBEDFORMS(NXXX,3) ) 1430 ELSE 1431 ALLOCATE ( WADATS(IMOD)%XBEDFORMS(1,3) ) 1432 END IF 1433 ! 1434 IF ( FLAGS( 7, 4) ) THEN 1435 ALLOCATE ( WADATS(IMOD)%XPHIBBL(NXXX) ) 1436 ELSE 1437 ALLOCATE ( WADATS(IMOD)%XPHIBBL(1) ) 1438 END IF 1439 ! 1440 IF ( FLAGS( 7, 5) ) THEN 1441 ALLOCATE ( WADATS(IMOD)%XTAUBBL(NXXX,2) ) 1442 ELSE 1443 ALLOCATE ( WADATS(IMOD)%XTAUBBL(1,2) ) Page 33 Source Listing W3XDMA 2014-09-16 16:47 w3adatmd.f90 1444 END IF 1445 ! 1446 WADATS(IMOD)%XABA = UNDEF 1447 WADATS(IMOD)%XABD = UNDEF 1448 WADATS(IMOD)%XUBA = UNDEF 1449 WADATS(IMOD)%XUBD = UNDEF 1450 WADATS(IMOD)%XBEDFORMS = UNDEF 1451 WADATS(IMOD)%XPHIBBL = UNDEF 1452 WADATS(IMOD)%XTAUBBL = UNDEF 1453 ! 1454 IF ( FLAGS( 8, 1) ) THEN 1455 ALLOCATE ( WADATS(IMOD)%XMSSX(NXXX) ) 1456 ALLOCATE ( WADATS(IMOD)%XMSSY(NXXX) ) 1457 ELSE 1458 ALLOCATE ( WADATS(IMOD)%XMSSX(1) ) 1459 ALLOCATE ( WADATS(IMOD)%XMSSY(1) ) 1460 END IF 1461 ! 1462 IF ( FLAGS( 8, 2) ) THEN 1463 ALLOCATE ( WADATS(IMOD)%XMSCX(NXXX) ) 1464 ALLOCATE ( WADATS(IMOD)%XMSCY(NXXX) ) 1465 ELSE 1466 ALLOCATE ( WADATS(IMOD)%XMSCX(1) ) 1467 ALLOCATE ( WADATS(IMOD)%XMSCY(1) ) 1468 END IF 1469 ! 1470 WADATS(IMOD)%XMSSX = UNDEF 1471 WADATS(IMOD)%XMSSY = UNDEF 1472 WADATS(IMOD)%XMSCX = UNDEF 1473 WADATS(IMOD)%XMSCY = UNDEF 1474 ! 1475 IF ( FLAGS( 9, 1) ) THEN 1476 ALLOCATE ( WADATS(IMOD)%XDTDYN(NXXX) ) 1477 ELSE 1478 ALLOCATE ( WADATS(IMOD)%XDTDYN(1) ) 1479 END IF 1480 ! 1481 IF ( FLAGS( 9, 2) ) THEN 1482 ALLOCATE ( WADATS(IMOD)%XFCUT(NXXX) ) 1483 ELSE 1484 ALLOCATE ( WADATS(IMOD)%XFCUT(1) ) 1485 END IF 1486 ! 1487 IF ( FLAGS( 9, 3) ) THEN 1488 ALLOCATE ( WADATS(IMOD)%XCFLXYMAX(NXXX) ) 1489 ELSE 1490 ALLOCATE ( WADATS(IMOD)%XCFLXYMAX(1) ) 1491 END IF 1492 ! 1493 IF ( FLAGS( 9, 4) ) THEN 1494 ALLOCATE ( WADATS(IMOD)%XCFLTHMAX(NXXX) ) 1495 ELSE 1496 ALLOCATE ( WADATS(IMOD)%XCFLTHMAX(1) ) 1497 END IF 1498 ! 1499 IF ( FLAGS( 9, 5) ) THEN 1500 ALLOCATE ( WADATS(IMOD)%XCFLKMAX(NXXX) ) Page 34 Source Listing W3XDMA 2014-09-16 16:47 w3adatmd.f90 1501 ELSE 1502 ALLOCATE ( WADATS(IMOD)%XCFLKMAX(1) ) 1503 END IF 1504 ! 1505 WADATS(IMOD)%XDTDYN = UNDEF 1506 WADATS(IMOD)%XFCUT = UNDEF 1507 WADATS(IMOD)%XCFLXYMAX = UNDEF 1508 WADATS(IMOD)%XCFLTHMAX = UNDEF 1509 WADATS(IMOD)%XCFLKMAX = UNDEF 1510 ! 1511 DO I=1, NOEXTR 1512 IF ( FLAGS(10, i) ) THEN 1513 ALLOCATE ( WADATS(IMOD)%XUSERO(NXXX,I) ) 1514 ELSE 1515 ALLOCATE ( WADATS(IMOD)%XUSERO(1,I) ) 1516 END IF 1517 END DO 1518 ! 1519 WADATS(IMOD)%XUSERO = UNDEF 1520 ! 1521 WADATS(IMOD)%AINIT2 = .TRUE. 1522 ! 1523 ! -------------------------------------------------------------------- / 1524 ! 5. Restore previous grid setting if necessary 1525 ! 1526 IF ( JGRID .NE. IMOD ) CALL W3SETG ( JGRID, NDSE, NDST ) 1527 ! 1528 RETURN 1529 ! 1530 ! Formats 1531 ! 1532 1001 FORMAT (/' *** ERROR W3XDMA : GRIDS NOT INITIALIZED *** '/ & 1533 ' RUN W3NMOD FIRST '/) 1534 1002 FORMAT (/' *** ERROR W3XDMA : ILLEGAL MODEL NUMBER *** '/ & 1535 ' IMOD = ',I10/ & 1536 ' NADATA = ',I10/) 1537 1003 FORMAT (/' *** ERROR W3XDMA : ARRAY(S) ALREADY ALLOCATED *** ') 1538 ! 1539 !/ 1540 !/ End of W3XDMA ----------------------------------------------------- / 1541 !/ 1542 END SUBROUTINE W3XDMA Page 35 Source Listing W3XDMA 2014-09-16 16:47 Entry Points w3adatmd.f90 ENTRY POINTS Name w3adatmd_mp_w3xdma_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 1001 Label 1532 1090 1002 Label 1534 1095 1003 Label 1537 1100 E3DF Local 1065 I(4) 4 2 1 PTR 1065,1192,1198,1204,1210,1216 EXTCDE Subr 1070 1070,1091,1096,1101 FLAGS Dummy 1046 L(4) 4 2 200 ARG,IN 1113,1119,1125,1131,1137,1143,1149 ,1155,1161,1191,1197,1203,1209,121 5,1223,1229,1235,1241,1247,1253,12 59,1265,1280,1286,1292,1298,1306,1 314,1315,1330,1340,1348,1354,1360, 1368,1376,1384,1390,1412,1420,1428 ,1434,1440,1454,1462,1475,1481,148 7,1493,1499,1512 FLCUR Local 1069 L(4) 4 scalar PTR 1069 FLOGR2 Local 1067 L(4) 4 2 1 PTR 1067 FLOGRD Local 1067 L(4) 4 2 1 PTR 1067 FLWIND Local 1069 L(4) 4 scalar PTR 1069 GTYPE Local 1065 I(4) 4 scalar PTR 1065 I Local 1083 I(4) 4 scalar 1511,1512,1513,1515 IAPROC Local 1066 I(4) 4 scalar PTR 1066 IGRID Local 1064 I(4) 4 scalar 1064,1104 IMOD Dummy 1046 I(4) 4 scalar ARG,IN 1094,1095,1099,1105,1114,1116,1120 ,1122,1126,1128,1132,1134,1138,114 0,1144,1146,1150,1152,1156,1158,11 62,1164,1179,1180,1181,1182,1183,1 184,1185,1186,1187,1192,1194,1198, 1200,1204,1206,1210,1212,1216,1218 ,1221,1224,1226,1230,1232,1236,123 8,1242,1244,1248,1250,1254,1256,12 60,1262,1266,1268,1271,1272,1273,1 274,1275,1276,1277,1278,1281,1283, 1287,1289,1293,1295,1299,1300,1302 ,1303,1307,1308,1310,1311,1316,131 8,1321,1322,1323,1324,1325,1326,13 27,1328,1331,1332,1333,1335,1336,1 337,1341,1342,1344,1345,1349,1351, 1355,1357,1361,1362,1364,1365,1369 ,1370,1372,1373,1377,1378,1380,138 1,1385,1387,1391,1393,1396,1397,13 98,1399,1400,1401,1402,1403,1404,1 405,1406,1407,1408,1409,1410,1413, 1414,1416,1417,1421,1422,1424,1425 ,1429,1431,1435,1437,1441,1443,144 6,1447,1448,1449,1450,1451,1452,14 Page 36 Source Listing W3XDMA 2014-09-16 16:47 Symbol Table w3adatmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 55,1456,1458,1459,1463,1464,1466,1 467,1470,1471,1472,1473,1476,1478, 1482,1484,1488,1490,1494,1496,1500 ,1502,1505,1506,1507,1508,1509,151 3,1515,1519,1521,1526 JGRID Local 1083 I(4) 4 scalar 1104,1105,1526 NAPFLD Local 1066 I(4) 4 scalar PTR 1066 NAPROC Local 1066 I(4) 4 scalar PTR 1066,1110,1111 NDSE Dummy 1046 I(4) 4 scalar ARG,IN 1090,1095,1100,1105,1526 NDST Dummy 1046 I(4) 4 scalar ARG,IN 1105,1526 NGRIDS Local 1064 I(4) 4 scalar 1064,1089 NGRPP Param 1068 I(4) 4 scalar 1068,1078 NK Local 1064 I(4) 4 scalar PTR 1064,1385 NOEXTR Param 1067 I(4) 4 scalar 1067,1511 NOGRP Param 1068 I(4) 4 scalar 1068,1078 NOSWLL Local 1067 I(4) 4 scalar PTR 1067,1224,1230,1236,1242,1248,1254 NSEA Local 1064 I(4) 4 scalar PTR 1064,1110 NSEAL Local 1065 I(4) 4 scalar PTR 1065 NSPEC Local 1065 I(4) 4 scalar PTR 1065 NTH Local 1065 I(4) 4 scalar PTR 1065 NTPROC Local 1066 I(4) 4 scalar PTR 1066 NX Local 1064 I(4) 4 scalar PTR 1064 NXXX Local 1083 I(4) 4 scalar 1111,1114,1120,1126,1132,1138,1144 ,1150,1156,1162,1192,1198,1204,121 0,1216,1224,1230,1236,1242,1248,12 54,1260,1266,1281,1287,1293,1299,1 300,1307,1308,1316,1331,1332,1333, 1341,1342,1349,1355,1361,1362,1369 ,1370,1377,1378,1385,1391,1413,141 4,1421,1422,1429,1435,1441,1455,14 56,1463,1464,1476,1482,1488,1494,1 500,1513 NY Local 1064 I(4) 4 scalar PTR 1064 P2MSF Local 1065 I(4) 4 1 1 PTR 1065,1391 UNDEF Local 1067 R(4) 4 scalar 1067,1179,1180,1181,1182,1183,1184 ,1185,1186,1187,1221,1271,1272,127 3,1274,1275,1276,1277,1278,1321,13 22,1323,1324,1325,1326,1327,1328,1 396,1397,1398,1399,1400,1401,1402, 1403,1404,1405,1406,1407,1408,1409 ,1410,1446,1447,1448,1449,1450,145 1,1452,1470,1471,1472,1473,1505,15 06,1507,1508,1509,1519 UNGTYPE Param 1065 I(4) 4 scalar 1065 US3DF Local 1065 I(4) 4 1 1 PTR 1065 W3GDATMD Module 1064 1064 W3IDATMD Module 1069 1069 W3ODATMD Module 1066 1066 W3SERVMD Module 1070 1070 W3SETG Subr 1064 1064,1105,1526 W3XDMA Subr 1046 XABA Local 1413 R(4) 4 1 1 PTR 1413,1416,1446,2171 XABD Local 1414 R(4) 4 1 1 PTR 1414,1417,1447,2172 XBEDFORMS Local 1429 R(4) 4 2 1 PTR 1429,1431,1450,2175 XBHD Local 1349 R(4) 4 1 1 PTR 1349,1351,1401,2160 Page 37 Source Listing W3XDMA 2014-09-16 16:47 Symbol Table w3adatmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References XCFLKMAX Local 1500 R(4) 4 1 1 PTR 1500,1502,1509,2188 XCFLTHMAX Local 1494 R(4) 4 1 1 PTR 1494,1496,1508,2187 XCFLXYMAX Local 1488 R(4) 4 1 1 PTR 1488,1490,1507,2186 XCGE Local 1287 R(4) 4 1 1 PTR 1287,1289,1322,2147 XCHARN Local 1281 R(4) 4 1 1 PTR 1281,1283,1321,2146 XDTDYN Local 1476 R(4) 4 1 1 PTR 1476,1478,1505,2184 XEF Local 1192 R(4) 4 2 1 PTR 1192,1194,1221,2135 XFCUT Local 1482 R(4) 4 1 1 PTR 1482,1484,1506,2185 XFP0 Local 1144 R(4) 4 1 1 PTR 1144,1146,1184,2128 XHS Local 1114 R(4) 4 1 1 PTR 1114,1116,1179,2123 XMSCX Local 1463 R(4) 4 1 1 PTR 1463,1466,1472,2181 XMSCY Local 1464 R(4) 4 1 1 PTR 1464,1467,1473,2182 XMSSX Local 1455 R(4) 4 1 1 PTR 1455,1458,1470,2179 XMSSY Local 1456 R(4) 4 1 1 PTR 1456,1459,1471,2180 XP2SMS Local 1391 R(4) 4 2 1 PTR 1391,1393,1410,2168 XPHIAW Local 1293 R(4) 4 1 1 PTR 1293,1295,1323,2148 XPHIBBL Local 1435 R(4) 4 1 1 PTR 1435,1437,1451,2176 XPHIOC Local 1355 R(4) 4 1 1 PTR 1355,1357,1402,2161 XPHS Local 1224 R(4) 4 2 1 PTR 1224,1226,1271,2137 XPLP Local 1236 R(4) 4 2 1 PTR 1236,1238,1273,2139 XPNR Local 1266 R(4) 4 1 1 PTR 1266,1268,1278,2144 XPRMS Local 1377 R(4) 4 1 1 PTR 1377,1380,1407,2166 XPSI Local 1248 R(4) 4 2 1 PTR 1248,1250,1275,2141 XPTH Local 1242 R(4) 4 2 1 PTR 1242,1244,1274,2140 XPTP Local 1230 R(4) 4 2 1 PTR 1230,1232,1272,2138 XPWS Local 1254 R(4) 4 2 1 PTR 1254,1256,1276,2142 XPWST Local 1260 R(4) 4 1 1 PTR 1260,1262,1277,2143 XSTH1M Local 1204 R(4) 4 2 1 PTR 1204,1206 XSTH2M Local 1216 R(4) 4 2 1 PTR 1216,1218 XSXX Local 1331 R(4) 4 1 1 PTR 1331,1335,1396,2155 XSXY Local 1333 R(4) 4 1 1 PTR 1333,1337,1398,2157 XSYY Local 1332 R(4) 4 1 1 PTR 1332,1336,1397,2156 XT01 Local 1138 R(4) 4 1 1 PTR 1138,1140,1183,2127 XT02 Local 1126 R(4) 4 1 1 PTR 1126,1128,1181,2125 XT0M1 Local 1132 R(4) 4 1 1 PTR 1132,1134,1182,2126 XTAUBBL Local 1441 R(4) 4 2 1 PTR 1441,1443,1452,2177 XTAUOX Local 1341 R(4) 4 1 1 PTR 1341,1344,1399,2158 XTAUOY Local 1342 R(4) 4 1 1 PTR 1342,1345,1400,2159 XTAUWIX Local 1299 R(4) 4 1 1 PTR 1299,1302,1324,2149 XTAUWIY Local 1300 R(4) 4 1 1 PTR 1300,1303,1325,2150 XTAUWNX Local 1307 R(4) 4 1 1 PTR 1307,1310,1326,2151 XTAUWNY Local 1308 R(4) 4 1 1 PTR 1308,1311,1327,2152 XTH1M Local 1198 R(4) 4 2 1 PTR 1198,1200 XTH2M Local 1210 R(4) 4 2 1 PTR 1210,1212 XTHM Local 1150 R(4) 4 1 1 PTR 1150,1152,1185,2129 XTHP0 Local 1162 R(4) 4 1 1 PTR 1162,1164,1187,2131 XTHS Local 1156 R(4) 4 1 1 PTR 1156,1158,1186,2130 XTPMS Local 1378 R(4) 4 1 1 PTR 1378,1381,1408,2167 XTUSX Local 1361 R(4) 4 1 1 PTR 1361,1364,1403,2162 XTUSY Local 1362 R(4) 4 1 1 PTR 1362,1365,1404,2163 XUBA Local 1421 R(4) 4 1 1 PTR 1421,1424,1448,2173 XUBD Local 1422 R(4) 4 1 1 PTR 1422,1425,1449,2174 XUS3D Local 1385 R(4) 4 2 1 PTR 1385,1387,1409,2169 XUSERO Local 1513 R(4) 4 2 1 PTR 1513,1515,1519,2190 XUSSX Local 1369 R(4) 4 1 1 PTR 1369,1372,1405,2164 Page 38 Source Listing W3XDMA 2014-09-16 16:47 Symbol Table w3adatmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References XUSSY Local 1370 R(4) 4 1 1 PTR 1370,1373,1406,2165 XWHITECAP Local 1316 R(4) 4 2 1 PTR 1316,1318,1328,2153 XWLM Local 1120 R(4) 4 1 1 PTR 1120,1122,1180,2124 Page 39 Source Listing W3XDMA 2014-09-16 16:47 w3adatmd.f90 1543 !/ ------------------------------------------------------------------- / 1544 SUBROUTINE W3DMNL ( IMOD, NDSE, NDST, NSP, NSPX ) 1545 !/ 1546 !/ +-----------------------------------+ 1547 !/ | WAVEWATCH III NOAA/NCEP | 1548 !/ | H. L. Tolman | 1549 !/ | FORTRAN 90 | 1550 !/ | Last update : 04-Oct-2006 ! 1551 !/ +-----------------------------------+ 1552 !/ 1553 !/ 24-Dec-2004 : Origination. ( version 3.06 ) 1554 !/ 04-Oct-2006 : Add filter to array pointers. ( version 3.10 ) 1555 !/ 1556 ! 1. Purpose : 1557 ! 1558 ! Initialize an individual data grid at the proper dimensions (DIA). 1559 ! 1560 ! 2. Method : 1561 ! 1562 ! Allocate directly into the structure array. Note that 1563 ! this cannot be done through the pointer alias! 1564 ! 1565 ! 3. Parameters : 1566 ! 1567 ! Parameter list 1568 ! ---------------------------------------------------------------- 1569 ! IMOD Int. I Model number to point to. 1570 ! NDSE Int. I Error output unit number. 1571 ! NDST Int. I Test output unit number. 1572 ! NSP(X) Int. I Array dimensions. 1573 ! ---------------------------------------------------------------- 1574 ! 1575 ! 4. Subroutines used : 1576 ! 1577 ! See module documentation. 1578 ! 1579 ! 5. Called by : 1580 ! 1581 ! Name Type Module Description 1582 ! ---------------------------------------------------------------- 1583 ! INSNL1 Subr. W3SNL1MD Traditional DIA approach to Snl. 1584 ! ---------------------------------------------------------------- 1585 ! 1586 ! 6. Error messages : 1587 ! 1588 ! - Check on input parameters. 1589 ! - Check on previous allocation. 1590 ! 1591 ! 7. Remarks : 1592 ! 1593 ! - W3SETA needs to be called after allocation to point to 1594 ! proper allocated arrays. 1595 ! 1596 ! 8. Structure : 1597 ! 1598 ! See source code. 1599 ! Page 40 Source Listing W3DMNL 2014-09-16 16:47 w3adatmd.f90 1600 ! 9. Switches : 1601 ! 1602 ! !/S Enable subroutine tracing. 1603 ! !/T Enable test output 1604 ! 1605 ! 10. Source code : 1606 ! 1607 !/ ------------------------------------------------------------------- / 1608 USE W3GDATMD, ONLY: NGRIDS, IGRID, NK, NX, NY, NSEA, NSEAL, & 1609 NSPEC, NTH, GTYPE, UNGTYPE 1610 USE W3ODATMD, ONLY: NAPROC 1611 USE W3IDATMD, ONLY: FLCUR, FLWIND 1612 USE W3SERVMD, ONLY: EXTCDE 1613 ! 1614 IMPLICIT NONE 1615 !/ 1616 !/ ------------------------------------------------------------------- / 1617 !/ Parameter list 1618 !/ 1619 INTEGER, INTENT(IN) :: IMOD, NDSE, NDST, NSP, NSPX 1620 !/ 1621 !/ ------------------------------------------------------------------- / 1622 !/ Local parameters 1623 !/ 1624 !/ 1625 ! 1626 ! -------------------------------------------------------------------- / 1627 ! 1. Test input and module status 1628 ! 1629 IF ( NGRIDS .EQ. -1 ) THEN 1630 WRITE (NDSE,1001) 1631 CALL EXTCDE (1) 1632 END IF 1633 ! 1634 IF ( IMOD.LT.1 .OR. IMOD.GT.NADATA ) THEN 1635 WRITE (NDSE,1002) IMOD, NADATA 1636 CALL EXTCDE (2) 1637 END IF 1638 ! 1639 IF ( WADATS(IMOD)%NLINIT ) THEN 1640 WRITE (NDSE,1003) 1641 CALL EXTCDE (3) 1642 END IF 1643 ! 1644 ! -------------------------------------------------------------------- / 1645 ! 2. Allocate arrays 1646 ! 1647 ALLOCATE ( WADATS(IMOD)%IP11(NSPX), & 1648 WADATS(IMOD)%IP12(NSPX), & 1649 WADATS(IMOD)%IP13(NSPX), & 1650 WADATS(IMOD)%IP14(NSPX), & 1651 WADATS(IMOD)%IM11(NSPX), & 1652 WADATS(IMOD)%IM12(NSPX), & 1653 WADATS(IMOD)%IM13(NSPX), & 1654 WADATS(IMOD)%IM14(NSPX), & 1655 WADATS(IMOD)%IP21(NSPX), & 1656 WADATS(IMOD)%IP22(NSPX), & Page 41 Source Listing W3DMNL 2014-09-16 16:47 w3adatmd.f90 1657 WADATS(IMOD)%IP23(NSPX), & 1658 WADATS(IMOD)%IP24(NSPX), & 1659 WADATS(IMOD)%IM21(NSPX), & 1660 WADATS(IMOD)%IM22(NSPX), & 1661 WADATS(IMOD)%IM23(NSPX), & 1662 WADATS(IMOD)%IM24(NSPX), & 1663 WADATS(IMOD)%IC11(NSP) , & 1664 WADATS(IMOD)%IC12(NSP) , & 1665 WADATS(IMOD)%IC21(NSP) , & 1666 WADATS(IMOD)%IC22(NSP) , & 1667 WADATS(IMOD)%IC31(NSP) , & 1668 WADATS(IMOD)%IC32(NSP) , & 1669 WADATS(IMOD)%IC41(NSP) , & 1670 WADATS(IMOD)%IC42(NSP) , & 1671 WADATS(IMOD)%IC51(NSP) , & 1672 WADATS(IMOD)%IC52(NSP) , & 1673 WADATS(IMOD)%IC61(NSP) , & 1674 WADATS(IMOD)%IC62(NSP) , & 1675 WADATS(IMOD)%IC71(NSP) , & 1676 WADATS(IMOD)%IC72(NSP) , & 1677 WADATS(IMOD)%IC81(NSP) , & 1678 WADATS(IMOD)%IC82(NSP) , & 1679 WADATS(IMOD)%AF11(NSPX) ) 1680 ! 1681 WADATS(IMOD)%NLINIT = .TRUE. 1682 ! 1683 ! -------------------------------------------------------------------- / 1684 ! 3. Point to allocated arrays 1685 ! 1686 CALL W3SETA ( IMOD, NDSE, NDST ) 1687 ! 1688 ! -------------------------------------------------------------------- / 1689 ! 4. Update counters in grid 1690 ! 1691 NSPECX = NSPX 1692 ! 1693 RETURN 1694 ! 1695 ! Formats 1696 ! 1697 1001 FORMAT (/' *** ERROR W3DMNL : GRIDS NOT INITIALIZED *** '/ & 1698 ' RUN W3NMOD FIRST '/) 1699 1002 FORMAT (/' *** ERROR W3DMNL : ILLEGAL MODEL NUMBER *** '/ & 1700 ' IMOD = ',I10/ & 1701 ' NADATA = ',I10/) 1702 1003 FORMAT (/' *** ERROR W3DMNL : ARRAY(S) ALREADY ALLOCATED *** ') 1703 ! 1704 !/ 1705 !/ End of W3DMNL ----------------------------------------------------- / 1706 !/ 1707 END SUBROUTINE W3DMNL Page 42 Source Listing W3DMNL 2014-09-16 16:47 Entry Points w3adatmd.f90 ENTRY POINTS Name w3adatmd_mp_w3dmnl_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 1001 Label 1697 1630 1002 Label 1699 1635 1003 Label 1702 1640 AF11 Local 1679 R(4) 4 1 1 PTR 1679,2038 EXTCDE Subr 1612 1612,1631,1636,1641 FLCUR Local 1611 L(4) 4 scalar PTR 1611 FLWIND Local 1611 L(4) 4 scalar PTR 1611 GTYPE Local 1609 I(4) 4 scalar PTR 1609 IC11 Local 1663 I(4) 4 1 1 PTR 1663,2022 IC12 Local 1664 I(4) 4 1 1 PTR 1664,2023 IC21 Local 1665 I(4) 4 1 1 PTR 1665,2024 IC22 Local 1666 I(4) 4 1 1 PTR 1666,2025 IC31 Local 1667 I(4) 4 1 1 PTR 1667,2026 IC32 Local 1668 I(4) 4 1 1 PTR 1668,2027 IC41 Local 1669 I(4) 4 1 1 PTR 1669,2028 IC42 Local 1670 I(4) 4 1 1 PTR 1670,2029 IC51 Local 1671 I(4) 4 1 1 PTR 1671,2030 IC52 Local 1672 I(4) 4 1 1 PTR 1672,2031 IC61 Local 1673 I(4) 4 1 1 PTR 1673,2032 IC62 Local 1674 I(4) 4 1 1 PTR 1674,2033 IC71 Local 1675 I(4) 4 1 1 PTR 1675,2034 IC72 Local 1676 I(4) 4 1 1 PTR 1676,2035 IC81 Local 1677 I(4) 4 1 1 PTR 1677,2036 IC82 Local 1678 I(4) 4 1 1 PTR 1678,2037 IGRID Local 1608 I(4) 4 scalar 1608 IM11 Local 1651 I(4) 4 1 1 PTR 1651,2010 IM12 Local 1652 I(4) 4 1 1 PTR 1652,2011 IM13 Local 1653 I(4) 4 1 1 PTR 1653,2012 IM14 Local 1654 I(4) 4 1 1 PTR 1654,2013 IM21 Local 1659 I(4) 4 1 1 PTR 1659,2018 IM22 Local 1660 I(4) 4 1 1 PTR 1660,2019 IM23 Local 1661 I(4) 4 1 1 PTR 1661,2020 IM24 Local 1662 I(4) 4 1 1 PTR 1662,2021 IMOD Dummy 1544 I(4) 4 scalar ARG,IN 1634,1635,1639,1647,1648,1649,1650 ,1651,1652,1653,1654,1655,1656,165 7,1658,1659,1660,1661,1662,1663,16 64,1665,1666,1667,1668,1669,1670,1 671,1672,1673,1674,1675,1676,1677, 1678,1679,1681,1686 IP11 Local 1647 I(4) 4 1 1 PTR 1647,2006 IP12 Local 1648 I(4) 4 1 1 PTR 1648,2007 IP13 Local 1649 I(4) 4 1 1 PTR 1649,2008 IP14 Local 1650 I(4) 4 1 1 PTR 1650,2009 IP21 Local 1655 I(4) 4 1 1 PTR 1655,2014 Page 43 Source Listing W3DMNL 2014-09-16 16:47 Symbol Table w3adatmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References IP22 Local 1656 I(4) 4 1 1 PTR 1656,2015 IP23 Local 1657 I(4) 4 1 1 PTR 1657,2016 IP24 Local 1658 I(4) 4 1 1 PTR 1658,2017 NAPROC Local 1610 I(4) 4 scalar PTR 1610 NDSE Dummy 1544 I(4) 4 scalar ARG,IN 1630,1635,1640,1686 NDST Dummy 1544 I(4) 4 scalar ARG,IN 1686 NGRIDS Local 1608 I(4) 4 scalar 1608,1629 NK Local 1608 I(4) 4 scalar PTR 1608 NSEA Local 1608 I(4) 4 scalar PTR 1608 NSEAL Local 1608 I(4) 4 scalar PTR 1608 NSP Dummy 1544 I(4) 4 scalar ARG,IN 1663,1664,1665,1666,1667,1668,1669 ,1670,1671,1672,1673,1674,1675,167 6,1677,1678 NSPEC Local 1609 I(4) 4 scalar PTR 1609 NSPECX Local 1691 I(4) 4 scalar PTR 1691,1834 NSPX Dummy 1544 I(4) 4 scalar ARG,IN 1647,1648,1649,1650,1651,1652,1653 ,1654,1655,1656,1657,1658,1659,166 0,1661,1662,1679,1691 NTH Local 1609 I(4) 4 scalar PTR 1609 NX Local 1608 I(4) 4 scalar PTR 1608 NY Local 1608 I(4) 4 scalar PTR 1608 UNGTYPE Param 1609 I(4) 4 scalar 1609 W3DMNL Subr 1544 W3GDATMD Module 1608 1608 W3IDATMD Module 1611 1611 W3ODATMD Module 1610 1610 W3SERVMD Module 1612 1612 Page 44 Source Listing W3DMNL 2014-09-16 16:47 w3adatmd.f90 1708 !/ ------------------------------------------------------------------- / 1709 SUBROUTINE W3SETA ( IMOD, NDSE, NDST ) 1710 !/ 1711 !/ +-----------------------------------+ 1712 !/ | WAVEWATCH III NOAA/NCEP | 1713 !/ | H. L. Tolman | 1714 !/ | FORTRAN 90 | 1715 !/ | Last update : 28_Mar-2007 | 1716 !/ +-----------------------------------+ 1717 !/ 1718 !/ 28-Dec-2004 : Origination. ( version 3.06 ) 1719 !/ 04-May-2005 : Adding MPI_COMM_WAVE. ( version 3.07 ) 1720 !/ 20-Jul-2005 : Adding output fields. ( version 3.07 ) 1721 !/ 09-Nov-2005 : Removing soft boundary option. ( version 3.08 ) 1722 !/ 13-Jun-2006 : Splitting STORE in G/SSTORE. ( version 3.09 ) 1723 !/ 04-Oct-2006 : Add filter to array pointers. ( version 3.10 ) 1724 !/ 28_Mar-2007 : Add partitioned data arrays. ( version 3.11 ) 1725 !/ Add aditional undefined arrays. 1726 !/ 1727 ! 1. Purpose : 1728 ! 1729 ! Select one of the WAVEWATCH III grids / models. 1730 ! 1731 ! 2. Method : 1732 ! 1733 ! Point pointers to the proper variables in the proper element of 1734 ! the GRIDS array. 1735 ! 1736 ! 3. Parameters : 1737 ! 1738 ! Parameter list 1739 ! ---------------------------------------------------------------- 1740 ! IMOD Int. I Model number to point to. 1741 ! NDSE Int. I Error output unit number. 1742 ! NDST Int. I Test output unit number. 1743 ! ---------------------------------------------------------------- 1744 ! 1745 ! 4. Subroutines used : 1746 ! 1747 ! See module documentation below. 1748 ! 1749 ! 5. Called by : 1750 ! 1751 ! Many subroutines in the WAVEWATCH system. 1752 ! 1753 ! 6. Error messages : 1754 ! 1755 ! Checks on parameter list IMOD. 1756 ! 1757 ! 7. Remarks : 1758 ! 1759 ! 8. Structure : 1760 ! 1761 ! 9. Switches : 1762 ! 1763 ! !/MPI Paralllel model environment. 1764 ! Page 45 Source Listing W3SETA 2014-09-16 16:47 w3adatmd.f90 1765 ! !/PRn Propagation scheme selection. 1766 ! 1767 ! !/S Enable subroutine tracing. 1768 ! !/T Enable test output 1769 ! 1770 ! 10. Source code : 1771 ! 1772 !/ ------------------------------------------------------------------- / 1773 ! 1774 USE W3IDATMD, ONLY: INPUTS 1775 USE W3GDATMD, ONLY: E3DF, P2MSF, US3DF, GTYPE, UNGTYPE 1776 ! 1777 USE W3SERVMD, ONLY: EXTCDE 1778 ! 1779 IMPLICIT NONE 1780 !/ 1781 !/ ------------------------------------------------------------------- / 1782 !/ Parameter list 1783 !/ 1784 INTEGER, INTENT(IN) :: IMOD, NDSE, NDST 1785 !/ 1786 !/ ------------------------------------------------------------------- / 1787 !/ Local parameters 1788 !/ 1789 !/ 1790 ! 1791 ! -------------------------------------------------------------------- / 1792 ! 1. Test input and module status 1793 ! 1794 IF ( NADATA .EQ. -1 ) THEN 1795 WRITE (NDSE,1001) 1796 CALL EXTCDE (1) 1797 END IF 1798 ! 1799 IF ( IMOD.LT.1 .OR. IMOD.GT.NADATA ) THEN 1800 WRITE (NDSE,1002) IMOD, NADATA 1801 CALL EXTCDE (2) 1802 END IF 1803 ! 1804 ! -------------------------------------------------------------------- / 1805 ! 2. Set model numbers 1806 ! 1807 IADATA = IMOD 1808 ! 1809 ! -------------------------------------------------------------------- / 1810 ! 3. Set pointers 1811 ! 1812 ITIME => WADATS(IMOD)%ITIME 1813 IPASS => WADATS(IMOD)%IPASS 1814 IDLAST => WADATS(IMOD)%IDLAST 1815 NSEALM => WADATS(IMOD)%NSEALM 1816 FLCOLD => WADATS(IMOD)%FLCOLD 1817 FLIWND => WADATS(IMOD)%FLIWND 1818 AINIT => WADATS(IMOD)%AINIT 1819 AINIT2 => WADATS(IMOD)%AINIT2 1820 FL_ALL => WADATS(IMOD)%FL_ALL 1821 ! Page 46 Source Listing W3SETA 2014-09-16 16:47 w3adatmd.f90 1822 NMX0 => WADATS(IMOD)%NMX0 1823 NMX1 => WADATS(IMOD)%NMX1 1824 NMX2 => WADATS(IMOD)%NMX2 1825 NMY0 => WADATS(IMOD)%NMY0 1826 NMY1 => WADATS(IMOD)%NMY1 1827 NMY2 => WADATS(IMOD)%NMY2 1828 NACT => WADATS(IMOD)%NACT 1829 NCENT => WADATS(IMOD)%NCENT 1830 ! 1831 NFR => WADATS(IMOD)%NFR 1832 NFRHGH => WADATS(IMOD)%NFRHGH 1833 NFRCHG => WADATS(IMOD)%NFRCHG 1834 NSPECX => WADATS(IMOD)%NSPECX 1835 NSPECY => WADATS(IMOD)%NSPECY 1836 DAL1 => WADATS(IMOD)%DAL1 1837 DAL2 => WADATS(IMOD)%DAL2 1838 DAL3 => WADATS(IMOD)%DAL3 1839 AWG1 => WADATS(IMOD)%AWG1 1840 AWG2 => WADATS(IMOD)%AWG2 1841 AWG3 => WADATS(IMOD)%AWG3 1842 AWG4 => WADATS(IMOD)%AWG4 1843 AWG5 => WADATS(IMOD)%AWG5 1844 AWG6 => WADATS(IMOD)%AWG6 1845 AWG7 => WADATS(IMOD)%AWG7 1846 AWG8 => WADATS(IMOD)%AWG8 1847 SWG1 => WADATS(IMOD)%SWG1 1848 SWG2 => WADATS(IMOD)%SWG2 1849 SWG3 => WADATS(IMOD)%SWG3 1850 SWG4 => WADATS(IMOD)%SWG4 1851 SWG5 => WADATS(IMOD)%SWG5 1852 SWG6 => WADATS(IMOD)%SWG6 1853 SWG7 => WADATS(IMOD)%SWG7 1854 SWG8 => WADATS(IMOD)%SWG8 1855 NLINIT => WADATS(IMOD)%NLINIT 1856 ! 1857 MPI_COMM_WAVE => WADATS(IMOD)%MPI_COMM_WAVE 1858 MPI_COMM_WCMP => WADATS(IMOD)%MPI_COMM_WCMP 1859 WW3_FIELD_VEC => WADATS(IMOD)%WW3_FIELD_VEC 1860 WW3_SPEC_VEC => WADATS(IMOD)%WW3_SPEC_VEC 1861 NRQSG1 => WADATS(IMOD)%NRQSG1 1862 NRQSG2 => WADATS(IMOD)%NRQSG2 1863 IBFLOC => WADATS(IMOD)%IBFLOC 1864 ISPLOC => WADATS(IMOD)%ISPLOC 1865 NSPLOC => WADATS(IMOD)%NSPLOC 1866 BSTAT => WADATS(IMOD)%BSTAT 1867 BISPL => WADATS(IMOD)%BISPL 1868 ! 1869 IF ( AINIT ) THEN 1870 ! 1871 DW => WADATS(IMOD)%DW 1872 UA => WADATS(IMOD)%UA 1873 UD => WADATS(IMOD)%UD 1874 U10 => WADATS(IMOD)%U10 1875 U10D => WADATS(IMOD)%U10D 1876 AS => WADATS(IMOD)%AS 1877 CX => WADATS(IMOD)%CX 1878 CY => WADATS(IMOD)%CY Page 47 Source Listing W3SETA 2014-09-16 16:47 w3adatmd.f90 1879 ! 1880 HS => WADATS(IMOD)%HS 1881 WLM => WADATS(IMOD)%WLM 1882 T02 => WADATS(IMOD)%T02 1883 T0M1 => WADATS(IMOD)%T0M1 1884 T01 => WADATS(IMOD)%T01 1885 FP0 => WADATS(IMOD)%FP0 1886 THM => WADATS(IMOD)%THM 1887 THS => WADATS(IMOD)%THS 1888 THP0 => WADATS(IMOD)%THP0 1889 FP1 => WADATS(IMOD)%FP1 1890 THP1 => WADATS(IMOD)%THP1 1891 ! 1892 EF => WADATS(IMOD)%EF 1893 TH1M => WADATS(IMOD)%TH1M 1894 STH1M => WADATS(IMOD)%STH1M 1895 TH2M => WADATS(IMOD)%TH2M 1896 STH2M => WADATS(IMOD)%STH2M 1897 ! 1898 PHS => WADATS(IMOD)%PHS 1899 PTP => WADATS(IMOD)%PTP 1900 PLP => WADATS(IMOD)%PLP 1901 PTH => WADATS(IMOD)%PTH 1902 PSI => WADATS(IMOD)%PSI 1903 PWS => WADATS(IMOD)%PWS 1904 PWST => WADATS(IMOD)%PWST 1905 PNR => WADATS(IMOD)%PNR 1906 ! 1907 CHARN => WADATS(IMOD)%CHARN 1908 CGE => WADATS(IMOD)%CGE 1909 PHIAW => WADATS(IMOD)%PHIAW 1910 TAUWIX => WADATS(IMOD)%TAUWIX 1911 TAUWIY => WADATS(IMOD)%TAUWIY 1912 TAUWNX => WADATS(IMOD)%TAUWNX 1913 TAUWNY => WADATS(IMOD)%TAUWNY 1914 WHITECAP => WADATS(IMOD)%WHITECAP 1915 ! 1916 SXX => WADATS(IMOD)%SXX 1917 SYY => WADATS(IMOD)%SYY 1918 SXY => WADATS(IMOD)%SXY 1919 TAUOX => WADATS(IMOD)%TAUOX 1920 TAUOY => WADATS(IMOD)%TAUOY 1921 BHD => WADATS(IMOD)%BHD 1922 PHIOC => WADATS(IMOD)%PHIOC 1923 TUSX => WADATS(IMOD)%TUSX 1924 TUSY => WADATS(IMOD)%TUSY 1925 USSX => WADATS(IMOD)%USSX 1926 USSY => WADATS(IMOD)%USSY 1927 PRMS => WADATS(IMOD)%PRMS 1928 TPMS => WADATS(IMOD)%TPMS 1929 P2SMS => WADATS(IMOD)%P2SMS 1930 US3D => WADATS(IMOD)%US3D 1931 ! 1932 ABA => WADATS(IMOD)%ABA 1933 ABD => WADATS(IMOD)%ABD 1934 UBA => WADATS(IMOD)%UBA 1935 UBD => WADATS(IMOD)%UBD Page 48 Source Listing W3SETA 2014-09-16 16:47 w3adatmd.f90 1936 BEDFORMS=> WADATS(IMOD)%BEDFORMS 1937 PHIBBL => WADATS(IMOD)%PHIBBL 1938 TAUBBL => WADATS(IMOD)%TAUBBL 1939 ! 1940 MSSX => WADATS(IMOD)%MSSX 1941 MSSY => WADATS(IMOD)%MSSY 1942 MSCX => WADATS(IMOD)%MSCX 1943 MSCY => WADATS(IMOD)%MSCY 1944 ! 1945 DTDYN => WADATS(IMOD)%DTDYN 1946 FCUT => WADATS(IMOD)%FCUT 1947 CFLXYMAX => WADATS(IMOD)%CFLXYMAX 1948 CFLTHMAX => WADATS(IMOD)%CFLTHMAX 1949 CFLKMAX => WADATS(IMOD)%CFLKMAX 1950 ! 1951 USERO => WADATS(IMOD)%USERO 1952 ! 1953 IF ( FL_ALL ) THEN 1954 ! 1955 CG => WADATS(IMOD)%CG 1956 WN => WADATS(IMOD)%WN 1957 ! 1958 ATRNX => WADATS(IMOD)%ATRNX 1959 ATRNY => WADATS(IMOD)%ATRNY 1960 ! 1961 DDDX => WADATS(IMOD)%DDDX 1962 DDDY => WADATS(IMOD)%DDDY 1963 DCDX => WADATS(IMOD)%DCDX 1964 DCDY => WADATS(IMOD)%DCDY 1965 DCXDX => WADATS(IMOD)%DCXDX 1966 DCYDX => WADATS(IMOD)%DCYDX 1967 DCXDY => WADATS(IMOD)%DCXDY 1968 DCYDY => WADATS(IMOD)%DCYDY 1969 ! 1970 ALPHA => WADATS(IMOD)%ALPHA 1971 ! 1972 IF ( INPUTS(IMOD)%FLAGS(2) ) THEN 1973 CA0 => WADATS(IMOD)%CA0 1974 CAI => WADATS(IMOD)%CAI 1975 CD0 => WADATS(IMOD)%CD0 1976 CDI => WADATS(IMOD)%CDI 1977 END IF 1978 ! 1979 IF ( INPUTS(IMOD)%FLAGS(3) ) THEN 1980 UA0 => WADATS(IMOD)%UA0 1981 UAI => WADATS(IMOD)%UAI 1982 UD0 => WADATS(IMOD)%UD0 1983 UDI => WADATS(IMOD)%UDI 1984 AS0 => WADATS(IMOD)%AS0 1985 ASI => WADATS(IMOD)%ASI 1986 END IF 1987 ! 1988 MAPX2 => WADATS(IMOD)%MAPX2 1989 MAPY2 => WADATS(IMOD)%MAPY2 1990 MAPAXY => WADATS(IMOD)%MAPAXY 1991 MAPCXY => WADATS(IMOD)%MAPCXY 1992 MAPTH2 => WADATS(IMOD)%MAPTH2 Page 49 Source Listing W3SETA 2014-09-16 16:47 w3adatmd.f90 1993 MAPWN2 => WADATS(IMOD)%MAPWN2 1994 MAPTRN => WADATS(IMOD)%MAPTRN 1995 ! 1996 IF (GTYPE .EQ. UNGTYPE) ITER => WADATS(IMOD)%ITER 1997 ! 1998 IAPPRO => WADATS(IMOD)%IAPPRO 1999 SPPNT => WADATS(IMOD)%SPPNT 2000 ! 2001 END IF 2002 ! 2003 END IF 2004 ! 2005 IF ( NLINIT ) THEN 2006 IP11 => WADATS(IMOD)%IP11 2007 IP12 => WADATS(IMOD)%IP12 2008 IP13 => WADATS(IMOD)%IP13 2009 IP14 => WADATS(IMOD)%IP14 2010 IM11 => WADATS(IMOD)%IM11 2011 IM12 => WADATS(IMOD)%IM12 2012 IM13 => WADATS(IMOD)%IM13 2013 IM14 => WADATS(IMOD)%IM14 2014 IP21 => WADATS(IMOD)%IP21 2015 IP22 => WADATS(IMOD)%IP22 2016 IP23 => WADATS(IMOD)%IP23 2017 IP24 => WADATS(IMOD)%IP24 2018 IM21 => WADATS(IMOD)%IM21 2019 IM22 => WADATS(IMOD)%IM22 2020 IM23 => WADATS(IMOD)%IM23 2021 IM24 => WADATS(IMOD)%IM24 2022 IC11 => WADATS(IMOD)%IC11 2023 IC12 => WADATS(IMOD)%IC12 2024 IC21 => WADATS(IMOD)%IC21 2025 IC22 => WADATS(IMOD)%IC22 2026 IC31 => WADATS(IMOD)%IC31 2027 IC32 => WADATS(IMOD)%IC32 2028 IC41 => WADATS(IMOD)%IC41 2029 IC42 => WADATS(IMOD)%IC42 2030 IC51 => WADATS(IMOD)%IC51 2031 IC52 => WADATS(IMOD)%IC52 2032 IC61 => WADATS(IMOD)%IC61 2033 IC62 => WADATS(IMOD)%IC62 2034 IC71 => WADATS(IMOD)%IC71 2035 IC72 => WADATS(IMOD)%IC72 2036 IC81 => WADATS(IMOD)%IC81 2037 IC82 => WADATS(IMOD)%IC82 2038 AF11 => WADATS(IMOD)%AF11 2039 END IF 2040 2041 IF ( NRQSG1 .NE. 0 ) THEN 2042 IRQSG1 => WADATS(IMOD)%IRQSG1 2043 IRQSG2 => WADATS(IMOD)%IRQSG2 2044 END IF 2045 ! 2046 GSTORE => WADATS(IMOD)%GSTORE 2047 SSTORE => WADATS(IMOD)%SSTORE 2048 ! 2049 RETURN Page 50 Source Listing W3SETA 2014-09-16 16:47 w3adatmd.f90 2050 ! 2051 ! Formats 2052 ! 2053 1001 FORMAT (/' *** ERROR W3SETA : GRIDS NOT INITIALIZED *** '/ & 2054 ' RUN W3NMOD FIRST '/) 2055 1002 FORMAT (/' *** ERROR W3SETA : ILLEGAL MODEL NUMBER *** '/ & 2056 ' IMOD = ',I10/ & 2057 ' NADATA = ',I10/) 2058 ! 2059 !/ 2060 !/ End of W3SETA ----------------------------------------------------- / 2061 !/ 2062 END SUBROUTINE W3SETA ENTRY POINTS Name w3adatmd_mp_w3seta_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 1001 Label 2053 1795 1002 Label 2055 1800 ABA Local 1932 R(4) 4 1 1 PTR 1932,2171 ABD Local 1933 R(4) 4 1 1 PTR 1933,2172 AF11 Local 2038 R(4) 4 1 1 PTR 2038 AINIT Local 1818 L(4) 4 scalar PTR 1818,1869 AINIT2 Local 1819 L(4) 4 scalar PTR 1819,2121 ALPHA Local 1970 R(4) 4 2 1 PTR 1970 AS Local 1876 R(4) 4 1 1 PTR 1876 AS0 Local 1984 R(4) 4 1 1 PTR 1984 ASI Local 1985 R(4) 4 1 1 PTR 1985 ATRNX Local 1958 R(4) 4 2 1 PTR 1958 ATRNY Local 1959 R(4) 4 2 1 PTR 1959 AWG1 Local 1839 R(4) 4 scalar PTR,TGT 1839 AWG2 Local 1840 R(4) 4 scalar PTR,TGT 1840 AWG3 Local 1841 R(4) 4 scalar PTR,TGT 1841 AWG4 Local 1842 R(4) 4 scalar PTR,TGT 1842 AWG5 Local 1843 R(4) 4 scalar PTR,TGT 1843 AWG6 Local 1844 R(4) 4 scalar PTR,TGT 1844 AWG7 Local 1845 R(4) 4 scalar PTR,TGT 1845 AWG8 Local 1846 R(4) 4 scalar PTR,TGT 1846 BEDFORMS Local 1936 R(4) 4 2 1 PTR 1936,2175 BHD Local 1921 R(4) 4 1 1 PTR 1921,2160 BISPL Local 1867 I(4) 4 1 1 PTR 1867 BISPL Local 1867 I(4) 4 1 6 1867 BSTAT Local 1866 I(4) 4 1 1 PTR 1866 BSTAT Local 1866 I(4) 4 1 6 1866 CA0 Local 1973 R(4) 4 1 1 PTR 1973 CAI Local 1974 R(4) 4 1 1 PTR 1974 CD0 Local 1975 R(4) 4 1 1 PTR 1975 CDI Local 1976 R(4) 4 1 1 PTR 1976 Page 51 Source Listing W3SETA 2014-09-16 16:47 Symbol Table w3adatmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References CFLKMAX Local 1949 R(4) 4 1 1 PTR 1949,2188 CFLTHMAX Local 1948 R(4) 4 1 1 PTR 1948,2187 CFLXYMAX Local 1947 R(4) 4 1 1 PTR 1947,2186 CG Local 1955 R(4) 4 2 1 PTR 1955 CGE Local 1908 R(4) 4 1 1 PTR 1908,2147 CHARN Local 1907 R(4) 4 1 1 PTR 1907,2146 CX Local 1877 R(4) 4 1 1 PTR 1877 CY Local 1878 R(4) 4 1 1 PTR 1878 DAL1 Local 1836 R(4) 4 scalar PTR,TGT 1836 DAL2 Local 1837 R(4) 4 scalar PTR,TGT 1837 DAL3 Local 1838 R(4) 4 scalar PTR,TGT 1838 DCDX Local 1963 R(4) 4 3 1 PTR 1963 DCDY Local 1964 R(4) 4 3 1 PTR 1964 DCXDX Local 1965 R(4) 4 2 1 PTR 1965 DCXDY Local 1967 R(4) 4 2 1 PTR 1967 DCYDX Local 1966 R(4) 4 2 1 PTR 1966 DCYDY Local 1968 R(4) 4 2 1 PTR 1968 DDDX Local 1961 R(4) 4 2 1 PTR 1961 DDDY Local 1962 R(4) 4 2 1 PTR 1962 DTDYN Local 1945 R(4) 4 1 1 PTR 1945,2184 DW Local 1871 R(4) 4 1 1 PTR 1871 E3DF Local 1775 I(4) 4 2 1 PTR 1775 EF Local 1892 R(4) 4 2 1 PTR 1892,2135 EXTCDE Subr 1777 1777,1796,1801 FCUT Local 1946 R(4) 4 1 1 PTR 1946,2185 FLAGS Local 1972 L(4) 4 1 20 1972,1979 FLCOLD Local 1816 L(4) 4 scalar PTR,TGT 1816 FLIWND Local 1817 L(4) 4 scalar PTR,TGT 1817 FP0 Local 1885 R(4) 4 1 1 PTR 1885,2128 FP1 Local 1889 R(4) 4 1 1 PTR 1889 GSTORE Local 2046 R(4) 4 2 1 PTR 2046 GTYPE Local 1775 I(4) 4 scalar PTR 1775,1996 HS Local 1880 R(4) 4 1 1 PTR 1880,2123 IADATA Local 1807 I(4) 4 scalar 298,1807,2116 IAPPRO Local 1998 I(4) 4 1 1 PTR 1998 IBFLOC Local 1863 I(4) 4 scalar PTR,TGT 1863 IC11 Local 2022 I(4) 4 1 1 PTR 2022 IC12 Local 2023 I(4) 4 1 1 PTR 2023 IC21 Local 2024 I(4) 4 1 1 PTR 2024 IC22 Local 2025 I(4) 4 1 1 PTR 2025 IC31 Local 2026 I(4) 4 1 1 PTR 2026 IC32 Local 2027 I(4) 4 1 1 PTR 2027 IC41 Local 2028 I(4) 4 1 1 PTR 2028 IC42 Local 2029 I(4) 4 1 1 PTR 2029 IC51 Local 2030 I(4) 4 1 1 PTR 2030 IC52 Local 2031 I(4) 4 1 1 PTR 2031 IC61 Local 2032 I(4) 4 1 1 PTR 2032 IC62 Local 2033 I(4) 4 1 1 PTR 2033 IC71 Local 2034 I(4) 4 1 1 PTR 2034 IC72 Local 2035 I(4) 4 1 1 PTR 2035 IC81 Local 2036 I(4) 4 1 1 PTR 2036 IC82 Local 2037 I(4) 4 1 1 PTR 2037 IDLAST Local 1814 I(4) 4 scalar PTR 1814 IM11 Local 2010 I(4) 4 1 1 PTR 2010 IM12 Local 2011 I(4) 4 1 1 PTR 2011 Page 52 Source Listing W3SETA 2014-09-16 16:47 Symbol Table w3adatmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References IM13 Local 2012 I(4) 4 1 1 PTR 2012 IM14 Local 2013 I(4) 4 1 1 PTR 2013 IM21 Local 2018 I(4) 4 1 1 PTR 2018 IM22 Local 2019 I(4) 4 1 1 PTR 2019 IM23 Local 2020 I(4) 4 1 1 PTR 2020 IM24 Local 2021 I(4) 4 1 1 PTR 2021 IMOD Dummy 1709 I(4) 4 scalar ARG,IN 1799,1800,1807,1812,1813,1814,1815 ,1816,1817,1818,1819,1820,1822,182 3,1824,1825,1826,1827,1828,1829,18 31,1832,1833,1834,1835,1836,1837,1 838,1839,1840,1841,1842,1843,1844, 1845,1846,1847,1848,1849,1850,1851 ,1852,1853,1854,1855,1857,1858,185 9,1860,1861,1862,1863,1864,1865,18 66,1867,1871,1872,1873,1874,1875,1 876,1877,1878,1880,1881,1882,1883, 1884,1885,1886,1887,1888,1889,1890 ,1892,1893,1894,1895,1896,1898,189 9,1900,1901,1902,1903,1904,1905,19 07,1908,1909,1910,1911,1912,1913,1 914,1916,1917,1918,1919,1920,1921, 1922,1923,1924,1925,1926,1927,1928 ,1929,1930,1932,1933,1934,1935,193 6,1937,1938,1940,1941,1942,1943,19 45,1946,1947,1948,1949,1951,1955,1 956,1958,1959,1961,1962,1963,1964, 1965,1966,1967,1968,1970,1972,1973 ,1974,1975,1976,1979,1980,1981,198 2,1983,1984,1985,1988,1989,1990,19 91,1992,1993,1994,1996,1998,1999,2 006,2007,2008,2009,2010,2011,2012, 2013,2014,2015,2016,2017,2018,2019 ,2020,2021,2022,2023,2024,2025,202 6,2027,2028,2029,2030,2031,2032,20 33,2034,2035,2036,2037,2038,2042,2 043,2046,2047 INPUTS Local 1774 RECORD 2280 1 1 ALC,TGT 1774,1972,1979 IP11 Local 2006 I(4) 4 1 1 PTR 2006 IP12 Local 2007 I(4) 4 1 1 PTR 2007 IP13 Local 2008 I(4) 4 1 1 PTR 2008 IP14 Local 2009 I(4) 4 1 1 PTR 2009 IP21 Local 2014 I(4) 4 1 1 PTR 2014 IP22 Local 2015 I(4) 4 1 1 PTR 2015 IP23 Local 2016 I(4) 4 1 1 PTR 2016 IP24 Local 2017 I(4) 4 1 1 PTR 2017 IPASS Local 1813 I(4) 4 scalar PTR 1813 IRQSG1 Local 2042 I(4) 4 2 1 PTR 2042 IRQSG2 Local 2043 I(4) 4 2 1 PTR 2043 ISPLOC Local 1864 I(4) 4 scalar PTR,TGT 1864 ITER Local 1996 I(4) 4 2 1 PTR 1996 ITIME Local 1812 I(4) 4 scalar PTR 1812 MAPAXY Local 1990 I(4) 4 1 1 PTR 1990 MAPCXY Local 1991 I(4) 4 1 1 PTR 1991 MAPTH2 Local 1992 I(4) 4 1 1 PTR 1992 MAPTRN Local 1994 L(4) 4 1 1 PTR 1994 Page 53 Source Listing W3SETA 2014-09-16 16:47 Symbol Table w3adatmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References MAPWN2 Local 1993 I(4) 4 1 1 PTR 1993 MAPX2 Local 1988 I(4) 4 1 1 PTR 1988 MAPY2 Local 1989 I(4) 4 1 1 PTR 1989 MPI_COMM_WAVE Local 1857 I(4) 4 scalar PTR,TGT 1857 MPI_COMM_WCMP Local 1858 I(4) 4 scalar PTR,TGT 1858 MSCX Local 1942 R(4) 4 1 1 PTR 1942,2181 MSCY Local 1943 R(4) 4 1 1 PTR 1943,2182 MSSX Local 1940 R(4) 4 1 1 PTR 1940,2179 MSSY Local 1941 R(4) 4 1 1 PTR 1941,2180 NACT Local 1828 I(4) 4 scalar PTR,TGT 1828 NCENT Local 1829 I(4) 4 scalar PTR,TGT 1829 NDSE Dummy 1709 I(4) 4 scalar ARG,IN 1795,1800 NDST Dummy 1709 I(4) 4 scalar ARG,IN NFR Local 1831 I(4) 4 scalar PTR,TGT 1831 NFRCHG Local 1833 I(4) 4 scalar PTR,TGT 1833 NFRHGH Local 1832 I(4) 4 scalar PTR,TGT 1832 NLINIT Local 1855 L(4) 4 scalar PTR 1855,2005 NMX0 Local 1822 I(4) 4 scalar PTR,TGT 1822 NMX1 Local 1823 I(4) 4 scalar PTR,TGT 1823 NMX2 Local 1824 I(4) 4 scalar PTR,TGT 1824 NMY0 Local 1825 I(4) 4 scalar PTR,TGT 1825 NMY1 Local 1826 I(4) 4 scalar PTR,TGT 1826 NMY2 Local 1827 I(4) 4 scalar PTR,TGT 1827 NRQSG1 Local 1861 I(4) 4 scalar PTR,TGT 1861,2041 NRQSG2 Local 1862 I(4) 4 scalar PTR,TGT 1862 NSEALM Local 1815 I(4) 4 scalar TGT 1815 NSPECX Local 1834 I(4) 4 scalar TGT 1834 NSPECY Local 1835 I(4) 4 scalar PTR,TGT 1835 NSPLOC Local 1865 I(4) 4 scalar PTR,TGT 1865 P2MSF Local 1775 I(4) 4 1 1 PTR 1775 P2SMS Local 1929 R(4) 4 2 1 PTR 1929,2168 PHIAW Local 1909 R(4) 4 1 1 PTR 1909,2148 PHIBBL Local 1937 R(4) 4 1 1 PTR 1937,2176 PHIOC Local 1922 R(4) 4 1 1 PTR 1922,2161 PHS Local 1898 R(4) 4 2 1 PTR 1898,2137 PLP Local 1900 R(4) 4 2 1 PTR 1900,2139 PNR Local 1905 R(4) 4 1 1 PTR 1905,2144 PRMS Local 1927 R(4) 4 1 1 PTR 1927,2166 PSI Local 1902 R(4) 4 2 1 PTR 1902,2141 PTH Local 1901 R(4) 4 2 1 PTR 1901,2140 PTP Local 1899 R(4) 4 2 1 PTR 1899,2138 PWS Local 1903 R(4) 4 2 1 PTR 1903,2142 PWST Local 1904 R(4) 4 1 1 PTR 1904,2143 SPPNT Local 1999 R(4) 4 3 1 PTR 1999 SSTORE Local 2047 R(4) 4 2 1 PTR 2047 STH1M Local 1894 R(4) 4 2 1 PTR 1894 STH2M Local 1896 R(4) 4 2 1 PTR 1896 SWG1 Local 1847 R(4) 4 scalar PTR,TGT 1847 SWG2 Local 1848 R(4) 4 scalar PTR,TGT 1848 SWG3 Local 1849 R(4) 4 scalar PTR,TGT 1849 SWG4 Local 1850 R(4) 4 scalar PTR,TGT 1850 SWG5 Local 1851 R(4) 4 scalar PTR,TGT 1851 SWG6 Local 1852 R(4) 4 scalar PTR,TGT 1852 SWG7 Local 1853 R(4) 4 scalar PTR,TGT 1853 SWG8 Local 1854 R(4) 4 scalar PTR,TGT 1854 Page 54 Source Listing W3SETA 2014-09-16 16:47 Symbol Table w3adatmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References SXX Local 1916 R(4) 4 1 1 PTR 1916,2155 SXY Local 1918 R(4) 4 1 1 PTR 1918,2157 SYY Local 1917 R(4) 4 1 1 PTR 1917,2156 T01 Local 1884 R(4) 4 1 1 PTR 1884,2127 T02 Local 1882 R(4) 4 1 1 PTR 1882,2125 T0M1 Local 1883 R(4) 4 1 1 PTR 1883,2126 TAUBBL Local 1938 R(4) 4 2 1 PTR 1938,2177 TAUOX Local 1919 R(4) 4 1 1 PTR 1919,2158 TAUOY Local 1920 R(4) 4 1 1 PTR 1920,2159 TAUWIX Local 1910 R(4) 4 1 1 PTR 1910,2149 TAUWIY Local 1911 R(4) 4 1 1 PTR 1911,2150 TAUWNX Local 1912 R(4) 4 1 1 PTR 1912,2151 TAUWNY Local 1913 R(4) 4 1 1 PTR 1913,2152 TH1M Local 1893 R(4) 4 2 1 PTR 1893 TH2M Local 1895 R(4) 4 2 1 PTR 1895 THM Local 1886 R(4) 4 1 1 PTR 1886,2129 THP0 Local 1888 R(4) 4 1 1 PTR 1888,2131 THP1 Local 1890 R(4) 4 1 1 PTR 1890 THS Local 1887 R(4) 4 1 1 PTR 1887,2130 TPMS Local 1928 R(4) 4 1 1 PTR 1928,2167 TUSX Local 1923 R(4) 4 1 1 PTR 1923,2162 TUSY Local 1924 R(4) 4 1 1 PTR 1924,2163 U10 Local 1874 R(4) 4 1 1 PTR 1874 U10D Local 1875 R(4) 4 1 1 PTR 1875 UA Local 1872 R(4) 4 1 1 PTR 1872 UA0 Local 1980 R(4) 4 1 1 PTR 1980 UAI Local 1981 R(4) 4 1 1 PTR 1981 UBA Local 1934 R(4) 4 1 1 PTR 1934,2173 UBD Local 1935 R(4) 4 1 1 PTR 1935,2174 UD Local 1873 R(4) 4 1 1 PTR 1873 UD0 Local 1982 R(4) 4 1 1 PTR 1982 UDI Local 1983 R(4) 4 1 1 PTR 1983 UNGTYPE Param 1775 I(4) 4 scalar 1775,1996 US3D Local 1930 R(4) 4 2 1 PTR 1930,2169 US3DF Local 1775 I(4) 4 1 1 PTR 1775 USERO Local 1951 R(4) 4 2 1 PTR 1951,2190 USSX Local 1925 R(4) 4 1 1 PTR 1925,2164 USSY Local 1926 R(4) 4 1 1 PTR 1926,2165 W3GDATMD Module 1775 1775 W3IDATMD Module 1774 1774 W3SERVMD Module 1777 1777 W3SETA Subr 1709 769,1020,1686 WHITECAP Local 1914 R(4) 4 2 1 PTR 1914,2153 WLM Local 1881 R(4) 4 1 1 PTR 1881,2124 WN Local 1956 R(4) 4 2 1 PTR 1956 WW3_FIELD_VEC Local 1859 I(4) 4 scalar PTR,TGT 1859 WW3_SPEC_VEC Local 1860 I(4) 4 scalar PTR,TGT 1860 Page 55 Source Listing W3SETA 2014-09-16 16:47 w3adatmd.f90 2063 !/ ------------------------------------------------------------------- / 2064 SUBROUTINE W3XETA ( IMOD, NDSE, NDST ) 2065 !/ 2066 !/ +-----------------------------------+ 2067 !/ | WAVEWATCH III NOAA/NCEP | 2068 !/ | H. L. Tolman | 2069 !/ | FORTRAN 90 | 2070 !/ | Last update : 25-Dec-2012 | 2071 !/ +-----------------------------------+ 2072 !/ 2073 !/ 25-Dec-2012 : Origination. ( version 4.11 ) 2074 !/ 2075 ! 1. Purpose : 2076 ! 2077 ! Reduced version of W3SETA to point t expended output arrays. 2078 ! 2079 ! 10. Source code : 2080 ! 2081 !/ ------------------------------------------------------------------- / 2082 ! 2083 USE W3IDATMD, ONLY: INPUTS 2084 USE W3GDATMD, ONLY: E3DF, P2MSF, US3DF, GTYPE, UNGTYPE 2085 ! 2086 USE W3SERVMD, ONLY: EXTCDE 2087 ! 2088 IMPLICIT NONE 2089 !/ 2090 !/ ------------------------------------------------------------------- / 2091 !/ Parameter list 2092 !/ 2093 INTEGER, INTENT(IN) :: IMOD, NDSE, NDST 2094 !/ 2095 !/ ------------------------------------------------------------------- / 2096 !/ Local parameters 2097 !/ 2098 !/ 2099 ! 2100 ! -------------------------------------------------------------------- / 2101 ! 1. Test input and module status 2102 ! 2103 IF ( NADATA .EQ. -1 ) THEN 2104 WRITE (NDSE,1001) 2105 CALL EXTCDE (1) 2106 END IF 2107 ! 2108 IF ( IMOD.LT.1 .OR. IMOD.GT.NADATA ) THEN 2109 WRITE (NDSE,1002) IMOD, NADATA 2110 CALL EXTCDE (2) 2111 END IF 2112 ! 2113 ! -------------------------------------------------------------------- / 2114 ! 2. Set model numbers 2115 ! 2116 IADATA = IMOD 2117 ! 2118 ! -------------------------------------------------------------------- / 2119 ! 3. Set pointers Page 56 Source Listing W3XETA 2014-09-16 16:47 w3adatmd.f90 2120 ! 2121 IF ( AINIT2 ) THEN 2122 ! 2123 HS => WADATS(IMOD)%XHS 2124 WLM => WADATS(IMOD)%XWLM 2125 T02 => WADATS(IMOD)%XT02 2126 T0M1 => WADATS(IMOD)%XT0M1 2127 T01 => WADATS(IMOD)%XT01 2128 FP0 => WADATS(IMOD)%XFP0 2129 THM => WADATS(IMOD)%XTHM 2130 THS => WADATS(IMOD)%XTHS 2131 THP0 => WADATS(IMOD)%XTHP0 2132 ! FP1 => WADATS(IMOD)%XFP1 2133 ! THP1 => WADATS(IMOD)%XTHP1 2134 ! 2135 EF => WADATS(IMOD)%XEF 2136 ! 2137 PHS => WADATS(IMOD)%XPHS 2138 PTP => WADATS(IMOD)%XPTP 2139 PLP => WADATS(IMOD)%XPLP 2140 PTH => WADATS(IMOD)%XPTH 2141 PSI => WADATS(IMOD)%XPSI 2142 PWS => WADATS(IMOD)%XPWS 2143 PWST => WADATS(IMOD)%XPWST 2144 PNR => WADATS(IMOD)%XPNR 2145 ! 2146 CHARN => WADATS(IMOD)%XCHARN 2147 CGE => WADATS(IMOD)%XCGE 2148 PHIAW => WADATS(IMOD)%XPHIAW 2149 TAUWIX => WADATS(IMOD)%XTAUWIX 2150 TAUWIY => WADATS(IMOD)%XTAUWIY 2151 TAUWNX => WADATS(IMOD)%XTAUWNX 2152 TAUWNY => WADATS(IMOD)%XTAUWNY 2153 WHITECAP => WADATS(IMOD)%XWHITECAP 2154 ! 2155 SXX => WADATS(IMOD)%XSXX 2156 SYY => WADATS(IMOD)%XSYY 2157 SXY => WADATS(IMOD)%XSXY 2158 TAUOX => WADATS(IMOD)%XTAUOX 2159 TAUOY => WADATS(IMOD)%XTAUOY 2160 BHD => WADATS(IMOD)%XBHD 2161 PHIOC => WADATS(IMOD)%XPHIOC 2162 TUSX => WADATS(IMOD)%XTUSX 2163 TUSY => WADATS(IMOD)%XTUSY 2164 USSX => WADATS(IMOD)%XUSSX 2165 USSY => WADATS(IMOD)%XUSSY 2166 PRMS => WADATS(IMOD)%XPRMS 2167 TPMS => WADATS(IMOD)%XTPMS 2168 P2SMS => WADATS(IMOD)%XP2SMS 2169 US3D => WADATS(IMOD)%XUS3D 2170 ! 2171 ABA => WADATS(IMOD)%XABA 2172 ABD => WADATS(IMOD)%XABD 2173 UBA => WADATS(IMOD)%XUBA 2174 UBD => WADATS(IMOD)%XUBD 2175 BEDFORMS=> WADATS(IMOD)%XBEDFORMS 2176 PHIBBL => WADATS(IMOD)%XPHIBBL Page 57 Source Listing W3XETA 2014-09-16 16:47 w3adatmd.f90 2177 TAUBBL => WADATS(IMOD)%XTAUBBL 2178 ! 2179 MSSX => WADATS(IMOD)%XMSSX 2180 MSSY => WADATS(IMOD)%XMSSY 2181 MSCX => WADATS(IMOD)%XMSCX 2182 MSCY => WADATS(IMOD)%XMSCY 2183 ! 2184 DTDYN => WADATS(IMOD)%XDTDYN 2185 FCUT => WADATS(IMOD)%XFCUT 2186 CFLXYMAX => WADATS(IMOD)%XCFLXYMAX 2187 CFLTHMAX => WADATS(IMOD)%XCFLTHMAX 2188 CFLKMAX => WADATS(IMOD)%XCFLKMAX 2189 ! 2190 USERO => WADATS(IMOD)%XUSERO 2191 ! 2192 END IF 2193 ! 2194 RETURN 2195 ! 2196 ! Formats 2197 ! 2198 1001 FORMAT (/' *** ERROR W3XETA : GRIDS NOT INITIALIZED *** '/ & 2199 ' RUN W3NMOD FIRST '/) 2200 1002 FORMAT (/' *** ERROR W3XETA : ILLEGAL MODEL NUMBER *** '/ & 2201 ' IMOD = ',I10/ & 2202 ' NADATA = ',I10/) 2203 ! 2204 !/ 2205 !/ End of W3XETA ----------------------------------------------------- / 2206 !/ 2207 END SUBROUTINE W3XETA Page 58 Source Listing W3XETA 2014-09-16 16:47 Entry Points w3adatmd.f90 ENTRY POINTS Name w3adatmd_mp_w3xeta_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 1001 Label 2198 2104 1002 Label 2200 2109 E3DF Local 2084 I(4) 4 2 1 PTR 2084 EXTCDE Subr 2086 2086,2105,2110 GTYPE Local 2084 I(4) 4 scalar PTR 2084 IMOD Dummy 2064 I(4) 4 scalar ARG,IN 2108,2109,2116,2123,2124,2125,2126 ,2127,2128,2129,2130,2131,2135,213 7,2138,2139,2140,2141,2142,2143,21 44,2146,2147,2148,2149,2150,2151,2 152,2153,2155,2156,2157,2158,2159, 2160,2161,2162,2163,2164,2165,2166 ,2167,2168,2169,2171,2172,2173,217 4,2175,2176,2177,2179,2180,2181,21 82,2184,2185,2186,2187,2188,2190 INPUTS Local 2083 RECORD 2280 1 1 ALC,TGT 2083 NDSE Dummy 2064 I(4) 4 scalar ARG,IN 2104,2109 NDST Dummy 2064 I(4) 4 scalar ARG,IN P2MSF Local 2084 I(4) 4 1 1 PTR 2084 UNGTYPE Param 2084 I(4) 4 scalar 2084 US3DF Local 2084 I(4) 4 1 1 PTR 2084 W3GDATMD Module 2084 2084 W3IDATMD Module 2083 2083 W3SERVMD Module 2086 2086 W3XETA Subr 2064 Page 59 Source Listing W3XETA 2014-09-16 16:47 w3adatmd.f90 2208 !/ 2209 !/ End of module W3ADATMD -------------------------------------------- / 2210 !/ 2211 END MODULE W3ADATMD SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References MPIBUF Param 299 I(4) 4 scalar 429 W3ADATMD Module 1 WADAT Type 303 16448 scalar 438,442 XFP1 Local 327 R(4) 4 1 1 PTR XTHP1 Local 327 R(4) 4 1 1 PTR Page 60 Source Listing W3XETA 2014-09-16 16:47 Subprograms/Common Blocks w3adatmd.f90 SUBPROGRAMS/COMMON BLOCKS Name Object Declared Type Bytes Dimen Elements Attributes References W3ADATMD Module 1 W3DIMA Subr 640 W3DMNL Subr 1544 W3NAUX Subr 532 W3SETA Subr 1709 769,1020,1686 W3XDMA Subr 1046 W3XETA Subr 2064 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 Page 61 Source Listing W3XETA 2014-09-16 16:47 w3adatmd.f90 no -Qdyncom -error_limit 30 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 : w3adatmd.lst -o filename : none COMPILER: Intel(R) Fortran 12.1-2100