Page 1 Source Listing W3IOBC 2014-09-16 16:49 w3iobcmd.f90 1 !/ ------------------------------------------------------------------- / 2 MODULE W3IOBCMD 3 !/ 4 !/ +-----------------------------------+ 5 !/ | WAVEWATCH III NOAA/NCEP | 6 !/ | H. L. Tolman | 7 !/ | FORTRAN 90 | 8 !/ | Last update : 03-Jul-2013 | 9 !/ +-----------------------------------+ 10 !/ 11 !/ See subroutine for update log. 12 !/ 13 !/ Copyright 2009-2010 National Weather Service (NWS), 14 !/ National Oceanic and Atmospheric Administration. All rights 15 !/ reserved. WAVEWATCH III is a trademark of the NWS. 16 !/ No unauthorized use without permission. 17 !/ 18 ! 1. Purpose : 19 ! 20 ! Processing of boundary data output. 21 ! 22 ! 2. Variables and types : 23 ! 24 ! Name Type Scope Description 25 ! ---------------------------------------------------------------- 26 ! VERBPTBC C*10 Public Nest file version number. 27 ! IDSTRBC C*32 Public Restart file ID string. 28 ! ---------------------------------------------------------------- 29 ! 30 ! 3. Subroutines and functions : 31 ! 32 ! Name Type Scope Description 33 ! ---------------------------------------------------------------- 34 ! W3IOBC Subr. Public Boundary data IO. 35 ! ---------------------------------------------------------------- 36 ! 37 ! 4. Subroutines and functions used : 38 ! 39 ! Name Type Module Description 40 ! ---------------------------------------------------------------- 41 ! W3SETO, W3SETG, W3SETW, W3SETA, W3DMO5 42 ! Subr. W3xDATMD Manage data structures. 43 ! W3CSPC Subr. W3CSPCMD Spectral grid conversion. 44 ! W3LLTOEQ Subr. W3CSPCMD Standard to rotated lat/lon conversion. 45 ! STRACE Subr. W3SERVMD Subroutine tracing. 46 ! EXTCDE Subr. W3SERVMD Abort program with exit code. 47 ! ---------------------------------------------------------------- 48 ! 49 ! 5. Remarks : 50 ! 51 ! None. 52 ! 53 ! 6. Switches : 54 ! 55 ! See subroutine W3IOBC. 56 ! 57 ! 7. Source code : Page 2 Source Listing W3IOBC 2014-09-16 16:49 w3iobcmd.f90 58 ! 59 !/ ------------------------------------------------------------------- / 60 PUBLIC 61 !/ 62 !/ Public variables (ID strings) 63 !/ 64 CHARACTER(LEN=10), PARAMETER :: VERBPTBC = 'III 1.03 ' 65 CHARACTER(LEN=32), PARAMETER :: & 66 IDSTRBC = 'WAVEWATCH III BOUNDARY DATA FILE' 67 !/ 68 CONTAINS 69 !/ ------------------------------------------------------------------- / 70 SUBROUTINE W3IOBC ( INXOUT, NDSB, TIME1, TIME2, IOTST, IMOD ) 71 !/ 72 !/ +-----------------------------------+ 73 !/ | WAVEWATCH III NOAA/NCEP | 74 !/ | H. L. Tolman | 75 !/ | FORTRAN 90 | 76 !/ | Last update : 03-Jul-2013 | 77 !/ +-----------------------------------+ 78 !/ 79 !/ 12-Jan-1999 : Distributed FORTRAN 77 version. ( version 1.18 ) 80 !/ 20-May-1999 : Remove read bug for IPBP and RDBP ( see web page ) 81 !/ 30-Dec-1999 : Upgrade to FORTRAN 90 ( version 2.00 ) 82 !/ Major changes to logistics. 83 !/ 13-Dec-2004 : Multiple grid version. ( version 3.06 ) 84 !/ 19-Sep-2005 : Allow for change of spec. res. ( version 3.08 ) 85 !/ (on read only). 86 !/ 30-Sep-2005 : Add 'DUMP' option. ( version 3.08 ) 87 !/ 27-Jun-2006 : Adding file name preamble. ( version 3.09 ) 88 !/ 29-May-2009 : Preparing distribution version. ( version 3.14 ) 89 !/ 30-Oct-2009 : Implement curvilinear grid type. ( version 3.14 ) 90 !/ (W. E. Rogers & T. J. Campbell, NRL) 91 !/ 28-Jul-2010 : Moving NKI, NTHI, XFRI, FR1I and 92 !/ TH1I to W3ODATMD. ( version 3.14.3 ) 93 !/ 31-Oct-2010 : Implementing unstructured grid ( version 3.14.3 ) 94 !/ (A. Roland and F. Ardhuin) 95 !/ 05-Apr-2011 : Moved the SPCONV call into loop ( version 3.14.3 ) 96 !/ 12-Jun-2012 : Add /RTD option or rotated grid option. 97 !/ (Jian-Guo Li) ( version 4.06 ) 98 !/ 03-Jul-2013 : Corrected ABPIN indices ( version 4.11 ) 99 !/ 100 ! 1. Purpose : 101 ! 102 ! Write/read boundary conditions file(s). 103 ! 104 ! 2. Method : 105 ! 106 ! The file(s) are opened within the routine, the names are 107 ! pre-defined as nest.FILEXT for the input file and nest1.FILEXT 108 ! through nest9.FILEXT for up to 9 output files. 109 ! 110 ! 3. Parameters : 111 ! 112 ! Parameter list 113 ! ---------------------------------------------------------------- 114 ! INXOUT C*(*) I Test string for read/write, valid are: Page 3 Source Listing W3IOBC 2014-09-16 16:49 w3iobcmd.f90 115 ! 'READ', 'WRITE' or 'DUMP'. 116 ! NDSB Int. I Data set unit number. 117 ! TIME1 I.A. I/O Present time. (w) 118 ! Time of first field. (r) 119 ! TIME2 I.A. O Time of second field. (r) 120 ! IOTST Int. O Test indictor for reading. 121 ! 1 : File not found. 122 ! 0 : Fields read. 123 ! -1 : Past end of file. 124 ! IMOD Int. I Optional grid number, defaults to 1. 125 ! ---------------------------------------------------------------- 126 ! (w) used for write only 127 ! (r) used for write only 128 ! 129 ! 4. Subroutines used : 130 ! 131 ! See module documentation. 132 ! 133 ! 5. Called by : 134 ! 135 ! Name Type Module Description 136 ! ---------------------------------------------------------------- 137 ! W3WAVE Subr. W3WAVEMD Actual wave model routine. 138 ! ---------------------------------------------------------------- 139 ! 140 ! 6. Error messages : 141 ! 142 ! Tests on INXOUT, file status and data present in file. 143 ! 144 ! 7. Remarks : 145 ! 146 ! - Array dimensions are tested in W3IOGR. 147 ! - Spectra are stored as frequency (sigma) spectra to guarantee 148 ! conservation under grid transformation. 149 ! - At the moment it is mplicitly assumed that the number of 150 ! spectral components is larger that the number of spectra 151 ! per time step per file. 152 ! - Dump option used in multi-grid model. 153 ! 154 ! 8. Structure : 155 ! 156 ! See source code. 157 ! 158 ! 9. Switches : 159 ! 160 ! !/SHRD Switch for shared / distributed memory architecture. 161 ! !/DIST Id. 162 ! 163 ! !/S Enable subroutine tracing. 164 ! !/T General test output. 165 ! !/T0 Point info test output. 166 ! !/T1 Wave heights at input/output points. 167 ! 168 ! 10. Source code : 169 ! 170 !/ ------------------------------------------------------------------- / 171 USE CONSTANTS Page 4 Source Listing W3IOBC 2014-09-16 16:49 w3iobcmd.f90 172 ! 173 USE W3GDATMD, ONLY: W3SETG 174 USE W3WDATMD, ONLY: W3SETW 175 USE W3ADATMD, ONLY: W3SETA 176 USE W3ODATMD, ONLY: W3SETO, W3DMO5 177 USE W3CSPCMD, ONLY: W3CSPC 178 USE W3TRIAMD, ONLY: W3NESTUG 179 ! 180 USE W3GDATMD, ONLY: NK, NTH, NSPEC, NSEA, NSEAL, NX, NY, & 181 X0, Y0, SX, SY, GSU, MAPSTA, MAPFS, MAPSF, & 182 XFR, FR1, SIG2, TH, DTH, FILEXT, FACHFE, & 183 GTYPE, UNGTYPE 184 USE W3GDATMD, ONLY: DXYMAX 185 USE W3WDATMD, ONLY: VA 186 USE W3ADATMD, ONLY: CG 187 USE W3ODATMD, ONLY: NDSE, NDST, IAPROC, NAPROC, NAPERR, NAPBPT, & 188 NBI, NBI2, NFBPO, NBO, NBO2, NDSL, & 189 NKI, NTHI, XFRI, FR1I, TH1I, & 190 IPBPI, ISBPI, XBPI, YBPI, RDBPI, & 191 IPBPO, ISBPO, XBPO, YBPO, RDBPO, & 192 ABPI0, ABPIN, ABPOS, FLBPI, FILER, FILEW, & 193 FILED, SPCONV, FNMPRE 194 USE W3GSRUMD 195 ! 196 USE W3SERVMD, ONLY: EXTCDE 197 ! 198 IMPLICIT NONE 199 !/ 200 !/ ------------------------------------------------------------------- / 201 !/ Parameter list 202 !/ 203 INTEGER, INTENT(IN) :: NDSB 204 INTEGER, INTENT(INOUT) :: TIME1(2) 205 INTEGER, INTENT(OUT) :: TIME2(2), IOTST 206 INTEGER, INTENT(IN), OPTIONAL :: IMOD 207 CHARACTER, INTENT(IN) :: INXOUT*(*) 208 !/ 209 !/ 210 !/ ------------------------------------------------------------------- / 211 !/ Local parameters 212 !/ 213 INTEGER :: IFILE, IERR, I, J, IX, IY, ISEA, & 214 IP, ISP, NPTS, ISOUT, IS, IGRD 215 REAL, ALLOCATABLE :: TMPSPC(:,:) 216 LOGICAL :: FLOK 217 CHARACTER(LEN=16) :: FILEN 218 CHARACTER(LEN=10) :: VERTST 219 CHARACTER(LEN=32) :: IDTST 220 !/ 221 !/ ------------------------------------------------------------------- / 222 !/ 223 ! 224 IOTST = 0 225 ! 226 ! test parameter list input ------------------------------------------ * 227 ! 228 IF ( PRESENT(IMOD) ) THEN Page 5 Source Listing W3IOBC 2014-09-16 16:49 w3iobcmd.f90 229 IGRD = IMOD 230 ELSE 231 IGRD = 1 232 END IF 233 ! 234 CALL W3SETO ( IGRD, NDSE, NDST ) 235 CALL W3SETG ( IGRD, NDSE, NDST ) 236 CALL W3SETW ( IGRD, NDSE, NDST ) 237 CALL W3SETA ( IGRD, NDSE, NDST ) 238 ! 239 IF (INXOUT.NE.'READ' .AND. INXOUT.NE.'WRITE' .AND. & 240 INXOUT.NE.'DUMP' ) THEN 241 IF ( IAPROC .EQ. NAPERR ) WRITE (NDSE,900) INXOUT 242 CALL EXTCDE ( 1 ) 243 END IF 244 ! 245 ! open file ---------------------------------------------------------- * 246 ! 247 I = LEN_TRIM(FILEXT) 248 J = LEN_TRIM(FNMPRE) 249 ! 250 IF ( INXOUT.EQ.'READ' .AND. FILER ) THEN 251 WRITE (FILEN,'(A5,A)') 'nest.', FILEXT(:I) 252 OPEN (NDSB,FILE=FNMPRE(:J)//FILEN(:5+I),FORM='UNFORMATTED', & 253 ERR=801,IOSTAT=IERR,STATUS='OLD') 254 END IF 255 ! 256 IF ( INXOUT.EQ.'WRITE' .AND. FILEW ) THEN 257 DO IFILE=1, NFBPO 258 NDSL(IFILE) = NDSB + IFILE - 1 259 WRITE (FILEN,'(A4,I1,A1,A)') 'nest', IFILE, '.', & 260 FILEXT(:I) 261 OPEN (NDSL(IFILE),FILE=FNMPRE(:J)//FILEN(:6+I), & 262 FORM='UNFORMATTED',ERR=800,IOSTAT=IERR) 263 END DO 264 END IF 265 ! 266 IF ( INXOUT.EQ.'DUMP' .AND. FILED ) THEN 267 WRITE (FILEN,'(A5,A)') 'nest.', FILEXT(:I) 268 OPEN (NDSB,FILE=FNMPRE(:J)//FILEN(:5+I),FORM='UNFORMATTED', & 269 ERR=800,IOSTAT=IERR) 270 END IF 271 ! 272 ! test info ---------------------------------------------------------- * 273 ! ( new files only ) 274 ! ... writing 275 ! 276 IF ( INXOUT.EQ.'WRITE' .AND. FILEW ) THEN 277 IF ( IAPROC .EQ. NAPBPT ) THEN 278 DO IFILE=1, NFBPO 279 WRITE (NDSL(IFILE)) & 280 IDSTRBC, VERBPTBC, NK, NTH, XFR, FR1, TH(1), & 281 NBO(IFILE)-NBO(IFILE-1) 282 ! 283 WRITE (NDSL(IFILE)) & 284 (XBPO(I),I=NBO(IFILE-1)+1,NBO(IFILE)), & 285 (YBPO(I),I=NBO(IFILE-1)+1,NBO(IFILE)), & Page 6 Source Listing W3IOBC 2014-09-16 16:49 w3iobcmd.f90 286 ((IPBPO(I,J),I=NBO(IFILE-1)+1,NBO(IFILE)),J=1,4),& 287 ((RDBPO(I,J),I=NBO(IFILE-1)+1,NBO(IFILE)),J=1,4) 288 ! 289 END DO 290 END IF 291 END IF 292 ! 293 ! ... dumping 294 ! 295 IF ( INXOUT.EQ.'DUMP' .AND. FILED ) THEN 296 IF ( IAPROC .EQ. NAPBPT ) THEN 297 WRITE (NDSB) IDSTRBC, VERBPTBC, NK, NTH, XFR, FR1, TH(1), NBI 298 ! 299 WRITE (NDSB) (XBPI(I),I=1,NBI), (YBPI(I),I=1,NBI), & 300 ((IPBPI(I,J),I=1,NBI),J=1,4), & 301 ((RDBPI(I,J),I=1,NBI),J=1,4) 302 ! 303 END IF 304 END IF 305 ! 306 ! ... reading 307 ! 308 IF ( INXOUT.EQ.'READ' .AND. FILER ) THEN 309 ! 310 READ (NDSB,ERR=803,IOSTAT=IERR) & 311 IDTST, VERTST, NKI, NTHI, XFRI, FR1I, TH1I, NBI 312 ! 313 IF ( IDTST .NE. IDSTRBC ) THEN 314 IF ( IAPROC .EQ. NAPERR ) & 315 WRITE (NDSE,901) IDTST, IDSTRBC 316 CALL EXTCDE ( 10 ) 317 END IF 318 IF ( VERTST .NE. VERBPTBC ) THEN 319 IF ( IAPROC .EQ. NAPERR ) & 320 WRITE (NDSE,902) VERTST, VERBPTBC 321 CALL EXTCDE ( 11 ) 322 END IF 323 ! 324 ! Determines if the spectrum in nest file needs to be converted 325 ! 326 SPCONV = NKI.NE.NK .OR. NTHI.NE.NTH .OR. & 327 ABS(XFRI/XFR-1.).GT.0.01 .OR. & 328 ABS(FR1I/FR1-1.).GT.0.01 .OR. & 329 ABS(TH1I-TH(1)).GT.0.01*DTH 330 ! 331 CALL W3DMO5 ( IGRD, NDSE, NDST, 1 ) 332 ! 333 READ (NDSB,ERR=803,IOSTAT=IERR) & 334 (XBPI(I),I=1,NBI), (YBPI(I),I=1,NBI), & 335 ((IPBPI(I,J),I=1,NBI),J=1,4), & 336 ((RDBPI(I,J),I=1,NBI),J=1,4) 337 ! 338 FLOK = .TRUE. 339 IF (GTYPE .EQ. UNGTYPE) THEN 340 CALL W3NESTUG(DXYMAX,FLOK) 341 ELSE 342 DO I=1, NBI Page 7 Source Listing W3IOBC 2014-09-16 16:49 w3iobcmd.f90 343 IF ( W3GFPT( GSU, XBPI(I), YBPI(I), IX, IY ) ) THEN 344 IF ( ABS(MAPSTA(IY,IX)) .NE. 2 ) THEN 345 IF ( IAPROC .EQ. NAPERR ) & 346 WRITE (NDSE,909) IX, IY, ABS(MAPSTA(IY,IX)) 347 FLOK = .FALSE. 348 END IF 349 ELSE 350 IF ( IAPROC .EQ. NAPERR ) & 351 WRITE (NDSE,910) IX, IY, ABS(MAPSTA(IY,IX)) 352 CALL EXTCDE ( 12 ) 353 END IF 354 ISBPI(I) = MAPFS(IY,IX) 355 END DO 356 END IF 357 ! 358 IF ( .NOT.FLOK ) CALL EXTCDE ( 20 ) 359 ! 360 DO ISEA=1, NSEA 361 IX = MAPSF(ISEA,1) 362 IY = MAPSF(ISEA,2) 363 IF ( ABS(MAPSTA(IY,IX)) .EQ. 2 ) THEN 364 FLOK = .FALSE. 365 DO I=1, NBI 366 IF ( ISEA .EQ. ISBPI(I) ) FLOK = .TRUE. 367 END DO 368 IF ( .NOT.FLOK .AND. IAPROC.EQ.NAPERR ) & 369 WRITE (NDSE,911) IX, IY 370 END IF 371 END DO 372 ! 373 ! Read first time and allocate ABPI0/N 374 ! 375 READ (NDSB,END=810,ERR=810) TIME2, NBI2 376 BACKSPACE (NDSB) 377 CALL W3DMO5 ( IGRD, NDSE, NDST, 3 ) 378 ! 379 END IF 380 ! 381 ! Save previous spectra on read -------------------------------------- * 382 ! 383 IF ( INXOUT.EQ.'READ' .AND. .NOT.FILER ) THEN 384 TIME1 = TIME2 385 ABPI0(:,1:NBI2) = ABPIN(:,1:NBI2) 386 END IF 387 ! 388 ! TIME --------------------------------------------------------------- * 389 ! 390 IF ( INXOUT .EQ. 'WRITE' ) THEN 391 DO IFILE=1, NFBPO 392 NPTS = NBO2(IFILE) - NBO2(IFILE-1) 393 WRITE (NDSL(IFILE)) TIME1, NPTS 394 END DO 395 END IF 396 ! 397 IF ( INXOUT .EQ. 'DUMP' ) THEN 398 WRITE (NDSB) TIME1, NBI2 399 END IF Page 8 Source Listing W3IOBC 2014-09-16 16:49 w3iobcmd.f90 400 ! 401 IF ( INXOUT .EQ. 'READ' ) THEN 402 READ (NDSB,ERR=810,END=810) TIME2, NBI2 403 END IF 404 ! 405 ! Spectra ------------------------------------------------------------ * 406 ! 407 IF ( INXOUT .EQ. 'WRITE' ) THEN 408 ! 409 DO IFILE=1, NFBPO 410 DO ISOUT=NBO2(IFILE-1)+1, NBO2(IFILE) 411 ! 412 ISEA = ISBPO(ISOUT) 413 ! 414 ! ... Shared memory version data gather 415 ! 416 ! ... Distributed memory version data gather 417 ! ( Array pre-filled in W3WAVE ) 418 ! 419 DO IS=1, NSPEC 420 ABPOS(IS,ISOUT) = ABPOS(IS,ISOUT) * SIG2(IS) / & 421 CG(1+(IS-1)/NTH,ISEA) 422 END DO 423 ! 424 WRITE (NDSL(IFILE)) (ABPOS(IS,ISOUT),IS=1,NSPEC) 425 ! 426 END DO 427 END DO 428 ! 429 END IF 430 ! 431 IF ( INXOUT .EQ. 'DUMP' ) THEN 432 DO I=1, NBI2 433 WRITE (NDSB) ABPIN(:,I) 434 END DO 435 END IF 436 ! 437 IF ( INXOUT .EQ. 'READ' ) THEN 438 ! 439 IF ( .NOT. SPCONV ) THEN 440 DO IP=1, NBI2 441 READ (NDSB,ERR=803,IOSTAT=IERR) ABPIN(:,IP) 442 END DO 443 ELSE 444 ! 445 ! In this case the spectral resolution is not compatible and 446 ! the spectrum TMPSPC in nest file must be re-gridded into ABPIN to fit the model run 447 ! 448 ALLOCATE ( TMPSPC(NKI*NTHI,NBI2) ) 449 DO IP=1, NBI2 450 READ (NDSB,ERR=803,IOSTAT=IERR) TMPSPC(:,IP) 451 END DO 452 CALL W3CSPC ( TMPSPC , NKI, NTHI, XFRI, FR1I, TH1I, & 453 ABPIN, NK, NTH, XFR, FR1, TH(1), & 454 NBI2, NDST, NDSE, FACHFE ) 455 DEALLOCATE ( TMPSPC ) 456 END IF Page 9 Source Listing W3IOBC 2014-09-16 16:49 w3iobcmd.f90 457 ! 458 END IF 459 ! 460 ! Set first spectra on first read ------------------------------------ * 461 ! 462 IF ( INXOUT.EQ.'READ' .AND. FILER ) THEN 463 TIME1 = TIME2 464 DO IP=1, NBI2 465 ABPI0(:,IP) = ABPIN(:,IP) 466 END DO 467 ABPI0(:,0) = 0. 468 ABPIN(:,0) = 0. 469 END IF 470 ! 471 ! Reset flags -------------------------------------------------------- * 472 ! 473 IF ( INXOUT .EQ. 'WRITE' ) FILEW = .FALSE. 474 IF ( INXOUT .EQ. 'DUMP' ) FILED = .FALSE. 475 IF ( INXOUT .EQ. 'READ' ) FILER = .FALSE. 476 ! 477 RETURN 478 ! 479 ! Escape locations IO errors 480 ! 481 800 CONTINUE 482 IF ( IAPROC .EQ. NAPERR ) WRITE (NDSE,1000) FILEN, IERR 483 CALL EXTCDE ( 40 ) 484 ! 485 801 CONTINUE 486 IF ( IAPROC .EQ. NAPERR ) WRITE (NDSE,1001) IMOD 487 IOTST = 1 488 FLBPI = .FALSE. 489 RETURN 490 ! 491 802 CONTINUE 492 IF ( IAPROC .EQ. NAPERR ) WRITE (NDSE,1002) 493 CALL EXTCDE ( 41 ) 494 ! 495 803 CONTINUE 496 IF ( IAPROC .EQ. NAPERR ) WRITE (NDSE,1003) IERR 497 CALL EXTCDE ( 42 ) 498 ! 499 810 CONTINUE 500 IF ( FILER ) THEN 501 IF ( IAPROC .EQ. NAPERR ) WRITE (NDSE,1010) 502 CALL EXTCDE ( 43 ) 503 END IF 504 ! 505 TIME1(1) = TIME2(1) 506 TIME1(2) = TIME2(2) 507 DO 812, IP=0, NBI2 508 DO 811, ISP=1, NSPEC 509 ABPI0(ISP,IP) = ABPIN(ISP,IP) 510 811 CONTINUE 511 812 CONTINUE 512 ! 513 IOTST = -1 Page 10 Source Listing W3IOBC 2014-09-16 16:49 w3iobcmd.f90 514 FLBPI = .FALSE. 515 RETURN 516 ! 517 ! Formats 518 ! 519 900 FORMAT (/' *** WAVEWATCH III ERROR IN W3IOBC :'/ & 520 ' ILLEGAL INXOUT VALUE: ',A/) 521 901 FORMAT (/' *** WAVEWATCH III ERROR IN W3IOBC :'/ & 522 ' ILLEGAL IDSTRBC, READ : ',A/ & 523 ' CHECK : ',A/) 524 902 FORMAT (/' *** WAVEWATCH III ERROR IN W3IOBC :'/ & 525 ' ILLEGAL VEROGR, READ : ',A/ & 526 ' CHECK : ',A/) 527 ! 528 909 FORMAT (/' *** WAVEWATCH III ERROR IN W3IOBC :'/ & 529 ' POINT',2I4,' NOT ACTIVE SEA POINT (',I1,')') 530 910 FORMAT (/' *** WAVEWATCH III ERROR IN W3IOBC :'/ & 531 ' POINT',2I4,' NOT LOCATED IN GRID') 532 911 FORMAT ( ' *** WAVEWATCH III WARNING : POINT',2I7, & 533 ' WILL NOT BE UPDATED') 534 ! 535 1000 FORMAT (/' *** WAVEWATCH III ERROR IN W3IOBC : '/ & 536 ' ERROR IN OPENING FILE ',A/ & 537 ' IOSTAT =',I5/) 538 ! 539 ! Note: This 1001 error can occur when multi-grid time steps are not 540 ! compatible. 541 1001 FORMAT (/' *** WAVEWATCH III WARNING IN W3IOBC : '/ & 542 ' INPUT FILE WITH BOUNDARY CONDITIONS NOT FOUND'/ & 543 ' BOUNDARY CONDITIONS WILL NOT BE UPDATED ',I5/) 544 1002 FORMAT (/' *** WAVEWATCH III ERROR IN W3IOBC : '/ & 545 ' PREMATURE END OF FILE'/) 546 1003 FORMAT (/' *** WAVEWATCH III ERROR IN W3IOBC : '/ & 547 ' ERROR IN READING FROM FILE'/ & 548 ' IOSTAT =',I5/) 549 ! 550 1010 FORMAT (/' *** WAVEWATCH III ERROR IN W3IOBC : '/ & 551 ' NO DATA IN INPUT FILE'/) 552 ! 553 !/ 554 !/ End of W3IOBC ----------------------------------------------------- / 555 !/ 556 END SUBROUTINE W3IOBC Page 11 Source Listing W3IOBC 2014-09-16 16:49 Entry Points w3iobcmd.f90 ENTRY POINTS Name w3iobcmd_mp_w3iobc_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 1000 Label 535 482 1001 Label 541 486 1002 Label 544 492 1003 Label 546 496 1010 Label 550 501 800 Label 481 262,269 801 Label 485 253 802 Label 491 803 Label 495 310,333,441,450 810 Label 499 375,402 811 Label 510 508 812 Label 511 507 900 Label 519 241 901 Label 521 315 902 Label 524 320 909 Label 528 346 910 Label 530 351 911 Label 532 369 ABPI0 Local 192 R(4) 4 2 1 PTR 192,385,465,467,509 ABPIN Local 192 R(4) 4 2 1 PTR 192,385,433,441,453,465,468,509 ABPOS Local 192 R(4) 4 2 1 PTR 192,420,424 ABS Func 327 scalar 327,328,329,344,346,351,363 CG Local 186 R(4) 4 2 1 PTR 186,421 CONSTANTS Module 171 171 DTH Local 182 R(4) 4 scalar PTR 182,329 DXYMAX Local 184 R(4) 4 scalar PTR 184,340 EXTCDE Subr 196 196,242,316,321,352,358,483,493,49 7,502 FACHFE Local 182 R(4) 4 scalar PTR 182,454 FILED Local 193 L(4) 4 scalar PTR 193,266,295,474 FILEN Local 217 CHAR 16 scalar 251,252,259,261,267,268,482 FILER Local 192 L(4) 4 scalar PTR 192,250,308,383,462,475,500 FILEW Local 192 L(4) 4 scalar PTR 192,256,276,473 FILEXT Local 182 CHAR 10 scalar PTR 182,247,251,260,267 FLBPI Local 192 L(4) 4 scalar PTR 192,488,514 FLOK Local 216 L(4) 4 scalar 338,340,347,358,364,366,368 FNMPRE Local 193 CHAR 80 scalar 193,248,252,261,268 FR1 Local 182 R(4) 4 scalar PTR 182,280,297,328,453 FR1I Local 189 R(4) 4 scalar PTR 189,311,328,452 GSU Local 181 W3GDATMD^W3GSRUMD^T_GSU 8 scalar PTR 181,343 GTYPE Local 183 I(4) 4 scalar PTR 183,339 I Local 213 I(4) 4 scalar 247,251,252,260,261,267,268,284,28 5,286,287,299,300,301,334,335,336, Page 12 Source Listing W3IOBC 2014-09-16 16:49 Symbol Table w3iobcmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 342,343,354,365,366,432,433 IAPROC Local 187 I(4) 4 scalar PTR 187,241,277,296,314,319,345,350,36 8,482,486,492,496,501 IDSTRBC Param 280 CHAR 32 scalar 280,297,313,315 IDTST Local 219 CHAR 32 scalar 311,313,315 IERR Local 213 I(4) 4 scalar 253,262,269,310,333,441,450,482,49 6 IFILE Local 213 I(4) 4 scalar 257,258,259,261,278,279,281,283,28 4,285,286,287,391,392,393,409,410, 424 IGRD Local 214 I(4) 4 scalar 229,231,234,235,236,237,331,377 IMOD Dummy 70 I(4) 4 scalar ARG,IN 228,229,486 INXOUT Dummy 70 CHAR scalar ARG,IN 239,240,241,250,256,266,276,295,30 8,383,390,397,401,407,431,437,462, 473,474,475 IOTST Dummy 70 I(4) 4 scalar ARG,OUT 224,487,513 IP Local 214 I(4) 4 scalar 440,441,449,450,464,465,507,509 IPBPI Local 190 I(4) 4 2 1 PTR 190,300,335 IPBPO Local 191 I(4) 4 2 1 PTR 191,286 IS Local 214 I(4) 4 scalar 419,420,421,424 ISBPI Local 190 I(4) 4 1 1 PTR 190,354,366 ISBPO Local 191 I(4) 4 1 1 PTR 191,412 ISEA Local 213 I(4) 4 scalar 360,361,362,366,412,421 ISOUT Local 214 I(4) 4 scalar 410,412,420,424 ISP Local 214 I(4) 4 scalar 508,509 IX Local 213 I(4) 4 scalar 343,344,346,351,354,361,363,369 IY Local 213 I(4) 4 scalar 343,344,346,351,354,362,363,369 J Local 213 I(4) 4 scalar 248,252,261,268,286,287,300,301,33 5,336 LEN_TRIM Func 247 scalar 247,248 MAPFS Local 181 I(4) 4 2 1 PTR 181,354 MAPSF Local 181 I(4) 4 2 1 PTR 181,361,362 MAPSTA Local 181 I(4) 4 2 1 PTR 181,344,346,351,363 NAPBPT Local 187 I(4) 4 scalar PTR 187,277,296 NAPERR Local 187 I(4) 4 scalar PTR 187,241,314,319,345,350,368,482,48 6,492,496,501 NAPROC Local 187 I(4) 4 scalar PTR 187 NBI Local 188 I(4) 4 scalar PTR 188,297,299,300,301,311,334,335,33 6,342,365 NBI2 Local 188 I(4) 4 scalar PTR 188,375,385,398,402,432,440,448,44 9,454,464,507 NBO Local 188 I(4) 4 1 1 PTR 188,281,284,285,286,287 NBO2 Local 188 I(4) 4 1 1 PTR 188,392,410 NDSB Dummy 70 I(4) 4 scalar ARG,IN 252,258,268,297,299,310,333,375,37 6,398,402,433,441,450 NDSE Local 187 I(4) 4 scalar PTR 187,234,235,236,237,241,315,320,33 1,346,351,369,377,454,482,486,492, 496,501 NDSL Local 188 I(4) 4 1 1 PTR 188,258,261,279,283,393,424 NDST Local 187 I(4) 4 scalar PTR 187,234,235,236,237,331,377,454 NFBPO Local 188 I(4) 4 scalar PTR 188,257,278,391,409 NK Local 180 I(4) 4 scalar PTR 180,280,297,326,453 NKI Local 189 I(4) 4 scalar PTR 189,311,326,448,452 NPTS Local 214 I(4) 4 scalar 392,393 NSEA Local 180 I(4) 4 scalar PTR 180,360 Page 13 Source Listing W3IOBC 2014-09-16 16:49 Symbol Table w3iobcmd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References NSEAL Local 180 I(4) 4 scalar PTR 180 NSPEC Local 180 I(4) 4 scalar PTR 180,419,424,508 NTH Local 180 I(4) 4 scalar PTR 180,280,297,326,421,453 NTHI Local 189 I(4) 4 scalar PTR 189,311,326,448,452 NX Local 180 I(4) 4 scalar PTR 180 NY Local 180 I(4) 4 scalar PTR 180 PRESENT Func 228 scalar 228 RDBPI Local 190 R(4) 4 2 1 PTR 190,301,336 RDBPO Local 191 R(4) 4 2 1 PTR 191,287 SIG2 Local 182 R(4) 4 1 1 PTR 182,420 SPCONV Local 193 L(4) 4 scalar PTR 193,326,439 SX Local 181 R(4) 4 scalar PTR 181 SY Local 181 R(4) 4 scalar PTR 181 TH Local 182 R(4) 4 1 1 PTR 182,280,297,329,453 TH1I Local 189 R(4) 4 scalar PTR 189,311,329,452 TIME1 Dummy 70 I(4) 4 1 2 ARG,INOUT 384,393,398,463,505,506 TIME2 Dummy 70 I(4) 4 1 2 ARG,OUT 375,384,402,463,505,506 TMPSPC Local 215 R(4) 4 2 1 ALC 448,450,452,455 UNGTYPE Param 183 I(4) 4 scalar 183,339 VA Local 185 R(4) 4 2 1 PTR 185 VERBPTBC Param 280 CHAR 10 scalar 280,297,318,320 VERTST Local 218 CHAR 10 scalar 311,318,320 W3ADATMD Module 175 175,186 W3CSPC Subr 177 177,452 W3CSPCMD Module 177 177 W3DMO5 Subr 176 176,331,377 W3GDATMD Module 173 173,180,184 W3GFPT Local 343 scalar 343 W3GFPT_R4 Func 343 L(4) 4 scalar PRIV 343 W3GSRUMD Module 194 194 W3IOBC Subr 70 W3NESTUG Subr 178 178,340 W3ODATMD Module 176 176,187 W3SERVMD Module 196 196 W3SETA Subr 175 175,237 W3SETG Subr 173 173,235 W3SETO Subr 176 176,234 W3SETW Subr 174 174,236 W3TRIAMD Module 178 178 W3WDATMD Module 174 174,185 X0 Local 181 R(4) 4 scalar PTR 181 XBPI Local 190 R(4) 4 1 1 PTR 190,299,334,343 XBPO Local 191 R(4) 4 1 1 PTR 191,284 XFR Local 182 R(4) 4 scalar PTR 182,280,297,327,453 XFRI Local 189 R(4) 4 scalar PTR 189,311,327,452 Y0 Local 181 R(4) 4 scalar PTR 181 YBPI Local 190 R(4) 4 1 1 PTR 190,299,334,343 YBPO Local 191 R(4) 4 1 1 PTR 191,285 Page 14 Source Listing W3IOBC 2014-09-16 16:49 w3iobcmd.f90 557 !/ 558 !/ End of module W3IOBCMD -------------------------------------------- / 559 !/ 560 END MODULE W3IOBCMD SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References W3IOBCMD Module 2 Page 15 Source Listing W3IOBC 2014-09-16 16:49 Subprograms/Common Blocks w3iobcmd.f90 SUBPROGRAMS/COMMON BLOCKS Name Object Declared Type Bytes Dimen Elements Attributes References W3IOBC Subr 70 W3IOBCMD Module 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 cc_omp -assume nocstring -assume nodummy_aliases -assume nofpe_summary -assume noieee_fpe_flags -assume nominus0 -assume noold_boz -assume old_unit_star -assume old_ldout_format -assume noold_logical_ldio -assume old_maxminloc -assume old_xor -assume protect_constants -assume noprotect_parens -assume split_common -assume source_include -assume nostd_intent_in -assume nostd_mod_proc_name -assume norealloc_lhs -assume underscore -assume no2underscores -auto no -auto_scalar no -bintext -ccdefault default -check noargs -check noarg_temp_created -check nobounds -check noformat -check nooutput_conversion -check nooverflow -check nopointers -check power -check noshape -check nounderflow -check nouninitialized -coarray-num-procs 0 no -coarray-config-file -convert big_endian -cross_reference -D __INTEL_COMPILER=1210 -D __unix__ -D __unix -D __linux__ -D __linux -D __gnu_linux__ -D unix -D linux -D __ELF__ -D __x86_64 -D __x86_64__ -D _MT -D __INTEL_COMPILER_BUILD_DATE=20120612 -D _OPENMP=201107 -D __pentium4 -D __pentium4__ -D __tune_pentium4__ -D __SSE2__ -D __SSE3__ -D __SSSE3__ -D __SSE4_1__ -D __SSE4_2__ -D __SSE__ -D __MMX__ -D __AVX__ -double_size 64 no -d_lines no -Qdyncom -error_limit 30 no -f66 no -f77rtl no -fast -fpscomp nofilesfromcmd -fpscomp nogeneral -fpscomp noioformat -fpscomp noldio_spacing -fpscomp nologicals Page 16 Source Listing W3IOBC 2014-09-16 16:49 w3iobcmd.f90 no -fpconstant -fpe3 -fprm nearest no -ftz -fp_model noprecise -fp_model fast -fp_model nostrict -fp_model nosource -fp_model nodouble -fp_model noextended -fp_model novery_fast -fp_model noexcept -fp_model nono_except -heap_arrays 0 no -threadprivate_compat -free -g0 -iface nomixed_str_len_arg -iface nono_mixed_str_len_arg no -intconstant -integer_size 32 no -mixed_str_len_arg no -module -names lowercase no -noinclude -openmp -O2 no -pad_source -real_size 32 no -recursive -reentrancy threaded no -sharable_localsaves -vec=simd -show noinclude -show map -show options no -syntax_only no -threadcom no -U no -vms -w noall -w nonone -w alignments -w noargument_checking -w nodeclarations -w general -w noignore_bounds -w noignore_loc -w nointerfaces -w notruncated_source -w uncalled -w uninitialized -w nounused -w usage -includepath : /usrx/local/intel/composerxe/tbb/include/,/usr/include/,./,/usrx/local/intel/impi/4.0.3.008/intel64/include/, /usrx/local/intel/impi/4.0.3.008/intel64/include/,/usrx/local/intel/composerxe/mkl/include/,/usrx/local/intel/composerxe/tbb/include/, /gpfs/gp1/usrx/local/intel/composer_xe_2011_sp1.11.339/compiler/include/intel64/,/gpfs/gp1/usrx/local/intel/composer_xe_2011_sp1.11.339/compiler/include/, /usr/local/include/,/usr/lib/gcc/x86_64-redhat-linux/4.4.7/include/,/usr/include/,/usr/include/ -list filename : w3iobcmd.lst -o filename : none COMPILER: Intel(R) Fortran 12.1-2100