Page 1 Source Listing W3SNL1 2014-09-16 16:59 w3snl1md.f90 1 !/ ------------------------------------------------------------------- / 2 MODULE W3SNL1MD 3 !/ 4 !/ +-----------------------------------+ 5 !/ | WAVEWATCH III NOAA/NCEP | 6 !/ | H. L. Tolman | 7 !/ | FORTRAN 90 | 8 !/ | Last update : 03-Sep-2012 | 9 !/ +-----------------------------------+ 10 !/ 11 !/ 04-Feb-2000 : Origination. ( version 2.00 ) 12 !/ 09-May-2002 : Switch clean up. ( version 2.21 ) 13 !/ 24-Dec-2004 : Multiple grid version. ( version 3.06 ) 14 !/ 29-May-2009 : Preparing distribution version. ( version 3.14 ) 15 !/ 03-Sep-2012 : Clean up of test output T0, T1 ( version 4.07 ) 16 !/ 17 !/ Copyright 2009 National Weather Service (NWS), 18 !/ National Oceanic and Atmospheric Administration. All rights 19 !/ reserved. WAVEWATCH III is a trademark of the NWS. 20 !/ No unauthorized use without permission. 21 !/ 22 ! 1. Purpose : 23 ! 24 ! Bundles routines calculate nonlinear wave-wave interactions 25 ! according to the Discrete Interaction Approximation (DIA) of 26 ! Hasselmann et al. (JPO, 1985). 27 ! 28 ! 2. Variables and types : 29 ! 30 ! Name Type Scope Description 31 ! ---------------------------------------------------------------- 32 ! ---------------------------------------------------------------- 33 ! 34 ! 3. Subroutines and functions : 35 ! 36 ! Name Type Scope Description 37 ! ---------------------------------------------------------------- 38 ! W3SNL1 Subr. Public Calculate interactions. 39 ! INSNL1 Subr. Public Initialization routine. 40 ! ---------------------------------------------------------------- 41 ! 42 ! 4. Subroutines and functions used : 43 ! 44 ! See subroutine documentation. 45 ! 46 ! 5. Remarks : 47 ! 48 ! 6. Switches : 49 ! 50 ! !/S Enable subroutine tracing. 51 ! !/T(n) Test output, see subroutines. 52 ! 53 ! 7. Source code : 54 ! 55 !/ ------------------------------------------------------------------- / 56 !/ 57 PUBLIC Page 2 Source Listing W3SNL1 2014-09-16 16:59 w3snl1md.f90 58 !/ 59 CONTAINS 60 !/ ------------------------------------------------------------------- / 61 SUBROUTINE W3SNL1 (A, CG, KDMEAN, S, D) 62 !/ 63 !/ +-----------------------------------+ 64 !/ | WAVEWATCH III NOAA/NCEP | 65 !/ | H. L. Tolman | 66 !/ | FORTRAN 90 | 67 !/ | Last update : 03-Sep-2012 | 68 !/ +-----------------------------------+ 69 !/ 70 !/ 12-Jun-1996 : Final FORTRAN 77 ( version 1.18 ) 71 !/ 04-Feb-2000 : Upgrade to FORTRAN 90 ( version 2.00 ) 72 !/ 09-May-2002 : Switch clean up. ( version 2.21 ) 73 !/ 24-Dec-2004 : Multiple grid version. ( version 3.06 ) 74 !/ 03-Sep-2012 : Clean up of test output T0, T1 ( version 4.07 ) 75 !/ 76 ! 1. Purpose : 77 ! 78 ! Calculate nonlinear interactions and the diagonal term of 79 ! its derivative. 80 ! 81 ! 2. Method : 82 ! 83 ! Discrete interaction approximation. (Hasselmann and Hasselmann 84 ! 1985; WAMDI group 1988) 85 ! 86 ! The DIA is applied to the energy spectrum (instead of the action 87 ! spectrum), for which is was originally developped. Because the 88 ! frequency grid is invariant, the nonlinear interactions are 89 ! calculated for the frequency spectrum, as in WAM. This requires 90 ! only a single set of interpolation data which can be applied 91 ! throughout the spatial domain. For deep water this is idenitical 92 ! to a direct application to the wavenumber spectrum, for shallow 93 ! water it is not. As the shallow water correction is nothing but 94 ! a crude approximation, the choice between spectra is expected to 95 ! be irrelevant. 96 ! 97 ! The nonlinear interactions are calculated for two "mirror image" 98 ! quadruplets as described in the manual. The central bin of these 99 ! quadruples is placed on the discrete complonents of the spectrum, 100 ! which requires interpolation to obtain other eneregy densities. 101 ! The figure below defines the diferent basic counters and weights 102 ! necessary for this interpolation. 103 ! 104 ! IFRM1 IFRM 105 ! 5 7 T | 106 ! ITHM1 +------+ H + 107 ! | | E | IFRP IFRP1 108 ! | \ | T | 3 1 109 ! ITHM +------+ A + +---------+ ITHP1 110 ! 6 \8 | | | 111 ! | | / | 112 ! \ + +---------+ ITHP 113 ! | /4 2 114 ! \ | / Page 3 Source Listing W3SNL1 2014-09-16 16:59 w3snl1md.f90 115 ! -+-----+------+-------#--------+---------+----------+ 116 ! / | \ FREQ. 117 ! | \4 2 118 ! / + +---------+ ITHP 119 ! | | \ | 120 ! 6 /8 | | | 121 ! ITHM +------+ + +---------+ ITHP1 122 ! | \ | | 3 1 123 ! | | | IFRP IFRP1 124 ! ITHM1 +------+ + 125 ! 5 7 | 126 ! 127 ! To create long vector loops and to efficiently deal with the 128 ! closed nature of the directional space, the relative counters 129 ! above are replaced by complete addresses stored in 32 arrays 130 ! (see section 3 and INSNL1). The interaction are furthermore 131 ! calucated for an extended spectrum, making it unnecessary to 132 ! introduce extra weight factors for low and high frequencies. 133 ! Therefore low and high frequencies are added to the local 134 ! (auxiliary) spectrum as illustraed below. 135 ! 136 ! ^ +---+---------------------+---------+- NTH 137 ! | | : : | 138 ! | : : | 139 ! d | 2 : original spectrum : 1 | 140 ! i | : : | 141 ! r | : : | 142 ! +---+---------------------+---------+- 1 143 ! Frequencies --> ^ 144 ! IFR = 0 1 NFR | NFRHGH 145 ! | 146 ! NFRCHG 147 ! 148 ! where : 1 : Extra tail added beyond NFR 149 ! 2 : Empty bins at low frequencies 150 ! 151 ! NFRHGH = NFR + IFRP1 - IFRM1 152 ! NFRCHG = NFR - IFRM1 153 ! 154 ! All counters and arrays are set in INSNL1. See also section 3 155 ! and section 8. 156 ! 157 ! 3. Parameters : 158 ! 159 ! Parameter list 160 ! ---------------------------------------------------------------- 161 ! A R.A. I Action spectrum A(ISP) as a function of 162 ! direction (rad) and wavenumber. 163 ! CG R.A. I Group velocities (dimension NK). 164 ! KDMEAN Real I Mean relative depth. 165 ! S R.A. O Source term. *) 166 ! D R.A. O Diagonal term of derivative. *) 167 ! ---------------------------------------------------------------- 168 ! *) 1-D array with dimension NTH*NK 169 ! 170 ! 4. Subroutines used : 171 ! Page 4 Source Listing W3SNL1 2014-09-16 16:59 w3snl1md.f90 172 ! Name Type Module Description 173 ! ---------------------------------------------------------------- 174 ! STRACE Subr. W3SERVMD Subroutine tracing. 175 ! PRT2DS Subr. W3ARRYMD Print plot of spectra. 176 ! OUTMAT Subr. W3WRRYMD Print out 2D matrix. 177 ! ---------------------------------------------------------------- 178 ! 179 ! 5. Called by : 180 ! 181 ! Name Type Module Description 182 ! ---------------------------------------------------------------- 183 ! W3SRCE Subr. W3SRCEMD Source term integration. 184 ! W3EXPO Subr. N/A Point output post-processor. 185 ! GXEXPO Subr. N/A GrADS point output post-processor. 186 ! ---------------------------------------------------------------- 187 ! 188 ! 6. Error messages : 189 ! 190 ! None. 191 ! 192 ! 7. Remarks : 193 ! 194 ! None. 195 ! 196 ! 8. Structure : 197 ! 198 ! ------------------------------------------- 199 ! 1. Calculate proportionality constant. 200 ! 2. Prepare auxiliary spectrum 201 ! 3. Calculate (unfolded) interactions 202 ! a Energy at interacting bins 203 ! b Contribution to interactions 204 ! c Fold interactions to side angles 205 ! 4. Put source and diagonal term together 206 ! ------------------------------------------- 207 ! 208 ! 9. Switches : 209 ! 210 ! !/S Enable subroutine tracing. 211 ! !/T Enable general test output. 212 ! !/T0 2-D print plot of source term. 213 ! !/T1 Print arrays. 214 ! 215 ! 10. Source code : 216 ! 217 !/ ------------------------------------------------------------------- / 218 !/ 219 USE CONSTANTS 220 USE W3GDATMD, ONLY: NK, NTH, NSPEC, SIG, FACHFE, & 221 KDCON, KDMN, SNLC1, SNLS1, SNLS2, SNLS3 222 USE W3ADATMD, ONLY: NFR, NFRHGH, NFRCHG, NSPECX, NSPECY, & 223 IP11, IP12, IP13, IP14, IM11, IM12, IM13, IM14, & 224 IP21, IP22, IP23, IP24, IM21, IM22, IM23, IM24, & 225 IC11, IC12, IC21, IC22, IC31, IC32, IC41, IC42, & 226 IC51, IC52, IC61, IC62, IC71, IC72, IC81, IC82, & 227 DAL1, DAL2, DAL3, AF11, & 228 AWG1, AWG2, AWG3, AWG4, AWG5, AWG6, AWG7, AWG8, & Page 5 Source Listing W3SNL1 2014-09-16 16:59 w3snl1md.f90 229 SWG1, SWG2, SWG3, SWG4, SWG5, SWG6, SWG7, SWG8 230 ! 231 IMPLICIT NONE 232 !/ 233 !/ ------------------------------------------------------------------- / 234 !/ Parameter list 235 !/ 236 REAL, INTENT(IN) :: A(NSPEC), CG(NK), KDMEAN 237 REAL, INTENT(OUT) :: S(NSPEC), D(NSPEC) 238 !/ 239 !/ ------------------------------------------------------------------- / 240 !/ Local parameters 241 !/ 242 INTEGER :: ITH, IFR, ISP 243 REAL :: X, X2, CONS, CONX, FACTOR, & 244 E00, EP1, EM1, EP2, EM2, & 245 SA1A, SA1B, SA2A, SA2B 246 REAL :: UE (1-NTH:NSPECY), SA1 (1-NTH:NSPECX), & 247 SA2 (1-NTH:NSPECX), DA1C(1-NTH:NSPECX), & 248 DA1P(1-NTH:NSPECX), DA1M(1-NTH:NSPECX), & 249 DA2C(1-NTH:NSPECX), DA2P(1-NTH:NSPECX), & 250 DA2M(1-NTH:NSPECX), CON ( NSPEC ) 251 !/ 252 !/ ------------------------------------------------------------------- / 253 !/ 254 ! initialisations 255 ! 256 ! 1. Calculate prop. constant --------------------------------------- * 257 ! 258 X = MAX ( KDCON*KDMEAN , KDMN ) 259 X2 = MAX ( -1.E15, SNLS3*X) 260 CONS = SNLC1 * ( 1. + SNLS1/X * (1.-SNLS2*X) * EXP(X2) ) 261 ! 262 ! 2. Prepare auxiliary spectrum and arrays -------------------------- * 263 ! 264 DO IFR=1, NFR 265 CONX = TPIINV / SIG(IFR) * CG(IFR) 266 DO ITH=1, NTH 267 ISP = ITH + (IFR-1)*NTH 268 UE (ISP) = A(ISP) / CONX 269 CON(ISP) = CONX 270 END DO 271 END DO 272 ! 273 DO IFR=NFR+1, NFRHGH 274 DO ITH=1, NTH 275 ISP = ITH + (IFR-1)*NTH 276 UE(ISP) = UE(ISP-NTH) * FACHFE 277 END DO 278 END DO 279 ! 280 DO ISP=1-NTH, 0 281 UE (ISP) = 0. 282 SA1 (ISP) = 0. 283 SA2 (ISP) = 0. 284 DA1C(ISP) = 0. 285 DA1P(ISP) = 0. Page 6 Source Listing W3SNL1 2014-09-16 16:59 w3snl1md.f90 286 DA1M(ISP) = 0. 287 DA2C(ISP) = 0. 288 DA2P(ISP) = 0. 289 DA2M(ISP) = 0. 290 END DO 291 ! 292 ! 3. Calculate interactions for extended spectrum ------------------- * 293 ! 294 DO ISP=1, NSPECX 295 ! 296 ! 3.a Energy at interacting bins 297 ! 298 E00 = UE(ISP) 299 EP1 = AWG1 * UE(IP11(ISP)) + AWG2 * UE(IP12(ISP)) & 300 + AWG3 * UE(IP13(ISP)) + AWG4 * UE(IP14(ISP)) 301 EM1 = AWG5 * UE(IM11(ISP)) + AWG6 * UE(IM12(ISP)) & 302 + AWG7 * UE(IM13(ISP)) + AWG8 * UE(IM14(ISP)) 303 EP2 = AWG1 * UE(IP21(ISP)) + AWG2 * UE(IP22(ISP)) & 304 + AWG3 * UE(IP23(ISP)) + AWG4 * UE(IP24(ISP)) 305 EM2 = AWG5 * UE(IM21(ISP)) + AWG6 * UE(IM22(ISP)) & 306 + AWG7 * UE(IM23(ISP)) + AWG8 * UE(IM24(ISP)) 307 ! 308 ! 3.b Contribution to interactions 309 ! 310 FACTOR = CONS * AF11(ISP) * E00 311 ! 312 SA1A = E00 * ( EP1*DAL1 + EM1*DAL2 ) 313 SA1B = SA1A - EP1*EM1*DAL3 314 SA2A = E00 * ( EP2*DAL1 + EM2*DAL2 ) 315 SA2B = SA2A - EP2*EM2*DAL3 316 ! 317 SA1 (ISP) = FACTOR * SA1B 318 SA2 (ISP) = FACTOR * SA2B 319 ! 320 DA1C(ISP) = CONS * AF11(ISP) * ( SA1A + SA1B ) 321 DA1P(ISP) = FACTOR * ( DAL1*E00 - DAL3*EM1 ) 322 DA1M(ISP) = FACTOR * ( DAL2*E00 - DAL3*EP1 ) 323 ! 324 DA2C(ISP) = CONS * AF11(ISP) * ( SA2A + SA2B ) 325 DA2P(ISP) = FACTOR * ( DAL1*E00 - DAL3*EM2 ) 326 DA2M(ISP) = FACTOR * ( DAL2*E00 - DAL3*EP2 ) 327 ! 328 END DO 329 ! 330 ! 4. Put source and diagonal term together -------------------------- * 331 ! 332 DO ISP=1, NSPEC 333 ! 334 S(ISP) = CON(ISP) * ( - 2. * ( SA1(ISP) + SA2(ISP) ) & 335 + AWG1 * ( SA1(IC11(ISP)) + SA2(IC12(ISP)) ) & 336 + AWG2 * ( SA1(IC21(ISP)) + SA2(IC22(ISP)) ) & 337 + AWG3 * ( SA1(IC31(ISP)) + SA2(IC32(ISP)) ) & 338 + AWG4 * ( SA1(IC41(ISP)) + SA2(IC42(ISP)) ) & 339 + AWG5 * ( SA1(IC51(ISP)) + SA2(IC52(ISP)) ) & 340 + AWG6 * ( SA1(IC61(ISP)) + SA2(IC62(ISP)) ) & 341 + AWG7 * ( SA1(IC71(ISP)) + SA2(IC72(ISP)) ) & 342 + AWG8 * ( SA1(IC81(ISP)) + SA2(IC82(ISP)) ) ) Page 7 Source Listing W3SNL1 2014-09-16 16:59 w3snl1md.f90 343 ! 344 D(ISP) = - 2. * ( DA1C(ISP) + DA2C(ISP) ) & 345 + SWG1 * ( DA1P(IC11(ISP)) + DA2P(IC12(ISP)) ) & 346 + SWG2 * ( DA1P(IC21(ISP)) + DA2P(IC22(ISP)) ) & 347 + SWG3 * ( DA1P(IC31(ISP)) + DA2P(IC32(ISP)) ) & 348 + SWG4 * ( DA1P(IC41(ISP)) + DA2P(IC42(ISP)) ) & 349 + SWG5 * ( DA1M(IC51(ISP)) + DA2M(IC52(ISP)) ) & 350 + SWG6 * ( DA1M(IC61(ISP)) + DA2M(IC62(ISP)) ) & 351 + SWG7 * ( DA1M(IC71(ISP)) + DA2M(IC72(ISP)) ) & 352 + SWG8 * ( DA1M(IC81(ISP)) + DA2M(IC82(ISP)) ) 353 ! 354 END DO 355 ! 356 ! ... Test output : 357 ! 358 RETURN 359 ! 360 ! Formats 361 ! 362 !/ 363 !/ End of W3SNL1 ----------------------------------------------------- / 364 !/ 365 END SUBROUTINE W3SNL1 ENTRY POINTS Name w3snl1md_mp_w3snl1_ Page 8 Source Listing W3SNL1 2014-09-16 16:59 Symbol Table w3snl1md.f90 SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References A Dummy 61 R(4) 4 1 0 ARG,IN 268 AF11 Local 227 R(4) 4 1 1 PTR 227,310,320,324 AWG1 Local 228 R(4) 4 scalar PTR 228,299,303,335 AWG2 Local 228 R(4) 4 scalar PTR 228,299,303,336 AWG3 Local 228 R(4) 4 scalar PTR 228,300,304,337 AWG4 Local 228 R(4) 4 scalar PTR 228,300,304,338 AWG5 Local 228 R(4) 4 scalar PTR 228,301,305,339 AWG6 Local 228 R(4) 4 scalar PTR 228,301,305,340 AWG7 Local 228 R(4) 4 scalar PTR 228,302,306,341 AWG8 Local 228 R(4) 4 scalar PTR 228,302,306,342 CG Dummy 61 R(4) 4 1 0 ARG,IN 265 CON Local 250 R(4) 4 1 0 269,334 CONS Local 243 R(4) 4 scalar 260,310,320,324 CONSTANTS Module 219 219 CONX Local 243 R(4) 4 scalar 265,268,269 D Dummy 61 R(4) 4 1 0 ARG,OUT 344 DA1C Local 247 R(4) 4 1 0 284,320,344 DA1M Local 248 R(4) 4 1 0 286,322,349,350,351,352 DA1P Local 248 R(4) 4 1 0 285,321,345,346,347,348 DA2C Local 249 R(4) 4 1 0 287,324,344 DA2M Local 250 R(4) 4 1 0 289,326,349,350,351,352 DA2P Local 249 R(4) 4 1 0 288,325,345,346,347,348 DAL1 Local 227 R(4) 4 scalar PTR 227,312,314,321,325 DAL2 Local 227 R(4) 4 scalar PTR 227,312,314,322,326 DAL3 Local 227 R(4) 4 scalar PTR 227,313,315,321,322,325,326 E00 Local 244 R(4) 4 scalar 298,310,312,314,321,322,325,326 EM1 Local 244 R(4) 4 scalar 301,312,313,321 EM2 Local 244 R(4) 4 scalar 305,314,315,325 EP1 Local 244 R(4) 4 scalar 299,312,313,322 EP2 Local 244 R(4) 4 scalar 303,314,315,326 EXP Func 260 scalar 260 FACHFE Local 220 R(4) 4 scalar PTR 220,276 FACTOR Local 243 R(4) 4 scalar 310,317,318,321,322,325,326 IC11 Local 225 I(4) 4 1 1 PTR 225,335,345 IC12 Local 225 I(4) 4 1 1 PTR 225,335,345 IC21 Local 225 I(4) 4 1 1 PTR 225,336,346 IC22 Local 225 I(4) 4 1 1 PTR 225,336,346 IC31 Local 225 I(4) 4 1 1 PTR 225,337,347 IC32 Local 225 I(4) 4 1 1 PTR 225,337,347 IC41 Local 225 I(4) 4 1 1 PTR 225,338,348 IC42 Local 225 I(4) 4 1 1 PTR 225,338,348 IC51 Local 226 I(4) 4 1 1 PTR 226,339,349 IC52 Local 226 I(4) 4 1 1 PTR 226,339,349 IC61 Local 226 I(4) 4 1 1 PTR 226,340,350 IC62 Local 226 I(4) 4 1 1 PTR 226,340,350 IC71 Local 226 I(4) 4 1 1 PTR 226,341,351 IC72 Local 226 I(4) 4 1 1 PTR 226,341,351 IC81 Local 226 I(4) 4 1 1 PTR 226,342,352 IC82 Local 226 I(4) 4 1 1 PTR 226,342,352 IFR Local 242 I(4) 4 scalar 264,265,267,273,275 IM11 Local 223 I(4) 4 1 1 PTR 223,301 Page 9 Source Listing W3SNL1 2014-09-16 16:59 Symbol Table w3snl1md.f90 Name Object Declared Type Bytes Dimen Elements Attributes References IM12 Local 223 I(4) 4 1 1 PTR 223,301 IM13 Local 223 I(4) 4 1 1 PTR 223,302 IM14 Local 223 I(4) 4 1 1 PTR 223,302 IM21 Local 224 I(4) 4 1 1 PTR 224,305 IM22 Local 224 I(4) 4 1 1 PTR 224,305 IM23 Local 224 I(4) 4 1 1 PTR 224,306 IM24 Local 224 I(4) 4 1 1 PTR 224,306 IP11 Local 223 I(4) 4 1 1 PTR 223,299 IP12 Local 223 I(4) 4 1 1 PTR 223,299 IP13 Local 223 I(4) 4 1 1 PTR 223,300 IP14 Local 223 I(4) 4 1 1 PTR 223,300 IP21 Local 224 I(4) 4 1 1 PTR 224,303 IP22 Local 224 I(4) 4 1 1 PTR 224,303 IP23 Local 224 I(4) 4 1 1 PTR 224,304 IP24 Local 224 I(4) 4 1 1 PTR 224,304 ISP Local 242 I(4) 4 scalar 267,268,269,275,276,280,281,282,28 3,284,285,286,287,288,289,294,298, 299,300,301,302,303,304,305,306,31 0,317,318,320,321,322,324,325,326, 332,334,335,336,337,338,339,340,34 1,342,344,345,346,347,348,349,350, 351,352 ITH Local 242 I(4) 4 scalar 266,267,274,275 KDCON Local 221 R(4) 4 scalar PTR 221,258 KDMEAN Dummy 61 R(4) 4 scalar ARG,IN 258 KDMN Local 221 R(4) 4 scalar PTR 221,258 MAX Func 258 scalar 258,259 NFR Local 222 I(4) 4 scalar PTR 222,264,273 NFRCHG Local 222 I(4) 4 scalar PTR 222 NFRHGH Local 222 I(4) 4 scalar PTR 222,273 NK Local 220 I(4) 4 scalar PTR 220,236 NSPEC Local 220 I(4) 4 scalar PTR 220,236,237,250,332 NSPECX Local 222 I(4) 4 scalar PTR 222,246,247,248,249,250,294 NSPECY Local 222 I(4) 4 scalar PTR 222,246 NTH Local 220 I(4) 4 scalar PTR 220,246,247,248,249,250,266,267,27 4,275,276,280 S Dummy 61 R(4) 4 1 0 ARG,OUT 334 SA1 Local 246 R(4) 4 1 0 282,317,334,335,336,337,338,339,34 0,341,342 SA1A Local 245 R(4) 4 scalar 312,313,320 SA1B Local 245 R(4) 4 scalar 313,317,320 SA2 Local 247 R(4) 4 1 0 283,318,334,335,336,337,338,339,34 0,341,342 SA2A Local 245 R(4) 4 scalar 314,315,324 SA2B Local 245 R(4) 4 scalar 315,318,324 SIG Local 220 R(4) 4 1 1 PTR 220,265 SNLC1 Local 221 R(4) 4 scalar PTR 221,260 SNLS1 Local 221 R(4) 4 scalar PTR 221,260 SNLS2 Local 221 R(4) 4 scalar PTR 221,260 SNLS3 Local 221 R(4) 4 scalar PTR 221,259 SWG1 Local 229 R(4) 4 scalar PTR 229,345 SWG2 Local 229 R(4) 4 scalar PTR 229,346 SWG3 Local 229 R(4) 4 scalar PTR 229,347 SWG4 Local 229 R(4) 4 scalar PTR 229,348 SWG5 Local 229 R(4) 4 scalar PTR 229,349 Page 10 Source Listing W3SNL1 2014-09-16 16:59 Symbol Table w3snl1md.f90 Name Object Declared Type Bytes Dimen Elements Attributes References SWG6 Local 229 R(4) 4 scalar PTR 229,350 SWG7 Local 229 R(4) 4 scalar PTR 229,351 SWG8 Local 229 R(4) 4 scalar PTR 229,352 TPIINV Param 265 R(4) 4 scalar 265 UE Local 246 R(4) 4 1 0 268,276,281,298,299,300,301,302,30 3,304,305,306 W3ADATMD Module 222 222 W3GDATMD Module 220 220 W3SNL1 Subr 61 X Local 243 R(4) 4 scalar 258,259,260 X2 Local 243 R(4) 4 scalar 259,260 Page 11 Source Listing W3SNL1 2014-09-16 16:59 w3snl1md.f90 366 !/ ------------------------------------------------------------------- / 367 SUBROUTINE INSNL1 ( IMOD ) 368 !/ 369 !/ +-----------------------------------+ 370 !/ | WAVEWATCH III NOAA/NCEP | 371 !/ | H. L. Tolman | 372 !/ | FORTRAN 90 | 373 !/ | Last update : 24-Dec-2004 | 374 !/ +-----------------------------------+ 375 !/ 376 !/ 19-Oct-1998 : Final FORTRAN 77 ( version 1.18 ) 377 !/ 04-Feb-2000 : Upgrade to FORTRAN 90 ( version 2.00 ) 378 !/ 09-May-2002 : Switch clean up. ( version 2.21 ) 379 !/ 24-Dec-2004 : Multiple grid version. ( version 3.06 ) 380 !/ 381 ! 1. Purpose : 382 ! 383 ! Preprocessing for nonlinear interactions (weights). 384 ! 385 ! 2. Method : 386 ! 387 ! See W3SNL1. 388 ! 389 ! 3. Parameters : 390 ! 391 ! Parameter list 392 ! ---------------------------------------------------------------- 393 ! IMOD Int. I Model number. 394 ! ---------------------------------------------------------------- 395 ! 396 ! Local variables 397 ! ---------------------------------------------------------------- 398 ! ITHxn Real Directional indices. (relative) 399 ! IFRxn Real Frequency indices. (relative) 400 ! IT1 R.A. Directional indices. (1-D) 401 ! IFn R.A. Frequency indices. (1-D) 402 ! ---------------------------------------------------------------- 403 ! 404 ! 4. Subroutines used : 405 ! 406 ! Name Type Module Description 407 ! ---------------------------------------------------------------- 408 ! STRACE Subr. W3SERVMD Subroutine tracing. 409 ! ---------------------------------------------------------------- 410 ! 411 ! 5. Called by : 412 ! 413 ! Name Type Module Description 414 ! ---------------------------------------------------------------- 415 ! W3IOGR Subr. W3IOGRMD Model definition file processing. 416 ! ---------------------------------------------------------------- 417 ! 418 ! 6. Error messages : 419 ! 420 ! - Check on array dimensions for local arrays in W3SNL. 421 ! 422 ! 7. Remarks : Page 12 Source Listing INSNL1 2014-09-16 16:59 w3snl1md.f90 423 ! 424 ! - Test output is generated through W3IOGR. 425 ! - No testing of IMOD ir resetting of pointers. 426 ! 427 ! 8. Structure : 428 ! 429 ! - See source code. 430 ! 431 ! 9. Switches : 432 ! 433 ! !/S Enable subroutine tracing. 434 ! 435 ! 10. Source code : 436 ! 437 !/ ------------------------------------------------------------------- / 438 USE CONSTANTS 439 USE W3GDATMD, ONLY: NK, NTH, NSPEC, DTH, XFR, SIG, LAM 440 USE W3ADATMD, ONLY: W3DMNL 441 USE W3ADATMD, ONLY: NFR, NFRHGH, NFRCHG, NSPECX, NSPECY, & 442 IP11, IP12, IP13, IP14, IM11, IM12, IM13, IM14, & 443 IP21, IP22, IP23, IP24, IM21, IM22, IM23, IM24, & 444 IC11, IC12, IC21, IC22, IC31, IC32, IC41, IC42, & 445 IC51, IC52, IC61, IC62, IC71, IC72, IC81, IC82, & 446 DAL1, DAL2, DAL3, AF11, & 447 AWG1, AWG2, AWG3, AWG4, AWG5, AWG6, AWG7, AWG8, & 448 SWG1, SWG2, SWG3, SWG4, SWG5, SWG6, SWG7, SWG8 449 USE W3ODATMD, ONLY: NDST, NDSE 450 !/ 451 IMPLICIT NONE 452 !/ 453 !/ ------------------------------------------------------------------- / 454 !/ Parameter list 455 !/ 456 INTEGER, INTENT(IN) :: IMOD 457 !/ 458 !/ Local parameters 459 !/ 460 INTEGER :: IFR, ITH, ISP, ITHP, ITHP1, ITHM, & 461 ITHM1,IFRP, IFRP1, IFRM, IFRM1 462 INTEGER, ALLOCATABLE :: IF1(:), IF2(:), IF3(:), IF4(:), & 463 IF5(:), IF6(:), IF7(:), IF8(:), & 464 IT1(:), IT2(:), IT3(:), IT4(:), & 465 IT5(:), IT6(:), IT7(:), IT8(:) 466 REAL :: DELTH3, DELTH4, LAMM2, LAMP2, CTHP, & 467 WTHP, WTHP1, CTHM, WTHM, WTHM1, & 468 XFRLN, WFRP, WFRP1, WFRM, WFRM1, FR, & 469 AF11A 470 !/ 471 !/ ------------------------------------------------------------------- / 472 !/ 473 ! 474 NFR = NK 475 ! 476 ! 1. Internal angles of quadruplet. 477 ! 478 LAMM2 = (1.-LAM)**2 479 LAMP2 = (1.+LAM)**2 Page 13 Source Listing INSNL1 2014-09-16 16:59 w3snl1md.f90 480 DELTH3 = ACOS( (LAMM2**2+4.-LAMP2**2) / (4.*LAMM2) ) 481 DELTH4 = ASIN(-SIN(DELTH3)*LAMM2/LAMP2) 482 ! 483 ! 2. Lambda dependend weight factors. 484 ! 485 DAL1 = 1. / (1.+LAM)**4 486 DAL2 = 1. / (1.-LAM)**4 487 DAL3 = 2. * DAL1 * DAL2 488 ! 489 ! 3. Directional indices. 490 ! 491 CTHP = ABS(DELTH4/DTH) 492 ITHP = INT(CTHP) 493 ITHP1 = ITHP + 1 494 WTHP = CTHP - REAL(ITHP) 495 WTHP1 = 1.- WTHP 496 ! 497 CTHM = ABS(DELTH3/DTH) 498 ITHM = INT(CTHM) 499 ITHM1 = ITHM + 1 500 WTHM = CTHM - REAL(ITHM) 501 WTHM1 = 1.- WTHM 502 ! 503 ! 4. Frequency indices. 504 ! 505 XFRLN = LOG(XFR) 506 ! 507 IFRP = INT( LOG(1.+LAM) / XFRLN ) 508 IFRP1 = IFRP + 1 509 WFRP = (1.+LAM - XFR**IFRP) / (XFR**IFRP1 - XFR**IFRP) 510 WFRP1 = 1. - WFRP 511 ! 512 IFRM = INT( LOG(1.-LAM) / XFRLN ) 513 IFRM1 = IFRM - 1 514 WFRM = (XFR**IFRM -(1.-LAM)) / (XFR**IFRM - XFR**IFRM1) 515 WFRM1 = 1. - WFRM 516 ! 517 ! 5. Range of calculations 518 ! 519 NFRHGH = NFR + IFRP1 - IFRM1 520 NFRCHG = NFR - IFRM1 521 NSPECY = NFRHGH * NTH 522 NSPECX = NFRCHG * NTH 523 ! 524 ! 6. Allocate arrays or check array sizes 525 ! 526 CALL W3DMNL ( IMOD, NDSE, NDST, NSPEC, NSPECX ) 527 ! 528 ALLOCATE ( IF1(NFRCHG), IF2(NFRCHG), IF3(NFRCHG), IF4(NFRCHG), & 529 IF5(NFRCHG), IF6(NFRCHG), IF7(NFRCHG), IF8(NFRCHG), & 530 IT1(NTH), IT2(NTH), IT3(NTH), IT4(NTH), & 531 IT5(NTH), IT6(NTH), IT7(NTH), IT8(NTH) ) 532 ! 533 ! 7. Spectral addresses 534 ! 535 DO IFR=1, NFRCHG 536 IF1(IFR) = IFR+IFRP Page 14 Source Listing INSNL1 2014-09-16 16:59 w3snl1md.f90 537 IF2(IFR) = IFR+IFRP1 538 IF3(IFR) = MAX ( 0 , IFR+IFRM ) 539 IF4(IFR) = MAX ( 0 , IFR+IFRM1 ) 540 IF5(IFR) = MAX ( 0 , IFR-IFRP ) 541 IF6(IFR) = MAX ( 0 , IFR-IFRP1 ) 542 IF7(IFR) = IFR-IFRM 543 IF8(IFR) = IFR-IFRM1 544 END DO 545 ! 546 DO ITH=1, NTH 547 IT1(ITH) = ITH + ITHP 548 IT2(ITH) = ITH + ITHP1 549 IT3(ITH) = ITH + ITHM 550 IT4(ITH) = ITH + ITHM1 551 IT5(ITH) = ITH - ITHP 552 IT6(ITH) = ITH - ITHP1 553 IT7(ITH) = ITH - ITHM 554 IT8(ITH) = ITH - ITHM1 555 IF ( IT1(ITH).GT.NTH) IT1(ITH) = IT1(ITH) - NTH 556 IF ( IT2(ITH).GT.NTH) IT2(ITH) = IT2(ITH) - NTH 557 IF ( IT3(ITH).GT.NTH) IT3(ITH) = IT3(ITH) - NTH 558 IF ( IT4(ITH).GT.NTH) IT4(ITH) = IT4(ITH) - NTH 559 IF ( IT5(ITH).LT. 1 ) IT5(ITH) = IT5(ITH) + NTH 560 IF ( IT6(ITH).LT. 1 ) IT6(ITH) = IT6(ITH) + NTH 561 IF ( IT7(ITH).LT. 1 ) IT7(ITH) = IT7(ITH) + NTH 562 IF ( IT8(ITH).LT. 1 ) IT8(ITH) = IT8(ITH) + NTH 563 END DO 564 ! 565 DO ISP=1, NSPECX 566 IFR = 1 + (ISP-1)/NTH 567 ITH = 1 + MOD(ISP-1,NTH) 568 IP11(ISP) = IT2(ITH) + (IF2(IFR)-1)*NTH 569 IP12(ISP) = IT1(ITH) + (IF2(IFR)-1)*NTH 570 IP13(ISP) = IT2(ITH) + (IF1(IFR)-1)*NTH 571 IP14(ISP) = IT1(ITH) + (IF1(IFR)-1)*NTH 572 IM11(ISP) = IT8(ITH) + (IF4(IFR)-1)*NTH 573 IM12(ISP) = IT7(ITH) + (IF4(IFR)-1)*NTH 574 IM13(ISP) = IT8(ITH) + (IF3(IFR)-1)*NTH 575 IM14(ISP) = IT7(ITH) + (IF3(IFR)-1)*NTH 576 IP21(ISP) = IT6(ITH) + (IF2(IFR)-1)*NTH 577 IP22(ISP) = IT5(ITH) + (IF2(IFR)-1)*NTH 578 IP23(ISP) = IT6(ITH) + (IF1(IFR)-1)*NTH 579 IP24(ISP) = IT5(ITH) + (IF1(IFR)-1)*NTH 580 IM21(ISP) = IT4(ITH) + (IF4(IFR)-1)*NTH 581 IM22(ISP) = IT3(ITH) + (IF4(IFR)-1)*NTH 582 IM23(ISP) = IT4(ITH) + (IF3(IFR)-1)*NTH 583 IM24(ISP) = IT3(ITH) + (IF3(IFR)-1)*NTH 584 END DO 585 ! 586 DO ISP=1, NSPEC 587 IFR = 1 + (ISP-1)/NTH 588 ITH = 1 + MOD(ISP-1,NTH) 589 IC11(ISP) = IT6(ITH) + (IF6(IFR)-1)*NTH 590 IC21(ISP) = IT5(ITH) + (IF6(IFR)-1)*NTH 591 IC31(ISP) = IT6(ITH) + (IF5(IFR)-1)*NTH 592 IC41(ISP) = IT5(ITH) + (IF5(IFR)-1)*NTH 593 IC51(ISP) = IT4(ITH) + (IF8(IFR)-1)*NTH Page 15 Source Listing INSNL1 2014-09-16 16:59 w3snl1md.f90 594 IC61(ISP) = IT3(ITH) + (IF8(IFR)-1)*NTH 595 IC71(ISP) = IT4(ITH) + (IF7(IFR)-1)*NTH 596 IC81(ISP) = IT3(ITH) + (IF7(IFR)-1)*NTH 597 IC12(ISP) = IT2(ITH) + (IF6(IFR)-1)*NTH 598 IC22(ISP) = IT1(ITH) + (IF6(IFR)-1)*NTH 599 IC32(ISP) = IT2(ITH) + (IF5(IFR)-1)*NTH 600 IC42(ISP) = IT1(ITH) + (IF5(IFR)-1)*NTH 601 IC52(ISP) = IT8(ITH) + (IF8(IFR)-1)*NTH 602 IC62(ISP) = IT7(ITH) + (IF8(IFR)-1)*NTH 603 IC72(ISP) = IT8(ITH) + (IF7(IFR)-1)*NTH 604 IC82(ISP) = IT7(ITH) + (IF7(IFR)-1)*NTH 605 END DO 606 ! 607 DEALLOCATE ( IF1, IF2, IF3, IF4, IF5, IF6, IF7, IF8, & 608 IT1, IT2, IT3, IT4, IT5, IT6, IT7, IT8 ) 609 ! 610 ! 8. Fill scaling array (f**11) 611 ! 612 DO IFR=1, NFR 613 AF11A = (SIG(IFR)*TPIINV)**11 614 DO ITH=1, NTH 615 AF11(ITH+(IFR-1)*NTH) = AF11A 616 END DO 617 END DO 618 ! 619 FR = SIG(NFR)*TPIINV 620 DO IFR=NFR+1, NFRCHG 621 FR = FR * XFR 622 AF11A = FR**11 623 DO ITH=1, NTH 624 AF11(ITH+(IFR-1)*NTH) = AF11A 625 END DO 626 END DO 627 ! 628 ! 9. Interpolation weights 629 ! 630 AWG1 = WTHP * WFRP 631 AWG2 = WTHP1 * WFRP 632 AWG3 = WTHP * WFRP1 633 AWG4 = WTHP1 * WFRP1 634 AWG5 = WTHM * WFRM 635 AWG6 = WTHM1 * WFRM 636 AWG7 = WTHM * WFRM1 637 AWG8 = WTHM1 * WFRM1 638 ! 639 SWG1 = AWG1**2 640 SWG2 = AWG2**2 641 SWG3 = AWG3**2 642 SWG4 = AWG4**2 643 SWG5 = AWG5**2 644 SWG6 = AWG6**2 645 SWG7 = AWG7**2 646 SWG8 = AWG8**2 647 ! 648 RETURN 649 ! 650 ! Formats Page 16 Source Listing INSNL1 2014-09-16 16:59 w3snl1md.f90 651 ! 652 !/ 653 !/ End of INSNL1 ----------------------------------------------------- / 654 !/ 655 END SUBROUTINE INSNL1 ENTRY POINTS Name w3snl1md_mp_insnl1_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References ABS Func 491 scalar 491,497 ACOS Func 480 scalar 480 AF11 Local 446 R(4) 4 1 1 PTR 446,615,624 AF11A Local 469 R(4) 4 scalar 613,615,622,624 ASIN Func 481 scalar 481 AWG1 Local 447 R(4) 4 scalar PTR 447,630,639 AWG2 Local 447 R(4) 4 scalar PTR 447,631,640 AWG3 Local 447 R(4) 4 scalar PTR 447,632,641 AWG4 Local 447 R(4) 4 scalar PTR 447,633,642 AWG5 Local 447 R(4) 4 scalar PTR 447,634,643 AWG6 Local 447 R(4) 4 scalar PTR 447,635,644 AWG7 Local 447 R(4) 4 scalar PTR 447,636,645 AWG8 Local 447 R(4) 4 scalar PTR 447,637,646 CONSTANTS Module 438 438 CTHM Local 467 R(4) 4 scalar 497,498,500 CTHP Local 466 R(4) 4 scalar 491,492,494 DAL1 Local 446 R(4) 4 scalar PTR 446,485,487 DAL2 Local 446 R(4) 4 scalar PTR 446,486,487 DAL3 Local 446 R(4) 4 scalar PTR 446,487 DELTH3 Local 466 R(4) 4 scalar 480,481,497 DELTH4 Local 466 R(4) 4 scalar 481,491 DTH Local 439 R(4) 4 scalar PTR 439,491,497 FR Local 468 R(4) 4 scalar 619,621,622 IC11 Local 444 I(4) 4 1 1 PTR 444,589 IC12 Local 444 I(4) 4 1 1 PTR 444,597 IC21 Local 444 I(4) 4 1 1 PTR 444,590 IC22 Local 444 I(4) 4 1 1 PTR 444,598 IC31 Local 444 I(4) 4 1 1 PTR 444,591 IC32 Local 444 I(4) 4 1 1 PTR 444,599 IC41 Local 444 I(4) 4 1 1 PTR 444,592 IC42 Local 444 I(4) 4 1 1 PTR 444,600 IC51 Local 445 I(4) 4 1 1 PTR 445,593 IC52 Local 445 I(4) 4 1 1 PTR 445,601 IC61 Local 445 I(4) 4 1 1 PTR 445,594 IC62 Local 445 I(4) 4 1 1 PTR 445,602 IC71 Local 445 I(4) 4 1 1 PTR 445,595 IC72 Local 445 I(4) 4 1 1 PTR 445,603 IC81 Local 445 I(4) 4 1 1 PTR 445,596 IC82 Local 445 I(4) 4 1 1 PTR 445,604 Page 17 Source Listing INSNL1 2014-09-16 16:59 Symbol Table w3snl1md.f90 Name Object Declared Type Bytes Dimen Elements Attributes References IF1 Local 462 I(4) 4 1 1 ALC 528,536,570,571,578,579,607 IF2 Local 462 I(4) 4 1 1 ALC 528,537,568,569,576,577,607 IF3 Local 462 I(4) 4 1 1 ALC 528,538,574,575,582,583,607 IF4 Local 462 I(4) 4 1 1 ALC 528,539,572,573,580,581,607 IF5 Local 463 I(4) 4 1 1 ALC 529,540,591,592,599,600,607 IF6 Local 463 I(4) 4 1 1 ALC 529,541,589,590,597,598,607 IF7 Local 463 I(4) 4 1 1 ALC 529,542,595,596,603,604,607 IF8 Local 463 I(4) 4 1 1 ALC 529,543,593,594,601,602,607 IFR Local 460 I(4) 4 scalar 535,536,537,538,539,540,541,542,54 3,566,568,569,570,571,572,573,574, 575,576,577,578,579,580,581,582,58 3,587,589,590,591,592,593,594,595, 596,597,598,599,600,601,602,603,60 4,612,613,615,620,624 IFRM Local 461 I(4) 4 scalar 512,513,514,538,542 IFRM1 Local 461 I(4) 4 scalar 513,514,519,520,539,543 IFRP Local 461 I(4) 4 scalar 507,508,509,536,540 IFRP1 Local 461 I(4) 4 scalar 508,509,519,537,541 IM11 Local 442 I(4) 4 1 1 PTR 442,572 IM12 Local 442 I(4) 4 1 1 PTR 442,573 IM13 Local 442 I(4) 4 1 1 PTR 442,574 IM14 Local 442 I(4) 4 1 1 PTR 442,575 IM21 Local 443 I(4) 4 1 1 PTR 443,580 IM22 Local 443 I(4) 4 1 1 PTR 443,581 IM23 Local 443 I(4) 4 1 1 PTR 443,582 IM24 Local 443 I(4) 4 1 1 PTR 443,583 IMOD Dummy 367 I(4) 4 scalar ARG,IN 526 INSNL1 Subr 367 INT Func 492 scalar 492,498,507,512 IP11 Local 442 I(4) 4 1 1 PTR 442,568 IP12 Local 442 I(4) 4 1 1 PTR 442,569 IP13 Local 442 I(4) 4 1 1 PTR 442,570 IP14 Local 442 I(4) 4 1 1 PTR 442,571 IP21 Local 443 I(4) 4 1 1 PTR 443,576 IP22 Local 443 I(4) 4 1 1 PTR 443,577 IP23 Local 443 I(4) 4 1 1 PTR 443,578 IP24 Local 443 I(4) 4 1 1 PTR 443,579 ISP Local 460 I(4) 4 scalar 565,566,567,568,569,570,571,572,57 3,574,575,576,577,578,579,580,581, 582,583,586,587,588,589,590,591,59 2,593,594,595,596,597,598,599,600, 601,602,603,604 IT1 Local 464 I(4) 4 1 1 ALC 530,547,555,569,571,598,600,608 IT2 Local 464 I(4) 4 1 1 ALC 530,548,556,568,570,597,599,608 IT3 Local 464 I(4) 4 1 1 ALC 530,549,557,581,583,594,596,608 IT4 Local 464 I(4) 4 1 1 ALC 530,550,558,580,582,593,595,608 IT5 Local 465 I(4) 4 1 1 ALC 531,551,559,577,579,590,592,608 IT6 Local 465 I(4) 4 1 1 ALC 531,552,560,576,578,589,591,608 IT7 Local 465 I(4) 4 1 1 ALC 531,553,561,573,575,602,604,608 IT8 Local 465 I(4) 4 1 1 ALC 531,554,562,572,574,601,603,608 ITH Local 460 I(4) 4 scalar 546,547,548,549,550,551,552,553,55 4,555,556,557,558,559,560,561,562, 567,568,569,570,571,572,573,574,57 5,576,577,578,579,580,581,582,583, 588,589,590,591,592,593,594,595,59 Page 18 Source Listing INSNL1 2014-09-16 16:59 Symbol Table w3snl1md.f90 Name Object Declared Type Bytes Dimen Elements Attributes References 6,597,598,599,600,601,602,603,604, 614,615,623,624 ITHM Local 460 I(4) 4 scalar 498,499,500,549,553 ITHM1 Local 461 I(4) 4 scalar 499,550,554 ITHP Local 460 I(4) 4 scalar 492,493,494,547,551 ITHP1 Local 460 I(4) 4 scalar 493,548,552 LAM Local 439 R(4) 4 scalar PTR 439,478,479,485,486,507,509,512,51 4 LAMM2 Local 466 R(4) 4 scalar 478,480,481 LAMP2 Local 466 R(4) 4 scalar 479,480,481 LOG Func 505 scalar 505,507,512 MAX Func 538 scalar 538,539,540,541 MOD Func 567 scalar 567,588 NDSE Local 449 I(4) 4 scalar PTR 449,526 NDST Local 449 I(4) 4 scalar PTR 449,526 NFR Local 441 I(4) 4 scalar PTR 441,474,519,520,612,619,620 NFRCHG Local 441 I(4) 4 scalar PTR 441,520,522,528,529,535,620 NFRHGH Local 441 I(4) 4 scalar PTR 441,519,521 NK Local 439 I(4) 4 scalar PTR 439,474 NSPEC Local 439 I(4) 4 scalar PTR 439,526,586 NSPECX Local 441 I(4) 4 scalar PTR 441,522,526,565 NSPECY Local 441 I(4) 4 scalar PTR 441,521 NTH Local 439 I(4) 4 scalar PTR 439,521,522,530,531,546,555,556,55 7,558,559,560,561,562,566,567,568, 569,570,571,572,573,574,575,576,57 7,578,579,580,581,582,583,587,588, 589,590,591,592,593,594,595,596,59 7,598,599,600,601,602,603,604,614, 615,623,624 REAL Func 494 scalar 494,500 SIG Local 439 R(4) 4 1 1 PTR 439,613,619 SIN Func 481 scalar 481 SWG1 Local 448 R(4) 4 scalar PTR 448,639 SWG2 Local 448 R(4) 4 scalar PTR 448,640 SWG3 Local 448 R(4) 4 scalar PTR 448,641 SWG4 Local 448 R(4) 4 scalar PTR 448,642 SWG5 Local 448 R(4) 4 scalar PTR 448,643 SWG6 Local 448 R(4) 4 scalar PTR 448,644 SWG7 Local 448 R(4) 4 scalar PTR 448,645 SWG8 Local 448 R(4) 4 scalar PTR 448,646 TPIINV Param 613 R(4) 4 scalar 613,619 W3ADATMD Module 440 440,441 W3DMNL Subr 440 440,526 W3GDATMD Module 439 439 W3ODATMD Module 449 449 WFRM Local 468 R(4) 4 scalar 514,515,634,635 WFRM1 Local 468 R(4) 4 scalar 515,636,637 WFRP Local 468 R(4) 4 scalar 509,510,630,631 WFRP1 Local 468 R(4) 4 scalar 510,632,633 WTHM Local 467 R(4) 4 scalar 500,501,634,636 WTHM1 Local 467 R(4) 4 scalar 501,635,637 WTHP Local 467 R(4) 4 scalar 494,495,630,632 WTHP1 Local 467 R(4) 4 scalar 495,631,633 XFR Local 439 R(4) 4 scalar PTR 439,505,509,514,621 XFRLN Local 468 R(4) 4 scalar 505,507,512 Page 19 Source Listing INSNL1 2014-09-16 16:59 w3snl1md.f90 656 !/ 657 !/ End of module W3SNL1MD -------------------------------------------- / 658 !/ 659 END MODULE W3SNL1MD SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References W3SNL1MD Module 2 Page 20 Source Listing INSNL1 2014-09-16 16:59 Subprograms/Common Blocks w3snl1md.f90 SUBPROGRAMS/COMMON BLOCKS Name Object Declared Type Bytes Dimen Elements Attributes References INSNL1 Subr 367 W3SNL1 Subr 61 W3SNL1MD Module 2 COMPILER OPTIONS BEING USED -align nocommons -align nodcommons -align noqcommons -align records -align nosequence -align norec1byte -align norec2byte -align norec4byte -align norec8byte -align norec16byte -altparam -assume accuracy_sensitive -assume nobscc -assume nobuffered_io -assume byterecl -assume 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 Page 21 Source Listing INSNL1 2014-09-16 16:59 w3snl1md.f90 -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 -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 : w3snl1md.lst -o filename : none COMPILER: Intel(R) Fortran 12.1-2100