IBM XL Fortran for AIX, V12.1 (5724-U82) Version 12.01.0000.0001 --- ../lsms/noah.20071219/noah_physics.F 03/09/11 11:04:31 >>>>> OPTIONS SECTION <<<<< *** Options In Effect *** == On / Off Options == CR DBG ESCAPE FULLPATH I4 INLGLUE NOLIBESSL NOLIBPOSIX OBJECT SOURCE STRICT SWAPOMP THREADED UNWIND ZEROSIZE == Options Of Integer Type == ALIAS_SIZE(65536) MAXMEM(-1) OPTIMIZE(2) SPILLSIZE(2000) STACKTEMP(0) == Options Of Character Type == 64(LARGETYPE) ALIAS(STD,NOINTPTR) ALIGN(BINDC(POWER),STRUCT(NATURAL)) ARCH(PWR6) ATTR(FULL) AUTODBL(NONE) DESCRIPTOR(V1) DIRECTIVE(IBM*,IBMT) ENUM() FLAG(I,I) FLOAT(RNDSNGL,MAF,FOLD,RNGCHK,SINGLE) FREE(F90) HALT(S) IEEE(NEAR) INTSIZE(4) LANGLVL(EXTENDED) REALSIZE(4) NOSAVE() TUNE(PWR6) UNROLL(AUTO) XREF(FULL) XLF2003(NOPOLYMORPHIC,NOBOZLITARGS,NOSTOPEXCEPT,NOVOLATILE,NOAUTOREALLOC,OLDNANINF) XLF77(LEADZERO,BLANKPAD) XLF90(NOSIGNEDZERO,NOAUTODEALLOC,OLDPAD) >>>>> SOURCE SECTION <<<<< 1 |#line 1 "../lsms/noah.20071219/noah_physics.F" 1 |!JESSE 20080206 NSOLD=4 2 |!JESSE 20050406 FIX FDOWN RTDIS ETA 3 |!------------------------------------------------------------------------- 4 |! NASA Goddard Space Flight Center Land Information System (LIS) V3.0 5 |! Released May 2004 6 |! 7 |! See SOFTWARE DISTRIBUTION POLICY for software distribution policies 8 |! 9 |! The LIS source code and documentation are in the public domain, 10 |! available without fee for educational, research, non-commercial and 11 |! commercial purposes. Users may distribute the binary or source 12 |! code to third parties provided this statement appears on all copies and 13 |! that no charge is made for such copies. 14 |! 15 |! NASA GSFC MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THE 16 |! SOFTWARE FOR ANY PURPOSE. IT IS PROVIDED AS IS WITHOUT EXPRESS OR 17 |! IMPLIED WARRANTY. NEITHER NASA GSFC NOR THE US GOVERNMENT SHALL BE 18 |! LIABLE FOR ANY DAMAGES SUFFERED BY THE USER OF THIS SOFTWARE. 19 |! 20 |! See COPYRIGHT.TXT for copyright details. 21 |! 22 |!------------------------------------------------------------------------- 23 |!BOP 24 |! 25 |! !ROUTINE : noah$_-$physics.F90 26 |! 27 |! DESCRIPTION: SUB-DRIVER FOR "NOAH/OSU LSM" FAMILY OF PHYSICS SUBROUTINES 28 |! FOR A SOIL/VEG/SNOWPACK LAND-SURFACE MODEL TO UPDATE SOIL 29 |! MOISTURE, SOIL ICE, SOIL TEMPERATURE, SKIN TEMPERATURE, 30 |! SNOWPACK WATER CONTENT, SNOWDEPTH, AND ALL TERMS 31 |! OF THE SURFACE ENERGY BALANCE AND SURFACE WATER 32 |! BALANCE (EXCLUDING INPUT ATMOSPHERIC FORCINGS OF 33 |! DOWNWARD RADIATION AND PRECIP) 34 |! 35 |! !REVISION HISTORY: 36 |! 28 Apr 2002: Kristi Arsenault; Added NOAH LSM 2.5 code to LDAS 37 |! 15 May 2002: Urszula Jambor; Changed LOGICAL to LOGICAL*1 to match new 38 |! GRIB libraries 39 |! 28 May 2002: Kristi Arsenault; Updated NOAH code to 2.5.1, and 40 |! corrected problem with FX in DEVAP function. 41 |! 12 Jun 2002: Kristi Arsenault; Updated NOAH code to 2.5.2 42 |! 04 Nov 2002: Kristi Arsenault; Incorporated new TBOT fields 43 |! 24 Jun 2003: Kristi Arsenault; Updated Noah LSM to 2.6 version 44 |! 31 May 2004: Kristi Arsenault; Updated Noah LSM to 2.7 version 45 |! 24 Nov 2004: Kristi Arsenault; Updated Noah LSM to 2.7.1 46 |! 47 |! ---------------------------------------------------------------------- 48 | 49 |! -- 1. MAIN PHYSICS SUBROUTINE ==> SUBROUTINE SFLX ------------------ 50 | 51 |! !INTERFACE: 52 | SUBROUTINE SFLX (ntl, & 53 | FFROZP,ICE,DT,ZLVL,NSOIL,SLDPTH, & 54 | LWDN,SOLDN,SOLNET,SFCPRS,PRCP,SFCTMP,Q2,SFCSPD, & 55 | TH2,Q2SAT,DQSDT2, & 56 | SLOPE,SHDFAC,SHDMIN,PTU,ALB,SNOALB, & 57 | RSMIN,RGL,HS,SNUP,Z0,XLAI,NROOT, & 58 | PSISAT,BEXP,DKSAT,SMCMAX,QUARTZ,DWSAT, & 59 | SMCWLT,SMCREF,SMCDRY,F1,KDT,FRZX,FRZFACT,TBOT, & 60 | CMC,T1,STC,SMC,SH2O,SNOWH,SNEQV,ALBEDO,CH,CM, & 61 | EVP,ETA,SHEAT, & 62 | EC,EDIR,ET,ETT,ESNOW,DRIP,DEW, & 63 | BETA,ETP,SSOIL, & 64 | FLX1,FLX2,FLX3, & 65 | SNOMLT,SNCOVR, & 66 | RUNOFF1,RUNOFF2,RUNOFF3, & 67 | RC,PC,RCS,RCT,RCQ,RCSOIL, & 68 | SOILW,SOILT,SOILM) 69 |!EOP 70 | 71 | IMPLICIT NONE 72 | 73 | integer, parameter :: c1 = 0 74 |! ---------------------------------------------------------------------- 75 |! SUBROUTINE SFLX - VERSION 2.7 - June 2nd 2003 76 |! ---------------------------------------------------------------------- 77 |! SUB-DRIVER FOR "NOAH/OSU LSM" FAMILY OF PHYSICS SUBROUTINES FOR A 78 |! SOIL/VEG/SNOWPACK LAND-SURFACE MODEL TO UPDATE SOIL MOISTURE, SOIL 79 |! ICE, SOIL TEMPERATURE, SKIN TEMPERATURE, SNOWPACK WATER CONTENT, 80 |! SNOWDEPTH, AND ALL TERMS OF THE SURFACE ENERGY BALANCE AND SURFACE 81 |! WATER BALANCE (EXCLUDING INPUT ATMOSPHERIC FORCINGS OF DOWNWARD 82 |! RADIATION AND PRECIP) 83 |! ---------------------------------------------------------------------- 84 |! SFLX ARGUMENT LIST KEY: 85 |! ---------------------------------------------------------------------- 86 |! C CONFIGURATION INFORMATION 87 |! F FORCING DATA 88 |! I OTHER (INPUT) FORCING DATA 89 |! S SURFACE CHARACTERISTICS 90 |! H HISTORY (STATE) VARIABLES 91 |! O OUTPUT VARIABLES 92 |! D DIAGNOSTIC OUTPUT 93 |! ---------------------------------------------------------------------- 94 |! 1. CONFIGURATION INFORMATION (C): 95 |! ---------------------------------------------------------------------- 96 |! FFROZP FRACTION OF FROZEN PRECIPITATION 97 |! ICE SEA-ICE FLAG (=1: SEA-ICE, =0: LAND) 98 |! DT TIMESTEP (SEC) (DT SHOULD NOT EXCEED 3600 SECS, RECOMMEND 99 |! 1800 SECS OR LESS) 100 |! ZLVL HEIGHT (M) ABOVE GROUND OF ATMOSPHERIC FORCING VARIABLES 101 |! NSOIL NUMBER OF SOIL LAYERS (AT LEAST 2, AND NOT GREATER THAN 102 |! PARAMETER NSOLD SET BELOW) 103 |! SLDPTH THE THICKNESS OF EACH SOIL LAYER (M) 104 |! ---------------------------------------------------------------------- 105 |! 2. FORCING DATA (F): 106 |! ---------------------------------------------------------------------- 107 |! LWDN LW DOWNWARD RADIATION (W M-2; POSITIVE, NOT NET LONGWAVE) 108 |! SOLDN SOLAR DOWNWARD RADIATION (W M-2; POSITIVE, NOT NET SOLAR) 109 |! SFCPRS PRESSURE AT HEIGHT ZLVL ABOVE GROUND (PASCALS) 110 |! PRCP PRECIP RATE (KG M-2 S-1) (NOTE, THIS IS A RATE) 111 |! SFCTMP AIR TEMPERATURE (K) AT HEIGHT ZLVL ABOVE GROUND 112 |! TH2 AIR POTENTIAL TEMPERATURE (K) AT HEIGHT ZLVL ABOVE GROUND 113 |! Q2 MIXING RATIO AT HEIGHT ZLVL ABOVE GROUND (KG KG-1) 114 |! ---------------------------------------------------------------------- 115 |! 3. OTHER FORCING (INPUT) DATA (I): 116 |! ---------------------------------------------------------------------- 117 |! SFCSPD WIND SPEED (M S-1) AT HEIGHT ZLVL ABOVE GROUND 118 |! Q2SAT SAT MIXING RATIO AT HEIGHT ZLVL ABOVE GROUND (KG KG-1) 119 |! DQSDT2 SLOPE OF SAT SPECIFIC HUMIDITY CURVE AT T=SFCTMP 120 |! (KG KG-1 K-1) 121 |! ---------------------------------------------------------------------- 122 |! 4. CANOPY/SOIL CHARACTERISTICS (S): 123 |! ---------------------------------------------------------------------- 124 |! VEGTYP VEGETATION TYPE (INTEGER INDEX) 125 |! SOILTYP SOIL TYPE (INTEGER INDEX) 126 |! SLOPETYP CLASS OF SFC SLOPE (INTEGER INDEX) 127 |! SHDFAC AREAL FRACTIONAL COVERAGE OF GREEN VEGETATION 128 |! (FRACTION= 0.0-1.0) 129 |! SHDMIN MINIMUM AREAL FRACTIONAL COVERAGE OF GREEN VEGETATION 130 |! (FRACTION= 0.0-1.0) <= SHDFAC 131 |! PTU PHOTO THERMAL UNIT (PLANT PHENOLOGY FOR ANNUALS/CROPS) 132 |! (NOT YET USED, BUT PASSED TO REDPRM FOR FUTURE USE IN 133 |! VEG PARMS) 134 |! ALB BACKROUND SNOW-FREE SURFACE ALBEDO (FRACTION), FOR JULIAN 135 |! DAY OF YEAR (USUALLY FROM TEMPORAL INTERPOLATION OF 136 |! MONTHLY MEAN VALUES' CALLING PROG MAY OR MAY NOT 137 |! INCLUDE DIURNAL SUN ANGLE EFFECT) 138 |! SNOALB UPPER BOUND ON MAXIMUM ALBEDO OVER DEEP SNOW (E.G. FROM 139 |! ROBINSON AND KUKLA, 1985, J. CLIM. & APPL. METEOR.) 140 |! TBOT BOTTOM SOIL TEMPERATURE (LOCAL YEARLY-MEAN SFC AIR 141 |! TEMPERATURE) 142 |! ---------------------------------------------------------------------- 143 |! 5. HISTORY (STATE) VARIABLES (H): 144 |! ---------------------------------------------------------------------- 145 |! CMC CANOPY MOISTURE CONTENT (M) 146 |! T1 GROUND/CANOPY/SNOWPACK) EFFECTIVE SKIN TEMPERATURE (K) 147 |! STC(NSOIL) SOIL TEMP (K) 148 |! SMC(NSOIL) TOTAL SOIL MOISTURE CONTENT (VOLUMETRIC FRACTION) 149 |! SH2O(NSOIL) UNFROZEN SOIL MOISTURE CONTENT (VOLUMETRIC FRACTION) 150 |! NOTE: FROZEN SOIL MOISTURE = SMC - SH2O 151 |! SNOWH ACTUAL SNOW DEPTH (M) 152 |! SNEQV LIQUID WATER-EQUIVALENT SNOW DEPTH (M) 153 |! NOTE: SNOW DENSITY = SNEQV/SNOWH 154 |! ALBEDO SURFACE ALBEDO INCLUDING SNOW EFFECT (UNITLESS FRACTION) 155 |! =SNOW-FREE ALBEDO (ALB) WHEN SNEQV=0, OR 156 |! =FCT(MSNOALB,ALB,VEGTYP,SHDFAC,SHDMIN) WHEN SNEQV>0 157 |! CH SURFACE EXCHANGE COEFFICIENT FOR HEAT AND MOISTURE 158 |! (M S-1); NOTE: CH IS TECHNICALLY A CONDUCTANCE SINCE 159 |! IT HAS BEEN MULTIPLIED BY WIND SPEED. 160 |! CM SURFACE EXCHANGE COEFFICIENT FOR MOMENTUM (M S-1); NOTE: 161 |! CM IS TECHNICALLY A CONDUCTANCE SINCE IT HAS BEEN 162 |! MULTIPLIED BY WIND SPEED. CM IS NOT NEEDED IN SFLX 163 |! ---------------------------------------------------------------------- 164 |! 6. OUTPUT (O): 165 |! ---------------------------------------------------------------------- 166 |! OUTPUT VARIABLES NECESSARY FOR A COUPLED NUMERICAL WEATHER PREDICTION 167 |! MODEL, E.G. NOAA/NWS/NCEP MESOSCALE ETA MODEL. FOR THIS APPLICATION, 168 |! THE REMAINING OUTPUT/DIAGNOSTIC/PARAMETER BLOCKS BELOW ARE NOT 169 |! NECESSARY. OTHER APPLICATIONS MAY REQUIRE DIFFERENT OUTPUT VARIABLES. 170 |! ETA ACTUAL LATENT HEAT FLUX (W M-2: NEGATIVE, IF UP FROM 171 |! SURFACE) 172 |! SHEAT SENSIBLE HEAT FLUX (W M-2: NEGATIVE, IF UPWARD FROM 173 |! SURFACE) 174 |! ---------------------------------------------------------------------- 175 |! EC CANOPY WATER EVAPORATION (W M-2) 176 |! EDIR DIRECT SOIL EVAPORATION (W M-2) 177 |! ET(NSOIL) PLANT TRANSPIRATION FROM A PARTICULAR ROOT (SOIL) LAYER 178 |! (W M-2) 179 |! ETT TOTAL PLANT TRANSPIRATION (W M-2) 180 |! ESNOW SUBLIMATION FROM SNOWPACK (W M-2) 181 |! DRIP THROUGH-FALL OF PRECIP AND/OR DEW IN EXCESS OF CANOPY 182 |! WATER-HOLDING CAPACITY (M) 183 |! DEW DEWFALL (OR FROSTFALL FOR T<273.15) (M) 184 |! ---------------------------------------------------------------------- 185 |! BETA RATIO OF ACTUAL/POTENTIAL EVAP (DIMENSIONLESS) 186 |! ETP POTENTIAL EVAPORATION (W M-2) 187 |! SSOIL SOIL HEAT FLUX (W M-2: NEGATIVE IF DOWNWARD FROM SURFACE) 188 |! ---------------------------------------------------------------------- 189 |! FLX1 PRECIP-SNOW SFC (W M-2) 190 |! FLX2 FREEZING RAIN LATENT HEAT FLUX (W M-2) 191 |! FLX3 PHASE-CHANGE HEAT FLUX FROM SNOWMELT (W M-2) 192 |! ---------------------------------------------------------------------- 193 |! SNOMLT SNOW MELT (M) (WATER EQUIVALENT) 194 |! SNCOVR FRACTIONAL SNOW COVER (UNITLESS FRACTION, 0-1) 195 |! ---------------------------------------------------------------------- 196 |! RUNOFF1 SURFACE RUNOFF (M S-1), NOT INFILTRATING THE SURFACE 197 |! RUNOFF2 SUBSURFACE RUNOFF (M S-1), DRAINAGE OUT BOTTOM OF LAST 198 |! SOIL LAYER 199 |! RUNOFF3 NUMERICAL TRUNCTATION IN EXCESS OF POROSITY (SMCMAX) 200 |! FOR A GIVEN SOIL LAYER AT THE END OF A TIME STEP 201 |! ---------------------------------------------------------------------- 202 |! RC CANOPY RESISTANCE (S M-1) 203 |! PC PLANT COEFFICIENT (UNITLESS FRACTION, 0-1) WHERE PC*ETP 204 |! = ACTUAL TRANSPIRATION 205 |! XLAI LEAF AREA INDEX (DIMENSIONLESS) 206 |! RSMIN MINIMUM CANOPY RESISTANCE (S M-1) 207 |! RCS INCOMING SOLAR RC FACTOR (DIMENSIONLESS) 208 |! RCT AIR TEMPERATURE RC FACTOR (DIMENSIONLESS) 209 |! RCQ ATMOS VAPOR PRESSURE DEFICIT RC FACTOR (DIMENSIONLESS) 210 |! RCSOIL SOIL MOISTURE RC FACTOR (DIMENSIONLESS) 211 |! ---------------------------------------------------------------------- 212 |! 7. DIAGNOSTIC OUTPUT (D): 213 |! ---------------------------------------------------------------------- 214 |! SOILW AVAILABLE SOIL MOISTURE IN ROOT ZONE (UNITLESS FRACTION 215 |! BETWEEN SMCWLT AND SMCMAX) 216 |! SOILM TOTAL SOIL COLUMN MOISTURE CONTENT (FROZEN+UNFROZEN) (M) 217 |! ---------------------------------------------------------------------- 218 |! 8. PARAMETERS (P): 219 |! ---------------------------------------------------------------------- 220 |! SMCWLT WILTING POINT (VOLUMETRIC) 221 |! SMCDRY DRY SOIL MOISTURE THRESHOLD WHERE DIRECT EVAP FRM TOP 222 |! LAYER ENDS (VOLUMETRIC) 223 |! SMCREF SOIL MOISTURE THRESHOLD WHERE TRANSPIRATION BEGINS TO 224 |! STRESS (VOLUMETRIC) 225 |! SMCMAX POROSITY, I.E. SATURATED VALUE OF SOIL MOISTURE 226 |! (VOLUMETRIC) 227 |! NROOT NUMBER OF ROOT LAYERS, A FUNCTION OF VEG TYPE 228 |! ---------------------------------------------------------------------- 229 | INTEGER, PARAMETER:: NSOLD=4 230 | INTEGER NTL 231 | 232 |! ---------------------------------------------------------------------- 233 |! DECLARATIONS - LOGICAL 234 |! ---------------------------------------------------------------------- 235 | LOGICAL*1 FRZGRA 236 | LOGICAL*1 SATURATED 237 | LOGICAL*1 SNOWNG 238 | 239 |! ---------------------------------------------------------------------- 240 |! DECLARATIONS - INTEGER 241 |! ---------------------------------------------------------------------- 242 | INTEGER ICE 243 | INTEGER I,K 244 | INTEGER KZ 245 | INTEGER NSOIL 246 | INTEGER NROOT 247 | 248 |! ---------------------------------------------------------------------- 249 |! DECLARATIONS - REAL 250 |! ---------------------------------------------------------------------- 251 | REAL ALBEDO 252 | REAL ALB 253 | REAL BEXP 254 | REAL BETA 255 | REAL CFACTR 256 | REAL CH 257 | REAL CM 258 | REAL CMC 259 | REAL CMCMAX 260 | REAL CP 261 | REAL CSNOW 262 | REAL CSOIL 263 | REAL CZIL 264 | REAL DEW 265 | REAL DF1 266 | REAL DF1H 267 | REAL DF1A 268 | REAL DKSAT 269 | REAL DT 270 | REAL DWSAT 271 | REAL DQSDT2 272 | REAL DSOIL 273 | REAL DTOT 274 | REAL DRIP 275 | REAL EC 276 | REAL EDIR 277 | REAL ESNOW 278 | REAL ET(NSOIL) 279 | REAL ETT 280 | REAL FRCSNO 281 | REAL FRCSOI 282 | REAL EPSCA 283 | REAL ETA 284 | REAL ETP 285 | REAL EVP 286 | REAL FDOWN 287 | REAL F1 288 | REAL FLX1 289 | REAL FLX2 290 | REAL FLX3 291 | REAL FXEXP 292 | REAL FRZX 293 | REAL FRZFACT 294 | REAL SHEAT 295 | REAL HS 296 | REAL KDT 297 | REAL LWDN 298 | REAL LVH2O 299 | REAL PC 300 | REAL PRCP 301 | REAL PTU 302 | REAL PRCP1 303 | REAL PSISAT 304 | REAL Q2 305 | REAL Q2SAT 306 | REAL QUARTZ 307 | REAL R 308 | REAL RCH 309 | REAL REFKDT 310 | REAL RR 311 | REAL RTDIS(NSOLD) 312 | REAL RUNOFF1 313 | REAL RUNOFF2 314 | REAL RGL 315 | REAL RUNOFF3 316 | REAL RSMAX 317 | REAL RC 318 | REAL RSMIN 319 | REAL RCQ 320 | REAL RCS 321 | REAL RCSOIL 322 | REAL RCT 323 | REAL RSNOW 324 | REAL SNDENS 325 | REAL SNCOND 326 | REAL SSOIL 327 | REAL SBETA 328 | REAL SFCPRS 329 | REAL SFCSPD 330 | REAL SFCTMP 331 | REAL SHDFAC 332 | REAL SHDMIN 333 | REAL SH2O(NSOIL) 334 | REAL SLDPTH(NSOIL) 335 | REAL SMCDRY 336 | REAL SMCMAX 337 | REAL SMCREF 338 | REAL SMCWLT 339 | REAL SMC(NSOIL) 340 | REAL SNEQV 341 | REAL SNCOVR 342 | REAL SNOWH 343 | REAL SN_NEW 344 | REAL SLOPE 345 | REAL SNUP 346 | REAL SALP 347 | REAL SNOALB 348 | REAL STC(NSOIL) 349 | REAL SNOMLT 350 | REAL SOLDN 351 | REAL SOILM 352 | REAL SOILW 353 | REAL SOILWM 354 | REAL SOILWW 355 | REAL SOILT 356 | REAL SOILTM 357 | REAL SOILTW 358 | REAL T1 359 | REAL T1V 360 | REAL T24 361 | REAL T2V 362 | REAL TBOT 363 | REAL TH2 364 | REAL TH2V 365 | REAL TOPT 366 | REAL TFREEZ 367 | REAL TSNOW 368 | REAL XLAI 369 | REAL ZLVL 370 | REAL ZBOT 371 | REAL Z0 372 | REAL ZSOIL(NSOLD) 373 | 374 | REAL FFROZP 375 | REAL SOLNET 376 | REAL LSUBS 377 | 378 | REAL CM1, CM2 379 | REAL CH1, CH2 380 |! ---------------------------------------------------------------------- 381 |! DECLARATIONS - PARAMETERS 382 |! ---------------------------------------------------------------------- 383 | PARAMETER(TFREEZ = 273.15) 384 | PARAMETER(LVH2O = 2.501E+6) 385 | PARAMETER(LSUBS = 2.83E+6) 386 | PARAMETER(R = 287.04) 387 | PARAMETER(CP = 1004.5) 388 | 389 | PARAMETER(CFACTR = 0.5) ! CANOPY WATER PARAMETER 390 | PARAMETER(CMCMAX = 0.5E-3) ! CANOPY WATER PARAMETER 391 | PARAMETER(RSMAX = 5000.0) ! MAX. STOMATAL RESISTANCE 392 | PARAMETER(TOPT = 298.0) ! OPTIMUM TRANSPIR AIR TEMP 393 | PARAMETER(SBETA = -2.0) ! TO CALC VEG EFFECT ON SHFLX 394 | 395 | REAL, PARAMETER:: FRZK=0.15 ! Ice content threshold in soil 396 | 397 | REAL, PARAMETER:: REFDK = 2.0E-6 ! Reference 398 | PARAMETER(REFKDT = 3.0) 399 | 400 | PARAMETER(FXEXP = 2.0) ! BARE SOIL EVAP EXP USED IN DEVAP 401 | PARAMETER(CSOIL = 2.00E+6) ! SOIL HEAT CAPACITY [J M-3 K-1] 402 | 403 |!-- SPECIFY DEPTH[M] OF LOWER BOUNDARY SOIL TEMPERATURE. 404 |! PARAMETER(ZBOT = -3.0) 405 | PARAMETER(ZBOT = -8.0) 406 | 407 |!-- SPECIFY SNOW DISTRIBUTION SHAPE PARAMETER SALP - SHAPE PARAMETER 408 |! OF DISTRIBUTION FUNCTION OF SNOW COVER. (from ANDERSON, HYDRO-17) 409 |! BEST FIT IS WHEN SALP = 2.6 410 |! PARAMETER(SALP = 2.6) 411 |! - Changed for version 2.6 June 2nd 2003 * 412 | PARAMETER(SALP = 4.0) 413 | 414 |!-- PARAMETER USED TO CALCULATE ROUGHNESS LENGTH OF HEAT. 415 |! PARAMETER(CZIL = 0.2) 416 |! - Changed for version 2.6 June 2nd 2003 * 417 | PARAMETER(CZIL = 0.075) 418 |! - Changed for version 2.7.1 Jesse 20041225 419 |! PARAMETER(CZIL = 0.1) 420 | 421 |! ---------------------------------------------------------------------- 422 |! INITIALIZATION 423 |! ---------------------------------------------------------------------- 424 | RUNOFF1 = 0.0 425 | RUNOFF2 = 0.0 426 | RUNOFF3 = 0.0 427 | SNOMLT = 0.0 428 | 429 |! ---------------------------------------------------------------------- 430 |! DEFINE LOCAL VARIABLE ICE TO ACHIEVE: 431 |! SEA-ICE CASE, ICE = 1 432 |! NON-GLACIAL LAND, ICE = 0 433 |! GLACIAL-ICE LAND, ICE = -1 434 |! IF VEGTYPE=13 (GLACIAL-ICE), RE-SET ICE FLAG = -1 (GLACIAL-ICE) 435 |! NOTE: FOR OPEN-SEA, SFLX SHOULD *NOT* HAVE BEEN CALLED. 436 |! SET GREEN VEGETATION FRACTION (SHDFAC) = 0. 437 |! ---------------------------------------------------------------------- 438 | ! IF (VEGTYP .EQ. 13) THEN 439 | ! ICE = -1 440 | ! SHDFAC = 0.0 441 | ! ENDIF 442 | 443 | IF (ICE .EQ. 1) THEN 444 | SHDFAC = 0.0 445 |! ---------------------------------------------------------------------- 446 |! SET GREEN VEGETATION FRACTION (SHDFAC) = 0. 447 |! SEA-ICE LAYERS ARE EQUAL THICKNESS AND SUM TO 3 METERS 448 |! ---------------------------------------------------------------------- 449 | DO KZ = 1,NSOIL 450 | ZSOIL(KZ) = -3.*FLOAT(KZ)/FLOAT(NSOIL) 451 | END DO 452 | 453 | ELSE 454 | 455 |! ---------------------------------------------------------------------- 456 |! CALCULATE DEPTH (NEGATIVE) BELOW GROUND FROM TOP SKIN SFC TO BOTTOM OF 457 |! EACH SOIL LAYER. NOTE: SIGN OF ZSOIL IS NEGATIVE (DENOTING BELOW 458 |! GROUND) 459 |! ---------------------------------------------------------------------- 460 | ZSOIL(1) = -SLDPTH(1) 461 | DO KZ = 2,NSOIL 462 | ZSOIL(KZ) = -SLDPTH(KZ)+ZSOIL(KZ-1) 463 | END DO 464 | 465 |! ---------------------------------------------------------------------- 466 |! CALCULATE RTDIS. JESSE 20050406 467 |! ---------------------------------------------------------------------- 468 | DO KZ = 1, NROOT 469 | RTDIS(KZ) = -SLDPTH(KZ)/ZSOIL(NROOT) 470 | END DO 471 | 472 | ENDIF 473 | 474 |! ---------------------------------------------------------------------- 475 |! NEXT IS CRUCIAL CALL TO SET THE LAND-SURFACE PARAMETERS, INCLUDING 476 |! SOIL-TYPE AND VEG-TYPE DEPENDENT PARAMETERS. 477 |! ---------------------------------------------------------------------- 478 |! CALL REDPRM (VEGTYP,SOILTYP,SLOPETYP, 479 |! + CFACTR,CMCMAX,RSMAX,TOPT,REFKDT,KDT,SBETA, 480 |! O SHDFAC,RSMIN,RGL,HS,ZBOT,FRZX,PSISAT,SLOPE, 481 |! + SNUP,SALP,BEXP,DKSAT,DWSAT,SMCMAX,SMCWLT,SMCREF, 482 |! O SMCDRY,F1,QUARTZ,FXEXP,RTDIS,SLDPTH,ZSOIL, 483 |! + NROOT,NSOIL,Z0,CZIL,XLAI,CSOIL,PTU) 484 | 485 |! ---------------------------------------------------------------------- 486 |! INITIALIZE PRECIPITATION LOGICALS. 487 |! ---------------------------------------------------------------------- 488 | SNOWNG = .FALSE. 489 | FRZGRA = .FALSE. 490 | 491 |! ---------------------------------------------------------------------- 492 |! OVER SEA-ICE OR GLACIAL-ICE, IF S.W.E. (SNEQV) BELOW THRESHOLD LOWER 493 |! BOUND (0.01 M FOR SEA-ICE, 0.10 M FOR GLACIAL-ICE), THEN SET AT LOWER 494 |! BOUND AND STORE THE SOURCE INCREMENT IN SUBSURFACE RUNOFF/BASEFLOW 495 |! (RUNOFF2). NOTE: RUNOFF2 IS THEN A NEGATIVE VALUE (AS A FLAG) OVER 496 |! SEA-ICE OR GLACIAL-ICE, IN ORDER TO ACHIEVE WATER BALANCE. 497 |! ---------------------------------------------------------------------- 498 | IF (ICE .EQ. 1) THEN 499 | IF (SNEQV .LT. 0.01) THEN 500 |!c SNDENS = SNEQV/SNOWH 501 |!c RUNOFF2 = -(0.01-SNEQV)/DT 502 | SNEQV = 0.01 503 | SNOWH = 0.05 504 |!c SNOWH = SNEQV/SNDENS 505 | ENDIF 506 | ELSEIF (ICE .EQ. -1) THEN 507 | IF (SNEQV .LT. 0.10) THEN 508 |!c SNDENS = SNEQV/SNOWH 509 |!c RUNOFF2 = -(0.10-SNEQV)/DT 510 | SNEQV = 0.10 511 | SNOWH = 0.50 512 |!c SNOWH = SNEQV/SNDENS 513 | ENDIF 514 | ENDIF 515 | 516 |! ---------------------------------------------------------------------- 517 |! FOR SEA-ICE AND GLACIAL-ICE CASES, SET SMC AND SH20 VALUES = 1 AS A 518 |! FLAG FOR NON-SOIL MEDIUM 519 |! ---------------------------------------------------------------------- 520 | IF (ICE .NE. 0) THEN 521 | DO KZ = 1,NSOIL 522 | SMC(KZ) = 1.0 523 | SH2O(KZ) = 1.0 524 | END DO 525 | ENDIF 526 | 527 |! ---------------------------------------------------------------------- 528 |! IF INPUT SNOWPACK IS NONZERO, THEN COMPUTE SNOW DENSITY "SNDENS" AND 529 |! SNOW THERMAL CONDUCTIVITY "SNCOND" (NOTE THAT CSNOW IS A FUNCTION 530 |! SUBROUTINE) 531 |! ---------------------------------------------------------------------- 532 | IF (SNEQV .EQ. 0.0) THEN 533 | SNDENS = 0.0 534 | SNOWH = 0.0 535 | SNCOND = 1.0 536 | ELSE 537 | SNDENS = SNEQV/SNOWH 538 | sndens = max(0.0, min(1.0, sndens)) ! Added by Moorthi 539 | SNCOND = CSNOW(SNDENS) 540 | ENDIF 541 | 542 |! ---------------------------------------------------------------------- 543 |! DETERMINE IF IT'S PRECIPITATING AND WHAT KIND OF PRECIP IT IS. 544 |! IF IT'S PRCPING AND THE AIR TEMP IS COLDER THAN 0 C, IT'S SNOWING! 545 |! IF IT'S PRCPING AND THE AIR TEMP IS WARMER THAN 0 C, BUT THE GRND 546 |! TEMP IS COLDER THAN 0 C, FREEZING RAIN IS PRESUMED TO BE FALLING. 547 |! ---------------------------------------------------------------------- 548 | IF (PRCP .GT. 0.0) THEN 549 |! IF (SFCTMP .LE. TFREEZ) THEN 550 | IF (FFROZP .GT. 0.5) THEN 551 | SNOWNG = .TRUE. 552 | ELSE 553 | IF (T1 .LE. TFREEZ) FRZGRA = .TRUE. 554 | ENDIF 555 | ENDIF 556 | 557 |! ---------------------------------------------------------------------- 558 |! IF EITHER PRCP FLAG IS SET, DETERMINE NEW SNOWFALL (CONVERTING PRCP 559 |! RATE FROM KG M-2 S-1 TO A LIQUID EQUIV SNOW DEPTH IN METERS) AND ADD 560 |! IT TO THE EXISTING SNOWPACK. 561 |! NOTE THAT SINCE ALL PRECIP IS ADDED TO SNOWPACK, NO PRECIP INFILTRATES 562 |! INTO THE SOIL SO THAT PRCP1 IS SET TO ZERO. 563 |! ---------------------------------------------------------------------- 564 | IF ( (SNOWNG) .OR. (FRZGRA) ) THEN 565 | SN_NEW = PRCP * DT * 0.001 566 | SNEQV = SNEQV + SN_NEW 567 | PRCP1 = 0.0 568 | 569 |! ---------------------------------------------------------------------- 570 |! UPDATE SNOW DENSITY BASED ON NEW SNOWFALL, USING OLD AND NEW SNOW. 571 |! UPDATE SNOW THERMAL CONDUCTIVITY 572 |! ---------------------------------------------------------------------- 573 | CALL SNOW_NEW (SFCTMP,SN_NEW,SNOWH,SNDENS) 574 | SNCOND = CSNOW (SNDENS) 575 | ELSE 576 | 577 |! ---------------------------------------------------------------------- 578 |! PRECIP IS LIQUID (RAIN), HENCE SAVE IN THE PRECIP VARIABLE THAT 579 |! LATER CAN WHOLELY OR PARTIALLY INFILTRATE THE SOIL (ALONG WITH 580 |! ANY CANOPY "DRIP" ADDED TO THIS LATER) 581 |! ---------------------------------------------------------------------- 582 | PRCP1 = PRCP 583 | 584 | ENDIF 585 | 586 |!C ---------------------------------------------------------------------- 587 |!C DETERMINE SNOWCOVER FRACTION AND ALBEDO FRACTION OVER LAND. 588 |!C ---------------------------------------------------------------------- 589 | IF (ICE .NE. 0) THEN 590 |!C ---------------------------------------------------------------------- 591 |!C SNOW COVER, ALBEDO OVER SEA-ICE, GLACIAL-ICE 592 |!C ---------------------------------------------------------------------- 593 | SNCOVR = 1.0 594 | ALBEDO = 0.65 595 | 596 | ELSE 597 |!C ---------------------------------------------------------------------- 598 |!C NON-GLACIAL LAND 599 |!C IF SNOW DEPTH=0, SET SNOWCOVER FRACTION=0, ALBEDO=SNOW FREE ALBEDO. 600 |!C ---------------------------------------------------------------------- 601 | IF (SNEQV .EQ. 0.0) THEN 602 | SNCOVR = 0.0 603 | ALBEDO = ALB 604 | 605 | ELSE 606 |! ---------------------------------------------------------------------- 607 |! DETERMINE SNOW FRACTIONAL COVERAGE. 608 |! DETERMINE SURFACE ALBEDO MODIFICATION DUE TO SNOWDEPTH STATE. 609 |! ---------------------------------------------------------------------- 610 | CALL SNFRAC (SNEQV,SNUP,SALP,SNOWH,SNCOVR) 611 | CALL ALCALC (ALB,SNOALB,SHDFAC,SHDMIN,SNCOVR,TSNOW,ALBEDO) 612 | ENDIF 613 | 614 | ENDIF 615 | 616 |! ---------------------------------------------------------------------- 617 |! THERMAL CONDUCTIVITY FOR SEA-ICE CASE 618 |! ---------------------------------------------------------------------- 619 | IF (ICE .EQ. 1) THEN 620 | DF1 = 2.2 621 | 622 | ELSE 623 | 624 |! ---------------------------------------------------------------------- 625 |! NEXT CALCULATE THE SUBSURFACE HEAT FLUX, WHICH FIRST REQUIRES 626 |! CALCULATION OF THE THERMAL DIFFUSIVITY. TREATMENT OF THE 627 |! LATTER FOLLOWS THAT ON PAGES 148-149 FROM "HEAT TRANSFER IN 628 |! COLD CLIMATES", BY V. J. LUNARDINI (PUBLISHED IN 1981 629 |! BY VAN NOSTRAND REINHOLD CO.) I.E. TREATMENT OF TWO CONTIGUOUS 630 |! "PLANE PARALLEL" MEDIUMS (NAMELY HERE THE FIRST SOIL LAYER 631 |! AND THE SNOWPACK LAYER, IF ANY). THIS DIFFUSIVITY TREATMENT 632 |! BEHAVES WELL FOR BOTH ZERO AND NONZERO SNOWPACK, INCLUDING THE 633 |! LIMIT OF VERY THIN SNOWPACK. THIS TREATMENT ALSO ELIMINATES 634 |! THE NEED TO IMPOSE AN ARBITRARY UPPER BOUND ON SUBSURFACE 635 |! HEAT FLUX WHEN THE SNOWPACK BECOMES EXTREMELY THIN. 636 |! ---------------------------------------------------------------------- 637 |! FIRST CALCULATE THERMAL DIFFUSIVITY OF TOP SOIL LAYER, USING 638 |! BOTH THE FROZEN AND LIQUID SOIL MOISTURE, FOLLOWING THE 639 |! SOIL THERMAL DIFFUSIVITY FUNCTION OF PETERS-LIDARD ET AL. 640 |! (1998,JAS, VOL 55, 1209-1224), WHICH REQUIRES THE SPECIFYING 641 |! THE QUARTZ CONTENT OF THE GIVEN SOIL CLASS (SEE ROUTINE REDPRM) 642 |! ---------------------------------------------------------------------- 643 | CALL TDFCND (DF1,SMC(1),QUARTZ,SMCMAX,SH2O(1)) 644 | 645 |! ---------------------------------------------------------------------- 646 |! NEXT ADD SUBSURFACE HEAT FLUX REDUCTION EFFECT FROM THE 647 |! OVERLYING GREEN CANOPY, ADAPTED FROM SECTION 2.1.2 OF 648 |! PETERS-LIDARD ET AL. (1997, JGR, VOL 102(D4)) 649 |! ---------------------------------------------------------------------- 650 | DF1 = DF1 * EXP(SBETA*SHDFAC) 651 | ENDIF 652 | 653 |! ---------------------------------------------------------------------- 654 |! FINALLY "PLANE PARALLEL" SNOWPACK EFFECT FOLLOWING 655 |! V.J. LINARDINI REFERENCE CITED ABOVE. NOTE THAT DTOT IS 656 |! COMBINED DEPTH OF SNOWDEPTH AND THICKNESS OF FIRST SOIL LAYER 657 |! ---------------------------------------------------------------------- 658 | DSOIL = -(0.5 * ZSOIL(1)) 659 | 660 | IF (SNEQV .EQ. 0.) THEN 661 | SSOIL = DF1 * (T1 - STC(1) ) / DSOIL 662 | ELSE 663 | DTOT = SNOWH + DSOIL 664 | FRCSNO = SNOWH/DTOT 665 | FRCSOI = DSOIL/DTOT 666 |! 667 |! 1. HARMONIC MEAN (SERIES FLOW) 668 |! DF1 = (SNCOND*DF1)/(FRCSOI*SNCOND+FRCSNO*DF1) 669 | DF1H = (SNCOND*DF1)/(FRCSOI*SNCOND+FRCSNO*DF1) 670 |! 2. ARITHMETIC MEAN (PARALLEL FLOW) 671 |! DF1 = FRCSNO*SNCOND + FRCSOI*DF1 672 | DF1A = FRCSNO*SNCOND + FRCSOI*DF1 673 |! 674 |! 3. GEOMETRIC MEAN (INTERMEDIATE BETWEEN HARMONIC AND ARITHMETIC MEAN) 675 |! DF1 = (SNCOND**FRCSNO)*(DF1**FRCSOI) 676 |! TEST - MBEK, 10 Jan 2002 677 |! weigh DF by snow fraction 678 |! DF1 = DF1H*SNCOVR + DF1A*(1.0-SNCOVR) 679 |! DF1 = DF1H*SNCOVR + DF1*(1.0-SNCOVR) 680 | DF1 = DF1A*SNCOVR + DF1*(1.0-SNCOVR) 681 | 682 |! ---------------------------------------------------------------------- 683 |! CALCULATE SUBSURFACE HEAT FLUX, SSOIL, FROM FINAL THERMAL DIFFUSIVITY 684 |! OF SURFACE MEDIUMS, DF1 ABOVE, AND SKIN TEMPERATURE AND TOP 685 |! MID-LAYER SOIL TEMPERATURE 686 |! ---------------------------------------------------------------------- 687 | SSOIL = DF1 * (T1 - STC(1) ) / DTOT 688 | ENDIF 689 | 690 |! ---------------------------------------------------------------------- 691 |! DETERMINE SURFACE ROUGHNESS OVER SNOWPACK USING SNOW CONDITION FROM 692 |! THE PREVIOUS TIMESTEP. 693 |! ---------------------------------------------------------------------- 694 | IF (SNCOVR .GT. 0.) THEN 695 | CALL SNOWZ0 (SNCOVR,Z0) 696 | ENDIF 697 | 698 |! ---------------------------------------------------------------------- 699 |! NEXT CALL ROUTINE SFCDIF TO CALCULATE THE SFC EXCHANGE COEF (CH) FOR 700 |! HEAT AND MOISTURE. 701 |! 702 |! NOTE !!! 703 |! COMMENT OUT CALL SFCDIF, IF SFCDIF ALREADY CALLED IN CALLING PROGRAM 704 |! (SUCH AS IN COUPLED ATMOSPHERIC MODEL). 705 |! 706 |! NOTE !!! 707 |! DO NOT CALL SFCDIF UNTIL AFTER ABOVE CALL TO REDPRM, IN CASE 708 |! ALTERNATIVE VALUES OF ROUGHNESS LENGTH (Z0) AND ZILINTINKEVICH COEF 709 |! (CZIL) ARE SET THERE VIA NAMELIST I/O. 710 |! 711 |! NOTE !!! 712 |! ROUTINE SFCDIF RETURNS A CH THAT REPRESENTS THE WIND SPD TIMES THE 713 |! "ORIGINAL" NONDIMENSIONAL "Ch" TYPICAL IN LITERATURE. HENCE THE CH 714 |! RETURNED FROM SFCDIF HAS UNITS OF M/S. THE IMPORTANT COMPANION 715 |! COEFFICIENT OF CH, CARRIED HERE AS "RCH", IS THE CH FROM SFCDIF TIMES 716 |! AIR DENSITY AND PARAMETER "CP". "RCH" IS COMPUTED IN "CALL PENMAN". 717 |! RCH RATHER THAN CH IS THE COEFF USUALLY INVOKED LATER IN EQNS. 718 |! 719 |! NOTE !!! 720 |! SFCDIF ALSO RETURNS THE SURFACE EXCHANGE COEFFICIENT FOR MOMENTUM, CM, 721 |! ALSO KNOWN AS THE SURFACE DRAGE COEFFICIENT, BUT CM IS NOT USED HERE. 722 |! ---------------------------------------------------------------------- 723 |! CALC VIRTUAL TEMPS AND VIRTUAL POTENTIAL TEMPS NEEDED BY SUBROUTINES 724 |! SFCDIF AND PENMAN. 725 |! ---------------------------------------------------------------------- 726 | T2V = SFCTMP * (1.0 + 0.61 * Q2 ) 727 |! ---------------------------------------------------------------------- 728 |! COMMENT OUT BELOW 2 LINES IF CALL SFCDIF IS COMMENTED OUT, I.E. IN THE 729 |! COUPLED MODEL. 730 |! ---------------------------------------------------------------------- 731 | T1V = T1 * (1.0 + 0.61 * Q2) 732 | TH2V = TH2 * (1.0 + 0.61 * Q2) 733 | 734 |!JESSE 20060705 735 | SFCSPD = MAX(SFCSPD, 1.0) 736 |! CALL SFCDIF (ZLVL,Z0,T1V,TH2V,SFCSPD,CZIL,CM,CH) 737 |!JESSE ETA CH 738 | CALL SFCDIF (ZLVL,Z0,T1V,TH2V,SFCSPD,CZIL,CM1,CH1) 739 |!JESSE GFS CH 740 | CALL GFSDIF (SFCPRS,SFCSPD,SFCTMP,Q2,T1,Z0,CM2,CH2) 741 | 742 |!JESSE CH FROM GDAS AS FORCING. 743 |! GDAS OUTPUT RHO*CH IN UNIT [kg/m3][m/s]. 744 | CH = CH * R * T2V / SFCPRS 745 |! AVOID CH=0.0 WHICH CRASHES RR IN CANRES. 746 | if( CH .LE. 0. ) then 747 | CM = CM2 748 | CH = CH2 749 | endif 750 | 751 |! ---------------------------------------------------------------------- 752 |! CALCULATE TOTAL DOWNWARD RADIATION (SOLAR PLUS LONGWAVE) NEEDED IN 753 |! PENMAN EP SUBROUTINE THAT FOLLOWS 754 |! ---------------------------------------------------------------------- 755 |!JESSE 756 | SOLNET = SOLDN*(1.0-ALBEDO) 757 | LWDN = (0.95*SNCOVR + (1.0-SNCOVR)) * LWDN 758 | FDOWN = SOLNET + LWDN 759 | 760 |! ---------------------------------------------------------------------- 761 |! CALL PENMAN SUBROUTINE TO CALCULATE POTENTIAL EVAPORATION (ETP), AND 762 |! OTHER PARTIAL PRODUCTS AND SUMS SAVE IN COMMON/RITE FOR LATER 763 |! CALCULATIONS. 764 |! ---------------------------------------------------------------------- 765 | if( ntl .eq. c1 ) then 766 | write(66,*) "ETP = ", ETP 767 | endif 768 | CALL PENMAN (SFCTMP,SFCPRS,CH,T2V,TH2,PRCP,FDOWN,T24,SSOIL, & 769 | Q2,Q2SAT,ETP,RCH,EPSCA,RR,SNOWNG,FRZGRA, & 770 | DQSDT2,FLX2) 771 | if( ntl .eq. c1 ) then 772 | write(66,*) "ETP = ", ETP 773 | endif 774 | 775 |! ---------------------------------------------------------------------- 776 |! CALL CANRES TO CALCULATE THE CANOPY RESISTANCE AND CONVERT IT INTO PC 777 |! IF NONZERO GREENNESS FRACTION 778 |! ---------------------------------------------------------------------- 779 | IF (SHDFAC .GT. 0.) THEN 780 | 781 |! ---------------------------------------------------------------------- 782 |! FROZEN GROUND EXTENSION: TOTAL SOIL WATER "SMC" WAS REPLACED 783 |! BY UNFROZEN SOIL WATER "SH2O" IN CALL TO CANRES BELOW 784 |! ---------------------------------------------------------------------- 785 | CALL CANRES (SOLDN,CH,SFCTMP,Q2,SFCPRS,SH2O,ZSOIL,NSOIL, & 786 | SMCWLT,SMCREF,RSMIN,RC,PC,NROOT,Q2SAT,DQSDT2, & 787 | TOPT,RSMAX,RGL,HS,XLAI, & 788 | RCS,RCT,RCQ,RCSOIL) 789 | 790 | ENDIF 791 | 792 |! ---------------------------------------------------------------------- 793 |! NOW DECIDE MAJOR PATHWAY BRANCH TO TAKE DEPENDING ON WHETHER SNOWPACK 794 |! EXISTS OR NOT: 795 |! ---------------------------------------------------------------------- 796 | ESNOW = 0.0 797 |!J 798 | if( ntl .eq. c1 ) then 799 | write(66,*)"SOLDN,SNEQV,SNOWH,SNDENS,SNCOVR,ETP,FLX3*0.001/LSUBS = ", & 800 | SOLDN,SNEQV,SNOWH,SNDENS,SNCOVR,ETP,FLX3*0.001/LSUBS 801 | endif 802 | IF (SNEQV .EQ. 0.0) THEN 803 | CALL NOPAC (ETP,ETA,PRCP,SMC,SMCMAX,SMCWLT, & 804 | SMCREF,SMCDRY,CMC,CMCMAX,NSOIL,DT,SHDFAC, & 805 | SBETA,Q2,T1,SFCTMP,T24,TH2,FDOWN,F1,SSOIL, & 806 | STC,EPSCA,BEXP,PC,RCH,RR,CFACTR, & 807 | SH2O,SLOPE,KDT,FRZX,PSISAT,ZSOIL, & 808 | DKSAT,DWSAT,TBOT,ZBOT,RUNOFF1,RUNOFF2, & 809 | RUNOFF3,EDIR,EC,ET,ETT,NROOT,ICE,RTDIS, & 810 | QUARTZ,FXEXP,CSOIL, & 811 | BETA,DRIP,DEW,FLX1,FLX2,FLX3) 812 | ELSE 813 | CALL SNOPAC (ETP,ETA,PRCP,PRCP1,SNOWNG,SMC,SMCMAX,SMCWLT, & 814 | SMCREF,SMCDRY,CMC,CMCMAX,NSOIL,DT, & 815 | SBETA,DF1, & 816 | Q2,T1,SFCTMP,T24,TH2,FDOWN,F1,SSOIL,STC,EPSCA, & 817 | SFCPRS,BEXP,PC,RCH,RR,CFACTR,SNCOVR,SNEQV,SNDENS, & 818 | SNOWH,SH2O,SLOPE,KDT,FRZX,PSISAT,SNUP, & 819 | ZSOIL,DWSAT,DKSAT,TBOT,ZBOT,SHDFAC,RUNOFF1, & 820 | RUNOFF2,RUNOFF3,EDIR,EC,ET,ETT,NROOT,SNOMLT, & 821 | ICE,RTDIS,QUARTZ,FXEXP,CSOIL, & 822 | BETA,DRIP,DEW,FLX1,FLX2,FLX3,ESNOW) 823 |! ESNOW = ETA 824 | ENDIF 825 | if( ntl .eq. c1 ) then 826 | write(66,*)"SOLDN,SNEQV,SNOWH,SNDENS,SNCOVR,ETP,FLX3*0.001/LSUBS = ", & 827 | SOLDN,SNEQV,SNOWH,SNDENS,SNCOVR,ETP,FLX3*0.001/LSUBS 828 | endif 829 | 830 |! ---------------------------------------------------------------------- 831 |! PREPARE SENSIBLE HEAT (H) FOR RETURN TO PARENT MODEL 832 |! ---------------------------------------------------------------------- 833 | SHEAT = -(CH * CP * SFCPRS)/(R * T2V) * ( TH2 - T1 ) 834 | 835 |! ---------------------------------------------------------------------- 836 |! CONVERT UNITS AND/OR SIGN OF TOTAL EVAP (ETA), POTENTIAL EVAP (ETP), 837 |! SUBSURFACE HEAT FLUX (S), AND RUNOFFS FOR WHAT PARENT MODEL EXPECTS 838 |! CONVERT ETA FROM KG M-2 S-1 TO W M-2 839 |! ---------------------------------------------------------------------- 840 |! ETA = ETA*LVH2O 841 |! ETP = ETP*LVH2O 842 | 843 |!JESSE EVP = ETA 844 | IF (ETP .GT. 0.) THEN 845 | EVP = EDIR + EC + ETT + ESNOW 846 | ELSE 847 | EVP = ETP 848 | ENDIF 849 |! ---------------------------------------------------------------------- 850 | EDIR = EDIR * LVH2O 851 | EC = EC * LVH2O 852 | DO K=1,4 853 | ET(K) = ET(K) * LVH2O 854 | ENDDO 855 | ETT = ETT * LVH2O 856 | ESNOW = ESNOW * LSUBS 857 | ETP = ETP*((1.-SNCOVR)*LVH2O + SNCOVR*LSUBS) 858 | IF (ETP .GT. 0.) THEN 859 | ETA = EDIR + EC + ETT + ESNOW 860 | ELSE 861 | ETA = ETP 862 | ENDIF 863 | IF (ETP .NE. 0. ) THEN 864 | BETA = ETA/ETP 865 | ELSE 866 | BETA = 0. 867 | ENDIF 868 |! ---------------------------------------------------------------------- 869 | 870 |! ---------------------------------------------------------------------- 871 |! CONVERT THE SIGN OF SOIL HEAT FLUX SO THAT: 872 |! SSOIL>0: WARM THE SURFACE (NIGHT TIME) 873 |! SSOIL<0: COOL THE SURFACE (DAY TIME) 874 |! ---------------------------------------------------------------------- 875 | SSOIL = -1.0*SSOIL 876 | 877 | IF (ICE .EQ. 0) THEN 878 |! ---------------------------------------------------------------------- 879 |! FOR THE CASE OF LAND (BUT NOT GLACIAL-ICE): 880 |! CONVERT RUNOFF3 (INTERNAL LAYER RUNOFF FROM SUPERSAT) FROM M TO M S-1 881 |! AND ADD TO SUBSURFACE RUNOFF/BASEFLOW (RUNOFF2). RUNOFF2 IS ALREADY 882 |! A RATE AT THIS POINT. 883 |! ---------------------------------------------------------------------- 884 | RUNOFF3 = RUNOFF3/DT 885 | RUNOFF2 = RUNOFF2+RUNOFF3 886 | 887 | ELSE 888 |! ---------------------------------------------------------------------- 889 |! FOR THE CASE OF SEA-ICE (ICE=1) OR GLACIAL-ICE (ICE=-1), ADD ANY 890 |! SNOWMELT DIRECTLY TO SURFACE RUNOFF (RUNOFF1) SINCE THERE IS NO 891 |! SOIL MEDIUM, AND THUS NO CALL TO SUBROUTINE SMFLX (FOR SOIL MOISTURE 892 |! TENDENCY). 893 |! ---------------------------------------------------------------------- 894 | RUNOFF1 = SNOMLT/DT 895 | ENDIF 896 | 897 |! ---------------------------------------------------------------------- 898 |! TOTAL COLUMN SOIL MOISTURE IN METERS (SOILM) AND ROOT-ZONE 899 |! SOIL MOISTURE AVAILABILITY (FRACTION) RELATIVE TO POROSITY/SATURATION 900 |! ---------------------------------------------------------------------- 901 | SOILM = -1.0*SMC(1)*ZSOIL(1) 902 | DO K = 2,NSOIL 903 | SOILM = SOILM+SMC(K)*(ZSOIL(K-1)-ZSOIL(K)) 904 | END DO 905 | 906 |! ---------------------------------------------------------------------- 907 |! ROOT-ZONE SOIL MOISTURE AVAILABILITY (FRACTION) RELATIVE 908 |! TO POROSITY/SATURATION (SOILW; aka, MSTAVRZ) 909 |! ---------------------------------------------------------------------- 910 | SOILWM = -1.0*(SMCMAX-SMCWLT)*ZSOIL(1) 911 | SOILWW = -1.0*(SMC(1)-SMCWLT)*ZSOIL(1) 912 | DO K = 2,NROOT 913 | SOILWM = SOILWM+(SMCMAX-SMCWLT)*(ZSOIL(K-1)-ZSOIL(K)) 914 | SOILWW = SOILWW+(SMC(K)-SMCWLT)*(ZSOIL(K-1)-ZSOIL(K)) 915 | END DO 916 | SOILW = SOILWW/SOILWM 917 | 918 |! ---------------------------------------------------------------------- 919 |! TOTAL COL SOIL MOISTURE AVAIL RELATIVE TO POROSITY/SATURATION (SOILT) 920 |! (aka, MSTAVTOT) 921 |! ---------------------------------------------------------------------- 922 | SOILTM = -1.0*(SMCMAX-SMCWLT)*ZSOIL(1) 923 | SOILTW = -1.0*(SMC(1)-SMCWLT)*ZSOIL(1) 924 | DO K = 2,NSOIL 925 | SOILTM = SOILTM+(SMCMAX-SMCWLT)*(ZSOIL(K-1)-ZSOIL(K)) 926 | SOILTW = SOILTW+(SMC(K)-SMCWLT)*(ZSOIL(K-1)-ZSOIL(K)) 927 | END DO 928 | SOILT = SOILTW/SOILTM 929 | 930 |! ---------------------------------------------------------------------- 931 |! END SUBROUTINE SFLX 932 |! ---------------------------------------------------------------------- 933 | RETURN 934 | END >>>>> ATTRIBUTE AND CROSS REFERENCE SECTION <<<<< IDENTIFIER NAME CROSS REFERENCE AND ATTRIBUTES alb Reference argument, Real(4), Offset: 0, Alignment: full word 0-252.12$ 0-56.32 0-603.20 0-611.24 albedo Reference argument, Real(4), Offset: 0, Alignment: full word 0-251.12$ 0-60.40 0-594.9@ 0-603.11@ 0-611.62 0-756.27 alcalc External Subroutine 0-611.16 beta Reference argument, Real(4), Offset: 0, Alignment: full word 0-254.12$ 0-63.8 0-811.20 0-822.21 0-864.9@ 0-866.9@ bexp Reference argument, Real(4), Offset: 0, Alignment: full word 0-253.12$ 0-58.15 0-806.30 0-817.28 c1 Parameter, Integer(4) 0-73.25$ 0-765.16 0-771.16 0-798.15 0-825.15 canres External Subroutine 0-785.14 cfactr Parameter, Real(4) 0-255.12$ 0-389.17$ 0-806.45 0-817.43 ch Reference argument, Real(4), Offset: 0, Alignment: full word 0-256.12$ 0-60.47 0-744.4@ 0-744.9 0-746.8 0-748.5@ 0-768.35 0-785.28 0-833.17 ch1 Automatic, Real(4), Offset: 0, Alignment: full word 0-379.12$ 0-738.53 ch2 Automatic, Real(4), Offset: 0, Alignment: full word 0-379.17$ 0-740.54 0-748.10 cm Reference argument, Real(4), Offset: 0, Alignment: full word 0-257.12$ 0-60.50 0-747.5@ cm1 Automatic, Real(4), Offset: 0, Alignment: full word 0-378.12$ 0-738.49 cm2 Automatic, Real(4), Offset: 0, Alignment: full word 0-378.17$ 0-740.50 0-747.10 cmc Reference argument, Real(4), Offset: 0, Alignment: full word 0-258.12$ 0-60.8 0-804.34 0-814.35 cmcmax Parameter, Real(4) 0-259.12$ 0-390.17$ 0-804.38 0-814.39 cp Parameter, Real(4) 0-260.12$ 0-387.17$ 0-833.22 csnow External Function Real(4) 0-261.12$ 0-539.18 0-574.18 csoil Parameter, Real(4) 0-262.12$ 0-401.17$ 0-810.33 0-821.44 czil Parameter, Real(4) 0-263.12$ 0-417.17$ 0-738.44 dew Reference argument, Real(4), Offset: 0, Alignment: full word 0-264.12$ 0-62.34 0-811.30 0-822.31 df1 Automatic, Real(4), Offset: 0, Alignment: full word 0-265.12$ 0-620.9@ 0-643.22 0-650.9@ 0-650.15 0-661.17 0-669.24 0-669.51 0-672.39 0-680.9@ 0-680.29 0-687.17 0-815.27 df1a Automatic, Real(4), Offset: 0, Alignment: full word 0-267.12$ 0-672.9@ 0-680.15 df1h Automatic, Real(4), Offset: 0, Alignment: full word 0-266.12$ 0-669.9@ dksat Reference argument, Real(4), Offset: 0, Alignment: full word 0-268.12$ 0-58.20 0-808.20 0-819.33 dqsdt2 Reference argument, Real(4), Offset: 0, Alignment: full word 0-271.12$ 0-55.18 0-770.20 0-786.59 drip Reference argument, Real(4), Offset: 0, Alignment: full word 0-274.12$ 0-62.29 0-811.25 0-822.26 dsoil Automatic, Real(4), Offset: 0, Alignment: full word 0-272.12$ 0-658.7@ 0-661.40 0-663.24 0-665.18 dt Reference argument, Real(4), Offset: 0, Alignment: full word 0-269.12$ 0-53.19 0-565.25 0-804.51 0-814.52 0-884.27 0-894.26 dtot Automatic, Real(4), Offset: 0, Alignment: full word 0-273.12$ 0-663.9@ 0-664.24 0-665.24 0-687.40 dwsat Reference argument, Real(4), Offset: 0, Alignment: full word 0-270.12$ 0-58.40 0-808.26 0-819.27 ec Reference argument, Real(4), Offset: 0, Alignment: full word 0-275.12$ 0-62.8 0-809.33 0-820.42 0-845.20 0-851.7@ 0-851.12 0-859.22 edir Reference argument, Real(4), Offset: 0, Alignment: full word 0-276.12$ 0-62.11 0-809.28 0-820.37 0-845.13 0-850.7@ 0-850.14 0-859.15 epsca Automatic, Real(4), Offset: 0, Alignment: full word 0-282.12$ 0-769.37 0-806.24 0-816.61 esnow Reference argument, Real(4), Offset: 0, Alignment: full word 0-277.12$ 0-62.23 0-796.7@ 0-822.50 0-845.31 0-856.7@ 0-856.15 0-859.33 et Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-278.12$ 0-62.16 0-809.36 0-820.45 0-853.9@ 0-853.17 eta Reference argument, Real(4), Offset: 0, Alignment: full word 0-283.12$ 0-61.12 0-803.25 0-813.26 0-859.9@ 0-861.9@ 0-864.16 etp Reference argument, Real(4), Offset: 0, Alignment: full word 0-284.12$ 0-63.13 0-766.27 0-769.29 0-772.27 0-800.48 0-803.21 0-813.22 0-827.48 0-844.7 0-847.13 0-857.7@ 0-857.13 0-858.11 0-861.15 0-863.11 0-864.20 ett Reference argument, Real(4), Offset: 0, Alignment: full word 0-279.12$ 0-62.19 0-809.39 0-820.48 0-845.25 0-855.7@ 0-855.13 0-859.27 evp Reference argument, Real(4), Offset: 0, Alignment: full word 0-285.12$ 0-61.8 0-845.7@ 0-847.7@ exp Pure Intrinsic 0-650.21 f1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-287.12$ 0-59.29 0-805.53 0-816.48 fdown Automatic, Real(4), Offset: 0, Alignment: full word 0-286.12$ 0-758.8@ 0-768.51 0-805.47 0-816.42 ffrozp Reference argument, Real(4), Offset: 0, Alignment: full word 0-374.12$ 0-53.8 0-550.13 float Pure Intrinsic 0-450.27 0-450.37 flx1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-288.12$ 0-64.8 0-811.34 0-822.35 flx2 Reference argument, Real(4), Offset: 0, Alignment: full word 0-289.12$ 0-64.13 0-770.27 0-811.39 0-822.40 flx3 Reference argument, Real(4), Offset: 0, Alignment: full word 0-290.12$ 0-64.18 0-800.52 0-811.44 0-822.45 0-827.52 frcsno Automatic, Real(4), Offset: 0, Alignment: full word 0-280.12$ 0-664.9@ 0-669.44 0-672.16 frcsoi Automatic, Real(4), Offset: 0, Alignment: full word 0-281.12$ 0-665.9@ 0-669.30 0-672.32 frzfact Reference argument, Real(4), Offset: 0, Alignment: full word 0-293.12$ 0-59.41 frzgra Automatic, Logical(1), Offset: 0, Alignment: byte 0-235.17$ 0-489.7@ 0-553.31@ 0-564.27 0-769.53 frzk Parameter, Real(4) 0-395.25$ frzx Reference argument, Real(4), Offset: 0, Alignment: full word 0-292.12$ 0-59.36 0-807.35 0-818.42 fxexp Parameter, Real(4) 0-291.12$ 0-400.17$ 0-810.27 0-821.38 gfsdif External Subroutine 0-740.12 hs Reference argument, Real(4), Offset: 0, Alignment: full word 0-295.12$ 0-57.18 0-787.36 i Automatic, Integer(4), Offset: 0, Alignment: full word 0-243.15$ ice Reference argument, Integer(4), Offset: 0, Alignment: full word 0-242.15$ 0-53.15 0-443.11 0-498.11 0-506.15 0-520.11 0-589.11 0-619.11 0-809.49 0-821.21 0-877.11 k Automatic, Integer(4), Offset: 0, Alignment: full word 0-243.17$ 0-852.10@ 0-853.12 0-853.20 0-902.10@ 0-903.27 0-903.37 0-903.48 0-912.10@ 0-913.48 0-913.59 0-914.30 0-914.48 0-914.59 0-924.10@ 0-925.48 0-925.59 0-926.30 0-926.48 0-926.59 kdt Reference argument, Real(4), Offset: 0, Alignment: full word 0-296.12$ 0-59.32 0-807.31 0-818.38 kz Automatic, Integer(4), Offset: 0, Alignment: full word 0-244.15$ 0-449.12@ 0-450.17 0-450.33 0-461.12@ 0-462.17 0-462.31 0-462.41 0-468.12@ 0-469.18 0-469.32 0-521.12@ 0-522.15 0-523.16 lsubs Parameter, Real(4) 0-376.12$ 0-385.17$ 0-800.63 0-827.63 0-856.23 0-857.45 lvh2o Parameter, Real(4) 0-298.12$ 0-384.17$ 0-850.21 0-851.17 0-853.25 0-855.19 0-857.30 lwdn Reference argument, Real(4), Offset: 0, Alignment: full word 0-297.12$ 0-54.8 0-757.7@ 0-757.47 0-758.25 max Pure Intrinsic 0-538.18 0-735.16 min Pure Intrinsic 0-538.27 nopac External Subroutine 0-803.14 nroot Reference argument, Integer(4), Offset: 0, Alignment: full word 0-246.15$ 0-57.34 0-468.20 0-469.42 0-786.47 0-809.43 0-820.52 0-912.16 nsoil Reference argument, Integer(4), Offset: 0, Alignment: full word 0-245.15$ 0-53.27 0-278.15 0-278.15 0-333.17 0-333.17 0-334.19 0-334.19 0-339.16 0-339.16 0-348.16 0-348.16 0-449.19 0-450.43 0-461.19 0-521.19 0-785.59 0-804.45 0-814.46 0-902.16 0-924.16 nsold Parameter, Integer(4) 0-229.28$ 0-311.18 0-372.18 ntl Reference argument, Integer(4), Offset: 0, Alignment: full word 0-230.15$ 0-52.24 0-765.7 0-771.7 0-798.6 0-825.6 pc Reference argument, Real(4), Offset: 0, Alignment: full word 0-299.12$ 0-67.11 0-786.44 0-806.35 0-817.33 penman External Subroutine 0-768.13 prcp Reference argument, Real(4), Offset: 0, Alignment: full word 0-300.12$ 0-54.33 0-548.11 0-565.18 0-582.17 0-768.46 0-803.29 0-813.30 prcp1 Automatic, Real(4), Offset: 0, Alignment: full word 0-302.12$ 0-567.9@ 0-582.9@ 0-813.35 psisat Reference argument, Real(4), Offset: 0, Alignment: full word 0-303.12$ 0-58.8 0-807.40 0-818.47 ptu Reference argument, Real(4), Offset: 0, Alignment: full word 0-301.12$ 0-56.28 q2 Reference argument, Real(4), Offset: 0, Alignment: full word 0-304.12$ 0-54.45 0-726.36 0-731.32 0-732.34 0-740.41 0-769.20 0-785.38 0-805.26 0-816.21 q2sat Reference argument, Real(4), Offset: 0, Alignment: full word 0-305.12$ 0-55.12 0-769.23 0-786.53 quartz Reference argument, Real(4), Offset: 0, Alignment: full word 0-306.12$ 0-58.33 0-643.33 0-810.20 0-821.31 r Parameter, Real(4) 0-307.12$ 0-386.17$ 0-744.14 0-833.36 rc Reference argument, Real(4), Offset: 0, Alignment: full word 0-317.12$ 0-67.8 0-786.41 rch Automatic, Real(4), Offset: 0, Alignment: full word 0-308.12$ 0-769.33 0-806.38 0-817.36 rcq Reference argument, Real(4), Offset: 0, Alignment: full word 0-319.12$ 0-67.22 0-788.29 rcs Reference argument, Real(4), Offset: 0, Alignment: full word 0-320.12$ 0-67.14 0-788.21 rcsoil Reference argument, Real(4), Offset: 0, Alignment: full word 0-321.12$ 0-67.26 0-788.33 rct Reference argument, Real(4), Offset: 0, Alignment: full word 0-322.12$ 0-67.18 0-788.25 refdk Parameter, Real(4) 0-397.25$ refkdt Parameter, Real(4) 0-309.12$ 0-398.17$ rgl Reference argument, Real(4), Offset: 0, Alignment: full word 0-314.12$ 0-57.14 0-787.32 rr Automatic, Real(4), Offset: 0, Alignment: full word 0-310.12$ 0-769.43 0-806.42 0-817.40 rsmax Parameter, Real(4) 0-316.12$ 0-391.17$ 0-787.26 rsmin Reference argument, Real(4), Offset: 0, Alignment: full word 0-318.12$ 0-57.8 0-786.35 rsnow Automatic, Real(4), Offset: 0, Alignment: full word 0-323.12$ rtdis Automatic, Real(4) (1:4), Offset: 0, Alignment: full word 0-311.12$ 0-469.12@ 0-809.53 0-821.25 runoff1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-312.12$ 0-66.8 0-424.7@ 0-808.42 0-819.56 0-894.9@ runoff2 Reference argument, Real(4), Offset: 0, Alignment: full word 0-313.12$ 0-66.16 0-425.7@ 0-808.50 0-820.21 0-885.9@ 0-885.19 runoff3 Reference argument, Real(4), Offset: 0, Alignment: full word 0-315.12$ 0-66.24 0-426.7@ 0-809.20 0-820.29 0-884.9@ 0-884.19 0-885.27 salp Parameter, Real(4) 0-346.12$ 0-412.17$ 0-610.35 saturated Automatic, Logical(1), Offset: 0, Alignment: byte 0-236.17$ sbeta Parameter, Real(4) 0-327.12$ 0-393.17$ 0-650.25 0-805.20 0-815.21 sfcdif External Subroutine 0-738.12 sfcprs Reference argument, Real(4), Offset: 0, Alignment: full word 0-328.12$ 0-54.26 0-740.20 0-744.24 0-768.28 0-785.41 0-817.21 0-833.27 sfcspd Reference argument, Real(4), Offset: 0, Alignment: full word 0-329.12$ 0-54.48 0-735.7@ 0-735.20 0-738.37 0-740.27 sfctmp Reference argument, Real(4), Offset: 0, Alignment: full word 0-330.12$ 0-54.38 0-573.24 0-726.13 0-740.34 0-768.21 0-785.31 0-805.32 0-816.27 sflx Subroutine 0-52.18$ sh2o Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-333.12$ 0-60.23 0-523.11@ 0-643.47 0-785.48 0-807.20 0-818.27 shdfac Reference argument, Real(4), Offset: 0, Alignment: full word 0-331.12$ 0-56.14 0-444.9@ 0-611.35 0-650.31 0-779.11 0-804.54 0-819.49 shdmin Reference argument, Real(4), Offset: 0, Alignment: full word 0-332.12$ 0-56.21 0-611.42 sheat Reference argument, Real(4), Offset: 0, Alignment: full word 0-294.12$ 0-61.16 0-833.7@ sldpth Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-334.12$ 0-53.33 0-460.21 0-462.24 0-469.25 slope Reference argument, Real(4), Offset: 0, Alignment: full word 0-344.12$ 0-56.8 0-807.25 0-818.32 smc Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-339.12$ 0-60.19 0-522.11@ 0-643.26 0-803.34 0-813.48 0-901.20 0-903.23 0-911.22 0-914.26 0-923.22 0-926.26 smcdry Reference argument, Real(4), Offset: 0, Alignment: full word 0-335.12$ 0-59.22 0-804.27 0-814.28 smcmax Reference argument, Real(4), Offset: 0, Alignment: full word 0-336.12$ 0-58.26 0-643.40 0-803.38 0-813.52 0-910.22 0-913.26 0-922.22 0-925.26 smcref Reference argument, Real(4), Offset: 0, Alignment: full word 0-337.12$ 0-59.15 0-786.28 0-804.20 0-814.21 smcwlt Reference argument, Real(4), Offset: 0, Alignment: full word 0-338.12$ 0-59.8 0-786.21 0-803.45 0-813.59 0-910.29 0-911.29 0-913.33 0-914.33 0-922.29 0-923.29 0-925.33 0-926.33 sn_new Automatic, Real(4), Offset: 0, Alignment: full word 0-343.12$ 0-565.9@ 0-566.25 0-573.31 sncond Automatic, Real(4), Offset: 0, Alignment: full word 0-325.12$ 0-535.9@ 0-539.9@ 0-574.9@ 0-669.17 0-669.37 0-672.23 sncovr Reference argument, Real(4), Offset: 0, Alignment: full word 0-341.12$ 0-65.15 0-593.9@ 0-602.11@ 0-610.46 0-611.49 0-680.20 0-680.38 0-694.11 0-695.22 0-757.22 0-757.36 0-800.41 0-817.50 0-827.41 0-857.22 0-857.38 sndens Automatic, Real(4), Offset: 0, Alignment: full word 0-324.12$ 0-533.9@ 0-537.9@ 0-538.9@ 0-538.36 0-539.24 0-573.44 0-574.25 0-800.34 0-817.63 0-827.34 sneqv Reference argument, Real(4), Offset: 0, Alignment: full word 0-340.12$ 0-60.34 0-499.13 0-502.11@ 0-507.13 0-510.11@ 0-532.11 0-537.18 0-566.9@ 0-566.17 0-601.13 0-610.24 0-660.11 0-800.22 0-802.11 0-817.57 0-827.22 snfrac External Subroutine 0-610.16 snoalb Reference argument, Real(4), Offset: 0, Alignment: full word 0-347.12$ 0-56.36 0-611.28 snomlt Reference argument, Real(4), Offset: 0, Alignment: full word 0-349.12$ 0-65.8 0-427.7@ 0-820.58 0-894.19 snopac External Subroutine 0-813.14 snow_new External Subroutine 0-573.14 snowh Reference argument, Real(4), Offset: 0, Alignment: full word 0-342.12$ 0-60.28 0-503.11@ 0-511.11@ 0-534.9@ 0-537.24 0-573.38 0-610.40 0-663.16 0-664.18 0-800.28 0-818.21 0-827.28 snowng Automatic, Logical(1), Offset: 0, Alignment: byte 0-237.17$ 0-488.7@ 0-551.11@ 0-564.13 0-769.46 0-813.41 snowz0 External Subroutine 0-695.14 snup Reference argument, Real(4), Offset: 0, Alignment: full word 0-345.12$ 0-57.21 0-610.30 0-818.54 soilm Reference argument, Real(4), Offset: 0, Alignment: full word 0-351.12$ 0-68.20 0-901.7@ 0-903.9@ 0-903.17 soilt Reference argument, Real(4), Offset: 0, Alignment: full word 0-355.12$ 0-68.14 0-928.7@ soiltm Automatic, Real(4), Offset: 0, Alignment: full word 0-356.12$ 0-922.7@ 0-925.9@ 0-925.18 0-928.22 soiltw Automatic, Real(4), Offset: 0, Alignment: full word 0-357.12$ 0-923.7@ 0-926.9@ 0-926.18 0-928.15 soilw Reference argument, Real(4), Offset: 0, Alignment: full word 0-352.12$ 0-68.8 0-916.7@ soilwm Automatic, Real(4), Offset: 0, Alignment: full word 0-353.12$ 0-910.7@ 0-913.9@ 0-913.18 0-916.22 soilww Automatic, Real(4), Offset: 0, Alignment: full word 0-354.12$ 0-911.7@ 0-914.9@ 0-914.18 0-916.15 soldn Reference argument, Real(4), Offset: 0, Alignment: full word 0-350.12$ 0-54.13 0-756.16 0-785.22 0-800.16 0-827.16 solnet Reference argument, Real(4), Offset: 0, Alignment: full word 0-375.12$ 0-54.19 0-756.7@ 0-758.16 ssoil Reference argument, Real(4), Offset: 0, Alignment: full word 0-326.12$ 0-63.17 0-661.9@ 0-687.9@ 0-768.61 0-805.56 0-816.51 0-875.7@ 0-875.20 stc Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-348.12$ 0-60.15 0-661.29 0-687.29 0-806.20 0-816.57 t1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-358.12$ 0-60.12 0-553.15 0-661.24 0-687.24 0-731.13 0-740.44 0-805.29 0-816.24 0-833.55 t1v Automatic, Real(4), Offset: 0, Alignment: full word 0-359.12$ 0-731.7@ 0-738.28 t24 Automatic, Real(4), Offset: 0, Alignment: full word 0-360.12$ 0-768.57 0-805.39 0-816.34 t2v Automatic, Real(4), Offset: 0, Alignment: full word 0-361.12$ 0-726.7@ 0-744.18 0-768.38 0-833.40 tbot Reference argument, Real(4), Offset: 0, Alignment: full word 0-362.12$ 0-59.49 0-808.32 0-819.39 tdfcnd External Subroutine 0-643.14 tfreez Parameter, Real(4) 0-366.12$ 0-383.17$ 0-553.23 th2 Reference argument, Real(4), Offset: 0, Alignment: full word 0-363.12$ 0-55.8 0-732.14 0-768.42 0-805.43 0-816.38 0-833.49 th2v Automatic, Real(4), Offset: 0, Alignment: full word 0-364.12$ 0-732.7@ 0-738.32 topt Parameter, Real(4) 0-365.12$ 0-392.17$ 0-787.21 tsnow Automatic, Real(4), Offset: 0, Alignment: full word 0-367.12$ 0-611.56 xlai Reference argument, Real(4), Offset: 0, Alignment: full word 0-368.12$ 0-57.29 0-787.39 z0 Reference argument, Real(4), Offset: 0, Alignment: full word 0-371.12$ 0-57.26 0-695.29 0-738.25 0-740.47 zbot Parameter, Real(4) 0-370.12$ 0-405.17$ 0-808.37 0-819.44 zlvl Reference argument, Real(4), Offset: 0, Alignment: full word 0-369.12$ 0-53.22 0-738.20 zsoil Automatic, Real(4) (1:4), Offset: 0, Alignment: full word 0-372.12$ 0-450.11@ 0-460.9@ 0-462.11@ 0-462.35 0-469.36 0-658.23 0-785.53 0-807.47 0-819.21 0-901.27 0-903.31 0-903.42 0-910.37 0-911.37 0-913.42 0-913.53 0-914.42 0-914.53 0-922.37 0-923.37 0-925.42 0-925.53 0-926.42 0-926.53 ** sflx === End of Compilation 1 === >>>>> COMPILATION UNIT EPILOGUE SECTION <<<<< FORTRAN Summary of Diagnosed Conditions TOTAL UNRECOVERABLE SEVERE ERROR WARNING INFORMATIONAL (U) (S) (E) (W) (I) 0 0 0 0 0 0 >>>>> OPTIONS SECTION <<<<< *** Options In Effect *** == On / Off Options == CR DBG ESCAPE FULLPATH I4 INLGLUE NOLIBESSL NOLIBPOSIX OBJECT SOURCE STRICT SWAPOMP THREADED UNWIND ZEROSIZE == Options Of Integer Type == ALIAS_SIZE(65536) MAXMEM(-1) OPTIMIZE(2) SPILLSIZE(2000) STACKTEMP(0) == Options Of Character Type == 64(LARGETYPE) ALIAS(STD,NOINTPTR) ALIGN(BINDC(POWER),STRUCT(NATURAL)) ARCH(PWR6) ATTR(FULL) AUTODBL(NONE) DESCRIPTOR(V1) DIRECTIVE(IBM*,IBMT) ENUM() FLAG(I,I) FLOAT(RNDSNGL,MAF,FOLD,RNGCHK,SINGLE) FREE(F90) HALT(S) IEEE(NEAR) INTSIZE(4) LANGLVL(EXTENDED) REALSIZE(4) NOSAVE() TUNE(PWR6) UNROLL(AUTO) XREF(FULL) XLF2003(NOPOLYMORPHIC,NOBOZLITARGS,NOSTOPEXCEPT,NOVOLATILE,NOAUTOREALLOC,OLDNANINF) XLF77(LEADZERO,BLANKPAD) XLF90(NOSIGNEDZERO,NOAUTODEALLOC,OLDPAD) >>>>> SOURCE SECTION <<<<< 935 | 936 |! ------- THE FOLLOWING SUBROUTINES ARE IN ALPHABETICAL ORDER -------- 937 | 938 |! -- 2. PHYSICS SUBROUTINE ==> SUBROUTINE ALCALC ---------------------- 939 | 940 | SUBROUTINE ALCALC (ALB,SNOALB,SHDFAC,SHDMIN,SNCOVR,TSNOW,ALBEDO) 941 | 942 | IMPLICIT NONE 943 | 944 |! ---------------------------------------------------------------------- 945 |! CALCULATE ALBEDO INCLUDING SNOW EFFECT (0 -> 1) 946 |! ALB SNOWFREE ALBEDO 947 |! SNOALB MAXIMUM (DEEP) SNOW ALBEDO 948 |! SHDFAC AREAL FRACTIONAL COVERAGE OF GREEN VEGETATION 949 |! SHDMIN MINIMUM AREAL FRACTIONAL COVERAGE OF GREEN VEGETATION 950 |! SNCOVR FRACTIONAL SNOW COVER 951 |! ALBEDO SURFACE ALBEDO INCLUDING SNOW EFFECT 952 |! TSNOW SNOW SURFACE TEMPERATURE (K) 953 |! ---------------------------------------------------------------------- 954 | REAL ALB, SNOALB, SHDFAC, SHDMIN, SNCOVR, ALBEDO, TSNOW 955 | 956 |! ---------------------------------------------------------------------- 957 |! SNOALB IS ARGUMENT REPRESENTING MAXIMUM ALBEDO OVER DEEP SNOW, 958 |! AS PASSED INTO SFLX, AND ADAPTED FROM THE SATELLITE-BASED MAXIMUM 959 |! SNOW ALBEDO FIELDS PROVIDED BY D. ROBINSON AND G. KUKLA 960 |! (1985, JCAM, VOL 24, 402-411) 961 |! ---------------------------------------------------------------------- 962 |! changed in version 2.6 on June 2nd 2003 963 |! ALBEDO = ALB + (1.0-(SHDFAC-SHDMIN))*SNCOVR*(SNOALB-ALB) 964 | ALBEDO = ALB + SNCOVR*(SNOALB-ALB) 965 | IF (ALBEDO .GT. SNOALB) ALBEDO=SNOALB 966 | 967 |! BASE FORMULATION (DICKINSON ET AL., 1986, COGLEY ET AL., 1990) 968 |! IF (TSNOW.LE.263.16) THEN 969 |! ALBEDO=SNOALB 970 |! ELSE 971 |! IF (TSNOW.LT.273.16) THEN 972 |! TM=0.1*(TSNOW-263.16) 973 |! ALBEDO=0.5*((0.9-0.2*(TM**3))+(0.8-0.16*(TM**3))) 974 |! ELSE 975 |! ALBEDO=0.67 976 |! ENDIF 977 |! ENDIF 978 | 979 |! ISBA FORMULATION (VERSEGHY, 1991; BAKER ET AL., 1990) 980 |! IF (TSNOW.LT.273.16) THEN 981 |! ALBEDO=SNOALB-0.008*DT/86400 982 |! ELSE 983 |! ALBEDO=(SNOALB-0.5)*EXP(-0.24*DT/86400)+0.5 984 |! ENDIF 985 | 986 |! ---------------------------------------------------------------------- 987 |! END SUBROUTINE ALCALC 988 |! ---------------------------------------------------------------------- 989 | RETURN 990 | END >>>>> ATTRIBUTE AND CROSS REFERENCE SECTION <<<<< IDENTIFIER NAME CROSS REFERENCE AND ATTRIBUTES alb Reference argument, Real(4), Offset: 0, Alignment: full word 0-954.12$ 0-940.26 0-964.20 0-964.41 albedo Reference argument, Real(4), Offset: 0, Alignment: full word 0-954.49$ 0-940.64 0-964.11@ 0-965.15 0-965.35@ alcalc Subroutine 0-940.18$ shdfac Reference argument, Real(4), Offset: 0, Alignment: full word 0-954.25$ 0-940.37 shdmin Reference argument, Real(4), Offset: 0, Alignment: full word 0-954.33$ 0-940.44 sncovr Reference argument, Real(4), Offset: 0, Alignment: full word 0-954.41$ 0-940.51 0-964.26 snoalb Reference argument, Real(4), Offset: 0, Alignment: full word 0-954.17$ 0-940.30 0-964.34 0-965.27 0-965.42 tsnow Reference argument, Real(4), Offset: 0, Alignment: full word 0-954.57$ 0-940.58 ** alcalc === End of Compilation 2 === >>>>> COMPILATION UNIT EPILOGUE SECTION <<<<< FORTRAN Summary of Diagnosed Conditions TOTAL UNRECOVERABLE SEVERE ERROR WARNING INFORMATIONAL (U) (S) (E) (W) (I) 0 0 0 0 0 0 >>>>> OPTIONS SECTION <<<<< *** Options In Effect *** == On / Off Options == CR DBG ESCAPE FULLPATH I4 INLGLUE NOLIBESSL NOLIBPOSIX OBJECT SOURCE STRICT SWAPOMP THREADED UNWIND ZEROSIZE == Options Of Integer Type == ALIAS_SIZE(65536) MAXMEM(-1) OPTIMIZE(2) SPILLSIZE(2000) STACKTEMP(0) == Options Of Character Type == 64(LARGETYPE) ALIAS(STD,NOINTPTR) ALIGN(BINDC(POWER),STRUCT(NATURAL)) ARCH(PWR6) ATTR(FULL) AUTODBL(NONE) DESCRIPTOR(V1) DIRECTIVE(IBM*,IBMT) ENUM() FLAG(I,I) FLOAT(RNDSNGL,MAF,FOLD,RNGCHK,SINGLE) FREE(F90) HALT(S) IEEE(NEAR) INTSIZE(4) LANGLVL(EXTENDED) REALSIZE(4) NOSAVE() TUNE(PWR6) UNROLL(AUTO) XREF(FULL) XLF2003(NOPOLYMORPHIC,NOBOZLITARGS,NOSTOPEXCEPT,NOVOLATILE,NOAUTOREALLOC,OLDNANINF) XLF77(LEADZERO,BLANKPAD) XLF90(NOSIGNEDZERO,NOAUTODEALLOC,OLDPAD) >>>>> SOURCE SECTION <<<<< 991 | 992 |! -- 3. PHYSICS SUBROUTINE ==> SUBROUTINE CANRES -------------------- 993 | 994 | SUBROUTINE CANRES (SOLAR,CH,SFCTMP,Q2,SFCPRS,SMC,ZSOIL,NSOIL, & 995 | SMCWLT,SMCREF,RSMIN,RC,PC,NROOT,Q2SAT,DQSDT2, & 996 | TOPT,RSMAX,RGL,HS,XLAI, & 997 | RCS,RCT,RCQ,RCSOIL) 998 | 999 | IMPLICIT NONE 1000 | 1001 |! ---------------------------------------------------------------------- 1002 |! SUBROUTINE CANRES 1003 |! ---------------------------------------------------------------------- 1004 |! CALCULATE CANOPY RESISTANCE WHICH DEPENDS ON INCOMING SOLAR RADIATION, 1005 |! AIR TEMPERATURE, ATMOSPHERIC WATER VAPOR PRESSURE DEFICIT AT THE 1006 |! LOWEST MODEL LEVEL, AND SOIL MOISTURE (PREFERABLY UNFROZEN SOIL 1007 |! MOISTURE RATHER THAN TOTAL) 1008 |! ---------------------------------------------------------------------- 1009 |! SOURCE: JARVIS (1976), NOILHAN AND PLANTON (1989, MWR), JACQUEMIN AND 1010 |! NOILHAN (1990, BLM) 1011 |! SEE ALSO: CHEN ET AL (1996, JGR, VOL 101(D3), 7251-7268), EQNS 12-14 1012 |! AND TABLE 2 OF SEC. 3.1.2 1013 |! ---------------------------------------------------------------------- 1014 |! INPUT: 1015 |! SOLAR INCOMING SOLAR RADIATION 1016 |! CH SURFACE EXCHANGE COEFFICIENT FOR HEAT AND MOISTURE 1017 |! SFCTMP AIR TEMPERATURE AT 1ST LEVEL ABOVE GROUND 1018 |! Q2 AIR HUMIDITY AT 1ST LEVEL ABOVE GROUND 1019 |! Q2SAT SATURATION AIR HUMIDITY AT 1ST LEVEL ABOVE GROUND 1020 |! DQSDT2 SLOPE OF SATURATION HUMIDITY FUNCTION WRT TEMP 1021 |! SFCPRS SURFACE PRESSURE 1022 |! SMC VOLUMETRIC SOIL MOISTURE 1023 |! ZSOIL SOIL DEPTH (NEGATIVE SIGN, AS IT IS BELOW GROUND) 1024 |! NSOIL NO. OF SOIL LAYERS 1025 |! NROOT NO. OF SOIL LAYERS IN ROOT ZONE (1.LE.NROOT.LE.NSOIL) 1026 |! XLAI LEAF AREA INDEX 1027 |! SMCWLT WILTING POINT 1028 |! SMCREF REFERENCE SOIL MOISTURE (WHERE SOIL WATER DEFICIT STRESS 1029 |! SETS IN) 1030 |! RSMIN, RSMAX, TOPT, RGL, HS ARE CANOPY STRESS PARAMETERS SET IN 1031 |! SURBOUTINE REDPRM 1032 |! OUTPUT: 1033 |! PC PLANT COEFFICIENT 1034 |! RC CANOPY RESISTANCE 1035 |! ---------------------------------------------------------------------- 1036 | INTEGER, PARAMETER:: NSOLD=4 1037 | 1038 | INTEGER K 1039 | INTEGER NROOT 1040 | INTEGER NSOIL 1041 | 1042 | REAL CH 1043 | REAL CP 1044 | REAL DELTA 1045 | REAL DQSDT2 1046 | REAL FF 1047 | REAL GX 1048 | REAL HS 1049 | REAL P 1050 | REAL PART(NSOLD) 1051 | REAL PC 1052 | REAL Q2 1053 | REAL Q2SAT 1054 | REAL RC 1055 | REAL RSMIN 1056 | REAL RCQ 1057 | REAL RCS 1058 | REAL RCSOIL 1059 | REAL RCT 1060 | REAL RD 1061 | REAL RGL 1062 | REAL RR 1063 | REAL RSMAX 1064 | REAL SFCPRS 1065 | REAL SFCTMP 1066 | REAL SIGMA 1067 | REAL SLV 1068 | REAL SMC(NSOIL) 1069 | REAL SMCREF 1070 | REAL SMCWLT 1071 | REAL SOLAR 1072 | REAL TOPT 1073 | REAL SLVCP 1074 | REAL ST1 1075 | REAL TAIR4 1076 | REAL XLAI 1077 | REAL ZSOIL(NSOIL) 1078 | 1079 | PARAMETER(CP = 1004.5) 1080 | PARAMETER(RD = 287.04) 1081 | PARAMETER(SIGMA = 5.67E-8) 1082 | PARAMETER(SLV = 2.501000E6) 1083 | 1084 |! ---------------------------------------------------------------------- 1085 |! INITIALIZE CANOPY RESISTANCE MULTIPLIER TERMS. 1086 |! ---------------------------------------------------------------------- 1087 | RCS = 0.0 1088 | RCT = 0.0 1089 | RCQ = 0.0 1090 | RCSOIL = 0.0 1091 | RC = 0.0 1092 | 1093 |! ---------------------------------------------------------------------- 1094 |! CONTRIBUTION DUE TO INCOMING SOLAR RADIATION 1095 |! ---------------------------------------------------------------------- 1096 | FF = 0.55*2.0*SOLAR/(RGL*XLAI) 1097 | RCS = (FF + RSMIN/RSMAX) / (1.0 + FF) 1098 | RCS = MAX(RCS,0.0001) 1099 | 1100 |! ---------------------------------------------------------------------- 1101 |! CONTRIBUTION DUE TO AIR TEMPERATURE AT FIRST MODEL LEVEL ABOVE GROUND 1102 |! RCT EXPRESSION FROM NOILHAN AND PLANTON (1989, MWR). 1103 |! ---------------------------------------------------------------------- 1104 | RCT = 1.0 - 0.0016*((TOPT-SFCTMP)**2.0) 1105 | RCT = MAX(RCT,0.0001) 1106 | 1107 |! ---------------------------------------------------------------------- 1108 |! CONTRIBUTION DUE TO VAPOR PRESSURE DEFICIT AT FIRST MODEL LEVEL. 1109 |! RCQ EXPRESSION FROM SSIB 1110 |! ---------------------------------------------------------------------- 1111 | RCQ = 1.0/(1.0+HS*(Q2SAT-Q2)) 1112 | RCQ = MAX(RCQ,0.01) 1113 | 1114 |! ---------------------------------------------------------------------- 1115 |! CONTRIBUTION DUE TO SOIL MOISTURE AVAILABILITY. 1116 |! DETERMINE CONTRIBUTION FROM EACH SOIL LAYER, THEN ADD THEM UP. 1117 |! ---------------------------------------------------------------------- 1118 | GX = (SMC(1) - SMCWLT) / (SMCREF - SMCWLT) 1119 | IF (GX .GT. 1.) GX = 1. 1120 | IF (GX .LT. 0.) GX = 0. 1121 | 1122 |! ---------------------------------------------------------------------- 1123 |! USE SOIL DEPTH AS WEIGHTING FACTOR 1124 |! ---------------------------------------------------------------------- 1125 | PART(1) = (ZSOIL(1)/ZSOIL(NROOT)) * GX 1126 |! ---------------------------------------------------------------------- 1127 |! USE ROOT DISTRIBUTION AS WEIGHTING FACTOR 1128 |! PART(1) = RTDIS(1) * GX 1129 |! ---------------------------------------------------------------------- 1130 | DO K = 2,NROOT 1131 | GX = (SMC(K) - SMCWLT) / (SMCREF - SMCWLT) 1132 | IF (GX .GT. 1.) GX = 1. 1133 | IF (GX .LT. 0.) GX = 0. 1134 |! ---------------------------------------------------------------------- 1135 |! USE SOIL DEPTH AS WEIGHTING FACTOR 1136 |! ---------------------------------------------------------------------- 1137 | PART(K) = ((ZSOIL(K)-ZSOIL(K-1))/ZSOIL(NROOT)) * GX 1138 |! ---------------------------------------------------------------------- 1139 |! USE ROOT DISTRIBUTION AS WEIGHTING FACTOR 1140 |! PART(K) = RTDIS(K) * GX 1141 |! ---------------------------------------------------------------------- 1142 | END DO 1143 | 1144 | DO K = 1,NROOT 1145 | RCSOIL = RCSOIL+PART(K) 1146 | END DO 1147 | RCSOIL = MAX(RCSOIL,0.0001) 1148 |! ---------------------------------------------------------------------- 1149 |! DETERMINE CANOPY RESISTANCE DUE TO ALL FACTORS. CONVERT CANOPY 1150 |! RESISTANCE (RC) TO PLANT COEFFICIENT (PC) TO BE USED WITH POTENTIAL 1151 |! EVAP IN DETERMINING ACTUAL EVAP. PC IS DETERMINED BY: 1152 |! PC * LINERIZED PENMAN POTENTIAL EVAP = 1153 |! PENMAN-MONTEITH ACTUAL EVAPORATION (CONTAINING RC TERM). 1154 |! ---------------------------------------------------------------------- 1155 | RC = RSMIN/(XLAI*RCS*RCT*RCQ*RCSOIL) 1156 | 1157 |! TAIR4 = SFCTMP**4. 1158 |! ST1 = (4.*SIGMA*RD)/CP 1159 |! SLVCP = SLV/CP 1160 |! RR = ST1*TAIR4/(SFCPRS*CH) + 1.0 1161 | RR = (4.*SIGMA*RD/CP)*(SFCTMP**4.)/(SFCPRS*CH) + 1.0 1162 | DELTA = (SLV/CP)*DQSDT2 1163 | 1164 | PC = (RR+DELTA)/(RR*(1.+RC*CH)+DELTA) 1165 | 1166 |! ---------------------------------------------------------------------- 1167 |! END SUBROUTINE CANRES 1168 |! ---------------------------------------------------------------------- 1169 | RETURN 1170 | END >>>>> ATTRIBUTE AND CROSS REFERENCE SECTION <<<<< IDENTIFIER NAME CROSS REFERENCE AND ATTRIBUTES canres Subroutine 0-994.18$ ch Reference argument, Real(4), Offset: 0, Alignment: full word 0-1042.12$ 0-994.32 0-1161.50 0-1164.34 cp Parameter, Real(4) 0-1043.12$ 0-1079.17$ 0-1161.25 0-1162.20 delta Automatic, Real(4), Offset: 0, Alignment: full word 0-1044.12$ 0-1162.7@ 0-1164.16 0-1164.38 dqsdt2 Reference argument, Real(4), Offset: 0, Alignment: full word 0-1045.12$ 0-995.63 0-1162.24 ff Automatic, Real(4), Offset: 0, Alignment: full word 0-1046.12$ 0-1096.7@ 0-1097.14 0-1097.41 gx Automatic, Real(4), Offset: 0, Alignment: full word 0-1047.12$ 0-1118.7@ 0-1119.11 0-1119.23@ 0-1120.11 0-1120.23@ 0-1125.43 0-1131.9@ 0-1132.13 0-1132.25@ 0-1133.13 0-1133.25@ 0-1137.58 hs Reference argument, Real(4), Offset: 0, Alignment: full word 0-1048.12$ 0-996.40 0-1111.22 k Automatic, Integer(4), Offset: 0, Alignment: full word 0-1038.15$ 0-1130.10@ 0-1131.19 0-1137.14 0-1137.27 0-1137.36 0-1144.10@ 0-1145.30 max Pure Intrinsic 0-1098.13 0-1105.13 0-1112.13 0-1147.16 nroot Reference argument, Integer(4), Offset: 0, Alignment: full word 0-1039.15$ 0-995.51 0-1125.33 0-1130.16 0-1137.48 0-1144.16 nsoil Reference argument, Integer(4), Offset: 0, Alignment: full word 0-1040.15$ 0-994.62 0-1068.16 0-1068.16 0-1077.18 0-1077.18 nsold Parameter, Integer(4) 0-1036.28$ 0-1050.17 p Automatic, Real(4), Offset: 0, Alignment: full word 0-1049.12$ part Automatic, Real(4) (1:4), Offset: 0, Alignment: full word 0-1050.12$ 0-1125.7@ 0-1137.9@ 0-1145.25 pc Reference argument, Real(4), Offset: 0, Alignment: full word 0-1051.12$ 0-995.48 0-1164.7@ q2 Reference argument, Real(4), Offset: 0, Alignment: full word 0-1052.12$ 0-994.42 0-1111.32 q2sat Reference argument, Real(4), Offset: 0, Alignment: full word 0-1053.12$ 0-995.57 0-1111.26 rc Reference argument, Real(4), Offset: 0, Alignment: full word 0-1054.12$ 0-995.45 0-1091.7@ 0-1155.7@ 0-1164.31 rcq Reference argument, Real(4), Offset: 0, Alignment: full word 0-1056.12$ 0-997.33 0-1089.7@ 0-1111.7@ 0-1112.7@ 0-1112.17 0-1155.32 rcs Reference argument, Real(4), Offset: 0, Alignment: full word 0-1057.12$ 0-997.25 0-1087.7@ 0-1097.7@ 0-1098.7@ 0-1098.17 0-1155.24 rcsoil Reference argument, Real(4), Offset: 0, Alignment: full word 0-1058.12$ 0-997.37 0-1090.7@ 0-1145.9@ 0-1145.18 0-1147.7@ 0-1147.20 0-1155.36 rct Reference argument, Real(4), Offset: 0, Alignment: full word 0-1059.12$ 0-997.29 0-1088.7@ 0-1104.7@ 0-1105.7@ 0-1105.17 0-1155.28 rd Parameter, Real(4) 0-1060.12$ 0-1080.17$ 0-1161.22 rgl Reference argument, Real(4), Offset: 0, Alignment: full word 0-1061.12$ 0-996.36 0-1096.28 rr Automatic, Real(4), Offset: 0, Alignment: full word 0-1062.12$ 0-1161.7@ 0-1164.13 0-1164.24 rsmax Reference argument, Real(4), Offset: 0, Alignment: full word 0-1063.12$ 0-996.30 0-1097.25 rsmin Reference argument, Real(4), Offset: 0, Alignment: full word 0-1055.12$ 0-995.39 0-1097.19 0-1155.12 sfcprs Reference argument, Real(4), Offset: 0, Alignment: full word 0-1064.12$ 0-994.45 0-1161.43 sfctmp Reference argument, Real(4), Offset: 0, Alignment: full word 0-1065.12$ 0-994.35 0-1104.33 0-1161.30 sigma Parameter, Real(4) 0-1066.12$ 0-1081.17$ 0-1161.16 slv Parameter, Real(4) 0-1067.12$ 0-1082.17$ 0-1162.16 slvcp Automatic, Real(4), Offset: 0, Alignment: full word 0-1073.12$ smc Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-1068.12$ 0-994.52 0-1118.13 0-1131.15 smcref Reference argument, Real(4), Offset: 0, Alignment: full word 0-1069.12$ 0-995.32 0-1118.33 0-1131.35 smcwlt Reference argument, Real(4), Offset: 0, Alignment: full word 0-1070.12$ 0-995.25 0-1118.22 0-1118.42 0-1131.24 0-1131.44 solar Reference argument, Real(4), Offset: 0, Alignment: full word 0-1071.12$ 0-994.26 0-1096.21 st1 Automatic, Real(4), Offset: 0, Alignment: full word 0-1074.12$ tair4 Automatic, Real(4), Offset: 0, Alignment: full word 0-1075.12$ topt Reference argument, Real(4), Offset: 0, Alignment: full word 0-1072.12$ 0-996.25 0-1104.28 xlai Reference argument, Real(4), Offset: 0, Alignment: full word 0-1076.12$ 0-996.43 0-1096.32 0-1155.19 zsoil Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-1077.12$ 0-994.56 0-1125.18 0-1125.27 0-1137.21 0-1137.30 0-1137.42 ** canres === End of Compilation 3 === >>>>> COMPILATION UNIT EPILOGUE SECTION <<<<< FORTRAN Summary of Diagnosed Conditions TOTAL UNRECOVERABLE SEVERE ERROR WARNING INFORMATIONAL (U) (S) (E) (W) (I) 0 0 0 0 0 0 >>>>> OPTIONS SECTION <<<<< *** Options In Effect *** == On / Off Options == CR DBG ESCAPE FULLPATH I4 INLGLUE NOLIBESSL NOLIBPOSIX OBJECT SOURCE STRICT SWAPOMP THREADED UNWIND ZEROSIZE == Options Of Integer Type == ALIAS_SIZE(65536) MAXMEM(-1) OPTIMIZE(2) SPILLSIZE(2000) STACKTEMP(0) == Options Of Character Type == 64(LARGETYPE) ALIAS(STD,NOINTPTR) ALIGN(BINDC(POWER),STRUCT(NATURAL)) ARCH(PWR6) ATTR(FULL) AUTODBL(NONE) DESCRIPTOR(V1) DIRECTIVE(IBM*,IBMT) ENUM() FLAG(I,I) FLOAT(RNDSNGL,MAF,FOLD,RNGCHK,SINGLE) FREE(F90) HALT(S) IEEE(NEAR) INTSIZE(4) LANGLVL(EXTENDED) REALSIZE(4) NOSAVE() TUNE(PWR6) UNROLL(AUTO) XREF(FULL) XLF2003(NOPOLYMORPHIC,NOBOZLITARGS,NOSTOPEXCEPT,NOVOLATILE,NOAUTOREALLOC,OLDNANINF) XLF77(LEADZERO,BLANKPAD) XLF90(NOSIGNEDZERO,NOAUTODEALLOC,OLDPAD) >>>>> SOURCE SECTION <<<<< 1171 |#line 1173 1173 | FUNCTION CSNOW (DSNOW) 1174 | 1175 | IMPLICIT NONE 1176 | 1177 |! ---------------------------------------------------------------------- 1178 |! FUNCTION CSNOW 1179 |! ---------------------------------------------------------------------- 1180 |! CALCULATE SNOW TERMAL CONDUCTIVITY 1181 |! ---------------------------------------------------------------------- 1182 | REAL C 1183 | REAL DSNOW 1184 | REAL CSNOW 1185 | REAL UNIT 1186 | 1187 | PARAMETER(UNIT = 0.11631) 1188 | 1189 |! ---------------------------------------------------------------------- 1190 |! CSNOW IN UNITS OF CAL/(CM*HR*C), RETURNED IN W/(M*C) 1191 |! BASIC VERSION IS DYACHKOVA EQUATION (1960), FOR RANGE 0.1-0.4 1192 |! ---------------------------------------------------------------------- 1193 | C=0.328*10**(2.25*DSNOW) 1194 | CSNOW=UNIT*C 1195 | 1196 |! ---------------------------------------------------------------------- 1197 |! DE VAUX EQUATION (1933), IN RANGE 0.1-0.6 1198 |! ---------------------------------------------------------------------- 1199 |! CSNOW=0.0293*(1.+100.*DSNOW**2) 1200 | 1201 |! ---------------------------------------------------------------------- 1202 |! E. ANDERSEN FROM FLERCHINGER 1203 |! ---------------------------------------------------------------------- 1204 |! CSNOW=0.021+2.51*DSNOW**2 1205 | 1206 |! ---------------------------------------------------------------------- 1207 |! END FUNCTION CSNOW 1208 |! ---------------------------------------------------------------------- 1209 | RETURN 1210 | END >>>>> ATTRIBUTE AND CROSS REFERENCE SECTION <<<<< IDENTIFIER NAME CROSS REFERENCE AND ATTRIBUTES c Automatic, Real(4), Offset: 0, Alignment: full word 0-1182.12$ 0-1193.7@ 0-1194.18 csnow Function Real(4) 0-1173.16$ 0-1184.12$ 0-1194.7@ dsnow Reference argument, Real(4), Offset: 0, Alignment: full word 0-1183.12$ 0-1173.23 0-1193.25 unit Parameter, Real(4) 0-1185.12$ 0-1187.17$ 0-1194.13 ** csnow === End of Compilation 4 === >>>>> COMPILATION UNIT EPILOGUE SECTION <<<<< FORTRAN Summary of Diagnosed Conditions TOTAL UNRECOVERABLE SEVERE ERROR WARNING INFORMATIONAL (U) (S) (E) (W) (I) 0 0 0 0 0 0 >>>>> OPTIONS SECTION <<<<< *** Options In Effect *** == On / Off Options == CR DBG ESCAPE FULLPATH I4 INLGLUE NOLIBESSL NOLIBPOSIX OBJECT SOURCE STRICT SWAPOMP THREADED UNWIND ZEROSIZE == Options Of Integer Type == ALIAS_SIZE(65536) MAXMEM(-1) OPTIMIZE(2) SPILLSIZE(2000) STACKTEMP(0) == Options Of Character Type == 64(LARGETYPE) ALIAS(STD,NOINTPTR) ALIGN(BINDC(POWER),STRUCT(NATURAL)) ARCH(PWR6) ATTR(FULL) AUTODBL(NONE) DESCRIPTOR(V1) DIRECTIVE(IBM*,IBMT) ENUM() FLAG(I,I) FLOAT(RNDSNGL,MAF,FOLD,RNGCHK,SINGLE) FREE(F90) HALT(S) IEEE(NEAR) INTSIZE(4) LANGLVL(EXTENDED) REALSIZE(4) NOSAVE() TUNE(PWR6) UNROLL(AUTO) XREF(FULL) XLF2003(NOPOLYMORPHIC,NOBOZLITARGS,NOSTOPEXCEPT,NOVOLATILE,NOAUTOREALLOC,OLDNANINF) XLF77(LEADZERO,BLANKPAD) XLF90(NOSIGNEDZERO,NOAUTODEALLOC,OLDPAD) >>>>> SOURCE SECTION <<<<< 1211 | 1212 |! -- 4. PHYSICS SUBROUTINE ==> SUBROUTINE DEVAP --------------------- 1213 | 1214 | SUBROUTINE DEVAP (EDIR1,ETP1,SMC,ZSOIL,SHDFAC,SMCMAX,BEXP, & 1215 |! FUNCTION DEVAP (ETP1,SMC,ZSOIL,SHDFAC,SMCMAX,BEXP, 1216 | DKSAT,DWSAT,SMCDRY,SMCREF,SMCWLT,FXEXP) 1217 | 1218 | IMPLICIT NONE 1219 | 1220 |! ---------------------------------------------------------------------- 1221 |! SUBROUTINE DEVAP 1222 |! FUNCTION DEVAP 1223 |! ---------------------------------------------------------------------- 1224 |! CALCULATE DIRECT SOIL EVAPORATION 1225 |! ---------------------------------------------------------------------- 1226 | REAL BEXP 1227 |! REAL DEVAP 1228 | REAL EDIR1 1229 | REAL DKSAT 1230 | REAL DWSAT 1231 | REAL ETP1 1232 | REAL FX 1233 | REAL FXEXP 1234 | REAL SHDFAC 1235 | REAL SMC 1236 | REAL SMCDRY 1237 | REAL SMCMAX 1238 | REAL ZSOIL 1239 | REAL SMCREF 1240 | REAL SMCWLT 1241 | REAL SRATIO 1242 | 1243 |! ---------------------------------------------------------------------- 1244 |! DIRECT EVAP A FUNCTION OF RELATIVE SOIL MOISTURE AVAILABILITY, LINEAR 1245 |! WHEN FXEXP=1. 1246 |! FX > 1 REPRESENTS DEMAND CONTROL 1247 |! FX < 1 REPRESENTS FLUX CONTROL 1248 |! ---------------------------------------------------------------------- 1249 | SRATIO = (SMC - SMCDRY) / (SMCMAX - SMCDRY) 1250 | IF (SRATIO .GT. 0.) THEN 1251 | FX = SRATIO**FXEXP 1252 | FX = MAX ( MIN ( FX, 1. ) ,0. ) 1253 | ELSE 1254 | FX = 0. 1255 | ENDIF 1256 | 1257 |! ---------------------------------------------------------------------- 1258 |! ALLOW FOR THE DIRECT-EVAP-REDUCING EFFECT OF SHADE 1259 |! ---------------------------------------------------------------------- 1260 |! DEVAP = FX * ( 1.0 - SHDFAC ) * ETP1 1261 | EDIR1 = FX * ( 1.0 - SHDFAC ) * ETP1 1262 | 1263 |! ---------------------------------------------------------------------- 1264 |! END SUBROUTINE DEVAP 1265 |! END FUNCTION DEVAP 1266 |! ---------------------------------------------------------------------- 1267 | RETURN 1268 | END >>>>> ATTRIBUTE AND CROSS REFERENCE SECTION <<<<< IDENTIFIER NAME CROSS REFERENCE AND ATTRIBUTES bexp Reference argument, Real(4), Offset: 0, Alignment: full word 0-1226.12$ 0-1214.60 devap Subroutine 0-1214.18$ dksat Reference argument, Real(4), Offset: 0, Alignment: full word 0-1229.12$ 0-1216.22 dwsat Reference argument, Real(4), Offset: 0, Alignment: full word 0-1230.12$ 0-1216.28 edir1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-1228.12$ 0-1214.25 0-1261.7@ etp1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-1231.12$ 0-1214.31 0-1261.39 fx Automatic, Real(4), Offset: 0, Alignment: full word 0-1232.12$ 0-1251.9@ 0-1252.9@ 0-1252.26 0-1254.9@ 0-1261.15 fxexp Reference argument, Real(4), Offset: 0, Alignment: full word 0-1233.12$ 0-1216.55 0-1251.22 max Pure Intrinsic 0-1252.14 min Pure Intrinsic 0-1252.20 shdfac Reference argument, Real(4), Offset: 0, Alignment: full word 0-1234.12$ 0-1214.46 0-1261.28 smc Reference argument, Real(4), Offset: 0, Alignment: full word 0-1235.12$ 0-1214.36 0-1249.17 smcdry Reference argument, Real(4), Offset: 0, Alignment: full word 0-1236.12$ 0-1216.34 0-1249.23 0-1249.43 smcmax Reference argument, Real(4), Offset: 0, Alignment: full word 0-1237.12$ 0-1214.53 0-1249.34 smcref Reference argument, Real(4), Offset: 0, Alignment: full word 0-1239.12$ 0-1216.41 smcwlt Reference argument, Real(4), Offset: 0, Alignment: full word 0-1240.12$ 0-1216.48 sratio Automatic, Real(4), Offset: 0, Alignment: full word 0-1241.12$ 0-1249.7@ 0-1250.11 0-1251.14 zsoil Reference argument, Real(4), Offset: 0, Alignment: full word 0-1238.12$ 0-1214.40 ** devap === End of Compilation 5 === >>>>> COMPILATION UNIT EPILOGUE SECTION <<<<< FORTRAN Summary of Diagnosed Conditions TOTAL UNRECOVERABLE SEVERE ERROR WARNING INFORMATIONAL (U) (S) (E) (W) (I) 0 0 0 0 0 0 >>>>> OPTIONS SECTION <<<<< *** Options In Effect *** == On / Off Options == CR DBG ESCAPE FULLPATH I4 INLGLUE NOLIBESSL NOLIBPOSIX OBJECT SOURCE STRICT SWAPOMP THREADED UNWIND ZEROSIZE == Options Of Integer Type == ALIAS_SIZE(65536) MAXMEM(-1) OPTIMIZE(2) SPILLSIZE(2000) STACKTEMP(0) == Options Of Character Type == 64(LARGETYPE) ALIAS(STD,NOINTPTR) ALIGN(BINDC(POWER),STRUCT(NATURAL)) ARCH(PWR6) ATTR(FULL) AUTODBL(NONE) DESCRIPTOR(V1) DIRECTIVE(IBM*,IBMT) ENUM() FLAG(I,I) FLOAT(RNDSNGL,MAF,FOLD,RNGCHK,SINGLE) FREE(F90) HALT(S) IEEE(NEAR) INTSIZE(4) LANGLVL(EXTENDED) REALSIZE(4) NOSAVE() TUNE(PWR6) UNROLL(AUTO) XREF(FULL) XLF2003(NOPOLYMORPHIC,NOBOZLITARGS,NOSTOPEXCEPT,NOVOLATILE,NOAUTOREALLOC,OLDNANINF) XLF77(LEADZERO,BLANKPAD) XLF90(NOSIGNEDZERO,NOAUTODEALLOC,OLDPAD) >>>>> SOURCE SECTION <<<<< 1269 | 1270 |! -- 5. PHYSICS SUBROUTINE ==> SUBROUTINE EVAPO --------------------- 1271 | 1272 | SUBROUTINE EVAPO (ETA1,SMC,NSOIL,CMC,ETP1,DT,ZSOIL, & 1273 | SH2O, & 1274 | SMCMAX,BEXP,PC,SMCWLT,DKSAT,DWSAT, & 1275 | SMCREF,SHDFAC,CMCMAX, & 1276 | SMCDRY,CFACTR, & 1277 | EDIR1,EC1,ET1,ETT1,SFCTMP,Q2,NROOT,RTDIS,FXEXP) 1278 | 1279 | IMPLICIT NONE 1280 | 1281 |! ---------------------------------------------------------------------- 1282 |! SUBROUTINE EVAPO 1283 |! ---------------------------------------------------------------------- 1284 |! CALCULATE SOIL MOISTURE FLUX. THE SOIL MOISTURE CONTENT (SMC - A PER 1285 |! UNIT VOLUME MEASUREMENT) IS A DEPENDENT VARIABLE THAT IS UPDATED WITH 1286 |! PROGNOSTIC EQNS. THE CANOPY MOISTURE CONTENT (CMC) IS ALSO UPDATED. 1287 |! FROZEN GROUND VERSION: NEW STATES ADDED: SH2O, AND FROZEN GROUND 1288 |! CORRECTION FACTOR, FRZFACT AND PARAMETER SLOPE. 1289 |! ---------------------------------------------------------------------- 1290 | INTEGER, PARAMETER:: NSOLD=4 1291 | 1292 | INTEGER I 1293 | INTEGER K 1294 | INTEGER NSOIL 1295 | INTEGER NROOT 1296 | 1297 | REAL BEXP 1298 | REAL CFACTR 1299 | REAL CMC 1300 | REAL CMC2MS 1301 | REAL CMCMAX 1302 |! REAL DEVAP 1303 | REAL DKSAT 1304 | REAL DT 1305 | REAL DWSAT 1306 | REAL EC1 1307 | REAL EDIR1 1308 | REAL ET1(NSOIL) 1309 | REAL ETA1 1310 | REAL ETP1 1311 | REAL ETT1 1312 | REAL FXEXP 1313 | REAL PC 1314 | REAL Q2 1315 | REAL RTDIS(NSOIL) 1316 | REAL SFCTMP 1317 | REAL SHDFAC 1318 | REAL SMC(NSOIL) 1319 | REAL SH2O(NSOIL) 1320 | REAL SMCDRY 1321 | REAL SMCMAX 1322 | REAL SMCREF 1323 | REAL SMCWLT 1324 | REAL ZSOIL(NSOIL) 1325 | 1326 |! ---------------------------------------------------------------------- 1327 |! EXECUTABLE CODE BEGINS HERE IF THE POTENTIAL EVAPOTRANSPIRATION IS 1328 |! GREATER THAN ZERO. 1329 |! ---------------------------------------------------------------------- 1330 | EDIR1 = 0. 1331 | EC1 = 0. 1332 | DO K = 1,NSOIL 1333 | ET1(K) = 0. 1334 | END DO 1335 | ETT1 = 0. 1336 | 1337 | IF (ETP1 .GT. 0.0) THEN 1338 | 1339 |! ---------------------------------------------------------------------- 1340 |! RETRIEVE DIRECT EVAPORATION FROM SOIL SURFACE. CALL THIS FUNCTION 1341 |! ONLY IF VEG COVER NOT COMPLETE. 1342 |! FROZEN GROUND VERSION: SH2O STATES REPLACE SMC STATES. 1343 |! ---------------------------------------------------------------------- 1344 | IF (SHDFAC .LT. 1.) THEN 1345 | CALL DEVAP (EDIR1,ETP1,SH2O(1),ZSOIL(1),SHDFAC,SMCMAX, & 1346 |! EDIR = DEVAP(ETP1,SH2O(1),ZSOIL(1),SHDFAC,SMCMAX, 1347 | BEXP,DKSAT,DWSAT,SMCDRY,SMCREF,SMCWLT,FXEXP) 1348 | ENDIF 1349 | 1350 |! ---------------------------------------------------------------------- 1351 |! INITIALIZE PLANT TOTAL TRANSPIRATION, RETRIEVE PLANT TRANSPIRATION, 1352 |! AND ACCUMULATE IT FOR ALL SOIL LAYERS. 1353 |! ---------------------------------------------------------------------- 1354 | IF (SHDFAC.GT.0.0) THEN 1355 | 1356 | CALL TRANSP (ET1,NSOIL,ETP1,SH2O,CMC,ZSOIL,SHDFAC,SMCWLT, & 1357 | CMCMAX,PC,CFACTR,SMCREF,SFCTMP,Q2,NROOT,RTDIS) 1358 | 1359 | DO K = 1,NSOIL 1360 | ETT1 = ETT1 + ET1(K) 1361 | END DO 1362 | 1363 |! ---------------------------------------------------------------------- 1364 |! CALCULATE CANOPY EVAPORATION. 1365 |! IF STATEMENTS TO AVOID TANGENT LINEAR PROBLEMS NEAR CMC=0.0. 1366 |! ---------------------------------------------------------------------- 1367 | IF (CMC .GT. 0.0) THEN 1368 | EC1 = SHDFAC * ( ( CMC / CMCMAX ) ** CFACTR ) * ETP1 1369 | ELSE 1370 | EC1 = 0.0 1371 | ENDIF 1372 | 1373 |! ---------------------------------------------------------------------- 1374 |! EC SHOULD BE LIMITED BY THE TOTAL AMOUNT OF AVAILABLE WATER ON THE 1375 |! CANOPY. -F.CHEN, 18-OCT-1994 1376 |! ---------------------------------------------------------------------- 1377 | CMC2MS = CMC / DT 1378 | EC1 = MIN ( CMC2MS, EC1 ) 1379 | ENDIF 1380 | ENDIF 1381 | 1382 |! ---------------------------------------------------------------------- 1383 |! TOTAL UP EVAP AND TRANSP TYPES TO OBTAIN ACTUAL EVAPOTRANSP 1384 |! ---------------------------------------------------------------------- 1385 | ETA1 = EDIR1 + ETT1 + EC1 1386 | 1387 |! ---------------------------------------------------------------------- 1388 |! END SUBROUTINE EVAPO 1389 |! ---------------------------------------------------------------------- 1390 | RETURN 1391 | END >>>>> ATTRIBUTE AND CROSS REFERENCE SECTION <<<<< IDENTIFIER NAME CROSS REFERENCE AND ATTRIBUTES bexp Reference argument, Real(4), Offset: 0, Alignment: full word 0-1297.12$ 0-1274.31 0-1347.21 cfactr Reference argument, Real(4), Offset: 0, Alignment: full word 0-1298.12$ 0-1276.31 0-1357.33 0-1368.50 cmc Reference argument, Real(4), Offset: 0, Alignment: full word 0-1299.12$ 0-1272.40 0-1356.44 0-1367.15 0-1368.32 0-1377.20 cmc2ms Automatic, Real(4), Offset: 0, Alignment: full word 0-1300.12$ 0-1377.11@ 0-1378.23 cmcmax Reference argument, Real(4), Offset: 0, Alignment: full word 0-1301.12$ 0-1275.38 0-1357.23 0-1368.38 devap External Subroutine 0-1345.14 dksat Reference argument, Real(4), Offset: 0, Alignment: full word 0-1303.12$ 0-1274.46 0-1347.26 dt Reference argument, Real(4), Offset: 0, Alignment: full word 0-1304.12$ 0-1272.49 0-1377.26 dwsat Reference argument, Real(4), Offset: 0, Alignment: full word 0-1305.12$ 0-1274.52 0-1347.32 ec1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-1306.12$ 0-1277.30 0-1331.7@ 0-1368.13@ 0-1370.13@ 0-1378.11@ 0-1378.31 0-1385.29 edir1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-1307.12$ 0-1277.24 0-1330.7@ 0-1345.21 0-1385.14 et1 Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-1308.12$ 0-1277.34 0-1333.9@ 0-1356.24 0-1360.27 eta1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-1309.12$ 0-1272.25 0-1385.7@ etp1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-1310.12$ 0-1272.44 0-1337.11 0-1345.27 0-1356.34 0-1368.61 ett1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-1311.12$ 0-1277.38 0-1335.7@ 0-1360.13@ 0-1360.20 0-1385.22 evapo Subroutine 0-1272.18$ fxexp Reference argument, Real(4), Offset: 0, Alignment: full word 0-1312.12$ 0-1277.65 0-1347.59 i Automatic, Integer(4), Offset: 0, Alignment: full word 0-1292.15$ k Automatic, Integer(4), Offset: 0, Alignment: full word 0-1293.15$ 0-1332.10@ 0-1333.13 0-1359.14@ 0-1360.31 min Pure Intrinsic 0-1378.17 nroot Reference argument, Integer(4), Offset: 0, Alignment: full word 0-1295.15$ 0-1277.53 0-1357.57 nsoil Reference argument, Integer(4), Offset: 0, Alignment: full word 0-1294.15$ 0-1272.34 0-1308.16 0-1308.16 0-1315.18 0-1315.18 0-1318.16 0-1318.16 0-1319.17 0-1319.17 0-1324.18 0-1324.18 0-1332.16 0-1356.28 0-1359.20 nsold Parameter, Integer(4) 0-1290.28$ pc Reference argument, Real(4), Offset: 0, Alignment: full word 0-1313.12$ 0-1274.36 0-1357.30 q2 Reference argument, Real(4), Offset: 0, Alignment: full word 0-1314.12$ 0-1277.50 0-1357.54 rtdis Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-1315.12$ 0-1277.59 0-1357.63 sfctmp Reference argument, Real(4), Offset: 0, Alignment: full word 0-1316.12$ 0-1277.43 0-1357.47 sh2o Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-1319.12$ 0-1273.24 0-1345.32 0-1356.39 shdfac Reference argument, Real(4), Offset: 0, Alignment: full word 0-1317.12$ 0-1275.31 0-1344.13 0-1345.49 0-1354.13 0-1356.54 0-1368.19 smc Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-1318.12$ 0-1272.30 smcdry Reference argument, Real(4), Offset: 0, Alignment: full word 0-1320.12$ 0-1276.24 0-1347.38 smcmax Reference argument, Real(4), Offset: 0, Alignment: full word 0-1321.12$ 0-1274.24 0-1345.56 smcref Reference argument, Real(4), Offset: 0, Alignment: full word 0-1322.12$ 0-1275.24 0-1347.45 0-1357.40 smcwlt Reference argument, Real(4), Offset: 0, Alignment: full word 0-1323.12$ 0-1274.39 0-1347.52 0-1356.61 transp External Subroutine 0-1356.16 zsoil Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-1324.12$ 0-1272.52 0-1345.40 0-1356.48 ** evapo === End of Compilation 6 === >>>>> COMPILATION UNIT EPILOGUE SECTION <<<<< FORTRAN Summary of Diagnosed Conditions TOTAL UNRECOVERABLE SEVERE ERROR WARNING INFORMATIONAL (U) (S) (E) (W) (I) 0 0 0 0 0 0 >>>>> OPTIONS SECTION <<<<< *** Options In Effect *** == On / Off Options == CR DBG ESCAPE FULLPATH I4 INLGLUE NOLIBESSL NOLIBPOSIX OBJECT SOURCE STRICT SWAPOMP THREADED UNWIND ZEROSIZE == Options Of Integer Type == ALIAS_SIZE(65536) MAXMEM(-1) OPTIMIZE(2) SPILLSIZE(2000) STACKTEMP(0) == Options Of Character Type == 64(LARGETYPE) ALIAS(STD,NOINTPTR) ALIGN(BINDC(POWER),STRUCT(NATURAL)) ARCH(PWR6) ATTR(FULL) AUTODBL(NONE) DESCRIPTOR(V1) DIRECTIVE(IBM*,IBMT) ENUM() FLAG(I,I) FLOAT(RNDSNGL,MAF,FOLD,RNGCHK,SINGLE) FREE(F90) HALT(S) IEEE(NEAR) INTSIZE(4) LANGLVL(EXTENDED) REALSIZE(4) NOSAVE() TUNE(PWR6) UNROLL(AUTO) XREF(FULL) XLF2003(NOPOLYMORPHIC,NOBOZLITARGS,NOSTOPEXCEPT,NOVOLATILE,NOAUTOREALLOC,OLDNANINF) XLF77(LEADZERO,BLANKPAD) XLF90(NOSIGNEDZERO,NOAUTODEALLOC,OLDPAD) >>>>> SOURCE SECTION <<<<< 1392 |#line 1394 1394 |! -- 6. PHYSICS SUBROUTINE ==> SUBROUTINE HRT ------------------------ 1395 | 1396 | SUBROUTINE HRT (RHSTS,STC,SMC,SMCMAX,NSOIL,ZSOIL,YY,ZZ1, & 1397 | TBOT,ZBOT,PSISAT,SH2O,DT,BEXP, & 1398 | F1,DF1,QUARTZ,CSOIL,AI,BI,CI) 1399 | 1400 | IMPLICIT NONE 1401 | 1402 |! ---------------------------------------------------------------------- 1403 |! SUBROUTINE HRT 1404 |! ---------------------------------------------------------------------- 1405 |! CALCULATE THE RIGHT HAND SIDE OF THE TIME TENDENCY TERM OF THE SOIL 1406 |! THERMAL DIFFUSION EQUATION. ALSO TO COMPUTE ( PREPARE ) THE MATRIX 1407 |! COEFFICIENTS FOR THE TRI-DIAGONAL MATRIX OF THE IMPLICIT TIME SCHEME. 1408 |! ---------------------------------------------------------------------- 1409 | INTEGER, PARAMETER:: NSOLD=4 1410 | 1411 | LOGICAL*1 ITAVG 1412 | 1413 | INTEGER I 1414 | INTEGER K 1415 | INTEGER NSOIL 1416 | 1417 |! ---------------------------------------------------------------------- 1418 |! DECLARE WORK ARRAYS NEEDED IN TRI-DIAGONAL IMPLICIT SOLVER 1419 |! ---------------------------------------------------------------------- 1420 | REAL AI(NSOLD) 1421 | REAL BI(NSOLD) 1422 | REAL CI(NSOLD) 1423 | 1424 |! ---------------------------------------------------------------------- 1425 |! DECLARATIONS 1426 |! ---------------------------------------------------------------------- 1427 | REAL BEXP 1428 | REAL CAIR 1429 | REAL CH2O 1430 | REAL CICE 1431 | REAL CSOIL 1432 | REAL DDZ 1433 | REAL DDZ2 1434 | REAL DENOM 1435 | REAL DF1 1436 | REAL DF1N 1437 | REAL DF1K 1438 | REAL DT 1439 | REAL DTSDZ 1440 | REAL DTSDZ2 1441 | REAL F1 1442 | REAL HCPCT 1443 | REAL PSISAT 1444 | REAL QUARTZ 1445 | REAL QTOT 1446 | REAL RHSTS(NSOIL) 1447 | REAL SSOIL 1448 | REAL SICE 1449 | REAL SMC(NSOIL) 1450 | REAL SH2O(NSOIL) 1451 | REAL SMCMAX 1452 | REAL SNKSRC 1453 | REAL STC(NSOIL) 1454 | REAL T0 1455 | REAL TAVG 1456 | REAL TBK 1457 | REAL TBK1 1458 | REAL TBOT 1459 | REAL ZBOT 1460 | REAL TSNSR 1461 | REAL TSURF 1462 | REAL YY 1463 | REAL ZSOIL(NSOIL) 1464 | REAL ZZ1 1465 | 1466 | PARAMETER(T0 = 273.15) 1467 | 1468 |! ---------------------------------------------------------------------- 1469 |! SET SPECIFIC HEAT CAPACITIES OF AIR, WATER, ICE, SOIL MINERAL 1470 |! ---------------------------------------------------------------------- 1471 | PARAMETER(CAIR = 1004.0) 1472 | PARAMETER(CH2O = 4.2E6) 1473 | PARAMETER(CICE = 2.106E6) 1474 |! NOTE: CSOIL NOW SET IN ROUTINE REDPRM AND PASSED IN 1475 |! PARAMETER(CSOIL = 1.26E6) 1476 | 1477 |! ---------------------------------------------------------------------- 1478 |! INITIALIZE LOGICAL FOR SOIL LAYER TEMPERATURE AVERAGING. 1479 |! ---------------------------------------------------------------------- 1480 | ITAVG = .TRUE. 1481 |! ITAVG = .FALSE. 1482 | 1483 |! ---------------------------------------------------------------------- 1484 |! BEGIN SECTION FOR TOP SOIL LAYER 1485 |! ---------------------------------------------------------------------- 1486 |! CALC THE HEAT CAPACITY OF THE TOP SOIL LAYER 1487 |! ---------------------------------------------------------------------- 1488 | HCPCT = SH2O(1)*CH2O + (1.0-SMCMAX)*CSOIL + (SMCMAX-SMC(1))*CAIR & 1489 | + ( SMC(1) - SH2O(1) )*CICE 1490 | 1491 |! ---------------------------------------------------------------------- 1492 |! CALC THE MATRIX COEFFICIENTS AI, BI, AND CI FOR THE TOP LAYER 1493 |! ---------------------------------------------------------------------- 1494 | DDZ = 1.0 / ( -0.5 * ZSOIL(2) ) 1495 | AI(1) = 0.0 1496 | CI(1) = (DF1 * DDZ) / (ZSOIL(1) * HCPCT) 1497 | BI(1) = -CI(1) + DF1 / (0.5 * ZSOIL(1) * ZSOIL(1)*HCPCT*ZZ1) 1498 | 1499 |! ---------------------------------------------------------------------- 1500 |! CALCULATE THE VERTICAL SOIL TEMP GRADIENT BTWN THE 1ST AND 2ND SOIL 1501 |! LAYERS. THEN CALCULATE THE SUBSURFACE HEAT FLUX. USE THE TEMP 1502 |! GRADIENT AND SUBSFC HEAT FLUX TO CALC "RIGHT-HAND SIDE TENDENCY 1503 |! TERMS", OR "RHSTS", FOR TOP SOIL LAYER. 1504 |! ---------------------------------------------------------------------- 1505 | DTSDZ = (STC(1) - STC(2)) / (-0.5 * ZSOIL(2)) 1506 | SSOIL = DF1 * (STC(1) - YY) / (0.5 * ZSOIL(1) * ZZ1) 1507 | RHSTS(1) = (DF1 * DTSDZ - SSOIL) / (ZSOIL(1) * HCPCT) 1508 | 1509 |! ---------------------------------------------------------------------- 1510 |! NEXT CAPTURE THE VERTICAL DIFFERENCE OF THE HEAT FLUX AT TOP AND 1511 |! BOTTOM OF FIRST SOIL LAYER FOR USE IN HEAT FLUX CONSTRAINT APPLIED TO 1512 |! POTENTIAL SOIL FREEZING/THAWING IN ROUTINE SNKSRC. 1513 |! ---------------------------------------------------------------------- 1514 | QTOT = SSOIL - DF1*DTSDZ 1515 | 1516 |! ---------------------------------------------------------------------- 1517 |! IF TEMPERATURE AVERAGING INVOKED (ITAVG=TRUE; ELSE SKIP): 1518 |! SET TEMP "TSURF" AT TOP OF SOIL COLUMN (FOR USE IN FREEZING SOIL 1519 |! PHYSICS LATER IN FUNCTION SUBROUTINE SNKSRC). IF SNOWPACK CONTENT IS 1520 |! ZERO, THEN TSURF EXPRESSION BELOW GIVES TSURF = SKIN TEMP. IF 1521 |! SNOWPACK IS NONZERO (HENCE ARGUMENT ZZ1=1), THEN TSURF EXPRESSION 1522 |! BELOW YIELDS SOIL COLUMN TOP TEMPERATURE UNDER SNOWPACK. THEN 1523 |! CALCULATE TEMPERATURE AT BOTTOM INTERFACE OF 1ST SOIL LAYER FOR USE 1524 |! LATER IN FUNCTION SUBROUTINE SNKSRC 1525 |! ---------------------------------------------------------------------- 1526 | IF (ITAVG) THEN 1527 | TSURF = (YY + (ZZ1-1) * STC(1)) / ZZ1 1528 | CALL TBND (STC(1),STC(2),ZSOIL,ZBOT,1,NSOIL,TBK) 1529 | ENDIF 1530 | 1531 |! ---------------------------------------------------------------------- 1532 |! CALCULATE FROZEN WATER CONTENT IN 1ST SOIL LAYER. 1533 |! ---------------------------------------------------------------------- 1534 | SICE = SMC(1) - SH2O(1) 1535 | 1536 |! ---------------------------------------------------------------------- 1537 |! IF FROZEN WATER PRESENT OR ANY OF LAYER-1 MID-POINT OR BOUNDING 1538 |! INTERFACE TEMPERATURES BELOW FREEZING, THEN CALL SNKSRC TO 1539 |! COMPUTE HEAT SOURCE/SINK (AND CHANGE IN FROZEN WATER CONTENT) 1540 |! DUE TO POSSIBLE SOIL WATER PHASE CHANGE 1541 |! ---------------------------------------------------------------------- 1542 | IF ( (SICE .GT. 0.) .OR. (TSURF .LT. T0) .OR. & 1543 | (STC(1) .LT. T0) .OR. (TBK .LT. T0) ) THEN 1544 | 1545 | IF (ITAVG) THEN 1546 | CALL TMPAVG(TAVG,TSURF,STC(1),TBK,ZSOIL,NSOIL,1) 1547 | ELSE 1548 | TAVG = STC(1) 1549 | ENDIF 1550 | TSNSR = SNKSRC (TAVG,SMC(1),SH2O(1), & 1551 | ZSOIL,NSOIL,SMCMAX,PSISAT,BEXP,DT,1,QTOT) 1552 | 1553 | RHSTS(1) = RHSTS(1) - TSNSR / ( ZSOIL(1) * HCPCT ) 1554 | ENDIF 1555 | 1556 |! ---------------------------------------------------------------------- 1557 |! THIS ENDS SECTION FOR TOP SOIL LAYER. 1558 |! ---------------------------------------------------------------------- 1559 |! INITIALIZE DDZ2 1560 |! ---------------------------------------------------------------------- 1561 | DDZ2 = 0.0 1562 | 1563 |! ---------------------------------------------------------------------- 1564 |! LOOP THRU THE REMAINING SOIL LAYERS, REPEATING THE ABOVE PROCESS 1565 |! (EXCEPT SUBSFC OR "GROUND" HEAT FLUX NOT REPEATED IN LOWER LAYERS) 1566 |! ---------------------------------------------------------------------- 1567 | DF1K = DF1 1568 | DO K = 2,NSOIL 1569 | 1570 |! ---------------------------------------------------------------------- 1571 |! CALCULATE HEAT CAPACITY FOR THIS SOIL LAYER. 1572 |! ---------------------------------------------------------------------- 1573 | HCPCT = SH2O(K)*CH2O +(1.0-SMCMAX)*CSOIL +(SMCMAX-SMC(K))*CAIR & 1574 | + ( SMC(K) - SH2O(K) )*CICE 1575 | 1576 | IF (K .NE. NSOIL) THEN 1577 |! ---------------------------------------------------------------------- 1578 |! THIS SECTION FOR LAYER 2 OR GREATER, BUT NOT LAST LAYER. 1579 |! ---------------------------------------------------------------------- 1580 |! CALCULATE THERMAL DIFFUSIVITY FOR THIS LAYER. 1581 |! ---------------------------------------------------------------------- 1582 | CALL TDFCND (DF1N,SMC(K),QUARTZ,SMCMAX,SH2O(K)) 1583 | 1584 |! ---------------------------------------------------------------------- 1585 |! CALC THE VERTICAL SOIL TEMP GRADIENT THRU THIS LAYER 1586 |! ---------------------------------------------------------------------- 1587 | DENOM = 0.5 * ( ZSOIL(K-1) - ZSOIL(K+1) ) 1588 | DTSDZ2 = ( STC(K) - STC(K+1) ) / DENOM 1589 | 1590 |! ---------------------------------------------------------------------- 1591 |! CALC THE MATRIX COEF, CI, AFTER CALC'NG ITS PARTIAL PRODUCT 1592 |! ---------------------------------------------------------------------- 1593 | DDZ2 = 2. / (ZSOIL(K-1) - ZSOIL(K+1)) 1594 | CI(K) = -DF1N * DDZ2 / ((ZSOIL(K-1) - ZSOIL(K)) * HCPCT) 1595 | 1596 |! ---------------------------------------------------------------------- 1597 |! IF TEMPERATURE AVERAGING INVOKED (ITAVG=TRUE; ELSE SKIP): CALCULATE 1598 |! TEMP AT BOTTOM OF LAYER. 1599 |! ---------------------------------------------------------------------- 1600 | IF (ITAVG) THEN 1601 | CALL TBND (STC(K),STC(K+1),ZSOIL,ZBOT,K,NSOIL,TBK1) 1602 | ENDIF 1603 | ELSE 1604 | 1605 |! ---------------------------------------------------------------------- 1606 |! SPECIAL CASE OF BOTTOM SOIL LAYER: CALCULATE THERMAL DIFFUSIVITY FOR 1607 |! BOTTOM LAYER. 1608 |! ---------------------------------------------------------------------- 1609 | CALL TDFCND (DF1N,SMC(K),QUARTZ,SMCMAX,SH2O(K)) 1610 | 1611 |! ---------------------------------------------------------------------- 1612 |! CALC THE VERTICAL SOIL TEMP GRADIENT THRU BOTTOM LAYER. 1613 |! ---------------------------------------------------------------------- 1614 | DENOM = .5 * (ZSOIL(K-1) + ZSOIL(K)) - ZBOT 1615 | DTSDZ2 = (STC(K)-TBOT) / DENOM 1616 | 1617 |! ---------------------------------------------------------------------- 1618 |! SET MATRIX COEF, CI TO ZERO IF BOTTOM LAYER. 1619 |! ---------------------------------------------------------------------- 1620 | CI(K) = 0. 1621 | 1622 |! ---------------------------------------------------------------------- 1623 |! IF TEMPERATURE AVERAGING INVOKED (ITAVG=TRUE; ELSE SKIP): CALCULATE 1624 |! TEMP AT BOTTOM OF LAST LAYER. 1625 |! ---------------------------------------------------------------------- 1626 | IF (ITAVG) THEN 1627 | CALL TBND (STC(K),TBOT,ZSOIL,ZBOT,K,NSOIL,TBK1) 1628 | ENDIF 1629 | 1630 | ENDIF 1631 |! ---------------------------------------------------------------------- 1632 |! THIS ENDS SPECIAL LOOP FOR BOTTOM LAYER. 1633 |! ---------------------------------------------------------------------- 1634 |! CALCULATE RHSTS FOR THIS LAYER AFTER CALC'NG A PARTIAL PRODUCT. 1635 |! ---------------------------------------------------------------------- 1636 | DENOM = ( ZSOIL(K) - ZSOIL(K-1) ) * HCPCT 1637 | RHSTS(K) = ( DF1N * DTSDZ2 - DF1K * DTSDZ ) / DENOM 1638 | QTOT = -1.0*DENOM*RHSTS(K) 1639 | SICE = SMC(K) - SH2O(K) 1640 | 1641 | IF ( (SICE .GT. 0.) .OR. (TBK .LT. T0) .OR. & 1642 | (STC(K) .LT. T0) .OR. (TBK1 .LT. T0) ) THEN 1643 | 1644 | IF (ITAVG) THEN 1645 | CALL TMPAVG(TAVG,TBK,STC(K),TBK1,ZSOIL,NSOIL,K) 1646 | ELSE 1647 | TAVG = STC(K) 1648 | ENDIF 1649 | TSNSR = SNKSRC(TAVG,SMC(K),SH2O(K),ZSOIL,NSOIL, & 1650 | SMCMAX,PSISAT,BEXP,DT,K,QTOT) 1651 | RHSTS(K) = RHSTS(K) - TSNSR / DENOM 1652 | ENDIF 1653 | 1654 |! ---------------------------------------------------------------------- 1655 |! CALC MATRIX COEFS, AI, AND BI FOR THIS LAYER. 1656 |! ---------------------------------------------------------------------- 1657 | AI(K) = - DF1 * DDZ / ((ZSOIL(K-1) - ZSOIL(K)) * HCPCT) 1658 | BI(K) = -(AI(K) + CI(K)) 1659 | 1660 |! ---------------------------------------------------------------------- 1661 |! RESET VALUES OF DF1, DTSDZ, DDZ, AND TBK FOR LOOP TO NEXT SOIL LAYER. 1662 |! ---------------------------------------------------------------------- 1663 | TBK = TBK1 1664 | DF1K = DF1N 1665 | DTSDZ = DTSDZ2 1666 | DDZ = DDZ2 1667 | END DO 1668 | 1669 |! ---------------------------------------------------------------------- 1670 |! END SUBROUTINE HRT 1671 |! ---------------------------------------------------------------------- 1672 | RETURN 1673 | END >>>>> ATTRIBUTE AND CROSS REFERENCE SECTION <<<<< IDENTIFIER NAME CROSS REFERENCE AND ATTRIBUTES ai Reference argument, Real(4) (1:4), Offset: 0, Alignment: full word 0-1420.12$ 0-1398.42 0-1495.7@ 0-1657.9@ 0-1658.19 bexp Reference argument, Real(4), Offset: 0, Alignment: full word 0-1427.12$ 0-1397.47 0-1551.36 0-1650.39 bi Reference argument, Real(4) (1:4), Offset: 0, Alignment: full word 0-1421.12$ 0-1398.45 0-1497.7@ 0-1658.9@ cair Parameter, Real(4) 0-1428.12$ 0-1471.17$ 0-1488.67 0-1573.67 ch2o Parameter, Real(4) 0-1429.12$ 0-1472.17$ 0-1488.23 0-1573.25 ci Reference argument, Real(4) (1:4), Offset: 0, Alignment: full word 0-1422.12$ 0-1398.48 0-1496.7@ 0-1497.16 0-1594.11@ 0-1620.11@ 0-1658.27 cice Parameter, Real(4) 0-1430.12$ 0-1473.17$ 0-1489.37 0-1574.37 csoil Reference argument, Real(4), Offset: 0, Alignment: full word 0-1431.12$ 0-1398.36 0-1488.43 0-1573.44 ddz Automatic, Real(4), Offset: 0, Alignment: full word 0-1432.12$ 0-1494.7@ 0-1496.22 0-1657.25 0-1666.9@ ddz2 Automatic, Real(4), Offset: 0, Alignment: full word 0-1433.12$ 0-1561.7@ 0-1593.11@ 0-1594.27 0-1666.17 denom Automatic, Real(4), Offset: 0, Alignment: full word 0-1434.12$ 0-1587.11@ 0-1588.44 0-1614.11@ 0-1615.36 0-1636.9@ 0-1637.55 0-1638.21 0-1651.41 df1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-1435.12$ 0-1398.25 0-1496.16 0-1497.24 0-1506.15 0-1507.19 0-1514.22 0-1567.14 0-1657.19 df1k Automatic, Real(4), Offset: 0, Alignment: full word 0-1437.12$ 0-1567.7@ 0-1637.38 0-1664.9@ df1n Automatic, Real(4), Offset: 0, Alignment: full word 0-1436.12$ 0-1582.24 0-1594.20 0-1609.24 0-1637.22 0-1664.17 dt Reference argument, Real(4), Offset: 0, Alignment: full word 0-1438.12$ 0-1397.44 0-1551.41 0-1650.44 dtsdz Automatic, Real(4), Offset: 0, Alignment: full word 0-1439.12$ 0-1505.7@ 0-1507.25 0-1514.26 0-1637.45 0-1665.9@ dtsdz2 Automatic, Real(4), Offset: 0, Alignment: full word 0-1440.12$ 0-1588.11@ 0-1615.11@ 0-1637.29 0-1665.17 f1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-1441.12$ 0-1398.22 hcpct Automatic, Real(4), Offset: 0, Alignment: full word 0-1442.12$ 0-1488.7@ 0-1496.41 0-1497.57 0-1507.54 0-1553.52 0-1573.9@ 0-1594.61 0-1636.45 0-1657.58 hrt Subroutine 0-1396.18$ i Automatic, Integer(4), Offset: 0, Alignment: full word 0-1413.15$ itavg Automatic, Logical(1), Offset: 0, Alignment: byte 0-1411.17$ 0-1480.7@ 0-1526.11 0-1545.13 0-1600.15 0-1626.15 0-1644.15 k Automatic, Integer(4), Offset: 0, Alignment: full word 0-1414.15$ 0-1568.10@ 0-1573.22 0-1573.63 0-1574.22 0-1574.32 0-1576.13 0-1582.33 0-1582.55 0-1587.33 0-1587.46 0-1588.26 0-1588.35 0-1593.30 0-1593.43 0-1594.14 0-1594.42 0-1594.55 0-1601.28 0-1601.35 0-1601.51 0-1609.33 0-1609.55 0-1614.31 0-1614.44 0-1615.25 0-1620.14 0-1627.28 0-1627.47 0-1636.25 0-1636.36 0-1637.15 0-1638.33 0-1639.20 0-1639.30 0-1642.16 0-1645.38 0-1645.58 0-1647.24 0-1649.35 0-1649.43 0-1650.47 0-1651.17 0-1651.28 0-1657.12 0-1657.39 0-1657.52 0-1658.12 0-1658.22 0-1658.30 nsoil Reference argument, Integer(4), Offset: 0, Alignment: full word 0-1415.15$ 0-1396.44 0-1446.18 0-1446.18 0-1449.16 0-1449.16 0-1450.17 0-1450.17 0-1453.16 0-1453.16 0-1463.18 0-1463.18 0-1528.47 0-1546.51 0-1551.16 0-1568.16 0-1576.20 0-1601.53 0-1627.49 0-1645.52 0-1649.52 nsold Parameter, Integer(4) 0-1409.28$ 0-1420.15 0-1421.15 0-1422.15 psisat Reference argument, Real(4), Offset: 0, Alignment: full word 0-1443.12$ 0-1397.32 0-1551.29 0-1650.32 qtot Automatic, Real(4), Offset: 0, Alignment: full word 0-1445.12$ 0-1514.7@ 0-1551.46 0-1638.9@ 0-1650.49 quartz Reference argument, Real(4), Offset: 0, Alignment: full word 0-1444.12$ 0-1398.29 0-1582.36 0-1609.36 rhsts Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-1446.12$ 0-1396.23 0-1507.7@ 0-1553.9@ 0-1553.20 0-1637.9@ 0-1638.27 0-1651.11@ 0-1651.22 sh2o Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-1450.12$ 0-1397.39 0-1488.15 0-1489.27 0-1534.23 0-1550.37 0-1573.17 0-1574.27 0-1582.50 0-1609.50 0-1639.25 0-1649.38 sice Automatic, Real(4), Offset: 0, Alignment: full word 0-1448.12$ 0-1534.7@ 0-1542.13 0-1639.9@ 0-1641.15 smc Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-1449.12$ 0-1396.33 0-1488.59 0-1489.18 0-1534.14 0-1550.30 0-1573.59 0-1574.18 0-1582.29 0-1609.29 0-1639.16 0-1649.31 smcmax Reference argument, Real(4), Offset: 0, Alignment: full word 0-1451.12$ 0-1396.37 0-1488.35 0-1488.52 0-1551.22 0-1573.36 0-1573.52 0-1582.43 0-1609.43 0-1650.25 snksrc External Function Real(4) 0-1452.12$ 0-1550.17 0-1649.19 ssoil Automatic, Real(4), Offset: 0, Alignment: full word 0-1447.12$ 0-1506.7@ 0-1507.33 0-1514.14 stc Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-1453.12$ 0-1396.29 0-1505.16 0-1505.25 0-1506.22 0-1527.33 0-1528.20 0-1528.27 0-1543.12 0-1546.34 0-1548.18 0-1588.22 0-1588.31 0-1601.24 0-1601.31 0-1615.21 0-1627.24 0-1642.12 0-1645.34 0-1647.20 t0 Parameter, Real(4) 0-1454.12$ 0-1466.17$ 0-1542.46 0-1543.24 0-1543.45 0-1641.44 0-1642.24 0-1642.44 tavg Automatic, Real(4), Offset: 0, Alignment: full word 0-1455.12$ 0-1546.23 0-1548.11@ 0-1550.25 0-1645.25 0-1647.13@ 0-1649.26 tbk Automatic, Real(4), Offset: 0, Alignment: full word 0-1456.12$ 0-1528.53 0-1543.34 0-1546.41 0-1641.35 0-1645.30 0-1663.9@ tbk1 Automatic, Real(4), Offset: 0, Alignment: full word 0-1457.12$ 0-1601.59 0-1627.55 0-1642.34 0-1645.41 0-1663.17 tbnd External Subroutine 0-1528.14 0-1601.18 0-1627.18 tbot Reference argument, Real(4), Offset: 0, Alignment: full word 0-1458.12$ 0-1397.22 0-1615.28 0-1627.31 tdfcnd External Subroutine 0-1582.16 0-1609.16 tmpavg External Subroutine 0-1546.16 0-1645.18 tsnsr Automatic, Real(4), Offset: 0, Alignment: full word 0-1460.12$ 0-1550.9@ 0-1553.31 0-1649.11@ 0-1651.33 tsurf Automatic, Real(4), Offset: 0, Alignment: full word 0-1461.12$ 0-1527.9@ 0-1542.35 0-1546.28 yy Reference argument, Real(4), Offset: 0, Alignment: full word 0-1462.12$ 0-1396.56 0-1506.31 0-1527.18 zbot Reference argument, Real(4), Offset: 0, Alignment: full word 0-1459.12$ 0-1397.27 0-1528.40 0-1601.46 0-1614.50 0-1627.42 zsoil Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-1463.12$ 0-1396.50 0-1494.28 0-1496.30 0-1497.37 0-1497.48 0-1505.43 0-1506.44 0-1507.43 0-1528.34 0-1546.45 0-1551.10 0-1553.41 0-1587.27 0-1587.40 0-1593.24 0-1593.37 0-1594.36 0-1594.49 0-1601.40 0-1614.25 0-1614.38 0-1627.36 0-1636.19 0-1636.30 0-1645.46 0-1649.46 0-1657.33 0-1657.46 zz1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-1464.12$ 0-1396.59 0-1497.63 0-1506.55 0-1527.24 0-1527.43 ** hrt === End of Compilation 7 === >>>>> COMPILATION UNIT EPILOGUE SECTION <<<<< FORTRAN Summary of Diagnosed Conditions TOTAL UNRECOVERABLE SEVERE ERROR WARNING INFORMATIONAL (U) (S) (E) (W) (I) 0 0 0 0 0 0 >>>>> OPTIONS SECTION <<<<< *** Options In Effect *** == On / Off Options == CR DBG ESCAPE FULLPATH I4 INLGLUE NOLIBESSL NOLIBPOSIX OBJECT SOURCE STRICT SWAPOMP THREADED UNWIND ZEROSIZE == Options Of Integer Type == ALIAS_SIZE(65536) MAXMEM(-1) OPTIMIZE(2) SPILLSIZE(2000) STACKTEMP(0) == Options Of Character Type == 64(LARGETYPE) ALIAS(STD,NOINTPTR) ALIGN(BINDC(POWER),STRUCT(NATURAL)) ARCH(PWR6) ATTR(FULL) AUTODBL(NONE) DESCRIPTOR(V1) DIRECTIVE(IBM*,IBMT) ENUM() FLAG(I,I) FLOAT(RNDSNGL,MAF,FOLD,RNGCHK,SINGLE) FREE(F90) HALT(S) IEEE(NEAR) INTSIZE(4) LANGLVL(EXTENDED) REALSIZE(4) NOSAVE() TUNE(PWR6) UNROLL(AUTO) XREF(FULL) XLF2003(NOPOLYMORPHIC,NOBOZLITARGS,NOSTOPEXCEPT,NOVOLATILE,NOAUTOREALLOC,OLDNANINF) XLF77(LEADZERO,BLANKPAD) XLF90(NOSIGNEDZERO,NOAUTODEALLOC,OLDPAD) >>>>> SOURCE SECTION <<<<< 1674 | 1675 |! -- 7. PHYSICS SUBROUTINE ==> SUBROUTINE HRTICE ---------------------- 1676 | 1677 | SUBROUTINE HRTICE (RHSTS,STC,NSOIL,ZSOIL,YY,ZZ1,DF1,AI,BI,CI) 1678 | 1679 | IMPLICIT NONE 1680 | 1681 |! ---------------------------------------------------------------------- 1682 |! SUBROUTINE HRTICE 1683 |! ---------------------------------------------------------------------- 1684 |! CALCULATE THE RIGHT HAND SIDE OF THE TIME TENDENCY TERM OF THE SOIL 1685 |! THERMAL DIFFUSION EQUATION FOR SEA-ICE (ICE = 1) OR GLACIAL-ICE (ICE). 1686 |! COMPUTE (PREPARE) THE MATRIX COEFFICIENTS FOR THE TRI-DIAGONAL MATRIX 1687 |! OF THE IMPLICIT TIME SCHEME. 1688 |! ---------------------------------------------------------------------- 1689 | INTEGER, PARAMETER:: NSOLD=4 1690 | 1691 | INTEGER K 1692 | INTEGER NSOIL 1693 | 1694 | REAL AI(NSOLD) 1695 | REAL BI(NSOLD) 1696 | REAL CI(NSOLD) 1697 | 1698 | REAL DDZ 1699 | REAL DDZ2 1700 | REAL DENOM 1701 | REAL DF1 1702 | REAL DTSDZ 1703 | REAL DTSDZ2 1704 | REAL HCPCT 1705 | REAL RHSTS(NSOIL) 1706 | REAL SSOIL 1707 | REAL STC(NSOIL) 1708 | REAL YY 1709 | REAL ZBOT 1710 | REAL ZSOIL(NSOIL) 1711 | REAL ZZ1 1712 | 1713 | REAL :: TBOT=271.16 1714 | 1715 |! ---------------------------------------------------------------------- 1716 |! SET A NOMINAL UNIVERSAL VALUE OF THE SEA-ICE SPECIFIC HEAT CAPACITY, 1717 |! HCPCT = 1880.0*917.0 = 1.72396E+6 (SOURCE: FEI CHEN, 1995) 1718 |! ---------------------------------------------------------------------- 1719 | PARAMETER(HCPCT = 1.72396E+6) 1720 | 1721 |! ---------------------------------------------------------------------- 1722 |! THE INPUT ARGUMENT DF1 IS A UNIVERSALLY CONSTANT VALUE OF SEA-ICE 1723 |! THERMAL DIFFUSIVITY, SET IN ROUTINE SNOPAC AS DF1 = 2.2. 1724 |! ---------------------------------------------------------------------- 1725 |! SET ICE PACK DEPTH. USE TBOT AS ICE PACK LOWER BOUNDARY TEMPERATURE 1726 |! (THAT OF UNFROZEN SEA WATER AT BOTTOM OF SEA ICE PACK). ASSUME ICE 1727 |! PACK IS OF N=NSOIL LAYERS SPANNING A UNIFORM CONSTANT ICE PACK 1728 |! THICKNESS AS DEFINED BY ZSOIL(NSOIL) IN ROUTINE SFLX. 1729 |! ---------------------------------------------------------------------- 1730 | ZBOT = ZSOIL(NSOIL) 1731 | 1732 |! ---------------------------------------------------------------------- 1733 |! CALC THE MATRIX COEFFICIENTS AI, BI, AND CI FOR THE TOP LAYER 1734 |! ---------------------------------------------------------------------- 1735 | DDZ = 1.0 / ( -0.5 * ZSOIL(2) ) 1736 | AI(1) = 0.0 1737 | CI(1) = (DF1 * DDZ) / (ZSOIL(1) * HCPCT) 1738 | BI(1) = -CI(1) + DF1/(0.5 * ZSOIL(1) * ZSOIL(1) * HCPCT * ZZ1) 1739 | 1740 |! ---------------------------------------------------------------------- 1741 |! CALC THE VERTICAL SOIL TEMP GRADIENT BTWN THE TOP AND 2ND SOIL LAYERS. 1742 |! RECALC/ADJUST THE SOIL HEAT FLUX. USE THE GRADIENT AND FLUX TO CALC 1743 |! RHSTS FOR THE TOP SOIL LAYER. 1744 |! ---------------------------------------------------------------------- 1745 | DTSDZ = ( STC(1) - STC(2) ) / ( -0.5 * ZSOIL(2) ) 1746 | SSOIL = DF1 * ( STC(1) - YY ) / ( 0.5 * ZSOIL(1) * ZZ1 ) 1747 | RHSTS(1) = ( DF1 * DTSDZ - SSOIL ) / ( ZSOIL(1) * HCPCT ) 1748 | 1749 |! ---------------------------------------------------------------------- 1750 |! INITIALIZE DDZ2 1751 |! ---------------------------------------------------------------------- 1752 | DDZ2 = 0.0 1753 | 1754 |! ---------------------------------------------------------------------- 1755 |! LOOP THRU THE REMAINING SOIL LAYERS, REPEATING THE ABOVE PROCESS 1756 |! ---------------------------------------------------------------------- 1757 | DO K = 2,NSOIL 1758 | IF (K .NE. NSOIL) THEN 1759 | 1760 |! ---------------------------------------------------------------------- 1761 |! CALC THE VERTICAL SOIL TEMP GRADIENT THRU THIS LAYER. 1762 |! ---------------------------------------------------------------------- 1763 | DENOM = 0.5 * ( ZSOIL(K-1) - ZSOIL(K+1) ) 1764 | DTSDZ2 = ( STC(K) - STC(K+1) ) / DENOM 1765 | 1766 |! ---------------------------------------------------------------------- 1767 |! CALC THE MATRIX COEF, CI, AFTER CALC'NG ITS PARTIAL PRODUCT. 1768 |! ---------------------------------------------------------------------- 1769 | DDZ2 = 2. / (ZSOIL(K-1) - ZSOIL(K+1)) 1770 | CI(K) = -DF1 * DDZ2 / ((ZSOIL(K-1) - ZSOIL(K)) * HCPCT) 1771 | ELSE 1772 | 1773 |! ---------------------------------------------------------------------- 1774 |! CALC THE VERTICAL SOIL TEMP GRADIENT THRU THE LOWEST LAYER. 1775 |! ---------------------------------------------------------------------- 1776 | DTSDZ2 = (STC(K)-TBOT)/(.5 * (ZSOIL(K-1) + ZSOIL(K))-ZBOT) 1777 | 1778 |! ---------------------------------------------------------------------- 1779 |! SET MATRIX COEF, CI TO ZERO. 1780 |! ---------------------------------------------------------------------- 1781 | CI(K) = 0. 1782 | ENDIF 1783 | 1784 |! ---------------------------------------------------------------------- 1785 |! CALC RHSTS FOR THIS LAYER AFTER CALC'NG A PARTIAL PRODUCT. 1786 |! ---------------------------------------------------------------------- 1787 | DENOM = ( ZSOIL(K) - ZSOIL(K-1) ) * HCPCT 1788 | RHSTS(K) = ( DF1 * DTSDZ2 - DF1 * DTSDZ ) / DENOM 1789 | 1790 |! ---------------------------------------------------------------------- 1791 |! CALC MATRIX COEFS, AI, AND BI FOR THIS LAYER. 1792 |! ---------------------------------------------------------------------- 1793 | AI(K) = - DF1 * DDZ / ((ZSOIL(K-1) - ZSOIL(K)) * HCPCT) 1794 | BI(K) = -(AI(K) + CI(K)) 1795 | 1796 |! ---------------------------------------------------------------------- 1797 |! RESET VALUES OF DTSDZ AND DDZ FOR LOOP TO NEXT SOIL LYR. 1798 |! ---------------------------------------------------------------------- 1799 | DTSDZ = DTSDZ2 1800 | DDZ = DDZ2 1801 | 1802 | END DO 1803 |! ---------------------------------------------------------------------- 1804 |! END SUBROUTINE HRTICE 1805 |! ---------------------------------------------------------------------- 1806 | RETURN 1807 | END >>>>> ATTRIBUTE AND CROSS REFERENCE SECTION <<<<< IDENTIFIER NAME CROSS REFERENCE AND ATTRIBUTES ai Reference argument, Real(4) (1:4), Offset: 0, Alignment: full word 0-1694.12$ 0-1677.59 0-1736.7@ 0-1793.9@ 0-1794.19 bi Reference argument, Real(4) (1:4), Offset: 0, Alignment: full word 0-1695.12$ 0-1677.62 0-1738.7@ 0-1794.9@ ci Reference argument, Real(4) (1:4), Offset: 0, Alignment: full word 0-1696.12$ 0-1677.65 0-1737.7@ 0-1738.16 0-1770.11@ 0-1781.11@ 0-1794.27 ddz Automatic, Real(4), Offset: 0, Alignment: full word 0-1698.12$ 0-1735.7@ 0-1737.22 0-1793.25 0-1800.9@ ddz2 Automatic, Real(4), Offset: 0, Alignment: full word 0-1699.12$ 0-1752.7@ 0-1769.11@ 0-1770.26 0-1800.17 denom Automatic, Real(4), Offset: 0, Alignment: full word 0-1700.12$ 0-1763.11@ 0-1764.44 0-1787.9@ 0-1788.53 df1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-1701.12$ 0-1677.55 0-1737.16 0-1738.24 0-1746.15 0-1747.20 0-1770.20 0-1788.22 0-1788.37 0-1793.19 dtsdz Automatic, Real(4), Offset: 0, Alignment: full word 0-1702.12$ 0-1745.7@ 0-1747.26 0-1788.43 0-1799.9@ dtsdz2 Automatic, Real(4), Offset: 0, Alignment: full word 0-1703.12$ 0-1764.11@ 0-1776.11@ 0-1788.28 0-1799.17 hcpct Parameter, Real(4) 0-1704.12$ 0-1719.17$ 0-1737.41 0-1738.57 0-1747.57 0-1770.60 0-1787.45 0-1793.58 hrtice Subroutine 0-1677.18$ k Automatic, Integer(4), Offset: 0, Alignment: full word 0-1691.15$ 0-1757.10@ 0-1758.13 0-1763.33 0-1763.46 0-1764.26 0-1764.35 0-1769.30 0-1769.43 0-1770.14 0-1770.41 0-1770.54 0-1776.25 0-1776.47 0-1776.60 0-1781.14 0-1787.25 0-1787.36 0-1788.15 0-1793.12 0-1793.39 0-1793.52 0-1794.12 0-1794.22 0-1794.30 nsoil Reference argument, Integer(4), Offset: 0, Alignment: full word 0-1692.15$ 0-1677.36 0-1705.18 0-1705.18 0-1707.16 0-1707.16 0-1710.18 0-1710.18 0-1730.22 0-1757.16 0-1758.20 nsold Parameter, Integer(4) 0-1689.28$ 0-1694.15 0-1695.15 0-1696.15 rhsts Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-1705.12$ 0-1677.26 0-1747.7@ 0-1788.9@ ssoil Automatic, Real(4), Offset: 0, Alignment: full word 0-1706.12$ 0-1746.7@ 0-1747.34 stc Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-1707.12$ 0-1677.32 0-1745.17 0-1745.26 0-1746.23 0-1764.22 0-1764.31 0-1776.21 tbot Static, Real(4), Offset: 0, Alignment: full word 0-1713.15& 0-1776.28 yy Reference argument, Real(4), Offset: 0, Alignment: full word 0-1708.12$ 0-1677.48 0-1746.32 zbot Automatic, Real(4), Offset: 0, Alignment: full word 0-1709.12$ 0-1730.9@ 0-1776.64 zsoil Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-1710.12$ 0-1677.42 0-1730.16 0-1735.28 0-1737.30 0-1738.35 0-1738.46 0-1745.46 0-1746.47 0-1747.46 0-1763.27 0-1763.40 0-1769.24 0-1769.37 0-1770.35 0-1770.48 0-1776.41 0-1776.54 0-1787.19 0-1787.30 0-1793.33 0-1793.46 zz1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-1711.12$ 0-1677.51 0-1738.65 0-1746.58 ** hrtice === End of Compilation 8 === >>>>> COMPILATION UNIT EPILOGUE SECTION <<<<< FORTRAN Summary of Diagnosed Conditions TOTAL UNRECOVERABLE SEVERE ERROR WARNING INFORMATIONAL (U) (S) (E) (W) (I) 0 0 0 0 0 0 >>>>> OPTIONS SECTION <<<<< *** Options In Effect *** == On / Off Options == CR DBG ESCAPE FULLPATH I4 INLGLUE NOLIBESSL NOLIBPOSIX OBJECT SOURCE STRICT SWAPOMP THREADED UNWIND ZEROSIZE == Options Of Integer Type == ALIAS_SIZE(65536) MAXMEM(-1) OPTIMIZE(2) SPILLSIZE(2000) STACKTEMP(0) == Options Of Character Type == 64(LARGETYPE) ALIAS(STD,NOINTPTR) ALIGN(BINDC(POWER),STRUCT(NATURAL)) ARCH(PWR6) ATTR(FULL) AUTODBL(NONE) DESCRIPTOR(V1) DIRECTIVE(IBM*,IBMT) ENUM() FLAG(I,I) FLOAT(RNDSNGL,MAF,FOLD,RNGCHK,SINGLE) FREE(F90) HALT(S) IEEE(NEAR) INTSIZE(4) LANGLVL(EXTENDED) REALSIZE(4) NOSAVE() TUNE(PWR6) UNROLL(AUTO) XREF(FULL) XLF2003(NOPOLYMORPHIC,NOBOZLITARGS,NOSTOPEXCEPT,NOVOLATILE,NOAUTOREALLOC,OLDNANINF) XLF77(LEADZERO,BLANKPAD) XLF90(NOSIGNEDZERO,NOAUTODEALLOC,OLDPAD) >>>>> SOURCE SECTION <<<<< 1808 | 1809 |! -- 8. PHYSICS SUBROUTINE ==> SUBROUTINE HSTEP ---------------------- 1810 | 1811 | SUBROUTINE HSTEP (STCOUT,STCIN,RHSTS,DT,NSOIL,AI,BI,CI) 1812 | 1813 | IMPLICIT NONE 1814 | 1815 |! ---------------------------------------------------------------------- 1816 |! SUBROUTINE HSTEP 1817 |! ---------------------------------------------------------------------- 1818 |! CALCULATE/UPDATE THE SOIL TEMPERATURE FIELD. 1819 |! ---------------------------------------------------------------------- 1820 | INTEGER, PARAMETER:: NSOLD=4 1821 | 1822 | INTEGER K 1823 | INTEGER NSOIL 1824 | 1825 | REAL AI(NSOLD) 1826 | REAL BI(NSOLD) 1827 | REAL CI(NSOLD) 1828 | REAL CIin(NSOLD) 1829 | REAL DT 1830 | REAL RHSTS(NSOIL) 1831 | REAL RHSTSin(NSOIL) 1832 | REAL STCIN(NSOIL) 1833 | REAL STCOUT(NSOIL) 1834 | 1835 |! ---------------------------------------------------------------------- 1836 |! CREATE FINITE DIFFERENCE VALUES FOR USE IN ROSR12 ROUTINE 1837 |! ---------------------------------------------------------------------- 1838 | DO K = 1,NSOIL 1839 | RHSTS(K) = RHSTS(K) * DT 1840 | AI(K) = AI(K) * DT 1841 | BI(K) = 1. + BI(K) * DT 1842 | CI(K) = CI(K) * DT 1843 | END DO 1844 | 1845 |! ---------------------------------------------------------------------- 1846 |! COPY VALUES FOR INPUT VARIABLES BEFORE CALL TO ROSR12 1847 |! ---------------------------------------------------------------------- 1848 | DO K = 1,NSOIL 1849 | RHSTSin(K) = RHSTS(K) 1850 | END DO 1851 | DO K = 1,NSOLD 1852 | CIin(K) = CI(K) 1853 | END DO 1854 | 1855 |! ---------------------------------------------------------------------- 1856 |! SOLVE THE TRI-DIAGONAL MATRIX EQUATION 1857 |! ---------------------------------------------------------------------- 1858 | CALL ROSR12(CI,AI,BI,CIin,RHSTSin,RHSTS,NSOIL) 1859 | 1860 |! ---------------------------------------------------------------------- 1861 |! CALC/UPDATE THE SOIL TEMPS USING MATRIX SOLUTION 1862 |! ---------------------------------------------------------------------- 1863 | DO K = 1,NSOIL 1864 | STCOUT(K) = STCIN(K) + CI(K) 1865 | END DO 1866 | 1867 |! ---------------------------------------------------------------------- 1868 |! END SUBROUTINE HSTEP 1869 |! ---------------------------------------------------------------------- 1870 | RETURN 1871 | END >>>>> ATTRIBUTE AND CROSS REFERENCE SECTION <<<<< IDENTIFIER NAME CROSS REFERENCE AND ATTRIBUTES ai Reference argument, Real(4) (1:4), Offset: 0, Alignment: full word 0-1825.12$ 0-1811.53 0-1840.9@ 0-1840.17 0-1858.22 bi Reference argument, Real(4) (1:4), Offset: 0, Alignment: full word 0-1826.12$ 0-1811.56 0-1841.9@ 0-1841.22 0-1858.25 ci Reference argument, Real(4) (1:4), Offset: 0, Alignment: full word 0-1827.12$ 0-1811.59 0-1842.9@ 0-1842.17 0-1852.19 0-1858.19 0-1864.32 ciin Automatic, Real(4) (1:4), Offset: 0, Alignment: full word 0-1828.12$ 0-1852.9@ 0-1858.28 dt Reference argument, Real(4), Offset: 0, Alignment: full word 0-1829.12$ 0-1811.44 0-1839.31 0-1840.25 0-1841.30 0-1842.25 hstep Subroutine 0-1811.18$ k Automatic, Integer(4), Offset: 0, Alignment: full word 0-1822.15$ 0-1838.10@ 0-1839.15 0-1839.26 0-1840.12 0-1840.20 0-1841.12 0-1841.25 0-1842.12 0-1842.20 0-1848.10@ 0-1849.18 0-1849.29 0-1851.10@ 0-1852.14 0-1852.22 0-1863.10@ 0-1864.16 0-1864.27 0-1864.35 nsoil Reference argument, Integer(4), Offset: 0, Alignment: full word 0-1823.15$ 0-1811.47 0-1830.18 0-1830.18 0-1831.20 0-1831.20 0-1832.18 0-1832.18 0-1833.19 0-1833.19 0-1838.16 0-1848.16 0-1858.47 0-1863.16 nsold Parameter, Integer(4) 0-1820.28$ 0-1825.15 0-1826.15 0-1827.15 0-1828.17 0-1851.16 rhsts Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-1830.12$ 0-1811.38 0-1839.9@ 0-1839.20 0-1849.23 0-1858.41 rhstsin Controlled Automatic, Real(4) (1:?), Offset: 0, Alignment: full word 0-1831.12$ 0-1849.10@ 0-1858.33 rosr12 External Subroutine 0-1858.12 stcin Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-1832.12$ 0-1811.32 0-1864.21 stcout Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-1833.12$ 0-1811.25 0-1864.9@ ** hstep === End of Compilation 9 === >>>>> COMPILATION UNIT EPILOGUE SECTION <<<<< FORTRAN Summary of Diagnosed Conditions TOTAL UNRECOVERABLE SEVERE ERROR WARNING INFORMATIONAL (U) (S) (E) (W) (I) 0 0 0 0 0 0 >>>>> OPTIONS SECTION <<<<< *** Options In Effect *** == On / Off Options == CR DBG ESCAPE FULLPATH I4 INLGLUE NOLIBESSL NOLIBPOSIX OBJECT SOURCE STRICT SWAPOMP THREADED UNWIND ZEROSIZE == Options Of Integer Type == ALIAS_SIZE(65536) MAXMEM(-1) OPTIMIZE(2) SPILLSIZE(2000) STACKTEMP(0) == Options Of Character Type == 64(LARGETYPE) ALIAS(STD,NOINTPTR) ALIGN(BINDC(POWER),STRUCT(NATURAL)) ARCH(PWR6) ATTR(FULL) AUTODBL(NONE) DESCRIPTOR(V1) DIRECTIVE(IBM*,IBMT) ENUM() FLAG(I,I) FLOAT(RNDSNGL,MAF,FOLD,RNGCHK,SINGLE) FREE(F90) HALT(S) IEEE(NEAR) INTSIZE(4) LANGLVL(EXTENDED) REALSIZE(4) NOSAVE() TUNE(PWR6) UNROLL(AUTO) XREF(FULL) XLF2003(NOPOLYMORPHIC,NOBOZLITARGS,NOSTOPEXCEPT,NOVOLATILE,NOAUTOREALLOC,OLDNANINF) XLF77(LEADZERO,BLANKPAD) XLF90(NOSIGNEDZERO,NOAUTODEALLOC,OLDPAD) >>>>> SOURCE SECTION <<<<< 1872 | 1873 |! -- 9. PHYSICS SUBROUTINE ==> SUBROUTINE NOPAC ---------------------- 1874 | 1875 | SUBROUTINE NOPAC(ETP,ETA,PRCP,SMC,SMCMAX,SMCWLT, & 1876 | SMCREF,SMCDRY,CMC,CMCMAX,NSOIL,DT,SHDFAC, & 1877 | SBETA,Q2,T1,SFCTMP,T24,TH2,FDOWN,F1,SSOIL, & 1878 | STC,EPSCA,BEXP,PC,RCH,RR,CFACTR, & 1879 | SH2O,SLOPE,KDT,FRZFACT,PSISAT,ZSOIL, & 1880 | DKSAT,DWSAT,TBOT,ZBOT,RUNOFF1,RUNOFF2, & 1881 | RUNOFF3,EDIR,EC,ET,ETT,NROOT,ICE,RTDIS, & 1882 | QUARTZ,FXEXP,CSOIL, & 1883 | BETA,DRIP,DEW,FLX1,FLX2,FLX3) 1884 | 1885 | IMPLICIT NONE 1886 | 1887 |! ---------------------------------------------------------------------- 1888 |! SUBROUTINE NOPAC 1889 |! ---------------------------------------------------------------------- 1890 |! CALCULATE SOIL MOISTURE AND HEAT FLUX VALUES AND UPDATE SOIL MOISTURE 1891 |! CONTENT AND SOIL HEAT CONTENT VALUES FOR THE CASE WHEN NO SNOW PACK IS 1892 |! PRESENT. 1893 |! ---------------------------------------------------------------------- 1894 | INTEGER ICE 1895 | INTEGER NROOT 1896 | INTEGER NSOIL 1897 | 1898 | REAL BEXP 1899 | REAL BETA 1900 | REAL CFACTR 1901 | REAL CMC 1902 | REAL CMCMAX 1903 | REAL CP 1904 | REAL CSOIL 1905 | REAL DEW 1906 | REAL DF1 1907 | REAL DKSAT 1908 | REAL DRIP 1909 | REAL DT 1910 | REAL DWSAT 1911 | REAL EC 1912 | REAL EDIR 1913 | REAL EPSCA 1914 | REAL ETA 1915 | REAL ETA1 1916 | REAL ETP 1917 | REAL ETP1 1918 | REAL ET(NSOIL) 1919 | REAL ETT 1920 | REAL FDOWN 1921 | REAL F1 1922 | REAL FXEXP 1923 | REAL FLX1 1924 | REAL FLX2 1925 | REAL FLX3 1926 | REAL FRZFACT 1927 | REAL KDT 1928 | REAL PC 1929 | REAL PRCP 1930 | REAL PRCP1 1931 | REAL PSISAT 1932 | REAL Q2 1933 | REAL QUARTZ 1934 | REAL RCH 1935 | REAL RR 1936 | REAL RTDIS(NSOIL) 1937 | REAL RUNOFF1 1938 | REAL RUNOFF2 1939 | REAL RUNOFF3 1940 | REAL SSOIL 1941 | REAL SBETA 1942 | REAL SFCTMP 1943 | REAL SHDFAC 1944 | REAL SH2O(NSOIL) 1945 | REAL SIGMA 1946 | REAL SLOPE 1947 | REAL SMC(NSOIL) 1948 | REAL SMCDRY 1949 | REAL SMCMAX 1950 | REAL SMCREF 1951 | REAL SMCWLT 1952 | REAL STC(NSOIL) 1953 | REAL T1 1954 | REAL T24 1955 | REAL TBOT 1956 | REAL TH2 1957 | REAL YY 1958 | REAL YYNUM 1959 | REAL ZBOT 1960 | REAL ZSOIL(NSOIL) 1961 | REAL ZZ1 1962 | 1963 | REAL EC1 1964 | REAL EDIR1 1965 | REAL ET1(NSOIL) 1966 | REAL ETT1 1967 | 1968 | INTEGER K 1969 | 1970 | PARAMETER(CP = 1004.5) 1971 | PARAMETER(SIGMA = 5.67E-8) 1972 | 1973 |! ---------------------------------------------------------------------- 1974 |! EXECUTABLE CODE BEGINS HERE: 1975 |! CONVERT ETP FROM KG M-2 S-1 TO MS-1 AND INITIALIZE DEW. 1976 |! CONVERT PRCP FROM 'KG M-2 S-1' TO 'M S-1'. 1977 |! ---------------------------------------------------------------------- 1978 | PRCP1 = PRCP * 0.001 1979 | ETP1 = ETP * 0.001 1980 | DEW = 0.0 1981 | 1982 | EDIR = 0. 1983 | EDIR1 = 0. 1984 | EC = 0. 1985 | EC1 = 0. 1986 | DO K = 1,NSOIL 1987 | ET(K) = 0. 1988 | ET1(K) = 0. 1989 | END DO 1990 | ETT = 0. 1991 | ETT1 = 0. 1992 | 1993 | IF (ETP .GT. 0.0) THEN 1994 | CALL EVAPO (ETA1,SMC,NSOIL,CMC,ETP1,DT,ZSOIL, & 1995 | SH2O,SMCMAX,BEXP,PC,SMCWLT,DKSAT,DWSAT, & 1996 | SMCREF,SHDFAC,CMCMAX, & 1997 | SMCDRY,CFACTR, & 1998 | EDIR1,EC1,ET1,ETT1,SFCTMP,Q2,NROOT,RTDIS,FXEXP) 1999 | CALL SMFLX (SMC,NSOIL,CMC,DT,PRCP1,ZSOIL, & 2000 | SH2O,SLOPE,KDT,FRZFACT, & 2001 | SMCMAX,BEXP,SMCWLT,DKSAT,DWSAT, & 2002 | SHDFAC,CMCMAX, & 2003 | RUNOFF1,RUNOFF2,RUNOFF3, & 2004 | EDIR1,EC1,ET1, & 2005 | DRIP) 2006 | 2007 |! ---------------------------------------------------------------------- 2008 |! CONVERT MODELED EVAPOTRANSPIRATION FM M S-1 TO KG M-2 S-1 2009 |! ---------------------------------------------------------------------- 2010 |! ETA = ETA1 * 1000.0 2011 | 2012 |! ---------------------------------------------------------------------- 2013 |! EDIR = EDIR1 * 1000.0 2014 |! EC = EC1 * 1000.0 2015 |! ETT = ETT1 * 1000.0 2016 |! ET(1) = ET1(1) * 1000.0 2017 |! ET(2) = ET1(2) * 1000.0 2018 |! ET(3) = ET1(3) * 1000.0 2019 |! ET(4) = ET1(4) * 1000.0 2020 |! ---------------------------------------------------------------------- 2021 | 2022 | ELSE 2023 | 2024 |! ---------------------------------------------------------------------- 2025 |! IF ETP < 0, ASSUME DEW FORMS (TRANSFORM ETP1 INTO DEW AND REINITIALIZE 2026 |! ETP1 TO ZERO). 2027 |! ---------------------------------------------------------------------- 2028 | DEW = -ETP1 2029 |! ETP1 = 0.0 2030 | 2031 |! ---------------------------------------------------------------------- 2032 |! CONVERT PRCP FROM 'KG M-2 S-1' TO 'M S-1' AND ADD DEW AMOUNT. 2033 |! ---------------------------------------------------------------------- 2034 | PRCP1 = PRCP1 + DEW 2035 |! 2036 |! CALL EVAPO (ETA1,SMC,NSOIL,CMC,ETP1,DT,ZSOIL, & 2037 |! SH2O,SMCMAX,BEXP,PC,SMCWLT,DKSAT,DWSAT, & 2038 |! SMCREF,SHDFAC,CMCMAX, & 2039 |! SMCDRY,CFACTR, & 2040 |! EDIR1,EC1,ET1,ETT,SFCTMP,Q2,NROOT,RTDIS,FXEXP) 2041 | CALL SMFLX (SMC,NSOIL,CMC,DT,PRCP1,ZSOIL, & 2042 | SH2O,SLOPE,KDT,FRZFACT, & 2043 | SMCMAX,BEXP,SMCWLT,DKSAT,DWSAT, & 2044 | SHDFAC,CMCMAX, & 2045 | RUNOFF1,RUNOFF2,RUNOFF3, & 2046 | EDIR1,EC1,ET1, & 2047 | DRIP) 2048 | 2049 |! ---------------------------------------------------------------------- 2050 |! CONVERT MODELED EVAPOTRANSPIRATION FROM 'M S-1' TO 'KG M-2 S-1'. 2051 |! ---------------------------------------------------------------------- 2052 |! ETA = ETA1 * 1000.0 2053 | 2054 |! ---------------------------------------------------------------------- 2055 |! EDIR = EDIR1 * 1000.0 2056 |! EC = EC1 * 1000.0 2057 |! ETT = ETT1 * 1000.0 2058 |! ET(1) = ET1(1) * 1000.0 2059 |! ET(2) = ET1(2) * 1000.0 2060 |! ET(3) = ET1(3) * 1000.0 2061 |! ET(4) = ET1(4) * 1000.0 2062 |! ---------------------------------------------------------------------- 2063 | 2064 | ENDIF 2065 | 2066 |! ---------------------------------------------------------------------- 2067 |! CONVERT MODELED EVAPOTRANSPIRATION FM M S-1 TO KG M-2 S-1 2068 |! ---------------------------------------------------------------------- 2069 | ETA = ETA1 * 1000.0 2070 | 2071 |! ---------------------------------------------------------------------- 2072 | EDIR = EDIR1 * 1000.0 2073 | EC = EC1 * 1000.0 2074 | DO K = 1,NSOIL 2075 | ET(K) = ET1(K) * 1000.0 2076 |! ET(1) = ET1(1) * 1000.0 2077 |! ET(2) = ET1(2) * 1000.0 2078 |! ET(3) = ET1(3) * 1000.0 2079 |! ET(4) = ET1(4) * 1000.0 2080 | ENDDO 2081 | ETT = ETT1 * 1000.0 2082 |! ---------------------------------------------------------------------- 2083 | 2084 |! ---------------------------------------------------------------------- 2085 |! BASED ON ETP AND E VALUES, DETERMINE BETA 2086 |! ---------------------------------------------------------------------- 2087 | IF ( ETP .LE. 0.0 ) THEN 2088 | BETA = 0.0 2089 | IF ( ETP .LT. 0.0 ) THEN 2090 | BETA = 1.0 2091 |! ETA = ETP 2092 | ENDIF 2093 | ELSE 2094 | BETA = ETA / ETP 2095 | ENDIF 2096 | 2097 |! ---------------------------------------------------------------------- 2098 |! GET SOIL THERMAL DIFFUXIVITY/CONDUCTIVITY FOR TOP SOIL LYR, 2099 |! CALC. ADJUSTED TOP LYR SOIL TEMP AND ADJUSTED SOIL FLUX, THEN 2100 |! CALL SHFLX TO COMPUTE/UPDATE SOIL HEAT FLUX AND SOIL TEMPS. 2101 |! ---------------------------------------------------------------------- 2102 | CALL TDFCND (DF1,SMC(1),QUARTZ,SMCMAX,SH2O(1)) 2103 | 2104 |! ---------------------------------------------------------------------- 2105 |! VEGETATION GREENNESS FRACTION REDUCTION IN SUBSURFACE HEAT FLUX 2106 |! VIA REDUCTION FACTOR, WHICH IS CONVENIENT TO APPLY HERE TO THERMAL 2107 |! DIFFUSIVITY THAT IS LATER USED IN HRT TO COMPUTE SUB SFC HEAT FLUX 2108 |! (SEE ADDITIONAL COMMENTS ON VEG EFFECT SUB-SFC HEAT FLX IN 2109 |! ROUTINE SFLX) 2110 |! ---------------------------------------------------------------------- 2111 | DF1 = DF1 * EXP(SBETA*SHDFAC) 2112 | 2113 |! ---------------------------------------------------------------------- 2114 |! COMPUTE INTERMEDIATE TERMS PASSED TO ROUTINE HRT (VIA ROUTINE 2115 |! SHFLX BELOW) FOR USE IN COMPUTING SUBSURFACE HEAT FLUX IN HRT 2116 |! ---------------------------------------------------------------------- 2117 | YYNUM = FDOWN - SIGMA * T24 2118 | YY = SFCTMP + (YYNUM/RCH+TH2-SFCTMP-BETA*EPSCA) / RR 2119 | ZZ1 = DF1 / ( -0.5 * ZSOIL(1) * RCH * RR ) + 1.0 2120 | 2121 | CALL SHFLX (SSOIL,STC,SMC,SMCMAX,NSOIL,T1,DT,YY,ZZ1,ZSOIL, & 2122 | TBOT,ZBOT,SMCWLT,PSISAT,SH2O,BEXP,F1,DF1,ICE, & 2123 | QUARTZ,CSOIL) 2124 | 2125 |! ---------------------------------------------------------------------- 2126 |! SET FLX1 AND FLX3 (SNOPACK PHASE CHANGE HEAT FLUXES) TO ZERO SINCE 2127 |! THEY ARE NOT USED HERE IN SNOPAC. FLX2 (FREEZING RAIN HEAT FLUX) WAS 2128 |! SIMILARLY INITIALIZED IN THE PENMAN ROUTINE. 2129 |! ---------------------------------------------------------------------- 2130 | FLX1 = 0.0 2131 | FLX3 = 0.0 2132 | 2133 |! ---------------------------------------------------------------------- 2134 |! END SUBROUTINE NOPAC 2135 |! ---------------------------------------------------------------------- 2136 | RETURN 2137 | END >>>>> ATTRIBUTE AND CROSS REFERENCE SECTION <<<<< IDENTIFIER NAME CROSS REFERENCE AND ATTRIBUTES beta Reference argument, Real(4), Offset: 0, Alignment: full word 0-1899.12$ 0-1883.23 0-2088.9@ 0-2090.11@ 0-2094.9@ 0-2118.43 bexp Reference argument, Real(4), Offset: 0, Alignment: full word 0-1898.12$ 0-1878.33 0-1995.35 0-2001.30 0-2043.25 0-2122.47 cfactr Reference argument, Real(4), Offset: 0, Alignment: full word 0-1900.12$ 0-1878.48 0-1997.30 cmc Reference argument, Real(4), Offset: 0, Alignment: full word 0-1901.12$ 0-1876.37 0-1994.39 0-1999.34 0-2041.29 cmcmax Reference argument, Real(4), Offset: 0, Alignment: full word 0-1902.12$ 0-1876.41 0-1996.37 0-2002.30 0-2044.25 cp Parameter, Real(4) 0-1903.12$ 0-1970.17$ csoil Reference argument, Real(4), Offset: 0, Alignment: full word 0-1904.12$ 0-1882.36 0-2123.25 dew Reference argument, Real(4), Offset: 0, Alignment: full word 0-1905.12$ 0-1883.33 0-1980.7@ 0-2028.9@ 0-2034.25 df1 Automatic, Real(4), Offset: 0, Alignment: full word 0-1906.12$ 0-2102.20 0-2111.7@ 0-2111.13 0-2119.13 0-2122.55 dksat Reference argument, Real(4), Offset: 0, Alignment: full word 0-1907.12$ 0-1880.23 0-1995.50 0-2001.42 0-2043.37 drip Reference argument, Real(4), Offset: 0, Alignment: full word 0-1908.12$ 0-1883.28 0-2005.23 0-2047.18 dt Reference argument, Real(4), Offset: 0, Alignment: full word 0-1909.12$ 0-1876.54 0-1994.48 0-1999.38 0-2041.33 0-2121.49 dwsat Reference argument, Real(4), Offset: 0, Alignment: full word 0-1910.12$ 0-1880.29 0-1995.56 0-2001.48 0-2043.43 ec Reference argument, Real(4), Offset: 0, Alignment: full word 0-1911.12$ 0-1881.36 0-1984.7@ 0-2073.7@ ec1 Automatic, Real(4), Offset: 0, Alignment: full word 0-1963.12$ 0-1985.7@ 0-1998.29 0-2004.29 0-2046.24 0-2073.12 edir Reference argument, Real(4), Offset: 0, Alignment: full word 0-1912.12$ 0-1881.31 0-1982.7@ 0-2072.7@ edir1 Automatic, Real(4), Offset: 0, Alignment: full word 0-1964.12$ 0-1983.7@ 0-1998.23 0-2004.23 0-2046.18 0-2072.14 epsca Reference argument, Real(4), Offset: 0, Alignment: full word 0-1913.12$ 0-1878.27 0-2118.48 et Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-1918.12$ 0-1881.39 0-1987.9@ 0-2075.9@ et1 Controlled Automatic, Real(4) (1:?), Offset: 0, Alignment: full word 0-1965.12$ 0-1988.9@ 0-1998.33 0-2004.33 0-2046.28 0-2075.17 eta Reference argument, Real(4), Offset: 0, Alignment: full word 0-1914.12$ 0-1875.28 0-2069.9@ 0-2094.16 eta1 Automatic, Real(4), Offset: 0, Alignment: full word 0-1915.12$ 0-1994.24 0-2069.15 etp Reference argument, Real(4), Offset: 0, Alignment: full word 0-1916.12$ 0-1875.24 0-1979.14 0-1993.11 0-2087.12 0-2089.14 0-2094.22 etp1 Automatic, Real(4), Offset: 0, Alignment: full word 0-1917.12$ 0-1979.7@ 0-1994.43 0-2028.16 ett Reference argument, Real(4), Offset: 0, Alignment: full word 0-1919.12$ 0-1881.42 0-1990.7@ 0-2081.7@ ett1 Automatic, Real(4), Offset: 0, Alignment: full word 0-1966.12$ 0-1991.7@ 0-1998.37 0-2081.13 evapo External Subroutine 0-1994.17 exp Pure Intrinsic 0-2111.19 f1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-1921.12$ 0-1877.56 0-2122.52 fdown Reference argument, Real(4), Offset: 0, Alignment: full word 0-1920.12$ 0-1877.50 0-2117.15 flx1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-1923.12$ 0-1883.37 0-2130.7@ flx2 Reference argument, Real(4), Offset: 0, Alignment: full word 0-1924.12$ 0-1883.42 flx3 Reference argument, Real(4), Offset: 0, Alignment: full word 0-1925.12$ 0-1883.47 0-2131.7@ frzfact Reference argument, Real(4), Offset: 0, Alignment: full word 0-1926.12$ 0-1879.38 0-2000.38 0-2042.33 fxexp Reference argument, Real(4), Offset: 0, Alignment: full word 0-1922.12$ 0-1882.30 0-1998.64 ice Reference argument, Integer(4), Offset: 0, Alignment: full word 0-1894.15$ 0-1881.52 0-2122.59 k Automatic, Integer(4), Offset: 0, Alignment: full word 0-1968.15$ 0-1986.10@ 0-1987.12 0-1988.13 0-2074.10@ 0-2075.12 0-2075.21 kdt Reference argument, Real(4), Offset: 0, Alignment: full word 0-1927.12$ 0-1879.34 0-2000.34 0-2042.29 nopac Subroutine 0-1875.18$ nroot Reference argument, Integer(4), Offset: 0, Alignment: full word 0-1895.15$ 0-1881.46 0-1998.52 nsoil Reference argument, Integer(4), Offset: 0, Alignment: full word 0-1896.15$ 0-1876.48 0-1918.15 0-1918.15 0-1936.18 0-1936.18 0-1944.17 0-1944.17 0-1947.16 0-1947.16 0-1952.16 0-1952.16 0-1960.18 0-1960.18 0-1965.16 0-1965.16 0-1986.16 0-1994.33 0-1999.28 0-2041.23 0-2074.16 0-2121.40 pc Reference argument, Real(4), Offset: 0, Alignment: full word 0-1928.12$ 0-1878.38 0-1995.40 prcp Reference argument, Real(4), Offset: 0, Alignment: full word 0-1929.12$ 0-1875.32 0-1978.15 prcp1 Automatic, Real(4), Offset: 0, Alignment: full word 0-1930.12$ 0-1978.7@ 0-1999.41 0-2034.9@ 0-2034.17 0-2041.36 psisat Reference argument, Real(4), Offset: 0, Alignment: full word 0-1931.12$ 0-1879.46 0-2122.35 q2 Reference argument, Real(4), Offset: 0, Alignment: full word 0-1932.12$ 0-1877.29 0-1998.49 quartz Reference argument, Real(4), Offset: 0, Alignment: full word 0-1933.12$ 0-1882.23 0-2102.31 0-2123.18 rch Reference argument, Real(4), Offset: 0, Alignment: full word 0-1934.12$ 0-1878.41 0-2118.28 0-2119.39 rr Reference argument, Real(4), Offset: 0, Alignment: full word 0-1935.12$ 0-1878.45 0-2118.57 0-2119.45 rtdis Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-1936.12$ 0-1881.56 0-1998.58 runoff1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-1937.12$ 0-1880.45 0-2003.23 0-2045.18 runoff2 Reference argument, Real(4), Offset: 0, Alignment: full word 0-1938.12$ 0-1880.53 0-2003.31 0-2045.26 runoff3 Reference argument, Real(4), Offset: 0, Alignment: full word 0-1939.12$ 0-1881.23 0-2003.39 0-2045.34 sbeta Reference argument, Real(4), Offset: 0, Alignment: full word 0-1941.12$ 0-1877.23 0-2111.23 sfctmp Reference argument, Real(4), Offset: 0, Alignment: full word 0-1942.12$ 0-1877.35 0-1998.42 0-2118.12 0-2118.36 sh2o Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-1944.12$ 0-1879.23 0-1995.23 0-2000.23 0-2042.18 0-2102.45 0-2122.42 shdfac Reference argument, Real(4), Offset: 0, Alignment: full word 0-1943.12$ 0-1876.57 0-1996.30 0-2002.23 0-2044.18 0-2111.29 shflx External Subroutine 0-2121.12 sigma Parameter, Real(4) 0-1945.12$ 0-1971.17$ 0-2117.23 slope Reference argument, Real(4), Offset: 0, Alignment: full word 0-1946.12$ 0-1879.28 0-2000.28 0-2042.23 smc Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-1947.12$ 0-1875.37 0-1994.29 0-1999.24 0-2041.19 0-2102.24 0-2121.29 smcdry Reference argument, Real(4), Offset: 0, Alignment: full word 0-1948.12$ 0-1876.30 0-1997.23 smcmax Reference argument, Real(4), Offset: 0, Alignment: full word 0-1949.12$ 0-1875.41 0-1995.28 0-2001.23 0-2043.18 0-2102.38 0-2121.33 smcref Reference argument, Real(4), Offset: 0, Alignment: full word 0-1950.12$ 0-1876.23 0-1996.23 smcwlt Reference argument, Real(4), Offset: 0, Alignment: full word 0-1951.12$ 0-1875.48 0-1995.43 0-2001.35 0-2043.30 0-2122.28 smflx External Subroutine 0-1999.17 0-2041.12 ssoil Reference argument, Real(4), Offset: 0, Alignment: full word 0-1940.12$ 0-1877.59 0-2121.19 stc Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-1952.12$ 0-1878.23 0-2121.25 t1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-1953.12$ 0-1877.32 0-2121.46 t24 Reference argument, Real(4), Offset: 0, Alignment: full word 0-1954.12$ 0-1877.42 0-2117.31 tbot Reference argument, Real(4), Offset: 0, Alignment: full word 0-1955.12$ 0-1880.35 0-2122.18 tdfcnd External Subroutine 0-2102.12 th2 Reference argument, Real(4), Offset: 0, Alignment: full word 0-1956.12$ 0-1877.46 0-2118.32 yy Automatic, Real(4), Offset: 0, Alignment: full word 0-1957.12$ 0-2118.7@ 0-2121.52 yynum Automatic, Real(4), Offset: 0, Alignment: full word 0-1958.12$ 0-2117.7@ 0-2118.22 zbot Reference argument, Real(4), Offset: 0, Alignment: full word 0-1959.12$ 0-1880.40 0-2122.23 zsoil Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-1960.12$ 0-1879.53 0-1994.51 0-1999.47 0-2041.42 0-2119.28 0-2121.59 zz1 Automatic, Real(4), Offset: 0, Alignment: full word 0-1961.12$ 0-2119.7@ 0-2121.55 ** nopac === End of Compilation 10 === >>>>> COMPILATION UNIT EPILOGUE SECTION <<<<< FORTRAN Summary of Diagnosed Conditions TOTAL UNRECOVERABLE SEVERE ERROR WARNING INFORMATIONAL (U) (S) (E) (W) (I) 0 0 0 0 0 0 >>>>> OPTIONS SECTION <<<<< *** Options In Effect *** == On / Off Options == CR DBG ESCAPE FULLPATH I4 INLGLUE NOLIBESSL NOLIBPOSIX OBJECT SOURCE STRICT SWAPOMP THREADED UNWIND ZEROSIZE == Options Of Integer Type == ALIAS_SIZE(65536) MAXMEM(-1) OPTIMIZE(2) SPILLSIZE(2000) STACKTEMP(0) == Options Of Character Type == 64(LARGETYPE) ALIAS(STD,NOINTPTR) ALIGN(BINDC(POWER),STRUCT(NATURAL)) ARCH(PWR6) ATTR(FULL) AUTODBL(NONE) DESCRIPTOR(V1) DIRECTIVE(IBM*,IBMT) ENUM() FLAG(I,I) FLOAT(RNDSNGL,MAF,FOLD,RNGCHK,SINGLE) FREE(F90) HALT(S) IEEE(NEAR) INTSIZE(4) LANGLVL(EXTENDED) REALSIZE(4) NOSAVE() TUNE(PWR6) UNROLL(AUTO) XREF(FULL) XLF2003(NOPOLYMORPHIC,NOBOZLITARGS,NOSTOPEXCEPT,NOVOLATILE,NOAUTOREALLOC,OLDNANINF) XLF77(LEADZERO,BLANKPAD) XLF90(NOSIGNEDZERO,NOAUTODEALLOC,OLDPAD) >>>>> SOURCE SECTION <<<<< 2138 | 2139 |! -- 10. PHYSICS SUBROUTINE ==> SUBROUTINE PENMAN -------------------- 2140 | 2141 | SUBROUTINE PENMAN (SFCTMP,SFCPRS,CH,T2V,TH2,PRCP,FDOWN,T24, & 2142 | SSOIL,Q2,Q2SAT,ETP,RCH,EPSCA,RR,SNOWNG,FRZGRA, & 2143 | DQSDT2,FLX2) 2144 | 2145 | IMPLICIT NONE 2146 | 2147 |! ---------------------------------------------------------------------- 2148 |! SUBROUTINE PENMAN 2149 |! ---------------------------------------------------------------------- 2150 |! CALCULATE POTENTIAL EVAPORATION FOR THE CURRENT POINT. VARIOUS 2151 |! PARTIAL SUMS/PRODUCTS ARE ALSO CALCULATED AND PASSED BACK TO THE 2152 |! CALLING ROUTINE FOR LATER USE. 2153 |! ---------------------------------------------------------------------- 2154 | LOGICAL*1 SNOWNG 2155 | LOGICAL*1 FRZGRA 2156 | 2157 | REAL A 2158 | REAL BETA 2159 | REAL CH 2160 | REAL CP 2161 | REAL CPH2O 2162 | REAL CPICE 2163 | REAL DELTA 2164 | REAL DQSDT2 2165 | REAL ELCP 2166 | REAL EPSCA 2167 | REAL ETP 2168 | REAL FDOWN 2169 | REAL FLX2 2170 | REAL FNET 2171 | REAL LSUBC 2172 | REAL LSUBF 2173 | REAL PRCP 2174 | REAL Q2 2175 | REAL Q2SAT 2176 | REAL R 2177 | REAL RAD 2178 | REAL RCH 2179 | REAL RHO 2180 | REAL RR 2181 | REAL SSOIL 2182 | REAL SFCPRS 2183 | REAL SFCTMP 2184 | REAL SIGMA 2185 | REAL T24 2186 | REAL T2V 2187 | REAL TH2 2188 | 2189 | PARAMETER(CP = 1004.6) 2190 | PARAMETER(CPH2O = 4.218E+3) 2191 | PARAMETER(CPICE = 2.106E+3) 2192 | PARAMETER(R = 287.04) 2193 | PARAMETER(ELCP = 2.4888E+3) 2194 | PARAMETER(LSUBF = 3.335E+5) 2195 | PARAMETER(LSUBC = 2.501000E+6) 2196 | PARAMETER(SIGMA = 5.67E-8) 2197 | 2198 |! ---------------------------------------------------------------------- 2199 |! EXECUTABLE CODE BEGINS HERE: 2200 |! ---------------------------------------------------------------------- 2201 | FLX2 = 0.0 2202 | 2203 |! ---------------------------------------------------------------------- 2204 |! PREPARE PARTIAL QUANTITIES FOR PENMAN EQUATION. 2205 |! ---------------------------------------------------------------------- 2206 | DELTA = ELCP * DQSDT2 2207 | T24 = SFCTMP * SFCTMP * SFCTMP * SFCTMP 2208 | RR = T24 * 6.48E-8 /(SFCPRS * CH) + 1.0 2209 | RHO = SFCPRS / (R * T2V) 2210 | RCH = RHO * CP * CH 2211 | 2212 |! ---------------------------------------------------------------------- 2213 |! ADJUST THE PARTIAL SUMS / PRODUCTS WITH THE LATENT HEAT 2214 |! EFFECTS CAUSED BY FALLING PRECIPITATION. 2215 |! ---------------------------------------------------------------------- 2216 | IF (.NOT. SNOWNG) THEN 2217 | IF (PRCP .GT. 0.0) RR = RR + CPH2O*PRCP/RCH 2218 | ELSE 2219 | RR = RR + CPICE*PRCP/RCH 2220 | ENDIF 2221 | 2222 | FNET = FDOWN - SIGMA*T24 - SSOIL 2223 | 2224 |! ---------------------------------------------------------------------- 2225 |! INCLUDE THE LATENT HEAT EFFECTS OF FRZNG RAIN CONVERTING TO ICE ON 2226 |! IMPACT IN THE CALCULATION OF FLX2 AND FNET. 2227 |! ---------------------------------------------------------------------- 2228 | IF (FRZGRA) THEN 2229 | FLX2 = -LSUBF * PRCP 2230 | FNET = FNET - FLX2 2231 | ENDIF 2232 | 2233 |! ---------------------------------------------------------------------- 2234 |! FINISH PENMAN EQUATION CALCULATIONS. 2235 |! ---------------------------------------------------------------------- 2236 | RAD = FNET/RCH + TH2 - SFCTMP 2237 | A = ELCP * (Q2SAT - Q2) 2238 | EPSCA = (A*RR + RAD*DELTA) / (DELTA + RR) 2239 | ETP = EPSCA * RCH / LSUBC 2240 | 2241 |! ---------------------------------------------------------------------- 2242 |! END SUBROUTINE PENMAN 2243 |! ---------------------------------------------------------------------- 2244 | RETURN 2245 | END >>>>> ATTRIBUTE AND CROSS REFERENCE SECTION <<<<< IDENTIFIER NAME CROSS REFERENCE AND ATTRIBUTES a Automatic, Real(4), Offset: 0, Alignment: full word 0-2157.12$ 0-2237.7@ 0-2238.16 beta Automatic, Real(4), Offset: 0, Alignment: full word 0-2158.12$ ch Reference argument, Real(4), Offset: 0, Alignment: full word 0-2159.12$ 0-2141.40 0-2208.37 0-2210.24 cp Parameter, Real(4) 0-2160.12$ 0-2189.17$ 0-2210.19 cph2o Parameter, Real(4) 0-2161.12$ 0-2190.17$ 0-2217.38 cpice Parameter, Real(4) 0-2162.12$ 0-2191.17$ 0-2219.19 delta Automatic, Real(4), Offset: 0, Alignment: full word 0-2163.12$ 0-2206.7@ 0-2238.27 0-2238.37 dqsdt2 Reference argument, Real(4), Offset: 0, Alignment: full word 0-2164.12$ 0-2143.25 0-2206.22 elcp Parameter, Real(4) 0-2165.12$ 0-2193.17$ 0-2206.15 0-2237.11 epsca Reference argument, Real(4), Offset: 0, Alignment: full word 0-2166.12$ 0-2142.48 0-2238.7@ 0-2239.13 etp Reference argument, Real(4), Offset: 0, Alignment: full word 0-2167.12$ 0-2142.40 0-2239.7@ fdown Reference argument, Real(4), Offset: 0, Alignment: full word 0-2168.12$ 0-2141.56 0-2222.14 flx2 Reference argument, Real(4), Offset: 0, Alignment: full word 0-2169.12$ 0-2143.32 0-2201.7@ 0-2229.9@ 0-2230.23 fnet Automatic, Real(4), Offset: 0, Alignment: full word 0-2170.12$ 0-2222.7@ 0-2230.9@ 0-2230.16 0-2236.13 frzgra Reference argument, Logical(1), Offset: 0, Alignment: byte 0-2155.17$ 0-2142.64 0-2228.11 lsubc Parameter, Real(4) 0-2171.12$ 0-2195.17$ 0-2239.27 lsubf Parameter, Real(4) 0-2172.12$ 0-2194.17$ 0-2229.17 penman Subroutine 0-2141.18$ prcp Reference argument, Real(4), Offset: 0, Alignment: full word 0-2173.12$ 0-2141.51 0-2217.13 0-2217.44 0-2219.25 0-2229.25 q2 Reference argument, Real(4), Offset: 0, Alignment: full word 0-2174.12$ 0-2142.31 0-2237.27 q2sat Reference argument, Real(4), Offset: 0, Alignment: full word 0-2175.12$ 0-2142.34 0-2237.19 r Parameter, Real(4) 0-2176.12$ 0-2192.17$ 0-2209.23 rad Automatic, Real(4), Offset: 0, Alignment: full word 0-2177.12$ 0-2236.7@ 0-2238.23 rch Reference argument, Real(4), Offset: 0, Alignment: full word 0-2178.12$ 0-2142.44 0-2210.7@ 0-2217.49 0-2219.30 0-2236.18 0-2239.21 rho Automatic, Real(4), Offset: 0, Alignment: full word 0-2179.12$ 0-2209.7@ 0-2210.13 rr Reference argument, Real(4), Offset: 0, Alignment: full word 0-2180.12$ 0-2142.54 0-2208.7@ 0-2217.28@ 0-2217.33 0-2219.9@ 0-2219.14 0-2238.18 0-2238.45 sfcprs Reference argument, Real(4), Offset: 0, Alignment: full word 0-2182.12$ 0-2141.33 0-2208.28 0-2209.13 sfctmp Reference argument, Real(4), Offset: 0, Alignment: full word 0-2183.12$ 0-2141.26 0-2207.13 0-2207.22 0-2207.31 0-2207.40 0-2236.30 sigma Parameter, Real(4) 0-2184.12$ 0-2196.17$ 0-2222.22 snowng Reference argument, Logical(1), Offset: 0, Alignment: byte 0-2154.17$ 0-2142.57 0-2216.17 ssoil Reference argument, Real(4), Offset: 0, Alignment: full word 0-2181.12$ 0-2142.25 0-2222.34 t24 Reference argument, Real(4), Offset: 0, Alignment: full word 0-2185.12$ 0-2141.62 0-2207.7@ 0-2208.12 0-2222.28 t2v Reference argument, Real(4), Offset: 0, Alignment: full word 0-2186.12$ 0-2141.43 0-2209.27 th2 Reference argument, Real(4), Offset: 0, Alignment: full word 0-2187.12$ 0-2141.47 0-2236.24 ** penman === End of Compilation 11 === >>>>> COMPILATION UNIT EPILOGUE SECTION <<<<< FORTRAN Summary of Diagnosed Conditions TOTAL UNRECOVERABLE SEVERE ERROR WARNING INFORMATIONAL (U) (S) (E) (W) (I) 0 0 0 0 0 0 >>>>> OPTIONS SECTION <<<<< *** Options In Effect *** == On / Off Options == CR DBG ESCAPE FULLPATH I4 INLGLUE NOLIBESSL NOLIBPOSIX OBJECT SOURCE STRICT SWAPOMP THREADED UNWIND ZEROSIZE == Options Of Integer Type == ALIAS_SIZE(65536) MAXMEM(-1) OPTIMIZE(2) SPILLSIZE(2000) STACKTEMP(0) == Options Of Character Type == 64(LARGETYPE) ALIAS(STD,NOINTPTR) ALIGN(BINDC(POWER),STRUCT(NATURAL)) ARCH(PWR6) ATTR(FULL) AUTODBL(NONE) DESCRIPTOR(V1) DIRECTIVE(IBM*,IBMT) ENUM() FLAG(I,I) FLOAT(RNDSNGL,MAF,FOLD,RNGCHK,SINGLE) FREE(F90) HALT(S) IEEE(NEAR) INTSIZE(4) LANGLVL(EXTENDED) REALSIZE(4) NOSAVE() TUNE(PWR6) UNROLL(AUTO) XREF(FULL) XLF2003(NOPOLYMORPHIC,NOBOZLITARGS,NOSTOPEXCEPT,NOVOLATILE,NOAUTOREALLOC,OLDNANINF) XLF77(LEADZERO,BLANKPAD) XLF90(NOSIGNEDZERO,NOAUTODEALLOC,OLDPAD) >>>>> SOURCE SECTION <<<<< 2246 | 2247 |! -- 11. PHYSICS SUBROUTINE ==> SUBROUTINE ROSR12 -------------------- 2248 | 2249 | SUBROUTINE ROSR12 (P,A,B,C,D,DELTA,NSOIL) 2250 | 2251 | IMPLICIT NONE 2252 | 2253 |! ---------------------------------------------------------------------- 2254 |! SUBROUTINE ROSR12 2255 |! ---------------------------------------------------------------------- 2256 |! INVERT (SOLVE) THE TRI-DIAGONAL MATRIX PROBLEM SHOWN BELOW: 2257 |! ### ### ### ### ### ### 2258 |! #B(1), C(1), 0 , 0 , 0 , . . . , 0 # # # # # 2259 |! #A(2), B(2), C(2), 0 , 0 , . . . , 0 # # # # # 2260 |! # 0 , A(3), B(3), C(3), 0 , . . . , 0 # # # # D(3) # 2261 |! # 0 , 0 , A(4), B(4), C(4), . . . , 0 # # P(4) # # D(4) # 2262 |! # 0 , 0 , 0 , A(5), B(5), . . . , 0 # # P(5) # # D(5) # 2263 |! # . . # # . # = # . # 2264 |! # . . # # . # # . # 2265 |! # . . # # . # # . # 2266 |! # 0 , . . . , 0 , A(M-2), B(M-2), C(M-2), 0 # #P(M-2)# #D(M-2)# 2267 |! # 0 , . . . , 0 , 0 , A(M-1), B(M-1), C(M-1)# #P(M-1)# #D(M-1)# 2268 |! # 0 , . . . , 0 , 0 , 0 , A(M) , B(M) # # P(M) # # D(M) # 2269 |! ### ### ### ### ### ### 2270 |! ---------------------------------------------------------------------- 2271 | INTEGER K 2272 | INTEGER KK 2273 | INTEGER NSOIL 2274 | 2275 | REAL A(NSOIL) 2276 | REAL B(NSOIL) 2277 | REAL C(NSOIL) 2278 | REAL D(NSOIL) 2279 | REAL DELTA(NSOIL) 2280 | REAL P(NSOIL) 2281 | 2282 |! ---------------------------------------------------------------------- 2283 |! INITIALIZE EQN COEF C FOR THE LOWEST SOIL LAYER 2284 |! ---------------------------------------------------------------------- 2285 | C(NSOIL) = 0.0 2286 | 2287 |! ---------------------------------------------------------------------- 2288 |! SOLVE THE COEFS FOR THE 1ST SOIL LAYER 2289 |! ---------------------------------------------------------------------- 2290 | P(1) = -C(1) / B(1) 2291 | DELTA(1) = D(1) / B(1) 2292 | 2293 |! ---------------------------------------------------------------------- 2294 |! SOLVE THE COEFS FOR SOIL LAYERS 2 THRU NSOIL 2295 |! ---------------------------------------------------------------------- 2296 | DO K = 2,NSOIL 2297 | P(K) = -C(K) * ( 1.0 / (B(K) + A (K) * P(K-1)) ) 2298 | DELTA(K) = (D(K)-A(K)*DELTA(K-1))*(1.0/(B(K)+A(K)*P(K-1))) 2299 | END DO 2300 | 2301 |! ---------------------------------------------------------------------- 2302 |! SET P TO DELTA FOR LOWEST SOIL LAYER 2303 |! ---------------------------------------------------------------------- 2304 | P(NSOIL) = DELTA(NSOIL) 2305 | 2306 |! ---------------------------------------------------------------------- 2307 |! ADJUST P FOR SOIL LAYERS 2 THRU NSOIL 2308 |! ---------------------------------------------------------------------- 2309 | DO K = 2,NSOIL 2310 | KK = NSOIL - K + 1 2311 | P(KK) = P(KK) * P(KK+1) + DELTA(KK) 2312 | END DO 2313 | 2314 |! ---------------------------------------------------------------------- 2315 |! END SUBROUTINE ROSR12 2316 |! ---------------------------------------------------------------------- 2317 | RETURN 2318 | END >>>>> ATTRIBUTE AND CROSS REFERENCE SECTION <<<<< IDENTIFIER NAME CROSS REFERENCE AND ATTRIBUTES a Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-2275.12$ 0-2249.28 0-2297.40 0-2298.26 0-2298.54 b Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-2276.12$ 0-2249.30 0-2290.22 0-2291.25 0-2297.33 0-2298.49 c Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-2277.12$ 0-2249.32 0-2285.7@ 0-2290.15 0-2297.17 d Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-2278.12$ 0-2249.34 0-2291.18 0-2298.21 delta Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-2279.12$ 0-2249.36 0-2291.7@ 0-2298.9@ 0-2298.31 0-2304.18 0-2311.36 k Automatic, Integer(4), Offset: 0, Alignment: full word 0-2271.15$ 0-2296.10@ 0-2297.11 0-2297.19 0-2297.35 0-2297.43 0-2297.50 0-2298.15 0-2298.23 0-2298.28 0-2298.37 0-2298.51 0-2298.56 0-2298.61 0-2309.10@ 0-2310.23 kk Automatic, Integer(4), Offset: 0, Alignment: full word 0-2272.15$ 0-2310.10@ 0-2311.12 0-2311.20 0-2311.28 0-2311.42 nsoil Reference argument, Integer(4), Offset: 0, Alignment: full word 0-2273.15$ 0-2249.42 0-2275.14 0-2275.14 0-2276.14 0-2276.14 0-2277.14 0-2277.14 0-2278.14 0-2278.14 0-2279.18 0-2279.18 0-2280.14 0-2280.14 0-2285.9 0-2296.16 0-2304.9 0-2304.24 0-2309.16 0-2310.15 p Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-2280.12$ 0-2249.26 0-2290.7@ 0-2297.9@ 0-2297.48 0-2298.59 0-2304.7@ 0-2311.10@ 0-2311.18 0-2311.26 rosr12 Subroutine 0-2249.18$ ** rosr12 === End of Compilation 12 === >>>>> COMPILATION UNIT EPILOGUE SECTION <<<<< FORTRAN Summary of Diagnosed Conditions TOTAL UNRECOVERABLE SEVERE ERROR WARNING INFORMATIONAL (U) (S) (E) (W) (I) 0 0 0 0 0 0 >>>>> OPTIONS SECTION <<<<< *** Options In Effect *** == On / Off Options == CR DBG ESCAPE FULLPATH I4 INLGLUE NOLIBESSL NOLIBPOSIX OBJECT SOURCE STRICT SWAPOMP THREADED UNWIND ZEROSIZE == Options Of Integer Type == ALIAS_SIZE(65536) MAXMEM(-1) OPTIMIZE(2) SPILLSIZE(2000) STACKTEMP(0) == Options Of Character Type == 64(LARGETYPE) ALIAS(STD,NOINTPTR) ALIGN(BINDC(POWER),STRUCT(NATURAL)) ARCH(PWR6) ATTR(FULL) AUTODBL(NONE) DESCRIPTOR(V1) DIRECTIVE(IBM*,IBMT) ENUM() FLAG(I,I) FLOAT(RNDSNGL,MAF,FOLD,RNGCHK,SINGLE) FREE(F90) HALT(S) IEEE(NEAR) INTSIZE(4) LANGLVL(EXTENDED) REALSIZE(4) NOSAVE() TUNE(PWR6) UNROLL(AUTO) XREF(FULL) XLF2003(NOPOLYMORPHIC,NOBOZLITARGS,NOSTOPEXCEPT,NOVOLATILE,NOAUTOREALLOC,OLDNANINF) XLF77(LEADZERO,BLANKPAD) XLF90(NOSIGNEDZERO,NOAUTODEALLOC,OLDPAD) >>>>> SOURCE SECTION <<<<< 2319 | 2320 |! -- 12. PHYSICS SUBROUTINE ==> SUBROUTINE SFCDIF --------------------- 2321 | 2322 | SUBROUTINE SFCDIF (ZLM,Z0,THZ0,THLM,SFCSPD,CZIL,AKMS,AKHS) 2323 | 2324 | IMPLICIT NONE 2325 | 2326 |! ---------------------------------------------------------------------- 2327 |! SUBROUTINE SFCDIF 2328 |! ---------------------------------------------------------------------- 2329 |! CALCULATE SURFACE LAYER EXCHANGE COEFFICIENTS VIA ITERATIVE PROCESS. 2330 |! SEE CHEN ET AL (1997, BLM) 2331 |! ---------------------------------------------------------------------- 2332 | 2333 | REAL WWST, WWST2, G, VKRM, EXCM, BETA, BTG, ELFC, WOLD, WNEW 2334 | REAL PIHF, EPSU2, EPSUST, EPSIT, EPSA, ZTMIN, ZTMAX, HPBL, SQVISC 2335 | REAL RIC, RRIC, FHNEU, RFC, RFAC, ZZ, PSLMU, PSLMS, PSLHU, PSLHS 2336 | REAL XX, PSPMU, YY, PSPMS, PSPHU, PSPHS, ZLM, Z0, THZ0, THLM 2337 | REAL SFCSPD, CZIL, AKMS, AKHS, ZILFC, ZU, ZT, RDZ, CXCH 2338 | REAL DTHV, DU2, BTGH, WSTAR2, USTAR, ZSLU, ZSLT, RLOGU, RLOGT 2339 | REAL RLMO, ZETALT, ZETALU, ZETAU, ZETAT, XLU4, XLT4, XU4, XT4 2340 | REAL XLU, XLT, XU, XT, PSMZ, SIMM, PSHZ, SIMH, USTARK, RLMN, RLMA 2341 |!CC ......REAL ZTFC 2342 | 2343 | INTEGER ITRMX, ILECH, ITR 2344 | 2345 | PARAMETER & 2346 | (WWST=1.2,WWST2=WWST*WWST,G=9.81,VKRM=0.40,EXCM=0.001 & 2347 | ,BETA=1./270.,BTG=BETA*G,ELFC=VKRM*BTG & 2348 | ,WOLD=.15,WNEW=1.-WOLD,ITRMX=05,PIHF=3.14159265/2.) 2349 |! ---------------------------------------------------------------------- 2350 | PARAMETER & 2351 | (EPSU2=1.E-4,EPSUST=0.07,EPSIT=1.E-4,EPSA=1.E-8, & 2352 | ZTMIN=-5.,ZTMAX=1.,HPBL=1000.0, & 2353 | SQVISC=258.2) 2354 |! ---------------------------------------------------------------------- 2355 | PARAMETER & 2356 | (RIC=0.183,RRIC=1.0/RIC,FHNEU=0.8,RFC=0.191, & 2357 | RFAC=RIC/(FHNEU*RFC*RFC)) 2358 | 2359 |! ---------------------------------------------------------------------- 2360 |! NOTE: THE TWO CODE BLOCKS BELOW DEFINE FUNCTIONS 2361 |! ---------------------------------------------------------------------- 2362 |! LECH'S SURFACE FUNCTIONS 2363 |! ---------------------------------------------------------------------- 2364 | PSLMU(ZZ)=-0.96*log(1.0-4.5*ZZ) 2365 | PSLMS(ZZ)=ZZ*RRIC-2.076*(1.-1./(ZZ+1.)) 2366 | PSLHU(ZZ)=-0.96*log(1.0-4.5*ZZ) 2367 | PSLHS(ZZ)=ZZ*RFAC-2.076*(1.-1./(ZZ+1.)) 2368 | 2369 |! ---------------------------------------------------------------------- 2370 |! PAULSON'S SURFACE FUNCTIONS 2371 |! ---------------------------------------------------------------------- 2372 | PSPMU(XX)=-2.*log((XX+1.)*0.5)-log((XX*XX+1.)*0.5)+2.*ATAN(XX) & 2373 | -PIHF 2374 | PSPMS(YY)=5.*YY 2375 | PSPHU(XX)=-2.*log((XX*XX+1.)*0.5) 2376 | PSPHS(YY)=5.*YY 2377 | 2378 |! ---------------------------------------------------------------------- 2379 |! THIS ROUTINE SFCDIF CAN HANDLE BOTH OVER OPEN WATER (SEA, OCEAN) AND 2380 |! OVER SOLID SURFACE (LAND, SEA-ICE). 2381 |! ---------------------------------------------------------------------- 2382 | ILECH=0 2383 | 2384 |! ---------------------------------------------------------------------- 2385 |! ZTFC: RATIO OF ZOH/ZOM LESS OR EQUAL THAN 1 2386 |! C......ZTFC=0.1 2387 |! CZIL: CONSTANT C IN Zilitinkevich, S. S.1995,:NOTE ABOUT ZT 2388 |! ---------------------------------------------------------------------- 2389 | ZILFC=-CZIL*VKRM*SQVISC 2390 | 2391 |! ---------------------------------------------------------------------- 2392 | ZU=Z0 2393 |! C.......ZT=Z0*ZTFC 2394 | RDZ=1./ZLM 2395 | CXCH=EXCM*RDZ 2396 | DTHV=THLM-THZ0 2397 | DU2=MAX(SFCSPD*SFCSPD,EPSU2) 2398 | 2399 |! ---------------------------------------------------------------------- 2400 |! BELJARS CORRECTION OF USTAR 2401 |! ---------------------------------------------------------------------- 2402 | BTGH=BTG*HPBL 2403 |!cc If statements to avoid TANGENT LINEAR problems near zero 2404 | IF (BTGH*AKHS*DTHV .NE. 0.0) THEN 2405 | WSTAR2=WWST2*ABS(BTGH*AKHS*DTHV)**(2./3.) 2406 | ELSE 2407 | WSTAR2=0.0 2408 | ENDIF 2409 | USTAR=MAX(SQRT(AKMS*SQRT(DU2+WSTAR2)),EPSUST) 2410 | 2411 |! ---------------------------------------------------------------------- 2412 |! ZILITINKEVITCH APPROACH FOR ZT 2413 |! ---------------------------------------------------------------------- 2414 | ZT=EXP(ZILFC*SQRT(USTAR*Z0))*Z0 2415 | 2416 |! ---------------------------------------------------------------------- 2417 | ZSLU=ZLM+ZU 2418 | ZSLT=ZLM+ZT 2419 |! PRINT*,'ZSLT=',ZSLT 2420 |! PRINT*,'ZLM=',ZLM 2421 |! PRINT*,'ZT=',ZT 2422 |! 2423 | RLOGU=log(ZSLU/ZU) 2424 | RLOGT=log(ZSLT/ZT) 2425 |! 2426 | RLMO=ELFC*AKHS*DTHV/USTAR**3 2427 |! PRINT*,'RLMO=',RLMO 2428 |! PRINT*,'ELFC=',ELFC 2429 |! PRINT*,'AKHS=',AKHS 2430 |! PRINT*,'DTHV=',DTHV 2431 |! PRINT*,'USTAR=',USTAR 2432 | 2433 | DO ITR=1,ITRMX 2434 |! ---------------------------------------------------------------------- 2435 |! 1./MONIN-OBUKKHOV LENGTH-SCALE 2436 |! ---------------------------------------------------------------------- 2437 | ZETALT=MAX(ZSLT*RLMO,ZTMIN) 2438 | RLMO=ZETALT/ZSLT 2439 | ZETALU=ZSLU*RLMO 2440 | ZETAU=ZU*RLMO 2441 | ZETAT=ZT*RLMO 2442 | 2443 | IF(ILECH.EQ.0) THEN 2444 | IF(RLMO.LT.0.)THEN 2445 | XLU4=1.-16.*ZETALU 2446 | XLT4=1.-16.*ZETALT 2447 | XU4 =1.-16.*ZETAU 2448 | XT4 =1.-16.*ZETAT 2449 | 2450 | XLU=SQRT(SQRT(XLU4)) 2451 | XLT=SQRT(SQRT(XLT4)) 2452 | XU =SQRT(SQRT(XU4)) 2453 | XT =SQRT(SQRT(XT4)) 2454 | 2455 | PSMZ=PSPMU(XU) 2456 |! PRINT*,'-----------1------------' 2457 |! PRINT*,'PSMZ=',PSMZ 2458 |! PRINT*,'PSPMU(ZETAU)=',PSPMU(ZETAU) 2459 |! PRINT*,'XU=',XU 2460 |! PRINT*,'------------------------' 2461 | SIMM=PSPMU(XLU)-PSMZ+RLOGU 2462 | PSHZ=PSPHU(XT) 2463 | SIMH=PSPHU(XLT)-PSHZ+RLOGT 2464 | ELSE 2465 | ZETALU=MIN(ZETALU,ZTMAX) 2466 | ZETALT=MIN(ZETALT,ZTMAX) 2467 | PSMZ=PSPMS(ZETAU) 2468 |! PRINT*,'-----------2------------' 2469 |! PRINT*,'PSMZ=',PSMZ 2470 |! PRINT*,'PSPMS(ZETAU)=',PSPMS(ZETAU) 2471 |! PRINT*,'ZETAU=',ZETAU 2472 |! PRINT*,'------------------------' 2473 | SIMM=PSPMS(ZETALU)-PSMZ+RLOGU 2474 | PSHZ=PSPHS(ZETAT) 2475 | SIMH=PSPHS(ZETALT)-PSHZ+RLOGT 2476 | ENDIF 2477 | ELSE 2478 |! ---------------------------------------------------------------------- 2479 |! LECH'S FUNCTIONS 2480 |! ---------------------------------------------------------------------- 2481 | IF(RLMO.LT.0.)THEN 2482 | PSMZ=PSLMU(ZETAU) 2483 |! PRINT*,'-----------3------------' 2484 |! PRINT*,'PSMZ=',PSMZ 2485 |! PRINT*,'PSLMU(ZETAU)=',PSLMU(ZETAU) 2486 |! PRINT*,'ZETAU=',ZETAU 2487 |! PRINT*,'------------------------' 2488 | SIMM=PSLMU(ZETALU)-PSMZ+RLOGU 2489 | PSHZ=PSLHU(ZETAT) 2490 | SIMH=PSLHU(ZETALT)-PSHZ+RLOGT 2491 | ELSE 2492 | ZETALU=MIN(ZETALU,ZTMAX) 2493 | ZETALT=MIN(ZETALT,ZTMAX) 2494 |! 2495 | PSMZ=PSLMS(ZETAU) 2496 |! PRINT*,'-----------4------------' 2497 |! PRINT*,'PSMZ=',PSMZ 2498 |! PRINT*,'PSLMS(ZETAU)=',PSLMS(ZETAU) 2499 |! PRINT*,'ZETAU=',ZETAU 2500 |! PRINT*,'------------------------' 2501 | SIMM=PSLMS(ZETALU)-PSMZ+RLOGU 2502 | PSHZ=PSLHS(ZETAT) 2503 | SIMH=PSLHS(ZETALT)-PSHZ+RLOGT 2504 | ENDIF 2505 | ENDIF 2506 |! ---------------------------------------------------------------------- 2507 |! BELJAARS CORRECTION FOR USTAR 2508 |! ---------------------------------------------------------------------- 2509 | USTAR=MAX(SQRT(AKMS*SQRT(DU2+WSTAR2)),EPSUST) 2510 | 2511 |! ---------------------------------------------------------------------- 2512 |! ZILITINKEVITCH FIX FOR ZT 2513 |! ---------------------------------------------------------------------- 2514 | ZT=EXP(ZILFC*SQRT(USTAR*Z0))*Z0 2515 | 2516 | ZSLT=ZLM+ZT 2517 | RLOGT=log(ZSLT/ZT) 2518 |!----------------------------------------------------------------------- 2519 | USTARK=USTAR*VKRM 2520 | AKMS=MAX(USTARK/SIMM,CXCH) 2521 | AKHS=MAX(USTARK/SIMH,CXCH) 2522 |!----------------------------------------------------------------------- 2523 |! IF STATEMENTS TO AVOID TANGENT LINEAR PROBLEMS NEAR ZERO 2524 |!----------------------------------------------------------------------- 2525 | IF (BTGH*AKHS*DTHV .NE. 0.0) THEN 2526 | WSTAR2=WWST2*ABS(BTGH*AKHS*DTHV)**(2./3.) 2527 | ELSE 2528 | WSTAR2=0.0 2529 | ENDIF 2530 | RLMN=ELFC*AKHS*DTHV/USTAR**3 2531 |!----------------------------------------------------------------------- 2532 | RLMA=RLMO*WOLD+RLMN*WNEW 2533 |!----------------------------------------------------------------------- 2534 |! IF(ABS((RLMN-RLMO)/RLMA).LT.EPSIT) GO TO 110 2535 |!----------------------------------------------------------------------- 2536 | RLMO=RLMA 2537 |!----------------------------------------------------------------------- 2538 | END DO 2539 | 2540 |! PRINT*,'----------------------------' 2541 |! PRINT*,'SFCDIF OUTPUT ! ! ! ! ! ! ! ! ! ! ! !' 2542 |! 2543 |! write(81,*)'ZLM=',ZLM 2544 |! write(81,*)'Z0=',Z0 2545 |! write(81,*)'THZ0=',THZ0 2546 |! write(81,*)'THLM=',THLM 2547 |! write(81,*)'SFCSPD=',SFCSPD 2548 |! write(81,*)'CZIL=',CZIL 2549 |! write(81,*)'AKMS=',AKMS 2550 |! write(81,*)'AKHS=',AKHS 2551 |! PRINT*,'----------------------------' 2552 |! 2553 |! ---------------------------------------------------------------------- 2554 |! END SUBROUTINE SFCDIF 2555 |! ---------------------------------------------------------------------- 2556 | RETURN 2557 | END >>>>> ATTRIBUTE AND CROSS REFERENCE SECTION <<<<< IDENTIFIER NAME CROSS REFERENCE AND ATTRIBUTES abs Pure Intrinsic 0-2405.23 0-2526.26 akhs Reference argument, Real(4), Offset: 0, Alignment: full word 0-2337.32$ 0-2322.60 0-2404.16 0-2405.32 0-2426.17 0-2521.10@ 0-2525.19 0-2526.35 0-2530.20 akms Reference argument, Real(4), Offset: 0, Alignment: full word 0-2337.26$ 0-2322.55 0-2409.22 0-2509.25 0-2520.10@ atan Pure Intrinsic 0-2372.61 0-2372.61 beta Parameter, Real(4) 0-2333.40$ 0-2347.12$ 0-2347.29 btg Parameter, Real(4) 0-2333.46$ 0-2347.25$ 0-2347.46 0-2402.12 btgh Automatic, Real(4), Offset: 0, Alignment: full word 0-2338.23$ 0-2402.7@ 0-2404.11 0-2405.27 0-2525.14 0-2526.30 cxch Automatic, Real(4), Offset: 0, Alignment: full word 0-2337.58$ 0-2395.7@ 0-2520.31 0-2521.31 czil Reference argument, Real(4), Offset: 0, Alignment: full word 0-2337.20$ 0-2322.50 0-2389.14 dthv Automatic, Real(4), Offset: 0, Alignment: full word 0-2338.12$ 0-2396.7@ 0-2404.21 0-2405.37 0-2426.22 0-2525.24 0-2526.40 0-2530.25 du2 Automatic, Real(4), Offset: 0, Alignment: full word 0-2338.18$ 0-2397.7@ 0-2409.32 0-2509.35 elfc Parameter, Real(4) 0-2333.51$ 0-2347.36$ 0-2426.12 0-2530.15 epsa Parameter, Real(4) 0-2334.40$ 0-2351.48$ epsit Parameter, Real(4) 0-2334.33$ 0-2351.36$ epsu2 Parameter, Real(4) 0-2334.18$ 0-2351.12$ 0-2397.29 epsust Parameter, Real(4) 0-2334.25$ 0-2351.24$ 0-2409.45 0-2509.48 excm Parameter, Real(4) 0-2333.34$ 0-2346.54$ 0-2395.12 exp Pure Intrinsic 0-2414.10 0-2514.13 fhneu Parameter, Real(4) 0-2335.23$ 0-2356.35$ 0-2357.22 g Parameter, Real(4) 0-2333.25$ 0-2346.37$ 0-2347.34 hpbl Parameter, Real(4) 0-2334.60$ 0-2352.30$ 0-2402.16 ilech Automatic, Integer(4), Offset: 0, Alignment: full word 0-2343.22$ 0-2382.7@ 0-2443.13 itr Automatic, Integer(4), Offset: 0, Alignment: full word 0-2343.29$ 0-2433.10@ itrmx Parameter, Integer(4) 0-2343.15$ 0-2348.34$ 0-2433.16 log Pure Intrinsic 0-2364.23 0-2364.23 0-2366.23 0-2366.23 0-2372.21 0-2372.21 0-2372.38 0-2372.38 0-2375.21 0-2375.21 0-2423.13 0-2424.13 0-2517.16 max Pure Intrinsic 0-2397.11 0-2409.13 0-2437.17 0-2509.16 0-2520.15 0-2521.15 min Pure Intrinsic 0-2465.23 0-2466.23 0-2492.23 0-2493.23 pihf Parameter, Real(4) 0-2334.12$ 0-2348.43$ 0-2373.16 0-2373.16 pshz Automatic, Real(4), Offset: 0, Alignment: full word 0-2340.42$ 0-2462.16@ 0-2463.32 0-2474.16@ 0-2475.35 0-2489.16@ 0-2490.35 0-2502.16@ 0-2503.35 pslhs Pure Statement Function Real(4) 0-2335.66$ 0-2367.7@ 0-2502.21 0-2503.21 pslhu Pure Statement Function Real(4) 0-2335.59$ 0-2366.7@ 0-2489.21 0-2490.21 pslms Pure Statement Function Real(4) 0-2335.52$ 0-2365.7@ 0-2495.21 0-2501.21 pslmu Pure Statement Function Real(4) 0-2335.45$ 0-2364.7@ 0-2482.21 0-2488.21 psmz Automatic, Real(4), Offset: 0, Alignment: full word 0-2340.30$ 0-2455.16@ 0-2461.32 0-2467.16@ 0-2473.35 0-2482.16@ 0-2488.35 0-2495.16@ 0-2501.35 psphs Pure Statement Function Real(4) 0-2336.41$ 0-2376.7@ 0-2474.21 0-2475.21 psphu Pure Statement Function Real(4) 0-2336.34$ 0-2375.7@ 0-2462.21 0-2463.21 pspms Pure Statement Function Real(4) 0-2336.27$ 0-2374.7@ 0-2467.21 0-2473.21 pspmu Pure Statement Function Real(4) 0-2336.16$ 0-2372.7@ 0-2455.21 0-2461.21 rdz Automatic, Real(4), Offset: 0, Alignment: full word 0-2337.53$ 0-2394.7@ 0-2395.17 rfac Parameter, Real(4) 0-2335.35$ 0-2357.12$ 0-2367.20 0-2367.20 rfc Parameter, Real(4) 0-2335.30$ 0-2356.45$ 0-2357.28 0-2357.32 ric Parameter, Real(4) 0-2335.12$ 0-2356.12$ 0-2356.31 0-2357.17 rlma Automatic, Real(4), Offset: 0, Alignment: full word 0-2340.68$ 0-2532.10@ 0-2536.15 rlmn Automatic, Real(4), Offset: 0, Alignment: full word 0-2340.62$ 0-2530.10@ 0-2532.25 rlmo Automatic, Real(4), Offset: 0, Alignment: full word 0-2339.12$ 0-2426.7@ 0-2437.26 0-2438.10@ 0-2439.22 0-2440.19 0-2441.19 0-2444.16 0-2481.16 0-2532.15 0-2536.10@ rlogt Automatic, Real(4), Offset: 0, Alignment: full word 0-2338.63$ 0-2424.7@ 0-2463.37 0-2475.40 0-2490.40 0-2503.40 0-2517.10@ rlogu Automatic, Real(4), Offset: 0, Alignment: full word 0-2338.56$ 0-2423.7@ 0-2461.37 0-2473.40 0-2488.40 0-2501.40 rric Parameter, Real(4) 0-2335.17$ 0-2356.22$ 0-2365.20 0-2365.20 sfcdif Subroutine 0-2322.18$ sfcspd Reference argument, Real(4), Offset: 0, Alignment: full word 0-2337.12$ 0-2322.43 0-2397.15 0-2397.22 simh Automatic, Real(4), Offset: 0, Alignment: full word 0-2340.48$ 0-2463.16@ 0-2475.16@ 0-2490.16@ 0-2503.16@ 0-2521.26 simm Automatic, Real(4), Offset: 0, Alignment: full word 0-2340.36$ 0-2461.16@ 0-2473.16@ 0-2488.16@ 0-2501.16@ 0-2520.26 sqrt Pure Intrinsic 0-2409.17 0-2409.27 0-2414.20 0-2450.20 0-2450.25 0-2451.20 0-2451.25 0-2452.20 0-2452.25 0-2453.20 0-2453.25 0-2509.20 0-2509.30 0-2514.23 sqvisc Parameter, Real(4) 0-2334.66$ 0-2353.11$ 0-2389.24 thlm Reference argument, Real(4), Offset: 0, Alignment: full word 0-2336.63$ 0-2322.38 0-2396.12 thz0 Reference argument, Real(4), Offset: 0, Alignment: full word 0-2336.57$ 0-2322.33 0-2396.17 ustar Automatic, Real(4), Offset: 0, Alignment: full word 0-2338.37$ 0-2409.7@ 0-2414.25 0-2426.27 0-2509.10@ 0-2514.28 0-2519.17 0-2530.30 ustark Automatic, Real(4), Offset: 0, Alignment: full word 0-2340.54$ 0-2519.10@ 0-2520.19 0-2521.19 vkrm Parameter, Real(4) 0-2333.28$ 0-2346.44$ 0-2347.41 0-2389.19 0-2519.23 wnew Parameter, Real(4) 0-2333.63$ 0-2348.21$ 0-2532.30 wold Parameter, Real(4) 0-2333.57$ 0-2348.12$ 0-2348.29 0-2532.20 wstar2 Automatic, Real(4), Offset: 0, Alignment: full word 0-2338.29$ 0-2405.10@ 0-2407.10@ 0-2409.36 0-2509.39 0-2526.13@ 0-2528.13@ wwst Parameter, Real(4) 0-2333.12$ 0-2346.12$ 0-2346.27 0-2346.32 wwst2 Parameter, Real(4) 0-2333.18$ 0-2346.21$ 0-2405.17 0-2526.20 xlt Automatic, Real(4), Offset: 0, Alignment: full word 0-2340.17$ 0-2451.16@ 0-2463.27 xlt4 Automatic, Real(4), Offset: 0, Alignment: full word 0-2339.54$ 0-2446.16@ 0-2451.30 xlu Automatic, Real(4), Offset: 0, Alignment: full word 0-2340.12$ 0-2450.16@ 0-2461.27 xlu4 Automatic, Real(4), Offset: 0, Alignment: full word 0-2339.48$ 0-2445.16@ 0-2450.30 xt Automatic, Real(4), Offset: 0, Alignment: full word 0-2340.26$ 0-2453.16@ 0-2462.27 xt4 Automatic, Real(4), Offset: 0, Alignment: full word 0-2339.65$ 0-2448.16@ 0-2453.30 xu Automatic, Real(4), Offset: 0, Alignment: full word 0-2340.22$ 0-2452.16@ 0-2455.27 xu4 Automatic, Real(4), Offset: 0, Alignment: full word 0-2339.60$ 0-2447.16@ 0-2452.30 xx Value argument, Real(4), Offset: 0, Alignment: full word 0-2375.13 0-2375.26 0-2375.29 xx Value argument, Real(4), Offset: 0, Alignment: full word 0-2372.13 0-2372.26 0-2372.43 0-2372.46 0-2372.66 xx Automatic, Real(4), Offset: 0, Alignment: full word 0-2336.12$ yy Value argument, Real(4), Offset: 0, Alignment: full word 0-2376.13 0-2376.20 yy Automatic, Real(4), Offset: 0, Alignment: full word 0-2336.23$ yy Value argument, Real(4), Offset: 0, Alignment: full word 0-2374.13 0-2374.20 z0 Reference argument, Real(4), Offset: 0, Alignment: full word 0-2336.53$ 0-2322.30 0-2392.10 0-2414.31 0-2414.36 0-2514.34 0-2514.39 zetalt Automatic, Real(4), Offset: 0, Alignment: full word 0-2339.18$ 0-2437.10@ 0-2438.15 0-2446.28 0-2466.16@ 0-2466.27 0-2475.27 0-2490.27 0-2493.16@ 0-2493.27 0-2503.27 zetalu Automatic, Real(4), Offset: 0, Alignment: full word 0-2339.26$ 0-2439.10@ 0-2445.28 0-2465.16@ 0-2465.27 0-2473.27 0-2488.27 0-2492.16@ 0-2492.27 0-2501.27 zetat Automatic, Real(4), Offset: 0, Alignment: full word 0-2339.41$ 0-2441.10@ 0-2448.28 0-2474.27 0-2489.27 0-2502.27 zetau Automatic, Real(4), Offset: 0, Alignment: full word 0-2339.34$ 0-2440.10@ 0-2447.28 0-2467.27 0-2482.27 0-2495.27 zilfc Automatic, Real(4), Offset: 0, Alignment: full word 0-2337.38$ 0-2389.7@ 0-2414.14 0-2514.17 zlm Reference argument, Real(4), Offset: 0, Alignment: full word 0-2336.48$ 0-2322.26 0-2394.14 0-2417.12 0-2418.12 0-2516.15 zslt Automatic, Real(4), Offset: 0, Alignment: full word 0-2338.50$ 0-2418.7@ 0-2424.17 0-2437.21 0-2438.22 0-2516.10@ 0-2517.20 zslu Automatic, Real(4), Offset: 0, Alignment: full word 0-2338.44$ 0-2417.7@ 0-2423.17 0-2439.17 zt Automatic, Real(4), Offset: 0, Alignment: full word 0-2337.49$ 0-2414.7@ 0-2418.16 0-2424.22 0-2441.16 0-2514.10@ 0-2516.19 0-2517.25 ztmax Parameter, Real(4) 0-2334.53$ 0-2352.21$ 0-2465.34 0-2466.34 0-2492.34 0-2493.34 ztmin Parameter, Real(4) 0-2334.46$ 0-2352.11$ 0-2437.31 zu Automatic, Real(4), Offset: 0, Alignment: full word 0-2337.45$ 0-2392.7@ 0-2417.16 0-2423.22 0-2440.16 zz Value argument, Real(4), Offset: 0, Alignment: full word 0-2367.13 0-2367.17 0-2367.39 zz Value argument, Real(4), Offset: 0, Alignment: full word 0-2364.13 0-2364.35 zz Automatic, Real(4), Offset: 0, Alignment: full word 0-2335.41$ zz Value argument, Real(4), Offset: 0, Alignment: full word 0-2366.13 0-2366.35 zz Value argument, Real(4), Offset: 0, Alignment: full word 0-2365.13 0-2365.17 0-2365.39 ** sfcdif === End of Compilation 13 === >>>>> COMPILATION UNIT EPILOGUE SECTION <<<<< FORTRAN Summary of Diagnosed Conditions TOTAL UNRECOVERABLE SEVERE ERROR WARNING INFORMATIONAL (U) (S) (E) (W) (I) 0 0 0 0 0 0 >>>>> OPTIONS SECTION <<<<< *** Options In Effect *** == On / Off Options == CR DBG ESCAPE FULLPATH I4 INLGLUE NOLIBESSL NOLIBPOSIX OBJECT SOURCE STRICT SWAPOMP THREADED UNWIND ZEROSIZE == Options Of Integer Type == ALIAS_SIZE(65536) MAXMEM(-1) OPTIMIZE(2) SPILLSIZE(2000) STACKTEMP(0) == Options Of Character Type == 64(LARGETYPE) ALIAS(STD,NOINTPTR) ALIGN(BINDC(POWER),STRUCT(NATURAL)) ARCH(PWR6) ATTR(FULL) AUTODBL(NONE) DESCRIPTOR(V1) DIRECTIVE(IBM*,IBMT) ENUM() FLAG(I,I) FLOAT(RNDSNGL,MAF,FOLD,RNGCHK,SINGLE) FREE(F90) HALT(S) IEEE(NEAR) INTSIZE(4) LANGLVL(EXTENDED) REALSIZE(4) NOSAVE() TUNE(PWR6) UNROLL(AUTO) XREF(FULL) XLF2003(NOPOLYMORPHIC,NOBOZLITARGS,NOSTOPEXCEPT,NOVOLATILE,NOAUTOREALLOC,OLDNANINF) XLF77(LEADZERO,BLANKPAD) XLF90(NOSIGNEDZERO,NOAUTODEALLOC,OLDPAD) >>>>> SOURCE SECTION <<<<< 2558 | 2559 |! -- 13. PHYSICS SUBROUTINE ==> SUBROUTINE SHFLX --------------------- 2560 | 2561 | SUBROUTINE SHFLX (SSOIL,STC,SMC,SMCMAX,NSOIL,T1,DT,YY,ZZ1,ZSOIL, & 2562 | TBOT,ZBOT,SMCWLT,PSISAT,SH2O,BEXP,F1,DF1,ICE, & 2563 | QUARTZ,CSOIL) 2564 | 2565 | IMPLICIT NONE 2566 | 2567 |! ---------------------------------------------------------------------- 2568 |! SUBROUTINE SHFLX 2569 |! ---------------------------------------------------------------------- 2570 |! UPDATE THE TEMPERATURE STATE OF THE SOIL COLUMN BASED ON THE THERMAL 2571 |! DIFFUSION EQUATION AND UPDATE THE FROZEN SOIL MOISTURE CONTENT BASED 2572 |! ON THE TEMPERATURE. 2573 |! ---------------------------------------------------------------------- 2574 | INTEGER, PARAMETER:: NSOLD=4 2575 | 2576 | INTEGER I 2577 | INTEGER ICE 2578 | INTEGER IFRZ 2579 | INTEGER NSOIL 2580 | 2581 | REAL AI(NSOLD) 2582 | REAL BI(NSOLD) 2583 | REAL CI(NSOLD) 2584 | 2585 | REAL BEXP 2586 | REAL CSOIL 2587 | REAL DF1 2588 | REAL DT 2589 | REAL F1 2590 | REAL PSISAT 2591 | REAL QUARTZ 2592 | REAL RHSTS(NSOLD) 2593 | REAL SSOIL 2594 | REAL SH2O(NSOIL) 2595 | REAL SMC(NSOIL) 2596 | REAL SMCMAX 2597 | REAL SMCWLT 2598 | REAL STC(NSOIL) 2599 | REAL STCF(NSOLD) 2600 | REAL T0 2601 | REAL T1 2602 | REAL TBOT 2603 | REAL YY 2604 | REAL ZBOT 2605 | REAL ZSOIL(NSOIL) 2606 | REAL ZZ1 2607 | 2608 | PARAMETER(T0 = 273.15) 2609 | 2610 |! ---------------------------------------------------------------------- 2611 |! HRT ROUTINE CALCS THE RIGHT HAND SIDE OF THE SOIL TEMP DIF EQN 2612 |! ---------------------------------------------------------------------- 2613 | IF (ICE.NE.0) THEN 2614 | 2615 |! ---------------------------------------------------------------------- 2616 |! SEA-ICE CASE, GLACIAL-ICE CASE 2617 |! ---------------------------------------------------------------------- 2618 | CALL HRTICE (RHSTS,STC,NSOIL,ZSOIL,YY,ZZ1,DF1,AI,BI,CI) 2619 | 2620 | CALL HSTEP (STCF,STC,RHSTS,DT,NSOIL,AI,BI,CI) 2621 | 2622 | ELSE 2623 | 2624 |! ---------------------------------------------------------------------- 2625 |! LAND-MASS CASE 2626 |! ---------------------------------------------------------------------- 2627 | CALL HRT (RHSTS,STC,SMC,SMCMAX,NSOIL,ZSOIL,YY,ZZ1,TBOT, & 2628 | ZBOT,PSISAT,SH2O,DT, & 2629 | BEXP,F1,DF1,QUARTZ,CSOIL,AI,BI,CI) 2630 | 2631 | CALL HSTEP (STCF,STC,RHSTS,DT,NSOIL,AI,BI,CI) 2632 | 2633 | ENDIF 2634 | 2635 | DO I = 1,NSOIL 2636 | STC(I) = STCF(I) 2637 | END DO 2638 | 2639 |! ---------------------------------------------------------------------- 2640 |! IN THE NO SNOWPACK CASE (VIA ROUTINE NOPAC BRANCH,) UPDATE THE GRND 2641 |! (SKIN) TEMPERATURE HERE IN RESPONSE TO THE UPDATED SOIL TEMPERATURE 2642 |! PROFILE ABOVE. (NOTE: INSPECTION OF ROUTINE SNOPAC SHOWS THAT T1 2643 |! BELOW IS A DUMMY VARIABLE ONLY, AS SKIN TEMPERATURE IS UPDATED 2644 |! DIFFERENTLY IN ROUTINE SNOPAC) 2645 |! ---------------------------------------------------------------------- 2646 | T1 = (YY + (ZZ1 - 1.0) * STC(1)) / ZZ1 2647 | 2648 |! ---------------------------------------------------------------------- 2649 |! CALCULATE SURFACE SOIL HEAT FLUX 2650 |! ---------------------------------------------------------------------- 2651 | SSOIL = DF1 * (STC(1) - T1) / (0.5 * ZSOIL(1)) 2652 | 2653 |! ---------------------------------------------------------------------- 2654 |! END SUBROUTINE SHFLX 2655 |! ---------------------------------------------------------------------- 2656 | RETURN 2657 | END >>>>> ATTRIBUTE AND CROSS REFERENCE SECTION <<<<< IDENTIFIER NAME CROSS REFERENCE AND ATTRIBUTES ai Automatic, Real(4) (1:4), Offset: 0, Alignment: full word 0-2581.12$ 0-2618.56 0-2620.46 0-2629.44 0-2631.46 bexp Reference argument, Real(4), Offset: 0, Alignment: full word 0-2585.12$ 0-2562.53 0-2629.19 bi Automatic, Real(4) (1:4), Offset: 0, Alignment: full word 0-2582.12$ 0-2618.59 0-2620.49 0-2629.47 0-2631.49 ci Automatic, Real(4) (1:4), Offset: 0, Alignment: full word 0-2583.12$ 0-2618.62 0-2620.52 0-2629.50 0-2631.52 csoil Reference argument, Real(4), Offset: 0, Alignment: full word 0-2586.12$ 0-2563.31 0-2629.38 df1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-2587.12$ 0-2562.61 0-2618.52 0-2629.27 0-2651.15 dt Reference argument, Real(4), Offset: 0, Alignment: full word 0-2588.12$ 0-2561.55 0-2620.37 0-2628.36 0-2631.37 f1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-2589.12$ 0-2562.58 0-2629.24 hrt External Subroutine 0-2627.15 hrtice External Subroutine 0-2618.15 hstep External Subroutine 0-2620.15 0-2631.15 i Automatic, Integer(4), Offset: 0, Alignment: full word 0-2576.15$ 0-2635.10@ 0-2636.14 0-2636.24 ice Reference argument, Integer(4), Offset: 0, Alignment: full word 0-2577.15$ 0-2562.65 0-2613.11 ifrz Automatic, Integer(4), Offset: 0, Alignment: full word 0-2578.15$ nsoil Reference argument, Integer(4), Offset: 0, Alignment: full word 0-2579.15$ 0-2561.46 0-2594.17 0-2594.17 0-2595.16 0-2595.16 0-2598.16 0-2598.16 0-2605.18 0-2605.18 0-2618.33 0-2620.40 0-2627.41 0-2631.40 0-2635.16 nsold Parameter, Integer(4) 0-2574.28$ 0-2581.15 0-2582.15 0-2583.15 0-2592.18 0-2599.17 psisat Reference argument, Real(4), Offset: 0, Alignment: full word 0-2590.12$ 0-2562.41 0-2628.24 quartz Reference argument, Real(4), Offset: 0, Alignment: full word 0-2591.12$ 0-2563.24 0-2629.31 rhsts Automatic, Real(4) (1:4), Offset: 0, Alignment: full word 0-2592.12$ 0-2618.23 0-2620.31 0-2627.20 0-2631.31 sh2o Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-2594.12$ 0-2562.48 0-2628.31 shflx Subroutine 0-2561.18$ smc Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-2595.12$ 0-2561.35 0-2627.30 smcmax Reference argument, Real(4), Offset: 0, Alignment: full word 0-2596.12$ 0-2561.39 0-2627.34 smcwlt Reference argument, Real(4), Offset: 0, Alignment: full word 0-2597.12$ 0-2562.34 ssoil Reference argument, Real(4), Offset: 0, Alignment: full word 0-2593.12$ 0-2561.25 0-2651.7@ stc Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-2598.12$ 0-2561.31 0-2618.29 0-2620.27 0-2627.26 0-2631.27 0-2636.10@ 0-2646.32 0-2651.22 stcf Automatic, Real(4) (1:4), Offset: 0, Alignment: full word 0-2599.12$ 0-2620.22 0-2631.22 0-2636.19 t0 Parameter, Real(4) 0-2600.12$ 0-2608.17$ t1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-2601.12$ 0-2561.52 0-2646.7@ 0-2651.31 tbot Reference argument, Real(4), Offset: 0, Alignment: full word 0-2602.12$ 0-2562.24 0-2627.60 yy Reference argument, Real(4), Offset: 0, Alignment: full word 0-2603.12$ 0-2561.58 0-2618.45 0-2627.53 0-2646.13 zbot Reference argument, Real(4), Offset: 0, Alignment: full word 0-2604.12$ 0-2562.29 0-2628.19 zsoil Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-2605.12$ 0-2561.65 0-2618.39 0-2627.47 0-2651.44 zz1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-2606.12$ 0-2561.61 0-2618.48 0-2627.56 0-2646.19 0-2646.42 ** shflx === End of Compilation 14 === >>>>> COMPILATION UNIT EPILOGUE SECTION <<<<< FORTRAN Summary of Diagnosed Conditions TOTAL UNRECOVERABLE SEVERE ERROR WARNING INFORMATIONAL (U) (S) (E) (W) (I) 0 0 0 0 0 0 >>>>> OPTIONS SECTION <<<<< *** Options In Effect *** == On / Off Options == CR DBG ESCAPE FULLPATH I4 INLGLUE NOLIBESSL NOLIBPOSIX OBJECT SOURCE STRICT SWAPOMP THREADED UNWIND ZEROSIZE == Options Of Integer Type == ALIAS_SIZE(65536) MAXMEM(-1) OPTIMIZE(2) SPILLSIZE(2000) STACKTEMP(0) == Options Of Character Type == 64(LARGETYPE) ALIAS(STD,NOINTPTR) ALIGN(BINDC(POWER),STRUCT(NATURAL)) ARCH(PWR6) ATTR(FULL) AUTODBL(NONE) DESCRIPTOR(V1) DIRECTIVE(IBM*,IBMT) ENUM() FLAG(I,I) FLOAT(RNDSNGL,MAF,FOLD,RNGCHK,SINGLE) FREE(F90) HALT(S) IEEE(NEAR) INTSIZE(4) LANGLVL(EXTENDED) REALSIZE(4) NOSAVE() TUNE(PWR6) UNROLL(AUTO) XREF(FULL) XLF2003(NOPOLYMORPHIC,NOBOZLITARGS,NOSTOPEXCEPT,NOVOLATILE,NOAUTOREALLOC,OLDNANINF) XLF77(LEADZERO,BLANKPAD) XLF90(NOSIGNEDZERO,NOAUTODEALLOC,OLDPAD) >>>>> SOURCE SECTION <<<<< 2658 | 2659 |! -- 14. PHYSICS SUBROUTINE ==> SUBROUTINE SMFLX ---------------------- 2660 | 2661 | SUBROUTINE SMFLX (SMC,NSOIL,CMC,DT,PRCP1,ZSOIL, & 2662 | SH2O,SLOPE,KDT,FRZFACT, & 2663 | SMCMAX,BEXP,SMCWLT,DKSAT,DWSAT, & 2664 | SHDFAC,CMCMAX, & 2665 | RUNOFF1,RUNOFF2,RUNOFF3, & 2666 | EDIR1,EC1,ET1, & 2667 | DRIP) 2668 | 2669 | IMPLICIT NONE 2670 | 2671 |! ---------------------------------------------------------------------- 2672 |! SUBROUTINE SMFLX 2673 |! ---------------------------------------------------------------------- 2674 |! CALCULATE SOIL MOISTURE FLUX. THE SOIL MOISTURE CONTENT (SMC - A PER 2675 |! UNIT VOLUME MEASUREMENT) IS A DEPENDENT VARIABLE THAT IS UPDATED WITH 2676 |! PROGNOSTIC EQNS. THE CANOPY MOISTURE CONTENT (CMC) IS ALSO UPDATED. 2677 |! FROZEN GROUND VERSION: NEW STATES ADDED: SH2O, AND FROZEN GROUND 2678 |! CORRECTION FACTOR, FRZFACT AND PARAMETER SLOPE. 2679 |! ---------------------------------------------------------------------- 2680 | INTEGER, PARAMETER:: NSOLD=4 2681 | 2682 | INTEGER I 2683 | INTEGER K 2684 | INTEGER NSOIL 2685 | 2686 | REAL AI(NSOLD) 2687 | REAL BI(NSOLD) 2688 | REAL CI(NSOLD) 2689 | 2690 | REAL BEXP 2691 | REAL CMC 2692 | REAL CMCMAX 2693 | REAL DKSAT 2694 | REAL DRIP 2695 | REAL DT 2696 | REAL DUMMY 2697 | REAL DWSAT 2698 | REAL EC1 2699 | REAL EDIR1 2700 | REAL ET1(NSOIL) 2701 | REAL EXCESS 2702 | REAL FRZFACT 2703 | REAL KDT 2704 | REAL PCPDRP 2705 | REAL PRCP1 2706 | REAL RHSCT 2707 | REAL RHSTT(NSOLD) 2708 | REAL RUNOFF1 2709 | REAL RUNOFF2 2710 | REAL RUNOFF3 2711 | REAL SHDFAC 2712 | REAL SMC(NSOIL) 2713 | REAL SH2O(NSOIL) 2714 | REAL SICE(NSOLD) 2715 | REAL SH2OA(NSOLD) 2716 | REAL SH2OFG(NSOLD) 2717 | REAL SLOPE 2718 | REAL SMCMAX 2719 | REAL SMCWLT 2720 | REAL TRHSCT 2721 | REAL ZSOIL(NSOIL) 2722 | 2723 |! ---------------------------------------------------------------------- 2724 |! EXECUTABLE CODE BEGINS HERE. 2725 |! ---------------------------------------------------------------------- 2726 | DUMMY = 0. 2727 | 2728 |! ---------------------------------------------------------------------- 2729 |! COMPUTE THE RIGHT HAND SIDE OF THE CANOPY EQN TERM ( RHSCT ) 2730 |! ---------------------------------------------------------------------- 2731 | RHSCT = SHDFAC * PRCP1 - EC1 2732 | 2733 |! ---------------------------------------------------------------------- 2734 |! CONVERT RHSCT (A RATE) TO TRHSCT (AN AMOUNT) AND ADD IT TO EXISTING 2735 |! CMC. IF RESULTING AMT EXCEEDS MAX CAPACITY, IT BECOMES DRIP AND WILL 2736 |! FALL TO THE GRND. 2737 |! ---------------------------------------------------------------------- 2738 | DRIP = 0. 2739 | TRHSCT = DT * RHSCT 2740 | EXCESS = CMC + TRHSCT 2741 | IF (EXCESS .GT. CMCMAX) DRIP = EXCESS - CMCMAX 2742 | 2743 |! ---------------------------------------------------------------------- 2744 |! PCPDRP IS THE COMBINED PRCP1 AND DRIP (FROM CMC) THAT GOES INTO THE 2745 |! SOIL 2746 |! ---------------------------------------------------------------------- 2747 | PCPDRP = (1. - SHDFAC) * PRCP1 + DRIP / DT 2748 | 2749 |! ---------------------------------------------------------------------- 2750 |! STORE ICE CONTENT AT EACH SOIL LAYER BEFORE CALLING SRT & SSTEP 2751 |! ---------------------------------------------------------------------- 2752 | DO I = 1,NSOIL 2753 | SICE(I) = SMC(I) - SH2O(I) 2754 | END DO 2755 | 2756 |! ---------------------------------------------------------------------- 2757 |! CALL SUBROUTINES SRT AND SSTEP TO SOLVE THE SOIL MOISTURE 2758 |! TENDENCY EQUATIONS. 2759 |! 2760 |! IF THE INFILTRATING PRECIP RATE IS NONTRIVIAL, 2761 |! (WE CONSIDER NONTRIVIAL TO BE A PRECIP TOTAL OVER THE TIME STEP 2762 |! EXCEEDING ONE ONE-THOUSANDTH OF THE WATER HOLDING CAPACITY OF 2763 |! THE FIRST SOIL LAYER) 2764 |! THEN CALL THE SRT/SSTEP SUBROUTINE PAIR TWICE IN THE MANNER OF 2765 |! TIME SCHEME "F" (IMPLICIT STATE, AVERAGED COEFFICIENT) 2766 |! OF SECTION 2 OF KALNAY AND KANAMITSU (1988, MWR, VOL 116, 2767 |! PAGES 1945-1958)TO MINIMIZE 2-DELTA-T OSCILLATIONS IN THE 2768 |! SOIL MOISTURE VALUE OF THE TOP SOIL LAYER THAT CAN ARISE BECAUSE 2769 |! OF THE EXTREME NONLINEAR DEPENDENCE OF THE SOIL HYDRAULIC 2770 |! DIFFUSIVITY COEFFICIENT AND THE HYDRAULIC CONDUCTIVITY ON THE 2771 |! SOIL MOISTURE STATE 2772 |! OTHERWISE CALL THE SRT/SSTEP SUBROUTINE PAIR ONCE IN THE MANNER OF 2773 |! TIME SCHEME "D" (IMPLICIT STATE, EXPLICIT COEFFICIENT) 2774 |! OF SECTION 2 OF KALNAY AND KANAMITSU 2775 |! PCPDRP IS UNITS OF KG/M**2/S OR MM/S, ZSOIL IS NEGATIVE DEPTH IN M 2776 |! ---------------------------------------------------------------------- 2777 |! IF ( PCPDRP .GT. 0.0 ) THEN 2778 | IF ( (PCPDRP*DT) .GT. (0.001*1000.0*(-ZSOIL(1))*SMCMAX) ) THEN 2779 | 2780 |! ---------------------------------------------------------------------- 2781 |! FROZEN GROUND VERSION: 2782 |! SMC STATES REPLACED BY SH2O STATES IN SRT SUBR. SH2O & SICE STATES 2783 |! INCLUDED IN SSTEP SUBR. FROZEN GROUND CORRECTION FACTOR, FRZFACT 2784 |! ADDED. ALL WATER BALANCE CALCULATIONS USING UNFROZEN WATER 2785 |! ---------------------------------------------------------------------- 2786 | CALL SRT (RHSTT,EDIR1,ET1,SH2O,SH2O,NSOIL,PCPDRP,ZSOIL, & 2787 | DWSAT,DKSAT,SMCMAX,BEXP,RUNOFF1, & 2788 | RUNOFF2,DT,SMCWLT,SLOPE,KDT,FRZFACT,SICE,AI,BI,CI) 2789 | 2790 | CALL SSTEP (SH2OFG,SH2O,DUMMY,RHSTT,RHSCT,DT,NSOIL,SMCMAX, & 2791 | CMCMAX,RUNOFF3,ZSOIL,SMC,SICE,AI,BI,CI) 2792 | 2793 | DO K = 1,NSOIL 2794 | SH2OA(K) = (SH2O(K) + SH2OFG(K)) * 0.5 2795 | END DO 2796 | 2797 | CALL SRT (RHSTT,EDIR1,ET1,SH2O,SH2OA,NSOIL,PCPDRP,ZSOIL, & 2798 | DWSAT,DKSAT,SMCMAX,BEXP,RUNOFF1, & 2799 | RUNOFF2,DT,SMCWLT,SLOPE,KDT,FRZFACT,SICE,AI,BI,CI) 2800 | 2801 | CALL SSTEP (SH2O,SH2O,CMC,RHSTT,RHSCT,DT,NSOIL,SMCMAX, & 2802 | CMCMAX,RUNOFF3,ZSOIL,SMC,SICE,AI,BI,CI) 2803 | 2804 | ELSE 2805 | 2806 | CALL SRT (RHSTT,EDIR1,ET1,SH2O,SH2O,NSOIL,PCPDRP,ZSOIL, & 2807 | DWSAT,DKSAT,SMCMAX,BEXP,RUNOFF1, & 2808 | RUNOFF2,DT,SMCWLT,SLOPE,KDT,FRZFACT,SICE,AI,BI,CI) 2809 | 2810 | CALL SSTEP (SH2O,SH2O,CMC,RHSTT,RHSCT,DT,NSOIL,SMCMAX, & 2811 | CMCMAX,RUNOFF3,ZSOIL,SMC,SICE,AI,BI,CI) 2812 | 2813 | ENDIF 2814 | 2815 |! RUNOF = RUNOFF 2816 | 2817 |! ---------------------------------------------------------------------- 2818 |! END SUBROUTINE SMFLX 2819 |! ---------------------------------------------------------------------- 2820 | RETURN 2821 | END >>>>> ATTRIBUTE AND CROSS REFERENCE SECTION <<<<< IDENTIFIER NAME CROSS REFERENCE AND ATTRIBUTES ai Automatic, Real(4) (1:4), Offset: 0, Alignment: full word 0-2686.12$ 0-2788.59 0-2791.50 0-2799.59 0-2802.50 0-2808.59 0-2811.50 bexp Reference argument, Real(4), Offset: 0, Alignment: full word 0-2690.12$ 0-2663.31 0-2787.37 0-2798.37 0-2807.37 bi Automatic, Real(4) (1:4), Offset: 0, Alignment: full word 0-2687.12$ 0-2788.62 0-2791.53 0-2799.62 0-2802.53 0-2808.62 0-2811.53 ci Automatic, Real(4) (1:4), Offset: 0, Alignment: full word 0-2688.12$ 0-2788.65 0-2791.56 0-2799.65 0-2802.56 0-2808.65 0-2811.56 cmc Reference argument, Real(4), Offset: 0, Alignment: full word 0-2691.12$ 0-2661.35 0-2740.16 0-2801.31 0-2810.31 cmcmax Reference argument, Real(4), Offset: 0, Alignment: full word 0-2692.12$ 0-2664.31 0-2741.23 0-2741.47 0-2791.20 0-2802.20 0-2811.20 dksat Reference argument, Real(4), Offset: 0, Alignment: full word 0-2693.12$ 0-2663.43 0-2787.24 0-2798.24 0-2807.24 drip Reference argument, Real(4), Offset: 0, Alignment: full word 0-2694.12$ 0-2667.24 0-2738.7@ 0-2741.31@ 0-2747.40 dt Reference argument, Real(4), Offset: 0, Alignment: full word 0-2695.12$ 0-2661.39 0-2739.16 0-2747.47 0-2778.20 0-2788.26 0-2790.51 0-2799.26 0-2801.47 0-2808.26 0-2810.47 dummy Automatic, Real(4), Offset: 0, Alignment: full word 0-2696.12$ 0-2726.7@ 0-2790.33 dwsat Reference argument, Real(4), Offset: 0, Alignment: full word 0-2697.12$ 0-2663.49 0-2787.18 0-2798.18 0-2807.18 ec1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-2698.12$ 0-2666.30 0-2731.32 edir1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-2699.12$ 0-2666.24 0-2786.25 0-2797.25 0-2806.25 et1 Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-2700.12$ 0-2666.34 0-2786.31 0-2797.31 0-2806.31 excess Automatic, Real(4), Offset: 0, Alignment: full word 0-2701.12$ 0-2740.7@ 0-2741.11 0-2741.38 frzfact Reference argument, Real(4), Offset: 0, Alignment: full word 0-2702.12$ 0-2662.39 0-2788.46 0-2799.46 0-2808.46 i Automatic, Integer(4), Offset: 0, Alignment: full word 0-2682.15$ 0-2752.10@ 0-2753.14 0-2753.23 0-2753.33 k Automatic, Integer(4), Offset: 0, Alignment: full word 0-2683.15$ 0-2793.12@ 0-2794.17 0-2794.28 0-2794.40 kdt Reference argument, Real(4), Offset: 0, Alignment: full word 0-2703.12$ 0-2662.35 0-2788.42 0-2799.42 0-2808.42 nsoil Reference argument, Integer(4), Offset: 0, Alignment: full word 0-2684.15$ 0-2661.29 0-2700.16 0-2700.16 0-2712.16 0-2712.16 0-2713.17 0-2713.17 0-2721.18 0-2721.18 0-2752.16 0-2786.45 0-2790.54 0-2793.18 0-2797.46 0-2801.50 0-2806.45 0-2810.50 nsold Parameter, Integer(4) 0-2680.28$ 0-2686.15 0-2687.15 0-2688.15 0-2707.18 0-2714.17 0-2715.18 0-2716.19 pcpdrp Automatic, Real(4), Offset: 0, Alignment: full word 0-2704.12$ 0-2747.7@ 0-2778.13 0-2786.51 0-2797.52 0-2806.51 prcp1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-2705.12$ 0-2661.42 0-2731.24 0-2747.32 rhsct Automatic, Real(4), Offset: 0, Alignment: full word 0-2706.12$ 0-2731.7@ 0-2739.21 0-2790.45 0-2801.41 0-2810.41 rhstt Automatic, Real(4) (1:4), Offset: 0, Alignment: full word 0-2707.12$ 0-2786.19 0-2790.39 0-2797.19 0-2801.35 0-2806.19 0-2810.35 runoff1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-2708.12$ 0-2665.24 0-2787.42 0-2798.42 0-2807.42 runoff2 Reference argument, Real(4), Offset: 0, Alignment: full word 0-2709.12$ 0-2665.32 0-2788.18 0-2799.18 0-2808.18 runoff3 Reference argument, Real(4), Offset: 0, Alignment: full word 0-2710.12$ 0-2665.40 0-2791.27 0-2802.27 0-2811.27 sh2o Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-2713.12$ 0-2662.24 0-2753.28 0-2786.35 0-2786.40 0-2790.28 0-2794.23 0-2797.35 0-2801.21 0-2801.26 0-2806.35 0-2806.40 0-2810.21 0-2810.26 sh2oa Automatic, Real(4) (1:4), Offset: 0, Alignment: full word 0-2715.12$ 0-2794.11@ 0-2797.40 sh2ofg Automatic, Real(4) (1:4), Offset: 0, Alignment: full word 0-2716.12$ 0-2790.21 0-2794.33 shdfac Reference argument, Real(4), Offset: 0, Alignment: full word 0-2711.12$ 0-2664.24 0-2731.15 0-2747.22 sice Automatic, Real(4) (1:4), Offset: 0, Alignment: full word 0-2714.12$ 0-2753.9@ 0-2788.54 0-2791.45 0-2799.54 0-2802.45 0-2808.54 0-2811.45 slope Reference argument, Real(4), Offset: 0, Alignment: full word 0-2717.12$ 0-2662.29 0-2788.36 0-2799.36 0-2808.36 smc Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-2712.12$ 0-2661.25 0-2753.19 0-2791.41 0-2802.41 0-2811.41 smcmax Reference argument, Real(4), Offset: 0, Alignment: full word 0-2718.12$ 0-2663.24 0-2778.55 0-2787.30 0-2790.60 0-2798.30 0-2801.56 0-2807.30 0-2810.56 smcwlt Reference argument, Real(4), Offset: 0, Alignment: full word 0-2719.12$ 0-2663.36 0-2788.29 0-2799.29 0-2808.29 smflx Subroutine 0-2661.18$ srt External Subroutine 0-2786.14 0-2797.14 0-2806.14 sstep External Subroutine 0-2790.14 0-2801.14 0-2810.14 trhsct Automatic, Real(4), Offset: 0, Alignment: full word 0-2720.12$ 0-2739.7@ 0-2740.22 zsoil Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-2721.12$ 0-2661.48 0-2778.45 0-2786.58 0-2791.35 0-2797.59 0-2802.35 0-2806.58 0-2811.35 ** smflx === End of Compilation 15 === >>>>> COMPILATION UNIT EPILOGUE SECTION <<<<< FORTRAN Summary of Diagnosed Conditions TOTAL UNRECOVERABLE SEVERE ERROR WARNING INFORMATIONAL (U) (S) (E) (W) (I) 0 0 0 0 0 0 >>>>> OPTIONS SECTION <<<<< *** Options In Effect *** == On / Off Options == CR DBG ESCAPE FULLPATH I4 INLGLUE NOLIBESSL NOLIBPOSIX OBJECT SOURCE STRICT SWAPOMP THREADED UNWIND ZEROSIZE == Options Of Integer Type == ALIAS_SIZE(65536) MAXMEM(-1) OPTIMIZE(2) SPILLSIZE(2000) STACKTEMP(0) == Options Of Character Type == 64(LARGETYPE) ALIAS(STD,NOINTPTR) ALIGN(BINDC(POWER),STRUCT(NATURAL)) ARCH(PWR6) ATTR(FULL) AUTODBL(NONE) DESCRIPTOR(V1) DIRECTIVE(IBM*,IBMT) ENUM() FLAG(I,I) FLOAT(RNDSNGL,MAF,FOLD,RNGCHK,SINGLE) FREE(F90) HALT(S) IEEE(NEAR) INTSIZE(4) LANGLVL(EXTENDED) REALSIZE(4) NOSAVE() TUNE(PWR6) UNROLL(AUTO) XREF(FULL) XLF2003(NOPOLYMORPHIC,NOBOZLITARGS,NOSTOPEXCEPT,NOVOLATILE,NOAUTOREALLOC,OLDNANINF) XLF77(LEADZERO,BLANKPAD) XLF90(NOSIGNEDZERO,NOAUTODEALLOC,OLDPAD) >>>>> SOURCE SECTION <<<<< 2822 | 2823 |! -- 15. PHYSICS SUBROUTINE ==> SUBROUTINE SNFRAC -------------------- 2824 | 2825 | SUBROUTINE SNFRAC (SNEQV,SNUP,SALP,SNOWH,SNCOVR) 2826 | 2827 | IMPLICIT NONE 2828 | 2829 |! ---------------------------------------------------------------------- 2830 |! SUBROUTINE SNFRAC 2831 |! ---------------------------------------------------------------------- 2832 |! CALCULATE SNOW FRACTION (0 -> 1) 2833 |! SNEQV SNOW WATER EQUIVALENT (M) 2834 |! SNUP THRESHOLD SNEQV DEPTH ABOVE WHICH SNCOVR=1 2835 |! SALP TUNING PARAMETER 2836 |! SNCOVR FRACTIONAL SNOW COVER 2837 |! ---------------------------------------------------------------------- 2838 | REAL SNEQV, SNUP, SALP, SNCOVR, RSNOW, Z0N, SNOWH 2839 | 2840 |! ---------------------------------------------------------------------- 2841 |! SNUP IS VEG-CLASS DEPENDENT SNOWDEPTH THRESHHOLD (SET IN ROUTINE 2842 |! REDPRM) ABOVE WHICH SNOCVR=1. 2843 |! ---------------------------------------------------------------------- 2844 | IF (SNEQV .LT. SNUP) THEN 2845 | RSNOW = SNEQV/SNUP 2846 | SNCOVR = 1. - ( EXP(-SALP*RSNOW) - RSNOW*EXP(-SALP)) 2847 | ELSE 2848 | SNCOVR = 1.0 2849 | ENDIF 2850 | 2851 | Z0N=0.035 2852 |! FORMULATION OF DICKINSON ET AL. 1986 2853 | 2854 |! SNCOVR=SNOWH/(SNOWH + 5*Z0N) 2855 | 2856 |! FORMULATION OF MARSHALL ET AL. 1994 2857 |! SNCOVR=SNEQV/(SNEQV + 2*Z0N) 2858 | 2859 |! ---------------------------------------------------------------------- 2860 |! END SUBROUTINE SNFRAC 2861 |! ---------------------------------------------------------------------- 2862 | RETURN 2863 | END >>>>> ATTRIBUTE AND CROSS REFERENCE SECTION <<<<< IDENTIFIER NAME CROSS REFERENCE AND ATTRIBUTES exp Pure Intrinsic 0-2846.29 0-2846.54 rsnow Automatic, Real(4), Offset: 0, Alignment: full word 0-2838.39$ 0-2845.13@ 0-2846.39 0-2846.48 salp Reference argument, Real(4), Offset: 0, Alignment: full word 0-2838.25$ 0-2825.37 0-2846.34 0-2846.59 sncovr Reference argument, Real(4), Offset: 0, Alignment: full word 0-2838.31$ 0-2825.48 0-2846.13@ 0-2848.13@ sneqv Reference argument, Real(4), Offset: 0, Alignment: full word 0-2838.12$ 0-2825.26 0-2844.15 0-2845.21 snfrac Subroutine 0-2825.18$ snowh Reference argument, Real(4), Offset: 0, Alignment: full word 0-2838.51$ 0-2825.42 snup Reference argument, Real(4), Offset: 0, Alignment: full word 0-2838.19$ 0-2825.32 0-2844.26 0-2845.27 z0n Automatic, Real(4), Offset: 0, Alignment: full word 0-2838.46$ 0-2851.11@ ** snfrac === End of Compilation 16 === >>>>> COMPILATION UNIT EPILOGUE SECTION <<<<< FORTRAN Summary of Diagnosed Conditions TOTAL UNRECOVERABLE SEVERE ERROR WARNING INFORMATIONAL (U) (S) (E) (W) (I) 0 0 0 0 0 0 >>>>> OPTIONS SECTION <<<<< *** Options In Effect *** == On / Off Options == CR DBG ESCAPE FULLPATH I4 INLGLUE NOLIBESSL NOLIBPOSIX OBJECT SOURCE STRICT SWAPOMP THREADED UNWIND ZEROSIZE == Options Of Integer Type == ALIAS_SIZE(65536) MAXMEM(-1) OPTIMIZE(2) SPILLSIZE(2000) STACKTEMP(0) == Options Of Character Type == 64(LARGETYPE) ALIAS(STD,NOINTPTR) ALIGN(BINDC(POWER),STRUCT(NATURAL)) ARCH(PWR6) ATTR(FULL) AUTODBL(NONE) DESCRIPTOR(V1) DIRECTIVE(IBM*,IBMT) ENUM() FLAG(I,I) FLOAT(RNDSNGL,MAF,FOLD,RNGCHK,SINGLE) FREE(F90) HALT(S) IEEE(NEAR) INTSIZE(4) LANGLVL(EXTENDED) REALSIZE(4) NOSAVE() TUNE(PWR6) UNROLL(AUTO) XREF(FULL) XLF2003(NOPOLYMORPHIC,NOBOZLITARGS,NOSTOPEXCEPT,NOVOLATILE,NOAUTOREALLOC,OLDNANINF) XLF77(LEADZERO,BLANKPAD) XLF90(NOSIGNEDZERO,NOAUTODEALLOC,OLDPAD) >>>>> SOURCE SECTION <<<<< 2864 |#line 2866 2866 | FUNCTION SNKSRC (TAVG,SMC,SH2O,ZSOIL,NSOIL, & 2867 | SMCMAX,PSISAT,BEXP,DT,K,QTOT) 2868 | 2869 | IMPLICIT NONE 2870 | 2871 |! ---------------------------------------------------------------------- 2872 |! FUNCTION SNKSRC 2873 |! ---------------------------------------------------------------------- 2874 |! CALCULATE SINK/SOURCE TERM OF THE TERMAL DIFFUSION EQUATION. (SH2O) IS 2875 |! AVAILABLE LIQUED WATER. 2876 |! ---------------------------------------------------------------------- 2877 | INTEGER K 2878 | INTEGER NSOIL 2879 | 2880 | REAL BEXP 2881 | REAL DF 2882 | REAL DH2O 2883 | REAL DT 2884 | REAL DZ 2885 | REAL DZH 2886 | REAL FREE 2887 | REAL FRH2O 2888 | REAL HLICE 2889 | REAL PSISAT 2890 | REAL QTOT 2891 | REAL SH2O 2892 | REAL SMC 2893 | REAL SMCMAX 2894 | REAL SNKSRC 2895 | REAL T0 2896 | REAL TAVG 2897 | REAL TDN 2898 | REAL TM 2899 | REAL TUP 2900 | REAL TZ 2901 | REAL X0 2902 | REAL XDN 2903 | REAL XH2O 2904 | REAL XUP 2905 | REAL ZSOIL (NSOIL) 2906 | 2907 | PARAMETER(DH2O = 1.0000E3) 2908 | PARAMETER(HLICE = 3.3350E5) 2909 | PARAMETER(T0 = 2.7315E2) 2910 | 2911 | IF (K .EQ. 1) THEN 2912 | DZ = -ZSOIL(1) 2913 | ELSE 2914 | DZ = ZSOIL(K-1)-ZSOIL(K) 2915 | ENDIF 2916 | 2917 |! ---------------------------------------------------------------------- 2918 |! VIA FUNCTION FRH2O, COMPUTE POTENTIAL OR 'EQUILIBRIUM' UNFROZEN 2919 |! SUPERCOOLED FREE WATER FOR GIVEN SOIL TYPE AND SOIL LAYER TEMPERATURE. 2920 |! FUNCTION FRH20 INVOKES EQN (17) FROM V. KOREN ET AL (1999, JGR, VOL. 2921 |! 104, PG 19573). (ASIDE: LATTER EQN IN JOURNAL IN CENTIGRADE UNITS. 2922 |! ROUTINE FRH2O USE FORM OF EQN IN KELVIN UNITS.) 2923 |! ---------------------------------------------------------------------- 2924 | FREE = FRH2O(TAVG,SMC,SH2O,SMCMAX,BEXP,PSISAT) 2925 | 2926 |! ---------------------------------------------------------------------- 2927 |! IN NEXT BLOCK OF CODE, INVOKE EQN 18 OF V. KOREN ET AL (1999, JGR, 2928 |! VOL. 104, PG 19573.) THAT IS, FIRST ESTIMATE THE NEW AMOUNTOF LIQUID 2929 |! WATER, 'XH2O', IMPLIED BY THE SUM OF (1) THE LIQUID WATER AT THE BEGIN 2930 |! OF CURRENT TIME STEP, AND (2) THE FREEZE OF THAW CHANGE IN LIQUID 2931 |! WATER IMPLIED BY THE HEAT FLUX 'QTOT' PASSED IN FROM ROUTINE HRT. 2932 |! SECOND, DETERMINE IF XH2O NEEDS TO BE BOUNDED BY 'FREE' (EQUIL AMT) OR 2933 |! IF 'FREE' NEEDS TO BE BOUNDED BY XH2O. 2934 |! ---------------------------------------------------------------------- 2935 | XH2O = SH2O + QTOT*DT/(DH2O*HLICE*DZ) 2936 | 2937 |! ---------------------------------------------------------------------- 2938 |! FIRST, IF FREEZING AND REMAINING LIQUID LESS THAN LOWER BOUND, THEN 2939 |! REDUCE EXTENT OF FREEZING, THEREBY LETTING SOME OR ALL OF HEAT FLUX 2940 |! QTOT COOL THE SOIL TEMP LATER IN ROUTINE HRT. 2941 |! ---------------------------------------------------------------------- 2942 | IF ( XH2O .LT. SH2O .AND. XH2O .LT. FREE) THEN 2943 | IF ( FREE .GT. SH2O ) THEN 2944 | XH2O = SH2O 2945 | ELSE 2946 | XH2O = FREE 2947 | ENDIF 2948 | ENDIF 2949 | 2950 |! ---------------------------------------------------------------------- 2951 |! SECOND, IF THAWING AND THE INCREASE IN LIQUID WATER GREATER THAN UPPER 2952 |! BOUND, THEN REDUCE EXTENT OF THAW, THEREBY LETTING SOME OR ALL OF HEAT 2953 |! FLUX QTOT WARM THE SOIL TEMP LATER IN ROUTINE HRT. 2954 |! ---------------------------------------------------------------------- 2955 | IF ( XH2O .GT. SH2O .AND. XH2O .GT. FREE ) THEN 2956 | IF ( FREE .LT. SH2O ) THEN 2957 | XH2O = SH2O 2958 | ELSE 2959 | XH2O = FREE 2960 | ENDIF 2961 | ENDIF 2962 | 2963 | IF (XH2O .LT. 0.) XH2O = 0. 2964 | IF (XH2O .GT. SMC) XH2O = SMC 2965 | 2966 |! ---------------------------------------------------------------------- 2967 |! CALCULATE PHASE-CHANGE HEAT SOURCE/SINK TERM FOR USE IN ROUTINE HRT 2968 |! AND UPDATE LIQUID WATER TO REFLCET FINAL FREEZE/THAW INCREMENT. 2969 |! ---------------------------------------------------------------------- 2970 | SNKSRC = -DH2O*HLICE*DZ*(XH2O-SH2O)/DT 2971 | SH2O = XH2O 2972 | 2973 |! ---------------------------------------------------------------------- 2974 |! END FUNCTION SNKSRC 2975 |! ---------------------------------------------------------------------- 2976 |77 RETURN 2977 | END >>>>> ATTRIBUTE AND CROSS REFERENCE SECTION <<<<< IDENTIFIER NAME CROSS REFERENCE AND ATTRIBUTES bexp Reference argument, Real(4), Offset: 0, Alignment: full word 0-2880.12$ 0-2867.37 0-2924.41 df Automatic, Real(4), Offset: 0, Alignment: full word 0-2881.12$ dh2o Parameter, Real(4) 0-2882.12$ 0-2907.17$ 0-2935.30 0-2970.17 dt Reference argument, Real(4), Offset: 0, Alignment: full word 0-2883.12$ 0-2867.42 0-2935.26 0-2970.43 dz Automatic, Real(4), Offset: 0, Alignment: full word 0-2884.12$ 0-2912.9@ 0-2914.9@ 0-2935.41 0-2970.28 dzh Automatic, Real(4), Offset: 0, Alignment: full word 0-2885.12$ free Automatic, Real(4), Offset: 0, Alignment: full word 0-2886.12$ 0-2924.7@ 0-2942.43 0-2943.14 0-2946.18 0-2955.43 0-2956.14 0-2959.18 frh2o External Function Real(4) 0-2887.12$ 0-2924.14 hlice Parameter, Real(4) 0-2888.12$ 0-2908.17$ 0-2935.35 0-2970.22 k Reference argument, Integer(4), Offset: 0, Alignment: full word 0-2877.15$ 0-2867.45 0-2911.11 0-2914.20 0-2914.31 nsoil Reference argument, Integer(4), Offset: 0, Alignment: full word 0-2878.15$ 0-2866.44 0-2905.19 0-2905.19 psisat Reference argument, Real(4), Offset: 0, Alignment: full word 0-2889.12$ 0-2867.30 0-2924.46 qtot Reference argument, Real(4), Offset: 0, Alignment: full word 0-2890.12$ 0-2867.47 0-2935.21 sh2o Reference argument, Real(4), Offset: 0, Alignment: full word 0-2891.12$ 0-2866.33 0-2924.29 0-2935.14 0-2942.22 0-2943.24 0-2944.18 0-2955.22 0-2956.24 0-2957.18 0-2970.37 0-2971.7@ smc Reference argument, Real(4), Offset: 0, Alignment: full word 0-2892.12$ 0-2866.29 0-2924.25 0-2964.21 0-2964.33 smcmax Reference argument, Real(4), Offset: 0, Alignment: full word 0-2893.12$ 0-2867.23 0-2924.34 snksrc Function Real(4) 0-2866.16$ 0-2894.12$ 0-2970.7@ t0 Parameter, Real(4) 0-2895.12$ 0-2909.17$ tavg Reference argument, Real(4), Offset: 0, Alignment: full word 0-2896.12$ 0-2866.24 0-2924.20 tdn Automatic, Real(4), Offset: 0, Alignment: full word 0-2897.12$ tm Automatic, Real(4), Offset: 0, Alignment: full word 0-2898.12$ tup Automatic, Real(4), Offset: 0, Alignment: full word 0-2899.12$ tz Automatic, Real(4), Offset: 0, Alignment: full word 0-2900.12$ x0 Automatic, Real(4), Offset: 0, Alignment: full word 0-2901.12$ xdn Automatic, Real(4), Offset: 0, Alignment: full word 0-2902.12$ xh2o Automatic, Real(4), Offset: 0, Alignment: full word 0-2903.12$ 0-2935.7@ 0-2942.12 0-2942.33 0-2944.11@ 0-2946.11@ 0-2955.12 0-2955.33 0-2957.11@ 0-2959.11@ 0-2963.11 0-2963.25@ 0-2964.11 0-2964.26@ 0-2970.32 0-2971.14 xup Automatic, Real(4), Offset: 0, Alignment: full word 0-2904.12$ zsoil Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-2905.12$ 0-2866.38 0-2912.15 0-2914.14 0-2914.25 ** snksrc === End of Compilation 17 === >>>>> COMPILATION UNIT EPILOGUE SECTION <<<<< FORTRAN Summary of Diagnosed Conditions TOTAL UNRECOVERABLE SEVERE ERROR WARNING INFORMATIONAL (U) (S) (E) (W) (I) 0 0 0 0 0 0 >>>>> OPTIONS SECTION <<<<< *** Options In Effect *** == On / Off Options == CR DBG ESCAPE FULLPATH I4 INLGLUE NOLIBESSL NOLIBPOSIX OBJECT SOURCE STRICT SWAPOMP THREADED UNWIND ZEROSIZE == Options Of Integer Type == ALIAS_SIZE(65536) MAXMEM(-1) OPTIMIZE(2) SPILLSIZE(2000) STACKTEMP(0) == Options Of Character Type == 64(LARGETYPE) ALIAS(STD,NOINTPTR) ALIGN(BINDC(POWER),STRUCT(NATURAL)) ARCH(PWR6) ATTR(FULL) AUTODBL(NONE) DESCRIPTOR(V1) DIRECTIVE(IBM*,IBMT) ENUM() FLAG(I,I) FLOAT(RNDSNGL,MAF,FOLD,RNGCHK,SINGLE) FREE(F90) HALT(S) IEEE(NEAR) INTSIZE(4) LANGLVL(EXTENDED) REALSIZE(4) NOSAVE() TUNE(PWR6) UNROLL(AUTO) XREF(FULL) XLF2003(NOPOLYMORPHIC,NOBOZLITARGS,NOSTOPEXCEPT,NOVOLATILE,NOAUTOREALLOC,OLDNANINF) XLF77(LEADZERO,BLANKPAD) XLF90(NOSIGNEDZERO,NOAUTODEALLOC,OLDPAD) >>>>> SOURCE SECTION <<<<< 2978 | 2979 |! -- 16. PHYSICS SUBROUTINE ==> SUBROUTINE SNOPAC --------------------- 2980 | 2981 | SUBROUTINE SNOPAC (ETP,ETA,PRCP,PRCP1,SNOWNG,SMC,SMCMAX,SMCWLT, & 2982 | SMCREF,SMCDRY,CMC,CMCMAX,NSOIL,DT, & 2983 | SBETA,DF1,Q2,T1,SFCTMP, & 2984 | T24,TH2,FDOWN,F1,SSOIL,STC,EPSCA,SFCPRS, & 2985 | BEXP,PC,RCH,RR,CFACTR,SNCOVR,ESD,SNDENS, & 2986 | SNOWH,SH2O,SLOPE,KDT,FRZFACT,PSISAT,SNUP, & 2987 | ZSOIL,DWSAT,DKSAT,TBOT,ZBOT,SHDFAC,RUNOFF1, & 2988 | RUNOFF2,RUNOFF3,EDIR,EC,ET,ETT,NROOT,SNOMLT, & 2989 | ICE,RTDIS,QUARTZ,FXEXP,CSOIL, & 2990 | BETA,DRIP,DEW,FLX1,FLX2,FLX3,ESNOW) 2991 | 2992 | IMPLICIT NONE 2993 | 2994 |! ---------------------------------------------------------------------- 2995 |! SUBROUTINE SNOPAC 2996 |! ---------------------------------------------------------------------- 2997 |! CALCULATE SOIL MOISTURE AND HEAT FLUX VALUES & UPDATE SOIL MOISTURE 2998 |! CONTENT AND SOIL HEAT CONTENT VALUES FOR THE CASE WHEN A SNOW PACK IS 2999 |! PRESENT. 3000 |! ---------------------------------------------------------------------- 3001 | INTEGER ICE 3002 | INTEGER NROOT 3003 | INTEGER NSOIL 3004 | 3005 | LOGICAL*1 SNOWNG 3006 | 3007 | REAL BEXP 3008 | REAL BETA 3009 | REAL CFACTR 3010 | REAL CMC 3011 | REAL CMCMAX 3012 | REAL CP 3013 | REAL CPH2O 3014 | REAL CPICE 3015 | REAL CSOIL 3016 | REAL DENOM 3017 | REAL DEW 3018 | REAL DF1 3019 | REAL DKSAT 3020 | REAL DRIP 3021 | REAL DSOIL 3022 | REAL DTOT 3023 | REAL DT 3024 | REAL DWSAT 3025 | REAL EC 3026 | REAL EDIR 3027 | REAL EPSCA 3028 | REAL ESD 3029 | REAL ESDMIN 3030 | REAL EXPSNO 3031 | REAL EXPSOI 3032 | REAL ETA 3033 | REAL ETA1 3034 | REAL ETP 3035 | REAL ETP1 3036 | REAL ETP2 3037 | REAL ET(NSOIL) 3038 | REAL ETT 3039 | REAL EX 3040 | REAL EXPFAC 3041 | REAL FDOWN 3042 | REAL FXEXP 3043 | REAL FLX1 3044 | REAL FLX2 3045 | REAL FLX3 3046 | REAL F1 3047 | REAL KDT 3048 | REAL LSUBF 3049 | REAL LSUBC 3050 | REAL LSUBS 3051 | REAL PC 3052 | REAL PRCP 3053 | REAL PRCP1 3054 | REAL Q2 3055 | REAL RCH 3056 | REAL RR 3057 | REAL RTDIS(NSOIL) 3058 | REAL SSOIL 3059 | REAL SBETA 3060 | REAL SSOIL1 3061 | REAL SFCTMP 3062 | REAL SHDFAC 3063 | REAL SIGMA 3064 | REAL SMC(NSOIL) 3065 | REAL SH2O(NSOIL) 3066 | REAL SMCDRY 3067 | REAL SMCMAX 3068 | REAL SMCREF 3069 | REAL SMCWLT 3070 | REAL SNOMLT 3071 | REAL SNOWH 3072 | REAL STC(NSOIL) 3073 | REAL T1 3074 | REAL T11 3075 | REAL T12 3076 | REAL T12A 3077 | REAL T12B 3078 | REAL T24 3079 | REAL TBOT 3080 | REAL ZBOT 3081 | REAL TH2 3082 | REAL YY 3083 | REAL ZSOIL(NSOIL) 3084 | REAL ZZ1 3085 | REAL TFREEZ 3086 | REAL SALP 3087 | REAL SFCPRS 3088 | REAL SLOPE 3089 | REAL FRZFACT 3090 | REAL PSISAT 3091 | REAL SNUP 3092 | REAL RUNOFF1 3093 | REAL RUNOFF2 3094 | REAL RUNOFF3 3095 | REAL QUARTZ 3096 | REAL SNDENS 3097 | REAL SNCOND 3098 | REAL RSNOW 3099 | REAL SNCOVR 3100 | REAL QSAT 3101 | REAL ETP3 3102 | REAL SEH 3103 | REAL T14 3104 | REAL CSNOW 3105 | 3106 | REAL EC1 3107 | REAL EDIR1 3108 | REAL ET1(NSOIL) 3109 | REAL ETT1 3110 | 3111 | REAL ETNS 3112 | REAL ETNS1 3113 | REAL ESNOW 3114 | REAL ESNOW1 3115 | REAL ESNOW2 3116 | REAL ETANRG 3117 | REAL SNOEXP 3118 | 3119 | INTEGER K 3120 | 3121 | PARAMETER(CP = 1004.5) 3122 | PARAMETER(CPH2O = 4.218E+3) 3123 | PARAMETER(CPICE = 2.106E+3) 3124 | PARAMETER(ESDMIN = 1.E-6) 3125 | PARAMETER(LSUBF = 3.335E+5) 3126 | PARAMETER(LSUBC = 2.501000E+6) 3127 | PARAMETER(LSUBS = 2.83E+6) 3128 | PARAMETER(SIGMA = 5.67E-8) 3129 | PARAMETER(TFREEZ = 273.15) 3130 |! PARAMETER(SNOEXP = 1.0) < 3131 | PARAMETER(SNOEXP = 2.0) 3132 | 3133 |! ---------------------------------------------------------------------- 3134 |! EXECUTABLE CODE BEGINS HERE: 3135 |! CONVERT POTENTIAL EVAP (ETP) FROM KG M-2 S-1 TO M S-1 AND THEN TO AN 3136 |! AMOUNT (M) GIVEN TIMESTEP (DT) AND CALL IT AN EFFECTIVE SNOWPACK 3137 |! REDUCTION AMOUNT, ESNOW2 (M) FOR A SNOWCOVER FRACTION = 1.0. THIS IS 3138 |! THE AMOUNT THE SNOWPACK WOULD BE REDUCED DUE TO SUBLIMATION FROM THE 3139 |! SNOW SFC DURING THE TIMESTEP. SUBLIMATION WILL PROCEED AT THE 3140 |! POTENTIAL RATE UNLESS THE SNOW DEPTH IS LESS THAN THE EXPECTED 3141 |! SNOWPACK REDUCTION. FOR SNOWCOVER FRACTION = 1.0, 0=EDIR=ET=EC, AND 3142 |! HENCE TOTAL EVAP = ESNOW = SUBLIMATION (POTENTIAL EVAP RATE) 3143 |! ---------------------------------------------------------------------- 3144 |! IF SEA-ICE (ICE=1) OR GLACIAL-ICE (ICE=-1), SNOWCOVER FRACTION = 1.0, 3145 |! AND SUBLIMATION IS AT THE POTENTIAL RATE. 3146 |! FOR NON-GLACIAL LAND (ICE=0), IF SNOWCOVER FRACTION < 1.0, TOTAL 3147 |! EVAPORATION < POTENTIAL DUE TO NON-POTENTIAL CONTRIBUTION FROM 3148 |! NON-SNOW COVERED FRACTION. 3149 |! ---------------------------------------------------------------------- 3150 | PRCP1 = PRCP1*0.001 3151 | 3152 |! ---------------------------------------------------------------------- 3153 | EDIR = 0.0 3154 | EDIR1 = 0.0 3155 | EC = 0.0 3156 | EC1 = 0.0 3157 | DO K = 1,NSOIL 3158 | ET(K) = 0.0 3159 | ET1(K) = 0.0 3160 | ENDDO 3161 | ETT = 0.0 3162 | ETT1 = 0.0 3163 | ETNS = 0.0 3164 | ETNS1 = 0.0 3165 | ESNOW = 0.0 3166 | ESNOW1 = 0.0 3167 | ESNOW2 = 0.0 3168 |! ---------------------------------------------------------------------- 3169 | 3170 | DEW = 0.0 3171 | ETP1 = ETP*0.001 3172 | IF (ETP .LT. 0.0) THEN 3173 |! ---------------------------------------------------------------------- 3174 |! IF ETP<0 (DOWNWARD) THEN DEWFALL (=FROSTFALL IN THIS CASE). 3175 |! ---------------------------------------------------------------------- 3176 | DEW = -ETP1 3177 | ESNOW2 = ETP1 * DT 3178 | ETANRG = ETP*((1.-SNCOVR)*LSUBC + SNCOVR*LSUBS) 3179 | ELSE 3180 |! ---------------------------------------------------------------------- 3181 |! ETP >= 0, UPWARD MOISTURE FLUX 3182 |! ---------------------------------------------------------------------- 3183 | IF (ICE .NE. 0) THEN 3184 |! ----------------------------------------------------------------- 3185 |! SEA-ICE AND GLACIAL-ICE CASE 3186 |! ---------------------------------------------------------------------- 3187 | ESNOW = ETP 3188 | ESNOW1 = ESNOW*0.001 3189 | ESNOW2 = ESNOW1*DT 3190 | ETANRG = ESNOW*LSUBS 3191 | ELSE 3192 |! ---------------------------------------------------------------------- 3193 |! NON-GLACIAL LAND CASE 3194 |! ---------------------------------------------------------------------- 3195 | IF (SNCOVR .LT. 1.) THEN 3196 | CALL EVAPO (ETNS1,SMC,NSOIL,CMC,ETP1,DT,ZSOIL, & 3197 | SH2O,SMCMAX,BEXP,PC,SMCWLT,DKSAT,DWSAT, & 3198 | SMCREF,SHDFAC,CMCMAX, & 3199 | SMCDRY,CFACTR, & 3200 | EDIR1,EC1,ET1,ETT1,SFCTMP,Q2,NROOT,RTDIS,FXEXP) 3201 |! ---------------------------------------------------------------------- 3202 | EDIR1 = EDIR1*(1.-SNCOVR) 3203 | EC1 = EC1*(1.-SNCOVR) 3204 | DO K = 1,NSOIL 3205 | ET1(K) = ET1(K)*(1.-SNCOVR) 3206 | END DO 3207 | ETT1 = ETT1*(1.-SNCOVR) 3208 | ETNS1 = ETNS1*(1.-SNCOVR) 3209 |! ---------------------------------------------------------------------- 3210 | EDIR = EDIR1 * 1000.0 3211 | EC = EC1 * 1000.0 3212 | DO K = 1,NSOIL 3213 | ET(K) = ET1(K) * 1000.0 3214 | END DO 3215 | ETT = ETT1 * 1000.0 3216 | ETNS = ETNS1 * 1000.0 3217 |! ---------------------------------------------------------------------- 3218 | ENDIF 3219 | ESNOW = ETP*SNCOVR 3220 |! ESNOW1 = ETP*0.001 3221 | ESNOW1 = ESNOW*0.001 3222 | ESNOW2 = ESNOW1*DT 3223 | ETANRG = ESNOW*LSUBS + ETNS*LSUBC 3224 | ENDIF 3225 | ENDIF 3226 | 3227 |! ---------------------------------------------------------------------- 3228 |! IF PRECIP IS FALLING, CALCULATE HEAT FLUX FROM SNOW SFC TO NEWLY 3229 |! ACCUMULATING PRECIP. NOTE THAT THIS REFLECTS THE FLUX APPROPRIATE FOR 3230 |! THE NOT-YET-UPDATED SKIN TEMPERATURE (T1). ASSUMES TEMPERATURE OF THE 3231 |! SNOWFALL STRIKING THE GOUND IS =SFCTMP (LOWEST MODEL LEVEL AIR TEMP). 3232 |! ---------------------------------------------------------------------- 3233 | FLX1 = 0.0 3234 | IF (SNOWNG) THEN 3235 | FLX1 = CPICE * PRCP * (T1 - SFCTMP) 3236 | ELSE 3237 | IF (PRCP .GT. 0.0) FLX1 = CPH2O * PRCP * (T1 - SFCTMP) 3238 | ENDIF 3239 | 3240 |! ---------------------------------------------------------------------- 3241 |! CALCULATE AN 'EFFECTIVE SNOW-GRND SFC TEMP' (T12) BASED ON HEAT FLUXES 3242 |! BETWEEN THE SNOW PACK AND THE SOIL AND ON NET RADIATION. 3243 |! INCLUDE FLX1 (PRECIP-SNOW SFC) AND FLX2 (FREEZING RAIN LATENT HEAT) 3244 |! FLUXES. 3245 |! FLX2 REFLECTS FREEZING RAIN LATENT HEAT FLUX USING T1 CALCULATED IN 3246 |! PENMAN. 3247 |! ---------------------------------------------------------------------- 3248 | DSOIL = -(0.5 * ZSOIL(1)) 3249 | DTOT = SNOWH + DSOIL 3250 | DENOM = 1.0 + DF1 / (DTOT * RR * RCH) 3251 |! T12A = ( (FDOWN-FLX1-FLX2-SIGMA*T24)/RCH & 3252 |! + TH2 - SFCTMP - BETA*EPSCA ) / RR 3253 | T12A = ( (FDOWN-FLX1-FLX2-SIGMA*T24)/RCH & 3254 | + TH2 - SFCTMP - ETANRG/RCH ) / RR 3255 |!JESSE 20041228 3256 |!BELOW MIKE EK'S SNOW EMISSIVITY 3257 | T12A = ( (FDOWN-FLX1-FLX2- & 3258 | (0.95*SNCOVR + (1.0-SNCOVR))*SIGMA*T24)/RCH & 3259 | + TH2 - SFCTMP - ETANRG/RCH ) / RR 3260 | 3261 | T12B = DF1 * STC(1) / (DTOT * RR * RCH) 3262 | T12 = (SFCTMP + T12A + T12B) / DENOM 3263 | 3264 |! ---------------------------------------------------------------------- 3265 |! IF THE 'EFFECTIVE SNOW-GRND SFC TEMP' IS AT OR BELOW FREEZING, NO SNOW 3266 |! MELT WILL OCCUR. SET THE SKIN TEMP TO THIS EFFECTIVE TEMP. REDUCE 3267 |! (BY SUBLIMINATION ) OR INCREASE (BY FROST) THE DEPTH OF THE SNOWPACK, 3268 |! DEPENDING ON SIGN OF ETP. 3269 |! UPDATE SOIL HEAT FLUX (SSOIL) USING NEW SKIN TEMPERATURE (T1) 3270 |! SINCE NO SNOWMELT, SET ACCUMULATED SNOWMELT TO ZERO, SET 'EFFECTIVE' 3271 |! PRECIP FROM SNOWMELT TO ZERO, SET PHASE-CHANGE HEAT FLUX FROM SNOWMELT 3272 |! TO ZERO. 3273 |! ---------------------------------------------------------------------- 3274 | IF (T12 .LE. TFREEZ) THEN 3275 | T1 = T12 3276 | SSOIL = DF1 * (T1 - STC(1)) / DTOT 3277 |! ESD = MAX(0.0, ESD-ETP2) 3278 | ESD = MAX(0.0, ESD-ESNOW2) 3279 | FLX3 = 0.0 3280 | EX = 0.0 3281 | SNOMLT = 0.0 3282 | 3283 | ELSE 3284 |! ---------------------------------------------------------------------- 3285 |! IF THE 'EFFECTIVE SNOW-GRND SFC TEMP' IS ABOVE FREEZING, SNOW MELT 3286 |! WILL OCCUR. CALL THE SNOW MELT RATE,EX AND AMT, SNOMLT. REVISE THE 3287 |! EFFECTIVE SNOW DEPTH. REVISE THE SKIN TEMP BECAUSE IT WOULD HAVE CHGD 3288 |! DUE TO THE LATENT HEAT RELEASED BY THE MELTING. CALC THE LATENT HEAT 3289 |! RELEASED, FLX3. SET THE EFFECTIVE PRECIP, PRCP1 TO THE SNOW MELT RATE, 3290 |! EX FOR USE IN SMFLX. ADJUSTMENT TO T1 TO ACCOUNT FOR SNOW PATCHES. 3291 |! CALCULATE QSAT VALID AT FREEZING POINT. NOTE THAT ESAT (SATURATION 3292 |! VAPOR PRESSURE) VALUE OF 6.11E+2 USED HERE IS THAT VALID AT FRZZING 3293 |! POINT. NOTE THAT ETP FROM CALL PENMAN IN SFLX IS IGNORED HERE IN 3294 |! FAVOR OF BULK ETP OVER 'OPEN WATER' AT FREEZING TEMP. 3295 |! UPDATE SOIL HEAT FLUX (S) USING NEW SKIN TEMPERATURE (T1) 3296 |! ---------------------------------------------------------------------- 3297 |! T1 = TFREEZ * SNCOVR + T12 * (1.0 - SNCOVR) 3298 |! Change made by MEK - Feb 2004 3299 |! Non-linear weighting of snow vs non-snow covered portions of gridbox 3300 |! so with SNOEXP = 2.0 (>1), surface skin temperature is higher than for 3301 |! the linear case (SNOEXP = 1). 3302 | T1 = TFREEZ * SNCOVR**SNOEXP + T12 * (1.0 - SNCOVR**SNOEXP) 3303 | 3304 |! QSAT = (0.622*6.11E2)/(SFCPRS-0.378*6.11E2) 3305 |! ETP = RCH*(QSAT-Q2)/CP 3306 |! ETP2 = ETP*0.001*DT 3307 | BETA = 1.0 3308 | SSOIL = DF1 * (T1 - STC(1)) / DTOT 3309 | 3310 |! ---------------------------------------------------------------------- 3311 |! IF POTENTIAL EVAP (SUBLIMATION) GREATER THAN DEPTH OF SNOWPACK. 3312 |! BETA<1 3313 |! SNOWPACK HAS SUBLIMATED AWAY, SET DEPTH TO ZERO. 3314 |! ---------------------------------------------------------------------- 3315 |! IF (ESD .LE. ETP2) THEN 3316 |! IF (ESD .LE. ESNOW2) THEN 3317 | IF (ESD-ESNOW2 .LE. ESDMIN) THEN 3318 |! BETA = ESD / ETP2 3319 | ESD = 0.0 3320 | FLX3 = 0.0 3321 | EX = 0.0 3322 | SNOMLT = 0.0 3323 | 3324 | ELSE 3325 |! ---------------------------------------------------------------------- 3326 |! POTENTIAL EVAP (SUBLIMATION) LESS THAN DEPTH OF SNOWPACK, RETAIN 3327 |! BETA=1. 3328 |! SNOWPACK (ESD) REDUCED BY POTENTIAL EVAP RATE 3329 |! ETP3 (CONVERT TO FLUX) 3330 |! ---------------------------------------------------------------------- 3331 |! ESD = ESD-ETP2 3332 | ESD = ESD-ESNOW2 3333 |! ETP3 = ETP*LSUBC 3334 | SEH = RCH*(T1-TH2) 3335 | T14 = T1*T1 3336 | T14 = T14*T14 3337 |! FLX3 = FDOWN - FLX1 - FLX2 - SIGMA*T14 - SSOIL - SEH - ETP3 3338 |! FLX3 = FDOWN - FLX1 - FLX2 - SIGMA*T14 - SSOIL - SEH - ETANRG 3339 |!JESSE 20041228 3340 |!USE MIKE EK'S SNOW EMISSIVITY 3341 | FLX3 = FDOWN - FLX1 - FLX2 - & 3342 | (0.95*SNCOVR + (1.0-SNCOVR))*SIGMA*T14 & 3343 | - SSOIL - SEH - ETANRG 3344 | IF (FLX3 .LE. 0.0) FLX3 = 0.0 3345 | EX = FLX3*0.001/LSUBF 3346 | 3347 |! ---------------------------------------------------------------------- 3348 |! SNOWMELT REDUCTION DEPENDING ON SNOW COVER 3349 |! IF SNOW COVER LESS THAN 5% NO SNOWMELT REDUCTION 3350 |! ***NOTE: DOES 'IF' BELOW FAIL TO MATCH THE MELT WATER WITH THE MELT 3351 |! ENERGY? 3352 |! ---------------------------------------------------------------------- 3353 |! IF (SNCOVR .GT. 0.05) EX = EX * SNCOVR 3354 | SNOMLT = EX * DT 3355 | 3356 |! ---------------------------------------------------------------------- 3357 |! ESDMIN REPRESENTS A SNOWPACK DEPTH THRESHOLD VALUE BELOW WHICH WE 3358 |! CHOOSE NOT TO RETAIN ANY SNOWPACK, AND INSTEAD INCLUDE IT IN SNOWMELT. 3359 |! ---------------------------------------------------------------------- 3360 | IF (ESD-SNOMLT .GE. ESDMIN) THEN 3361 | ESD = ESD - SNOMLT 3362 | 3363 | ELSE 3364 |! ---------------------------------------------------------------------- 3365 |! SNOWMELT EXCEEDS SNOW DEPTH 3366 |! ---------------------------------------------------------------------- 3367 | EX = ESD/DT 3368 | FLX3 = EX*1000.0*LSUBF 3369 | SNOMLT = ESD 3370 | ESD = 0.0 3371 | 3372 | ENDIF 3373 |! ---------------------------------------------------------------------- 3374 |! END OF 'ESD .LE. ETP2' IF-BLOCK 3375 |! ---------------------------------------------------------------------- 3376 | ENDIF 3377 | 3378 |! PRCP1 = PRCP1 + EX 3379 |! ---------------------------------------------------------------------- 3380 |! IF NON-GLACIAL LAND, ADD SNOWMELT RATE (EX) TO PRECIP RATE TO BE USED 3381 |! IN SUBROUTINE SMFLX (SOIL MOISTURE EVOLUTION) VIA INFILTRATION. 3382 |! 3383 |! FOR SEA-ICE AND GLACIAL-ICE, THE SNOWMELT WILL BE ADDED TO SUBSURFACE 3384 |! RUNOFF/BASEFLOW LATER NEAR THE END OF SFLX (AFTER RETURN FROM CALL TO 3385 |! SUBROUTINE SNOPAC) 3386 |! ---------------------------------------------------------------------- 3387 | IF (ICE .EQ. 0) PRCP1 = PRCP1 + EX 3388 | 3389 |! ---------------------------------------------------------------------- 3390 |! END OF 'T12 .LE. TFREEZ' IF-BLOCK 3391 |! ---------------------------------------------------------------------- 3392 | ENDIF 3393 | 3394 |! ---------------------------------------------------------------------- 3395 |! FINAL BETA NOW IN HAND, SO COMPUTE EVAPORATION. EVAP EQUALS ETP 3396 |! UNLESS BETA<1. 3397 |! ---------------------------------------------------------------------- 3398 |! ETA = BETA*ETP 3399 | 3400 |! ---------------------------------------------------------------------- 3401 |! SMFLX RETURNS UPDATED SOIL MOISTURE VALUES FOR NON-GLACIAL LAND. 3402 |! IF SEA-ICE (ICE=1) OR GLACIAL-ICE (ICE=-1), SKIP CALL TO SMFLX, SINCE 3403 |! NO SOIL MEDIUM FOR SEA-ICE OR GLACIAL-ICE 3404 |! ---------------------------------------------------------------------- 3405 | IF (ICE .EQ. 0) THEN 3406 | CALL SMFLX (SMC,NSOIL,CMC,DT,PRCP1,ZSOIL, & 3407 | SH2O,SLOPE,KDT,FRZFACT, & 3408 | SMCMAX,BEXP,SMCWLT,DKSAT,DWSAT, & 3409 | SHDFAC,CMCMAX, & 3410 | RUNOFF1,RUNOFF2,RUNOFF3, & 3411 | EDIR1,EC1,ET1, & 3412 | DRIP) 3413 | 3414 | ENDIF 3415 | 3416 |! ---------------------------------------------------------------------- 3417 |! BEFORE CALL SHFLX IN THIS SNOWPACK CASE, SET ZZ1 AND YY ARGUMENTS TO 3418 |! SPECIAL VALUES THAT ENSURE THAT GROUND HEAT FLUX CALCULATED IN SHFLX 3419 |! MATCHES THAT ALREADY COMPUTER FOR BELOW THE SNOWPACK, THUS THE SFC 3420 |! HEAT FLUX TO BE COMPUTED IN SHFLX WILL EFFECTIVELY BE THE FLUX AT THE 3421 |! SNOW TOP SURFACE. T11 IS A DUMMY ARGUEMENT SO WE WILL NOT USE THE 3422 |! SKIN TEMP VALUE AS REVISED BY SHFLX. 3423 |! ---------------------------------------------------------------------- 3424 | ZZ1 = 1.0 3425 | YY = STC(1)-0.5*SSOIL*ZSOIL(1)*ZZ1/DF1 3426 | T11 = T1 3427 | 3428 |! ---------------------------------------------------------------------- 3429 |! SHFLX WILL CALC/UPDATE THE SOIL TEMPS. NOTE: THE SUB-SFC HEAT FLUX 3430 |! (SSOIL1) AND THE SKIN TEMP (T11) OUTPUT FROM THIS SHFLX CALL ARE NOT 3431 |! USED IN ANY SUBSEQUENT CALCULATIONS. RATHER, THEY ARE DUMMY VARIABLES 3432 |! HERE IN THE SNOPAC CASE, SINCE THE SKIN TEMP AND SUB-SFC HEAT FLUX ARE 3433 |! UPDATED INSTEAD NEAR THE BEGINNING OF THE CALL TO SNOPAC. 3434 |! ---------------------------------------------------------------------- 3435 | CALL SHFLX (SSOIL1,STC,SMC,SMCMAX,NSOIL,T11,DT,YY,ZZ1,ZSOIL, & 3436 | TBOT,ZBOT,SMCWLT,PSISAT,SH2O,BEXP,F1,DF1,ICE, & 3437 | QUARTZ,CSOIL) 3438 | 3439 |! ---------------------------------------------------------------------- 3440 |! SNOW DEPTH AND DENSITY ADJUSTMENT BASED ON SNOW COMPACTION. YY IS 3441 |! ASSUMED TO BE THE SOIL TEMPERTURE AT THE TOP OF THE SOIL COLUMN. 3442 |! ---------------------------------------------------------------------- 3443 | IF (ICE .EQ. 0) THEN 3444 |! NON-GLACIAL LAND 3445 | IF (ESD .GT. 0.) THEN 3446 | CALL SNOWPACK (ESD,DT,SNOWH,SNDENS,T1,YY) 3447 | ELSE 3448 | ESD = 0. 3449 | SNOWH = 0. 3450 | SNDENS = 0. 3451 | SNCOND = 1. 3452 | SNCOVR = 0. 3453 | ENDIF 3454 |! ---------------------------------------------------------------------- 3455 |! OVER SEA-ICE OR GLACIAL-ICE, IF S.W.E. (ESD) BELOW THRESHOLD LOWER 3456 |! BOUND (0.01 M FOR SEA-ICE, 0.10 M FOR GLACIAL-ICE), THEN SET AT LOWER 3457 |! BOUND AND STORE THE SOURCE INCREMENT IN SUBSURFACE RUNOFF/BASEFLOW 3458 |! (RUNOFF2). NOTE: RUNOFF2 IS THEN A NEGATIVE VALUE (AS A FLAG) OVER 3459 |! SEA-ICE OR GLACIAL-ICE, IN ORDER TO ACHIEVE WATER BALANCE. 3460 |! ---------------------------------------------------------------------- 3461 | ELSEIF (ICE .EQ. 1) THEN 3462 |! SEA-ICE 3463 | IF (ESD .GE. 0.01) THEN 3464 | CALL SNOWPACK (ESD,DT,SNOWH,SNDENS,T1,YY) 3465 | ELSE 3466 |! SNDENS = ESD/SNOWH 3467 |! RUNOFF2 = -(0.01-ESD)/DT 3468 | ESD = 0.01 3469 | SNOWH = 0.05 3470 | SNCOVR = 1.0 3471 |! SNOWH = ESD/SNDENS 3472 | ENDIF 3473 | ELSE 3474 |! GLACIAL-ICE 3475 | IF (ESD .GE. 0.10) THEN 3476 | CALL SNOWPACK (ESD,DT,SNOWH,SNDENS,T1,YY) 3477 | ELSE 3478 |! SNDENS = ESD/SNOWH 3479 |! RUNOFF2 = -(0.10-ESD)/DT 3480 | ESD = 0.10 3481 | SNOWH = 0.50 3482 | SNCOVR = 1.0 3483 |! SNOWH = ESD/SNDENS 3484 | ENDIF 3485 | ENDIF 3486 | 3487 |! ---------------------------------------------------------------------- 3488 |! END SUBROUTINE SNOPAC 3489 |! ---------------------------------------------------------------------- 3490 | RETURN 3491 | END >>>>> ATTRIBUTE AND CROSS REFERENCE SECTION <<<<< IDENTIFIER NAME CROSS REFERENCE AND ATTRIBUTES beta Reference argument, Real(4), Offset: 0, Alignment: full word 0-3008.12$ 0-2990.25 0-3307.9@ bexp Reference argument, Real(4), Offset: 0, Alignment: full word 0-3007.12$ 0-2985.25 0-3197.36 0-3408.27 0-3436.47 cfactr Reference argument, Real(4), Offset: 0, Alignment: full word 0-3009.12$ 0-2985.40 0-3199.31 cmc Reference argument, Real(4), Offset: 0, Alignment: full word 0-3010.12$ 0-2982.39 0-3196.41 0-3406.31 cmcmax Reference argument, Real(4), Offset: 0, Alignment: full word 0-3011.12$ 0-2982.43 0-3198.38 0-3409.27 cp Parameter, Real(4) 0-3012.12$ 0-3121.17$ cph2o Parameter, Real(4) 0-3013.12$ 0-3122.17$ 0-3237.35 cpice Parameter, Real(4) 0-3014.12$ 0-3123.17$ 0-3235.16 csnow Automatic, Real(4), Offset: 0, Alignment: full word 0-3104.12$ csoil Reference argument, Real(4), Offset: 0, Alignment: full word 0-3015.12$ 0-2989.48 0-3437.25 denom Automatic, Real(4), Offset: 0, Alignment: full word 0-3016.12$ 0-3250.7@ 0-3262.38 dew Reference argument, Real(4), Offset: 0, Alignment: full word 0-3017.12$ 0-2990.35 0-3170.7@ 0-3176.9@ df1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-3018.12$ 0-2983.31 0-3250.21 0-3261.14 0-3276.17 0-3308.17 0-3425.42 0-3436.55 dksat Reference argument, Real(4), Offset: 0, Alignment: full word 0-3019.12$ 0-2987.37 0-3197.51 0-3408.39 drip Reference argument, Real(4), Offset: 0, Alignment: full word 0-3020.12$ 0-2990.30 0-3412.20 dsoil Automatic, Real(4), Offset: 0, Alignment: full word 0-3021.12$ 0-3248.7@ 0-3249.22 dt Reference argument, Real(4), Offset: 0, Alignment: full word 0-3023.12$ 0-2982.56 0-3177.25 0-3189.27 0-3196.50 0-3222.27 0-3354.25 0-3367.22 0-3406.35 0-3435.51 0-3446.30 0-3464.30 0-3476.30 dtot Automatic, Real(4), Offset: 0, Alignment: full word 0-3022.12$ 0-3249.7@ 0-3250.28 0-3261.30 0-3276.39 0-3308.39 dwsat Reference argument, Real(4), Offset: 0, Alignment: full word 0-3024.12$ 0-2987.31 0-3197.57 0-3408.45 ec Reference argument, Real(4), Offset: 0, Alignment: full word 0-3025.12$ 0-2988.46 0-3155.7@ 0-3211.13@ ec1 Automatic, Real(4), Offset: 0, Alignment: full word 0-3106.12$ 0-3156.7@ 0-3200.30 0-3203.13@ 0-3203.19 0-3211.18 0-3411.26 edir Reference argument, Real(4), Offset: 0, Alignment: full word 0-3026.12$ 0-2988.41 0-3153.7@ 0-3210.13@ edir1 Automatic, Real(4), Offset: 0, Alignment: full word 0-3107.12$ 0-3154.7@ 0-3200.24 0-3202.13@ 0-3202.21 0-3210.20 0-3411.20 epsca Reference argument, Real(4), Offset: 0, Alignment: full word 0-3027.12$ 0-2984.52 esd Reference argument, Real(4), Offset: 0, Alignment: full word 0-3028.12$ 0-2985.54 0-3278.9@ 0-3278.24 0-3317.13 0-3319.11@ 0-3332.11@ 0-3332.17 0-3360.15 0-3361.13@ 0-3361.19 0-3367.18 0-3369.22 0-3370.13@ 0-3445.13 0-3446.26 0-3448.11@ 0-3463.13 0-3464.26 0-3468.11@ 0-3475.13 0-3476.26 0-3480.11@ esdmin Parameter, Real(4) 0-3029.12$ 0-3124.17$ 0-3317.29 0-3360.31 esnow Reference argument, Real(4), Offset: 0, Alignment: full word 0-3113.12$ 0-2990.54 0-3165.7@ 0-3187.11@ 0-3188.20 0-3190.20 0-3219.11@ 0-3221.20 0-3223.20 esnow1 Automatic, Real(4), Offset: 0, Alignment: full word 0-3114.12$ 0-3166.7@ 0-3188.11@ 0-3189.20 0-3221.11@ 0-3222.20 esnow2 Automatic, Real(4), Offset: 0, Alignment: full word 0-3115.12$ 0-3167.7@ 0-3177.9@ 0-3189.11@ 0-3222.11@ 0-3278.28 0-3317.17 0-3332.21 et Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-3037.12$ 0-2988.49 0-3158.9@ 0-3213.15@ et1 Controlled Automatic, Real(4) (1:?), Offset: 0, Alignment: full word 0-3108.12$ 0-3159.9@ 0-3200.34 0-3205.15@ 0-3205.24 0-3213.23 0-3411.30 eta Reference argument, Real(4), Offset: 0, Alignment: full word 0-3032.12$ 0-2981.30 eta1 Automatic, Real(4), Offset: 0, Alignment: full word 0-3033.12$ etanrg Automatic, Real(4), Offset: 0, Alignment: full word 0-3116.12$ 0-3178.9@ 0-3190.11@ 0-3223.11@ 0-3254.30 0-3259.30 0-3343.34 etns Automatic, Real(4), Offset: 0, Alignment: full word 0-3111.12$ 0-3163.7@ 0-3216.13@ 0-3223.34 etns1 Automatic, Real(4), Offset: 0, Alignment: full word 0-3112.12$ 0-3164.7@ 0-3196.25 0-3208.13@ 0-3208.21 0-3216.20 etp Reference argument, Real(4), Offset: 0, Alignment: full word 0-3034.12$ 0-2981.26 0-3171.14 0-3172.11 0-3178.18 0-3187.19 0-3219.19 etp1 Automatic, Real(4), Offset: 0, Alignment: full word 0-3035.12$ 0-3171.7@ 0-3176.16 0-3177.18 0-3196.45 etp2 Automatic, Real(4), Offset: 0, Alignment: full word 0-3036.12$ etp3 Automatic, Real(4), Offset: 0, Alignment: full word 0-3101.12$ ett Reference argument, Real(4), Offset: 0, Alignment: full word 0-3038.12$ 0-2988.52 0-3161.7@ 0-3215.13@ ett1 Automatic, Real(4), Offset: 0, Alignment: full word 0-3109.12$ 0-3162.7@ 0-3200.38 0-3207.13@ 0-3207.20 0-3215.19 evapo External Subroutine 0-3196.18 ex Automatic, Real(4), Offset: 0, Alignment: full word 0-3039.12$ 0-3280.9@ 0-3321.11@ 0-3345.11@ 0-3354.20 0-3367.13@ 0-3368.20 0-3387.41 expfac Automatic, Real(4), Offset: 0, Alignment: full word 0-3040.12$ expsno Automatic, Real(4), Offset: 0, Alignment: full word 0-3030.12$ expsoi Automatic, Real(4), Offset: 0, Alignment: full word 0-3031.12$ f1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-3046.12$ 0-2984.39 0-3436.52 fdown Reference argument, Real(4), Offset: 0, Alignment: full word 0-3041.12$ 0-2984.33 0-3253.17 0-3257.17 0-3341.18 flx1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-3043.12$ 0-2990.39 0-3233.7@ 0-3235.9@ 0-3237.28@ 0-3253.23 0-3257.23 0-3341.26 flx2 Reference argument, Real(4), Offset: 0, Alignment: full word 0-3044.12$ 0-2990.44 0-3253.28 0-3257.28 0-3341.33 flx3 Reference argument, Real(4), Offset: 0, Alignment: full word 0-3045.12$ 0-2990.49 0-3279.9@ 0-3320.11@ 0-3341.11@ 0-3344.15 0-3344.30@ 0-3345.16 0-3368.13@ frzfact Reference argument, Real(4), Offset: 0, Alignment: full word 0-3089.12$ 0-2986.46 0-3407.35 fxexp Reference argument, Real(4), Offset: 0, Alignment: full word 0-3042.12$ 0-2989.42 0-3200.65 ice Reference argument, Integer(4), Offset: 0, Alignment: full word 0-3001.15$ 0-2989.25 0-3183.13 0-3387.13 0-3405.11 0-3436.59 0-3443.11 0-3461.15 k Automatic, Integer(4), Offset: 0, Alignment: full word 0-3119.15$ 0-3157.10@ 0-3158.12 0-3159.13 0-3204.16@ 0-3205.19 0-3205.28 0-3212.16@ 0-3213.18 0-3213.27 kdt Reference argument, Real(4), Offset: 0, Alignment: full word 0-3047.12$ 0-2986.42 0-3407.31 lsubc Parameter, Real(4) 0-3049.12$ 0-3126.17$ 0-3178.35 0-3223.39 lsubf Parameter, Real(4) 0-3048.12$ 0-3125.17$ 0-3345.27 0-3368.30 lsubs Parameter, Real(4) 0-3050.12$ 0-3127.17$ 0-3178.50 0-3190.26 0-3223.26 max Pure Intrinsic 0-3278.15 nroot Reference argument, Integer(4), Offset: 0, Alignment: full word 0-3002.15$ 0-2988.56 0-3200.53 nsoil Reference argument, Integer(4), Offset: 0, Alignment: full word 0-3003.15$ 0-2982.50 0-3037.15 0-3037.15 0-3057.18 0-3057.18 0-3064.16 0-3064.16 0-3065.17 0-3065.17 0-3072.16 0-3072.16 0-3083.18 0-3083.18 0-3108.16 0-3108.16 0-3157.16 0-3196.35 0-3204.22 0-3212.22 0-3406.25 0-3435.41 pc Reference argument, Real(4), Offset: 0, Alignment: full word 0-3051.12$ 0-2985.30 0-3197.41 prcp Reference argument, Real(4), Offset: 0, Alignment: full word 0-3052.12$ 0-2981.34 0-3235.24 0-3237.13 0-3237.43 prcp1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-3053.12$ 0-2981.39 0-3150.7@ 0-3150.15 0-3387.25@ 0-3387.33 0-3406.38 psisat Reference argument, Real(4), Offset: 0, Alignment: full word 0-3090.12$ 0-2986.54 0-3436.35 q2 Reference argument, Real(4), Offset: 0, Alignment: full word 0-3054.12$ 0-2983.35 0-3200.50 qsat Automatic, Real(4), Offset: 0, Alignment: full word 0-3100.12$ quartz Reference argument, Real(4), Offset: 0, Alignment: full word 0-3095.12$ 0-2989.35 0-3437.18 rch Reference argument, Real(4), Offset: 0, Alignment: full word 0-3055.12$ 0-2985.33 0-3250.40 0-3253.44 0-3254.37 0-3258.54 0-3259.37 0-3261.42 0-3334.17 rr Reference argument, Real(4), Offset: 0, Alignment: full word 0-3056.12$ 0-2985.37 0-3250.35 0-3254.45 0-3259.45 0-3261.37 rsnow Automatic, Real(4), Offset: 0, Alignment: full word 0-3098.12$ rtdis Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-3057.12$ 0-2989.29 0-3200.59 runoff1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-3092.12$ 0-2987.60 0-3410.20 runoff2 Reference argument, Real(4), Offset: 0, Alignment: full word 0-3093.12$ 0-2988.25 0-3410.28 runoff3 Reference argument, Real(4), Offset: 0, Alignment: full word 0-3094.12$ 0-2988.33 0-3410.36 salp Automatic, Real(4), Offset: 0, Alignment: full word 0-3086.12$ sbeta Reference argument, Real(4), Offset: 0, Alignment: full word 0-3059.12$ 0-2983.25 seh Automatic, Real(4), Offset: 0, Alignment: full word 0-3102.12$ 0-3334.11@ 0-3343.28 sfcprs Reference argument, Real(4), Offset: 0, Alignment: full word 0-3087.12$ 0-2984.58 sfctmp Reference argument, Real(4), Offset: 0, Alignment: full word 0-3061.12$ 0-2983.41 0-3200.43 0-3235.37 0-3237.56 0-3254.21 0-3259.21 0-3262.14 sh2o Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-3065.12$ 0-2986.31 0-3197.24 0-3407.20 0-3436.42 shdfac Reference argument, Real(4), Offset: 0, Alignment: full word 0-3062.12$ 0-2987.53 0-3198.31 0-3409.20 shflx External Subroutine 0-3435.12 sigma Parameter, Real(4) 0-3063.12$ 0-3128.17$ 0-3253.33 0-3258.43 0-3342.47 slope Reference argument, Real(4), Offset: 0, Alignment: full word 0-3088.12$ 0-2986.36 0-3407.25 smc Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-3064.12$ 0-2981.52 0-3196.31 0-3406.21 0-3435.30 smcdry Reference argument, Real(4), Offset: 0, Alignment: full word 0-3066.12$ 0-2982.32 0-3199.24 smcmax Reference argument, Real(4), Offset: 0, Alignment: full word 0-3067.12$ 0-2981.56 0-3197.29 0-3408.20 0-3435.34 smcref Reference argument, Real(4), Offset: 0, Alignment: full word 0-3068.12$ 0-2982.25 0-3198.24 smcwlt Reference argument, Real(4), Offset: 0, Alignment: full word 0-3069.12$ 0-2981.63 0-3197.44 0-3408.32 0-3436.28 smflx External Subroutine 0-3406.14 sncond Automatic, Real(4), Offset: 0, Alignment: full word 0-3097.12$ 0-3451.11@ sncovr Reference argument, Real(4), Offset: 0, Alignment: full word 0-3099.12$ 0-2985.47 0-3178.27 0-3178.43 0-3195.15 0-3202.31 0-3203.27 0-3205.35 0-3207.29 0-3208.31 0-3219.23 0-3258.20 0-3258.34 0-3302.23 0-3302.53 0-3342.24 0-3342.38 0-3452.11@ 0-3470.11@ 0-3482.11@ sndens Reference argument, Real(4), Offset: 0, Alignment: full word 0-3096.12$ 0-2985.58 0-3446.39 0-3450.11@ 0-3464.39 0-3476.39 snoexp Parameter, Real(4) 0-3117.12$ 0-3131.17$ 0-3302.31 0-3302.61 snomlt Reference argument, Real(4), Offset: 0, Alignment: full word 0-3070.12$ 0-2988.62 0-3281.9@ 0-3322.11@ 0-3354.11@ 0-3360.19 0-3361.25 0-3369.13@ snopac Subroutine 0-2981.18$ snowh Reference argument, Real(4), Offset: 0, Alignment: full word 0-3071.12$ 0-2986.25 0-3249.14 0-3446.33 0-3449.11@ 0-3464.33 0-3469.11@ 0-3476.33 0-3481.11@ snowng Reference argument, Logical(1), Offset: 0, Alignment: byte 0-3005.17$ 0-2981.45 0-3234.11 snowpack External Subroutine 0-3446.16 0-3464.16 0-3476.16 snup Reference argument, Real(4), Offset: 0, Alignment: full word 0-3091.12$ 0-2986.61 ssoil Reference argument, Real(4), Offset: 0, Alignment: full word 0-3058.12$ 0-2984.42 0-3276.9@ 0-3308.9@ 0-3343.20 0-3425.23 ssoil1 Automatic, Real(4), Offset: 0, Alignment: full word 0-3060.12$ 0-3435.19 stc Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-3072.12$ 0-2984.48 0-3261.20 0-3276.29 0-3308.29 0-3425.12 0-3435.26 t1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-3073.12$ 0-2983.38 0-3235.32 0-3237.51 0-3275.9@ 0-3276.24 0-3302.9@ 0-3308.24 0-3334.22 0-3335.17 0-3335.20 0-3426.13 0-3446.46 0-3464.46 0-3476.46 t11 Automatic, Real(4), Offset: 0, Alignment: full word 0-3074.12$ 0-3426.7@ 0-3435.47 t12 Automatic, Real(4), Offset: 0, Alignment: full word 0-3075.12$ 0-3262.7@ 0-3274.11 0-3275.14 0-3302.40 t12a Automatic, Real(4), Offset: 0, Alignment: full word 0-3076.12$ 0-3253.7@ 0-3257.7@ 0-3262.23 t12b Automatic, Real(4), Offset: 0, Alignment: full word 0-3077.12$ 0-3261.7@ 0-3262.30 t14 Automatic, Real(4), Offset: 0, Alignment: full word 0-3103.12$ 0-3335.11@ 0-3336.11@ 0-3336.17 0-3336.21 0-3342.53 t24 Reference argument, Real(4), Offset: 0, Alignment: full word 0-3078.12$ 0-2984.25 0-3253.39 0-3258.49 tbot Reference argument, Real(4), Offset: 0, Alignment: full word 0-3079.12$ 0-2987.43 0-3436.18 tfreez Parameter, Real(4) 0-3085.12$ 0-3129.17$ 0-3274.20 0-3302.14 th2 Reference argument, Real(4), Offset: 0, Alignment: full word 0-3081.12$ 0-2984.29 0-3254.15 0-3259.15 0-3334.25 yy Automatic, Real(4), Offset: 0, Alignment: full word 0-3082.12$ 0-3425.7@ 0-3435.54 0-3446.49 0-3464.49 0-3476.49 zbot Reference argument, Real(4), Offset: 0, Alignment: full word 0-3080.12$ 0-2987.48 0-3436.23 zsoil Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-3083.12$ 0-2987.25 0-3196.53 0-3248.23 0-3406.44 0-3425.29 0-3435.61 zz1 Automatic, Real(4), Offset: 0, Alignment: full word 0-3084.12$ 0-3424.7@ 0-3425.38 0-3435.57 ** snopac === End of Compilation 18 === >>>>> COMPILATION UNIT EPILOGUE SECTION <<<<< FORTRAN Summary of Diagnosed Conditions TOTAL UNRECOVERABLE SEVERE ERROR WARNING INFORMATIONAL (U) (S) (E) (W) (I) 0 0 0 0 0 0 >>>>> OPTIONS SECTION <<<<< *** Options In Effect *** == On / Off Options == CR DBG ESCAPE FULLPATH I4 INLGLUE NOLIBESSL NOLIBPOSIX OBJECT SOURCE STRICT SWAPOMP THREADED UNWIND ZEROSIZE == Options Of Integer Type == ALIAS_SIZE(65536) MAXMEM(-1) OPTIMIZE(2) SPILLSIZE(2000) STACKTEMP(0) == Options Of Character Type == 64(LARGETYPE) ALIAS(STD,NOINTPTR) ALIGN(BINDC(POWER),STRUCT(NATURAL)) ARCH(PWR6) ATTR(FULL) AUTODBL(NONE) DESCRIPTOR(V1) DIRECTIVE(IBM*,IBMT) ENUM() FLAG(I,I) FLOAT(RNDSNGL,MAF,FOLD,RNGCHK,SINGLE) FREE(F90) HALT(S) IEEE(NEAR) INTSIZE(4) LANGLVL(EXTENDED) REALSIZE(4) NOSAVE() TUNE(PWR6) UNROLL(AUTO) XREF(FULL) XLF2003(NOPOLYMORPHIC,NOBOZLITARGS,NOSTOPEXCEPT,NOVOLATILE,NOAUTOREALLOC,OLDNANINF) XLF77(LEADZERO,BLANKPAD) XLF90(NOSIGNEDZERO,NOAUTODEALLOC,OLDPAD) >>>>> SOURCE SECTION <<<<< 3492 | 3493 |! -- 17. PHYSICS SUBROUTINE ==> SUBROUTINE SNOWPACK ------------------- 3494 | 3495 | SUBROUTINE SNOWPACK (ESD,DTSEC,SNOWH,SNDENS,TSNOW,TSOIL) 3496 | 3497 | IMPLICIT NONE 3498 | 3499 |! ---------------------------------------------------------------------- 3500 |! SUBROUTINE SNOWPACK 3501 |! ---------------------------------------------------------------------- 3502 |! CALCULATE COMPACTION OF SNOWPACK UNDER CONDITIONS OF INCREASING SNOW 3503 |! DENSITY, AS OBTAINED FROM AN APPROXIMATE SOLUTION OF E. ANDERSON'S 3504 |! DIFFERENTIAL EQUATION (3.29), NOAA TECHNICAL REPORT NWS 19, BY VICTOR 3505 |! KOREN, 03/25/95. 3506 |! ---------------------------------------------------------------------- 3507 |! ESD WATER EQUIVALENT OF SNOW (M) 3508 |! DTSEC TIME STEP (SEC) 3509 |! SNOWH SNOW DEPTH (M) 3510 |! SNDENS SNOW DENSITY (G/CM3=DIMENSIONLESS FRACTION OF H2O DENSITY) 3511 |! TSNOW SNOW SURFACE TEMPERATURE (K) 3512 |! TSOIL SOIL SURFACE TEMPERATURE (K) 3513 |! 3514 |! SUBROUTINE WILL RETURN NEW VALUES OF SNOWH AND SNDENS 3515 |! ---------------------------------------------------------------------- 3516 | INTEGER IPOL, J 3517 | 3518 | REAL BFAC,C1,C2,SNDENS,DSX,DTHR,DTSEC,DW,SNOWHC,SNOWH,PEXP, & 3519 | TAVGC,TSNOW,TSNOWC,TSOIL,TSOILC,ESD,ESDC,ESDCX,G,KN 3520 | 3521 | PARAMETER(C1 = 0.01, C2=21.0, G=9.81, KN=4000.0) 3522 | 3523 |! ---------------------------------------------------------------------- 3524 |! CONVERSION INTO SIMULATION UNITS 3525 |! ---------------------------------------------------------------------- 3526 | SNOWHC = SNOWH*100. 3527 | ESDC = ESD*100. 3528 | DTHR = DTSEC/3600. 3529 | TSNOWC = TSNOW-273.15 3530 | TSOILC = TSOIL-273.15 3531 | 3532 |! ---------------------------------------------------------------------- 3533 |! CALCULATING OF AVERAGE TEMPERATURE OF SNOW PACK 3534 |! ---------------------------------------------------------------------- 3535 | TAVGC = 0.5*(TSNOWC+TSOILC) 3536 | 3537 |! ---------------------------------------------------------------------- 3538 |! CALCULATING OF SNOW DEPTH AND DENSITY AS A RESULT OF COMPACTION 3539 |! SNDENS=DS0*(EXP(BFAC*ESD)-1.)/(BFAC*ESD) 3540 |! BFAC=DTHR*C1*EXP(0.08*TAVGC-C2*DS0) 3541 |! NOTE: BFAC*ESD IN SNDENS EQN ABOVE HAS TO BE CAREFULLY TREATED 3542 |! NUMERICALLY BELOW: 3543 |! C1 IS THE FRACTIONAL INCREASE IN DENSITY (1/(CM*HR)) 3544 |! C2 IS A CONSTANT (CM3/G) KOJIMA ESTIMATED AS 21 CMS/G 3545 |! ---------------------------------------------------------------------- 3546 | IF (ESDC .GT. 1.E-2) THEN 3547 | ESDCX = ESDC 3548 | ELSE 3549 | ESDCX = 1.E-2 3550 | ENDIF 3551 | BFAC = DTHR*C1*EXP(0.08*TAVGC-C2*SNDENS) 3552 | 3553 |! DSX = SNDENS*((DEXP(BFAC*ESDC)-1.)/(BFAC*ESDC)) 3554 |! ---------------------------------------------------------------------- 3555 |! THE FUNCTION OF THE FORM (e**x-1)/x IMBEDDED IN ABOVE EXPRESSION 3556 |! FOR DSX WAS CAUSING NUMERICAL DIFFICULTIES WHEN THE DENOMINATOR "x" 3557 |! (I.E. BFAC*ESDC) BECAME ZERO OR APPROACHED ZERO (DESPITE THE FACT THAT 3558 |! THE ANALYTICAL FUNCTION (e**x-1)/x HAS A WELL DEFINED LIMIT AS 3559 |! "x" APPROACHES ZERO), HENCE BELOW WE REPLACE THE (e**x-1)/x 3560 |! EXPRESSION WITH AN EQUIVALENT, NUMERICALLY WELL-BEHAVED 3561 |! POLYNOMIAL EXPANSION. 3562 |! 3563 |! NUMBER OF TERMS OF POLYNOMIAL EXPANSION, AND HENCE ITS ACCURACY, 3564 |! IS GOVERNED BY ITERATION LIMIT "IPOL". 3565 |! IPOL GREATER THAN 9 ONLY MAKES A DIFFERENCE ON DOUBLE 3566 |! PRECISION (RELATIVE ERRORS GIVEN IN PERCENT %). 3567 |! IPOL=9, FOR REL.ERROR <~ 1.6 E-6 % (8 SIGNIFICANT DIGITS) 3568 |! IPOL=8, FOR REL.ERROR <~ 1.8 E-5 % (7 SIGNIFICANT DIGITS) 3569 |! IPOL=7, FOR REL.ERROR <~ 1.8 E-4 % ... 3570 |! ---------------------------------------------------------------------- 3571 | IPOL = 4 3572 | PEXP = 0. 3573 | DO J = IPOL,1,-1 3574 |! PEXP = (1. + PEXP)*BFAC*ESDC/REAL(J+1) 3575 | PEXP = (1. + PEXP)*BFAC*ESDCX/REAL(J+1) 3576 | END DO 3577 | PEXP = PEXP + 1. 3578 | 3579 | DSX = SNDENS*(PEXP) 3580 |! ---------------------------------------------------------------------- 3581 |! ABOVE LINE ENDS POLYNOMIAL SUBSTITUTION 3582 |! ---------------------------------------------------------------------- 3583 |! END OF KOREAN FORMULATION 3584 | 3585 |! BASE FORMULATION (COGLEY ET AL., 1990) 3586 |! CONVERT DENSITY FROM G/CM3 TO KG/M3 3587 |! DSM=SNDENS*1000.0 3588 | 3589 |! DSX=DSM+DTSEC*0.5*DSM*G*ESD/ & 3590 |! (1E7*EXP(-0.02*DSM+KN/(TAVGC+273.16)-14.643)) 3591 | 3592 |! CONVERT DENSITY FROM KG/M3 TO G/CM3 3593 |! DSX=DSX/1000.0 3594 | 3595 |! END OF COGLEY ET AL. FORMULATION 3596 | 3597 |! ---------------------------------------------------------------------- 3598 |! SET UPPER/LOWER LIMIT ON SNOW DENSITY 3599 |! ---------------------------------------------------------------------- 3600 | IF (DSX .GT. 0.40) DSX = 0.40 3601 | IF (DSX .LT. 0.05) DSX = 0.05 3602 | SNDENS = DSX 3603 |! ---------------------------------------------------------------------- 3604 |! UPDATE OF SNOW DEPTH AND DENSITY DEPENDING ON LIQUID WATER DURING 3605 |! SNOWMELT. ASSUMED THAT 13% OF LIQUID WATER CAN BE STORED IN SNOW PER 3606 |! DAY DURING SNOWMELT TILL SNOW DENSITY 0.40. 3607 |! ---------------------------------------------------------------------- 3608 | IF (TSNOWC .GE. 0.) THEN 3609 | DW = 0.13*DTHR/24. 3610 | SNDENS = SNDENS*(1.-DW)+DW 3611 | IF (SNDENS .GT. 0.40) SNDENS = 0.40 3612 | ENDIF 3613 | 3614 |! ---------------------------------------------------------------------- 3615 |! CALCULATE SNOW DEPTH (CM) FROM SNOW WATER EQUIVALENT AND SNOW DENSITY. 3616 |! CHANGE SNOW DEPTH UNITS TO METERS 3617 |! ---------------------------------------------------------------------- 3618 | SNOWHC = ESDC/SNDENS 3619 | SNOWH = SNOWHC*0.01 3620 | 3621 |! ---------------------------------------------------------------------- 3622 |! END SUBROUTINE SNOWPACK 3623 |! ---------------------------------------------------------------------- 3624 | RETURN 3625 | END >>>>> ATTRIBUTE AND CROSS REFERENCE SECTION <<<<< IDENTIFIER NAME CROSS REFERENCE AND ATTRIBUTES bfac Automatic, Real(4), Offset: 0, Alignment: full word 0-3518.12$ 0-3551.7@ 0-3575.28 c1 Parameter, Real(4) 0-3518.17$ 0-3521.17$ 0-3551.19 c2 Parameter, Real(4) 0-3518.20$ 0-3521.28$ 0-3551.37 dsx Automatic, Real(4), Offset: 0, Alignment: full word 0-3518.30$ 0-3579.7@ 0-3600.11 0-3600.26@ 0-3601.11 0-3601.26@ 0-3602.16 dthr Automatic, Real(4), Offset: 0, Alignment: full word 0-3518.34$ 0-3528.7@ 0-3551.14 0-3609.19 dtsec Reference argument, Real(4), Offset: 0, Alignment: full word 0-3518.39$ 0-3495.32 0-3528.14 dw Automatic, Real(4), Offset: 0, Alignment: full word 0-3518.45$ 0-3609.9@ 0-3610.29 0-3610.33 esd Reference argument, Real(4), Offset: 0, Alignment: full word 0-3519.43$ 0-3495.28 0-3527.14 esdc Automatic, Real(4), Offset: 0, Alignment: full word 0-3519.47$ 0-3527.7@ 0-3546.11 0-3547.17 0-3618.16 esdcx Automatic, Real(4), Offset: 0, Alignment: full word 0-3519.52$ 0-3547.9@ 0-3549.9@ 0-3575.33 exp Pure Intrinsic 0-3551.22 g Parameter, Real(4) 0-3519.58$ 0-3521.37$ ipol Automatic, Integer(4), Offset: 0, Alignment: full word 0-3516.15$ 0-3571.7@ 0-3573.14 j Automatic, Integer(4), Offset: 0, Alignment: full word 0-3516.21$ 0-3573.10@ 0-3575.44 kn Parameter, Real(4) 0-3519.60$ 0-3521.45$ pexp Automatic, Real(4), Offset: 0, Alignment: full word 0-3518.61$ 0-3572.7@ 0-3575.9@ 0-3575.22 0-3577.7@ 0-3577.14 0-3579.21 real Pure Intrinsic 0-3575.39 sndens Reference argument, Real(4), Offset: 0, Alignment: full word 0-3518.23$ 0-3495.44 0-3551.40 0-3579.13 0-3602.7@ 0-3610.9@ 0-3610.18 0-3611.13 0-3611.31@ 0-3618.21 snowh Reference argument, Real(4), Offset: 0, Alignment: full word 0-3518.55$ 0-3495.38 0-3526.16 0-3619.7@ snowhc Automatic, Real(4), Offset: 0, Alignment: full word 0-3518.48$ 0-3526.7@ 0-3618.7@ 0-3619.15 snowpack Subroutine 0-3495.18$ tavgc Automatic, Real(4), Offset: 0, Alignment: full word 0-3519.11$ 0-3535.7@ 0-3551.31 tsnow Reference argument, Real(4), Offset: 0, Alignment: full word 0-3519.17$ 0-3495.51 0-3529.16 tsnowc Automatic, Real(4), Offset: 0, Alignment: full word 0-3519.23$ 0-3529.7@ 0-3535.20 0-3608.11 tsoil Reference argument, Real(4), Offset: 0, Alignment: full word 0-3519.30$ 0-3495.57 0-3530.16 tsoilc Automatic, Real(4), Offset: 0, Alignment: full word 0-3519.36$ 0-3530.7@ 0-3535.27 ** snowpack === End of Compilation 19 === >>>>> COMPILATION UNIT EPILOGUE SECTION <<<<< FORTRAN Summary of Diagnosed Conditions TOTAL UNRECOVERABLE SEVERE ERROR WARNING INFORMATIONAL (U) (S) (E) (W) (I) 0 0 0 0 0 0 >>>>> OPTIONS SECTION <<<<< *** Options In Effect *** == On / Off Options == CR DBG ESCAPE FULLPATH I4 INLGLUE NOLIBESSL NOLIBPOSIX OBJECT SOURCE STRICT SWAPOMP THREADED UNWIND ZEROSIZE == Options Of Integer Type == ALIAS_SIZE(65536) MAXMEM(-1) OPTIMIZE(2) SPILLSIZE(2000) STACKTEMP(0) == Options Of Character Type == 64(LARGETYPE) ALIAS(STD,NOINTPTR) ALIGN(BINDC(POWER),STRUCT(NATURAL)) ARCH(PWR6) ATTR(FULL) AUTODBL(NONE) DESCRIPTOR(V1) DIRECTIVE(IBM*,IBMT) ENUM() FLAG(I,I) FLOAT(RNDSNGL,MAF,FOLD,RNGCHK,SINGLE) FREE(F90) HALT(S) IEEE(NEAR) INTSIZE(4) LANGLVL(EXTENDED) REALSIZE(4) NOSAVE() TUNE(PWR6) UNROLL(AUTO) XREF(FULL) XLF2003(NOPOLYMORPHIC,NOBOZLITARGS,NOSTOPEXCEPT,NOVOLATILE,NOAUTOREALLOC,OLDNANINF) XLF77(LEADZERO,BLANKPAD) XLF90(NOSIGNEDZERO,NOAUTODEALLOC,OLDPAD) >>>>> SOURCE SECTION <<<<< 3626 | 3627 |! -- 18. PHYSICS SUBROUTINE ==> SUBROUTINE SNOWZ0 --------------------- 3628 | 3629 | SUBROUTINE SNOWZ0 (SNCOVR,Z0) 3630 | 3631 | IMPLICIT NONE 3632 | 3633 |! ---------------------------------------------------------------------- 3634 |! SUBROUTINE SNOWZ0 3635 |! ---------------------------------------------------------------------- 3636 |! CALCULATE TOTAL ROUGHNESS LENGTH OVER SNOW 3637 |! SNCOVR FRACTIONAL SNOW COVER 3638 |! Z0 ROUGHNESS LENGTH (m) 3639 |! Z0S SNOW ROUGHNESS LENGTH:=0.001 (m) 3640 |! ---------------------------------------------------------------------- 3641 | REAL SNCOVR, Z0, Z0S 3642 |! PARAMETER (Z0S=0.001) 3643 | 3644 |! CURRENT NOAH LSM CONDITION - MBEK, 09-OCT-2001 3645 | Z0S = Z0 3646 |! 3647 | Z0 = (1-SNCOVR)*Z0 + SNCOVR*Z0S 3648 |! ---------------------------------------------------------------------- 3649 |! END SUBROUTINE SNOWZ0 3650 |! ---------------------------------------------------------------------- 3651 | RETURN 3652 | END >>>>> ATTRIBUTE AND CROSS REFERENCE SECTION <<<<< IDENTIFIER NAME CROSS REFERENCE AND ATTRIBUTES sncovr Reference argument, Real(4), Offset: 0, Alignment: full word 0-3641.12$ 0-3629.26 0-3647.15 0-3647.28 snowz0 Subroutine 0-3629.18$ z0 Reference argument, Real(4), Offset: 0, Alignment: full word 0-3641.20$ 0-3629.33 0-3645.13 0-3647.7@ 0-3647.23 z0s Automatic, Real(4), Offset: 0, Alignment: full word 0-3641.24$ 0-3645.7@ 0-3647.35 ** snowz0 === End of Compilation 20 === >>>>> COMPILATION UNIT EPILOGUE SECTION <<<<< FORTRAN Summary of Diagnosed Conditions TOTAL UNRECOVERABLE SEVERE ERROR WARNING INFORMATIONAL (U) (S) (E) (W) (I) 0 0 0 0 0 0 >>>>> OPTIONS SECTION <<<<< *** Options In Effect *** == On / Off Options == CR DBG ESCAPE FULLPATH I4 INLGLUE NOLIBESSL NOLIBPOSIX OBJECT SOURCE STRICT SWAPOMP THREADED UNWIND ZEROSIZE == Options Of Integer Type == ALIAS_SIZE(65536) MAXMEM(-1) OPTIMIZE(2) SPILLSIZE(2000) STACKTEMP(0) == Options Of Character Type == 64(LARGETYPE) ALIAS(STD,NOINTPTR) ALIGN(BINDC(POWER),STRUCT(NATURAL)) ARCH(PWR6) ATTR(FULL) AUTODBL(NONE) DESCRIPTOR(V1) DIRECTIVE(IBM*,IBMT) ENUM() FLAG(I,I) FLOAT(RNDSNGL,MAF,FOLD,RNGCHK,SINGLE) FREE(F90) HALT(S) IEEE(NEAR) INTSIZE(4) LANGLVL(EXTENDED) REALSIZE(4) NOSAVE() TUNE(PWR6) UNROLL(AUTO) XREF(FULL) XLF2003(NOPOLYMORPHIC,NOBOZLITARGS,NOSTOPEXCEPT,NOVOLATILE,NOAUTOREALLOC,OLDNANINF) XLF77(LEADZERO,BLANKPAD) XLF90(NOSIGNEDZERO,NOAUTODEALLOC,OLDPAD) >>>>> SOURCE SECTION <<<<< 3653 | 3654 |! -- 19. PHYSICS SUBROUTINE ==> SUBROUTINE SNOW_NEW ------------------- 3655 | 3656 | SUBROUTINE SNOW_NEW (TEMP,NEWSN,SNOWH,SNDENS) 3657 | 3658 | IMPLICIT NONE 3659 | 3660 |! ---------------------------------------------------------------------- 3661 |! SUBROUTINE SNOW_NEW 3662 |! ---------------------------------------------------------------------- 3663 |! CALCULATE SNOW DEPTH AND DENSITITY TO ACCOUNT FOR THE NEW SNOWFALL. 3664 |! NEW VALUES OF SNOW DEPTH & DENSITY RETURNED. 3665 |! 3666 |! TEMP AIR TEMPERATURE (K) 3667 |! NEWSN NEW SNOWFALL (M) 3668 |! SNOWH SNOW DEPTH (M) 3669 |! SNDENS SNOW DENSITY (G/CM3=DIMENSIONLESS FRACTION OF H2O DENSITY) 3670 |! ---------------------------------------------------------------------- 3671 | REAL SNDENS 3672 | REAL DSNEW 3673 | REAL SNOWHC 3674 | REAL HNEWC 3675 | REAL SNOWH 3676 | REAL NEWSN 3677 | REAL NEWSNC 3678 | REAL TEMP 3679 | REAL TEMPC 3680 | 3681 |! ---------------------------------------------------------------------- 3682 |! CONVERSION INTO SIMULATION UNITS 3683 |! ---------------------------------------------------------------------- 3684 | SNOWHC = SNOWH*100. 3685 | NEWSNC = NEWSN*100. 3686 | TEMPC = TEMP-273.15 3687 | 3688 |! ---------------------------------------------------------------------- 3689 |! CALCULATING NEW SNOWFALL DENSITY DEPENDING ON TEMPERATURE 3690 |! EQUATION FROM GOTTLIB L. 'A GENERAL RUNOFF MODEL FOR SNOWCOVERED 3691 |! AND GLACIERIZED BASIN', 6TH NORDIC HYDROLOGICAL CONFERENCE, 3692 |! VEMADOLEN, SWEDEN, 1980, 172-177PP. 3693 |!----------------------------------------------------------------------- 3694 | IF (TEMPC .LE. -15.) THEN 3695 | DSNEW = 0.05 3696 | ELSE 3697 | DSNEW = 0.05+0.0017*(TEMPC+15.)**1.5 3698 | ENDIF 3699 | 3700 |! ---------------------------------------------------------------------- 3701 |! ADJUSTMENT OF SNOW DENSITY DEPENDING ON NEW SNOWFALL 3702 |! ---------------------------------------------------------------------- 3703 | HNEWC = NEWSNC/DSNEW 3704 | SNDENS = (SNOWHC*SNDENS+HNEWC*DSNEW)/(SNOWHC+HNEWC) 3705 | SNOWHC = SNOWHC+HNEWC 3706 | SNOWH = SNOWHC*0.01 3707 | 3708 |! ---------------------------------------------------------------------- 3709 |! END SUBROUTINE SNOW_NEW 3710 |! ---------------------------------------------------------------------- 3711 | RETURN 3712 | END >>>>> ATTRIBUTE AND CROSS REFERENCE SECTION <<<<< IDENTIFIER NAME CROSS REFERENCE AND ATTRIBUTES dsnew Automatic, Real(4), Offset: 0, Alignment: full word 0-3672.12$ 0-3695.9@ 0-3697.9@ 0-3703.22 0-3704.37 hnewc Automatic, Real(4), Offset: 0, Alignment: full word 0-3674.12$ 0-3703.7@ 0-3704.31 0-3704.52 0-3705.23 newsn Reference argument, Real(4), Offset: 0, Alignment: full word 0-3676.12$ 0-3656.33 0-3685.16 newsnc Automatic, Real(4), Offset: 0, Alignment: full word 0-3677.12$ 0-3685.7@ 0-3703.15 sndens Reference argument, Real(4), Offset: 0, Alignment: full word 0-3671.12$ 0-3656.45 0-3704.7@ 0-3704.24 snow_new Subroutine 0-3656.18$ snowh Reference argument, Real(4), Offset: 0, Alignment: full word 0-3675.12$ 0-3656.39 0-3684.16 0-3706.7@ snowhc Automatic, Real(4), Offset: 0, Alignment: full word 0-3673.12$ 0-3684.7@ 0-3704.17 0-3704.45 0-3705.7@ 0-3705.16 0-3706.15 temp Reference argument, Real(4), Offset: 0, Alignment: full word 0-3678.12$ 0-3656.28 0-3686.15 tempc Automatic, Real(4), Offset: 0, Alignment: full word 0-3679.12$ 0-3686.7@ 0-3694.11 0-3697.30 ** snow_new === End of Compilation 21 === >>>>> COMPILATION UNIT EPILOGUE SECTION <<<<< FORTRAN Summary of Diagnosed Conditions TOTAL UNRECOVERABLE SEVERE ERROR WARNING INFORMATIONAL (U) (S) (E) (W) (I) 0 0 0 0 0 0 >>>>> OPTIONS SECTION <<<<< *** Options In Effect *** == On / Off Options == CR DBG ESCAPE FULLPATH I4 INLGLUE NOLIBESSL NOLIBPOSIX OBJECT SOURCE STRICT SWAPOMP THREADED UNWIND ZEROSIZE == Options Of Integer Type == ALIAS_SIZE(65536) MAXMEM(-1) OPTIMIZE(2) SPILLSIZE(2000) STACKTEMP(0) == Options Of Character Type == 64(LARGETYPE) ALIAS(STD,NOINTPTR) ALIGN(BINDC(POWER),STRUCT(NATURAL)) ARCH(PWR6) ATTR(FULL) AUTODBL(NONE) DESCRIPTOR(V1) DIRECTIVE(IBM*,IBMT) ENUM() FLAG(I,I) FLOAT(RNDSNGL,MAF,FOLD,RNGCHK,SINGLE) FREE(F90) HALT(S) IEEE(NEAR) INTSIZE(4) LANGLVL(EXTENDED) REALSIZE(4) NOSAVE() TUNE(PWR6) UNROLL(AUTO) XREF(FULL) XLF2003(NOPOLYMORPHIC,NOBOZLITARGS,NOSTOPEXCEPT,NOVOLATILE,NOAUTOREALLOC,OLDNANINF) XLF77(LEADZERO,BLANKPAD) XLF90(NOSIGNEDZERO,NOAUTODEALLOC,OLDPAD) >>>>> SOURCE SECTION <<<<< 3713 | 3714 |! -- 20. PHYSICS SUBROUTINE ==> SUBROUTINE SRT - ---------------------- 3715 | 3716 | SUBROUTINE SRT (RHSTT,EDIR,ET,SH2O,SH2OA,NSOIL,PCPDRP, & 3717 | ZSOIL,DWSAT,DKSAT,SMCMAX,BEXP,RUNOFF1, & 3718 | RUNOFF2,DT,SMCWLT,SLOPE,KDT,FRZX,SICE,AI,BI,CI) 3719 | 3720 | IMPLICIT NONE 3721 | 3722 |! ---------------------------------------------------------------------- 3723 |! SUBROUTINE SRT 3724 |! ---------------------------------------------------------------------- 3725 |! CALCULATE THE RIGHT HAND SIDE OF THE TIME TENDENCY TERM OF THE SOIL 3726 |! WATER DIFFUSION EQUATION. ALSO TO COMPUTE ( PREPARE ) THE MATRIX 3727 |! COEFFICIENTS FOR THE TRI-DIAGONAL MATRIX OF THE IMPLICIT TIME SCHEME. 3728 |! ---------------------------------------------------------------------- 3729 | INTEGER, PARAMETER:: NSOLD=4 3730 | 3731 | INTEGER CVFRZ 3732 | INTEGER IALP1 3733 | INTEGER IOHINF 3734 | INTEGER J 3735 | INTEGER JJ 3736 | INTEGER K 3737 | INTEGER KS 3738 | INTEGER NSOIL 3739 | 3740 | REAL ACRT 3741 | REAL AI(NSOLD) 3742 | REAL BEXP 3743 | REAL BI(NSOLD) 3744 | REAL CI(NSOLD) 3745 | REAL DD 3746 | REAL DDT 3747 | REAL DDZ 3748 | REAL DDZ2 3749 | REAL DENOM 3750 | REAL DENOM2 3751 | REAL DICE 3752 | REAL DKSAT 3753 | REAL DMAX(NSOLD) 3754 | REAL DSMDZ 3755 | REAL DSMDZ2 3756 | REAL DT 3757 | REAL DT1 3758 | REAL DWSAT 3759 | REAL EDIR 3760 | REAL ET(NSOIL) 3761 | REAL FCR 3762 | REAL FRZX 3763 | REAL INFMAX 3764 | REAL KDT 3765 | REAL MXSMC 3766 | REAL MXSMC2 3767 | REAL NUMER 3768 | REAL PCPDRP 3769 | REAL PDDUM 3770 | REAL PX 3771 | REAL RHSTT(NSOIL) 3772 | REAL RUNOFF1 3773 | REAL RUNOFF2 3774 | REAL SH2O(NSOIL) 3775 | REAL SH2OA(NSOIL) 3776 | REAL SICE(NSOIL) 3777 | REAL SICEMAX 3778 | REAL SLOPE 3779 | REAL SLOPX 3780 | REAL SMCAV 3781 | REAL SMCMAX 3782 | REAL SMCWLT 3783 | REAL SSTT 3784 | REAL SUM 3785 | REAL VAL 3786 | REAL WCND 3787 | REAL WCND2 3788 | REAL WDF 3789 | REAL WDF2 3790 | REAL ZSOIL(NSOIL) 3791 | 3792 |! ---------------------------------------------------------------------- 3793 |! FROZEN GROUND VERSION: 3794 |! REFERENCE FROZEN GROUND PARAMETER, CVFRZ, IS A SHAPE PARAMETER OF 3795 |! AREAL DISTRIBUTION FUNCTION OF SOIL ICE CONTENT WHICH EQUALS 1/CV. 3796 |! CV IS A COEFFICIENT OF SPATIAL VARIATION OF SOIL ICE CONTENT. BASED 3797 |! ON FIELD DATA CV DEPENDS ON AREAL MEAN OF FROZEN DEPTH, AND IT CLOSE 3798 |! TO CONSTANT = 0.6 IF AREAL MEAN FROZEN DEPTH IS ABOVE 20 CM. THAT IS 3799 |! WHY PARAMETER CVFRZ = 3 (INT{1/0.6*0.6}). 3800 |! CURRENT LOGIC DOESN'T ALLOW CVFRZ BE BIGGER THAN 3 3801 |! ---------------------------------------------------------------------- 3802 | PARAMETER(CVFRZ = 3) 3803 | 3804 |! ---------------------------------------------------------------------- 3805 |! DETERMINE RAINFALL INFILTRATION RATE AND RUNOFF. INCLUDE THE 3806 |! INFILTRATION FORMULE FROM SCHAAKE AND KOREN MODEL. 3807 |! MODIFIED BY Q DUAN 3808 |! ---------------------------------------------------------------------- 3809 | IOHINF=1 3810 | 3811 |! ---------------------------------------------------------------------- 3812 |! LET SICEMAX BE THE GREATEST, IF ANY, FROZEN WATER CONTENT WITHIN SOIL 3813 |! LAYERS. 3814 |! ---------------------------------------------------------------------- 3815 | SICEMAX = 0.0 3816 | DO KS=1,NSOIL 3817 | IF (SICE(KS) .GT. SICEMAX) SICEMAX = SICE(KS) 3818 | END DO 3819 | 3820 |! ---------------------------------------------------------------------- 3821 |! DETERMINE RAINFALL INFILTRATION RATE AND RUNOFF 3822 |! ---------------------------------------------------------------------- 3823 | PDDUM = PCPDRP 3824 | RUNOFF1 = 0.0 3825 | IF (PCPDRP .NE. 0.0) THEN 3826 | 3827 |! ---------------------------------------------------------------------- 3828 |! MODIFIED BY Q. DUAN, 5/16/94 3829 |! ---------------------------------------------------------------------- 3830 |! IF (IOHINF .EQ. 1) THEN 3831 | 3832 | DT1 = DT/86400. 3833 | SMCAV = SMCMAX - SMCWLT 3834 | DMAX(1)=-ZSOIL(1)*SMCAV 3835 | 3836 |! ---------------------------------------------------------------------- 3837 |! FROZEN GROUND VERSION: 3838 |! ---------------------------------------------------------------------- 3839 | DICE = -ZSOIL(1) * SICE(1) 3840 | 3841 | DMAX(1)=DMAX(1)*(1.0 - (SH2OA(1)+SICE(1)-SMCWLT)/SMCAV) 3842 | DD=DMAX(1) 3843 | 3844 | DO KS=2,NSOIL 3845 | 3846 |! ---------------------------------------------------------------------- 3847 |! FROZEN GROUND VERSION: 3848 |! ---------------------------------------------------------------------- 3849 | DICE = DICE + ( ZSOIL(KS-1) - ZSOIL(KS) ) * SICE(KS) 3850 | 3851 | DMAX(KS) = (ZSOIL(KS-1)-ZSOIL(KS))*SMCAV 3852 | DMAX(KS) = DMAX(KS)*(1.0 - (SH2OA(KS)+SICE(KS)-SMCWLT)/SMCAV) 3853 | DD = DD+DMAX(KS) 3854 | END DO 3855 | 3856 |! ---------------------------------------------------------------------- 3857 |! VAL = (1.-EXP(-KDT*SQRT(DT1))) 3858 |! IN BELOW, REMOVE THE SQRT IN ABOVE 3859 |! ---------------------------------------------------------------------- 3860 | VAL = (1.-EXP(-KDT*DT1)) 3861 | DDT = DD*VAL 3862 | PX = PCPDRP*DT 3863 | IF (PX .LT. 0.0) PX = 0.0 3864 | INFMAX = (PX*(DDT/(PX+DDT)))/DT 3865 | 3866 |! ---------------------------------------------------------------------- 3867 |! FROZEN GROUND VERSION: 3868 |! REDUCTION OF INFILTRATION BASED ON FROZEN GROUND PARAMETERS 3869 |! ---------------------------------------------------------------------- 3870 | FCR = 1. 3871 | IF (DICE .GT. 1.E-2) THEN 3872 | ACRT = CVFRZ * FRZX / DICE 3873 | SUM = 1. 3874 | IALP1 = CVFRZ - 1 3875 | DO J = 1,IALP1 3876 | K = 1 3877 | DO JJ = J+1,IALP1 3878 | K = K * JJ 3879 | END DO 3880 | SUM = SUM + (ACRT ** ( CVFRZ-J)) / FLOAT (K) 3881 | END DO 3882 | FCR = 1. - EXP(-ACRT) * SUM 3883 | ENDIF 3884 | INFMAX = INFMAX * FCR 3885 | 3886 |! ---------------------------------------------------------------------- 3887 |! CORRECTION OF INFILTRATION LIMITATION: 3888 |! IF INFMAX .LE. HYDROLIC CONDUCTIVITY ASSIGN INFMAX THE VALUE OF 3889 |! HYDROLIC CONDUCTIVITY 3890 |! ---------------------------------------------------------------------- 3891 |! MXSMC = MAX ( SH2OA(1), SH2OA(2) ) 3892 | MXSMC = SH2OA(1) 3893 | 3894 | CALL WDFCND (WDF,WCND,MXSMC,SMCMAX,BEXP,DKSAT,DWSAT, & 3895 | SICEMAX) 3896 | 3897 | INFMAX = MAX(INFMAX,WCND) 3898 | INFMAX = MIN(INFMAX,PX) 3899 | 3900 | IF (PCPDRP .GT. INFMAX) THEN 3901 | RUNOFF1 = PCPDRP - INFMAX 3902 | PDDUM = INFMAX 3903 | ENDIF 3904 | 3905 | ENDIF 3906 | 3907 |! ---------------------------------------------------------------------- 3908 |! TO AVOID SPURIOUS DRAINAGE BEHAVIOR, 'UPSTREAM DIFFERENCING' IN LINE 3909 |! BELOW REPLACED WITH NEW APPROACH IN 2ND LINE: 3910 |! 'MXSMC = MAX(SH2OA(1), SH2OA(2))' 3911 |! ---------------------------------------------------------------------- 3912 | MXSMC = SH2OA(1) 3913 | 3914 | CALL WDFCND (WDF,WCND,MXSMC,SMCMAX,BEXP,DKSAT,DWSAT, & 3915 | SICEMAX) 3916 | 3917 |! ---------------------------------------------------------------------- 3918 |! CALC THE MATRIX COEFFICIENTS AI, BI, AND CI FOR THE TOP LAYER 3919 |! ---------------------------------------------------------------------- 3920 | DDZ = 1. / ( -.5 * ZSOIL(2) ) 3921 | AI(1) = 0.0 3922 | BI(1) = WDF * DDZ / ( -ZSOIL(1) ) 3923 | CI(1) = -BI(1) 3924 | 3925 |! ---------------------------------------------------------------------- 3926 |! CALC RHSTT FOR THE TOP LAYER AFTER CALC'NG THE VERTICAL SOIL MOISTURE 3927 |! GRADIENT BTWN THE TOP AND NEXT TO TOP LAYERS. 3928 |! ---------------------------------------------------------------------- 3929 | DSMDZ = ( SH2O(1) - SH2O(2) ) / ( -.5 * ZSOIL(2) ) 3930 | RHSTT(1) = (WDF * DSMDZ + WCND - PDDUM + EDIR + ET(1))/ZSOIL(1) 3931 | SSTT = WDF * DSMDZ + WCND + EDIR + ET(1) 3932 | 3933 |! ---------------------------------------------------------------------- 3934 |! INITIALIZE DDZ2 3935 |! ---------------------------------------------------------------------- 3936 | DDZ2 = 0.0 3937 | 3938 |! ---------------------------------------------------------------------- 3939 |! LOOP THRU THE REMAINING SOIL LAYERS, REPEATING THE ABV PROCESS 3940 |! ---------------------------------------------------------------------- 3941 | DO K = 2,NSOIL 3942 | DENOM2 = (ZSOIL(K-1) - ZSOIL(K)) 3943 | IF (K .NE. NSOIL) THEN 3944 | SLOPX = 1. 3945 | 3946 |! ---------------------------------------------------------------------- 3947 |! AGAIN, TO AVOID SPURIOUS DRAINAGE BEHAVIOR, 'UPSTREAM DIFFERENCING' IN 3948 |! LINE BELOW REPLACED WITH NEW APPROACH IN 2ND LINE: 3949 |! 'MXSMC2 = MAX (SH2OA(K), SH2OA(K+1))' 3950 |! ---------------------------------------------------------------------- 3951 | MXSMC2 = SH2OA(K) 3952 | 3953 | CALL WDFCND (WDF2,WCND2,MXSMC2,SMCMAX,BEXP,DKSAT,DWSAT, & 3954 | SICEMAX) 3955 | 3956 |! ---------------------------------------------------------------------- 3957 |! CALC SOME PARTIAL PRODUCTS FOR LATER USE IN CALC'NG RHSTT 3958 |! ---------------------------------------------------------------------- 3959 | DENOM = (ZSOIL(K-1) - ZSOIL(K+1)) 3960 | DSMDZ2 = (SH2O(K) - SH2O(K+1)) / (DENOM * 0.5) 3961 | 3962 |! ---------------------------------------------------------------------- 3963 |! CALC THE MATRIX COEF, CI, AFTER CALC'NG ITS PARTIAL PRODUCT 3964 |! ---------------------------------------------------------------------- 3965 | DDZ2 = 2.0 / DENOM 3966 | CI(K) = -WDF2 * DDZ2 / DENOM2 3967 | ELSE 3968 | 3969 |! ---------------------------------------------------------------------- 3970 |! SLOPE OF BOTTOM LAYER IS INTRODUCED 3971 |! ---------------------------------------------------------------------- 3972 | SLOPX = SLOPE 3973 | 3974 |! ---------------------------------------------------------------------- 3975 |! RETRIEVE THE SOIL WATER DIFFUSIVITY AND HYDRAULIC CONDUCTIVITY FOR 3976 |! THIS LAYER 3977 |! ---------------------------------------------------------------------- 3978 | CALL WDFCND (WDF2,WCND2,SH2OA(NSOIL),SMCMAX,BEXP,DKSAT, & 3979 | DWSAT,SICEMAX) 3980 | 3981 |! ---------------------------------------------------------------------- 3982 |! CALC A PARTIAL PRODUCT FOR LATER USE IN CALC'NG RHSTT 3983 |! ---------------------------------------------------------------------- 3984 | DSMDZ2 = 0.0 3985 | 3986 |! ---------------------------------------------------------------------- 3987 |! SET MATRIX COEF CI TO ZERO 3988 |! ---------------------------------------------------------------------- 3989 | CI(K) = 0.0 3990 | ENDIF 3991 | 3992 |! ---------------------------------------------------------------------- 3993 |! CALC RHSTT FOR THIS LAYER AFTER CALC'NG ITS NUMERATOR 3994 |! ---------------------------------------------------------------------- 3995 | NUMER = (WDF2 * DSMDZ2) + SLOPX * WCND2 - (WDF * DSMDZ) & 3996 | - WCND + ET(K) 3997 | RHSTT(K) = NUMER / (-DENOM2) 3998 | 3999 |! ---------------------------------------------------------------------- 4000 |! CALC MATRIX COEFS, AI, AND BI FOR THIS LAYER 4001 |! ---------------------------------------------------------------------- 4002 | AI(K) = -WDF * DDZ / DENOM2 4003 | BI(K) = -( AI(K) + CI(K) ) 4004 | 4005 |! ---------------------------------------------------------------------- 4006 |! RESET VALUES OF WDF, WCND, DSMDZ, AND DDZ FOR LOOP TO NEXT LYR 4007 |! RUNOFF2: SUB-SURFACE OR BASEFLOW RUNOFF 4008 |! ---------------------------------------------------------------------- 4009 | IF (K .EQ. NSOIL) THEN 4010 | RUNOFF2 = SLOPX * WCND2 4011 | ENDIF 4012 | 4013 | IF (K .NE. NSOIL) THEN 4014 | WDF = WDF2 4015 | WCND = WCND2 4016 | DSMDZ = DSMDZ2 4017 | DDZ = DDZ2 4018 | ENDIF 4019 | END DO 4020 | 4021 |! ---------------------------------------------------------------------- 4022 |! END SUBROUTINE SRT 4023 |! ---------------------------------------------------------------------- 4024 | RETURN 4025 | END >>>>> ATTRIBUTE AND CROSS REFERENCE SECTION <<<<< IDENTIFIER NAME CROSS REFERENCE AND ATTRIBUTES acrt Automatic, Real(4), Offset: 0, Alignment: full word 0-3740.12$ 0-3872.11@ 0-3880.26 0-3882.27 ai Reference argument, Real(4) (1:4), Offset: 0, Alignment: full word 0-3741.12$ 0-3718.60 0-3921.7@ 0-4002.9@ 0-4003.20 bexp Reference argument, Real(4), Offset: 0, Alignment: full word 0-3742.12$ 0-3717.47 0-3894.44 0-3914.42 0-3953.49 0-3978.55 bi Reference argument, Real(4) (1:4), Offset: 0, Alignment: full word 0-3743.12$ 0-3718.63 0-3922.7@ 0-3923.16 0-4003.9@ ci Reference argument, Real(4) (1:4), Offset: 0, Alignment: full word 0-3744.12$ 0-3718.66 0-3923.7@ 0-3966.11@ 0-3989.11@ 0-4003.28 cvfrz Parameter, Integer(4) 0-3731.15$ 0-3802.19$ 0-3872.18 0-3874.19 0-3880.36 dd Automatic, Real(4), Offset: 0, Alignment: full word 0-3745.12$ 0-3842.9@ 0-3853.11@ 0-3853.16 0-3861.15 ddt Automatic, Real(4), Offset: 0, Alignment: full word 0-3746.12$ 0-3861.9@ 0-3864.23 0-3864.31 ddz Automatic, Real(4), Offset: 0, Alignment: full word 0-3747.12$ 0-3920.7@ 0-3922.21 0-4002.24 0-4017.11@ ddz2 Automatic, Real(4), Offset: 0, Alignment: full word 0-3748.12$ 0-3936.7@ 0-3965.11@ 0-3966.27 0-4017.17 denom Automatic, Real(4), Offset: 0, Alignment: full word 0-3749.12$ 0-3959.11@ 0-3960.45 0-3965.24 denom2 Automatic, Real(4), Offset: 0, Alignment: full word 0-3750.12$ 0-3942.9@ 0-3966.34 0-3997.30 0-4002.30 dice Automatic, Real(4), Offset: 0, Alignment: full word 0-3751.12$ 0-3839.9@ 0-3849.11@ 0-3849.18 0-3871.13 0-3872.33 dksat Reference argument, Real(4), Offset: 0, Alignment: full word 0-3752.12$ 0-3717.34 0-3894.49 0-3914.47 0-3953.54 0-3978.60 dmax Automatic, Real(4) (1:4), Offset: 0, Alignment: full word 0-3753.12$ 0-3834.9@ 0-3841.9@ 0-3841.17 0-3842.12 0-3851.11@ 0-3852.11@ 0-3852.22 0-3853.19 dsmdz Automatic, Real(4), Offset: 0, Alignment: full word 0-3754.12$ 0-3929.7@ 0-3930.25 0-3931.20 0-3995.58 0-4016.11@ dsmdz2 Automatic, Real(4), Offset: 0, Alignment: full word 0-3755.12$ 0-3960.11@ 0-3984.11@ 0-3995.25 0-4016.19 dt Reference argument, Real(4), Offset: 0, Alignment: full word 0-3756.12$ 0-3718.30 0-3832.15 0-3862.21 0-3864.38 dt1 Automatic, Real(4), Offset: 0, Alignment: full word 0-3757.12$ 0-3832.9@ 0-3860.28 dwsat Reference argument, Real(4), Offset: 0, Alignment: full word 0-3758.12$ 0-3717.28 0-3894.55 0-3914.53 0-3953.60 0-3979.23 edir Reference argument, Real(4), Offset: 0, Alignment: full word 0-3759.12$ 0-3716.29 0-3930.48 0-3931.35 et Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-3760.12$ 0-3716.34 0-3930.55 0-3931.42 0-3996.19 exp Pure Intrinsic 0-3860.19 0-3882.22 fcr Automatic, Real(4), Offset: 0, Alignment: full word 0-3761.12$ 0-3870.9@ 0-3882.11@ 0-3884.27 float Pure Intrinsic 0-3880.48 frzx Reference argument, Real(4), Offset: 0, Alignment: full word 0-3762.12$ 0-3718.50 0-3872.26 ialp1 Automatic, Integer(4), Offset: 0, Alignment: full word 0-3732.15$ 0-3874.11@ 0-3875.20 0-3877.25 infmax Automatic, Real(4), Offset: 0, Alignment: full word 0-3763.12$ 0-3864.9@ 0-3884.9@ 0-3884.18 0-3897.9@ 0-3897.22 0-3898.9@ 0-3898.22 0-3900.25 0-3901.30 0-3902.19 iohinf Automatic, Integer(4), Offset: 0, Alignment: full word 0-3733.15$ 0-3809.7@ j Automatic, Integer(4), Offset: 0, Alignment: full word 0-3734.15$ 0-3875.14@ 0-3877.21 0-3880.42 jj Automatic, Integer(4), Offset: 0, Alignment: full word 0-3735.15$ 0-3877.16@ 0-3878.23 k Automatic, Integer(4), Offset: 0, Alignment: full word 0-3736.15$ 0-3876.13@ 0-3878.15@ 0-3878.19 0-3880.55 0-3941.10@ 0-3942.25 0-3942.38 0-3943.13 0-3951.26 0-3959.26 0-3959.39 0-3960.26 0-3960.36 0-3966.14 0-3989.14 0-3996.22 0-3997.15 0-4002.12 0-4003.12 0-4003.23 0-4003.31 0-4009.13 0-4013.13 kdt Reference argument, Real(4), Offset: 0, Alignment: full word 0-3764.12$ 0-3718.46 0-3860.24 ks Automatic, Integer(4), Offset: 0, Alignment: full word 0-3737.15$ 0-3816.10@ 0-3817.17 0-3817.50 0-3844.12@ 0-3849.33 0-3849.47 0-3849.60 0-3851.16 0-3851.29 0-3851.41 0-3852.16 0-3852.27 0-3852.45 0-3852.54 0-3853.24 max Pure Intrinsic 0-3897.18 min Pure Intrinsic 0-3898.18 mxsmc Automatic, Real(4), Offset: 0, Alignment: full word 0-3765.12$ 0-3892.9@ 0-3894.31 0-3912.7@ 0-3914.29 mxsmc2 Automatic, Real(4), Offset: 0, Alignment: full word 0-3766.12$ 0-3951.11@ 0-3953.35 nsoil Reference argument, Integer(4), Offset: 0, Alignment: full word 0-3738.15$ 0-3716.48 0-3760.15 0-3760.15 0-3771.18 0-3771.18 0-3774.17 0-3774.17 0-3775.18 0-3775.18 0-3776.17 0-3776.17 0-3790.18 0-3790.18 0-3816.15 0-3844.17 0-3941.16 0-3943.20 0-3978.41 0-4009.20 0-4013.20 nsold Parameter, Integer(4) 0-3729.28$ 0-3741.15 0-3743.15 0-3744.15 0-3753.17 numer Automatic, Real(4), Offset: 0, Alignment: full word 0-3767.12$ 0-3995.9@ 0-3997.20 pcpdrp Reference argument, Real(4), Offset: 0, Alignment: full word 0-3768.12$ 0-3716.54 0-3823.15 0-3825.11 0-3862.14 0-3900.13 0-3901.21 pddum Automatic, Real(4), Offset: 0, Alignment: full word 0-3769.12$ 0-3823.7@ 0-3902.11@ 0-3930.40 px Automatic, Real(4), Offset: 0, Alignment: full word 0-3770.12$ 0-3862.9@ 0-3863.13 0-3863.26@ 0-3864.19 0-3864.28 0-3898.29 rhstt Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-3771.12$ 0-3716.23 0-3930.7@ 0-3997.9@ runoff1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-3772.12$ 0-3717.52 0-3824.7@ 0-3901.11@ runoff2 Reference argument, Real(4), Offset: 0, Alignment: full word 0-3773.12$ 0-3718.22 0-4010.11@ sh2o Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-3774.12$ 0-3716.37 0-3929.17 0-3929.27 0-3960.21 0-3960.31 sh2oa Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-3775.12$ 0-3716.42 0-3841.33 0-3852.39 0-3892.17 0-3912.15 0-3951.20 0-3978.35 sice Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-3776.12$ 0-3718.55 0-3817.12 0-3817.45 0-3839.28 0-3841.42 0-3849.55 0-3852.49 sicemax Automatic, Real(4), Offset: 0, Alignment: full word 0-3777.12$ 0-3815.7@ 0-3817.26 0-3817.35@ 0-3895.21 0-3915.19 0-3954.23 0-3979.29 slope Reference argument, Real(4), Offset: 0, Alignment: full word 0-3778.12$ 0-3718.40 0-3972.19 slopx Automatic, Real(4), Offset: 0, Alignment: full word 0-3779.12$ 0-3944.11@ 0-3972.11@ 0-3995.35 0-4010.21 smcav Automatic, Real(4), Offset: 0, Alignment: full word 0-3780.12$ 0-3833.9@ 0-3834.27 0-3841.58 0-3851.46 0-3852.66 smcmax Reference argument, Real(4), Offset: 0, Alignment: full word 0-3781.12$ 0-3717.40 0-3833.17 0-3894.37 0-3914.35 0-3953.42 0-3978.48 smcwlt Reference argument, Real(4), Offset: 0, Alignment: full word 0-3782.12$ 0-3718.33 0-3833.26 0-3841.50 0-3852.58 srt Subroutine 0-3716.18$ sstt Automatic, Real(4), Offset: 0, Alignment: full word 0-3783.12$ 0-3931.7@ sum Automatic, Real(4), Offset: 0, Alignment: full word 0-3784.12$ 0-3873.11@ 0-3880.13@ 0-3880.19 0-3882.35 val Automatic, Real(4), Offset: 0, Alignment: full word 0-3785.12$ 0-3860.9@ 0-3861.18 wcnd Automatic, Real(4), Offset: 0, Alignment: full word 0-3786.12$ 0-3894.26 0-3897.29 0-3914.24 0-3930.33 0-3931.28 0-3996.12 0-4015.11@ wcnd2 Automatic, Real(4), Offset: 0, Alignment: full word 0-3787.12$ 0-3953.29 0-3978.29 0-3995.43 0-4010.29 0-4015.18 wdf Automatic, Real(4), Offset: 0, Alignment: full word 0-3788.12$ 0-3894.22 0-3914.20 0-3922.15 0-3930.19 0-3931.14 0-3995.52 0-4002.18 0-4014.11@ wdf2 Automatic, Real(4), Offset: 0, Alignment: full word 0-3789.12$ 0-3953.24 0-3966.20 0-3978.24 0-3995.18 0-4014.17 wdfcnd External Subroutine 0-3894.14 0-3914.12 0-3953.16 0-3978.16 zsoil Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-3790.12$ 0-3717.22 0-3834.18 0-3839.17 0-3849.27 0-3849.41 0-3851.23 0-3851.35 0-3920.26 0-3922.30 0-3929.47 0-3930.62 0-3942.19 0-3942.32 0-3959.20 0-3959.33 ** srt === End of Compilation 22 === >>>>> COMPILATION UNIT EPILOGUE SECTION <<<<< FORTRAN Summary of Diagnosed Conditions TOTAL UNRECOVERABLE SEVERE ERROR WARNING INFORMATIONAL (U) (S) (E) (W) (I) 0 0 0 0 0 0 >>>>> OPTIONS SECTION <<<<< *** Options In Effect *** == On / Off Options == CR DBG ESCAPE FULLPATH I4 INLGLUE NOLIBESSL NOLIBPOSIX OBJECT SOURCE STRICT SWAPOMP THREADED UNWIND ZEROSIZE == Options Of Integer Type == ALIAS_SIZE(65536) MAXMEM(-1) OPTIMIZE(2) SPILLSIZE(2000) STACKTEMP(0) == Options Of Character Type == 64(LARGETYPE) ALIAS(STD,NOINTPTR) ALIGN(BINDC(POWER),STRUCT(NATURAL)) ARCH(PWR6) ATTR(FULL) AUTODBL(NONE) DESCRIPTOR(V1) DIRECTIVE(IBM*,IBMT) ENUM() FLAG(I,I) FLOAT(RNDSNGL,MAF,FOLD,RNGCHK,SINGLE) FREE(F90) HALT(S) IEEE(NEAR) INTSIZE(4) LANGLVL(EXTENDED) REALSIZE(4) NOSAVE() TUNE(PWR6) UNROLL(AUTO) XREF(FULL) XLF2003(NOPOLYMORPHIC,NOBOZLITARGS,NOSTOPEXCEPT,NOVOLATILE,NOAUTOREALLOC,OLDNANINF) XLF77(LEADZERO,BLANKPAD) XLF90(NOSIGNEDZERO,NOAUTODEALLOC,OLDPAD) >>>>> SOURCE SECTION <<<<< 4026 | 4027 |! -- 21. PHYSICS SUBROUTINE ==> SUBROUTINE SSTEP ---------------------- 4028 | 4029 | SUBROUTINE SSTEP (SH2OOUT,SH2OIN,CMC,RHSTT,RHSCT,DT, & 4030 | NSOIL,SMCMAX,CMCMAX,RUNOFF3,ZSOIL,SMC,SICE, & 4031 | AI,BI,CI) 4032 | 4033 | IMPLICIT NONE 4034 | 4035 |! ---------------------------------------------------------------------- 4036 |! SUBROUTINE SSTEP 4037 |! ---------------------------------------------------------------------- 4038 |! CALCULATE/UPDATE SOIL MOISTURE CONTENT VALUES AND CANOPY MOISTURE 4039 |! CONTENT VALUES. 4040 |! ---------------------------------------------------------------------- 4041 | INTEGER, PARAMETER:: NSOLD=4 4042 | 4043 | INTEGER I 4044 | INTEGER K 4045 | INTEGER KK11 4046 | INTEGER NSOIL 4047 | 4048 | REAL AI(NSOLD) 4049 | REAL BI(NSOLD) 4050 | REAL CI(NSOLD) 4051 | REAL CIin(NSOLD) 4052 | REAL CMC 4053 | REAL CMCMAX 4054 | REAL DDZ 4055 | REAL DT 4056 | REAL RHSCT 4057 | REAL RHSTT(NSOIL) 4058 | REAL RHSTTin(NSOIL) 4059 | REAL RUNOFF3 4060 | REAL SH2OIN(NSOIL) 4061 | REAL SH2OOUT(NSOIL) 4062 | REAL SICE(NSOIL) 4063 | REAL SMC(NSOIL) 4064 | REAL SMCMAX 4065 | REAL STOT 4066 | REAL WPLUS 4067 | REAL ZSOIL(NSOIL) 4068 | 4069 |! ---------------------------------------------------------------------- 4070 |! CREATE 'AMOUNT' VALUES OF VARIABLES TO BE INPUT TO THE 4071 |! TRI-DIAGONAL MATRIX ROUTINE. 4072 |! ---------------------------------------------------------------------- 4073 | DO K = 1,NSOIL 4074 | RHSTT(K) = RHSTT(K) * DT 4075 | AI(K) = AI(K) * DT 4076 | BI(K) = 1. + BI(K) * DT 4077 | CI(K) = CI(K) * DT 4078 | END DO 4079 | 4080 |! ---------------------------------------------------------------------- 4081 |! COPY VALUES FOR INPUT VARIABLES BEFORE CALL TO ROSR12 4082 |! ---------------------------------------------------------------------- 4083 | DO K = 1,NSOIL 4084 | RHSTTin(K) = RHSTT(K) 4085 | END DO 4086 | DO K = 1,NSOLD 4087 | CIin(K) = CI(K) 4088 | END DO 4089 | 4090 |! ---------------------------------------------------------------------- 4091 |! CALL ROSR12 TO SOLVE THE TRI-DIAGONAL MATRIX 4092 |! ---------------------------------------------------------------------- 4093 | CALL ROSR12 (CI,AI,BI,CIin,RHSTTin,RHSTT,NSOIL) 4094 | 4095 |! ---------------------------------------------------------------------- 4096 |! SUM THE PREVIOUS SMC VALUE AND THE MATRIX SOLUTION TO GET A 4097 |! NEW VALUE. MIN ALLOWABLE VALUE OF SMC WILL BE 0.02. 4098 |! RUNOFF3: RUNOFF WITHIN SOIL LAYERS 4099 |! ---------------------------------------------------------------------- 4100 | WPLUS = 0.0 4101 | RUNOFF3 = 0. 4102 | DDZ = -ZSOIL(1) 4103 | 4104 | DO K = 1,NSOIL 4105 | IF (K .NE. 1) DDZ = ZSOIL(K - 1) - ZSOIL(K) 4106 | SH2OOUT(K) = SH2OIN(K) + CI(K) + WPLUS / DDZ 4107 | 4108 | STOT = SH2OOUT(K) + SICE(K) 4109 | IF (STOT .GT. SMCMAX) THEN 4110 | IF (K .EQ. 1) THEN 4111 | DDZ = -ZSOIL(1) 4112 | ELSE 4113 | KK11 = K - 1 4114 | DDZ = -ZSOIL(K) + ZSOIL(KK11) 4115 | ENDIF 4116 | WPLUS = (STOT-SMCMAX) * DDZ 4117 | ELSE 4118 | WPLUS = 0. 4119 | ENDIF 4120 | SMC(K) = MAX ( MIN(STOT,SMCMAX),0.02 ) 4121 | SH2OOUT(K) = MAX((SMC(K)-SICE(K)),0.0) 4122 | END DO 4123 | 4124 | RUNOFF3 = WPLUS 4125 | 4126 |! ---------------------------------------------------------------------- 4127 |! UPDATE CANOPY WATER CONTENT/INTERCEPTION (CMC). CONVERT RHSCT TO 4128 |! AN 'AMOUNT' VALUE AND ADD TO PREVIOUS CMC VALUE TO GET NEW CMC. 4129 |! ---------------------------------------------------------------------- 4130 | CMC = CMC + DT * RHSCT 4131 | IF (CMC .LT. 1.E-20) CMC=0.0 4132 | CMC = MIN(CMC,CMCMAX) 4133 | 4134 |! ---------------------------------------------------------------------- 4135 |! END SUBROUTINE SSTEP 4136 |! ---------------------------------------------------------------------- 4137 | RETURN 4138 | END >>>>> ATTRIBUTE AND CROSS REFERENCE SECTION <<<<< IDENTIFIER NAME CROSS REFERENCE AND ATTRIBUTES ai Reference argument, Real(4) (1:4), Offset: 0, Alignment: full word 0-4048.12$ 0-4031.24 0-4075.9@ 0-4075.17 0-4093.23 bi Reference argument, Real(4) (1:4), Offset: 0, Alignment: full word 0-4049.12$ 0-4031.27 0-4076.9@ 0-4076.22 0-4093.26 ci Reference argument, Real(4) (1:4), Offset: 0, Alignment: full word 0-4050.12$ 0-4031.30 0-4077.9@ 0-4077.17 0-4087.19 0-4093.20 0-4106.34 ciin Automatic, Real(4) (1:4), Offset: 0, Alignment: full word 0-4051.12$ 0-4087.9@ 0-4093.29 cmc Reference argument, Real(4), Offset: 0, Alignment: full word 0-4052.12$ 0-4029.40 0-4130.7@ 0-4130.13 0-4131.11 0-4131.28@ 0-4132.7@ 0-4132.17 cmcmax Reference argument, Real(4), Offset: 0, Alignment: full word 0-4053.12$ 0-4030.37 0-4132.21 ddz Automatic, Real(4), Offset: 0, Alignment: full word 0-4054.12$ 0-4102.7@ 0-4105.23@ 0-4106.50 0-4111.13@ 0-4114.13@ 0-4116.35 dt Reference argument, Real(4), Offset: 0, Alignment: full word 0-4055.12$ 0-4029.56 0-4074.31 0-4075.25 0-4076.30 0-4077.25 0-4130.19 i Automatic, Integer(4), Offset: 0, Alignment: full word 0-4043.15$ k Automatic, Integer(4), Offset: 0, Alignment: full word 0-4044.15$ 0-4073.10@ 0-4074.15 0-4074.26 0-4075.12 0-4075.20 0-4076.12 0-4076.25 0-4077.12 0-4077.20 0-4083.10@ 0-4084.17 0-4084.28 0-4086.10@ 0-4087.14 0-4087.22 0-4104.10@ 0-4105.13 0-4105.35 0-4105.50 0-4106.17 0-4106.29 0-4106.37 0-4108.24 0-4108.34 0-4110.15 0-4113.20 0-4114.26 0-4120.13 0-4121.17 0-4121.31 0-4121.39 kk11 Automatic, Integer(4), Offset: 0, Alignment: full word 0-4045.15$ 0-4113.13@ 0-4114.37 max Pure Intrinsic 0-4120.18 0-4121.22 min Pure Intrinsic 0-4120.24 0-4132.13 nsoil Reference argument, Integer(4), Offset: 0, Alignment: full word 0-4046.15$ 0-4030.24 0-4057.18 0-4057.18 0-4058.20 0-4058.20 0-4060.19 0-4060.19 0-4061.20 0-4061.20 0-4062.17 0-4062.17 0-4063.16 0-4063.16 0-4067.18 0-4067.18 0-4073.16 0-4083.16 0-4093.48 0-4104.16 nsold Parameter, Integer(4) 0-4041.28$ 0-4048.15 0-4049.15 0-4050.15 0-4051.17 0-4086.16 rhsct Reference argument, Real(4), Offset: 0, Alignment: full word 0-4056.12$ 0-4029.50 0-4130.24 rhstt Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-4057.12$ 0-4029.44 0-4074.9@ 0-4074.20 0-4084.22 0-4093.42 rhsttin Controlled Automatic, Real(4) (1:?), Offset: 0, Alignment: full word 0-4058.12$ 0-4084.9@ 0-4093.34 rosr12 External Subroutine 0-4093.12 runoff3 Reference argument, Real(4), Offset: 0, Alignment: full word 0-4059.12$ 0-4030.44 0-4101.7@ 0-4124.7@ sh2oin Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-4060.12$ 0-4029.33 0-4106.22 sh2oout Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-4061.12$ 0-4029.25 0-4106.9@ 0-4108.16 0-4121.9@ sice Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-4062.12$ 0-4030.62 0-4108.29 0-4121.34 smc Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-4063.12$ 0-4030.58 0-4120.9@ 0-4121.27 smcmax Reference argument, Real(4), Offset: 0, Alignment: full word 0-4064.12$ 0-4030.30 0-4109.23 0-4116.25 0-4120.33 sstep Subroutine 0-4029.18$ stot Automatic, Real(4), Offset: 0, Alignment: full word 0-4065.12$ 0-4108.9@ 0-4109.13 0-4116.20 0-4120.28 wplus Automatic, Real(4), Offset: 0, Alignment: full word 0-4066.12$ 0-4100.7@ 0-4106.42 0-4116.11@ 0-4118.11@ 0-4124.17 zsoil Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-4067.12$ 0-4030.52 0-4102.14 0-4105.29 0-4105.44 0-4111.20 0-4114.20 0-4114.31 ** sstep === End of Compilation 23 === >>>>> COMPILATION UNIT EPILOGUE SECTION <<<<< FORTRAN Summary of Diagnosed Conditions TOTAL UNRECOVERABLE SEVERE ERROR WARNING INFORMATIONAL (U) (S) (E) (W) (I) 0 0 0 0 0 0 >>>>> OPTIONS SECTION <<<<< *** Options In Effect *** == On / Off Options == CR DBG ESCAPE FULLPATH I4 INLGLUE NOLIBESSL NOLIBPOSIX OBJECT SOURCE STRICT SWAPOMP THREADED UNWIND ZEROSIZE == Options Of Integer Type == ALIAS_SIZE(65536) MAXMEM(-1) OPTIMIZE(2) SPILLSIZE(2000) STACKTEMP(0) == Options Of Character Type == 64(LARGETYPE) ALIAS(STD,NOINTPTR) ALIGN(BINDC(POWER),STRUCT(NATURAL)) ARCH(PWR6) ATTR(FULL) AUTODBL(NONE) DESCRIPTOR(V1) DIRECTIVE(IBM*,IBMT) ENUM() FLAG(I,I) FLOAT(RNDSNGL,MAF,FOLD,RNGCHK,SINGLE) FREE(F90) HALT(S) IEEE(NEAR) INTSIZE(4) LANGLVL(EXTENDED) REALSIZE(4) NOSAVE() TUNE(PWR6) UNROLL(AUTO) XREF(FULL) XLF2003(NOPOLYMORPHIC,NOBOZLITARGS,NOSTOPEXCEPT,NOVOLATILE,NOAUTOREALLOC,OLDNANINF) XLF77(LEADZERO,BLANKPAD) XLF90(NOSIGNEDZERO,NOAUTODEALLOC,OLDPAD) >>>>> SOURCE SECTION <<<<< 4139 | 4140 |! -- 22. PHYSICS SUBROUTINE ==> SUBROUTINE TBND ---------------------- 4141 | 4142 | SUBROUTINE TBND (TU,TB,ZSOIL,ZBOT,K,NSOIL,TBND1) 4143 | 4144 | IMPLICIT NONE 4145 | 4146 |! ---------------------------------------------------------------------- 4147 |! SUBROUTINE TBND 4148 |! ---------------------------------------------------------------------- 4149 |! CALCULATE TEMPERATURE ON THE BOUNDARY OF THE LAYER BY INTERPOLATION OF 4150 |! THE MIDDLE LAYER TEMPERATURES 4151 |! ---------------------------------------------------------------------- 4152 | INTEGER NSOIL 4153 | INTEGER K 4154 | 4155 | REAL TBND1 4156 | REAL T0 4157 | REAL TU 4158 | REAL TB 4159 | REAL ZB 4160 | REAL ZBOT 4161 | REAL ZUP 4162 | REAL ZSOIL (NSOIL) 4163 | 4164 | PARAMETER(T0 = 273.15) 4165 | 4166 |! ---------------------------------------------------------------------- 4167 |! USE SURFACE TEMPERATURE ON THE TOP OF THE FIRST LAYER 4168 |! ---------------------------------------------------------------------- 4169 | IF (K .EQ. 1) THEN 4170 | ZUP = 0. 4171 | ELSE 4172 | ZUP = ZSOIL(K-1) 4173 | ENDIF 4174 | 4175 |! ---------------------------------------------------------------------- 4176 |! USE DEPTH OF THE CONSTANT BOTTOM TEMPERATURE WHEN INTERPOLATE 4177 |! TEMPERATURE INTO THE LAST LAYER BOUNDARY 4178 |! ---------------------------------------------------------------------- 4179 | IF (K .EQ. NSOIL) THEN 4180 | ZB = 2.*ZBOT-ZSOIL(K) 4181 | ELSE 4182 | ZB = ZSOIL(K+1) 4183 | ENDIF 4184 | 4185 |! ---------------------------------------------------------------------- 4186 |! LINEAR INTERPOLATION BETWEEN THE AVERAGE LAYER TEMPERATURES 4187 |! ---------------------------------------------------------------------- 4188 | TBND1 = TU+(TB-TU)*(ZUP-ZSOIL(K))/(ZUP-ZB) 4189 | 4190 |! ---------------------------------------------------------------------- 4191 |! END SUBROUTINE TBND 4192 |! ---------------------------------------------------------------------- 4193 | RETURN 4194 | END >>>>> ATTRIBUTE AND CROSS REFERENCE SECTION <<<<< IDENTIFIER NAME CROSS REFERENCE AND ATTRIBUTES k Reference argument, Integer(4), Offset: 0, Alignment: full word 0-4153.15$ 0-4142.41 0-4169.11 0-4172.21 0-4179.11 0-4180.28 0-4182.20 0-4188.37 nsoil Reference argument, Integer(4), Offset: 0, Alignment: full word 0-4152.15$ 0-4142.43 0-4162.19 0-4162.19 0-4179.18 t0 Parameter, Real(4) 0-4156.12$ 0-4164.17$ tb Reference argument, Real(4), Offset: 0, Alignment: full word 0-4158.12$ 0-4142.27 0-4188.19 tbnd Subroutine 0-4142.18$ tbnd1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-4155.12$ 0-4142.49 0-4188.7@ tu Reference argument, Real(4), Offset: 0, Alignment: full word 0-4157.12$ 0-4142.24 0-4188.15 0-4188.22 zb Automatic, Real(4), Offset: 0, Alignment: full word 0-4159.12$ 0-4180.9@ 0-4182.9@ 0-4188.46 zbot Reference argument, Real(4), Offset: 0, Alignment: full word 0-4160.12$ 0-4142.36 0-4180.17 zsoil Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-4162.12$ 0-4142.30 0-4172.15 0-4180.22 0-4182.14 0-4188.31 zup Automatic, Real(4), Offset: 0, Alignment: full word 0-4161.12$ 0-4170.9@ 0-4172.9@ 0-4188.27 0-4188.42 ** tbnd === End of Compilation 24 === >>>>> COMPILATION UNIT EPILOGUE SECTION <<<<< FORTRAN Summary of Diagnosed Conditions TOTAL UNRECOVERABLE SEVERE ERROR WARNING INFORMATIONAL (U) (S) (E) (W) (I) 0 0 0 0 0 0 >>>>> OPTIONS SECTION <<<<< *** Options In Effect *** == On / Off Options == CR DBG ESCAPE FULLPATH I4 INLGLUE NOLIBESSL NOLIBPOSIX OBJECT SOURCE STRICT SWAPOMP THREADED UNWIND ZEROSIZE == Options Of Integer Type == ALIAS_SIZE(65536) MAXMEM(-1) OPTIMIZE(2) SPILLSIZE(2000) STACKTEMP(0) == Options Of Character Type == 64(LARGETYPE) ALIAS(STD,NOINTPTR) ALIGN(BINDC(POWER),STRUCT(NATURAL)) ARCH(PWR6) ATTR(FULL) AUTODBL(NONE) DESCRIPTOR(V1) DIRECTIVE(IBM*,IBMT) ENUM() FLAG(I,I) FLOAT(RNDSNGL,MAF,FOLD,RNGCHK,SINGLE) FREE(F90) HALT(S) IEEE(NEAR) INTSIZE(4) LANGLVL(EXTENDED) REALSIZE(4) NOSAVE() TUNE(PWR6) UNROLL(AUTO) XREF(FULL) XLF2003(NOPOLYMORPHIC,NOBOZLITARGS,NOSTOPEXCEPT,NOVOLATILE,NOAUTOREALLOC,OLDNANINF) XLF77(LEADZERO,BLANKPAD) XLF90(NOSIGNEDZERO,NOAUTODEALLOC,OLDPAD) >>>>> SOURCE SECTION <<<<< 4195 | 4196 |! -- 23. PHYSICS SUBROUTINE ==> SUBROUTINE TDFCND --------------------- 4197 | 4198 | SUBROUTINE TDFCND ( DF, SMC, QZ, SMCMAX, SH2O) 4199 | 4200 | IMPLICIT NONE 4201 | 4202 |! ---------------------------------------------------------------------- 4203 |! SUBROUTINE TDFCND 4204 |! ---------------------------------------------------------------------- 4205 |! CALCULATE THERMAL DIFFUSIVITY AND CONDUCTIVITY OF THE SOIL FOR A GIVEN 4206 |! POINT AND TIME. 4207 |! ---------------------------------------------------------------------- 4208 |! PETERS-LIDARD APPROACH (PETERS-LIDARD et al., 1998) 4209 |! June 2001 CHANGES: FROZEN SOIL CONDITION. 4210 |! ---------------------------------------------------------------------- 4211 | REAL DF 4212 | REAL GAMMD 4213 | REAL THKDRY 4214 | REAL AKE 4215 | REAL THKICE 4216 | REAL THKO 4217 | REAL THKQTZ 4218 | REAL THKSAT 4219 | REAL THKS 4220 | REAL THKW 4221 | REAL QZ 4222 | REAL SATRATIO 4223 | REAL SH2O 4224 | REAL SMC 4225 | REAL SMCMAX 4226 | REAL XU 4227 | REAL XUNFROZ 4228 | 4229 |! ---------------------------------------------------------------------- 4230 |! WE NOW GET QUARTZ AS AN INPUT ARGUMENT (SET IN ROUTINE REDPRM): 4231 |! DATA QUARTZ /0.82, 0.10, 0.25, 0.60, 0.52, & 4232 |! 0.35, 0.60, 0.40, 0.82/ 4233 |! ---------------------------------------------------------------------- 4234 |! IF THE SOIL HAS ANY MOISTURE CONTENT COMPUTE A PARTIAL SUM/PRODUCT 4235 |! OTHERWISE USE A CONSTANT VALUE WHICH WORKS WELL WITH MOST SOILS 4236 |! ---------------------------------------------------------------------- 4237 |! THKW ......WATER THERMAL CONDUCTIVITY 4238 |! THKQTZ ....THERMAL CONDUCTIVITY FOR QUARTZ 4239 |! THKO ......THERMAL CONDUCTIVITY FOR OTHER SOIL COMPONENTS 4240 |! THKS ......THERMAL CONDUCTIVITY FOR THE SOLIDS COMBINED(QUARTZ+OTHER) 4241 |! THKICE ....ICE THERMAL CONDUCTIVITY 4242 |! SMCMAX ....POROSITY (= SMCMAX) 4243 |! QZ .........QUARTZ CONTENT (SOIL TYPE DEPENDENT) 4244 |! ---------------------------------------------------------------------- 4245 |! USE AS IN PETERS-LIDARD, 1998 (MODIF. FROM JOHANSEN, 1975). 4246 |! 4247 |! PABLO GRUNMANN, 08/17/98 4248 |! REFS.: 4249 |! FAROUKI, O.T.,1986: THERMAL PROPERTIES OF SOILS. SERIES ON ROCK 4250 |! AND SOIL MECHANICS, VOL. 11, TRANS TECH, 136 PP. 4251 |! JOHANSEN, O., 1975: THERMAL CONDUCTIVITY OF SOILS. PH.D. THESIS, 4252 |! UNIVERSITY OF TRONDHEIM, 4253 |! PETERS-LIDARD, C. D., ET AL., 1998: THE EFFECT OF SOIL THERMAL 4254 |! CONDUCTIVITY PARAMETERIZATION ON SURFACE ENERGY FLUXES 4255 |! AND TEMPERATURES. JOURNAL OF THE ATMOSPHERIC SCIENCES, 4256 |! VOL. 55, PP. 1209-1224. 4257 |! ---------------------------------------------------------------------- 4258 |! NEEDS PARAMETERS 4259 |! POROSITY(SOIL TYPE): 4260 |! POROS = SMCMAX 4261 |! SATURATION RATIO: 4262 | SATRATIO = SMC/SMCMAX 4263 | 4264 |! PARAMETERS W/(M.K) 4265 | THKICE = 2.2 4266 | THKW = 0.57 4267 | THKO = 2.0 4268 |! IF (QZ .LE. 0.2) THKO = 3.0 4269 | THKQTZ = 7.7 4270 |! SOLIDS' CONDUCTIVITY 4271 | THKS = (THKQTZ**QZ)*(THKO**(1.- QZ)) 4272 | 4273 |! UNFROZEN FRACTION (FROM 1., i.e., 100%LIQUID, TO 0. (100% FROZEN)) 4274 | XUNFROZ = (SH2O + 1.E-9) / (SMC + 1.E-9) 4275 | 4276 |! UNFROZEN VOLUME FOR SATURATION (POROSITY*XUNFROZ) 4277 | XU=XUNFROZ*SMCMAX 4278 |! SATURATED THERMAL CONDUCTIVITY 4279 | THKSAT = THKS**(1.-SMCMAX)*THKICE**(SMCMAX-XU)*THKW**(XU) 4280 | 4281 |! DRY DENSITY IN KG/M3 4282 | GAMMD = (1. - SMCMAX)*2700. 4283 | 4284 |! DRY THERMAL CONDUCTIVITY IN W.M-1.K-1 4285 | THKDRY = (0.135*GAMMD + 64.7)/(2700. - 0.947*GAMMD) 4286 | 4287 | IF ( (SH2O + 0.0005) .LT. SMC ) THEN 4288 |! FROZEN 4289 | AKE = SATRATIO 4290 | ELSE 4291 |! UNFROZEN 4292 |! RANGE OF VALIDITY FOR THE KERSTEN NUMBER (AKE) 4293 | IF ( SATRATIO .GT. 0.1 ) THEN 4294 | 4295 |! KERSTEN NUMBER (USING "FINE" FORMULA, VALID FOR SOILS CONTAINING AT 4296 |! LEAST 5% OF PARTICLES WITH DIAMETER LESS THAN 2.E-6 METERS.) 4297 |! (FOR "COARSE" FORMULA, SEE PETERS-LIDARD ET AL., 1998). 4298 | 4299 | AKE = LOG10(SATRATIO) + 1.0 4300 | 4301 | ELSE 4302 | 4303 |! USE K = KDRY 4304 | AKE = 0.0 4305 | 4306 | ENDIF 4307 | ENDIF 4308 | 4309 |! THERMAL CONDUCTIVITY 4310 | 4311 | DF = AKE*(THKSAT - THKDRY) + THKDRY 4312 | 4313 |! ---------------------------------------------------------------------- 4314 |! END SUBROUTINE TDFCND 4315 |! ---------------------------------------------------------------------- 4316 | RETURN 4317 | END >>>>> ATTRIBUTE AND CROSS REFERENCE SECTION <<<<< IDENTIFIER NAME CROSS REFERENCE AND ATTRIBUTES ake Automatic, Real(4), Offset: 0, Alignment: full word 0-4214.13$ 0-4289.15@ 0-4299.15@ 0-4304.15@ 0-4311.13 df Reference argument, Real(4), Offset: 0, Alignment: full word 0-4211.13$ 0-4198.27 0-4311.8@ gammd Automatic, Real(4), Offset: 0, Alignment: full word 0-4212.13$ 0-4282.7@ 0-4285.23 0-4285.52 log10 Pure Intrinsic 0-4299.21 qz Reference argument, Real(4), Offset: 0, Alignment: full word 0-4221.13$ 0-4198.36 0-4271.23 0-4271.39 satratio Automatic, Real(4), Offset: 0, Alignment: full word 0-4222.13$ 0-4262.7@ 0-4289.21 0-4293.16 0-4299.27 sh2o Reference argument, Real(4), Offset: 0, Alignment: full word 0-4223.13$ 0-4198.49 0-4274.18 0-4287.13 smc Reference argument, Real(4), Offset: 0, Alignment: full word 0-4224.13$ 0-4198.31 0-4262.18 0-4274.35 0-4287.33 smcmax Reference argument, Real(4), Offset: 0, Alignment: full word 0-4225.13$ 0-4198.41 0-4262.22 0-4277.18 0-4279.26 0-4279.43 0-4282.21 tdfcnd Subroutine 0-4198.18$ thkdry Automatic, Real(4), Offset: 0, Alignment: full word 0-4213.13$ 0-4285.7@ 0-4311.27 0-4311.37 thkice Automatic, Real(4), Offset: 0, Alignment: full word 0-4215.13$ 0-4265.7@ 0-4279.34 thko Automatic, Real(4), Offset: 0, Alignment: full word 0-4216.13$ 0-4267.7@ 0-4271.28 thkqtz Automatic, Real(4), Offset: 0, Alignment: full word 0-4217.13$ 0-4269.7@ 0-4271.15 thks Automatic, Real(4), Offset: 0, Alignment: full word 0-4219.13$ 0-4271.7@ 0-4279.16 thksat Automatic, Real(4), Offset: 0, Alignment: full word 0-4218.13$ 0-4279.7@ 0-4311.18 thkw Automatic, Real(4), Offset: 0, Alignment: full word 0-4220.13$ 0-4266.7@ 0-4279.54 xu Automatic, Real(4), Offset: 0, Alignment: full word 0-4226.13$ 0-4277.7@ 0-4279.50 0-4279.61 xunfroz Automatic, Real(4), Offset: 0, Alignment: full word 0-4227.13$ 0-4274.7@ 0-4277.10 ** tdfcnd === End of Compilation 25 === >>>>> COMPILATION UNIT EPILOGUE SECTION <<<<< FORTRAN Summary of Diagnosed Conditions TOTAL UNRECOVERABLE SEVERE ERROR WARNING INFORMATIONAL (U) (S) (E) (W) (I) 0 0 0 0 0 0 >>>>> OPTIONS SECTION <<<<< *** Options In Effect *** == On / Off Options == CR DBG ESCAPE FULLPATH I4 INLGLUE NOLIBESSL NOLIBPOSIX OBJECT SOURCE STRICT SWAPOMP THREADED UNWIND ZEROSIZE == Options Of Integer Type == ALIAS_SIZE(65536) MAXMEM(-1) OPTIMIZE(2) SPILLSIZE(2000) STACKTEMP(0) == Options Of Character Type == 64(LARGETYPE) ALIAS(STD,NOINTPTR) ALIGN(BINDC(POWER),STRUCT(NATURAL)) ARCH(PWR6) ATTR(FULL) AUTODBL(NONE) DESCRIPTOR(V1) DIRECTIVE(IBM*,IBMT) ENUM() FLAG(I,I) FLOAT(RNDSNGL,MAF,FOLD,RNGCHK,SINGLE) FREE(F90) HALT(S) IEEE(NEAR) INTSIZE(4) LANGLVL(EXTENDED) REALSIZE(4) NOSAVE() TUNE(PWR6) UNROLL(AUTO) XREF(FULL) XLF2003(NOPOLYMORPHIC,NOBOZLITARGS,NOSTOPEXCEPT,NOVOLATILE,NOAUTOREALLOC,OLDNANINF) XLF77(LEADZERO,BLANKPAD) XLF90(NOSIGNEDZERO,NOAUTODEALLOC,OLDPAD) >>>>> SOURCE SECTION <<<<< 4318 | 4319 |! -- 24. PHYSICS SUBROUTINE ==> SUBROUTINE TMPAVG --------------------- 4320 | 4321 | SUBROUTINE TMPAVG (TAVG,TUP,TM,TDN,ZSOIL,NSOIL,K) 4322 | 4323 | IMPLICIT NONE 4324 | 4325 |! ---------------------------------------------------------------------- 4326 |! SUBROUTINE TMPAVG 4327 |! ---------------------------------------------------------------------- 4328 |! CALCULATE SOIL LAYER AVERAGE TEMPERATURE (TAVG) IN FREEZING/THAWING 4329 |! LAYER USING UP, DOWN, AND MIDDLE LAYER TEMPERATURES (TUP, TDN, TM), 4330 |! WHERE TUP IS AT TOP BOUNDARY OF LAYER, TDN IS AT BOTTOM BOUNDARY OF 4331 |! LAYER. TM IS LAYER PROGNOSTIC STATE TEMPERATURE. 4332 |! ---------------------------------------------------------------------- 4333 | INTEGER K 4334 | INTEGER NSOIL 4335 | 4336 | REAL DZ 4337 | REAL DZH 4338 | REAL T0 4339 | REAL TAVG 4340 | REAL TDN 4341 | REAL TM 4342 | REAL TUP 4343 | REAL X0 4344 | REAL XDN 4345 | REAL XUP 4346 | REAL ZSOIL (NSOIL) 4347 | 4348 | PARAMETER(T0 = 2.7315E2) 4349 | 4350 |! ---------------------------------------------------------------------- 4351 | IF (K .EQ. 1) THEN 4352 | DZ = -ZSOIL(1) 4353 | ELSE 4354 | DZ = ZSOIL(K-1)-ZSOIL(K) 4355 | ENDIF 4356 | 4357 | DZH=DZ*0.5 4358 | 4359 | IF (TUP .LT. T0) THEN 4360 | IF (TM .LT. T0) THEN 4361 | IF (TDN .LT. T0) THEN 4362 |! ---------------------------------------------------------------------- 4363 |! TUP, TM, TDN < T0 4364 |! ---------------------------------------------------------------------- 4365 | TAVG = (TUP + 2.0*TM + TDN)/ 4.0 4366 | ELSE 4367 |! ---------------------------------------------------------------------- 4368 |! TUP & TM < T0, TDN >= T0 4369 |! ---------------------------------------------------------------------- 4370 | X0 = (T0 - TM) * DZH / (TDN - TM) 4371 | TAVG = 0.5 * (TUP*DZH+TM*(DZH+X0)+T0*(2.*DZH-X0)) / DZ 4372 | ENDIF 4373 | ELSE 4374 | IF (TDN .LT. T0) THEN 4375 |! ---------------------------------------------------------------------- 4376 |! TUP < T0, TM >= T0, TDN < T0 4377 |! ---------------------------------------------------------------------- 4378 | XUP = (T0-TUP) * DZH / (TM-TUP) 4379 | XDN = DZH - (T0-TM) * DZH / (TDN-TM) 4380 | TAVG = 0.5 * (TUP*XUP+T0*(2.*DZ-XUP-XDN)+TDN*XDN) / DZ 4381 | ELSE 4382 |! ---------------------------------------------------------------------- 4383 |! TUP < T0, TM >= T0, TDN >= T0 4384 |! ---------------------------------------------------------------------- 4385 | XUP = (T0-TUP) * DZH / (TM-TUP) 4386 | TAVG = 0.5 * (TUP*XUP+T0*(2.*DZ-XUP)) / DZ 4387 | ENDIF 4388 | ENDIF 4389 | ELSE 4390 | IF (TM .LT. T0) THEN 4391 | IF (TDN .LT. T0) THEN 4392 |! ---------------------------------------------------------------------- 4393 |! TUP >= T0, TM < T0, TDN < T0 4394 |! ---------------------------------------------------------------------- 4395 | XUP = DZH - (T0-TUP) * DZH / (TM-TUP) 4396 | TAVG = 0.5 * (T0*(DZ-XUP)+TM*(DZH+XUP)+TDN*DZH) / DZ 4397 | ELSE 4398 |! ---------------------------------------------------------------------- 4399 |! TUP >= T0, TM < T0, TDN >= T0 4400 |! ---------------------------------------------------------------------- 4401 | XUP = DZH - (T0-TUP) * DZH / (TM-TUP) 4402 | XDN = (T0-TM) * DZH / (TDN-TM) 4403 | TAVG = 0.5 * (T0*(2.*DZ-XUP-XDN)+TM*(XUP+XDN)) / DZ 4404 | ENDIF 4405 | ELSE 4406 | IF (TDN .LT. T0) THEN 4407 |! ---------------------------------------------------------------------- 4408 |! TUP >= T0, TM >= T0, TDN < T0 4409 |! ---------------------------------------------------------------------- 4410 | XDN = DZH - (T0-TM) * DZH / (TDN-TM) 4411 | TAVG = (T0*(DZ-XDN)+0.5*(T0+TDN)*XDN) / DZ 4412 | ELSE 4413 |! ---------------------------------------------------------------------- 4414 |! TUP >= T0, TM >= T0, TDN >= T0 4415 |! ---------------------------------------------------------------------- 4416 | TAVG = (TUP + 2.0*TM + TDN) / 4.0 4417 | ENDIF 4418 | ENDIF 4419 | ENDIF 4420 |! ---------------------------------------------------------------------- 4421 |! END SUBROUTINE TMPAVG 4422 |! ---------------------------------------------------------------------- 4423 | RETURN 4424 | END >>>>> ATTRIBUTE AND CROSS REFERENCE SECTION <<<<< IDENTIFIER NAME CROSS REFERENCE AND ATTRIBUTES dz Automatic, Real(4), Offset: 0, Alignment: full word 0-4336.12$ 0-4352.9@ 0-4354.9@ 0-4357.11 0-4371.65 0-4380.42 0-4380.65 0-4386.42 0-4386.53 0-4396.31 0-4396.63 0-4403.34 0-4403.62 0-4411.25 0-4411.53 dzh Automatic, Real(4), Offset: 0, Alignment: full word 0-4337.12$ 0-4357.7@ 0-4370.30 0-4371.31 0-4371.39 0-4371.54 0-4378.31 0-4379.20 0-4379.36 0-4385.31 0-4395.20 0-4395.37 0-4396.43 0-4396.56 0-4401.20 0-4401.37 0-4402.30 0-4410.20 0-4410.36 k Reference argument, Integer(4), Offset: 0, Alignment: full word 0-4333.15$ 0-4321.54 0-4351.11 0-4354.20 0-4354.31 nsoil Reference argument, Integer(4), Offset: 0, Alignment: full word 0-4334.15$ 0-4321.48 0-4346.19 0-4346.19 t0 Parameter, Real(4) 0-4338.12$ 0-4348.17$ 0-4359.20 0-4360.21 0-4361.24 0-4370.19 0-4371.47 0-4374.24 0-4378.21 0-4379.27 0-4380.35 0-4385.21 0-4386.35 0-4390.21 0-4391.24 0-4395.27 0-4396.27 0-4401.27 0-4402.21 0-4403.27 0-4406.24 0-4410.27 0-4411.21 0-4411.38 tavg Reference argument, Real(4), Offset: 0, Alignment: full word 0-4339.12$ 0-4321.26 0-4365.13@ 0-4371.13@ 0-4380.13@ 0-4386.13@ 0-4396.13@ 0-4403.13@ 0-4411.13@ 0-4416.13@ tdn Reference argument, Real(4), Offset: 0, Alignment: full word 0-4340.12$ 0-4321.38 0-4361.15 0-4365.36 0-4370.37 0-4374.15 0-4379.43 0-4380.54 0-4391.15 0-4396.52 0-4402.37 0-4406.15 0-4410.43 0-4411.41 0-4416.36 tm Reference argument, Real(4), Offset: 0, Alignment: full word 0-4341.12$ 0-4321.35 0-4360.13 0-4365.31 0-4370.24 0-4370.43 0-4371.35 0-4378.38 0-4379.30 0-4379.47 0-4385.38 0-4390.13 0-4395.44 0-4396.39 0-4401.44 0-4402.24 0-4402.41 0-4403.46 0-4410.30 0-4410.47 0-4416.31 tmpavg Subroutine 0-4321.18$ tup Reference argument, Real(4), Offset: 0, Alignment: full word 0-4342.12$ 0-4321.31 0-4359.11 0-4365.21 0-4371.27 0-4378.24 0-4378.41 0-4380.27 0-4385.24 0-4385.41 0-4386.27 0-4395.30 0-4395.47 0-4401.30 0-4401.47 0-4416.21 x0 Automatic, Real(4), Offset: 0, Alignment: full word 0-4343.12$ 0-4370.13@ 0-4371.43 0-4371.58 xdn Automatic, Real(4), Offset: 0, Alignment: full word 0-4344.12$ 0-4379.13@ 0-4380.49 0-4380.58 0-4402.13@ 0-4403.41 0-4403.54 0-4410.13@ 0-4411.28 0-4411.46 xup Automatic, Real(4), Offset: 0, Alignment: full word 0-4345.12$ 0-4378.13@ 0-4380.31 0-4380.45 0-4385.13@ 0-4386.31 0-4386.45 0-4395.13@ 0-4396.34 0-4396.47 0-4401.13@ 0-4403.37 0-4403.50 zsoil Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-4346.12$ 0-4321.42 0-4352.15 0-4354.14 0-4354.25 ** tmpavg === End of Compilation 26 === >>>>> COMPILATION UNIT EPILOGUE SECTION <<<<< FORTRAN Summary of Diagnosed Conditions TOTAL UNRECOVERABLE SEVERE ERROR WARNING INFORMATIONAL (U) (S) (E) (W) (I) 0 0 0 0 0 0 >>>>> OPTIONS SECTION <<<<< *** Options In Effect *** == On / Off Options == CR DBG ESCAPE FULLPATH I4 INLGLUE NOLIBESSL NOLIBPOSIX OBJECT SOURCE STRICT SWAPOMP THREADED UNWIND ZEROSIZE == Options Of Integer Type == ALIAS_SIZE(65536) MAXMEM(-1) OPTIMIZE(2) SPILLSIZE(2000) STACKTEMP(0) == Options Of Character Type == 64(LARGETYPE) ALIAS(STD,NOINTPTR) ALIGN(BINDC(POWER),STRUCT(NATURAL)) ARCH(PWR6) ATTR(FULL) AUTODBL(NONE) DESCRIPTOR(V1) DIRECTIVE(IBM*,IBMT) ENUM() FLAG(I,I) FLOAT(RNDSNGL,MAF,FOLD,RNGCHK,SINGLE) FREE(F90) HALT(S) IEEE(NEAR) INTSIZE(4) LANGLVL(EXTENDED) REALSIZE(4) NOSAVE() TUNE(PWR6) UNROLL(AUTO) XREF(FULL) XLF2003(NOPOLYMORPHIC,NOBOZLITARGS,NOSTOPEXCEPT,NOVOLATILE,NOAUTOREALLOC,OLDNANINF) XLF77(LEADZERO,BLANKPAD) XLF90(NOSIGNEDZERO,NOAUTODEALLOC,OLDPAD) >>>>> SOURCE SECTION <<<<< 4425 | 4426 |! -- 25. PHYSICS SUBROUTINE ==> SUBROUTINE TRANSP --------------------- 4427 | 4428 | SUBROUTINE TRANSP (ET1,NSOIL,ETP1,SMC,CMC,ZSOIL,SHDFAC,SMCWLT, & 4429 | CMCMAX,PC,CFACTR,SMCREF,SFCTMP,Q2,NROOT,RTDIS) 4430 | 4431 | IMPLICIT NONE 4432 | 4433 |! ---------------------------------------------------------------------- 4434 |! SUBROUTINE TRANSP 4435 |! ---------------------------------------------------------------------- 4436 |! CALCULATE TRANSPIRATION FOR THE VEG CLASS. 4437 |! ---------------------------------------------------------------------- 4438 | INTEGER I 4439 | INTEGER K 4440 | INTEGER NSOIL 4441 | INTEGER NROOT 4442 | 4443 | REAL CFACTR 4444 | REAL CMC 4445 | REAL CMCMAX 4446 | REAL DENOM 4447 | REAL ET1(NSOIL) 4448 | REAL ETP1 4449 | REAL ETP1A 4450 | REAL GX (7) 4451 |!.....REAL PART(NSOIL) 4452 | REAL PC 4453 | REAL Q2 4454 | REAL RTDIS(NSOIL) 4455 | REAL RTX 4456 | REAL SFCTMP 4457 | REAL SGX 4458 | REAL SHDFAC 4459 | REAL SMC(NSOIL) 4460 | REAL SMCREF 4461 | REAL SMCWLT 4462 | REAL ZSOIL(NSOIL) 4463 | 4464 |! ---------------------------------------------------------------------- 4465 |! INITIALIZE PLANT TRANSP TO ZERO FOR ALL SOIL LAYERS. 4466 |! ---------------------------------------------------------------------- 4467 | DO K = 1,NSOIL 4468 | ET1(K) = 0. 4469 | END DO 4470 | 4471 |! ---------------------------------------------------------------------- 4472 |! CALCULATE AN 'ADJUSTED' POTENTIAL TRANSPIRATION 4473 |! IF STATEMENT BELOW TO AVOID TANGENT LINEAR PROBLEMS NEAR ZERO 4474 |! NOTE: GX AND OTHER TERMS BELOW REDISTRIBUTE TRANSPIRATION BY LAYER, 4475 |! ET(K), AS A FUNCTION OF SOIL MOISTURE AVAILABILITY, WHILE PRESERVING 4476 |! TOTAL ETP1A. 4477 |! ---------------------------------------------------------------------- 4478 | IF (CMC .NE. 0.0) THEN 4479 | ETP1A = SHDFAC * PC * ETP1 * (1.0 - (CMC /CMCMAX) ** CFACTR) 4480 | ELSE 4481 | ETP1A = SHDFAC * PC * ETP1 4482 | ENDIF 4483 | 4484 | SGX = 0.0 4485 | DO I = 1,NROOT 4486 | GX(I) = ( SMC(I) - SMCWLT ) / ( SMCREF - SMCWLT ) 4487 | GX(I) = MAX ( MIN ( GX(I), 1. ), 0. ) 4488 | SGX = SGX + GX (I) 4489 | END DO 4490 | SGX = SGX / NROOT 4491 | 4492 | DENOM = 0. 4493 | DO I = 1,NROOT 4494 | RTX = RTDIS(I) + GX(I) - SGX 4495 | GX(I) = GX(I) * MAX ( RTX, 0. ) 4496 | DENOM = DENOM + GX(I) 4497 | END DO 4498 | IF (DENOM .LE. 0.0) DENOM = 1. 4499 | 4500 | DO I = 1,NROOT 4501 | ET1(I) = ETP1A * GX(I) / DENOM 4502 | END DO 4503 | 4504 |! ---------------------------------------------------------------------- 4505 |! ABOVE CODE ASSUMES A VERTICALLY UNIFORM ROOT DISTRIBUTION 4506 |! CODE BELOW TESTS A VARIABLE ROOT DISTRIBUTION 4507 |! ---------------------------------------------------------------------- 4508 |! ET(1) = ( ZSOIL(1) / ZSOIL(NROOT) ) * GX * ETP1A 4509 |! ET(1) = ( ZSOIL(1) / ZSOIL(NROOT) ) * ETP1A 4510 |! ---------------------------------------------------------------------- 4511 |! USING ROOT DISTRIBUTION AS WEIGHTING FACTOR 4512 |! ---------------------------------------------------------------------- 4513 |! ET(1) = RTDIS(1) * ETP1A 4514 |! ET(1) = ETP1A * PART(1) 4515 |! ---------------------------------------------------------------------- 4516 |! LOOP DOWN THRU THE SOIL LAYERS REPEATING THE OPERATION ABOVE, 4517 |! BUT USING THE THICKNESS OF THE SOIL LAYER (RATHER THAN THE 4518 |! ABSOLUTE DEPTH OF EACH LAYER) IN THE FINAL CALCULATION. 4519 |! ---------------------------------------------------------------------- 4520 |! DO K = 2,NROOT 4521 |! GX = ( SMC(K) - SMCWLT ) / ( SMCREF - SMCWLT ) 4522 |! GX = MAX ( MIN ( GX, 1. ), 0. ) 4523 |! TEST CANOPY RESISTANCE 4524 |! GX = 1.0 4525 |! ET(K) = ((ZSOIL(K)-ZSOIL(K-1))/ZSOIL(NROOT))*GX*ETP1A 4526 |! ET(K) = ((ZSOIL(K)-ZSOIL(K-1))/ZSOIL(NROOT))*ETP1A 4527 |! ---------------------------------------------------------------------- 4528 |! USING ROOT DISTRIBUTION AS WEIGHTING FACTOR 4529 |! ---------------------------------------------------------------------- 4530 |! ET(K) = RTDIS(K) * ETP1A 4531 |! ET(K) = ETP1A*PART(K) 4532 |! END DO 4533 |! ---------------------------------------------------------------------- 4534 |! END SUBROUTINE TRANSP 4535 |! ---------------------------------------------------------------------- 4536 | RETURN 4537 | END >>>>> ATTRIBUTE AND CROSS REFERENCE SECTION <<<<< IDENTIFIER NAME CROSS REFERENCE AND ATTRIBUTES cfactr Reference argument, Real(4), Offset: 0, Alignment: full word 0-4443.12$ 0-4429.35 0-4479.62 cmc Reference argument, Real(4), Offset: 0, Alignment: full word 0-4444.12$ 0-4428.45 0-4478.11 0-4479.46 cmcmax Reference argument, Real(4), Offset: 0, Alignment: full word 0-4445.12$ 0-4429.25 0-4479.51 denom Automatic, Real(4), Offset: 0, Alignment: full word 0-4446.12$ 0-4492.7@ 0-4496.9@ 0-4496.17 0-4498.11 0-4498.27@ 0-4501.34 et1 Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-4447.12$ 0-4428.26 0-4468.9@ 0-4501.9@ etp1 Reference argument, Real(4), Offset: 0, Alignment: full word 0-4448.12$ 0-4428.36 0-4479.31 0-4481.31 etp1a Automatic, Real(4), Offset: 0, Alignment: full word 0-4449.12$ 0-4479.9@ 0-4481.9@ 0-4501.18 gx Automatic, Real(4) (1:7), Offset: 0, Alignment: full word 0-4450.12$ 0-4486.9@ 0-4487.9@ 0-4487.29 0-4488.21 0-4494.26 0-4495.9@ 0-4495.17 0-4496.25 0-4501.26 i Automatic, Integer(4), Offset: 0, Alignment: full word 0-4438.15$ 0-4485.10@ 0-4486.12 0-4486.23 0-4487.12 0-4487.32 0-4488.25 0-4493.10@ 0-4494.21 0-4494.29 0-4495.12 0-4495.20 0-4496.28 0-4500.10@ 0-4501.13 0-4501.29 k Automatic, Integer(4), Offset: 0, Alignment: full word 0-4439.15$ 0-4467.10@ 0-4468.13 max Pure Intrinsic 0-4487.17 0-4495.25 min Pure Intrinsic 0-4487.23 nroot Reference argument, Integer(4), Offset: 0, Alignment: full word 0-4441.15$ 0-4429.59 0-4485.16 0-4490.19 0-4493.16 0-4500.16 nsoil Reference argument, Integer(4), Offset: 0, Alignment: full word 0-4440.15$ 0-4428.30 0-4447.16 0-4447.16 0-4454.18 0-4454.18 0-4459.16 0-4459.16 0-4462.18 0-4462.18 0-4467.16 pc Reference argument, Real(4), Offset: 0, Alignment: full word 0-4452.12$ 0-4429.32 0-4479.26 0-4481.26 q2 Reference argument, Real(4), Offset: 0, Alignment: full word 0-4453.12$ 0-4429.56 rtdis Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-4454.12$ 0-4429.65 0-4494.15 rtx Automatic, Real(4), Offset: 0, Alignment: full word 0-4455.12$ 0-4494.9@ 0-4495.31 sfctmp Reference argument, Real(4), Offset: 0, Alignment: full word 0-4456.12$ 0-4429.49 sgx Automatic, Real(4), Offset: 0, Alignment: full word 0-4457.12$ 0-4484.7@ 0-4488.9@ 0-4488.15 0-4490.7@ 0-4490.13 0-4494.34 shdfac Reference argument, Real(4), Offset: 0, Alignment: full word 0-4458.12$ 0-4428.55 0-4479.17 0-4481.17 smc Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-4459.12$ 0-4428.41 0-4486.19 smcref Reference argument, Real(4), Offset: 0, Alignment: full word 0-4460.12$ 0-4429.42 0-4486.41 smcwlt Reference argument, Real(4), Offset: 0, Alignment: full word 0-4461.12$ 0-4428.62 0-4486.28 0-4486.50 transp Subroutine 0-4428.18$ zsoil Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-4462.12$ 0-4428.49 ** transp === End of Compilation 27 === >>>>> COMPILATION UNIT EPILOGUE SECTION <<<<< FORTRAN Summary of Diagnosed Conditions TOTAL UNRECOVERABLE SEVERE ERROR WARNING INFORMATIONAL (U) (S) (E) (W) (I) 0 0 0 0 0 0 >>>>> OPTIONS SECTION <<<<< *** Options In Effect *** == On / Off Options == CR DBG ESCAPE FULLPATH I4 INLGLUE NOLIBESSL NOLIBPOSIX OBJECT SOURCE STRICT SWAPOMP THREADED UNWIND ZEROSIZE == Options Of Integer Type == ALIAS_SIZE(65536) MAXMEM(-1) OPTIMIZE(2) SPILLSIZE(2000) STACKTEMP(0) == Options Of Character Type == 64(LARGETYPE) ALIAS(STD,NOINTPTR) ALIGN(BINDC(POWER),STRUCT(NATURAL)) ARCH(PWR6) ATTR(FULL) AUTODBL(NONE) DESCRIPTOR(V1) DIRECTIVE(IBM*,IBMT) ENUM() FLAG(I,I) FLOAT(RNDSNGL,MAF,FOLD,RNGCHK,SINGLE) FREE(F90) HALT(S) IEEE(NEAR) INTSIZE(4) LANGLVL(EXTENDED) REALSIZE(4) NOSAVE() TUNE(PWR6) UNROLL(AUTO) XREF(FULL) XLF2003(NOPOLYMORPHIC,NOBOZLITARGS,NOSTOPEXCEPT,NOVOLATILE,NOAUTOREALLOC,OLDNANINF) XLF77(LEADZERO,BLANKPAD) XLF90(NOSIGNEDZERO,NOAUTODEALLOC,OLDPAD) >>>>> SOURCE SECTION <<<<< 4538 | 4539 |! -- 26. PHYSICS SUBROUTINE ==> SUBROUTINE WDFCND --------------------- 4540 | 4541 | SUBROUTINE WDFCND (WDF,WCND,SMC,SMCMAX,BEXP,DKSAT,DWSAT, & 4542 | SICEMAX) 4543 | 4544 | IMPLICIT NONE 4545 | 4546 |! ---------------------------------------------------------------------- 4547 |! SUBROUTINE WDFCND 4548 |! ---------------------------------------------------------------------- 4549 |! CALCULATE SOIL WATER DIFFUSIVITY AND SOIL HYDRAULIC CONDUCTIVITY. 4550 |! ---------------------------------------------------------------------- 4551 | REAL BEXP 4552 | REAL DKSAT 4553 | REAL DWSAT 4554 | REAL EXPON 4555 | REAL FACTR1 4556 | REAL FACTR2 4557 | REAL SICEMAX 4558 | REAL SMC 4559 | REAL SMCMAX 4560 | REAL VKwgt 4561 | REAL WCND 4562 | REAL WDF 4563 | 4564 |! ---------------------------------------------------------------------- 4565 |! CALC THE RATIO OF THE ACTUAL TO THE MAX PSBL SOIL H2O CONTENT 4566 |! ---------------------------------------------------------------------- 4567 | SMC = SMC 4568 | SMCMAX = SMCMAX 4569 | FACTR1 = 0.2 / SMCMAX 4570 | FACTR2 = SMC / SMCMAX 4571 | 4572 |! ---------------------------------------------------------------------- 4573 |! PREP AN EXPNTL COEF AND CALC THE SOIL WATER DIFFUSIVITY 4574 |! ---------------------------------------------------------------------- 4575 | EXPON = BEXP + 2.0 4576 | WDF = DWSAT * FACTR2 ** EXPON 4577 | 4578 |! ---------------------------------------------------------------------- 4579 |! FROZEN SOIL HYDRAULIC DIFFUSIVITY. VERY SENSITIVE TO THE VERTICAL 4580 |! GRADIENT OF UNFROZEN WATER. THE LATTER GRADIENT CAN BECOME VERY 4581 |! EXTREME IN FREEZING/THAWING SITUATIONS, AND GIVEN THE RELATIVELY 4582 |! FEW AND THICK SOIL LAYERS, THIS GRADIENT SUFFERES SERIOUS 4583 |! TRUNCTION ERRORS YIELDING ERRONEOUSLY HIGH VERTICAL TRANSPORTS OF 4584 |! UNFROZEN WATER IN BOTH DIRECTIONS FROM HUGE HYDRAULIC DIFFUSIVITY. 4585 |! THEREFORE, WE FOUND WE HAD TO ARBITRARILY CONSTRAIN WDF 4586 |! -- 4587 |! VERSION D_10CM: ........ FACTR1 = 0.2/SMCMAX 4588 |! WEIGHTED APPROACH...................... PABLO GRUNMANN, 28_SEP_1999. 4589 |! ---------------------------------------------------------------------- 4590 | IF (SICEMAX .GT. 0.0) THEN 4591 | VKWGT = 1./(1.+(500.*SICEMAX)**3.) 4592 | WDF = VKWGT*WDF + (1.- VKWGT)*DWSAT*FACTR1**EXPON 4593 | ENDIF 4594 | 4595 |! ---------------------------------------------------------------------- 4596 |! RESET THE EXPNTL COEF AND CALC THE HYDRAULIC CONDUCTIVITY 4597 |! ---------------------------------------------------------------------- 4598 | EXPON = (2.0 * BEXP) + 3.0 4599 | WCND = DKSAT * FACTR2 ** EXPON 4600 | 4601 |! ---------------------------------------------------------------------- 4602 |! END SUBROUTINE WDFCND 4603 |! ---------------------------------------------------------------------- 4604 | RETURN 4605 | END >>>>> ATTRIBUTE AND CROSS REFERENCE SECTION <<<<< IDENTIFIER NAME CROSS REFERENCE AND ATTRIBUTES bexp Reference argument, Real(4), Offset: 0, Alignment: full word 0-4551.12$ 0-4541.46 0-4575.15 0-4598.22 dksat Reference argument, Real(4), Offset: 0, Alignment: full word 0-4552.12$ 0-4541.51 0-4599.14 dwsat Reference argument, Real(4), Offset: 0, Alignment: full word 0-4553.12$ 0-4541.57 0-4576.13 0-4592.39 expon Automatic, Real(4), Offset: 0, Alignment: full word 0-4554.12$ 0-4575.7@ 0-4576.31 0-4592.53 0-4598.7@ 0-4599.32 factr1 Automatic, Real(4), Offset: 0, Alignment: full word 0-4555.12$ 0-4569.7@ 0-4592.45 factr2 Automatic, Real(4), Offset: 0, Alignment: full word 0-4556.12$ 0-4570.7@ 0-4576.21 0-4599.22 sicemax Reference argument, Real(4), Offset: 0, Alignment: full word 0-4557.12$ 0-4542.25 0-4590.11 0-4591.30 smc Reference argument, Real(4), Offset: 0, Alignment: full word 0-4558.12$ 0-4541.35 0-4567.7@ 0-4567.13 0-4570.16 smcmax Reference argument, Real(4), Offset: 0, Alignment: full word 0-4559.12$ 0-4541.39 0-4568.7@ 0-4568.16 0-4569.22 0-4570.22 vkwgt Automatic, Real(4), Offset: 0, Alignment: full word 0-4560.12$ 0-4591.9@ 0-4592.15 0-4592.32 wcnd Reference argument, Real(4), Offset: 0, Alignment: full word 0-4561.12$ 0-4541.30 0-4599.7@ wdf Reference argument, Real(4), Offset: 0, Alignment: full word 0-4562.12$ 0-4541.26 0-4576.7@ 0-4592.9@ 0-4592.21 wdfcnd Subroutine 0-4541.18$ ** wdfcnd === End of Compilation 28 === >>>>> COMPILATION UNIT EPILOGUE SECTION <<<<< FORTRAN Summary of Diagnosed Conditions TOTAL UNRECOVERABLE SEVERE ERROR WARNING INFORMATIONAL (U) (S) (E) (W) (I) 0 0 0 0 0 0 >>>>> FILE TABLE SECTION <<<<< FILE CREATION FROM FILE NO FILENAME DATE TIME FILE LINE 0 ../lsms/noah.20071219/noah_physics.F 03/09/11 11:04:31 >>>>> COMPILATION EPILOGUE SECTION <<<<< FORTRAN Summary of Diagnosed Conditions TOTAL UNRECOVERABLE SEVERE ERROR WARNING INFORMATIONAL (U) (S) (E) (W) (I) 0 0 0 0 0 0 Source records read....................................... 4603 1501-510 Compilation successful for file noah_physics.F. 1501-543 Object file created.