Page 1 Source Listing GXEXPO 2014-09-16 16:54 multiwavegrads_points.f90 1 !/ ------------------------------------------------------------------- / 2 PROGRAM WAVEGXSP 3 !/ 4 !/ +-----------------------------------+ 5 !/ | WAVEWATCH III NOAA/NCEP | 6 !/ | H. L. Tolman | 7 !/ | J.H. Alves | 8 !/ | F. Ardhuin | 9 !/ | FORTRAN 90 | 10 !/ | Last update : 26-Dec-2012 | 11 !/ +-----------------------------------+ 12 !/ 13 !/ 30-Jun-1999 : Final FORTRAN 77 ( version 1.18 ) 14 !/ 24-Jan-2000 : Upgrade to FORTRAN 90 ( version 2.00 ) 15 !/ 14-Feb-2000 : Exact nonlinear interactions ( version 2.01 ) 16 !/ 25-Jan-2001 : Cartesian grid version ( version 2.06 ) 17 !/ 02-Feb-2001 : Xnl version 3.0 ( version 2.07 ) 18 !/ 13-Nov-2002 : Add stress vector. ( version 3.00 ) 19 !/ 27-Nov-2002 : First version of VDIA and MDIA. ( version 3.01 ) 20 !/ 01-Aug-2003 : Fix format for SH output points. ( version 3.03 ) 21 !/ 24-Dec-2004 : Multiple grid version. ( version 3.06 ) 22 !/ 23-Jun-2006 : Linear input added. ( version 3.09 ) 23 !/ 29-Jun-2006 : Adding file name preamble. ( version 3.09 ) 24 !/ 03-Jul-2006 : Separate flux modules. ( version 3.09 ) 25 !/ 25-Jul-2006 : Grid ID for each point. ( version 3.10 ) 26 !/ 25-Apr-2007 : EMEAN in W3SPR2 par list. ( version 3.11 ) 27 !/ 09-Oct-2007 : WAM 4+ Sin and Sds added. ( version 3.13 ) 28 !/ (F. Ardhuin) 29 !/ 09-Oct-2007 : Experimental Sbs (BS1) added. ( version 3.13 ) 30 !/ (F. Ardhuin) 31 !/ 29-May-2009 : Preparing distribution version. ( version 3.14 ) 32 !/ 30-Oct-2009 : Implement run-time grid selection. ( version 3.14 ) 33 !/ (W. E. Rogers & T. J. Campbell, NRL) 34 !/ 30-Aug-2010 : Adding ST4 ( version 3.14 ) 35 !/ 20-Apr-2010 : Fix initialization of USTAR. ( version 3.14.1 ) 36 !/ 23-Aug-2012 : Adding movable bed friction BT4 ( version 4.07 ) 37 !/ 16-Jul-2012 : Move GMD (SNL3) and nonlinear filter (SNLS) 38 !/ from 3.15 (HLT). ( version 4.08 ) 39 !/ 26-Dec-2012 : Modified obsolete declarations. ( version 4.11 ) 40 !/ 41 !/ Copyright 2009-2012 National Weather Service (NWS), 42 !/ National Oceanic and Atmospheric Administration. All rights 43 !/ reserved. WAVEWATCH III is a trademark of the NWS. 44 !/ No unauthorized use without permission. 45 !/ 46 ! 1. Purpose : 47 ! 48 ! Post-processing of point output for GrADS post-processing. 49 ! 50 ! 2. Method : 51 ! 52 ! In order to be able to plot spectra and source terms as 53 ! fields, spectral data is written as if it is fields data. 54 ! The spectral direction becomes the longitude, 90.-FREQ 55 ! become the latitude. This way, polar plots can be made 56 ! using the GrADS 'NPS' map option. The level or z coordinate 57 ! is used to store spectra and source terms for separate Page 2 Source Listing GXEXPO 2014-09-16 16:54 multiwavegrads_points.f90 58 ! output points. The name of the output point is stored in 59 ! the control file as the 'description' of the field. 60 ! Also written is a separate file with mean input and wave 61 ! parameters. This file contains per level and per time a 62 ! single line containing : 63 ! 64 ! Station ID, Longitude, Latitude, Depth, , Wind speed. 65 ! U and V components, Air-Sea Temperature difference, 66 ! Current velocity, U and V components, Significant 67 ! wave height. 68 ! 69 ! The files generated are : 70 ! 71 ! ww3.spec.ctl GrADS control file. 72 ! ww3.spec.grads GrADS data file. 73 ! ww3.mean.grads File with additional input and wave 74 ! parameters. 75 ! 76 ! The first direction set to 90 degr. Grads NPS plot should 77 ! therefore have 'set lon -180 180' for oceanographic directional 78 ! convention. 79 ! 80 ! Examples of using the three files can be found in spec.gs and 81 ! source.gs. 82 ! 83 ! 3. Parameters : 84 ! 85 ! 4. Subroutines used : 86 ! 87 ! Name Type Module Description 88 ! ---------------------------------------------------------------- 89 ! W3NMOD Subr. W3GDATMD Set number of model. 90 ! W3SETG Subr. Id. Point to selected model. 91 ! W3NDAT Subr. W3WDATMD Set number of model for wave data. 92 ! W3SETW Subr. Id. Point to selected model for wave data. 93 ! W3NAUX Subr. W3ADATMD Set number of model for aux data. 94 ! W3SETA Subr. Id. Point to selected model for aux data. 95 ! W3NOUT Subr. W3ODATMD Set number of model for output. 96 ! W3SETO Subr. Id. Point to selected model for output. 97 ! ITRACE Subr. W3SERVMD Subroutine tracing initialization. 98 ! STRACE Subr. Id. Subroutine tracing. 99 ! NEXTLN Subr. Id. Get next line from input filw 100 ! EXTCDE Subr. Id. Abort program as graceful as possible. 101 ! STME21 Subr. W3TIMEMD Convert time to string. 102 ! TICK21 Subr. Id. Advance time. 103 ! DSEC21 Func. Id. Difference between times. 104 ! W3IOGR Subr. W3IOGRMD Reading/writing model definition file. 105 ! W3IOPO Subr. W3IOPOMD Reading/writing raw point output file. 106 ! GXEXPO Subr. Internal Execute point output. 107 ! ---------------------------------------------------------------- 108 ! 109 ! 5. Called by : 110 ! 111 ! None, stand-alone program. 112 ! 113 ! 6. Error messages : 114 ! Page 3 Source Listing GXEXPO 2014-09-16 16:54 multiwavegrads_points.f90 115 ! Checks on input, checks in W3IOxx. 116 ! Check on grid type. 117 ! 118 ! 7. Remarks : 119 ! 120 ! - Curvilinear grids currently not supported. 121 ! 122 ! 8. Structure : 123 ! 124 ! See source code. 125 ! 126 ! 9. Switches : 127 ! 128 ! !/S Enable subroutine tracing. 129 ! 130 ! 10. Source code : 131 ! 132 !/ ------------------------------------------------------------------- / 133 USE CONSTANTS 134 !/ 135 ! USE W3GDATMD, ONLY: W3NMOD, W3SETG 136 USE W3WDATMD, ONLY: W3SETW, W3NDAT 137 USE W3ADATMD, ONLY: W3SETA, W3NAUX 138 USE W3ODATMD, ONLY: W3SETO, W3NOUT 139 USE W3IOGRMD, ONLY: W3IOGR 140 USE W3IOPOMD, ONLY: W3IOPO 141 USE W3SERVMD, ONLY : ITRACE, NEXTLN, EXTCDE 142 USE W3TIMEMD, ONLY: STME21, TICK21, DSEC21 143 !/ 144 USE W3GDATMD 145 USE W3WDATMD, ONLY: TIME 146 USE W3ODATMD, ONLY: NDSE, NDST, NDSO, NOPTS, PTLOC, PTNME, & 147 DPO, WAO, WDO, ASO, CAO, CDO, SPCO, FNMPRE, & 148 GRDID 149 ! 150 IMPLICIT NONE 151 !/ 152 !/ ------------------------------------------------------------------- / 153 !/ Local parameters 154 !/ 155 INTEGER :: NDSI, NDSM, NDSOP, NDSGRD, NDSPNT, & 156 NDSCGR, NDSTRC, NTRACE, IERR, & 157 IOTEST, I, TOUT(2), NOUT, TDUM(2), & 158 NREQ, IPOINT, NLEV, IOUT, TIME0(2), & 159 IH0, IM0, ID0, IID, IJ0, IINC, IK, & 160 IREQ, TIMEN(2), J 161 REAL :: DTREQ, DTEST 162 REAL :: UNDEFP = -99.E20 163 REAL :: FACT 164 LOGICAL :: FLSRCE(6) 165 LOGICAL, ALLOCATABLE :: FLREQ(:) 166 CHARACTER :: COMSTR*1, IDTIME*23, IDDDAY*11, & 167 CINC*2 168 CHARACTER(LEN=3) :: MNTH(12) 169 CHARACTER(LEN=25) :: IDSRCE(6) 170 !/ 171 !/ ------------------------------------------------------------------- / Page 4 Source Listing GXEXPO 2014-09-16 16:54 multiwavegrads_points.f90 172 !/ 173 DATA IDSRCE / 'Spectrum ' , & 174 'Wind-wave interactions ' , & 175 'Nonlinear interactions ' , & 176 'Dissipation ' , & 177 'Wave-bottom interactions ' , & 178 'Sum of selected sources ' / 179 DATA FLSRCE / .FALSE. , .FALSE. , .FALSE. , & 180 .FALSE. , .FALSE. , .FALSE. / 181 DATA TIME0 / -1, 0 / 182 DATA MNTH / 'JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', & 183 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC' / 184 ! 185 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 186 ! 1. IO set-up. 187 ! 188 CALL W3NMOD ( 1, 6, 6 ) 189 CALL W3SETG ( 1, 6, 6 ) 190 CALL W3NDAT ( 6, 6 ) 191 CALL W3SETW ( 1, 6, 6 ) 192 CALL W3NAUX ( 6, 6 ) 193 CALL W3SETA ( 1, 6, 6 ) 194 CALL W3NOUT ( 6, 6 ) 195 CALL W3SETO ( 1, 6, 6 ) 196 ! 197 IF ( FLAGLL ) THEN 198 FACT = 1. 199 ELSE 200 FACT = 1.E-3 201 END IF 202 ! 203 NDSI = 10 204 NDSM = 20 205 NDSOP = 20 206 NDSGRD = 30 207 NDSPNT = 31 208 NDSCGR = 32 209 ! 210 NDSTRC = 6 211 NTRACE = 0 212 ! 213 WRITE (NDSO,900) 214 ! 215 CALL ITRACE ( NDSTRC, NTRACE ) 216 ! 217 J = LEN_TRIM(FNMPRE) 218 OPEN (NDSI,FILE=FNMPRE(:J)//'multiwavegrads_points.inp',STATUS='OLD', & 219 ERR=800,IOSTAT=IERR) 220 READ (NDSI,'(A)',END=801,ERR=802) COMSTR 221 IF (COMSTR.EQ.' ') COMSTR = '$' 222 WRITE (NDSO,901) COMSTR 223 ! 224 OPEN (NDSGRD,FILE=FNMPRE(:J)//'ww3.spec.grads', & 225 FORM='UNFORMATTED', CONVERT='big_endian') 226 OPEN (NDSPNT,FILE=FNMPRE(:J)//'ww3.mean.grads',FORM='FORMATTED') 227 OPEN (NDSCGR,FILE=FNMPRE(:J)//'ww3.spec.ctl',FORM='FORMATTED') 228 ! Page 5 Source Listing GXEXPO 2014-09-16 16:54 multiwavegrads_points.f90 229 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 230 ! 2. Read model definition file. 231 ! 232 CALL W3IOGR ( 'READ', NDSM ) 233 WRITE (NDSO,920) GNAME 234 ! 235 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 236 ! 3. Read general data and first fields from file 237 ! 238 CALL W3IOPO ( 'READ', NDSOP, IOTEST ) 239 ALLOCATE ( FLREQ(NOPTS) ) 240 ! 241 WRITE (NDSO,930) 242 DO I=1, NOPTS 243 IF ( FLAGLL ) THEN 244 WRITE (NDSO,931) PTNME(I), FACT*PTLOC(1,I), FACT*PTLOC(2,I) 245 ELSE 246 WRITE (NDSO,932) PTNME(I), FACT*PTLOC(1,I), FACT*PTLOC(2,I) 247 END IF 248 END DO 249 ! 250 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 251 ! 4. Read requests from input file. 252 ! Output times 253 ! 254 CALL NEXTLN ( COMSTR , NDSI , NDSE ) 255 READ (NDSI,*,END=801,ERR=802) TOUT, DTREQ, NOUT 256 DTREQ = MAX ( 0. , DTREQ ) 257 IF ( DTREQ.EQ.0 ) NOUT = 1 258 NOUT = MAX ( 1 , NOUT ) 259 ! 260 CALL STME21 ( TOUT , IDTIME ) 261 WRITE (NDSO,940) IDTIME 262 ! 263 TDUM = 0 264 CALL TICK21 ( TDUM , DTREQ ) 265 CALL STME21 ( TDUM , IDTIME ) 266 IF ( DTREQ .GE. 86400. ) THEN 267 WRITE (IDDDAY,'(I10,1X)') INT(DTREQ/86400.) 268 ELSE 269 IDDDAY = ' ' 270 END IF 271 IDTIME(1:11) = IDDDAY 272 IDTIME(21:23) = ' ' 273 WRITE (NDSO,941) IDTIME, NOUT 274 ! 275 ! ... Output points 276 ! 277 FLREQ = .FALSE. 278 NREQ = 0 279 ! 280 DO 281 CALL NEXTLN ( COMSTR , NDSI , NDSE ) 282 READ (NDSI,*,END=801,ERR=802) IPOINT 283 IF ( IPOINT .GT. 0 ) THEN 284 IF ( IPOINT .LE. NOPTS ) THEN 285 IF ( .NOT. FLREQ(IPOINT) ) NREQ = NREQ + 1 Page 6 Source Listing GXEXPO 2014-09-16 16:54 multiwavegrads_points.f90 286 FLREQ(IPOINT) = .TRUE. 287 END IF 288 ELSE 289 EXIT 290 END IF 291 END DO 292 ! 293 ! ... Output of output points 294 ! 295 WRITE (NDSO,950) NREQ 296 DO I=1, NOPTS 297 IF (FLREQ(I)) THEN 298 IF ( FLAGLL ) THEN 299 WRITE (NDSO,951) PTNME(I), FACT*PTLOC(1,I), & 300 FACT*PTLOC(2,I) 301 ELSE 302 WRITE (NDSO,956) PTNME(I), FACT*PTLOC(1,I), & 303 FACT*PTLOC(2,I) 304 END IF 305 END IF 306 END DO 307 ! 308 ! ... Output of output points 309 ! 310 CALL NEXTLN ( COMSTR , NDSI , NDSE ) 311 READ (NDSI,*,END=801,ERR=802) FLSRCE 312 WRITE (NDSO,952) 313 NLEV = 0 314 DO I=1, 6 315 IF ( FLSRCE(I) ) THEN 316 WRITE (NDST,953) IDSRCE(I) 317 NLEV = NLEV + 1 318 END IF 319 END DO 320 ! 321 WRITE (NDSO,955) 322 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 323 ! 5. Time management. 324 ! 325 IOUT = 0 326 ! 327 DO 328 DTEST = DSEC21 ( TIME , TOUT ) 329 IF ( DTEST .GT. 0. ) THEN 330 CALL W3IOPO ( 'READ', NDSOP, IOTEST ) 331 IF ( IOTEST .EQ. -1 ) THEN 332 WRITE (NDSO,998) 333 EXIT 334 END IF 335 CYCLE 336 END IF 337 IF ( DTEST .LT. 0. ) THEN 338 CALL TICK21 ( TOUT , DTREQ ) 339 CYCLE 340 END IF 341 ! 342 IOUT = IOUT + 1 Page 7 Source Listing GXEXPO 2014-09-16 16:54 multiwavegrads_points.f90 343 CALL STME21 ( TOUT , IDTIME ) 344 ! 345 CALL GXEXPO 346 TIMEN = TOUT 347 ! 348 IF ( TIME0(1) .EQ. -1 ) TIME0 = TIME 349 ! 350 CALL TICK21 ( TOUT , DTREQ ) 351 IF ( IOUT .GE. NOUT ) EXIT 352 END DO 353 ! 354 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 355 ! 6. Close data file and write control file 356 ! 6.a Close data sets 357 ! 358 WRITE (NDSO,960) 359 ! 360 WRITE (NDSO,961) 361 CLOSE (NDSGRD) 362 CLOSE (NDSPNT) 363 ! 364 WRITE (NDSO,962) 365 ! 366 ! 6.b Set up timing info 367 ! 368 IH0 = TIME0(2)/10000 369 IM0 = MOD(TIME0(2)/100,100) 370 ID0 = MOD(TIME0(1),100) 371 IID = MOD(TIME0(1)/100,100) 372 IJ0 = TIME0(1)/10000 373 ! 374 IF ( IOUT .GT. 1 ) DTREQ = DSEC21 ( TIME0, TIMEN ) / REAL(IOUT-1) 375 IF ( IOUT .EQ. 1 ) DTREQ = 3600. 376 IF ( DTREQ .GT. 3599. ) THEN 377 CINC = 'HR' 378 IINC = NINT(DTREQ/3600.) 379 IF ( MOD(NINT(DTREQ),3600) .NE. 0 ) GOTO 820 380 ELSE 381 CINC = 'MN' 382 IINC = NINT(DTREQ/60.) 383 END IF 384 ! 385 WRITE (NDSO,963) IOUT, IH0, IM0, ID0, MNTH(IID), IJ0, IINC, CINC 386 ! 387 ! 6.c Write control file for spectral data 388 ! 389 WRITE (NDSO,964) 390 ! 391 WRITE (NDSCGR,970) UNDEFP, NTH, 90.+TH(1)*RADE, DTH*RADE, & 392 NK, (90.-TPIINV*SIG(IK),IK=NK,MAX(1,NK-4),-1) 393 WRITE (NDSCGR,971) (90.-TPIINV*SIG(IK),IK=NK-5,1,-1) 394 WRITE (NDSCGR,972) NLEV, 1., 1., & 395 IOUT, IH0, IM0, ID0, MNTH(IID), IJ0, & 396 IINC, CINC, NREQ 397 ! 398 IREQ = 0 399 DO I=1, NOPTS Page 8 Source Listing GXEXPO 2014-09-16 16:54 multiwavegrads_points.f90 400 IF ( FLREQ(I) ) THEN 401 IREQ = IREQ + 1 402 WRITE (NDSCGR,973) IREQ, NLEV, 99, PTNME(I) 403 END IF 404 END DO 405 ! 406 WRITE (NDSCGR,974) 407 ! 408 GOTO 888 409 ! 410 ! Escape locations read errors : 411 ! 412 800 CONTINUE 413 WRITE (NDSE,1000) IERR 414 CALL EXTCDE ( 10 ) 415 ! 416 801 CONTINUE 417 WRITE (NDSE,1001) 418 CALL EXTCDE ( 11 ) 419 ! 420 802 CONTINUE 421 WRITE (NDSE,1002) IERR 422 CALL EXTCDE ( 12 ) 423 ! 424 820 CONTINUE 425 WRITE (NDSE,1020) DTREQ 426 CALL EXTCDE ( 20 ) 427 ! 428 821 CONTINUE 429 WRITE (NDSE,1021) 430 CALL EXTCDE ( 21 ) 431 ! 432 888 CONTINUE 433 ! 434 WRITE (NDSO,999) 435 ! 436 ! Formats 437 ! 438 900 FORMAT (/12X,' *** WAVEWATCH III GrADS point output post.*** '/ & 439 12X,'====================================================='/) 440 901 FORMAT ( ' Comment character is ''',A,''''/) 441 ! 442 920 FORMAT ( ' Grid name : ',A/) 443 ! 444 930 FORMAT ( ' Points in file : '/ & 445 ' ------------------------------------') 446 447 931 FORMAT ( ' ',A,2F10.2) 448 449 932 FORMAT ( ' ',A,2(F8.1,'E3')) 450 ! 451 940 FORMAT (/' Output time data : '/ & 452 ' --------------------------------------------------'/ & 453 ' First time : ',A) 454 941 FORMAT ( ' Interval : ',A/ & 455 ' Number of requests : ',I4) 456 ! Page 9 Source Listing GXEXPO 2014-09-16 16:54 multiwavegrads_points.f90 457 950 FORMAT (/' Requested output for',I3,' points : '/ & 458 ' --------------------------------------------------') 459 460 951 FORMAT ( ' ',A,2F10.2) 461 462 956 FORMAT ( ' ',A,2(F8.1,'E3')) 463 464 952 FORMAT (/' Requested output fields :'/ & 465 ' --------------------------------------------------') 466 953 FORMAT ( ' ',A) 467 955 FORMAT (/' Output times :'/ & 468 ' --------------------------------------------------') 469 ! 470 960 FORMAT (//' Final file management '/ & 471 ' -----------------------------------------------------') 472 961 FORMAT ( ' Closing file ww3.spec.grads'/ & 473 ' Closing file ww3.mean.grads') 474 962 FORMAT ( ' Preparing control files :') 475 963 FORMAT ( ' Number of times : ',I6/ & 476 ' Initial time ID : ',I2.2,':',I2.2,'Z',I2.2,A3,I4/ & 477 ' Time step ID : ',I2,A2) 478 964 FORMAT ( ' Writing ww3.spec.ctl'/) 479 ! 480 970 FORMAT ('DSET ww3.spec.grads'/ & 481 'TITLE WAVEWATCH III spectra and source terms'/ & 482 'OPTIONS sequential'/ & 483 'OPTIONS big_endian'/ & 484 'UNDEF ',E10.2/ & 485 'XDEF ',I4,' LINEAR ',2F8.2/ & 486 'YDEF ',I4,' LEVELS ',5F8.4) 487 971 FORMAT (22X,5F8.4) 488 972 FORMAT ('ZDEF ',I4,' LINEAR ',2F8.2/ & 489 'TDEF ',I4,' LINEAR ',I6.2,':',I2.2,'Z',I2.2,A3,I4, & 490 2x,I2,A2/ & 491 'VARS ',I4) 492 973 FORMAT ('LOC',I3.3,2I4,2X,A) 493 974 FORMAT ('ENDVARS') 494 ! 495 998 FORMAT (/' End of file reached '/) 496 ! 497 999 FORMAT (/' End of program '/ & 498 ' ========================================='/ & 499 ' WAVEWATCH III GrADS point output '/) 500 ! 501 1000 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGXSP : '/ & 502 ' ERROR IN OPENING INPUT FILE'/ & 503 ' IOSTAT =',I5/) 504 ! 505 1001 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGXSP : '/ & 506 ' PREMATURE END OF INPUT FILE'/) 507 ! 508 1002 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGXSP : '/ & 509 ' ERROR IN READING FROM INPUT FILE'/ & 510 ' IOSTAT =',I5/) 511 ! 512 1020 FORMAT (/' *** WAVEWATCH III ERROR IN GXOUTF : '/ & 513 ' FIELD INCREMENT > 1HR BUT NOT MULTIPLE',F10.0/) Page 10 Source Listing GXEXPO 2014-09-16 16:54 multiwavegrads_points.f90 514 ! 515 1021 FORMAT (/' *** WAVEWATCH III ERROR IN GXOUTF : '/ & 516 ' UPDATE PARS IN LOOP 610 !!!'/) 517 !/ 518 !/ Internal subroutine GXEXPO ---------------------------------------- / 519 !/ 520 CONTAINS 521 !/ ------------------------------------------------------------------- / 522 SUBROUTINE GXEXPO 523 !/ 524 !/ +-----------------------------------+ 525 !/ | WAVEWATCH III NOAA/NCEP | 526 !/ | H. L. Tolman | 527 !/ | FORTRAN 90 | 528 !/ | Last update : 16-Jul-2012 | 529 !/ +-----------------------------------+ 530 !/ 531 !/ 30-Jun-1999 : Final FORTRAN 77 ( version 1.18 ) 532 !/ 24-Jan-2000 : Upgrade to FORTRAN 90 ( version 2.00 ) 533 !/ Massive changes to logistics 534 !/ 25-Jan-2001 : Cartesian grid version ( version 2.06 ) 535 !/ 02-Feb-2001 : Xnl version 5 ( version 2.07 ) 536 !/ 01-Aug-2003 : Fix format for SH output points. ( version 3.03 ) 537 !/ 24-Dec-2004 : Multiple grid version. ( version 3.06 ) 538 !/ 23-Jun-2006 : Linear input added. ( version 3.09 ) 539 !/ 03-Jul-2006 : Separate flux modules. ( version 3.09 ) 540 !/ 25-Jul-2006 : Grid ID for each point. ( version 3.10 ) 541 !/ 25-Apr-2007 : EMEAN in W3SPR2 par list. ( version 3.11 ) 542 !/ 09-Oct-2007 : WAM 4+ Sin and Sds added. ( version 3.13 ) 543 !/ (F. Ardhuin) 544 !/ 09-Oct-2007 : Experimental Sbs (BS1) added. ( version 3.13 ) 545 !/ (F. Ardhuin) 546 !/ 16-Jul-2012 : Move GMD (SNL3) and nonlinear filter (SNLS) 547 !/ from 3.15 (HLT). ( version 4.08 ) 548 !/ 549 ! 1. Purpose : 550 ! 551 ! Perform actual point output. 552 ! 553 ! 3. Parameters : 554 ! 555 ! 4. Subroutines used : 556 ! 557 ! Name Type Module Description 558 ! ---------------------------------------------------------------- 559 ! W3SPRn Subr. W3SRCnMD Mean wave parameters for use in 560 ! source terms. 561 ! W3FLXn Subr. W3FLXnMD Flux/stress computation. 562 ! W3SLNn Subr. W3SLNnMD Linear input. 563 ! W3SINn Subr. W3SRCnMD Input source term. 564 ! W3SDSn Subr. W3SRCnMD Whitecapping source term 565 ! W3SNLn Subr. W3SNLnMD Nonlinear interactions. 566 ! W3SBTn Subr. W3SBTnMD Bottom friction source term. 567 ! W3SDBn Subr. W3SBTnMD Depth induced breaking source term. 568 ! W3STRn Subr. W3STRnMD Triad interaction source term. 569 ! W3SBSn Subr. W3SBSnMD Bottom scattering source term. 570 ! W3SXXn Subr. W3SXXnMD Unclassified source term. Page 11 Source Listing GXEXPO 2014-09-16 16:54 multiwavegrads_points.f90 571 ! STRACE Subr. W3SERVMD Subroutine tracing. 572 ! STME21 Subr. W3TIMEMD Convert time to string. 573 ! ---------------------------------------------------------------- 574 ! 575 ! 5. Called by : 576 ! 577 ! Program in which it is contained. 578 ! 579 ! 6. Error messages : 580 ! 581 ! None. 582 ! 583 ! 7. Remarks : 584 ! 585 ! - Spectra are relative frequency energy spectra. 586 ! - Note that arrays CX and CY of the main program now contain 587 ! the absolute current speed and direction respectively. 588 ! 589 ! 8. Structure : 590 ! 591 ! See source code. 592 ! 593 ! 9. Switches : 594 ! 595 ! !/S Enable subroutine tracing. 596 ! !/T Enable test output. 597 ! 598 ! !/FLXx Flux/stress computation. 599 ! !/LNx Linear input package 600 ! !/STx Source term package 601 ! !/NLx Nonlinear interaction package 602 ! !/BTx Bottom friction package 603 ! !/ICx Ice source term package 604 ! !/DBx Depth-induced breaking package 605 ! !/TRx Triad interaction package 606 ! !/BSx Bottom scattering package 607 ! !/XXx Arbitrary adittional source term package 608 ! 609 ! !/STAB2 Stability correction for !/ST2 610 ! 611 ! 10. Source code : 612 ! 613 !/ ------------------------------------------------------------------- / 614 USE W3SLN1MD 615 USE W3SRC4MD 616 USE W3SNL1MD 617 USE W3SBT1MD 618 USE W3SDB1MD 619 !/ 620 USE W3DISPMD, ONLY: NAR1D, DFAC, N1MAX, ECG1, EWN1, DSIE 621 ! 622 IMPLICIT NONE 623 !/ 624 !/ ------------------------------------------------------------------- / 625 !/ Local parameters 626 !/ 627 INTEGER :: J, I1, I2, IK, ITH, ISPEC, IKM, IKL, & Page 12 Source Listing GXEXPO 2014-09-16 16:54 multiwavegrads_points.f90 628 IKH, ITT, IX, IY, ISEA 629 REAL :: XL, XH, XL2, XH2, DEPTH, SQRTH, UDIR,& 630 UDIRR, UABS, CDIR, SIX, R1, R2, ET, & 631 EWN, ETR, ETX, ETY, EBND, EBX, EBY, & 632 HSIG, WLEN, TMEAN, THMEAN, THSPRD, & 633 EMAX, EL, EH, DENOM, FP, THP, SPP, & 634 FACTOR, CD, USTAR, FHIGH, ZWND, ICE, & 635 USTD, Z0, CHARN, EMEAN, FMEAN, WNMEAN 636 REAL :: FMEANWS, TAUWX, TAUWY, AMAX, & 637 TAUWNX, TAUWNY, FMEAN1, WHITECAP(1:4) 638 REAL :: HSMIN = 0.05 639 REAL :: WN(NK), CG(NK), E(NK,NTH), E1(NK), & 640 APM(NK), THBND(NK), SPBND(NK), & 641 A(NTH,NK), WN2(NTH,NK) 642 REAL :: DIA(NTH,NK), SWI(NK,NTH), SNL(NK,NTH),& 643 SDS(NK,NTH), SBT(NK,NTH), XLN(NTH,NK),& 644 XWI(NTH,NK), XNL(NTH,NK), XTR(NTH,NK),& 645 XDS(NTH,NK), XDB(NTH,NK), XBT(NTH,NK),& 646 XBS(NTH,NK), XXX(NTH,NK), STT(NK,NTH),& 647 XWL(NTH,NK) 648 LOGICAL :: LLWS(NTH,NK) 649 CHARACTER :: DTME21*23 650 !/ 651 !/ ------------------------------------------------------------------- / 652 !/ 653 ! 654 XL = 1./XFR - 1. 655 XH = XFR - 1. 656 XL2 = XL**2 657 XH2 = XH**2 658 ICE = 0. 659 ! 660 XLN = 0. 661 XWI = 0. 662 XNL = 0. 663 XTR = 0. 664 XDS = 0. 665 XDB = 0. 666 XBT = 0. 667 XBS = 0. 668 XWL = 0. 669 XXX = 0. 670 ! 671 ! Output of time 672 ! 673 CALL STME21 ( TIME , DTME21 ) 674 WRITE (NDSO,905) DTME21 675 ! 676 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 677 ! Loop over output points. 678 ! 679 DO J=1, NOPTS 680 IF ( FLREQ(J) ) THEN 681 ! 682 ! 2. Calculate grid parameters using and inlined version of WAVNU1. 683 ! 684 DEPTH = MAX ( DMIN, DPO(J) ) Page 13 Source Listing GXEXPO 2014-09-16 16:54 multiwavegrads_points.f90 685 SQRTH = SQRT ( DEPTH ) 686 UDIR = MOD ( 270. - WDO(J)*RADE , 360. ) 687 UDIRR = WDO(J) 688 UABS = MAX ( 0.001 , WAO(J) ) 689 CDIR = MOD ( 270. - CDO(J)*RADE , 360. ) 690 ! 691 DO IK=1, NK 692 SIX = SIG(IK) * SQRTH 693 I1 = INT(SIX/DSIE) 694 IF (I1.LE.N1MAX) THEN 695 I2 = I1 + 1 696 R1 = SIX/DSIE - REAL(I1) 697 R2 = 1. - R1 698 WN(IK) = ( R2*EWN1(I1) + R1*EWN1(I2) ) / DEPTH 699 CG(IK) = ( R2*ECG1(I1) + R1*ECG1(I2) ) * SQRTH 700 ELSE 701 WN(IK) = SIG(IK)*SIG(IK)/GRAV 702 CG(IK) = 0.5 * GRAV / SIG(IK) 703 END IF 704 ! 705 END DO 706 ! 707 ! 3. Prepare spectra etc. 708 ! 3.a Mean wave parameters. 709 ! 710 ET = 0. 711 EWN = 0. 712 ETR = 0. 713 ETX = 0. 714 ETY = 0. 715 DO IK=1, NK 716 EBND = 0. 717 EBX = 0. 718 EBY = 0. 719 DO ITH=1, NTH 720 ISPEC = ITH + (IK-1)*NTH 721 E(IK,ITH) = SPCO(ISPEC,J) 722 EBND = EBND + SPCO(ISPEC,J) 723 EBX = EBX + SPCO(ISPEC,J)*ECOS(ITH) 724 EBY = EBY + SPCO(ISPEC,J)*ESIN(ITH) 725 END DO 726 E1(IK) = EBND * DTH 727 APM(IK)= E1(IK) / ( TPI * GRAV**2 / SIG(IK)**5 ) 728 IF ( E1(IK) .GT. 1.E-5) THEN 729 THBND(IK) = MOD(630.- RADE*ATAN2(EBY,EBX),360.) 730 SPBND(IK) = RADE * SQRT ( MAX ( 0. , 2.*( 1. - & 731 SQRT( MAX(0.,(EBX**2+EBY**2)/EBND**2) ) ) ) ) 732 ELSE 733 THBND(IK) = -999.9 734 SPBND(IK) = -999.9 735 END IF 736 EBND = E1(IK) * DSII(IK) * TPIINV 737 ET = ET + EBND 738 EWN = EWN + EBND / WN(IK) 739 ETR = ETR + EBND / SIG(IK) 740 ETX = ETX + EBX * DSII(IK) 741 ETY = ETY + EBY * DSII(IK) Page 14 Source Listing GXEXPO 2014-09-16 16:54 multiwavegrads_points.f90 742 END DO 743 ! 744 ! tail factors for radian action etc ...! 745 ! 746 EBND = E1(NK) * TPIINV / ( SIG(NK) * DTH ) 747 ET = ET + FTE *EBND 748 EWN = EWN + FTWL*EBND 749 ETR = ETR + FTTR*EBND 750 ETX = DTH*ETX*TPIINV + FTE*EBX*TPIINV/SIG(NK) 751 ETY = DTH*ETY*TPIINV + FTE*EBY*TPIINV/SIG(NK) 752 ! 753 HSIG = 4. * SQRT ( ET ) 754 IF ( HSIG .GT. HSMIN ) THEN 755 WLEN = EWN / ET * TPI 756 TMEAN = ETR / ET * TPI 757 THMEAN = MOD ( 630. - RADE*ATAN2(ETY,ETX) , 360. ) 758 THSPRD = RADE * SQRT ( MAX ( 0. , 2.*( 1. - SQRT( & 759 MAX(0.,(ETX**2+ETY**2)/ET**2) ) ) ) ) 760 ELSE 761 WLEN = 0. 762 TMEAN = 0. 763 THMEAN = 0. 764 THSPRD = 0. 765 DO IK=1, NK 766 E1(IK) = 0. 767 DO ITH=1, NTH 768 E(IK,ITH) = 0. 769 END DO 770 END DO 771 END IF 772 ! 773 ! peak frequency 774 ! 775 EMAX = E1(NK) 776 IKM = NK 777 ! 778 DO IK=NK-1, 1, -1 779 IF ( E1(IK) .GT. EMAX ) THEN 780 EMAX = E1(IK) 781 IKM = IK 782 END IF 783 END DO 784 ! 785 IKL = MAX ( 1 , IKM-1 ) 786 IKH = MIN ( NK , IKM+1 ) 787 EL = E1(IKL) - E1(IKM) 788 EH = E1(IKH) - E1(IKM) 789 DENOM = XL*EH - XH*EL 790 ! 791 IF ( HSIG .GE. HSMIN ) THEN 792 FP = SIG(IKM) * ( 1. + 0.5 * ( XL2*EH - XH2*EL ) & 793 / SIGN ( MAX(ABS(DENOM),1.E-15) , DENOM ) ) 794 THP = THBND(IKM) 795 SPP = SPBND(IKM) 796 ELSE 797 FP = 0. 798 THP = 0. Page 15 Source Listing GXEXPO 2014-09-16 16:54 multiwavegrads_points.f90 799 SPP = 0. 800 END IF 801 ! 802 ! 3.4 source terms 803 ! 804 DO IK=1, NK 805 FACTOR = TPIINV * CG(IK) / SIG(IK) 806 DO ITH=1, NTH 807 ISPEC = ITH + (IK-1)*NTH 808 A(ITH,IK) = FACTOR * SPCO(ISPEC,J) 809 WN2(ITH,IK) = WN(IK) 810 END DO 811 END DO 812 ! 813 USTAR = 1. 814 ZWND = ZZWND 815 TAUWX = 0. 816 TAUWY = 0. 817 ! 818 CALL W3SPR4 (A, CG, WN, EMEAN, FMEAN, FMEAN1, & 819 WNMEAN, AMAX, UABS, UDIRR, USTAR, USTD, & 820 TAUWX, TAUWY, CD, Z0, CHARN, LLWS, FMEANWS) 821 ! 822 DO ITT=1, 3 823 CALL W3SIN4 (A, CG, WN2, UABS, USTAR, DAIR/DWAT, & 824 ASO(J), UDIRR, Z0, CD, TAUWX, TAUWY, & 825 TAUWNX, TAUWNY, ICE, XWI, DIA, LLWS, IX, IY ) 826 CALL W3SPR4 (A, CG, WN, EMEAN, FMEAN, FMEAN1, & 827 WNMEAN, AMAX, UABS, UDIRR, USTAR, USTD, & 828 TAUWX, TAUWY, CD, Z0, CHARN, LLWS, FMEANWS) 829 END DO 830 ! 831 IF ( FLSRCE(2) ) THEN 832 CALL W3SLN1 ( WN, FHIGH, USTAR, UDIRR, XLN ) 833 ! 834 CALL W3SIN4 (A, CG, WN2, UABS, USTAR, DAIR/DWAT, & 835 ASO(J), UDIRR, Z0, CD, & 836 TAUWX, TAUWY, TAUWNX, TAUWNY, & 837 ICE, XWI, DIA, LLWS, IX, IY ) 838 END IF 839 IF ( FLSRCE(3) ) THEN 840 CALL W3SNL1 ( A, CG, WNMEAN*DEPTH, XNL, DIA ) 841 !!/NLS CALL W3SNLS ( A, CG, WN, DEPTH, UABS, 900., & 842 !!/NLS SNL=XNL, AA=DIA ) 843 ! 844 END IF 845 IF ( FLSRCE(4) ) THEN 846 CALL W3SDS4 ( A, WN, CG, & 847 USTAR, USTD, DEPTH, XDS, DIA, IX, IY, WHITECAP ) 848 ! 849 CALL W3SDB1 ( A, WN2, DEPTH, EMEAN, FMEAN, WNMEAN, & 850 XDB, DIA ) 851 ! 852 END IF 853 IF ( FLSRCE(5) ) THEN 854 855 CALL W3SBT1 ( A, CG, WN, DEPTH, XBT, DIA ) Page 16 Source Listing GXEXPO 2014-09-16 16:54 multiwavegrads_points.f90 856 857 858 859 ! 860 861 862 ! 863 END IF 864 ! 865 DO IK=1, NK 866 FACTOR = TPI / CG(IK) * SIG(IK) 867 DO ITH=1, NTH 868 ISPEC = ITH + (IK-1)*NTH 869 E (IK,ITH) = SPCO(ISPEC,J) 870 SWI(IK,ITH) = ( XWI(ITH,IK) + XLN(ITH,IK) ) * FACTOR 871 SNL(IK,ITH) = ( XNL(ITH,IK) + XTR(ITH,IK) ) * FACTOR 872 SDS(IK,ITH) = ( XDS(ITH,IK) + XDB(ITH,IK) ) * FACTOR 873 SBT(IK,ITH) = ( XBT(ITH,IK) + XBS(ITH,IK) ) * FACTOR 874 STT(IK,ITH) = XXX(ITH,IK) * FACTOR 875 END DO 876 END DO 877 STT = STT + SWI + SNL + SDS + SBT 878 879 ! 880 ! 4.a Perform output 881 ! 882 IF ( FLSRCE(1) ) WRITE (NDSGRD) & 883 ((E (IK,ITH),ITH=1,NTH),IK=NK,1,-1) 884 IF ( FLSRCE(2) ) WRITE (NDSGRD) & 885 ((SWI(IK,ITH),ITH=1,NTH),IK=NK,1,-1) 886 IF ( FLSRCE(3) ) WRITE (NDSGRD) & 887 ((SNL(IK,ITH),ITH=1,NTH),IK=NK,1,-1) 888 IF ( FLSRCE(4) ) WRITE (NDSGRD) & 889 ((SDS(IK,ITH),ITH=1,NTH),IK=NK,1,-1) 890 IF ( FLSRCE(5) ) WRITE (NDSGRD) & 891 ((SBT(IK,ITH),ITH=1,NTH),IK=NK,1,-1) 892 IF ( FLSRCE(6) ) WRITE (NDSGRD) & 893 ((STT(IK,ITH),ITH=1,NTH),IK=NK,1,-1) 894 ! 895 IF ( FLAGLL ) THEN 896 WRITE (NDSPNT,940) PTNME(J), & 897 FACT*PTLOC(1,J), FACT*PTLOC(2,J), DPO(J), WAO(J), & 898 WAO(J)*COS(WDO(J)), WAO(J)*SIN(WDO(J)), ASO(J), & 899 CAO(J), CAO(J)*COS(CDO(J)), CAO(J)*SIN(CDO(J)), & 900 HSIG, GRDID(J) 901 ELSE 902 WRITE (NDSPNT,941) PTNME(J), & 903 FACT*PTLOC(1,J), FACT*PTLOC(2,J), DPO(J), WAO(J), & 904 WAO(J)*COS(WDO(J)), WAO(J)*SIN(WDO(J)), ASO(J), & 905 CAO(J), CAO(J)*COS(CDO(J)), CAO(J)*SIN(CDO(J)), & 906 HSIG, GRDID(J) 907 END IF 908 ! 909 ! ... End of points loop 910 ! 911 END IF 912 END DO Page 17 Source Listing GXEXPO 2014-09-16 16:54 multiwavegrads_points.f90 913 ! 914 RETURN 915 ! 916 ! Formats 917 ! 918 905 FORMAT (9X,A) 919 920 940 FORMAT (A10,1X,2F6.1,f7.1,3F7.1,F8.2,3F7.2,F6.2,2X,A) 921 922 941 FORMAT (A10,1X,2F8.1,f7.1,3F7.1,F8.2,3F7.2,F6.2,2X,A) 923 924 ! 925 !/ 926 !/ End of GXEXPO ----------------------------------------------------- / 927 !/ 928 END SUBROUTINE GXEXPO ENTRY POINTS Name wavegxsp_IP_gxexpo_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 905 Label 918 674 940 Label 920 896 941 Label 922 902 A Local 641 R(4) 4 2 0 808,818,823,826,834,840,846,849,85 5 ABS Func 793 scalar 793 AMAX Local 636 R(4) 4 scalar 819,827 APM Local 640 R(4) 4 1 0 727 ASO Local 824 R(4) 4 1 1 PTR 147,824,835,898,904 ATAN2 Func 729 scalar 729,757 CAO Local 899 R(4) 4 1 1 PTR 147,899,905 CD Local 634 R(4) 4 scalar 820,824,828,835 CDIR Local 630 R(4) 4 scalar 689 CDO Local 689 R(4) 4 1 1 PTR 147,689,899,905 CG Local 639 R(4) 4 1 0 699,702,805,818,823,826,834,840,84 6,855,866 CHARN Local 635 R(4) 4 scalar 820,828 COS Func 898 scalar 898,899,904,905 DAIR Param 823 R(4) 4 scalar 823,834 DENOM Local 633 R(4) 4 scalar 789,793 DEPTH Local 629 R(4) 4 scalar 684,685,698,840,847,849,855 DFAC Param 620 R(4) 4 scalar 620 DIA Local 642 R(4) 4 2 0 825,837,840,847,850,855 DMIN Local 684 R(4) 4 scalar PTR 684 DPO Local 684 R(4) 4 1 1 PTR 147,684,897,903 DSIE Local 620 R(4) 4 scalar 620,693,696 DSII Local 736 R(4) 4 1 1 PTR 736,740,741 DTH Local 726 R(4) 4 scalar PTR 391,726,746,750,751 Page 18 Source Listing GXEXPO 2014-09-16 16:54 Symbol Table multiwavegrads_points.f90 Name Object Declared Type Bytes Dimen Elements Attributes References DTME21 Local 649 CHAR 23 scalar 673,674 DWAT Param 823 R(4) 4 scalar 823,834 E Local 639 R(4) 4 2 0 721,768,869,883 E1 Local 639 R(4) 4 1 0 726,727,728,736,746,766,775,779,78 0,787,788 EBND Local 631 R(4) 4 scalar 716,722,726,731,736,737,738,739,74 6,747,748,749 EBX Local 631 R(4) 4 scalar 717,723,729,731,740,750 EBY Local 631 R(4) 4 scalar 718,724,729,731,741,751 ECG1 Local 620 R(4) 4 1 122 620,699 ECOS Local 723 R(4) 4 1 1 PTR 723 EH Local 633 R(4) 4 scalar 788,789,792 EL Local 633 R(4) 4 scalar 787,789,792 EMAX Local 633 R(4) 4 scalar 775,779,780 EMEAN Local 635 R(4) 4 scalar 818,826,849 ESIN Local 724 R(4) 4 1 1 PTR 724 ET Local 630 R(4) 4 scalar 710,737,747,753,755,756,759 ETR Local 631 R(4) 4 scalar 712,739,749,756 ETX Local 631 R(4) 4 scalar 713,740,750,757,759 ETY Local 631 R(4) 4 scalar 714,741,751,757,759 EWN Local 631 R(4) 4 scalar 711,738,748,755 EWN1 Local 620 R(4) 4 1 122 620,698 FACT Local 897 R(4) 4 scalar 198,200,244,246,299,300,302,303,89 7,903 FACTOR Local 634 R(4) 4 scalar 805,808,866,870,871,872,873,874 FHIGH Local 634 R(4) 4 scalar 832 FLAGLL Local 895 L(4) 4 scalar 197,243,298,895 FLREQ Local 680 L(4) 4 1 1 ALC 239,277,285,286,297,400,680 FLSRCE Local 831 L(4) 4 1 6 179,311,315,831,839,845,853,882,88 4,886,888,890,892 FMEAN Local 635 R(4) 4 scalar 818,826,849 FMEAN1 Local 637 R(4) 4 scalar 818,826 FMEANWS Local 636 R(4) 4 scalar 820,828 FP Local 633 R(4) 4 scalar 792,797 FTE Local 747 R(4) 4 scalar PTR 747,750,751 FTTR Local 749 R(4) 4 scalar PTR 749 FTWL Local 748 R(4) 4 scalar PTR 748 GRAV Param 701 R(4) 4 scalar 701,702,727 GRDID Local 900 CHAR 10 1 1 PTR 148,900,906 GXEXPO Subr 522 345 HSIG Local 632 R(4) 4 scalar 753,754,791,900,906 HSMIN Local 638 R(4) 4 scalar 638,754,791 I1 Local 627 I(4) 4 scalar 693,694,695,696,698,699 I2 Local 627 I(4) 4 scalar 695,698,699 ICE Local 634 R(4) 4 scalar 658,825,837 IK Local 627 I(4) 4 scalar 691,692,698,699,701,702,715,720,72 1,726,727,728,729,730,733,734,736, 738,739,740,741,765,766,768,778,77 9,780,781,804,805,807,808,809,865, 866,868,869,870,871,872,873,874,88 3,885,887,889,891,893 IKH Local 628 I(4) 4 scalar 786,788 IKL Local 627 I(4) 4 scalar 785,787 IKM Local 627 I(4) 4 scalar 776,781,785,786,787,788,792,794,79 5 Page 19 Source Listing GXEXPO 2014-09-16 16:54 Symbol Table multiwavegrads_points.f90 Name Object Declared Type Bytes Dimen Elements Attributes References INT Func 693 scalar 267,693 ISEA Local 628 I(4) 4 scalar ISPEC Local 627 I(4) 4 scalar 720,721,722,723,724,807,808,868,86 9 ITH Local 627 I(4) 4 scalar 719,720,721,723,724,767,768,806,80 7,808,809,867,868,869,870,871,872, 873,874,883,885,887,889,891,893 ITT Local 628 I(4) 4 scalar 822 IX Local 628 I(4) 4 scalar 825,837,847 IY Local 628 I(4) 4 scalar 825,837,847 J Local 627 I(4) 4 scalar 679,680,684,686,687,688,689,721,72 2,723,724,808,824,835,869,896,897, 898,899,900,902,903,904,905,906 LLWS Local 648 L(4) 4 2 0 820,825,828,837 MAX Func 684 scalar 256,258,392,684,688,730,731,758,75 9,785,793 MIN Func 786 scalar 786 MOD Func 686 scalar 369,370,371,379,686,689,729,757 N1MAX Local 620 I(4) 4 scalar 620,694 NAR1D Param 620 I(4) 4 scalar 620 NDSGRD Local 882 I(4) 4 scalar 206,224,361,882,884,886,888,890,89 2 NDSO Local 674 I(4) 4 scalar PTR 146,213,222,233,241,244,246,261,27 3,295,299,302,312,321,332,358,360, 364,385,389,434,674 NDSPNT Local 896 I(4) 4 scalar 207,226,362,896,902 NK Local 639 I(4) 4 scalar PTR 392,393,639,640,641,642,643,644,64 5,646,647,648,691,715,746,750,751, 765,775,776,778,786,804,865,883,88 5,887,889,891,893 NOPTS Local 679 I(4) 4 scalar PTR 146,239,242,284,296,399,679 NTH Local 639 I(4) 4 scalar PTR 391,639,641,642,643,644,645,646,64 7,648,719,720,767,806,807,867,868, 883,885,887,889,891,893 PTLOC Local 897 R(4) 4 2 1 PTR 146,244,246,299,300,302,303,897,90 3 PTNME Local 896 CHAR 10 1 1 PTR 146,244,246,299,302,402,896,902 R1 Local 630 R(4) 4 scalar 696,697,698,699 R2 Local 630 R(4) 4 scalar 697,698,699 RADE Param 686 R(4) 4 scalar 391,686,689,729,730,757,758 REAL Func 696 scalar 374,696 SBT Local 643 R(4) 4 2 0 873,877,891 SDS Local 643 R(4) 4 2 0 872,877,889 SIG Local 692 R(4) 4 1 1 PTR 392,393,692,701,702,727,739,746,75 0,751,792,805,866 SIGN Func 793 scalar 793 SIN Func 898 scalar 898,899,904,905 SIX Local 630 R(4) 4 scalar 692,693,696 SNL Local 642 R(4) 4 2 0 871,877,887 SPBND Local 640 R(4) 4 1 0 730,734,795 SPCO Local 721 R(4) 4 2 1 PTR 147,721,722,723,724,808,869 SPP Local 633 R(4) 4 scalar 795,799 SQRT Func 685 scalar 685,730,731,753,758 SQRTH Local 629 R(4) 4 scalar 685,692,699 STME21 Subr 673 142,260,265,343,673 Page 20 Source Listing GXEXPO 2014-09-16 16:54 Symbol Table multiwavegrads_points.f90 Name Object Declared Type Bytes Dimen Elements Attributes References STT Local 646 R(4) 4 2 0 874,877,893 SWI Local 642 R(4) 4 2 0 870,877,885 TAUWNX Local 637 R(4) 4 scalar 825,836 TAUWNY Local 637 R(4) 4 scalar 825,836 TAUWX Local 636 R(4) 4 scalar 815,820,824,828,836 TAUWY Local 636 R(4) 4 scalar 816,820,824,828,836 THBND Local 640 R(4) 4 1 0 729,733,794 THMEAN Local 632 R(4) 4 scalar 757,763 THP Local 633 R(4) 4 scalar 794,798 THSPRD Local 632 R(4) 4 scalar 758,764 TIME Local 673 I(4) 4 1 1 PTR 145,328,348,673 TMEAN Local 632 R(4) 4 scalar 756,762 TPI Param 727 R(4) 4 scalar 727,755,756,866 TPIINV Param 736 R(4) 4 scalar 392,393,736,746,750,751,805 UABS Local 630 R(4) 4 scalar 688,819,823,827,834 UDIR Local 629 R(4) 4 scalar 686 UDIRR Local 630 R(4) 4 scalar 687,819,824,827,832,835 USTAR Local 634 R(4) 4 scalar 813,819,823,827,832,834,847 USTD Local 635 R(4) 4 scalar 819,827,847 W3DISPMD Module 620 620 W3SBT1 Subr 855 855 W3SBT1MD Module 617 617 W3SDB1 Subr 849 849 W3SDB1MD Module 618 618 W3SDS4 Subr 846 846 W3SIN4 Subr 823 823,834 W3SLN1 Subr 832 832 W3SLN1MD Module 614 614 W3SNL1 Subr 840 840 W3SNL1MD Module 616 616 W3SPR4 Subr 818 818,826 W3SRC4MD Module 615 615 WAO Local 688 R(4) 4 1 1 PTR 147,688,897,898,903,904 WDO Local 686 R(4) 4 1 1 PTR 147,686,687,898,904 WHITECAP Local 637 R(4) 4 1 4 847 WLEN Local 632 R(4) 4 scalar 755,761 WN Local 639 R(4) 4 1 0 698,701,738,809,818,826,832,846,85 5 WN2 Local 641 R(4) 4 2 0 809,823,834,849 WNMEAN Local 635 R(4) 4 scalar 819,827,840,849 XBS Local 646 R(4) 4 2 0 667,873 XBT Local 645 R(4) 4 2 0 666,855,873 XDB Local 645 R(4) 4 2 0 665,850,872 XDS Local 645 R(4) 4 2 0 664,847,872 XFR Local 654 R(4) 4 scalar PTR 654,655 XH Local 629 R(4) 4 scalar 655,657,789 XH2 Local 629 R(4) 4 scalar 657,792 XL Local 629 R(4) 4 scalar 654,656,789 XL2 Local 629 R(4) 4 scalar 656,792 XLN Local 643 R(4) 4 2 0 660,832,870 XNL Local 644 R(4) 4 2 0 662,840,871 XTR Local 644 R(4) 4 2 0 663,871 XWI Local 644 R(4) 4 2 0 661,825,837,870 XWL Local 647 R(4) 4 2 0 668 XXX Local 646 R(4) 4 2 0 669,874 Page 21 Source Listing GXEXPO 2014-09-16 16:54 Symbol Table multiwavegrads_points.f90 Name Object Declared Type Bytes Dimen Elements Attributes References Z0 Local 635 R(4) 4 scalar 820,824,828,835 ZWND Local 634 R(4) 4 scalar 814 ZZWND Local 814 R(4) 4 scalar PTR 814 Page 22 Source Listing GXEXPO 2014-09-16 16:54 multiwavegrads_points.f90 929 !/ 930 !/ End of WAVEGXSP ----------------------------------------------------- / 931 !/ 932 END PROGRAM WAVEGXSP ENTRY POINTS Name MAIN__ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 1000 Label 501 413 1001 Label 505 417 1002 Label 508 421 1020 Label 512 425 1021 Label 515 429 800 Label 412 219 801 Label 416 220,255,282,311 802 Label 420 220,255,282,311 820 Label 424 379 821 Label 428 888 Label 432 408 900 Label 438 213 901 Label 440 222 920 Label 442 233 930 Label 444 241 931 Label 447 244 932 Label 449 246 940 Label 451 261 941 Label 454 273 950 Label 457 295 951 Label 460 299 952 Label 464 312 953 Label 466 316 955 Label 467 321 956 Label 462 302 960 Label 470 358 961 Label 472 360 962 Label 474 364 963 Label 475 385 964 Label 478 389 970 Label 480 391 971 Label 487 393 972 Label 488 394 973 Label 492 402 974 Label 493 406 998 Label 495 332 999 Label 497 434 CINC Local 167 CHAR 2 scalar 377,381,385,396 COMSTR Local 166 CHAR 1 scalar 220,221,222,254,281,310 CONSTANTS Module 133 133 Page 23 Source Listing GXEXPO 2014-09-16 16:54 Symbol Table multiwavegrads_points.f90 Name Object Declared Type Bytes Dimen Elements Attributes References DSEC21 Func 142 R(4) 4 scalar 142,328,374 DTEST Local 161 R(4) 4 scalar 328,329,337 DTREQ Local 161 R(4) 4 scalar 255,256,257,264,266,267,338,350,37 4,375,376,378,379,382,425 EXTCDE Subr 141 141,414,418,422,426,430 FNMPRE Local 147 CHAR 80 scalar 147,217,218,224,226,227 GNAME Local 233 CHAR 30 scalar PTR 233 I Local 157 I(4) 4 scalar 242,244,246,296,297,299,300,302,30 3,314,315,316,399,400,402 ID0 Local 159 I(4) 4 scalar 370,385,395 IDDDAY Local 166 CHAR 11 scalar 267,269,271 IDSRCE Local 169 CHAR 25 1 6 173,316 IDTIME Local 166 CHAR 23 scalar 260,261,265,271,272,273,343 IERR Local 156 I(4) 4 scalar 219,413,421 IH0 Local 159 I(4) 4 scalar 368,385,395 IID Local 159 I(4) 4 scalar 371,385,395 IINC Local 159 I(4) 4 scalar 378,382,385,396 IJ0 Local 159 I(4) 4 scalar 372,385,395 IK Local 159 I(4) 4 scalar 392,393 IM0 Local 159 I(4) 4 scalar 369,385,395 IOTEST Local 157 I(4) 4 scalar 238,330,331 IOUT Local 158 I(4) 4 scalar 325,342,351,374,375,385,395 IPOINT Local 158 I(4) 4 scalar 282,283,284,285,286 IREQ Local 160 I(4) 4 scalar 398,401,402 ITRACE Subr 141 141,215 J Local 160 I(4) 4 scalar 217,218,224,226,227 LEN_TRIM Func 217 scalar 217 MNTH Local 168 CHAR 3 1 12 182,385,395 NDSCGR Local 156 I(4) 4 scalar 208,227,391,393,394,402,406 NDSE Local 146 I(4) 4 scalar PTR 146,254,281,310,413,417,421,425,42 9 NDSI Local 155 I(4) 4 scalar 203,218,220,254,255,281,282,310,31 1 NDSM Local 155 I(4) 4 scalar 204,232 NDSOP Local 155 I(4) 4 scalar 205,238,330 NDST Local 146 I(4) 4 scalar PTR 146,316 NDSTRC Local 156 I(4) 4 scalar 210,215 NEXTLN Subr 141 141,254,281,310 NINT Func 378 scalar 378,379,382 NLEV Local 158 I(4) 4 scalar 313,317,394,402 NOUT Local 157 I(4) 4 scalar 255,257,258,273,351 NREQ Local 158 I(4) 4 scalar 278,285,295,396 NTRACE Local 156 I(4) 4 scalar 211,215 TDUM Local 157 I(4) 4 1 2 263,264,265 TH Local 391 R(4) 4 1 1 PTR 391 TICK21 Subr 142 142,264,338,350 TIME0 Local 158 I(4) 4 1 2 181,348,368,369,370,371,372,374 TIMEN Local 160 I(4) 4 1 2 346,374 TOUT Local 157 I(4) 4 1 2 255,260,328,338,343,346,350 UNDEFP Local 162 R(4) 4 scalar 162,391 W3ADATMD Module 137 137 W3GDATMD Module 144 144 W3IOGR Subr 139 139,232 W3IOGRMD Module 139 139 W3IOPO Subr 140 140,238,330 Page 24 Source Listing GXEXPO 2014-09-16 16:54 Symbol Table multiwavegrads_points.f90 Name Object Declared Type Bytes Dimen Elements Attributes References W3IOPOMD Module 140 140 W3NAUX Subr 137 137,192 W3NDAT Subr 136 136,190 W3NMOD Subr 188 188 W3NOUT Subr 138 138,194 W3ODATMD Module 138 138,146 W3SERVMD Module 141 141 W3SETA Subr 137 137,193 W3SETG Subr 189 189 W3SETO Subr 138 138,195 W3SETW Subr 136 136,191 W3TIMEMD Module 142 142 W3WDATMD Module 136 136,145 WAVEGXSP Prog 2 Page 25 Source Listing GXEXPO 2014-09-16 16:54 Subprograms/Common Blocks multiwavegrads_points.f90 SUBPROGRAMS/COMMON BLOCKS Name Object Declared Type Bytes Dimen Elements Attributes References GXEXPO Subr 522 345 WAVEGXSP 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 26 Source Listing GXEXPO 2014-09-16 16:54 multiwavegrads_points.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_points.lst -o filename : none COMPILER: Intel(R) Fortran 12.1-2100