Page 1 Source Listing W3IOPP 2014-09-16 16:48 w3iopomd.f90 1 !/ ------------------------------------------------------------------- / 2 MODULE W3IOPOMD 3 !/ 4 !/ +-----------------------------------+ 5 !/ | WAVEWATCH III NOAA/NCEP | 6 !/ | H. L. Tolman | 7 !/ | FORTRAN 90 | 8 !/ | Last update : 11-Nov-2013 | 9 !/ +-----------------------------------+ 10 !/ 11 !/ 25-Jan-2001 : Origination. ( version 2.00 ) 12 !/ 24-Jan-2001 : Flat grid version. ( version 2.06 ) 13 !/ 11-Jun-2001 : Clean-up. ( version 2.11 ) 14 !/ 10-Nov-2004 : Multiple grid version. ( version 3.06 ) 15 !/ 27-Jun-2006 : Adding file name preamble. ( version 3.09 ) 16 !/ 25-Jul-2006 : Adding grid ID per point. ( version 3.10 ) 17 !/ 01-May-2007 : Move O7a output from W3INIT. ( version 3.11 ) 18 !/ 29-May-2009 : Preparing distribution version. ( version 3.14 ) 19 !/ 30-Oct-2009 : Implement run-time grid selection. ( version 3.14 ) 20 !/ (W. E. Rogers & T. J. Campbell, NRL) 21 !/ 30-Oct-2009 : Implement curvilinear grid type. ( version 3.14 ) 22 !/ (W. E. Rogers & T. J. Campbell, NRL) 23 !/ 29-Oct-2010 : Implement unstructured grid ( version 3.14.4 ) 24 !/ (A. Roland and F. Ardhuin) 25 !/ 06-Dec-2010 : Change from GLOBAL (logical) to ICLOSE (integer) to 26 !/ specify index closure for a grid. ( version 3.14 ) 27 !/ (T. J. Campbell, NRL) 28 !/ 12-Jun-2012 : Add /RTD option or rotated grid option. 29 !/ (Jian-Guo Li) ( version 4.06 ) 30 !/ 02-Sep-2012 : Clean up of open BC for UG grids ( version 4.07 ) 31 !/ 25-Feb-2013 : ITOUT=0 bug correction for UG grids ( version 4.08 ) 32 !/ 11-Nov-2013 : SMC and rotated grid incorporated in the main 33 !/ trunk ( version 4.13 ) 34 !/ 35 !/ Copyright 2009 National Weather Service (NWS), 36 !/ National Oceanic and Atmospheric Administration. All rights 37 !/ reserved. WAVEWATCH III is a trademark of the NWS. 38 !/ No unauthorized use without permission. 39 !/ 40 ! 1. Purpose : 41 ! 42 ! Process point output. 43 ! 44 ! 2. Variables and types : 45 ! 46 ! Name Type Scope Description 47 ! ---------------------------------------------------------------- 48 ! VEROPT C*10 Private Point output file version number. 49 ! IDSTR C*32 Private Point output file ID string. 50 ! ---------------------------------------------------------------- 51 ! 52 ! 3. Subroutines and functions : 53 ! 54 ! Name Type Scope Description 55 ! ---------------------------------------------------------------- 56 ! W3IOPP Subr. Public Preprocessing of point output req. 57 ! W3IOPE Subr. Public Extract point data from grid. Page 2 Source Listing W3IOPP 2014-09-16 16:48 w3iopomd.f90 58 ! W3IOPO Subr. Public Point data IO. 59 ! ---------------------------------------------------------------- 60 ! 61 ! 4. Subroutines and functions used : 62 ! 63 ! Name Type Module Description 64 ! ---------------------------------------------------------------- 65 ! W3SETO Subr. W3ODATMD Data structure management. 66 ! W3SETG Subr. W3GDATMD Data structure management. 67 ! W3SETW Subr. W3WDATMD Data structure management. 68 ! W3DMO2 Subr. W3ODATMD Data structure management. 69 ! STRACE Subr. W3SERVMD Subroutine tracing. 70 ! EXTCDE Subr. W3SERVMD Program abort with exit code. 71 ! MPI_STARTALL, MPIWAITALL 72 ! Subr. MPI persistent communication routines. 73 ! ---------------------------------------------------------------- 74 ! 75 ! 5. Remarks : 76 ! 77 ! - Allocation of allocatable arrays takes place at different 78 ! places throughout the code, in W3IOPP on write, and in 79 ! W3IOPO on read. 80 ! 81 ! 6. Switches : 82 ! 83 ! !/S Enable subroutine tracing. 84 ! !/T Enable test output. 85 ! 86 ! !/SHRD Switch for shared / distributed memory architecture. 87 ! !/DIST Id. 88 ! !/MPI MPI message passing. 89 ! 90 ! !/O7a Diagnostic output for output points. 91 ! 92 ! 7. Source code : 93 ! 94 !/ ------------------------------------------------------------------- / 95 PUBLIC 96 !/ 97 !/ Private parameter statements (ID strings) 98 !/ 99 CHARACTER(LEN=10), PARAMETER, PRIVATE :: VEROPT = 'III 2.01 ' 100 CHARACTER(LEN=31), PARAMETER, PRIVATE :: & 101 IDSTR = 'WAVEWATCH III POINT OUTPUT FILE' 102 !/ 103 CONTAINS 104 !/ ------------------------------------------------------------------- / 105 SUBROUTINE W3IOPP ( NPT, XPT, YPT, PNAMES, IMOD ) 106 !/ 107 !/ +-----------------------------------+ 108 !/ | WAVEWATCH III NOAA/NCEP | 109 !/ | H. L. Tolman | 110 !/ | FORTRAN 90 | 111 !/ | Last update : 02-Sep-2012 | 112 !/ +-----------------------------------+ 113 !/ 114 !/ 14-Jan-1999 : Distributed FORTRAN 77 version. ( version 1.18 ) Page 3 Source Listing W3IOPP 2014-09-16 16:48 w3iopomd.f90 115 !/ 30-Dec-1999 : Upgrade to FORTRAN 90 ( version 2.00 ) 116 !/ Major changes to logistics. 117 !/ 24-Jan-2001 : Flat grid version. ( version 2.06 ) 118 !/ 09-Nov-2004 : Multiple grid version. ( version 3.06 ) 119 !/ 25-Jul-2006 : Adding grid ID per point. ( version 3.10 ) 120 !/ 01-May-2007 : Move O7a output from W3INIT. ( version 3.11 ) 121 !/ 30-Oct-2009 : Implement run-time grid selection. ( version 3.14 ) 122 !/ (W. E. Rogers & T. J. Campbell, NRL) 123 !/ 30-Oct-2009 : Implement curvilinear grid type. ( version 3.14 ) 124 !/ (W. E. Rogers & T. J. Campbell, NRL) 125 !/ 06-Dec-2010 : Change from GLOBAL (logical) to ICLOSE (integer) to 126 !/ specify index closure for a grid. ( version 3.14 ) 127 !/ (T. J. Campbell, NRL) 128 !/ 12-Jun-2012 : Add /RTD option or rotated grid option. 129 !/ (Jian-Guo Li) ( version 4.06 ) 130 !/ 02-Sep-2012 : Clean up of open BC for UG grids ( version 4.07 ) 131 !/ 132 ! 1. Purpose : 133 ! 134 ! Preprocessing of point output. 135 ! 136 ! 2. Method : 137 ! 138 ! Check location of points in grid and calculate interpolation 139 ! factors. 140 ! 141 ! 3. Parameters : 142 ! 143 ! Parameter list 144 ! ---------------------------------------------------------------- 145 ! NPT Int. I Number of output points in input. 146 ! XPT R.A. I/O X (longitude) coordinates of output points. 147 ! YPT R.A. I/O Id. Y. 148 ! PNAMES C*10 I Names of output points. 149 ! IMOD Int. I Grid ID number. 150 ! ---------------------------------------------------------------- 151 ! 152 ! Local data 153 ! ---------------------------------------------------------------- 154 ! ACC Real "Accuracy" factor to determine if output point 155 ! is grid point. 156 ! ---------------------------------------------------------------- 157 ! 158 ! 4. Subroutines used : 159 ! 160 ! See module documentation. 161 ! 162 ! 5. Called by : 163 ! 164 ! Name Type Module Description 165 ! ---------------------------------------------------------------- 166 ! W3INIT Subr. W3INITMD Wave model initialization routine. 167 ! ---------------------------------------------------------------- 168 ! 169 ! 6. Error messages : 170 ! 171 ! - Warnings for points out of the grid or on land. Page 4 Source Listing W3IOPP 2014-09-16 16:48 w3iopomd.f90 172 ! 173 ! 7. Remarks : 174 ! 175 ! - The output points are obtained by bi-linear interpolation from 176 ! the spectra at the grid points. Given the possibility of ice 177 ! coverage, the actual interpolation factors can only be 178 ! determined at the actual output time. Hence only the basic 179 ! bilinear interpolation factors are stored. 180 ! - Implementation of the /O7a diagnostic output section for curvilinear 181 ! grids is currently incomplete and non-functional. 182 ! 183 ! 8. Structure : 184 ! 185 ! ------------------------------------------- 186 ! Determine grid range 187 ! do for all defined points 188 ! ----------------------------------------- 189 ! Check if point within grid 190 ! Calculate interpolation data 191 ! Check if point not on land 192 ! Store interpolation data 193 ! ------------------------------------------- 194 ! 195 ! 9. Switches : 196 ! 197 ! !/S Enable subroutine tracing. 198 ! !/T Test output. 199 ! 200 ! !/O7a Diagnostic output for output points. 201 ! 202 ! 10. Source code : 203 ! 204 !/ ------------------------------------------------------------------- / 205 USE W3GSRUMD 206 USE W3GDATMD, ONLY: NTH, NK, NSPEC, NX, NY, X0, Y0, SX, GSU,& 207 RLGTYPE, CLGTYPE, UNGTYPE, GTYPE, FLAGLL, & 208 ICLOSE,ICLOSE_NONE,ICLOSE_SMPL,ICLOSE_TRPL, & 209 MAPSTA, MAPFS, FILEXT, ZB, TRNX, TRNY 210 USE W3GDATMD, ONLY: XYB, TRIGP,MAXX, MAXY, DXYMAX 211 USE W3ODATMD, ONLY: W3DMO2 212 USE W3ODATMD, ONLY: NDSE, NDST, IAPROC, NAPERR, NAPOUT, SCREEN, & 213 NOPTS, PTLOC, PTNME, GRDID, IPTINT, PTIFAC 214 USE W3SERVMD, ONLY: EXTCDE 215 USE W3TRIAMD 216 ! 217 IMPLICIT NONE 218 !/ 219 !/ ------------------------------------------------------------------- / 220 !/ Parameter list 221 !/ 222 INTEGER, INTENT(IN) :: NPT, IMOD 223 REAL, INTENT(INOUT) :: XPT(NPT), YPT(NPT) 224 CHARACTER(LEN=10),INTENT(IN) :: PNAMES(NPT) 225 !/ 226 !/ ------------------------------------------------------------------- / 227 !/ Local parameters 228 !/ Page 5 Source Listing W3IOPP 2014-09-16 16:48 w3iopomd.f90 229 LOGICAL :: INGRID 230 INTEGER :: IPT, J, K 231 INTEGER :: IX1, IY1, IXS, IYS 232 INTEGER :: IX(4), IY(4) ! Indices of points used in interp. 233 REAL :: RD(4) ! Interpolation coefficient 234 REAL, PARAMETER :: ACC = 0.05 235 REAL :: FACTOR 236 INTEGER :: ITOUT ! Triangle index in unstructured grids 237 ! 238 !/ 239 !/ 240 !/ ------------------------------------------------------------------- / 241 !/ 242 ! 243 IF ( FLAGLL ) THEN 244 FACTOR = 1. 245 ELSE 246 FACTOR = 1.E-3 247 END IF 248 ! 249 CALL W3DMO2 ( IMOD, NDSE, NDST, NPT ) 250 GRDID = FILEXT 251 ! 252 NOPTS = 0 253 ! 254 ! Removed by F.A. 2011/04/04 /T CALL W3GSUP( GSU, NDST ) 255 ! 256 ! Loop over output points 257 ! 258 DO IPT=1, NPT 259 ! 260 ! Check if point within grid and compute interpolation weights 261 ! 262 IF (GTYPE .NE. UNGTYPE) THEN 263 INGRID = W3GRMP( GSU, XPT(IPT), YPT(IPT), IX, IY, RD ) 264 ELSE 265 CALL IS_IN_UNGRID_INTERP(IPT, XPT, YPT, itout, IX, IY, RD) 266 INGRID = (ITOUT.GT.0) 267 END IF 268 ! 269 IF ( .NOT.INGRID ) THEN 270 IF ( IAPROC .EQ. NAPERR ) THEN 271 IF ( FLAGLL ) THEN 272 WRITE (NDSE,1000) XPT(IPT), YPT(IPT), PNAMES(IPT) 273 ELSE 274 WRITE (NDSE,1001) XPT(IPT), YPT(IPT), PNAMES(IPT) 275 END IF 276 END IF 277 CYCLE 278 END IF 279 ! 280 ! Check if point not on land 281 ! 282 IF ( MAPSTA(IY(1),IX(1)) .EQ. 0 .AND. & 283 MAPSTA(IY(2),IX(2)) .EQ. 0 .AND. & 284 MAPSTA(IY(3),IX(3)) .EQ. 0 .AND. & 285 MAPSTA(IY(4),IX(4)) .EQ. 0 ) THEN Page 6 Source Listing W3IOPP 2014-09-16 16:48 w3iopomd.f90 286 IF ( IAPROC .EQ. NAPERR ) THEN 287 IF ( FLAGLL ) THEN 288 WRITE (NDSE,1002) XPT(IPT), YPT(IPT), PNAMES(IPT) 289 ELSE 290 WRITE (NDSE,1003) XPT(IPT), YPT(IPT), PNAMES(IPT) 291 END IF 292 END IF 293 CYCLE 294 END IF 295 ! 296 ! Store interpolation data 297 ! 298 NOPTS = NOPTS + 1 299 ! 300 PTLOC (1,NOPTS) = XPT(IPT) 301 PTLOC (2,NOPTS) = YPT(IPT) 302 ! 303 DO K = 1,4 304 IPTINT(1,K,NOPTS) = IX(K) 305 IPTINT(2,K,NOPTS) = IY(K) 306 PTIFAC(K,NOPTS) = RD(K) 307 END DO 308 309 PTNME(NOPTS) = PNAMES(IPT) 310 ! 311 END DO ! End loop over output points (IPT). 312 ! 313 ! Diagnostic output 314 ! 315 316 ! 317 RETURN 318 ! 319 ! Formats 320 ! 321 1000 FORMAT (/' *** WAVEWATCH-III WARNING :'/ & 322 ' OUTPUT POINT OUT OF GRID : ',2F10.3,2X,A/ & 323 ' POINT SKIPPPED '/) 324 1001 FORMAT (/' *** WAVEWATCH-III WARNING :'/ & 325 ' OUTPUT POINT OUT OF GRID : ',2E10.3,2X,A/ & 326 ' POINT SKIPPPED '/) 327 ! 328 1002 FORMAT (/' *** WAVEWATCH-III WARNING :'/ & 329 ' OUTPUT POINT ON LAND : ',2F10.3,2X,A/ & 330 ' POINT SKIPPPED '/) 331 1003 FORMAT (/' *** WAVEWATCH-III WARNING :'/ & 332 ' OUTPUT POINT ON LAND : ',2E10.3,2X,A/ & 333 ' POINT SKIPPPED '/) 334 ! 335 !/ 336 !/ End of W3IOPP ----------------------------------------------------- / 337 !/ 338 END SUBROUTINE W3IOPP Page 7 Source Listing W3IOPP 2014-09-16 16:48 Entry Points w3iopomd.f90 ENTRY POINTS Name w3iopomd_mp_w3iopp_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 1000 Label 321 272 1001 Label 324 274 1002 Label 328 288 1003 Label 331 290 ACC Param 234 R(4) 4 scalar CLGTYPE Param 207 I(4) 4 scalar 207 DXYMAX Local 210 R(4) 4 scalar PTR 210 EXTCDE Subr 214 214 FACTOR Local 235 R(4) 4 scalar 244,246 FILEXT Local 209 CHAR 10 scalar PTR 209,250 FLAGLL Local 207 L(4) 4 scalar 207,243,271,287 GRDID Local 213 CHAR 10 1 1 PTR 213,250 GSU Local 206 T_GSU 8 scalar PTR 206,263 GTYPE Local 207 I(4) 4 scalar PTR 207,262 IAPROC Local 212 I(4) 4 scalar PTR 212,270,286 ICLOSE Local 208 I(4) 4 scalar PTR 208 ICLOSE_NONE Param 208 I(4) 4 scalar 208 ICLOSE_SMPL Param 208 I(4) 4 scalar 208 ICLOSE_TRPL Param 208 I(4) 4 scalar 208 IMOD Dummy 105 I(4) 4 scalar ARG,IN 249 INGRID Local 229 L(4) 4 scalar 263,266,269 IPT Local 230 I(4) 4 scalar 258,263,265,272,274,288,290,300,30 1,309 IPTINT Local 213 I(4) 4 3 1 PTR 213,304,305 IS_IN_UNGRID_INTERP Subr 265 265 ITOUT Local 236 I(4) 4 scalar 265,266 IX Local 232 I(4) 4 1 4 263,265,282,283,284,285,304 IX1 Local 231 I(4) 4 scalar IXS Local 231 I(4) 4 scalar IY Local 232 I(4) 4 1 4 263,265,282,283,284,285,305 IY1 Local 231 I(4) 4 scalar IYS Local 231 I(4) 4 scalar J Local 230 I(4) 4 scalar K Local 230 I(4) 4 scalar 303,304,305,306 MAPFS Local 209 I(4) 4 2 1 PTR 209 MAPSTA Local 209 I(4) 4 2 1 PTR 209,282,283,284,285 MAXX Local 210 R(4) 4 scalar PTR 210 MAXY Local 210 R(4) 4 scalar PTR 210 NAPERR Local 212 I(4) 4 scalar PTR 212,270,286 NAPOUT Local 212 I(4) 4 scalar PTR 212 NDSE Local 212 I(4) 4 scalar PTR 212,249,272,274,288,290 NDST Local 212 I(4) 4 scalar PTR 212,249 NK Local 206 I(4) 4 scalar PTR 206 NOPTS Local 213 I(4) 4 scalar PTR 213,252,298,300,301,304,305,306,30 Page 8 Source Listing W3IOPP 2014-09-16 16:48 Symbol Table w3iopomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 9 NPT Dummy 105 I(4) 4 scalar ARG,IN 223,224,249,258 NSPEC Local 206 I(4) 4 scalar PTR 206 NTH Local 206 I(4) 4 scalar PTR 206 NX Local 206 I(4) 4 scalar PTR 206 NY Local 206 I(4) 4 scalar PTR 206 PNAMES Dummy 105 CHAR 10 1 0 ARG,IN 272,274,288,290,309 PTIFAC Local 213 R(4) 4 2 1 PTR 213,306 PTLOC Local 213 R(4) 4 2 1 PTR 213,300,301 PTNME Local 213 CHAR 10 1 1 PTR 213,309 RD Local 233 R(4) 4 1 4 263,265,306 RLGTYPE Param 207 I(4) 4 scalar 207 SCREEN Local 212 I(4) 4 scalar PTR 212 SX Local 206 R(4) 4 scalar PTR 206 TRIGP Local 210 I(4) 4 2 1 PTR 210 TRNX Local 209 R(4) 4 2 1 PTR 209 TRNY Local 209 R(4) 4 2 1 PTR 209 UNGTYPE Param 207 I(4) 4 scalar 207,262 W3DMO2 Subr 211 211,249 W3GDATMD Module 206 206,210 W3GRMP Local 263 scalar 263 W3GRMP_R4 Func 263 L(4) 4 scalar PRIV 263 W3GSRUMD Module 205 205 W3IOPP Subr 105 W3ODATMD Module 211 211,212 W3SERVMD Module 214 214 W3TRIAMD Module 215 215 X0 Local 206 R(4) 4 scalar PTR 206 XPT Dummy 105 R(4) 4 1 0 ARG,TGT,INOUT 263,265,272,274,288,290,300 XYB Local 210 R(8) 8 2 1 PTR 210 Y0 Local 206 R(4) 4 scalar PTR 206 YPT Dummy 105 R(4) 4 1 0 ARG,TGT,INOUT 263,265,272,274,288,290,301 ZB Local 209 R(4) 4 1 1 PTR 209 Page 9 Source Listing W3IOPP 2014-09-16 16:48 w3iopomd.f90 339 !/ ------------------------------------------------------------------- / 340 SUBROUTINE W3IOPE ( A ) 341 !/ 342 !/ +-----------------------------------+ 343 !/ | WAVEWATCH III NOAA/NCEP | 344 !/ | H. L. Tolman | 345 !/ | FORTRAN 90 | 346 !/ | Last update : 30-Oct-2009 | 347 !/ +-----------------------------------+ 348 !/ 349 !/ 12-Jan-1999 : Distributed FORTRAN 77 version. ( version 1.18 ) 350 !/ 25-Jan-2000 : Upgrade to FORTRAN 90 ( version 2.00 ) 351 !/ Major changes to logistics. 352 !/ 11-Jun-2001 : Clean-up. ( version 2.11 ) 353 !/ 09-Nov-2004 : Multiple grid version. ( version 3.06 ) 354 !/ 30-Oct-2009 : Implement curvilinear grid type. ( version 3.14 ) 355 !/ (W. E. Rogers & T. J. Campbell, NRL) 356 !/ 29-Oct-2010 : Implement unstructured grids ( version 3.14.4 ) 357 !/ (A. Roland and F. Ardhuin) 358 !/ 12-Jun-2012 : Add /RTD option or rotated grid option. 359 !/ (Jian-Guo Li) ( version 4.06 ) 360 !/ 361 ! 1. Purpose : 362 ! 363 ! Extract point output data and store in output COMMONs. This 364 ! action is taken from an earlier version of W3IOPO so that the 365 ! point output postprocessor does not need the full sea-point 366 ! grid to be able to run. 367 ! Note that the output spectrum is F(f,theta). Interpolation 368 ! is performed for this spectrum. 369 ! 370 ! 3. Parameters : 371 ! 372 ! Parameter list 373 ! ---------------------------------------------------------------- 374 ! A R.A. I Action spectra on storage grid. 375 ! ---------------------------------------------------------------- 376 ! 377 ! 4. Subroutines used : 378 ! 379 ! See module documentation. 380 ! 381 ! 5. Called by : 382 ! 383 ! Name Type Module Description 384 ! ---------------------------------------------------------------- 385 ! W3WAVE Subr. W3WAVEMD Actual wave model routine. 386 ! ---------------------------------------------------------------- 387 ! 388 ! 6. Error messages : 389 ! 390 ! None. 391 ! 392 ! 7. Remarks : 393 ! 394 ! - To allow for dynamic ice edges, interpolation factors are 395 ! calculated for every time step separately. Page 10 Source Listing W3IOPE 2014-09-16 16:48 w3iopomd.f90 396 ! - Wind current and depth data are interpolated ignoring ice, 397 ! spectrum is interpolated removing ice points. 398 ! - Spectra are left in par list to allow for change of shape of 399 ! arrays. 400 ! - IMOD is not passed to this routine. Since it is used only 401 ! in W3WAVE, it is assumed that the pointer are set 402 ! appropriately outside this routine. 403 ! 404 ! 8. Structure : 405 ! 406 ! See source code. 407 ! 408 ! 9. Switches : 409 ! 410 ! !/SHRD Switch for shared / distributed memory architecture. 411 ! !/DIST Id. 412 ! !/MPI Switch for message passing method. 413 ! 414 ! !/S Enable subroutine tracing. 415 ! !/T Test output. 416 ! 417 ! 10. Source code : 418 ! 419 !/ ------------------------------------------------------------------- / 420 USE CONSTANTS 421 USE W3GDATMD, ONLY: NK, NTH, SIG, NX, NY, NSEA, NSEAL, & 422 MAPSTA, MAPFS 423 USE W3ADATMD, ONLY: CG, DW, UA, UD, AS, CX, CY, SP => SPPNT 424 USE W3ODATMD, ONLY: NDST, NOPTS, IPTINT, PTIFAC, IL, IW, II, & 425 DPO, WAO, WDO, ASO, CAO, CDO, SPCO 426 USE W3ODATMD, ONLY: IRQPO2 427 USE W3SERVMD, ONLY: EXTCDE 428 ! 429 IMPLICIT NONE 430 ! 431 INCLUDE "mpif.h" 432 !/ 433 !/ ------------------------------------------------------------------- / 434 !/ Parameter list 435 !/ 974 REAL, INTENT(IN) :: A(NTH,NK,0:NSEAL) 975 !/ 976 !/ ------------------------------------------------------------------- / 977 !/ Local parameters 978 !/ 979 INTEGER :: I, IX1, IY1, IX(4), IY(4), J, IS(4), & 980 IM(4), IK, ITH, ISP 981 INTEGER :: IOFF, IERR_MPI 982 INTEGER :: STAT(MPI_STATUS_SIZE,4*NOPTS) 983 REAL :: RD(4), RDS, RDI, FACRD, & 984 WNDX, WNDY, CURX, CURY, FAC1(NK), & 985 FAC2(NK), FAC3(NK), FAC4(NK) 986 !/ 987 !/ ------------------------------------------------------------------- / 988 !/ 989 ! 990 CX(0) = 0. Page 11 Source Listing W3IOPE 2014-09-16 16:48 w3iopomd.f90 991 CY(0) = 0. 992 ! 993 ! Loop over spectra -------------------------------------------------- * 994 ! 995 DO I=1, NOPTS 996 ! 997 ! Unpack interpolation data 998 ! 999 IX(:) = IPTINT(1,:,I) 1000 IY(:) = IPTINT(2,:,I) 1001 RD(:) = PTIFAC(:,I) 1002 ! 1003 ! Correct for land and ice and get sea point counters 1004 ! 1005 IL(I) = 0 1006 IW(I) = 0 1007 II(I) = 0 1008 RDS = 0. 1009 RDI = 0. 1010 ! 1011 DO J=1, 4 1012 IS(J) = MAPFS (IY(J),IX(J)) 1013 IM(J) = MAPSTA(IY(J),IX(J)) 1014 IF ( IM(J).GT.0 ) THEN 1015 IW(I) = IW(I) + 1 1016 RDS = RDS + RD(J) 1017 ELSE 1018 IF ( IM(J).LT.0 ) THEN 1019 II(I) = II(I) + 1 1020 RDI = RDI + RD(J) 1021 ELSE 1022 IL(I) = IL(I) + 1 1023 RD(J) = 0. 1024 END IF 1025 END IF 1026 END DO 1027 ! 1028 ! Depth, wind and current, ignore ice 1029 ! 1030 IF ( RDS+RDI .GT. 1.E-7 ) THEN 1031 FACRD = 1. / (RDS+RDI) 1032 RD = RD * FACRD 1033 END IF 1034 ! 1035 ! Interpolate depth wind and current 1036 ! 1037 DPO(I) = RD(1)*DW(IS(1)) + RD(2)*DW(IS(2)) + & 1038 RD(3)*DW(IS(3)) + RD(4)*DW(IS(4)) 1039 ! 1040 WNDX = RD(1) * UA(IS(1)) * COS(UD(IS(1))) + & 1041 RD(2) * UA(IS(2)) * COS(UD(IS(2))) + & 1042 RD(3) * UA(IS(3)) * COS(UD(IS(3))) + & 1043 RD(4) * UA(IS(4)) * COS(UD(IS(4))) 1044 WNDY = RD(1) * UA(IS(1)) * SIN(UD(IS(1))) + & 1045 RD(2) * UA(IS(2)) * SIN(UD(IS(2))) + & 1046 RD(3) * UA(IS(3)) * SIN(UD(IS(3))) + & 1047 RD(4) * UA(IS(4)) * SIN(UD(IS(4))) Page 12 Source Listing W3IOPE 2014-09-16 16:48 w3iopomd.f90 1048 ! 1049 WAO(I) = SQRT ( WNDX**2 + WNDY**2 ) 1050 IF ( WAO(I).GT.1.E-7 ) THEN 1051 WDO(I) = ATAN2(WNDY,WNDX) 1052 ELSE 1053 WDO(I) = 0. 1054 END IF 1055 ! 1056 ASO(I) = RD(1)*AS(IS(1)) + RD(2)*AS(IS(2)) + & 1057 RD(3)*AS(IS(3)) + RD(4)*AS(IS(4)) 1058 ! 1059 CURX = RD(1)*CX(IS(1)) + RD(2)*CX(IS(2)) + & 1060 RD(3)*CX(IS(3)) + RD(4)*CX(IS(4)) 1061 CURY = RD(1)*CY(IS(1)) + RD(2)*CY(IS(2)) + & 1062 RD(3)*CY(IS(3)) + RD(4)*CY(IS(4)) 1063 ! 1064 CAO(I) = SQRT ( CURX**2 + CURY**2 ) 1065 IF ( CAO(I).GT.1.E-7 ) THEN 1066 CDO(I) = ATAN2(CURY,CURX) 1067 ELSE 1068 CDO(I) = 0. 1069 END IF 1070 ! 1071 ! Interp. weights for spectra, no ice points (spectra by def. zero) 1072 ! 1073 IF ( RDS .GT. 1.E-7 ) THEN 1074 FACRD = (RDS+RDI) / RDS 1075 RD = RD * FACRD 1076 END IF 1077 ! 1078 ! Extract spectra, shared memory version 1079 ! (done in separate step for MPP compatibility) 1080 ! 1081 ! Extract spectra, distributed memory version(s) 1082 ! 1083 IOFF = 1 + 4*(I-1) 1084 CALL MPI_STARTALL ( 4, IRQPO2(IOFF), IERR_MPI ) 1085 CALL MPI_WAITALL ( 4, IRQPO2(IOFF), STAT, IERR_MPI ) 1086 ! 1087 ! Interpolate spectrum 1088 ! 1089 DO IK=1, NK 1090 FAC1(IK) = TPI * SIG(IK) / CG(IK,IS(1)) 1091 FAC2(IK) = TPI * SIG(IK) / CG(IK,IS(2)) 1092 FAC3(IK) = TPI * SIG(IK) / CG(IK,IS(3)) 1093 FAC4(IK) = TPI * SIG(IK) / CG(IK,IS(4)) 1094 END DO 1095 ! 1096 DO IK=1,NK 1097 DO ITH=1,NTH 1098 ISP = ITH + (IK-1)*NTH 1099 SPCO(ISP,I) = RD(1) * SP(ITH,IK,1) * FAC1(IK) & 1100 + RD(2) * SP(ITH,IK,2) * FAC2(IK) & 1101 + RD(3) * SP(ITH,IK,3) * FAC3(IK) & 1102 + RD(4) * SP(ITH,IK,4) * FAC4(IK) 1103 END DO 1104 END DO Page 13 Source Listing W3IOPE 2014-09-16 16:48 w3iopomd.f90 1105 ! 1106 1107 ! FA COMMENTED OUT: BUG 1108 !At line 1974 of file w3arrymd.f90 1109 !Fortran runtime error: Index '52' of dimension 1 of array 'pnum2' above upper bound of 51 1110 ! 1111 END DO 1112 ! 1113 RETURN 1114 ! 1115 ! Formats 1116 ! 1117 !/ 1118 !/ End of W3IOPE ----------------------------------------------------- / 1119 !/ 1120 END SUBROUTINE W3IOPE ENTRY POINTS Name w3iopomd_mp_w3iope_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References A Dummy 340 R(4) 4 3 0 ARG,IN AS Local 423 R(4) 4 1 1 PTR 423,518,519 ASO Local 425 R(4) 4 1 1 PTR 425,518 ATAN2 Func 513 scalar 513,528 CAO Local 425 R(4) 4 1 1 PTR 425,526,527 CDO Local 425 R(4) 4 1 1 PTR 425,528,530 CG Local 423 R(4) 4 2 1 PTR 423,552,553,554,555 CONSTANTS Module 420 420 COS Func 502 scalar 502,503,504,505 CURX Local 446 R(4) 4 scalar 521,526,528 CURY Local 446 R(4) 4 scalar 523,526,528 CX Local 423 R(4) 4 1 1 PTR 423,452,521,522 CY Local 423 R(4) 4 1 1 PTR 423,453,523,524 DPO Local 425 R(4) 4 1 1 PTR 425,499 DW Local 423 R(4) 4 1 1 PTR 423,499,500 EXTCDE Subr 427 427 FAC1 Local 446 R(4) 4 1 0 552,561 FAC2 Local 447 R(4) 4 1 0 553,562 FAC3 Local 447 R(4) 4 1 0 554,563 FAC4 Local 447 R(4) 4 1 0 555,564 FACRD Local 445 R(4) 4 scalar 493,494,536,537 I Local 441 I(4) 4 scalar 457,461,462,463,467,468,469,477,48 1,484,499,511,512,513,515,518,526, 527,528,530,545,561 IERR_MPI Local 443 I(4) 4 scalar 546,547 II Local 424 I(4) 4 1 1 PTR 424,469,481 IK Local 442 I(4) 4 scalar 551,552,553,554,555,558,560,561,56 2,563,564 Page 14 Source Listing W3IOPE 2014-09-16 16:48 Symbol Table w3iopomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References IL Local 424 I(4) 4 1 1 PTR 424,467,484 IM Local 442 I(4) 4 1 4 475,476,480 IOFF Local 443 I(4) 4 scalar 545,546,547 IPTINT Local 424 I(4) 4 3 1 PTR 424,461,462 IRQPO2 Local 426 I(4) 4 1 1 PTR 426,546,547 IS Local 441 I(4) 4 1 4 474,499,500,502,503,504,505,506,50 7,508,509,518,519,521,522,523,524, 552,553,554,555 ISP Local 442 I(4) 4 scalar 560,561 ITH Local 442 I(4) 4 scalar 559,560,561,562,563,564 IW Local 424 I(4) 4 1 1 PTR 424,468,477 IX Local 441 I(4) 4 1 4 461,474,475 IX1 Local 441 I(4) 4 scalar IY Local 441 I(4) 4 1 4 462,474,475 IY1 Local 441 I(4) 4 scalar J Local 441 I(4) 4 scalar 473,474,475,476,478,480,482,485 MAPFS Local 422 I(4) 4 2 1 PTR 422,474 MAPSTA Local 422 I(4) 4 2 1 PTR 422,475 MPIPRIV1 Common 532 28 MPIPRIV2 Common 534 24 MPIPRIVC Common 537 2 MPI_2COMPLEX Param 332 I(4) 4 scalar MPI_2DOUBLE_COMPLEX Param 338 I(4) 4 scalar MPI_2DOUBLE_PRECISION Param 334 I(4) 4 scalar MPI_2INT Param 415 I(4) 4 scalar MPI_2INTEGER Param 330 I(4) 4 scalar MPI_2REAL Param 336 I(4) 4 scalar MPI_ADDRESS_KIND Param 372 I(4) 4 scalar MPI_ANY_SOURCE Param 300 I(4) 4 scalar MPI_ANY_TAG Param 302 I(4) 4 scalar MPI_APPNUM Param 269 I(4) 4 scalar MPI_ARGVS_NULL Scalar 83 CHAR 1 2 1 COM MPI_ARGV_NULL Scalar 84 CHAR 1 1 1 COM MPI_BAND Param 217 I(4) 4 scalar MPI_BOR Param 221 I(4) 4 scalar MPI_BOTTOM Scalar 517 I(4) 4 scalar COM MPI_BSEND_OVERHEAD Param 296 I(4) 4 scalar MPI_BXOR Param 225 I(4) 4 scalar MPI_BYTE Param 342 I(4) 4 scalar MPI_CART Param 308 I(4) 4 scalar MPI_CHAR Param 375 I(4) 4 scalar MPI_CHARACTER Param 340 I(4) 4 scalar MPI_COMBINER_CONTIGUOUS Param 423 I(4) 4 scalar MPI_COMBINER_DARRAY Param 445 I(4) 4 scalar MPI_COMBINER_DUP Param 421 I(4) 4 scalar MPI_COMBINER_F90_COMPLEX Param 449 I(4) 4 scalar MPI_COMBINER_F90_INTEGER Param 451 I(4) 4 scalar MPI_COMBINER_F90_REAL Param 447 I(4) 4 scalar MPI_COMBINER_HINDEXED Param 435 I(4) 4 scalar MPI_COMBINER_HINDEXED_INTE GER Param 433 I(4) 4 scalar MPI_COMBINER_HVECTOR Param 429 I(4) 4 scalar MPI_COMBINER_HVECTOR_INTEG ER Param 427 I(4) 4 scalar MPI_COMBINER_INDEXED Param 431 I(4) 4 scalar Page 15 Source Listing W3IOPE 2014-09-16 16:48 Symbol Table w3iopomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References MPI_COMBINER_INDEXED_BLOCK Param 437 I(4) 4 scalar MPI_COMBINER_NAMED Param 419 I(4) 4 scalar MPI_COMBINER_RESIZED Param 453 I(4) 4 scalar MPI_COMBINER_STRUCT Param 441 I(4) 4 scalar MPI_COMBINER_STRUCT_INTEGE R Param 439 I(4) 4 scalar MPI_COMBINER_SUBARRAY Param 443 I(4) 4 scalar MPI_COMBINER_VECTOR Param 425 I(4) 4 scalar MPI_COMM_DUP_FN Subr 521 scalar MPI_COMM_NULL Param 239 I(4) 4 scalar MPI_COMM_NULL_COPY_FN Subr 522 scalar MPI_COMM_NULL_DELETE_FN Subr 521 scalar MPI_COMM_SELF Param 235 I(4) 4 scalar MPI_COMM_WORLD Param 233 I(4) 4 scalar MPI_COMPLEX Param 318 I(4) 4 scalar MPI_COMPLEX16 Param 368 I(4) 4 scalar MPI_COMPLEX32 Param 370 I(4) 4 scalar MPI_COMPLEX8 Param 366 I(4) 4 scalar MPI_CONGRUENT Param 201 I(4) 4 scalar MPI_CONVERSION_FN_NULL Subr 527 scalar MPI_DATATYPE_NULL Param 249 I(4) 4 scalar 359 MPI_DISPLACEMENT_CURRENT Param 515 I(8) 8 scalar MPI_DISTRIBUTE_BLOCK Param 507 I(4) 4 scalar MPI_DISTRIBUTE_CYCLIC Param 509 I(4) 4 scalar MPI_DISTRIBUTE_DFLT_DARG Param 513 I(4) 4 scalar MPI_DISTRIBUTE_NONE Param 511 I(4) 4 scalar MPI_DOUBLE Param 397 I(4) 4 scalar MPI_DOUBLE_COMPLEX Param 320 I(4) 4 scalar MPI_DOUBLE_INT Param 409 I(4) 4 scalar MPI_DOUBLE_PRECISION Param 326 I(4) 4 scalar MPI_DUP_FN Subr 518 scalar MPI_ERRCODES_IGNORE Scalar 82 I(4) 4 1 1 COM MPI_ERRHANDLER_NULL Param 253 I(4) 4 scalar MPI_ERROR Param 76 I(4) 4 scalar MPI_ERRORS_ARE_FATAL Param 195 I(4) 4 scalar MPI_ERRORS_RETURN Param 197 I(4) 4 scalar MPI_ERR_ACCESS Param 189 I(4) 4 scalar MPI_ERR_AMODE Param 173 I(4) 4 scalar MPI_ERR_ARG Param 109 I(4) 4 scalar MPI_ERR_ASSERT Param 131 I(4) 4 scalar MPI_ERR_BAD_FILE Param 163 I(4) 4 scalar MPI_ERR_BASE Param 97 I(4) 4 scalar MPI_ERR_BUFFER Param 115 I(4) 4 scalar MPI_ERR_COMM Param 137 I(4) 4 scalar MPI_ERR_CONVERSION Param 193 I(4) 4 scalar MPI_ERR_COUNT Param 93 I(4) 4 scalar MPI_ERR_DIMS Param 179 I(4) 4 scalar MPI_ERR_DISP Param 125 I(4) 4 scalar MPI_ERR_DUP_DATAREP Param 117 I(4) 4 scalar MPI_ERR_FILE Param 91 I(4) 4 scalar MPI_ERR_FILE_EXISTS Param 133 I(4) 4 scalar MPI_ERR_FILE_IN_USE Param 165 I(4) 4 scalar MPI_ERR_GROUP Param 145 I(4) 4 scalar MPI_ERR_INFO Param 159 I(4) 4 scalar MPI_ERR_INFO_KEY Param 103 I(4) 4 scalar Page 16 Source Listing W3IOPE 2014-09-16 16:48 Symbol Table w3iopomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References MPI_ERR_INFO_NOKEY Param 129 I(4) 4 scalar MPI_ERR_INFO_VALUE Param 153 I(4) 4 scalar MPI_ERR_INTERN Param 185 I(4) 4 scalar MPI_ERR_IN_STATUS Param 101 I(4) 4 scalar MPI_ERR_IO Param 187 I(4) 4 scalar MPI_ERR_KEYVAL Param 139 I(4) 4 scalar MPI_ERR_LASTCODE Param 121 I(4) 4 scalar MPI_ERR_LOCKTYPE Param 105 I(4) 4 scalar MPI_ERR_NAME Param 141 I(4) 4 scalar MPI_ERR_NOT_SAME Param 155 I(4) 4 scalar MPI_ERR_NO_MEM Param 161 I(4) 4 scalar MPI_ERR_NO_SPACE Param 191 I(4) 4 scalar MPI_ERR_NO_SUCH_FILE Param 181 I(4) 4 scalar MPI_ERR_OP Param 107 I(4) 4 scalar MPI_ERR_OTHER Param 87 I(4) 4 scalar MPI_ERR_PENDING Param 135 I(4) 4 scalar MPI_ERR_PORT Param 127 I(4) 4 scalar MPI_ERR_QUOTA Param 171 I(4) 4 scalar MPI_ERR_RANK Param 177 I(4) 4 scalar MPI_ERR_READ_ONLY Param 111 I(4) 4 scalar MPI_ERR_REQUEST Param 143 I(4) 4 scalar MPI_ERR_RMA_CONFLICT Param 99 I(4) 4 scalar MPI_ERR_RMA_SYNC Param 157 I(4) 4 scalar MPI_ERR_ROOT Param 175 I(4) 4 scalar MPI_ERR_SERVICE Param 183 I(4) 4 scalar MPI_ERR_SIZE Param 113 I(4) 4 scalar MPI_ERR_SPAWN Param 95 I(4) 4 scalar MPI_ERR_TAG Param 151 I(4) 4 scalar MPI_ERR_TOPOLOGY Param 147 I(4) 4 scalar MPI_ERR_TRUNCATE Param 123 I(4) 4 scalar MPI_ERR_TYPE Param 149 I(4) 4 scalar MPI_ERR_UNKNOWN Param 167 I(4) 4 scalar MPI_ERR_UNSUPPORTED_DATARE P Param 119 I(4) 4 scalar MPI_ERR_UNSUPPORTED_OPERAT ION Param 169 I(4) 4 scalar MPI_ERR_WIN Param 89 I(4) 4 scalar MPI_FILE_NULL Param 243 I(4) 4 scalar MPI_FLOAT Param 395 I(4) 4 scalar MPI_FLOAT_INT Param 407 I(4) 4 scalar MPI_GRAPH Param 306 I(4) 4 scalar MPI_GROUP_EMPTY Param 237 I(4) 4 scalar MPI_GROUP_NULL Param 245 I(4) 4 scalar MPI_HOST Param 259 I(4) 4 scalar MPI_IDENT Param 199 I(4) 4 scalar MPI_INFO_NULL Param 255 I(4) 4 scalar MPI_INT Param 387 I(4) 4 scalar MPI_INTEGER Param 328 I(4) 4 scalar MPI_INTEGER1 Param 350 I(4) 4 scalar MPI_INTEGER16 Param 358 I(4) 4 scalar MPI_INTEGER2 Param 352 I(4) 4 scalar MPI_INTEGER4 Param 354 I(4) 4 scalar MPI_INTEGER8 Param 356 I(4) 4 scalar MPI_IN_PLACE Scalar 517 I(4) 4 scalar COM MPI_IO Param 261 I(4) 4 scalar Page 17 Source Listing W3IOPE 2014-09-16 16:48 Symbol Table w3iopomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References MPI_KEYVAL_INVALID Param 294 I(4) 4 scalar MPI_LAND Param 215 I(4) 4 scalar MPI_LASTUSEDCODE Param 267 I(4) 4 scalar MPI_LB Param 346 I(4) 4 scalar MPI_LOCK_EXCLUSIVE Param 314 I(4) 4 scalar MPI_LOCK_SHARED Param 316 I(4) 4 scalar MPI_LOGICAL Param 322 I(4) 4 scalar MPI_LONG Param 391 I(4) 4 scalar MPI_LONG_DOUBLE Param 399 I(4) 4 scalar MPI_LONG_DOUBLE_INT Param 417 I(4) 4 scalar MPI_LONG_INT Param 411 I(4) 4 scalar MPI_LONG_LONG Param 405 I(4) 4 scalar MPI_LONG_LONG_INT Param 401 I(4) 4 scalar MPI_LOR Param 219 I(4) 4 scalar MPI_LXOR Param 223 I(4) 4 scalar MPI_MAX Param 207 I(4) 4 scalar MPI_MAXLOC Param 229 I(4) 4 scalar MPI_MAX_DATAREP_STRING Param 289 I(4) 4 scalar MPI_MAX_ERROR_STRING Param 277 I(4) 4 scalar MPI_MAX_INFO_KEY Param 283 I(4) 4 scalar MPI_MAX_INFO_VAL Param 285 I(4) 4 scalar MPI_MAX_OBJECT_NAME Param 281 I(4) 4 scalar MPI_MAX_PORT_NAME Param 279 I(4) 4 scalar MPI_MAX_PROCESSOR_NAME Param 287 I(4) 4 scalar MPI_MIN Param 209 I(4) 4 scalar MPI_MINLOC Param 227 I(4) 4 scalar MPI_MODE_APPEND Param 493 I(4) 4 scalar MPI_MODE_CREATE Param 489 I(4) 4 scalar MPI_MODE_DELETE_ON_CLOSE Param 485 I(4) 4 scalar MPI_MODE_EXCL Param 491 I(4) 4 scalar MPI_MODE_NOCHECK Param 461 I(4) 4 scalar MPI_MODE_NOPRECEDE Param 467 I(4) 4 scalar MPI_MODE_NOPUT Param 465 I(4) 4 scalar MPI_MODE_NOSTORE Param 463 I(4) 4 scalar MPI_MODE_NOSUCCEED Param 469 I(4) 4 scalar MPI_MODE_RDONLY Param 479 I(4) 4 scalar MPI_MODE_RDWR Param 481 I(4) 4 scalar MPI_MODE_SEQUENTIAL Param 495 I(4) 4 scalar MPI_MODE_UNIQUE_OPEN Param 487 I(4) 4 scalar MPI_MODE_WRONLY Param 483 I(4) 4 scalar MPI_NULL_COPY_FN Subr 518 scalar MPI_NULL_DELETE_FN Subr 518 scalar MPI_OFFSET_KIND Param 372 I(4) 4 scalar MPI_OP_NULL Param 247 I(4) 4 scalar MPI_ORDER_C Param 503 I(4) 4 scalar MPI_ORDER_FORTRAN Param 505 I(4) 4 scalar MPI_PACKED Param 348 I(4) 4 scalar MPI_PROC_NULL Param 298 I(4) 4 scalar MPI_PROD Param 213 I(4) 4 scalar MPI_REAL Param 324 I(4) 4 scalar MPI_REAL16 Param 364 I(4) 4 scalar MPI_REAL4 Param 360 I(4) 4 scalar MPI_REAL8 Param 362 I(4) 4 scalar MPI_REPLACE Param 231 I(4) 4 scalar MPI_REQUEST_NULL Param 251 I(4) 4 scalar Page 18 Source Listing W3IOPE 2014-09-16 16:48 Symbol Table w3iopomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References MPI_ROOT Param 304 I(4) 4 scalar MPI_SEEK_CUR Param 499 I(4) 4 scalar MPI_SEEK_END Param 501 I(4) 4 scalar MPI_SEEK_SET Param 497 I(4) 4 scalar MPI_SHORT Param 383 I(4) 4 scalar MPI_SHORT_INT Param 413 I(4) 4 scalar MPI_SIGNED_CHAR Param 377 I(4) 4 scalar MPI_SIMILAR Param 203 I(4) 4 scalar MPI_SOURCE Param 76 I(4) 4 scalar MPI_STARTALL Subr 546 546 MPI_STATUSES_IGNORE Scalar 81 I(4) 4 2 5 COM MPI_STATUS_IGNORE Scalar 80 I(4) 4 1 5 COM MPI_STATUS_SIZE Param 78 I(4) 4 scalar 80,81,444 MPI_SUBVERSION Param 312 I(4) 4 scalar MPI_SUCCESS Param 85 I(4) 4 scalar MPI_SUM Param 211 I(4) 4 scalar MPI_TAG Param 76 I(4) 4 scalar MPI_TAG_UB Param 257 I(4) 4 scalar MPI_THREAD_FUNNELED Param 473 I(4) 4 scalar MPI_THREAD_MULTIPLE Param 477 I(4) 4 scalar MPI_THREAD_SERIALIZED Param 475 I(4) 4 scalar MPI_THREAD_SINGLE Param 471 I(4) 4 scalar MPI_TYPECLASS_COMPLEX Param 459 I(4) 4 scalar MPI_TYPECLASS_INTEGER Param 457 I(4) 4 scalar MPI_TYPECLASS_REAL Param 455 I(4) 4 scalar MPI_TYPE_DUP_FN Subr 525 scalar MPI_TYPE_NULL_COPY_FN Subr 526 scalar MPI_TYPE_NULL_DELETE_FN Subr 525 scalar MPI_UB Param 344 I(4) 4 scalar MPI_UNDEFINED Param 291 I(4) 4 scalar MPI_UNDEFINED_RANK Param 291 I(4) 4 scalar MPI_UNEQUAL Param 205 I(4) 4 scalar MPI_UNIVERSE_SIZE Param 265 I(4) 4 scalar MPI_UNSIGNED Param 389 I(4) 4 scalar MPI_UNSIGNED_CHAR Param 379 I(4) 4 scalar MPI_UNSIGNED_LONG Param 393 I(4) 4 scalar MPI_UNSIGNED_LONG_LONG Param 403 I(4) 4 scalar MPI_UNSIGNED_SHORT Param 385 I(4) 4 scalar MPI_VERSION Param 310 I(4) 4 scalar MPI_WAITALL Subr 547 547 MPI_WCHAR Param 381 I(4) 4 scalar MPI_WIN_BASE Param 271 I(4) 4 scalar MPI_WIN_DISP_UNIT Param 275 I(4) 4 scalar MPI_WIN_DUP_FN Subr 523 scalar MPI_WIN_NULL Param 241 I(4) 4 scalar MPI_WIN_NULL_COPY_FN Subr 524 scalar MPI_WIN_NULL_DELETE_FN Subr 523 scalar MPI_WIN_SIZE Param 273 I(4) 4 scalar MPI_WTICK Func 519 R(8) 8 scalar MPI_WTIME Func 519 R(8) 8 scalar MPI_WTIME_IS_GLOBAL Param 263 I(4) 4 scalar NDST Local 424 I(4) 4 scalar PTR 424 NK Local 421 I(4) 4 scalar PTR 421,436,446,447,551,558 NOPTS Local 424 I(4) 4 scalar PTR 424,444,457 NSEA Local 421 I(4) 4 scalar PTR 421 Page 19 Source Listing W3IOPE 2014-09-16 16:48 Symbol Table w3iopomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References NSEAL Local 421 I(4) 4 scalar PTR 421,436 NTH Local 421 I(4) 4 scalar PTR 421,436,559,560 NX Local 421 I(4) 4 scalar PTR 421 NY Local 421 I(4) 4 scalar PTR 421 PMPI_WTICK Func 520 R(8) 8 scalar PMPI_WTIME Func 520 R(8) 8 scalar PTIFAC Local 424 R(4) 4 2 1 PTR 424,463 RD Local 445 R(4) 4 1 4 463,478,482,485,494,499,500,502,50 3,504,505,506,507,508,509,518,519, 521,522,523,524,537,561,562,563,56 4 RDI Local 445 R(4) 4 scalar 471,482,492,493,536 RDS Local 445 R(4) 4 scalar 470,478,492,493,535,536 SIG Local 421 R(4) 4 1 1 PTR 421,552,553,554,555 SIN Func 506 scalar 506,507,508,509 SP Local 423 R(4) 4 3 1 PTR 561,562,563,564 SPCO Local 425 R(4) 4 2 1 PTR 425,561 SQRT Func 511 scalar 511,526 STAT Local 444 I(4) 4 2 0 547 TPI Param 552 R(4) 4 scalar 552,553,554,555 UA Local 423 R(4) 4 1 1 PTR 423,502,503,504,505,506,507,508,50 9 UD Local 423 R(4) 4 1 1 PTR 423,502,503,504,505,506,507,508,50 9 W3ADATMD Module 423 423 W3GDATMD Module 421 421 W3IOPE Subr 340 W3ODATMD Module 424 424,426 W3SERVMD Module 427 427 WAO Local 425 R(4) 4 1 1 PTR 425,511,512 WDO Local 425 R(4) 4 1 1 PTR 425,513,515 WNDX Local 446 R(4) 4 scalar 502,511,513 WNDY Local 446 R(4) 4 scalar 506,511,513 Page 20 Source Listing W3IOPE 2014-09-16 16:48 w3iopomd.f90 1121 !/ ------------------------------------------------------------------- / 1122 SUBROUTINE W3IOPO ( INXOUT, NDSOP, IOTST, IMOD ) 1123 !/ 1124 !/ +-----------------------------------+ 1125 !/ | WAVEWATCH III NOAA/NCEP | 1126 !/ | H. L. Tolman | 1127 !/ | FORTRAN 90 | 1128 !/ | Last update : 25-Jul-2006 | 1129 !/ +-----------------------------------+ 1130 !/ 1131 !/ 07-Jan-1999 : Distributed FORTRAN 77 version. ( version 1.18 ) 1132 !/ 30-Dec-1999 : Upgrade to FORTRAN 90 ( version 2.00 ) 1133 !/ Major changes to logistics. 1134 !/ 10-Nov-2004 : Multiple grid version. ( version 3.06 ) 1135 !/ 27-Jun-2006 : Adding file name preamble. ( version 3.09 ) 1136 !/ 25-Jul-2006 : Adding grid ID per point. ( version 3.10 ) 1137 !/ 1138 ! 1. Purpose : 1139 ! 1140 ! Read/write point output. 1141 ! 1142 ! 3. Parameters : 1143 ! 1144 ! Parameter list 1145 ! ---------------------------------------------------------------- 1146 ! INXOUT C*(*) I Test string for read/write, valid are: 1147 ! 'READ' and 'WRITE'. 1148 ! NDSOP Int. I File unit number. 1149 ! IOTST Int. O Test indictor for reading. 1150 ! 0 : Data read. 1151 ! -1 : Past end of file. 1152 ! IMOD I(O) I Model number for W3GDAT etc. 1153 ! ---------------------------------------------------------------- 1154 ! 1155 ! 4. Subroutines used : 1156 ! 1157 ! See module documentation. 1158 ! 1159 ! 5. Called by : 1160 ! 1161 ! Name Type Module Description 1162 ! ---------------------------------------------------------------- 1163 ! W3WAVE Subr. W3WAVEMD Actual wave model routine. 1164 ! WW3_OUTP Prog. N/A Postprocessing for point output. 1165 ! GX_OUTP Prog. N/A Grads postprocessing for point output. 1166 ! ---------------------------------------------------------------- 1167 ! 1168 ! 6. Error messages : 1169 ! 1170 ! Tests on INXOUT, file status and on array dimensions. 1171 ! 1172 ! 7. Remarks : 1173 ! 1174 ! - The output file has the pre-defined name 'out_pnt.FILEXT'. 1175 ! - In MPP version of model data is supposed to be gatherd at the 1176 ! correct processor before the routine is called. 1177 ! - No error output filtering needed. Page 21 Source Listing W3IOPO 2014-09-16 16:48 w3iopomd.f90 1178 ! 1179 ! 8. Structure : 1180 ! 1181 ! See source code. 1182 ! 1183 ! 9. Switches : 1184 ! 1185 ! !/SHRD Switch for shared / distributed memory architecture. 1186 ! !/DIST Id. 1187 ! 1188 ! !/S Enable subroutine tracing. 1189 ! !/T Test output. 1190 ! 1191 ! 10. Source code : 1192 ! 1193 !/ ------------------------------------------------------------------- / 1194 USE W3GDATMD, ONLY: W3SETG 1195 USE W3WDATMD, ONLY: W3SETW 1196 USE W3ODATMD, ONLY: W3SETO, W3DMO2 1197 !/ 1198 USE W3GDATMD, ONLY: NTH, NK, NSPEC, FILEXT 1199 USE W3WDATMD, ONLY: TIME 1200 USE W3ODATMD, ONLY: NDST, NDSE, IPASS => IPASS2, NOPTS, IPTINT, & 1201 IL, IW, II, PTLOC, PTIFAC, DPO, WAO, WDO, & 1202 ASO, CAO, CDO, SPCO, PTNME, O2INIT, FNMPRE, & 1203 GRDID 1204 !/ 1205 USE W3SERVMD, ONLY: EXTCDE 1206 ! 1207 IMPLICIT NONE 1208 !/ 1209 !/ ------------------------------------------------------------------- / 1210 !/ Parameter list 1211 !/ 1212 INTEGER, INTENT(IN) :: NDSOP 1213 INTEGER, INTENT(OUT) :: IOTST 1214 INTEGER, INTENT(IN), OPTIONAL :: IMOD 1215 CHARACTER, INTENT(IN) :: INXOUT*(*) 1216 !/ 1217 !/ ------------------------------------------------------------------- / 1218 !/ local parameters 1219 !/ 1220 INTEGER :: IGRD, IERR, MK, MTH, I, J 1221 LOGICAL,SAVE :: WRITE 1222 CHARACTER(LEN=31) :: IDTST 1223 CHARACTER(LEN=10) :: VERTST 1224 !/ 1225 !/ ------------------------------------------------------------------- / 1226 !/ 1227 IPASS = IPASS + 1 1228 IOTST = 0 1229 ! 1230 ! test input parameters ---------------------------------------------- * 1231 ! 1232 IF ( PRESENT(IMOD) ) THEN 1233 IGRD = IMOD 1234 ELSE Page 22 Source Listing W3IOPO 2014-09-16 16:48 w3iopomd.f90 1235 IGRD = 1 1236 END IF 1237 ! 1238 CALL W3SETO ( IGRD, NDSE, NDST ) 1239 CALL W3SETG ( IGRD, NDSE, NDST ) 1240 CALL W3SETW ( IGRD, NDSE, NDST ) 1241 ! 1242 IF (INXOUT.NE.'READ' .AND. INXOUT.NE.'WRITE' ) THEN 1243 WRITE (NDSE,900) INXOUT 1244 CALL EXTCDE ( 1 ) 1245 END IF 1246 ! 1247 IF ( IPASS.EQ.1 ) THEN 1248 WRITE = INXOUT.EQ.'WRITE' 1249 ELSE 1250 IF ( WRITE .AND. INXOUT.EQ.'READ' ) THEN 1251 WRITE (NDSE,901) INXOUT 1252 CALL EXTCDE ( 2 ) 1253 END IF 1254 END IF 1255 ! 1256 ! open file ---------------------------------------------------------- * 1257 ! 1258 IF ( IPASS.EQ.1 ) THEN 1259 ! 1260 I = LEN_TRIM(FILEXT) 1261 J = LEN_TRIM(FNMPRE) 1262 ! 1263 IF ( WRITE ) THEN 1264 OPEN (NDSOP,FILE=FNMPRE(:J)//'out_pnt.'//FILEXT(:I), & 1265 FORM='UNFORMATTED',ERR=800,IOSTAT=IERR) 1266 ELSE 1267 OPEN (NDSOP,FILE=FNMPRE(:J)//'out_pnt.'//FILEXT(:I), & 1268 FORM='UNFORMATTED',ERR=800,IOSTAT=IERR,STATUS='OLD') 1269 END IF 1270 ! 1271 REWIND ( NDSOP ) 1272 ! 1273 ! test info ---------------------------------------------------------- * 1274 ! ( IPASS = 1 ) 1275 ! 1276 IF ( WRITE ) THEN 1277 WRITE (NDSOP) & 1278 IDSTR, VEROPT, NK, NTH, NOPTS 1279 ELSE 1280 READ (NDSOP,END=801,ERR=802,IOSTAT=IERR) & 1281 IDTST, VERTST, MK, MTH, NOPTS 1282 ! 1283 IF ( IDTST .NE. IDSTR ) THEN 1284 WRITE (NDSE,902) IDTST, IDSTR 1285 CALL EXTCDE ( 10 ) 1286 END IF 1287 IF ( VERTST .NE. VEROPT ) THEN 1288 WRITE (NDSE,903) VERTST, VEROPT 1289 CALL EXTCDE ( 11 ) 1290 END IF 1291 IF (NK.NE.MK .OR. NTH.NE.MTH) THEN Page 23 Source Listing W3IOPO 2014-09-16 16:48 w3iopomd.f90 1292 WRITE (NDSE,904) MK, MTH, NK, NTH 1293 CALL EXTCDE ( 12 ) 1294 END IF 1295 IF ( .NOT. O2INIT ) & 1296 CALL W3DMO2 ( IGRD, NDSE, NDST, NOPTS ) 1297 END IF 1298 ! 1299 ! Point specific info ------------------------------------------------ * 1300 ! ( IPASS = 1 ) 1301 ! 1302 IF ( WRITE ) THEN 1303 WRITE (NDSOP) & 1304 ((PTLOC(J,I),J=1,2),I=1,NOPTS), (PTNME(I),I=1,NOPTS) 1305 ELSE 1306 READ (NDSOP,END=801,ERR=802,IOSTAT=IERR) & 1307 ((PTLOC(J,I),J=1,2),I=1,NOPTS), (PTNME(I),I=1,NOPTS) 1308 END IF 1309 ! 1310 END IF 1311 ! 1312 ! TIME --------------------------------------------------------------- * 1313 ! 1314 IF ( WRITE ) THEN 1315 WRITE (NDSOP) TIME 1316 ELSE 1317 READ (NDSOP,END=803,ERR=802,IOSTAT=IERR) TIME 1318 END IF 1319 ! 1320 ! Loop over spectra -------------------------------------------------- * 1321 ! 1322 DO I=1, NOPTS 1323 ! 1324 IF ( WRITE ) THEN 1325 WRITE (NDSOP) & 1326 IW(I), II(I), IL(I), DPO(I), WAO(I), WDO(I), & 1327 ASO(I), CAO(I), CDO(I), GRDID(I), & 1328 (SPCO(J,I),J=1,NSPEC) 1329 ELSE 1330 READ (NDSOP,END=801,ERR=802,IOSTAT=IERR) & 1331 IW(I), II(I), IL(I), DPO(I), WAO(I), WDO(I), & 1332 ASO(I), CAO(I), CDO(I), GRDID(I), & 1333 (SPCO(J,I),J=1,NSPEC) 1334 END IF 1335 ! 1336 END DO 1337 ! 1338 RETURN 1339 ! 1340 ! Escape locations read errors 1341 ! 1342 800 CONTINUE 1343 WRITE (NDSE,1000) IERR 1344 CALL EXTCDE ( 20 ) 1345 ! 1346 801 CONTINUE 1347 WRITE (NDSE,1001) 1348 CALL EXTCDE ( 21 ) Page 24 Source Listing W3IOPO 2014-09-16 16:48 w3iopomd.f90 1349 ! 1350 802 CONTINUE 1351 WRITE (NDSE,1002) IERR 1352 CALL EXTCDE ( 22 ) 1353 ! 1354 803 CONTINUE 1355 IOTST = -1 1356 RETURN 1357 ! 1358 ! Formats 1359 ! 1360 900 FORMAT (/' *** WAVEWATCH III ERROR IN W3IOPO :'/ & 1361 ' ILEGAL INXOUT VALUE: ',A/) 1362 901 FORMAT (/' *** WAVEWATCH III ERROR IN W3IOPO :'/ & 1363 ' MIXED READ/WRITE, LAST REQUEST: ',A/) 1364 902 FORMAT (/' *** WAVEWATCH III ERROR IN W3IOPO :'/ & 1365 ' ILEGAL IDSTR, READ : ',A/ & 1366 ' CHECK : ',A/) 1367 903 FORMAT (/' *** WAVEWATCH III ERROR IN W3IOPO :'/ & 1368 ' ILEGAL VEROPT, READ : ',A/ & 1369 ' CHECK : ',A/) 1370 904 FORMAT (/' *** WAVEWATCH III ERROR IN W3IOPO :'/ & 1371 ' ERROR IN SPECTRA, MK, MTH : ',2I8/ & 1372 ' ARRAY DIMENSIONS : ',2I8/) 1373 ! 1374 1000 FORMAT (/' *** WAVEWATCH III ERROR IN W3IOPO : '/ & 1375 ' ERROR IN OPENING FILE'/ & 1376 ' IOSTAT =',I5/) 1377 1001 FORMAT (/' *** WAVEWATCH III ERROR IN W3IOPO : '/ & 1378 ' PREMATURE END OF FILE'/) 1379 1002 FORMAT (/' *** WAVEWATCH III ERROR IN W3IOPO : '/ & 1380 ' ERROR IN READING FROM FILE'/ & 1381 ' IOSTAT =',I5/) 1382 ! 1383 1384 ! 1385 !/ 1386 !/ End of W3IOPO ----------------------------------------------------- / 1387 !/ 1388 END SUBROUTINE W3IOPO Page 25 Source Listing W3IOPO 2014-09-16 16:48 Entry Points w3iopomd.f90 ENTRY POINTS Name w3iopomd_mp_w3iopo_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 1000 Label 836 805 1001 Label 839 809 1002 Label 841 813 800 Label 804 727,730 801 Label 808 742,768,792 802 Label 812 742,768,779,792 803 Label 816 779 900 Label 822 705 901 Label 824 713 902 Label 826 746 903 Label 829 750 904 Label 832 754 ASO Local 664 R(4) 4 1 1 PTR 664,789,794 CAO Local 664 R(4) 4 1 1 PTR 664,789,794 CDO Local 664 R(4) 4 1 1 PTR 664,789,794 DPO Local 663 R(4) 4 1 1 PTR 663,788,793 EXTCDE Subr 667 667,706,714,747,751,755,806,810,81 4 FILEXT Local 660 CHAR 10 scalar PTR 660,722,726,729 FNMPRE Local 664 CHAR 80 scalar 664,723,726,729 GRDID Local 665 CHAR 10 1 1 PTR 665,789,794 I Local 682 I(4) 4 scalar 722,726,729,766,769,784,788,789,79 0,793,794,795 IDSTR Param 740 CHAR 31 scalar PRIV 101,740,745,746 IDTST Local 684 CHAR 31 scalar 743,745,746 IERR Local 682 I(4) 4 scalar 727,730,742,768,779,792,805,813 IGRD Local 682 I(4) 4 scalar 695,697,700,701,702,758 II Local 663 I(4) 4 1 1 PTR 663,788,793 IL Local 663 I(4) 4 1 1 PTR 663,788,793 IMOD Dummy 584 I(4) 4 scalar ARG,IN 694,695 INXOUT Dummy 584 CHAR scalar ARG,IN 704,705,710,712,713 IOTST Dummy 584 I(4) 4 scalar ARG,OUT 690,817 IPASS Local 662 I(4) 4 scalar PTR 689,709,720 IPTINT Local 662 I(4) 4 3 1 PTR 662 IW Local 663 I(4) 4 1 1 PTR 663,788,793 J Local 682 I(4) 4 scalar 723,726,729,766,769,790,795 LEN_TRIM Func 722 scalar 722,723 MK Local 682 I(4) 4 scalar 743,753,754 MTH Local 682 I(4) 4 scalar 743,753,754 NDSE Local 662 I(4) 4 scalar PTR 662,700,701,702,705,713,746,750,75 4,758,805,809,813 NDSOP Dummy 584 I(4) 4 scalar ARG,IN 726,729,733,739,742,765,768,777,77 9,787,792 NDST Local 662 I(4) 4 scalar PTR 662,700,701,702,758 Page 26 Source Listing W3IOPO 2014-09-16 16:48 Symbol Table w3iopomd.f90 Name Object Declared Type Bytes Dimen Elements Attributes References NK Local 660 I(4) 4 scalar PTR 660,740,753,754 NOPTS Local 662 I(4) 4 scalar PTR 662,740,743,758,766,769,784 NSPEC Local 660 I(4) 4 scalar PTR 660,790,795 NTH Local 660 I(4) 4 scalar PTR 660,740,753,754 O2INIT Local 664 L(4) 4 scalar PTR 664,757 PRESENT Func 694 scalar 694 PTIFAC Local 663 R(4) 4 2 1 PTR 663 PTLOC Local 663 R(4) 4 2 1 PTR 663,766,769 PTNME Local 664 CHAR 10 1 1 PTR 664,766,769 SPCO Local 664 R(4) 4 2 1 PTR 664,790,795 TIME Local 661 I(4) 4 1 1 PTR 661,777,779 VEROPT Param 740 CHAR 10 scalar PRIV 99,740,749,750 VERTST Local 685 CHAR 10 scalar 743,749,750 W3DMO2 Subr 658 658,758 W3GDATMD Module 656 656,660 W3IOPO Subr 584 W3ODATMD Module 658 658,662 W3SERVMD Module 667 667 W3SETG Subr 656 656,701 W3SETO Subr 658 658,700 W3SETW Subr 657 657,702 W3WDATMD Module 657 657,661 WAO Local 663 R(4) 4 1 1 PTR 663,788,793 WDO Local 663 R(4) 4 1 1 PTR 663,788,793 WRITE Local 683 L(4) 4 scalar 710,712,725,738,764,776,786 Page 27 Source Listing W3IOPO 2014-09-16 16:48 w3iopomd.f90 1389 !/ 1390 !/ End of module W3IOPOMD -------------------------------------------- / 1391 !/ 1392 END MODULE W3IOPOMD SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References W3IOPOMD Module 2 Page 28 Source Listing W3IOPO 2014-09-16 16:48 Subprograms/Common Blocks w3iopomd.f90 SUBPROGRAMS/COMMON BLOCKS Name Object Declared Type Bytes Dimen Elements Attributes References MPIPRIV1 Common 532 28 MPIPRIV2 Common 534 24 MPIPRIVC Common 537 2 W3IOPE Subr 340 W3IOPO Subr 584 W3IOPOMD Module 2 W3IOPP Subr 105 COMPILER OPTIONS BEING USED -align nocommons -align nodcommons -align noqcommons -align records -align nosequence -align norec1byte -align norec2byte -align norec4byte -align norec8byte -align norec16byte -altparam -assume accuracy_sensitive -assume nobscc -assume nobuffered_io -assume byterecl -assume cc_omp -assume nocstring -assume nodummy_aliases -assume nofpe_summary -assume noieee_fpe_flags -assume nominus0 -assume noold_boz -assume old_unit_star -assume old_ldout_format -assume noold_logical_ldio -assume old_maxminloc -assume old_xor -assume protect_constants -assume noprotect_parens -assume split_common -assume source_include -assume nostd_intent_in -assume nostd_mod_proc_name -assume norealloc_lhs -assume underscore -assume no2underscores -auto no -auto_scalar no -bintext -ccdefault default -check noargs -check noarg_temp_created -check nobounds -check noformat -check nooutput_conversion -check nooverflow -check nopointers -check power -check noshape -check nounderflow -check nouninitialized -coarray-num-procs 0 no -coarray-config-file -convert big_endian -cross_reference -D __INTEL_COMPILER=1210 -D __unix__ -D __unix -D __linux__ -D __linux -D __gnu_linux__ -D unix -D linux -D __ELF__ -D __x86_64 -D __x86_64__ -D _MT -D __INTEL_COMPILER_BUILD_DATE=20120612 -D _OPENMP=201107 -D __pentium4 -D __pentium4__ -D __tune_pentium4__ -D __SSE2__ -D __SSE3__ -D __SSSE3__ -D __SSE4_1__ -D __SSE4_2__ -D __SSE__ -D __MMX__ -D __AVX__ -double_size 64 no -d_lines Page 29 Source Listing W3IOPO 2014-09-16 16:48 w3iopomd.f90 no -Qdyncom -error_limit 30 no -f66 no -f77rtl no -fast -fpscomp nofilesfromcmd -fpscomp nogeneral -fpscomp noioformat -fpscomp noldio_spacing -fpscomp nologicals no -fpconstant -fpe3 -fprm nearest no -ftz -fp_model noprecise -fp_model fast -fp_model nostrict -fp_model nosource -fp_model nodouble -fp_model noextended -fp_model novery_fast -fp_model noexcept -fp_model nono_except -heap_arrays 0 no -threadprivate_compat -free -g0 -iface nomixed_str_len_arg -iface nono_mixed_str_len_arg no -intconstant -integer_size 32 no -mixed_str_len_arg no -module -names lowercase no -noinclude -openmp -O2 no -pad_source -real_size 32 no -recursive -reentrancy threaded no -sharable_localsaves -vec=simd -show noinclude -show map -show options no -syntax_only no -threadcom no -U no -vms -w noall -w nonone -w alignments -w noargument_checking -w nodeclarations -w general -w noignore_bounds -w noignore_loc -w nointerfaces -w notruncated_source -w uncalled -w uninitialized -w nounused -w usage -includepath : /usrx/local/intel/composerxe/tbb/include/,/usr/include/,./,/usrx/local/intel/impi/4.0.3.008/intel64/include/, /usrx/local/intel/impi/4.0.3.008/intel64/include/,/usrx/local/intel/composerxe/mkl/include/,/usrx/local/intel/composerxe/tbb/include/, /gpfs/gp1/usrx/local/intel/composer_xe_2011_sp1.11.339/compiler/include/intel64/,/gpfs/gp1/usrx/local/intel/composer_xe_2011_sp1.11.339/compiler/include/, /usr/local/include/,/usr/lib/gcc/x86_64-redhat-linux/4.4.7/include/,/usr/include/,/usr/include/ -list filename : w3iopomd.lst -o filename : none COMPILER: Intel(R) Fortran 12.1-2100