Page 1 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 1 !/ ------------------------------------------------------------------- / 2 PROGRAM WAVEGRID_INTERP 3 !/ 4 !/ +-----------------------------------+ 5 !/ | WAVEWATCH-III NOAA/NCEP | 6 !/ | A. Chawla | 7 !/ | FORTRAN 90 | 8 !/ | Last update : 11-Nov-2013 | 9 !/ +-----------------------------------+ 10 !/ 11 !/ 24-Sep-2007 : Original code ( version 1.0 + error fixes ) 12 !/ 01-Aug-2011 : Modified to match grid output in WW3 v 4 13 !/ 02-20-2013 : Modified to use the new structure of 14 !/ output fields ( version 4.11 ) 15 !/ 11-Nov-2013 : Changing to work with curvilinear as well 16 !/ as regular grids ( version 4.13 ) 17 !/ 18 ! 1. Purpose : 19 ! 20 ! Re-gridding output to another grid 21 ! 22 ! 2. Method : 23 ! 24 ! Data is interpolated from a combination of base grids to the target 25 ! grid. For each grid, if resolution is coarser or similar to target 26 ! grid then a linear interpolation approach is used. On the other hand 27 ! if resolution is much higher then an averaging technique based on 28 ! cell areas. 29 ! Total number of base grids to be used for interpolation together with 30 ! their (and target grid) file extns are read from 'multiwavegrid_interp.inp'. 31 ! Base grids can be arranged in any order but the target grid should 32 ! always be the last grid. At this moment the code works only with 33 ! rectilinear and curvilinear grids. 34 ! 35 ! 3. Parameters : 36 ! 37 ! 4. Subroutines used : 38 ! 39 ! Name Type Module Description 40 ! ---------------------------------------------------------------- 41 ! W3NMOD Subr. W3GDATMD Set number of model. 42 ! W3SETG Subr. Id. Point to selected model. 43 ! W3IOGR Subr. W3IOGRMD Reading/writing model definition file. 44 ! NEXTLN Subr. W3SERVMD Get next line from input file 45 ! EXTCDE Subr. Id. Abort program as graceful as possible. 46 ! ITRACE Subr. Id. Subroutine tracing initialization. 47 ! STRACE Subr. Id. Subroutine tracing. 48 ! W3NOUT Subr. W3ODATMD Set number of model for output. 49 ! W3SETO Subr. Id. Point to selected model for output. 50 ! W3NDAT Subr. W3WDATMD Set number of model for wave data. 51 ! W3SETW Subr. W3WDATMD Point to selected model for wave data. 52 ! W3NAUX Subr. W3ADATMD Set number of model for aux data. 53 ! W3SETA Subr. Id. Point to selected model for aux data. 54 ! W3DIMA Subr. Id. Assign memory for aux data. 55 ! W3GRMP Func. W3GSRUMD Compute interpolation coeff. from grid. 56 ! W3CKCL Func. Id. Check if point lies within grid cell. 57 ! W3IOGO Subr. W3IOGOMD Reading/writing raw gridded data file. Page 2 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 58 ! ---------------------------------------------------------------- 59 ! 60 ! 5. Called by : 61 ! 62 ! None, stand-alone program. 63 ! 64 ! 6. Error messages : 65 ! 66 ! Checks on input, checks on determining the interpolation weights 67 ! 68 ! 7. Remarks : 69 ! 70 ! 8. Structure : 71 ! 72 ! See source code. 73 ! 74 ! 9. Switches : 75 ! 76 ! !/S Enable subroutine tracing. 77 ! 78 ! 10. Source code : 79 ! 80 !/ ------------------------------------------------------------------- / 81 USE CONSTANTS 82 !/ 83 USE W3IOGRMD 84 USE W3TIMEMD 85 USE W3IOGOMD, ONLY : W3IOGO 86 USE W3ADATMD, ONLY : W3DIMA, W3NAUX, W3SETA 87 USE W3GDATMD 88 USE W3ODATMD, ONLY : FNMPRE, NOGRP, NGRPP, OUTPTS, UNDEF, NDSE, & 89 NDST, FLOGRD, NAPROC, NOSWLL 90 USE W3ODATMD, ONLY : W3NOUT, W3SETO 91 USE W3IDATMD 92 USE W3WDATMD, ONLY : W3NDAT, W3DIMW, W3SETW 93 USE W3WDATMD, ONLY : WDATAS, TIME, WLV, ICE, UST, USTDIR, ASF 94 USE W3SERVMD, ONLY : ITRACE, NEXTLN, EXTCDE 95 USE W3ARRYMD, ONLY : PRTBLK 96 USE W3GSRUMD 97 !/ 98 IMPLICIT NONE 99 !/ 100 !/ ------------------------------------------------------------------- / 101 !/ Local data structure 102 !/ 103 TYPE GR_WT 104 INTEGER :: NP 105 INTEGER, ALLOCATABLE :: IP(:), JP(:) 106 REAL, ALLOCATABLE :: WT(:) 107 END TYPE GR_WT 108 TYPE GR_INT 109 INTEGER :: NGRDS 110 INTEGER, ALLOCATABLE :: GDID(:) 111 TYPE(GR_WT), ALLOCATABLE :: IND_WTS(:) 112 END TYPE GR_INT 113 !/ 114 !/ Local variables Page 3 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 115 !/ 116 117 TYPE(GR_INT), TARGET, ALLOCATABLE :: GR_INTS(:) 118 INTEGER :: I, J, K, IERR, NG, IG, ISEA, IX, IY, IXT, & 119 IYT, NS, COUNTF, COUNTG, NOSWLL_MIN 120 INTEGER :: NDSM, NDSI, NDSO, NDSTRC, NTRACE, IOTST 121 INTEGER, ALLOCATABLE :: FIDOUT(:), MAP(:,:), TMP_INDX(:) 122 REAL :: SXT, SYT, DAREA, XT, YT, XTT 123 REAL :: XCRNR(5),YCRNR(5),DT(4) 124 REAL :: XP(4), YP(4) 125 INTEGER :: TOUT(2), NOUT, IOUT 126 REAL :: DTREQ, DTEST 127 INTEGER :: IS(4), JS(4) 128 INTEGER :: MAPINT 129 REAL :: RW(4), SUMWT 130 REAL, ALLOCATABLE :: INT_MAP(:,:) 131 LOGICAL :: L360=.FALSE., LPLC, INGRD, BRNCHCL, BRNCHCR 132 CHARACTER :: COMSTR*1, IDTIME*23 133 ! 134 !--------------------------------------------------------------------------- 135 ! 1. Initialization 136 ! 137 NDSM = 20 138 NDSI = 10 139 NDSO = 6 140 ! 141 NDSTRC = 6 142 NTRACE = 10 143 ! 144 !--------------------------------------------------------------------------- 145 ! 2. I/O Setup 146 ! 147 J = LEN_TRIM(FNMPRE) 148 OPEN(NDSI,FILE=FNMPRE(:J)//'multiwavegrid_interp.inp',STATUS='OLD', ERR=2000, & 149 IOSTAT=IERR) 150 WRITE (NDSO,900) 151 ! 152 CALL ITRACE ( NDSTRC, NTRACE ) 153 !--------------------------------------------------------------------------- 154 ! 3. Read and process input file upto number of grids 155 ! 3.a Get comment character 156 ! 157 REWIND (NDSI) 158 READ (NDSI,'(A)',END=2001,ERR=2002) COMSTR 159 IF ( COMSTR .EQ. ' ' ) COMSTR = '$' 160 WRITE (NDSO,901) COMSTR 161 ! 162 ! 3.b Read starting time, time step and number of outputs 163 ! 164 CALL NEXTLN ( COMSTR, NDSI, NDSE ) 165 READ (NDSI,*,END=2001,ERR=2002) TOUT, DTREQ, NOUT 166 DTREQ = MAX ( 0. , DTREQ ) 167 IF ( DTREQ.EQ.0 ) NOUT = 1 168 NOUT = MAX ( 1 , NOUT ) 169 ! 170 CALL STME21 ( TOUT , IDTIME ) 171 WRITE (NDSO,902) IDTIME, DTREQ, NOUT Page 4 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 172 ! 173 ! 3.c Read number of grids and allocate memory 174 ! 175 CALL NEXTLN ( COMSTR, NDSI, NDSE ) 176 READ (NDSI,*,END=2001,ERR=2002) NG 177 WRITE (NDSO,903) NG 178 ! 179 CALL W3NMOD (NG, 6, 6) 180 CALL W3NDAT ( 6, 6) 181 CALL W3NAUX ( 6, 6) 182 CALL W3NINP ( 6, 6) 183 CALL W3NOUT( 6, 6) 184 ! 185 ! 3.d Read file extensions for each of the grids and 186 ! the grid information from the corresponding mod_def files 187 ! 188 NOSWLL_MIN = 9999999 189 CALL NEXTLN ( COMSTR, NDSI, NDSE ) 190 ! 191 DO IG = 1,NG 192 READ (NDSI,*,END=2001,ERR=2002) GRIDS(IG)%FILEXT 193 WRITE (NDSO,904) IG,GRIDS(IG)%FILEXT 194 ! 195 CALL W3SETO( IG, 6, 6) 196 CALL W3SETA( IG, 6, 6) 197 CALL W3SETW( IG, 6, 6) 198 CALL W3SETG( IG, 6, 6) 199 CALL W3IOGR ('READ', NDSM, IG, GRIDS(IG)%FILEXT) 200 WRITE (NDSO,905) NX, NY, GTYPE, ICLOSE 201 IF ( GTYPE .EQ. UNGTYPE ) THEN 202 WRITE (NDSO,906) 203 STOP 204 END IF 205 IF ( IG .NE. NG .AND. NOSWLL_MIN .GE. OUTPTS(IG)%NOSWLL ) THEN 206 NOSWLL_MIN = OUTPTS(IG)%NOSWLL 207 END IF 208 ! 209 END DO 210 ! 211 IF ( NOSWLL_MIN .NE. OUTPTS(NG)%NOSWLL ) THEN 212 WRITE (NDSO,907) NOSWLL_MIN, OUTPTS(NG)%NOSWLL 213 NOSWLL_MIN = MIN (NOSWLL_MIN,OUTPTS(NG)%NOSWLL) 214 END IF 215 ! 216 ! 3.e Allocate memory for integration map and initialize with grid status map 217 ! 218 ALLOCATE(INT_MAP(NX,NY),MAP(NX,NY)) 219 ! MAP = TRANSPOSE(MAPSTA) 220 DO IX = 1,NX 221 DO IY = 1,NY 222 IF ( MAPSTA(IY,IX) .EQ. 0 ) THEN 223 MAP(IX,IY) = -1 224 END IF 225 END DO 226 END DO 227 ! 228 !--------------------------------------------------------------------------- Page 5 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 229 ! 4. Determine interpolation weights for output grids 230 ! 231 ! 4.a Point to output grid and allocate space for interpolation weights 232 ! 233 CALL W3SETG( NG, 6, 6) 234 DAREA = SX*SY 235 WRITE (NDSO,908) NSEA 236 ! 237 ALLOCATE ( GR_INTS(NSEA) ) 238 ! 239 IF ( FLAGLL ) THEN 240 IF ( MINVAL ( XGRD ) .LT. 0 .OR. & 241 MAXVAL ( XGRD ) .GT. 180.0 ) L360 = .TRUE. 242 END IF 243 ! 244 ! 4.b Loop through the wet points 245 ! 246 DO ISEA = 1, NSEA 247 ! 248 IX = MAPSF(ISEA,1) 249 IY = MAPSF(ISEA,2) 250 ! 251 ALLOCATE ( GR_INTS(ISEA)%IND_WTS(NG-1),GR_INTS(ISEA)%GDID(NG-1) ) 252 ! 253 ! 4.b.i Loop through the input grids for each wet point 254 ! 255 COUNTG = 0 256 DO IG = 1,NG-1 257 ! 258 ! 4.b.ii Check if point is enclosed in grid domain 259 ! 260 IF ( W3GRMP ( GRIDS(IG)%GSU, XGRD(IY,IX), YGRD(IY,IX), IS, & 261 JS, RW ) ) THEN 262 ! 263 ! 4.b.iii Check source grid resolution vs target grid resolution 264 ! (averaging used for finer resolution source grids) 265 ! 266 DO I = 1,4 267 XCRNR(I) = GRIDS(IG)%XGRD(JS(I),IS(I)) 268 YCRNR(I) = GRIDS(IG)%YGRD(JS(I),IS(I)) 269 END DO 270 XCRNR(5) = XCRNR(1) 271 YCRNR(5) = YCRNR(1) 272 DO I = 1,4 273 IF ( ABS (XCRNR(I+1)-XCRNR(I)) .GT. 180. .AND. & 274 GRIDS(IG)%ICLOSE .EQ. ICLOSE_SMPL ) THEN 275 DT(I) = SQRT ( (ABS(XCRNR(I+1)-XCRNR(I))-360.)**2 + & 276 (YCRNR(I+1)-YCRNR(I))**2 ) 277 ELSE 278 DT(I) = SQRT ( (XCRNR(I+1)-XCRNR(I))**2 + & 279 (YCRNR(I+1)-YCRNR(I))**2 ) 280 END IF 281 END DO 282 SXT = 0.5*(DT(1)+DT(3)) 283 SYT = 0.5*(DT(2)+DT(4)) 284 NS = NINT(DAREA/(SXT*SYT)) 285 ! Page 6 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 286 IF ( NS .LE. 2 ) THEN 287 ! 288 ! 4.b.iv Interpolating to target grid 289 ! 290 ALLOCATE ( TMP_INDX(4) ) 291 COUNTF = 0 292 SUMWT = 0.0 293 DO I = 1,4 294 IF ( GRIDS(IG)%MAPSTA(JS(I),IS(I)) .NE. 0 .AND. & 295 RW(I) .GT. 0.0 ) THEN 296 COUNTF = COUNTF+1 297 TMP_INDX(COUNTF) = I 298 SUMWT = SUMWT + RW(I) 299 END IF 300 END DO 301 IF ( COUNTF .GT. 0 ) THEN 302 COUNTG = COUNTG + 1 303 GR_INTS(ISEA)%GDID(COUNTG) = IG 304 INT_MAP(IX,IY) = IG 305 ALLOCATE ( GR_INTS(ISEA)%IND_WTS(COUNTG)%IP(COUNTF), & 306 GR_INTS(ISEA)%IND_WTS(COUNTG)%JP(COUNTF), & 307 GR_INTS(ISEA)%IND_WTS(COUNTG)%WT(COUNTF) ) 308 DO I = 1,COUNTF 309 GR_INTS(ISEA)%IND_WTS(COUNTG)%IP(I) = IS(TMP_INDX(I)) 310 GR_INTS(ISEA)%IND_WTS(COUNTG)%JP(I) = JS(TMP_INDX(I)) 311 GR_INTS(ISEA)%IND_WTS(COUNTG)%WT(I) = RW(TMP_INDX(I))/SUMWT 312 END DO 313 GR_INTS(ISEA)%IND_WTS(COUNTG)%NP = COUNTF 314 END IF 315 DEALLOCATE ( TMP_INDX ) 316 ! 317 ELSE 318 ! 319 ! 4.b.v Find the averaging points for higher resolution grid 320 ! Step 1 : Compute the corners of the cell 321 ! 322 X0 = XGRD(IY,IX) 323 Y0 = YGRD(IY,IX) 324 IF ( IX .GT. 1 .AND. IX .LT. NX .AND. IY .GT. 1 & 325 .AND. IY .LT. NY ) THEN 326 XT = XGRD(IY-1,IX+1) 327 YT = YGRD(IY-1,IX+1) 328 IF ( ABS(XT-X0) .GT. 270 ) THEN 329 XT = XT - SIGN(360.,XT-X0) 330 END IF 331 XCRNR(1) = 0.5*(XT+X0) 332 YCRNR(1) = 0.5*(YT+Y0) 333 XT = XGRD(IY+1,IX+1) 334 YT = YGRD(IY+1,IX+1) 335 IF ( ABS(XT-X0) .GT. 270 ) THEN 336 XT = XT - SIGN(360.,XT-X0) 337 END IF 338 XCRNR(2) = 0.5*(XT+X0) 339 YCRNR(2) = 0.5*(YT+Y0) 340 XT = XGRD(IY+1,IX-1) 341 YT = YGRD(IY+1,IX-1) 342 IF ( ABS(XT-X0) .GT. 270 ) THEN Page 7 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 343 XT = XT - SIGN(360.,XT-X0) 344 END IF 345 XCRNR(3) = 0.5*(XT+X0) 346 YCRNR(3) = 0.5*(YT+Y0) 347 XT = XGRD(IY-1,IX-1) 348 YT = YGRD(IY-1,IX-1) 349 IF ( ABS(XT-X0) .GT. 270 ) THEN 350 XT = XT - SIGN(360.,XT-X0) 351 END IF 352 XCRNR(4) = 0.5*(XT+X0) 353 YCRNR(4) = 0.5*(YT+Y0) 354 ELSEIF ( IX .EQ. 1 ) THEN 355 IF ( IY .EQ. 1 ) THEN 356 XT = XGRD(IY+1,IX+1) 357 YT = YGRD(IY+1,IX+1) 358 IF ( ABS(XT-X0) .GT. 270 ) THEN 359 XT = XT - SIGN(360.,XT-X0) 360 END IF 361 XCRNR(2) = 0.5*(XT+X0) 362 YCRNR(2) = 0.5*(YT+Y0) 363 XCRNR(4) = 2*X0 - XCRNR(2) 364 YCRNR(4) = 2*Y0 - YCRNR(2) 365 XCRNR(3) = X0 - (YCRNR(2)-Y0) 366 YCRNR(3) = Y0 + (XCRNR(2)-X0) 367 XCRNR(1) = 2*X0 - XCRNR(3) 368 YCRNR(1) = 2*Y0 - YCRNR(3) 369 ELSEIF ( IY .EQ. NY ) THEN 370 XT = XGRD(IY-1,IX+1) 371 YT = YGRD(IY-1,IX+1) 372 IF ( ABS(XT-X0) .GT. 270 ) THEN 373 XT = XT - SIGN(360.,XT-X0) 374 END IF 375 XCRNR(1) = 0.5*(XT+X0) 376 YCRNR(1) = 0.5*(YT+Y0) 377 XCRNR(3) = 2*X0 - XCRNR(1) 378 YCRNR(3) = 2*Y0 - YCRNR(1) 379 XCRNR(2) = X0 - (Y0-YCRNR(1)) 380 YCRNR(2) = Y0 + (X0-XCRNR(1)) 381 XCRNR(4) = 2*X0 - XCRNR(2) 382 YCRNR(4) = 2*Y0 - YCRNR(2) 383 ELSE 384 XT = XGRD(IY-1,IX+1) 385 YT = YGRD(IY-1,IX+1) 386 IF ( ABS(XT-X0) .GT. 270 ) THEN 387 XT = XT - SIGN(360.,XT-X0) 388 END IF 389 XCRNR(1) = 0.5*(XT+X0) 390 YCRNR(1) = 0.5*(YT+Y0) 391 XT = XGRD(IY+1,IX+1) 392 YT = YGRD(IY+1,IX+1) 393 IF ( ABS(XT-X0) .GT. 270 ) THEN 394 XT = XT - SIGN(360.,XT-X0) 395 END IF 396 XCRNR(2) = 0.5*(XT+X0) 397 YCRNR(2) = 0.5*(YT+Y0) 398 XCRNR(3) = 2*X0 - XCRNR(1) 399 YCRNR(3) = 2*Y0 - YCRNR(1) Page 8 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 400 XCRNR(4) = 2*X0 - XCRNR(2) 401 YCRNR(4) = 2*Y0 - YCRNR(2) 402 ENDIF 403 ELSEIF ( IX .EQ. NX ) THEN 404 IF ( IY .EQ. 1 ) THEN 405 XT = XGRD(IY+1,IX-1) 406 YT = YGRD(IY+1,IX-1) 407 IF ( ABS(XT-X0) .GT. 270 ) THEN 408 XT = XT - SIGN(360.,XT-X0) 409 END IF 410 XCRNR(3) = 0.5*(XT+X0) 411 YCRNR(3) = 0.5*(YT+Y0) 412 XCRNR(2) = X0 - (YCRNR(3)-Y0) 413 YCRNR(2) = Y0 + (XCRNR(3)-X0) 414 XCRNR(1) = 2*X0 - XCRNR(3) 415 YCRNR(1) = 2*Y0 - YCRNR(3) 416 XCRNR(4) = 2*X0 - XCRNR(2) 417 YCRNR(4) = 2*Y0 - YCRNR(2) 418 ELSEIF ( IY .EQ. NY ) THEN 419 XT = XGRD(IY-1,IX-1) 420 YT = YGRD(IY-1,IX-1) 421 IF ( ABS(XT-X0) .GT. 270 ) THEN 422 XT = XT - SIGN(360.,XT-X0) 423 END IF 424 XCRNR(4) = 0.5*(XT+X0) 425 YCRNR(4) = 0.5*(YT+Y0) 426 XCRNR(3) = X0 - (YCRNR(4)-Y0) 427 YCRNR(3) = Y0 + (XCRNR(4)-X0) 428 XCRNR(1) = 2*X0 - XCRNR(3) 429 YCRNR(1) = 2*Y0 - YCRNR(3) 430 XCRNR(2) = 2*X0 - XCRNR(4) 431 YCRNR(2) = 2*Y0 - YCRNR(4) 432 ELSE 433 XT = XGRD(IY+1,IX-1) 434 YT = YGRD(IY+1,IX-1) 435 IF ( ABS(XT-X0) .GT. 270 ) THEN 436 XT = XT - SIGN(360.,XT-X0) 437 END IF 438 XCRNR(3) = 0.5*(XT+X0) 439 YCRNR(3) = 0.5*(YT+Y0) 440 XT = XGRD(IY-1,IX-1) 441 YT = YGRD(IY-1,IX-1) 442 IF ( ABS(XT-X0) .GT. 270 ) THEN 443 XT = XT - SIGN(360.,XT-X0) 444 END IF 445 XCRNR(4) = 0.5*(XT+X0) 446 YCRNR(4) = 0.5*(YT+Y0) 447 XCRNR(1) = 2*X0 - XCRNR(3) 448 YCRNR(1) = 2*Y0 - YCRNR(3) 449 XCRNR(2) = 2*X0 - XCRNR(4) 450 YCRNR(2) = 2*Y0 - YCRNR(4) 451 ENDIF 452 ELSE 453 IF ( IY .EQ. 1 ) THEN 454 XT = XGRD(IY+1,IX+1) 455 YT = YGRD(IY+1,IX+1) 456 IF ( ABS(XT-X0) .GT. 270 ) THEN Page 9 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 457 XT = XT - SIGN(360.,XT-X0) 458 END IF 459 XCRNR(2) = 0.5*(XT+X0) 460 YCRNR(2) = 0.5*(YT+Y0) 461 XT = XGRD(IY+1,IX-1) 462 YT = YGRD(IY+1,IX-1) 463 IF ( ABS(XT-X0) .GT. 270 ) THEN 464 XT = XT - SIGN(360.,XT-X0) 465 END IF 466 XCRNR(3) = 0.5*(XT+X0) 467 YCRNR(3) = 0.5*(YT+Y0) 468 XCRNR(4) = 2*X0 - XCRNR(2) 469 YCRNR(4) = 2*Y0 - YCRNR(2) 470 XCRNR(1) = 2*X0 - XCRNR(3) 471 YCRNR(1) = 2*Y0 - YCRNR(3) 472 ELSE 473 XT = XGRD(IY-1,IX-1) 474 YT = YGRD(IY-1,IX-1) 475 IF ( ABS(XT-X0) .GT. 270 ) THEN 476 XT = XT - SIGN(360.,XT-X0) 477 END IF 478 XCRNR(4) = 0.5*(XT+X0) 479 YCRNR(4) = 0.5*(YT+Y0) 480 XT = XGRD(IY-1,IX+1) 481 YT = YGRD(IY-1,IX+1) 482 IF ( ABS(XT-X0) .GT. 270 ) THEN 483 XT = XT - SIGN(360.,XT-X0) 484 END IF 485 XCRNR(1) = 0.5*(XT+X0) 486 YCRNR(1) = 0.5*(YT+Y0) 487 XCRNR(2) = 2*X0 - XCRNR(4) 488 YCRNR(2) = 2*Y0 - YCRNR(4) 489 XCRNR(3) = 2*X0 - XCRNR(1) 490 YCRNR(3) = 2*Y0 - YCRNR(1) 491 END IF 492 END IF 493 BRNCHCL = .FALSE. 494 BRNCHCR = .FALSE. 495 IF ( FLAGLL .AND. ICLOSE .EQ. ICLOSE_SMPL ) THEN 496 IF ( L360 ) THEN 497 IF ( MINVAL ( XCRNR(1:4) ) .LT. 0.0 ) BRNCHCL = .TRUE. 498 IF ( MAXVAL ( XCRNR(1:4) ) .GT. 360.0 ) BRNCHCR = .TRUE. 499 ELSE 500 IF ( MINVAL ( XCRNR(1:4) ) .LT. -180.0 ) BRNCHCL = .TRUE. 501 IF ( MAXVAL ( XCRNR(1:4) ) .GT. 180.0 ) BRNCHCR = .TRUE. 502 END IF 503 END IF 504 ! 505 ! Step 2 : Loop through source grid to find all active points in cell 506 ! 507 ALLOCATE ( TMP_INDX(NS*5) ) 508 COUNTF = 0 509 DO I = 1, GRIDS(IG)%NSEA 510 IXT = GRIDS(IG)%MAPSF(I,1) 511 IYT = GRIDS(IG)%MAPSF(I,2) 512 XT = GRIDS(IG)%XGRD(IYT,IXT) 513 YT = GRIDS(IG)%YGRD(IYT,IXT) Page 10 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 514 ! 515 IF ( FLAGLL ) THEN 516 IF ( L360 ) THEN 517 IF ( XT .LT. 0 ) XT = XT + 360. 518 ELSE 519 IF ( XT .GT. 180. ) XT = XT - 360. 520 END IF 521 END IF 522 INGRD = W3CKCL (FLAGLL,XT,YT,4,XCRNR,YCRNR,LPLC) 523 IF ( INGRD ) THEN 524 COUNTF = COUNTF+1 525 TMP_INDX(COUNTF) = I 526 ELSEIF ( BRNCHCL .AND. GRIDS(IG)%ICLOSE & 527 .EQ. ICLOSE_SMPL ) THEN 528 XTT = XT - 360.0 529 INGRD = W3CKCL (FLAGLL,XTT,YT,4,XCRNR,YCRNR,LPLC) 530 IF ( INGRD ) THEN 531 COUNTF = COUNTF+1 532 TMP_INDX(COUNTF) = I 533 END IF 534 ELSEIF ( BRNCHCR .AND. GRIDS(IG)%ICLOSE & 535 .EQ. ICLOSE_SMPL ) THEN 536 XTT = XT + 360.0 537 INGRD = W3CKCL (FLAGLL,XTT,YT,4,XCRNR,YCRNR,LPLC) 538 IF ( INGRD ) THEN 539 COUNTF = COUNTF+1 540 TMP_INDX(COUNTF) = I 541 END IF 542 END IF 543 END DO 544 ! 545 ! Step 3 : Save interior points for equal wt. interpolation (averaging) 546 ! 547 IF ( COUNTF .NE. 0 ) THEN 548 COUNTG = COUNTG + 1 549 GR_INTS(ISEA)%GDID(COUNTG) = IG 550 INT_MAP(IX,IY) = IG 551 ALLOCATE ( GR_INTS(ISEA)%IND_WTS(COUNTG)%IP(COUNTF), & 552 GR_INTS(ISEA)%IND_WTS(COUNTG)%JP(COUNTF), & 553 GR_INTS(ISEA)%IND_WTS(COUNTG)%WT(COUNTF) ) 554 DO I = 1,COUNTF 555 IXT = GRIDS(IG)%MAPSF(TMP_INDX(I),1) 556 IYT = GRIDS(IG)%MAPSF(TMP_INDX(I),2) 557 GR_INTS(ISEA)%IND_WTS(COUNTG)%IP(I) = IXT 558 GR_INTS(ISEA)%IND_WTS(COUNTG)%JP(I) = IYT 559 GR_INTS(ISEA)%IND_WTS(COUNTG)%WT(I) = 1./( REAL(COUNTF) ) 560 END DO 561 GR_INTS(ISEA)%IND_WTS(COUNTG)%NP = COUNTF 562 END IF 563 DEALLOCATE ( TMP_INDX ) 564 ! 565 END IF ! End of check for grid resolution 566 ! 567 END IF ! End of check for point inside grid 568 ! 569 END DO ! End of loop through all input grids 570 ! Page 11 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 571 GR_INTS(ISEA)%NGRDS = COUNTG 572 ! 573 ! 4.b.vi Check to see if interpolation weights found. 574 ! Status of output points with / without weifhts set in MAPST2 575 ! using the next available bit 576 ! 577 IF ( GR_INTS(ISEA)%NGRDS .EQ. 0 ) THEN 578 MAPINT = 1 579 MAPST2(IY,IX) = MAPST2(IY,IX) + MAPINT*16 580 MAPSTA(IY,IX) = -ABS ( MAPSTA(IY,IX) ) 581 END IF 582 ! 583 END DO ! End of loop through all wet points 584 ! 585 ! 4.c Print Interpolation grids map 586 ! 587 IX = 1+NX/24 588 IY = 1+NY/24 589 CALL PRTBLK ( NDSO, NX, NY, NX, INT_MAP, MAP, -1, 1., 1, NX, IX, 1, & 590 NY, IY, 'Grid Interpolation Map', ' ' ) 591 ! 592 !--------------------------------------------------------------------------- 593 ! 5 Output interpolations 594 ! 595 ! 5.a Set-up dimensions for target grid outputs and allocate file pointers 596 ! 597 CALL W3SETA(NG, 6, 6) 598 CALL W3DIMA(NG, 6, 6, .TRUE. ) 599 CALL W3DIMW(NG, 6, 6, .TRUE. ) 600 ALLOCATE(FIDOUT(NG)) 601 DO IG = 1,NG 602 FIDOUT(IG) = 30 + (IG-1)*10 603 END DO 604 ! 605 ! 5.b Initialize and read the first set of fields for base grids 606 ! 607 DO IG = 1,NG-1 608 CALL W3SETO( IG, 6, 6) 609 CALL W3IOGO('READ',FIDOUT(IG),IOTST,IG) 610 IF ( IOTST .NE. 0 ) THEN 611 GO TO 2111 612 ENDIF 613 END DO 614 ! 615 ! 5.c Setup the output flag options for the target grid 616 ! 617 WRITE (NDSO,910) 618 DO I = 1, NOGRP 619 OUTPTS(NG)%OUT1%FLOGRD(I,:) = OUTPTS(1)%OUT1%FLOGRD(I,:) 620 WRITE (NDSO,911) I 621 WRITE (NDSO, 912) (OUTPTS(NG)%OUT1%FLOGRD(I,J),J=1,NGRPP) 622 END DO 623 WRITE (NDSO, 913) 624 ! 625 ! 5.d Carry out interpolation in an infinite loop till appropriate 626 ! time steps are interpolated 627 ! Page 12 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 628 IOUT = 0 629 ! 630 DO 631 DTEST = DSEC21 ( WDATAS(1)%TIME, TOUT ) 632 IF ( DTEST .GT. 0. ) THEN 633 DO IG = 1,NG-1 634 CALL W3IOGO('READ',FIDOUT(IG),IOTST,IG) 635 IF ( IOTST .NE. 0 ) THEN 636 GO TO 2111 637 ENDIF 638 END DO 639 CYCLE 640 ENDIF 641 IF ( DTEST .LT. 0. ) THEN 642 CALL TICK21 ( TOUT , DTREQ ) 643 CYCLE 644 END IF 645 ! 646 IOUT = IOUT + 1 647 CALL STME21 ( TOUT, IDTIME) 648 WRITE (NDSO,914) IDTIME 649 ! 650 WDATAS(NG)%TIME = WDATAS(1)%TIME 651 CALL W3SETO(NG, 6, 6) 652 CALL W3SETG(NG, 6, 6) 653 CALL W3SETA(NG, 6, 6) 654 CALL W3SETW(NG, 6, 6) 655 ! 656 CALL W3EXGI ( NG-1, NSEA, NOSWLL_MIN ) 657 ! 658 CALL TICK21 ( TOUT , DTREQ ) 659 IF ( IOUT .GE. NOUT ) EXIT 660 END DO 661 GOTO 2222 662 ! 663 !--------------------------------------------------------------------------- 664 ! Escape locations read errors : 665 ! 666 2000 CONTINUE 667 WRITE (NDSE,1000) IERR 668 CALL EXTCDE ( 1 ) 669 ! 670 2001 CONTINUE 671 WRITE(NDSE,1001) 672 CALL EXTCDE ( 2 ) 673 ! 674 2002 CONTINUE 675 WRITE(NDSE,1002) IERR 676 CALL EXTCDE ( 3 ) 677 ! 678 2111 CONTINUE 679 WRITE(NDSO,950) 680 2222 CONTINUE 681 WRITE(NDSO,999) 682 ! 683 !--------------------------------------------------------------------------- 684 ! Formats Page 13 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 685 ! 686 900 FORMAT (/15X,' *** WAVEWATCH III Grid interpolation *** '/ & 687 15X,'==============================================='/) 688 901 FORMAT ( ' Comment character is ''',A,''''/) 689 902 FORMAT ( ' Time Information : '/ & 690 '---------------------------------------------'/ & 691 ' Starting Time : ',A/ & 692 ' Interval (in sec) : ',F10.2/ & 693 ' Number of requests : ',I4/ & 694 '---------------------------------------------') 695 903 FORMAT ( ' Number of grids (including output grid) =',I3/) 696 904 FORMAT ( /' Extension for grid ',I3,' is --> ',A10/) 697 905 FORMAT ( ' Grid Particulars are : '/ & 698 ' Dimensions = ',2(I5,2X)/ & 699 ' Grid Type = ',I3,' ==> 1 Rect, 2 Curv, 3 Unstr'/ & 700 ' Grid Closure = ',I3,' ==> 0 None, 1 Simple, 2 Tripolar') 701 906 FORMAT ( '/ *** ERROR IN WW3_GINT : '/ & 702 ' UNSTRUCTURED GRID SUPPORT NOT YET IMPLEMENTED'/ ) 703 907 FORMAT ( /' NOTE : The no. of swell partitions from input and', & 704 ' target grids do not match',/ & 705 ' The Min. no. of partitions from input grids =',I5/ & 706 ' The no. of partitions for target grid =',I5/ & 707 ' Interpolation will be limited to the smaller number of', & 708 ' the partitions, rest will be marked undefined') 709 908 FORMAT (/' Preparing interpolation weights for output grid ' / & 710 ' Total number of wet points for interpolation ',I6/) 711 909 FORMAT (/' *** WARNING !! No interpolation points at ',2(I5)/) 712 910 FORMAT (/' Interpolating fields .... '/) 713 911 FORMAT (' Output group ', I5) 714 912 FORMAT (' Output variable flags are -> ',7(5L2,1X)) 715 913 FORMAT ( ' --------------------------------------------------------') 716 914 FORMAT ( ' OUTPUT TIME : ',A) 717 950 FORMAT (/' End of file reached'/) 718 999 FORMAT (/15X,' *** End of Grid interpolation Routine *** '/ & 719 15X,'==============================================='/) 720 ! 721 1000 FORMAT (/' *** ERROR IN WAVEGRID_INTERP : '/ & 722 ' ERROR IN OPENING INPUT FILE'/ & 723 ' IOSTAT =',I5/) 724 1001 FORMAT (/' *** ERROR IN WAVEGRID_INTERP : '/ & 725 ' PREMATURE END IN INPUT FILE'/) 726 1002 FORMAT (/' *** ERROR IN WAVEGRID_INTERP : '/ & 727 ' ERROR IN READING FROM INPUT FILE'/ & 728 ' IOSTAT =',I5/) 729 ! 730 !/ 731 !/ Internal Subroutine 732 !/ 733 !/ Internal Subroutine W3EXGI ----------------------------------------------/ 734 !/ 735 CONTAINS 736 !/ -----------------------------------------------------------------------/ 737 SUBROUTINE W3EXGI ( NGRD, NSEA, NOSWLL_MIN ) 738 !/ +-----------------------------------+ 739 !/ | WAVEWATCH-III NOAA/NCEP | 740 !/ | A. Chawla | 741 !/ | FORTRAN 90 | Page 14 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 742 !/ | Last update : 21-Feb-2013 | 743 !/ +-----------------------------------+ 744 !/ 745 !/ 21-Feb-2013 : Modified to new output structure 746 !/ ( version 4.11 ) 747 !/ 748 ! 1. Purpose : 749 ! 750 ! Perform actual output of interpolated data. 751 ! 752 ! 3. Parameters : 753 ! 754 ! 4. Subroutines used : 755 ! 756 ! Name Type Module Description 757 ! ---------------------------------------------------------------- 758 ! W3IOGO Subr. W3IOGOMD Reading/writing raw gridded data file. 759 ! ---------------------------------------------------------------- 760 ! 761 ! 5. Called by : 762 ! 763 ! Subroutine it resides in 764 ! 765 ! 6. Error messages : 766 ! 767 ! None. 768 ! 769 ! 7. Remarks : 770 ! 771 ! 8. Structure : 772 ! 773 ! See source code. 774 ! 775 ! 9. Switches : 776 ! 777 ! 10. Source code : 778 ! 779 !/ -------------------------------------------------------------------------/ 780 ! USE W3ADATMD, ONLY : WADAT, WADATS, NADATA, DW, CX, CY, UA, UD, & 781 ! AS, WLV, HS, WLM, T0M1, THM, THS, FP0, THP0, FP1, & 782 ! THP1, PHS, PTP, PLP, PTH, PSI, PWS, PWST, & 783 ! PNR, DTDYN, FCUT, ABA, ABD, UBA, UBD, SXX, & 784 ! SXY, SYY, USERO 785 USE W3ADATMD 786 USE W3WDATMD 787 USE W3IOGOMD, ONLY: W3IOGO 788 !/ -------------------------------------------------------------------------/ 789 !/ Parameter List 790 !/ 791 INTEGER, INTENT(IN) :: NGRD, NSEA, NOSWLL_MIN 792 !/ 793 !/ Local Parameters 794 !/ 795 INTEGER :: ISEA, GSEA, IG, IGRID, IPTS, IGX, IGY, IX, & 796 IY, ISWLL, ICAP, IBED 797 INTEGER :: MAPINT, MAPICE, MAPDRY, MAPMSK, MAPLND, & 798 NMAPICE, NMAPDRY, NMAPMSK, NMAPLND, & Page 15 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 799 LMAPICE, LMAPDRY, LMAPMSK, LMAPLND, & 800 MAPICET, MAPDRYT, MAPMSKT, MAPLNDT 801 INTEGER :: SUMGRD 802 REAL :: VAR1, VAR2, VAR3, WT 803 ! Local group 1 variables 804 REAL :: DWAUX, CXAUX, CYAUX, UAAUX, UDAUX, ASAUX, & 805 WLVAUX, ICEAUX, BERGAUX, SED_D50AUX, & 806 SUMWT1(10) 807 ! Local group2 variables 808 REAL :: HSAUX, WLMAUX, T02AUX, T0M1AUX, T01AUX, & 809 FP0AUX, THMAUX1, THMAUX2, THSAUX, THP0AUX1, & 810 THP0AUX2, SUMWT2(10) 811 ! Local group4 variables 812 REAL :: PHSAUX(0:NOSWLL_MIN), PTPAUX(0:NOSWLL_MIN), & 813 PLPAUX(0:NOSWLL_MIN), PSIAUX(0:NOSWLL_MIN), & 814 PWSAUX(0:NOSWLL_MIN), PTHAUX1(0:NOSWLL_MIN),& 815 PWSTAUX, PTHAUX2(0:NOSWLL_MIN), & 816 SUMWT4(10,0:NOSWLL_MIN) 817 ! Local group 5 variables 818 REAL :: USTAUX1, USTAUX2, CHARNAUX, CGEAUX, & 819 PHIAWAUX, TAUWIXAUX, TAUWIYAUX, TAUWNXAUX, & 820 TAUWNYAUX, WHITECAPAUX(4), SUMWT5(10), & 821 SUMWTC(4) 822 ! Local group 6 variables 823 REAL :: SXXAUX, SYYAUX, SXYAUX, TAUOXAUX, TAUOYAUX, & 824 BHDAUX, PHIOCAUX, TUSXAUX, TUSYAUX, USSXAUX,& 825 USSYAUX, PRMSAUX, TPMSAUX, SUMWT6(10) 826 ! Local Group 7 variables 827 REAL :: ABAAUX, ABDAUX, UBAAUX, UBDAUX, PHIBBLAUX, & 828 BEDFORMSAUX(3), TAUBBLAUX(2), SUMWT7(10), & 829 SUMWTB(3) 830 LOGICAL :: ACTIVE 831 LOGICAL :: USEGRID(NGRD) 832 !/ 833 ! 834 !------------------------------------------------------------------- 835 ! 1. Preparations 836 ! 837 ! Group 1 Variables 838 ! 839 DW = UNDEF 840 CX = UNDEF 841 CY = UNDEF 842 UA = UNDEF 843 UD = UNDEF 844 AS = UNDEF 845 WLV = UNDEF 846 ICE = UNDEF 847 BERG = UNDEF 848 ! 849 ! Group 2 variables 850 ! 851 HS = UNDEF 852 WLM = UNDEF 853 T02 = UNDEF 854 T0M1 = UNDEF 855 T01 = UNDEF Page 16 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 856 FP0 = UNDEF 857 THM = UNDEF 858 THS = UNDEF 859 THP0 = UNDEF 860 ! 861 ! Group 4 variables 862 ! 863 PHS = UNDEF 864 PTP = UNDEF 865 PLP = UNDEF 866 PTH = UNDEF 867 PSI = UNDEF 868 PWS = UNDEF 869 PWST = UNDEF 870 PNR = UNDEF 871 ! 872 ! Group 5 variables 873 ! 874 UST = UNDEF 875 USTDIR = UNDEF 876 CHARN = UNDEF 877 CGE = UNDEF 878 PHIAW = UNDEF 879 TAUWIX = UNDEF 880 TAUWIY = UNDEF 881 TAUWNX = UNDEF 882 TAUWNY = UNDEF 883 WHITECAP = UNDEF 884 ! 885 ! Group 6 variables 886 ! 887 SXX = UNDEF 888 SXY = UNDEF 889 SYY = UNDEF 890 TAUOX = UNDEF 891 TAUOY = UNDEF 892 BHD = UNDEF 893 PHIOC = UNDEF 894 TUSX = UNDEF 895 TUSY = UNDEF 896 USSX = UNDEF 897 USSY = UNDEF 898 PRMS = UNDEF 899 TPMS = UNDEF 900 ! 901 ! Group 7 variables 902 ! 903 ABA = UNDEF 904 ABD = UNDEF 905 UBA = UNDEF 906 UBD = UNDEF 907 BEDFORMS = UNDEF 908 PHIBBL = UNDEF 909 TAUBBL = UNDEF 910 ! 911 !------------------------------------------------------------------- 912 ! 2. Loop through output points Page 17 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 913 ! 914 DO ISEA = 1, NSEA 915 ! 916 IX = MAPSF(ISEA,1) 917 IY = MAPSF(ISEA,2) 918 MAPICE = MOD(MAPST2(IY,IX),2) 919 MAPDRY = MOD(MAPST2(IY,IX)/2,2) 920 MAPLND = MOD(MAPST2(IY,IX)/4,2) 921 MAPMSK = MOD(MAPST2(IY,IX)/8,2) 922 MAPINT = MOD(MAPST2(IY,IX)/16,2) 923 MAPST2(IY,IX) = MAPST2(IY,IX) - MAPICE - 2*MAPDRY - 4*MAPLND & 924 - 8*MAPMSK 925 ACTIVE = (MAPICE .NE. 1 .AND. MAPDRY .NE. 1) 926 ! 927 IF ( MAPINT .EQ. 0 ) THEN 928 ! 929 ! Initial loop to determine status map 930 ! Initialize by setting it to be ice free and wet 931 ! 932 MAPICE = 0 933 MAPDRY = 0 934 MAPMSK = 0 935 MAPLND = 0 936 ACTIVE = .TRUE. 937 MAPSTA(IY,IX) = ABS ( MAPSTA(IY,IX) ) 938 SUMGRD = 0 939 DO IG = 1,GR_INTS(ISEA)%NGRDS 940 IGRID = GR_INTS(ISEA)%GDID(IG) 941 NMAPICE = 0 942 NMAPDRY = 0 943 NMAPLND = 0 944 NMAPMSK = 0 945 MAPICET = 0 946 MAPDRYT = 0 947 MAPLNDT = 0 948 MAPMSKT = 0 949 DO IPTS = 1,GR_INTS(ISEA)%IND_WTS(IG)%NP 950 IGX = GR_INTS(ISEA)%IND_WTS(IG)%IP(IPTS) 951 IGY = GR_INTS(ISEA)%IND_WTS(IG)%JP(IPTS) 952 LMAPICE = MOD ( GRIDS(IGRID)%MAPST2(IGY,IGX),2 ) 953 LMAPDRY = MOD ( GRIDS(IGRID)%MAPST2(IGY,IGX)/2,2 ) 954 LMAPLND = MOD ( GRIDS(IGRID)%MAPST2(IGY,IGX)/4,2 ) 955 LMAPMSK = MOD ( GRIDS(IGRID)%MAPST2(IGY,IGX)/8,2 ) 956 IF ( LMAPICE .EQ. 1 ) NMAPICE = NMAPICE + 1 957 IF ( LMAPDRY .EQ. 1 ) NMAPDRY = NMAPDRY + 1 958 IF ( LMAPLND .EQ. 1 ) NMAPLND = NMAPLND + 1 959 IF ( LMAPMSK .EQ. 1 ) NMAPMSK = NMAPMSK + 1 960 END DO 961 NMAPICE = NMAPICE*100/GR_INTS(ISEA)%IND_WTS(IG)%NP 962 NMAPDRY = NMAPDRY*100/GR_INTS(ISEA)%IND_WTS(IG)%NP 963 NMAPLND = NMAPLND*100/GR_INTS(ISEA)%IND_WTS(IG)%NP 964 NMAPMSK = NMAPMSK*100/GR_INTS(ISEA)%IND_WTS(IG)%NP 965 IF ( NMAPICE .GT. 50 ) MAPICET = 1 966 IF ( NMAPDRY .GT. 50 ) MAPDRYT = 1 967 IF ( NMAPLND .GT. 50 ) MAPLNDT = 1 968 IF ( NMAPMSK .GT. 50 ) MAPMSKT = 1 969 ACTIVE = (MAPICET .NE. 1 .AND. MAPDRYT .NE. 1 .AND. & Page 18 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 970 MAPLNDT .NE. 1 .AND. MAPMSKT .NE. 1) 971 IF ( ACTIVE ) THEN 972 USEGRID(IG) = .TRUE. 973 SUMGRD = SUMGRD+1 974 MAPICE = MAPICET 975 MAPDRY = MAPDRYT 976 MAPLND = MAPLNDT 977 MAPMSK = MAPMSKT 978 ELSE 979 USEGRID(IG) = .FALSE. 980 END IF 981 END DO 982 IF ( SUMGRD .EQ. 0 ) THEN 983 MAPICE = MAPICET 984 MAPDRY = MAPDRYT 985 MAPLND = MAPLNDT 986 MAPMSK = MAPMSKT 987 END IF 988 ! 989 ! Reset the status map 990 ! 991 MAPST2(IY,IX) = MAPST2(IY,IX) + MAPICE + 2*MAPDRY + 4*MAPLND + & 992 8*MAPMSK 993 ACTIVE = (MAPICE .NE. 1 .AND. MAPDRY .NE. 1 .AND. MAPLND .NE. 1 & 994 .AND. MAPMSK .NE. 1) 995 IF ( .NOT. ACTIVE ) MAPSTA(IY,IX) = -ABS ( MAPSTA(IY,IX) ) 996 ! 997 ! Second loop to do the actual interpolation 998 ! 999 DO IG = 1,GR_INTS(ISEA)%NGRDS 1000 ! 1001 IF ( USEGRID(IG) ) THEN 1002 ! 1003 IGRID = GR_INTS(ISEA)%GDID(IG) 1004 ! 1005 ! Initialize temporary variables used 1006 ! 1007 SUMWT = 0.0 1008 ! Group1 variables 1009 ! 1010 DWAUX = UNDEF 1011 CXAUX = UNDEF 1012 CYAUX = UNDEF 1013 UAAUX = UNDEF 1014 UDAUX = UNDEF 1015 ASAUX = UNDEF 1016 WLVAUX = UNDEF 1017 ICEAUX = UNDEF 1018 BERGAUX = UNDEF 1019 SED_D50AUX = UNDEF 1020 SUMWT1 = 0 1021 ! 1022 ! Group 2 variables 1023 ! 1024 HSAUX = UNDEF 1025 WLMAUX = UNDEF 1026 T02AUX = UNDEF Page 19 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 1027 T0M1AUX = UNDEF 1028 T01AUX = UNDEF 1029 FP0AUX = UNDEF 1030 THMAUX1 = UNDEF 1031 THMAUX2 = UNDEF 1032 THSAUX = UNDEF 1033 THP0AUX1 = UNDEF 1034 THP0AUX2 = UNDEF 1035 SUMWT2 = 0 1036 ! 1037 ! Group 4 variables 1038 ! 1039 PHSAUX = UNDEF 1040 PTPAUX = UNDEF 1041 PLPAUX = UNDEF 1042 PTHAUX1 = UNDEF 1043 PTHAUX2 = UNDEF 1044 PSIAUX = UNDEF 1045 PWSAUX = UNDEF 1046 PWSTAUX = UNDEF 1047 SUMWT4 = 0 1048 ! 1049 ! Group 5 variables 1050 ! 1051 USTAUX1 = UNDEF 1052 USTAUX2 = UNDEF 1053 CHARNAUX = UNDEF 1054 CGEAUX = UNDEF 1055 PHIAWAUX = UNDEF 1056 TAUWIXAUX = UNDEF 1057 TAUWIYAUX = UNDEF 1058 TAUWNXAUX = UNDEF 1059 TAUWNYAUX = UNDEF 1060 WHITECAPAUX = UNDEF 1061 SUMWT5 = 0 1062 SUMWTC = 0 1063 ! 1064 ! Group 6 variables 1065 ! 1066 SXXAUX = UNDEF 1067 SXYAUX = UNDEF 1068 SYYAUX = UNDEF 1069 TAUOXAUX = UNDEF 1070 TAUOYAUX = UNDEF 1071 BHDAUX = UNDEF 1072 PHIOCAUX = UNDEF 1073 TUSXAUX = UNDEF 1074 TUSYAUX = UNDEF 1075 USSXAUX = UNDEF 1076 USSYAUX = UNDEF 1077 PRMSAUX = UNDEF 1078 TPMSAUX = UNDEF 1079 SUMWT6 = 0 1080 ! 1081 ! Group 7 variables 1082 ! 1083 ABAAUX = UNDEF Page 20 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 1084 ABDAUX = UNDEF 1085 UBAAUX = UNDEF 1086 UBDAUX = UNDEF 1087 BEDFORMSAUX = UNDEF 1088 PHIBBLAUX = UNDEF 1089 TAUBBLAUX = UNDEF 1090 SUMWT7 = 0 1091 SUMWTB = 0 1092 ! 1093 ! Loop through the points per grid to obtain interpolated values 1094 ! 1095 DO IPTS = 1,GR_INTS(ISEA)%IND_WTS(IG)%NP 1096 IGX = GR_INTS(ISEA)%IND_WTS(IG)%IP(IPTS) 1097 IGY = GR_INTS(ISEA)%IND_WTS(IG)%JP(IPTS) 1098 WT = GR_INTS(ISEA)%IND_WTS(IG)%WT(IPTS) 1099 GSEA = GRIDS(IGRID)%MAPFS(IGY,IGX) 1100 ! 1101 IF ( FLOGRD(1,1) .AND. ACTIVE ) THEN 1102 IF ( WADATS(IGRID)%DW(GSEA) .NE. UNDEF ) THEN 1103 SUMWT1(1) = SUMWT1(1) + WT 1104 IF ( DWAUX .EQ. UNDEF ) THEN 1105 DWAUX = WADATS(IGRID)%DW(GSEA)*WT 1106 ELSE 1107 DWAUX = DWAUX + WADATS(IGRID)%DW(GSEA)*WT 1108 END IF 1109 END IF 1110 END IF 1111 ! 1112 IF ( FLOGRD(1,2) .AND. ACTIVE ) THEN 1113 IF ( WADATS(IGRID)%CX(GSEA) .NE. UNDEF ) THEN 1114 SUMWT1(2) = SUMWT1(2) + WT 1115 IF ( CXAUX .EQ. UNDEF ) THEN 1116 CXAUX = WADATS(IGRID)%CX(GSEA)*WT 1117 CYAUX = WADATS(IGRID)%CY(GSEA)*WT 1118 ELSE 1119 CXAUX = CXAUX + WADATS(IGRID)%CX(GSEA)*WT 1120 CYAUX = CYAUX + WADATS(IGRID)%CY(GSEA)*WT 1121 END IF 1122 END IF 1123 END IF 1124 ! 1125 IF ( FLOGRD(1,3) ) THEN 1126 IF ( WADATS(IGRID)%UA(GSEA) .NE. UNDEF ) THEN 1127 SUMWT1(3) = SUMWT1(3) + WT 1128 IF ( UAAUX .EQ. UNDEF ) THEN 1129 UAAUX = WADATS(IGRID)%UA(GSEA)*WT 1130 UDAUX = WADATS(IGRID)%UD(GSEA)*WT 1131 ELSE 1132 UAAUX = UAAUX + WADATS(IGRID)%UA(GSEA)*WT 1133 UDAUX = UDAUX + WADATS(IGRID)%UD(GSEA)*WT 1134 END IF 1135 END IF 1136 END IF 1137 ! 1138 IF ( FLOGRD(1,4) .AND. ACTIVE ) THEN 1139 IF ( WADATS(IGRID)%AS(GSEA) .NE. UNDEF ) THEN 1140 SUMWT1(4) = SUMWT1(4) + WT Page 21 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 1141 IF ( ASAUX .EQ. UNDEF ) THEN 1142 ASAUX = WADATS(IGRID)%AS(GSEA)*WT 1143 ELSE 1144 ASAUX = ASAUX + WADATS(IGRID)%AS(GSEA)*WT 1145 END IF 1146 END IF 1147 END IF 1148 ! 1149 IF ( FLOGRD(1,5) .AND. ACTIVE ) THEN 1150 IF ( WDATAS(IGRID)%WLV(GSEA) .NE. UNDEF ) THEN 1151 SUMWT1(5) = SUMWT1(5) + WT 1152 IF ( WLVAUX .EQ. UNDEF ) THEN 1153 WLVAUX = WDATAS(IGRID)%WLV(GSEA)*WT 1154 ELSE 1155 WLVAUX = WLVAUX + WDATAS(IGRID)%WLV(GSEA)*WT 1156 END IF 1157 END IF 1158 END IF 1159 ! 1160 IF ( FLOGRD(1,6) ) THEN 1161 IF ( WDATAS(IGRID)%ICE(GSEA) .NE. UNDEF ) THEN 1162 SUMWT1(6) = SUMWT1(6) + WT 1163 IF ( ICEAUX .EQ. UNDEF ) THEN 1164 ICEAUX = WDATAS(IGRID)%ICE(GSEA)*WT 1165 ELSE 1166 ICEAUX = ICEAUX + WDATAS(IGRID)%ICE(GSEA)*WT 1167 END IF 1168 END IF 1169 END IF 1170 ! 1171 IF ( FLOGRD(1,7) .AND. ACTIVE ) THEN 1172 IF ( WDATAS(IGRID)%BERG(GSEA) .NE. UNDEF ) THEN 1173 SUMWT1(7) = SUMWT1(7) + WT 1174 IF ( BERGAUX .EQ. UNDEF ) THEN 1175 BERGAUX = WDATAS(IGRID)%BERG(GSEA)*WT 1176 ELSE 1177 BERGAUX = BERGAUX + WDATAS(IGRID)%BERG(GSEA)*WT 1178 END IF 1179 END IF 1180 END IF 1181 ! 1182 IF ( FLOGRD(2,1) .AND. ACTIVE ) THEN 1183 IF ( WADATS(IGRID)%HS(GSEA) .NE. UNDEF ) THEN 1184 SUMWT2(1) = SUMWT2(1) + WT 1185 IF ( HSAUX .EQ. UNDEF ) THEN 1186 HSAUX = WADATS(IGRID)%HS(GSEA)*WT 1187 ELSE 1188 HSAUX = HSAUX + WADATS(IGRID)%HS(GSEA)*WT 1189 END IF 1190 END IF 1191 END IF 1192 ! 1193 IF ( FLOGRD(2,2) .AND. ACTIVE ) THEN 1194 IF ( WADATS(IGRID)%WLM(GSEA) .NE. UNDEF ) THEN 1195 SUMWT2(2) = SUMWT2(2) + WT 1196 IF ( WLMAUX .EQ. UNDEF ) THEN 1197 WLMAUX = WADATS(IGRID)%WLM(GSEA)*WT Page 22 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 1198 ELSE 1199 WLMAUX = WLMAUX + WADATS(IGRID)%WLM(GSEA)*WT 1200 END IF 1201 END IF 1202 END IF 1203 ! 1204 IF ( FLOGRD(2,3) .AND. ACTIVE ) THEN 1205 IF ( WADATS(IGRID)%T02(GSEA) .NE. UNDEF ) THEN 1206 SUMWT2(3) = SUMWT2(3) + WT 1207 IF ( T02AUX .EQ. UNDEF ) THEN 1208 T02AUX = WADATS(IGRID)%T02(GSEA)*WT 1209 ELSE 1210 T02AUX = T02AUX + WADATS(IGRID)%T02(GSEA)*WT 1211 END IF 1212 END IF 1213 END IF 1214 ! 1215 IF ( FLOGRD(2,4) .AND. ACTIVE ) THEN 1216 IF ( WADATS(IGRID)%T0M1(GSEA) .NE. UNDEF ) THEN 1217 SUMWT2(4) = SUMWT2(4) + WT 1218 IF ( T0M1AUX .EQ. UNDEF ) THEN 1219 T0M1AUX = WADATS(IGRID)%T0M1(GSEA)*WT 1220 ELSE 1221 T0M1AUX = T0M1AUX + WADATS(IGRID)%T0M1(GSEA)*WT 1222 END IF 1223 END IF 1224 END IF 1225 ! 1226 IF ( FLOGRD(2,5) .AND. ACTIVE ) THEN 1227 IF ( WADATS(IGRID)%T01(GSEA) .NE. UNDEF ) THEN 1228 SUMWT2(5) = SUMWT2(5) + WT 1229 IF ( T01AUX .EQ. UNDEF ) THEN 1230 T01AUX = WADATS(IGRID)%T01(GSEA)*WT 1231 ELSE 1232 T01AUX = T01AUX + WADATS(IGRID)%T01(GSEA)*WT 1233 END IF 1234 END IF 1235 END IF 1236 ! 1237 IF ( FLOGRD(2,6) .AND. ACTIVE ) THEN 1238 IF ( WADATS(IGRID)%FP0(GSEA) .NE. UNDEF ) THEN 1239 SUMWT2(6) = SUMWT2(6) + WT 1240 IF ( FP0AUX .EQ. UNDEF ) THEN 1241 FP0AUX = WADATS(IGRID)%FP0(GSEA)*WT 1242 ELSE 1243 FP0AUX = FP0AUX + WADATS(IGRID)%FP0(GSEA)*WT 1244 END IF 1245 END IF 1246 END IF 1247 ! 1248 IF ( FLOGRD(2,7) .AND. ACTIVE ) THEN 1249 IF ( WADATS(IGRID)%THM(GSEA) .NE. UNDEF ) THEN 1250 SUMWT2(7) = SUMWT2(7) + WT 1251 IF ( THMAUX1 .EQ. UNDEF ) THEN 1252 THMAUX1 = COS ( WADATS(IGRID)%THM(GSEA) )*WT 1253 THMAUX2 = SIN ( WADATS(IGRID)%THM(GSEA) )*WT 1254 ELSE Page 23 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 1255 THMAUX1 = THMAUX1 + COS ( WADATS(IGRID)%THM(GSEA) )*WT 1256 THMAUX2 = THMAUX2 + SIN ( WADATS(IGRID)%THM(GSEA) )*WT 1257 END IF 1258 END IF 1259 END IF 1260 ! 1261 IF ( FLOGRD(2,8) .AND. ACTIVE ) THEN 1262 IF ( WADATS(IGRID)%THS(GSEA) .NE. UNDEF ) THEN 1263 SUMWT2(8) = SUMWT2(8) + WT 1264 IF ( THSAUX .EQ. UNDEF ) THEN 1265 THSAUX = WADATS(IGRID)%THS(GSEA)*WT 1266 ELSE 1267 THSAUX = THSAUX + WADATS(IGRID)%THS(GSEA)*WT 1268 END IF 1269 END IF 1270 END IF 1271 ! 1272 IF ( FLOGRD(2,9) .AND. ACTIVE ) THEN 1273 IF ( WADATS(IGRID)%THP0(GSEA) .NE. UNDEF ) THEN 1274 SUMWT2(9) = SUMWT2(9) + WT 1275 IF ( THP0AUX1 .EQ. UNDEF ) THEN 1276 THP0AUX1 = COS ( WADATS(IGRID)%THP0(GSEA) )*WT 1277 THP0AUX2 = SIN ( WADATS(IGRID)%THP0(GSEA) )*WT 1278 ELSE 1279 THP0AUX1 = THP0AUX1 + & 1280 COS ( WADATS(IGRID)%THP0(GSEA) )*WT 1281 THP0AUX2 = THP0AUX2 + & 1282 SIN ( WADATS(IGRID)%THP0(GSEA) )*WT 1283 END IF 1284 END IF 1285 END IF 1286 ! 1287 DO ISWLL = 0, NOSWLL_MIN 1288 ! 1289 IF ( FLOGRD(4,1) .AND. ACTIVE ) THEN 1290 IF ( WADATS(IGRID)%PHS(GSEA,ISWLL) .NE. UNDEF ) THEN 1291 SUMWT4(1,ISWLL) = SUMWT4(1,ISWLL) + WT 1292 IF ( PHSAUX(ISWLL) .EQ. UNDEF ) THEN 1293 PHSAUX(ISWLL) = WADATS(IGRID)%PHS(GSEA,ISWLL)*WT 1294 ELSE 1295 PHSAUX(ISWLL) = PHSAUX(ISWLL) + & 1296 WADATS(IGRID)%PHS(GSEA,ISWLL)*WT 1297 END IF 1298 END IF 1299 END IF 1300 ! 1301 IF ( FLOGRD(4,2) .AND. ACTIVE ) THEN 1302 IF ( WADATS(IGRID)%PTP(GSEA,ISWLL) .NE. UNDEF ) THEN 1303 SUMWT4(2,ISWLL) = SUMWT4(2,ISWLL) + WT 1304 IF ( PTPAUX(ISWLL) .EQ. UNDEF ) THEN 1305 PTPAUX(ISWLL) = WADATS(IGRID)%PTP(GSEA,ISWLL)*WT 1306 ELSE 1307 PTPAUX(ISWLL) = PTPAUX(ISWLL) + & 1308 WADATS(IGRID)%PTP(GSEA,ISWLL)*WT 1309 END IF 1310 END IF 1311 END IF Page 24 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 1312 ! 1313 IF ( FLOGRD(4,3) .AND. ACTIVE ) THEN 1314 IF ( WADATS(IGRID)%PLP(GSEA,ISWLL) .NE. UNDEF ) THEN 1315 SUMWT4(3,ISWLL) = SUMWT4(3,ISWLL) + WT 1316 IF ( PLPAUX(ISWLL) .EQ. UNDEF ) THEN 1317 PLPAUX(ISWLL) = WADATS(IGRID)%PLP(GSEA,ISWLL)*WT 1318 ELSE 1319 PLPAUX(ISWLL) = PLPAUX(ISWLL) + & 1320 WADATS(IGRID)%PLP(GSEA,ISWLL)*WT 1321 END IF 1322 END IF 1323 END IF 1324 ! 1325 IF ( FLOGRD(4,4) .AND. ACTIVE ) THEN 1326 IF ( WADATS(IGRID)%PTH(GSEA,ISWLL) .NE. UNDEF ) THEN 1327 SUMWT4(4,ISWLL) = SUMWT4(4,ISWLL) + WT 1328 IF ( PTHAUX1(ISWLL) .EQ. UNDEF ) THEN 1329 PTHAUX1(ISWLL) = & 1330 COS ( WADATS(IGRID)%PTH(GSEA,ISWLL) )*WT 1331 PTHAUX2(ISWLL) = & 1332 SIN ( WADATS(IGRID)%PTH(GSEA,ISWLL) )*WT 1333 ELSE 1334 PTHAUX1(ISWLL) = PTHAUX1(ISWLL) + & 1335 COS ( WADATS(IGRID)%PTH(GSEA,ISWLL) )*WT 1336 PTHAUX2(ISWLL) = PTHAUX2(ISWLL) + & 1337 SIN ( WADATS(IGRID)%PTH(GSEA,ISWLL) )*WT 1338 END IF 1339 END IF 1340 END IF 1341 ! 1342 IF ( FLOGRD(4,5) .AND. ACTIVE ) THEN 1343 IF ( WADATS(IGRID)%PSI(GSEA,ISWLL) .NE. UNDEF ) THEN 1344 SUMWT4(5,ISWLL) = SUMWT4(5,ISWLL) + WT 1345 IF ( PSIAUX(ISWLL) .EQ. UNDEF ) THEN 1346 PSIAUX(ISWLL) = WADATS(IGRID)%PSI(GSEA,ISWLL)*WT 1347 ELSE 1348 PSIAUX(ISWLL) = PSIAUX(ISWLL) + & 1349 WADATS(IGRID)%PSI(GSEA,ISWLL)*WT 1350 END IF 1351 END IF 1352 END IF 1353 ! 1354 IF ( FLOGRD(4,6) .AND. ACTIVE ) THEN 1355 IF ( WADATS(IGRID)%PWS(GSEA,ISWLL) .NE. UNDEF ) THEN 1356 SUMWT4(6,ISWLL) = SUMWT4(6,ISWLL) + WT 1357 IF ( PWSAUX(ISWLL) .EQ. UNDEF ) THEN 1358 PWSAUX(ISWLL) = WADATS(IGRID)%PWS(GSEA,ISWLL)*WT 1359 ELSE 1360 PWSAUX(ISWLL) = PWSAUX(ISWLL) + & 1361 WADATS(IGRID)%PWS(GSEA,ISWLL)*WT 1362 END IF 1363 END IF 1364 END IF 1365 ! 1366 END DO 1367 ! 1368 IF ( FLOGRD(4,7) .AND. ACTIVE ) THEN Page 25 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 1369 IF ( WADATS(IGRID)%PWST(GSEA) .NE. UNDEF ) THEN 1370 SUMWT4(7,0) = SUMWT4(7,0) + WT 1371 IF ( PWSTAUX .EQ. UNDEF ) THEN 1372 PWSTAUX = WADATS(IGRID)%PWST(GSEA)*WT 1373 ELSE 1374 PWSTAUX = PWSTAUX + WADATS(IGRID)%PWST(GSEA)*WT 1375 END IF 1376 END IF 1377 END IF 1378 ! 1379 IF ( FLOGRD(5,1) ) THEN 1380 IF ( WDATAS(IGRID)%UST(GSEA) .NE. UNDEF ) THEN 1381 SUMWT5(1) = SUMWT5(1) + WT 1382 IF ( USTAUX1 .EQ. UNDEF ) THEN 1383 USTAUX1 = WDATAS(IGRID)%UST(GSEA)*WT 1384 USTAUX2 = WDATAS(IGRID)%USTDIR(GSEA)*WT 1385 ELSE 1386 USTAUX1 = USTAUX1 + WDATAS(IGRID)%UST(GSEA)*WT 1387 USTAUX2 = USTAUX2 + WDATAS(IGRID)%USTDIR(GSEA)*WT 1388 END IF 1389 END IF 1390 END IF 1391 ! 1392 IF ( FLOGRD(5,2) .AND. ACTIVE ) THEN 1393 IF ( WADATS(IGRID)%CHARN(GSEA) .NE. UNDEF ) THEN 1394 SUMWT5(2) = SUMWT5(2) + WT 1395 IF ( CHARNAUX .EQ. UNDEF ) THEN 1396 CHARNAUX = WADATS(IGRID)%CHARN(GSEA)*WT 1397 ELSE 1398 CHARNAUX = CHARNAUX + WADATS(IGRID)%CHARN(GSEA)*WT 1399 END IF 1400 END IF 1401 END IF 1402 ! 1403 IF ( FLOGRD(5,3) .AND. ACTIVE ) THEN 1404 IF ( WADATS(IGRID)%CGE(GSEA) .NE. UNDEF ) THEN 1405 SUMWT5(3) = SUMWT5(3) + WT 1406 IF ( CGEAUX .EQ. UNDEF ) THEN 1407 CGEAUX = WADATS(IGRID)%CGE(GSEA)*WT 1408 ELSE 1409 CGEAUX = CGEAUX + WADATS(IGRID)%CGE(GSEA)*WT 1410 END IF 1411 END IF 1412 END IF 1413 ! 1414 IF ( FLOGRD(5,4) .AND. ACTIVE ) THEN 1415 IF ( WADATS(IGRID)%PHIAW(GSEA) .NE. UNDEF ) THEN 1416 SUMWT5(4) = SUMWT5(4) + WT 1417 IF ( PHIAWAUX .EQ. UNDEF ) THEN 1418 PHIAWAUX = WADATS(IGRID)%PHIAW(GSEA)*WT 1419 ELSE 1420 PHIAWAUX = PHIAWAUX + WADATS(IGRID)%PHIAW(GSEA)*WT 1421 END IF 1422 END IF 1423 END IF 1424 ! 1425 IF ( FLOGRD(5,5) .AND. ACTIVE ) THEN Page 26 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 1426 IF ( WADATS(IGRID)%TAUWIX(GSEA) .NE. UNDEF ) THEN 1427 SUMWT5(5) = SUMWT5(5) + WT 1428 IF ( TAUWIXAUX .EQ. UNDEF ) THEN 1429 TAUWIXAUX = WADATS(IGRID)%TAUWIX(GSEA)*WT 1430 TAUWIYAUX = WADATS(IGRID)%TAUWIY(GSEA)*WT 1431 ELSE 1432 TAUWIXAUX = TAUWIXAUX + WADATS(IGRID)%TAUWIX(GSEA)*WT 1433 TAUWIYAUX = TAUWIYAUX + WADATS(IGRID)%TAUWIY(GSEA)*WT 1434 END IF 1435 END IF 1436 END IF 1437 ! 1438 IF ( FLOGRD(5,6) .AND. ACTIVE ) THEN 1439 IF ( WADATS(IGRID)%TAUWNX(GSEA) .NE. UNDEF ) THEN 1440 SUMWT5(6) = SUMWT5(6) + WT 1441 IF ( TAUWNXAUX .EQ. UNDEF ) THEN 1442 TAUWNXAUX = WADATS(IGRID)%TAUWNX(GSEA)*WT 1443 TAUWNYAUX = WADATS(IGRID)%TAUWNY(GSEA)*WT 1444 ELSE 1445 TAUWNXAUX = TAUWNXAUX + WADATS(IGRID)%TAUWNX(GSEA)*WT 1446 TAUWNYAUX = TAUWNYAUX + WADATS(IGRID)%TAUWNY(GSEA)*WT 1447 END IF 1448 END IF 1449 END IF 1450 ! 1451 DO ICAP = 1,4 1452 ! 1453 IF ( FLOGRD(5,ICAP+6) .AND. ACTIVE ) THEN 1454 IF ( WADATS(IGRID)%WHITECAP(GSEA,ICAP) .NE. UNDEF ) THEN 1455 SUMWTC(ICAP) = SUMWTC(ICAP) + WT 1456 IF ( WHITECAPAUX(ICAP) .EQ. UNDEF ) THEN 1457 WHITECAPAUX(ICAP) = WADATS(IGRID)%WHITECAP(GSEA,ICAP)& 1458 *WT 1459 ELSE 1460 WHITECAPAUX(ICAP) = WHITECAPAUX(ICAP) + & 1461 WADATS(IGRID)%WHITECAP(GSEA,ICAP)*WT 1462 END IF 1463 END IF 1464 END IF 1465 ! 1466 END DO 1467 ! 1468 IF ( FLOGRD(6,1) .AND. ACTIVE ) THEN 1469 IF ( WADATS(IGRID)%SXX(GSEA) .NE. UNDEF ) THEN 1470 SUMWT6(1) = SUMWT6(1) + WT 1471 IF ( SXXAUX .EQ. UNDEF ) THEN 1472 SXXAUX = WADATS(IGRID)%SXX(GSEA)*WT 1473 SXYAUX = WADATS(IGRID)%SXY(GSEA)*WT 1474 SYYAUX = WADATS(IGRID)%SYY(GSEA)*WT 1475 ELSE 1476 SXXAUX = SXXAUX + WADATS(IGRID)%SXX(GSEA)*WT 1477 SXYAUX = SXYAUX + WADATS(IGRID)%SXY(GSEA)*WT 1478 SYYAUX = SYYAUX + WADATS(IGRID)%SYY(GSEA)*WT 1479 END IF 1480 END IF 1481 END IF 1482 ! Page 27 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 1483 IF ( FLOGRD(6,2) .AND. ACTIVE ) THEN 1484 IF ( WADATS(IGRID)%TAUOX(GSEA) .NE. UNDEF ) THEN 1485 SUMWT6(2) = SUMWT6(2) + WT 1486 IF ( TAUOXAUX .EQ. UNDEF ) THEN 1487 TAUOXAUX = WADATS(IGRID)%TAUOX(GSEA)*WT 1488 TAUOYAUX = WADATS(IGRID)%TAUOY(GSEA)*WT 1489 ELSE 1490 TAUOXAUX = TAUOXAUX + WADATS(IGRID)%TAUOX(GSEA)*WT 1491 TAUOYAUX = TAUOYAUX + WADATS(IGRID)%TAUOY(GSEA)*WT 1492 END IF 1493 END IF 1494 END IF 1495 ! 1496 IF ( FLOGRD(6,3) .AND. ACTIVE ) THEN 1497 IF ( WADATS(IGRID)%BHD(GSEA) .NE. UNDEF ) THEN 1498 SUMWT6(3) = SUMWT6(3) + WT 1499 IF ( BHDAUX .EQ. UNDEF ) THEN 1500 BHDAUX = WADATS(IGRID)%BHD(GSEA)*WT 1501 ELSE 1502 BHDAUX = BHDAUX + WADATS(IGRID)%BHD(GSEA)*WT 1503 END IF 1504 END IF 1505 END IF 1506 ! 1507 IF ( FLOGRD(6,4) .AND. ACTIVE ) THEN 1508 IF ( WADATS(IGRID)%PHIOC(GSEA) .NE. UNDEF ) THEN 1509 SUMWT6(4) = SUMWT6(4) + WT 1510 IF ( PHIOCAUX .EQ. UNDEF ) THEN 1511 PHIOCAUX = WADATS(IGRID)%PHIOC(GSEA)*WT 1512 ELSE 1513 PHIOCAUX = PHIOCAUX + WADATS(IGRID)%PHIOC(GSEA)*WT 1514 END IF 1515 END IF 1516 END IF 1517 ! 1518 IF ( FLOGRD(6,5) .AND. ACTIVE ) THEN 1519 IF ( WADATS(IGRID)%TUSX(GSEA) .NE. UNDEF ) THEN 1520 SUMWT6(5) = SUMWT6(5) + WT 1521 IF ( TUSXAUX .EQ. UNDEF ) THEN 1522 TUSXAUX = WADATS(IGRID)%TUSX(GSEA)*WT 1523 TUSYAUX = WADATS(IGRID)%TUSY(GSEA)*WT 1524 ELSE 1525 TUSXAUX = TUSXAUX + WADATS(IGRID)%TUSX(GSEA)*WT 1526 TUSYAUX = TUSYAUX + WADATS(IGRID)%TUSY(GSEA)*WT 1527 END IF 1528 END IF 1529 END IF 1530 ! 1531 IF ( FLOGRD(6,6) .AND. ACTIVE ) THEN 1532 IF ( WADATS(IGRID)%USSX(GSEA) .NE. UNDEF ) THEN 1533 SUMWT6(6) = SUMWT6(6) + WT 1534 IF ( USSXAUX .EQ. UNDEF ) THEN 1535 USSXAUX = WADATS(IGRID)%USSX(GSEA)*WT 1536 USSYAUX = WADATS(IGRID)%USSY(GSEA)*WT 1537 ELSE 1538 USSXAUX = USSXAUX + WADATS(IGRID)%USSX(GSEA)*WT 1539 USSYAUX = USSYAUX + WADATS(IGRID)%USSY(GSEA)*WT Page 28 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 1540 END IF 1541 END IF 1542 END IF 1543 ! 1544 IF ( FLOGRD(6,7) .AND. ACTIVE ) THEN 1545 IF ( WADATS(IGRID)%PRMS(GSEA) .NE. UNDEF ) THEN 1546 SUMWT6(7) = SUMWT6(7) + WT 1547 IF ( PRMSAUX .EQ. UNDEF ) THEN 1548 PRMSAUX = WADATS(IGRID)%PRMS(GSEA)*WT 1549 TPMSAUX = WADATS(IGRID)%TPMS(GSEA)*WT 1550 ELSE 1551 PRMSAUX = PRMSAUX + WADATS(IGRID)%PRMS(GSEA)*WT 1552 TPMSAUX = TPMSAUX + WADATS(IGRID)%TPMS(GSEA)*WT 1553 END IF 1554 END IF 1555 END IF 1556 ! 1557 IF ( FLOGRD(7,1) .AND. ACTIVE ) THEN 1558 IF ( WADATS(IGRID)%ABA(GSEA) .NE. UNDEF ) THEN 1559 SUMWT7(1) = SUMWT7(1) + WT 1560 IF ( ABAAUX .EQ. UNDEF ) THEN 1561 ABAAUX = WADATS(IGRID)%ABA(GSEA)*WT 1562 ABDAUX = WADATS(IGRID)%ABD(GSEA)*WT 1563 ELSE 1564 ABAAUX = ABAAUX + WADATS(IGRID)%ABA(GSEA)*WT 1565 ABDAUX = ABDAUX + WADATS(IGRID)%ABD(GSEA)*WT 1566 END IF 1567 END IF 1568 END IF 1569 ! 1570 IF ( FLOGRD(7,2) .AND. ACTIVE ) THEN 1571 IF ( WADATS(IGRID)%ABA(GSEA) .NE. UNDEF ) THEN 1572 SUMWT7(2) = SUMWT7(2) + WT 1573 IF ( UBAAUX .EQ. UNDEF ) THEN 1574 UBAAUX = WADATS(IGRID)%UBA(GSEA)*WT 1575 UBDAUX = WADATS(IGRID)%UBD(GSEA)*WT 1576 ELSE 1577 UBAAUX = UBAAUX + WADATS(IGRID)%UBA(GSEA)*WT 1578 UBDAUX = UBDAUX + WADATS(IGRID)%UBD(GSEA)*WT 1579 END IF 1580 END IF 1581 END IF 1582 ! 1583 IF ( FLOGRD(7,3) .AND. ACTIVE ) THEN 1584 DO IBED = 1, 3 1585 IF ( WADATS(IGRID)%BEDFORMS(GSEA,IBED) .NE. UNDEF ) THEN 1586 SUMWTB(IBED) = SUMWTB(IBED) + WT 1587 IF ( BEDFORMSAUX(IBED) .EQ. UNDEF ) THEN 1588 BEDFORMSAUX(IBED) = WADATS(IGRID)%BEDFORMS(GSEA,IBED)& 1589 *WT 1590 ELSE 1591 BEDFORMSAUX(IBED) = BEDFORMSAUX(IBED) + & 1592 WADATS(IGRID)%BEDFORMS(GSEA,IBED)*WT 1593 END IF 1594 END IF 1595 END DO 1596 END IF Page 29 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 1597 ! 1598 IF ( FLOGRD(7,4) .AND. ACTIVE ) THEN 1599 IF ( WADATS(IGRID)%PHIBBL(GSEA) .NE. UNDEF ) THEN 1600 SUMWT7(4) = SUMWT7(4) + WT 1601 IF ( PHIBBLAUX .EQ. UNDEF ) THEN 1602 PHIBBLAUX = WADATS(IGRID)%PHIBBL(GSEA)*WT 1603 ELSE 1604 PHIBBLAUX = PHIBBLAUX + WADATS(IGRID)%PHIBBL(GSEA)*WT 1605 END IF 1606 END IF 1607 END IF 1608 ! 1609 IF ( FLOGRD(7,5) .AND. ACTIVE ) THEN 1610 IF ( WADATS(IGRID)%TAUBBL(GSEA,1) .NE. UNDEF ) THEN 1611 SUMWT7(5) = SUMWT7(5) + WT 1612 IF ( TAUBBLAUX(1) .EQ. UNDEF ) THEN 1613 TAUBBLAUX(1) = WADATS(IGRID)%TAUBBL(GSEA,1)*WT 1614 TAUBBLAUX(2) = WADATS(IGRID)%TAUBBL(GSEA,2)*WT 1615 ELSE 1616 TAUBBLAUX(1) = TAUBBLAUX(1) + & 1617 WADATS(IGRID)%TAUBBL(GSEA,1)*WT 1618 TAUBBLAUX(2) = TAUBBLAUX(2) + & 1619 WADATS(IGRID)%TAUBBL(GSEA,2)*WT 1620 END IF 1621 END IF 1622 END IF 1623 ! 1624 END DO 1625 ! 1626 ! Save temp. interpolated variables in proper variables 1627 ! (weighted by the number of grids) 1628 ! 1629 IF ( DWAUX .NE. UNDEF ) THEN 1630 DWAUX = DWAUX / SUMWT1(1) 1631 IF ( DW(ISEA) .EQ. UNDEF ) THEN 1632 DW(ISEA) = DWAUX / REAL( SUMGRD ) 1633 ELSE 1634 DW(ISEA) = DW(ISEA) + DWAUX / REAL( SUMGRD ) 1635 END IF 1636 END IF 1637 ! 1638 IF ( CXAUX .NE. UNDEF ) THEN 1639 CXAUX = CXAUX / SUMWT1(2) 1640 CYAUX = CYAUX / SUMWT1(2) 1641 IF ( CX(ISEA) .EQ. UNDEF ) THEN 1642 CX(ISEA) = CXAUX / REAL( SUMGRD ) 1643 CY(ISEA) = CYAUX / REAL( SUMGRD ) 1644 ELSE 1645 CX(ISEA) = CX(ISEA) + CXAUX / REAL( SUMGRD ) 1646 CY(ISEA) = CY(ISEA) + CYAUX / REAL( SUMGRD ) 1647 END IF 1648 END IF 1649 ! 1650 IF ( UAAUX .NE. UNDEF ) THEN 1651 UAAUX = UAAUX / SUMWT1(3) 1652 UDAUX = UDAUX / SUMWT1(3) 1653 IF ( UA(ISEA) .EQ. UNDEF ) THEN Page 30 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 1654 UA(ISEA) = UAAUX / REAL( SUMGRD ) 1655 UD(ISEA) = UDAUX / REAL( SUMGRD ) 1656 ELSE 1657 UA(ISEA) = UA(ISEA) + UAAUX / REAL( SUMGRD ) 1658 UD(ISEA) = UD(ISEA) + UDAUX / REAL( SUMGRD ) 1659 END IF 1660 END IF 1661 ! 1662 IF ( ASAUX .NE. UNDEF ) THEN 1663 ASAUX = ASAUX / SUMWT1(4) 1664 IF ( AS(ISEA) .EQ. UNDEF ) THEN 1665 AS(ISEA) = ASAUX / REAL( SUMGRD ) 1666 ELSE 1667 AS(ISEA) = AS(ISEA) + ASAUX / REAL( SUMGRD ) 1668 END IF 1669 END IF 1670 ! 1671 IF ( WLVAUX .NE. UNDEF ) THEN 1672 WLVAUX = WLVAUX / SUMWT1(5) 1673 IF ( WLV(ISEA) .EQ. UNDEF ) THEN 1674 WLV(ISEA) = WLVAUX / REAL( SUMGRD ) 1675 ELSE 1676 WLV(ISEA) = WLV(ISEA) + WLVAUX / REAL( SUMGRD ) 1677 END IF 1678 END IF 1679 ! 1680 IF ( ICEAUX .NE. UNDEF ) THEN 1681 ICEAUX = ICEAUX / SUMWT1(6) 1682 IF ( ICE(ISEA) .EQ. UNDEF ) THEN 1683 ICE(ISEA) = ICEAUX / REAL( SUMGRD ) 1684 ELSE 1685 ICE(ISEA) = ICE(ISEA) + ICEAUX / REAL( SUMGRD ) 1686 END IF 1687 END IF 1688 ! 1689 IF ( BERGAUX .NE. UNDEF ) THEN 1690 BERGAUX = BERGAUX / SUMWT1(7) 1691 IF ( BERG(ISEA) .EQ. UNDEF ) THEN 1692 BERG(ISEA) = BERGAUX / REAL( SUMGRD ) 1693 ELSE 1694 BERG(ISEA) = BERG(ISEA) + BERGAUX / REAL( SUMGRD ) 1695 END IF 1696 END IF 1697 ! 1698 IF ( HSAUX .NE. UNDEF ) THEN 1699 HSAUX = HSAUX / SUMWT2(1) 1700 IF ( HS(ISEA) .EQ. UNDEF ) THEN 1701 HS(ISEA) = HSAUX / REAL( SUMGRD ) 1702 ELSE 1703 HS(ISEA) = HS(ISEA) + HSAUX / REAL( SUMGRD ) 1704 END IF 1705 END IF 1706 ! 1707 IF ( WLMAUX .NE. UNDEF ) THEN 1708 WLMAUX = WLMAUX / SUMWT2(2) 1709 IF ( WLM(ISEA) .EQ. UNDEF ) THEN 1710 WLM(ISEA) = WLMAUX / REAL( SUMGRD ) Page 31 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 1711 ELSE 1712 WLM(ISEA) = WLM(ISEA) + WLMAUX / REAL( SUMGRD ) 1713 END IF 1714 END IF 1715 ! 1716 IF ( T02AUX .NE. UNDEF ) THEN 1717 T02AUX = T02AUX / SUMWT2(3) 1718 IF ( T02(ISEA) .EQ. UNDEF ) THEN 1719 T02(ISEA) = T02AUX / REAL( SUMGRD ) 1720 ELSE 1721 T02(ISEA) = T02(ISEA) + T02AUX / REAL( SUMGRD ) 1722 END IF 1723 END IF 1724 ! 1725 IF ( T0M1AUX .NE. UNDEF ) THEN 1726 T0M1AUX = T0M1AUX / SUMWT2(4) 1727 IF ( T0M1(ISEA) .EQ. UNDEF ) THEN 1728 T0M1(ISEA) = T0M1AUX / REAL( SUMGRD ) 1729 ELSE 1730 T0M1(ISEA) = T0M1(ISEA) + T0M1AUX / REAL( SUMGRD ) 1731 END IF 1732 END IF 1733 ! 1734 IF ( T01AUX .NE. UNDEF ) THEN 1735 T01AUX = T01AUX / SUMWT2(5) 1736 IF ( T01(ISEA) .EQ. UNDEF ) THEN 1737 T01(ISEA) = T01AUX / REAL( SUMGRD ) 1738 ELSE 1739 T01(ISEA) = T01(ISEA) + T01AUX / REAL( SUMGRD ) 1740 END IF 1741 END IF 1742 ! 1743 IF ( FP0AUX .NE. UNDEF ) THEN 1744 FP0AUX = FP0AUX / SUMWT2(6) 1745 IF ( FP0(ISEA) .EQ. UNDEF ) THEN 1746 FP0(ISEA) = FP0AUX / REAL( SUMGRD ) 1747 ELSE 1748 FP0(ISEA) = FP0(ISEA) + FP0AUX / REAL( SUMGRD ) 1749 END IF 1750 END IF 1751 ! 1752 IF ( THMAUX1 .NE. UNDEF ) THEN 1753 THMAUX1 = THMAUX1 / SUMWT2(7) 1754 THMAUX2 = THMAUX2 / SUMWT2(7) 1755 IF ( THM(ISEA) .EQ. UNDEF ) THEN 1756 THMAUX1 = THMAUX1 / REAL( SUMGRD ) 1757 THMAUX2 = THMAUX2 / REAL( SUMGRD ) 1758 THM(ISEA) = ATAN2 ( THMAUX2, THMAUX1 ) 1759 ELSE 1760 THMAUX1 = THMAUX1 / REAL( SUMGRD ) + COS ( THM(ISEA) ) 1761 THMAUX2 = THMAUX2 / REAL( SUMGRD ) + SIN ( THM(ISEA) ) 1762 THM(ISEA) = ATAN2 ( THMAUX2, THMAUX1 ) 1763 END IF 1764 END IF 1765 ! 1766 IF ( THSAUX .NE. UNDEF ) THEN 1767 THSAUX = THSAUX / SUMWT2(8) Page 32 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 1768 IF ( THS(ISEA) .EQ. UNDEF ) THEN 1769 THS(ISEA) = THSAUX / REAL( SUMGRD ) 1770 ELSE 1771 THS(ISEA) = THS(ISEA) + THSAUX / REAL( SUMGRD ) 1772 END IF 1773 END IF 1774 ! 1775 IF ( THP0AUX1 .NE. UNDEF ) THEN 1776 THP0AUX1 = THP0AUX1 / SUMWT2(9) 1777 THP0AUX2 = THP0AUX2 / SUMWT2(9) 1778 IF ( THP0(ISEA) .EQ. UNDEF ) THEN 1779 THP0AUX1 = THP0AUX1 / REAL( SUMGRD ) 1780 THP0AUX2 = THP0AUX2 / REAL( SUMGRD ) 1781 THP0(ISEA) = ATAN2 ( THP0AUX2, THP0AUX1 ) 1782 ELSE 1783 THP0AUX1 = THP0AUX1 / REAL( SUMGRD ) + COS ( THP0(ISEA) ) 1784 THP0AUX2 = THP0AUX2 / REAL( SUMGRD ) + SIN ( THP0(ISEA) ) 1785 THP0(ISEA) = ATAN2 ( THP0AUX2, THP0AUX1 ) 1786 END IF 1787 END IF 1788 ! 1789 DO ISWLL = 0, NOSWLL_MIN 1790 ! 1791 IF ( PHSAUX(ISWLL) .NE. UNDEF ) THEN 1792 PHSAUX(ISWLL) = PHSAUX(ISWLL) / SUMWT4(1,ISWLL) 1793 IF ( PHS(ISEA,ISWLL) .EQ. UNDEF ) THEN 1794 PHS(ISEA,ISWLL) = PHSAUX(ISWLL) / REAL( SUMGRD ) 1795 ELSE 1796 PHS(ISEA,ISWLL) = PHS(ISEA,ISWLL) + & 1797 PHSAUX(ISWLL) / REAL( SUMGRD ) 1798 END IF 1799 END IF 1800 ! 1801 IF ( PTPAUX(ISWLL) .NE. UNDEF ) THEN 1802 PTPAUX(ISWLL) = PTPAUX(ISWLL) / SUMWT4(2,ISWLL) 1803 IF ( PTP(ISEA,ISWLL) .EQ. UNDEF ) THEN 1804 PTP(ISEA,ISWLL) = PTPAUX(ISWLL) / REAL( SUMGRD ) 1805 ELSE 1806 PTP(ISEA,ISWLL) = PTP(ISEA,ISWLL) + & 1807 PTPAUX(ISWLL) / REAL( SUMGRD ) 1808 END IF 1809 END IF 1810 ! 1811 IF ( PLPAUX(ISWLL) .NE. UNDEF ) THEN 1812 PLPAUX(ISWLL) = PLPAUX(ISWLL) / SUMWT4(3,ISWLL) 1813 IF ( PLP(ISEA,ISWLL) .EQ. UNDEF ) THEN 1814 PLP(ISEA,ISWLL) = PLPAUX(ISWLL) / REAL( SUMGRD ) 1815 ELSE 1816 PLP(ISEA,ISWLL) = PLP(ISEA,ISWLL) + & 1817 PLPAUX(ISWLL) / REAL( SUMGRD ) 1818 END IF 1819 END IF 1820 ! 1821 IF ( PTHAUX1(ISWLL) .NE. UNDEF ) THEN 1822 PTHAUX1(ISWLL) = PTHAUX1(ISWLL) / SUMWT4(4,ISWLL) 1823 PTHAUX2(ISWLL) = PTHAUX2(ISWLL) / SUMWT4(4,ISWLL) 1824 IF ( PTH(ISEA,ISWLL) .EQ. UNDEF ) THEN Page 33 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 1825 PTHAUX1(ISWLL) = PTHAUX1(ISWLL) / REAL( SUMGRD ) 1826 PTHAUX2(ISWLL) = PTHAUX2(ISWLL) / REAL( SUMGRD ) 1827 PTH(ISEA,ISWLL) = ATAN2 ( PTHAUX2(ISWLL), PTHAUX1(ISWLL) ) 1828 ELSE 1829 PTHAUX1(ISWLL) = PTHAUX1(ISWLL) / REAL( SUMGRD ) + & 1830 COS ( PTH(ISEA,ISWLL) ) 1831 PTHAUX2(ISWLL) = PTHAUX2(ISWLL) / REAL( SUMGRD ) + & 1832 SIN ( PTH(ISEA,ISWLL) ) 1833 PTH(ISEA,ISWLL) = ATAN2 ( PTHAUX2(ISWLL), PTHAUX1(ISWLL) ) 1834 END IF 1835 END IF 1836 ! 1837 IF ( PSIAUX(ISWLL) .NE. UNDEF ) THEN 1838 PSIAUX(ISWLL) = PSIAUX(ISWLL) / SUMWT4(5,ISWLL) 1839 IF ( PSI(ISEA,ISWLL) .EQ. UNDEF ) THEN 1840 PSI(ISEA,ISWLL) = PSIAUX(ISWLL) / REAL( SUMGRD ) 1841 ELSE 1842 PSI(ISEA,ISWLL) = PSI(ISEA,ISWLL) + & 1843 PSIAUX(ISWLL) / REAL( SUMGRD ) 1844 END IF 1845 END IF 1846 ! 1847 IF ( PWSAUX(ISWLL) .NE. UNDEF ) THEN 1848 PWSAUX(ISWLL) = PWSAUX(ISWLL) / SUMWT4(6,ISWLL) 1849 IF ( PWS(ISEA,ISWLL) .EQ. UNDEF ) THEN 1850 PWS(ISEA,ISWLL) = PWSAUX(ISWLL) / REAL( SUMGRD ) 1851 ELSE 1852 PWS(ISEA,ISWLL) = PWS(ISEA,ISWLL) + & 1853 PWSAUX(ISWLL) / REAL( SUMGRD ) 1854 END IF 1855 END IF 1856 ! 1857 END DO 1858 ! 1859 IF ( PWSTAUX .NE. UNDEF ) THEN 1860 PWSTAUX = PWSTAUX / SUMWT4(7,0) 1861 IF ( PWST(ISEA) .EQ. UNDEF ) THEN 1862 PWST(ISEA) = PWSTAUX / REAL( SUMGRD ) 1863 ELSE 1864 PWST(ISEA) = PWST(ISEA) + PWSTAUX / REAL( SUMGRD ) 1865 END IF 1866 END IF 1867 ! 1868 IF ( USTAUX1 .NE. UNDEF ) THEN 1869 USTAUX1 = USTAUX1 / SUMWT5(1) 1870 USTAUX2 = USTAUX2 / SUMWT5(1) 1871 IF ( UST(ISEA) .EQ. UNDEF ) THEN 1872 UST(ISEA) = USTAUX1 / REAL( SUMGRD ) 1873 USTDIR(ISEA) = USTAUX2 / REAL( SUMGRD ) 1874 ELSE 1875 UST(ISEA) = UST(ISEA) + USTAUX1 / REAL( SUMGRD ) 1876 USTDIR(ISEA) = USTDIR(ISEA) + USTAUX2 / REAL( SUMGRD ) 1877 END IF 1878 END IF 1879 ! 1880 IF ( CHARNAUX .NE. UNDEF ) THEN 1881 CHARNAUX = CHARNAUX / SUMWT5(2) Page 34 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 1882 IF ( CHARN(ISEA) .EQ. UNDEF ) THEN 1883 CHARN(ISEA) = CHARNAUX / REAL( SUMGRD ) 1884 ELSE 1885 CHARN(ISEA) = CHARN(ISEA) + CHARNAUX / REAL( SUMGRD ) 1886 END IF 1887 END IF 1888 ! 1889 IF ( CGEAUX .NE. UNDEF ) THEN 1890 CGEAUX = CGEAUX / SUMWT5(3) 1891 IF ( CGE(ISEA) .EQ. UNDEF ) THEN 1892 CGE(ISEA) = CGEAUX / REAL( SUMGRD ) 1893 ELSE 1894 CGE(ISEA) = CGE(ISEA) + CGEAUX / REAL( SUMGRD ) 1895 END IF 1896 END IF 1897 ! 1898 IF ( PHIAWAUX .NE. UNDEF ) THEN 1899 PHIAWAUX = PHIAWAUX / SUMWT5(4) 1900 IF ( PHIAW(ISEA) .EQ. UNDEF ) THEN 1901 PHIAW(ISEA) = PHIAWAUX / REAL( SUMGRD ) 1902 ELSE 1903 PHIAW(ISEA) = PHIAW(ISEA) + PHIAWAUX / REAL( SUMGRD ) 1904 END IF 1905 END IF 1906 ! 1907 IF ( TAUWIXAUX .NE. UNDEF ) THEN 1908 TAUWIXAUX = TAUWIXAUX / SUMWT5(5) 1909 TAUWIYAUX = TAUWIYAUX / SUMWT5(5) 1910 IF ( TAUWIX(ISEA) .EQ. UNDEF ) THEN 1911 TAUWIX(ISEA) = TAUWIXAUX / REAL( SUMGRD ) 1912 TAUWIY(ISEA) = TAUWIYAUX / REAL( SUMGRD ) 1913 ELSE 1914 TAUWIX(ISEA) = TAUWIX(ISEA) + TAUWIXAUX / REAL( SUMGRD ) 1915 TAUWIY(ISEA) = TAUWIY(ISEA) + TAUWIYAUX / REAL( SUMGRD ) 1916 END IF 1917 END IF 1918 ! 1919 IF ( TAUWNXAUX .NE. UNDEF ) THEN 1920 TAUWNXAUX = TAUWNXAUX / SUMWT5(6) 1921 TAUWNYAUX = TAUWNYAUX / SUMWT5(6) 1922 IF ( TAUWNX(ISEA) .EQ. UNDEF ) THEN 1923 TAUWNX(ISEA) = TAUWNXAUX / REAL( SUMGRD ) 1924 TAUWNY(ISEA) = TAUWNYAUX / REAL( SUMGRD ) 1925 ELSE 1926 TAUWNX(ISEA) = TAUWNX(ISEA) + TAUWNXAUX / REAL( SUMGRD ) 1927 TAUWNY(ISEA) = TAUWNY(ISEA) + TAUWNYAUX / REAL( SUMGRD ) 1928 END IF 1929 END IF 1930 ! 1931 DO ICAP = 1,4 1932 IF ( WHITECAPAUX(ICAP) .NE. UNDEF ) THEN 1933 WHITECAPAUX(ICAP) = WHITECAPAUX(ICAP) / SUMWTC(ICAP) 1934 IF ( WHITECAP(ISEA,ICAP) .EQ. UNDEF ) THEN 1935 WHITECAP(ISEA,ICAP) = WHITECAPAUX(ICAP) / REAL( SUMGRD ) 1936 ELSE 1937 WHITECAP(ISEA,ICAP) = WHITECAP(ISEA,ICAP) + & 1938 WHITECAPAUX(ICAP) / REAL( SUMGRD ) Page 35 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 1939 END IF 1940 END IF 1941 END DO 1942 ! 1943 IF ( SXXAUX .NE. UNDEF ) THEN 1944 SXXAUX = SXXAUX / SUMWT6(1) 1945 SXYAUX = SXYAUX / SUMWT6(1) 1946 SYYAUX = SYYAUX / SUMWT6(1) 1947 IF ( SXX(ISEA) .EQ. UNDEF ) THEN 1948 SXX(ISEA) = SXXAUX / REAL( SUMGRD ) 1949 SXY(ISEA) = SXYAUX / REAL( SUMGRD ) 1950 SYY(ISEA) = SYYAUX / REAL( SUMGRD ) 1951 ELSE 1952 SXX(ISEA) = SXX(ISEA) + SXXAUX / REAL( SUMGRD ) 1953 SXY(ISEA) = SXY(ISEA) + SXYAUX / REAL( SUMGRD ) 1954 SYY(ISEA) = SYY(ISEA) + SYYAUX / REAL( SUMGRD ) 1955 END IF 1956 END IF 1957 ! 1958 IF ( TAUOXAUX .NE. UNDEF ) THEN 1959 TAUOXAUX = TAUOXAUX / SUMWT6(2) 1960 TAUOYAUX = TAUOYAUX / SUMWT6(2) 1961 IF ( TAUOX(ISEA) .EQ. UNDEF ) THEN 1962 TAUOX(ISEA) = TAUOXAUX / REAL( SUMGRD ) 1963 TAUOY(ISEA) = TAUOYAUX / REAL( SUMGRD ) 1964 ELSE 1965 TAUOX(ISEA) = TAUOX(ISEA) + TAUOXAUX / REAL( SUMGRD ) 1966 TAUOY(ISEA) = TAUOY(ISEA) + TAUOYAUX / REAL( SUMGRD ) 1967 END IF 1968 END IF 1969 ! 1970 IF ( BHDAUX .NE. UNDEF ) THEN 1971 BHDAUX = BHDAUX / SUMWT6(3) 1972 IF ( BHD(ISEA) .EQ. UNDEF ) THEN 1973 BHD(ISEA) = BHDAUX / REAL( SUMGRD ) 1974 ELSE 1975 BHD(ISEA) = BHD(ISEA) + BHDAUX / REAL( SUMGRD ) 1976 END IF 1977 END IF 1978 ! 1979 IF ( PHIOCAUX .NE. UNDEF ) THEN 1980 PHIOCAUX = PHIOCAUX / SUMWT6(4) 1981 IF ( PHIOC(ISEA) .EQ. UNDEF ) THEN 1982 PHIOC(ISEA) = PHIOCAUX / REAL( SUMGRD ) 1983 ELSE 1984 PHIOC(ISEA) = PHIOC(ISEA) + PHIOCAUX / REAL( SUMGRD ) 1985 END IF 1986 END IF 1987 ! 1988 IF ( TUSXAUX .NE. UNDEF ) THEN 1989 TUSXAUX = TUSXAUX / SUMWT6(5) 1990 TUSYAUX = TUSYAUX / SUMWT6(5) 1991 IF ( TUSX(ISEA) .EQ. UNDEF ) THEN 1992 TUSX(ISEA) = TUSXAUX / REAL( SUMGRD ) 1993 TUSY(ISEA) = TUSYAUX / REAL( SUMGRD ) 1994 ELSE 1995 TUSX(ISEA) = TUSX(ISEA) + TUSXAUX / REAL( SUMGRD ) Page 36 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 1996 TUSY(ISEA) = TUSY(ISEA) + TUSYAUX / REAL( SUMGRD ) 1997 END IF 1998 END IF 1999 ! 2000 IF ( USSXAUX .NE. UNDEF ) THEN 2001 USSXAUX = USSXAUX / SUMWT6(6) 2002 USSYAUX = USSYAUX / SUMWT6(6) 2003 IF ( USSX(ISEA) .EQ. UNDEF ) THEN 2004 USSX(ISEA) = USSXAUX / REAL( SUMGRD ) 2005 USSY(ISEA) = USSYAUX / REAL( SUMGRD ) 2006 ELSE 2007 USSX(ISEA) = USSX(ISEA) + USSXAUX / REAL( SUMGRD ) 2008 USSY(ISEA) = USSY(ISEA) + USSYAUX / REAL( SUMGRD ) 2009 END IF 2010 END IF 2011 ! 2012 IF ( PRMSAUX .NE. UNDEF ) THEN 2013 PRMSAUX = PRMSAUX / SUMWT6(7) 2014 TPMSAUX = TPMSAUX / SUMWT6(7) 2015 IF ( PRMS(ISEA) .EQ. UNDEF ) THEN 2016 PRMS(ISEA) = PRMSAUX / REAL( SUMGRD ) 2017 TPMS(ISEA) = TPMSAUX / REAL( SUMGRD ) 2018 ELSE 2019 PRMS(ISEA) = PRMS(ISEA) + PRMSAUX / REAL( SUMGRD ) 2020 TPMS(ISEA) = TPMS(ISEA) + TPMSAUX / REAL( SUMGRD ) 2021 END IF 2022 END IF 2023 ! 2024 IF ( ABAAUX .NE. UNDEF ) THEN 2025 ABAAUX = ABAAUX / SUMWT7(1) 2026 ABDAUX = ABDAUX / SUMWT7(1) 2027 IF ( ABA(ISEA) .EQ. UNDEF ) THEN 2028 ABA(ISEA) = ABAAUX / REAL( SUMGRD ) 2029 ABD(ISEA) = ABDAUX / REAL( SUMGRD ) 2030 ELSE 2031 ABA(ISEA) = ABA(ISEA) + ABAAUX / REAL( SUMGRD ) 2032 ABD(ISEA) = ABD(ISEA) + ABDAUX / REAL( SUMGRD ) 2033 END IF 2034 END IF 2035 ! 2036 IF ( UBAAUX .NE. UNDEF ) THEN 2037 UBAAUX = UBAAUX / SUMWT7(2) 2038 UBDAUX = UBDAUX / SUMWT7(2) 2039 IF ( UBA(ISEA) .EQ. UNDEF ) THEN 2040 UBA(ISEA) = UBAAUX / REAL( SUMGRD ) 2041 UBD(ISEA) = UBDAUX / REAL( SUMGRD ) 2042 ELSE 2043 UBA(ISEA) = UBA(ISEA) + UBAAUX / REAL( SUMGRD ) 2044 UBD(ISEA) = UBD(ISEA) + UBDAUX / REAL( SUMGRD ) 2045 END IF 2046 END IF 2047 ! 2048 DO IBED = 1,3 2049 IF ( BEDFORMSAUX(IBED) .NE. UNDEF ) THEN 2050 BEDFORMSAUX(IBED) = BEDFORMSAUX(IBED) / SUMWTB(IBED) 2051 IF ( BEDFORMS(ISEA,IBED) .EQ. UNDEF ) THEN 2052 BEDFORMS(ISEA,IBED) = BEDFORMSAUX(IBED) / REAL( SUMGRD ) Page 37 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 2053 ELSE 2054 BEDFORMS(ISEA,IBED) = BEDFORMS(ISEA,IBED) + & 2055 BEDFORMSAUX(IBED) / REAL( SUMGRD ) 2056 END IF 2057 END IF 2058 END DO 2059 ! 2060 IF ( PHIBBLAUX .NE. UNDEF ) THEN 2061 PHIBBLAUX = PHIBBLAUX / SUMWT7(4) 2062 IF ( PHIBBL(ISEA) .EQ. UNDEF ) THEN 2063 PHIBBL(ISEA) = PHIBBLAUX / REAL( SUMGRD ) 2064 ELSE 2065 PHIBBL(ISEA) = PHIBBL(ISEA) + PHIBBLAUX / REAL( SUMGRD ) 2066 END IF 2067 END IF 2068 ! 2069 IF ( TAUBBLAUX(1) .NE. UNDEF ) THEN 2070 TAUBBLAUX(1) = TAUBBLAUX(1) / SUMWT7(5) 2071 TAUBBLAUX(2) = TAUBBLAUX(2) / SUMWT7(5) 2072 IF ( TAUBBL(ISEA,1) .EQ. UNDEF ) THEN 2073 TAUBBL(ISEA,1) = TAUBBLAUX(1) / REAL( SUMGRD ) 2074 TAUBBL(ISEA,2) = TAUBBLAUX(2) / REAL( SUMGRD ) 2075 ELSE 2076 TAUBBL(ISEA,1) = TAUBBL(ISEA,1) + & 2077 TAUBBLAUX(1) / REAL( SUMGRD ) 2078 TAUBBL(ISEA,2) = TAUBBL(ISEA,2) + & 2079 TAUBBLAUX(2) / REAL( SUMGRD ) 2080 END IF 2081 END IF 2082 ! 2083 END IF 2084 ! 2085 END DO 2086 ! 2087 ! Convert select variables back to polar notation. This is done because just 2088 ! prior to writing to file the w3iogo routine converts these variables 2089 ! from polar to cartesian coordinates 2090 ! 2091 IF ( UA(ISEA) .NE. UNDEF ) THEN 2092 VAR1 = UA(ISEA) 2093 VAR2 = UD(ISEA) 2094 UA(ISEA) = SQRT ( VAR1**2 + VAR2**2 ) 2095 UD(ISEA) = ATAN2 ( VAR2, VAR1 ) 2096 END IF 2097 ! 2098 IF ( UST(ISEA) .NE. UNDEF ) THEN 2099 VAR1 = UST(ISEA) 2100 VAR2 = USTDIR(ISEA) 2101 UST(ISEA) = SQRT ( VAR1**2 + VAR2**2 ) 2102 USTDIR(ISEA) = ATAN2 ( VAR2, VAR1 ) 2103 END IF 2104 ! 2105 IF ( ABA(ISEA) .NE. UNDEF ) THEN 2106 VAR1 = ABA(ISEA) 2107 VAR2 = ABD(ISEA) 2108 ABA(ISEA) = SQRT ( VAR1**2 + VAR2**2 ) 2109 ABD(ISEA) = ATAN2 ( VAR2, VAR1 ) Page 38 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 2110 END IF 2111 ! 2112 IF ( UBA(ISEA) .NE. UNDEF ) THEN 2113 VAR1 = UBA(ISEA) 2114 VAR2 = UBD(ISEA) 2115 UBA(ISEA) = SQRT ( VAR1**2 + VAR2**2 ) 2116 UBD(ISEA) = ATAN2 ( VAR2, VAR1 ) 2117 END IF 2118 ! 2119 END IF 2120 ! 2121 END DO 2122 ! 2123 !------------------------------------------------------------------------------ 2124 ! 3. Write out interpolated data to target output file 2125 ! 2126 CALL W3IOGO('WRITE',FIDOUT(NG),IOTST,NG) 2127 ! 2128 RETURN 2129 ! 2130 ! Error escape locations 2131 ! 2132 !/ 2133 !/ End of W3EXGI ------------------------------------------------------------/ 2134 !/ 2135 END SUBROUTINE W3EXGI ENTRY POINTS Name wavegrid_interp_IP_w3exgi_ Page 39 Source Listing W3EXGI 2014-09-16 17:00 Symbol Table multiwavegrid_interp.f90 SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References ABA Local 903 R(4) 4 1 1 PTR 903,2027,2028,2031,2105,2106,2108 ABA Local 1558 R(4) 4 1 1 PTR 1558,1561,1564,1571 ABAAUX Local 827 R(4) 4 scalar 1083,1560,1561,1564,2024,2025,2028 ,2031 ABD Local 904 R(4) 4 1 1 PTR 904,2029,2032,2107,2109 ABD Local 1562 R(4) 4 1 1 PTR 1562,1565 ABDAUX Local 827 R(4) 4 scalar 1084,1562,1565,2026,2029,2032 ABS Func 937 scalar 273,275,328,335,342,349,358,372,38 6,393,407,421,435,442,456,463,475, 482,580,937,995 ACTIVE Local 830 L(4) 4 scalar 925,936,969,971,993,995,1101,1112, 1138,1149,1171,1182,1193,1204,1215 ,1226,1237,1248,1261,1272,1289,130 1,1313,1325,1342,1354,1368,1392,14 03,1414,1425,1438,1453,1468,1483,1 496,1507,1518,1531,1544,1557,1570, 1583,1598,1609 AS Local 844 R(4) 4 1 1 PTR 844,1664,1665,1667 AS Local 1139 R(4) 4 1 1 PTR 1139,1142,1144 ASAUX Local 804 R(4) 4 scalar 1015,1141,1142,1144,1662,1663,1665 ,1667 ATAN2 Func 1758 scalar 1758,1762,1781,1785,1827,1833,2095 ,2102,2109,2116 BEDFORMS Local 907 R(4) 4 2 1 PTR 907,2051,2052,2054 BEDFORMS Local 1585 R(4) 4 2 1 PTR 1585,1588,1592 BEDFORMSAUX Local 828 R(4) 4 1 3 1087,1587,1588,1591,2049,2050,2052 ,2055 BERG Local 847 R(4) 4 1 1 PTR 847,1691,1692,1694 BERG Local 1172 R(4) 4 1 1 PTR 1172,1175,1177 BERGAUX Local 805 R(4) 4 scalar 1018,1174,1175,1177,1689,1690,1692 ,1694 BHD Local 892 R(4) 4 1 1 PTR 892,1972,1973,1975 BHD Local 1497 R(4) 4 1 1 PTR 1497,1500,1502 BHDAUX Local 824 R(4) 4 scalar 1071,1499,1500,1502,1970,1971,1973 ,1975 CGE Local 877 R(4) 4 1 1 PTR 877,1891,1892,1894 CGE Local 1404 R(4) 4 1 1 PTR 1404,1407,1409 CGEAUX Local 818 R(4) 4 scalar 1054,1406,1407,1409,1889,1890,1892 ,1894 CHARN Local 876 R(4) 4 1 1 PTR 876,1882,1883,1885 CHARN Local 1393 R(4) 4 1 1 PTR 1393,1396,1398 CHARNAUX Local 818 R(4) 4 scalar 1053,1395,1396,1398,1880,1881,1883 ,1885 COS Func 1252 scalar 1252,1255,1276,1280,1330,1335,1760 ,1783,1830 CX Local 840 R(4) 4 1 1 PTR 840,1641,1642,1645 CX Local 1113 R(4) 4 1 1 PTR 1113,1116,1119 CXAUX Local 804 R(4) 4 scalar 1011,1115,1116,1119,1638,1639,1642 ,1645 CY Local 841 R(4) 4 1 1 PTR 841,1643,1646 CY Local 1117 R(4) 4 1 1 PTR 1117,1120 Page 40 Source Listing W3EXGI 2014-09-16 17:00 Symbol Table multiwavegrid_interp.f90 Name Object Declared Type Bytes Dimen Elements Attributes References CYAUX Local 804 R(4) 4 scalar 1012,1117,1120,1640,1643,1646 DW Local 839 R(4) 4 1 1 PTR 839,1631,1632,1634 DW Local 1102 R(4) 4 1 1 PTR 1102,1105,1107 DWAUX Local 804 R(4) 4 scalar 1010,1104,1105,1107,1629,1630,1632 ,1634 FIDOUT Local 2126 I(4) 4 1 1 ALC 600,602,609,634,2126 FLOGRD Local 1101 L(4) 4 2 1 PTR 89,1101,1112,1125,1138,1149,1160,1 171,1182,1193,1204,1215,1226,1237, 1248,1261,1272,1289,1301,1313,1325 ,1342,1354,1368,1379,1392,1403,141 4,1425,1438,1453,1468,1483,1496,15 07,1518,1531,1544,1557,1570,1583,1 598,1609 FP0 Local 856 R(4) 4 1 1 PTR 856,1745,1746,1748 FP0 Local 1238 R(4) 4 1 1 PTR 1238,1241,1243 FP0AUX Local 809 R(4) 4 scalar 1029,1240,1241,1243,1743,1744,1746 ,1748 GDID Alloc 940 I(4) 4 1 1 ALC 251,303,549,940,1003 GRIDS Local 952 RECORD 4376 1 1 ALC,TGT 192,193,199,260,267,268,274,294,50 9,510,511,512,513,526,534,555,556, 952,953,954,955,1099 GR_INTS Local 939 RECORD 152 1 1 ALC,TGT 237,251,303,305,306,307,309,310,31 1,313,549,551,552,553,557,558,559, 561,571,577,939,940,949,950,951,96 1,962,963,964,999,1003,1095,1096,1 097,1098 GSEA Local 795 I(4) 4 scalar 1099,1102,1105,1107,1113,1116,1117 ,1119,1120,1126,1129,1130,1132,113 3,1139,1142,1144,1150,1153,1155,11 61,1164,1166,1172,1175,1177,1183,1 186,1188,1194,1197,1199,1205,1208, 1210,1216,1219,1221,1227,1230,1232 ,1238,1241,1243,1249,1252,1253,125 5,1256,1262,1265,1267,1273,1276,12 77,1280,1282,1290,1293,1296,1302,1 305,1308,1314,1317,1320,1326,1330, 1332,1335,1337,1343,1346,1349,1355 ,1358,1361,1369,1372,1374,1380,138 3,1384,1386,1387,1393,1396,1398,14 04,1407,1409,1415,1418,1420,1426,1 429,1430,1432,1433,1439,1442,1443, 1445,1446,1454,1457,1461,1469,1472 ,1473,1474,1476,1477,1478,1484,148 7,1488,1490,1491,1497,1500,1502,15 08,1511,1513,1519,1522,1523,1525,1 526,1532,1535,1536,1538,1539,1545, 1548,1549,1551,1552,1558,1561,1562 ,1564,1565,1571,1574,1575,1577,157 8,1585,1588,1592,1599,1602,1604,16 10,1613,1614,1617,1619 HS Local 851 R(4) 4 1 1 PTR 851,1700,1701,1703 HS Local 1183 R(4) 4 1 1 PTR 1183,1186,1188 HSAUX Local 808 R(4) 4 scalar 1024,1185,1186,1188,1698,1699,1701 ,1703 IBED Local 796 I(4) 4 scalar 1584,1585,1586,1587,1588,1591,1592 Page 41 Source Listing W3EXGI 2014-09-16 17:00 Symbol Table multiwavegrid_interp.f90 Name Object Declared Type Bytes Dimen Elements Attributes References ,2048,2049,2050,2051,2052,2054,205 5 ICAP Local 796 I(4) 4 scalar 1451,1453,1454,1455,1456,1457,1460 ,1461,1931,1932,1933,1934,1935,193 7,1938 ICE Local 846 R(4) 4 1 1 PTR 93,846,1682,1683,1685 ICE Local 1161 R(4) 4 1 1 PTR 1161,1164,1166 ICEAUX Local 805 R(4) 4 scalar 1017,1163,1164,1166,1680,1681,1683 ,1685 IG Local 795 I(4) 4 scalar 939,940,949,950,951,961,962,963,96 4,972,979,999,1001,1003,1095,1096, 1097,1098 IGRID Local 795 I(4) 4 scalar 940,952,953,954,955,1003,1099,1102 ,1105,1107,1113,1116,1117,1119,112 0,1126,1129,1130,1132,1133,1139,11 42,1144,1150,1153,1155,1161,1164,1 166,1172,1175,1177,1183,1186,1188, 1194,1197,1199,1205,1208,1210,1216 ,1219,1221,1227,1230,1232,1238,124 1,1243,1249,1252,1253,1255,1256,12 62,1265,1267,1273,1276,1277,1280,1 282,1290,1293,1296,1302,1305,1308, 1314,1317,1320,1326,1330,1332,1335 ,1337,1343,1346,1349,1355,1358,136 1,1369,1372,1374,1380,1383,1384,13 86,1387,1393,1396,1398,1404,1407,1 409,1415,1418,1420,1426,1429,1430, 1432,1433,1439,1442,1443,1445,1446 ,1454,1457,1461,1469,1472,1473,147 4,1476,1477,1478,1484,1487,1488,14 90,1491,1497,1500,1502,1508,1511,1 513,1519,1522,1523,1525,1526,1532, 1535,1536,1538,1539,1545,1548,1549 ,1551,1552,1558,1561,1562,1564,156 5,1571,1574,1575,1577,1578,1585,15 88,1592,1599,1602,1604,1610,1613,1 614,1617,1619 IGX Local 795 I(4) 4 scalar 950,952,953,954,955,1096,1099 IGY Local 795 I(4) 4 scalar 951,952,953,954,955,1097,1099 IND_WTS Alloc 949 RECORD 224 1 1 ALC 251,305,306,307,309,310,311,313,55 1,552,553,557,558,559,561,949,950, 951,961,962,963,964,1095,1096,1097 ,1098 IOTST Local 2126 I(4) 4 scalar 609,610,634,635,2126 IP Alloc 950 I(4) 4 1 1 ALC 305,309,551,557,950,1096 IPTS Local 795 I(4) 4 scalar 949,950,951,1095,1096,1097,1098 ISEA Local 795 I(4) 4 scalar 914,916,917,939,940,949,950,951,96 1,962,963,964,999,1003,1095,1096,1 097,1098,1631,1632,1634,1641,1642, 1643,1645,1646,1653,1654,1655,1657 ,1658,1664,1665,1667,1673,1674,167 6,1682,1683,1685,1691,1692,1694,17 00,1701,1703,1709,1710,1712,1718,1 719,1721,1727,1728,1730,1736,1737, 1739,1745,1746,1748,1755,1758,1760 Page 42 Source Listing W3EXGI 2014-09-16 17:00 Symbol Table multiwavegrid_interp.f90 Name Object Declared Type Bytes Dimen Elements Attributes References ,1761,1762,1768,1769,1771,1778,178 1,1783,1784,1785,1793,1794,1796,18 03,1804,1806,1813,1814,1816,1824,1 827,1830,1832,1833,1839,1840,1842, 1849,1850,1852,1861,1862,1864,1871 ,1872,1873,1875,1876,1882,1883,188 5,1891,1892,1894,1900,1901,1903,19 10,1911,1912,1914,1915,1922,1923,1 924,1926,1927,1934,1935,1937,1947, 1948,1949,1950,1952,1953,1954,1961 ,1962,1963,1965,1966,1972,1973,197 5,1981,1982,1984,1991,1992,1993,19 95,1996,2003,2004,2005,2007,2008,2 015,2016,2017,2019,2020,2027,2028, 2029,2031,2032,2039,2040,2041,2043 ,2044,2051,2052,2054,2062,2063,206 5,2072,2073,2074,2076,2078,2091,20 92,2093,2094,2095,2098,2099,2100,2 101,2102,2105,2106,2107,2108,2109, 2112,2113,2114,2115,2116 ISWLL Local 796 I(4) 4 scalar 1287,1290,1291,1292,1293,1295,1296 ,1302,1303,1304,1305,1307,1308,131 4,1315,1316,1317,1319,1320,1326,13 27,1328,1329,1330,1331,1332,1334,1 335,1336,1337,1343,1344,1345,1346, 1348,1349,1355,1356,1357,1358,1360 ,1361,1789,1791,1792,1793,1794,179 6,1797,1801,1802,1803,1804,1806,18 07,1811,1812,1813,1814,1816,1817,1 821,1822,1823,1824,1825,1826,1827, 1829,1830,1831,1832,1833,1837,1838 ,1839,1840,1842,1843,1847,1848,184 9,1850,1852,1853 IX Local 795 I(4) 4 scalar 916,918,919,920,921,922,923,937,99 1,995 IY Local 796 I(4) 4 scalar 917,918,919,920,921,922,923,937,99 1,995 JP Alloc 951 I(4) 4 1 1 ALC 306,310,552,558,951,1097 LMAPDRY Local 799 I(4) 4 scalar 953,957 LMAPICE Local 799 I(4) 4 scalar 952,956 LMAPLND Local 799 I(4) 4 scalar 954,958 LMAPMSK Local 799 I(4) 4 scalar 955,959 MAPDRY Local 797 I(4) 4 scalar 919,923,925,933,975,984,991,993 MAPDRYT Local 800 I(4) 4 scalar 946,966,969,975,984 MAPFS Local 1099 I(4) 4 2 1 PTR 1099 MAPICE Local 797 I(4) 4 scalar 918,923,925,932,974,983,991,993 MAPICET Local 800 I(4) 4 scalar 945,965,969,974,983 MAPINT Local 797 I(4) 4 scalar 922,927 MAPLND Local 797 I(4) 4 scalar 920,923,935,976,985,991,993 MAPLNDT Local 800 I(4) 4 scalar 947,967,970,976,985 MAPMSK Local 797 I(4) 4 scalar 921,924,934,977,986,992,994 MAPMSKT Local 800 I(4) 4 scalar 948,968,970,977,986 MAPSF Local 916 I(4) 4 2 1 PTR 248,249,916,917 MAPST2 Local 918 I(4) 4 2 1 PTR 579,918,919,920,921,922,923,991 MAPST2 Local 952 I(4) 4 2 1 PTR 952,953,954,955 Page 43 Source Listing W3EXGI 2014-09-16 17:00 Symbol Table multiwavegrid_interp.f90 Name Object Declared Type Bytes Dimen Elements Attributes References MAPSTA Local 937 I(4) 4 2 1 PTR 222,580,937,995 MOD Func 918 scalar 918,919,920,921,922,952,953,954,95 5 NG Local 2126 I(4) 4 scalar 176,177,179,191,205,211,212,213,23 3,251,256,597,598,599,600,601,607, 619,621,633,650,651,652,653,654,65 6,2126 NGRD Dummy 737 I(4) 4 scalar ARG,IN 831 NGRDS Local 939 I(4) 4 scalar 571,577,939,999 NMAPDRY Local 798 I(4) 4 scalar 942,957,962,966 NMAPICE Local 798 I(4) 4 scalar 941,956,961,965 NMAPLND Local 798 I(4) 4 scalar 943,958,963,967 NMAPMSK Local 798 I(4) 4 scalar 944,959,964,968 NOSWLL_MIN Dummy 737 I(4) 4 scalar ARG,IN 812,813,814,815,816,1287,1789 NP Local 949 I(4) 4 scalar 313,561,949,961,962,963,964,1095 NSEA Dummy 737 I(4) 4 scalar ARG,IN 914 PHIAW Local 878 R(4) 4 1 1 PTR 878,1900,1901,1903 PHIAW Local 1415 R(4) 4 1 1 PTR 1415,1418,1420 PHIAWAUX Local 819 R(4) 4 scalar 1055,1417,1418,1420,1898,1899,1901 ,1903 PHIBBL Local 908 R(4) 4 1 1 PTR 908,2062,2063,2065 PHIBBL Local 1599 R(4) 4 1 1 PTR 1599,1602,1604 PHIBBLAUX Local 827 R(4) 4 scalar 1088,1601,1602,1604,2060,2061,2063 ,2065 PHIOC Local 893 R(4) 4 1 1 PTR 893,1981,1982,1984 PHIOC Local 1508 R(4) 4 1 1 PTR 1508,1511,1513 PHIOCAUX Local 824 R(4) 4 scalar 1072,1510,1511,1513,1979,1980,1982 ,1984 PHS Local 863 R(4) 4 2 1 PTR 863,1793,1794,1796 PHS Local 1290 R(4) 4 2 1 PTR 1290,1293,1296 PHSAUX Local 812 R(4) 4 1 0 1039,1292,1293,1295,1791,1792,1794 ,1797 PLP Local 865 R(4) 4 2 1 PTR 865,1813,1814,1816 PLP Local 1314 R(4) 4 2 1 PTR 1314,1317,1320 PLPAUX Local 813 R(4) 4 1 0 1041,1316,1317,1319,1811,1812,1814 ,1817 PNR Local 870 R(4) 4 1 1 PTR 870 PRMS Local 898 R(4) 4 1 1 PTR 898,2015,2016,2019 PRMS Local 1545 R(4) 4 1 1 PTR 1545,1548,1551 PRMSAUX Local 825 R(4) 4 scalar 1077,1547,1548,1551,2012,2013,2016 ,2019 PSI Local 867 R(4) 4 2 1 PTR 867,1839,1840,1842 PSI Local 1343 R(4) 4 2 1 PTR 1343,1346,1349 PSIAUX Local 813 R(4) 4 1 0 1044,1345,1346,1348,1837,1838,1840 ,1843 PTH Local 866 R(4) 4 2 1 PTR 866,1824,1827,1830,1832,1833 PTH Local 1326 R(4) 4 2 1 PTR 1326,1330,1332,1335,1337 PTHAUX1 Local 814 R(4) 4 1 0 1042,1328,1329,1334,1821,1822,1825 ,1827,1829,1833 PTHAUX2 Local 815 R(4) 4 1 0 1043,1331,1336,1823,1826,1827,1831 ,1833 PTP Local 864 R(4) 4 2 1 PTR 864,1803,1804,1806 PTP Local 1302 R(4) 4 2 1 PTR 1302,1305,1308 PTPAUX Local 812 R(4) 4 1 0 1040,1304,1305,1307,1801,1802,1804 ,1807 Page 44 Source Listing W3EXGI 2014-09-16 17:00 Symbol Table multiwavegrid_interp.f90 Name Object Declared Type Bytes Dimen Elements Attributes References PWS Local 868 R(4) 4 2 1 PTR 868,1849,1850,1852 PWS Local 1355 R(4) 4 2 1 PTR 1355,1358,1361 PWSAUX Local 814 R(4) 4 1 0 1045,1357,1358,1360,1847,1848,1850 ,1853 PWST Local 869 R(4) 4 1 1 PTR 869,1861,1862,1864 PWST Local 1369 R(4) 4 1 1 PTR 1369,1372,1374 PWSTAUX Local 815 R(4) 4 scalar 1046,1371,1372,1374,1859,1860,1862 ,1864 REAL Func 1632 scalar 559,1632,1634,1642,1643,1645,1646, 1654,1655,1657,1658,1665,1667,1674 ,1676,1683,1685,1692,1694,1701,170 3,1710,1712,1719,1721,1728,1730,17 37,1739,1746,1748,1756,1757,1760,1 761,1769,1771,1779,1780,1783,1784, 1794,1797,1804,1807,1814,1817,1825 ,1826,1829,1831,1840,1843,1850,185 3,1862,1864,1872,1873,1875,1876,18 83,1885,1892,1894,1901,1903,1911,1 912,1914,1915,1923,1924,1926,1927, 1935,1938,1948,1949,1950,1952,1953 ,1954,1962,1963,1965,1966,1973,197 5,1982,1984,1992,1993,1995,1996,20 04,2005,2007,2008,2016,2017,2019,2 020,2028,2029,2031,2032,2040,2041, 2043,2044,2052,2055,2063,2065,2073 ,2074,2077,2079 SED_D50AUX Local 805 R(4) 4 scalar 1019 SIN Func 1253 scalar 1253,1256,1277,1282,1332,1337,1761 ,1784,1832 SQRT Func 2094 scalar 275,278,2094,2101,2108,2115 SUMGRD Local 801 I(4) 4 scalar 938,973,982,1632,1634,1642,1643,16 45,1646,1654,1655,1657,1658,1665,1 667,1674,1676,1683,1685,1692,1694, 1701,1703,1710,1712,1719,1721,1728 ,1730,1737,1739,1746,1748,1756,175 7,1760,1761,1769,1771,1779,1780,17 83,1784,1794,1797,1804,1807,1814,1 817,1825,1826,1829,1831,1840,1843, 1850,1853,1862,1864,1872,1873,1875 ,1876,1883,1885,1892,1894,1901,190 3,1911,1912,1914,1915,1923,1924,19 26,1927,1935,1938,1948,1949,1950,1 952,1953,1954,1962,1963,1965,1966, 1973,1975,1982,1984,1992,1993,1995 ,1996,2004,2005,2007,2008,2016,201 7,2019,2020,2028,2029,2031,2032,20 40,2041,2043,2044,2052,2055,2063,2 065,2073,2074,2077,2079 SUMWT Local 1007 R(4) 4 scalar 292,298,311,1007 SUMWT1 Local 806 R(4) 4 1 10 1020,1103,1114,1127,1140,1151,1162 ,1173,1630,1639,1640,1651,1652,166 3,1672,1681,1690 SUMWT2 Local 810 R(4) 4 1 10 1035,1184,1195,1206,1217,1228,1239 ,1250,1263,1274,1699,1708,1717,172 6,1735,1744,1753,1754,1767,1776,17 Page 45 Source Listing W3EXGI 2014-09-16 17:00 Symbol Table multiwavegrid_interp.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 77 SUMWT4 Local 816 R(4) 4 2 0 1047,1291,1303,1315,1327,1344,1356 ,1370,1792,1802,1812,1822,1823,183 8,1848,1860 SUMWT5 Local 820 R(4) 4 1 10 1061,1381,1394,1405,1416,1427,1440 ,1869,1870,1881,1890,1899,1908,190 9,1920,1921 SUMWT6 Local 825 R(4) 4 1 10 1079,1470,1485,1498,1509,1520,1533 ,1546,1944,1945,1946,1959,1960,197 1,1980,1989,1990,2001,2002,2013,20 14 SUMWT7 Local 828 R(4) 4 1 10 1090,1559,1572,1600,1611,2025,2026 ,2037,2038,2061,2070,2071 SUMWTB Local 829 R(4) 4 1 3 1091,1586,2050 SUMWTC Local 821 R(4) 4 1 4 1062,1455,1933 SXX Local 887 R(4) 4 1 1 PTR 887,1947,1948,1952 SXX Local 1469 R(4) 4 1 1 PTR 1469,1472,1476 SXXAUX Local 823 R(4) 4 scalar 1066,1471,1472,1476,1943,1944,1948 ,1952 SXY Local 888 R(4) 4 1 1 PTR 888,1949,1953 SXY Local 1473 R(4) 4 1 1 PTR 1473,1477 SXYAUX Local 823 R(4) 4 scalar 1067,1473,1477,1945,1949,1953 SYY Local 889 R(4) 4 1 1 PTR 889,1950,1954 SYY Local 1474 R(4) 4 1 1 PTR 1474,1478 SYYAUX Local 823 R(4) 4 scalar 1068,1474,1478,1946,1950,1954 T01 Local 855 R(4) 4 1 1 PTR 855,1736,1737,1739 T01 Local 1227 R(4) 4 1 1 PTR 1227,1230,1232 T01AUX Local 808 R(4) 4 scalar 1028,1229,1230,1232,1734,1735,1737 ,1739 T02 Local 853 R(4) 4 1 1 PTR 853,1718,1719,1721 T02 Local 1205 R(4) 4 1 1 PTR 1205,1208,1210 T02AUX Local 808 R(4) 4 scalar 1026,1207,1208,1210,1716,1717,1719 ,1721 T0M1 Local 854 R(4) 4 1 1 PTR 854,1727,1728,1730 T0M1 Local 1216 R(4) 4 1 1 PTR 1216,1219,1221 T0M1AUX Local 808 R(4) 4 scalar 1027,1218,1219,1221,1725,1726,1728 ,1730 TAUBBL Local 909 R(4) 4 2 1 PTR 909,2072,2073,2074,2076,2078 TAUBBL Local 1610 R(4) 4 2 1 PTR 1610,1613,1614,1617,1619 TAUBBLAUX Local 828 R(4) 4 1 2 1089,1612,1613,1614,1616,1618,2069 ,2070,2071,2073,2074,2077,2079 TAUOX Local 890 R(4) 4 1 1 PTR 890,1961,1962,1965 TAUOX Local 1484 R(4) 4 1 1 PTR 1484,1487,1490 TAUOXAUX Local 823 R(4) 4 scalar 1069,1486,1487,1490,1958,1959,1962 ,1965 TAUOY Local 891 R(4) 4 1 1 PTR 891,1963,1966 TAUOY Local 1488 R(4) 4 1 1 PTR 1488,1491 TAUOYAUX Local 823 R(4) 4 scalar 1070,1488,1491,1960,1963,1966 TAUWIX Local 879 R(4) 4 1 1 PTR 879,1910,1911,1914 TAUWIX Local 1426 R(4) 4 1 1 PTR 1426,1429,1432 TAUWIXAUX Local 819 R(4) 4 scalar 1056,1428,1429,1432,1907,1908,1911 ,1914 TAUWIY Local 880 R(4) 4 1 1 PTR 880,1912,1915 TAUWIY Local 1430 R(4) 4 1 1 PTR 1430,1433 TAUWIYAUX Local 819 R(4) 4 scalar 1057,1430,1433,1909,1912,1915 Page 46 Source Listing W3EXGI 2014-09-16 17:00 Symbol Table multiwavegrid_interp.f90 Name Object Declared Type Bytes Dimen Elements Attributes References TAUWNX Local 881 R(4) 4 1 1 PTR 881,1922,1923,1926 TAUWNX Local 1439 R(4) 4 1 1 PTR 1439,1442,1445 TAUWNXAUX Local 819 R(4) 4 scalar 1058,1441,1442,1445,1919,1920,1923 ,1926 TAUWNY Local 882 R(4) 4 1 1 PTR 882,1924,1927 TAUWNY Local 1443 R(4) 4 1 1 PTR 1443,1446 TAUWNYAUX Local 820 R(4) 4 scalar 1059,1443,1446,1921,1924,1927 THM Local 857 R(4) 4 1 1 PTR 857,1755,1758,1760,1761,1762 THM Local 1249 R(4) 4 1 1 PTR 1249,1252,1253,1255,1256 THMAUX1 Local 809 R(4) 4 scalar 1030,1251,1252,1255,1752,1753,1756 ,1758,1760,1762 THMAUX2 Local 809 R(4) 4 scalar 1031,1253,1256,1754,1757,1758,1761 ,1762 THP0 Local 859 R(4) 4 1 1 PTR 859,1778,1781,1783,1784,1785 THP0 Local 1273 R(4) 4 1 1 PTR 1273,1276,1277,1280,1282 THP0AUX1 Local 809 R(4) 4 scalar 1033,1275,1276,1279,1775,1776,1779 ,1781,1783,1785 THP0AUX2 Local 810 R(4) 4 scalar 1034,1277,1281,1777,1780,1781,1784 ,1785 THS Local 858 R(4) 4 1 1 PTR 858,1768,1769,1771 THS Local 1262 R(4) 4 1 1 PTR 1262,1265,1267 THSAUX Local 809 R(4) 4 scalar 1032,1264,1265,1267,1766,1767,1769 ,1771 TPMS Local 899 R(4) 4 1 1 PTR 899,2017,2020 TPMS Local 1549 R(4) 4 1 1 PTR 1549,1552 TPMSAUX Local 825 R(4) 4 scalar 1078,1549,1552,2014,2017,2020 TUSX Local 894 R(4) 4 1 1 PTR 894,1991,1992,1995 TUSX Local 1519 R(4) 4 1 1 PTR 1519,1522,1525 TUSXAUX Local 824 R(4) 4 scalar 1073,1521,1522,1525,1988,1989,1992 ,1995 TUSY Local 895 R(4) 4 1 1 PTR 895,1993,1996 TUSY Local 1523 R(4) 4 1 1 PTR 1523,1526 TUSYAUX Local 824 R(4) 4 scalar 1074,1523,1526,1990,1993,1996 UA Local 842 R(4) 4 1 1 PTR 842,1653,1654,1657,2091,2092,2094 UA Local 1126 R(4) 4 1 1 PTR 1126,1129,1132 UAAUX Local 804 R(4) 4 scalar 1013,1128,1129,1132,1650,1651,1654 ,1657 UBA Local 905 R(4) 4 1 1 PTR 905,2039,2040,2043,2112,2113,2115 UBA Local 1574 R(4) 4 1 1 PTR 1574,1577 UBAAUX Local 827 R(4) 4 scalar 1085,1573,1574,1577,2036,2037,2040 ,2043 UBD Local 906 R(4) 4 1 1 PTR 906,2041,2044,2114,2116 UBD Local 1575 R(4) 4 1 1 PTR 1575,1578 UBDAUX Local 827 R(4) 4 scalar 1086,1575,1578,2038,2041,2044 UD Local 843 R(4) 4 1 1 PTR 843,1655,1658,2093,2095 UD Local 1130 R(4) 4 1 1 PTR 1130,1133 UDAUX Local 804 R(4) 4 scalar 1014,1130,1133,1652,1655,1658 UNDEF Local 839 R(4) 4 scalar 88,839,840,841,842,843,844,845,846 ,847,851,852,853,854,855,856,857,8 58,859,863,864,865,866,867,868,869 ,870,874,875,876,877,878,879,880,8 81,882,883,887,888,889,890,891,892 ,893,894,895,896,897,898,899,903,9 04,905,906,907,908,909,1010,1011,1 012,1013,1014,1015,1016,1017,1018, Page 47 Source Listing W3EXGI 2014-09-16 17:00 Symbol Table multiwavegrid_interp.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 1019,1024,1025,1026,1027,1028,1029 ,1030,1031,1032,1033,1034,1039,104 0,1041,1042,1043,1044,1045,1046,10 51,1052,1053,1054,1055,1056,1057,1 058,1059,1060,1066,1067,1068,1069, 1070,1071,1072,1073,1074,1075,1076 ,1077,1078,1083,1084,1085,1086,108 7,1088,1089,1102,1104,1113,1115,11 26,1128,1139,1141,1150,1152,1161,1 163,1172,1174,1183,1185,1194,1196, 1205,1207,1216,1218,1227,1229,1238 ,1240,1249,1251,1262,1264,1273,127 5,1290,1292,1302,1304,1314,1316,13 26,1328,1343,1345,1355,1357,1369,1 371,1380,1382,1393,1395,1404,1406, 1415,1417,1426,1428,1439,1441,1454 ,1456,1469,1471,1484,1486,1497,149 9,1508,1510,1519,1521,1532,1534,15 45,1547,1558,1560,1571,1573,1585,1 587,1599,1601,1610,1612,1629,1631, 1638,1641,1650,1653,1662,1664,1671 ,1673,1680,1682,1689,1691,1698,170 0,1707,1709,1716,1718,1725,1727,17 34,1736,1743,1745,1752,1755,1766,1 768,1775,1778,1791,1793,1801,1803, 1811,1813,1821,1824,1837,1839,1847 ,1849,1859,1861,1868,1871,1880,188 2,1889,1891,1898,1900,1907,1910,19 19,1922,1932,1934,1943,1947,1958,1 961,1970,1972,1979,1981,1988,1991, 2000,2003,2012,2015,2024,2027,2036 ,2039,2049,2051,2060,2062,2069,207 2,2091,2098,2105,2112 USEGRID Local 831 L(4) 4 1 0 972,979,1001 USSX Local 896 R(4) 4 1 1 PTR 896,2003,2004,2007 USSX Local 1532 R(4) 4 1 1 PTR 1532,1535,1538 USSXAUX Local 824 R(4) 4 scalar 1075,1534,1535,1538,2000,2001,2004 ,2007 USSY Local 897 R(4) 4 1 1 PTR 897,2005,2008 USSY Local 1536 R(4) 4 1 1 PTR 1536,1539 USSYAUX Local 825 R(4) 4 scalar 1076,1536,1539,2002,2005,2008 UST Local 874 R(4) 4 1 1 PTR 93,874,1871,1872,1875,2098,2099,21 01 UST Local 1380 R(4) 4 1 1 PTR 1380,1383,1386 USTAUX1 Local 818 R(4) 4 scalar 1051,1382,1383,1386,1868,1869,1872 ,1875 USTAUX2 Local 818 R(4) 4 scalar 1052,1384,1387,1870,1873,1876 USTDIR Local 875 R(4) 4 1 1 PTR 93,875,1873,1876,2100,2102 USTDIR Local 1384 R(4) 4 1 1 PTR 1384,1387 VAR1 Local 802 R(4) 4 scalar 2092,2094,2095,2099,2101,2102,2106 ,2108,2109,2113,2115,2116 VAR2 Local 802 R(4) 4 scalar 2093,2094,2095,2100,2101,2102,2107 ,2108,2109,2114,2115,2116 VAR3 Local 802 R(4) 4 scalar W3ADATMD Module 785 785 Page 48 Source Listing W3EXGI 2014-09-16 17:00 Symbol Table multiwavegrid_interp.f90 Name Object Declared Type Bytes Dimen Elements Attributes References W3EXGI Subr 737 656 W3IOGO Subr 787 787,2126 W3IOGOMD Module 787 787 W3WDATMD Module 786 786 WADATS Local 1102 RECORD 15976 1 1 ALC,TGT 1102,1105,1107,1113,1116,1117,1119 ,1120,1126,1129,1130,1132,1133,113 9,1142,1144,1183,1186,1188,1194,11 97,1199,1205,1208,1210,1216,1219,1 221,1227,1230,1232,1238,1241,1243, 1249,1252,1253,1255,1256,1262,1265 ,1267,1273,1276,1277,1280,1282,129 0,1293,1296,1302,1305,1308,1314,13 17,1320,1326,1330,1332,1335,1337,1 343,1346,1349,1355,1358,1361,1369, 1372,1374,1393,1396,1398,1404,1407 ,1409,1415,1418,1420,1426,1429,143 0,1432,1433,1439,1442,1443,1445,14 46,1454,1457,1461,1469,1472,1473,1 474,1476,1477,1478,1484,1487,1488, 1490,1491,1497,1500,1502,1508,1511 ,1513,1519,1522,1523,1525,1526,153 2,1535,1536,1538,1539,1545,1548,15 49,1551,1552,1558,1561,1562,1564,1 565,1571,1574,1575,1577,1578,1585, 1588,1592,1599,1602,1604,1610,1613 ,1614,1617,1619 WDATAS Local 1150 RECORD 632 1 1 ALC,TGT 93,631,650,1150,1153,1155,1161,116 4,1166,1172,1175,1177,1380,1383,13 84,1386,1387 WHITECAP Local 883 R(4) 4 2 1 PTR 883,1934,1935,1937 WHITECAP Local 1454 R(4) 4 2 1 PTR 1454,1457,1461 WHITECAPAUX Local 820 R(4) 4 1 4 1060,1456,1457,1460,1932,1933,1935 ,1938 WLM Local 852 R(4) 4 1 1 PTR 852,1709,1710,1712 WLM Local 1194 R(4) 4 1 1 PTR 1194,1197,1199 WLMAUX Local 808 R(4) 4 scalar 1025,1196,1197,1199,1707,1708,1710 ,1712 WLV Local 845 R(4) 4 1 1 PTR 93,845,1673,1674,1676 WLV Local 1150 R(4) 4 1 1 PTR 1150,1153,1155 WLVAUX Local 805 R(4) 4 scalar 1016,1152,1153,1155,1671,1672,1674 ,1676 WT Alloc 1098 R(4) 4 1 1 ALC 307,311,553,559,1098 WT Local 802 R(4) 4 scalar 1098,1103,1105,1107,1114,1116,1117 ,1119,1120,1127,1129,1130,1132,113 3,1140,1142,1144,1151,1153,1155,11 62,1164,1166,1173,1175,1177,1184,1 186,1188,1195,1197,1199,1206,1208, 1210,1217,1219,1221,1228,1230,1232 ,1239,1241,1243,1250,1252,1253,125 5,1256,1263,1265,1267,1274,1276,12 77,1280,1282,1291,1293,1296,1303,1 305,1308,1315,1317,1320,1327,1330, 1332,1335,1337,1344,1346,1349,1356 ,1358,1361,1370,1372,1374,1381,138 3,1384,1386,1387,1394,1396,1398,14 Page 49 Source Listing W3EXGI 2014-09-16 17:00 Symbol Table multiwavegrid_interp.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 05,1407,1409,1416,1418,1420,1427,1 429,1430,1432,1433,1440,1442,1443, 1445,1446,1455,1458,1461,1470,1472 ,1473,1474,1476,1477,1478,1485,148 7,1488,1490,1491,1498,1500,1502,15 09,1511,1513,1520,1522,1523,1525,1 526,1533,1535,1536,1538,1539,1546, 1548,1549,1551,1552,1559,1561,1562 ,1564,1565,1572,1574,1575,1577,157 8,1586,1589,1592,1600,1602,1604,16 11,1613,1614,1617,1619 Page 50 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.f90 2136 !/ 2137 !/ End of WAVEGRID_INTERP -----------------------------------------------------/ 2138 !/ 2139 END PROGRAM WAVEGRID_INTERP ENTRY POINTS Name MAIN__ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 1000 Label 721 667 1001 Label 724 671 1002 Label 726 675 2000 Label 666 148 2001 Label 670 158,165,176,192 2002 Label 674 158,165,176,192 2111 Label 678 611,636 2222 Label 680 661 900 Label 686 150 901 Label 688 160 902 Label 689 171 903 Label 695 177 904 Label 696 193 905 Label 697 200 906 Label 701 202 907 Label 703 212 908 Label 709 235 909 Label 711 910 Label 712 617 911 Label 713 620 912 Label 714 621 913 Label 715 623 914 Label 716 648 950 Label 717 679 999 Label 718 681 ASF Local 93 R(4) 4 1 1 PTR 93 BRNCHCL Local 131 L(4) 4 scalar 493,497,500,526 BRNCHCR Local 131 L(4) 4 scalar 494,498,501,534 COMSTR Local 132 CHAR 1 scalar 158,159,160,164,175,189 CONSTANTS Module 81 81 COUNTF Local 119 I(4) 4 scalar 291,296,297,301,305,306,307,308,31 3,508,524,525,531,532,539,540,547, 551,552,553,554,559,561 COUNTG Local 119 I(4) 4 scalar 255,302,303,305,306,307,309,310,31 1,313,548,549,551,552,553,557,558, 559,561,571 DAREA Local 122 R(4) 4 scalar 234,284 DSEC21 Func 631 R(4) 4 scalar 631 DT Local 123 R(4) 4 1 4 275,278,282,283 DTEST Local 126 R(4) 4 scalar 631,632,641 Page 51 Source Listing W3EXGI 2014-09-16 17:00 Symbol Table multiwavegrid_interp.f90 Name Object Declared Type Bytes Dimen Elements Attributes References DTREQ Local 126 R(4) 4 scalar 165,166,167,171,642,658 EXTCDE Subr 94 94,668,672,676 FILEXT Local 192 CHAR 10 scalar 192,193,199 FLAGLL Local 239 L(4) 4 scalar 239,495,515,522,529,537 FLOGRD Local 619 L(4) 4 2 200 619,621 FNMPRE Local 88 CHAR 80 scalar 88,147,148 GR_INT Type 108 152 scalar 112,117 GR_WT Type 103 224 scalar 107,111 GSU Local 260 T_GSU 8 scalar 260 GTYPE Local 200 I(4) 4 scalar PTR 200,201 I Local 118 I(4) 4 scalar 266,267,268,272,273,275,276,278,27 9,293,294,295,297,298,308,309,310, 311,509,510,511,525,532,540,554,55 5,556,557,558,559,618,619,620,621 ICLOSE Local 200 I(4) 4 scalar PTR 200,495 ICLOSE Local 274 I(4) 4 scalar 274,526,534 ICLOSE_SMPL Param 274 I(4) 4 scalar 274,495,527,535 IDTIME Local 132 CHAR 23 scalar 170,171,647,648 IERR Local 118 I(4) 4 scalar 149,667,675 IG Local 118 I(4) 4 scalar 191,192,193,195,196,197,198,199,20 5,206,256,260,267,268,274,294,303, 304,509,510,511,512,513,526,534,54 9,550,555,556,601,602,607,608,609, 633,634 INGRD Local 131 L(4) 4 scalar 522,523,529,530,537,538 INT_MAP Local 130 R(4) 4 2 1 ALC 218,304,550,589 IOUT Local 125 I(4) 4 scalar 628,646,659 IS Local 127 I(4) 4 1 4 260,267,268,294,309 ISEA Local 118 I(4) 4 scalar 246,248,249,251,303,305,306,307,30 9,310,311,313,549,551,552,553,557, 558,559,561,571,577 ITRACE Subr 94 94,152 IX Local 118 I(4) 4 scalar 220,222,223,248,260,304,322,323,32 4,326,327,333,334,340,341,347,348, 354,356,357,370,371,384,385,391,39 2,403,405,406,419,420,433,434,440, 441,454,455,461,462,473,474,480,48 1,550,579,580,587,589 IXT Local 118 I(4) 4 scalar 510,512,513,555,557 IY Local 118 I(4) 4 scalar 221,222,223,249,260,304,322,323,32 4,325,326,327,333,334,340,341,347, 348,355,356,357,369,370,371,384,38 5,391,392,404,405,406,418,419,420, 433,434,440,441,453,454,455,461,46 2,473,474,480,481,550,579,580,588, 590 IYT Local 119 I(4) 4 scalar 511,512,513,556,558 J Local 118 I(4) 4 scalar 147,148,621 JS Local 127 I(4) 4 1 4 261,267,268,294,310 K Local 118 I(4) 4 scalar L360 Local 131 L(4) 4 scalar 131,241,496,516 LEN_TRIM Func 147 scalar 147 LPLC Local 131 L(4) 4 scalar 522,529,537 MAP Local 121 I(4) 4 2 1 ALC 218,223,589 MAPINT Local 128 I(4) 4 scalar 578,579 Page 52 Source Listing W3EXGI 2014-09-16 17:00 Symbol Table multiwavegrid_interp.f90 Name Object Declared Type Bytes Dimen Elements Attributes References MAPSF Local 510 I(4) 4 2 1 PTR 510,511,555,556 MAPSTA Local 294 I(4) 4 2 1 PTR 294 MAX Func 166 scalar 166,168 MAXVAL Func 241 scalar 241,498,501 MIN Func 213 scalar 213 MINVAL Func 240 scalar 240,497,500 NAPROC Local 89 I(4) 4 scalar PTR 89 NDSE Local 88 I(4) 4 scalar PTR 88,164,175,189,667,671,675 NDSI Local 120 I(4) 4 scalar 138,148,157,158,164,165,175,176,18 9,192 NDSM Local 120 I(4) 4 scalar 137,199 NDSO Local 120 I(4) 4 scalar 139,150,160,171,177,193,200,202,21 2,235,589,617,620,621,623,648,679, 681 NDST Local 89 I(4) 4 scalar PTR 89 NDSTRC Local 120 I(4) 4 scalar 141,152 NEXTLN Subr 94 94,164,175,189 NGRPP Param 88 I(4) 4 scalar 88,621 NINT Func 284 scalar 284 NOGRP Param 88 I(4) 4 scalar 88,618 NOSWLL Local 89 I(4) 4 scalar PTR 89 NOSWLL Local 205 I(4) 4 scalar 205,206,211,212,213 NOSWLL_MIN Local 119 I(4) 4 scalar 188,205,206,211,212,213,656 NOUT Local 125 I(4) 4 scalar 165,167,168,171,659 NS Local 119 I(4) 4 scalar 284,286,507 NSEA Local 235 I(4) 4 scalar PTR 235,237,246,656 NSEA Local 509 I(4) 4 scalar 509 NTRACE Local 120 I(4) 4 scalar 142,152 NX Local 200 I(4) 4 scalar PTR 200,218,220,324,403,587,589 NY Local 200 I(4) 4 scalar PTR 200,218,221,325,369,418,588,589,59 0 OUT1 Local 619 W3ODATMD^OTYPE1 1648 scalar 619,621 OUTPTS Local 88 RECORD 5136 1 1 ALC,TGT 88,205,206,211,212,213,619,621 PRTBLK Subr 95 95,589 RW Local 129 R(4) 4 1 4 261,295,298,311 SIGN Func 329 scalar 329,336,343,350,359,373,387,394,40 8,422,436,443,457,464,476,483 STME21 Subr 170 170,647 SX Local 234 R(4) 4 scalar PTR 234 SXT Local 122 R(4) 4 scalar 282,284 SY Local 234 R(4) 4 scalar PTR 234 SYT Local 122 R(4) 4 scalar 283,284 TICK21 Subr 642 642,658 TIME Local 93 I(4) 4 1 1 PTR 93 TIME Local 631 I(4) 4 1 2 631,650 TMP_INDX Local 121 I(4) 4 1 1 ALC 290,297,309,310,311,315,507,525,53 2,540,555,556,563 TOUT Local 125 I(4) 4 1 2 165,170,631,642,647,658 UNGTYPE Param 201 I(4) 4 scalar 201 W3ADATMD Module 86 86 W3ARRYMD Module 95 95 W3CKCL Local 522 scalar 522,529,537 W3CKCL_R4 Func 522 L(4) 4 scalar PRIV 522,529,537 W3DIMA Subr 86 86,598 W3DIMW Subr 92 92,599 Page 53 Source Listing W3EXGI 2014-09-16 17:00 Symbol Table multiwavegrid_interp.f90 Name Object Declared Type Bytes Dimen Elements Attributes References W3GDATMD Module 87 87 W3GRMP Local 260 scalar 260 W3GRMP_R4 Func 260 L(4) 4 scalar PRIV 260 W3GSRUMD Module 96 96 W3IDATMD Module 91 91 W3IOGO Subr 85 85,609,634 W3IOGOMD Module 85 85 W3IOGR Subr 199 199 W3IOGRMD Module 83 83 W3NAUX Subr 86 86,181 W3NDAT Subr 92 92,180 W3NINP Subr 182 182 W3NMOD Subr 179 179 W3NOUT Subr 90 90,183 W3ODATMD Module 88 88,90 W3SERVMD Module 94 94 W3SETA Subr 86 86,196,597,653 W3SETG Subr 198 198,233,652 W3SETO Subr 90 90,195,608,651 W3SETW Subr 92 92,197,654 W3TIMEMD Module 84 84 W3WDATMD Module 92 92,93 WAVEGRID_INTERP Prog 2 X0 Local 322 R(4) 4 scalar PTR 322,328,329,331,335,336,338,342,34 3,345,349,350,352,358,359,361,363, 365,366,367,372,373,375,377,379,38 0,381,386,387,389,393,394,396,398, 400,407,408,410,412,413,414,416,42 1,422,424,426,427,428,430,435,436, 438,442,443,445,447,449,456,457,45 9,463,464,466,468,470,475,476,478, 482,483,485,487,489 XCRNR Local 123 R(4) 4 1 5 267,270,273,275,278,331,338,345,35 2,361,363,365,366,367,375,377,379, 380,381,389,396,398,400,410,412,41 3,414,416,424,426,427,428,430,438, 445,447,449,459,466,468,470,478,48 5,487,489,497,498,500,501,522,529, 537 XGRD Local 240 R(4) 4 2 1 PTR 240,241,260,322,326,333,340,347,35 6,370,384,391,405,419,433,440,454, 461,473,480 XGRD Local 267 R(4) 4 2 1 PTR 267,512 XP Local 124 R(4) 4 1 4 XT Local 122 R(4) 4 scalar 326,328,329,331,333,335,336,338,34 0,342,343,345,347,349,350,352,356, 358,359,361,370,372,373,375,384,38 6,387,389,391,393,394,396,405,407, 408,410,419,421,422,424,433,435,43 6,438,440,442,443,445,454,456,457, 459,461,463,464,466,473,475,476,47 8,480,482,483,485,512,517,519,522, 528,536 XTT Local 122 R(4) 4 scalar 528,529,536,537 Y0 Local 323 R(4) 4 scalar PTR 323,332,339,346,353,362,364,365,36 Page 54 Source Listing W3EXGI 2014-09-16 17:00 Symbol Table multiwavegrid_interp.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 6,368,376,378,379,380,382,390,397, 399,401,411,412,413,415,417,425,42 6,427,429,431,439,446,448,450,460, 467,469,471,479,486,488,490 YCRNR Local 123 R(4) 4 1 5 268,271,276,279,332,339,346,353,36 2,364,365,366,368,376,378,379,380, 382,390,397,399,401,411,412,413,41 5,417,425,426,427,429,431,439,446, 448,450,460,467,469,471,479,486,48 8,490,522,529,537 YGRD Local 260 R(4) 4 2 1 PTR 260,323,327,334,341,348,357,371,38 5,392,406,420,434,441,455,462,474, 481 YGRD Local 268 R(4) 4 2 1 PTR 268,513 YP Local 124 R(4) 4 1 4 YT Local 122 R(4) 4 scalar 327,332,334,339,341,346,348,353,35 7,362,371,376,385,390,392,397,406, 411,420,425,434,439,441,446,455,46 0,462,467,474,479,481,486,513,522, 529,537 Page 55 Source Listing W3EXGI 2014-09-16 17:00 Subprograms/Common Blocks multiwavegrid_interp.f90 SUBPROGRAMS/COMMON BLOCKS Name Object Declared Type Bytes Dimen Elements Attributes References W3EXGI Subr 737 656 WAVEGRID_INTERP 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 56 Source Listing W3EXGI 2014-09-16 17:00 multiwavegrid_interp.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 : multiwavegrid_interp.lst -o filename : none COMPILER: Intel(R) Fortran 12.1-2100