Page 1 Source Listing WMNDAT 2014-09-16 16:47 wmmdatmd.f90 1 !/ ------------------------------------------------------------------- / 2 MODULE WMMDATMD 3 !/ 4 !/ +-----------------------------------+ 5 !/ | WAVEWATCH III NOAA/NCEP | 6 !/ | H. L. Tolman | 7 !/ | FORTRAN 90 | 8 !/ | Last update : 29-May-2009 | 9 !/ +-----------------------------------+ 10 !/ 11 !/ 13-Jun-2005 : Origination. ( version 3.07 ) 12 !/ 16-Dec-2005 : Add staging of boundary data. ( version 3.08 ) 13 !/ Add HGSTGE data. ( version 3.08 ) 14 !/ 27-Jan-2006 : Adding static nests. ( version 3.08 ) 15 !/ 24-Mar-2006 : Add EQSTGE data. ( version 3.09 ) 16 !/ 25-May-2006 : Add STIME in BPSTGE. ( version 3.09 ) 17 !/ 29-May-2006 : Adding overlapping grids. ( version 3.09 ) 18 !/ Fixing boundary data (buffering). 19 !/ 18-Jul-2006 : Adding input grids. ( version 3.09 ) 20 !/ 09-Aug-2006 : Adding unified point output. ( version 3.10 ) 21 !/ 06-Oct-2006 : Adding separate input grids. ( version 3.10 ) 22 !/ 12-Jan-2007 : Add FLSTI and FLLSTL. ( version 3.10 ) 23 !/ 22-Jan-2007 : Add NAVMAX. ( version 3.10 ) 24 !/ 29-May-2009 : Preparing distribution version. ( version 3.14 ) 25 !/ 03-Sep-2012 : Add clock parameters (init.). ( version 4.10 ) 26 !/ 27 !/ Copyright 2009-2012 National Weather Service (NWS), 28 !/ National Oceanic and Atmospheric Administration. All rights 29 !/ reserved. WAVEWATCH III is a trademark of the NWS. 30 !/ No unauthorized use without permission. 31 !/ 32 ! 1. Purpose : 33 ! 34 ! Define data structures to set up wave model dynamic data for 35 ! several models simultaneously. 36 ! 37 ! 2. Variables and types : 38 ! 39 ! Name Type Scope Description 40 ! ---------------------------------------------------------------- 41 ! NMDATA Int. Public Number of models in array dim. 42 ! IMDATA Int. Public Selected model for output, init. at -1. 43 ! 44 ! MDSI Int. Public Unit number for input file. 45 ! MDSO Int. Public Unit number for output (log file). 46 ! MDSS Int. Public Unit number for output (screen). 47 ! MDST Int. Public Unit number for test output. 48 ! MDSE Int. Public Unit number for error output. 49 ! These outputs correspond to similar 50 ! unit numbers as defined per grid, but 51 ! are used for multi-grid routines 52 ! only. 53 ! MDSP Int. Public Unit number for profiling. 54 ! MDSUP Int. Public Unit number for unified point output. 55 ! MDSF I.A. Public Unit numbers for input files. 56 ! 57 ! NMPROC Int. Public Number of processors (for total multi- Page 2 Source Listing WMNDAT 2014-09-16 16:47 wmmdatmd.f90 58 ! grid model). 59 ! IMPROC Int. Public Corresponding actual processor number. 60 ! NMPLOG, NMPSCR, NMPTST, NMPERR, NMPUPT 61 ! Int. Public Preocessors in NMPROC designated for 62 ! the above output units numbers. 63 ! 64 ! STIME I.A. Public Model run starting time. 65 ! ETIME I.A. Public Model run ending time. 66 ! TSYNC I.A. Public Synchronization time for grids. 67 ! TMAX I.A. Public Maximum next time per grid. 68 ! TOUTP I.A. Public Next output time for grids. 69 ! TDATA I.A. Public Time for which data is available. 70 ! 71 ! NRGRD Int. Public Number of grids. 72 ! NRINP Int. Public Number of input grids. 73 ! NRGRP Int. Public Number of groups. 74 ! NMVMAX Int. Public Number of moving grid data. 75 ! GRANK I.A. Public Rank number for grid. 76 ! GRGRP I.A. Public Group number for grid. 77 ! INGRP I.A. Public Grids in group, element 0 is number. 78 ! GRDHGH, GRDEQL, GRDLOW 79 ! I.A. Public Dependent grids with higher, same or 80 ! lower rank number, element 0 is number. 81 ! ALLPRC I.A. Public Map of processors in MPI_COMM_MWAVE for 82 ! all individual grids. 83 ! MODMAP I.A. Public Map which model is running where in 84 ! MPI_COMM_MWAVE each group. 85 ! GRSTAT I.A. Public Grid computation status indicator. 86 ! DTRES R.A. Public Residual of time step. 87 ! NBI2G I.A. Public Map cross-referencing how many spectra 88 ! echo grid provides to boundary cond. for 89 ! other grids. 90 ! RESPEC L.A. Public Map for need to convert spectra between 91 ! grids. 92 ! BCDUMP L.A. Public Flag for dumping internal bound. data. 93 ! INPMAP I.A. Public Map for expternal input grids. 94 ! IDINP C.A. Public Input field identifiers. 95 ! 96 ! CLKT0, CLKTN, CLKINC, CLKMAX, CLKFIN 97 ! Int. Public Global wall clock parameters, 98 ! 99 ! MPI_COMM_MWAVE 100 ! Int. Public MPI communicator. ( !/MPI ) 101 ! MTAGn Int. Public "Zero" tag number for MPI ( !/MPI ) 102 ! NBISTA I.A. Public Status for gathering input boundary 103 ! data. ( !/MPI ) 104 ! HGHSTA I.A. Public Status for gathering high resolution 105 ! data. ( !/MPI ) 106 ! EQLSTA I.A. Public Status for gathering data fro equally 107 ! ranked grids. ( !/MPI ) 108 ! 109 ! FLGBDI Log. Public Flag for intitialization of boundry 110 ! distance maps. 111 ! FLGHGn Log. Public Flags for using mask for computations 112 ! and output for areas of grid overlap. 113 ! IFLSTI L.A. Public FLags for last ice per grid. 114 ! IFLSTL L.A. Public FLags for last level per grid. Page 3 Source Listing WMNDAT 2014-09-16 16:47 wmmdatmd.f90 115 ! 116 ! MDATA TYPE Public Data structure for grid dependent data. 117 ! MDATAS MDATA Public Array of data structures. 118 ! 119 ! BPST TYPE Public Data structure for staging boundary 120 ! data. 121 ! BPSTGE BPST Public Array of data structures. 122 ! 123 ! HGST TYPE Public Data structure for staging 2-way 124 ! nesting data. 125 ! HGSTGE HGST Public Array of data structures. 126 ! 127 ! EQST TYPE Public Data structure for staging equal grid 128 ! reconcilliation data. 129 ! EQSTGE EQST Public Array of data structures. 130 ! ---------------------------------------------------------------- 131 ! 132 ! All elements of MDATA are aliased to pointers with the same 133 ! name. These pointers are defined as : 134 ! 135 ! Name Type Scope Description 136 ! ---------------------------------------------------------------- 137 ! NBI2S I.A. Public Source information of boundary input 138 ! data (grid number and sea counter). 139 ! MAPBDI R.A. Public Map with distances to boundary. 140 ! MAPODI R.A. Public idem, open edges of grids. 141 ! NRUPTS Int. Public Number of unified output points. 142 ! UPTMAP I.A. Public Mapping of unified points to grids. 143 ! MAPMSK I.A. Public Mask corresponding to FLGHGn above. 144 ! MINIT, MSKINI, FLDATn 145 ! Log. Public Flags for array initializations. 146 ! FLLSTI Log. Public FLag for last ice per grid. 147 ! FLLSTL Log. Public FLag for last level per grid. 148 ! 149 ! NMV Int. Public Number of moving grid data. 150 ! TMV I.A. Public Moving grid times. 151 ! AMV R.A. Public Moving grid velocities. 152 ! DMV R.A. Public Moving grid directions. 153 ! 154 ! RCLD I.A. Public Record length for data assimilation. 155 ! NDT I.A. Public Number of data for data assimilation. 156 ! DATAn R.A. Public Assimilation data. 157 ! 158 ! MPI_COMM_GRD Int. Public Communicator for grid ( !/MPI ) 159 ! MPI_COMM_BCT Int. Public Communicator for broadcast ( !/MPI ) 160 ! CROOT Int. Public "root" for MPI_COMM_GRD in 161 ! MPI_COMM_MWAVE ( !/MPI ) 162 ! FBCAST Log. Public FLag for need of broadcasting data 163 ! to processors that are not in the 164 ! communicator ( !/MPI ) 165 ! NRQBPG Int. Public Number of request handles ( !/MPI ) 166 ! IRQBPG I.A. Public Request handles. ( !/MPI ) 167 ! NRQHGG Int. Public Number of request handles ( !/MPI ) 168 ! IRQHGG I.A. Public Request handles. ( !/MPI ) 169 ! NRQEQG Int. Public Number of request handles ( !/MPI ) 170 ! IRQEQG I.A. Public Request handles. ( !/MPI ) 171 ! ---------------------------------------------------------------- Page 4 Source Listing WMNDAT 2014-09-16 16:47 wmmdatmd.f90 172 ! 173 ! Elements of the structure BPTS are 174 ! 175 ! Name Type Scope Description 176 ! ---------------------------------------------------------------- 177 ! NRQBPS Int. Public Number of request handles ( !/MPI ) 178 ! IRQBPS I.A. Public Request handles. ( !/MPI ) 179 ! VTIME I.A. Public Valid time of data. 180 ! STIME I.A. Public Buffer for time for sending. ( !/MPI ) 181 ! SBPI R.A. Public Spectral data storage. 182 ! TSTORE R.A. Public Spectral data buffer. ( !/MPI ) 183 ! INIT Log. Public Flag for array allocation. 184 ! ---------------------------------------------------------------- 185 ! 186 ! Elements of the structure HGST are 187 ! 188 ! Name Type Scope Description 189 ! ---------------------------------------------------------------- 190 ! NRQHGS Int. Public Number of request handles ( !/MPI ) 191 ! IRQHGS I.A. Public Request handles. ( !/MPI ) 192 ! NRQOUT Int. Public Number of local spectra. ( !/MPI ) 193 ! OUTDAT I.A. Public Corresponding data. ( !/MPI ) 194 ! NTOT, NREC, NRC1, NSND, NSN1, NSMX 195 ! Int. Public Counters for total data, send and 196 ! received data with and without 197 ! masking. 198 ! VTIME I.A. Public Valid time of data. 199 ! LJSEA I.A. Public Local sea point counters. 200 ! NRAVG I.A. Public Number of points in averaging. 201 ! IMPSRC I.A. Public Source processor for data, 202 ! ITAG I.A. Public Communication tag. 203 ! ISEND I.A. Public Composite of all deta needed for send. 204 ! WGHT R.A. Public Weihts in averaging. 205 ! SHGH R.A. Public Staging area for spectra. 206 ! TSTORE R.A. Public Staging area for spectra to be send 207 ! out ( !/MPI ) 208 ! INIT Log. Public Flag for array allocation. 209 ! ---------------------------------------------------------------- 210 ! 211 ! Elements of the structure EQST are 212 ! 213 ! Name Type Scope Description 214 ! ---------------------------------------------------------------- 215 ! NRQEQS Int. Public Number of request handles ( !/MPI ) 216 ! IRQEQS I.A. Public Request handles. ( !/MPI ) 217 ! NRQOUT Int. Public Number of local spectra. ( !/MPI ) 218 ! OUTDAT I.A. Public Corresponding data. ( !/MPI ) 219 ! NTOT, NREC, NSND, NAVMAX 220 ! Int. Public Counters for total data, send and 221 ! received data. 222 ! VTIME I.A. Public Valid time of data. 223 ! I/JSEA I.A. Public Sea point counters. 224 ! NAVG I.A. Public Number of spectra in averaging. 225 ! RIP I.A. Public Processor (receiving). 226 ! RTG I.A. Public Tag number (receiving). 227 ! SIS,SJS I.A. Public Sea point counter (sending). 228 ! SI1/2 I.A. Public Storage array counters (sending). Page 5 Source Listing WMNDAT 2014-09-16 16:47 wmmdatmd.f90 229 ! SIP I.A. Public Processor (sending). 230 ! STG I.A. Public Tag (sending). 231 ! SEQL R.A. Public Staging array. 232 ! WGHT R.A. Public Weight between grids. 233 ! WAVG R.A. Public Weight within grid. 234 ! TSTORE R.A. Public Staging area for spectra to be send 235 ! out ( !/MPI ) 236 ! INIT Log. Public Flag for array allocation. 237 ! ---------------------------------------------------------------- 238 ! 239 ! 3. Subroutines and functions : 240 ! 241 ! Name Type Scope Description 242 ! ---------------------------------------------------------------- 243 ! WMNDAT Subr. Public Set number of grids/models. 244 ! WMDIMD Subr. Public Set dimensions of arrays (data). 245 ! WMDIMM Subr. Public Set dimensions of arrays. 246 ! WMSETM Subr. Public Point to selected grid / model. 247 ! ---------------------------------------------------------------- 248 ! 249 ! 4. Subroutines and functions used : 250 ! 251 ! Name Type Module Description 252 ! ---------------------------------------------------------------- 253 ! W3SETG Subr. W3GDATMD Point to proper model grid. 254 ! STRACE Subr. W3SERVMD Subroutine tracing. 255 ! EXTCDE Subr. Id. Abort program with exit code. 256 ! ---------------------------------------------------------------- 257 ! 258 ! 5. Remarks : 259 ! 260 ! - The number of grids is taken from W3GDATMD, and needs to be 261 ! set first with W3DIMG. 262 ! 263 ! 6. Switches : 264 ! 265 ! !/F90 FORTRAN 90 specific extensions. 266 ! 267 ! !/S Enable subroutine tracing. 268 ! !/T Enable test output 269 ! 270 ! 7. Source code : 271 ! 272 !/ ------------------------------------------------------------------- / 273 PUBLIC 274 !/ 275 !/ Conventional declarations 276 !/ 277 INTEGER :: NMDATA = -1, IMDATA = -1 278 INTEGER :: MDSI, MDSO = 6, MDSS = 6, MDST = 6, & 279 MDSE = 6, MDSUP, NMPROC = 1, & 280 IMPROC = 1, NMPLOG = 1, NMPSCR = 1, & 281 NMPTST = 1, NMPERR = 1, NMPUPT = 1, & 282 STIME(2), ETIME(2), NRGRD, NRINP, & 283 NRGRP, NMVMAX 284 INTEGER :: CLKT0, CLKTN, CLKINC, CLKMAX 285 INTEGER :: MPI_COMM_MWAVE Page 6 Source Listing WMNDAT 2014-09-16 16:47 wmmdatmd.f90 286 INTEGER, PARAMETER :: MTAGB = 900000 287 INTEGER, PARAMETER :: MTAG0 = 1000000 288 INTEGER, PARAMETER :: MTAG1 = 2000000 289 INTEGER, PARAMETER :: MTAG2 = 3000000 290 INTEGER, ALLOCATABLE :: MDSF(:,:), GRANK(:), GRGRP(:), & 291 INGRP(:,:), GRDHGH(:,:), GRDEQL(:,:),& 292 GRDLOW(:,:), ALLPRC(:,:), & 293 MODMAP(:,:), TSYNC(:,:), TMAX(:,:), & 294 TOUTP(:,:), TDATA(:,:), GRSTAT(:), & 295 NBI2G(:,:), INPMAP(:,:) 296 INTEGER, ALLOCATABLE :: NBISTA(:), HGHSTA(:), EQLSTA(:) 297 REAL :: CLKFIN 298 REAL, ALLOCATABLE :: DTRES(:) 299 LOGICAL :: FLGBDI=.FALSE., FLGHG1, FLGHG2 300 LOGICAL, ALLOCATABLE :: RESPEC(:,:), BCDUMP(:), & 301 IFLSTI(:), IFLSTL(:) 302 CHARACTER(LEN=3), ALLOCATABLE :: IDINP(:,:) 303 !/ 304 !/ Data structures 305 !/ 306 TYPE MDATA 307 INTEGER :: RCLD(3), NDT(3), NMV, NRUPTS 308 INTEGER :: MPI_COMM_GRD, MPI_COMM_BCT, & 309 CROOT, NRQBPG, NRQHGG, NRQEQG 310 INTEGER, POINTER :: TMV(:,:,:), NBI2S(:,:), MAPMSK(:,:), & 311 UPTMAP(:) 312 INTEGER, POINTER :: IRQBPG(:), IRQHGG(:), IRQEQG(:) 313 REAL, POINTER :: DATA0(:,:), DATA1(:,:), DATA2(:,:), & 314 AMV(:,:), DMV(:,:) 315 REAL, POINTER :: MAPBDI(:,:), MAPODI(:,:) 316 LOGICAL :: MINIT, MSKINI, FLLSTL, FLLSTI, & 317 FLDAT0, FLDAT1, FLDAT2 318 LOGICAL :: FBCAST 319 END TYPE MDATA 320 ! 321 TYPE BPST 322 INTEGER :: NRQBPS, STIME(2) 323 INTEGER :: VTIME(2) 324 INTEGER, POINTER :: IRQBPS(:) 325 REAL, POINTER :: SBPI(:,:) 326 REAL, POINTER :: TSTORE(:,:) 327 LOGICAL :: INIT 328 END TYPE BPST 329 ! 330 TYPE HGST 331 INTEGER :: VTIME(2), NTOT, NREC, NRC1, & 332 NSND, NSN1, NSMX, XTIME(2) 333 INTEGER :: NRQHGS, NRQOUT 334 INTEGER, POINTER :: LJSEA(:), NRAVG(:), IMPSRC(:,:), & 335 ITAG(:,:), ISEND(:,:) 336 INTEGER, POINTER :: IRQHGS(:), OUTDAT(:,:) 337 REAL, POINTER :: WGTH(:,:), SHGH(:,:,:) 338 REAL, POINTER :: TSTORE(:,:) 339 LOGICAL :: INIT 340 END TYPE HGST 341 ! 342 TYPE EQST Page 7 Source Listing WMNDAT 2014-09-16 16:47 wmmdatmd.f90 343 INTEGER :: VTIME(2), NTOT, NREC, NSND, NAVMAX 344 INTEGER :: NRQEQS, NRQOUT 345 INTEGER, POINTER :: ISEA(:), JSEA(:), NAVG(:), RIP(:,:), & 346 RTG(:,:), SIS(:), SJS(:), SI1(:), & 347 SI2(:), SIP(:), STG(:) 348 INTEGER, POINTER :: IRQEQS(:), OUTDAT(:,:) 349 REAL, POINTER :: SEQL(:,:,:), WGHT(:), WAVG(:,:) 350 REAL, POINTER :: TSTORE(:,:) 351 LOGICAL :: INIT 352 END TYPE EQST 353 !/ 354 !/ Data storage 355 !/ 356 TYPE(MDATA), TARGET, ALLOCATABLE :: MDATAS(:) 357 TYPE(BPST), TARGET, ALLOCATABLE :: BPSTGE(:,:) 358 TYPE(HGST), TARGET, ALLOCATABLE :: HGSTGE(:,:) 359 TYPE(EQST), TARGET, ALLOCATABLE :: EQSTGE(:,:) 360 !/ 361 !/ Data aliasses for structure MDATA(S) 362 !/ 363 INTEGER, POINTER :: RCLD(:), NDT(:), NMV, TMV(:,:,:), & 364 NBI2S(:,:), MAPMSK(:,:), UPTMAP(:) 365 INTEGER, POINTER :: MPI_COMM_GRD, MPI_COMM_BCT, CROOT 366 REAL, POINTER :: DATA0(:,:), DATA1(:,:), DATA2(:,:), & 367 AMV(:,:), DMV(:,:) 368 REAL, POINTER :: MAPBDI(:,:), MAPODI(:,:) 369 LOGICAL, POINTER :: MINIT, FLLSTL, FLLSTI, & 370 FLDAT0, FLDAT1, FLDAT2 371 LOGICAL, POINTER :: FBCAST 372 !/ 373 CONTAINS 374 !/ ------------------------------------------------------------------- / 375 SUBROUTINE WMNDAT ( NDSE, NDST ) 376 !/ 377 !/ +-----------------------------------+ 378 !/ | WAVEWATCH III NOAA/NCEP | 379 !/ | H. L. Tolman | 380 !/ | FORTRAN 90 | 381 !/ | Last update : 22-Jan-2007 ! 382 !/ +-----------------------------------+ 383 !/ 384 !/ 22-Feb-2005 : Origination. ( version 3.07 ) 385 !/ 16-Dec-2005 : Add staging of boundary data. ( version 3.08 ) 386 !/ Add HGSTGE data. ( version 3.08 ) 387 !/ 24-Mar-2006 : Add EQSTGE data. ( version 3.09 ) 388 !/ 25-May-2006 : Add STIME in BPSTGE. ( version 3.09 ) 389 !/ 12-Jan-2007 : Add FLSTI and FLLSTL. ( version 3.10 ) 390 !/ 22-Jan-2007 : Add NAVMAX. ( version 3.10 ) 391 !/ 392 ! 1. Purpose : 393 ! 394 ! Set up the number of grids to be used. 395 ! 396 ! 2. Method : 397 ! 398 ! Use data stored in NGRIDS in W3GDATMD. 399 ! Page 8 Source Listing WMNDAT 2014-09-16 16:47 wmmdatmd.f90 400 ! 3. Parameters : 401 ! 402 ! Parameter list 403 ! ---------------------------------------------------------------- 404 ! NDSE Int. I Error output unit number. 405 ! NDST Int. I Test output unit number. 406 ! ---------------------------------------------------------------- 407 ! 408 ! 4. Subroutines used : 409 ! 410 ! See module documentation. 411 ! 412 ! 5. Called by : 413 ! 414 ! Any program that uses this grid structure. 415 ! 416 ! 6. Error messages : 417 ! 418 ! - Error checks on previous setting of variable NGRIDS. 419 ! 420 ! 7. Remarks : 421 ! 422 ! 8. Structure : 423 ! 424 ! 9. Switches : 425 ! 426 ! !/S Enable subroutine tracing. 427 ! !/T Enable test output 428 ! 429 ! 10. Source code : 430 ! 431 !/ ------------------------------------------------------------------- / 432 USE W3GDATMD, ONLY: NGRIDS 433 USE W3SERVMD, ONLY: EXTCDE 434 ! 435 IMPLICIT NONE 436 !/ 437 !/ ------------------------------------------------------------------- / 438 !/ Parameter list 439 !/ 440 INTEGER, INTENT(IN) :: NDSE, NDST 441 !/ 442 !/ ------------------------------------------------------------------- / 443 !/ Local parameters 444 !/ 445 INTEGER :: I, J 446 !/ 447 ! 448 ! -------------------------------------------------------------------- / 449 ! 1. Test input and module status 450 ! 451 IF ( NGRIDS .EQ. -1 ) THEN 452 WRITE (NDSE,1001) NGRIDS 453 CALL EXTCDE (1) 454 END IF 455 ! 456 ! -------------------------------------------------------------------- / Page 9 Source Listing WMNDAT 2014-09-16 16:47 wmmdatmd.f90 457 ! 2. Set variable and allocate arrays 458 ! 459 ALLOCATE ( MDATAS(NGRIDS), BPSTGE(NGRIDS,NGRIDS), & 460 HGSTGE(NGRIDS,NGRIDS), EQSTGE(NGRIDS,NGRIDS), & 461 BCDUMP(NRGRD), IFLSTI(NRINP), IFLSTL(NRINP) ) 462 ALLOCATE ( NBISTA(NGRIDS), HGHSTA(NGRIDS), EQLSTA(NGRIDS) ) 463 NMDATA = NGRIDS 464 ! 465 ! -------------------------------------------------------------------- / 466 ! 3. Initialize parameters 467 ! 468 NBISTA = 0 469 HGHSTA = 0 470 EQLSTA = 0 471 ! 472 IFLSTI = .FALSE. 473 IFLSTL = .FALSE. 474 ! 475 DO I=1, NGRIDS 476 MDATAS(I)%MINIT = .FALSE. 477 MDATAS(I)%MSKINI = .FALSE. 478 MDATAS(I)%FLDAT0 = .FALSE. 479 MDATAS(I)%FLDAT1 = .FALSE. 480 MDATAS(I)%FLDAT2 = .FALSE. 481 MDATAS(I)%MPI_COMM_GRD = -99 482 MDATAS(I)%MPI_COMM_BCT = -99 483 DO J=1, NGRIDS 484 BPSTGE(I,J)%VTIME(1) = -1 485 BPSTGE(I,J)%VTIME(2) = 0 486 BPSTGE(I,J)%STIME(1) = -1 487 BPSTGE(I,J)%STIME(2) = 0 488 BPSTGE(I,J)%INIT = .FALSE. 489 BPSTGE(I,J)%NRQBPS = 0 490 HGSTGE(I,J)%VTIME(1) = -1 491 HGSTGE(I,J)%VTIME(2) = 0 492 HGSTGE(I,J)%XTIME(1) = -1 493 HGSTGE(I,J)%XTIME(2) = 0 494 HGSTGE(I,J)%NTOT = 0 495 HGSTGE(I,J)%NREC = 0 496 HGSTGE(I,J)%NRC1 = 0 497 HGSTGE(I,J)%NSND = 0 498 HGSTGE(I,J)%NSN1 = 0 499 HGSTGE(I,J)%NSMX = 0 500 HGSTGE(I,J)%NRQHGS = 0 501 HGSTGE(I,J)%INIT = .FALSE. 502 EQSTGE(I,J)%VTIME(1) = -1 503 EQSTGE(I,J)%VTIME(2) = 0 504 EQSTGE(I,J)%NTOT = 0 505 EQSTGE(I,J)%NREC = 0 506 EQSTGE(I,J)%NSND = 0 507 EQSTGE(I,J)%NAVMAX = 1 508 EQSTGE(I,J)%NRQEQS = 0 509 EQSTGE(I,J)%INIT = .FALSE. 510 END DO 511 END DO 512 ! 513 RETURN Page 10 Source Listing WMNDAT 2014-09-16 16:47 wmmdatmd.f90 514 ! 515 ! Formats 516 ! 517 1001 FORMAT (/' *** ERROR WMNDAT : NGRIDS NOT YET SET *** '/ & 518 ' NGRIDS = ',I10/ & 519 ' RUN W3NMOD FIRST'/) 520 ! 521 !/ 522 !/ End of WMNDAT ----------------------------------------------------- / 523 !/ 524 END SUBROUTINE WMNDAT ENTRY POINTS Name wmmdatmd_mp_wmndat_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 1001 Label 517 452 BCDUMP Local 461 L(4) 4 1 1 ALC 461 BPSTGE Local 459 RECORD 296 2 1 ALC,TGT 459,484,485,486,487,488,489 EQLSTA Local 462 I(4) 4 1 1 ALC 462,470 EQSTGE Local 460 RECORD 1432 2 1 ALC,TGT 460,502,503,504,505,506,507,508,50 9 EXTCDE Subr 433 433,453 FLDAT0 Local 478 L(4) 4 scalar 478 FLDAT1 Local 479 L(4) 4 scalar 479 FLDAT2 Local 480 L(4) 4 scalar 480 HGHSTA Local 462 I(4) 4 1 1 ALC 462,469 HGSTGE Local 460 RECORD 968 2 1 ALC,TGT 460,490,491,492,493,494,495,496,49 7,498,499,500,501 I Local 445 I(4) 4 scalar 475,476,477,478,479,480,481,482,48 4,485,486,487,488,489,490,491,492, 493,494,495,496,497,498,499,500,50 1,502,503,504,505,506,507,508,509 IFLSTI Local 461 L(4) 4 1 1 ALC 461,472 IFLSTL Local 461 L(4) 4 1 1 ALC 461,473 INIT Local 488 L(4) 4 scalar 488 INIT Local 501 L(4) 4 scalar 501 INIT Local 509 L(4) 4 scalar 509 J Local 445 I(4) 4 scalar 483,484,485,486,487,488,489,490,49 1,492,493,494,495,496,497,498,499, 500,501,502,503,504,505,506,507,50 8,509 MDATAS Local 459 RECORD 1360 1 1 ALC,TGT 459,476,477,478,479,480,481,482,61 9,630,631,632,635,636,641,642,647, 648,776,908,909,910,911,912,913,91 4,915,916,917,918,919,920,921,922, 923,924,925,926,927,928 MINIT Local 476 L(4) 4 scalar TGT 476,619,776,923 MPI_COMM_BCT Local 482 I(4) 4 scalar TGT 482,913 Page 11 Source Listing WMNDAT 2014-09-16 16:47 Symbol Table wmmdatmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References MPI_COMM_GRD Local 481 I(4) 4 scalar TGT 481,912 MSKINI Local 477 L(4) 4 scalar 477 NAVMAX Local 507 I(4) 4 scalar 507 NBISTA Local 462 I(4) 4 1 1 ALC 462,468 NDSE Dummy 375 I(4) 4 scalar ARG,IN 452 NDST Dummy 375 I(4) 4 scalar ARG,IN NGRIDS Local 432 I(4) 4 scalar 432,451,452,459,460,462,463,475,48 3 NMDATA Local 463 I(4) 4 scalar 277,463,614,615,771,772,890,895,89 6 NRC1 Local 496 I(4) 4 scalar 496 NREC Local 495 I(4) 4 scalar 495 NREC Local 505 I(4) 4 scalar 505 NRGRD Local 461 I(4) 4 scalar 461 NRINP Local 461 I(4) 4 scalar 461 NRQBPS Local 489 I(4) 4 scalar 489 NRQEQS Local 508 I(4) 4 scalar 508 NRQHGS Local 500 I(4) 4 scalar 500 NSMX Local 499 I(4) 4 scalar 499 NSN1 Local 498 I(4) 4 scalar 498 NSND Local 497 I(4) 4 scalar 497 NSND Local 506 I(4) 4 scalar 506 NTOT Local 494 I(4) 4 scalar 494 NTOT Local 504 I(4) 4 scalar 504 STIME Local 486 I(4) 4 1 2 486,487 VTIME Local 484 I(4) 4 1 2 484,485 VTIME Local 490 I(4) 4 1 2 490,491 VTIME Local 502 I(4) 4 1 2 502,503 W3GDATMD Module 432 432 W3SERVMD Module 433 433 WMNDAT Subr 375 XTIME Local 492 I(4) 4 1 2 492,493 Page 12 Source Listing WMNDAT 2014-09-16 16:47 wmmdatmd.f90 525 !/ ------------------------------------------------------------------- / 526 SUBROUTINE WMDIMD ( IMOD, NDSE, NDST, J ) 527 !/ 528 !/ +-----------------------------------+ 529 !/ | WAVEWATCH III NOAA/NCEP | 530 !/ | H. L. Tolman | 531 !/ | FORTRAN 90 | 532 !/ | Last update : 22-Feb-2005 ! 533 !/ +-----------------------------------+ 534 !/ 535 !/ 22-Feb-2005 : Origination. ( version 3.07 ) 536 !/ 537 ! 1. Purpose : 538 ! 539 ! Initialize an individual data grid at the proper dimensions. 540 ! 541 ! 2. Method : 542 ! 543 ! Allocate directly into the structure array. Note that 544 ! this cannot be done through the pointer alias! 545 ! 546 ! 3. Parameters : 547 ! 548 ! Parameter list 549 ! ---------------------------------------------------------------- 550 ! IMOD Int. I Model number to point to. 551 ! NDSE Int. I Error output unit number. 552 ! NDST Int. I Test output unit number. 553 ! J Int. I Data set [1,2,3]. 554 ! ---------------------------------------------------------------- 555 ! 556 ! 4. Subroutines used : 557 ! 558 ! See module documentation. 559 ! 560 ! 5. Called by : 561 ! 562 ! Name Type Module Description 563 ! ---------------------------------------------------------------- 564 ! ---------------------------------------------------------------- 565 ! 566 ! 6. Error messages : 567 ! 568 ! - Check on input parameters. 569 ! - Check on previous allocation. 570 ! 571 ! 7. Remarks : 572 ! 573 ! - WMSETM needs to be called after allocation to point to 574 ! proper allocated arrays. 575 ! 576 ! 8. Structure : 577 ! 578 ! See source code. 579 ! 580 ! 9. Switches : 581 ! Page 13 Source Listing WMDIMD 2014-09-16 16:47 wmmdatmd.f90 582 ! !/S Enable subroutine tracing. 583 ! !/T Enable test output 584 ! 585 ! 10. Source code : 586 ! 587 !/ ------------------------------------------------------------------- / 588 USE W3GDATMD, ONLY: NGRIDS, IGRID, W3SETG 589 USE W3ODATMD, ONLY: NAPROC 590 USE W3SERVMD, ONLY: EXTCDE 591 ! 592 IMPLICIT NONE 593 ! 594 !/ 595 !/ ------------------------------------------------------------------- / 596 !/ Parameter list 597 !/ 598 INTEGER, INTENT(IN) :: IMOD, NDSE, NDST, J 599 !/ 600 !/ ------------------------------------------------------------------- / 601 !/ Local parameters 602 !/ 603 INTEGER :: JGRID 604 !/ 605 ! 606 ! -------------------------------------------------------------------- / 607 ! 1. Test input and module status 608 ! 609 IF ( NGRIDS .EQ. -1 ) THEN 610 WRITE (NDSE,1001) 611 CALL EXTCDE (1) 612 END IF 613 ! 614 IF ( IMOD.LT.1 .OR. IMOD.GT.NMDATA ) THEN 615 WRITE (NDSE,1002) IMOD, NMDATA 616 CALL EXTCDE (2) 617 END IF 618 ! 619 IF ( MDATAS(IMOD)%MINIT ) THEN 620 WRITE (NDSE,1003) 621 CALL EXTCDE (3) 622 END IF 623 ! 624 JGRID = IGRID 625 IF ( JGRID .NE. IMOD ) CALL W3SETG ( IMOD, NDSE, NDST ) 626 ! 627 ! -------------------------------------------------------------------- / 628 ! 2. Allocate arrays 629 ! 630 IF ( J .EQ. 0 ) ALLOCATE ( MDATAS(IMOD)%TMV(2,-7:4,NMV) , & 631 MDATAS(IMOD)%AMV(NMV,-7:4) , & 632 MDATAS(IMOD)%DMV(NMV,-7:4) ) 633 ! 634 IF ( J .EQ. 1 ) THEN 635 IF ( FLDAT0 ) DEALLOCATE ( MDATAS(IMOD)%DATA0 ) 636 ALLOCATE ( MDATAS(IMOD)%DATA0(RCLD(J),NDT(J)) ) 637 FLDAT0 = .TRUE. 638 END IF Page 14 Source Listing WMDIMD 2014-09-16 16:47 wmmdatmd.f90 639 ! 640 IF ( J .EQ. 2 ) THEN 641 IF ( FLDAT1 ) DEALLOCATE ( MDATAS(IMOD)%DATA1 ) 642 ALLOCATE ( MDATAS(IMOD)%DATA1(RCLD(J),NDT(J)) ) 643 FLDAT1 = .TRUE. 644 END IF 645 ! 646 IF ( J .EQ. 3 ) THEN 647 IF ( FLDAT2 ) DEALLOCATE ( MDATAS(IMOD)%DATA2 ) 648 ALLOCATE ( MDATAS(IMOD)%DATA2(RCLD(J),NDT(J)) ) 649 FLDAT2 = .TRUE. 650 END IF 651 ! 652 ! -------------------------------------------------------------------- / 653 ! 3. Point to allocated arrays 654 ! 655 CALL WMSETM ( IMOD, NDSE, NDST ) 656 ! 657 IF ( J .EQ. 0 ) THEN 658 TMV = 0 659 AMV = 0. 660 DMV = 0. 661 END IF 662 ! 663 ! -------------------------------------------------------------------- / 664 ! 5. Restore previous grid setting if necessary 665 ! 666 IF ( JGRID .NE. IMOD ) CALL W3SETG ( JGRID, NDSE, NDST ) 667 ! 668 RETURN 669 ! 670 ! Formats 671 ! 672 1001 FORMAT (/' *** ERROR WMDIMD : GRIDS NOT INITIALIZED *** '/ & 673 ' RUN W3NMOD FIRST '/) 674 1002 FORMAT (/' *** ERROR WMDIMD : ILLEGAL MODEL NUMBER *** '/ & 675 ' IMOD = ',I10/ & 676 ' NMDATA = ',I10/) 677 1003 FORMAT (/' *** ERROR WMDIMD : ARRAY(S) ALREADY ALLOCATED *** ') 678 ! 679 !/ 680 !/ End of WMDIMD ----------------------------------------------------- / 681 !/ 682 END SUBROUTINE WMDIMD Page 15 Source Listing WMDIMD 2014-09-16 16:47 Entry Points wmmdatmd.f90 ENTRY POINTS Name wmmdatmd_mp_wmdimd_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 1001 Label 672 610 1002 Label 674 615 1003 Label 677 620 AMV Local 631 R(4) 4 2 1 PTR 631,910 AMV Local 659 R(4) 4 2 1 PTR 659,910 DATA0 Local 635 R(4) 4 2 1 PTR 635,636,918 DATA1 Local 641 R(4) 4 2 1 PTR 641,642,919 DATA2 Local 647 R(4) 4 2 1 PTR 647,648,920 DMV Local 632 R(4) 4 2 1 PTR 632,911 DMV Local 660 R(4) 4 2 1 PTR 660,911 EXTCDE Subr 590 590,611,616,621 FLDAT0 Local 635 L(4) 4 scalar PTR 635,637 FLDAT1 Local 641 L(4) 4 scalar PTR 641,643 FLDAT2 Local 647 L(4) 4 scalar PTR 647,649 IGRID Local 588 I(4) 4 scalar 588,624 IMOD Dummy 526 I(4) 4 scalar ARG,IN 614,615,619,625,630,631,632,635,63 6,641,642,647,648,655,666 J Dummy 526 I(4) 4 scalar ARG,IN 630,634,636,640,642,646,648,657 JGRID Local 603 I(4) 4 scalar 624,625,666 NAPROC Local 589 I(4) 4 scalar PTR 589 NDSE Dummy 526 I(4) 4 scalar ARG,IN 610,615,620,625,655,666 NDST Dummy 526 I(4) 4 scalar ARG,IN 625,655,666 NDT Local 636 I(4) 4 1 1 PTR 636,642,648,917 NGRIDS Local 588 I(4) 4 scalar 588,609 NMV Local 630 I(4) 4 scalar PTR 630,631,632,908 RCLD Local 636 I(4) 4 1 1 PTR 636,642,648,916 TMV Local 630 I(4) 4 3 1 PTR 630,909 TMV Local 658 I(4) 4 3 1 PTR 658,909 W3GDATMD Module 588 588 W3ODATMD Module 589 589 W3SERVMD Module 590 590 W3SETG Subr 588 588,625,666 WMDIMD Subr 526 Page 16 Source Listing WMDIMD 2014-09-16 16:47 wmmdatmd.f90 683 !/ ------------------------------------------------------------------- / 684 SUBROUTINE WMDIMM ( IMOD, NDSE, NDST ) 685 !/ 686 !/ +-----------------------------------+ 687 !/ | WAVEWATCH III NOAA/NCEP | 688 !/ | H. L. Tolman | 689 !/ | FORTRAN 90 | 690 !/ | Last update : 22-Feb-2005 ! 691 !/ +-----------------------------------+ 692 !/ 693 !/ 22-Feb-2005 : Origination. ( version 3.07 ) 694 !/ 695 ! 1. Purpose : 696 ! 697 ! Initialize an individual data grid at the proper dimensions. 698 ! 699 ! 2. Method : 700 ! 701 ! Allocate directly into the structure array. Note that 702 ! this cannot be done through the pointer alias! 703 ! 704 ! 3. Parameters : 705 ! 706 ! Parameter list 707 ! ---------------------------------------------------------------- 708 ! IMOD Int. I Model number to point to. 709 ! NDSE Int. I Error output unit number. 710 ! NDST Int. I Test output unit number. 711 ! ---------------------------------------------------------------- 712 ! 713 ! 4. Subroutines used : 714 ! 715 ! See module documentation. 716 ! 717 ! 5. Called by : 718 ! 719 ! Name Type Module Description 720 ! ---------------------------------------------------------------- 721 ! ---------------------------------------------------------------- 722 ! 723 ! 6. Error messages : 724 ! 725 ! - Check on input parameters. 726 ! - Check on previous allocation. 727 ! 728 ! 7. Remarks : 729 ! 730 ! - WMSETM needs to be called after allocation to point to 731 ! proper allocated arrays. 732 ! 733 ! 8. Structure : 734 ! 735 ! See source code. 736 ! 737 ! 9. Switches : 738 ! 739 ! !/S Enable subroutine tracing. Page 17 Source Listing WMDIMM 2014-09-16 16:47 wmmdatmd.f90 740 ! !/T Enable test output 741 ! 742 ! 10. Source code : 743 ! 744 !/ ------------------------------------------------------------------- / 745 USE W3GDATMD, ONLY: NGRIDS, IGRID, W3SETG 746 USE W3ODATMD, ONLY: NAPROC 747 USE W3SERVMD, ONLY: EXTCDE 748 ! 749 IMPLICIT NONE 750 ! 751 !/ 752 !/ ------------------------------------------------------------------- / 753 !/ Parameter list 754 !/ 755 INTEGER, INTENT(IN) :: IMOD, NDSE, NDST 756 !/ 757 !/ ------------------------------------------------------------------- / 758 !/ Local parameters 759 !/ 760 INTEGER :: JGRID 761 !/ 762 ! 763 ! -------------------------------------------------------------------- / 764 ! 1. Test input and module status 765 ! 766 IF ( NGRIDS .EQ. -1 ) THEN 767 WRITE (NDSE,1001) 768 CALL EXTCDE (1) 769 END IF 770 ! 771 IF ( IMOD.LT.1 .OR. IMOD.GT.NMDATA ) THEN 772 WRITE (NDSE,1002) IMOD, NMDATA 773 CALL EXTCDE (2) 774 END IF 775 ! 776 IF ( MDATAS(IMOD)%MINIT ) THEN 777 WRITE (NDSE,1003) 778 CALL EXTCDE (3) 779 END IF 780 ! 781 JGRID = IGRID 782 IF ( JGRID .NE. IMOD ) CALL W3SETG ( IMOD, NDSE, NDST ) 783 ! 784 ! -------------------------------------------------------------------- / 785 ! 2. Allocate arrays 786 ! 787 ! ALLOCATE ( MDATAS(IMOD)%... 788 ! 789 ! -------------------------------------------------------------------- / 790 ! 3. Point to allocated arrays 791 ! 792 CALL WMSETM ( IMOD, NDSE, NDST ) 793 ! 794 ! -------------------------------------------------------------------- / 795 ! 4. Update flag 796 ! Page 18 Source Listing WMDIMM 2014-09-16 16:47 wmmdatmd.f90 797 MINIT = .TRUE. 798 ! 799 ! -------------------------------------------------------------------- / 800 ! 5. Restore previous grid setting if necessary 801 ! 802 IF ( JGRID .NE. IMOD ) CALL W3SETG ( JGRID, NDSE, NDST ) 803 ! 804 RETURN 805 ! 806 ! Formats 807 ! 808 1001 FORMAT (/' *** ERROR WMDIMM : GRIDS NOT INITIALIZED *** '/ & 809 ' RUN W3NMOD FIRST '/) 810 1002 FORMAT (/' *** ERROR WMDIMM : ILLEGAL MODEL NUMBER *** '/ & 811 ' IMOD = ',I10/ & 812 ' NMDATA = ',I10/) 813 1003 FORMAT (/' *** ERROR WMDIMM : ARRAY(S) ALREADY ALLOCATED *** ') 814 ! 815 !/ 816 !/ End of WMDIMM ----------------------------------------------------- / 817 !/ 818 END SUBROUTINE WMDIMM ENTRY POINTS Name wmmdatmd_mp_wmdimm_ Page 19 Source Listing WMDIMM 2014-09-16 16:47 Symbol Table wmmdatmd.f90 SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 1001 Label 808 767 1002 Label 810 772 1003 Label 813 777 EXTCDE Subr 747 747,768,773,778 IGRID Local 745 I(4) 4 scalar 745,781 IMOD Dummy 684 I(4) 4 scalar ARG,IN 771,772,776,782,792,802 JGRID Local 760 I(4) 4 scalar 781,782,802 MINIT Local 797 L(4) 4 scalar PTR 797,923 NAPROC Local 746 I(4) 4 scalar PTR 746 NDSE Dummy 684 I(4) 4 scalar ARG,IN 767,772,777,782,792,802 NDST Dummy 684 I(4) 4 scalar ARG,IN 782,792,802 NGRIDS Local 745 I(4) 4 scalar 745,766 W3GDATMD Module 745 745 W3ODATMD Module 746 746 W3SERVMD Module 747 747 W3SETG Subr 745 745,782,802 WMDIMM Subr 684 Page 20 Source Listing WMDIMM 2014-09-16 16:47 wmmdatmd.f90 819 !/ ------------------------------------------------------------------- / 820 SUBROUTINE WMSETM ( IMOD, NDSE, NDST ) 821 !/ 822 !/ +-----------------------------------+ 823 !/ | WAVEWATCH III NOAA/NCEP | 824 !/ | H. L. Tolman | 825 !/ | FORTRAN 90 | 826 !/ | Last update : 13-Jun-2005 ! 827 !/ +-----------------------------------+ 828 !/ 829 !/ 13-Jun-2005 : Origination. ( version 3.07 ) 830 !/ 831 ! 1. Purpose : 832 ! 833 ! Select one of the WAVEWATCH III grids / models. 834 ! 835 ! 2. Method : 836 ! 837 ! Point pointers to the proper variables in the proper element of 838 ! the GRIDS array. 839 ! 840 ! 3. Parameters : 841 ! 842 ! Parameter list 843 ! ---------------------------------------------------------------- 844 ! IMOD Int. I Model number to point to. 845 ! NDSE Int. I Error output unit number. 846 ! NDST Int. I Test output unit number. 847 ! ---------------------------------------------------------------- 848 ! 849 ! 4. Subroutines used : 850 ! 851 ! See module documentation. 852 ! 853 ! 5. Called by : 854 ! 855 ! Many subroutines in the WAVEWATCH system. 856 ! 857 ! 6. Error messages : 858 ! 859 ! Checks on parameter list IMOD. 860 ! 861 ! 7. Remarks : 862 ! 863 ! 8. Structure : 864 ! 865 ! 9. Switches : 866 ! 867 ! !/S Enable subroutine tracing. 868 ! !/T Enable test output 869 ! 870 ! 10. Source code : 871 ! 872 !/ ------------------------------------------------------------------- / 873 USE W3SERVMD, ONLY: EXTCDE 874 ! 875 IMPLICIT NONE Page 21 Source Listing WMSETM 2014-09-16 16:47 wmmdatmd.f90 876 !/ 877 !/ ------------------------------------------------------------------- / 878 !/ Parameter list 879 !/ 880 INTEGER, INTENT(IN) :: IMOD, NDSE, NDST 881 !/ 882 !/ ------------------------------------------------------------------- / 883 !/ Local parameters 884 !/ 885 !/ 886 ! 887 ! -------------------------------------------------------------------- / 888 ! 1. Test input and module status 889 ! 890 IF ( NMDATA .EQ. -1 ) THEN 891 WRITE (NDSE,1001) 892 CALL EXTCDE (1) 893 END IF 894 ! 895 IF ( IMOD.LT.1 .OR. IMOD.GT.NMDATA ) THEN 896 WRITE (NDSE,1002) IMOD, NMDATA 897 CALL EXTCDE (2) 898 END IF 899 ! 900 ! -------------------------------------------------------------------- / 901 ! 2. Set model numbers 902 ! 903 IMDATA = IMOD 904 ! 905 ! -------------------------------------------------------------------- / 906 ! 3. Set pointers 907 ! 908 NMV => MDATAS(IMOD)%NMV 909 TMV => MDATAS(IMOD)%TMV 910 AMV => MDATAS(IMOD)%AMV 911 DMV => MDATAS(IMOD)%DMV 912 MPI_COMM_GRD => MDATAS(IMOD)%MPI_COMM_GRD 913 MPI_COMM_BCT => MDATAS(IMOD)%MPI_COMM_BCT 914 CROOT => MDATAS(IMOD)%CROOT 915 FBCAST => MDATAS(IMOD)%FBCAST 916 RCLD => MDATAS(IMOD)%RCLD 917 NDT => MDATAS(IMOD)%NDT 918 DATA0 => MDATAS(IMOD)%DATA0 919 DATA1 => MDATAS(IMOD)%DATA1 920 DATA2 => MDATAS(IMOD)%DATA2 921 NBI2S => MDATAS(IMOD)%NBI2S 922 MAPMSK => MDATAS(IMOD)%MAPMSK 923 MINIT => MDATAS(IMOD)%MINIT 924 FLLSTL => MDATAS(IMOD)%FLLSTL 925 FLLSTI => MDATAS(IMOD)%FLLSTI 926 MAPBDI => MDATAS(IMOD)%MAPBDI 927 MAPODI => MDATAS(IMOD)%MAPODI 928 UPTMAP => MDATAS(IMOD)%UPTMAP 929 ! 930 RETURN 931 ! 932 ! Formats Page 22 Source Listing WMSETM 2014-09-16 16:47 wmmdatmd.f90 933 ! 934 1001 FORMAT (/' *** ERROR WMSETM : GRIDS NOT INITIALIZED *** '/ & 935 ' RUN W3NMOD FIRST '/) 936 1002 FORMAT (/' *** ERROR WMSETM : ILLEGAL MODEL NUMBER *** '/ & 937 ' IMOD = ',I10/ & 938 ' NMDATA = ',I10/) 939 ! 940 !/ 941 !/ End of WMSETM ----------------------------------------------------- / 942 !/ 943 END SUBROUTINE WMSETM ENTRY POINTS Name wmmdatmd_mp_wmsetm_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 1001 Label 934 891 1002 Label 936 896 CROOT Local 914 I(4) 4 scalar PTR,TGT 914 DATA0 Local 918 R(4) 4 2 1 PTR 918 DATA1 Local 919 R(4) 4 2 1 PTR 919 DATA2 Local 920 R(4) 4 2 1 PTR 920 EXTCDE Subr 873 873,892,897 FBCAST Local 915 L(4) 4 scalar PTR,TGT 915 FLLSTI Local 925 L(4) 4 scalar PTR,TGT 925 FLLSTL Local 924 L(4) 4 scalar PTR,TGT 924 IMDATA Local 903 I(4) 4 scalar 277,903 IMOD Dummy 820 I(4) 4 scalar ARG,IN 895,896,903,908,909,910,911,912,91 3,914,915,916,917,918,919,920,921, 922,923,924,925,926,927,928 MAPBDI Local 926 R(4) 4 2 1 PTR 926 MAPMSK Local 922 I(4) 4 2 1 PTR 922 MAPODI Local 927 R(4) 4 2 1 PTR 927 MPI_COMM_BCT Local 913 I(4) 4 scalar PTR 913 MPI_COMM_GRD Local 912 I(4) 4 scalar PTR 912 NBI2S Local 921 I(4) 4 2 1 PTR 921 NDSE Dummy 820 I(4) 4 scalar ARG,IN 891,896 NDST Dummy 820 I(4) 4 scalar ARG,IN NDT Local 917 I(4) 4 1 3 917 NMV Local 908 I(4) 4 scalar TGT 908 RCLD Local 916 I(4) 4 1 3 916 UPTMAP Local 928 I(4) 4 1 1 PTR 928 W3SERVMD Module 873 873 WMSETM Subr 820 655,792 Page 23 Source Listing WMSETM 2014-09-16 16:47 wmmdatmd.f90 944 !/ 945 !/ End of module WMMDATMD -------------------------------------------- / 946 !/ 947 END MODULE WMMDATMD SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References ALLPRC Local 292 I(4) 4 2 1 ALC BPST Type 321 296 scalar 328,357 CLKFIN Local 297 R(4) 4 scalar CLKINC Local 284 I(4) 4 scalar CLKMAX Local 284 I(4) 4 scalar CLKT0 Local 284 I(4) 4 scalar CLKTN Local 284 I(4) 4 scalar DTRES Local 298 R(4) 4 1 1 ALC EQST Type 342 1432 scalar 352,359 ETIME Local 282 I(4) 4 1 2 FLGBDI Local 299 L(4) 4 scalar 299 FLGHG1 Local 299 L(4) 4 scalar FLGHG2 Local 299 L(4) 4 scalar GRANK Local 290 I(4) 4 1 1 ALC GRDEQL Local 291 I(4) 4 2 1 ALC GRDHGH Local 291 I(4) 4 2 1 ALC GRDLOW Local 292 I(4) 4 2 1 ALC GRGRP Local 290 I(4) 4 1 1 ALC GRSTAT Local 294 I(4) 4 1 1 ALC HGST Type 330 968 scalar 340,358 IDINP Local 302 CHAR 3 2 1 ALC IMPROC Local 280 I(4) 4 scalar 280 IMPSRC Local 334 I(4) 4 2 1 PTR INGRP Local 291 I(4) 4 2 1 ALC INPMAP Local 295 I(4) 4 2 1 ALC IRQBPG Local 312 I(4) 4 1 1 PTR IRQBPS Local 324 I(4) 4 1 1 PTR IRQEQG Local 312 I(4) 4 1 1 PTR IRQEQS Local 348 I(4) 4 1 1 PTR IRQHGG Local 312 I(4) 4 1 1 PTR IRQHGS Local 336 I(4) 4 1 1 PTR ISEA Local 345 I(4) 4 1 1 PTR ISEND Local 335 I(4) 4 2 1 PTR ITAG Local 335 I(4) 4 2 1 PTR JSEA Local 345 I(4) 4 1 1 PTR LJSEA Local 334 I(4) 4 1 1 PTR MDATA Type 306 1360 scalar 319,356 MDSE Local 279 I(4) 4 scalar 279 MDSF Local 290 I(4) 4 2 1 ALC MDSI Local 278 I(4) 4 scalar MDSO Local 278 I(4) 4 scalar 278 MDSS Local 278 I(4) 4 scalar 278 MDST Local 278 I(4) 4 scalar 278 MDSUP Local 279 I(4) 4 scalar MODMAP Local 293 I(4) 4 2 1 ALC MPI_COMM_MWAVE Local 285 I(4) 4 scalar MTAG0 Param 287 I(4) 4 scalar Page 24 Source Listing WMSETM 2014-09-16 16:47 Symbol Table wmmdatmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References MTAG1 Param 288 I(4) 4 scalar MTAG2 Param 289 I(4) 4 scalar MTAGB Param 286 I(4) 4 scalar NAVG Local 345 I(4) 4 1 1 PTR NBI2G Local 295 I(4) 4 2 1 ALC NMPERR Local 281 I(4) 4 scalar 281 NMPLOG Local 280 I(4) 4 scalar 280 NMPROC Local 279 I(4) 4 scalar 279 NMPSCR Local 280 I(4) 4 scalar 280 NMPTST Local 281 I(4) 4 scalar 281 NMPUPT Local 281 I(4) 4 scalar 281 NMVMAX Local 283 I(4) 4 scalar NRAVG Local 334 I(4) 4 1 1 PTR NRGRP Local 283 I(4) 4 scalar NRQBPG Local 309 I(4) 4 scalar NRQEQG Local 309 I(4) 4 scalar NRQHGG Local 309 I(4) 4 scalar NRQOUT Local 333 I(4) 4 scalar NRQOUT Local 344 I(4) 4 scalar NRUPTS Local 307 I(4) 4 scalar OUTDAT Local 336 I(4) 4 2 1 PTR OUTDAT Local 348 I(4) 4 2 1 PTR RESPEC Local 300 L(4) 4 2 1 ALC RIP Local 345 I(4) 4 2 1 PTR RTG Local 346 I(4) 4 2 1 PTR SBPI Local 325 R(4) 4 2 1 PTR SEQL Local 349 R(4) 4 3 1 PTR SHGH Local 337 R(4) 4 3 1 PTR SI1 Local 346 I(4) 4 1 1 PTR SI2 Local 347 I(4) 4 1 1 PTR SIP Local 347 I(4) 4 1 1 PTR SIS Local 346 I(4) 4 1 1 PTR SJS Local 346 I(4) 4 1 1 PTR STG Local 347 I(4) 4 1 1 PTR STIME Local 282 I(4) 4 1 2 TDATA Local 294 I(4) 4 2 1 ALC TMAX Local 293 I(4) 4 2 1 ALC TOUTP Local 294 I(4) 4 2 1 ALC TSTORE Local 326 R(4) 4 2 1 PTR TSTORE Local 338 R(4) 4 2 1 PTR TSTORE Local 350 R(4) 4 2 1 PTR TSYNC Local 293 I(4) 4 2 1 ALC WAVG Local 349 R(4) 4 2 1 PTR WGHT Local 349 R(4) 4 1 1 PTR WGTH Local 337 R(4) 4 2 1 PTR WMMDATMD Module 2 Page 25 Source Listing WMSETM 2014-09-16 16:47 Subprograms/Common Blocks wmmdatmd.f90 SUBPROGRAMS/COMMON BLOCKS Name Object Declared Type Bytes Dimen Elements Attributes References WMDIMD Subr 526 WMDIMM Subr 684 WMMDATMD Module 2 WMNDAT Subr 375 WMSETM Subr 820 655,792 COMPILER OPTIONS BEING USED -align nocommons -align nodcommons -align noqcommons -align records -align nosequence -align norec1byte -align norec2byte -align norec4byte -align norec8byte -align norec16byte -altparam -assume accuracy_sensitive -assume nobscc -assume nobuffered_io -assume byterecl -assume cc_omp -assume nocstring -assume nodummy_aliases -assume nofpe_summary -assume noieee_fpe_flags -assume nominus0 -assume noold_boz -assume old_unit_star -assume old_ldout_format -assume noold_logical_ldio -assume old_maxminloc -assume old_xor -assume protect_constants -assume noprotect_parens -assume split_common -assume source_include -assume nostd_intent_in -assume nostd_mod_proc_name -assume norealloc_lhs -assume underscore -assume no2underscores -auto no -auto_scalar no -bintext -ccdefault default -check noargs -check noarg_temp_created -check nobounds -check noformat -check nooutput_conversion -check nooverflow -check nopointers -check power -check noshape -check nounderflow -check nouninitialized -coarray-num-procs 0 no -coarray-config-file -convert big_endian -cross_reference -D __INTEL_COMPILER=1210 -D __unix__ -D __unix -D __linux__ -D __linux -D __gnu_linux__ -D unix -D linux -D __ELF__ -D __x86_64 -D __x86_64__ -D _MT -D __INTEL_COMPILER_BUILD_DATE=20120612 -D _OPENMP=201107 -D __pentium4 -D __pentium4__ -D __tune_pentium4__ -D __SSE2__ -D __SSE3__ -D __SSSE3__ -D __SSE4_1__ -D __SSE4_2__ -D __SSE__ -D __MMX__ -D __AVX__ -double_size 64 no -d_lines no -Qdyncom -error_limit 30 no -f66 no -f77rtl Page 26 Source Listing WMSETM 2014-09-16 16:47 wmmdatmd.f90 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 : wmmdatmd.lst -o filename : none COMPILER: Intel(R) Fortran 12.1-2100