Page 1 Source Listing 2014-09-16 16:58 multiwavegrid.f90 multiwavegrid.f90(2769): remark #8290: Recommended relationship between field width 'W' and the number of fractional digits 'D' i... 2986 FORMAT ( ' &REF1 REFCOAST =',F5.2,', REFFREQ =',F5.2,', REFSLOPE =',F5.3, & ----------------------------------------------------------------------------^ multiwavegrid.f90(2748): remark #8290: Recommended relationship between field width 'W' and the number of fractional digits 'D' i... 4981 FORMAT ( ' Coefficient for shorelines :',F6.4) -------------------------------------------------------^ multiwavegrid.f90(2711): remark #8290: Recommended relationship between field width 'W' and the number of fractional digits 'D' i... ', WDTHCG = ',F4.2,', WDTHTH = ',F4.2,' /') -------------------------------------^ multiwavegrid.f90(2711): remark #8290: Recommended relationship between field width 'W' and the number of fractional digits 'D' i... ', WDTHCG = ',F4.2,', WDTHTH = ',F4.2,' /') --------------------------------------------------------^ multiwavegrid.f90(2668): remark #8290: Recommended relationship between field width 'W' and the number of fractional digits 'D' i... ' WNMEANP =',F4.2,', FXPM3 =', F4.2, & ------------------------------------^ multiwavegrid.f90(2668): remark #8290: Recommended relationship between field width 'W' and the number of fractional digits 'D' i... ' WNMEANP =',F4.2,', FXPM3 =', F4.2, & ------------------------------------------------------^ multiwavegrid.f90(2669): remark #8290: Recommended relationship between field width 'W' and the number of fractional digits 'D' i... ',FXFM3 =',F4.2,','/ & ---------------------------^ multiwavegrid.f90(2675): remark #8290: Recommended relationship between field width 'W' and the number of fractional digits 'D' i... ', SDSCOS =',F3.1,', SDSDTH =',F5.1,', '/ & -----------------------------^ multiwavegrid.f90(2590): remark #8290: Recommended relationship between field width 'W' and the number of fractional digits 'D' i... ' Frequency range (Hz) :',F9.4,'-',F6.4/ & ----------------------------------------------------------------^ Page 2 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 1 !/ ------------------------------------------------------------------- / 2 PROGRAM WAVEGRID 3 !/ 4 !/ +-----------------------------------+ 5 !/ | WAVEWATCH III NOAA/NCEP | 6 !/ | H. L. Tolman | 7 !/ | J. H. Alves | 8 !/ | F. Ardhuin | 9 !/ | FORTRAN 90 | 10 !/ | Last update : 13-Nov-2013 | 11 !/ +-----------------------------------+ 12 !/ 13 !/ 14-Jan-1999 : Final FORTRAN 77 ( version 1.18 ) 14 !/ 27-Jan-2000 : Upgrade to FORTRAN 90 ( version 2.00 ) 15 !/ Add UNFORMATTED bath file option. 16 !/ Read options with namelists. 17 !/ 14-Feb-2000 : Adding exact Snl ( version 2.01 ) 18 !/ 04-May-2000 : Non central source term int. ( version 2.03 ) 19 !/ 24-Jan-2001 : Flat grid option. ( version 2.06 ) 20 !/ 02-Feb-2001 : Xnl version 3.0 ( version 2.07 ) 21 !/ 09-Feb-2001 : Third propagation scheme added. ( version 2.08 ) 22 !/ 27-Feb-2001 : O0 output switch added. ( version 2.08 ) 23 !/ 16-Mar-2001 : Fourth propagation scheme added. ( version 2.09 ) 24 !/ 29-Mar-2001 : Sub-grid island treatment. ( version 2.10 ) 25 !/ 20-Jul-2001 : Clean up. ( version 2.11 ) 26 !/ 12-Sep-2001 : Clean up. ( version 2.13 ) 27 !/ 09-Nov-2001 : Clean up. ( version 2.14 ) 28 !/ 11-Jan-2002 : Sub-grid ice treatment. ( version 2.15 ) 29 !/ 17-Jan-2002 : DSII bug fix. ( version 2.16 ) 30 !/ 09-May-2002 : Switch clean up. ( version 2.21 ) 31 !/ 26-Nov-2002 : Adding first version of NL-3/4. ( version 3.01 ) 32 !/ Removed before distribution in 3.12. 33 !/ 26-Dec-2002 : Relaxing CFL time step. ( version 3.02 ) 34 !/ 01-Aug-2003 : Modify GSE correction for moving gr.( version 3.03 ) 35 !/ Add offset option for first direction. 36 !/ 24-Dec-2004 : Multiple grid version. ( version 3.06 ) 37 !/ 04-May-2005 : Allow active points at edge. ( version 3.07 ) 38 !/ 07-Jul-2005 : Add MAPST2 and map processing. ( version 3.07 ) 39 !/ 09-Nov-2005 : Remove soft boundary options. ( version 3.08 ) 40 !/ 23-Jun-2006 : Adding alternative source terms. ( version 3.09 ) 41 !/ Module W3SLN1MD, dummy for others. 42 !/ 28-Jun-2006 : Adding file name preamble. ( version 3.09 ) 43 !/ 28-Oct-2006 : Spectral partitioning. ( version 3.09 ) 44 !/ 09-Jan-2007 : Correct edges of read mask. ( version 3.10 ) 45 !/ 26-Mar-2007 : Add to spectral partitioning. ( version 3.11 ) 46 !/ 14-Apr-2007 : Add Miche style limiter. ( version 3.11 ) 47 !/ ( J. H. Alves ) 48 !/ 25-Apr-2007 : Battjes-Janssen Sdb added. ( version 3.11 ) 49 !/ ( J. H. Alves ) 50 !/ 18-Sep-2007 : Adding WAM4 physics option. ( version 3.13 ) 51 !/ ( F. Ardhuin ) 52 !/ 09-Oct-2007 : Adding bottom scattering SBS1. ( version 3.13 ) 53 !/ ( F. Ardhuin ) 54 !/ 22-Feb-2008 : Initialize TRNX-Y properly. ( version 3.13 ) 55 !/ 29-May-2009 : Preparing distribution version. ( version 3.14 ) 56 !/ 23-Jul-2009 : Modification of ST3 namelist . ( version 3.14-SHOM ) 57 !/ 31-Mar-2010 : Addition of shoreline reflection ( version 3.14-IFREMER ) Page 3 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 58 !/ 29-Jun-2010 : Adding Stokes drift profile output ( version 3.14-IFREMER ) 59 !/ 30-Aug-2010 : Adding ST4 option ( version 3.14-IFREMER ) 60 61 !/ 30-Oct-2009 : Implement run-time grid selection. ( version 3.14 ) 62 !/ (W. E. Rogers & T. J. Campbell, NRL) 63 !/ 30-Oct-2009 : Implement curvilinear grid type. ( version 3.14 ) 64 !/ (W. E. Rogers & T. J. Campbell, NRL) 65 !/ 29-Oct-2010 : Clean up of unstructured grids ( version 3.14.4 ) 66 !/ (A. Roland and F. Ardhuin) 67 !/ 06-Dec-2010 : Change from GLOBAL (logical) to ICLOSE (integer) to 68 !/ specify index closure for a grid. Change GLOBAL 69 !/ input in multiwavegrid.inp to CSTRG. ( version 3.14 ) 70 !/ (T. J. Campbell, NRL) 71 !/ 25-Jun-2011 : Adding movable bed friction ( version 4.01 ) 72 !/ 16-Sep-2011 : Clean up. ( version 4.05 ) 73 !/ 01-Dec-2011 : New namelist for reflection ( version 4.05 ) 74 !/ 01-Mar-2012 : Bug correction for NLPROP in ST2 ( version 4.05 ) 75 !/ 12-Jun-2012 : Add /RTD option or rotated grid. ( version 4.06 ) 76 !/ (Jian-Guo Li, UK Met Office) 77 !/ 13-Jul-2012 : Move data structures GMD (SNL3) and nonlinear 78 !/ filter (SNLS) from 3.15 (HLT). ( version 4.07 ) 79 !/ 02-Sep-2012 : Clean up of reflection and UG grids ( version 4.08 ) 80 !/ 12-Dec-2012 : Adding SMC grid. JG_Li ( version 4.08 ) 81 !/ 19-Dec-2012 : Add NOSWLL as namelist variable. ( version 4.OF ) 82 !/ 05-Mar-2013 : Adjusted default roughness for rocks( version 4.09 ) 83 !/ 01-Jun-2013 : Adding namelist for spectral output ( version 4.10 ) 84 !/ 12-Sep-2013 : Adding Arctic part for SMC grid. ( version 4.11 ) 85 !/ 01-Nov-2013 : Changed UG list name to UNST ( version 4.12 ) 86 !/ 11-Nov-2013 : SMC and rotated grid incorporated in the main 87 !/ trunk ( version 4.13 ) 88 !/ 13-Nov-2013 : Moved out reflection to W3UPDTMD ( version 4.12 ) 89 !/ 90 !/ Copyright 2009-2013 National Weather Service (NWS), 91 !/ National Oceanic and Atmospheric Administration. All rights 92 !/ reserved. WAVEWATCH III is a trademark of the NWS. 93 !/ No unauthorized use without permission. 94 !/ 95 ! 1. Purpose : 96 ! 97 ! "Grid" preprocessing program, which writes a model definition 98 ! file containing the model parameter settigs and grid data. 99 ! 100 ! 2. Method : 101 ! 102 ! Information is read from the file multiwavegrid.inp (NDSI), or 103 ! preset in this program. A model definition file mod_def.ww3 is 104 ! then produced by W3IOGR. Note that the name of the model 105 ! definition file is set in W3IOGR. 106 ! 107 ! 3. Parameters : 108 ! 109 ! Local parameters. 110 ! ---------------------------------------------------------------- 111 ! NDSI Int. Input unit number ("multiwavegrid.inp"). 112 ! NDSS Int. Scratch file. 113 ! NDSG Int. Grid unit ( may be NDSI ) 114 ! NDSTR Int. Sub-grid unit ( may be NDSI or NDSG ) Page 4 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 115 ! VSC Real Scale factor. 116 ! VOF Real Add offset. 117 ! ZLIM Real Limiting bottom depth, used to define land. 118 ! IDLA Int. Layout indicator used by INA2R. 119 ! IDFM Int. Id. FORMAT indicator. 120 ! RFORM C*16 Id. FORMAT. 121 ! FNAME C*60 File name with bottom level data. 122 ! FROM C*4 Test string for open, 'UNIT' or 'FILE' 123 ! ---------------------------------------------------------------- 124 ! 125 ! 4. Subroutines used : 126 ! 127 ! Name Type Module Description 128 ! ---------------------------------------------------------------- 129 ! W3NMOD Subr. W3GDATMD Set number of model. 130 ! W3SETG Subr. Id. Point to selected model. 131 ! W3DIMS Subr. Id. Set array dims for a spectral grid. 132 ! W3DIMX Subr. Id. Set array dims for a spatial grid. 133 ! W3GRMP Subr. W3GSRUMD Compute bilinear interpolation for point 134 ! W3NOUT Subr. W3ODATMD Set number of model for output. 135 ! W3SETO Subr. Id. Point to selected model for output. 136 ! W3DMO5 Subr. Id. Set array dims for output type 5. 137 ! ITRACE Subr. W3SERVMD Subroutine tracing initialization. 138 ! STRACE Subr. Id. Subroutine tracing. 139 ! NEXTLN Subr. Id. Get next line from input filw 140 ! EXTCDE Subr. Id. Abort program as graceful as possible. 141 ! DISTAB Subr. W3DISPMD Make tables for solution of the 142 ! dispersion relation. 143 ! READNL Subr. Internal Read namelist. 144 ! INAR2R Subr. W3ARRYMD Read in an REAL array. 145 ! PRTBLK Subr. Id. Print plot of array. 146 ! W3IOGR Subr. W3IOGRMD Reading/writing model definition file. 147 ! ---------------------------------------------------------------- 148 ! 149 ! 5. Called by : 150 ! 151 ! None, stand-alone program. 152 ! 153 ! 6. Error messages : 154 ! 155 ! 7. Remarks : 156 ! 157 ! Physical grid : 158 ! ----------------- 159 ! 160 ! The physical grid is defined by a grid counter IX defining the 161 ! discrete longitude and IY defining the discrete latitude as shown 162 ! below. For mathemathical convenience, these grid axes will 163 ! generally be denoted as the X and Y axes. Two-diemsnional arrays 164 ! describing parameters on this grid are given as A(IY,IX). 165 ! 166 ! IY=NY 167 ! ^ | | | | | | ^ N 168 ! | |------|------|------|------|------|---- | 169 ! | | :: | 25 | 26 | 27 | 28 | --|-- 170 ! |------|------|------|------|------|---- | 171 ! IY=3 | :: | :: | 9 | 10 | 11 | | Page 5 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 172 ! |------|------|------|------|------|---- 173 ! IY=2 | :: | 1 | 2 | :: | 3 | 174 ! |------|------|------|------|------|---- 175 ! IY=1 | :: | :: | :: | :: | :: | 176 ! +------+------+------+------+------+---- 177 ! IX=1 IX=2 IX=3 IX=4 IX=5 ---> IX=NX 178 ! 179 ! :: is a land point. 180 ! 181 ! To reduce memory usage of the model, spectra are stored for sea 182 ! points only, in a one-dimensional grid with the length NSEA. This 183 ! grid is called the storage grid. The definition of the counter 184 ! in the storage grid is graphically depicted above. To transfer 185 ! data between the two grids, the maps MAPFS and MAPSF are 186 ! determined. MAPFS gives the counter of the storage grid ISEA 187 ! for every physical grid point (IY,IX), such that 188 ! 189 ! MAPFS(IY,IX) = ISEA 190 ! 191 ! ISEA = 0 corresponds to land points. The map MAPFS gives the grid 192 ! counters (IY,IX) for a given storage point ISEA. 193 ! 194 ! MAPSF(ISEA,1) = IX 195 ! MAPSF(ISEA,2) = IY 196 ! MAPSF(ISEA,3) = IY+(IX-1)*NY ( filled during reading ) 197 ! 198 ! Finally, a status maps MAPSTA and MAPST2 are determined, where 199 ! the status indicator ISTAT = MAPSTA(IY,IX) determines the type 200 ! of the grid point. 201 ! 202 ! ISTAT Means 203 ! --------------------------------------------------- 204 ! 0 Point excluded from grid. 205 ! (-)1 Sea point 206 ! (-)2 "Active" boundary point (data prescribed) 207 ! 208 ! For ISTAT=0, the secondary status counter ISTA2 is defined as 209 ! 210 ! ISTA2 Means 211 ! --------------------------------------------------- 212 ! 0 Land point. 213 ! 1 Point excluded from grid. 214 ! 215 ! Negative values of ISTAT identify points that are temporarily 216 ! taken out of the computation. For these points ISTA2 are 217 ! defined per bit 218 ! 219 ! BIT Means 220 ! --------------------------------------------------- 221 ! 1 Ice flag (1 = ice coverage) 222 ! 2 Dry flag (1 = dry point with depth 0) 223 ! 3 Inferred land in multi-grid model. 224 ! 4 Masking in multi-grid model. 225 ! 5 land point flag for relocatable grid. 226 ! 227 ! Thus ISTA2=0 for ISTAT<0 is in error, ISTA2=1 means ice cover, 228 ! ISTA2=3 means ice on dry point, etc. Page 6 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 229 ! 230 ! Spectral grid : 231 ! ----------------- 232 ! 233 ! In the spectral grid (and in physical space in general), 234 ! the cartesian convention for directions is used, i.e., the 235 ! direction 0 corresponds to waves propagating in the positive 236 ! X-direction and 90 degr. corresponds to waves propagating in 237 ! the positive Y-direction. Similar definitions are used for the 238 ! internal description of winds and currents. Output can obviously 239 ! be transformed according to any preferred convention. 240 ! 241 ! ITH=NTH 242 ! ^ | | | | | 243 ! | |------|------|------|------|---- 244 ! | | | | | | TH(3) = DTH*2. 245 ! |------|------|------|------|---- 246 ! ITH=2 | | | | | TH(2) = DTH 247 ! |------|------|------|------|---- 248 ! ITH=1 | | | | | TH(1) = 0. 249 ! +------+------+------+------+---- 250 ! IK=1 IK=2 IK=3 IK=4 ---> IK=NK 251 ! 252 ! The spectral grid consists of NK wavenumbers. The first 253 ! wavenumber IK=1 corresponds to the longest wave. The wavenumber 254 ! grid varies in space, as given by an invariant relative freq. 255 ! grid and the local depth. The spectral grid furthermore contains 256 ! NTH directions, equally spaced over a full circle. the first 257 ! direction corresponds to the direction 0, etc. 258 ! 259 !!Li 260 ! Spherical Multiple-Cell (SMC) grid 261 ! ----------------------------------- 262 !!Li 263 ! SMC grid is a multi-resolution grid using cells of multiple times 264 ! of each other. It is similar to the lat-lon grid using rectangular 265 ! cells but only cells at sea points are retained. All land points 266 ! have been removed from the model. At high latitudes, cells are 267 ! merged longitudinally to relax the CFL resctiction on time steps. 268 ! Near coastlines, cells are divided into quarters in a few steps so 269 ! that high resolution is achieved to refine coastlines and resolve 270 ! small islands. At present, three tiers of quarter cells are used. 271 ! For locating purpose, a usual x-y counter is setup by the smallest 272 ! cell size and starting from the south-west corner of the usual 273 ! rectuangular domain. Each sea cell is then given a pair of x-y 274 ! index, plus a pair of increments. These four index are stored in 275 ! the cell array IJKCel(NCel, 5), each row holds i, j, di, dj, ndps 276 ! where ndps is an integer depth in metre. If precision higher than 277 ! a metre is required, it may use other unit (cm for instance) with a 278 ! conversion factor. 279 ! 280 ! For transport calculation, two face arrays, IJKUFc(NUFc, 7) and 281 ! IJKVFc(NVFc,8), are also created to store the neighbouring cell 282 ! sequential numbers and the face location and size. The 3 arrays 283 ! are calculated outside the wave model and input from text files. 284 ! 285 ! Boundary condition is added for SMC grid so that it can be used for Page 7 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 286 ! regional model as well. Most of the original boundary settings 287 ! are reclaimed as long as the boundary condition file is provided 288 ! by a lat-lon grid WW3 model, which will set the interpolation 289 ! parameters in the boundary condition file. The NBI number is 290 ! reset with an input value because the NX-Y double loop overcount 291 ! the boundary cells for merged cells in the SMC grid. ISBPI 292 ! boundary cell mapping array is fine as MAPFS uses duplicated cell 293 ! number in any merged cell. From there, all original NBI loops are 294 ! reusable. 295 ! 296 ! The whole Arctic can be included in the SMC grid if another option 297 ! ARC is activated along with the SMC option. ARC option appends 298 ! the polar Arctic part above 86N to the existing SMC grid and uses 299 ! a map-east reference direction for this extra polar region. 300 ! Because the map-east direction changes with latitude and longitude 301 ! the wave spectra defined to the map-east direction could not mixed 302 ! up with the conventional spectra defined to the local east 303 ! direction. A rotation sub is provided for convertion from one to 304 ! another. Propagation part will be calculated together, including 305 ! the boundary cells. The boundary cells are then updated by 306 ! assigning the corresponding inner cells to them after conversion. 307 ! Boundary cells are duplicated northmost 4 rows of the global part 308 ! and they can be excluded for source term and output if required. 309 ! For convenience, Arctic cellls are all base level cells and are 310 ! appended to the end of the global cells. If refined cells were 311 ! used in the Arctic part, it would not be kept all together, making 312 ! the sub-loops much more complicated. 313 ! 314 ! For more information about the SMC grid, please refer to 315 ! Li, J.G. (2012) Propagation of Ocean Surface Waves on a Spherical 316 ! Multiple-Cell Grid. J. Comput. Phys., 231, 8262-8277. online at 317 ! http://dx.doi.org/10.1016/j.jcp.2012.08.007 318 ! 319 !Li 320 ! 321 322 ! 8. Structure : 323 ! 324 ! ---------------------------------------------------------------- 325 ! 1. Set up grid storage structure. 326 ! ( W3NMOD , W3NOUT , W3SETG , W3SETO ) 327 ! 2.a I-O setup. 328 ! b Print heading(s). 329 ! 3. Prepare int. table for dispersion relation ( DISTAB ) 330 ! 4. Read and process input file up to spectrum. 331 ! a Get comment character 332 ! b Name of grid 333 ! c Define spectrum ( W3DIMS ) 334 ! 5. Set-up discrete spectrum. 335 ! a Directions. 336 ! b Frequency for spectrum. 337 ! 6. Read and process input file up to numerical parameters 338 ! a Set model flags and time steps 339 ! b Set / select source term package 340 ! c Pre-process namelists. 341 ! d Wind input source term. 342 ! e Nonlinear interactions. Page 8 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 343 ! f Whitecapping term. 344 ! g Bottom friction source term. 345 ! h Depth indiced breaking source term. 346 ! i Triad interaction source term. 347 ! j Bottom scattering source term. 348 ! k Undefined source term. 349 ! l Set / select propagaton scheme 350 ! m Parameters for propagation scheme. 351 ! n Set misc. parameters (ice, seeding, ...) 352 ! o End of namelist processing 353 ! p Set various other variables 354 ! 7. Read and prepare grid. 355 ! a Layout of grid 356 ! b Storage of grid of grid 357 ! c Read bottom depths 358 ! d Set up temp map 359 ! e Subgrid information 360 ! 1 Info from input file 361 ! 2 Open file and check if necessary 362 ! 3 Read the data 363 ! 4 Limit 364 ! 8 Finalize status maps 365 ! a Determine where to get the data 366 ! Get data in parts from input file 367 ! ---------------------------------------------------- 368 ! b Read and update TMPSTA with bound. and excl. points. 369 ! c Finalize excluded points 370 ! ---------------------------------------------------- 371 ! Read data from file 372 ! ---------------------------------------------------- 373 ! d Read data from file 374 ! ---------------------------------------------------- 375 ! e Get NSEA and other counters 376 ! f Set up all maps ( W3DIMX ) 377 ! 9. Prepare output boundary points. 378 ! a Read 379 ! b Update 380 ! 10. Write model definition file. ( W3IOGR ) 381 ! ---------------------------------------------------------------- 382 ! 383 ! 9. Switches : 384 ! 385 ! !/FLX1 Stresses according to Wu (1980). 386 ! !/FLX2 Stresses according to T&C (1996). 387 ! !/FLX3 Stresses according to T&C (1996) with cap on Cd. 388 ! !/FLX4 Stresses according to Hwang (2011). 389 ! 390 ! !/LN0 No linear input source term. 391 ! !/SEED 'Seeding' of lowest frequency for sufficiently strong 392 ! winds. Proxi for linear input. 393 ! !/LN1 Cavaleri and Melanotte-Rizzoli with Tolman filter. 394 ! !/LNX Open slot. 395 ! 396 ! !/ST0 No source terms included (input/dissipation) 397 ! !/ST1 WAM-3 physics package. 398 ! !/ST2 Tolman and Chalikov (1996) physics package. 399 ! !/ST3 WAM 4+ source terms from P.A.E.M. Janssen and J-R. Bidlot Page 9 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 400 ! !/ST4 Ardhuin et al. (2009,2010) input and dissipation 401 ! !/ST6 BYDRZ source term package featuring Donelan et al. 402 ! (2006) input and Babanin et al. (2001,2010) dissipation. 403 ! !/STX Open slot. 404 ! 405 ! !/NL0 No nonlinear interactions. 406 ! !/NL1 Discrete interaction approximation (DIA). 407 ! !/NL2 Exact interactions (WRT). 408 ! !/NL3 Generalized Multiple DIA (GMD). 409 ! !/NLX Open slot. 410 ! !/NLS Snl based HF filter. 411 ! 412 ! !/BT0 No bottom friction included. 413 ! !/BT1 JONSWAP bottom friction package. 414 ! !/BT4 SHOWEX bottom friction using movable bed roughness 415 ! (Tolman 1994, Ardhuin & al. 2003) 416 ! !/BTX Open slot. 417 ! 418 ! !/IC1 Sink term for interaction with ice (uniform k_i) 419 ! !/IC2 Sink term for interaction with ice (Liu et al. method) 420 ! (Liu et al. 1991: JGR 96 (C3), 4605-4621) 421 ! (Liu and Mollo 1988: JPO 18 1720-1712) 422 ! !/IC3 Sink term for interaction with ice (Wang and Shen method) 423 ! (Wang and Shen JGR 2010) 424 ! 425 ! !/DB0 No depth-induced breaking included. 426 ! !/DB1 Battjes-Janssen depth-limited breaking. 427 ! !/DBX Open slot. 428 ! !/MLIM Mich-style limiter. 429 ! 430 ! !/TR0 No triad interactions included. 431 ! !/TRX Open slot. 432 ! 433 ! !/BS0 No bottom scattering included. 434 ! !/BS1 Routines from F. Ardhuin. 435 ! !/BSX Open slot. 436 ! 437 ! !/XX0 No unclasified source term included. 438 ! !/XXX Open slot. 439 ! 440 ! !/PR1 First order propagation scheme. 441 ! !/PR2 QUICKEST scheme with ULTIMATE limite and diffusion 442 ! correction for swell dispersion. 443 ! !/PR3 Averaging ULTIMATE QUICKEST scheme. 444 ! 445 ! !/SMC UNO2 scheme on Spherical Multiple-Cell grid. 446 ! !/ARC Append the Arctic part to the SMC grid. 447 ! 448 ! !/MGG GSE correction for moving grid. 449 ! 450 ! !/S Enable subroutine tracing. 451 ! !/T Enable test output. 452 ! !/T0 Enable test output tables for boundary output. 453 ! 454 ! !/O0 Print equivalent namelist setting to std out. 455 ! !/O1 Print tables with boundary points as part of output. 456 ! !/O2 Print MAPSTA as part of output. Page 10 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 457 ! !/O2a Print land-sea mask in mask.ww3. 458 ! !/O2b Print obstruction data. 459 ! !/O2c Print extended status map. 460 ! 461 ! 10. Source code : 462 ! 463 !/ ------------------------------------------------------------------- / 464 USE CONSTANTS 465 !/ 466 USE W3TRIAMD 467 USE W3GSRUMD, ONLY: W3GRMP 468 USE W3ODATMD, ONLY: W3NOUT, W3SETO, W3DMO5 469 USE W3IOGRMD, ONLY: W3IOGR 470 USE W3SERVMD, ONLY: ITRACE, NEXTLN, EXTCDE 471 USE W3ARRYMD, ONLY: INA2R, INA2I 472 USE W3DISPMD, ONLY: DISTAB 473 !/ 474 USE W3GDATMD 475 USE W3ODATMD, ONLY: NDSE, NDST, NDSO 476 USE W3ODATMD, ONLY: NBI, NBI2, NFBPO, NBO, NBO2, FLBPI, FLBPO, & 477 IPBPO, ISBPO, XBPO, YBPO, RDBPO, FNMPRE, & 478 IHMAX, HSPMIN, WSMULT, WSCUT, FLCOMB, NOSWLL 479 ! 480 IMPLICIT NONE 481 !/ 482 !/ ------------------------------------------------------------------- / 483 !/ Local parameters 484 !/ 485 INTEGER, PARAMETER :: NFL = 6 486 INTEGER :: NDSI, NDSI2, NDSS, NDSM, NDSG, NDSTR,& 487 IERR, NDSTRC, NTRACE, ITH, IK, ITH0, & 488 ISP, IYN(NFL), NRLIN, NRSRCE, NRNL, & 489 NRBT, NRDB, NRTR, NRBS, NRXX, NRPROP,& 490 IDLA, IDFM, IX0, IXN, IX, IY, ISEA, & 491 IDX, IXO, IDY, IYO, IBA, NBA, ILOOP, & 492 IFL, NBOTOT, NPO, IP, IX1, IX2, IY1, & 493 IY2, J, JJ, IXR(4), IYR(4), ISEAI(4),& 494 IST, NKI, NTHI,NRIC, & 495 IDFT, NSTAT, NBT, NLAND, NOSW 496 INTEGER :: IBI, IP0, IPN, IPH, IPI 497 INTEGER :: NCOL = 78 498 ! INTEGER :: NCOL = 130 499 ! INTEGER :: NCOL = 180 500 ! 501 INTEGER :: NMAP, IMAP 502 INTEGER :: NMAPB, IMAPB 503 INTEGER, ALLOCATABLE :: TMPSTA(:,:), TMPMAP(:,:), READMP(:,:) 504 REAL :: RXFR, RFR1, SIGMA, SXFR, FACHF, & 505 VSC, VOF, & 506 ZLIM, X, Y, XP, XO0, YO0, DXO, DYO, & 507 XO, YO, RD(4), RDTOT, & 508 FACTOR, RTH0, FMICHE, RWNDC 509 CHARACTER(LEN=4) :: GSTRG, CSTRG 510 ! 511 ! Variables used to allow spectral output on full grid 512 ! 513 INTEGER :: P2SF,I1P2SF,I2P2SF Page 11 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 514 INTEGER :: E3D,I1E3D,I2E3D 515 INTEGER :: US3D,I1US3D,I2US3D, & 516 TH1MF, I1TH1M, I2TH1M, & 517 STH1MF, I1STH1M, I2STH1M, & 518 TH2MF, I1TH2M, I2TH2M, & 519 STH2MF, I1STH2M, I2STH2M 520 ! 521 REAL :: CLIN, RFPM, RFHF 522 REAL :: NLPROP 523 REAL :: GAMMA 524 ! 525 REAL, ALLOCATABLE :: XGRDIN(:,:), YGRDIN(:,:) 526 REAL, ALLOCATABLE :: ZBIN(:,:), OBSX(:,:), OBSY(:,:) 527 REAL, ALLOCATABLE :: REFD(:,:), REFD2(:,:), REFS(:,:) 528 LOGICAL :: FLLIN, FLINDS, FLNL, FLBT, FLDB, & 529 FLTR, FLBS, FLXX, FLPROP, FLREF, & 530 FIRST, CONNCT, FLNEW, INGRID,FLIC 531 LOGICAL :: FLTC96 = .FALSE. 532 LOGICAL :: FLNMLO = .FALSE. 533 LOGICAL :: FLSTB2 = .FALSE. 534 LOGICAL :: FLST4 = .FALSE. 535 LOGICAL :: FLST6 = .FALSE. 536 537 !!Li Add a logical variable to shelter regular grid lines from SMC grid. 538 LOGICAL :: RGLGRD = .TRUE. 539 !!Li 540 LOGICAL :: FLAGICESOURCE 541 REAL :: FACBERG, REFSLOPE 542 ! 543 CHARACTER :: COMSTR*1, PNAME*30, RFORM*16, & 544 FROM*4, FNAME*60, TNAME*60, LINE*80, & 545 STATUS*20,FNAME2*60, PNAME2*40 546 CHARACTER(LEN=6) :: YESXNO(2) 547 !/ ------------------------------------------------------------------- / 548 !/ Namelists 549 !/ 550 INTEGER :: FLAGTR, IHM 551 REAL :: CFLTM, CICE0, CICEN, PMOVE, XFILT, & 552 LICE, XSEED, XR, HSPM, WSM, WSC 553 REAL(8) :: GSHIFT ! see notes in WMGHGH 554 LOGICAL :: FLC 555 ! 556 INTEGER :: SWELLFPAR,SDSISO,SDSBRFDF 557 REAL :: ZWND, ALPHA0, Z0MAX, BETAMAX, SINTHP,& 558 ZALP, Z0RAT, TAUWSHELTER, & 559 SWELLF, SWELLF2,SWELLF3,SWELLF4, SWELLF5,& 560 SWELLF6, SWELLF7, FXPM3, FXFM3, & 561 WNMEANPTAIL, WNMEANP, STXFTF, STXFTWN 562 REAL :: STXFTFTAIL, SDSC1, SDSC2, SDSCUM, & 563 SDSC4, SDSC5, SDSC6, WHITECAPWIDTH, SDSBR, SDSP, & 564 SDSCOS, SDSDTH, SDSBCK, SDSABK, SDSPBK, & 565 SDSBINT, SDSHCK, & 566 SDSBR2, SDSBRF1, SDSBRF2, & 567 SDSBM0, SDSBM1, SDSBM2, SDSBM3, SDSBM4 568 ! 569 REAL :: LAMBDA, KDCONV, KDMIN, & 570 SNLCS1, SNLCS2, SNLCS3 Page 12 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 571 REAL :: BJALFA, BJGAM 572 LOGICAL :: BJFLAG 573 ! 574 REAL :: WDTHCG, WDTHTH 575 REAL :: UGOBCDEPTH 576 LOGICAL :: UGOBCAUTO, EXPFSN, EXPFSPSI, & 577 EXPFSFCT,IMPFSNIMP 578 ! 579 NAMELIST /SLN1/ CLIN, RFPM, RFHF 580 NAMELIST /SIN4/ ZWND, ALPHA0, Z0MAX, BETAMAX, SINTHP, ZALP, & 581 TAUWSHELTER, SWELLFPAR, SWELLF, & 582 SWELLF2, SWELLF3, SWELLF4, SWELLF5, SWELLF6, & 583 SWELLF7, Z0RAT 584 NAMELIST /SNL1/ LAMBDA, NLPROP, KDCONV, KDMIN, & 585 SNLCS1, SNLCS2, SNLCS3 586 NAMELIST /SDS4/ SDSC1, WNMEANP, FXPM3, FXFM3, & 587 SDSC2, SDSCUM, SDSC4, & 588 SDSC5, SDSC6, SDSBR, SDSBR2, SDSP, SDSISO, & 589 SDSBCK, SDSABK, SDSPBK, SDSBINT, SDSHCK, & 590 SDSDTH, SDSCOS, SDSBRF1, SDSBRF2, SDSBRFDF, & 591 SDSBM0, SDSBM1, SDSBM2, SDSBM3, SDSBM4, WHITECAPWIDTH 592 NAMELIST /SBT1/ GAMMA 593 NAMELIST /SDB1/ BJALFA, BJGAM, BJFLAG 594 ! 595 NAMELIST /PRO3/ CFLTM, WDTHCG, WDTHTH 596 NAMELIST /UNST/ UGOBCAUTO, UGOBCDEPTH, & 597 EXPFSN, EXPFSPSI, EXPFSFCT, & 598 IMPFSNIMP 599 NAMELIST /MISC/ CICE0, CICEN, LICE, XSEED, FLAGTR, XP, XR, & 600 XFILT, PMOVE, IHM, HSPM, WSM, WSC, FLC, FMICHE, & 601 RWNDC, FLAGICESOURCE,FACBERG,NOSW, GSHIFT 602 NAMELIST /OUTS/ P2SF, I1P2SF, I2P2SF, & 603 US3D, I1US3D, I2US3D, & 604 E3D, I1E3D, I2E3D, & 605 TH1MF, I1TH1M, I2TH1M, & 606 STH1MF, I1STH1M, I2STH1M, & 607 TH2MF, I1TH2M, I2TH2M, & 608 STH2MF, I1STH2M, I2STH2M 609 !/ 610 !/ ------------------------------------------------------------------- / 611 !/ 612 DATA YESXNO / 'YES/--' , '---/NO' / 613 FLNMLO = .TRUE. 614 ! 615 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 616 ! 1. Set up grid storage structure 617 ! 618 CALL W3NMOD ( 1, 6, 6 ) 619 CALL W3SETG ( 1, 6, 6 ) 620 CALL W3NOUT ( 6, 6 ) 621 CALL W3SETO ( 1, 6, 6 ) 622 ! 623 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 624 ! 2. IO set-up. 625 ! 626 NDSI = 10 627 NDSS = 90 Page 13 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 628 NDSM = 20 629 ! 630 J = LEN_TRIM(FNMPRE) 631 OPEN (NDSI,FILE=FNMPRE(:J)//'multiwavegrid.inp',STATUS='OLD', & 632 ERR=2000,IOSTAT=IERR) 633 ! 634 NDSTRC = 6 635 NTRACE = 10 636 CALL ITRACE ( NDSTRC, NTRACE ) 637 ! 638 WRITE (NDSO,900) 639 ! 640 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 641 ! 3.a Interpolation table for dispersion relation. 642 ! 643 CALL DISTAB 644 ! 645 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 646 ! 3.b Table for friction factors 647 ! 648 CALL TABU_FW 649 ! 650 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 651 ! 4 Read and process input file up to spectrum 652 ! 4.a Get comment character 653 ! 654 REWIND (NDSI) 655 READ (NDSI,'(A)',END=2001,ERR=2002) COMSTR 656 IF (COMSTR.EQ.' ') COMSTR = '$' 657 WRITE (NDSO,901) COMSTR 658 ! 659 ! 4.b Name of grid : 660 ! 661 CALL NEXTLN ( COMSTR , NDSI , NDSE ) 662 READ (NDSI,*,END=2001,ERR=2002) GNAME 663 WRITE (NDSO,902) GNAME 664 ! 665 ! 4.c Define spectrum 666 ! 667 CALL NEXTLN ( COMSTR , NDSI , NDSE ) 668 READ (NDSI,*,END=2001,ERR=2002) RXFR, RFR1, NKI, NTHI, RTH0 669 NK = NKI 670 NK2 = NKI + 2 671 NTH = NTHI 672 NSPEC = NK * NTH 673 XFR = MAX ( RXFR , 1.00001 ) 674 FR1 = MAX ( RFR1 , 1.E-6 ) 675 DTH = TPI / REAL(NTH) 676 RTH0 = MAX ( -0.5 , MIN ( 0.5 , RTH0 ) ) 677 WRITE (NDSO,903) NTH, DTH*RADE 678 WRITE (NDSO,904) 360./REAL(NTH)*RTH0 679 WRITE (NDSO,905) NK, FR1, FR1*XFR**(NK-1), XFR 680 ! 681 CALL W3DIMS ( 1, NK, NTH, NDSE, NDST ) 682 ! 683 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 684 ! 5. Initialize spectral parameters. Page 14 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 685 ! 5.a Directions : 686 ! 687 DO ITH=1, NTH 688 TH (ITH) = DTH * ( RTH0 + REAL(ITH-1) ) 689 ESIN(ITH) = SIN ( TH(ITH) ) 690 ECOS(ITH) = COS ( TH(ITH) ) 691 IF ( ABS(ESIN(ITH)) .LT. 1.E-5 ) THEN 692 ESIN(ITH) = 0. 693 IF ( ECOS(ITH) .GT. 0.5 ) THEN 694 ECOS(ITH) = 1. 695 ELSE 696 ECOS(ITH) = -1. 697 END IF 698 END IF 699 IF ( ABS(ECOS(ITH)) .LT. 1.E-5 ) THEN 700 ECOS(ITH) = 0. 701 IF ( ESIN(ITH) .GT. 0.5 ) THEN 702 ESIN(ITH) = 1. 703 ELSE 704 ESIN(ITH) = -1. 705 END IF 706 END IF 707 ES2 (ITH) = ESIN(ITH)**2 708 EC2 (ITH) = ECOS(ITH)**2 709 ESC (ITH) = ESIN(ITH)*ECOS(ITH) 710 END DO 711 ! 712 DO IK=2, NK+1 713 ITH0 = (IK-1)*NTH 714 DO ITH=1, NTH 715 ESIN(ITH0+ITH) = ESIN(ITH) 716 ECOS(ITH0+ITH) = ECOS(ITH) 717 ES2 (ITH0+ITH) = ES2 (ITH) 718 EC2 (ITH0+ITH) = EC2 (ITH) 719 ESC (ITH0+ITH) = ESC (ITH) 720 END DO 721 END DO 722 ! 723 ! b Frequencies : 724 ! 725 SIGMA = FR1 * TPI / XFR**2 726 SXFR = 0.5 * (XFR-1./XFR) 727 ! 728 DO IK=0, NK+1 729 SIGMA = SIGMA * XFR 730 SIG (IK) = SIGMA 731 DSIP(IK) = SIGMA * SXFR 732 END DO 733 ! 734 DSII( 1) = 0.5 * SIG( 1) * (XFR-1.) 735 DO IK=2, NK-1 736 DSII(IK) = DSIP(IK) 737 END DO 738 DSII(NK) = 0.5 * SIG(NK) * (XFR-1.) / XFR 739 ! 740 DO IK=1, NK 741 DDEN(IK) = DTH * DSII(IK) * SIG(IK) Page 15 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 742 END DO 743 ! 744 DO ISP=1, NSPEC 745 IK = 1 + (ISP-1)/NTH 746 SIG2 (ISP) = SIG (IK) 747 DDEN2(ISP) = DDEN(IK) 748 END DO 749 ! 750 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 751 ! 6 Read and process input file up to numerical parameters 752 ! 6.a Set model flags and time steps 753 ! 754 WRITE (NDSO,910) 755 CALL NEXTLN ( COMSTR , NDSI , NDSE ) 756 READ (NDSI,*,END=2001,ERR=2002) & 757 FLDRY, FLCX, FLCY, FLCTH, FLCK, FLSOU 758 ! 759 IYN = 2 760 IF ( FLDRY ) IYN(1) = 1 761 IF ( FLCX ) IYN(2) = 1 762 IF ( FLCY ) IYN(3) = 1 763 IF ( FLCTH ) IYN(4) = 1 764 IF ( FLCK ) IYN(5) = 1 765 IF ( FLSOU ) IYN(6) = 1 766 ! 767 WRITE (NDSO,911) (YESXNO(IYN(IFL)),IFL=1,NFL) 768 ! 769 IF ( .NOT. (FLCX.OR.FLCY.OR.FLCK.OR.FLCTH.OR.FLSOU) ) THEN 770 WRITE (NDSE,1010) 771 CALL EXTCDE ( 2 ) 772 END IF 773 ! 774 CALL NEXTLN ( COMSTR , NDSI , NDSE ) 775 READ (NDSI,*,END=2001,ERR=2002) DTMAX, DTCFL, DTCFLI, DTMIN 776 777 DTMAX = MAX ( 1. , DTMAX ) 778 ! 779 ! Commented to allow very high resolution zooms 780 ! 781 ! DTCFL = MAX ( 1. , DTCFL ) 782 ! DTCFLI = MIN ( DTMAX , MAX ( 1. , DTCFLI ) ) 783 DTMIN = MIN ( DTMAX , MAX ( 0. , DTMIN ) ) 784 WRITE (NDSO,912) DTMAX, DTCFL, DTCFLI, DTMIN 785 ! 786 ! 6.b Set / select source term package 787 ! 788 NRLIN = 0 789 NRSRCE = 0 790 NRNL = 0 791 NRBT = 0 792 NRIC = 0 793 NRDB = 0 794 NRTR = 0 795 NRBS = 0 796 NRXX = 0 797 ! 798 FLLIN = .TRUE. Page 16 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 799 FLINDS = .TRUE. 800 FLNL = .TRUE. 801 FLBT = .TRUE. 802 FLIC = .FALSE. 803 FLDB = .TRUE. 804 FLTR = .TRUE. 805 FLBS = .TRUE. 806 FLREF = .FALSE. 807 FLXX = .TRUE. 808 ! 809 NRLIN = NRLIN + 1 810 ! 811 NRSRCE = NRSRCE + 1 812 FLST4 = .TRUE. 813 ! 814 NRNL = NRNL + 1 815 ! 816 NRBT = NRBT + 1 817 ! 818 NRDB = NRDB + 1 819 ! 820 NRTR = NRTR + 1 821 FLTR = .FALSE. 822 ! 823 NRBS = NRBS + 1 824 FLBS = .FALSE. 825 ! 826 NRXX = NRXX + 1 827 FLXX = .FALSE. 828 ! 829 IF ( .NOT.FLLIN .AND. .NOT.FLINDS .AND. .NOT.FLNL .AND. & 830 .NOT.FLBT .AND. .NOT.FLIC .AND. .NOT.FLDB .AND. & 831 .NOT.FLTR .AND. .NOT.FLBS .AND. .NOT.FLXX .AND. & 832 .NOT.FLREF .AND. FLSOU ) THEN 833 WRITE (NDSE,1020) 834 CALL EXTCDE ( 10 ) 835 END IF 836 ! 837 IF ( ( FLLIN .OR. FLINDS .OR. FLNL .OR. FLBT .OR. FLDB .OR. & 838 FLTR .OR. FLBS .OR. FLREF .OR. FLXX .OR. FLIC ) & 839 .AND. .NOT.FLSOU ) THEN 840 WRITE (NDSE,1021) 841 END IF 842 ! 843 IF ( NRLIN .NE. 1 ) THEN 844 WRITE (NDSE,1022) NRLIN 845 CALL EXTCDE ( 11 ) 846 END IF 847 ! 848 IF ( NRSRCE .NE. 1 ) THEN 849 WRITE (NDSE,1023) NRSRCE 850 CALL EXTCDE ( 12 ) 851 END IF 852 ! 853 IF ( NRNL .NE. 1 ) THEN 854 WRITE (NDSE,1024) NRNL 855 CALL EXTCDE ( 13 ) Page 17 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 856 END IF 857 ! 858 IF ( NRBT .NE. 1 ) THEN 859 WRITE (NDSE,1025) NRBT 860 CALL EXTCDE ( 14 ) 861 END IF 862 ! 863 IF ( NRDB .NE. 1 ) THEN 864 WRITE (NDSE,1026) NRDB 865 CALL EXTCDE ( 15 ) 866 END IF 867 ! 868 IF ( NRTR .NE. 1 ) THEN 869 WRITE (NDSE,1027) NRTR 870 CALL EXTCDE ( 16 ) 871 END IF 872 ! 873 IF ( NRBS .NE. 1 ) THEN 874 WRITE (NDSE,1028) NRBS 875 CALL EXTCDE ( 17 ) 876 END IF 877 ! 878 IF ( NRXX .NE. 1 ) THEN 879 WRITE (NDSE,1029) NRXX 880 CALL EXTCDE ( 18 ) 881 END IF 882 ! 883 IF ( NRIC .GT. 1 ) THEN 884 WRITE (NDSE,1034) NRIC 885 CALL EXTCDE ( 19 ) 886 END IF 887 ! 888 ! 6.c Pre-process namelists into scratch file 889 ! 890 WRITE (NDSO,915) 891 J = LEN_TRIM(FNMPRE) 892 OPEN (NDSS,FILE=FNMPRE(:J)//'multiwavegrid.scratch',FORM='FORMATTED') 893 ! 894 DO 895 CALL NEXTLN ( COMSTR , NDSI , NDSE ) 896 READ (NDSI,'(A)',END=2001,ERR=2002) LINE 897 IF ( LINE(1:16) .EQ. 'END OF NAMELISTS' ) THEN 898 EXIT 899 ELSE 900 WRITE (NDSS,'(A)') LINE 901 ENDIF 902 END DO 903 ! 904 WRITE (NDSO,916) 905 ! 906 ! 6.d Define Sin. 907 ! 6.d.1 Stresses 908 ! 909 ! 6.d.2 Linear input 910 ! 911 CLIN = 80. 912 RFPM = 1. Page 18 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 913 RFHF = 0.5 914 ! 915 CALL READNL ( NDSS, 'SLN1', STATUS ) 916 WRITE (NDSO,820) STATUS 917 CLIN = MAX (0.,CLIN) 918 RFPM = MAX (0.,RFPM) 919 RFHF = MAX(0.,MIN (1.,RFHF)) 920 WRITE (NDSO,821) CLIN, RFPM, RFHF 921 SLNC1 = CLIN * (DAIR/DWAT)**2 / GRAV**2 922 FSPM = RFPM 923 FSHF = RFHF 924 ! 925 ! 6.d.3 Exponential input 926 ! 927 ZWND = 10. 928 ALPHA0 = 0.0095 929 Z0MAX = 0.0 930 Z0RAT = 0.04 931 BETAMAX = 1.52 932 SINTHP = 2. 933 SWELLF = 0.8 934 SWELLFPAR = 1 935 SWELLF2 = -0.018 936 SWELLF3 = 0.015 937 SWELLF4 = 1.E5 938 SWELLF5 = 1.2 939 SWELLF6 = 0. 940 SWELLF7 = 230000. 941 TAUWSHELTER = 1. 942 ZALP = 0.006 943 ! 944 CALL READNL ( NDSS, 'SIN4', STATUS ) 945 WRITE (NDSO,920) STATUS 946 WRITE (NDSO,921) ALPHA0, BETAMAX, SINTHP, Z0MAX, ZALP, ZWND, TAUWSHELTER, & 947 SWELLFPAR, SWELLF, SWELLF2, SWELLF3, SWELLF4, SWELLF5, & 948 SWELLF6, SWELLF7, Z0RAT 949 ZZWND = ZWND 950 AALPHA = ALPHA0 951 BBETA = BETAMAX 952 SSINTHP = SINTHP 953 ZZ0MAX = Z0MAX 954 ZZ0RAT = Z0RAT 955 ZZALP = ZALP 956 TTAUWSHELTER = TAUWSHELTER 957 SSWELLF(1) = SWELLF 958 SSWELLF(2) = SWELLF2 959 SSWELLF(3) = SWELLF3 960 SSWELLF(4) = SWELLF4 961 SSWELLF(5) = SWELLF5 962 SSWELLF(6) = SWELLF6 963 SSWELLF(7) = SWELLF7 964 SSWELLFPAR = SWELLFPAR 965 ! 966 ! 6.e Define Snl. 967 ! 968 LAMBDA = 0.25 969 IF ( FLTC96 ) THEN Page 19 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 970 NLPROP = 1.00E7 971 ELSE IF ( FLST4 ) THEN 972 NLPROP = 2.50E7 973 ELSE IF ( FLST6 ) THEN 974 NLPROP = 3.00E7 975 ELSE 976 NLPROP = 2.78E7 977 END IF 978 ! 979 KDCONV = 0.75 980 KDMIN = 0.50 981 SNLCS1 = 5.5 982 SNLCS2 = 0.833 983 SNLCS3 = -1.25 984 ! 985 CALL READNL ( NDSS, 'SNL1', STATUS ) 986 WRITE (NDSO,922) STATUS 987 WRITE (NDSO,923) LAMBDA, NLPROP, KDCONV, KDMIN, & 988 SNLCS1, SNLCS2, SNLCS3 989 SNLC1 = NLPROP / GRAV**4 990 LAM = LAMBDA 991 KDCON = KDCONV 992 KDMN = KDMIN 993 SNLS1 = SNLCS1 994 SNLS2 = SNLCS2 995 SNLS3 = SNLCS3 996 ! 997 FACHF = 5. 998 ! 999 !!/NL3 MSC = MAX ( 0. , MIN ( 8. , MSC ) ) ! Disabled HLT ca. 2009 1000 ! 1001 ! 6.f Define Sds. 1002 ! 1003 SDSC1 = 0.0 1004 WNMEANP = 0.5 !! This is Bidlot et al. 2005, Otherwise WAM4 uses -0.5 1005 FXFM3 = 9.9 1006 FXPM3 = 4. 1007 WNMEANPTAIL = -0.5 1008 SDSC2 = -2.2E-5 1009 SDSCUM = -0.40344 1010 SDSC4 = 1. 1011 SDSC5 = 0. 1012 SDSC6 = 0.3 1013 SDSBR = 0.90E-3 1014 SDSBRFDF = 0 1015 SDSBRF1 = 0.5 1016 SDSBRF2 = 0. 1017 SDSP = 2. ! this is now fixed in w3sds4 1018 SDSDTH = 80. 1019 SDSCOS = 2. 1020 SDSISO = 2 1021 SDSBM0 = 1. 1022 SDSBM1 = 0. 1023 SDSBM2 = 0. 1024 SDSBM3 = 0. 1025 SDSBM4 = 0. 1026 SDSBR2 = 0.8 Page 20 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 1027 SDSBCK = 0. 1028 SDSABK = 1.5 1029 SDSPBK = 4. 1030 SDSBINT = 0.3 1031 SDSHCK = 1. 1032 WHITECAPWIDTH = 0.3 1033 ! 1034 CALL READNL ( NDSS, 'SDS4', STATUS ) 1035 WRITE (NDSO,924) STATUS 1036 WRITE (NDSO,925) SDSC2, SDSBCK, SDSCUM, WNMEANP 1037 SSDSC(1) = SDSC1 1038 SSDSC(2) = SDSC2 1039 SSDSC(3) = SDSCUM 1040 SSDSC(4) = SDSC4 1041 SSDSC(5) = SDSC5 1042 SSDSC(6) = SDSC6 1043 SSDSC(7) = WHITECAPWIDTH 1044 SSDSBR = SDSBR 1045 SSDSBRF1 = SDSBRF1 1046 SSDSBRF2 = SDSBRF2 1047 SSDSBRFDF= SDSBRFDF 1048 SSDSBM(0) = SDSBM0 1049 SSDSBM(1) = SDSBM1 1050 SSDSBM(2) = SDSBM2 1051 SSDSBM(3) = SDSBM3 1052 SSDSBM(4) = SDSBM4 1053 SSDSBR2 = SDSBR2 1054 SSDSISO = SDSISO 1055 SSDSCOS = SDSCOS 1056 SSDSP = SDSP 1057 SSDSDTH = SDSDTH 1058 WWNMEANP = WNMEANP 1059 FFXFM = FXFM3 * TPI 1060 FFXPM = FXPM3 * GRAV / 28. 1061 WWNMEANPTAIL = WNMEANPTAIL 1062 SSDSBCK = SDSBCK 1063 SSDSABK = SDSABK 1064 SSDSPBK = SDSPBK 1065 SSDSBINT = SDSBINT 1066 SSDSHCK = SDSHCK 1067 ! 1068 ! 6.g Define Sbt. 1069 ! 1070 GAMMA = -0.067 1071 ! 1072 CALL READNL ( NDSS, 'SBT1', STATUS ) 1073 WRITE (NDSO,926) STATUS 1074 WRITE (NDSO,927) GAMMA 1075 SBTC1 = 2. * GAMMA / GRAV 1076 ! 1077 ! 6.h Define Sdb. 1078 ! 1079 BJALFA = 1. 1080 BJGAM = 0.73 1081 BJFLAG = .TRUE. 1082 ! 1083 CALL READNL ( NDSS, 'SDB1', STATUS ) Page 21 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 1084 WRITE (NDSO,928) STATUS 1085 BJALFA = MAX ( 0. , BJALFA ) 1086 BJGAM = MAX ( 0. , BJGAM ) 1087 WRITE (NDSO,929) BJALFA, BJGAM 1088 IF ( BJFLAG ) THEN 1089 WRITE (NDSO,*) ' Using Hmax/d ratio only.' 1090 ELSE 1091 WRITE (NDSO,*) & 1092 ' Using Hmax/d in Miche style formulation.' 1093 END IF 1094 WRITE (NDSO,*) 1095 SDBC1 = 0.25 * BJALFA 1096 SDBC2 = BJGAM 1097 FDONLY = BJFLAG 1098 ! 1099 ! 6.i Define Str. 1100 ! 1101 WRITE (NDSO,930) 1102 ! 1103 ! 6.j Define Sbs. 1104 ! 1105 WRITE (NDSO,932) 1106 ! 1107 ! 6.k Define Sxx and Sic. 1108 ! 1109 ! !/XX0 WRITE (NDSO,934) 1110 ! 1111 1112 ! 1113 ! 6.l Read unstructured data 1114 ! initialisation of logical related to unstructured grid 1115 UGOBCAUTO = .TRUE. 1116 UGOBCDEPTH= -10. 1117 EXPFSN = .TRUE. 1118 EXPFSPSI = .FALSE. 1119 EXPFSFCT = .FALSE. 1120 IMPFSNIMP = .FALSE. 1121 ! read data from the unstructured devoted namelist 1122 CALL READNL ( NDSS, 'UNST', STATUS ) 1123 ! 1124 ! 6.m Select propagation scheme 1125 ! 1126 WRITE (NDSO,950) 1127 ! 1128 NRPROP = 0 1129 FLPROP = .TRUE. 1130 PNAME = ' ' 1131 PNAME = '3rd order UQ' 1132 J = LEN_TRIM(PNAME) 1133 PNAME = PNAME(1:J)//' + GSE averaging ' 1134 NRPROP = NRPROP + 1 1135 ! 1136 IF ( (FLCX.OR.FLCY.OR.FLCTH.OR.FLCK) .AND. .NOT. FLPROP ) THEN 1137 WRITE (NDSE,1030) 1138 CALL EXTCDE ( 20 ) 1139 END IF 1140 ! Page 22 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 1141 IF ( .NOT.(FLCX.OR.FLCY.OR.FLCTH.OR.FLCK) .AND. FLPROP ) THEN 1142 WRITE (NDSE,1031) 1143 END IF 1144 ! 1145 IF ( NRPROP.EQ.0 ) THEN 1146 WRITE (NDSE,1032) 1147 CALL EXTCDE ( 21 ) 1148 END IF 1149 ! 1150 IF ( NRPROP .GT. 1 ) THEN 1151 WRITE (NDSE,1033) NRPROP 1152 CALL EXTCDE ( 22 ) 1153 END IF 1154 ! 1155 ! 6.m Parameters for propagation scheme 1156 ! 1157 WRITE (NDSO,951) PNAME 1158 ! 1159 CFLTM = 0.7 1160 ! 1161 WDTHCG = 1.5 1162 WDTHTH = WDTHCG 1163 ! 1164 CALL READNL ( NDSS, 'PRO3', STATUS ) 1165 IF ( STATUS(18:18) .EQ. ':' ) STATUS(18:18) = ' ' 1166 IF (GTYPE.NE.UNGTYPE) THEN 1167 WRITE (NDSO,952) STATUS(1:18) 1168 CFLTM = MAX ( 0. , CFLTM ) 1169 WRITE (NDSO,953) CFLTM, WDTHCG 1170 IF ( WDTHCG*(XFR-1.) .GT. 1. ) WRITE (NDSO,955) 1./(XFR-1.) 1171 WRITE (NDSO,954) WDTHTH 1172 IF ( WDTHTH*DTH .GT. 1. ) WRITE (NDSO,955) 1./DTH 1173 WRITE (NDSO,*) 1174 ENDIF 1175 WDCG = WDTHCG 1176 WDTH = WDTHTH 1177 ! 1178 CTMAX = CFLTM 1179 ! 1180 ! 6.n Set miscellaneaous parameters (ice, seeding, numerics ... ) 1181 ! 1182 CICE0 = 0.5 1183 CICEN = 0.5 1184 LICE = 0. 1185 GSHIFT = 0.0D0 1186 PMOVE = 0.5 1187 XSEED = 1. 1188 FLAGTR = 0 1189 XP = 0.15 1190 XR = 0.10 1191 XFILT = 0.05 1192 IHM = 100 1193 HSPM = 0.05 1194 WSM = 1.7 1195 WSC = 0.333 1196 FLC = .TRUE. 1197 NOSW = 5 Page 23 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 1198 NOSW = 2 1199 FMICHE = 1.6 1200 RWNDC = 1. 1201 ! Variables for 3D array output 1202 E3D=0 1203 I1E3D=1 1204 I2E3D=NK 1205 P2SF = 0 1206 I1P2SF = 1 1207 I2P2SF = 15 1208 US3D=0 1209 I1US3D=1 1210 I2US3D=NK 1211 TH1MF=0 1212 I1TH1M=1 1213 I2TH1M=NK 1214 STH1MF=0 1215 I1STH1M=1 1216 I2STH1M=NK 1217 TH2MF=0 1218 I1TH2M=1 1219 I2TH2M=NK 1220 STH2MF=0 1221 I1STH2M=1 1222 I2STH2M=NK 1223 ! 1224 FLAGICESOURCE=.FALSE. 1225 FACBERG=1. 1226 ! 1227 CALL READNL ( NDSS, 'MISC', STATUS ) 1228 WRITE (NDSO,960) STATUS 1229 ! 1230 CALL READNL ( NDSS, 'OUTS', STATUS ) 1231 WRITE (NDSO,4970) STATUS 1232 ! 1233 ! output of frequency spectra, th1m ... 1234 ! 1235 E3DF(1,1) = E3D 1236 E3DF(2,1) = MIN(MAX(1,I1E3D),NK) 1237 E3DF(3,1) = MIN(MAX(1,I2E3D),NK) 1238 E3DF(1,2) = TH1MF 1239 E3DF(2,2) = MIN(MAX(1,I1TH1M),NK) 1240 E3DF(3,2) = MIN(MAX(1,I2TH1M),NK) 1241 E3DF(1,3) = STH1MF 1242 E3DF(2,3) = MIN(MAX(1,I1STH1M),NK) 1243 E3DF(3,3) = MIN(MAX(1,I2STH1M),NK) 1244 E3DF(1,2) = TH2MF 1245 E3DF(2,2) = MIN(MAX(1,I1TH2M),NK) 1246 E3DF(3,2) = MIN(MAX(1,I2TH2M),NK) 1247 E3DF(1,3) = STH2MF 1248 E3DF(2,3) = MIN(MAX(1,I1STH2M),NK) 1249 E3DF(3,3) = MIN(MAX(1,I2STH2M),NK) 1250 ! 1251 ! output of microseismic source spectra 1252 ! 1253 P2MSF(1) = P2SF 1254 P2MSF(2) = MIN(MAX(1,I1P2SF),NK) Page 24 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 1255 P2MSF(3) = MIN(MAX(1,I2P2SF),NK) 1256 ! 1257 ! output of Stokes drift profile 1258 ! 1259 US3DF(1) = US3D 1260 US3DF(2) = I1US3D 1261 US3DF(3) = I2US3D 1262 US3DF(2) = MAX( 1 , MIN(NK,US3DF(2)) ) 1263 US3DF(3) = MAX( 1 , MIN(NK,US3DF(3)) ) 1264 WRITE (NDSO,4971) P2MSF(1:3) 1265 WRITE (NDSO,4972) US3DF(1:3) 1266 WRITE (NDSO,4973) E3DF(1:3,1) 1267 ! 1268 CALL READNL ( NDSS, 'MISC', STATUS ) 1269 WRITE (NDSO,960) STATUS 1270 ! 1271 IF ( FLAGTR.LT.0 .OR. FLAGTR.GT.6 ) FLAGTR = 0 1272 CICEN = MIN ( 1. , MAX ( 0. , CICEN ) ) 1273 FICEN = CICEN 1274 GRIDSHIFT=GSHIFT 1275 CICE0 = MIN ( CICEN , MAX ( 0. , CICE0 ) ) 1276 FICE0 = CICE0 1277 FICEL = LICE 1278 PMOVE = MAX ( 0. , PMOVE ) 1279 PFMOVE = PMOVE 1280 ! 1281 ! Notes: Presently, if we select CICE0.ne.CICEN requires an obstruction 1282 ! grid, that is initialized with zeros as default. 1283 IF ( FLAGTR .LT. 3 ) THEN 1284 CICE0 = CICEN 1285 FICE0 = CICE0 1286 IF (STATUS=='(user def. values) :') WRITE (NDSO,2961) 1287 END IF 1288 IF ( CICE0.EQ.CICEN .AND. FLAGTR.GE.3 ) FLAGTR = FLAGTR - 2 1289 WRITE (NDSO,961) CICE0, CICEN 1290 ! 1291 FACSD = XSEED 1292 ! 1293 XP = MAX ( 1.E-6 , XP ) 1294 XR = MAX ( 1.E-6 , XR ) 1295 XREL = XR 1296 XFILT = MAX ( 0. , XFILT ) 1297 XFLT = XFILT 1298 WRITE (NDSO,965) XP, XR, XFILT 1299 FACP = XP / PI * 0.62E-3 * TPI**4 / GRAV**2 1300 ! 1301 IHMAX = MAX ( 50, IHM ) 1302 HSPMIN = MAX ( 0.0001 , HSPM ) 1303 WSMULT = MAX ( 1. , WSM ) 1304 WSCUT = MIN ( 1.0001 , MAX ( 0. , WSC ) ) 1305 FLCOMB = FLC 1306 NOSWLL = MAX ( 1 , NOSW ) 1307 IF ( FLCOMB ) THEN 1308 J = 1 1309 ELSE 1310 J = 2 1311 END IF Page 25 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 1312 WRITE (NDSO,966) IHMAX, HSPMIN, WSMULT, WSCUT, YESXNO(J), NOSWLL 1313 !! WRITE (NDSO,966) IHMAX, HSPMIN, WSMULT, WSCUT, YESXNO(J) 1314 ! 1315 FHMAX = MAX ( 0.01 , FMICHE ) 1316 J = 2 1317 J = 1 1318 WRITE (NDSO,967) FHMAX, FHMAX/SQRT(2.), YESXNO(J) 1319 IF ( FHMAX.LT.0.50 .AND. J.EQ.1 ) WRITE (NDST,968) 1320 WRITE (NDSO,*) 1321 ! 1322 ! 6.o End of namelist processing 1323 ! 1324 CLOSE (NDSS,STATUS='DELETE') 1325 ! 1326 IF ( FLNMLO ) THEN 1327 WRITE (NDSO,917) 1328 WRITE (NDSO,2820) CLIN, RFPM, RFHF 1329 IF ( .NOT. FLSTB2 ) THEN 1330 ELSE 1331 END IF 1332 ! 1333 WRITE (NDSO,2920) ZWND, ALPHA0, Z0MAX, BETAMAX, SINTHP, ZALP, & 1334 TAUWSHELTER, SWELLFPAR, SWELLF, SWELLF2, SWELLF3, SWELLF4, & 1335 SWELLF5, SWELLF6, SWELLF7, Z0RAT 1336 WRITE (NDSO,2922) LAMBDA, NLPROP, KDCONV, KDMIN, & 1337 SNLCS1, SNLCS2, SNLCS3 1338 WRITE (NDSO,2924) SDSC1, SDSC2, SDSCUM, SDSC4, SDSC5, SDSC6, & 1339 WNMEANP, FXPM3, FXFM3, & 1340 SDSBINT, SDSBCK, SDSABK, SDSPBK, SDSHCK, & 1341 SDSBR, SDSBR2, SDSP, SDSISO, SDSCOS, SDSDTH, & 1342 SDSBRF1, SDSBRF2, SDSBRFDF, & 1343 SDSBM0, SDSBM1, SDSBM2, SDSBM3, SDSBM4, WHITECAPWIDTH 1344 WRITE (NDSO,2926) GAMMA 1345 IF ( BJFLAG ) THEN 1346 WRITE (NDSO,2928) BJALFA, BJGAM, '.TRUE.' 1347 ELSE 1348 WRITE (NDSO,2928) BJALFA, BJGAM, '.FALSE.' 1349 END IF 1350 WRITE (NDSO,2953) CFLTM, WDTHCG, WDTHTH 1351 ! 1352 WRITE (NDSO,2956) UGOBCAUTO, UGOBCDEPTH, & 1353 EXPFSN, EXPFSPSI, EXPFSFCT, IMPFSNIMP 1354 ! 1355 WRITE (NDSO,2976) P2SF, I1P2SF, I2P2SF, US3D, I1US3D, I2US3D, & 1356 E3D, I1E3D, I2E3D, & 1357 TH1MF, I1TH1M, I2TH1M, & 1358 STH1MF, I1STH1M, I2STH1M, & 1359 TH2MF, I1TH2M, I2TH2M, & 1360 STH2MF, I1STH2M, I2STH2M 1361 ! 1362 IF ( FLCOMB ) THEN 1363 WRITE (NDSO,2966) CICE0, CICEN, LICE, PMOVE, XSEED, FLAGTR, & 1364 XP, XR, XFILT, IHMAX, HSPMIN, WSMULT, & 1365 WSCUT, '.TRUE.', NOSWLL, FHMAX, & 1366 RWNDC, FLAGICESOURCE, FACBERG,GSHIFT 1367 ELSE 1368 WRITE (NDSO,2966) CICE0, CICEN, LICE, PMOVE, XSEED, FLAGTR, & Page 26 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 1369 XP, XR, XFILT, IHMAX, HSPMIN, WSMULT, & 1370 WSCUT, '.FALSE.', NOSWLL, FHMAX, & 1371 RWNDC, FLAGICESOURCE, FACBERG, GSHIFT 1372 1373 END IF 1374 ! 1375 WRITE (NDSO,918) 1376 END IF 1377 ! 1378 ! 6.p Set various other values ... 1379 ! ... Tail in integration --> scale factor for A to E conv 1380 ! 1381 FTE = 0.25 * SIG(NK) * DTH * SIG(NK) 1382 FTF = 0.20 * DTH * SIG(NK) 1383 FTWN = 0.20 * SQRT(GRAV) * DTH * SIG(NK) 1384 FTTR = FTF 1385 FTWL = GRAV / 6. / SIG(NK) * DTH * SIG(NK) 1386 ! 1387 STXFTF = 1/(FACHF-1.-WNMEANP*2) & 1388 * SIG(NK)**(2+WNMEANP*2) * DTH 1389 STXFTFTAIL = 1/(FACHF-1.-WNMEANPTAIL*2) & 1390 * SIG(NK)**(2+WNMEANPTAIL*2) * DTH 1391 STXFTWN = 1/(FACHF-1.-WNMEANP*2) * SIG(NK)**(2) & 1392 * (SIG(NK)/SQRT(GRAV))**(WNMEANP*2) * DTH 1393 SSTXFTF = STXFTF 1394 SSTXFTFTAIL = STXFTFTAIL 1395 SSTXFTWN = STXFTWN 1396 ! 1397 ! ... High frequency cut-off 1398 ! 1399 FXFM = 2.5 1400 FXPM = 4.0 1401 FXPM = FXPM * GRAV / 28. 1402 FXFM = FXFM * TPI 1403 XFC = 3.0 1404 ! 1405 FACTI1 = 1. / LOG(XFR) 1406 FACTI2 = 1. - LOG(TPI*FR1) * FACTI1 1407 ! 1408 ! Setting of FACHF moved to before !/NL2 set-up for consistency 1409 ! 1410 FACHFA = XFR**(-FACHF-2) 1411 FACHFE = XFR**(-FACHF) 1412 ! 1413 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1414 ! 7. Read and prepare the grid. 1415 ! 7.a Type of grid 1416 ! 1417 CALL NEXTLN ( COMSTR , NDSI , NDSE ) 1418 READ (NDSI,*,END=2001,ERR=2002) GSTRG, FLAGLL, CSTRG 1419 SELECT CASE (TRIM(GSTRG)) 1420 CASE ('RECT') 1421 GTYPE = RLGTYPE 1422 WRITE (NDSO,3000) 'rectilinear' 1423 CASE ('CURV') 1424 GTYPE = CLGTYPE 1425 WRITE (NDSO,3000) 'curvilinear' Page 27 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 1426 CASE ('UNST') 1427 GTYPE = UNGTYPE 1428 WRITE (NDSO,3000) 'unstructured' 1429 CASE DEFAULT 1430 WRITE (NDSE,1007) TRIM(GSTRG) 1431 CALL EXTCDE ( 25 ) 1432 END SELECT 1433 CALL NEXTLN ( COMSTR , NDSI , NDSE ) 1434 ! 1435 IF ( FLAGLL ) THEN 1436 FACTOR = 1. 1437 WRITE (NDSO,3001) 'spherical' 1438 ELSE 1439 FACTOR = 1.E-3 1440 WRITE (NDSO,3001) 'Cartesian' 1441 END IF 1442 ! 1443 ! Only process grid closure string for logically rectangular grids. 1444 ! Closure setting for unstructured grids is NONE. 1445 ICLOSE = ICLOSE_NONE 1446 IF ( GTYPE.NE.UNGTYPE ) THEN 1447 SELECT CASE (TRIM(CSTRG)) 1448 CASE ('NONE') 1449 ICLOSE = ICLOSE_NONE 1450 WRITE (NDSO,3002) 'none' 1451 CASE ('SMPL') 1452 ICLOSE = ICLOSE_SMPL 1453 WRITE (NDSO,3002) 'simple' 1454 CASE ('TRPL') 1455 WRITE (NDSE,'(/2A)') ' *** ERROR WW3_GRID: ', & 1456 'TRIPOLE GRID CLOSURE NOT IMPLEMENTED YET ***' 1457 CALL EXTCDE ( 999 ) 1458 ICLOSE = ICLOSE_TRPL 1459 WRITE (NDSO,3002) 'tripole' 1460 IF ( GTYPE.EQ.RLGTYPE ) THEN 1461 WRITE (NDSE,1009) 1462 CALL EXTCDE ( 25 ) 1463 END IF 1464 CASE DEFAULT 1465 ! Check for old style GLOBAL input 1466 SELECT CASE (TRIM(CSTRG)) 1467 CASE ('T','t','.TRU','.tru') 1468 ICLOSE = ICLOSE_SMPL 1469 WRITE (NDSO,3002) 'simple' 1470 WRITE (NDSE,1013) 1471 CASE ('F','f','.FAL','.fal') 1472 ICLOSE = ICLOSE_NONE 1473 WRITE (NDSO,3002) 'none' 1474 WRITE (NDSE,1013) 1475 CASE DEFAULT 1476 WRITE (NDSE,1012) TRIM(CSTRG) 1477 CALL EXTCDE ( 25 ) 1478 END SELECT 1479 END SELECT 1480 IF ( ICLOSE.NE.ICLOSE_NONE .AND. .NOT.FLAGLL ) THEN 1481 WRITE (NDSE,1008) 1482 CALL EXTCDE ( 25 ) Page 28 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 1483 END IF 1484 END IF !GTYPE.NE.UNGTYPE 1485 ! 1486 ! 7.b Size of grid 1487 ! 1488 IF ( GTYPE.NE.UNGTYPE) THEN 1489 CALL NEXTLN ( COMSTR , NDSI , NDSE ) 1490 READ (NDSI,*,END=2001,ERR=2002) NX, NY 1491 NX = MAX ( 3 , NX ) 1492 NY = MAX ( 3 , NY ) 1493 WRITE (NDSO,3003) NX, NY 1494 ! 1495 ELSE 1496 NY =1 1497 END IF 1498 ! 1499 ! Propagation specific to unstructured grids 1500 ! 1501 IF ( GTYPE.EQ.UNGTYPE) THEN 1502 IF (EXPFSN) THEN 1503 FSN = EXPFSN 1504 PNAME2 = 'N Explicit (Fluctuation Splitting) ' 1505 END IF 1506 IF (EXPFSPSI) THEN 1507 FSPSI = EXPFSPSI 1508 PNAME2 = 'PSI Explicit (Fluctuation Splitting) ' 1509 END IF 1510 IF (EXPFSFCT) THEN 1511 FSFCT = EXPFSFCT 1512 PNAME2 = ' Flux Corrected Transport Explicit' 1513 END IF 1514 IF (IMPFSNIMP) THEN 1515 FSNIMP = IMPFSNIMP 1516 PNAME2 = 'N Implicit (Fluctuation Splitting) ' 1517 END IF 1518 WRITE (NDSO,2951) PNAME2 1519 END IF 1520 ! 1521 ! 7.c Grid coordinates (branch here based on grid type) 1522 ! 1523 IF ( GTYPE.NE.UNGTYPE) ALLOCATE ( XGRDIN(NX,NY), YGRDIN(NX,NY) ) 1524 SELECT CASE ( GTYPE ) 1525 ! 1526 ! 7.c.1 Rectilinear grid 1527 ! 1528 CASE ( RLGTYPE ) 1529 ! 1530 CALL NEXTLN ( COMSTR , NDSI , NDSE ) 1531 READ (NDSI,*,END=2001,ERR=2002) SX, SY, VSC 1532 VSC = MAX ( 1.E-7 , VSC ) 1533 SX = SX / VSC 1534 SY = SY / VSC 1535 SX = MAX ( 1.E-7 , SX ) 1536 SY = MAX ( 1.E-7 , SY ) 1537 IF ( ICLOSE.EQ.ICLOSE_SMPL ) SX = 360. / REAL(NX) 1538 ! 1539 CALL NEXTLN ( COMSTR , NDSI , NDSE ) Page 29 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 1540 READ (NDSI,*,END=2001,ERR=2002) X0, Y0, VSC 1541 VSC = MAX ( 1.E-7 , VSC ) 1542 X0 = X0 / VSC 1543 Y0 = Y0 / VSC 1544 ! 1545 IF ( FLAGLL ) THEN 1546 WRITE (NDSO,3004) FACTOR*SX, FACTOR*SY, & 1547 FACTOR*X0, FACTOR*(X0+REAL(NX-1)*SX), & 1548 FACTOR*Y0, FACTOR*(Y0+REAL(NY-1)*SY) 1549 ELSE 1550 WRITE (NDSO,3005) FACTOR*SX, FACTOR*SY, & 1551 FACTOR*X0, FACTOR*(X0+REAL(NX-1)*SX), & 1552 FACTOR*Y0, FACTOR*(Y0+REAL(NY-1)*SY) 1553 END IF 1554 ! 1555 DO IY=1, NY 1556 DO IX=1, NX 1557 XGRDIN(IX,IY) = X0 + REAL(IX-1)*SX 1558 YGRDIN(IX,IY) = Y0 + REAL(IY-1)*SY 1559 END DO 1560 END DO 1561 ! 1562 ! 7.c.2 Curvilinear grid 1563 ! 1564 CASE ( CLGTYPE ) 1565 ! 1566 ! 7.c.2.a Process x-coordinates 1567 ! 1568 CALL NEXTLN ( COMSTR , NDSI , NDSE ) 1569 READ (NDSI,*,END=2001,ERR=2002) NDSG, VSC, VOF, & 1570 IDLA, IDFM, RFORM, FROM, FNAME 1571 ! 1572 IF (IDLA.LT.1 .OR. IDLA.GT.4) IDLA = 1 1573 IF (IDFM.LT.1 .OR. IDFM.GT.3) IDFM = 1 1574 ! 1575 WRITE (NDSO,3006) NDSG, VSC, VOF, IDLA, IDFM 1576 IF (IDFM.EQ.2) WRITE (NDSO,3008) TRIM(RFORM) 1577 IF (FROM.EQ.'NAME' .AND. NDSG.NE.NDSI) & 1578 WRITE (NDSO,3009) TRIM(FNAME) 1579 ! 1580 IF ( NDSG .EQ. NDSI ) THEN 1581 IF ( IDFM .EQ. 3 ) THEN 1582 WRITE (NDSE,1004) NDSG 1583 CALL EXTCDE (23) 1584 ELSE 1585 CALL NEXTLN ( COMSTR , NDSI , NDSE ) 1586 END IF 1587 ELSE 1588 IF ( IDFM .EQ. 3 ) THEN 1589 IF (FROM.EQ.'NAME') THEN 1590 OPEN (NDSG,FILE=TRIM(FNMPRE)//TRIM(FNAME),& 1591 FORM='UNFORMATTED', & 1592 STATUS='OLD',ERR=2000,IOSTAT=IERR) 1593 ELSE 1594 OPEN (NDSG, & 1595 FORM='UNFORMATTED', & 1596 STATUS='OLD',ERR=2000,IOSTAT=IERR) Page 30 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 1597 END IF 1598 ELSE 1599 IF (FROM.EQ.'NAME') THEN 1600 OPEN (NDSG,FILE=TRIM(FNMPRE)//TRIM(FNAME),& 1601 STATUS='OLD',ERR=2000,IOSTAT=IERR) 1602 ELSE 1603 OPEN (NDSG, & 1604 STATUS='OLD',ERR=2000,IOSTAT=IERR) 1605 END IF 1606 END IF !IDFM 1607 END IF !NDSG 1608 ! 1609 CALL INA2R ( XGRDIN, NX, NY, 1, NX, 1, NY, NDSG, NDST, NDSE, & 1610 IDFM, RFORM, IDLA, VSC, VOF) 1611 ! 1612 ! 7.c.2.b Process y-coordinates 1613 ! 1614 CALL NEXTLN ( COMSTR , NDSI , NDSE ) 1615 READ (NDSI,*,END=2001,ERR=2002) NDSG, VSC, VOF, & 1616 IDLA, IDFM, RFORM, FROM, FNAME 1617 ! 1618 IF (IDLA.LT.1 .OR. IDLA.GT.4) IDLA = 1 1619 IF (IDFM.LT.1 .OR. IDFM.GT.3) IDFM = 1 1620 ! 1621 WRITE (NDSO,3007) NDSG, VSC, VOF, IDLA, IDFM 1622 IF (IDFM.EQ.2) WRITE (NDSO,3008) TRIM(RFORM) 1623 IF (FROM.EQ.'NAME' .AND. NDSG.NE.NDSI) & 1624 WRITE (NDSO,3009) TRIM(FNAME) 1625 ! 1626 IF ( NDSG .EQ. NDSI ) THEN 1627 IF ( IDFM .EQ. 3 ) THEN 1628 WRITE (NDSE,1004) NDSG 1629 CALL EXTCDE (23) 1630 ELSE 1631 CALL NEXTLN ( COMSTR , NDSI , NDSE ) 1632 END IF 1633 ELSE 1634 IF ( IDFM .EQ. 3 ) THEN 1635 IF (FROM.EQ.'NAME') THEN 1636 OPEN (NDSG,FILE=TRIM(FNMPRE)//TRIM(FNAME),& 1637 FORM='UNFORMATTED', & 1638 STATUS='OLD',ERR=2000,IOSTAT=IERR) 1639 ELSE 1640 OPEN (NDSG, & 1641 FORM='UNFORMATTED', & 1642 STATUS='OLD',ERR=2000,IOSTAT=IERR) 1643 END IF 1644 ELSE 1645 IF (FROM.EQ.'NAME') THEN 1646 OPEN (NDSG,FILE=TRIM(FNMPRE)//TRIM(FNAME),& 1647 STATUS='OLD',ERR=2000,IOSTAT=IERR) 1648 ELSE 1649 OPEN (NDSG, & 1650 STATUS='OLD',ERR=2000,IOSTAT=IERR) 1651 END IF 1652 END IF !IDFM 1653 END IF !NDSG Page 31 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 1654 ! 1655 CALL INA2R ( YGRDIN, NX, NY, 1, NX, 1, NY, NDSG, NDST, NDSE, & 1656 IDFM, RFORM, IDLA, VSC, VOF) 1657 ! 1658 ! 7.c.2.c Check for obvious errors in grid definition or input 1659 ! 1660 ! ....... Check for inverted grid (can result from wrong IDLA) 1661 IF ( (XGRDIN(2,1)-XGRDIN(1,1))*(YGRDIN(1,2)-YGRDIN(1,1)) .LT. & 1662 (YGRDIN(2,1)-YGRDIN(1,1))*(XGRDIN(1,2)-XGRDIN(1,1)) ) THEN 1663 WRITE (NDSE,1011) IDLA 1664 !.........Notes: here, we are checking to make sure that the j axis is ~90 degrees 1665 !................counter-clockwise from the i axis (the standard cartesian setup). 1666 !................So, it is a check on the handedness of the grid. 1667 !................We have confirmed for one case that a left-handed grid produces 1668 !................errors in SCRIP. We have not confirmed that left-handed grids necessarily 1669 !................produce errors in single-grid simulations, or that they necessarily 1670 !................produce errors in all multi-grid simulations. 1671 !................Note that transposing or flipping a grid will generally change the handedness. 1672 CALL EXTCDE (25) 1673 END IF 1674 ! 1675 ! 7.c.3 Unstructured grid 1676 ! 1677 CASE ( UNGTYPE ) 1678 ! 1679 MAXX = 0. 1680 MAXY = 0. 1681 DXYMAX = 0. 1682 WRITE (NDSO,1150) 1683 1684 END SELECT !GTYPE 1685 ! 1686 ! 7.d Depth information for grid 1687 ! 1688 CALL NEXTLN ( COMSTR , NDSI , NDSE ) 1689 READ (NDSI,*,END=2001,ERR=2002) ZLIM, DMIN, NDSG, VSC, IDLA, & 1690 IDFM, RFORM, FROM, FNAME 1691 ! 1692 DMIN = MAX ( 1.E-3 , DMIN ) 1693 IF ( ABS(VSC) .LT. 1.E-7 ) VSC = 1. 1694 IF (IDLA.LT.1 .OR. IDLA.GT.4) IDLA = 1 1695 IF (IDFM.LT.1 .OR. IDFM.GT.3) IDFM = 1 1696 ! 1697 WRITE (NDSO,972) NDSG, ZLIM, DMIN, VSC, IDLA, IDFM 1698 IF (IDFM.EQ.2) WRITE (NDSO,973) TRIM(RFORM) 1699 IF (FROM.EQ.'NAME' .AND. NDSG.NE.NDSI) & 1700 WRITE (NDSO,974) TRIM(FNAME) 1701 ! 1702 ! 7.e Read bottom depths 1703 ! 1704 IF ( GTYPE.NE.UNGTYPE ) THEN 1705 ! 1706 ! Reading depths on structured grid 1707 ! 1708 IF ( NDSG .EQ. NDSI ) THEN 1709 IF ( IDFM .EQ. 3 ) THEN 1710 WRITE (NDSE,1004) NDSG Page 32 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 1711 CALL EXTCDE (23) 1712 ELSE 1713 CALL NEXTLN ( COMSTR , NDSI , NDSE ) 1714 END IF 1715 ELSE ! NDSG.NE.NDSI 1716 IF ( IDFM .EQ. 3 ) THEN 1717 IF (FROM.EQ.'NAME') THEN 1718 J = LEN_TRIM(FNMPRE) 1719 OPEN (NDSG,FILE=TRIM(FNMPRE(:J))//TRIM(FNAME), & 1720 FORM='UNFORMATTED',& 1721 STATUS='OLD',ERR=2000,IOSTAT=IERR) 1722 ELSE 1723 OPEN (NDSG, FORM='UNFORMATTED', & 1724 STATUS='OLD',ERR=2000,IOSTAT=IERR) 1725 END IF 1726 ELSE 1727 IF (FROM.EQ.'NAME') THEN 1728 J = LEN_TRIM(FNMPRE) 1729 OPEN (NDSG,FILE=TRIM(FNMPRE(:J))//TRIM(FNAME), & 1730 STATUS='OLD',ERR=2000,IOSTAT=IERR) 1731 ELSE 1732 OPEN (NDSG, & 1733 STATUS='OLD',ERR=2000,IOSTAT=IERR) 1734 END IF 1735 END IF 1736 END IF !( NDSG .EQ. NDSI ) 1737 ! 1738 ALLOCATE ( ZBIN(NX,NY), OBSX(NX,NY), OBSY(NX,NY) ) 1739 ! 1740 ! Initialize subgrid obstructions with zeros. 1741 OBSX(:,:)=0. 1742 OBSY(:,:)=0. 1743 1744 CALL INA2R ( ZBIN, NX, NY, 1, NX, 1, NY, NDSG, NDST, NDSE, & 1745 IDFM, RFORM, IDLA, VSC, 0.0) 1746 ! 1747 ELSE 1748 ! 1749 ! Reading depths on unstructured grid (this also sets number of mesh points, NX) 1750 ! 1751 CALL READMSH(NDSS,FNAME) 1752 ALLOCATE(ZBIN(NX, NY),OBSX(NX,NY),OBSY(NX,NY)) 1753 ZBIN(:,1) = VSC*XYB(:,3) 1754 ! 1755 ! subgrid obstructions are not yet handled in unstructured grids 1756 ! 1757 OBSX(:,:)=0. 1758 OBSY(:,:)=0. 1759 1760 END IF 1761 ! 1762 ! 7.f Set up temporary map 1763 ! 1764 ALLOCATE ( TMPSTA(NY,NX), TMPMAP(NY,NX) ) 1765 TMPSTA = 0 1766 ! 1767 DO IY=1, NY Page 33 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 1768 DO IX=1, NX 1769 IF ( ZBIN(IX,IY) .LE. ZLIM ) TMPSTA(IY,IX) = 1 1770 END DO 1771 END DO 1772 ! 1773 ! 7.g Subgrid information 1774 ! 1775 TRFLAG = FLAGTR 1776 IF ( TRFLAG.GT.6 .OR. TRFLAG.LT.0 ) TRFLAG = 0 1777 ! 1778 IF ( TRFLAG .EQ. 0 ) THEN 1779 WRITE (NDSO,976) 'Not available.' 1780 WRITE (NDSO,*) 1781 ELSE IF ( TRFLAG.EQ.1 .OR. TRFLAG.EQ.3 .OR. TRFLAG.EQ.5 ) THEN 1782 WRITE (NDSO,976) 'In between grid points.' 1783 ELSE 1784 WRITE (NDSO,976) 'At grid points.' 1785 END IF 1786 ! 1787 IF ( TRFLAG .NE. 0 ) THEN 1788 ! 1789 ! 7.g.1 Info from input file 1790 ! 1791 CALL NEXTLN ( COMSTR , NDSI , NDSE ) 1792 READ (NDSI,*,END=2001,ERR=2002) NDSTR, VSC, IDLA, IDFT, RFORM, & 1793 FROM, TNAME 1794 ! 1795 IF ( ABS(VSC) .LT. 1.E-7 ) VSC = 1. 1796 IF (IDLA.LT.1 .OR. IDLA.GT.4) IDLA = 1 1797 IF (IDFT.LT.1 .OR. IDFT.GT.3) IDFT = 1 1798 ! 1799 WRITE (NDSO,977) NDSTR, VSC, IDLA, IDFT 1800 IF (IDFT.EQ.2) WRITE (NDSO,973) RFORM 1801 IF (FROM.EQ.'NAME' .AND. NDSG.NE.NDSTR) WRITE (NDSO,974) TNAME 1802 ! 1803 ! 7.g.2 Open file and check if necessary 1804 ! 1805 IF ( NDSTR .EQ. NDSI ) THEN 1806 IF ( IDFT .EQ. 3 ) THEN 1807 WRITE (NDSE,1004) NDSTR 1808 CALL EXTCDE (23) 1809 ELSE 1810 CALL NEXTLN ( COMSTR , NDSI , NDSE ) 1811 END IF 1812 ELSE IF ( NDSTR .EQ. NDSG ) THEN 1813 IF ( ( IDFM.EQ.3 .AND. IDFT.NE.3 ) .OR. & 1814 ( IDFM.NE.3 .AND. IDFT.EQ.3 ) ) THEN 1815 WRITE (NDSE,1005) IDFM, IDFT 1816 CALL EXTCDE (24) 1817 END IF 1818 ELSE 1819 IF ( IDFT .EQ. 3 ) THEN 1820 IF (FROM.EQ.'NAME') THEN 1821 J = LEN_TRIM(FNMPRE) 1822 OPEN (NDSTR,FILE=FNMPRE(:J)//TNAME, & 1823 FORM='UNFORMATTED',STATUS='OLD',ERR=2000, & 1824 IOSTAT=IERR) Page 34 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 1825 ELSE 1826 OPEN (NDSTR, FORM='UNFORMATTED', & 1827 STATUS='OLD',ERR=2000,IOSTAT=IERR) 1828 END IF 1829 ELSE 1830 IF (FROM.EQ.'NAME') THEN 1831 J = LEN_TRIM(FNMPRE) 1832 OPEN (NDSTR,FILE=FNMPRE(:J)//TNAME, & 1833 STATUS='OLD',ERR=2000,IOSTAT=IERR) 1834 ELSE 1835 OPEN (NDSTR, & 1836 STATUS='OLD',ERR=2000,IOSTAT=IERR) 1837 END IF 1838 END IF 1839 END IF 1840 ! 1841 ! 7.g.3 Read the data 1842 ! 1843 CALL INA2R ( OBSX, NX, NY, 1, NX, 1, NY, NDSTR, NDST, NDSE, & 1844 IDFM, RFORM, IDLA, VSC, 0.0) 1845 ! 1846 IF ( NDSTR .EQ. NDSI ) CALL NEXTLN ( COMSTR , NDSI , NDSE ) 1847 ! 1848 CALL INA2R ( OBSY, NX, NY, 1, NX, 1, NY, NDSTR, NDST, NDSE, & 1849 IDFM, RFORM, IDLA, VSC, 0.0) 1850 ! 1851 ! 7.g.4 Limit 1852 ! 1853 DO IX=1, NX 1854 DO IY=1, NY 1855 OBSX(IX,IY) = MAX( 0. , MIN(1.,OBSX(IX,IY)) ) 1856 OBSY(IX,IY) = MAX( 0. , MIN(1.,OBSY(IX,IY)) ) 1857 END DO 1858 END DO 1859 ! 1860 WRITE (NDSO,*) 1861 ! 1862 END IF 1863 ! 1864 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1865 ! 8. Finalize status maps 1866 ! 8.a Automatic OBC detection for ug grids 1867 ! 1868 IF (GTYPE.EQ.UNGTYPE.AND.UGOBCAUTO) & 1869 CALL UG_GETOPENBOUNDARY(TMPSTA,ZBIN,UGOBCDEPTH) 1870 ! 1871 ! 8.b Determine where to get the data 1872 ! 1873 CALL NEXTLN ( COMSTR , NDSI , NDSE ) 1874 READ (NDSI,*,END=2001,ERR=2002) NDSTR, IDLA, IDFT, RFORM, & 1875 FROM, TNAME 1876 ! 1877 ! ... Data to be read in parts 1878 ! 1879 IF ( FROM .EQ. 'PART' ) THEN 1880 ! 1881 ! 8.b Update TMPSTA with input boundary data (ILOOP=1) Page 35 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 1882 ! and excluded points (ILOOP=2) 1883 ! 1884 DO ILOOP=1, 2 1885 ! 1886 IF ( ILOOP .EQ. 1 ) THEN 1887 WRITE (NDSO,979) 'boundary points' 1888 NSTAT = 2 1889 ELSE 1890 WRITE (NDSO,979) 'excluded points' 1891 NSTAT = -1 1892 END IF 1893 FIRST = .TRUE. 1894 ! 1895 DO 1896 CALL NEXTLN ( COMSTR , NDSI , NDSE ) 1897 READ (NDSI,*,END=2001,ERR=2002) IX, IY, CONNCT 1898 ! 1899 ! ... Check if last point reached. 1900 ! 1901 IF (IX.EQ.0 .AND. IY.EQ.0) EXIT 1902 ! 1903 ! ... Check if point in grid. 1904 ! 1905 IF (GTYPE.EQ.UNGTYPE.AND.UGOBCAUTO) CYCLE 1906 IF (IX.LT.1 .OR. IX.GT.NX .OR. IY.LT.1 .OR. IY.GT.NY) THEN 1907 WRITE (NDSO,981) 1908 WRITE (NDSO,*) ' ', IX, IY 1909 CYCLE 1910 END IF 1911 ! 1912 ! ... Check if intermediate points are to be added. 1913 ! 1914 IF ( CONNCT .AND. .NOT.FIRST ) THEN 1915 IDX = IX - IXO 1916 IDY = IY - IYO 1917 IF ( IDX.EQ.0 .OR. IDY.EQ.0 .OR. & 1918 ABS(IDX).EQ.ABS(IDY) ) THEN 1919 NBA = MAX ( MAX(ABS(IDX),ABS(IDY))-1 , 0 ) 1920 IF (IDX.NE.0) IDX = SIGN(1,IDX) 1921 IF (IDY.NE.0) IDY = SIGN(1,IDY) 1922 IX = IXO 1923 IY = IYO 1924 DO IBA=1, NBA 1925 IX = IX + IDX 1926 IY = IY + IDY 1927 IF ( TMPSTA(IY,IX).EQ.1 .OR. J.EQ.2 ) THEN 1928 TMPSTA(IY,IX) = NSTAT 1929 ELSE 1930 WRITE(NDSO,*) 'WARNING: POINT (',IX,',',IY, & 1931 ') CANNOT BE GIVEN THE STATUS ',NSTAT 1932 END IF 1933 END DO 1934 IX = IX + IDX 1935 IY = IY + IDY 1936 ELSE 1937 WRITE (NDSO,982) 1938 WRITE (NDSO,*) ' ', IX , IY Page 36 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 1939 WRITE (NDSO,*) ' ', IXO, IYO 1940 END IF 1941 END IF 1942 ! 1943 ! ... Check if point itself is to be added 1944 ! 1945 IF ( TMPSTA(IY,IX).EQ.1 .OR. J.EQ.2 ) THEN 1946 TMPSTA(IY,IX) = NSTAT 1947 END IF 1948 ! 1949 ! ... Save data of previous point 1950 ! 1951 IXO = IX 1952 IYO = IY 1953 FIRST = .FALSE. 1954 ! 1955 ! ... Branch back to read. 1956 ! 1957 END DO 1958 ! 1959 ! 8.c Final processing excluded points 1960 ! 1961 IF ( ILOOP .EQ. 2 ) THEN 1962 ! 1963 DO 1964 CALL NEXTLN ( COMSTR , NDSI , NDSE ) 1965 READ (NDSI,*,END=2001,ERR=2002) IX, IY 1966 ! 1967 ! ... Check if last point reached. 1968 ! 1969 IF (IX.EQ.0 .AND. IY.EQ.0) EXIT 1970 ! 1971 ! ... Check if point in grid. 1972 ! 1973 IF (IX.LT.1 .OR. IX.GT.NX .OR. IY.LT.1 .OR. IY.GT.NY) THEN 1974 WRITE (NDSO,981) 1975 WRITE (NDSO,*) ' ', IX, IY 1976 CYCLE 1977 END IF 1978 ! 1979 ! ... Check if point already excluded 1980 ! 1981 IF ( TMPSTA(IY,IX) .EQ. NSTAT ) THEN 1982 WRITE (NDSO,1981) 1983 WRITE (NDSO,*) ' ', IX, IY 1984 CYCLE 1985 END IF 1986 ! 1987 ! ... Search for points to exclude 1988 ! 1989 TMPMAP = TMPSTA 1990 J = 1 1991 IX1 = IX 1992 IY1 = IY 1993 ! 1994 JJ = TMPSTA(IY,IX) 1995 TMPSTA(IY,IX) = NSTAT Page 37 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 1996 ! 1997 DO 1998 NBT = 0 1999 ! 2000 DO IX=MAX(1,IX1-J), MIN(IX1+J,NX) 2001 DO IY=MAX(1,IY1-J), MIN(IY1+J,NY) 2002 IF ( TMPSTA(IY,IX) .EQ. JJ ) THEN 2003 IF (IX.GT.1) THEN 2004 IF (TMPSTA(IY ,IX-1).EQ.NSTAT & 2005 .AND. TMPMAP(IY ,IX-1).EQ.JJ ) & 2006 TMPSTA(IY,IX) = NSTAT 2007 END IF 2008 IF (IX.LT.NX) THEN 2009 IF (TMPSTA(IY ,IX+1).EQ.NSTAT & 2010 .AND. TMPMAP(IY ,IX+1).EQ.JJ ) & 2011 TMPSTA(IY,IX) = NSTAT 2012 END IF 2013 IF (IY.LT.NY) THEN 2014 IF (TMPSTA(IY+1,IX ).EQ.NSTAT & 2015 .AND. TMPMAP(IY+1,IX ).EQ.JJ ) & 2016 TMPSTA(IY,IX) = NSTAT 2017 END IF 2018 IF (IY.GT.1) THEN 2019 IF (TMPSTA(IY-1,IX ).EQ.NSTAT & 2020 .AND. TMPMAP(IY-1,IX ).EQ.JJ ) & 2021 TMPSTA(IY,IX) = NSTAT 2022 END IF 2023 IF (TMPSTA(IY,IX).EQ.NSTAT) NBT = NBT + 1 2024 END IF 2025 END DO 2026 END DO 2027 ! 2028 IF ( NBT .NE. 0 ) THEN 2029 J = J + 1 2030 ELSE 2031 EXIT 2032 END IF 2033 END DO 2034 ! 2035 END DO 2036 ! 2037 ! ... Outer boundary excluded points 2038 ! 2039 IF ( GTYPE.NE.UNGTYPE ) THEN 2040 2041 DO IX=1, NX 2042 IF ( TMPSTA( 1,IX) .EQ. 1 ) TMPSTA( 1,IX) = NSTAT 2043 IF ( TMPSTA(NY,IX) .EQ. 1 ) TMPSTA(NY,IX) = NSTAT 2044 END DO 2045 ! 2046 IF ( ICLOSE.EQ.ICLOSE_NONE ) THEN 2047 DO IY=2, NY-1 2048 IF ( TMPSTA(IY, 1) .EQ. 1 ) TMPSTA(IY, 1) = NSTAT 2049 IF ( TMPSTA(IY,NX) .EQ. 1 ) TMPSTA(IY,NX) = NSTAT 2050 END DO 2051 END IF 2052 ! Page 38 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 2053 END IF ! GTYPE 2054 ! 2055 END IF ! ILOOP .EQ. 2 2056 ! 2057 ! ... Branch back input / excluded points ( ILOOP in 8.b ) 2058 ! 2059 END DO 2060 ! 2061 ELSE ! FROM .EQ. PART 2062 ! 2063 ! 8.d Read the map from file instead 2064 ! 2065 NSTAT = -1 2066 IF (IDLA.LT.1 .OR. IDLA.GT.4) IDLA = 1 2067 IF (IDFT.LT.1 .OR. IDFT.GT.3) IDFT = 1 2068 ! 2069 WRITE (NDSO,978) NDSTR, IDLA, IDFT 2070 IF (IDFT.EQ.2) WRITE (NDSO,973) RFORM 2071 IF (FROM.EQ.'NAME') WRITE (NDSO,974) TNAME 2072 ! 2073 IF ( NDSTR .NE. NDSI ) THEN 2074 IF ( IDFT .EQ. 3 ) THEN 2075 WRITE (NDSE,1004) NDSTR 2076 CALL EXTCDE (23) 2077 ELSE 2078 CALL NEXTLN ( COMSTR , NDSI , NDSE ) 2079 END IF 2080 IF ( IDFT .EQ. 3 ) THEN 2081 IF (FROM.EQ.'NAME') THEN 2082 J = LEN_TRIM(FNMPRE) 2083 OPEN (NDSTR,FILE=FNMPRE(:J)//TNAME, & 2084 FORM='UNFORMATTED',STATUS='OLD',ERR=2000, & 2085 IOSTAT=IERR) 2086 ELSE 2087 OPEN (NDSTR, FORM='UNFORMATTED', & 2088 STATUS='OLD',ERR=2000,IOSTAT=IERR) 2089 END IF 2090 ELSE 2091 IF (FROM.EQ.'NAME') THEN 2092 J = LEN_TRIM(FNMPRE) 2093 OPEN (NDSTR,FILE=FNMPRE(:J)//TNAME, & 2094 STATUS='OLD',ERR=2000,IOSTAT=IERR) 2095 ELSE 2096 OPEN (NDSTR, & 2097 STATUS='OLD',ERR=2000,IOSTAT=IERR) 2098 END IF 2099 END IF 2100 END IF 2101 ! 2102 IF ( NDSTR .EQ. NDSI ) CALL NEXTLN ( COMSTR , NDSI , NDSE ) 2103 ALLOCATE ( READMP(NX,NY) ) 2104 CALL INA2I ( READMP, NX, NY, 1, NX, 1, NY, NDSTR, NDST, & 2105 NDSE, IDFM, RFORM, IDLA, 1, 0 ) 2106 ! 2107 IF ( ICLOSE.EQ.ICLOSE_NONE ) THEN 2108 DO IY=2, NY-1 2109 IF ( READMP( 1,IY) .EQ. 1 ) READMP( 1,IY) = 3 Page 39 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 2110 IF ( READMP(NX,IY) .EQ. 1 ) READMP(NX,IY) = 3 2111 END DO 2112 END IF 2113 ! 2114 DO IX=1, NX 2115 IF ( READMP(IX, 1) .EQ. 1 ) READMP(IX, 1) = 3 2116 IF ( READMP(IX,NY) .EQ. 1 ) READMP(IX,NY) = 3 2117 END DO 2118 ! 2119 DO IY=1, NY 2120 DO IX=1, NX 2121 IF ( READMP(IX,IY) .EQ. 3 ) THEN 2122 TMPSTA(IY,IX) = NSTAT 2123 ELSE 2124 TMPSTA(IY,IX) = READMP(IX,IY) 2125 END IF 2126 END DO 2127 END DO 2128 DEALLOCATE ( READMP ) 2129 ! 2130 END IF !FROM .NE. 'PART' 2131 ! 2132 ! 8.e Get NSEA and other counters 2133 ! 2134 NSEA = 0 2135 NLAND = 0 2136 NBI = 0 2137 NBT = 0 2138 ! 2139 DO IX=1, NX 2140 DO IY=1, NY 2141 IF ( TMPSTA(IY,IX) .GT. 0 ) NSEA = NSEA + 1 2142 IF ( TMPSTA(IY,IX) .EQ. 0 ) NLAND = NLAND + 1 2143 IF ( TMPSTA(IY,IX) .LT. 0 ) NBT = NBT + 1 2144 IF ( TMPSTA(IY,IX) .EQ. 2 ) NBI = NBI + 1 2145 END DO 2146 END DO 2147 ! 2148 WRITE (NDSO,980) 2149 FLBPI = NBI .GT. 0 2150 IF ( .NOT. FLBPI ) THEN 2151 WRITE (NDSO,985) 2152 ELSE 2153 WRITE (NDSO,986) NBI 2154 IF ( FLAGLL ) THEN 2155 WRITE (NDSO, 987) 2156 ELSE 2157 WRITE (NDSO,1987) 2158 END IF 2159 IBI = 1 2160 DO IY=1, NY 2161 DO IX=1, NX 2162 IF (GTYPE.NE.UNGTYPE) THEN 2163 X = FACTOR * ( XGRDIN(IX,IY) ) 2164 Y = FACTOR * ( YGRDIN(IX,IY) ) 2165 ELSE 2166 X = FACTOR * XYB(IX,1) Page 40 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 2167 Y = FACTOR * XYB(IX,2) 2168 END IF 2169 IF ( TMPSTA(IY,IX).EQ.2 ) THEN 2170 IF ( FLAGLL ) THEN 2171 WRITE (NDSO, 988) IBI, IX, IY, X, Y 2172 ELSE 2173 WRITE (NDSO,1988) IBI, IX, IY, X, Y 2174 END IF 2175 IBI = IBI + 1 2176 END IF 2177 END DO 2178 END DO 2179 END IF 2180 ! 2181 WRITE (NDSO,1980) 2182 IF ( NBT .EQ. 0 ) THEN 2183 WRITE (NDSO,1985) 2184 ELSE 2185 WRITE (NDSO,1986) NBT 2186 END IF 2187 ! 2188 ! 8.f Set up all maps 2189 ! 2190 !!Li CALL W3DIMX ( 1, NX, NY, NSEA, NDSE, NDST ) 2191 CALL W3DIMX ( 1, NX, NY, NSEA, NDSE, NDST & 2192 ) 2193 ! 2194 ! 8.g Activation of reflections and scattering 2195 ! 2196 FLICES = FLAGICESOURCE 2197 FFACBERG=FACBERG 2198 2199 2200 IF (GTYPE.NE.UNGTYPE) THEN 2201 DO IY=1, NY 2202 DO IX=1, NX 2203 XGRD(IY,IX) = XGRDIN(IX,IY) 2204 YGRD(IY,IX) = YGRDIN(IX,IY) 2205 END DO 2206 END DO 2207 DEALLOCATE ( XGRDIN, YGRDIN ) 2208 CALL W3GNTX ( 1, 6, 6 ) 2209 ELSE 2210 ! 2211 !FA: This distinction between structured and unstructured 2212 ! should be removed when XYB is replaced by XGRD and YGRD 2213 ! 2214 DO IX=1, NX 2215 XGRD(:,IX) = XYB(IX,1) 2216 YGRD(:,IX) = XYB(IX,2) 2217 END DO 2218 END IF ! GTYPE 2219 ! 2220 !!Li MAPSTA = TMPSTA 2221 !!Li Shelter MAPSTA LLG definition for SMC by RGLGRD. 2222 IF( RGLGRD ) MAPSTA = TMPSTA 2223 MAPFS = 0 Page 41 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 2224 ! 2225 TRNX = 0. 2226 TRNY = 0. 2227 ! 2228 !Li Shelter MAPSTA etc LLG definitions for SMC by logical RGLGRD 2229 IF( RGLGRD ) THEN 2230 ISEA = 0 2231 DO IY=1, NY 2232 DO IX=1, NX 2233 IF ( TMPSTA(IY,IX) .EQ. NSTAT ) THEN 2234 MAPSTA(IY,IX) = 0 2235 MAPST2(IY,IX) = 1 2236 TMPSTA(IY,IX) = 3 2237 ELSE 2238 MAPSTA(IY,IX) = TMPSTA(IY,IX) 2239 MAPST2(IY,IX) = 0 2240 END IF 2241 IF ( MAPSTA(IY,IX) .NE. 0 ) THEN 2242 ISEA = ISEA + 1 2243 MAPFS (IY,IX) = ISEA 2244 ZB(ISEA) = ZBIN(IX,IY) 2245 MAPSF(ISEA,1) = IX 2246 MAPSF(ISEA,2) = IY 2247 IF ( FLAGLL ) THEN 2248 Y = YGRD(IY,IX) 2249 CLATS(ISEA) = COS(Y*DERA) 2250 CLATIS(ISEA) = 1. / CLATS(ISEA) 2251 CTHG0S(ISEA) = - TAN(DERA*Y) / RADIUS 2252 ELSE 2253 CLATS(ISEA) = 1. 2254 CLATIS(ISEA) = 1. 2255 CTHG0S(ISEA) = 0. 2256 END IF 2257 END IF 2258 2259 !/ ------------------------------------------------------------------- / 2260 2261 ! notes: Oct 22 2012: I moved the following "if-then" statement from 2262 ! inside the "IF ( MAPSTA(IY,IX) .NE. 0 )" statement to outside that 2263 ! statement. This is needed since later on, ATRNX is computed from 2264 ! TRNX(ix-1) , TRNX(ix) etc. which causes boundary effects if the 2265 ! MAPSTA=0 values are set to TRNX=0 2266 2267 IF ( TRFLAG .NE. 0 ) THEN 2268 TRNX(IY,IX) = 1. - OBSX(IX,IY) 2269 TRNY(IY,IX) = 1. - OBSY(IX,IY) 2270 END IF 2271 2272 END DO 2273 END DO 2274 ENDIF 2275 !!Li End of RGLGRD IF block 2276 ! 2277 DO ISP=1, NSPEC+NTH 2278 MAPWN(ISP) = 1 + (ISP-1)/NTH 2279 MAPTH(ISP) = 1 + MOD(ISP-1,NTH) 2280 END DO Page 42 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 2281 ! 2282 NMAP = 1 + (NX-1)/NCOL 2283 WRITE (NDSO,1100) NMAP 2284 DO IMAP=1, NMAP 2285 IX0 = 1 + (IMAP-1)*NCOL 2286 IXN = MIN ( NX , IMAP*NCOL ) 2287 DO IY=NY,1,-1 2288 WRITE (NDSO,1101) (TMPSTA(IY,IX),IX=IX0,IXN) 2289 END DO 2290 WRITE (NDSO,*) ' ' 2291 END DO 2292 WRITE (NDSO,1102) 2293 2294 ! 2295 2296 ! 2297 ! 9.d Estimates shoreline direction for reflection 2298 ! and shoreline treatment in general for UNST grids. 2299 ! NB: this is updated with moving water levels in W3ULEV 2300 ! 2301 IF (GTYPE.EQ.UNGTYPE) THEN 2302 CALL SETUGIOBP 2303 END IF 2304 2305 ! 2306 DEALLOCATE ( ZBIN, TMPSTA, TMPMAP ) 2307 ! 2308 ! 9.e Reads bottom information from file 2309 ! 2310 2311 2312 ! 2313 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2314 ! 10. Prepare output boundary points. 2315 ! ILOOP = 1 to count NFBPO and NBO 2316 ! ILOOP = 2 to fill data arrays 2317 ! 2318 WRITE (NDSO,990) 2319 J = LEN_TRIM(FNMPRE) 2320 OPEN (NDSS,FILE=FNMPRE(:J)//'multiwavegrid.scratch',FORM='FORMATTED') 2321 ! 2322 DO ILOOP = 1, 2 2323 ! 2324 IF ( ILOOP.EQ.2 ) CALL W3DMO5 ( 1, NDST, NDSE, 2 ) 2325 ! 2326 NBOTOT = 0 2327 NFBPO = 0 2328 NBO(0) = 0 2329 NBO2(0)= 0 2330 FIRST = .TRUE. 2331 REWIND (NDSS) 2332 IF ( ILOOP .EQ. 1 ) THEN 2333 NDSI2 = NDSI 2334 ELSE 2335 NDSI2 = NDSS 2336 END IF 2337 ! Page 43 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 2338 DO 2339 CALL NEXTLN ( COMSTR , NDSI2 , NDSE ) 2340 READ (NDSI2,*,END=2001,ERR=2002) XO0, YO0, DXO, DYO, NPO 2341 ! 2342 IF ( ILOOP .EQ. 1 ) THEN 2343 BACKSPACE (NDSI) 2344 READ (NDSI,'(A)') LINE 2345 WRITE (NDSS,'(A)') LINE 2346 END IF 2347 ! 2348 ! ... Check if new file to be used 2349 ! 2350 FIRST = FIRST .OR. NPO.LE.0 2351 NPO = ABS(NPO) 2352 ! 2353 ! ... Preparations for new output file including end check 2354 ! and output for last output file 2355 ! 2356 IF ( FIRST ) THEN 2357 ! 2358 FIRST = .FALSE. 2359 ! 2360 IF ( NFBPO.GE.1 .AND. ILOOP.EQ.2 ) THEN 2361 WRITE (NDSO,991) NFBPO, NBO(NFBPO) - NBO(NFBPO-1), & 2362 NBO2(NFBPO) - NBO2(NFBPO-1) 2363 IF ( NBO(NFBPO) - NBO(NFBPO-1) .EQ. 1 ) THEN 2364 IF ( FLAGLL ) THEN 2365 WRITE (NDSO,992) 2366 ELSE 2367 WRITE (NDSO,2992) 2368 END IF 2369 ELSE 2370 IF ( FLAGLL ) THEN 2371 WRITE (NDSO,1992) 2372 ELSE 2373 WRITE (NDSO,3992) 2374 END IF 2375 END IF 2376 IP0 = NBO(NFBPO-1)+1 2377 IPN = NBO(NFBPO) 2378 IPH = IP0 + (IPN-IP0-1)/2 2379 IPI = IPH -IP0 + 1 + MOD(IPN-IP0+1,2) 2380 DO IP=IP0, IPH 2381 IF ( FLAGLL ) THEN 2382 WRITE (NDSO,1993) IP-NBO(NFBPO-1), & 2383 FACTOR*XBPO(IP), & 2384 FACTOR*YBPO(IP), & 2385 IP+IPI-NBO(NFBPO-1), & 2386 FACTOR*XBPO(IP+IPI), & 2387 FACTOR*YBPO(IP+IPI) 2388 ELSE 2389 WRITE (NDSO,3993) IP-NBO(NFBPO-1), & 2390 FACTOR*XBPO(IP), & 2391 FACTOR*YBPO(IP), & 2392 IP+IPI-NBO(NFBPO-1), & 2393 FACTOR*XBPO(IP+IPI), & 2394 FACTOR*YBPO(IP+IPI) Page 44 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 2395 END IF 2396 END DO 2397 IF ( MOD(IPN-IP0+1,2) .EQ. 1 ) THEN 2398 IF ( FLAGLL ) THEN 2399 WRITE (NDSO, 993) IPH+1-NBO(NFBPO-1), & 2400 FACTOR*XBPO(IPH+1), & 2401 FACTOR*YBPO(IPH+1) 2402 ELSE 2403 WRITE (NDSO,2993) IPH+1-NBO(NFBPO-1), & 2404 FACTOR*XBPO(IPH+1), & 2405 FACTOR*YBPO(IPH+1) 2406 END IF 2407 END IF 2408 WRITE (NDSO,*) 2409 END IF 2410 ! 2411 IF ( NPO .EQ. 0 ) EXIT 2412 ! 2413 NFBPO = NFBPO + 1 2414 IF ( NFBPO .GT. 9 ) THEN 2415 WRITE (NDSE,1006) 2416 CALL EXTCDE ( 50 ) 2417 END IF 2418 NBO2(NFBPO) = NBO2(NFBPO-1) 2419 NBO(NFBPO) = NBOTOT 2420 ! 2421 END IF 2422 ! 2423 ! ... Loop over line segment - - - - - - - - - - - - - - - - - - - - - 2424 ! 2425 DO IP=1, NPO 2426 ! 2427 XO = XO0 + REAL(IP-1)*DXO 2428 YO = YO0 + REAL(IP-1)*DYO 2429 ! 2430 ! ... Compute bilinear remapping weights 2431 ! 2432 INGRID = W3GRMP( GSU, XO, YO, IXR, IYR, RD ) 2433 ! 2434 ! Change cell-corners from counter-clockwise to column-major order 2435 IX = IXR(3); IY = IYR(3); X = RD(3); 2436 IXR(3) = IXR(4); IYR(3) = IYR(4); RD(3) = RD(4); 2437 IXR(4) = IX ; IYR(4) = IY ; RD(4) = X ; 2438 ! 2439 ! ... Check if point in grid 2440 ! 2441 IF ( INGRID ) THEN 2442 ! 2443 ! ... Check if point not on land 2444 ! 2445 IF ( ( MAPSTA(IYR(1),IXR(1)).GT.0 .AND. & 2446 RD(1).GT.0.05 ) .OR. & 2447 ( MAPSTA(IYR(2),IXR(2)).GT.0 .AND. & 2448 RD(2).GT.0.05 ) .OR. & 2449 ( MAPSTA(IYR(3),IXR(3)).GT.0 .AND. & 2450 RD(3).GT.0.05 ) .OR. & 2451 ( MAPSTA(IYR(4),IXR(4)).GT.0 .AND. & Page 45 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 2452 RD(4).GT.0.05 ) ) THEN 2453 ! 2454 ! ... Check storage and store coordinates 2455 ! 2456 NBOTOT = NBOTOT + 1 2457 IF ( ILOOP .EQ. 1 ) CYCLE 2458 ! 2459 XBPO(NBOTOT) = XO 2460 YBPO(NBOTOT) = YO 2461 ! 2462 ! ... Interpolation factors 2463 ! 2464 RDTOT = 0. 2465 DO J=1, 4 2466 IF ( MAPSTA(IYR(J),IXR(J)).GT.0 .AND. & 2467 RD(J).GT.0.05 ) THEN 2468 RDBPO(NBOTOT,J) = RD(J) 2469 ELSE 2470 RDBPO(NBOTOT,J) = 0. 2471 END IF 2472 RDTOT = RDTOT + RDBPO(NBOTOT,J) 2473 END DO 2474 ! 2475 DO J=1, 4 2476 RDBPO(NBOTOT,J) = RDBPO(NBOTOT,J) / RDTOT 2477 END DO 2478 ! 2479 ! ... Determine sea and interpolation point counters 2480 ! 2481 DO J=1, 4 2482 ISEAI(J) = MAPFS(IYR(J),IXR(J)) 2483 END DO 2484 ! 2485 DO J=1, 4 2486 IF ( ISEAI(J).EQ.0 .OR. RDBPO(NBOTOT,J).EQ. 0. ) THEN 2487 IPBPO(NBOTOT,J) = 0 2488 ELSE 2489 FLNEW = .TRUE. 2490 DO IST=NBO2(NFBPO-1)+1, NBO2(NFBPO) 2491 IF ( ISEAI(J) .EQ. ISBPO(IST) ) THEN 2492 FLNEW = .FALSE. 2493 IPBPO(NBOTOT,J) = IST - NBO2(NFBPO-1) 2494 END IF 2495 END DO 2496 IF ( FLNEW ) THEN 2497 NBO2(NFBPO) = NBO2(NFBPO) + 1 2498 IPBPO(NBOTOT,J) = NBO2(NFBPO) - NBO2(NFBPO-1) 2499 ISBPO(NBO2(NFBPO)) = ISEAI(J) 2500 END IF 2501 END IF 2502 END DO 2503 ! 2504 ! ... Error output 2505 ! 2506 ELSE 2507 WRITE (NDSE,995) FACTOR*XO, FACTOR*YO 2508 END IF Page 46 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 2509 ELSE 2510 WRITE (NDSE,994) FACTOR*XO, FACTOR*YO 2511 END IF 2512 ! 2513 END DO 2514 ! 2515 NBO(NFBPO) = NBOTOT 2516 ! 2517 ! ... Branch back to read. 2518 ! 2519 END DO 2520 ! 2521 ! ... End of ILOOP loop 2522 ! 2523 END DO 2524 ! 2525 CLOSE ( NDSS, STATUS='DELETE' ) 2526 ! 2527 FLBPO = NBOTOT .GT. 0 2528 IF ( .NOT. FLBPO ) THEN 2529 WRITE (NDSO,996) 2530 ELSE 2531 WRITE (NDSO,997) NBOTOT, NBO2(NFBPO) 2532 END IF 2533 ! 2534 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2535 !10. Write model definition file. 2536 ! 2537 WRITE (NDSO,999) 2538 CALL W3IOGR ( 'WRITE', NDSM ) 2539 ! 2540 CLOSE (NDSM) 2541 ! 2542 GOTO 2222 2543 ! 2544 ! Escape locations read errors : 2545 ! 2546 2000 CONTINUE 2547 WRITE (NDSE,1000) IERR 2548 CALL EXTCDE ( 60 ) 2549 ! 2550 2001 CONTINUE 2551 WRITE (NDSE,1001) 2552 CALL EXTCDE ( 61 ) 2553 ! 2554 2002 CONTINUE 2555 WRITE (NDSE,1002) IERR 2556 CALL EXTCDE ( 62 ) 2557 ! 2558 2222 CONTINUE 2559 IF ( GTYPE .NE. UNGTYPE) THEN 2560 IF ( NX*NY .NE. NSEA ) THEN 2561 WRITE (NDSO,9997) NX, NY, NX*NY, NSEA, & 2562 100.*REAL(NSEA)/REAL(NX*NY), NBI, NLAND, NBT 2563 ELSE 2564 WRITE (NDSO,9998) NX, NY, NX*NY, NSEA, NBI, NLAND, NBT 2565 END IF Page 47 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 2566 ELSE IF ( GTYPE .EQ. UNGTYPE ) THEN 2567 IF ( NX*NY .NE. NSEA ) THEN 2568 WRITE (NDSO,9997) 0, 0, NX*NY, NSEA, & 2569 100.*REAL(NSEA)/REAL(NX*NY), NBI, NLAND, NBT 2570 ELSE 2571 WRITE (NDSO,9998) 0, 0, NX*NY, NSEA, NBI, NLAND, NBT 2572 END IF 2573 ENDIF ! GTYPE .EQ. UNGTYPE 2574 2575 WRITE (NDSO,9999) 2576 2577 ! 2578 ! Formats 2579 ! 2580 900 FORMAT (/15X,' *** WAVEWATCH III Grid preprocessor *** '/ & 2581 15X,'==============================================='/) 2582 901 FORMAT ( ' Comment character is ''',A,''''/) 2583 902 FORMAT ( ' Grid name : ',A/) 2584 903 FORMAT (/' Spectral discretization : '/ & 2585 ' --------------------------------------------------'/ & 2586 ' Number of directions :',I4/ & 2587 ' Directional increment (deg.):',F6.1) 2588 904 FORMAT ( ' First direction (deg.):',F6.1) 2589 905 FORMAT ( ' Number of frequencies :',I4/ & 2590 ' Frequency range (Hz) :',F9.4,'-',F6.4/ & ................................................................1 (1) Recommended relationship between field width 'W' and the number of fractional digits 'D' in this edit descriptor is 'W>=D+3'. 2591 ' Increment factor :',F8.3/) 2592 ! 2593 910 FORMAT (/' Model definition :'/ & 2594 ' --------------------------------------------------') 2595 911 FORMAT ( ' Dry run (no calculations) : ',A/ & 2596 ' Propagation in X-direction : ',A/ & 2597 ' Propagation in Y-direction : ',A/ & 2598 ' Refraction : ',A/ & 2599 ' Current-induced k-shift : ',A/ & 2600 ' Source term calc. and int. : ',A/) 2601 912 FORMAT (/' Time steps : '/ & 2602 ' --------------------------------------------------'/ & 2603 ' Maximum global time step (s) :',F8.2/ & 2604 ' Maximum CFL time step X-Y (s) :',F8.2/ & 2605 ' Maximum CFL time step k-theta (s) :',F8.2/ & 2606 ' Minimum source term time step (s) :',F8.2/) 2607 913 FORMAT (/ ' WARNING, TIME STEP LESS THAN 1 s, NITER:',I8 /) 2608 915 FORMAT ( ' Preprocessing namelists ...') 2609 916 FORMAT ( ' Preprocessing namelists finished.'/) 2610 917 FORMAT (/' Equivalent namelists ...'/) 2611 918 FORMAT (/' Equivalent namelists finished.'/) 2612 ! 2613 820 FORMAT (/' Linear input (C&M-R 82) ',A/ & 2614 ' --------------------------------------------------') 2615 821 FORMAT ( ' CLIN :',f8.2/ & 2616 ' Factor for fPM in filter :',F8.2/ & 2617 ' Factor for fh in filter :',F8.2/) 2618 2820 FORMAT ( ' &SLN1 CLIN =',F6.1,', RFPM =',F6.2, & 2619 ', RFHF =',F6.2,' /') Page 48 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 2620 ! 2621 920 FORMAT (/' Wind input (WAM 4+) ',A/ & 2622 ' --------------------------------------------------') 2623 921 FORMAT ( ' minimum Charnock coeff. :',F10.4/ & 2624 ' betamax :',F9.3/ & 2625 ' power of cos. in wind input :',F9.3/ & 2626 ' z0max :',F9.3/ & 2627 ' zalp :',F9.3/ & 2628 ' Height of input wind (m) :',F8.2/ & 2629 ' wind stress sheltering :',F9.3/ & 2630 ' swell attenuation param. :',I5/ & 2631 ' swell attenuation factor :',F9.3/ & 2632 ' swell attenuation factor2 :',F9.3/ & 2633 ' swell attenuation factor3 :',F9.3/ & 2634 ' critical Reynolds number :',F9.1/ & 2635 ' swell attenuation factor5 :',F9.3/ & 2636 ' swell attenuation factor6 :',F9.3/ & 2637 ' swell attenuation factor7 :',F14.3/ & 2638 ' ratio of z0 for orb. & mean :',F9.3/) 2639 2920 FORMAT ( ' &SIN4 ZWND =',F5.1,', ALPHA0 =',F8.5,', Z0MAX =',F8.5,', BETAMAX =', & 2640 F8.5,','/ & 2641 ' SINTHP =',F8.5,', ZALP =',F8.5,', TAUWSHELTER =',F8.5, & 2642 ', SWELLFPAR =',I2,','/ & 2643 ' SWELLF =',F8.5,', SWELLF2 =',F8.5, & 2644 ', SWELLF3 =',F8.5,', SWELLF4 =',F9.1,','/ & 2645 ' SWELLF5 =',F8.5,', SWELLF6 =',F8.5, & 2646 ', SWELLF7 =',F12.2,', Z0RAT =',F8.5,' /') 2647 ! 2648 922 FORMAT (/' Nonlinear interactions (DIA) ',A/ & 2649 ' --------------------------------------------------') 2650 923 FORMAT ( ' Lambda :',F8.2/ & 2651 ' Prop. constant :',E10.3/ & 2652 ' kd conversion factor :',F8.2/ & 2653 ' minimum kd :',F8.2/ & 2654 ' shallow water constants :',F8.2,2F6.2/) 2655 2922 FORMAT ( ' &SNL1 LAMBDA =',F7.3,', NLPROP =',E10.3, & 2656 ', KDCONV =',F7.3,', KDMIN =',F7.3,','/ & 2657 ' SNLCS1 =',F7.3,', SNLCS2 =',F7.3, & 2658 ', SNLCS3 = ',F7.3,' /') 2659 ! 2660 924 FORMAT (/' Dissipation (Ardhuin et al. 2010) ',A/ & 2661 ' --------------------------------------------------') 2662 925 FORMAT ( ' SDSC2, SDSBCK, SDSCUM :',3E11.3/ & 2663 ' Power of k in mean k :',F8.2/) 2664 2924 FORMAT ( ' &SDS4 SDSC1 =',E12.4,', SDSC2 =',E12.4, & 2665 ', SDSCUM =',E12.4,','/ & 2666 ' SDSC4 =',E12.4,', SDSC5 =',E12.4, & 2667 ', SDSC6 =',E12.4,','/ & 2668 ' WNMEANP =',F4.2,', FXPM3 =', F4.2, & ....................................1.................2 (1) Recommended relationship between field width 'W' and the number of fractional digits 'D' in this edit descriptor is 'W>=D+3'. (2) Recommended relationship between field width 'W' and the number of fractional digits 'D' in this edit descriptor is 'W>=D+3'. Page 49 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 2669 ',FXFM3 =',F4.2,','/ & ...........................1 (1) Recommended relationship between field width 'W' and the number of fractional digits 'D' in this edit descriptor is 'W>=D+3'. 2670 ' SDSBINT =',E12.4,', SDSBCK =',E12.4, & 2671 ', SDSABK =',F6.3,', SDSPBK =',F6.3,', '/ & 2672 ' SDSHCK =',F5.2,', SDSBR = ',E12.4, ', '/& 2673 ' SDSBR2 =',F5.2,', SDSP =',F5.2, & 2674 ', SDSISO =',I2, & 2675 ', SDSCOS =',F3.1,', SDSDTH =',F5.1,', '/ & .............................1 (1) Recommended relationship between field width 'W' and the number of fractional digits 'D' in this edit descriptor is 'W>=D+3'. 2676 ' SDSBRF1 = ',F5.2,', SDSBRF2 = ',F5.2, & 2677 ', SDSBRFDF =',I2,', '/ & 2678 ' SDSBM0 = ',F5.2, ', SDSBM1 =',F5.2, & 2679 ', SDSBM2 =',F5.2,', SDSBM3 =',F5.2,', SDSBM4 =', & 2680 F5.2,', WHITECAPWIDTH =',F5.2,' /') 2681 ! 2682 926 FORMAT (/' Bottom friction (JONSWAP) ',A/ & 2683 ' --------------------------------------------------') 2684 927 FORMAT ( ' gamma :',F8.4/) 2685 2926 FORMAT ( ' &SBT1 GAMMA =',E12.4,' /') 2686 ! 2687 928 FORMAT (/' Surf breaking (B&J 1978) ',A/ & 2688 ' --------------------------------------------------') 2689 929 FORMAT ( ' alpha :',F8.3/ & 2690 ' gamma :',F8.3) 2691 2928 FORMAT ( ' &SDB1 BJALFA =',F7.3,', BJGAM =',F7.3, & 2692 ', BJFLAG = ',A,' /') 2693 ! 2694 930 FORMAT (/' Triad interactions not defined.'/) 2695 ! 2696 932 FORMAT (/' Bottom scattering not defined.'/) 2697 ! 2698 934 FORMAT (/' Alternative source term slot not used.'/) 2699 ! 2700 950 FORMAT (/' Propagation scheme : '/ & 2701 ' --------------------------------------------------') 2702 951 FORMAT ( ' Type of scheme (structured) :',1X,A) 2703 2951 FORMAT ( ' Type of scheme(unstructured):',1X,A) 2704 952 FORMAT ( ' ',1X,A) 2705 ! 2706 953 FORMAT ( ' CFLmax depth refraction :',F9.3/ & 2707 ' Averaging area factor Cg :',F8.2) 2708 954 FORMAT ( ' Averaging area factor theta :',F8.2) 2709 955 FORMAT ( ' **** Internal maximum .GE.',F6.2,' ****') 2710 2953 FORMAT ( ' &PRO3 CFLTM =',F5.2, & 2711 ', WDTHCG = ',F4.2,', WDTHTH = ',F4.2,' /') .....................................1..................2 (1) Recommended relationship between field width 'W' and the number of fractional digits 'D' in this edit descriptor is 'W>=D+3'. (2) Recommended relationship between field width 'W' and the number of fractional digits 'D' in this edit descriptor is 'W>=D+3'. 2712 ! 2713 2956 FORMAT ( ' &UNST UGOBCAUTO =',L3, ', UGOBCDEPTH =', F8.3/ & 2714 ', EXPFSN =',L3,',EXPFSPSI =',L3, ',EXPFSFCT =', & Page 50 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 2715 L3,',GMSH =',L3, / ) 2716 ! 2717 960 FORMAT (/' Miscellaneaous ',A/ & 2718 ' --------------------------------------------------') 2719 2961 FORMAT ( ' *** WAVEWATCH-III WARNING IN WAVEGRID :'/ & 2720 ' CICE0.NE.CICEN REQUIRES OBSTRUCTION GRID.'/ & 2721 ' PARAMETER CORRECTED: CICE0 = CICE'/) 2722 961 FORMAT ( ' Ice concentration cut-offs :',F8.2,F6.2) 2723 965 FORMAT (/' Dynamic source term integration scheme :'/ & 2724 ' Xp (-) :',F9.3/ & 2725 ' Xr (-) :',F9.3/ & 2726 ' Xfilt (-) :',F9.3) 2727 966 FORMAT (/' Wave field partitioning :'/ & 2728 ' Levels (-) :',I5/ & 2729 ' Minimum wave height (m) :',F9.3/ & 2730 ' Wind area multiplier (-) :',F9.3/ & 2731 ' Cut-off wind sea fract. (-) :',F9.3/ & 2732 ' Combine wind seas : ',A/ & 2733 ' Number of swells in fld out :',I5) 2734 967 FORMAT (/' Miche-style limiting wave height :'/ & 2735 ' Hs,max/d factor (-) :',F9.3/ & 2736 ' Hrms,max/d factor (-) :',F9.3/ & 2737 ' Limiter activated : ',A) 2738 968 FORMAT ( ' *** FACTOR DANGEROUSLY LOW ***') 2739 ! 2740 4970 FORMAT (/' Spectral output on full grid ',A/ & 2741 ' --------------------------------------------------') 2742 4971 FORMAT ( ' Second order pressure at K=0:',3I4) 2743 4972 FORMAT ( ' Spectrum of Uss :',3I4) 2744 4973 FORMAT ( ' Frequency spectrum :',3I4) 2745 ! 2746 4980 FORMAT (/' Coastal / iceberg reflection ',A/ & 2747 ' --------------------------------------------------') 2748 4981 FORMAT ( ' Coefficient for shorelines :',F6.4) .......................................................1 (1) Recommended relationship between field width 'W' and the number of fractional digits 'D' in this edit descriptor is 'W>=D+3'. 2749 4989 FORMAT ( ' *** CURVLINEAR GRID: REFLECTION NOT IMPLEMENTED YET ***') 2750 ! 2751 2966 FORMAT ( ' &MISC CICE0 =',F6.3,', CICEN =',F6.3, & 2752 ', LICE = ',F8.1, ', PMOVE =',F6.3,','/ & 2753 ' XSEED =',F6.3,', FLAGTR = ', I1, & 2754 ', XP =',F6.3,', XR =',F6.3,', XFILT =', F6.3 / & 2755 ' IHM =',I5,', HSPM =',F6.3,', WSM =',F6.3, & 2756 ', WSC =',F6.3,', FLC = ',A/ & 2757 ' NOSW =',I3,', FMICHE =',F6.3,', RWNDC =' , & 2758 F6.3,', FLAGICESOURCE =',L3,','/ & 2759 ' FACBERG =',F4.1,', GSHIFT = ',E11.3,' /') 2760 ! 2761 2976 FORMAT ( ' &OUTS P2SF =',I2,', I1P2SF =',I2,', I2P2SF =',I3,','/& 2762 ' US3D =',I2,', I1US3D =',I3,', I2US3D =',I3,','/& 2763 ' E3D =',I2,', I1E3D =',I3,', I2E3D =',I3,','/& 2764 ' TH1MF =',I2,', I1TH1M =',I3,', I2TH1M =',I3,','/& 2765 ' STH1MF=',I2,', I1STH1M=',I3,', I2STH1M=',I3,','/& 2766 ' TH2MF =',I2,', I1TH2M =',I3,', I2TH2M =',I3,','/& 2767 ' STH2MF=',I2,', I1STH2M=',I3,', I2STH2M=',I3,' /') 2768 ! Page 51 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 2769 2986 FORMAT ( ' &REF1 REFCOAST =',F5.2,', REFFREQ =',F5.2,', REFSLOPE =',F5.3, & ............................................................................1 (1) Recommended relationship between field width 'W' and the number of fractional digits 'D' in this edit descriptor is 'W>=D+3'. 2770 ', REFMAP =',F4.1, ', REFMAPD =',F4.1, ', REFSUBGRID =',F5.2,','/ & 2771 ' REFRMAX=',F5.2,', REFFREQPOW =',F5.2, & 2772 ', REFICEBERG =',F5.2,', REFCOSP_STRAIGHT =',F4.1,' /') 2773 ! 2774 2775 3000 FORMAT (/' The spatial grid: '/ & 2776 ' --------------------------------------------------'/ & 2777 /' Grid type : ',A) 2778 3001 FORMAT ( ' Coordinate system : ',A) 2779 3002 FORMAT ( ' Index closure type : ',A) 2780 3003 FORMAT ( ' Dimensions : ',I6,I8) 2781 3004 FORMAT (/' Increments (deg.) :',2F10.4/ & 2782 ' Longitude range (deg.) :',2F10.4/ & 2783 ' Latitude range (deg.) :',2F10.4) 2784 3005 FORMAT ( ' Increments (km) :',2F8.2/ & 2785 ' X range (km) :',2F8.2/ & 2786 ' Y range (km) :',2F8.2) 2787 3006 FORMAT (/' X-coordinate unit :',I6/ & 2788 ' Scale factor :',F10.4/ & 2789 ' Add offset :',E12.4/ & 2790 ' Layout indicator :',I6/ & 2791 ' Format indicator :',I6) 2792 3007 FORMAT (/' Y-coordinate unit :',I6/ & 2793 ' Scale factor :',F10.4/ & 2794 ' Add offset :',E12.4/ & 2795 ' Layout indicator :',I6/ & 2796 ' Format indicator :',I6) 2797 3008 FORMAT ( ' Format : ',A) 2798 3009 FORMAT ( ' File name : ',A) 2799 972 FORMAT (/' Bottom level unit :',I6/ & 2800 ' Limiting depth (m) :',F8.2/ & 2801 ' Minimum depth (m) :',F8.2/ & 2802 ' Scale factor :',F8.2/ & 2803 ' Layout indicator :',I6/ & 2804 ' Format indicator :',I6) 2805 973 FORMAT ( ' Format : ',A) 2806 974 FORMAT ( ' File name : ',A) 2807 976 FORMAT ( ' Sub-grid information : ',A) 2808 977 FORMAT ( ' Obstructions unit :',I6/ & 2809 ' Scale factor :',F10.4/ & 2810 ' Layout indicator :',I6/ & 2811 ' Format indicator :',I6) 2812 978 FORMAT ( ' Mask information : From file.'/ & 2813 ' Mask unit :',I6/ & 2814 ' Layout indicator :',I6/ & 2815 ' Format indicator :',I6) 2816 1977 FORMAT ( ' Shoreline slope :',I6/ & 2817 ' Scale factor :',F10.4/ & 2818 ' Layout indicator :',I6/ & 2819 ' Format indicator :',I6) 2820 1978 FORMAT ( ' Grain sizes :',I6/ & 2821 ' Scale factor :',F10.4/ & 2822 ' Layout indicator :',I6/ & Page 52 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 2823 ' Format indicator :',I6) 2824 ! 2825 979 FORMAT ( ' Processing ',A) 2826 980 FORMAT (/' Input boundary points : '/ & 2827 ' --------------------------------------------------') 2828 1980 FORMAT (/' Excluded points : '/ & 2829 ' --------------------------------------------------') 2830 981 FORMAT ( ' *** POINT OUTSIDE GRID (SKIPPED), IX, IY =') 2831 1981 FORMAT ( ' *** POINT ALREADY EXCLUDED (SKIPPED), IX, IY =') 2832 982 FORMAT ( ' *** CANNOT CONNECT POINTS, IX, IY =') 2833 985 FORMAT ( ' No boundary points.'/) 2834 986 FORMAT ( ' Number of boundary points :',I6/) 2835 1985 FORMAT ( ' No excluded points.'/) 2836 1986 FORMAT ( ' Number of excluded points :',I6/) 2837 987 FORMAT ( ' Nr.| IX | IY | Long. | Lat. '/ & 2838 ' -----|-----|-----|---------|---------') 2839 1987 FORMAT ( ' Nr.| IX | IY | X | Y '/ & 2840 ' -----|-----|-----|-----------|-----------') 2841 988 FORMAT ( ' ',I4,2(' |',I4),2(' |',F8.2)) 2842 1988 FORMAT ( ' ',I4,2(' |',I4),2(' |',F8.1,'E3')) 2843 989 FORMAT ( ' ') 2844 ! 2845 990 FORMAT (/' Output boundary points : '/ & 2846 ' --------------------------------------------------') 2847 991 FORMAT ( ' File nest',I1,'.ww3 Number of points :',I6/ & 2848 ' Number of spectra :',I6) 2849 992 FORMAT (/' Nr.| Long. | Lat. '/ & 2850 ' -----|---------|---------') 2851 1992 FORMAT (/' Nr.| Long. | Lat. ', & 2852 ' Nr.| Long. | Lat. '/ & 2853 ' -----|---------|---------', & 2854 ' -----|---------|---------') 2855 993 FORMAT ( ' ',I4,2(' |',F8.2)) 2856 1993 FORMAT ( ' ',I4,2(' |',F8.2), & 2857 ' ',I4,2(' |',F8.2)) 2858 994 FORMAT ( ' *** POINT OUTSIDE GRID (SKIPPED) : X,Y =',2F7.2) 2859 995 FORMAT ( ' *** POINT ON LAND (SKIPPED) : X,Y =',2F7.2) 2860 2992 FORMAT (/' Nr.| X | Y '/ & 2861 ' -----|-----------|-----------') 2862 3992 FORMAT (/' Nr.| X | Y ', & 2863 ' Nr.| X | Y '/ & 2864 ' -----|-----------|-----------', & 2865 ' -----|-----------|-----------') 2866 2993 FORMAT ( ' ',I4,2(' |',F8.1,'E3')) 2867 3993 FORMAT ( ' ',I4,2(' |',F8.1,'E3'), & 2868 ' ',I4,2(' |',F8.1,'E3')) 2869 2994 FORMAT ( ' *** POINT OUTSIDE GRID (SKIPPED) : X,Y =',2(F8.1,'E3')) 2870 2995 FORMAT ( ' *** POINT ON LAND (SKIPPED) : X,Y =',2(F8.1,'E3')) 2871 996 FORMAT ( ' No boundary points.'/) 2872 997 FORMAT ( ' Number of boundary points :',I6/ & 2873 ' Number of spectra :',I6/) 2874 ! 2875 999 FORMAT (/' Writing model definition file ...'/) 2876 ! 2877 1000 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGRID : '/ & 2878 ' ERROR IN OPENING INPUT FILE'/ & 2879 ' IOSTAT =',I5/) Page 53 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 2880 ! 2881 1001 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGRID : '/ & 2882 ' PREMATURE END OF INPUT FILE'/) 2883 ! 2884 1002 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGRID : '/ & 2885 ' ERROR IN READING FROM INPUT FILE'/ & 2886 ' IOSTAT =',I5/) 2887 ! 2888 1003 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGRID : '/ & 2889 ' DISCREPANCY IN DECLARED AND READ SPECTRAL DIMENSIONS'/ & 2890 ' DECLARED NK, NTH : ',2I8/ & 2891 ' READ NK, NTH : ',2I8/) 2892 ! 2893 1004 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGRID : '/ & 2894 ' CANNOT READ UNFORMATTED (IDFM = 3) FROM UNIT', & 2895 I4,' (multiwavegrid.inp)'/) 2896 ! 2897 1005 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGRID : '/ & 2898 ' BOTTOM AND OBSTRUCTION DATA FROM SAME FILE '/ & 2899 ' BUT WITH INCOMPATIBLE FORMATS (',I1,',',I1,')'/) 2900 ! 2901 1006 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGRID :'/ & 2902 ' TOO MANY NESTING OUTPUT FILES '/) 2903 ! 2904 1007 FORMAT (/' *** WAVEWATCH-III ERROR IN WAVEGRID :'/ & 2905 ' ILLEGAL GRID TYPE:',A4) 2906 ! 2907 1008 FORMAT (/' *** WAVEWATCH-III ERROR IN WAVEGRID :'/ & 2908 ' A CARTESIAN WITH CLOSURE IS NOT ALLOWED') 2909 ! 2910 1009 FORMAT (/' *** WAVEWATCH-III ERROR IN WAVEGRID :'/ & 2911 ' A RECTILINEAR TRIPOLE GRID IS NOT ALLOWED') 2912 ! 2913 1010 FORMAT (/' *** WAVEWATCH-III ERROR IN WAVEGRID :'// & 2914 ' NO PROPAGATION + NO SOURCE TERMS = NO WAVE MODEL'// & 2915 ' ( USE DRY RUN FLAG TO TEMPORARILY SWITCH OFF ', & 2916 'CALCULATIONS )'/) 2917 ! 2918 1011 FORMAT (/' *** WAVEWATCH-III WARNING IN WAVEGRID :'/ & 2919 ' LEFT-HANDED GRID -- POSSIBLE CAUSE IS WRONG '/ & 2920 ' IDLA:',I4,' . THIS MAY PRODUCE ERRORS '/ & 2921 ' (COMMENT THIS EXTCDE AT YOUR OWN RISK).') 2922 ! 2923 1012 FORMAT (/' *** WAVEWATCH-III ERROR IN WAVEGRID :'/ & 2924 ' ILLEGAL GRID CLOSURE TYPE:',A4) 2925 ! 2926 1013 FORMAT (/' *** WAVEWATCH-III WARNING IN WAVEGRID :'/ & 2927 ' THE GLOBAL (LOGICAL) INPUT FLAG IS DEPRECATED'/ & 2928 ' AND REPLACED WITH A STRING INDICATING THE TYPE'/ & 2929 ' OF GRID INDEX CLOSURE (NONE, SMPL or TRPL).'/ & 2930 ' *** PLEASE UPDATE YOUR GRID INPUT FILE ACCORDINGLY ***'/) 2931 ! 2932 1020 FORMAT (/' *** WAVEWATCH-III ERROR IN WAVEGRID :'/ & 2933 ' SOURCE TERMS REQUESTED BUT NOT SELECTED'/) 2934 1021 FORMAT (/' *** WAVEWATCH III WARNING IN WAVEGRID :'/ & 2935 ' SOURCE TERMS SELECTED BUT NOT REQUESTED'/) 2936 1022 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGRID :'/ & Page 54 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 2937 ' ILLEGAL NUMBER OF !/LNn OR SEED SWITCHES :',I3) 2938 1023 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGRID :'/ & 2939 ' ILLEGAL NUMBER OF !/STn SWITCHES :',I3) 2940 1024 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGRID :'/ & 2941 ' ILLEGAL NUMBER OF !/NLn SWITCHES :',I3) 2942 1025 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGRID :'/ & 2943 ' ILLEGAL NUMBER OF !/BTn SWITCHES :',I3) 2944 1026 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGRID :'/ & 2945 ' ILLEGAL NUMBER OF !/DBn SWITCHES :',I3) 2946 1027 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGRID :'/ & 2947 ' ILLEGAL NUMBER OF !/TRn SWITCHES :',I3) 2948 1028 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGRID :'/ & 2949 ' ILLEGAL NUMBER OF !/BSn SWITCHES :',I3) 2950 1029 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGRID :'/ & 2951 ' ILLEGAL NUMBER OF !/XXn SWITCHES :',I3) 2952 ! 2953 1030 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGRID :'/ & 2954 ' PROPAGATION REQUESTED BUT NO SCHEME SELECTED '/) 2955 1031 FORMAT (/' *** WAVEWATCH III WARNING IN WAVEGRID :'/ & 2956 ' NO PROPAGATION REQUESTED BUT SCHEME SELECTED '/) 2957 1032 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGRID :'/ & 2958 ' NO PROPAGATION SCHEME SELECTED ( use !/PR0 ) '/) 2959 1033 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGRID :'/ & 2960 ' MULTIPLE PROPAGATION SCHEMES SELECTED :',I3/ & 2961 ' CHECK !/PRn SWITCHES'/) 2962 1034 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGRID :'/ & 2963 ' ILLEGAL NUMBER OF !/ICn SWITCHES :',I3) 2964 ! 2965 1100 FORMAT (/' Status map, printed in',I3,' part(s) '/ & 2966 ' -----------------------------------'/) 2967 1101 FORMAT (2X,180I1) 2968 1102 FORMAT ( ' Legend : '/ & 2969 ' -----------------------------'/ & 2970 ' 0 : Land point '/ & 2971 ' 1 : Sea point '/ & 2972 ' 2 : Active boundary point '/ & 2973 ' 3 : Excluded point '/) 2974 1103 FORMAT (/' Obstruction map ',A1,', printed in',I3,' part(s) '/ & 2975 ' ---------------------------------------------'/) 2976 1104 FORMAT ( ' Legend : '/ & 2977 ' --------------------------------'/ & 2978 ' fraction of obstruction * 10 '/) 2979 2980 1105 FORMAT (/' Shoreline slope, printed in',I3,' part(s) '/ & 2981 ' ---------------------------------------------'/) 2982 1106 FORMAT ( ' Legend : '/ & 2983 ' --------------------------------'/ & 2984 ' Slope * 100'/) 2985 2986 2987 1150 FORMAT (/' Reading unstructured grid definition files ...'/) 2988 ! 2989 9997 FORMAT (/' Summary grid statistics : '/ & 2990 ' --------------------------------------------------'/ & 2991 ' Number of longitudes :',I10/ & 2992 ' Number of latitides :',I10/ & 2993 ' Number of grid points :',I10/ & Page 55 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 2994 ' Number of sea points :',I10,' (',F4.1,'%)'/& 2995 ' Number of input b. points :',I10/ & 2996 ' Number of land points :',I10/ & 2997 ' Number of excluded points :',I10/) 2998 9998 FORMAT (/' Summary grid statistics : '/ & 2999 ' --------------------------------------------------'/ & 3000 ' Number of longitudes :',I10/ & 3001 ' Number of latitides :',I10/ & 3002 ' Number of grid points :',I10/ & 3003 ' Number of sea points :',I10,' (100%)'/ & 3004 ' Number of input b. points :',I10/ & 3005 ' Number of land points :',I10/ & 3006 ' Number of excluded points :',I10/) 3007 9999 FORMAT (/' End of program '/ & 3008 ' ========================================'/ & 3009 ' WAVEWATCH III Grid preprocessor '/) 3010 ! 3011 !/ 3012 !/ Internal function READNL ------------------------------------------ / 3013 !/ 3014 CONTAINS 3015 !/ ------------------------------------------------------------------- / 3016 SUBROUTINE READNL ( NDS, NAME, STATUS ) 3017 !/ 3018 !/ +-----------------------------------+ 3019 !/ | WAVEWATCH III NOAA/NCEP | 3020 !/ | H. L. Tolman | 3021 !/ | FORTRAN 90 | 3022 !/ | Last update : 01-Jun-2013 | 3023 !/ +-----------------------------------+ 3024 !/ 3025 ! 1. Purpose : 3026 ! 3027 ! Read namelist info from file if namelist is found in file. 3028 ! 3029 ! 2. Method : 3030 ! 3031 ! Look for namelist with name NAME in unit NDS and read if found. 3032 ! 3033 ! 3. Parameters : 3034 ! 3035 ! Parameter list 3036 ! ---------------------------------------------------------------- 3037 ! NDS Int. I Data set number used for search. 3038 ! NAME C*4 I Name of namelist. 3039 ! STATUS C*20 O Status at end of routine, 3040 ! '(default values) ' if no namelist found. 3041 ! '(user def. values)' if namelist read. 3042 ! ---------------------------------------------------------------- 3043 ! 3044 ! 4. Subroutines used : 3045 ! 3046 ! Name Type Module Description 3047 ! ---------------------------------------------------------------- 3048 ! EXTCDE Subr. W3SERVMD Abort program as graceful as possible. 3049 ! ---------------------------------------------------------------- 3050 ! Page 56 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 3051 ! 5. Called by : 3052 ! 3053 ! Program in which it is contained. 3054 ! 3055 ! 6. Error messages : 3056 ! 3057 ! 7. Remarks : 3058 ! 3059 ! 8. Structure : 3060 ! 3061 ! 9. Switches : 3062 ! 3063 ! 10. Source code : 3064 ! 3065 !/ ------------------------------------------------------------------- / 3066 !/ Parameter list 3067 !/ 3068 INTEGER, INTENT(IN) :: NDS 3069 CHARACTER, INTENT(IN) :: NAME*4 3070 CHARACTER, INTENT(OUT) :: STATUS*20 3071 !/ 3072 !/ ------------------------------------------------------------------- / 3073 !/ Local parameters 3074 !/ 3075 INTEGER :: IERR, I, J 3076 CHARACTER :: LINE*80 3077 !/ 3078 !/ ------------------------------------------------------------------- / 3079 !/ 3080 ! 3081 REWIND (NDS) 3082 STATUS = '(default values) : ' 3083 ! 3084 DO 3085 READ (NDS,'(A)',END=800,ERR=800,IOSTAT=IERR) LINE 3086 DO I=1, 70 3087 IF ( LINE(I:I) .NE. ' ' ) THEN 3088 IF ( LINE(I:I) .EQ. '&' ) THEN 3089 IF ( LINE(I+1:I+4) .EQ. NAME ) THEN 3090 BACKSPACE (NDS) 3091 SELECT CASE(NAME) 3092 CASE('SLN1') 3093 READ (NDS,NML=SLN1,END=801,ERR=802,IOSTAT=J) 3094 CASE('SIN4') 3095 READ (NDS,NML=SIN4,END=801,ERR=802,IOSTAT=J) 3096 CASE('SNL1') 3097 READ (NDS,NML=SNL1,END=801,ERR=802,IOSTAT=J) 3098 CASE('SDS4') 3099 READ (NDS,NML=SDS4,END=801,ERR=802,IOSTAT=J) 3100 CASE('SBT1') 3101 READ (NDS,NML=SBT1,END=801,ERR=802,IOSTAT=J) 3102 CASE('SDB1') 3103 READ (NDS,NML=SDB1,END=801,ERR=802,IOSTAT=J) 3104 CASE('PRO3') 3105 READ (NDS,NML=PRO3,END=801,ERR=802,IOSTAT=J) 3106 CASE('UNST') 3107 READ (NDS,NML=UNST,END=801,ERR=802,IOSTAT=J) Page 57 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 3108 CASE('OUTS') 3109 READ (NDS,NML=OUTS,END=801,ERR=802,IOSTAT=J) 3110 CASE('MISC') 3111 READ (NDS,NML=MISC,END=801,ERR=802,IOSTAT=J) 3112 CASE DEFAULT 3113 GOTO 803 3114 END SELECT 3115 STATUS = '(user def. values) :' 3116 RETURN 3117 END IF 3118 ELSE 3119 EXIT 3120 END IF 3121 ENDIF 3122 END DO 3123 END DO 3124 ! 3125 800 CONTINUE 3126 RETURN 3127 ! 3128 801 CONTINUE 3129 WRITE (NDSE,1001) NAME 3130 CALL EXTCDE(1) 3131 RETURN 3132 ! 3133 802 CONTINUE 3134 WRITE (NDSE,1002) NAME, J 3135 CALL EXTCDE(2) 3136 RETURN 3137 ! 3138 803 CONTINUE 3139 WRITE (NDSE,1003) NAME 3140 CALL EXTCDE(3) 3141 RETURN 3142 ! 3143 ! Formats 3144 ! 3145 1001 FORMAT (/' *** WAVEWATCH III ERROR IN READNL : '/ & 3146 ' PREMATURE END OF FILE IN READING ',A/) 3147 1002 FORMAT (/' *** WAVEWATCH III ERROR IN READNL : '/ & 3148 ' ERROR IN READING ',A,' IOSTAT =',I8/) 3149 1003 FORMAT (/' *** WAVEWATCH III ERROR IN READNL : '/ & 3150 ' NAMELIST NAME ',A,' NOT RECOGNIZED'/) 3151 !/ 3152 !/ End of READNL ----------------------------------------------------- / 3153 !/ 3154 END SUBROUTINE Page 58 Source Listing READNL 2014-09-16 16:58 Entry Points multiwavegrid.f90 ENTRY POINTS Name wavegrid_IP_readnl_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 1001 Label 3145 3129 1002 Label 3147 3134 1003 Label 3149 3139 800 Label 3125 3085 801 Label 3128 3093,3095,3097,3099,3101,3103,3105 ,3107,3109,3111 802 Label 3133 3093,3095,3097,3099,3101,3103,3105 ,3107,3109,3111 803 Label 3138 3113 EXTCDE Subr 3130 470,771,834,845,850,855,860,865,87 0,875,880,885,1138,1147,1152,1431, 1457,1462,1477,1482,1583,1629,1672 ,1711,1808,1816,2076,2416,2548,255 2,2556,3130,3135,3140 I Local 3075 I(4) 4 scalar 3086,3087,3088,3089 IERR Local 3075 I(4) 4 scalar 3085 J Local 3075 I(4) 4 scalar 3093,3095,3097,3099,3101,3103,3105 ,3107,3109,3111,3134 LINE Local 3076 CHAR 80 scalar 3085,3087,3088,3089 MISC Local 3111 scalar 3111 NAME Dummy 3016 CHAR 4 scalar ARG,IN 3089,3091,3129,3134,3139 NDS Dummy 3016 I(4) 4 scalar ARG,IN 3081,3085,3090,3093,3095,3097,3099 ,3101,3103,3105,3107,3109,3111 NDSE Local 3129 I(4) 4 scalar PTR 475,661,667,681,755,770,774,833,84 0,844,849,854,859,864,869,874,879, 884,895,1137,1142,1146,1151,1417,1 430,1433,1455,1461,1470,1474,1476, 1481,1489,1530,1539,1568,1582,1585 ,1609,1614,1628,1631,1655,1663,168 8,1710,1713,1744,1791,1807,1810,18 15,1843,1846,1848,1873,1896,1964,2 075,2078,2102,2105,2191,2324,2339, 2415,2507,2510,2547,2551,2555,3129 ,3134,3139 OUTS Local 3109 scalar 3109 PRO3 Local 3105 scalar 3105 READNL Subr 3016 915,944,985,1034,1072,1083,1122,11 64,1227,1230,1268 SBT1 Local 3101 scalar 3101 SDB1 Local 3103 scalar 3103 SDS4 Local 3099 scalar 3099 SIN4 Local 3095 scalar 3095 SLN1 Local 3093 scalar 3093 SNL1 Local 3097 scalar 3097 Page 59 Source Listing READNL 2014-09-16 16:58 Symbol Table multiwavegrid.f90 Name Object Declared Type Bytes Dimen Elements Attributes References STATUS Dummy 3016 CHAR 20 scalar ARG,OUT 3082,3115 UNST Local 3107 scalar 3107 Page 60 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 3155 !/ 3156 !/ End of WAVEGRID ----------------------------------------------------- / 3157 !/ 3158 END PROGRAM WAVEGRID ENTRY POINTS Name MAIN__ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 1000 Label 2877 2547 1001 Label 2881 2551 1002 Label 2884 2555 1003 Label 2888 1004 Label 2893 1582,1628,1710,1807,2075 1005 Label 2897 1815 1006 Label 2901 2415 1007 Label 2904 1430 1008 Label 2907 1481 1009 Label 2910 1461 1010 Label 2913 770 1011 Label 2918 1663 1012 Label 2923 1476 1013 Label 2926 1470,1474 1020 Label 2932 833 1021 Label 2934 840 1022 Label 2936 844 1023 Label 2938 849 1024 Label 2940 854 1025 Label 2942 859 1026 Label 2944 864 1027 Label 2946 869 1028 Label 2948 874 1029 Label 2950 879 1030 Label 2953 1137 1031 Label 2955 1142 1032 Label 2957 1146 1033 Label 2959 1151 1034 Label 2962 884 1100 Label 2965 2283 1101 Label 2967 2288 1102 Label 2968 2292 1103 Label 2974 1104 Label 2976 1105 Label 2980 1106 Label 2982 1150 Label 2987 1682 1977 Label 2816 1978 Label 2820 1980 Label 2828 2181 Page 61 Source Listing READNL 2014-09-16 16:58 Symbol Table multiwavegrid.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 1981 Label 2831 1982 1985 Label 2835 2183 1986 Label 2836 2185 1987 Label 2839 2157 1988 Label 2842 2173 1992 Label 2851 2371 1993 Label 2856 2382 2000 Label 2546 632,1592,1596,1601,1604,1638,1642, 1647,1650,1721,1724,1730,1733,1823 ,1827,1833,1836,2084,2088,2094,209 7 2001 Label 2550 655,662,668,756,775,896,1418,1490, 1531,1540,1569,1615,1689,1792,1874 ,1897,1965,2340 2002 Label 2554 655,662,668,756,775,896,1418,1490, 1531,1540,1569,1615,1689,1792,1874 ,1897,1965,2340 2222 Label 2558 2542 2820 Label 2618 1328 2920 Label 2639 1333 2922 Label 2655 1336 2924 Label 2664 1338 2926 Label 2685 1344 2928 Label 2691 1346,1348 2951 Label 2703 1518 2953 Label 2710 1350 2956 Label 2713 1352 2961 Label 2719 1286 2966 Label 2751 1363,1368 2976 Label 2761 1355 2986 Label 2769 2992 Label 2860 2367 2993 Label 2866 2403 2994 Label 2869 2995 Label 2870 3000 Label 2775 1422,1425,1428 3001 Label 2778 1437,1440 3002 Label 2779 1450,1453,1459,1469,1473 3003 Label 2780 1493 3004 Label 2781 1546 3005 Label 2784 1550 3006 Label 2787 1575 3007 Label 2792 1621 3008 Label 2797 1576,1622 3009 Label 2798 1578,1624 3992 Label 2862 2373 3993 Label 2867 2389 4970 Label 2740 1231 4971 Label 2742 1264 4972 Label 2743 1265 4973 Label 2744 1266 4980 Label 2746 4981 Label 2748 4989 Label 2749 820 Label 2613 916 Page 62 Source Listing READNL 2014-09-16 16:58 Symbol Table multiwavegrid.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 821 Label 2615 920 900 Label 2580 638 901 Label 2582 657 902 Label 2583 663 903 Label 2584 677 904 Label 2588 678 905 Label 2589 679 910 Label 2593 754 911 Label 2595 767 912 Label 2601 784 913 Label 2607 915 Label 2608 890 916 Label 2609 904 917 Label 2610 1327 918 Label 2611 1375 920 Label 2621 945 921 Label 2623 946 922 Label 2648 986 923 Label 2650 987 924 Label 2660 1035 925 Label 2662 1036 926 Label 2682 1073 927 Label 2684 1074 928 Label 2687 1084 929 Label 2689 1087 930 Label 2694 1101 932 Label 2696 1105 934 Label 2698 950 Label 2700 1126 951 Label 2702 1157 952 Label 2704 1167 953 Label 2706 1169 954 Label 2708 1171 955 Label 2709 1170,1172 960 Label 2717 1228,1269 961 Label 2722 1289 965 Label 2723 1298 966 Label 2727 1312 967 Label 2734 1318 968 Label 2738 1319 972 Label 2799 1697 973 Label 2805 1698,1800,2070 974 Label 2806 1700,1801,2071 976 Label 2807 1779,1782,1784 977 Label 2808 1799 978 Label 2812 2069 979 Label 2825 1887,1890 980 Label 2826 2148 981 Label 2830 1907,1974 982 Label 2832 1937 985 Label 2833 2151 986 Label 2834 2153 987 Label 2837 2155 988 Label 2841 2171 989 Label 2843 Page 63 Source Listing READNL 2014-09-16 16:58 Symbol Table multiwavegrid.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 990 Label 2845 2318 991 Label 2847 2361 992 Label 2849 2365 993 Label 2855 2399 994 Label 2858 2510 995 Label 2859 2507 996 Label 2871 2529 997 Label 2872 2531 999 Label 2875 2537 9997 Label 2989 2561,2568 9998 Label 2998 2564,2571 9999 Label 3007 2575 AALPHA Local 950 R(4) 4 scalar PTR 950 ABS Func 691 scalar 691,699,1693,1795,1918,1919,2351 ALPHA0 Local 557 R(4) 4 scalar 580,928,946,950,1333 BBETA Local 951 R(4) 4 scalar PTR 951 BETAMAX Local 557 R(4) 4 scalar 580,931,946,951,1333 BJALFA Local 571 R(4) 4 scalar 593,1079,1085,1087,1095,1346,1348 BJFLAG Local 572 L(4) 4 scalar 593,1081,1088,1097,1345 BJGAM Local 571 R(4) 4 scalar 593,1080,1086,1087,1096,1346,1348 CFLTM Local 551 R(4) 4 scalar 595,1159,1168,1169,1178,1350 CICE0 Local 551 R(4) 4 scalar 599,1182,1275,1276,1284,1285,1288, 1289,1363,1368 CICEN Local 551 R(4) 4 scalar 599,1183,1272,1273,1275,1284,1288, 1289,1363,1368 CLATIS Local 2250 R(4) 4 1 1 PTR 2250,2254 CLATS Local 2249 R(4) 4 1 1 PTR 2249,2250,2253 CLGTYPE Param 1424 I(4) 4 scalar 1424,1564 CLIN Local 521 R(4) 4 scalar 579,911,917,920,921,1328 COMSTR Local 543 CHAR 1 scalar 655,656,657,661,667,755,774,895,14 17,1433,1489,1530,1539,1568,1585,1 614,1631,1688,1713,1791,1810,1846, 1873,1896,1964,2078,2102,2339 CONNCT Local 530 L(4) 4 scalar 1897,1914 CONSTANTS Module 464 464 COS Func 690 scalar 690,2249 CSTRG Local 509 CHAR 4 scalar 1418,1447,1466,1476 CTHG0S Local 2251 R(4) 4 1 1 PTR 2251,2255 CTMAX Local 1178 R(4) 4 scalar PTR 1178 DAIR Param 921 R(4) 4 scalar 921 DDEN Local 741 R(4) 4 1 1 PTR 741,747 DDEN2 Local 747 R(4) 4 1 1 PTR 747 DERA Param 2249 R(4) 4 scalar 2249,2251 DISTAB Subr 472 472,643 DMIN Local 1689 R(4) 4 scalar PTR 1689,1692,1697 DSII Local 734 R(4) 4 1 1 PTR 734,736,738,741 DSIP Local 731 R(4) 4 1 1 PTR 731,736 DTCFL Local 775 R(4) 4 scalar PTR 775,784 DTCFLI Local 775 R(4) 4 scalar PTR 775,784 DTH Local 675 R(4) 4 scalar PTR 675,677,688,741,1172,1381,1382,138 3,1385,1388,1390,1392 DTMAX Local 775 R(4) 4 scalar PTR 775,777,783,784 DTMIN Local 775 R(4) 4 scalar PTR 775,783,784 DWAT Param 921 R(4) 4 scalar 921 DXO Local 506 R(4) 4 scalar 2340,2427 Page 64 Source Listing READNL 2014-09-16 16:58 Symbol Table multiwavegrid.f90 Name Object Declared Type Bytes Dimen Elements Attributes References DXYMAX Local 1681 R(4) 4 scalar PTR 1681 DYO Local 506 R(4) 4 scalar 2340,2428 E3D Local 514 I(4) 4 scalar 604,1202,1235,1356 E3DF Local 1235 I(4) 4 2 1 PTR 1235,1236,1237,1238,1239,1240,1241 ,1242,1243,1244,1245,1246,1247,124 8,1249,1266 EC2 Local 708 R(4) 4 1 1 PTR 708,718 ECOS Local 690 R(4) 4 1 1 PTR 690,693,694,696,699,700,708,709,71 6 ES2 Local 707 R(4) 4 1 1 PTR 707,717 ESC Local 709 R(4) 4 1 1 PTR 709,719 ESIN Local 689 R(4) 4 1 1 PTR 689,691,692,701,702,704,707,709,71 5 EXPFSFCT Local 577 L(4) 4 scalar 597,1119,1353,1510,1511 EXPFSN Local 576 L(4) 4 scalar 597,1117,1353,1502,1503 EXPFSPSI Local 576 L(4) 4 scalar 597,1118,1353,1506,1507 FACBERG Local 541 R(4) 4 scalar 601,1225,1366,1371,2197 FACHF Local 504 R(4) 4 scalar 997,1387,1389,1391,1410,1411 FACHFA Local 1410 R(4) 4 scalar PTR 1410 FACHFE Local 1411 R(4) 4 scalar PTR 1411 FACP Local 1299 R(4) 4 scalar PTR 1299 FACSD Local 1291 R(4) 4 scalar PTR 1291 FACTI1 Local 1405 R(4) 4 scalar PTR 1405,1406 FACTI2 Local 1406 R(4) 4 scalar PTR 1406 FACTOR Local 508 R(4) 4 scalar 1436,1439,1546,1547,1548,1550,1551 ,1552,2163,2164,2166,2167,2383,238 4,2386,2387,2390,2391,2393,2394,24 00,2401,2404,2405,2507,2510 FDONLY Local 1097 L(4) 4 scalar PTR 1097 FFACBERG Local 2197 R(4) 4 scalar PTR 2197 FFXFM Local 1059 R(4) 4 scalar PTR 1059 FFXPM Local 1060 R(4) 4 scalar PTR 1060 FHMAX Local 1315 R(4) 4 scalar PTR 1315,1318,1319,1365,1370 FICE0 Local 1276 R(4) 4 scalar PTR 1276,1285 FICEL Local 1277 R(4) 4 scalar PTR 1277 FICEN Local 1273 R(4) 4 scalar PTR 1273 FIRST Local 530 L(4) 4 scalar 1893,1914,1953,2330,2350,2356,2358 FLAGICESOURCE Local 540 L(4) 4 scalar 601,1224,1366,1371,2196 FLAGLL Local 1418 L(4) 4 scalar 1418,1435,1480,1545,2154,2170,2247 ,2364,2370,2381,2398 FLAGTR Local 550 I(4) 4 scalar 599,1188,1271,1283,1288,1363,1368, 1775 FLBPI Local 476 L(4) 4 scalar PTR 476,2149,2150 FLBPO Local 476 L(4) 4 scalar PTR 476,2527,2528 FLBS Local 529 L(4) 4 scalar 805,824,831,838 FLBT Local 528 L(4) 4 scalar 801,830,837 FLC Local 554 L(4) 4 scalar 600,1196,1305 FLCK Local 757 L(4) 4 scalar PTR 757,764,769,1136,1141 FLCOMB Local 478 L(4) 4 scalar PTR 478,1305,1307,1362 FLCTH Local 757 L(4) 4 scalar PTR 757,763,769,1136,1141 FLCX Local 757 L(4) 4 scalar PTR 757,761,769,1136,1141 FLCY Local 757 L(4) 4 scalar PTR 757,762,769,1136,1141 FLDB Local 528 L(4) 4 scalar 803,830,837 FLDRY Local 757 L(4) 4 scalar PTR 757,760 FLIC Local 530 L(4) 4 scalar 802,830,838 Page 65 Source Listing READNL 2014-09-16 16:58 Symbol Table multiwavegrid.f90 Name Object Declared Type Bytes Dimen Elements Attributes References FLICES Local 2196 L(4) 4 scalar PTR 2196 FLINDS Local 528 L(4) 4 scalar 799,829,837 FLLIN Local 528 L(4) 4 scalar 798,829,837 FLNEW Local 530 L(4) 4 scalar 2489,2492,2496 FLNL Local 528 L(4) 4 scalar 800,829,837 FLNMLO Local 532 L(4) 4 scalar 532,613,1326 FLPROP Local 529 L(4) 4 scalar 1129,1136,1141 FLREF Local 529 L(4) 4 scalar 806,832,838 FLSOU Local 757 L(4) 4 scalar PTR 757,765,769,832,839 FLST4 Local 534 L(4) 4 scalar 534,812,971 FLST6 Local 535 L(4) 4 scalar 535,973 FLSTB2 Local 533 L(4) 4 scalar 533,1329 FLTC96 Local 531 L(4) 4 scalar 531,969 FLTR Local 529 L(4) 4 scalar 804,821,831,838 FLXX Local 529 L(4) 4 scalar 807,827,831,838 FMICHE Local 508 R(4) 4 scalar 600,1199,1315 FNAME Local 544 CHAR 60 scalar 1570,1578,1590,1600,1616,1624,1636 ,1646,1690,1700,1719,1729,1751 FNAME2 Local 545 CHAR 60 scalar FNMPRE Local 477 CHAR 80 scalar 477,630,631,891,892,1590,1600,1636 ,1646,1718,1719,1728,1729,1821,182 2,1831,1832,2082,2083,2092,2093,23 19,2320 FR1 Local 674 R(4) 4 scalar PTR 674,679,725,1406 FROM Local 544 CHAR 4 scalar 1570,1577,1589,1599,1616,1623,1635 ,1645,1690,1699,1717,1727,1793,180 1,1820,1830,1875,1879,2071,2081,20 91 FSFCT Local 1511 L(4) 4 scalar PTR 1511 FSHF Local 923 R(4) 4 scalar PTR 923 FSN Local 1503 L(4) 4 scalar PTR 1503 FSNIMP Local 1515 L(4) 4 scalar PTR 1515 FSPM Local 922 R(4) 4 scalar PTR 922 FSPSI Local 1507 L(4) 4 scalar PTR 1507 FTE Local 1381 R(4) 4 scalar PTR 1381 FTF Local 1382 R(4) 4 scalar PTR 1382,1384 FTTR Local 1384 R(4) 4 scalar PTR 1384 FTWL Local 1385 R(4) 4 scalar PTR 1385 FTWN Local 1383 R(4) 4 scalar PTR 1383 FXFM Local 1399 R(4) 4 scalar PTR 1399,1402 FXFM3 Local 560 R(4) 4 scalar 586,1005,1059,1339 FXPM Local 1400 R(4) 4 scalar PTR 1400,1401 FXPM3 Local 560 R(4) 4 scalar 586,1006,1060,1339 GAMMA Local 523 R(4) 4 scalar 592,1070,1074,1075,1344 GNAME Local 662 CHAR 30 scalar PTR 662,663 GRAV Param 921 R(4) 4 scalar 921,989,1060,1075,1299,1383,1385,1 392,1401 GRIDSHIFT Local 1274 R(8) 8 scalar PTR 1274 GSHIFT Local 553 R(8) 8 scalar 601,1185,1274,1366,1371 GSTRG Local 509 CHAR 4 scalar 1418,1419,1430 GSU Local 2432 T_GSU 8 scalar PTR 2432 GTYPE Local 1166 I(4) 4 scalar PTR 1166,1421,1424,1427,1446,1460,1488 ,1501,1523,1524,1704,1868,1905,203 9,2162,2200,2301,2559,2566 HSPM Local 552 R(4) 4 scalar 600,1193,1302 Page 66 Source Listing READNL 2014-09-16 16:58 Symbol Table multiwavegrid.f90 Name Object Declared Type Bytes Dimen Elements Attributes References HSPMIN Local 478 R(4) 4 scalar PTR 478,1302,1312,1364,1369 I1E3D Local 514 I(4) 4 scalar 604,1203,1236,1356 I1P2SF Local 513 I(4) 4 scalar 602,1206,1254,1355 I1STH1M Local 517 I(4) 4 scalar 606,1215,1242,1358 I1STH2M Local 519 I(4) 4 scalar 608,1221,1248,1360 I1TH1M Local 516 I(4) 4 scalar 605,1212,1239,1357 I1TH2M Local 518 I(4) 4 scalar 607,1218,1245,1359 I1US3D Local 515 I(4) 4 scalar 603,1209,1260,1355 I2E3D Local 514 I(4) 4 scalar 604,1204,1237,1356 I2P2SF Local 513 I(4) 4 scalar 602,1207,1255,1355 I2STH1M Local 517 I(4) 4 scalar 606,1216,1243,1358 I2STH2M Local 519 I(4) 4 scalar 608,1222,1249,1360 I2TH1M Local 516 I(4) 4 scalar 605,1213,1240,1357 I2TH2M Local 518 I(4) 4 scalar 607,1219,1246,1359 I2US3D Local 515 I(4) 4 scalar 603,1210,1261,1355 IBA Local 491 I(4) 4 scalar 1924 IBI Local 496 I(4) 4 scalar 2159,2171,2173,2175 ICLOSE Local 1445 I(4) 4 scalar PTR 1445,1449,1452,1458,1468,1472,1480 ,1537,2046,2107 ICLOSE_NONE Param 1445 I(4) 4 scalar 1445,1449,1472,1480,2046,2107 ICLOSE_SMPL Param 1452 I(4) 4 scalar 1452,1468,1537 ICLOSE_TRPL Param 1458 I(4) 4 scalar 1458 IDFM Local 490 I(4) 4 scalar 1570,1573,1575,1576,1581,1588,1610 ,1616,1619,1621,1622,1627,1634,165 6,1690,1695,1697,1698,1709,1716,17 45,1813,1814,1815,1844,1849,2105 IDFT Local 495 I(4) 4 scalar 1792,1797,1799,1800,1806,1813,1814 ,1815,1819,1874,2067,2069,2070,207 4,2080 IDLA Local 490 I(4) 4 scalar 1570,1572,1575,1610,1616,1618,1621 ,1656,1663,1689,1694,1697,1745,179 2,1796,1799,1844,1849,1874,2066,20 69,2105 IDX Local 491 I(4) 4 scalar 1915,1917,1918,1919,1920,1925,1934 IDY Local 491 I(4) 4 scalar 1916,1917,1918,1919,1921,1926,1935 IERR Local 487 I(4) 4 scalar 632,1592,1596,1601,1604,1638,1642, 1647,1650,1721,1724,1730,1733,1824 ,1827,1833,1836,2085,2088,2094,209 7,2547,2555 IFL Local 492 I(4) 4 scalar 767 IHM Local 550 I(4) 4 scalar 600,1192,1301 IHMAX Local 478 I(4) 4 scalar PTR 478,1301,1312,1364,1369 IK Local 487 I(4) 4 scalar 712,713,728,730,731,735,736,740,74 1,745,746,747 ILOOP Local 491 I(4) 4 scalar 1884,1886,1961,2322,2324,2332,2342 ,2360,2457 IMAP Local 501 I(4) 4 scalar 2284,2285,2286 IMAPB Local 502 I(4) 4 scalar IMPFSNIMP Local 577 L(4) 4 scalar 598,1120,1353,1514,1515 INA2I Subr 471 471,2104 INA2R Subr 471 471,1609,1655,1744,1843,1848 INGRID Local 530 L(4) 4 scalar 2432,2441 IP Local 492 I(4) 4 scalar 2380,2382,2383,2384,2385,2386,2387 ,2389,2390,2391,2392,2393,2394,242 5,2427,2428 Page 67 Source Listing READNL 2014-09-16 16:58 Symbol Table multiwavegrid.f90 Name Object Declared Type Bytes Dimen Elements Attributes References IP0 Local 496 I(4) 4 scalar 2376,2378,2379,2380,2397 IPBPO Local 477 I(4) 4 2 1 PTR 477,2487,2493,2498 IPH Local 496 I(4) 4 scalar 2378,2379,2380,2399,2400,2401,2403 ,2404,2405 IPI Local 496 I(4) 4 scalar 2379,2385,2386,2387,2392,2393,2394 IPN Local 496 I(4) 4 scalar 2377,2378,2379,2397 ISBPO Local 477 I(4) 4 1 1 PTR 477,2491,2499 ISEA Local 490 I(4) 4 scalar 2230,2242,2243,2244,2245,2246,2249 ,2250,2251,2253,2254,2255 ISEAI Local 493 I(4) 4 1 4 2482,2486,2491,2499 ISP Local 488 I(4) 4 scalar 744,745,746,747,2277,2278,2279 IST Local 494 I(4) 4 scalar 2490,2491,2493 ITH Local 487 I(4) 4 scalar 687,688,689,690,691,692,693,694,69 6,699,700,701,702,704,707,708,709, 714,715,716,717,718,719 ITH0 Local 487 I(4) 4 scalar 713,715,716,717,718,719 ITRACE Subr 470 470,636 IX Local 490 I(4) 4 scalar 1556,1557,1558,1768,1769,1853,1855 ,1856,1897,1901,1906,1908,1915,192 2,1925,1927,1928,1930,1934,1938,19 45,1946,1951,1965,1969,1973,1975,1 981,1983,1991,1994,1995,2000,2002, 2003,2004,2005,2006,2008,2009,2010 ,2011,2014,2015,2016,2019,2020,202 1,2023,2041,2042,2043,2114,2115,21 16,2120,2121,2122,2124,2139,2141,2 142,2143,2144,2161,2163,2164,2166, 2167,2169,2171,2173,2202,2203,2204 ,2214,2215,2216,2232,2233,2234,223 5,2236,2238,2239,2241,2243,2244,22 45,2248,2268,2269,2288,2435,2437 IX0 Local 490 I(4) 4 scalar 2285,2288 IX1 Local 492 I(4) 4 scalar 1991,2000 IX2 Local 492 I(4) 4 scalar IXN Local 490 I(4) 4 scalar 2286,2288 IXO Local 491 I(4) 4 scalar 1915,1922,1939,1951 IXR Local 493 I(4) 4 1 4 2432,2435,2436,2437,2445,2447,2449 ,2451,2466,2482 IY Local 490 I(4) 4 scalar 1555,1557,1558,1767,1769,1854,1855 ,1856,1897,1901,1906,1908,1916,192 3,1926,1927,1928,1930,1935,1938,19 45,1946,1952,1965,1969,1973,1975,1 981,1983,1992,1994,1995,2001,2002, 2004,2005,2006,2009,2010,2011,2013 ,2014,2015,2016,2018,2019,2020,202 1,2023,2047,2048,2049,2108,2109,21 10,2119,2121,2122,2124,2140,2141,2 142,2143,2144,2160,2163,2164,2169, 2171,2173,2201,2203,2204,2231,2233 ,2234,2235,2236,2238,2239,2241,224 3,2244,2246,2248,2268,2269,2287,22 88,2435,2437 IY1 Local 492 I(4) 4 scalar 1992,2001 IY2 Local 493 I(4) 4 scalar IYN Local 488 I(4) 4 1 6 759,760,761,762,763,764,765,767 Page 68 Source Listing READNL 2014-09-16 16:58 Symbol Table multiwavegrid.f90 Name Object Declared Type Bytes Dimen Elements Attributes References IYO Local 491 I(4) 4 scalar 1916,1923,1939,1952 IYR Local 493 I(4) 4 1 4 2432,2435,2436,2437,2445,2447,2449 ,2451,2466,2482 J Local 493 I(4) 4 scalar 630,631,891,892,1132,1133,1308,131 0,1312,1316,1317,1318,1319,1718,17 19,1728,1729,1821,1822,1831,1832,1 927,1945,1990,2000,2001,2029,2082, 2083,2092,2093,2319,2320,2465,2466 ,2467,2468,2470,2472,2475,2476,248 1,2482,2485,2486,2487,2491,2493,24 98,2499 JJ Local 493 I(4) 4 scalar 1994,2002,2005,2010,2015,2020 KDCON Local 991 R(4) 4 scalar PTR 991 KDCONV Local 569 R(4) 4 scalar 584,979,987,991,1336 KDMIN Local 569 R(4) 4 scalar 584,980,987,992,1336 KDMN Local 992 R(4) 4 scalar PTR 992 LAM Local 990 R(4) 4 scalar PTR 990 LAMBDA Local 569 R(4) 4 scalar 584,968,987,990,1336 LEN_TRIM Func 630 scalar 630,891,1132,1718,1728,1821,1831,2 082,2092,2319 LICE Local 552 R(4) 4 scalar 599,1184,1277,1363,1368 LINE Local 544 CHAR 80 scalar 896,897,900,2344,2345 LOG Func 1405 scalar 1405,1406 MAPFS Local 2223 I(4) 4 2 1 PTR 2223,2243,2482 MAPSF Local 2245 I(4) 4 2 1 PTR 2245,2246 MAPST2 Local 2235 I(4) 4 2 1 PTR 2235,2239 MAPSTA Local 2222 I(4) 4 2 1 PTR 2222,2234,2238,2241,2445,2447,2449 ,2451,2466 MAPTH Local 2279 I(4) 4 1 1 PTR 2279 MAPWN Local 2278 I(4) 4 1 1 PTR 2278 MAX Func 673 scalar 673,674,676,777,783,917,918,919,10 85,1086,1168,1236,1237,1239,1240,1 242,1243,1245,1246,1248,1249,1254, 1255,1262,1263,1272,1275,1278,1293 ,1294,1296,1301,1302,1303,1304,130 6,1315,1491,1492,1532,1535,1536,15 41,1692,1855,1856,1919,2000,2001 MAXX Local 1679 R(4) 4 scalar PTR 1679 MAXY Local 1680 R(4) 4 scalar PTR 1680 MIN Func 676 scalar 676,783,919,1236,1237,1239,1240,12 42,1243,1245,1246,1248,1249,1254,1 255,1262,1263,1272,1275,1304,1855, 1856,2000,2001,2286 MOD Func 2279 scalar 2279,2379,2397 NBA Local 491 I(4) 4 scalar 1919,1924 NBI Local 476 I(4) 4 scalar PTR 476,2136,2144,2149,2153,2562,2564, 2569,2571 NBI2 Local 476 I(4) 4 scalar PTR 476 NBO Local 476 I(4) 4 1 1 PTR 476,2328,2361,2363,2376,2377,2382, 2385,2389,2392,2399,2403,2419,2515 NBO2 Local 476 I(4) 4 1 1 PTR 476,2329,2362,2418,2490,2493,2497, 2498,2499,2531 NBOTOT Local 492 I(4) 4 scalar 2326,2419,2456,2459,2460,2468,2470 ,2472,2476,2486,2487,2493,2498,251 5,2527,2531 Page 69 Source Listing READNL 2014-09-16 16:58 Symbol Table multiwavegrid.f90 Name Object Declared Type Bytes Dimen Elements Attributes References NBT Local 495 I(4) 4 scalar 1998,2023,2028,2137,2143,2182,2185 ,2562,2564,2569,2571 NCOL Local 497 I(4) 4 scalar 497,2282,2285,2286 NDSG Local 486 I(4) 4 scalar 1569,1575,1577,1580,1582,1590,1594 ,1600,1603,1609,1615,1621,1623,162 6,1628,1636,1640,1646,1649,1655,16 89,1697,1699,1708,1710,1719,1723,1 729,1732,1744,1801,1812 NDSI Local 486 I(4) 4 scalar 626,631,654,655,661,662,667,668,75 5,756,774,775,895,896,1417,1418,14 33,1489,1490,1530,1531,1539,1540,1 568,1569,1577,1580,1585,1614,1615, 1623,1626,1631,1688,1689,1699,1708 ,1713,1791,1792,1805,1810,1846,187 3,1874,1896,1897,1964,1965,2073,20 78,2102,2333,2343,2344 NDSI2 Local 486 I(4) 4 scalar 2333,2335,2339,2340 NDSM Local 486 I(4) 4 scalar 628,2538,2540 NDSO Local 475 I(4) 4 scalar PTR 475,638,657,663,677,678,679,754,76 7,784,890,904,916,920,945,946,986, 987,1035,1036,1073,1074,1084,1087, 1089,1091,1094,1101,1105,1126,1157 ,1167,1169,1170,1171,1172,1173,122 8,1231,1264,1265,1266,1269,1286,12 89,1298,1312,1318,1320,1327,1328,1 333,1336,1338,1344,1346,1348,1350, 1352,1355,1363,1368,1375,1422,1425 ,1428,1437,1440,1450,1453,1459,146 9,1473,1493,1518,1546,1550,1575,15 76,1578,1621,1622,1624,1682,1697,1 698,1700,1779,1780,1782,1784,1799, 1800,1801,1860,1887,1890,1907,1908 ,1930,1937,1938,1939,1974,1975,198 2,1983,2069,2070,2071,2148,2151,21 53,2155,2157,2171,2173,2181,2183,2 185,2283,2288,2290,2292,2318,2361, 2365,2367,2371,2373,2382,2389,2399 ,2403,2408,2529,2531,2537,2561,256 4,2568,2571,2575 NDSS Local 486 I(4) 4 scalar 627,892,900,915,944,985,1034,1072, 1083,1122,1164,1227,1230,1268,1324 ,1751,2320,2331,2335,2345,2525 NDST Local 475 I(4) 4 scalar PTR 475,681,1319,1609,1655,1744,1843,1 848,2104,2191,2324 NDSTR Local 486 I(4) 4 scalar 1792,1799,1801,1805,1807,1812,1822 ,1826,1832,1835,1843,1846,1848,187 4,2069,2073,2075,2083,2087,2093,20 96,2102,2104 NDSTRC Local 487 I(4) 4 scalar 634,636 NEXTLN Subr 470 470,661,667,755,774,895,1417,1433, 1489,1530,1539,1568,1585,1614,1631 ,1688,1713,1791,1810,1846,1873,189 6,1964,2078,2102,2339 NFBPO Local 476 I(4) 4 scalar PTR 476,2327,2360,2361,2362,2363,2376, 2377,2382,2385,2389,2392,2399,2403 Page 70 Source Listing READNL 2014-09-16 16:58 Symbol Table multiwavegrid.f90 Name Object Declared Type Bytes Dimen Elements Attributes References ,2413,2414,2418,2419,2490,2493,249 7,2498,2499,2515,2531 NFL Param 485 I(4) 4 scalar 488,767 NK Local 669 I(4) 4 scalar PTR 669,672,679,681,712,728,735,738,74 0,1204,1210,1213,1216,1219,1222,12 36,1237,1239,1240,1242,1243,1245,1 246,1248,1249,1254,1255,1262,1263, 1381,1382,1383,1385,1388,1390,1391 ,1392 NK2 Local 670 I(4) 4 scalar PTR 670 NKI Local 494 I(4) 4 scalar 668,669,670 NLAND Local 495 I(4) 4 scalar 2135,2142,2562,2564,2569,2571 NLPROP Local 522 R(4) 4 scalar 584,970,972,974,976,987,989,1336 NMAP Local 501 I(4) 4 scalar 2282,2283,2284 NMAPB Local 502 I(4) 4 scalar NOSW Local 495 I(4) 4 scalar 601,1197,1198,1306 NOSWLL Local 478 I(4) 4 scalar PTR 478,1306,1312,1365,1370 NPO Local 492 I(4) 4 scalar 2340,2350,2351,2411,2425 NRBS Local 489 I(4) 4 scalar 795,823,873,874 NRBT Local 489 I(4) 4 scalar 791,816,858,859 NRDB Local 489 I(4) 4 scalar 793,818,863,864 NRIC Local 494 I(4) 4 scalar 792,883,884 NRLIN Local 488 I(4) 4 scalar 788,809,843,844 NRNL Local 488 I(4) 4 scalar 790,814,853,854 NRPROP Local 489 I(4) 4 scalar 1128,1134,1145,1150,1151 NRSRCE Local 488 I(4) 4 scalar 789,811,848,849 NRTR Local 489 I(4) 4 scalar 794,820,868,869 NRXX Local 489 I(4) 4 scalar 796,826,878,879 NSEA Local 2134 I(4) 4 scalar PTR 2134,2141,2191,2560,2561,2562,2564 ,2567,2568,2569,2571 NSPEC Local 672 I(4) 4 scalar PTR 672,744,2277 NSTAT Local 495 I(4) 4 scalar 1888,1891,1928,1931,1946,1981,1995 ,2004,2006,2009,2011,2014,2016,201 9,2021,2023,2042,2043,2048,2049,20 65,2122,2233 NTH Local 671 I(4) 4 scalar PTR 671,672,675,677,678,681,687,713,71 4,745,2277,2278,2279 NTHI Local 494 I(4) 4 scalar 668,671 NTRACE Local 487 I(4) 4 scalar 635,636 NX Local 1490 I(4) 4 scalar PTR 1490,1491,1493,1523,1537,1547,1551 ,1556,1609,1655,1738,1744,1752,176 4,1768,1843,1848,1853,1906,1973,20 00,2008,2041,2049,2103,2104,2110,2 114,2120,2139,2161,2191,2202,2214, 2232,2282,2286,2560,2561,2562,2564 ,2567,2568,2569,2571 NY Local 1490 I(4) 4 scalar PTR 1490,1492,1493,1496,1523,1548,1552 ,1555,1609,1655,1738,1744,1752,176 4,1767,1843,1848,1854,1906,1973,20 01,2013,2043,2047,2103,2104,2108,2 116,2119,2140,2160,2191,2201,2231, 2287,2560,2561,2562,2564,2567,2568 ,2569,2571 OBSX Local 526 R(4) 4 2 1 ALC 1738,1741,1752,1757,1843,1855,2268 OBSY Local 526 R(4) 4 2 1 ALC 1738,1742,1752,1758,1848,1856,2269 Page 71 Source Listing READNL 2014-09-16 16:58 Symbol Table multiwavegrid.f90 Name Object Declared Type Bytes Dimen Elements Attributes References P2MSF Local 1253 I(4) 4 1 1 PTR 1253,1254,1255,1264 P2SF Local 513 I(4) 4 scalar 602,1205,1253,1355 PFMOVE Local 1279 R(4) 4 scalar PTR 1279 PI Param 1299 R(4) 4 scalar 1299 PMOVE Local 551 R(4) 4 scalar 600,1186,1278,1279,1363,1368 PNAME Local 543 CHAR 30 scalar 1130,1131,1132,1133,1157 PNAME2 Local 545 CHAR 40 scalar 1504,1508,1512,1516,1518 RADE Param 677 R(4) 4 scalar 677 RADIUS Param 2251 R(4) 4 scalar 2251 RD Local 507 R(4) 4 1 4 2432,2435,2436,2437,2446,2448,2450 ,2452,2467,2468 RDBPO Local 477 R(4) 4 2 1 PTR 477,2468,2470,2472,2476,2486 RDTOT Local 507 R(4) 4 scalar 2464,2472,2476 READMP Local 503 I(4) 4 2 1 ALC 2103,2104,2109,2110,2115,2116,2121 ,2124,2128 READMSH Subr 1751 1751 REAL Func 675 scalar 675,678,688,1537,1547,1548,1551,15 52,1557,1558,2427,2428,2562,2569 REFD Local 527 R(4) 4 2 1 ALC REFD2 Local 527 R(4) 4 2 1 ALC REFS Local 527 R(4) 4 2 1 ALC REFSLOPE Local 541 R(4) 4 scalar RFHF Local 521 R(4) 4 scalar 579,913,919,920,923,1328 RFORM Local 543 CHAR 16 scalar 1570,1576,1610,1616,1622,1656,1690 ,1698,1745,1792,1800,1844,1849,187 4,2070,2105 RFPM Local 521 R(4) 4 scalar 579,912,918,920,922,1328 RFR1 Local 504 R(4) 4 scalar 668,674 RGLGRD Local 538 L(4) 4 scalar 538,2222,2229 RLGTYPE Param 1421 I(4) 4 scalar 1421,1460,1528 RTH0 Local 508 R(4) 4 scalar 668,676,678,688 RWNDC Local 508 R(4) 4 scalar 601,1200,1366,1371 RXFR Local 504 R(4) 4 scalar 668,673 SBTC1 Local 1075 R(4) 4 scalar PTR 1075 SDBC1 Local 1095 R(4) 4 scalar PTR 1095 SDBC2 Local 1096 R(4) 4 scalar PTR 1096 SDSABK Local 564 R(4) 4 scalar 589,1028,1063,1340 SDSBCK Local 564 R(4) 4 scalar 589,1027,1036,1062,1340 SDSBINT Local 565 R(4) 4 scalar 589,1030,1065,1340 SDSBM0 Local 567 R(4) 4 scalar 591,1021,1048,1343 SDSBM1 Local 567 R(4) 4 scalar 591,1022,1049,1343 SDSBM2 Local 567 R(4) 4 scalar 591,1023,1050,1343 SDSBM3 Local 567 R(4) 4 scalar 591,1024,1051,1343 SDSBM4 Local 567 R(4) 4 scalar 591,1025,1052,1343 SDSBR Local 563 R(4) 4 scalar 588,1013,1044,1341 SDSBR2 Local 566 R(4) 4 scalar 588,1026,1053,1341 SDSBRF1 Local 566 R(4) 4 scalar 590,1015,1045,1342 SDSBRF2 Local 566 R(4) 4 scalar 590,1016,1046,1342 SDSBRFDF Local 556 I(4) 4 scalar 590,1014,1047,1342 SDSC1 Local 562 R(4) 4 scalar 586,1003,1037,1338 SDSC2 Local 562 R(4) 4 scalar 587,1008,1036,1038,1338 SDSC4 Local 563 R(4) 4 scalar 587,1010,1040,1338 SDSC5 Local 563 R(4) 4 scalar 588,1011,1041,1338 SDSC6 Local 563 R(4) 4 scalar 588,1012,1042,1338 SDSCOS Local 564 R(4) 4 scalar 590,1019,1055,1341 Page 72 Source Listing READNL 2014-09-16 16:58 Symbol Table multiwavegrid.f90 Name Object Declared Type Bytes Dimen Elements Attributes References SDSCUM Local 562 R(4) 4 scalar 587,1009,1036,1039,1338 SDSDTH Local 564 R(4) 4 scalar 590,1018,1057,1341 SDSHCK Local 565 R(4) 4 scalar 589,1031,1066,1340 SDSISO Local 556 I(4) 4 scalar 588,1020,1054,1341 SDSP Local 563 R(4) 4 scalar 588,1017,1056,1341 SDSPBK Local 564 R(4) 4 scalar 589,1029,1064,1340 SETUGIOBP Subr 2302 2302 SIG Local 730 R(4) 4 1 1 PTR 730,734,738,741,746,1381,1382,1383 ,1385,1388,1390,1391,1392 SIG2 Local 746 R(4) 4 1 1 PTR 746 SIGMA Local 504 R(4) 4 scalar 725,729,730,731 SIGN Func 1920 scalar 1920,1921 SIN Func 689 scalar 689 SINTHP Local 557 R(4) 4 scalar 580,932,946,952,1333 SLNC1 Local 921 R(4) 4 scalar PTR 921 SNLC1 Local 989 R(4) 4 scalar PTR 989 SNLCS1 Local 570 R(4) 4 scalar 585,981,988,993,1337 SNLCS2 Local 570 R(4) 4 scalar 585,982,988,994,1337 SNLCS3 Local 570 R(4) 4 scalar 585,983,988,995,1337 SNLS1 Local 993 R(4) 4 scalar PTR 993 SNLS2 Local 994 R(4) 4 scalar PTR 994 SNLS3 Local 995 R(4) 4 scalar PTR 995 SQRT Func 1318 scalar 1318,1383,1392 SSDSABK Local 1063 R(4) 4 scalar PTR 1063 SSDSBCK Local 1062 R(4) 4 scalar PTR 1062 SSDSBINT Local 1065 R(4) 4 scalar PTR 1065 SSDSBM Local 1048 R(4) 4 1 1 PTR 1048,1049,1050,1051,1052 SSDSBR Local 1044 R(4) 4 scalar PTR 1044 SSDSBR2 Local 1053 R(4) 4 scalar PTR 1053 SSDSBRF1 Local 1045 R(4) 4 scalar PTR 1045 SSDSBRF2 Local 1046 R(4) 4 scalar PTR 1046 SSDSBRFDF Local 1047 I(4) 4 scalar PTR 1047 SSDSC Local 1037 R(4) 4 1 1 PTR 1037,1038,1039,1040,1041,1042,1043 SSDSCOS Local 1055 R(4) 4 scalar PTR 1055 SSDSDTH Local 1057 R(4) 4 scalar PTR 1057 SSDSHCK Local 1066 R(4) 4 scalar PTR 1066 SSDSISO Local 1054 I(4) 4 scalar PTR 1054 SSDSP Local 1056 R(4) 4 scalar PTR 1056 SSDSPBK Local 1064 R(4) 4 scalar PTR 1064 SSINTHP Local 952 R(4) 4 scalar PTR 952 SSTXFTF Local 1393 R(4) 4 scalar PTR 1393 SSTXFTFTAIL Local 1394 R(4) 4 scalar PTR 1394 SSTXFTWN Local 1395 R(4) 4 scalar PTR 1395 SSWELLF Local 957 R(4) 4 1 1 PTR 957,958,959,960,961,962,963 SSWELLFPAR Local 964 I(4) 4 scalar PTR 964 STATUS Local 545 CHAR 20 scalar 915,916,944,945,985,986,1034,1035, 1072,1073,1083,1084,1122,1164,1165 ,1167,1227,1228,1230,1231,1268,126 9,1286 STH1MF Local 517 I(4) 4 scalar 606,1214,1241,1358 STH2MF Local 519 I(4) 4 scalar 608,1220,1247,1360 STXFTF Local 561 R(4) 4 scalar 1387,1393 STXFTFTAIL Local 562 R(4) 4 scalar 1389,1394 STXFTWN Local 561 R(4) 4 scalar 1391,1395 SWELLF Local 559 R(4) 4 scalar 581,933,947,957,1334 Page 73 Source Listing READNL 2014-09-16 16:58 Symbol Table multiwavegrid.f90 Name Object Declared Type Bytes Dimen Elements Attributes References SWELLF2 Local 559 R(4) 4 scalar 582,935,947,958,1334 SWELLF3 Local 559 R(4) 4 scalar 582,936,947,959,1334 SWELLF4 Local 559 R(4) 4 scalar 582,937,947,960,1334 SWELLF5 Local 559 R(4) 4 scalar 582,938,947,961,1335 SWELLF6 Local 560 R(4) 4 scalar 582,939,948,962,1335 SWELLF7 Local 560 R(4) 4 scalar 583,940,948,963,1335 SWELLFPAR Local 556 I(4) 4 scalar 581,934,947,964,1334 SX Local 1531 R(4) 4 scalar PTR 1531,1533,1535,1537,1546,1547,1550 ,1551,1557 SXFR Local 504 R(4) 4 scalar 726,731 SY Local 1531 R(4) 4 scalar PTR 1531,1534,1536,1546,1548,1550,1552 ,1558 TABU_FW Subr 648 648 TAN Func 2251 scalar 2251 TAUWSHELTER Local 558 R(4) 4 scalar 581,941,946,956,1334 TH Local 688 R(4) 4 1 1 PTR 688,689,690 TH1MF Local 516 I(4) 4 scalar 605,1211,1238,1357 TH2MF Local 518 I(4) 4 scalar 607,1217,1244,1359 TMPMAP Local 503 I(4) 4 2 1 ALC 1764,1989,2005,2010,2015,2020,2306 TMPSTA Local 503 I(4) 4 2 1 ALC 1764,1765,1769,1869,1927,1928,1945 ,1946,1981,1989,1994,1995,2002,200 4,2006,2009,2011,2014,2016,2019,20 21,2023,2042,2043,2048,2049,2122,2 124,2141,2142,2143,2144,2169,2222, 2233,2236,2238,2288,2306 TNAME Local 544 CHAR 60 scalar 1793,1801,1822,1832,1875,2071,2083 ,2093 TPI Param 675 R(4) 4 scalar 675,725,1059,1299,1402,1406 TRFLAG Local 1775 I(4) 4 scalar PTR 1775,1776,1778,1781,1787,2267 TRIM Func 1419 scalar 1419,1430,1447,1466,1476,1576,1578 ,1590,1600,1622,1624,1636,1646,169 8,1700,1719,1729 TRNX Local 2225 R(4) 4 2 1 PTR 2225,2268 TRNY Local 2226 R(4) 4 2 1 PTR 2226,2269 TTAUWSHELTER Local 956 R(4) 4 scalar PTR 956 UGOBCAUTO Local 576 L(4) 4 scalar 596,1115,1352,1868,1905 UGOBCDEPTH Local 575 R(4) 4 scalar 596,1116,1352,1869 UG_GETOPENBOUNDARY Subr 1869 1869 UNGTYPE Param 1166 I(4) 4 scalar 1166,1427,1446,1488,1501,1523,1677 ,1704,1868,1905,2039,2162,2200,230 1,2559,2566 US3D Local 515 I(4) 4 scalar 603,1208,1259,1355 US3DF Local 1259 I(4) 4 1 1 PTR 1259,1260,1261,1262,1263,1265 VOF Local 505 R(4) 4 scalar 1569,1575,1610,1615,1621,1656 VSC Local 505 R(4) 4 scalar 1531,1532,1533,1534,1540,1541,1542 ,1543,1569,1575,1610,1615,1621,165 6,1689,1693,1697,1745,1753,1792,17 95,1799,1844,1849 W3ARRYMD Module 471 471 W3DIMS Subr 681 681 W3DIMX Subr 2191 2191 W3DISPMD Module 472 472 W3DMO5 Subr 468 468,2324 W3GDATMD Module 474 474 W3GNTX Subr 2208 2208 Page 74 Source Listing READNL 2014-09-16 16:58 Symbol Table multiwavegrid.f90 Name Object Declared Type Bytes Dimen Elements Attributes References W3GRMP Local 467 scalar 467,2432 W3GRMP_R4 Func 2432 L(4) 4 scalar PRIV 2432 W3GSRUMD Module 467 467 W3IOGR Subr 469 469,2538 W3IOGRMD Module 469 469 W3NMOD Subr 618 618 W3NOUT Subr 468 468,620 W3ODATMD Module 468 468,475,476 W3SERVMD Module 470 470 W3SETG Subr 619 619 W3SETO Subr 468 468,621 W3TRIAMD Module 466 466 WAVEGRID Prog 2 WDCG Local 1175 R(4) 4 scalar PTR 1175 WDTH Local 1176 R(4) 4 scalar PTR 1176 WDTHCG Local 574 R(4) 4 scalar 595,1161,1162,1169,1170,1175,1350 WDTHTH Local 574 R(4) 4 scalar 595,1162,1171,1172,1176,1350 WHITECAPWIDTH Local 563 R(4) 4 scalar 591,1032,1043,1343 WNMEANP Local 561 R(4) 4 scalar 586,1004,1036,1058,1339,1387,1388, 1391,1392 WNMEANPTAIL Local 561 R(4) 4 scalar 1007,1061,1389,1390 WSC Local 552 R(4) 4 scalar 600,1195,1304 WSCUT Local 478 R(4) 4 scalar PTR 478,1304,1312,1365,1370 WSM Local 552 R(4) 4 scalar 600,1194,1303 WSMULT Local 478 R(4) 4 scalar PTR 478,1303,1312,1364,1369 WWNMEANP Local 1058 R(4) 4 scalar PTR 1058 WWNMEANPTAIL Local 1061 R(4) 4 scalar PTR 1061 X Local 506 R(4) 4 scalar 2163,2166,2171,2173,2435,2437 X0 Local 1540 R(4) 4 scalar PTR 1540,1542,1547,1551,1557 XBPO Local 477 R(4) 4 1 1 PTR 477,2383,2386,2390,2393,2400,2404, 2459 XFC Local 1403 R(4) 4 scalar PTR 1403 XFILT Local 551 R(4) 4 scalar 600,1191,1296,1297,1298,1364,1369 XFLT Local 1297 R(4) 4 scalar PTR 1297 XFR Local 673 R(4) 4 scalar PTR 673,679,725,726,729,734,738,1170,1 405,1410,1411 XGRD Local 2203 R(4) 4 2 1 PTR 2203,2215 XGRDIN Local 525 R(4) 4 2 1 ALC 1523,1557,1609,1661,1662,2163,2203 ,2207 XO Local 507 R(4) 4 scalar 2427,2432,2459,2507,2510 XO0 Local 506 R(4) 4 scalar 2340,2427 XP Local 506 R(4) 4 scalar 599,1189,1293,1298,1299,1364,1369 XR Local 552 R(4) 4 scalar 599,1190,1294,1295,1298,1364,1369 XREL Local 1295 R(4) 4 scalar PTR 1295 XSEED Local 552 R(4) 4 scalar 599,1187,1291,1363,1368 XYB Local 1753 R(8) 8 2 1 PTR 1753,2166,2167,2215,2216 Y Local 506 R(4) 4 scalar 2164,2167,2171,2173,2248,2249,2251 Y0 Local 1540 R(4) 4 scalar PTR 1540,1543,1548,1552,1558 YBPO Local 477 R(4) 4 1 1 PTR 477,2384,2387,2391,2394,2401,2405, 2460 YESXNO Local 546 CHAR 6 1 2 612,767,1312,1318 YGRD Local 2204 R(4) 4 2 1 PTR 2204,2216,2248 YGRDIN Local 525 R(4) 4 2 1 ALC 1523,1558,1655,1661,1662,2164,2204 ,2207 YO Local 507 R(4) 4 scalar 2428,2432,2460,2507,2510 Page 75 Source Listing READNL 2014-09-16 16:58 Symbol Table multiwavegrid.f90 Name Object Declared Type Bytes Dimen Elements Attributes References YO0 Local 506 R(4) 4 scalar 2340,2428 Z0MAX Local 557 R(4) 4 scalar 580,929,946,953,1333 Z0RAT Local 558 R(4) 4 scalar 583,930,948,954,1335 ZALP Local 558 R(4) 4 scalar 580,942,946,955,1333 ZB Local 2244 R(4) 4 1 1 PTR 2244 ZBIN Local 526 R(4) 4 2 1 ALC 1738,1744,1752,1753,1769,1869,2244 ,2306 ZLIM Local 506 R(4) 4 scalar 1689,1697,1769 ZWND Local 557 R(4) 4 scalar 580,927,946,949,1333 ZZ0MAX Local 953 R(4) 4 scalar PTR 953 ZZ0RAT Local 954 R(4) 4 scalar PTR 954 ZZALP Local 955 R(4) 4 scalar PTR 955 ZZWND Local 949 R(4) 4 scalar PTR 949 Page 76 Source Listing READNL 2014-09-16 16:58 Subprograms/Common Blocks multiwavegrid.f90 SUBPROGRAMS/COMMON BLOCKS Name Object Declared Type Bytes Dimen Elements Attributes References READNL Subr 3016 915,944,985,1034,1072,1083,1122,11 64,1227,1230,1268 WAVEGRID Prog 2 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 nocc_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 __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 no -fast -fpscomp nofilesfromcmd -fpscomp nogeneral -fpscomp noioformat -fpscomp noldio_spacing Page 77 Source Listing READNL 2014-09-16 16:58 multiwavegrid.f90 -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 -O2 no -pad_source -real_size 32 no -recursive -reentrancy none 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 : /gpfs/gp1/usrx/local/intel/composer_xe_2011_sp1.11.339/compiler/include/,.f,./.f,/usrx/local/intel/composerxe/mkl/include/.f, /usrx/local/intel/composerxe/tbb/include/.f,/gpfs/gp1/usrx/local/intel/composer_xe_2011_sp1.11.339/compiler/include/intel64/.f, /gpfs/gp1/usrx/local/intel/composer_xe_2011_sp1.11.339/compiler/include/.f,/usr/local/include/.f,/usr/lib/gcc/x86_64-redhat-linux/4.4.7/include/.f, /usr/include/.f,/usr/include/.f -list filename : multiwavegrid.lst -o filename : none COMPILER: Intel(R) Fortran 12.1-2100