Page 1 Source Listing GXEXGO 2014-09-16 16:53 multiwavegrads_fields.f90 1 !/ ------------------------------------------------------------------- / 2 PROGRAM WAVEGXFL 3 !/ 4 !/ +-----------------------------------+ 5 !/ | WAVEWATCH III NOAA/NCEP | 6 !/ | H. L. Tolman | 7 !/ | A. Chawla | 8 !/ | J.H.G.M. Alves | 9 !/ | FORTRAN 90 | 10 !/ | Last update : 06-Dec-2010 | 11 !/ +-----------------------------------+ 12 !/ 13 !/ 30-Jun-1999 : Final FORTRAN 77 ( version 1.18 ) 14 !/ 24-Jan-2000 : Upgrade to FORTRAN 90 ( version 2.00 ) 15 !/ 25-Jan-2001 : Cartesian grid version ( version 2.06 ) 16 !/ 29-Jan-2001 : Add output fields 17-18 ( version 2.20 ) 17 !/ 13-Nov-2002 : Add stress vector. ( version 3.00 ) 18 !/ 24-Dec-2004 : Multiple grid version. ( version 3.06 ) 19 !/ 27-Jun-2005 : Adding MAPST2. ( version 3.07 ) 20 !/ 21-Jul-2005 : Add output fields 19-21. ( version 3.07 ) 21 !/ 15-Dec-2005 : Updating MAPST2 for 2-way nest. ( version 3.08 ) 22 !/ 13-Mar-2006 : MSOUT and MBOUT added. ( version 3.09 ) 23 !/ 29-Jun-2006 : Adding file name preamble. ( version 3.09 ) 24 !/ 05-Jul-2006 : Consolidate stress arrays. ( version 3.09 ) 25 !/ 18-Jan-2007 : Update MSOUT/MBOUT treatment. ( version 3.10 ) 26 !/ 28-Mar-2007 : Adding partitioned output. ( version 3.11 ) 27 !/ Adding user slots for outputs. 28 !/ 29-May-2009 : Preparing distribution version. ( version 3.14 ) 29 !/ 30-Oct-2009 : Implement run-time grid selection. ( version 3.14 ) 30 !/ (W. E. Rogers & T. J. Campbell, NRL) 31 !/ 06-Dec-2010 : Change from GLOBAL (logical) to ICLOSE (integer) to 32 !/ specify index closure for a grid. ( version 3.14 ) 33 !/ (T. J. Campbell, NRL) 34 !/ 05-Oct-2011 : Updating to the 53 output parameter ( version 4.05 ) 35 !/ (J-H Alves) 36 !/ 25-Feb-2013 : Adding double-index output fields ( version 4.11 ) 37 !/ 38 !/ 39 !/ Copyright 2009 National Weather Service (NWS), 40 !/ National Oceanic and Atmospheric Administration. All rights 41 !/ reserved. WAVEWATCH III is a trademark of the NWS. 42 !/ No unauthorized use without permission. 43 !/ 44 ! 1. Purpose : 45 ! 46 ! Generate GrADS input files from raw WAVEWATCH data file. 47 ! 48 ! 2. Method : 49 ! 50 ! Data is read from the grid output file out_grd.ww3 (raw data) 51 ! and from the file multiwavegrads_fields.inp ( NDSI, output requests ). 52 ! Model definition and raw data files are read using WAVEWATCH III 53 ! subroutines. 54 ! 55 ! Output files are ww3.ctl and ww3.grads. the output files 56 ! contains a land-sea map, followed by requested fields. See the 57 ! control file for the names of the fields. Page 2 Source Listing GXEXGO 2014-09-16 16:53 multiwavegrads_fields.f90 58 ! 59 ! 3. Parameters : 60 ! 61 ! 4. Subroutines used : 62 ! 63 ! Name Type Module Description 64 ! ---------------------------------------------------------------- 65 ! W3NMOD Subr. W3GDATMD Set number of model. 66 ! W3SETG Subr. Id. Point to selected model. 67 ! W3NDAT Subr. W3WDATMD Set number of model for wave data. 68 ! W3SETW Subr. Id. Point to selected model for wave data. 69 ! W3NAUX Subr. W3ADATMD Set number of model for aux data. 70 ! W3SETA Subr. Id. Point to selected model for aux data. 71 ! ITRACE Subr. W3SERVMD Subroutine tracing initialization. 72 ! STRACE Subr. Id. Subroutine tracing. 73 ! NEXTLN Subr. Id. Get next line from input filw 74 ! EXTCDE Subr. Id. Abort program as graceful as possible. 75 ! STME21 Subr. W3TIMEMD Convert time to string. 76 ! TICK21 Subr. Id. Advance time. 77 ! DSEC21 Func. Id. Difference between times. 78 ! W3IOGR Subr. W3IOGRMD Reading/writing model definition file. 79 ! W3IOGO Subr. W3IOGOMD Reading/writing raw gridded data file. 80 ! W3READFLGRD Subr. W3IOGOMD Reading output fields flags. 81 ! W3EXGO Subr. Internal Execute grid output. 82 ! ---------------------------------------------------------------- 83 ! 84 ! 5. Called by : 85 ! 86 ! None, stand-alone program. 87 ! 88 ! 6. Error messages : 89 ! 90 ! Checks on input, checks in W3IOxx. 91 ! Check on grid type. 92 ! 93 ! 7. Remarks : 94 ! 95 ! - For the Cartesian grid version the X and Y increment are 96 ! artificially converted to long-lat by assuming the 1 degree 97 ! equals 100 km. 98 ! - Curvilinear grids currently not supported. 99 ! 100 ! 8. Structure : 101 ! 102 ! See source code. 103 ! 104 ! 9. Switches : 105 ! 106 ! !/S Enable subroutine tracing. 107 ! 108 ! 10. Source code : 109 ! 110 !/ ------------------------------------------------------------------- / 111 USE CONSTANTS 112 !/ 113 ! USE W3GDATMD, ONLY: W3NMOD, W3SETG 114 USE W3WDATMD, ONLY: W3NDAT, W3SETW Page 3 Source Listing GXEXGO 2014-09-16 16:53 multiwavegrads_fields.f90 115 USE W3ADATMD, ONLY: W3NAUX, W3SETA 116 USE W3ODATMD, ONLY: W3NOUT, W3SETO 117 USE W3IOGRMD, ONLY: W3IOGR 118 USE W3IOGOMD, ONLY: W3READFLGRD, W3IOGO 119 USE W3SERVMD, ONLY : ITRACE, NEXTLN, EXTCDE 120 USE W3TIMEMD, ONLY: STME21, TICK21, DSEC21 121 !/ 122 USE W3GDATMD 123 USE W3WDATMD, ONLY: TIME, WLV, ICE, UST, USTDIR 124 USE W3ADATMD, ONLY: CFLXYMAX, CFLTHMAX, AS, CX, CY, UA, UD, WN, & 125 DW, HS, WLM, T01, T0M1, T02, THM, THS, FP0,& 126 THP0, FP1, THP1, ABA, ABD, UBA, UBD, FCUT, & 127 SXX, SYY, SXY, PHS, PTP, PLP, PTH, PSI, PWS,& 128 PWST, PNR, USERO, TAUOX, TAUOY, TAUWIX, & 129 TAUWIY, PHIAW, PHIOC, TUSX, TUSY, PRMS, TPMS,& 130 USSX, USSY, MSSX, MSSY, MSCX, MSCY, CHARN, & 131 TAUWNX, TAUWNY, BHD, P2SMS, DTDYN, & 132 CGE, T02, BEDFORMS, WHITECAP, TAUBBL, PHIBBL,& 133 CFLXYMAX, CFLTHMAX, CFLKMAX, US3D 134 USE W3ODATMD, ONLY: NDSE, NDST, NDSO, NOGRP, NGRPP, IDOUT, UNDEF,& 135 FLOGRD, FNMPRE, NOSWLL, NOGE 136 ! 137 IMPLICIT NONE 138 !/ 139 !/ ------------------------------------------------------------------- / 140 !/ Local parameters 141 !/ 142 INTEGER :: NDSI, NDSM, NDSOG, NDSDAT, NDSCTL, & 143 NDSTRC, NTRACE, IERR, I,J,K, IFI,IFJ,& 144 TOUT(2), NOUT, TDUM(2), NVAR, IOUT, & 145 IX0, IXN, IY0, IYN, TIME0(2), IH0, & 146 IM0, ID0, IID, IJ0, IOTEST, IINC, IU,& 147 TIMEN(2), JLEN 148 REAL :: DTREQ, DTEST 149 REAL :: FAC, XYMAX 150 CHARACTER :: COMSTR*1, IDTIME*23, IDDDAY*11, & 151 CINC*2 152 CHARACTER*3 :: MNTH(12) 153 CHARACTER*5 :: PARID 154 LOGICAL :: FLONE, FLTWO, FLDIR, FLTRI, FLPRT 155 LOGICAL :: FLREQ(NOGRP,NGRPP), FLOG(NOGRP), & 156 MSOUT, MBOUT, LTEMP(NGRPP) 157 !/ 158 !/ ------------------------------------------------------------------- / 159 !/ 160 DATA TIME0 / -1, 0 / 161 DATA MNTH / 'JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', & 162 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC' / 163 ! 164 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 165 ! 1. IO set-up. 166 ! 167 CALL W3NMOD ( 1, 6, 6 ) 168 CALL W3SETG ( 1, 6, 6 ) 169 CALL W3NDAT ( 6, 6 ) 170 CALL W3SETW ( 1, 6, 6 ) 171 CALL W3NAUX ( 6, 6 ) Page 4 Source Listing GXEXGO 2014-09-16 16:53 multiwavegrads_fields.f90 172 CALL W3SETA ( 1, 6, 6 ) 173 CALL W3NOUT ( 6, 6 ) 174 CALL W3SETO ( 1, 6, 6 ) 175 ! 176 NDSI = 10 177 NDSM = 20 178 NDSOG = 20 179 NDSDAT = 50 180 NDSCTL = 51 181 ! 182 NDSTRC = 6 183 NTRACE = 10 184 ! 185 WRITE (NDSO,900) 186 ! 187 CALL ITRACE ( NDSTRC, NTRACE ) 188 ! 189 JLEN = LEN_TRIM(FNMPRE) 190 OPEN (NDSI,FILE=FNMPRE(:JLEN)//'multiwavegrads_fields.inp',STATUS='OLD', & 191 ERR=800,IOSTAT=IERR) 192 READ (NDSI,'(A)',END=801,ERR=802) COMSTR 193 IF (COMSTR.EQ.' ') COMSTR = '$' 194 WRITE (NDSO,901) COMSTR 195 ! 196 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 197 ! 2. Read model definition file. 198 ! 199 CALL W3IOGR ( 'READ', NDSM ) 200 WRITE (NDSO,920) GNAME 201 IF ( GTYPE .EQ. CLGTYPE ) THEN 202 WRITE(NDSE,*)'PROGRAM WAVEGXFL: '// & 203 'GRADS OUTPUT NOT IMPLEMENTED FOR CURVILINEAR GRIDS. '// & 204 'NOW STOPPING.' 205 CALL EXTCDE ( 1 ) 206 END IF 207 ! 208 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 209 ! 3. Read general data and first fields from file 210 ! 211 CALL W3IOGO ( 'READ', NDSOG, IOTEST ) 212 ! 213 WRITE (NDSO,930) 214 DO I=1, NOGRP 215 DO J=1, NGRPP 216 IF ( FLOGRD(I,J) ) WRITE (NDSO,931) IDOUT(I,J) 217 END DO 218 END DO 219 ! 220 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 221 ! 4. Read requests from input file. 222 ! Output times 223 ! 224 CALL NEXTLN ( COMSTR , NDSI , NDSE ) 225 READ (NDSI,*,END=801,ERR=802) TOUT, DTREQ, NOUT 226 DTREQ = MAX ( 0. , DTREQ ) 227 IF ( DTREQ.EQ.0 ) NOUT = 1 228 NOUT = MAX ( 1 , NOUT ) Page 5 Source Listing GXEXGO 2014-09-16 16:53 multiwavegrads_fields.f90 229 ! 230 CALL STME21 ( TOUT , IDTIME ) 231 WRITE (NDSO,940) IDTIME 232 ! 233 TDUM = 0 234 CALL TICK21 ( TDUM , DTREQ ) 235 CALL STME21 ( TDUM , IDTIME ) 236 IF ( DTREQ .GE. 86400. ) THEN 237 WRITE (IDDDAY,'(I10,1X)') INT(DTREQ/86400.) 238 ELSE 239 IDDDAY = ' ' 240 END IF 241 IDTIME(1:11) = IDDDAY 242 IDTIME(21:23) = ' ' 243 WRITE (NDSO,941) IDTIME, NOUT 244 ! 245 IF ( MOD(NINT(DTREQ),60) .NE. 0 ) GOTO 810 246 ! 247 ! ... Output fields 248 ! 249 FLREQ(:,:)=.FALSE. ! Initialize FLGRD 250 CALL W3READFLGRD ( NDSI, NDSO, 9, NDSE, COMSTR, FLOG, & 251 FLREQ, 1, 1, IERR ) 252 ! 253 ! Reset flags for variables not yet implemented in grads output interface 254 ! 255 ! This needs to be reviewed whenever new parameters are added to the 256 ! grads ctl and data files 257 ! 258 IFI = 3 259 DO IFJ = 1,NOGE(IFI) 260 IF ( FLREQ(IFI,IFJ) ) THEN 261 WRITE (NDSO,946) IDOUT(IFI,IFJ), & 262 '*** NOT YET CODED INTO WAVEGXFL ***' 263 FLREQ(IFI,IFJ) = .FALSE. 264 END IF 265 END DO 266 IFI = 5 267 DO IFJ = 7,10 268 IF ( FLREQ(IFI,IFJ) ) THEN 269 WRITE (NDSO,946) IDOUT(IFI,IFJ), & 270 '*** NOT YET CODED INTO WAVEGXFL ***' 271 FLREQ(IFI,IFJ) = .FALSE. 272 END IF 273 END DO 274 DO IFI = 6,8 275 DO IFJ = 1,NOGE(IFI) 276 IF ( FLREQ(IFI,IFJ) ) THEN 277 WRITE (NDSO,946) IDOUT(IFI,IFJ), & 278 '*** NOT YET CODED INTO WAVEGXFL ***' 279 FLREQ(IFI,IFJ) = .FALSE. 280 END IF 281 END DO 282 END DO 283 IFI = 10 284 DO IFJ = 1,NOGE(IFI) 285 IF ( FLREQ(IFI,IFJ) ) THEN Page 6 Source Listing GXEXGO 2014-09-16 16:53 multiwavegrads_fields.f90 286 WRITE (NDSO,946) IDOUT(IFI,IFJ), & 287 '*** NOT YET CODED INTO WAVEGXFL ***' 288 FLREQ(IFI,IFJ) = .FALSE. 289 END IF 290 END DO 291 IF ( FLREQ(9,5) ) THEN 292 WRITE (NDSO,946) IDOUT(9,5),'*** NOT YET CODED INTO WAVEGXFL ***' 293 FLREQ(9,5) = .FALSE. 294 END IF 295 296 WRITE (NDSO,945) 297 ! 298 NVAR = 1 299 DO IFI=1, NOGRP 300 DO IFJ=1, NGRPP 301 IF ( FLREQ(IFI,IFJ) ) THEN 302 IF ( .NOT. FLOGRD(IFI,IFJ) ) THEN 303 WRITE (NDSO,946) IDOUT(IFI,IFJ),'*** DATA NOT AVAILABLE ***' 304 ELSE 305 WRITE (NDSO,946) IDOUT(IFI,IFJ), ' ' 306 END IF 307 END IF 308 FLREQ(IFI,IFJ) = FLREQ(IFI,IFJ) .AND. FLOGRD(IFI,IFJ) 309 ! 310 ! Note: Whenever number of output parameters change, this needs updating 311 ! 312 ! The grads output type code does NOT cover all the output parameter space!! 313 ! 314 IF ( IFI.EQ.6 .AND. IFJ.EQ.1 ) THEN ! Radiation stresses needs 3D variable setting 315 IF ( FLREQ(IFI,IFJ) ) NVAR = NVAR + 3 316 ELSE IF ( IFI.EQ.4 .AND. IFJ.LE.6 ) THEN 317 IF ( FLREQ(IFI,IFJ) ) NVAR = NVAR + NOSWLL + 1 ! Partitioned parameters 318 ELSE IF ( IFI.EQ.1 .AND. IFJ .EQ. 2 ) THEN 319 IF ( FLREQ(IFI,IFJ) ) NVAR = NVAR + 2 ! Current vector 320 ELSE IF ( IFI.EQ.1 .AND. IFJ.EQ.3 ) THEN 321 IF ( FLREQ(IFI,IFJ) ) NVAR = NVAR + 2 ! Wind vector 322 ELSE IF ( IFI.EQ.5 .AND. IFJ.EQ.1 ) THEN 323 IF ( FLREQ(IFI,IFJ) ) NVAR = NVAR + 2 ! USTAR vector 324 ELSE IF ( IFI.EQ.5 .AND. IFJ.EQ.5 ) THEN 325 IF ( FLREQ(IFI,IFJ) ) NVAR = NVAR + 2 ! TAUWI vector 326 ELSE IF ( IFI.EQ.5 .AND. IFJ.EQ.6 ) THEN 327 IF ( FLREQ(IFI,IFJ) ) NVAR = NVAR + 2 ! TAUWN vector 328 ! ELSE IF ( IFI.EQ.9 .AND. IFJ.EQ.5 ) THEN 329 ! IF ( FLREQ(IFI,IFJ) ) NVAR = NVAR + 2 ! Max angular CFL vector 330 ELSE 331 IF ( FLREQ(IFI,IFJ) ) NVAR = NVAR + 1 ! scalars 332 END IF 333 END DO 334 END DO 335 ! 336 ! ... Grid range 337 ! 338 CALL NEXTLN ( COMSTR , NDSI , NDSE ) 339 READ (NDSI,*,END=801,ERR=802) IX0, IXN, IY0, IYN, MSOUT, MBOUT 340 ! 341 WRITE (NDSO,947) 342 ! Page 7 Source Listing GXEXGO 2014-09-16 16:53 multiwavegrads_fields.f90 343 IX0 = MAX ( 1, IX0 ) 344 IY0 = MAX ( 1, IY0 ) 345 IXN = MIN ( NX, IXN ) 346 IYN = MIN ( NY, IYN ) 347 ! 348 WRITE (NDSO,948) IX0, IXN, IY0, IYN 349 ! 350 IF ( MSOUT ) THEN 351 WRITE (NDSO,950) 'YES/--' 352 ELSE 353 WRITE (NDSO,950) '---/NO' 354 END IF 355 ! 356 IF ( .NOT. MSOUT ) MBOUT = .FALSE. 357 IF ( MBOUT ) THEN 358 WRITE (NDSO,951) 'YES/--' 359 ELSE 360 WRITE (NDSO,951) '---/NO' 361 END IF 362 ! 363 MSOUT = .NOT. MSOUT 364 MBOUT = .NOT. MBOUT 365 ! 366 OPEN (NDSDAT,FILE=FNMPRE(:JLEN)//'ww3.grads',FORM='UNFORMATTED', & 367 ERR=811,IOSTAT=IERR, CONVERT='big_endian') 368 ! 369 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 370 ! 5. Time management. 371 ! 372 IOUT = 0 373 WRITE (NDSO,970) 374 ! 375 DO 376 DTEST = DSEC21 ( TIME , TOUT ) 377 IF ( DTEST .GT. 0. ) THEN 378 CALL W3IOGO ( 'READ', NDSOG, IOTEST ) 379 IF ( IOTEST .EQ. -1 ) THEN 380 WRITE (NDSO,942) 381 GOTO 600 382 END IF 383 CYCLE 384 END IF 385 IF ( DTEST .LT. 0. ) THEN 386 CALL TICK21 ( TOUT , DTREQ ) 387 CYCLE 388 END IF 389 ! 390 IOUT = IOUT + 1 391 CALL STME21 ( TOUT , IDTIME ) 392 WRITE (NDSO,971) IDTIME 393 ! 394 CALL GXEXGO ( NX, NY, NSEA ) 395 TIMEN = TOUT 396 ! 397 IF ( TIME0(1) .EQ. -1 ) TIME0 = TIME 398 ! 399 CALL TICK21 ( TOUT , DTREQ ) Page 8 Source Listing GXEXGO 2014-09-16 16:53 multiwavegrads_fields.f90 400 IF ( IOUT .GE. NOUT ) EXIT 401 END DO 402 ! 403 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 404 ! 6. Close data file and write control file 405 ! 406 600 CONTINUE 407 WRITE (NDSO,980) 408 ! 409 WRITE (NDSO,981) 410 CLOSE (NDSDAT) 411 WRITE (NDSO,982) 412 OPEN (NDSCTL,FILE=FNMPRE(:JLEN)//'ww3.ctl',ERR=812,IOSTAT=IERR) 413 ! 414 IH0 = TIME0(2)/10000 415 IM0 = MOD(TIME0(2)/100,100) 416 ID0 = MOD(TIME0(1),100) 417 IID = MOD(TIME0(1)/100,100) 418 IJ0 = TIME0(1)/10000 419 ! 420 IF ( IOUT .GT. 1 ) DTREQ = DSEC21 ( TIME0, TIMEN ) / REAL(IOUT-1) 421 IF ( IOUT .EQ. 1 ) DTREQ = 3600. 422 IF ( DTREQ .GT. 3599. ) THEN 423 CINC = 'HR' 424 IINC = NINT(DTREQ/3600.) 425 IF ( MOD(NINT(DTREQ),3600) .NE. 0 ) GOTO 820 426 ELSE 427 CINC = 'MN' 428 IINC = NINT(DTREQ/60.) 429 END IF 430 ! 431 WRITE (NDSO,983) IOUT, IH0, IM0, ID0, MNTH(IID), IJ0, IINC, CINC 432 ! 433 IF ( FLAGLL ) THEN 434 FAC = 1. 435 ELSE 436 XYMAX = MAX ( ABS(X0+REAL(IX0-1)*SX), & 437 ABS(X0+REAL(IXN-1)*SX), & 438 ABS(Y0+REAL(IY0-1)*SY), & 439 ABS(Y0+REAL(IYN-1)*SY) ) 440 IF ( XYMAX .LT. 1.E3 ) THEN 441 FAC = 1.E-1 442 ELSE IF ( XYMAX .LT. 1.E4 ) THEN 443 FAC = 1.E-2 444 ELSE IF ( XYMAX .LT. 1.E5 ) THEN 445 FAC = 1.E-3 446 ELSE IF ( XYMAX .LT. 1.E6 ) THEN 447 FAC = 1.E-4 448 ELSE 449 FAC = 1.E-5 450 END IF 451 END IF !FLAGLL 452 ! 453 WRITE (NDSCTL,990) UNDEF, & 454 (1+IXN-IX0), FAC*(X0+REAL(IX0-1)*SX), FAC*SX,& 455 (1+IYN-IY0), FAC*(Y0+REAL(IY0-1)*SY), FAC*SY,& 456 1, 1000., 1., & Page 9 Source Listing GXEXGO 2014-09-16 16:53 multiwavegrads_fields.f90 457 IOUT, IH0, IM0, ID0, MNTH(IID), IJ0, & 458 IINC, CINC, NVAR 459 ! 460 IU = 99 461 WRITE (NDSCTL,991) 'MAP ', 0, IU, 'grid use map ' 462 ! 463 IF ( FLREQ(01,01) ) & 464 WRITE (NDSCTL,991) 'dpt ', 0, IU, 'Water depth ' 465 IF ( FLREQ(01,02) ) & 466 WRITE (NDSCTL,991) 'ucur ', 0, IU, 'Current U (m/s)' 467 IF ( FLREQ(01,02) ) & 468 WRITE (NDSCTL,991) 'vcur ', 0, IU, 'Current V (m/s)' 469 IF ( FLREQ(01,03) ) & 470 WRITE (NDSCTL,991) 'uwnd ', 0, IU, 'Wind U (m/s) ' 471 IF ( FLREQ(01,03) ) & 472 WRITE (NDSCTL,991) 'vwnd ', 0, IU, 'Wind V (m/s) ' 473 IF ( FLREQ(01,04) ) & 474 WRITE (NDSCTL,991) 'ast ', 0, IU, 'AT-SST (degr) ' 475 IF ( FLREQ(01,05) ) & 476 WRITE (NDSCTL,991) 'wlv ', 0, IU, 'Water Level (m)' 477 IF ( FLREQ(01,06) ) & 478 WRITE (NDSCTL,991) 'ice ', 0, IU, 'Ice Conc. (-) ' 479 IF ( FLREQ(02,01) ) & 480 WRITE (NDSCTL,991) 'hs ', 0, IU, 'Wave height (m)' 481 IF ( FLREQ(02,02) ) & 482 WRITE (NDSCTL,991) 'lm ', 0, IU, 'Mean L (m) ' 483 IF ( FLREQ(02,03) ) & 484 WRITE (NDSCTL,991) 't02 ', 0, IU, 'Mean Per Tz (s)' 485 IF ( FLREQ(02,04) ) & 486 WRITE (NDSCTL,991) 't01 ', 0, IU, 'Mean Per Tm (s) ' 487 IF ( FLREQ(02,05) ) & 488 WRITE (NDSCTL,991) 't0m1', 0, IU, 'Mean Per Te (s) ' 489 IF ( FLREQ(02,06) ) & 490 WRITE (NDSCTL,991) 'fp ', 0, IU, 'Peak Freq. (Hz)' 491 IF ( FLREQ(02,07) ) & 492 WRITE (NDSCTL,991) 'dir ', 0, IU, 'Mean Dir. (rad)' 493 IF ( FLREQ(02,08) ) & 494 WRITE (NDSCTL,991) 'spr ', 0, IU, 'Dir. spread ' 495 IF ( FLREQ(02,09) ) & 496 WRITE (NDSCTL,991) 'dp ', 0, IU, 'Peak Dir. (rad)' 497 IF ( FLREQ(04,01) ) THEN 498 PARID = 'phs ' 499 DO I=0, NOSWLL 500 WRITE (PARID(4:5),'(I2.2)') I 501 WRITE (NDSCTL,991) PARID , 0, IU, 'Part. Hs (m) ' 502 END DO 503 END IF 504 IF ( FLREQ(04,02) ) THEN 505 PARID = 'ptp ' 506 DO I=0, NOSWLL 507 WRITE (PARID(4:5),'(I2.2)') I 508 WRITE (NDSCTL,991) PARID , 0, IU, 'Part. Tp (s) ' 509 END DO 510 END IF 511 IF ( FLREQ(04,03) ) THEN 512 PARID = 'plp ' 513 DO I=0, NOSWLL Page 10 Source Listing GXEXGO 2014-09-16 16:53 multiwavegrads_fields.f90 514 WRITE (PARID(4:5),'(I2.2)') I 515 WRITE (NDSCTL,991) PARID , 0, IU, 'Part. L (m) ' 516 END DO 517 END IF 518 IF ( FLREQ(04,04) ) THEN 519 PARID = 'pdir ' 520 DO I=0, NOSWLL 521 WRITE (PARID(4:5),'(I2.2)') I 522 WRITE (NDSCTL,991) PARID , 0, IU, 'Part. Th (deg.)' 523 END DO 524 END IF 525 IF ( FLREQ(04,05) ) THEN 526 PARID = 'pspr ' 527 DO I=0, NOSWLL 528 WRITE (PARID(4:5),'(I2.2)') I 529 WRITE (NDSCTL,991) PARID , 0, IU, 'Part. si (deg.)' 530 END DO 531 END IF 532 IF ( FLREQ(04,06) ) THEN 533 PARID = 'pws ' 534 DO I=0, NOSWLL 535 WRITE (PARID(4:5),'(I2.2)') I 536 WRITE (NDSCTL,991) PARID , 0, IU, 'Part. ws frac. ' 537 END DO 538 END IF 539 IF ( FLREQ(04,07) ) & 540 WRITE (NDSCTL,991) 'tws ', 0, IU, 'Total ws frac. ' 541 IF ( FLREQ(04,08) ) & 542 WRITE (NDSCTL,991) 'pnr ', 0, IU, 'Number of part.' 543 IF ( FLREQ(05,01) ) & 544 WRITE (NDSCTL,991) 'uust ', 0, IU, 'Fr.Vel. U(m/s) ' 545 IF ( FLREQ(05,01) ) & 546 WRITE (NDSCTL,991) 'vust ', 0, IU, 'Fr.Vel. V(m/s) ' 547 IF ( FLREQ(05,02) ) & 548 WRITE (NDSCTL,991) 'cha ', 0, IU, 'Charnock parameter' 549 IF ( FLREQ(05,03) ) & 550 WRITE (NDSCTL,991) 'cge ', 0, IU, 'Energy Flux (W/m)' 551 IF ( FLREQ(05,04) ) & 552 WRITE (NDSCTL,991) 'faw ', 0, IU, 'Air-sea energy flux' 553 IF ( FLREQ(05,05) ) & 554 WRITE (NDSCTL,991) 'utaw ', 0, IU, 'Net wave supp str' 555 IF ( FLREQ(05,05) ) & 556 WRITE (NDSCTL,991) 'vtaw ', 0, IU, 'Net wave supp str' 557 IF ( FLREQ(05,06) ) & 558 WRITE (NDSCTL,991) 'utwa ', 0, IU, 'Neg wave supp str' 559 IF ( FLREQ(05,06) ) & 560 WRITE (NDSCTL,991) 'vtwa ', 0, IU, 'Neg wave supp str' 561 IF ( FLREQ(09,01) ) & 562 WRITE (NDSCTL,991) 'dtd ', 0, IU, 'DTAVG ST (min) ' 563 IF ( FLREQ(09,02) ) & 564 WRITE (NDSCTL,991) 'fc ', 0, IU, 'fcut (Hz) ' 565 IF ( FLREQ(09,03) ) & 566 WRITE (NDSCTL,991) 'cfx ', 0, IU, 'Max CFL XY Prop' 567 IF ( FLREQ(09,04) ) & 568 WRITE (NDSCTL,991) 'cfd ', 0, IU, 'Max CFL TH Prop' 569 ! 570 WRITE (NDSCTL,992) Page 11 Source Listing GXEXGO 2014-09-16 16:53 multiwavegrads_fields.f90 571 ! 572 GOTO 888 573 ! 574 ! Escape locations read errors : 575 ! 576 800 CONTINUE 577 WRITE (NDSE,1000) IERR 578 CALL EXTCDE ( 1 ) 579 ! 580 801 CONTINUE 581 WRITE (NDSE,1001) 582 CALL EXTCDE ( 2 ) 583 ! 584 802 CONTINUE 585 WRITE (NDSE,1002) IERR 586 CALL EXTCDE ( 3 ) 587 ! 588 810 CONTINUE 589 WRITE (NDSE,1010) 590 CALL EXTCDE ( 10 ) 591 ! 592 811 CONTINUE 593 WRITE (NDSE,1011) 594 CALL EXTCDE ( 11 ) 595 ! 596 812 CONTINUE 597 WRITE (NDSE,1012) 598 CALL EXTCDE ( 12 ) 599 ! 600 820 CONTINUE 601 WRITE (NDSE,1020) DTREQ 602 CALL EXTCDE ( 20 ) 603 ! 604 821 CONTINUE 605 WRITE (NDSE,1021) 606 CALL EXTCDE ( 21 ) 607 ! 608 888 CONTINUE 609 WRITE (NDSO,999) 610 ! 611 ! Formats 612 ! 613 900 FORMAT (/12X,' *** WAVEWATCH III GrADS field output postp. *** '/ & 614 12X,'====================================================='/) 615 901 FORMAT ( ' Comment character is ''',A,''''/) 616 ! 617 920 FORMAT ( ' Grid name : ',A/) 618 ! 619 930 FORMAT ( ' Fields in file : '/ & 620 ' --------------------------') 621 931 FORMAT ( ' ',A) 622 ! 623 940 FORMAT (/' Output time data : '/ & 624 ' -----------------------------------------------------'/ & 625 ' First time : ',A) 626 941 FORMAT ( ' Interval : ',A/ & 627 ' Number of requests : ',I4) Page 12 Source Listing GXEXGO 2014-09-16 16:53 multiwavegrads_fields.f90 628 942 FORMAT (/' End of file reached '/) 629 ! 630 945 FORMAT (/' Requested output fields : '/ & 631 ' -----------------------------------------------------') 632 946 FORMAT ( ' ',A,1X,A) 633 ! 634 947 FORMAT (/' Requested discrete grid ranges : '/ & 635 ' -----------------------------------------------------') 636 948 FORMAT ( ' Longitudes : ',2I6/ & 637 ' lattidutes : ',2I6/ & 638 ' Opening file ww3.grads') 639 949 FORMAT ( ' Alternative definition is used ') 640 950 FORMAT ( ' Sea points in mask : ',A) 641 951 FORMAT ( ' Bound. pts. in mask: ',A) 642 ! 643 970 FORMAT (//' Generating file '/ & 644 ' -----------------------------------------------------') 645 971 FORMAT ( ' Data for ',A) 646 ! 647 980 FORMAT (//' Final file management '/ & 648 ' -----------------------------------------------------') 649 981 FORMAT ( ' Closing file ww3.grads') 650 982 FORMAT ( ' Opening file ww3.ctl') 651 983 FORMAT ( ' Number of times : ',I6/ & 652 ' Initial time ID : ',I2.2,':',I2.2,'Z',I2.2,A3,I4/ & 653 ' Time step ID : ',I2,A2) 654 ! 655 990 FORMAT ('DSET ww3.grads'/ & 656 'TITLE WAVEWATCH III gridded data'/ & 657 'OPTIONS sequential'/ & 658 'OPTIONS big_endian'/ & 659 'UNDEF ',F8.1/ & 660 'XDEF ',I4,' LINEAR ',2F12.5/ & 661 'YDEF ',I4,' LINEAR ',2F12.5/ & 662 'ZDEF ',I4,' LINEAR ',2F12.5/ & 663 'TDEF ',I4,' LINEAR ',I6.2,':',I2.2,'Z',I2.2,A3,I4, & 664 2x,I2,A2/ & 665 'VARS ',I4) 666 991 FORMAT (A6,2I4,2X,A15) 667 992 FORMAT ('ENDVARS') 668 ! 669 999 FORMAT (/' End of program '/ & 670 ' ========================================='/ & 671 ' WAVEWATCH III GrADS field output '/) 672 ! 673 1000 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGXFL : '/ & 674 ' ERROR IN OPENING INPUT FILE'/ & 675 ' IOSTAT =',I5/) 676 ! 677 1001 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGXFL : '/ & 678 ' PREMATURE END OF INPUT FILE'/) 679 ! 680 1002 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGXFL : '/ & 681 ' ERROR IN READING FROM INPUT FILE'/ & 682 ' IOSTAT =',I5/) 683 ! 684 1010 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGXFL : '/ & Page 13 Source Listing GXEXGO 2014-09-16 16:53 multiwavegrads_fields.f90 685 ' SMALLEST OUTPUT INCREMENT IS 60 SEC.'/) 686 ! 687 1011 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGXFL : '/ & 688 ' ERROR IN OPENING OUTPUT FILE ww3.grads'/ & 689 ' IOSTAT =',I5/) 690 ! 691 1012 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGXFL : '/ & 692 ' ERROR IN OPENING OUTPUT FILE ww3.ctl'/ & 693 ' IOSTAT =',I5/) 694 ! 695 1020 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGXFL : '/ & 696 ' FIELD INCREMENT > 1HR BUT NOT MULTIPLE',F10.0/) 697 ! 698 1021 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGXFL : '/ & 699 ' UPDATE PARS IN LOOP 610 !!!'/) 700 !/ 701 !/ Internal subroutine GXEXGO ---------------------------------------- / 702 !/ 703 CONTAINS 704 !/ ------------------------------------------------------------------- / 705 SUBROUTINE GXEXGO ( NX, NY, NSEA ) 706 !/ 707 !/ +-----------------------------------+ 708 !/ | WAVEWATCH III NOAA/NCEP | 709 !/ | H. L. Tolman | 710 !/ | FORTRAN 90 | 711 !/ | Last update : 28-Mar-2007 | 712 !/ +-----------------------------------+ 713 !/ 714 !/ 30-Jun-1999 : Final FORTRAN 77 ( version 1.18 ) 715 !/ 24-Jan-2000 : Upgrade to FORTRAN 90 ( version 2.00 ) 716 !/ Massive changes to logistics. 717 !/ 29-Jan-2001 : Add output fields 17-18 ( version 2.20 ) 718 !/ 24-Dec-2004 : Multiple grid version. ( version 3.06 ) 719 !/ 27-Jun-2005 : Adding MAPST2. ( version 3.07 ) 720 !/ 21-Jul-2005 : Add output fields 19-21. ( version 3.07 ) 721 !/ 05-Jul-2006 : Consolidate stress arrays. ( version 3.09 ) 722 !/ 18-Jan-2007 : Update MSOUT/MBOUT treatment. ( version 3.10 ) 723 !/ 28-Mar-2007 : Adding partitioned output. ( version 3.11 ) 724 !/ Adding user slots for outputs. 725 !/ 726 ! 1. Purpose : 727 ! 728 ! Perform actual output for GrADS postprocessing. 729 ! 730 ! 3. Parameters : 731 ! 732 ! Parameter list 733 ! ---------------------------------------------------------------- 734 ! NX/Y Int. I Grid dimensions. 735 ! NSEA Int. I Number of sea points. 736 ! ---------------------------------------------------------------- 737 ! 738 ! Internal parameters 739 ! ---------------------------------------------------------------- 740 ! X1, X2, XX 741 ! R.A. Output fields Page 14 Source Listing GXEXGO 2014-09-16 16:53 multiwavegrads_fields.f90 742 ! ---------------------------------------------------------------- 743 ! 744 ! 4. Subroutines used : 745 ! 746 ! Name Type Module Description 747 ! ---------------------------------------------------------------- 748 ! STRACE Subr. W3SERVMD Subroutine tracing. 749 ! EXTCDE Subr. Id. Abort program as graceful as possible. 750 ! W3S2XY Subr. Id. Convert from storage to spatial grid. 751 ! --------------------------------------------------------------- 752 ! 753 ! 5. Called by : 754 ! 755 ! Main program in which it is contained. 756 ! 757 ! 6. Error messages : 758 ! 759 ! None. 760 ! 761 ! 7. Remarks : 762 ! 763 ! - Note that arrays CX and CY of the main program now contain 764 ! the absolute current speed and direction respectively. 765 ! - VALLND added to assure that map with only land plots in 766 ! GrADS. 767 ! 768 ! 8. Structure : 769 ! 770 ! See source code. 771 ! 772 ! 9. Switches : 773 ! 774 ! !/S Enable subroutine tracing. 775 ! !/T Enable test output. 776 ! 777 ! 10. Source code : 778 ! 779 !/ ------------------------------------------------------------------- / 780 USE W3SERVMD, ONLY: W3S2XY 781 !/ 782 !/ ------------------------------------------------------------------- / 783 !/ Parameter list 784 !/ 785 INTEGER, INTENT(IN) :: NX, NY, NSEA 786 !/ 787 !/ ------------------------------------------------------------------- / 788 !/ Local parameters 789 !/ 790 INTEGER :: IX, IY, J, ISEA, IXL, IXR 791 INTEGER :: MAPXCL(NY,NX), MAPDRY(NY,NX), & 792 MAPICE(NY,NX), MAPLND(NY,NX), & 793 MAPMSK(NY,NX) 794 REAL :: X1(NX,NY), XX(NX,NY), XY(NX,NY), & 795 XA(NX,NY,0:NOSWLL) 796 REAL :: VALLND = 0.001 797 !/ 798 !/ ------------------------------------------------------------------- / Page 15 Source Listing GXEXGO 2014-09-16 16:53 multiwavegrads_fields.f90 799 !/ 800 ! 801 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 802 ! 1. Preparations 803 ! 1.a Write map to file 804 ! 805 MAPXCL = MOD(MAPST2,2) 806 MAPICE = MOD(MAPST2,2) 807 MAPDRY = MOD(MAPST2/2,2) 808 MAPLND = MOD(MAPST2/4,2) 809 MAPMSK = MOD(MAPST2/8,2) 810 ! 811 DO IY=1, NY 812 DO IX=1, NX 813 IF ( MAPSTA(IY,IX).EQ.0 ) THEN 814 IF ( MAPXCL(IY,IX).EQ.1 ) THEN 815 X1(IX,IY) = UNDEF 816 ELSE 817 X1(IX,IY) = VALLND 818 END IF 819 ELSE IF ( MAPSTA(IY,IX).LT.0 ) THEN 820 IF ( MAPMSK(IY,IX).EQ.1 ) THEN 821 X1(IX,IY) = -4. 822 ELSE IF ( MAPLND(IY,IX).EQ.1 ) THEN 823 X1(IX,IY) = VALLND 824 ELSE IF ( MAPICE(IY,IX).EQ.1 .AND. & 825 MAPDRY(IY,IX).EQ.1 ) THEN 826 X1(IX,IY) = -3. 827 ELSE IF ( MAPDRY(IY,IX).EQ.1 ) THEN 828 X1(IX,IY) = -2. 829 ELSE IF ( MAPICE(IY,IX).EQ.1 ) THEN 830 X1(IX,IY) = -1. 831 ELSE 832 X1(IX,IY) = -5. 833 END IF 834 ELSE 835 X1(IX,IY) = REAL(MAPSTA(IY,IX)) 836 IF ( MSOUT ) THEN 837 IF ( MAPSTA(IY,IX) .GT. 0 ) X1(IX,IY) = UNDEF 838 ELSE IF ( MBOUT ) THEN 839 IF ( MAPSTA(IY,IX).EQ.2 .OR. & 840 IY.EQ.1 .OR. IY.EQ.NY .OR. & 841 ( ICLOSE.NE.ICLO_NONE .AND. & 842 (IX.EQ.1 .OR. IX.EQ.NX) ) ) THEN 843 X1(IX,IY) = UNDEF 844 ELSE 845 IXl = 1 + MOD(IX+NX-2,NX) 846 IXR = 1 + MOD(IX,NX) 847 IF ( MAPSTA(IY+1,IXL).EQ.0 .AND. & 848 MAPXCL(IY+1,IXL).EQ.1 ) X1(IX,IY) = UNDEF 849 IF ( MAPSTA(IY+1,IX ).EQ.0 .AND. & 850 MAPXCL(IY+1,IX ).EQ.1 ) X1(IX,IY) = UNDEF 851 IF ( MAPSTA(IY+1,IXR).EQ.0 .AND. & 852 MAPXCL(IY+1,IXR).EQ.1 ) X1(IX,IY) = UNDEF 853 IF ( MAPSTA( IY ,IXR).EQ.0 .AND. & 854 MAPXCL( IY ,IXR).EQ.1 ) X1(IX,IY) = UNDEF 855 IF ( MAPSTA(IY-1,IXR).EQ.0 .AND. & Page 16 Source Listing GXEXGO 2014-09-16 16:53 multiwavegrads_fields.f90 856 MAPXCL(IY-1,IXR).EQ.1 ) X1(IX,IY) = UNDEF 857 IF ( MAPSTA(IY-1,IX ).EQ.0 .AND. & 858 MAPXCL(IY-1,IX ).EQ.1 ) X1(IX,IY) = UNDEF 859 IF ( MAPSTA(IY-1,IXL).EQ.0 .AND. & 860 MAPXCL(IY-1,IXL).EQ.1 ) X1(IX,IY) = UNDEF 861 IF ( MAPSTA( IY ,IXL).EQ.0 .AND. & 862 MAPXCL( IY ,IXL).EQ.1 ) X1(IX,IY) = UNDEF 863 END IF 864 END IF 865 IF ( MSOUT .AND. MAPSTA(IY,IX).EQ.1 ) X1(IX,IY) = UNDEF 866 IF ( MBOUT .AND. MAPSTA(IY,IX).EQ.2 ) X1(IX,IY) = UNDEF 867 END IF 868 VALLND = - VALLND 869 END DO 870 END DO 871 ! 872 WRITE (NDSDAT) ((X1(IX,IY),IX=IX0,IXN),IY=IY0,IYN) 873 ! 874 ! 1.b Initialize arrays 875 ! 876 X1 = UNDEF 877 XX = UNDEF 878 XY = UNDEF 879 XA = UNDEF 880 ! 881 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 882 ! 2. Loop over output fields. 883 ! 884 DO J=1, NOGRP 885 DO K=1, NGRPP 886 ! WRITE(*,*)J,K,FLREQ(J,K) 887 IF ( FLREQ(J,K) ) THEN 888 ! 889 ! Set array dimension flags 890 FLONE = .FALSE. 891 FLTWO = .FALSE. 892 FLDIR = .FALSE. 893 FLTRI = .FALSE. 894 FLPRT = .FALSE. 895 ! 896 ! 2.a Set output arrays and parameters 897 ! 898 ! Water depth 899 ! 900 IF ( J.EQ.1 .AND. K.EQ.1 ) THEN 901 FLONE = .TRUE. 902 CALL W3S2XY ( NSEA, NSEA, NX, NY, DW(1:NSEA) & 903 , MAPSF, X1 ) 904 ! 905 ! Current 906 ! 907 ELSE IF ( J.EQ.1 .AND. K.EQ.2 ) THEN 908 FLTWO = .TRUE. 909 CALL W3S2XY ( NSEA, NSEA, NX, NY, CX(1:NSEA) & 910 , MAPSF, XX ) 911 CALL W3S2XY ( NSEA, NSEA, NX, NY, CY(1:NSEA) & 912 , MAPSF, XY ) Page 17 Source Listing GXEXGO 2014-09-16 16:53 multiwavegrads_fields.f90 913 ! 914 ! Wind speed 915 ! 916 ELSE IF ( J.EQ.1 .AND. K.EQ.3 ) THEN 917 FLTWO = .TRUE. 918 CALL W3S2XY ( NSEA, NSEA, NX, NY, UA(1:NSEA) & 919 , MAPSF, XX ) 920 CALL W3S2XY ( NSEA, NSEA, NX, NY, UD(1:NSEA) & 921 , MAPSF, XY ) 922 ! 923 ! Air-sea temp. dif. 924 ! 925 ELSE IF ( J.EQ.1 .AND. K.EQ.4 ) THEN 926 FLONE = .TRUE. 927 CALL W3S2XY ( NSEA, NSEA, NX, NY, AS(1:NSEA) & 928 , MAPSF, X1 ) 929 ! 930 ! Water level 931 ! 932 ELSE IF ( J.EQ.1 .AND. K.EQ.5 ) THEN 933 FLONE = .TRUE. 934 CALL W3S2XY ( NSEA, NSEA, NX, NY, WLV , MAPSF, X1 ) 935 ! 936 ! Ice concentration 937 ! 938 ELSE IF ( J.EQ.1 .AND. K.EQ.6 ) THEN 939 FLONE = .TRUE. 940 CALL W3S2XY ( NSEA, NSEA, NX, NY, ICE , MAPSF, X1 ) 941 ! 942 ! Significant wave height 943 ! 944 ELSE IF ( J.EQ.2 .AND. K.EQ.1 ) THEN 945 FLONE = .TRUE. 946 CALL W3S2XY ( NSEA, NSEA, NX, NY, HS , MAPSF, X1 ) 947 ! 948 ! Mean wave length 949 ! 950 ELSE IF ( J.EQ.2 .AND. K.EQ.2 ) THEN 951 FLONE = .TRUE. 952 CALL W3S2XY ( NSEA, NSEA, NX, NY, WLM , MAPSF, X1 ) 953 ! 954 ! Mean zero-crossing wave period T02 955 ! 956 ELSE IF ( J.EQ.2 .AND. K.EQ.3 ) THEN 957 FLONE = .TRUE. 958 CALL W3S2XY ( NSEA, NSEA, NX, NY, T02 , MAPSF, X1 ) 959 ! 960 ! Mean wave period Tm 961 ! 962 ELSE IF ( J.EQ.2 .AND. K.EQ.4 ) THEN 963 FLONE = .TRUE. 964 CALL W3S2XY ( NSEA, NSEA, NX, NY, T01 , MAPSF, X1 ) 965 ! 966 ! Mean energy wave period Te 967 ! 968 ELSE IF ( J.EQ.2 .AND. K.EQ.5 ) THEN 969 FLONE = .TRUE. Page 18 Source Listing GXEXGO 2014-09-16 16:53 multiwavegrads_fields.f90 970 CALL W3S2XY ( NSEA, NSEA, NX, NY, T0M1 , MAPSF, X1 ) 971 ! 972 ! Peak period 973 ! 974 ELSE IF ( J.EQ.2 .AND. K.EQ.6 ) THEN 975 FLONE = .TRUE. 976 CALL W3S2XY ( NSEA, NSEA, NX, NY, FP0 , MAPSF, X1 ) 977 ! 978 ! Mean wave direction 979 ! 980 ELSE IF ( J.EQ.2 .AND. K.EQ.7 ) THEN 981 FLONE = .TRUE. 982 CALL W3S2XY ( NSEA, NSEA, NX, NY, THM , MAPSF, X1 ) 983 ! 984 ! Directional spread 985 ! 986 ELSE IF ( J.EQ.2 .AND. K.EQ.8 ) THEN 987 FLONE = .TRUE. 988 CALL W3S2XY ( NSEA, NSEA, NX, NY, THS , MAPSF, X1 ) 989 ! 990 ! Peak direction 991 ! 992 ELSE IF ( J.EQ.2 .AND. K.EQ.9 ) THEN 993 FLONE = .TRUE. 994 CALL W3S2XY ( NSEA, NSEA, NX, NY, THP0 , MAPSF, X1 ) 995 ! 996 ! Partitioned wave heights 997 ! 998 ELSE IF ( J.EQ.4 .AND. K.EQ.1 ) THEN 999 FLPRT = .TRUE. 1000 DO I=0, NOSWLL 1001 CALL W3S2XY ( NSEA, NSEA, NX, NY, PHS(:,I), & 1002 MAPSF, XA(:,:,I) ) 1003 END DO 1004 ! 1005 ! Partitioned peak period 1006 ! 1007 ELSE IF ( J.EQ.4 .AND. K.EQ.2 ) THEN 1008 FLPRT = .TRUE. 1009 DO I=0, NOSWLL 1010 CALL W3S2XY ( NSEA, NSEA, NX, NY, PTP(:,I), & 1011 MAPSF, XA(:,:,I) ) 1012 END DO 1013 ! 1014 ! Partitioned wave leangths (peak) 1015 ! 1016 ELSE IF ( J.EQ.4 .AND. K.EQ.3 ) THEN 1017 FLPRT = .TRUE. 1018 DO I=0, NOSWLL 1019 CALL W3S2XY ( NSEA, NSEA, NX, NY, PLP(:,I), & 1020 MAPSF, XA(:,:,I) ) 1021 END DO 1022 ! 1023 ! Partitioned directions 1024 ! 1025 ELSE IF ( J.EQ.4 .AND. K.EQ.4 ) THEN 1026 FLPRT = .TRUE. Page 19 Source Listing GXEXGO 2014-09-16 16:53 multiwavegrads_fields.f90 1027 DO I=0, NOSWLL 1028 CALL W3S2XY ( NSEA, NSEA, NX, NY, PTH(:,I), & 1029 MAPSF, XA(:,:,I) ) 1030 END DO 1031 ! 1032 ! Partitioned direstional spread 1033 ! 1034 ELSE IF ( J.EQ.4 .AND. K.EQ.5 ) THEN 1035 FLPRT = .TRUE. 1036 DO I=0, NOSWLL 1037 CALL W3S2XY ( NSEA, NSEA, NX, NY, PSI(:,I), & 1038 MAPSF, XA(:,:,I) ) 1039 END DO 1040 ! 1041 ! Partitioned wind sea fraction 1042 ! 1043 ELSE IF ( J.EQ.4 .AND. K.EQ.6 ) THEN 1044 FLPRT = .TRUE. 1045 DO I=0, NOSWLL 1046 CALL W3S2XY ( NSEA, NSEA, NX, NY, PWS(:,I), & 1047 MAPSF, XA(:,:,I) ) 1048 END DO 1049 ! 1050 ! Total wind sea fraction 1051 ! 1052 ELSE IF ( J.EQ.4 .AND. K.EQ.7 ) THEN 1053 FLONE = .TRUE. 1054 CALL W3S2XY ( NSEA, NSEA, NX, NY, PWST ,MAPSF, X1 ) 1055 ! 1056 ! Number of partitions 1057 ! 1058 ELSE IF ( J.EQ.4 .AND. K.EQ.8 ) THEN 1059 FLONE = .TRUE. 1060 CALL W3S2XY ( NSEA, NSEA, NX, NY, PNR , MAPSF, X1 ) 1061 ! 1062 ! Friction velocity 1063 ! 1064 ELSE IF ( J.EQ.5 .AND. K.EQ.1 ) THEN 1065 FLTWO = .TRUE. 1066 CALL W3S2XY ( NSEA, NSEA, NX, NY, UST (1:NSEA) & 1067 , MAPSF, XX ) 1068 CALL W3S2XY ( NSEA, NSEA, NX, NY, USTDIR(1:NSEA) & 1069 , MAPSF, XY ) 1070 ! 1071 ! Charnock parameter 1072 ! 1073 ELSE IF ( J.EQ.5 .AND. K.EQ.2 ) THEN 1074 FLONE = .TRUE. 1075 CALL W3S2XY ( NSEA, NSEA, NX, NY, CHARN , MAPSF, X1 ) 1076 ! 1077 ! Mean energy flux 1078 ! 1079 ELSE IF ( J.EQ.5 .AND. K.EQ.3 ) THEN 1080 FLONE = .TRUE. 1081 CALL W3S2XY ( NSEA, NSEA, NX, NY, CGE , MAPSF, X1 ) 1082 ! 1083 ! Air-sea energy flux Page 20 Source Listing GXEXGO 2014-09-16 16:53 multiwavegrads_fields.f90 1084 ! 1085 ELSE IF ( J.EQ.5 .AND. K.EQ.4 ) THEN 1086 FLONE = .TRUE. 1087 CALL W3S2XY ( NSEA, NSEA, NX, NY, PHIAW , MAPSF, X1 ) 1088 ! 1089 ! Net supported wave stress 1090 ! 1091 ELSE IF ( J.EQ.5 .AND. K.EQ.5 ) THEN 1092 FLTWO = .TRUE. 1093 CALL W3S2XY ( NSEA, NSEA, NX, NY, TAUWIX, MAPSF, XX ) 1094 CALL W3S2XY ( NSEA, NSEA, NX, NY, TAUWIY, MAPSF, XY ) 1095 ! 1096 ! Net supported wave stress 1097 ! 1098 ELSE IF ( J.EQ.5 .AND. K.EQ.6 ) THEN 1099 FLTWO = .TRUE. 1100 CALL W3S2XY ( NSEA, NSEA, NX, NY, TAUWNX, MAPSF, XX ) 1101 CALL W3S2XY ( NSEA, NSEA, NX, NY, TAUWNY, MAPSF, XY ) 1102 ! 1103 ! Average source term time step 1104 ! 1105 ELSE IF ( J.EQ.9 .AND. K.EQ.1 ) THEN 1106 FLONE = .TRUE. 1107 DO ISEA=1, NSEA 1108 IF ( DTDYN(ISEA) .NE. UNDEF ) & 1109 DTDYN(ISEA) = DTDYN(ISEA) / 60. 1110 END DO 1111 CALL W3S2XY ( NSEA, NSEA, NX, NY, DTDYN , MAPSF, X1 ) 1112 ! 1113 ! Cut-off frequency 1114 ! 1115 ELSE IF ( J.EQ.9 .AND. K.EQ.2 ) THEN 1116 FLONE = .TRUE. 1117 CALL W3S2XY ( NSEA, NSEA, NX, NY, FCUT , MAPSF, X1 ) 1118 ! 1119 ! Max CFL step for XY propagation 1120 ! 1121 ELSE IF ( J.EQ.9 .AND. K.EQ.3 ) THEN 1122 FLONE = .TRUE. 1123 CALL W3S2XY ( NSEA, NSEA, NX, NY, CFLXYMAX , MAPSF, X1 ) 1124 ! 1125 ! Max CFL step for directional propagation 1126 ! 1127 ELSE IF ( J.EQ.9 .AND. K.EQ.4 ) THEN 1128 FLONE = .TRUE. 1129 CALL W3S2XY ( NSEA, NSEA, NX, NY, CFLTHMAX , MAPSF, X1 ) 1130 !! 1131 !! Not yet coded onto control file list (section 6 above) 1132 ! 1133 ! Near-bottom amplitude 1134 ! 1135 ELSE IF ( J.EQ.7 .AND. K.EQ.1 ) THEN 1136 FLTWO = .TRUE. 1137 CALL W3S2XY ( NSEA, NSEA, NX, NY, ABA , MAPSF, XX ) 1138 CALL W3S2XY ( NSEA, NSEA, NX, NY, ABD , MAPSF, XY ) 1139 ! 1140 ! Near-bottom velocity Page 21 Source Listing GXEXGO 2014-09-16 16:53 multiwavegrads_fields.f90 1141 ! 1142 ELSE IF ( J.EQ.7 .AND. K.EQ.2 ) THEN 1143 FLTWO = .TRUE. 1144 CALL W3S2XY ( NSEA, NSEA, NX, NY, UBA , MAPSF, XX ) 1145 CALL W3S2XY ( NSEA, NSEA, NX, NY, UBD , MAPSF, XY ) 1146 ! 1147 ! Radiation stresses 1148 ! 1149 ELSE IF ( J.EQ.6 .AND. K.EQ.1 ) THEN 1150 FLTWO = .TRUE. 1151 CALL W3S2XY ( NSEA, NSEA, NX, NY, SXX , MAPSF, X1 ) 1152 CALL W3S2XY ( NSEA, NSEA, NX, NY, SYY , MAPSF, XX ) 1153 CALL W3S2XY ( NSEA, NSEA, NX, NY, SXY , MAPSF, XY ) 1154 ! 1155 ! User defined #1 1156 ! 1157 ELSE IF ( J.EQ.10 .AND. K.EQ.1 ) THEN 1158 FLONE = .TRUE. 1159 CALL W3S2XY ( NSEA, NSEA, NX, NY, USERO(:,1) & 1160 , MAPSF, X1 ) 1161 ! 1162 ! User defined #2 1163 ! 1164 ELSE IF ( J.EQ.10 .AND. K.EQ.2 ) THEN 1165 FLONE = .TRUE. 1166 CALL W3S2XY ( NSEA, NSEA, NX, NY, USERO(:,2) & 1167 , MAPSF, X1 ) 1168 ! 1169 ELSE 1170 WRITE (NDSE,999) 1171 CALL EXTCDE ( 1 ) 1172 ! 1173 END IF 1174 ! 1175 ! 3 Perform output 1176 ! 1177 ! 3D array fields 1178 ! 1179 IF ( FLTRI ) THEN 1180 WRITE (NDSDAT) & 1181 ((X1(IX,IY),IX=IX0,IXN),IY=IY0,IYN) 1182 WRITE (NDSDAT) & 1183 ((XX(IX,IY),IX=IX0,IXN),IY=IY0,IYN) 1184 WRITE (NDSDAT) & 1185 ((XY(IX,IY),IX=IX0,IXN),IY=IY0,IYN) 1186 ! 1187 ! Partitions parameters 1188 ! 1189 ELSE IF ( FLPRT ) THEN 1190 DO I=0, NOSWLL 1191 WRITE (NDSDAT) & 1192 ((XA(IX,IY,I),IX=IX0,IXN),IY=IY0,IYN) 1193 END DO 1194 ! 1195 ! 2D array fields 1196 ! 1197 ELSE IF ( FLTWO ) THEN Page 22 Source Listing GXEXGO 2014-09-16 16:53 multiwavegrads_fields.f90 1198 WRITE (NDSDAT) & 1199 ((XX(IX,IY),IX=IX0,IXN),IY=IY0,IYN) 1200 WRITE (NDSDAT) & 1201 ((XY(IX,IY),IX=IX0,IXN),IY=IY0,IYN) 1202 ! 1203 ! Scalars 1204 ! 1205 ELSE IF ( FLONE ) THEN 1206 WRITE (NDSDAT) & 1207 ((X1(IX,IY),IX=IX0,IXN),IY=IY0,IYN) 1208 END IF 1209 ! 1210 ! ... End of fields loop 1211 ! 1212 END IF 1213 END DO 1214 END DO 1215 ! 1216 RETURN 1217 ! 1218 ! Error escape locations 1219 ! 1220 ! Formats 1221 ! 1222 940 FORMAT (1X,I8,3I3.2,2X,4E12.4) 1223 950 FORMAT (1X,A13,I9.8,I7.6,2(2F8.2,I4), & 1224 1X,A4,F8.4,1X,A10,2I2,1X,A11,I4) 1225 951 FORMAT (1X,2F10.5,2I8) 1226 ! 1227 999 FORMAT (/' *** WAVEWATCH III ERROR IN GXEXGO :'/ & 1228 ' PLEASE UPDATE FIELDS !!! '/) 1229 ! 1230 !/ 1231 !/ End of GXEXGO ----------------------------------------------------- / 1232 !/ 1233 END SUBROUTINE GXEXGO Page 23 Source Listing GXEXGO 2014-09-16 16:53 Entry Points multiwavegrads_fields.f90 ENTRY POINTS Name wavegxfl_IP_gxexgo_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 940 Label 1222 950 Label 1223 951 Label 1225 999 Label 1227 1170 ABA Local 1137 R(4) 4 1 1 PTR 126,1137 ABD Local 1138 R(4) 4 1 1 PTR 126,1138 AS Local 927 R(4) 4 1 1 PTR 124,927 CFLTHMAX Local 1129 R(4) 4 1 1 PTR 124,133,1129 CFLXYMAX Local 1123 R(4) 4 1 1 PTR 124,133,1123 CGE Local 1081 R(4) 4 1 1 PTR 132,1081 CHARN Local 1075 R(4) 4 1 1 PTR 130,1075 CX Local 909 R(4) 4 1 1 PTR 124,909 CY Local 911 R(4) 4 1 1 PTR 124,911 DTDYN Local 1108 R(4) 4 1 1 PTR 131,1108,1109,1111 DW Local 902 R(4) 4 1 1 PTR 125,902 EXTCDE Subr 1171 119,205,578,582,586,590,594,598,60 2,606,1171 FCUT Local 1117 R(4) 4 1 1 PTR 126,1117 FLDIR Local 892 L(4) 4 scalar 892 FLONE Local 890 L(4) 4 scalar 890,901,926,933,939,945,951,957,96 3,969,975,981,987,993,1053,1059,10 74,1080,1086,1106,1116,1122,1128,1 158,1165,1205 FLPRT Local 894 L(4) 4 scalar 894,999,1008,1017,1026,1035,1044,1 189 FLREQ Local 887 L(4) 4 2 200 249,251,260,263,268,271,276,279,28 5,288,291,293,301,308,315,317,319, 321,323,325,327,331,463,465,467,46 9,471,473,475,477,479,481,483,485, 487,489,491,493,495,497,504,511,51 8,525,532,539,541,543,545,547,549, 551,553,555,557,559,561,563,565,56 7,887 FLTRI Local 893 L(4) 4 scalar 893,1179 FLTWO Local 891 L(4) 4 scalar 891,908,917,1065,1092,1099,1136,11 43,1150,1197 FP0 Local 976 R(4) 4 1 1 PTR 125,976 GXEXGO Subr 705 394 HS Local 946 R(4) 4 1 1 PTR 125,946 I Local 1000 I(4) 4 scalar 214,216,499,500,506,507,513,514,52 0,521,527,528,534,535,1000,1001,10 02,1009,1010,1011,1018,1019,1020,1 027,1028,1029,1036,1037,1038,1045, 1046,1047,1190,1192 Page 24 Source Listing GXEXGO 2014-09-16 16:53 Symbol Table multiwavegrads_fields.f90 Name Object Declared Type Bytes Dimen Elements Attributes References ICE Local 940 R(4) 4 1 1 PTR 123,940 ICLOSE Local 841 I(4) 4 scalar PTR 841 ICLO_NONE Param 841 I(4) 4 scalar 841 ISEA Local 790 I(4) 4 scalar 1107,1108,1109 IX Local 790 I(4) 4 scalar 812,813,814,815,817,819,820,821,82 2,823,824,825,826,827,828,829,830, 832,835,837,839,842,843,845,846,84 8,849,850,852,854,856,857,858,860, 862,865,866,872,1181,1183,1185,119 2,1199,1201,1207 IX0 Local 872 I(4) 4 scalar 339,343,348,436,454,872,1181,1183, 1185,1192,1199,1201,1207 IXL Local 790 I(4) 4 scalar 845,847,848,859,860,861,862 IXN Local 872 I(4) 4 scalar 339,345,348,437,454,872,1181,1183, 1185,1192,1199,1201,1207 IXR Local 790 I(4) 4 scalar 846,851,852,853,854,855,856 IY Local 790 I(4) 4 scalar 811,813,814,815,817,819,820,821,82 2,823,824,825,826,827,828,829,830, 832,835,837,839,840,843,847,848,84 9,850,851,852,853,854,855,856,857, 858,859,860,861,862,865,866,872,11 81,1183,1185,1192,1199,1201,1207 IY0 Local 872 I(4) 4 scalar 339,344,348,438,455,872,1181,1183, 1185,1192,1199,1201,1207 IYN Local 872 I(4) 4 scalar 339,346,348,439,455,872,1181,1183, 1185,1192,1199,1201,1207 J Local 790 I(4) 4 scalar 884,887,900,907,916,925,932,938,94 4,950,956,962,968,974,980,986,992, 998,1007,1016,1025,1034,1043,1052, 1058,1064,1073,1079,1085,1091,1098 ,1105,1115,1121,1127,1135,1142,114 9,1157,1164 K Local 885 I(4) 4 scalar 885,887,900,907,916,925,932,938,94 4,950,956,962,968,974,980,986,992, 998,1007,1016,1025,1034,1043,1052, 1058,1064,1073,1079,1085,1091,1098 ,1105,1115,1121,1127,1135,1142,114 9,1157,1164 MAPDRY Local 791 I(4) 4 2 0 807,825,827 MAPICE Local 792 I(4) 4 2 0 806,824,829 MAPLND Local 792 I(4) 4 2 0 808,822 MAPMSK Local 793 I(4) 4 2 0 809,820 MAPSF Local 903 I(4) 4 2 1 PTR 903,910,912,919,921,928,934,940,94 6,952,958,964,970,976,982,988,994, 1002,1011,1020,1029,1038,1047,1054 ,1060,1067,1069,1075,1081,1087,109 3,1094,1100,1101,1111,1117,1123,11 29,1137,1138,1144,1145,1151,1152,1 153,1160,1167 MAPST2 Local 805 I(4) 4 2 1 PTR 805,806,807,808,809 MAPSTA Local 813 I(4) 4 2 1 PTR 813,819,835,837,839,847,849,851,85 3,855,857,859,861,865,866 MAPXCL Local 791 I(4) 4 2 0 805,814,848,850,852,854,856,858,86 0,862 MBOUT Local 838 L(4) 4 scalar 339,356,357,364,838,866 Page 25 Source Listing GXEXGO 2014-09-16 16:53 Symbol Table multiwavegrads_fields.f90 Name Object Declared Type Bytes Dimen Elements Attributes References MOD Func 805 scalar 245,415,416,417,425,805,806,807,80 8,809,845,846 MSOUT Local 836 L(4) 4 scalar 339,350,356,363,836,865 NDSDAT Local 872 I(4) 4 scalar 179,366,410,872,1180,1182,1184,119 1,1198,1200,1206 NDSE Local 1170 I(4) 4 scalar PTR 134,202,224,250,338,577,581,585,58 9,593,597,601,605,1170 NGRPP Param 885 I(4) 4 scalar 134,155,156,215,300,885 NOGRP Param 884 I(4) 4 scalar 134,155,214,299,884 NOSWLL Local 795 I(4) 4 scalar PTR 135,317,499,506,513,520,527,534,79 5,1000,1009,1018,1027,1036,1045,11 90 NSEA Dummy 705 I(4) 4 scalar ARG,IN 902,909,911,918,920,927,934,940,94 6,952,958,964,970,976,982,988,994, 1001,1010,1019,1028,1037,1046,1054 ,1060,1066,1068,1075,1081,1087,109 3,1094,1100,1101,1107,1111,1117,11 23,1129,1137,1138,1144,1145,1151,1 152,1153,1159,1166 NX Dummy 705 I(4) 4 scalar ARG,IN 791,792,793,794,795,812,842,845,84 6,902,909,911,918,920,927,934,940, 946,952,958,964,970,976,982,988,99 4,1001,1010,1019,1028,1037,1046,10 54,1060,1066,1068,1075,1081,1087,1 093,1094,1100,1101,1111,1117,1123, 1129,1137,1138,1144,1145,1151,1152 ,1153,1159,1166 NY Dummy 705 I(4) 4 scalar ARG,IN 791,792,793,794,795,811,840,902,90 9,911,918,920,927,934,940,946,952, 958,964,970,976,982,988,994,1001,1 010,1019,1028,1037,1046,1054,1060, 1066,1068,1075,1081,1087,1093,1094 ,1100,1101,1111,1117,1123,1129,113 7,1138,1144,1145,1151,1152,1153,11 59,1166 PHIAW Local 1087 R(4) 4 1 1 PTR 129,1087 PHS Local 1001 R(4) 4 2 1 PTR 127,1001 PLP Local 1019 R(4) 4 2 1 PTR 127,1019 PNR Local 1060 R(4) 4 1 1 PTR 128,1060 PSI Local 1037 R(4) 4 2 1 PTR 127,1037 PTH Local 1028 R(4) 4 2 1 PTR 127,1028 PTP Local 1010 R(4) 4 2 1 PTR 127,1010 PWS Local 1046 R(4) 4 2 1 PTR 127,1046 PWST Local 1054 R(4) 4 1 1 PTR 128,1054 REAL Func 835 scalar 420,436,437,438,439,454,455,835 SXX Local 1151 R(4) 4 1 1 PTR 127,1151 SXY Local 1153 R(4) 4 1 1 PTR 127,1153 SYY Local 1152 R(4) 4 1 1 PTR 127,1152 T01 Local 964 R(4) 4 1 1 PTR 125,964 T02 Local 958 R(4) 4 1 1 PTR 125,132,958 T0M1 Local 970 R(4) 4 1 1 PTR 125,970 TAUWIX Local 1093 R(4) 4 1 1 PTR 128,1093 TAUWIY Local 1094 R(4) 4 1 1 PTR 129,1094 TAUWNX Local 1100 R(4) 4 1 1 PTR 131,1100 TAUWNY Local 1101 R(4) 4 1 1 PTR 131,1101 Page 26 Source Listing GXEXGO 2014-09-16 16:53 Symbol Table multiwavegrads_fields.f90 Name Object Declared Type Bytes Dimen Elements Attributes References THM Local 982 R(4) 4 1 1 PTR 125,982 THP0 Local 994 R(4) 4 1 1 PTR 126,994 THS Local 988 R(4) 4 1 1 PTR 125,988 UA Local 918 R(4) 4 1 1 PTR 124,918 UBA Local 1144 R(4) 4 1 1 PTR 126,1144 UBD Local 1145 R(4) 4 1 1 PTR 126,1145 UD Local 920 R(4) 4 1 1 PTR 124,920 UNDEF Local 815 R(4) 4 scalar 134,453,815,837,843,848,850,852,85 4,856,858,860,862,865,866,876,877, 878,879,1108 USERO Local 1159 R(4) 4 2 1 PTR 128,1159,1166 UST Local 1066 R(4) 4 1 1 PTR 123,1066 USTDIR Local 1068 R(4) 4 1 1 PTR 123,1068 VALLND Local 796 R(4) 4 scalar 796,817,823,868 W3S2XY Subr 780 780,902,909,911,918,920,927,934,94 0,946,952,958,964,970,976,982,988, 994,1001,1010,1019,1028,1037,1046, 1054,1060,1066,1068,1075,1081,1087 ,1093,1094,1100,1101,1111,1117,112 3,1129,1137,1138,1144,1145,1151,11 52,1153,1159,1166 W3SERVMD Module 780 780 WLM Local 952 R(4) 4 1 1 PTR 125,952 WLV Local 934 R(4) 4 1 1 PTR 123,934 X1 Local 794 R(4) 4 2 0 815,817,821,823,826,828,830,832,83 5,837,843,848,850,852,854,856,858, 860,862,865,866,872,876,903,928,93 4,940,946,952,958,964,970,976,982, 988,994,1054,1060,1075,1081,1087,1 111,1117,1123,1129,1151,1160,1167, 1181,1207 XA Local 795 R(4) 4 3 0 879,1002,1011,1020,1029,1038,1047, 1192 XX Local 794 R(4) 4 2 0 877,910,919,1067,1093,1100,1137,11 44,1152,1183,1199 XY Local 794 R(4) 4 2 0 878,912,921,1069,1094,1101,1138,11 45,1153,1185,1201 Page 27 Source Listing GXEXGO 2014-09-16 16:53 multiwavegrads_fields.f90 1234 !/ 1235 !/ End of WAVEGXFL ----------------------------------------------------- / 1236 !/ 1237 END PROGRAM WAVEGXFL ENTRY POINTS Name MAIN__ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 1000 Label 673 577 1001 Label 677 581 1002 Label 680 585 1010 Label 684 589 1011 Label 687 593 1012 Label 691 597 1020 Label 695 601 1021 Label 698 605 600 Label 406 381 800 Label 576 191 801 Label 580 192,225,339 802 Label 584 192,225,339 810 Label 588 245 811 Label 592 367 812 Label 596 412 820 Label 600 425 821 Label 604 888 Label 608 572 900 Label 613 185 901 Label 615 194 920 Label 617 200 930 Label 619 213 931 Label 621 216 940 Label 623 231 941 Label 626 243 942 Label 628 380 945 Label 630 296 946 Label 632 261,269,277,286,292,303,305 947 Label 634 341 948 Label 636 348 949 Label 639 950 Label 640 351,353 951 Label 641 358,360 970 Label 643 373 971 Label 645 392 980 Label 647 407 981 Label 649 409 982 Label 650 411 983 Label 651 431 990 Label 655 453 Page 28 Source Listing GXEXGO 2014-09-16 16:53 Symbol Table multiwavegrads_fields.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 991 Label 666 461,464,466,468,470,472,474,476,47 8,480,482,484,486,488,490,492,494, 496,501,508,515,522,529,536,540,54 2,544,546,548,550,552,554,556,558, 560,562,564,566,568 992 Label 667 570 999 Label 669 609 ABS Func 436 scalar 436,437,438,439 BEDFORMS Local 132 R(4) 4 2 1 PTR 132 BHD Local 131 R(4) 4 1 1 PTR 131 CFLKMAX Local 133 R(4) 4 1 1 PTR 133 CINC Local 151 CHAR 2 scalar 423,427,431,458 CLGTYPE Param 201 I(4) 4 scalar 201 COMSTR Local 150 CHAR 1 scalar 192,193,194,224,250,338 CONSTANTS Module 111 111 DSEC21 Func 120 R(4) 4 scalar 120,376,420 DTEST Local 148 R(4) 4 scalar 376,377,385 DTREQ Local 148 R(4) 4 scalar 225,226,227,234,236,237,245,386,39 9,420,421,422,424,425,428,601 FAC Local 149 R(4) 4 scalar 434,441,443,445,447,449,454,455 FLAGLL Local 433 L(4) 4 scalar 433 FLOG Local 155 L(4) 4 1 10 250 FLOGRD Local 135 L(4) 4 2 1 PTR 135,216,302,308 FNMPRE Local 135 CHAR 80 scalar 135,189,190,366,412 FP1 Local 126 R(4) 4 1 1 PTR 126 GNAME Local 200 CHAR 30 scalar PTR 200 GTYPE Local 201 I(4) 4 scalar PTR 201 ID0 Local 146 I(4) 4 scalar 416,431,457 IDDDAY Local 150 CHAR 11 scalar 237,239,241 IDOUT Local 134 CHAR 20 2 200 134,216,261,269,277,286,292,303,30 5 IDTIME Local 150 CHAR 23 scalar 230,231,235,241,242,243,391,392 IERR Local 143 I(4) 4 scalar 191,251,367,412,577,585 IFI Local 143 I(4) 4 scalar 258,259,260,261,263,266,268,269,27 1,274,275,276,277,279,283,284,285, 286,288,299,301,302,303,305,308,31 4,315,316,317,318,319,320,321,322, 323,324,325,326,327,331 IFJ Local 143 I(4) 4 scalar 259,260,261,263,267,268,269,271,27 5,276,277,279,284,285,286,288,300, 301,302,303,305,308,314,315,316,31 7,318,319,320,321,322,323,324,325, 326,327,331 IH0 Local 145 I(4) 4 scalar 414,431,457 IID Local 146 I(4) 4 scalar 417,431,457 IINC Local 146 I(4) 4 scalar 424,428,431,458 IJ0 Local 146 I(4) 4 scalar 418,431,457 IM0 Local 146 I(4) 4 scalar 415,431,457 INT Func 237 scalar 237 IOTEST Local 146 I(4) 4 scalar 211,378,379 IOUT Local 144 I(4) 4 scalar 372,390,400,420,421,431,457 ITRACE Subr 119 119,187 IU Local 146 I(4) 4 scalar 460,461,464,466,468,470,472,474,47 6,478,480,482,484,486,488,490,492, 494,496,501,508,515,522,529,536,54 Page 29 Source Listing GXEXGO 2014-09-16 16:53 Symbol Table multiwavegrads_fields.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 0,542,544,546,548,550,552,554,556, 558,560,562,564,566,568 J Local 143 I(4) 4 scalar 215,216 JLEN Local 147 I(4) 4 scalar 189,190,366,412 LEN_TRIM Func 189 scalar 189 LTEMP Local 156 L(4) 4 1 20 MAX Func 226 scalar 226,228,343,344,436 MIN Func 345 scalar 345,346 MNTH Local 152 CHAR 3 1 12 161,431,457 MSCX Local 130 R(4) 4 1 1 PTR 130 MSCY Local 130 R(4) 4 1 1 PTR 130 MSSX Local 130 R(4) 4 1 1 PTR 130 MSSY Local 130 R(4) 4 1 1 PTR 130 NDSCTL Local 142 I(4) 4 scalar 180,412,453,461,464,466,468,470,47 2,474,476,478,480,482,484,486,488, 490,492,494,496,501,508,515,522,52 9,536,540,542,544,546,548,550,552, 554,556,558,560,562,564,566,568,57 0 NDSI Local 142 I(4) 4 scalar 176,190,192,224,225,250,338,339 NDSM Local 142 I(4) 4 scalar 177,199 NDSO Local 134 I(4) 4 scalar PTR 134,185,194,200,213,216,231,243,25 0,261,269,277,286,292,296,303,305, 341,348,351,353,358,360,373,380,39 2,407,409,411,431,609 NDSOG Local 142 I(4) 4 scalar 178,211,378 NDST Local 134 I(4) 4 scalar PTR 134 NDSTRC Local 143 I(4) 4 scalar 182,187 NEXTLN Subr 119 119,224,338 NINT Func 245 scalar 245,424,425,428 NOGE Local 135 I(4) 4 1 10 135,259,275,284 NOUT Local 144 I(4) 4 scalar 225,227,228,243,400 NSEA Local 394 I(4) 4 scalar PTR 394 NTRACE Local 143 I(4) 4 scalar 183,187 NVAR Local 144 I(4) 4 scalar 298,315,317,319,321,323,325,327,33 1,458 NX Local 345 I(4) 4 scalar PTR 345,394 NY Local 346 I(4) 4 scalar PTR 346,394 P2SMS Local 131 R(4) 4 2 1 PTR 131 PARID Local 153 CHAR 5 scalar 498,500,501,505,507,508,512,514,51 5,519,521,522,526,528,529,533,535, 536 PHIBBL Local 132 R(4) 4 1 1 PTR 132 PHIOC Local 129 R(4) 4 1 1 PTR 129 PRMS Local 129 R(4) 4 1 1 PTR 129 STME21 Subr 120 120,230,235,391 SX Local 436 R(4) 4 scalar PTR 436,437,454 SY Local 438 R(4) 4 scalar PTR 438,439,455 TAUBBL Local 132 R(4) 4 2 1 PTR 132 TAUOX Local 128 R(4) 4 1 1 PTR 128 TAUOY Local 128 R(4) 4 1 1 PTR 128 TDUM Local 144 I(4) 4 1 2 233,234,235 THP1 Local 126 R(4) 4 1 1 PTR 126 TICK21 Subr 120 120,234,386,399 TIME Local 123 I(4) 4 1 1 PTR 123,376,397 Page 30 Source Listing GXEXGO 2014-09-16 16:53 Symbol Table multiwavegrads_fields.f90 Name Object Declared Type Bytes Dimen Elements Attributes References TIME0 Local 145 I(4) 4 1 2 160,397,414,415,416,417,418,420 TIMEN Local 147 I(4) 4 1 2 395,420 TOUT Local 144 I(4) 4 1 2 225,230,376,386,391,395,399 TPMS Local 129 R(4) 4 1 1 PTR 129 TUSX Local 129 R(4) 4 1 1 PTR 129 TUSY Local 129 R(4) 4 1 1 PTR 129 US3D Local 133 R(4) 4 2 1 PTR 133 USSX Local 130 R(4) 4 1 1 PTR 130 USSY Local 130 R(4) 4 1 1 PTR 130 W3ADATMD Module 115 115,124 W3GDATMD Module 122 122 W3IOGO Subr 118 118,211,378 W3IOGOMD Module 118 118 W3IOGR Subr 117 117,199 W3IOGRMD Module 117 117 W3NAUX Subr 115 115,171 W3NDAT Subr 114 114,169 W3NMOD Subr 167 167 W3NOUT Subr 116 116,173 W3ODATMD Module 116 116,134 W3READFLGRD Subr 118 118,250 W3SERVMD Module 119 119 W3SETA Subr 115 115,172 W3SETG Subr 168 168 W3SETO Subr 116 116,174 W3SETW Subr 114 114,170 W3TIMEMD Module 120 120 W3WDATMD Module 114 114,123 WAVEGXFL Prog 2 WHITECAP Local 132 R(4) 4 2 1 PTR 132 WN Local 124 R(4) 4 2 1 PTR 124 X0 Local 436 R(4) 4 scalar PTR 436,437,454 XYMAX Local 149 R(4) 4 scalar 436,440,442,444,446 Y0 Local 438 R(4) 4 scalar PTR 438,439,455 Page 31 Source Listing GXEXGO 2014-09-16 16:53 Subprograms/Common Blocks multiwavegrads_fields.f90 SUBPROGRAMS/COMMON BLOCKS Name Object Declared Type Bytes Dimen Elements Attributes References GXEXGO Subr 705 394 WAVEGXFL 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 -fpscomp nologicals no -fpconstant Page 32 Source Listing GXEXGO 2014-09-16 16:53 multiwavegrads_fields.f90 -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 : multiwavegrads_fields.lst -o filename : none COMPILER: Intel(R) Fortran 12.1-2100