Page 1 Source Listing W3EXGB 2014-09-16 16:55 multiwavegrib1.f90 1 !/ ------------------------------------------------------------------- / 2 PROGRAM WAVEGRIB1 3 !/ 4 !/ +-----------------------------------+ 5 !/ | WAVEWATCH III NOAA/NCEP | 6 !/ | H. L. Tolman | 7 !/ | A. Chawla | 8 !/ | J.-H. Alves | 9 !/ | FORTRAN 90 | 10 !/ | Last update : 01-Mar-2013 | 11 !/ +-----------------------------------+ 12 !/ 13 !/ 01-Nov-1999 : Final FORTRAN 77 ( version 1.18 + error fix ) 14 !/ 24-Jan-2000 : Upgrade to FORTRAN 90 ( version 2.00 ) 15 !/ 25-Jan-2001 : Flat grid error exit added ( version 2.06 ) 16 !/ 29-Apr-2002 : Adding output fields 17-18. ( version 2.20 ) 17 !/ 08-May-2002 : Replace XLF switch with NCEP1. ( version 2.21 ) 18 !/ 13-Nov-2002 : Add stress vector. ( version 3.00 ) 19 !/ 24-Dec-2004 : Multiple grid version. ( version 3.06 ) 20 !/ 20-Jul-2005 : Additional output parameters. ( version 3.07 ) 21 !/ 11-Apr-2007 : Additional output parameters. ( version 3.11 ) 22 !/ 18-May-2007 : Update GRIB1 for partitioning. ( version 3.11 ) 23 !/ 16-Jul-2007 : Adding GRIB2 capability. ( version 3.11 ) 24 !/ (A. Chawla) 25 !/ 01-Aug-2007 : Update FLGRIB for GRIB2. ( version 3.11 ) 26 !/ 29-May-2009 : Preparing distribution version. ( version 3.14 ) 27 !/ 30-Oct-2009 : Implement run-time grid selection. ( version 3.14 ) 28 !/ (W. E. Rogers & T. J. Campbell, NRL) 29 !/ 05-Oct-2011 : Updating to the 53 output parameter ( version 4.05 ) 30 !/ (Arun Chawla) 31 !/ 01-Mar-2013 : Adding double-index output fields ( version 4.OF ) 32 !/ 08-Sep-2014 : Adding lambert conformal grid ( version 4.15 ) 33 !/ (J.H. Alves) 34 !/ 35 !/ Copyright 2009 National Weather Service (NWS), 36 !/ National Oceanic and Atmospheric Administration. All rights 37 !/ reserved. WAVEWATCH III is a trademark of the NWS. 38 !/ No unauthorized use without permission. 39 !/ 40 ! 1. Purpose : 41 ! 42 ! Post-processing of grid output. 43 ! 44 ! 2. Method : 45 ! 46 ! Data is read from the grid output file out_grd.ww3 (raw data) 47 ! and from the file multiwavegrib1.inp ( NDSI, output requests ). 48 ! Model definition and raw data files are read using WAVEWATCH III 49 ! subroutines. 50 ! GRIB packing is performed using NCEP's W3 library (not supplied). 51 ! 52 ! When adding new parameters to GRIB packing, keep in mind that 53 ! packing is done differently for scalar and vector quantities 54 ! 55 ! 3. Parameters : 56 ! 57 ! 4. Subroutines used : Page 2 Source Listing W3EXGB 2014-09-16 16:55 multiwavegrib1.f90 58 ! 59 ! Name Type Module Description 60 ! ---------------------------------------------------------------- 61 ! W3NMOD Subr. W3GDATMD Set number of model. 62 ! W3SETG Subr. Id. Point to selected model. 63 ! W3NDAT Subr. W3WDATMD Set number of model for wave data. 64 ! W3SETW Subr. Id. Point to selected model for wave data. 65 ! W3NAUX Subr. W3ADATMD Set number of model for aux data. 66 ! W3SETA Subr. Id. Point to selected model for aux data. 67 ! ITRACE Subr. W3SERVMD Subroutine tracing initialization. 68 ! STRACE Subr. Id. Subroutine tracing. 69 ! NEXTLN Subr. Id. Get next line from input filw 70 ! EXTCDE Subr. Id. Abort program as graceful as possible. 71 ! STME21 Subr. W3TIMEMD Convert time to string. 72 ! TICK21 Subr. Id. Advance time. 73 ! DSEC21 Func. Id. Difference between times. 74 ! W3IOGR Subr. W3IOGRMD Reading/writing model definition file. 75 ! W3IOGO Subr. W3IOGOMD Reading/writing raw gridded data file. 76 ! W3READFLGRD Subr. W3IOGOMD Reading output fields flags. 77 ! W3EXGB Subr. Internal Execute grib output. 78 ! BAOPEN Subr. NCEP library routine. 79 ! BAOPENW Subr. NCEP library routine. 80 ! ---------------------------------------------------------------- 81 ! 82 ! 5. Called by : 83 ! 84 ! None, stand-alone program. 85 ! 86 ! 6. Error messages : 87 ! 88 ! Checks on input, checks in W3IOxx. 89 ! 90 ! 7. Remarks : 91 ! 92 ! 8. Structure : 93 ! 94 ! See source code. 95 ! 96 ! 9. Switches : 97 ! 98 ! !/S Enable subroutine tracing. 99 ! 100 ! !/NCO NCEP NCO modifications for operational implementation. 101 ! 102 ! !/NOGRB No GRIB package included. 103 ! !/NCEP1 NCEP IBM links to GRIB1 packing routines. 104 ! !/NCEP2 NCEP IBM links to GRIB2 packing routines. 105 ! 106 ! 10. Source code : 107 ! 108 !/ ------------------------------------------------------------------- / 109 USE CONSTANTS 110 ! 111 ! USE W3GDATMD, ONLY: W3NMOD, W3SETG 112 USE W3WDATMD, ONLY: W3NDAT, W3SETW 113 ! USE W3ADATMD, ONLY: W3NAUX, W3SETA 114 USE W3ODATMD, ONLY: W3NOUT, W3SETO Page 3 Source Listing W3EXGB 2014-09-16 16:55 multiwavegrib1.f90 115 USE W3IOGRMD, ONLY: W3IOGR 116 USE W3IOGOMD, ONLY: W3READFLGRD, W3IOGO 117 USE W3SERVMD, ONLY : ITRACE, NEXTLN, EXTCDE 118 USE W3TIMEMD, ONLY: STME21, TICK21, DSEC21 119 ! 120 USE W3GDATMD 121 USE W3WDATMD, ONLY: TIME, WLV, ICE, UST, USTDIR 122 ! USE W3ADATMD, ONLY: DW, UA, UD, AS, CX, CY, HS, WLM, T0M1, THM, & 123 ! THS, FP0, THP0, FP1, THP1, DTDYN, FCUT, & 124 ! PHS, PTP, PLP, PTH, PSI, PWS, PWST, PNR, & 125 ! USERO 126 USE W3ADATMD 127 USE W3ODATMD, ONLY: NDSE, NDST, NDSO, NOGRP, NGRPP, IDOUT, UNDEF,& 128 FLOGRD, FNMPRE, NOSWLL, NOGE, FLOG 129 ! 130 IMPLICIT NONE 131 !/ 132 !/ ------------------------------------------------------------------- / 133 !/ Local variables 134 !/ 135 INTEGER :: NDSI, NDSM, NDSOG, NDSDAT, NDSTRC, & 136 NTRACE, IERR, IOTEST, I,J,K, IFI,IFJ,& 137 ISEA, IX, IY, TOUT(2), NOUT, TDUM(2),& 138 FTIME(2), CID, PID, GID, GDS, IOUT, & 139 GDTN 140 INTEGER, ALLOCATABLE :: IFIA(:),IFJA(:) 141 ! GRIB1 specific variables 142 INTEGER :: KPDS(25), KGDS(22) 143 ! GRIB2 specific variables 144 REAL :: DTREQ, DTEST, RFTIME 145 LOGICAL :: FLREQ(NOGRP,NGRPP), FLGRIB(NOGRP,NGRPP) 146 CHARACTER :: COMSTR*1, IDTIME*23, IDDDAY*11 147 !/ 148 !/ ------------------------------------------------------------------- / 149 !/ 150 ! CALL W3TAGB('WAVEGRIB',1998,0007,0050,'NP21 ') 151 ! 152 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 153 ! 1. IO set-up. 154 ! 155 CALL W3NMOD ( 1, 6, 6 ) 156 CALL W3SETG ( 1, 6, 6 ) 157 CALL W3NDAT ( 6, 6 ) 158 CALL W3SETW ( 1, 6, 6 ) 159 CALL W3NAUX ( 6, 6 ) 160 CALL W3SETA ( 1, 6, 6 ) 161 CALL W3NOUT ( 6, 6 ) 162 CALL W3SETO ( 1, 6, 6 ) 163 ! 164 NDSI = 10 165 NDSM = 20 166 NDSOG = 20 167 NDSDAT = 50 168 ! 169 NDSTRC = 6 170 NTRACE = 10 171 ! Page 4 Source Listing W3EXGB 2014-09-16 16:55 multiwavegrib1.f90 172 ! Redo according to NCO 173 ! 174 NDSI = 11 175 NDSO = 6 176 NDSE = NDSO 177 NDST = NDSO 178 NDSM = 12 179 NDSOG = 13 180 NDSDAT = 51 181 NDSTRC = NDSO 182 ! 183 WRITE (NDSO,900) 184 ! 185 CALL ITRACE ( NDSTRC, NTRACE ) 186 ! 187 OPEN (NDSI,FILE='multiwavegrib1.inp',STATUS='OLD',ERR=800,IOSTAT=IERR) 188 READ (NDSI,'(A)',END=801,ERR=802) COMSTR 189 IF (COMSTR.EQ.' ') COMSTR = '$' 190 WRITE (NDSO,901) COMSTR 191 ! 192 CALL BAOPEN (NDSDAT,'gribfile',IERR) 193 ! 194 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 195 ! 2. Read model definition file. 196 ! 197 CALL W3IOGR ( 'READ', NDSM ) 198 WRITE (NDSO,920) GNAME 199 ! 200 IF ( .NOT. FLAGLL ) GOTO 810 201 ! 202 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 203 ! 3. Read requests from input file. 204 ! Output times 205 ! 206 CALL NEXTLN ( COMSTR , NDSI , NDSE ) 207 READ (NDSI,*,END=801,ERR=802) TOUT, DTREQ, NOUT 208 DTREQ = MAX ( 0. , DTREQ ) 209 IF ( DTREQ.EQ.0 ) NOUT = 1 210 NOUT = MAX ( 1 , NOUT ) 211 ! 212 CALL STME21 ( TOUT , IDTIME ) 213 WRITE (NDSO,940) IDTIME 214 ! 215 TDUM(1) = 0 216 TDUM(2) = 0 217 CALL TICK21 ( TDUM , DTREQ ) 218 CALL STME21 ( TDUM , IDTIME ) 219 IF ( DTREQ .GE. 86400. ) THEN 220 WRITE (IDDDAY,'(I10,1X)') INT(DTREQ/86400.) 221 ELSE 222 IDDDAY = ' ' 223 END IF 224 IDTIME(1:11) = IDDDAY 225 IDTIME(21:23) = ' ' 226 WRITE (NDSO,941) IDTIME, NOUT 227 ! 228 ! ... Initialize FLGRD array Page 5 Source Listing W3EXGB 2014-09-16 16:55 multiwavegrib1.f90 229 ! 230 FLREQ(:,:)=.FALSE. 231 ! 232 ! ... Call to interface for reading flags or namelists 233 ! 234 CALL W3READFLGRD ( NDSI, NDSO, 9, NDSE, COMSTR, FLOG, FLREQ, & 235 1, 1, IERR ) 236 ! 237 ! Inform user of parameters that were requested but failed to make the 238 ! grade, as they are not available for grib encoding, or are not 239 ! included presently 240 ! 241 WRITE (NDSO,944) 242 ! Reset flags for variables not yet implemented in grib output 243 ! interface 244 ! 245 IFI = 3 ! Entire group Frequency-dependent parameters 246 DO IFJ = 1,NOGE(IFI) 247 IF ( FLREQ(IFI,IFJ) ) THEN 248 WRITE (NDSO,946) IDOUT(IFI,IFJ), & 249 '*** NOT YET CODED INTO WW3_GRIB ***' 250 FLREQ(IFI,IFJ) = .FALSE. 251 END IF 252 END DO 253 ! 254 IFI = 5 ! Atm-waves layer, all except for friction velocity 255 DO IFJ = 2,10 256 IF ( FLREQ(IFI,IFJ) ) THEN 257 WRITE (NDSO,946) IDOUT(IFI,IFJ), & 258 '*** NOT YET CODED INTO WW3_GRIB ***' 259 FLREQ(IFI,IFJ) = .FALSE. 260 END IF 261 END DO 262 DO IFI = 6,8 ! Entire groups wave-ocean interaction, wave-bottom 263 ! layer and spectrum parameters 264 DO IFJ = 1,NOGE(IFI) 265 IF ( FLREQ(IFI,IFJ) ) THEN 266 WRITE (NDSO,946) IDOUT(IFI,IFJ), & 267 '*** NOT YET CODED INTO WW3_GRIB ***' 268 FLREQ(IFI,IFJ) = .FALSE. 269 END IF 270 END DO 271 END DO 272 IF ( FLREQ(9,5) ) THEN ! CFL number for K advection 273 WRITE (NDSO,946) IDOUT(9,5),'*** NOT YET CODED INTO WW3_GRIB ***' 274 FLREQ(9,5) = .FALSE. 275 END IF 276 IFI = 10 ! User defined parameters 277 DO IFJ = 1,NOGE(IFI) 278 IF ( FLREQ(IFI,IFJ) ) THEN 279 WRITE (NDSO,946) IDOUT(IFI,IFJ), & 280 '*** NOT YET CODED INTO WW3_GRIB ***' 281 FLREQ(IFI,IFJ) = .FALSE. 282 END IF 283 END DO 284 ! 285 ! Compatibility with NCEP operational codes, same effect as old FLGRIB Page 6 Source Listing W3EXGB 2014-09-16 16:55 multiwavegrib1.f90 286 ! lists variables that have no code for variable names (not 100% 287 ! correct in old codes... ) 288 ! 289 ! Chage this as parameters become available in grib2 tables 290 ! 291 ALLOCATE ( IFIA (16), IFJA(16) ) 292 293 IFIA = (/ 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 5, 9, 9, 9, 9 /) 294 IFJA = (/ 1, 4, 2 ,3, 5, 8, 3, 5, 6, 7, 8, 1, 1, 2, 3, 4 /) 295 DO I = 1, 16 296 FLREQ(IFIA(I),IFJA(I)) = .FALSE. ! Water depth 297 WRITE(NDSO,946) IDOUT(IFIA(I),IFJA(I)), & 298 '*** EXCLUDED FROM GRIB OUTPUT ***' 299 END DO 300 ! 301 ! Write to stdout parameters that have successfully been requested 302 ! 303 WRITE (NDSO,945) 304 DO I=1, NOGRP 305 DO J=1, NGRPP 306 IF ( FLREQ(I,J) ) WRITE (NDSO,931) IDOUT(I,J) 307 END DO 308 END DO 309 ! 310 ! ... GRIB specific parameters 311 ! 312 CALL NEXTLN ( COMSTR , NDSI , NDSE ) 313 READ (NDSI,*,END=801,ERR=802) FTIME, CID, PID, GID, GDS, GDTN 314 ! 315 ! Check if grid type is curvilinear, and only go on if Lambert conformal 316 ! 317 IF ( GTYPE .EQ. CLGTYPE ) THEN 318 WRITE(NDSE,*)'PROGRAM WAVEGRIB1: CURVILINEAR GRID SUPPORT '// & 319 'FOR GRIB OUTPUT IS NOT YET IMPLEMENTED. NOW STOPPING' 320 CALL EXTCDE ( 1 ) 321 END IF 322 ! 323 ! Call addtional information if GDTN != 0 (rectiliner/regular) 324 ! Coded up to now only for Lamber conformal grids (GDTN=30) 325 ! For regular grids use GDTN=0 326 ! 327 CALL STME21 ( FTIME , IDTIME ) 328 WRITE (NDSO,948) IDTIME, CID, PID, GID, GDS 329 ! 330 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 331 ! 4. Read general data and first fields from file 332 ! 4.a Read file. 333 ! 334 CALL W3IOGO ( 'READ', NDSOG, IOTEST ) 335 ! 336 ! 4.b Output fields in file 337 ! 338 WRITE (NDSO,930) 339 DO I=1, NOGRP 340 DO J=1, NGRPP 341 IF ( FLOGRD(I,J) ) WRITE (NDSO,931) IDOUT(I,J) 342 END DO Page 7 Source Listing W3EXGB 2014-09-16 16:55 multiwavegrib1.f90 343 END DO 344 ! 345 ! 4.c Flip MAPSF for REGULAR/RECTILINEAR grids 346 ! 347 DO ISEA=1, NSEA 348 IX = MAPSF(ISEA,1) 349 IY = MAPSF(ISEA,2) 350 MAPSF(ISEA,2) = NY + 1 - IY 351 MAPSF(ISEA,3) = IY +( IX-1)*NY 352 END DO 353 ! 354 !--- - - - - - - - - - - - - - - - - - - - - - - - - - 355 ! 5. Set grib encoding parameter Sections 356 ! 357 ! ... Initialize KPDS and KGDS (for both NCEP1 and NCEP2) 358 ! 359 KPDS = 0 360 KGDS = 0 361 ! 362 ! ... Set PDS GRIB1 elements 363 ! 364 ! ( 1) ID OF CENTER 365 ! ( 2) GENERATING PROCESS ID NUMBER 366 ! ( 3) GRID DEFINITION 367 ! ( 4) GDS/BMS FLAG (RIGHT ADJ COPY OF OCTET 8) 368 ! ** ( 5) INDICATOR OF PARAMETER 369 ! ( 6) TYPE OF LEVEL 370 ! ( 7) HEIGHT/PRESSURE , ETC OF LEVEL 371 ! * ( 8) YEAR of century 372 ! * ( 9) MONTH OF YEAR 373 ! * (10) DAY OF MONTH 374 ! * (11) HOUR OF DAY 375 ! (12) MINUTE OF HOUR 376 ! (13) INDICATOR OF FORECAST TIME UNIT 377 ! * (14) TIME RANGE 1 378 ! (15) TIME RANGE 2 379 ! (16) TIME RANGE FLAG 380 ! (17) NUMBER INCLUDED IN AVERAGE 381 ! (18) VERSION NR OF GRIB SPECIFICATION 382 ! (19) VERSION NR OF PARAMETER TABLE 383 ! (20) NR MISSING FROM AVERAGE/ACCUMULATION 384 ! * (21) CENTURY OF REFERENCE TIME OF DATA 385 ! (22) UNITS DECIMAL SCALE FACTOR 386 ! (23) SUBCENTER NUMBER 387 ! (24) PDS BYTE 29, FOR NMC ENSEMBLE PRODUCTS 388 ! (25) PDS BYTE 30, NOT USED 389 ! 390 ! * : Changing on the fly in main program 391 ! ** : Changing on the fly in W3EXGB 392 ! 393 KPDS( 1) = CID 394 KPDS( 2) = PID 395 KPDS( 3) = GID 396 KPDS( 4) = GDS 397 KPDS( 6) = 1 398 KPDS( 7) = 1 399 KPDS(13) = 1 Page 8 Source Listing W3EXGB 2014-09-16 16:55 multiwavegrib1.f90 400 KPDS(18) = 1 401 KPDS(22) = 2 402 ! 403 ! ... Set GDS GRIB1 elements 404 ! 405 ! ( 1) DATA REPRESENTATION TYPE 406 ! ( 2) N(I) NR POINTS ON LATITUDE CIRCLE 407 ! ( 3) N(J) NR POINTS ON LONGITUDE MERIDIAN 408 ! ( 4) LA(1) LATITUDE OF ORIGIN 409 ! ( 5) LO(1) LONGITUDE OF ORIGIN 410 ! ( 6) RESOLUTION FLAG (RIGHT ADJ COPY OF OCTET 17) 411 ! ( 7) LA(2) LATITUDE OF EXTREME POINT 412 ! ( 8) LO(2) LONGITUDE OF EXTREME POINT 413 ! ( 9) DI LONGITUDINAL DIRECTION OF INCREMENT 414 ! (10) DJ LATITUDINAL DIRECTION INCREMENT 415 ! (11) SCANNING MODE FLAG (RIGHT ADJ COPY OF OCTET 28) 416 ! (19) NUMBER OF VERTICAL COORDINATE PARAMETERS 417 ! (20) OCTET NUMBER OF THE LIST OF VERTICAL COORDINATE 418 ! PARAMETERS OR OCTET NUMBER OF THE LIST OF NUMBERS 419 ! OF POINTS IN EACH ROW OR 255 IF NEITHER ARE PRESENT 420 ! (21) FOR GRIDS WITH PL, NUMBER OF POINTS IN GRID 421 ! (22) NUMBER OF WORDS IN EACH ROW 422 ! 423 KGDS( 2) = NX 424 KGDS( 3) = NY 425 KGDS( 4) = NINT(1000.*(Y0+(REAL(NY-1)*SY))) 426 KGDS( 5) = NINT(1000.*X0) 427 KGDS( 6) = 128 428 KGDS( 7) = NINT(1000.*Y0) 429 KGDS( 8) = NINT(1000.*(X0+REAL(NX-1)*SX)) 430 KGDS( 9) = NINT(1000.*SX) 431 KGDS(10) = NINT(1000.*SY) 432 KGDS(20) = 255 433 ! 434 ! ... Set GRIB2 packing arrays 435 ! 436 ! ... Set GRIB2 Indicator Section 437 ! ( 1) Discipline-GRIB Master Table Number (see Code Table 0.0) 438 ! 0 = Metereological; 10 = Oceanographic 439 ! ( 2) GRIB Edition Number 440 ! ( 3) 441 ! 442 ! ... Set GRIB2 Identification Section 443 ! ( 1) ID OF CENTER 444 ! ( 2) ID OF SUB-CENTER 445 ! ( 3) GRIB Master Tables Version Number (Code Table 1.0) 446 ! ( 4) GRIB Local Tables Version Number (Code Table 1.0) 447 ! ( 5) Significance of Reference Time (Code Table 1.2) 448 ! * ( 6) YEAR (4 digits) 449 ! * ( 7) MONTH OF YEAR 450 ! * ( 8) DAY OF MONTH 451 ! * ( 9) HOUR OF DAY 452 ! (10) MINUTE OF HOUR 453 ! (11) SECOND OF MINUTE 454 ! (12) Production status of data (Code Table 1.3) 455 ! (13) Type of processed data (Code Table 1.4) 456 ! Page 9 Source Listing W3EXGB 2014-09-16 16:55 multiwavegrib1.f90 457 ! ... Set GRIB2 IGDS elements 458 ! ( 1) Source of grid definition (Code Table 3.0) 459 ! ( 2) Number of grid points 460 ! ( 3) Number of octets needed for each additional grid points definition 461 ! ( 4) Interpretation of list for optional points definition (Code Table 3.11) 462 ! ( 5) Grid definition template number (Code Table 3.1) 463 ! 464 ! ... Set GRIB2 KGDS elements 465 ! ( 1) Coordinate system (6 = spherical coordinate system with radius of 6,371,229 m) 466 ! ( 2) 467 ! ( 3) 468 ! ( 4) 469 ! ( 5) 470 ! ( 6) 471 ! ( 7) 472 ! ( 8) Number of points along parallel 473 ! ( 9) Number of points along meridian 474 ! (10) 475 ! (11) 476 ! (12) Latitude of first grid point 477 ! (13) Longitude of first grid point 478 ! (14) Res and comp flags 479 ! (15) Latitude of last grid point 480 ! (16) Longitude of last grid point 481 ! (17) Increment of longitude 482 ! (18) Increment of latitude 483 ! (19) Scanning mode 484 ! 485 486 ! 487 ! ... Set GRIB2 PDS elements 488 ! KPDSNUM (0 indicates forecast at a horizontal level) 489 ! ( 1) Parameter category (Code Table 4.1) 490 ! For oceanographic products -- 0 = waves; 1 = currents; 2 = ice 491 ! For atmospheric products -- 2 = momentum 492 ! ( 2) Parameter number (Code Table 4.2) 493 ! ( 3) Generating process (Code Table 4.3) 494 ! ( 4) Background generating process identifier (center specific) 495 ! ( 5) Process or model number 496 ! ( 6) Hours of observational data cutoff after reference time 497 ! ( 7) Minutes of observational data cutoff after reference time 498 ! ( 8) Indicator of forecast time unit (Code Table 4.4) 499 ! ( 9) Time range 500 ! (10) Type of level (Code Table 4.5) 1st level 501 ! (11) Scaled factor of (10) 502 ! (12) Scaled value of (10) 503 ! (13) Type of level (Code Table 4.5) 2nd level 504 ! (14) Scaled factor of (13) 505 ! (15) Scaled value of (13) 506 ! 507 ! ... Set GRIB2 vertical layer information 508 ! 509 ! ... Set GRIB2 bitmap information 510 ! 0 Bitmap is provided 511 ! 512 ! ... Set GRIB2 Data Representation Template Number (Code Table 5.0) 513 ! Page 10 Source Listing W3EXGB 2014-09-16 16:55 multiwavegrib1.f90 514 ! clusters with Intel compiler *** 515 ! 516 ! ... Set GRIB2 IDRS elements 517 ! ( 1) Reference value (R) (IEEE 32-bit floating-point value) 518 ! ( 2) Binary Scale Factor (E) 519 ! ( 3) Decimal Scale Factor (D) 520 ! ( 4) Number of bits used for each packed value 521 ! ( 5) Type of original field values (Code Table 5.1) 522 ! 523 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 524 ! 6. Time management. 525 ! 526 IOUT = 0 527 WRITE (NDSO,970) 528 ! 529 DO 530 DTEST = DSEC21 ( TIME , TOUT ) 531 IF ( DTEST .GT. 0. ) THEN 532 CALL W3IOGO ( 'READ', NDSOG, IOTEST ) 533 IF ( IOTEST .EQ. -1 ) THEN 534 WRITE (NDSO,942) 535 GOTO 888 536 END IF 537 CYCLE 538 END IF 539 IF ( DTEST .LT. 0. ) THEN 540 CALL TICK21 ( TOUT , DTREQ ) 541 CYCLE 542 END IF 543 ! 544 IOUT = IOUT + 1 545 CALL STME21 ( TOUT , IDTIME ) 546 ! 547 RFTIME = DSEC21 ( FTIME , TIME ) / 3600. 548 IF ( RFTIME .LT. 0. ) THEN 549 KPDS( 8) = 1 + MOD(TIME(1)/10000-1,100) 550 KPDS( 9) = MOD(TIME(1),10000) / 100 551 KPDS(10) = MOD(TIME(1),100) 552 KPDS(11) = TIME(2) / 10000 553 KPDS(14) = 0 554 KPDS(21) = 1 + (TIME(1)/10000-1)/100 555 WRITE (NDSO,972) IDTIME 556 ELSE 557 KPDS( 8) = 1 + MOD(FTIME(1)/10000-1,100) 558 KPDS( 9) = MOD(FTIME(1),10000) / 100 559 KPDS(10) = MOD(FTIME(1),100) 560 KPDS(11) = FTIME(2) / 10000 561 KPDS(14) = NINT(RFTIME) 562 KPDS(21) = 1 + (FTIME(1)/10000-1)/100 563 WRITE (NDSO,971) IDTIME, NINT(RFTIME) 564 END IF 565 ! 566 CALL W3EXGB ( NX, NY, NSEA ) 567 CALL TICK21 ( TOUT , DTREQ ) 568 IF ( IOUT .GE. NOUT ) EXIT 569 END DO 570 ! Page 11 Source Listing W3EXGB 2014-09-16 16:55 multiwavegrib1.f90 571 GOTO 888 572 ! 573 ! Escape locations read errors : 574 ! 575 800 CONTINUE 576 WRITE (NDSE,1000) IERR 577 CALL EXTCDE ( 3 ) 578 ! 579 801 CONTINUE 580 WRITE (NDSE,1001) 581 CALL EXTCDE ( 4 ) 582 ! 583 802 CONTINUE 584 WRITE (NDSE,1002) IERR 585 CALL EXTCDE ( 5 ) 586 ! 587 810 CONTINUE 588 IF ( .NOT. FLAGLL ) THEN 589 WRITE (NDSE,1010) 590 CALL EXTCDE ( 10 ) 591 END IF 592 ! 593 888 CONTINUE 594 WRITE (NDSO,999) 595 ! 596 ! CALL W3TAGE('WAVEGRIB') 597 ! 598 ! Formats 599 ! 600 900 FORMAT (/15X,' *** WAVEWATCH III GRIB output postp. *** '/ & 601 15X,'=============================================='/) 602 901 FORMAT ( ' Comment character is ''',A,''''/) 603 902 FORMAT (/' *** WARNING : NO GRIB PACKAGE LINKED ***'/) 604 ! 605 920 FORMAT ( ' Grid name : ',A/) 606 ! 607 930 FORMAT ( ' Fields in file : '/ & 608 ' --------------------------') 609 931 FORMAT ( ' ',A) 610 ! 611 940 FORMAT (/' Output time data : '/ & 612 ' -----------------------------------------------------'/ & 613 ' First time : ',A) 614 941 FORMAT ( ' Interval : ',A/ & 615 ' Number of requests : ',I4) 616 942 FORMAT (/' End of file reached '/) 617 ! 618 944 FORMAT (/' Requested output fields not yet available: '/ & 619 ' -----------------------------------------------------') 620 ! 621 945 FORMAT (/' Successfully requested output fields : '/ & 622 ' -----------------------------------------------------') 623 946 FORMAT ( ' ',A,1X,A) 624 ! 625 948 FORMAT (/' Additional GRIB parameters : '/ & 626 ' -----------------------------------------------------'/ & 627 ' Run time : ',A/ & Page 12 Source Listing W3EXGB 2014-09-16 16:55 multiwavegrib1.f90 628 ' GRIB center ID : ',I4/ & 629 ' GRIB gen. proc. ID : ',I4/ & 630 ' GRIB grid ID : ',I4/ & 631 ' GRIB GDS parameter : ',I4) 632 ! 633 970 FORMAT (//' Generating file '/ & 634 ' -----------------------------------------------------') 635 971 FORMAT ( ' Data for ',A,' ',I3,'H forecast.') 636 972 FORMAT ( ' Data for ',A,' hindcast.') 637 ! 638 999 FORMAT (/' End of program '/ & 639 ' ========================================='/ & 640 ' WAVEWATCH III GRIB output '/) 641 ! 642 1000 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGRIB1 : '/ & 643 ' ERROR IN OPENING INPUT FILE'/ & 644 ' IOSTAT =',I5/) 645 ! 646 1001 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGRIB1 : '/ & 647 ' PREMATURE END OF INPUT FILE'/) 648 ! 649 1002 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGRIB1 : '/ & 650 ' ERROR IN READING FROM INPUT FILE'/ & 651 ' IOSTAT =',I5/) 652 ! 653 1005 FORMAT (/' *** WAVEWATCH III ERROR IN WAVEGRIB1 : '/ & 654 ' OUTPUT REQUESTED FOR FIELDS THAT SHARE KPDS(5)'/ & 655 ' FIRST FIELD : ',A/ & 656 ' SECOND FIELD : ',A/) 657 ! 658 1010 FORMAT (/' *** WAVEWATCH-III ERROR IN WAVEGRIB1 : '/ & 659 ' GRIB REQUIRES SPHERICAL GRID'/) 660 !/ 661 !/ Internal subroutine W3EXGB ---------------------------------------- / 662 !/ 663 CONTAINS 664 !/ ------------------------------------------------------------------- / 665 SUBROUTINE W3EXGB ( NX, NY, NSEA ) 666 !/ 667 !/ +-----------------------------------+ 668 !/ | WAVEWATCH III NOAA/NCEP | 669 !/ | H. L. Tolman | 670 !/ | A. Chawla | 671 !/ | FORTRAN 90 | 672 !/ | Last update : 16-Jul-2007 | 673 !/ +-----------------------------------+ 674 !/ 675 !/ 10-Jun-1999 : Final FORTRAN 77 ( version 1.18 ) 676 !/ 24-Jan-2000 : Upgrade to FORTRAN 90 ( version 2.00 ) 677 !/ Massive changes to logistics. 678 !/ 29-Apr-2002 : Adding output fields 17-18. ( version 2.20 ) 679 !/ 24-Dec-2004 : Multiple grid version. ( version 3.06 ) 680 !/ 18-May-2007 : Update GRIB1 for partitioning. ( version 3.11 ) 681 !/ 16-Jul-2007 : Adding GRIB2 capability ( version 3.11 ) 682 !/ (A. Chawla) 683 !/ 684 ! 1. Purpose : Page 13 Source Listing W3EXGB 2014-09-16 16:55 multiwavegrib1.f90 685 ! 686 ! Perform actual GRIB output. 687 ! 688 ! 3. Parameters : 689 ! 690 ! Parameter list 691 ! ---------------------------------------------------------------- 692 ! NX, NY, NSEA 693 ! Int. I Array dimensions. 694 ! ---------------------------------------------------------------- 695 ! 696 ! Internal parameters 697 ! ---------------------------------------------------------------- 698 ! X1, X2, XX, XY 699 ! R.A. Output fields 700 ! BITMAP L.A. Data / no data bitmap 701 ! ---------------------------------------------------------------- 702 ! 703 ! 4. Subroutines used : 704 ! 705 ! Name Type Module Description 706 ! ---------------------------------------------------------------- 707 ! STRACE Subr. W3SERVMD Subroutine tracing. 708 ! EXTCDE Subr. Id. Abort program as graceful as possible. 709 ! W3S2XY Subr. Id. Convert from storage to spatial grid. 710 ! PUTGB Subr. NCEP GRIB1 library routine. 711 ! GRIBCREATE Subr. NCEP GRIB2 library routine. 712 ! ADDGRID Subr. NCEP GRIB2 library routine. 713 ! ADDFIELD Subr. NCEP GRIB2 library routine. 714 ! GRIBEND Subr. NCEP GRIB2 library routine. 715 ! WRYTE Subr. NCEP GRIB2 library routine. 716 ! ---------------------------------------------------------------- 717 ! 718 ! 5. Called by : 719 ! 720 ! Program in which it is contained. 721 ! 722 ! 6. Error messages : 723 ! 724 ! None. 725 ! 726 ! 7. Remarks : 727 ! 728 ! - Note that arrays CX and CY of the main program now contain 729 ! the absolute current speed and direction respectively. 730 ! 731 ! 8. Structure : 732 ! 733 ! See source code. 734 ! 735 ! 9. Switches : 736 ! 737 ! !/S Enable subroutine tracing. 738 ! !/T Enable test output. 739 ! !/NCEP1 NCEP IBM calls to GRIB1 packer. 740 ! !/NCEP2 NCEP IBM calls to GRIB2 packer (follows updated grib2 741 ! tables under verification as of 02/10/2012). Page 14 Source Listing W3EXGB 2014-09-16 16:55 multiwavegrib1.f90 742 ! 743 ! 10. Source code : 744 ! 745 !/ ------------------------------------------------------------------- / 746 USE W3SERVMD, ONLY : W3S2XY 747 !/ 748 !/ ------------------------------------------------------------------- / 749 !/ Parameter list 750 !/ 751 INTEGER, INTENT(IN) :: NX, NY, NSEA 752 !/ 753 !/ ------------------------------------------------------------------- / 754 !/ Local parameters 755 !/ 756 INTEGER :: J, IXY, NDATA 757 INTEGER :: IO 758 REAL :: X1(NX*NY), X2(NX*NY), XX(NX*NY), & 759 XY(NX*NY), CABS, UABS, & 760 YY(NX*NY,0:NOSWLL), KPDS5A, KPDS5B 761 LOGICAL*1 :: BITMAP(NX*NY) 762 LOGICAL :: FLONE, FLTWO, FLDIR, FLTRI, FLPRT 763 !/ 764 !/ ------------------------------------------------------------------- / 765 !/ 766 ! 767 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 768 ! 1. Preparations 769 ! 770 X1 = UNDEF 771 X2 = UNDEF 772 XX = UNDEF 773 XY = UNDEF 774 YY = UNDEF 775 ! 776 !--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 777 ! 2. Loop over output fields. 778 ! 779 DO IFI=1, NOGRP 780 DO IFJ=1, NGRPP 781 IF ( FLREQ(IFI,IFJ) ) THEN 782 783 784 ! 785 ! Initialize array dimension flags 786 ! 787 FLONE = .FALSE. 788 FLTWO = .FALSE. 789 FLDIR = .FALSE. 790 FLTRI = .FALSE. 791 FLPRT = .FALSE. 792 ! 793 ! 2.a Set output arrays and parameters 794 ! 795 ! Water depth 796 ! 797 IF ( IFI .EQ. 1 .AND. IFJ .EQ. 1 ) THEN 798 FLONE = .TRUE. Page 15 Source Listing W3EXGB 2014-09-16 16:55 multiwavegrib1.f90 799 KPDS(5) = -1 800 CALL W3S2XY ( NSEA, NSEA, NX, NY, DW(1:NSEA) & 801 , MAPSF, X1 ) 802 ! 803 ! Current 804 ! 805 ELSE IF ( IFI .EQ. 1 .AND. IFJ .EQ. 2 ) THEN 806 FLTWO = .TRUE. 807 KPDS(5) = -1 808 CALL W3S2XY ( NSEA, NSEA, NX, NY, CX(1:NSEA) & 809 , MAPSF, XX ) 810 CALL W3S2XY ( NSEA, NSEA, NX, NY, CY(1:NSEA) & 811 , MAPSF, XY ) 812 DO ISEA=1, NSEA 813 IF (CX(ISEA) .NE. UNDEF) THEN 814 CABS = SQRT(CX(ISEA)**2+CY(ISEA)**2) 815 IF ( CABS .GT. 0.001 ) THEN 816 CY(ISEA) = MOD ( 630. - & 817 RADE*ATAN2(CY(ISEA),CX(ISEA)) , 360. ) 818 ELSE 819 CY(ISEA) = 0. 820 END IF 821 ELSE 822 CABS = UNDEF 823 CY(ISEA) = UNDEF 824 END IF 825 CX(ISEA) = CABS 826 END DO 827 CALL W3S2XY ( NSEA, NSEA, NX, NY, CX(1:NSEA) & 828 , MAPSF, X1 ) 829 CALL W3S2XY ( NSEA, NSEA, NX, NY, CY(1:NSEA) & 830 , MAPSF, X2 ) 831 ! 832 ! Wind speed 833 ! 834 ELSE IF ( IFI .EQ. 1 .AND. IFJ .EQ. 3 ) THEN 835 FLTWO = .TRUE. 836 KPDS(5) = 032 837 CALL W3S2XY ( NSEA, NSEA, NX, NY, UA(1:NSEA) & 838 , MAPSF, XX ) 839 CALL W3S2XY ( NSEA, NSEA, NX, NY, UD(1:NSEA) & 840 , MAPSF, XY ) 841 DO ISEA=1, NSEA 842 IF (UA(ISEA) .NE. UNDEF) THEN 843 UABS = SQRT(UA(ISEA)**2+UD(ISEA)**2) 844 IF ( UABS .GT. 0.001 ) THEN 845 UD(ISEA) = MOD ( 630. - & 846 RADE*ATAN2(UD(ISEA),UA(ISEA)) , 360. ) 847 ELSE 848 UD(ISEA) = 0. 849 END IF 850 ELSE 851 UABS = UNDEF 852 UD(ISEA) = UNDEF 853 END IF 854 UA(ISEA) = UABS 855 END DO Page 16 Source Listing W3EXGB 2014-09-16 16:55 multiwavegrib1.f90 856 CALL W3S2XY ( NSEA, NSEA, NX, NY, UA(1:NSEA) & 857 , MAPSF, X1 ) 858 CALL W3S2XY ( NSEA, NSEA, NX, NY, UD(1:NSEA) & 859 , MAPSF, X2 ) 860 ! 861 ! Air-sea temp. dif. 862 ! 863 ELSE IF ( IFI .EQ. 1 .AND. IFJ .EQ. 4 ) THEN 864 FLONE = .TRUE. 865 KPDS(5) = -1 866 CALL W3S2XY ( NSEA, NSEA, NX, NY, AS(1:NSEA) & 867 , MAPSF, X1 ) 868 ! 869 ! Water level 870 ! 871 ELSE IF ( IFI .EQ. 1 .AND. IFJ .EQ. 5 ) THEN 872 FLONE = .TRUE. 873 KPDS(5) = -1 874 CALL W3S2XY ( NSEA, NSEA, NX, NY, WLV , MAPSF, X1 ) 875 ! 876 ! Ice concentration 877 ! 878 ELSE IF ( IFI .EQ. 1 .AND. IFJ .EQ. 6 ) THEN 879 FLONE = .TRUE. 880 KPDS(5) = 091 881 CALL W3S2XY ( NSEA, NSEA, NX, NY, ICE , MAPSF, X1 ) 882 ! 883 ! Significant wave height 884 ! 885 ELSE IF ( IFI .EQ. 2 .AND. IFJ .EQ. 1 ) THEN 886 FLONE = .TRUE. 887 KPDS(5) = 100 888 CALL W3S2XY ( NSEA, NSEA, NX, NY, HS , MAPSF, X1 ) 889 ! 890 ! Mean wave length 891 ! 892 ELSE IF ( IFI .EQ. 2 .AND. IFJ .EQ. 2 ) THEN 893 FLONE = .TRUE. 894 KPDS(5) = -1 895 CALL W3S2XY ( NSEA, NSEA, NX, NY, WLM , MAPSF, X1 ) 896 ! 897 ! Mean wave period (based on second moment) 898 ! 899 ELSE IF ( IFI .EQ. 2 .AND. IFJ .EQ. 3 ) THEN 900 FLONE = .TRUE. 901 KPDS(5) = -1 902 CALL W3S2XY ( NSEA, NSEA, NX, NY, T02 , MAPSF, X1 ) 903 ! 904 ! Mean wave period (based on first moment) 905 ! 906 ELSE IF ( IFI .EQ. 2 .AND. IFJ .EQ. 4 ) THEN 907 FLONE = .TRUE. 908 KPDS(5) = 103 909 CALL W3S2XY ( NSEA, NSEA, NX, NY, T0M1 , MAPSF, X1 ) 910 ! 911 ! Mean wave period (based on first inverse moment) 912 ! Page 17 Source Listing W3EXGB 2014-09-16 16:55 multiwavegrib1.f90 913 ELSE IF ( IFI .EQ. 2 .AND. IFJ .EQ. 5 ) THEN 914 FLONE = .TRUE. 915 KPDS(5) = -1 916 CALL W3S2XY ( NSEA, NSEA, NX, NY, T01 , MAPSF, X1 ) 917 ! 918 ! Peak frequency 919 ! 920 ELSE IF ( IFI .EQ. 2 .AND. IFJ .EQ. 6 ) THEN 921 FLONE = .TRUE. 922 KPDS(5) = 108 923 DO ISEA=1, NSEA 924 IF ( FP0(ISEA) .NE. UNDEF .AND. FP0(ISEA) .NE. 0 ) THEN 925 FP0(ISEA) = 1. / FP0(ISEA) 926 END IF 927 END DO 928 CALL W3S2XY ( NSEA, NSEA, NX, NY, FP0 , MAPSF, X1 ) 929 ! 930 ! Mean wave direction 931 ! 932 ELSE IF ( IFI .EQ. 2 .AND. IFJ .EQ. 7 ) THEN 933 FLONE = .TRUE. 934 KPDS(5) = 101 935 DO ISEA=1, NSEA 936 IF ( THM(ISEA) .NE. UNDEF ) & 937 THM(ISEA) = MOD ( 630. - RADE*THM(ISEA) , 360. ) 938 END DO 939 CALL W3S2XY ( NSEA, NSEA, NX, NY, THM , MAPSF, X1 ) 940 ! 941 ! Directional spread 942 ! 943 ELSE IF ( IFI .EQ. 2 .AND. IFJ .EQ. 8 ) THEN 944 FLONE = .TRUE. 945 KPDS(5) = -1 946 CALL W3S2XY ( NSEA, NSEA, NX, NY, THS , MAPSF, X1 ) 947 ! 948 ! Peak direction 949 ! 950 ELSE IF ( IFI .EQ. 2 .AND. IFJ .EQ. 9 ) THEN 951 FLONE = .TRUE. 952 KPDS(5) = 107 953 DO ISEA=1, NSEA 954 IF ( THP0(ISEA) .NE. UNDEF ) THEN 955 THP0(ISEA) = MOD ( 630-RADE*THP0(ISEA) , 360. ) 956 END IF 957 END DO 958 CALL W3S2XY ( NSEA, NSEA, NX, NY, THP0 , MAPSF, X1 ) 959 ! 960 ! Partitioned wave height 961 ! 962 ELSE IF ( IFI .EQ. 4 .AND. IFJ .EQ. 1 ) THEN 963 FLPRT = .TRUE. 964 KPDS5A = 102 965 KPDS5B = 105 966 CALL W3S2XY & 967 ( NSEA, NSEA, NX, NY, PHS(:,0), MAPSF, YY(:,0) ) 968 DO I=1, NOSWLL 969 CALL W3S2XY & Page 18 Source Listing W3EXGB 2014-09-16 16:55 multiwavegrib1.f90 970 ( NSEA, NSEA, NX, NY, PHS(:,I), MAPSF, YY(:,I) ) 971 END DO 972 ! 973 ! Partitioned peak period 974 ! 975 ELSE IF ( IFI .EQ. 4 .AND. IFJ .EQ. 2 ) THEN 976 FLPRT = .TRUE. 977 KPDS5A = 110 978 KPDS5B = 106 979 CALL W3S2XY & 980 ( NSEA, NSEA, NX, NY, PTP(:,0), MAPSF, YY(:,0) ) 981 DO I=1, NOSWLL 982 CALL W3S2XY & 983 ( NSEA, NSEA, NX, NY, PTP(:,I), MAPSF, YY(:,I) ) 984 END DO 985 ! 986 ! Partitioned peak wave length 987 ! 988 ELSE IF ( IFI .EQ. 4 .AND. IFJ .EQ. 3 ) THEN 989 FLPRT = .TRUE. 990 KPDS5A = -1 991 KPDS5B = -1 992 CALL W3S2XY & 993 ( NSEA, NSEA, NX, NY, PLP(:,0), MAPSF, YY(:,0) ) 994 DO I=1, NOSWLL 995 CALL W3S2XY & 996 ( NSEA, NSEA, NX, NY, PLP(:,I), MAPSF, YY(:,I) ) 997 END DO 998 ! 999 ! Partitioned mean direction 1000 ! 1001 ELSE IF ( IFI .EQ. 4 .AND. IFJ .EQ. 4 ) THEN 1002 FLPRT = .TRUE. 1003 KPDS5A = 109 1004 KPDS5B = 104 1005 DO ISEA = 1,NSEA 1006 DO I = 0,NOSWLL 1007 IF ( PTH(ISEA,I) .NE. UNDEF ) THEN 1008 PTH(ISEA,I) = MOD ( 630 - RADE*PTH(ISEA,I) , 360. ) 1009 END IF 1010 END DO 1011 END DO 1012 CALL W3S2XY & 1013 ( NSEA, NSEA, NX, NY, PTH(:,0), MAPSF, YY(:,0) ) 1014 DO I=1, NOSWLL 1015 CALL W3S2XY & 1016 ( NSEA, NSEA, NX, NY, PTH(:,I), MAPSF, YY(:,I) ) 1017 END DO 1018 ! 1019 ! Partitioned Directional spread 1020 ! 1021 ELSE IF ( IFI .EQ. 4 .AND. IFJ .EQ. 5 ) THEN 1022 FLPRT = .TRUE. 1023 KPDS5A = -1 1024 KPDS5B = -1 1025 CALL W3S2XY & 1026 ( NSEA, NSEA, NX, NY, PSI(:,0), MAPSF, YY(:,0) ) Page 19 Source Listing W3EXGB 2014-09-16 16:55 multiwavegrib1.f90 1027 DO I=1, NOSWLL 1028 CALL W3S2XY & 1029 ( NSEA, NSEA, NX, NY, PSI(:,I), MAPSF, YY(:,I) ) 1030 END DO 1031 ! 1032 ! Partitioned wind sea fraction 1033 ! 1034 ELSE IF ( IFI .EQ. 4 .AND. IFJ .EQ. 6 ) THEN 1035 FLPRT = .TRUE. 1036 KPDS5A = -1 1037 KPDS5B = -1 1038 CALL W3S2XY & 1039 ( NSEA, NSEA, NX, NY, PWS(:,0), MAPSF, YY(:,0) ) 1040 DO I=1, NOSWLL 1041 CALL W3S2XY & 1042 ( NSEA, NSEA, NX, NY, PWS(:,I), MAPSF, YY(:,I) ) 1043 END DO 1044 ! 1045 ! Total wind sea fraction 1046 ! 1047 ELSE IF ( IFI .EQ. 4 .AND. IFJ .EQ. 7 ) THEN 1048 FLONE = .TRUE. 1049 KPDS(5) = -1 1050 CALL W3S2XY ( NSEA, NSEA, NX, NY, PWST , MAPSF, X1 ) 1051 ! 1052 ! Number of fields in partition 1053 ! 1054 ELSE IF ( IFI .EQ. 4 .AND. IFJ .EQ. 8 ) THEN 1055 FLONE = .TRUE. 1056 KPDS(5) = -1 1057 CALL W3S2XY ( NSEA, NSEA, NX, NY, PNR , MAPSF, X1 ) 1058 ! 1059 ! Friction velocity 1060 ! 1061 ELSE IF ( IFI .EQ. 5 .AND. IFJ .EQ. 1 ) THEN 1062 FLTWO = .TRUE. 1063 KPDS(5) = -1 1064 CALL W3S2XY ( NSEA, NSEA, NX, NY, UST(1:NSEA) & 1065 , MAPSF, X1 ) 1066 CALL W3S2XY ( NSEA, NSEA, NX, NY, USTDIR(1:NSEA) & 1067 , MAPSF, X2 ) 1068 ! 1069 ! Average source term time step 1070 ! 1071 ELSE IF ( IFI .EQ. 9 .AND. IFJ .EQ. 1 ) THEN 1072 FLONE = .TRUE. 1073 KPDS(5) = -1 1074 DO ISEA=1, NSEA 1075 IF ( DTDYN(ISEA) .NE. UNDEF ) & 1076 DTDYN(ISEA) = DTDYN(ISEA) / 60. 1077 END DO 1078 CALL W3S2XY ( NSEA, NSEA, NX, NY, DTDYN , MAPSF, X1 ) 1079 ! 1080 ! Cut-off frequency 1081 ! 1082 ELSE IF ( IFI .EQ. 9 .AND. IFJ .EQ. 2 ) THEN 1083 FLONE = .TRUE. Page 20 Source Listing W3EXGB 2014-09-16 16:55 multiwavegrib1.f90 1084 KPDS(5) = -1 1085 CALL W3S2XY ( NSEA, NSEA, NX, NY, FCUT , MAPSF, X1 ) 1086 ! 1087 ! CFL Maximum (in spatial space) 1088 ! 1089 ELSE IF ( IFI .EQ. 9 .AND. IFJ .EQ. 3 ) THEN 1090 FLONE = .TRUE. 1091 KPDS(5) = -1 1092 CALL W3S2XY ( NSEA, NSEA, NX, NY, CFLXYMAX , MAPSF, X1 ) 1093 ! 1094 ! CFL Maximum (in spectral space) 1095 ! 1096 ELSE IF ( IFI .EQ. 9 .AND. IFJ .EQ. 4 ) THEN 1097 FLONE = .TRUE. 1098 KPDS(5) = -1 1099 CALL W3S2XY ( NSEA, NSEA, NX, NY, CFLTHMAX , MAPSF, X1 ) 1100 ! 1101 ELSE 1102 WRITE (NDSE,999) 1103 CALL EXTCDE ( 1 ) 1104 ! 1105 END IF 1106 ! 1107 ! 3 Perform output 1108 ! 1109 NDATA = NX*NY 1110 ! 1111 ! 3.a Partitioned data 1112 ! 1113 IF ( FLPRT ) THEN 1114 ! 1115 KPDS(5) = KPDS5A 1116 DO IXY=1, NX*NY 1117 BITMAP(IXY) = YY(IXY,0) .NE. UNDEF 1118 END DO 1119 CALL PUTGB (NDSDAT,NDATA,KPDS,KGDS,BITMAP,YY(:,0),IO) 1120 ! 1121 KPDS(5) = KPDS5B 1122 KPDS(6) = 241 1123 DO I=1, NOSWLL 1124 KPDS(7) = I 1125 DO IXY=1, NX*NY 1126 BITMAP(IXY) = YY(IXY,I) .NE. UNDEF 1127 END DO 1128 CALL PUTGB (NDSDAT,NDATA,KPDS,KGDS,BITMAP,YY(:,I),IO) 1129 END DO 1130 KPDS(6) = 1 1131 KPDS(7) = 1 1132 ! 1133 ! 3.b Other data 1134 ! 1135 ELSE IF (FLONE) THEN 1136 ! 1137 DO IXY=1, NX*NY 1138 BITMAP(IXY) = X1(IXY) .NE. UNDEF 1139 END DO 1140 ! Page 21 Source Listing W3EXGB 2014-09-16 16:55 multiwavegrib1.f90 1141 CALL PUTGB (NDSDAT,NDATA,KPDS,KGDS,BITMAP,X1,IO) 1142 ! 1143 ELSE IF ( FLTWO ) THEN 1144 ! 1145 DO IXY=1, NX*NY 1146 BITMAP(IXY) = X1(IXY) .NE. UNDEF 1147 END DO 1148 CALL PUTGB (NDSDAT,NDATA,KPDS,KGDS,BITMAP,X1,IO) 1149 1150 KPDS(5) = 031 1151 CALL PUTGB (NDSDAT,NDATA,KPDS,KGDS,BITMAP,X2,IO) 1152 KPDS(5) = 033 1153 CALL PUTGB (NDSDAT,NDATA,KPDS,KGDS,BITMAP,XX,IO) 1154 KPDS(5) = 034 1155 CALL PUTGB (NDSDAT,NDATA,KPDS,KGDS,BITMAP,XY,IO) 1156 ! 1157 END IF 1158 ! 1159 ! ... End of fields loop 1160 ! 1161 END IF 1162 END DO 1163 END DO 1164 ! 1165 RETURN 1166 ! 1167 ! Error escape locations 1168 ! 1169 800 CONTINUE 1170 WRITE (NDSE,1000) IERR 1171 CALL EXTCDE ( 10 ) 1172 810 CONTINUE 1173 WRITE (NDSE,1010) IO 1174 CALL EXTCDE ( 20 ) 1175 820 CONTINUE 1176 WRITE (NDSE,1020) IO 1177 CALL EXTCDE ( 30 ) 1178 830 CONTINUE 1179 WRITE (NDSE,1030) IO 1180 CALL EXTCDE ( 40 ) 1181 ! 1182 ! Formats 1183 ! 1184 940 FORMAT (1X,I8,3I3.2,2X,4E12.4) 1185 950 FORMAT (1X,A13,I9.8,I7.6,2(2F8.2,I4), & 1186 1X,A4,F8.4,1X,A10,2I2,1X,A11,I4) 1187 951 FORMAT (1X,2F10.5,2I8) 1188 ! 1189 999 FORMAT (/' *** WAVEWATCH III ERROR IN W3EXGB :'/ & 1190 ' PLEASE UPDATE FIELDS !!! '/) 1191 ! 1192 1000 FORMAT (/' *** WAVEWATCH III ERROR IN W3EXGB : '/ & 1193 ' ERROR IN OPENING OUTPUT FILE'/ & 1194 ' IOSTAT =',I5/) 1195 ! 1196 1010 FORMAT (/' *** WAVEWATCH III ERROR IN W3EXGB : '/ & 1197 ' ERROR CREATING NEW GRIB2 FIELD'/ & Page 22 Source Listing W3EXGB 2014-09-16 16:55 multiwavegrib1.f90 1198 ' IOSTAT =',I5/) 1199 ! 1200 1020 FORMAT (/' *** WAVEWATCH III ERROR IN W3EXGB : '/ & 1201 ' ERROR ADDING GRIB2 FIELD'/ & 1202 ' IOSTAT =',I5/) 1203 ! 1204 1030 FORMAT (/' *** WAVEWATCH III ERROR IN W3EXGB : '/ & 1205 ' ERROR ENDING GRIB2 MESSAGE'/ & 1206 ' IOSTAT =',I5/) 1207 ! 1208 !/ 1209 !/ End of W3EXGB ----------------------------------------------------- / 1210 !/ 1211 END SUBROUTINE W3EXGB ENTRY POINTS Name wavegrib1_IP_w3exgb_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 1000 Label 1192 1170 1010 Label 1196 1173 1020 Label 1200 1176 1030 Label 1204 1179 800 Label 1169 810 Label 1172 820 Label 1175 830 Label 1178 940 Label 1184 950 Label 1185 951 Label 1187 999 Label 1189 1102 AS Local 866 R(4) 4 1 1 PTR 866 ATAN2 Func 817 scalar 817,846 BITMAP Local 761 L(1) 1 1 0 1117,1119,1126,1128,1138,1141,1146 ,1148,1151,1153,1155 CABS Local 759 R(4) 4 scalar 814,815,822,825 CFLTHMAX Local 1099 R(4) 4 1 1 PTR 1099 CFLXYMAX Local 1092 R(4) 4 1 1 PTR 1092 CX Local 808 R(4) 4 1 1 PTR 808,813,814,817,825,827 CY Local 810 R(4) 4 1 1 PTR 810,814,816,817,819,823,829 DTDYN Local 1075 R(4) 4 1 1 PTR 1075,1076,1078 DW Local 800 R(4) 4 1 1 PTR 800 EXTCDE Subr 1103 117,320,577,581,585,590,1103,1171, 1174,1177,1180 FCUT Local 1085 R(4) 4 1 1 PTR 1085 FLDIR Local 762 L(4) 4 scalar 789 FLONE Local 762 L(4) 4 scalar 787,798,864,872,879,886,893,900,90 7,914,921,933,944,951,1048,1055,10 72,1083,1090,1097,1135 Page 23 Source Listing W3EXGB 2014-09-16 16:55 Symbol Table multiwavegrib1.f90 Name Object Declared Type Bytes Dimen Elements Attributes References FLPRT Local 762 L(4) 4 scalar 791,963,976,989,1002,1022,1035,111 3 FLREQ Local 781 L(4) 4 2 200 230,234,247,250,256,259,265,268,27 2,274,278,281,296,306,781 FLTRI Local 762 L(4) 4 scalar 790 FLTWO Local 762 L(4) 4 scalar 788,806,835,1062,1143 FP0 Local 924 R(4) 4 1 1 PTR 924,925,928 HS Local 888 R(4) 4 1 1 PTR 888 I Local 968 I(4) 4 scalar 295,296,297,304,306,339,341,968,97 0,981,983,994,996,1006,1007,1008,1 014,1016,1027,1029,1040,1042,1123, 1124,1126,1128 ICE Local 881 R(4) 4 1 1 PTR 121,881 IERR Local 1170 I(4) 4 scalar 187,192,235,576,584,1170 IFI Local 779 I(4) 4 scalar 245,246,247,248,250,254,256,257,25 9,262,264,265,266,268,276,277,278, 279,281,779,781,797,805,834,863,87 1,878,885,892,899,906,913,920,932, 943,950,962,975,988,1001,1021,1034 ,1047,1054,1061,1071,1082,1089,109 6 IFJ Local 780 I(4) 4 scalar 246,247,248,250,255,256,257,259,26 4,265,266,268,277,278,279,281,780, 781,797,805,834,863,871,878,885,89 2,899,906,913,920,932,943,950,962, 975,988,1001,1021,1034,1047,1054,1 061,1071,1082,1089,1096 IO Local 757 I(4) 4 scalar 1119,1128,1141,1148,1151,1153,1155 ,1173,1176,1179 ISEA Local 812 I(4) 4 scalar 347,348,349,350,351,812,813,814,81 6,817,819,823,825,841,842,843,845, 846,848,852,854,923,924,925,935,93 6,937,953,954,955,1005,1007,1008,1 074,1075,1076 IXY Local 756 I(4) 4 scalar 1116,1117,1125,1126,1137,1138,1145 ,1146 J Local 756 I(4) 4 scalar KGDS Local 1119 I(4) 4 1 22 360,423,424,425,426,427,428,429,43 0,431,432,1119,1128,1141,1148,1151 ,1153,1155 KPDS Local 799 I(4) 4 1 25 359,393,394,395,396,397,398,399,40 0,401,549,550,551,552,553,554,557, 558,559,560,561,562,799,807,836,86 5,873,880,887,894,901,908,915,922, 934,945,952,1049,1056,1063,1073,10 84,1091,1098,1115,1119,1121,1122,1 124,1128,1130,1131,1141,1148,1150, 1151,1152,1153,1154,1155 KPDS5A Local 760 R(4) 4 scalar 964,977,990,1003,1023,1036,1115 KPDS5B Local 760 R(4) 4 scalar 965,978,991,1004,1024,1037,1121 MAPSF Local 801 I(4) 4 2 1 PTR 348,349,350,351,801,809,811,828,83 0,838,840,857,859,867,874,881,888, 895,902,909,916,928,939,946,958,96 7,970,980,983,993,996,1013,1016,10 26,1029,1039,1042,1050,1057,1065,1 Page 24 Source Listing W3EXGB 2014-09-16 16:55 Symbol Table multiwavegrib1.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 067,1078,1085,1092,1099 MOD Func 816 scalar 549,550,551,557,558,559,816,845,93 7,955,1008 NDATA Local 756 I(4) 4 scalar 1109,1119,1128,1141,1148,1151,1153 ,1155 NDSDAT Local 1119 I(4) 4 scalar 167,180,192,1119,1128,1141,1148,11 51,1153,1155 NDSE Local 1102 I(4) 4 scalar PTR 127,176,206,234,312,318,576,580,58 4,589,1102,1170,1173,1176,1179 NGRPP Param 780 I(4) 4 scalar 127,145,305,340,780 NOGRP Param 779 I(4) 4 scalar 127,145,304,339,779 NOSWLL Local 760 I(4) 4 scalar PTR 128,760,968,981,994,1006,1014,1027 ,1040,1123 NSEA Dummy 665 I(4) 4 scalar ARG,IN 800,808,810,812,827,829,837,839,84 1,856,858,866,874,881,888,895,902, 909,916,923,928,935,939,946,953,95 8,967,970,980,983,993,996,1005,101 3,1016,1026,1029,1039,1042,1050,10 57,1064,1066,1074,1078,1085,1092,1 099 NX Dummy 665 I(4) 4 scalar ARG,IN 758,759,760,761,800,808,810,827,82 9,837,839,856,858,866,874,881,888, 895,902,909,916,928,939,946,958,96 7,970,980,983,993,996,1013,1016,10 26,1029,1039,1042,1050,1057,1064,1 066,1078,1085,1092,1099,1109,1116, 1125,1137,1145 NY Dummy 665 I(4) 4 scalar ARG,IN 758,759,760,761,800,808,810,827,82 9,837,839,856,858,866,874,881,888, 895,902,909,916,928,939,946,958,96 7,970,980,983,993,996,1013,1016,10 26,1029,1039,1042,1050,1057,1064,1 066,1078,1085,1092,1099,1109,1116, 1125,1137,1145 PHS Local 967 R(4) 4 2 1 PTR 967,970 PLP Local 993 R(4) 4 2 1 PTR 993,996 PNR Local 1057 R(4) 4 1 1 PTR 1057 PSI Local 1026 R(4) 4 2 1 PTR 1026,1029 PTH Local 1007 R(4) 4 2 1 PTR 1007,1008,1013,1016 PTP Local 980 R(4) 4 2 1 PTR 980,983 PUTGB Subr 1119 1119,1128,1141,1148,1151,1153,1155 PWS Local 1039 R(4) 4 2 1 PTR 1039,1042 PWST Local 1050 R(4) 4 1 1 PTR 1050 RADE Param 817 R(4) 4 scalar 817,846,937,955,1008 SQRT Func 814 scalar 814,843 T01 Local 916 R(4) 4 1 1 PTR 916 T02 Local 902 R(4) 4 1 1 PTR 902 T0M1 Local 909 R(4) 4 1 1 PTR 909 THM Local 936 R(4) 4 1 1 PTR 936,937,939 THP0 Local 954 R(4) 4 1 1 PTR 954,955,958 THS Local 946 R(4) 4 1 1 PTR 946 UA Local 837 R(4) 4 1 1 PTR 837,842,843,846,854,856 UABS Local 759 R(4) 4 scalar 843,844,851,854 UD Local 839 R(4) 4 1 1 PTR 839,843,845,846,848,852,858 UNDEF Local 770 R(4) 4 scalar 127,770,771,772,773,774,813,822,82 Page 25 Source Listing W3EXGB 2014-09-16 16:55 Symbol Table multiwavegrib1.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 3,842,851,852,924,936,954,1007,107 5,1117,1126,1138,1146 UST Local 1064 R(4) 4 1 1 PTR 121,1064 USTDIR Local 1066 R(4) 4 1 1 PTR 121,1066 W3EXGB Subr 665 566 W3S2XY Subr 746 746,800,808,810,827,829,837,839,85 6,858,866,874,881,888,895,902,909, 916,928,939,946,958,966,969,979,98 2,992,995,1012,1015,1025,1028,1038 ,1041,1050,1057,1064,1066,1078,108 5,1092,1099 W3SERVMD Module 746 746 WLM Local 895 R(4) 4 1 1 PTR 895 WLV Local 874 R(4) 4 1 1 PTR 121,874 X1 Local 758 R(4) 4 1 0 770,801,828,857,867,874,881,888,89 5,902,909,916,928,939,946,958,1050 ,1057,1065,1078,1085,1092,1099,113 8,1141,1146,1148 X2 Local 758 R(4) 4 1 0 771,830,859,1067,1151 XX Local 758 R(4) 4 1 0 772,809,838,1153 XY Local 759 R(4) 4 1 0 773,811,840,1155 YY Local 760 R(4) 4 2 0 774,967,970,980,983,993,996,1013,1 016,1026,1029,1039,1042,1117,1119, 1126,1128 Page 26 Source Listing W3EXGB 2014-09-16 16:55 multiwavegrib1.f90 1212 !/ 1213 !/ End of WAVEGRIB1 ----------------------------------------------------- / 1214 !/ 1215 END PROGRAM WAVEGRIB1 ENTRY POINTS Name MAIN__ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 1000 Label 642 576 1001 Label 646 580 1002 Label 649 584 1005 Label 653 1010 Label 658 589 800 Label 575 187 801 Label 579 188,207,313 802 Label 583 188,207,313 810 Label 587 200 888 Label 593 535,571 900 Label 600 183 901 Label 602 190 902 Label 603 920 Label 605 198 930 Label 607 338 931 Label 609 306,341 940 Label 611 213 941 Label 614 226 942 Label 616 534 944 Label 618 241 945 Label 621 303 946 Label 623 248,257,266,273,279,297 948 Label 625 328 970 Label 633 527 971 Label 635 563 972 Label 636 555 999 Label 638 594 BAOPEN Subr 192 192 CID Local 138 I(4) 4 scalar 313,328,393 CLGTYPE Param 317 I(4) 4 scalar 317 COMSTR Local 146 CHAR 1 scalar 188,189,190,206,234,312 CONSTANTS Module 109 109 DSEC21 Func 118 R(4) 4 scalar 118,530,547 DTEST Local 144 R(4) 4 scalar 530,531,539 DTREQ Local 144 R(4) 4 scalar 207,208,209,217,219,220,540,567 FLAGLL Local 200 L(4) 4 scalar 200,588 FLGRIB Local 145 L(4) 4 2 200 FLOG Local 128 L(4) 4 1 1 PTR 128,234 FLOGRD Local 128 L(4) 4 2 1 PTR 128,341 FNMPRE Local 128 CHAR 80 scalar 128 Page 27 Source Listing W3EXGB 2014-09-16 16:55 Symbol Table multiwavegrib1.f90 Name Object Declared Type Bytes Dimen Elements Attributes References FTIME Local 138 I(4) 4 1 2 313,327,547,557,558,559,560,562 GDS Local 138 I(4) 4 scalar 313,328,396 GDTN Local 139 I(4) 4 scalar 313 GID Local 138 I(4) 4 scalar 313,328,395 GNAME Local 198 CHAR 30 scalar PTR 198 GTYPE Local 317 I(4) 4 scalar PTR 317 IDDDAY Local 146 CHAR 11 scalar 220,222,224 IDOUT Local 127 CHAR 20 2 200 127,248,257,266,273,279,297,306,34 1 IDTIME Local 146 CHAR 23 scalar 212,213,218,224,225,226,327,328,54 5,555,563 IFIA Local 140 I(4) 4 1 1 ALC 291,293,296,297 IFJA Local 140 I(4) 4 1 1 ALC 291,294,296,297 INT Func 220 scalar 220 IOTEST Local 136 I(4) 4 scalar 334,532,533 IOUT Local 138 I(4) 4 scalar 526,544,568 ITRACE Subr 117 117,185 IX Local 137 I(4) 4 scalar 348,351 IY Local 137 I(4) 4 scalar 349,350,351 J Local 136 I(4) 4 scalar 305,306,340,341 K Local 136 I(4) 4 scalar MAX Func 208 scalar 208,210 NDSI Local 135 I(4) 4 scalar 164,174,187,188,206,207,234,312,31 3 NDSM Local 135 I(4) 4 scalar 165,178,197 NDSO Local 127 I(4) 4 scalar PTR 127,175,176,177,181,183,190,198,21 3,226,234,241,248,257,266,273,279, 297,303,306,328,338,341,527,534,55 5,563,594 NDSOG Local 135 I(4) 4 scalar 166,179,334,532 NDST Local 127 I(4) 4 scalar PTR 127,177 NDSTRC Local 135 I(4) 4 scalar 169,181,185 NEXTLN Subr 117 117,206,312 NINT Func 425 scalar 425,426,428,429,430,431,561,563 NOGE Local 128 I(4) 4 1 10 128,246,264,277 NOUT Local 137 I(4) 4 scalar 207,209,210,226,568 NSEA Local 347 I(4) 4 scalar PTR 347,566 NTRACE Local 136 I(4) 4 scalar 170,185 NX Local 423 I(4) 4 scalar PTR 423,429,566 NY Local 350 I(4) 4 scalar PTR 350,351,424,425,566 PID Local 138 I(4) 4 scalar 313,328,394 REAL Func 425 scalar 425,429 RFTIME Local 144 R(4) 4 scalar 547,548,561,563 STME21 Subr 118 118,212,218,327,545 SX Local 429 R(4) 4 scalar PTR 429,430 SY Local 425 R(4) 4 scalar PTR 425,431 TDUM Local 137 I(4) 4 1 2 215,216,217,218 TICK21 Subr 118 118,217,540,567 TIME Local 121 I(4) 4 1 1 PTR 121,530,547,549,550,551,552,554 TOUT Local 137 I(4) 4 1 2 207,212,530,540,545,567 W3ADATMD Module 126 126 W3GDATMD Module 120 120 W3IOGO Subr 116 116,334,532 W3IOGOMD Module 116 116 W3IOGR Subr 115 115,197 Page 28 Source Listing W3EXGB 2014-09-16 16:55 Symbol Table multiwavegrib1.f90 Name Object Declared Type Bytes Dimen Elements Attributes References W3IOGRMD Module 115 115 W3NAUX Subr 159 159 W3NDAT Subr 112 112,157 W3NMOD Subr 155 155 W3NOUT Subr 114 114,161 W3ODATMD Module 114 114,127 W3READFLGRD Subr 116 116,234 W3SERVMD Module 117 117 W3SETA Subr 160 160 W3SETG Subr 156 156 W3SETO Subr 114 114,162 W3SETW Subr 112 112,158 W3TIMEMD Module 118 118 W3WDATMD Module 112 112,121 WAVEGRIB1 Prog 2 X0 Local 426 R(4) 4 scalar PTR 426,429 Y0 Local 425 R(4) 4 scalar PTR 425,428 Page 29 Source Listing W3EXGB 2014-09-16 16:55 Subprograms/Common Blocks multiwavegrib1.f90 SUBPROGRAMS/COMMON BLOCKS Name Object Declared Type Bytes Dimen Elements Attributes References W3EXGB Subr 665 566 WAVEGRIB1 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 30 Source Listing W3EXGB 2014-09-16 16:55 multiwavegrib1.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 : multiwavegrib1.lst -o filename : none COMPILER: Intel(R) Fortran 12.1-2100