[2759] | 1 | !WRF:MODEL_LAYER:PHYSICS |
---|
| 2 | ! |
---|
| 3 | MODULE MODULE_SF_LSM_NMM |
---|
| 4 | |
---|
| 5 | USE MODULE_MPP |
---|
| 6 | USE MODULE_MODEL_CONSTANTS |
---|
| 7 | |
---|
| 8 | REAL, SAVE :: SCFX(30) |
---|
| 9 | |
---|
| 10 | INTEGER, SAVE :: ISEASON |
---|
| 11 | CHARACTER*256 :: errmess |
---|
| 12 | |
---|
| 13 | CONTAINS |
---|
| 14 | |
---|
| 15 | !----------------------------------------------------------------------- |
---|
| 16 | SUBROUTINE NMMLSM(DZ8W,QV3D,P8W3D,RHO3D, & |
---|
| 17 | & T3D,TH3D,TSK,CHS, & |
---|
| 18 | & HFX,QFX,QGH,GSW,GLW,ELFLX,RMOL, & ! added for WRF CHEM |
---|
| 19 | & SMSTAV,SMSTOT,SFCRUNOFF, & |
---|
| 20 | & UDRUNOFF,IVGTYP,ISLTYP,VEGFRA,SFCEVP,POTEVP, & |
---|
| 21 | & GRDFLX,SFCEXC,ACSNOW,ACSNOM,SNOPCX, & |
---|
| 22 | & ALBSF,TMN,XLAND,XICE,QZ0, & |
---|
| 23 | & TH2,Q2,SNOWC,CHS2,QSFC,TBOT,CHKLOWQ,RAINBL, & |
---|
| 24 | & NUM_SOIL_LAYERS,DT,DZS,ITIMESTEP, & |
---|
| 25 | & SMOIS,TSLB,SNOW,CANWAT,CPM,ROVCP,SR, & |
---|
| 26 | & ALB,SNOALB,SMLIQ,SNOWH, & |
---|
| 27 | & IDS,IDE, JDS,JDE, KDS,KDE, & |
---|
| 28 | & IMS,IME, JMS,JME, KMS,KME, & |
---|
| 29 | & ITS,ITE, JTS,JTE, KTS,KTE ) |
---|
| 30 | !----------------------------------------------------------------------- |
---|
| 31 | !----------------------------------------------------------------------- |
---|
| 32 | IMPLICIT NONE |
---|
| 33 | !----------------------------------------------------------------------- |
---|
| 34 | !----------------------------------------------------------------------- |
---|
| 35 | !-- DZ8W thickness of layers (m) |
---|
| 36 | !-- T3D temperature (K) |
---|
| 37 | !-- QV3D 3D water vapor mixing ratio (Kg/Kg) |
---|
| 38 | !-- P8W3D 3D pressure on layer interfaces (Pa) |
---|
| 39 | !-- FLHC exchange coefficient for heat (m/s) |
---|
| 40 | !-- FLQC exchange coefficient for moisture (m/s) |
---|
| 41 | !-- PSFC surface pressure (Pa) |
---|
| 42 | !-- XLAND land mask (1 for land, 2 for water) |
---|
| 43 | !-- TMN soil temperature at lower boundary (K) |
---|
| 44 | !-- HFX upward heat flux at the surface (W/m^2) |
---|
| 45 | !-- QFX upward moisture flux at the surface (kg/m^2/s) |
---|
| 46 | !-- TSK surface temperature (K) |
---|
| 47 | !-- GSW NET downward short wave flux at ground surface (W/m^2) |
---|
| 48 | !-- GLW downward long wave flux at ground surface (W/m^2) |
---|
| 49 | !-- ELFLX actual latent heat flux (w m-2: positive, if up from surface) |
---|
| 50 | !-- SFCEVP accumulated surface evaporation (W/m^2) |
---|
| 51 | !-- POTEVP accumulated potential evaporation (W/m^2) |
---|
| 52 | !-- CAPG heat capacity for soil (J/K/m^3) |
---|
| 53 | !-- THC thermal inertia (Cal/cm/K/s^0.5) |
---|
| 54 | !-- TBOT bottom soil temperature (local yearly-mean sfc air temperature) |
---|
| 55 | !-- SNOWC flag indicating snow coverage (1 for snow cover) |
---|
| 56 | !-- EMISS surface emissivity (between 0 and 1) |
---|
| 57 | !-- DELTSM time step (second) |
---|
| 58 | !-- ROVCP R/CP |
---|
| 59 | !-- SR fraction of frozen precip (0.0 to 1.0) |
---|
| 60 | !-- XLV latent heat of melting (J/kg) |
---|
| 61 | !-- DTMIN time step (minute) |
---|
| 62 | !-- IFSNOW ifsnow=1 for snow-cover effects |
---|
| 63 | !-- SVP1 constant for saturation vapor pressure (kPa) |
---|
| 64 | !-- SVP2 constant for saturation vapor pressure (dimensionless) |
---|
| 65 | !-- SVP3 constant for saturation vapor pressure (K) |
---|
| 66 | !-- SVPT0 constant for saturation vapor pressure (K) |
---|
| 67 | !-- EP1 constant for virtual temperature (R_v/R_d - 1) (dimensionless) |
---|
| 68 | !-- EP2 constant for specific humidity calculation |
---|
| 69 | ! (R_d/R_v) (dimensionless) |
---|
| 70 | !-- KARMAN Von Karman constant |
---|
| 71 | !-- EOMEG angular velocity of earth's rotation (rad/s) |
---|
| 72 | !-- STBOLT Stefan-Boltzmann constant (W/m^2/K^4) |
---|
| 73 | !-- STEM soil temperature in 5-layer model |
---|
| 74 | !-- ZS depths of centers of soil layers |
---|
| 75 | !-- DZS thicknesses of soil layers |
---|
| 76 | !-- num_soil_layers the number of soil layers |
---|
| 77 | !-- ACSNOW accumulated snowfall (water equivalent) (mm) |
---|
| 78 | !-- ACSNOM accumulated snowmelt (water equivalent) (mm) |
---|
| 79 | !-- SNOPCX snow phase change heat flux (W/m^2) |
---|
| 80 | !-- ids start index for i in domain |
---|
| 81 | !-- ide end index for i in domain |
---|
| 82 | !-- jds start index for j in domain |
---|
| 83 | !-- jde end index for j in domain |
---|
| 84 | !-- kds start index for k in domain |
---|
| 85 | !-- kde end index for k in domain |
---|
| 86 | !-- ims start index for i in memory |
---|
| 87 | !-- ime end index for i in memory |
---|
| 88 | !-- jms start index for j in memory |
---|
| 89 | !-- jme end index for j in memory |
---|
| 90 | !-- kms start index for k in memory |
---|
| 91 | !-- kme end index for k in memory |
---|
| 92 | !-- its start index for i in tile |
---|
| 93 | !-- ite end index for i in tile |
---|
| 94 | !-- jts start index for j in tile |
---|
| 95 | !-- jte end index for j in tile |
---|
| 96 | !-- kts start index for k in tile |
---|
| 97 | !-- kte end index for k in tile |
---|
| 98 | !----------------------------------------------------------------------- |
---|
| 99 | INTEGER,INTENT(IN) :: IDS,IDE,JDS,JDE,KDS,KDE, & |
---|
| 100 | & IMS,IME,JMS,JME,KMS,KME, & |
---|
| 101 | & ITS,ITE,JTS,JTE,KTS,KTE |
---|
| 102 | ! |
---|
| 103 | INTEGER,INTENT(IN) :: NUM_SOIL_LAYERS,ITIMESTEP |
---|
| 104 | ! |
---|
| 105 | REAL,INTENT(IN) :: DT,ROVCP |
---|
| 106 | ! |
---|
| 107 | REAL,DIMENSION(IMS:IME,1:NUM_SOIL_LAYERS,JMS:JME), & |
---|
| 108 | & INTENT(INOUT) :: SMOIS, & ! new |
---|
| 109 | SMLIQ, & ! new |
---|
| 110 | TSLB ! |
---|
| 111 | |
---|
| 112 | REAL,DIMENSION(1:NUM_SOIL_LAYERS),INTENT(IN) :: DZS |
---|
| 113 | ! |
---|
| 114 | REAL,DIMENSION(ims:ime,jms:jme),INTENT(INOUT) :: & |
---|
| 115 | & TSK, & !was TGB (temperature) |
---|
| 116 | & HFX, & |
---|
| 117 | & QFX, & |
---|
| 118 | & QSFC,& |
---|
| 119 | & SNOW, & !new |
---|
| 120 | & SNOWH, & !new |
---|
| 121 | & ALB, & |
---|
| 122 | & SNOALB, & |
---|
| 123 | & ALBSF, & |
---|
| 124 | & SNOWC, & |
---|
| 125 | & CANWAT, & ! new |
---|
| 126 | & SMSTAV, & |
---|
| 127 | & SMSTOT, & |
---|
| 128 | & SFCRUNOFF, & |
---|
| 129 | & UDRUNOFF, & |
---|
| 130 | & SFCEVP, & |
---|
| 131 | & POTEVP, & |
---|
| 132 | & GRDFLX, & |
---|
| 133 | & ACSNOW, & |
---|
| 134 | & ACSNOM, & |
---|
| 135 | & SNOPCX, & |
---|
| 136 | & Q2, & |
---|
| 137 | & TH2, & |
---|
| 138 | & SFCEXC |
---|
| 139 | |
---|
| 140 | INTEGER,DIMENSION(IMS:IME,JMS:JME),INTENT(IN) :: IVGTYP, & |
---|
| 141 | ISLTYP |
---|
| 142 | |
---|
| 143 | REAL,DIMENSION(IMS:IME,JMS:JME),INTENT(IN) :: TMN, & |
---|
| 144 | XLAND, & |
---|
| 145 | XICE, & |
---|
| 146 | VEGFRA, & |
---|
| 147 | GSW, & |
---|
| 148 | GLW, & |
---|
| 149 | QZ0, & |
---|
| 150 | SR |
---|
| 151 | |
---|
| 152 | REAL,DIMENSION(IMS:IME,KMS:KME,JMS:JME),INTENT(IN) :: QV3D, & |
---|
| 153 | P8W3D, & |
---|
| 154 | RHO3D, & |
---|
| 155 | TH3D, & |
---|
| 156 | T3D, & |
---|
| 157 | DZ8W |
---|
| 158 | |
---|
| 159 | ! |
---|
| 160 | REAL,DIMENSION(IMS:IME,JMS:JME),INTENT(IN) :: RAINBL |
---|
| 161 | ! |
---|
| 162 | REAL,DIMENSION(IMS:IME,JMS:JME),INTENT(IN) :: CHS2, & |
---|
| 163 | CHS, & |
---|
| 164 | QGH, & |
---|
| 165 | CPM |
---|
| 166 | ! |
---|
| 167 | REAL,DIMENSION(IMS:IME,JMS:JME),INTENT(OUT) :: TBOT |
---|
| 168 | ! |
---|
| 169 | REAL,DIMENSION(IMS:IME,JMS:JME),INTENT(OUT) :: CHKLOWQ, & |
---|
| 170 | ELFLX |
---|
| 171 | ! added for WRF-CHEM, 20041205, JM -- not used in this routine as yet |
---|
| 172 | REAL,DIMENSION(IMS:IME,JMS:JME),INTENT(INOUT) :: RMOL |
---|
| 173 | |
---|
| 174 | ! LOCAL VARS |
---|
| 175 | |
---|
| 176 | REAL,DIMENSION(ITS:ITE) :: QV1D, & |
---|
| 177 | & T1D, & |
---|
| 178 | & TH1D, & |
---|
| 179 | & ZA1D, & |
---|
| 180 | & P8W1D, & |
---|
| 181 | & PSFC1D, & |
---|
| 182 | & RHO1D, & |
---|
| 183 | & PREC1D |
---|
| 184 | |
---|
| 185 | INTEGER :: I,J |
---|
| 186 | REAL :: RATIOMX |
---|
| 187 | !----------------------------------------------------------------------- |
---|
| 188 | !----------------------------------------------------------------------- |
---|
| 189 | |
---|
| 190 | DO J=JTS,JTE |
---|
| 191 | |
---|
| 192 | DO I=ITS,ITE |
---|
| 193 | T1D(I) = T3D(I,1,J) |
---|
| 194 | TH1D(I) = TH3D(I,1,J) |
---|
| 195 | !!! QV1D(I) = QV3D(I,1,J) |
---|
| 196 | RATIOMX = QV3D(I,1,J) |
---|
| 197 | QV1D(I) = RATIOMX/(1.+RATIOMX) |
---|
| 198 | P8W1D(I) = (P8W3D(I,KTS+1,j)+P8W3D(i,KTS,j))*0.5 |
---|
| 199 | PSFC1D(I) = P8W3D(I,1,J) |
---|
| 200 | ZA1D(I) = 0.5*DZ8W(I,1,J) |
---|
| 201 | RHO1D(I) = RHO3D(I,1,J) |
---|
| 202 | PREC1D(I) = RAINBL(I,J)/DT |
---|
| 203 | ENDDO |
---|
| 204 | |
---|
| 205 | !FLHC = SFCEXC |
---|
| 206 | |
---|
| 207 | !----------------------------------------------------------------------- |
---|
| 208 | CALL SURFCE(J,ZA1D,QV1D,P8W1D,PSFC1D,RHO1D,T1D,TH1D,TSK, & |
---|
| 209 | CHS(IMS,J),PREC1D,HFX,QFX,QGH(IMS,J),GSW,GLW, & |
---|
| 210 | SMSTAV,SMSTOT,SFCRUNOFF, & |
---|
| 211 | UDRUNOFF,IVGTYP,ISLTYP,VEGFRA,SFCEVP,POTEVP,GRDFLX, & |
---|
| 212 | ELFLX,SFCEXC,ACSNOW,ACSNOM,SNOPCX, & |
---|
| 213 | ALBSF,TMN,XLAND,XICE,QZ0, & |
---|
| 214 | TH2,Q2,SNOWC,CHS2(IMS,J),QSFC,TBOT,CHKLOWQ, & |
---|
| 215 | NUM_SOIL_LAYERS,DT,DZS,ITIMESTEP, & |
---|
| 216 | SMOIS,TSLB,SNOW,CANWAT,CPM(IMS,J),ROVCP,SR, & |
---|
| 217 | ALB,SNOALB,SMLIQ,SNOWH, & |
---|
| 218 | IMS,IME,JMS,JME,KMS,KME, & |
---|
| 219 | ITS,ITE,JTS,JTE,KTS,KTE ) |
---|
| 220 | ! |
---|
| 221 | ENDDO |
---|
| 222 | |
---|
| 223 | END SUBROUTINE NMMLSM |
---|
| 224 | |
---|
| 225 | !----------------------------------------------------------------------- |
---|
| 226 | !----------------------------------------------------------------------- |
---|
| 227 | SUBROUTINE SURFCE(J,ZA,QV,P8W,PSFC,RHO,T,TH,TSK,CHS,PREC,HFX,QFX, & |
---|
| 228 | QGH,GSW,GLW,SMSTAV,SMSTOT,SFCRUNOFF,UDRUNOFF, & |
---|
| 229 | IVGTYP,ISLTYP,VEGFRA,SFCEVP,POTEVP,GRDFLX, & |
---|
| 230 | ELFLX,SFCEXC,ACSNOW,ACSNOM,SNOPCX, & |
---|
| 231 | ALBSF,TMN,XLAND,XICE,QZ0, & |
---|
| 232 | TH2,Q2,SNOWC,CHS2,QSFC,TBOT,CHKLOWQ, & |
---|
| 233 | NUM_SOIL_LAYERS,DT,DZS,ITIMESTEP, & |
---|
| 234 | SMOIS,TSLB,SNOW,CANWAT,CPM,ROVCP,SR, & |
---|
| 235 | ALB,SNOALB,SMLIQ,SNOWH, & |
---|
| 236 | IMS,IME,JMS,JME,KMS,KME, & |
---|
| 237 | ITS,ITE,JTS,JTE,KTS,KTE ) |
---|
| 238 | !------------------------------------------------------------------------ |
---|
| 239 | IMPLICIT NONE |
---|
| 240 | !------------------------------------------------------------------------ |
---|
| 241 | !$$$ SUBPROGRAM DOCUMENTATION BLOCK |
---|
| 242 | ! . . . |
---|
| 243 | ! SUBPROGRAM: SURFCE CALCULATE SURFACE CONDITIONS |
---|
| 244 | ! PRGRMMR: F. CHEN DATE: 97-12-06 |
---|
| 245 | ! |
---|
| 246 | ! ABSTRACT: |
---|
| 247 | ! THIS ROUTINE IS THE DRIVER FOR COMPUTATION OF GROUND CONDITIONS |
---|
| 248 | ! BY USING A LAND SURFACE MODEL (LSM). |
---|
| 249 | ! |
---|
| 250 | ! PROGRAM HISTORY LOG: |
---|
| 251 | ! 97-12-06 CHEN - ORIGINATOR |
---|
| 252 | ! |
---|
| 253 | ! REFERENCES: |
---|
| 254 | ! PAN AND MAHRT (1987) BOUN. LAYER METEOR. |
---|
| 255 | ! CHEN ET AL. (1996) J. GEOPHYS. RES. |
---|
| 256 | ! CHEN ET AL. (1997) BOUN. LAYER METEOR. |
---|
| 257 | ! CHEN and Dudhia (2000) Mon. Wea. Rev. |
---|
| 258 | ! |
---|
| 259 | ! SUBPROGRAMS CALLED: |
---|
| 260 | ! SFLX |
---|
| 261 | ! |
---|
| 262 | ! SET LOCAL PARAMETERS. |
---|
| 263 | !---------------------------------------------------------------------- |
---|
| 264 | INTEGER, INTENT(IN ) :: IMS,IME, JMS,JME, KMS,KME, & |
---|
| 265 | ITS,ITE, JTS,JTE, KTS,KTE, & |
---|
| 266 | J,ITIMESTEP |
---|
| 267 | |
---|
| 268 | INTEGER , INTENT(IN) :: NUM_SOIL_LAYERS |
---|
| 269 | |
---|
| 270 | REAL, INTENT(IN ) :: DT,ROVCP |
---|
| 271 | |
---|
| 272 | REAL, DIMENSION(1:num_soil_layers), INTENT(IN)::DZS |
---|
| 273 | |
---|
| 274 | |
---|
| 275 | REAL, PARAMETER :: PQ0=379.90516 |
---|
| 276 | REAL, PARAMETER :: TRESH=.95E0,A2=17.2693882,A3=273.16,A4=35.86, & |
---|
| 277 | T0=273.16E0,T1=274.16E0,ROW=1.E3, & |
---|
| 278 | ELWV=2.50E6,ELIV=XLS,ELIW=XLF, & |
---|
| 279 | A23M4=A2*(A3-A4), RLIVWV=ELIV/ELWV, & |
---|
| 280 | ROWLIW=ROW*ELIW,ROWLIV=ROW*ELIV,CAPA=R_D/CP |
---|
| 281 | |
---|
| 282 | INTEGER, PARAMETER :: NROOT=3 |
---|
| 283 | ! |
---|
| 284 | REAL, DIMENSION( ims:ime , 1:num_soil_layers, jms:jme ), & |
---|
| 285 | INTENT(INOUT) :: SMOIS, & ! new |
---|
| 286 | SMLIQ, & ! new |
---|
| 287 | TSLB ! new !STEMP |
---|
| 288 | |
---|
| 289 | |
---|
| 290 | REAL, DIMENSION( ims:ime, jms:jme ) , & |
---|
| 291 | INTENT(INOUT) :: TSK, & !was TGB (temperature) |
---|
| 292 | HFX, & !new |
---|
| 293 | QFX, & !new |
---|
| 294 | QSFC,& !new |
---|
| 295 | SNOW, & !new |
---|
| 296 | SNOWH, & !new |
---|
| 297 | ALB, & |
---|
| 298 | SNOALB, & |
---|
| 299 | ALBSF, & |
---|
| 300 | SNOWC, & |
---|
| 301 | CANWAT, & ! new |
---|
| 302 | SMSTAV, & |
---|
| 303 | SMSTOT, & |
---|
| 304 | SFCRUNOFF, & |
---|
| 305 | UDRUNOFF, & |
---|
| 306 | SFCEVP, & |
---|
| 307 | POTEVP, & |
---|
| 308 | GRDFLX, & |
---|
| 309 | ACSNOW, & |
---|
| 310 | ACSNOM, & |
---|
| 311 | SNOPCX |
---|
| 312 | |
---|
| 313 | INTEGER, DIMENSION( ims:ime, jms:jme ) , & |
---|
| 314 | INTENT(IN ) :: IVGTYP, & |
---|
| 315 | ISLTYP |
---|
| 316 | |
---|
| 317 | REAL, DIMENSION( ims:ime, jms:jme ) , & |
---|
| 318 | INTENT(IN ) :: TMN, & |
---|
| 319 | XLAND, & |
---|
| 320 | XICE, & |
---|
| 321 | VEGFRA, & |
---|
| 322 | GSW, & |
---|
| 323 | GLW, & |
---|
| 324 | QZ0, & |
---|
| 325 | SR |
---|
| 326 | |
---|
| 327 | REAL, DIMENSION( ims:ime, jms:jme ) , & |
---|
| 328 | INTENT(INOUT) :: Q2, & |
---|
| 329 | TH2, & |
---|
| 330 | SFCEXC |
---|
| 331 | |
---|
| 332 | REAL, DIMENSION( ims:ime, jms:jme ) , & |
---|
| 333 | INTENT(OUT) :: TBOT |
---|
| 334 | |
---|
| 335 | |
---|
| 336 | REAL, DIMENSION( ims:ime, jms:jme ) , & |
---|
| 337 | INTENT(OUT) :: CHKLOWQ, & |
---|
| 338 | ELFLX |
---|
| 339 | |
---|
| 340 | REAL, DIMENSION( ims:ime ) , & |
---|
| 341 | INTENT(IN ) :: QGH, & |
---|
| 342 | CHS, & |
---|
| 343 | CPM, & |
---|
| 344 | CHS2 |
---|
| 345 | |
---|
| 346 | ! MODULE-LOCAL VARIABLES, DEFINED IN SUBROUTINE LSM |
---|
| 347 | REAL, DIMENSION( its:ite ) , & |
---|
| 348 | INTENT(IN ) :: ZA, & |
---|
| 349 | TH, & |
---|
| 350 | QV, & |
---|
| 351 | T, & |
---|
| 352 | p8w, & |
---|
| 353 | PSFC, & |
---|
| 354 | rho, & |
---|
| 355 | PREC ! one time step in mm |
---|
| 356 | |
---|
| 357 | REAL, DIMENSION( its:ite ) :: TGDSA |
---|
| 358 | |
---|
| 359 | ! LOCAL VARS |
---|
| 360 | |
---|
| 361 | REAL, DIMENSION(1:num_soil_layers) :: SMLIQ1D,SMOIS1D,STEMP1D |
---|
| 362 | |
---|
| 363 | !---------------------------------------------------------------------- |
---|
| 364 | !*** DECLARATIONS FOR IMPLICIT NONE |
---|
| 365 | |
---|
| 366 | REAL :: APELM,APES,FDTLIW,FDTW,Q2SAT,Z,FK,SOLDN,SFCTMP,SFCTH2, & |
---|
| 367 | SFCPRS,PRCP,Q2K,DQSDTK,SATFLG,TBOTK,CHK,VGFRCK,T1K,LWDN, & |
---|
| 368 | CMCK,Q2M,SNODPK,PLFLX,HFLX,GFLX,RNOF1K, & |
---|
| 369 | RNOF2K,Q1K,SMELTK,SOILQW,SOILQM,T2K,PRESK,CHFF,STIMESTEP, & |
---|
| 370 | ALB1D,SNOALB1D,SNOWH1D,ALBSF1D,SOLNET,FFROZP, & |
---|
| 371 | DUM1,DUM2,DUM3,DUM4,DUM5,DUM6,DUM7 |
---|
| 372 | |
---|
| 373 | INTEGER :: I,K,NS,ICE,IVGTPK,ISLTPK,ISPTPK,NOOUT,NSOIL,LZ |
---|
| 374 | |
---|
| 375 | !---------------------------------------------------------------------- |
---|
| 376 | !*********************************************************************** |
---|
| 377 | ! START SURFCE HERE |
---|
| 378 | !*** |
---|
| 379 | !*** SET CONSTANTS CALCULATED HERE FOR CLARITY. |
---|
| 380 | !*** |
---|
| 381 | FDTLIW=DT/ROWLIW |
---|
| 382 | ! FDTLIV=DT/ROWLIV |
---|
| 383 | FDTW=DT/(XLV*RHOWATER) |
---|
| 384 | !*** |
---|
| 385 | !*** SET LSM CONSTANTS AND TIME INDEPENDENT VARIABLES |
---|
| 386 | !*** INITIALIZE LSM HISTORICAL VARIABLES |
---|
| 387 | !*** |
---|
| 388 | !----------------------------------------------------------------------- |
---|
| 389 | |
---|
| 390 | NSOIL=num_soil_layers |
---|
| 391 | |
---|
| 392 | IF(ITIMESTEP.EQ.1)THEN |
---|
| 393 | DO 50 I=its,ite |
---|
| 394 | !*** SET ZERO-VALUE FOR SOME OUTPUT DIAGNOSTIC ARRAYS |
---|
| 395 | IF((XLAND(I,J)-1.5).GE.0.)THEN |
---|
| 396 | ! check sea-ice point |
---|
| 397 | IF(XICE(I,J).EQ.1.)PRINT*,' sea-ice at water point, I=',I, & |
---|
| 398 | 'J=',J |
---|
| 399 | !*** Open Water Case |
---|
| 400 | SMSTAV(I,J)=1.0 |
---|
| 401 | SMSTOT(I,J)=1.0 |
---|
| 402 | DO NS=1,NSOIL |
---|
| 403 | SMOIS(I,NS,J)=1.0 |
---|
| 404 | TSLB(I,NS,J)=273.16 !STEMP |
---|
| 405 | ENDDO |
---|
| 406 | ELSE |
---|
| 407 | IF(XICE(I,J).EQ.1.)THEN |
---|
| 408 | !*** SEA-ICE CASE |
---|
| 409 | SMSTAV(I,J)=1.0 |
---|
| 410 | SMSTOT(I,J)=1.0 |
---|
| 411 | DO NS=1,NSOIL |
---|
| 412 | SMOIS(I,NS,J)=1.0 |
---|
| 413 | ENDDO |
---|
| 414 | ENDIF |
---|
| 415 | ENDIF |
---|
| 416 | ! |
---|
| 417 | 50 CONTINUE |
---|
| 418 | ENDIF |
---|
| 419 | !----------------------------------------------------------------------- |
---|
| 420 | DO 100 I=its,ite |
---|
| 421 | ! SFCPRS=(A(KL)*PSB(I,J)+PTOP+PP3D(I,J,KL)*0.001)*1.E3 |
---|
| 422 | SFCPRS=p8w(I) !Pressure in middle of lowest layer |
---|
| 423 | Q2SAT=QGH(I) |
---|
| 424 | ! CHKLOWQ(I,J)=1. |
---|
| 425 | CHFF=CHS(I)*RHO(I)*CPM(I) |
---|
| 426 | !CHK*RHO*CP |
---|
| 427 | ! TGDSA: potential T |
---|
| 428 | TGDSA(I)=TSK(I,J)*(1.E5/SFCPRS)**ROVCP |
---|
| 429 | ! |
---|
| 430 | !*** CHECK FOR SATURATION AT THE LOWEST MODEL LEVEL |
---|
| 431 | ! |
---|
| 432 | Q2K=QV(I) |
---|
| 433 | APES=(1.E5/PSFC(I))**CAPA |
---|
| 434 | ! |
---|
| 435 | IF((Q2K.GE.Q2SAT*TRESH).AND.Q2K.LT.QZ0(I,J))THEN |
---|
| 436 | SATFLG=0. |
---|
| 437 | CHKLOWQ(I,J)=0. |
---|
| 438 | ELSE |
---|
| 439 | SATFLG=1.0 |
---|
| 440 | CHKLOWQ(I,J)=1. |
---|
| 441 | ENDIF |
---|
| 442 | ! |
---|
| 443 | TBOT(I,J)=273.16 |
---|
| 444 | !*** |
---|
| 445 | !*** LOADING AND UNLOADING MM5/LSM LAND SOIL VARIABLES |
---|
| 446 | !*** |
---|
| 447 | IF((XLAND(I,J)-1.5).GE.0.)THEN |
---|
| 448 | !*** Water |
---|
| 449 | HFX(I,J)=HFX(I,J)/APES |
---|
| 450 | QFX(I,J)=QFX(I,J)*SATFLG |
---|
| 451 | SFCEVP(I,J)=SFCEVP(I,J)+QFX(I,J)*DT |
---|
| 452 | ELSE |
---|
| 453 | !*** LAND OR SEA-ICE |
---|
| 454 | !ATEC ICE=INT(XICE(I,J)+0.3) |
---|
| 455 | IF (XICE(I,J) .GT. 0.5) THEN |
---|
| 456 | ICE=1 |
---|
| 457 | ELSE |
---|
| 458 | ICE=0 |
---|
| 459 | ENDIF |
---|
| 460 | ! |
---|
| 461 | Q2K=MIN(QV(I),Q2SAT) |
---|
| 462 | Z=ZA(I) |
---|
| 463 | ! FK=GSW(I,J)+GLW(I,J) |
---|
| 464 | LWDN=GLW(I,J) |
---|
| 465 | ! |
---|
| 466 | !*** GSW is net downward shortwave |
---|
| 467 | ! |
---|
| 468 | ! SOLNET=GSW(I,J) |
---|
| 469 | ! |
---|
| 470 | !*** GSW is total downward shortwave |
---|
| 471 | ! |
---|
| 472 | SOLDN=GSW(I,J) |
---|
| 473 | ! |
---|
| 474 | !*** Simple use of albedo to determine total incoming solar shortwave SOLDN |
---|
| 475 | !*** (no solar zenith angle correction) |
---|
| 476 | ! |
---|
| 477 | ! SOLDN=SOLNET/(1.-ALB(I,J)) |
---|
| 478 | SOLNET=SOLDN*(1.-ALB(I,J)) |
---|
| 479 | ! |
---|
| 480 | ALBSF1D=ALBSF(I,J) |
---|
| 481 | SNOALB1D=SNOALB(I,J) |
---|
| 482 | SFCTMP=T(I) |
---|
| 483 | !!! SFCTH2=SFCTMP+(0.0097545*Z) |
---|
| 484 | APELM=(1.E5/SFCPRS)**CAPA |
---|
| 485 | SFCTH2=SFCTMP*APELM |
---|
| 486 | SFCTH2=SFCTH2/APES |
---|
| 487 | PRCP=PREC(I) |
---|
| 488 | !!! Q2K=QV(I) |
---|
| 489 | !!! Q2SAT=PQ0/SFCPRS*EXP(A2*(SFCTMP-A3)/(SFCTMP-A4)) |
---|
| 490 | DQSDTK=Q2SAT*A23M4/(SFCTMP-A4)**2 |
---|
| 491 | IF(ICE.EQ.0)THEN |
---|
| 492 | TBOTK=TMN(I,J) |
---|
| 493 | ELSE |
---|
| 494 | TBOTK=271.16 |
---|
| 495 | ENDIF |
---|
| 496 | CHK=CHS(I) |
---|
| 497 | IVGTPK=IVGTYP(I,J) |
---|
| 498 | IF(IVGTPK.EQ.0)IVGTPK=13 |
---|
| 499 | ISLTPK=ISLTYP(I,J) |
---|
| 500 | IF(ISLTPK.EQ.0)ISLTPK=9 |
---|
| 501 | ! hardwire slope type (ISPTPK)=1 |
---|
| 502 | ISPTPK=1 |
---|
| 503 | VGFRCK=VEGFRA(I,J)/100. |
---|
| 504 | IF(IVGTPK.EQ.25) VGFRCK=0.0001 |
---|
| 505 | IF(ISLTPK.EQ.14.AND.XICE(I,J).EQ.0.)THEN |
---|
| 506 | PRINT*,' SOIL TYPE FOUND TO BE WATER AT A LAND-POINT' |
---|
| 507 | PRINT*,i,j,'RESET SOIL in surfce.F' |
---|
| 508 | ! ISLTYP(I,J)=7 |
---|
| 509 | ISLTPK=7 |
---|
| 510 | ENDIF |
---|
| 511 | T1K=TSK(I,J) |
---|
| 512 | CMCK=CANWAT(I,J) |
---|
| 513 | !*** convert snow depth from mm to meter |
---|
| 514 | SNODPK=SNOW(I,J)*0.001 |
---|
| 515 | SNOWH1D=SNOWH(I,J)*0.001 |
---|
| 516 | ! |
---|
| 517 | !*** fraction of frozen precip |
---|
| 518 | ! |
---|
| 519 | FFROZP=SR(I,J) |
---|
| 520 | ! |
---|
| 521 | DO 70 NS=1,NSOIL |
---|
| 522 | SMOIS1D(NS)=SMOIS(I,NS,J) |
---|
| 523 | SMLIQ1D(NS)=SMLIQ(I,NS,J) |
---|
| 524 | STEMP1D(NS)=TSLB(I,NS,J) !STEMP |
---|
| 525 | 70 CONTINUE |
---|
| 526 | |
---|
| 527 | ! |
---|
| 528 | ! print*,'BF SFLX','ISLTPK',ISLTPK,'IVGTPK=',IVGTPK,'SMOIS1D',& |
---|
| 529 | ! SMOIS1D,'STEMP1',STEMP1D,'VGFRCK',VGFRCK |
---|
| 530 | !----------------------------------------------------------------------- |
---|
| 531 | ! old WRF call to SFLX |
---|
| 532 | ! CALL SFLX(ICE,SATFLG,DT,Z,NSOIL,NROOT,DZS,FK,SOLDN,SFCPRS, & |
---|
| 533 | ! PRCP,SFCTMP,SFCTH2,Q2K,Q2SAT,DQSDTK,TBOTK,CHK,CHFF, & |
---|
| 534 | ! IVGTPK,ISLTPK,VGFRCK,PLFLX,ELFLX,HFLX,GFLX,RNOF1K,RNOF2K,& |
---|
| 535 | ! Q1K,SMELTK,T1K,CMCK,SMOIS1D,STEMP1D,SNODPK,SOILQW,SOILQM) |
---|
| 536 | !----------------------------------------------------------------------- |
---|
| 537 | ! ---------------------------------------------------------------------- |
---|
| 538 | ! Ek 12 June 2002 - NEW CALL SFLX |
---|
| 539 | ! ops Eta call to SFLX ...'tailor' this to WRF |
---|
| 540 | ! CALL SFLX |
---|
| 541 | ! I (ICE,DTK,Z,NSOIL,SLDPTH, |
---|
| 542 | ! I LWDN,SOLDN,SFCPRS,PRCP,SFCTMP,SFCTH2,Q2K,SFCSPD,Q2SAT,DQSDTK, |
---|
| 543 | ! I IVGTPK,ISLTPK,ISPTPK, |
---|
| 544 | ! I VGFRCK,PTU,TBOT,ALB,SNOALB, |
---|
| 545 | ! 2 CMCK,T1K,STCK,SMCK,SH2OK,SNOWH,SNODPK,ALB2D,CHK,CMK, |
---|
| 546 | ! O PLFLX,ELFLX,HFLX,GFLX,RNOF1K,RNOF2K,Q1K,SMELTK, |
---|
| 547 | ! O SOILQW,SOILQM,DUM1,DUM2,DUM3,DUM4) |
---|
| 548 | !----------------------------------------------------------------------- |
---|
| 549 | CALL SFLX & |
---|
| 550 | (FFROZP,ICE,DT,Z,NSOIL,DZS, & |
---|
| 551 | LWDN,SOLDN,SOLNET,SFCPRS,PRCP,SFCTMP,SFCTH2,Q2K,DUM5,Q2SAT, & |
---|
| 552 | DQSDTK,IVGTPK,ISLTPK,ISPTPK, & |
---|
| 553 | VGFRCK,DUM6,TBOTK,ALBSF1D,SNOALB1D, & |
---|
| 554 | CMCK,T1K,STEMP1D,SMOIS1D,SMLIQ1D,SNOWH1D,SNODPK,ALB1D,CHK,DUM7, & |
---|
| 555 | PLFLX,ELFLX(I,J),HFLX,GFLX,RNOF1K,RNOF2K,Q1K,SMELTK, & |
---|
| 556 | SOILQW,SOILQM,DUM1,DUM2,DUM3,DUM4,I,J) |
---|
| 557 | !----------------------------------------------------------------------- |
---|
| 558 | !*** DIAGNOSTICS |
---|
| 559 | ! Convert the water unit into mm |
---|
| 560 | SFCRUNOFF(I,J)=SFCRUNOFF(I,J)+RNOF1K*DT*1000.0 |
---|
| 561 | UDRUNOFF(I,J)=UDRUNOFF(I,J)+RNOF2K*DT*1000.0 |
---|
| 562 | SMSTAV(I,J)=SOILQW |
---|
| 563 | |
---|
| 564 | !mp |
---|
| 565 | if (abs(SMSTAV(I,J)) .lt. 3.5) then |
---|
| 566 | else |
---|
| 567 | write(errmess,*) 'bad SMSTAV: ', I,J,SMSTAV(I,J) |
---|
| 568 | CALL wrf_message( errmess ) |
---|
| 569 | endif |
---|
| 570 | !mp |
---|
| 571 | |
---|
| 572 | SMSTOT(I,J)=SOILQM*1000. |
---|
| 573 | SFCEXC(I,J)=CHK |
---|
| 574 | ! IF(SNOB(I,J).GT.0..OR.SICE(I,J).GT.0.)THEN |
---|
| 575 | ! QFC1(I,J)=QFC1(I,J)*RLIVWV |
---|
| 576 | ! ENDIF |
---|
| 577 | IF(FFROZP.GT.0.5)THEN |
---|
| 578 | ACSNOW(I,J)=ACSNOW(I,J)+PREC(I)*DT |
---|
| 579 | ENDIF |
---|
| 580 | IF(SNOW(I,J).GT.0.)THEN |
---|
| 581 | ACSNOM(I,J)=ACSNOM(I,J)+SMELTK*1000. |
---|
| 582 | SNOPCX(I,J)=SNOPCX(I,J)-SMELTK/FDTLIW |
---|
| 583 | ENDIF |
---|
| 584 | POTEVP(I,J)=POTEVP(I,J)+PLFLX*FDTW |
---|
| 585 | ! POTFLX(I,J)=POTFLX(I,J)-PLFLX |
---|
| 586 | !*** WRF LOWER BOUNDARY CONDITIONS |
---|
| 587 | GRDFLX(I,J)=GFLX |
---|
| 588 | HFX(I,J)=HFLX |
---|
| 589 | QFX(I,J)=ELFLX(I,J)/ELWV |
---|
| 590 | SFCEVP(I,J)=SFCEVP(I,J)+QFX(I,J)*DT |
---|
| 591 | TSK(I,J)=T1K |
---|
| 592 | T2K=T1K-HFX(I,J)/(RHO(I)*CPM(I)*CHS2(I)) |
---|
| 593 | TH2(I,J)=T2K*(1.E5/SFCPRS)**ROVCP |
---|
| 594 | Q2M=Q1K-QFX(I,J)/(RHO(I)*CHS2(I)) |
---|
| 595 | !!!!!! Q2(I,J)=Q2M |
---|
| 596 | !!!!!! Q2(I,J)=Q2K |
---|
| 597 | ! t2k=th2k/(1.E5/SFCPRS)**ROVCP |
---|
| 598 | ! QS(I,J)=Q1K |
---|
| 599 | !!! QSFC(I,J)=Q1K |
---|
| 600 | !*** UPDATE STATE VARIABLES |
---|
| 601 | SNOW(I,J)=SNODPK*1000.0 |
---|
| 602 | SNOWH(I,J)=SNOWH1D*1000.0 |
---|
| 603 | CANWAT(I,J)=CMCK |
---|
| 604 | IF(SNOW(I,J).GT.1.0)THEN |
---|
| 605 | ! ALB(I,J)=0.01*ALBD(IVGTPK,ISEASON)*(1.+SCFX(IVGTPK)) |
---|
| 606 | SNOWC(I,J)=1.0 |
---|
| 607 | ELSE |
---|
| 608 | ! ALB(I,J)=0.01*ALBD(IVGTPK,ISEASON) |
---|
| 609 | SNOWC(I,J)=0.0 |
---|
| 610 | ENDIF |
---|
| 611 | ! update albedo |
---|
| 612 | ALB(I,J)=ALB1D |
---|
| 613 | ! update bottom soil temperature |
---|
| 614 | TBOT(I,J)=TBOTK |
---|
| 615 | |
---|
| 616 | DO 80 NS=1,NSOIL |
---|
| 617 | SMOIS(I,NS,J)=SMOIS1D(NS) |
---|
| 618 | SMLIQ(I,NS,J)=SMLIQ1D(NS) |
---|
| 619 | TSLB(I,NS,J)=STEMP1D(NS) ! STEMP |
---|
| 620 | 80 CONTINUE |
---|
| 621 | ENDIF |
---|
| 622 | #if 0 |
---|
| 623 | NOOUT=0 |
---|
| 624 | |
---|
| 625 | IF((ITIMESTEP.EQ.1.OR.MOD(ITIMESTEP,1).EQ.0) & |
---|
| 626 | .AND. I .EQ.29.AND.J.EQ.23) THEN |
---|
| 627 | ! print*, 'GLW',GLW(I,J),'GSW',GSW(I,J) |
---|
| 628 | print*, 'T2K',T2K,'T1K',T1K,'HFX',HFX(I,J),'RHO',RHO(I),'CPM',CPM(I), & |
---|
| 629 | 'CHS2',CHS2(I),'soil T',STEMP1D,'soil m', SMOIS1D |
---|
| 630 | ! print*,'Q2M',Q2M,'Q1K',Q1K,'QFX',QFX(I,J),'RHO',RHO(I),'CHS2',CHS2(I),'latent',ELFLX |
---|
| 631 | ENDIF |
---|
| 632 | |
---|
| 633 | IF(NOOUT.EQ.1)GOTO 100 |
---|
| 634 | ! write output to 29 |
---|
| 635 | IF(ITIMESTEP.EQ.1.AND.I.EQ.1.AND.J.EQ.1) & |
---|
| 636 | WRITE (29,*)& |
---|
| 637 | 'itimestep ',' FK ',' SOLDN ',' SFCPR ', & |
---|
| 638 | ' SFCTMP ',' Q2K ',' TBOTK ', & |
---|
| 639 | ' CHK ',' ELFLX ',' HFLX ',' GFLX ', & |
---|
| 640 | ' RNOF1K ',' RNOF2K ',' T1K ',' CMCK ', & |
---|
| 641 | ' SMCK1 ',' SMCK2 ',' SMCK3 ',' SMCK4 ', & |
---|
| 642 | ' STCK1 ',' STCK2 ',' STCK3 ',' STCK4 ', & |
---|
| 643 | ' SNODPK ',' T2 ', & |
---|
| 644 | ' Q2 ',' SMSTOT ',' SFCEVP ', ' RAIN' |
---|
| 645 | IF((ITIMESTEP.EQ.1.OR.MOD(ITIMESTEP,1).EQ.0) & |
---|
| 646 | .AND. I .EQ.29.AND.J.EQ.23) THEN |
---|
| 647 | print *,'outputting at itimestep =', itimestep |
---|
| 648 | STIMESTEP=FLOAT(itimestep) |
---|
| 649 | WRITE (29,1029)STIMESTEP,FK,SOLDN,SFCPRS/100.,SFCTMP,1000.* & |
---|
| 650 | Q2K,TBOTK,1000.*CHK,ELFLX(i,j),HFLX,GFLX,SFCRUNOFF(I,J)& |
---|
| 651 | ,UDRUNOFF(I,J),T1K,CMCK,SMOIS1D,STEMP1D,SNODPK, & |
---|
| 652 | ! ,UDRUNOFF(I,J),T1K,CMCK,SMOIS1D(3),SMOIS1D(7),SMOIS1D(11),& |
---|
| 653 | ! SMOIS1D(14),STEMP1D(3), STEMP1D(7),STEMP1D(11), & |
---|
| 654 | ! STEMP1D(14), SNODPK, & |
---|
| 655 | T2K,1000.*Q2M,SMSTOT(I,J),SFCEVP(I,J),PRCP |
---|
| 656 | 1029 FORMAT (29F10.4) |
---|
| 657 | ! IF(ITIMESTEP.EQ.0)WRITE (39,*)' P ',' T ', & |
---|
| 658 | ! ' TH ',' Q ',' U ',' V ', & |
---|
| 659 | ! ' QC ' |
---|
| 660 | ! WRITE (39,1039)itimestep |
---|
| 661 | ! DO K=kts,kte |
---|
| 662 | ! WRITE (39,1039)PRESK,TX(I,K),THX(I,K),1000.*QX(I,K),UX(I,K),& |
---|
| 663 | ! VX(I,K),1000.*QCX(I,K) |
---|
| 664 | 1039 FORMAT (7F10.5) |
---|
| 665 | ! ENDDO |
---|
| 666 | ENDIF |
---|
| 667 | ! |
---|
| 668 | #endif |
---|
| 669 | 100 CONTINUE |
---|
| 670 | ! |
---|
| 671 | !----------------------------------------------------------------------- |
---|
| 672 | END SUBROUTINE SURFCE |
---|
| 673 | !----------------------------------------------------------------------- |
---|
| 674 | |
---|
| 675 | SUBROUTINE SFLX ( & |
---|
| 676 | FFROZP,ICE,DT,ZLVL,NSOIL,SLDPTH, & |
---|
| 677 | LWDN,SOLDN,SOLNET,SFCPRS,PRCP,SFCTMP,TH2,Q2,SFCSPD,Q2SAT, & |
---|
| 678 | DQSDT2,VEGTYP,SOILTYP,SLOPETYP, & |
---|
| 679 | SHDFAC,PTU,TBOT,ALB,SNOALB, & |
---|
| 680 | CMC,T1,STC,SMC,SH2O,SNOWH,SNEQV,ALBEDO,CH,CM, & |
---|
| 681 | ETP,ETA,SHEAT,SSOIL,RUNOFF1,RUNOFF2,Q1,SNOMLT, & |
---|
| 682 | SOILW,SOILM,SMCWLT,SMCDRY,SMCREF,SMCMAX,I,J) |
---|
| 683 | ! ---------------------------------------------------------------------- |
---|
| 684 | ! & ETA,SHEAT, & |
---|
| 685 | ! ---------------------------------------------------------------------- |
---|
| 686 | ! OUTPUTS, DIAGNOSTICS, PARAMETERS BELOW GENERALLY NOT NECESSARY WHEN |
---|
| 687 | ! COUPLED WITH E.G. A NWP MODEL (SUCH AS THE NOAA/NWS/NCEP MESOSCALE ETA |
---|
| 688 | ! MODEL). OTHER APPLICATIONS MAY REQUIRE DIFFERENT OUTPUT VARIABLES. |
---|
| 689 | ! ---------------------------------------------------------------------- |
---|
| 690 | ! & EC,EDIR,ET,ETT,ESNOW,DRIP,DEW, & |
---|
| 691 | ! & BETA,ETP,SSOIL, & |
---|
| 692 | ! & FLX1,FLX2,FLX3, & |
---|
| 693 | ! & SNOMLT,SNCOVR, & |
---|
| 694 | ! & RUNOFF1,RUNOFF2,RUNOFF3, & |
---|
| 695 | ! & RC,PC,RSMIN,XLAI,RCS,RCT,RCQ,RCSOIL, & |
---|
| 696 | ! & SOILW,SOILM, & |
---|
| 697 | ! & SMCWLT,SMCDRY,SMCREF,SMCMAX,NROOT,I,J) |
---|
| 698 | |
---|
| 699 | IMPLICIT NONE |
---|
| 700 | |
---|
| 701 | ! ---------------------------------------------------------------------- |
---|
| 702 | ! SUBROUTINE SFLX - VERSION 2.7 - June 2nd 2003 |
---|
| 703 | ! ---------------------------------------------------------------------- |
---|
| 704 | ! SUB-DRIVER FOR "NOAH/OSU LSM" FAMILY OF PHYSICS SUBROUTINES FOR A |
---|
| 705 | ! SOIL/VEG/SNOWPACK LAND-SURFACE MODEL TO UPDATE SOIL MOISTURE, SOIL |
---|
| 706 | ! ICE, SOIL TEMPERATURE, SKIN TEMPERATURE, SNOWPACK WATER CONTENT, |
---|
| 707 | ! SNOWDEPTH, AND ALL TERMS OF THE SURFACE ENERGY BALANCE AND SURFACE |
---|
| 708 | ! WATER BALANCE (EXCLUDING INPUT ATMOSPHERIC FORCINGS OF DOWNWARD |
---|
| 709 | ! RADIATION AND PRECIP) |
---|
| 710 | ! ---------------------------------------------------------------------- |
---|
| 711 | ! SFLX ARGUMENT LIST KEY: |
---|
| 712 | ! ---------------------------------------------------------------------- |
---|
| 713 | ! C CONFIGURATION INFORMATION |
---|
| 714 | ! F FORCING DATA |
---|
| 715 | ! I OTHER (INPUT) FORCING DATA |
---|
| 716 | ! S SURFACE CHARACTERISTICS |
---|
| 717 | ! H HISTORY (STATE) VARIABLES |
---|
| 718 | ! O OUTPUT VARIABLES |
---|
| 719 | ! D DIAGNOSTIC OUTPUT |
---|
| 720 | ! ---------------------------------------------------------------------- |
---|
| 721 | ! 1. CONFIGURATION INFORMATION (C): |
---|
| 722 | ! ---------------------------------------------------------------------- |
---|
| 723 | ! ICE SEA-ICE FLAG (=1: SEA-ICE, =0: LAND) |
---|
| 724 | ! DT TIMESTEP (SEC) (DT SHOULD NOT EXCEED 3600 SECS, RECOMMEND |
---|
| 725 | ! 1800 SECS OR LESS) |
---|
| 726 | ! ZLVL HEIGHT (M) ABOVE GROUND OF ATMOSPHERIC FORCING VARIABLES |
---|
| 727 | ! NSOIL NUMBER OF SOIL LAYERS (AT LEAST 2, AND NOT GREATER THAN |
---|
| 728 | ! PARAMETER NSOLD SET BELOW) |
---|
| 729 | ! SLDPTH THE THICKNESS OF EACH SOIL LAYER (M) |
---|
| 730 | ! ---------------------------------------------------------------------- |
---|
| 731 | ! 2. FORCING DATA (F): |
---|
| 732 | ! ---------------------------------------------------------------------- |
---|
| 733 | ! LWDN LW DOWNWARD RADIATION (W M-2; POSITIVE, NOT NET LONGWAVE) |
---|
| 734 | ! SOLDN SOLAR DOWNWARD RADIATION (W M-2; POSITIVE, NOT NET SOLAR) |
---|
| 735 | ! SFCPRS PRESSURE AT HEIGHT ZLVL ABOVE GROUND (PASCALS) |
---|
| 736 | ! PRCP PRECIP RATE (KG M-2 S-1) (NOTE, THIS IS A RATE) |
---|
| 737 | ! SFCTMP AIR TEMPERATURE (K) AT HEIGHT ZLVL ABOVE GROUND |
---|
| 738 | ! TH2 AIR POTENTIAL TEMPERATURE (K) AT HEIGHT ZLVL ABOVE GROUND |
---|
| 739 | ! Q2 MIXING RATIO AT HEIGHT ZLVL ABOVE GROUND (KG KG-1) |
---|
| 740 | ! ---------------------------------------------------------------------- |
---|
| 741 | ! 3. OTHER FORCING (INPUT) DATA (I): |
---|
| 742 | ! ---------------------------------------------------------------------- |
---|
| 743 | ! SFCSPD WIND SPEED (M S-1) AT HEIGHT ZLVL ABOVE GROUND |
---|
| 744 | ! Q2SAT SAT MIXING RATIO AT HEIGHT ZLVL ABOVE GROUND (KG KG-1) |
---|
| 745 | ! DQSDT2 SLOPE OF SAT SPECIFIC HUMIDITY CURVE AT T=SFCTMP |
---|
| 746 | ! (KG KG-1 K-1) |
---|
| 747 | ! ---------------------------------------------------------------------- |
---|
| 748 | ! 4. CANOPY/SOIL CHARACTERISTICS (S): |
---|
| 749 | ! ---------------------------------------------------------------------- |
---|
| 750 | ! VEGTYP VEGETATION TYPE (INTEGER INDEX) |
---|
| 751 | ! SOILTYP SOIL TYPE (INTEGER INDEX) |
---|
| 752 | ! SLOPETYP CLASS OF SFC SLOPE (INTEGER INDEX) |
---|
| 753 | ! SHDFAC AREAL FRACTIONAL COVERAGE OF GREEN VEGETATION |
---|
| 754 | ! (FRACTION= 0.0-1.0) |
---|
| 755 | ! SHDMIN MINIMUM AREAL FRACTIONAL COVERAGE OF GREEN VEGETATION |
---|
| 756 | ! (FRACTION= 0.0-1.0) <= SHDFAC |
---|
| 757 | ! PTU PHOTO THERMAL UNIT (PLANT PHENOLOGY FOR ANNUALS/CROPS) |
---|
| 758 | ! (NOT YET USED, BUT PASSED TO REDPRM FOR FUTURE USE IN |
---|
| 759 | ! VEG PARMS) |
---|
| 760 | ! ALB BACKROUND SNOW-FREE SURFACE ALBEDO (FRACTION), FOR JULIAN |
---|
| 761 | ! DAY OF YEAR (USUALLY FROM TEMPORAL INTERPOLATION OF |
---|
| 762 | ! MONTHLY MEAN VALUES' CALLING PROG MAY OR MAY NOT |
---|
| 763 | ! INCLUDE DIURNAL SUN ANGLE EFFECT) |
---|
| 764 | ! SNOALB UPPER BOUND ON MAXIMUM ALBEDO OVER DEEP SNOW (E.G. FROM |
---|
| 765 | ! ROBINSON AND KUKLA, 1985, J. CLIM. & APPL. METEOR.) |
---|
| 766 | ! TBOT BOTTOM SOIL TEMPERATURE (LOCAL YEARLY-MEAN SFC AIR |
---|
| 767 | ! TEMPERATURE) |
---|
| 768 | ! ---------------------------------------------------------------------- |
---|
| 769 | ! 5. HISTORY (STATE) VARIABLES (H): |
---|
| 770 | ! ---------------------------------------------------------------------- |
---|
| 771 | ! CMC CANOPY MOISTURE CONTENT (M) |
---|
| 772 | ! T1 GROUND/CANOPY/SNOWPACK) EFFECTIVE SKIN TEMPERATURE (K) |
---|
| 773 | ! STC(NSOIL) SOIL TEMP (K) |
---|
| 774 | ! SMC(NSOIL) TOTAL SOIL MOISTURE CONTENT (VOLUMETRIC FRACTION) |
---|
| 775 | ! SH2O(NSOIL) UNFROZEN SOIL MOISTURE CONTENT (VOLUMETRIC FRACTION) |
---|
| 776 | ! NOTE: FROZEN SOIL MOISTURE = SMC - SH2O |
---|
| 777 | ! SNOWH ACTUAL SNOW DEPTH (M) |
---|
| 778 | ! SNEQV LIQUID WATER-EQUIVALENT SNOW DEPTH (M) |
---|
| 779 | ! NOTE: SNOW DENSITY = SNEQV/SNOWH |
---|
| 780 | ! ALBEDO SURFACE ALBEDO INCLUDING SNOW EFFECT (UNITLESS FRACTION) |
---|
| 781 | ! =SNOW-FREE ALBEDO (ALB) WHEN SNEQV=0, OR |
---|
| 782 | ! =FCT(MSNOALB,ALB,VEGTYP,SHDFAC,SHDMIN) WHEN SNEQV>0 |
---|
| 783 | ! CH SURFACE EXCHANGE COEFFICIENT FOR HEAT AND MOISTURE |
---|
| 784 | ! (M S-1); NOTE: CH IS TECHNICALLY A CONDUCTANCE SINCE |
---|
| 785 | ! IT HAS BEEN MULTIPLIED BY WIND SPEED. |
---|
| 786 | ! CM SURFACE EXCHANGE COEFFICIENT FOR MOMENTUM (M S-1); NOTE: |
---|
| 787 | ! CM IS TECHNICALLY A CONDUCTANCE SINCE IT HAS BEEN |
---|
| 788 | ! MULTIPLIED BY WIND SPEED. CM IS NOT NEEDED IN SFLX |
---|
| 789 | ! ---------------------------------------------------------------------- |
---|
| 790 | ! 6. OUTPUT (O): |
---|
| 791 | ! ---------------------------------------------------------------------- |
---|
| 792 | ! OUTPUT VARIABLES NECESSARY FOR A COUPLED NUMERICAL WEATHER PREDICTION |
---|
| 793 | ! MODEL, E.G. NOAA/NWS/NCEP MESOSCALE ETA MODEL. FOR THIS APPLICATION, |
---|
| 794 | ! THE REMAINING OUTPUT/DIAGNOSTIC/PARAMETER BLOCKS BELOW ARE NOT |
---|
| 795 | ! NECESSARY. OTHER APPLICATIONS MAY REQUIRE DIFFERENT OUTPUT VARIABLES. |
---|
| 796 | ! ETA ACTUAL LATENT HEAT FLUX (W M-2: NEGATIVE, IF UP FROM |
---|
| 797 | ! SURFACE) |
---|
| 798 | ! SHEAT SENSIBLE HEAT FLUX (W M-2: NEGATIVE, IF UPWARD FROM |
---|
| 799 | ! SURFACE) |
---|
| 800 | ! ---------------------------------------------------------------------- |
---|
| 801 | ! EC CANOPY WATER EVAPORATION (W M-2) |
---|
| 802 | ! EDIR DIRECT SOIL EVAPORATION (W M-2) |
---|
| 803 | ! ET(NSOIL) PLANT TRANSPIRATION FROM A PARTICULAR ROOT (SOIL) LAYER |
---|
| 804 | ! (W M-2) |
---|
| 805 | ! ETT TOTAL PLANT TRANSPIRATION (W M-2) |
---|
| 806 | ! ESNOW SUBLIMATION FROM SNOWPACK (W M-2) |
---|
| 807 | ! DRIP THROUGH-FALL OF PRECIP AND/OR DEW IN EXCESS OF CANOPY |
---|
| 808 | ! WATER-HOLDING CAPACITY (M) |
---|
| 809 | ! DEW DEWFALL (OR FROSTFALL FOR T<273.15) (M) |
---|
| 810 | ! ---------------------------------------------------------------------- |
---|
| 811 | ! BETA RATIO OF ACTUAL/POTENTIAL EVAP (DIMENSIONLESS) |
---|
| 812 | ! ETP POTENTIAL EVAPORATION (W M-2) |
---|
| 813 | ! SSOIL SOIL HEAT FLUX (W M-2: NEGATIVE IF DOWNWARD FROM SURFACE) |
---|
| 814 | ! ---------------------------------------------------------------------- |
---|
| 815 | ! FLX1 PRECIP-SNOW SFC (W M-2) |
---|
| 816 | ! FLX2 FREEZING RAIN LATENT HEAT FLUX (W M-2) |
---|
| 817 | ! FLX3 PHASE-CHANGE HEAT FLUX FROM SNOWMELT (W M-2) |
---|
| 818 | ! ---------------------------------------------------------------------- |
---|
| 819 | ! SNOMLT SNOW MELT (M) (WATER EQUIVALENT) |
---|
| 820 | ! SNCOVR FRACTIONAL SNOW COVER (UNITLESS FRACTION, 0-1) |
---|
| 821 | ! ---------------------------------------------------------------------- |
---|
| 822 | ! RUNOFF1 SURFACE RUNOFF (M S-1), NOT INFILTRATING THE SURFACE |
---|
| 823 | ! RUNOFF2 SUBSURFACE RUNOFF (M S-1), DRAINAGE OUT BOTTOM OF LAST |
---|
| 824 | ! SOIL LAYER |
---|
| 825 | ! RUNOFF3 NUMERICAL TRUNCTATION IN EXCESS OF POROSITY (SMCMAX) |
---|
| 826 | ! FOR A GIVEN SOIL LAYER AT THE END OF A TIME STEP |
---|
| 827 | ! ---------------------------------------------------------------------- |
---|
| 828 | ! RC CANOPY RESISTANCE (S M-1) |
---|
| 829 | ! PC PLANT COEFFICIENT (UNITLESS FRACTION, 0-1) WHERE PC*ETP |
---|
| 830 | ! = ACTUAL TRANSPIRATION |
---|
| 831 | ! XLAI LEAF AREA INDEX (DIMENSIONLESS) |
---|
| 832 | ! RSMIN MINIMUM CANOPY RESISTANCE (S M-1) |
---|
| 833 | ! RCS INCOMING SOLAR RC FACTOR (DIMENSIONLESS) |
---|
| 834 | ! RCT AIR TEMPERATURE RC FACTOR (DIMENSIONLESS) |
---|
| 835 | ! RCQ ATMOS VAPOR PRESSURE DEFICIT RC FACTOR (DIMENSIONLESS) |
---|
| 836 | ! RCSOIL SOIL MOISTURE RC FACTOR (DIMENSIONLESS) |
---|
| 837 | ! ---------------------------------------------------------------------- |
---|
| 838 | ! 7. DIAGNOSTIC OUTPUT (D): |
---|
| 839 | ! ---------------------------------------------------------------------- |
---|
| 840 | ! SOILW AVAILABLE SOIL MOISTURE IN ROOT ZONE (UNITLESS FRACTION |
---|
| 841 | ! BETWEEN SMCWLT AND SMCMAX) |
---|
| 842 | ! SOILM TOTAL SOIL COLUMN MOISTURE CONTENT (FROZEN+UNFROZEN) (M) |
---|
| 843 | ! ---------------------------------------------------------------------- |
---|
| 844 | ! 8. PARAMETERS (P): |
---|
| 845 | ! ---------------------------------------------------------------------- |
---|
| 846 | ! SMCWLT WILTING POINT (VOLUMETRIC) |
---|
| 847 | ! SMCDRY DRY SOIL MOISTURE THRESHOLD WHERE DIRECT EVAP FRM TOP |
---|
| 848 | ! LAYER ENDS (VOLUMETRIC) |
---|
| 849 | ! SMCREF SOIL MOISTURE THRESHOLD WHERE TRANSPIRATION BEGINS TO |
---|
| 850 | ! STRESS (VOLUMETRIC) |
---|
| 851 | ! SMCMAX POROSITY, I.E. SATURATED VALUE OF SOIL MOISTURE |
---|
| 852 | ! (VOLUMETRIC) |
---|
| 853 | ! NROOT NUMBER OF ROOT LAYERS, A FUNCTION OF VEG TYPE, DETERMINED |
---|
| 854 | ! IN SUBROUTINE REDPRM. |
---|
| 855 | ! ---------------------------------------------------------------------- |
---|
| 856 | INTEGER NSOLD |
---|
| 857 | PARAMETER(NSOLD = 20) |
---|
| 858 | |
---|
| 859 | ! ---------------------------------------------------------------------- |
---|
| 860 | ! DECLARATIONS - LOGICAL |
---|
| 861 | ! ---------------------------------------------------------------------- |
---|
| 862 | LOGICAL FRZGRA |
---|
| 863 | LOGICAL SATURATED |
---|
| 864 | LOGICAL SNOWNG |
---|
| 865 | |
---|
| 866 | ! ---------------------------------------------------------------------- |
---|
| 867 | ! DECLARATIONS - INTEGER |
---|
| 868 | ! ---------------------------------------------------------------------- |
---|
| 869 | INTEGER ICE |
---|
| 870 | INTEGER K |
---|
| 871 | INTEGER KZ |
---|
| 872 | INTEGER NSOIL |
---|
| 873 | INTEGER NROOT |
---|
| 874 | INTEGER SLOPETYP |
---|
| 875 | INTEGER SOILTYP |
---|
| 876 | INTEGER VEGTYP |
---|
| 877 | INTEGER I |
---|
| 878 | INTEGER J |
---|
| 879 | |
---|
| 880 | ! ---------------------------------------------------------------------- |
---|
| 881 | ! DECLARATIONS - REAL |
---|
| 882 | ! ---------------------------------------------------------------------- |
---|
| 883 | REAL ALBEDO |
---|
| 884 | REAL ALB |
---|
| 885 | REAL BEXP |
---|
| 886 | REAL BETA |
---|
| 887 | REAL CFACTR |
---|
| 888 | REAL CH |
---|
| 889 | REAL CM |
---|
| 890 | REAL CMC |
---|
| 891 | REAL CMCMAX |
---|
| 892 | REAL CP |
---|
| 893 | ! REAL CSNOW |
---|
| 894 | REAL CSOIL |
---|
| 895 | REAL CZIL |
---|
| 896 | REAL DEW |
---|
| 897 | REAL DF1 |
---|
| 898 | REAL DF1H |
---|
| 899 | REAL DF1A |
---|
| 900 | REAL DKSAT |
---|
| 901 | REAL DT |
---|
| 902 | REAL DWSAT |
---|
| 903 | REAL DQSDT2 |
---|
| 904 | REAL DSOIL |
---|
| 905 | REAL DTOT |
---|
| 906 | REAL DRIP |
---|
| 907 | REAL EC |
---|
| 908 | REAL EDIR |
---|
| 909 | REAL ESNOW |
---|
| 910 | REAL ET(NSOIL) |
---|
| 911 | REAL ETT |
---|
| 912 | REAL FRCSNO |
---|
| 913 | REAL FRCSOI |
---|
| 914 | REAL EPSCA |
---|
| 915 | REAL ETA |
---|
| 916 | REAL ETP |
---|
| 917 | REAL FDOWN |
---|
| 918 | REAL F1 |
---|
| 919 | REAL FLX1 |
---|
| 920 | REAL FLX2 |
---|
| 921 | REAL FLX3 |
---|
| 922 | REAL FXEXP |
---|
| 923 | REAL FRZX |
---|
| 924 | REAL SHEAT |
---|
| 925 | REAL HS |
---|
| 926 | REAL KDT |
---|
| 927 | REAL LWDN |
---|
| 928 | REAL LVH2O |
---|
| 929 | REAL PC |
---|
| 930 | REAL PRCP |
---|
| 931 | REAL PTU |
---|
| 932 | REAL PRCP1 |
---|
| 933 | REAL PSISAT |
---|
| 934 | REAL Q2 |
---|
| 935 | REAL Q2SAT |
---|
| 936 | REAL QUARTZ |
---|
| 937 | REAL R |
---|
| 938 | REAL RCH |
---|
| 939 | REAL REFKDT |
---|
| 940 | REAL RR |
---|
| 941 | REAL RTDIS(NSOLD) |
---|
| 942 | REAL RUNOFF1 |
---|
| 943 | REAL RUNOFF2 |
---|
| 944 | REAL RGL |
---|
| 945 | REAL RUNOFF3 |
---|
| 946 | REAL RSMAX |
---|
| 947 | REAL RC |
---|
| 948 | REAL RSMIN |
---|
| 949 | REAL RCQ |
---|
| 950 | REAL RCS |
---|
| 951 | REAL RCSOIL |
---|
| 952 | REAL RCT |
---|
| 953 | REAL RSNOW |
---|
| 954 | REAL SNDENS |
---|
| 955 | REAL SNCOND |
---|
| 956 | REAL SSOIL |
---|
| 957 | REAL SBETA |
---|
| 958 | REAL SFCPRS |
---|
| 959 | REAL SFCSPD |
---|
| 960 | REAL SFCTMP |
---|
| 961 | REAL SHDFAC |
---|
| 962 | REAL SHDMIN |
---|
| 963 | REAL SH2O(NSOIL) |
---|
| 964 | REAL SLDPTH(NSOIL) |
---|
| 965 | REAL SMCDRY |
---|
| 966 | REAL SMCMAX |
---|
| 967 | REAL SMCREF |
---|
| 968 | REAL SMCWLT |
---|
| 969 | REAL SMC(NSOIL) |
---|
| 970 | REAL SNEQV |
---|
| 971 | REAL SNCOVR |
---|
| 972 | REAL SNOWH |
---|
| 973 | REAL SN_NEW |
---|
| 974 | REAL SLOPE |
---|
| 975 | REAL SNUP |
---|
| 976 | REAL SALP |
---|
| 977 | REAL SNOALB |
---|
| 978 | REAL STC(NSOIL) |
---|
| 979 | REAL SNOMLT |
---|
| 980 | REAL SOLDN |
---|
| 981 | REAL SOILM |
---|
| 982 | REAL SOILW |
---|
| 983 | REAL SOILWM |
---|
| 984 | REAL SOILWW |
---|
| 985 | REAL T1 |
---|
| 986 | REAL T1V |
---|
| 987 | REAL T24 |
---|
| 988 | REAL T2V |
---|
| 989 | REAL TBOT |
---|
| 990 | REAL TH2 |
---|
| 991 | REAL TH2V |
---|
| 992 | REAL TOPT |
---|
| 993 | REAL TFREEZ |
---|
| 994 | REAL TSNOW |
---|
| 995 | REAL XLAI |
---|
| 996 | REAL ZLVL |
---|
| 997 | REAL ZBOT |
---|
| 998 | REAL Z0 |
---|
| 999 | REAL ZSOIL(NSOLD) |
---|
| 1000 | |
---|
| 1001 | REAL FFROZP |
---|
| 1002 | REAL SOLNET |
---|
| 1003 | REAL LSUBS |
---|
| 1004 | |
---|
| 1005 | REAL Q1 |
---|
| 1006 | |
---|
| 1007 | ! ---------------------------------------------------------------------- |
---|
| 1008 | ! DECLARATIONS - PARAMETERS |
---|
| 1009 | ! ---------------------------------------------------------------------- |
---|
| 1010 | PARAMETER(TFREEZ = 273.15) |
---|
| 1011 | PARAMETER(LVH2O = 2.501E+6) |
---|
| 1012 | PARAMETER(LSUBS = 2.83E+6) |
---|
| 1013 | PARAMETER(R = 287.04) |
---|
| 1014 | PARAMETER(CP = 1004.5) |
---|
| 1015 | |
---|
| 1016 | ! ---------------------------------------------------------------------- |
---|
| 1017 | ! INITIALIZATION |
---|
| 1018 | ! ---------------------------------------------------------------------- |
---|
| 1019 | RUNOFF1 = 0.0 |
---|
| 1020 | RUNOFF2 = 0.0 |
---|
| 1021 | RUNOFF3 = 0.0 |
---|
| 1022 | SNOMLT = 0.0 |
---|
| 1023 | |
---|
| 1024 | ! ---------------------------------------------------------------------- |
---|
| 1025 | ! THE VARIABLE "ICE" IS A FLAG DENOTING SEA-ICE CASE |
---|
| 1026 | ! ---------------------------------------------------------------------- |
---|
| 1027 | IF (ICE .EQ. 1) THEN |
---|
| 1028 | |
---|
| 1029 | ! ---------------------------------------------------------------------- |
---|
| 1030 | ! SEA-ICE LAYERS ARE EQUAL THICKNESS AND SUM TO 3 METERS |
---|
| 1031 | ! ---------------------------------------------------------------------- |
---|
| 1032 | DO KZ = 1,NSOIL |
---|
| 1033 | ZSOIL(KZ) = -3.*FLOAT(KZ)/FLOAT(NSOIL) |
---|
| 1034 | END DO |
---|
| 1035 | |
---|
| 1036 | ELSE |
---|
| 1037 | |
---|
| 1038 | ! ---------------------------------------------------------------------- |
---|
| 1039 | ! CALCULATE DEPTH (NEGATIVE) BELOW GROUND FROM TOP SKIN SFC TO BOTTOM OF |
---|
| 1040 | ! EACH SOIL LAYER. NOTE: SIGN OF ZSOIL IS NEGATIVE (DENOTING BELOW |
---|
| 1041 | ! GROUND) |
---|
| 1042 | ! ---------------------------------------------------------------------- |
---|
| 1043 | ZSOIL(1) = -SLDPTH(1) |
---|
| 1044 | DO KZ = 2,NSOIL |
---|
| 1045 | ZSOIL(KZ) = -SLDPTH(KZ)+ZSOIL(KZ-1) |
---|
| 1046 | END DO |
---|
| 1047 | |
---|
| 1048 | ENDIF |
---|
| 1049 | |
---|
| 1050 | ! ---------------------------------------------------------------------- |
---|
| 1051 | ! NEXT IS CRUCIAL CALL TO SET THE LAND-SURFACE PARAMETERS, INCLUDING |
---|
| 1052 | ! SOIL-TYPE AND VEG-TYPE DEPENDENT PARAMETERS. |
---|
| 1053 | ! ---------------------------------------------------------------------- |
---|
| 1054 | CALL REDPRM (VEGTYP,SOILTYP,SLOPETYP, & |
---|
| 1055 | & CFACTR,CMCMAX,RSMAX,TOPT,REFKDT,KDT,SBETA, & |
---|
| 1056 | & SHDFAC,RSMIN,RGL,HS,ZBOT,FRZX,PSISAT,SLOPE, & |
---|
| 1057 | & SNUP,SALP,BEXP,DKSAT,DWSAT,SMCMAX,SMCWLT,SMCREF, & |
---|
| 1058 | & SMCDRY,F1,QUARTZ,FXEXP,RTDIS,SLDPTH,ZSOIL, & |
---|
| 1059 | & NROOT,NSOIL,Z0,CZIL,XLAI,CSOIL,PTU) |
---|
| 1060 | |
---|
| 1061 | ! ---------------------------------------------------------------------- |
---|
| 1062 | ! INITIALIZE PRECIPITATION LOGICALS. |
---|
| 1063 | ! ---------------------------------------------------------------------- |
---|
| 1064 | SNOWNG = .FALSE. |
---|
| 1065 | FRZGRA = .FALSE. |
---|
| 1066 | |
---|
| 1067 | ! ---------------------------------------------------------------------- |
---|
| 1068 | ! IF SEA-ICE CASE, ASSIGN DEFAULT WATER-EQUIV SNOW ON TOP |
---|
| 1069 | ! ---------------------------------------------------------------------- |
---|
| 1070 | IF (ICE .EQ. 1) THEN |
---|
| 1071 | SNEQV = 0.01 |
---|
| 1072 | SNOWH = 0.05 |
---|
| 1073 | SNDENS = SNEQV/SNOWH |
---|
| 1074 | ENDIF |
---|
| 1075 | |
---|
| 1076 | ! ---------------------------------------------------------------------- |
---|
| 1077 | ! IF INPUT SNOWPACK IS NONZERO, THEN COMPUTE SNOW DENSITY "SNDENS" AND |
---|
| 1078 | ! SNOW THERMAL CONDUCTIVITY "SNCOND" (NOTE THAT CSNOW IS A FUNCTION |
---|
| 1079 | ! SUBROUTINE) |
---|
| 1080 | ! ---------------------------------------------------------------------- |
---|
| 1081 | IF (SNEQV .EQ. 0.0) THEN |
---|
| 1082 | SNDENS = 0.0 |
---|
| 1083 | SNOWH = 0.0 |
---|
| 1084 | SNCOND = 1.0 |
---|
| 1085 | ELSE |
---|
| 1086 | SNDENS = SNEQV/SNOWH |
---|
| 1087 | SNCOND = CSNOW(SNDENS) |
---|
| 1088 | ENDIF |
---|
| 1089 | |
---|
| 1090 | ! ---------------------------------------------------------------------- |
---|
| 1091 | ! DETERMINE IF IT'S PRECIPITATING AND WHAT KIND OF PRECIP IT IS. |
---|
| 1092 | ! IF IT'S PRCPING AND THE AIR TEMP IS COLDER THAN 0 C, IT'S SNOWING! |
---|
| 1093 | ! IF IT'S PRCPING AND THE AIR TEMP IS WARMER THAN 0 C, BUT THE GRND |
---|
| 1094 | ! TEMP IS COLDER THAN 0 C, FREEZING RAIN IS PRESUMED TO BE FALLING. |
---|
| 1095 | ! ---------------------------------------------------------------------- |
---|
| 1096 | IF (PRCP .GT. 0.0) THEN |
---|
| 1097 | ! IF (SFCTMP .LE. TFREEZ) THEN |
---|
| 1098 | IF (FFROZP .GT. 0.5) THEN |
---|
| 1099 | SNOWNG = .TRUE. |
---|
| 1100 | ELSE |
---|
| 1101 | IF (T1 .LE. TFREEZ) FRZGRA = .TRUE. |
---|
| 1102 | ENDIF |
---|
| 1103 | ENDIF |
---|
| 1104 | |
---|
| 1105 | ! ---------------------------------------------------------------------- |
---|
| 1106 | ! IF EITHER PRCP FLAG IS SET, DETERMINE NEW SNOWFALL (CONVERTING PRCP |
---|
| 1107 | ! RATE FROM KG M-2 S-1 TO A LIQUID EQUIV SNOW DEPTH IN METERS) AND ADD |
---|
| 1108 | ! IT TO THE EXISTING SNOWPACK. |
---|
| 1109 | ! NOTE THAT SINCE ALL PRECIP IS ADDED TO SNOWPACK, NO PRECIP INFILTRATES |
---|
| 1110 | ! INTO THE SOIL SO THAT PRCP1 IS SET TO ZERO. |
---|
| 1111 | ! ---------------------------------------------------------------------- |
---|
| 1112 | IF ( (SNOWNG) .OR. (FRZGRA) ) THEN |
---|
| 1113 | SN_NEW = PRCP * DT * 0.001 |
---|
| 1114 | SNEQV = SNEQV + SN_NEW |
---|
| 1115 | PRCP1 = 0.0 |
---|
| 1116 | |
---|
| 1117 | ! ---------------------------------------------------------------------- |
---|
| 1118 | ! UPDATE SNOW DENSITY BASED ON NEW SNOWFALL, USING OLD AND NEW SNOW. |
---|
| 1119 | ! UPDATE SNOW THERMAL CONDUCTIVITY |
---|
| 1120 | ! ---------------------------------------------------------------------- |
---|
| 1121 | CALL SNOW_NEW (SFCTMP,SN_NEW,SNOWH,SNDENS) |
---|
| 1122 | SNCOND = CSNOW (SNDENS) |
---|
| 1123 | ELSE |
---|
| 1124 | |
---|
| 1125 | ! ---------------------------------------------------------------------- |
---|
| 1126 | ! PRECIP IS LIQUID (RAIN), HENCE SAVE IN THE PRECIP VARIABLE THAT |
---|
| 1127 | ! LATER CAN WHOLELY OR PARTIALLY INFILTRATE THE SOIL (ALONG WITH |
---|
| 1128 | ! ANY CANOPY "DRIP" ADDED TO THIS LATER) |
---|
| 1129 | ! ---------------------------------------------------------------------- |
---|
| 1130 | PRCP1 = PRCP |
---|
| 1131 | |
---|
| 1132 | ENDIF |
---|
| 1133 | |
---|
| 1134 | ! ---------------------------------------------------------------------- |
---|
| 1135 | ! DETERMINE SNOWCOVER AND ALBEDO OVER LAND. |
---|
| 1136 | ! ---------------------------------------------------------------------- |
---|
| 1137 | IF (ICE .EQ. 0) THEN |
---|
| 1138 | |
---|
| 1139 | ! ---------------------------------------------------------------------- |
---|
| 1140 | ! IF SNOW DEPTH=0, SET SNOW FRACTION=0, ALBEDO=SNOW FREE ALBEDO. |
---|
| 1141 | ! ---------------------------------------------------------------------- |
---|
| 1142 | IF (SNEQV .EQ. 0.0) THEN |
---|
| 1143 | SNCOVR = 0.0 |
---|
| 1144 | ALBEDO = ALB |
---|
| 1145 | |
---|
| 1146 | ELSE |
---|
| 1147 | ! ---------------------------------------------------------------------- |
---|
| 1148 | ! DETERMINE SNOW FRACTIONAL COVERAGE. |
---|
| 1149 | ! DETERMINE SURFACE ALBEDO MODIFICATION DUE TO SNOWDEPTH STATE. |
---|
| 1150 | ! ---------------------------------------------------------------------- |
---|
| 1151 | CALL SNFRAC (SNEQV,SNUP,SALP,SNOWH,SNCOVR) |
---|
| 1152 | ! MEK JAN 2006, LIMIT SNOW COVER TO A MAXIMUM FRACTION OF 0.98 |
---|
| 1153 | SNCOVR = MIN(SNCOVR,0.98) |
---|
| 1154 | CALL ALCALC (ALB,SNOALB,SHDFAC,SHDMIN,SNCOVR,TSNOW,ALBEDO) |
---|
| 1155 | ENDIF |
---|
| 1156 | |
---|
| 1157 | ELSE |
---|
| 1158 | ! ---------------------------------------------------------------------- |
---|
| 1159 | ! SNOW COVER, ALBEDO OVER SEA-ICE |
---|
| 1160 | ! ---------------------------------------------------------------------- |
---|
| 1161 | SNCOVR = 1.0 |
---|
| 1162 | ! changed in version 2.6 on June 2nd 2003 |
---|
| 1163 | ! ALBEDO = 0.60 |
---|
| 1164 | ALBEDO = 0.65 |
---|
| 1165 | ENDIF |
---|
| 1166 | |
---|
| 1167 | ! ---------------------------------------------------------------------- |
---|
| 1168 | ! THERMAL CONDUCTIVITY FOR SEA-ICE CASE |
---|
| 1169 | ! ---------------------------------------------------------------------- |
---|
| 1170 | IF (ICE .EQ. 1) THEN |
---|
| 1171 | DF1 = 2.2 |
---|
| 1172 | |
---|
| 1173 | ELSE |
---|
| 1174 | |
---|
| 1175 | ! ---------------------------------------------------------------------- |
---|
| 1176 | ! NEXT CALCULATE THE SUBSURFACE HEAT FLUX, WHICH FIRST REQUIRES |
---|
| 1177 | ! CALCULATION OF THE THERMAL DIFFUSIVITY. TREATMENT OF THE |
---|
| 1178 | ! LATTER FOLLOWS THAT ON PAGES 148-149 FROM "HEAT TRANSFER IN |
---|
| 1179 | ! COLD CLIMATES", BY V. J. LUNARDINI (PUBLISHED IN 1981 |
---|
| 1180 | ! BY VAN NOSTRAND REINHOLD CO.) I.E. TREATMENT OF TWO CONTIGUOUS |
---|
| 1181 | ! "PLANE PARALLEL" MEDIUMS (NAMELY HERE THE FIRST SOIL LAYER |
---|
| 1182 | ! AND THE SNOWPACK LAYER, IF ANY). THIS DIFFUSIVITY TREATMENT |
---|
| 1183 | ! BEHAVES WELL FOR BOTH ZERO AND NONZERO SNOWPACK, INCLUDING THE |
---|
| 1184 | ! LIMIT OF VERY THIN SNOWPACK. THIS TREATMENT ALSO ELIMINATES |
---|
| 1185 | ! THE NEED TO IMPOSE AN ARBITRARY UPPER BOUND ON SUBSURFACE |
---|
| 1186 | ! HEAT FLUX WHEN THE SNOWPACK BECOMES EXTREMELY THIN. |
---|
| 1187 | ! ---------------------------------------------------------------------- |
---|
| 1188 | ! FIRST CALCULATE THERMAL DIFFUSIVITY OF TOP SOIL LAYER, USING |
---|
| 1189 | ! BOTH THE FROZEN AND LIQUID SOIL MOISTURE, FOLLOWING THE |
---|
| 1190 | ! SOIL THERMAL DIFFUSIVITY FUNCTION OF PETERS-LIDARD ET AL. |
---|
| 1191 | ! (1998,JAS, VOL 55, 1209-1224), WHICH REQUIRES THE SPECIFYING |
---|
| 1192 | ! THE QUARTZ CONTENT OF THE GIVEN SOIL CLASS (SEE ROUTINE REDPRM) |
---|
| 1193 | ! ---------------------------------------------------------------------- |
---|
| 1194 | CALL TDFCND (DF1,SMC(1),QUARTZ,SMCMAX,SH2O(1)) |
---|
| 1195 | |
---|
| 1196 | ! ---------------------------------------------------------------------- |
---|
| 1197 | ! NEXT ADD SUBSURFACE HEAT FLUX REDUCTION EFFECT FROM THE |
---|
| 1198 | ! OVERLYING GREEN CANOPY, ADAPTED FROM SECTION 2.1.2 OF |
---|
| 1199 | ! PETERS-LIDARD ET AL. (1997, JGR, VOL 102(D4)) |
---|
| 1200 | ! ---------------------------------------------------------------------- |
---|
| 1201 | DF1 = DF1 * EXP(SBETA*SHDFAC) |
---|
| 1202 | ENDIF |
---|
| 1203 | |
---|
| 1204 | ! ---------------------------------------------------------------------- |
---|
| 1205 | ! FINALLY "PLANE PARALLEL" SNOWPACK EFFECT FOLLOWING |
---|
| 1206 | ! V.J. LINARDINI REFERENCE CITED ABOVE. NOTE THAT DTOT IS |
---|
| 1207 | ! COMBINED DEPTH OF SNOWDEPTH AND THICKNESS OF FIRST SOIL LAYER |
---|
| 1208 | ! ---------------------------------------------------------------------- |
---|
| 1209 | DSOIL = -(0.5 * ZSOIL(1)) |
---|
| 1210 | |
---|
| 1211 | IF (SNEQV .EQ. 0.) THEN |
---|
| 1212 | SSOIL = DF1 * (T1 - STC(1) ) / DSOIL |
---|
| 1213 | ELSE |
---|
| 1214 | DTOT = SNOWH + DSOIL |
---|
| 1215 | FRCSNO = SNOWH/DTOT |
---|
| 1216 | FRCSOI = DSOIL/DTOT |
---|
| 1217 | ! |
---|
| 1218 | ! 1. HARMONIC MEAN (SERIES FLOW) |
---|
| 1219 | ! DF1 = (SNCOND*DF1)/(FRCSOI*SNCOND+FRCSNO*DF1) |
---|
| 1220 | DF1H = (SNCOND*DF1)/(FRCSOI*SNCOND+FRCSNO*DF1) |
---|
| 1221 | ! 2. ARITHMETIC MEAN (PARALLEL FLOW) |
---|
| 1222 | ! DF1 = FRCSNO*SNCOND + FRCSOI*DF1 |
---|
| 1223 | DF1A = FRCSNO*SNCOND + FRCSOI*DF1 |
---|
| 1224 | ! |
---|
| 1225 | ! 3. GEOMETRIC MEAN (INTERMEDIATE BETWEEN HARMONIC AND ARITHMETIC MEAN) |
---|
| 1226 | ! DF1 = (SNCOND**FRCSNO)*(DF1**FRCSOI) |
---|
| 1227 | ! TEST - MBEK, 10 Jan 2002 |
---|
| 1228 | ! weigh DF by snow fraction |
---|
| 1229 | ! DF1 = DF1H*SNCOVR + DF1A*(1.0-SNCOVR) |
---|
| 1230 | ! DF1 = DF1H*SNCOVR + DF1*(1.0-SNCOVR) |
---|
| 1231 | DF1 = DF1A*SNCOVR + DF1*(1.0-SNCOVR) |
---|
| 1232 | |
---|
| 1233 | ! ---------------------------------------------------------------------- |
---|
| 1234 | ! CALCULATE SUBSURFACE HEAT FLUX, SSOIL, FROM FINAL THERMAL DIFFUSIVITY |
---|
| 1235 | ! OF SURFACE MEDIUMS, DF1 ABOVE, AND SKIN TEMPERATURE AND TOP |
---|
| 1236 | ! MID-LAYER SOIL TEMPERATURE |
---|
| 1237 | ! ---------------------------------------------------------------------- |
---|
| 1238 | SSOIL = DF1 * (T1 - STC(1) ) / DTOT |
---|
| 1239 | ENDIF |
---|
| 1240 | |
---|
| 1241 | ! MEK -- DEBUG -- AUG 2005 |
---|
| 1242 | ! WRITE(*,*) 'T1,STC(1),DSOIL=',T1,STC(1),DSOIL |
---|
| 1243 | ! WRITE(*,*) 'DF1,SBETA,SHDFAC=',DF1,SBETA,SHDFAC |
---|
| 1244 | ! WRITE(*,*) 'SSOIL=',SSOIL |
---|
| 1245 | |
---|
| 1246 | ! ---------------------------------------------------------------------- |
---|
| 1247 | ! DETERMINE SURFACE ROUGHNESS OVER SNOWPACK USING SNOW CONDITION FROM |
---|
| 1248 | ! THE PREVIOUS TIMESTEP. |
---|
| 1249 | ! ---------------------------------------------------------------------- |
---|
| 1250 | IF (SNCOVR .GT. 0.) THEN |
---|
| 1251 | CALL SNOWZ0 (SNCOVR,Z0) |
---|
| 1252 | ENDIF |
---|
| 1253 | |
---|
| 1254 | ! ---------------------------------------------------------------------- |
---|
| 1255 | ! NEXT CALL ROUTINE SFCDIF TO CALCULATE THE SFC EXCHANGE COEF (CH) FOR |
---|
| 1256 | ! HEAT AND MOISTURE. |
---|
| 1257 | ! |
---|
| 1258 | ! NOTE !!! |
---|
| 1259 | ! COMMENT OUT CALL SFCDIF, IF SFCDIF ALREADY CALLED IN CALLING PROGRAM |
---|
| 1260 | ! (SUCH AS IN COUPLED ATMOSPHERIC MODEL). |
---|
| 1261 | ! |
---|
| 1262 | ! NOTE !!! |
---|
| 1263 | ! DO NOT CALL SFCDIF UNTIL AFTER ABOVE CALL TO REDPRM, IN CASE |
---|
| 1264 | ! ALTERNATIVE VALUES OF ROUGHNESS LENGTH (Z0) AND ZILINTINKEVICH COEF |
---|
| 1265 | ! (CZIL) ARE SET THERE VIA NAMELIST I/O. |
---|
| 1266 | ! |
---|
| 1267 | ! NOTE !!! |
---|
| 1268 | ! ROUTINE SFCDIF RETURNS A CH THAT REPRESENTS THE WIND SPD TIMES THE |
---|
| 1269 | ! "ORIGINAL" NONDIMENSIONAL "Ch" TYPICAL IN LITERATURE. HENCE THE CH |
---|
| 1270 | ! RETURNED FROM SFCDIF HAS UNITS OF M/S. THE IMPORTANT COMPANION |
---|
| 1271 | ! COEFFICIENT OF CH, CARRIED HERE AS "RCH", IS THE CH FROM SFCDIF TIMES |
---|
| 1272 | ! AIR DENSITY AND PARAMETER "CP". "RCH" IS COMPUTED IN "CALL PENMAN". |
---|
| 1273 | ! RCH RATHER THAN CH IS THE COEFF USUALLY INVOKED LATER IN EQNS. |
---|
| 1274 | ! |
---|
| 1275 | ! NOTE !!! |
---|
| 1276 | ! SFCDIF ALSO RETURNS THE SURFACE EXCHANGE COEFFICIENT FOR MOMENTUM, CM, |
---|
| 1277 | ! ALSO KNOWN AS THE SURFACE DRAGE COEFFICIENT, BUT CM IS NOT USED HERE. |
---|
| 1278 | ! ---------------------------------------------------------------------- |
---|
| 1279 | ! CALC VIRTUAL TEMPS AND VIRTUAL POTENTIAL TEMPS NEEDED BY SUBROUTINES |
---|
| 1280 | ! SFCDIF AND PENMAN. |
---|
| 1281 | ! ---------------------------------------------------------------------- |
---|
| 1282 | T2V = SFCTMP * (1.0 + 0.61 * Q2 ) |
---|
| 1283 | ! ---------------------------------------------------------------------- |
---|
| 1284 | ! COMMENT OUT BELOW 2 LINES IF CALL SFCDIF IS COMMENTED OUT, I.E. IN THE |
---|
| 1285 | ! COUPLED MODEL. |
---|
| 1286 | ! ---------------------------------------------------------------------- |
---|
| 1287 | ! T1V = T1 * (1.0 + 0.61 * Q2) |
---|
| 1288 | ! TH2V = TH2 * (1.0 + 0.61 * Q2) |
---|
| 1289 | ! |
---|
| 1290 | ! CALL SFCDIF (ZLVL,Z0,T1V,TH2V,SFCSPD,CZIL,CM,CH) |
---|
| 1291 | |
---|
| 1292 | ! ---------------------------------------------------------------------- |
---|
| 1293 | ! CALCULATE TOTAL DOWNWARD RADIATION (SOLAR PLUS LONGWAVE) NEEDED IN |
---|
| 1294 | ! PENMAN EP SUBROUTINE THAT FOLLOWS |
---|
| 1295 | ! ---------------------------------------------------------------------- |
---|
| 1296 | ! FDOWN = SOLDN*(1.0-ALBEDO) + LWDN |
---|
| 1297 | FDOWN = SOLNET + LWDN |
---|
| 1298 | |
---|
| 1299 | ! ---------------------------------------------------------------------- |
---|
| 1300 | ! CALL PENMAN SUBROUTINE TO CALCULATE POTENTIAL EVAPORATION (ETP), AND |
---|
| 1301 | ! OTHER PARTIAL PRODUCTS AND SUMS SAVE IN COMMON/RITE FOR LATER |
---|
| 1302 | ! CALCULATIONS. |
---|
| 1303 | ! ---------------------------------------------------------------------- |
---|
| 1304 | CALL PENMAN (SFCTMP,SFCPRS,CH,T2V,TH2,PRCP,FDOWN,T24,SSOIL, & |
---|
| 1305 | & Q2,Q2SAT,ETP,RCH,EPSCA,RR,SNOWNG,FRZGRA, & |
---|
| 1306 | & DQSDT2,FLX2) |
---|
| 1307 | |
---|
| 1308 | ! ---------------------------------------------------------------------- |
---|
| 1309 | ! CALL CANRES TO CALCULATE THE CANOPY RESISTANCE AND CONVERT IT INTO PC |
---|
| 1310 | ! IF NONZERO GREENNESS FRACTION |
---|
| 1311 | ! ---------------------------------------------------------------------- |
---|
| 1312 | IF (SHDFAC .GT. 0.) THEN |
---|
| 1313 | |
---|
| 1314 | ! ---------------------------------------------------------------------- |
---|
| 1315 | ! FROZEN GROUND EXTENSION: TOTAL SOIL WATER "SMC" WAS REPLACED |
---|
| 1316 | ! BY UNFROZEN SOIL WATER "SH2O" IN CALL TO CANRES BELOW |
---|
| 1317 | ! ---------------------------------------------------------------------- |
---|
| 1318 | CALL CANRES (SOLDN,CH,SFCTMP,Q2,SFCPRS,SH2O,ZSOIL,NSOIL, & |
---|
| 1319 | & SMCWLT,SMCREF,RSMIN,RC,PC,NROOT,Q2SAT,DQSDT2, & |
---|
| 1320 | & TOPT,RSMAX,RGL,HS,XLAI, & |
---|
| 1321 | & RCS,RCT,RCQ,RCSOIL) |
---|
| 1322 | |
---|
| 1323 | ENDIF |
---|
| 1324 | |
---|
| 1325 | ! ---------------------------------------------------------------------- |
---|
| 1326 | ! NOW DECIDE MAJOR PATHWAY BRANCH TO TAKE DEPENDING ON WHETHER SNOWPACK |
---|
| 1327 | ! EXISTS OR NOT: |
---|
| 1328 | ! ---------------------------------------------------------------------- |
---|
| 1329 | ESNOW = 0.0 |
---|
| 1330 | IF (SNEQV .EQ. 0.0) THEN |
---|
| 1331 | CALL NOPAC (ETP,ETA,PRCP,SMC,SMCMAX,SMCWLT, & |
---|
| 1332 | & SMCREF,SMCDRY,CMC,CMCMAX,NSOIL,DT,SHDFAC, & |
---|
| 1333 | & SBETA,Q2,T1,SFCTMP,T24,TH2,FDOWN,F1,SSOIL, & |
---|
| 1334 | & STC,EPSCA,BEXP,PC,RCH,RR,CFACTR, & |
---|
| 1335 | & SH2O,SLOPE,KDT,FRZX,PSISAT,ZSOIL, & |
---|
| 1336 | & DKSAT,DWSAT,TBOT,ZBOT,RUNOFF1,RUNOFF2, & |
---|
| 1337 | & RUNOFF3,EDIR,EC,ET,ETT,NROOT,ICE,RTDIS, & |
---|
| 1338 | & QUARTZ,FXEXP,CSOIL, & |
---|
| 1339 | & BETA,DRIP,DEW,FLX1,FLX2,FLX3) |
---|
| 1340 | ELSE |
---|
| 1341 | CALL SNOPAC (ETP,ETA,PRCP,PRCP1,SNOWNG,SMC,SMCMAX,SMCWLT, & |
---|
| 1342 | & SMCREF,SMCDRY,CMC,CMCMAX,NSOIL,DT, & |
---|
| 1343 | & SBETA,DF1, & |
---|
| 1344 | & Q2,T1,SFCTMP,T24,TH2,FDOWN,F1,SSOIL,STC,EPSCA, & |
---|
| 1345 | & SFCPRS,BEXP,PC,RCH,RR,CFACTR,SNCOVR,SNEQV,SNDENS, & |
---|
| 1346 | & SNOWH,SH2O,SLOPE,KDT,FRZX,PSISAT,SNUP, & |
---|
| 1347 | & ZSOIL,DWSAT,DKSAT,TBOT,ZBOT,SHDFAC,RUNOFF1, & |
---|
| 1348 | & RUNOFF2,RUNOFF3,EDIR,EC,ET,ETT,NROOT,SNOMLT, & |
---|
| 1349 | & ICE,RTDIS,QUARTZ,FXEXP,CSOIL, & |
---|
| 1350 | & BETA,DRIP,DEW,FLX1,FLX2,FLX3,ESNOW) |
---|
| 1351 | ! ESNOW = ETA |
---|
| 1352 | ENDIF |
---|
| 1353 | |
---|
| 1354 | ! ---------------------------------------------------------------------- |
---|
| 1355 | ! PREPARE SENSIBLE HEAT (H) FOR RETURN TO PARENT MODEL |
---|
| 1356 | ! ---------------------------------------------------------------------- |
---|
| 1357 | SHEAT = -(CH * CP * SFCPRS)/(R * T2V) * ( TH2 - T1 ) |
---|
| 1358 | |
---|
| 1359 | ! ---------------------------------------------------------------------- |
---|
| 1360 | ! CONVERT UNITS AND/OR SIGN OF TOTAL EVAP (ETA), POTENTIAL EVAP (ETP), |
---|
| 1361 | ! SUBSURFACE HEAT FLUX (S), AND RUNOFFS FOR WHAT PARENT MODEL EXPECTS |
---|
| 1362 | ! CONVERT ETA FROM KG M-2 S-1 TO W M-2 |
---|
| 1363 | ! ---------------------------------------------------------------------- |
---|
| 1364 | ! ETA = ETA*LVH2O |
---|
| 1365 | ! ETP = ETP*LVH2O |
---|
| 1366 | |
---|
| 1367 | ! ---------------------------------------------------------------------- |
---|
| 1368 | EDIR = EDIR * LVH2O |
---|
| 1369 | EC = EC * LVH2O |
---|
| 1370 | DO K=1,4 |
---|
| 1371 | ET(K) = ET(K) * LVH2O |
---|
| 1372 | ENDDO |
---|
| 1373 | ETT = ETT * LVH2O |
---|
| 1374 | ESNOW = ESNOW * LSUBS |
---|
| 1375 | ETP = ETP*((1.-SNCOVR)*LVH2O + SNCOVR*LSUBS) |
---|
| 1376 | IF (ETP .GT. 0.) THEN |
---|
| 1377 | ETA = EDIR + EC + ETT + ESNOW |
---|
| 1378 | ELSE |
---|
| 1379 | ETA = ETP |
---|
| 1380 | ENDIF |
---|
| 1381 | ! ---------------------------------------------------------------------- |
---|
| 1382 | ! DETERMINE BETA (RATIO OF ACTUAL TO POTENTIAL EVAP) |
---|
| 1383 | ! ---------------------------------------------------------------------- |
---|
| 1384 | IF (ETP == 0.0) THEN |
---|
| 1385 | BETA = 0.0 |
---|
| 1386 | ELSE |
---|
| 1387 | BETA = ETA/ETP |
---|
| 1388 | ENDIF |
---|
| 1389 | |
---|
| 1390 | ! ---------------------------------------------------------------------- |
---|
| 1391 | |
---|
| 1392 | ! ---------------------------------------------------------------------- |
---|
| 1393 | ! CONVERT THE SIGN OF SOIL HEAT FLUX SO THAT: |
---|
| 1394 | ! SSOIL>0: WARM THE SURFACE (NIGHT TIME) |
---|
| 1395 | ! SSOIL<0: COOL THE SURFACE (DAY TIME) |
---|
| 1396 | ! ---------------------------------------------------------------------- |
---|
| 1397 | SSOIL = -1.0*SSOIL |
---|
| 1398 | |
---|
| 1399 | ! ---------------------------------------------------------------------- |
---|
| 1400 | ! CONVERT RUNOFF3 (INTERNAL LAYER RUNOFF FROM SUPERSAT) FROM M TO M S-1 |
---|
| 1401 | ! AND ADD TO SUBSURFACE RUNOFF/DRAINAGE/BASEFLOW |
---|
| 1402 | ! ---------------------------------------------------------------------- |
---|
| 1403 | RUNOFF3 = RUNOFF3/DT |
---|
| 1404 | RUNOFF2 = RUNOFF2+RUNOFF3 |
---|
| 1405 | |
---|
| 1406 | ! ---------------------------------------------------------------------- |
---|
| 1407 | ! TOTAL COLUMN SOIL MOISTURE IN METERS (SOILM) AND ROOT-ZONE |
---|
| 1408 | ! SOIL MOISTURE AVAILABILITY (FRACTION) RELATIVE TO POROSITY/SATURATION |
---|
| 1409 | ! ---------------------------------------------------------------------- |
---|
| 1410 | SOILM = -1.0*SMC(1)*ZSOIL(1) |
---|
| 1411 | DO K = 2,NSOIL |
---|
| 1412 | SOILM = SOILM+SMC(K)*(ZSOIL(K-1)-ZSOIL(K)) |
---|
| 1413 | END DO |
---|
| 1414 | SOILWM = -1.0*(SMCMAX-SMCWLT)*ZSOIL(1) |
---|
| 1415 | SOILWW = -1.0*(SMC(1)-SMCWLT)*ZSOIL(1) |
---|
| 1416 | DO K = 2,NROOT |
---|
| 1417 | SOILWM = SOILWM+(SMCMAX-SMCWLT)*(ZSOIL(K-1)-ZSOIL(K)) |
---|
| 1418 | SOILWW = SOILWW+(SMC(K)-SMCWLT)*(ZSOIL(K-1)-ZSOIL(K)) |
---|
| 1419 | END DO |
---|
| 1420 | SOILW = SOILWW/SOILWM |
---|
| 1421 | |
---|
| 1422 | ! ---------------------------------------------------------------------- |
---|
| 1423 | ! END SUBROUTINE SFLX |
---|
| 1424 | ! ---------------------------------------------------------------------- |
---|
| 1425 | END SUBROUTINE SFLX |
---|
| 1426 | |
---|
| 1427 | SUBROUTINE ALCALC (ALB,SNOALB,SHDFAC,SHDMIN,SNCOVR,TSNOW,ALBEDO) |
---|
| 1428 | |
---|
| 1429 | IMPLICIT NONE |
---|
| 1430 | |
---|
| 1431 | ! ---------------------------------------------------------------------- |
---|
| 1432 | ! CALCULATE ALBEDO INCLUDING SNOW EFFECT (0 -> 1) |
---|
| 1433 | ! ALB SNOWFREE ALBEDO |
---|
| 1434 | ! SNOALB MAXIMUM (DEEP) SNOW ALBEDO |
---|
| 1435 | ! SHDFAC AREAL FRACTIONAL COVERAGE OF GREEN VEGETATION |
---|
| 1436 | ! SHDMIN MINIMUM AREAL FRACTIONAL COVERAGE OF GREEN VEGETATION |
---|
| 1437 | ! SNCOVR FRACTIONAL SNOW COVER |
---|
| 1438 | ! ALBEDO SURFACE ALBEDO INCLUDING SNOW EFFECT |
---|
| 1439 | ! TSNOW SNOW SURFACE TEMPERATURE (K) |
---|
| 1440 | ! ---------------------------------------------------------------------- |
---|
| 1441 | REAL ALB, SNOALB, SHDFAC, SHDMIN, SNCOVR, ALBEDO, TSNOW |
---|
| 1442 | |
---|
| 1443 | ! ---------------------------------------------------------------------- |
---|
| 1444 | ! SNOALB IS ARGUMENT REPRESENTING MAXIMUM ALBEDO OVER DEEP SNOW, |
---|
| 1445 | ! AS PASSED INTO SFLX, AND ADAPTED FROM THE SATELLITE-BASED MAXIMUM |
---|
| 1446 | ! SNOW ALBEDO FIELDS PROVIDED BY D. ROBINSON AND G. KUKLA |
---|
| 1447 | ! (1985, JCAM, VOL 24, 402-411) |
---|
| 1448 | ! ---------------------------------------------------------------------- |
---|
| 1449 | ! changed in version 2.6 on June 2nd 2003 |
---|
| 1450 | ! ALBEDO = ALB + (1.0-(SHDFAC-SHDMIN))*SNCOVR*(SNOALB-ALB) |
---|
| 1451 | ALBEDO = ALB + SNCOVR*(SNOALB-ALB) |
---|
| 1452 | IF (ALBEDO .GT. SNOALB) ALBEDO=SNOALB |
---|
| 1453 | |
---|
| 1454 | ! BASE FORMULATION (DICKINSON ET AL., 1986, COGLEY ET AL., 1990) |
---|
| 1455 | ! IF (TSNOW.LE.263.16) THEN |
---|
| 1456 | ! ALBEDO=SNOALB |
---|
| 1457 | ! ELSE |
---|
| 1458 | ! IF (TSNOW.LT.273.16) THEN |
---|
| 1459 | ! TM=0.1*(TSNOW-263.16) |
---|
| 1460 | ! ALBEDO=0.5*((0.9-0.2*(TM**3))+(0.8-0.16*(TM**3))) |
---|
| 1461 | ! ELSE |
---|
| 1462 | ! ALBEDO=0.67 |
---|
| 1463 | ! ENDIF |
---|
| 1464 | ! ENDIF |
---|
| 1465 | |
---|
| 1466 | ! ISBA FORMULATION (VERSEGHY, 1991; BAKER ET AL., 1990) |
---|
| 1467 | ! IF (TSNOW.LT.273.16) THEN |
---|
| 1468 | ! ALBEDO=SNOALB-0.008*DT/86400 |
---|
| 1469 | ! ELSE |
---|
| 1470 | ! ALBEDO=(SNOALB-0.5)*EXP(-0.24*DT/86400)+0.5 |
---|
| 1471 | ! ENDIF |
---|
| 1472 | |
---|
| 1473 | ! ---------------------------------------------------------------------- |
---|
| 1474 | ! END SUBROUTINE ALCALC |
---|
| 1475 | ! ---------------------------------------------------------------------- |
---|
| 1476 | END SUBROUTINE ALCALC |
---|
| 1477 | |
---|
| 1478 | SUBROUTINE CANRES (SOLAR,CH,SFCTMP,Q2,SFCPRS,SMC,ZSOIL,NSOIL, & |
---|
| 1479 | & SMCWLT,SMCREF,RSMIN,RC,PC,NROOT,Q2SAT,DQSDT2, & |
---|
| 1480 | & TOPT,RSMAX,RGL,HS,XLAI, & |
---|
| 1481 | & RCS,RCT,RCQ,RCSOIL) |
---|
| 1482 | |
---|
| 1483 | IMPLICIT NONE |
---|
| 1484 | |
---|
| 1485 | ! ---------------------------------------------------------------------- |
---|
| 1486 | ! SUBROUTINE CANRES |
---|
| 1487 | ! ---------------------------------------------------------------------- |
---|
| 1488 | ! CALCULATE CANOPY RESISTANCE WHICH DEPENDS ON INCOMING SOLAR RADIATION, |
---|
| 1489 | ! AIR TEMPERATURE, ATMOSPHERIC WATER VAPOR PRESSURE DEFICIT AT THE |
---|
| 1490 | ! LOWEST MODEL LEVEL, AND SOIL MOISTURE (PREFERABLY UNFROZEN SOIL |
---|
| 1491 | ! MOISTURE RATHER THAN TOTAL) |
---|
| 1492 | ! ---------------------------------------------------------------------- |
---|
| 1493 | ! SOURCE: JARVIS (1976), NOILHAN AND PLANTON (1989, MWR), JACQUEMIN AND |
---|
| 1494 | ! NOILHAN (1990, BLM) |
---|
| 1495 | ! SEE ALSO: CHEN ET AL (1996, JGR, VOL 101(D3), 7251-7268), EQNS 12-14 |
---|
| 1496 | ! AND TABLE 2 OF SEC. 3.1.2 |
---|
| 1497 | ! ---------------------------------------------------------------------- |
---|
| 1498 | ! INPUT: |
---|
| 1499 | ! SOLAR INCOMING SOLAR RADIATION |
---|
| 1500 | ! CH SURFACE EXCHANGE COEFFICIENT FOR HEAT AND MOISTURE |
---|
| 1501 | ! SFCTMP AIR TEMPERATURE AT 1ST LEVEL ABOVE GROUND |
---|
| 1502 | ! Q2 AIR HUMIDITY AT 1ST LEVEL ABOVE GROUND |
---|
| 1503 | ! Q2SAT SATURATION AIR HUMIDITY AT 1ST LEVEL ABOVE GROUND |
---|
| 1504 | ! DQSDT2 SLOPE OF SATURATION HUMIDITY FUNCTION WRT TEMP |
---|
| 1505 | ! SFCPRS SURFACE PRESSURE |
---|
| 1506 | ! SMC VOLUMETRIC SOIL MOISTURE |
---|
| 1507 | ! ZSOIL SOIL DEPTH (NEGATIVE SIGN, AS IT IS BELOW GROUND) |
---|
| 1508 | ! NSOIL NO. OF SOIL LAYERS |
---|
| 1509 | ! NROOT NO. OF SOIL LAYERS IN ROOT ZONE (1.LE.NROOT.LE.NSOIL) |
---|
| 1510 | ! XLAI LEAF AREA INDEX |
---|
| 1511 | ! SMCWLT WILTING POINT |
---|
| 1512 | ! SMCREF REFERENCE SOIL MOISTURE (WHERE SOIL WATER DEFICIT STRESS |
---|
| 1513 | ! SETS IN) |
---|
| 1514 | ! RSMIN, RSMAX, TOPT, RGL, HS ARE CANOPY STRESS PARAMETERS SET IN |
---|
| 1515 | ! SURBOUTINE REDPRM |
---|
| 1516 | ! OUTPUT: |
---|
| 1517 | ! PC PLANT COEFFICIENT |
---|
| 1518 | ! RC CANOPY RESISTANCE |
---|
| 1519 | ! ---------------------------------------------------------------------- |
---|
| 1520 | INTEGER NSOLD |
---|
| 1521 | PARAMETER(NSOLD = 20) |
---|
| 1522 | |
---|
| 1523 | INTEGER K |
---|
| 1524 | INTEGER NROOT |
---|
| 1525 | INTEGER NSOIL |
---|
| 1526 | |
---|
| 1527 | REAL CH |
---|
| 1528 | REAL CP |
---|
| 1529 | REAL DELTA |
---|
| 1530 | REAL DQSDT2 |
---|
| 1531 | REAL FF |
---|
| 1532 | REAL GX |
---|
| 1533 | REAL HS |
---|
| 1534 | REAL P |
---|
| 1535 | REAL PART(NSOLD) |
---|
| 1536 | REAL PC |
---|
| 1537 | REAL Q2 |
---|
| 1538 | REAL Q2SAT |
---|
| 1539 | REAL RC |
---|
| 1540 | REAL RSMIN |
---|
| 1541 | REAL RCQ |
---|
| 1542 | REAL RCS |
---|
| 1543 | REAL RCSOIL |
---|
| 1544 | REAL RCT |
---|
| 1545 | REAL RD |
---|
| 1546 | REAL RGL |
---|
| 1547 | REAL RR |
---|
| 1548 | REAL RSMAX |
---|
| 1549 | REAL SFCPRS |
---|
| 1550 | REAL SFCTMP |
---|
| 1551 | REAL SIGMA |
---|
| 1552 | REAL SLV |
---|
| 1553 | REAL SMC(NSOIL) |
---|
| 1554 | REAL SMCREF |
---|
| 1555 | REAL SMCWLT |
---|
| 1556 | REAL SOLAR |
---|
| 1557 | REAL TOPT |
---|
| 1558 | REAL SLVCP |
---|
| 1559 | REAL ST1 |
---|
| 1560 | REAL TAIR4 |
---|
| 1561 | REAL XLAI |
---|
| 1562 | REAL ZSOIL(NSOIL) |
---|
| 1563 | |
---|
| 1564 | PARAMETER(CP = 1004.5) |
---|
| 1565 | PARAMETER(RD = 287.04) |
---|
| 1566 | PARAMETER(SIGMA = 5.67E-8) |
---|
| 1567 | PARAMETER(SLV = 2.501000E6) |
---|
| 1568 | |
---|
| 1569 | ! ---------------------------------------------------------------------- |
---|
| 1570 | ! INITIALIZE CANOPY RESISTANCE MULTIPLIER TERMS. |
---|
| 1571 | ! ---------------------------------------------------------------------- |
---|
| 1572 | RCS = 0.0 |
---|
| 1573 | RCT = 0.0 |
---|
| 1574 | RCQ = 0.0 |
---|
| 1575 | RCSOIL = 0.0 |
---|
| 1576 | RC = 0.0 |
---|
| 1577 | |
---|
| 1578 | ! ---------------------------------------------------------------------- |
---|
| 1579 | ! CONTRIBUTION DUE TO INCOMING SOLAR RADIATION |
---|
| 1580 | ! ---------------------------------------------------------------------- |
---|
| 1581 | FF = 0.55*2.0*SOLAR/(RGL*XLAI) |
---|
| 1582 | RCS = (FF + RSMIN/RSMAX) / (1.0 + FF) |
---|
| 1583 | RCS = MAX(RCS,0.0001) |
---|
| 1584 | |
---|
| 1585 | ! ---------------------------------------------------------------------- |
---|
| 1586 | ! CONTRIBUTION DUE TO AIR TEMPERATURE AT FIRST MODEL LEVEL ABOVE GROUND |
---|
| 1587 | ! RCT EXPRESSION FROM NOILHAN AND PLANTON (1989, MWR). |
---|
| 1588 | ! ---------------------------------------------------------------------- |
---|
| 1589 | RCT = 1.0 - 0.0016*((TOPT-SFCTMP)**2.0) |
---|
| 1590 | RCT = MAX(RCT,0.0001) |
---|
| 1591 | |
---|
| 1592 | ! ---------------------------------------------------------------------- |
---|
| 1593 | ! CONTRIBUTION DUE TO VAPOR PRESSURE DEFICIT AT FIRST MODEL LEVEL. |
---|
| 1594 | ! RCQ EXPRESSION FROM SSIB |
---|
| 1595 | ! ---------------------------------------------------------------------- |
---|
| 1596 | RCQ = 1.0/(1.0+HS*(Q2SAT-Q2)) |
---|
| 1597 | RCQ = MAX(RCQ,0.01) |
---|
| 1598 | |
---|
| 1599 | ! ---------------------------------------------------------------------- |
---|
| 1600 | ! CONTRIBUTION DUE TO SOIL MOISTURE AVAILABILITY. |
---|
| 1601 | ! DETERMINE CONTRIBUTION FROM EACH SOIL LAYER, THEN ADD THEM UP. |
---|
| 1602 | ! ---------------------------------------------------------------------- |
---|
| 1603 | GX = (SMC(1) - SMCWLT) / (SMCREF - SMCWLT) |
---|
| 1604 | IF (GX .GT. 1.) GX = 1. |
---|
| 1605 | IF (GX .LT. 0.) GX = 0. |
---|
| 1606 | |
---|
| 1607 | ! ---------------------------------------------------------------------- |
---|
| 1608 | ! USE SOIL DEPTH AS WEIGHTING FACTOR |
---|
| 1609 | ! ---------------------------------------------------------------------- |
---|
| 1610 | PART(1) = (ZSOIL(1)/ZSOIL(NROOT)) * GX |
---|
| 1611 | ! ---------------------------------------------------------------------- |
---|
| 1612 | ! USE ROOT DISTRIBUTION AS WEIGHTING FACTOR |
---|
| 1613 | ! PART(1) = RTDIS(1) * GX |
---|
| 1614 | ! ---------------------------------------------------------------------- |
---|
| 1615 | IF (NROOT .GT. 1) THEN |
---|
| 1616 | DO K = 2,NROOT |
---|
| 1617 | GX = (SMC(K) - SMCWLT) / (SMCREF - SMCWLT) |
---|
| 1618 | IF (GX .GT. 1.) GX = 1. |
---|
| 1619 | IF (GX .LT. 0.) GX = 0. |
---|
| 1620 | ! ---------------------------------------------------------------------- |
---|
| 1621 | ! USE SOIL DEPTH AS WEIGHTING FACTOR |
---|
| 1622 | ! ---------------------------------------------------------------------- |
---|
| 1623 | PART(K) = ((ZSOIL(K)-ZSOIL(K-1))/ZSOIL(NROOT)) * GX |
---|
| 1624 | ! ---------------------------------------------------------------------- |
---|
| 1625 | ! USE ROOT DISTRIBUTION AS WEIGHTING FACTOR |
---|
| 1626 | ! PART(K) = RTDIS(K) * GX |
---|
| 1627 | ! ---------------------------------------------------------------------- |
---|
| 1628 | END DO |
---|
| 1629 | ENDIF |
---|
| 1630 | |
---|
| 1631 | DO K = 1,NROOT |
---|
| 1632 | RCSOIL = RCSOIL+PART(K) |
---|
| 1633 | END DO |
---|
| 1634 | RCSOIL = MAX(RCSOIL,0.0001) |
---|
| 1635 | |
---|
| 1636 | ! ---------------------------------------------------------------------- |
---|
| 1637 | ! DETERMINE CANOPY RESISTANCE DUE TO ALL FACTORS. CONVERT CANOPY |
---|
| 1638 | ! RESISTANCE (RC) TO PLANT COEFFICIENT (PC) TO BE USED WITH POTENTIAL |
---|
| 1639 | ! EVAP IN DETERMINING ACTUAL EVAP. PC IS DETERMINED BY: |
---|
| 1640 | ! PC * LINERIZED PENMAN POTENTIAL EVAP = |
---|
| 1641 | ! PENMAN-MONTEITH ACTUAL EVAPORATION (CONTAINING RC TERM). |
---|
| 1642 | ! ---------------------------------------------------------------------- |
---|
| 1643 | RC = RSMIN/(XLAI*RCS*RCT*RCQ*RCSOIL) |
---|
| 1644 | |
---|
| 1645 | ! TAIR4 = SFCTMP**4. |
---|
| 1646 | ! ST1 = (4.*SIGMA*RD)/CP |
---|
| 1647 | ! SLVCP = SLV/CP |
---|
| 1648 | ! RR = ST1*TAIR4/(SFCPRS*CH) + 1.0 |
---|
| 1649 | RR = (4.*SIGMA*RD/CP)*(SFCTMP**4.)/(SFCPRS*CH) + 1.0 |
---|
| 1650 | DELTA = (SLV/CP)*DQSDT2 |
---|
| 1651 | |
---|
| 1652 | PC = (RR+DELTA)/(RR*(1.+RC*CH)+DELTA) |
---|
| 1653 | |
---|
| 1654 | ! ---------------------------------------------------------------------- |
---|
| 1655 | ! END SUBROUTINE CANRES |
---|
| 1656 | ! ---------------------------------------------------------------------- |
---|
| 1657 | END SUBROUTINE CANRES |
---|
| 1658 | |
---|
| 1659 | SUBROUTINE DEVAP (EDIR1,ETP1,SMC,ZSOIL,SHDFAC,SMCMAX,BEXP, & |
---|
| 1660 | & DKSAT,DWSAT,SMCDRY,SMCREF,SMCWLT,FXEXP) |
---|
| 1661 | |
---|
| 1662 | IMPLICIT NONE |
---|
| 1663 | |
---|
| 1664 | ! ---------------------------------------------------------------------- |
---|
| 1665 | ! SUBROUTINE DEVAP |
---|
| 1666 | ! ---------------------------------------------------------------------- |
---|
| 1667 | ! CALCULATE DIRECT SOIL EVAPORATION |
---|
| 1668 | ! ---------------------------------------------------------------------- |
---|
| 1669 | REAL BEXP |
---|
| 1670 | ! REAL DEVAP |
---|
| 1671 | REAL EDIR1 |
---|
| 1672 | REAL DKSAT |
---|
| 1673 | REAL DWSAT |
---|
| 1674 | REAL ETP1 |
---|
| 1675 | REAL FX |
---|
| 1676 | REAL FXEXP |
---|
| 1677 | REAL SHDFAC |
---|
| 1678 | REAL SMC |
---|
| 1679 | REAL SMCDRY |
---|
| 1680 | REAL SMCMAX |
---|
| 1681 | REAL ZSOIL |
---|
| 1682 | REAL SMCREF |
---|
| 1683 | REAL SMCWLT |
---|
| 1684 | REAL SRATIO |
---|
| 1685 | |
---|
| 1686 | ! ---------------------------------------------------------------------- |
---|
| 1687 | ! DIRECT EVAP A FUNCTION OF RELATIVE SOIL MOISTURE AVAILABILITY, LINEAR |
---|
| 1688 | ! WHEN FXEXP=1. |
---|
| 1689 | ! FX > 1 REPRESENTS DEMAND CONTROL |
---|
| 1690 | ! FX < 1 REPRESENTS FLUX CONTROL |
---|
| 1691 | ! ---------------------------------------------------------------------- |
---|
| 1692 | SRATIO = (SMC - SMCDRY) / (SMCMAX - SMCDRY) |
---|
| 1693 | IF (SRATIO .GT. 0.) THEN |
---|
| 1694 | FX = SRATIO**FXEXP |
---|
| 1695 | FX = MAX ( MIN ( FX, 1. ) ,0. ) |
---|
| 1696 | ELSE |
---|
| 1697 | FX = 0. |
---|
| 1698 | ENDIF |
---|
| 1699 | |
---|
| 1700 | ! ---------------------------------------------------------------------- |
---|
| 1701 | ! ALLOW FOR THE DIRECT-EVAP-REDUCING EFFECT OF SHADE |
---|
| 1702 | ! ---------------------------------------------------------------------- |
---|
| 1703 | ! DEVAP = FX * ( 1.0 - SHDFAC ) * ETP1 |
---|
| 1704 | EDIR1 = FX * ( 1.0 - SHDFAC ) * ETP1 |
---|
| 1705 | |
---|
| 1706 | ! ---------------------------------------------------------------------- |
---|
| 1707 | ! END SUBROUTINE DEVAP |
---|
| 1708 | ! ---------------------------------------------------------------------- |
---|
| 1709 | END SUBROUTINE DEVAP |
---|
| 1710 | |
---|
| 1711 | SUBROUTINE EVAPO (ETA1,SMC,NSOIL,CMC,ETP1,DT,ZSOIL, & |
---|
| 1712 | & SH2O, & |
---|
| 1713 | & SMCMAX,BEXP,PC,SMCWLT,DKSAT,DWSAT, & |
---|
| 1714 | & SMCREF,SHDFAC,CMCMAX, & |
---|
| 1715 | & SMCDRY,CFACTR, & |
---|
| 1716 | & EDIR1,EC1,ET1,ETT1,SFCTMP,Q2,NROOT,RTDIS,FXEXP) |
---|
| 1717 | |
---|
| 1718 | IMPLICIT NONE |
---|
| 1719 | |
---|
| 1720 | ! ---------------------------------------------------------------------- |
---|
| 1721 | ! SUBROUTINE EVAPO |
---|
| 1722 | ! ---------------------------------------------------------------------- |
---|
| 1723 | ! CALCULATE SOIL MOISTURE FLUX. THE SOIL MOISTURE CONTENT (SMC - A PER |
---|
| 1724 | ! UNIT VOLUME MEASUREMENT) IS A DEPENDENT VARIABLE THAT IS UPDATED WITH |
---|
| 1725 | ! PROGNOSTIC EQNS. THE CANOPY MOISTURE CONTENT (CMC) IS ALSO UPDATED. |
---|
| 1726 | ! FROZEN GROUND VERSION: NEW STATES ADDED: SH2O, AND FROZEN GROUND |
---|
| 1727 | ! CORRECTION FACTOR, FRZFACT AND PARAMETER SLOPE. |
---|
| 1728 | ! ---------------------------------------------------------------------- |
---|
| 1729 | INTEGER NSOLD |
---|
| 1730 | PARAMETER(NSOLD = 20) |
---|
| 1731 | |
---|
| 1732 | INTEGER I |
---|
| 1733 | INTEGER K |
---|
| 1734 | INTEGER NSOIL |
---|
| 1735 | INTEGER NROOT |
---|
| 1736 | |
---|
| 1737 | REAL BEXP |
---|
| 1738 | REAL CFACTR |
---|
| 1739 | REAL CMC |
---|
| 1740 | REAL CMC2MS |
---|
| 1741 | REAL CMCMAX |
---|
| 1742 | ! REAL DEVAP |
---|
| 1743 | REAL DKSAT |
---|
| 1744 | REAL DT |
---|
| 1745 | REAL DWSAT |
---|
| 1746 | REAL EC1 |
---|
| 1747 | REAL EDIR1 |
---|
| 1748 | REAL ET1(NSOIL) |
---|
| 1749 | REAL ETA1 |
---|
| 1750 | REAL ETP1 |
---|
| 1751 | REAL ETT1 |
---|
| 1752 | REAL FXEXP |
---|
| 1753 | REAL PC |
---|
| 1754 | REAL Q2 |
---|
| 1755 | REAL RTDIS(NSOIL) |
---|
| 1756 | REAL SFCTMP |
---|
| 1757 | REAL SHDFAC |
---|
| 1758 | REAL SMC(NSOIL) |
---|
| 1759 | REAL SH2O(NSOIL) |
---|
| 1760 | REAL SMCDRY |
---|
| 1761 | REAL SMCMAX |
---|
| 1762 | REAL SMCREF |
---|
| 1763 | REAL SMCWLT |
---|
| 1764 | REAL ZSOIL(NSOIL) |
---|
| 1765 | |
---|
| 1766 | ! ---------------------------------------------------------------------- |
---|
| 1767 | ! EXECUTABLE CODE BEGINS HERE IF THE POTENTIAL EVAPOTRANSPIRATION IS |
---|
| 1768 | ! GREATER THAN ZERO. |
---|
| 1769 | ! ---------------------------------------------------------------------- |
---|
| 1770 | EDIR1 = 0. |
---|
| 1771 | EC1 = 0. |
---|
| 1772 | DO K = 1,NSOIL |
---|
| 1773 | ET1(K) = 0. |
---|
| 1774 | END DO |
---|
| 1775 | ETT1 = 0. |
---|
| 1776 | |
---|
| 1777 | IF (ETP1 .GT. 0.0) THEN |
---|
| 1778 | |
---|
| 1779 | ! ---------------------------------------------------------------------- |
---|
| 1780 | ! RETRIEVE DIRECT EVAPORATION FROM SOIL SURFACE. CALL THIS FUNCTION |
---|
| 1781 | ! ONLY IF VEG COVER NOT COMPLETE. |
---|
| 1782 | ! FROZEN GROUND VERSION: SH2O STATES REPLACE SMC STATES. |
---|
| 1783 | ! ---------------------------------------------------------------------- |
---|
| 1784 | IF (SHDFAC .LT. 1.) THEN |
---|
| 1785 | CALL DEVAP (EDIR1,ETP1,SH2O(1),ZSOIL(1),SHDFAC,SMCMAX, & |
---|
| 1786 | ! EDIR = DEVAP(ETP1,SH2O(1),ZSOIL(1),SHDFAC,SMCMAX, & |
---|
| 1787 | & BEXP,DKSAT,DWSAT,SMCDRY,SMCREF,SMCWLT,FXEXP) |
---|
| 1788 | ENDIF |
---|
| 1789 | |
---|
| 1790 | ! ---------------------------------------------------------------------- |
---|
| 1791 | ! INITIALIZE PLANT TOTAL TRANSPIRATION, RETRIEVE PLANT TRANSPIRATION, |
---|
| 1792 | ! AND ACCUMULATE IT FOR ALL SOIL LAYERS. |
---|
| 1793 | ! ---------------------------------------------------------------------- |
---|
| 1794 | IF (SHDFAC.GT.0.0) THEN |
---|
| 1795 | |
---|
| 1796 | CALL TRANSP (ET1,NSOIL,ETP1,SH2O,CMC,ZSOIL,SHDFAC,SMCWLT, & |
---|
| 1797 | & CMCMAX,PC,CFACTR,SMCREF,SFCTMP,Q2,NROOT,RTDIS) |
---|
| 1798 | |
---|
| 1799 | DO K = 1,NSOIL |
---|
| 1800 | ETT1 = ETT1 + ET1(K) |
---|
| 1801 | END DO |
---|
| 1802 | |
---|
| 1803 | ! ---------------------------------------------------------------------- |
---|
| 1804 | ! CALCULATE CANOPY EVAPORATION. |
---|
| 1805 | ! IF STATEMENTS TO AVOID TANGENT LINEAR PROBLEMS NEAR CMC=0.0. |
---|
| 1806 | ! ---------------------------------------------------------------------- |
---|
| 1807 | IF (CMC .GT. 0.0) THEN |
---|
| 1808 | EC1 = SHDFAC * ( ( CMC / CMCMAX ) ** CFACTR ) * ETP1 |
---|
| 1809 | ELSE |
---|
| 1810 | EC1 = 0.0 |
---|
| 1811 | ENDIF |
---|
| 1812 | |
---|
| 1813 | ! ---------------------------------------------------------------------- |
---|
| 1814 | ! EC SHOULD BE LIMITED BY THE TOTAL AMOUNT OF AVAILABLE WATER ON THE |
---|
| 1815 | ! CANOPY. -F.CHEN, 18-OCT-1994 |
---|
| 1816 | ! ---------------------------------------------------------------------- |
---|
| 1817 | CMC2MS = CMC / DT |
---|
| 1818 | EC1 = MIN ( CMC2MS, EC1 ) |
---|
| 1819 | ENDIF |
---|
| 1820 | ENDIF |
---|
| 1821 | |
---|
| 1822 | ! ---------------------------------------------------------------------- |
---|
| 1823 | ! TOTAL UP EVAP AND TRANSP TYPES TO OBTAIN ACTUAL EVAPOTRANSP |
---|
| 1824 | ! ---------------------------------------------------------------------- |
---|
| 1825 | ETA1 = EDIR1 + ETT1 + EC1 |
---|
| 1826 | |
---|
| 1827 | ! ---------------------------------------------------------------------- |
---|
| 1828 | ! END SUBROUTINE EVAPO |
---|
| 1829 | ! ---------------------------------------------------------------------- |
---|
| 1830 | END SUBROUTINE EVAPO |
---|
| 1831 | |
---|
| 1832 | SUBROUTINE HRT (RHSTS,STC,SMC,SMCMAX,NSOIL,ZSOIL,YY,ZZ1, & |
---|
| 1833 | & TBOT,ZBOT,PSISAT,SH2O,DT,BEXP, & |
---|
| 1834 | & F1,DF1,QUARTZ,CSOIL,AI,BI,CI) |
---|
| 1835 | |
---|
| 1836 | IMPLICIT NONE |
---|
| 1837 | |
---|
| 1838 | ! ---------------------------------------------------------------------- |
---|
| 1839 | ! SUBROUTINE HRT |
---|
| 1840 | ! ---------------------------------------------------------------------- |
---|
| 1841 | ! CALCULATE THE RIGHT HAND SIDE OF THE TIME TENDENCY TERM OF THE SOIL |
---|
| 1842 | ! THERMAL DIFFUSION EQUATION. ALSO TO COMPUTE ( PREPARE ) THE MATRIX |
---|
| 1843 | ! COEFFICIENTS FOR THE TRI-DIAGONAL MATRIX OF THE IMPLICIT TIME SCHEME. |
---|
| 1844 | ! ---------------------------------------------------------------------- |
---|
| 1845 | INTEGER NSOLD |
---|
| 1846 | PARAMETER(NSOLD = 20) |
---|
| 1847 | |
---|
| 1848 | LOGICAL ITAVG |
---|
| 1849 | |
---|
| 1850 | INTEGER I |
---|
| 1851 | INTEGER K |
---|
| 1852 | INTEGER NSOIL |
---|
| 1853 | |
---|
| 1854 | ! ---------------------------------------------------------------------- |
---|
| 1855 | ! DECLARE WORK ARRAYS NEEDED IN TRI-DIAGONAL IMPLICIT SOLVER |
---|
| 1856 | ! ---------------------------------------------------------------------- |
---|
| 1857 | REAL AI(NSOLD) |
---|
| 1858 | REAL BI(NSOLD) |
---|
| 1859 | REAL CI(NSOLD) |
---|
| 1860 | |
---|
| 1861 | ! ---------------------------------------------------------------------- |
---|
| 1862 | ! DECLARATIONS |
---|
| 1863 | ! ---------------------------------------------------------------------- |
---|
| 1864 | REAL BEXP |
---|
| 1865 | REAL CAIR |
---|
| 1866 | REAL CH2O |
---|
| 1867 | REAL CICE |
---|
| 1868 | REAL CSOIL |
---|
| 1869 | REAL DDZ |
---|
| 1870 | REAL DDZ2 |
---|
| 1871 | REAL DENOM |
---|
| 1872 | REAL DF1 |
---|
| 1873 | REAL DF1N |
---|
| 1874 | REAL DF1K |
---|
| 1875 | REAL DT |
---|
| 1876 | REAL DTSDZ |
---|
| 1877 | REAL DTSDZ2 |
---|
| 1878 | REAL F1 |
---|
| 1879 | REAL HCPCT |
---|
| 1880 | REAL PSISAT |
---|
| 1881 | REAL QUARTZ |
---|
| 1882 | REAL QTOT |
---|
| 1883 | REAL RHSTS(NSOIL) |
---|
| 1884 | REAL SSOIL |
---|
| 1885 | REAL SICE |
---|
| 1886 | REAL SMC(NSOIL) |
---|
| 1887 | REAL SH2O(NSOIL) |
---|
| 1888 | REAL SMCMAX |
---|
| 1889 | ! REAL SNKSRC |
---|
| 1890 | REAL STC(NSOIL) |
---|
| 1891 | REAL T0 |
---|
| 1892 | REAL TAVG |
---|
| 1893 | REAL TBK |
---|
| 1894 | REAL TBK1 |
---|
| 1895 | REAL TBOT |
---|
| 1896 | REAL ZBOT |
---|
| 1897 | REAL TSNSR |
---|
| 1898 | REAL TSURF |
---|
| 1899 | REAL YY |
---|
| 1900 | REAL ZSOIL(NSOIL) |
---|
| 1901 | REAL ZZ1 |
---|
| 1902 | |
---|
| 1903 | PARAMETER(T0 = 273.15) |
---|
| 1904 | |
---|
| 1905 | ! ---------------------------------------------------------------------- |
---|
| 1906 | ! SET SPECIFIC HEAT CAPACITIES OF AIR, WATER, ICE, SOIL MINERAL |
---|
| 1907 | ! ---------------------------------------------------------------------- |
---|
| 1908 | PARAMETER(CAIR = 1004.0) |
---|
| 1909 | PARAMETER(CH2O = 4.2E6) |
---|
| 1910 | PARAMETER(CICE = 2.106E6) |
---|
| 1911 | ! NOTE: CSOIL NOW SET IN ROUTINE REDPRM AND PASSED IN |
---|
| 1912 | ! PARAMETER(CSOIL = 1.26E6) |
---|
| 1913 | |
---|
| 1914 | ! ---------------------------------------------------------------------- |
---|
| 1915 | ! INITIALIZE LOGICAL FOR SOIL LAYER TEMPERATURE AVERAGING. |
---|
| 1916 | ! ---------------------------------------------------------------------- |
---|
| 1917 | ITAVG = .TRUE. |
---|
| 1918 | ! ITAVG = .FALSE. |
---|
| 1919 | |
---|
| 1920 | ! ---------------------------------------------------------------------- |
---|
| 1921 | ! BEGIN SECTION FOR TOP SOIL LAYER |
---|
| 1922 | ! ---------------------------------------------------------------------- |
---|
| 1923 | ! CALC THE HEAT CAPACITY OF THE TOP SOIL LAYER |
---|
| 1924 | ! ---------------------------------------------------------------------- |
---|
| 1925 | HCPCT = SH2O(1)*CH2O + (1.0-SMCMAX)*CSOIL + (SMCMAX-SMC(1))*CAIR & |
---|
| 1926 | & + ( SMC(1) - SH2O(1) )*CICE |
---|
| 1927 | |
---|
| 1928 | ! ---------------------------------------------------------------------- |
---|
| 1929 | ! CALC THE MATRIX COEFFICIENTS AI, BI, AND CI FOR THE TOP LAYER |
---|
| 1930 | ! ---------------------------------------------------------------------- |
---|
| 1931 | DDZ = 1.0 / ( -0.5 * ZSOIL(2) ) |
---|
| 1932 | AI(1) = 0.0 |
---|
| 1933 | CI(1) = (DF1 * DDZ) / (ZSOIL(1) * HCPCT) |
---|
| 1934 | BI(1) = -CI(1) + DF1 / (0.5 * ZSOIL(1) * ZSOIL(1)*HCPCT*ZZ1) |
---|
| 1935 | |
---|
| 1936 | ! ---------------------------------------------------------------------- |
---|
| 1937 | ! CALCULATE THE VERTICAL SOIL TEMP GRADIENT BTWN THE 1ST AND 2ND SOIL |
---|
| 1938 | ! LAYERS. THEN CALCULATE THE SUBSURFACE HEAT FLUX. USE THE TEMP |
---|
| 1939 | ! GRADIENT AND SUBSFC HEAT FLUX TO CALC "RIGHT-HAND SIDE TENDENCY |
---|
| 1940 | ! TERMS", OR "RHSTS", FOR TOP SOIL LAYER. |
---|
| 1941 | ! ---------------------------------------------------------------------- |
---|
| 1942 | DTSDZ = (STC(1) - STC(2)) / (-0.5 * ZSOIL(2)) |
---|
| 1943 | SSOIL = DF1 * (STC(1) - YY) / (0.5 * ZSOIL(1) * ZZ1) |
---|
| 1944 | RHSTS(1) = (DF1 * DTSDZ - SSOIL) / (ZSOIL(1) * HCPCT) |
---|
| 1945 | |
---|
| 1946 | ! ---------------------------------------------------------------------- |
---|
| 1947 | ! NEXT CAPTURE THE VERTICAL DIFFERENCE OF THE HEAT FLUX AT TOP AND |
---|
| 1948 | ! BOTTOM OF FIRST SOIL LAYER FOR USE IN HEAT FLUX CONSTRAINT APPLIED TO |
---|
| 1949 | ! POTENTIAL SOIL FREEZING/THAWING IN ROUTINE SNKSRC. |
---|
| 1950 | ! ---------------------------------------------------------------------- |
---|
| 1951 | QTOT = SSOIL - DF1*DTSDZ |
---|
| 1952 | |
---|
| 1953 | ! ---------------------------------------------------------------------- |
---|
| 1954 | ! IF TEMPERATURE AVERAGING INVOKED (ITAVG=TRUE; ELSE SKIP): |
---|
| 1955 | ! SET TEMP "TSURF" AT TOP OF SOIL COLUMN (FOR USE IN FREEZING SOIL |
---|
| 1956 | ! PHYSICS LATER IN FUNCTION SUBROUTINE SNKSRC). IF SNOWPACK CONTENT IS |
---|
| 1957 | ! ZERO, THEN TSURF EXPRESSION BELOW GIVES TSURF = SKIN TEMP. IF |
---|
| 1958 | ! SNOWPACK IS NONZERO (HENCE ARGUMENT ZZ1=1), THEN TSURF EXPRESSION |
---|
| 1959 | ! BELOW YIELDS SOIL COLUMN TOP TEMPERATURE UNDER SNOWPACK. THEN |
---|
| 1960 | ! CALCULATE TEMPERATURE AT BOTTOM INTERFACE OF 1ST SOIL LAYER FOR USE |
---|
| 1961 | ! LATER IN FUNCTION SUBROUTINE SNKSRC |
---|
| 1962 | ! ---------------------------------------------------------------------- |
---|
| 1963 | IF (ITAVG) THEN |
---|
| 1964 | TSURF = (YY + (ZZ1-1) * STC(1)) / ZZ1 |
---|
| 1965 | CALL TBND (STC(1),STC(2),ZSOIL,ZBOT,1,NSOIL,TBK) |
---|
| 1966 | ENDIF |
---|
| 1967 | |
---|
| 1968 | ! ---------------------------------------------------------------------- |
---|
| 1969 | ! CALCULATE FROZEN WATER CONTENT IN 1ST SOIL LAYER. |
---|
| 1970 | ! ---------------------------------------------------------------------- |
---|
| 1971 | SICE = SMC(1) - SH2O(1) |
---|
| 1972 | |
---|
| 1973 | ! ---------------------------------------------------------------------- |
---|
| 1974 | ! IF FROZEN WATER PRESENT OR ANY OF LAYER-1 MID-POINT OR BOUNDING |
---|
| 1975 | ! INTERFACE TEMPERATURES BELOW FREEZING, THEN CALL SNKSRC TO |
---|
| 1976 | ! COMPUTE HEAT SOURCE/SINK (AND CHANGE IN FROZEN WATER CONTENT) |
---|
| 1977 | ! DUE TO POSSIBLE SOIL WATER PHASE CHANGE |
---|
| 1978 | ! ---------------------------------------------------------------------- |
---|
| 1979 | IF ( (SICE .GT. 0.) .OR. (TSURF .LT. T0) .OR. & |
---|
| 1980 | & (STC(1) .LT. T0) .OR. (TBK .LT. T0) ) THEN |
---|
| 1981 | |
---|
| 1982 | IF (ITAVG) THEN |
---|
| 1983 | CALL TMPAVG(TAVG,TSURF,STC(1),TBK,ZSOIL,NSOIL,1) |
---|
| 1984 | ELSE |
---|
| 1985 | TAVG = STC(1) |
---|
| 1986 | ENDIF |
---|
| 1987 | TSNSR = SNKSRC (TAVG,SMC(1),SH2O(1), & |
---|
| 1988 | & ZSOIL,NSOIL,SMCMAX,PSISAT,BEXP,DT,1,QTOT) |
---|
| 1989 | |
---|
| 1990 | RHSTS(1) = RHSTS(1) - TSNSR / ( ZSOIL(1) * HCPCT ) |
---|
| 1991 | ENDIF |
---|
| 1992 | |
---|
| 1993 | ! ---------------------------------------------------------------------- |
---|
| 1994 | ! THIS ENDS SECTION FOR TOP SOIL LAYER. |
---|
| 1995 | ! ---------------------------------------------------------------------- |
---|
| 1996 | ! INITIALIZE DDZ2 |
---|
| 1997 | ! ---------------------------------------------------------------------- |
---|
| 1998 | DDZ2 = 0.0 |
---|
| 1999 | |
---|
| 2000 | ! ---------------------------------------------------------------------- |
---|
| 2001 | ! LOOP THRU THE REMAINING SOIL LAYERS, REPEATING THE ABOVE PROCESS |
---|
| 2002 | ! (EXCEPT SUBSFC OR "GROUND" HEAT FLUX NOT REPEATED IN LOWER LAYERS) |
---|
| 2003 | ! ---------------------------------------------------------------------- |
---|
| 2004 | DF1K = DF1 |
---|
| 2005 | DO K = 2,NSOIL |
---|
| 2006 | |
---|
| 2007 | ! ---------------------------------------------------------------------- |
---|
| 2008 | ! CALCULATE HEAT CAPACITY FOR THIS SOIL LAYER. |
---|
| 2009 | ! ---------------------------------------------------------------------- |
---|
| 2010 | HCPCT = SH2O(K)*CH2O +(1.0-SMCMAX)*CSOIL +(SMCMAX-SMC(K))*CAIR & |
---|
| 2011 | & + ( SMC(K) - SH2O(K) )*CICE |
---|
| 2012 | |
---|
| 2013 | IF (K .NE. NSOIL) THEN |
---|
| 2014 | ! ---------------------------------------------------------------------- |
---|
| 2015 | ! THIS SECTION FOR LAYER 2 OR GREATER, BUT NOT LAST LAYER. |
---|
| 2016 | ! ---------------------------------------------------------------------- |
---|
| 2017 | ! CALCULATE THERMAL DIFFUSIVITY FOR THIS LAYER. |
---|
| 2018 | ! ---------------------------------------------------------------------- |
---|
| 2019 | CALL TDFCND (DF1N,SMC(K),QUARTZ,SMCMAX,SH2O(K)) |
---|
| 2020 | |
---|
| 2021 | ! ---------------------------------------------------------------------- |
---|
| 2022 | ! CALC THE VERTICAL SOIL TEMP GRADIENT THRU THIS LAYER |
---|
| 2023 | ! ---------------------------------------------------------------------- |
---|
| 2024 | DENOM = 0.5 * ( ZSOIL(K-1) - ZSOIL(K+1) ) |
---|
| 2025 | DTSDZ2 = ( STC(K) - STC(K+1) ) / DENOM |
---|
| 2026 | |
---|
| 2027 | ! ---------------------------------------------------------------------- |
---|
| 2028 | ! CALC THE MATRIX COEF, CI, AFTER CALC'NG ITS PARTIAL PRODUCT |
---|
| 2029 | ! ---------------------------------------------------------------------- |
---|
| 2030 | DDZ2 = 2. / (ZSOIL(K-1) - ZSOIL(K+1)) |
---|
| 2031 | CI(K) = -DF1N * DDZ2 / ((ZSOIL(K-1) - ZSOIL(K)) * HCPCT) |
---|
| 2032 | |
---|
| 2033 | ! ---------------------------------------------------------------------- |
---|
| 2034 | ! IF TEMPERATURE AVERAGING INVOKED (ITAVG=TRUE; ELSE SKIP): CALCULATE |
---|
| 2035 | ! TEMP AT BOTTOM OF LAYER. |
---|
| 2036 | ! ---------------------------------------------------------------------- |
---|
| 2037 | IF (ITAVG) THEN |
---|
| 2038 | CALL TBND (STC(K),STC(K+1),ZSOIL,ZBOT,K,NSOIL,TBK1) |
---|
| 2039 | ENDIF |
---|
| 2040 | ELSE |
---|
| 2041 | |
---|
| 2042 | ! ---------------------------------------------------------------------- |
---|
| 2043 | ! SPECIAL CASE OF BOTTOM SOIL LAYER: CALCULATE THERMAL DIFFUSIVITY FOR |
---|
| 2044 | ! BOTTOM LAYER. |
---|
| 2045 | ! ---------------------------------------------------------------------- |
---|
| 2046 | CALL TDFCND (DF1N,SMC(K),QUARTZ,SMCMAX,SH2O(K)) |
---|
| 2047 | |
---|
| 2048 | ! ---------------------------------------------------------------------- |
---|
| 2049 | ! CALC THE VERTICAL SOIL TEMP GRADIENT THRU BOTTOM LAYER. |
---|
| 2050 | ! ---------------------------------------------------------------------- |
---|
| 2051 | DENOM = .5 * (ZSOIL(K-1) + ZSOIL(K)) - ZBOT |
---|
| 2052 | DTSDZ2 = (STC(K)-TBOT) / DENOM |
---|
| 2053 | |
---|
| 2054 | ! ---------------------------------------------------------------------- |
---|
| 2055 | ! SET MATRIX COEF, CI TO ZERO IF BOTTOM LAYER. |
---|
| 2056 | ! ---------------------------------------------------------------------- |
---|
| 2057 | CI(K) = 0. |
---|
| 2058 | |
---|
| 2059 | ! ---------------------------------------------------------------------- |
---|
| 2060 | ! IF TEMPERATURE AVERAGING INVOKED (ITAVG=TRUE; ELSE SKIP): CALCULATE |
---|
| 2061 | ! TEMP AT BOTTOM OF LAST LAYER. |
---|
| 2062 | ! ---------------------------------------------------------------------- |
---|
| 2063 | IF (ITAVG) THEN |
---|
| 2064 | CALL TBND (STC(K),TBOT,ZSOIL,ZBOT,K,NSOIL,TBK1) |
---|
| 2065 | ENDIF |
---|
| 2066 | |
---|
| 2067 | ENDIF |
---|
| 2068 | ! ---------------------------------------------------------------------- |
---|
| 2069 | ! THIS ENDS SPECIAL LOOP FOR BOTTOM LAYER. |
---|
| 2070 | ! ---------------------------------------------------------------------- |
---|
| 2071 | ! CALCULATE RHSTS FOR THIS LAYER AFTER CALC'NG A PARTIAL PRODUCT. |
---|
| 2072 | ! ---------------------------------------------------------------------- |
---|
| 2073 | DENOM = ( ZSOIL(K) - ZSOIL(K-1) ) * HCPCT |
---|
| 2074 | RHSTS(K) = ( DF1N * DTSDZ2 - DF1K * DTSDZ ) / DENOM |
---|
| 2075 | QTOT = -1.0*DENOM*RHSTS(K) |
---|
| 2076 | SICE = SMC(K) - SH2O(K) |
---|
| 2077 | |
---|
| 2078 | IF ( (SICE .GT. 0.) .OR. (TBK .LT. T0) .OR. & |
---|
| 2079 | & (STC(K) .LT. T0) .OR. (TBK1 .LT. T0) ) THEN |
---|
| 2080 | |
---|
| 2081 | IF (ITAVG) THEN |
---|
| 2082 | CALL TMPAVG(TAVG,TBK,STC(K),TBK1,ZSOIL,NSOIL,K) |
---|
| 2083 | ELSE |
---|
| 2084 | TAVG = STC(K) |
---|
| 2085 | ENDIF |
---|
| 2086 | TSNSR = SNKSRC(TAVG,SMC(K),SH2O(K),ZSOIL,NSOIL, & |
---|
| 2087 | & SMCMAX,PSISAT,BEXP,DT,K,QTOT) |
---|
| 2088 | RHSTS(K) = RHSTS(K) - TSNSR / DENOM |
---|
| 2089 | ENDIF |
---|
| 2090 | |
---|
| 2091 | ! ---------------------------------------------------------------------- |
---|
| 2092 | ! CALC MATRIX COEFS, AI, AND BI FOR THIS LAYER. |
---|
| 2093 | ! ---------------------------------------------------------------------- |
---|
| 2094 | AI(K) = - DF1 * DDZ / ((ZSOIL(K-1) - ZSOIL(K)) * HCPCT) |
---|
| 2095 | BI(K) = -(AI(K) + CI(K)) |
---|
| 2096 | |
---|
| 2097 | ! ---------------------------------------------------------------------- |
---|
| 2098 | ! RESET VALUES OF DF1, DTSDZ, DDZ, AND TBK FOR LOOP TO NEXT SOIL LAYER. |
---|
| 2099 | ! ---------------------------------------------------------------------- |
---|
| 2100 | TBK = TBK1 |
---|
| 2101 | DF1K = DF1N |
---|
| 2102 | DTSDZ = DTSDZ2 |
---|
| 2103 | DDZ = DDZ2 |
---|
| 2104 | END DO |
---|
| 2105 | |
---|
| 2106 | ! ---------------------------------------------------------------------- |
---|
| 2107 | ! END SUBROUTINE HRT |
---|
| 2108 | ! ---------------------------------------------------------------------- |
---|
| 2109 | END SUBROUTINE HRT |
---|
| 2110 | |
---|
| 2111 | SUBROUTINE HRTICE (RHSTS,STC,NSOIL,ZSOIL,YY,ZZ1,DF1,AI,BI,CI) |
---|
| 2112 | |
---|
| 2113 | IMPLICIT NONE |
---|
| 2114 | |
---|
| 2115 | ! ---------------------------------------------------------------------- |
---|
| 2116 | ! SUBROUTINE HRTICE |
---|
| 2117 | ! ---------------------------------------------------------------------- |
---|
| 2118 | ! CALCULATE THE RIGHT HAND SIDE OF THE TIME TENDENCY TERM OF THE SOIL |
---|
| 2119 | ! THERMAL DIFFUSION EQUATION IN THE CASE OF SEA-ICE PACK. ALSO TO |
---|
| 2120 | ! COMPUTE (PREPARE) THE MATRIX COEFFICIENTS FOR THE TRI-DIAGONAL MATRIX |
---|
| 2121 | ! OF THE IMPLICIT TIME SCHEME. |
---|
| 2122 | ! ---------------------------------------------------------------------- |
---|
| 2123 | INTEGER NSOLD |
---|
| 2124 | PARAMETER(NSOLD = 20) |
---|
| 2125 | |
---|
| 2126 | INTEGER K |
---|
| 2127 | INTEGER NSOIL |
---|
| 2128 | |
---|
| 2129 | REAL AI(NSOLD) |
---|
| 2130 | REAL BI(NSOLD) |
---|
| 2131 | REAL CI(NSOLD) |
---|
| 2132 | |
---|
| 2133 | REAL DDZ |
---|
| 2134 | REAL DDZ2 |
---|
| 2135 | REAL DENOM |
---|
| 2136 | REAL DF1 |
---|
| 2137 | REAL DTSDZ |
---|
| 2138 | REAL DTSDZ2 |
---|
| 2139 | REAL HCPCT |
---|
| 2140 | REAL RHSTS(NSOIL) |
---|
| 2141 | REAL SSOIL |
---|
| 2142 | REAL STC(NSOIL) |
---|
| 2143 | REAL TBOT |
---|
| 2144 | REAL YY |
---|
| 2145 | REAL ZBOT |
---|
| 2146 | REAL ZSOIL(NSOIL) |
---|
| 2147 | REAL ZZ1 |
---|
| 2148 | |
---|
| 2149 | DATA TBOT /271.16/ |
---|
| 2150 | |
---|
| 2151 | ! ---------------------------------------------------------------------- |
---|
| 2152 | ! SET A NOMINAL UNIVERSAL VALUE OF THE SEA-ICE SPECIFIC HEAT CAPACITY, |
---|
| 2153 | ! HCPCT = 1880.0*917.0. |
---|
| 2154 | ! ---------------------------------------------------------------------- |
---|
| 2155 | PARAMETER(HCPCT = 1.72396E+6) |
---|
| 2156 | |
---|
| 2157 | ! ---------------------------------------------------------------------- |
---|
| 2158 | ! THE INPUT ARGUMENT DF1 IS A UNIVERSALLY CONSTANT VALUE OF SEA-ICE |
---|
| 2159 | ! THERMAL DIFFUSIVITY, SET IN ROUTINE SNOPAC AS DF1 = 2.2. |
---|
| 2160 | ! ---------------------------------------------------------------------- |
---|
| 2161 | ! SET ICE PACK DEPTH. USE TBOT AS ICE PACK LOWER BOUNDARY TEMPERATURE |
---|
| 2162 | ! (THAT OF UNFROZEN SEA WATER AT BOTTOM OF SEA ICE PACK). ASSUME ICE |
---|
| 2163 | ! PACK IS OF N=NSOIL LAYERS SPANNING A UNIFORM CONSTANT ICE PACK |
---|
| 2164 | ! THICKNESS AS DEFINED BY ZSOIL(NSOIL) IN ROUTINE SFLX. |
---|
| 2165 | ! ---------------------------------------------------------------------- |
---|
| 2166 | ZBOT = ZSOIL(NSOIL) |
---|
| 2167 | |
---|
| 2168 | ! ---------------------------------------------------------------------- |
---|
| 2169 | ! CALC THE MATRIX COEFFICIENTS AI, BI, AND CI FOR THE TOP LAYER |
---|
| 2170 | ! ---------------------------------------------------------------------- |
---|
| 2171 | DDZ = 1.0 / ( -0.5 * ZSOIL(2) ) |
---|
| 2172 | AI(1) = 0.0 |
---|
| 2173 | CI(1) = (DF1 * DDZ) / (ZSOIL(1) * HCPCT) |
---|
| 2174 | BI(1) = -CI(1) + DF1/(0.5 * ZSOIL(1) * ZSOIL(1) * HCPCT * ZZ1) |
---|
| 2175 | |
---|
| 2176 | ! ---------------------------------------------------------------------- |
---|
| 2177 | ! CALC THE VERTICAL SOIL TEMP GRADIENT BTWN THE TOP AND 2ND SOIL LAYERS. |
---|
| 2178 | ! RECALC/ADJUST THE SOIL HEAT FLUX. USE THE GRADIENT AND FLUX TO CALC |
---|
| 2179 | ! RHSTS FOR THE TOP SOIL LAYER. |
---|
| 2180 | ! ---------------------------------------------------------------------- |
---|
| 2181 | DTSDZ = ( STC(1) - STC(2) ) / ( -0.5 * ZSOIL(2) ) |
---|
| 2182 | SSOIL = DF1 * ( STC(1) - YY ) / ( 0.5 * ZSOIL(1) * ZZ1 ) |
---|
| 2183 | RHSTS(1) = ( DF1 * DTSDZ - SSOIL ) / ( ZSOIL(1) * HCPCT ) |
---|
| 2184 | |
---|
| 2185 | ! ---------------------------------------------------------------------- |
---|
| 2186 | ! INITIALIZE DDZ2 |
---|
| 2187 | ! ---------------------------------------------------------------------- |
---|
| 2188 | DDZ2 = 0.0 |
---|
| 2189 | |
---|
| 2190 | ! ---------------------------------------------------------------------- |
---|
| 2191 | ! LOOP THRU THE REMAINING SOIL LAYERS, REPEATING THE ABOVE PROCESS |
---|
| 2192 | ! ---------------------------------------------------------------------- |
---|
| 2193 | DO K = 2,NSOIL |
---|
| 2194 | IF (K .NE. NSOIL) THEN |
---|
| 2195 | |
---|
| 2196 | ! ---------------------------------------------------------------------- |
---|
| 2197 | ! CALC THE VERTICAL SOIL TEMP GRADIENT THRU THIS LAYER. |
---|
| 2198 | ! ---------------------------------------------------------------------- |
---|
| 2199 | DENOM = 0.5 * ( ZSOIL(K-1) - ZSOIL(K+1) ) |
---|
| 2200 | DTSDZ2 = ( STC(K) - STC(K+1) ) / DENOM |
---|
| 2201 | |
---|
| 2202 | ! ---------------------------------------------------------------------- |
---|
| 2203 | ! CALC THE MATRIX COEF, CI, AFTER CALC'NG ITS PARTIAL PRODUCT. |
---|
| 2204 | ! ---------------------------------------------------------------------- |
---|
| 2205 | DDZ2 = 2. / (ZSOIL(K-1) - ZSOIL(K+1)) |
---|
| 2206 | CI(K) = -DF1 * DDZ2 / ((ZSOIL(K-1) - ZSOIL(K)) * HCPCT) |
---|
| 2207 | ELSE |
---|
| 2208 | |
---|
| 2209 | ! ---------------------------------------------------------------------- |
---|
| 2210 | ! CALC THE VERTICAL SOIL TEMP GRADIENT THRU THE LOWEST LAYER. |
---|
| 2211 | ! ---------------------------------------------------------------------- |
---|
| 2212 | DTSDZ2 = (STC(K)-TBOT)/(.5 * (ZSOIL(K-1) + ZSOIL(K))-ZBOT) |
---|
| 2213 | |
---|
| 2214 | ! ---------------------------------------------------------------------- |
---|
| 2215 | ! SET MATRIX COEF, CI TO ZERO. |
---|
| 2216 | ! ---------------------------------------------------------------------- |
---|
| 2217 | CI(K) = 0. |
---|
| 2218 | ENDIF |
---|
| 2219 | |
---|
| 2220 | ! ---------------------------------------------------------------------- |
---|
| 2221 | ! CALC RHSTS FOR THIS LAYER AFTER CALC'NG A PARTIAL PRODUCT. |
---|
| 2222 | ! ---------------------------------------------------------------------- |
---|
| 2223 | DENOM = ( ZSOIL(K) - ZSOIL(K-1) ) * HCPCT |
---|
| 2224 | RHSTS(K) = ( DF1 * DTSDZ2 - DF1 * DTSDZ ) / DENOM |
---|
| 2225 | |
---|
| 2226 | ! ---------------------------------------------------------------------- |
---|
| 2227 | ! CALC MATRIX COEFS, AI, AND BI FOR THIS LAYER. |
---|
| 2228 | ! ---------------------------------------------------------------------- |
---|
| 2229 | AI(K) = - DF1 * DDZ / ((ZSOIL(K-1) - ZSOIL(K)) * HCPCT) |
---|
| 2230 | BI(K) = -(AI(K) + CI(K)) |
---|
| 2231 | |
---|
| 2232 | ! ---------------------------------------------------------------------- |
---|
| 2233 | ! RESET VALUES OF DTSDZ AND DDZ FOR LOOP TO NEXT SOIL LYR. |
---|
| 2234 | ! ---------------------------------------------------------------------- |
---|
| 2235 | DTSDZ = DTSDZ2 |
---|
| 2236 | DDZ = DDZ2 |
---|
| 2237 | |
---|
| 2238 | END DO |
---|
| 2239 | ! ---------------------------------------------------------------------- |
---|
| 2240 | ! END SUBROUTINE HRTICE |
---|
| 2241 | ! ---------------------------------------------------------------------- |
---|
| 2242 | END SUBROUTINE HRTICE |
---|
| 2243 | |
---|
| 2244 | SUBROUTINE HSTEP (STCOUT,STCIN,RHSTS,DT,NSOIL,AI,BI,CI) |
---|
| 2245 | |
---|
| 2246 | IMPLICIT NONE |
---|
| 2247 | |
---|
| 2248 | ! ---------------------------------------------------------------------- |
---|
| 2249 | ! SUBROUTINE HSTEP |
---|
| 2250 | ! ---------------------------------------------------------------------- |
---|
| 2251 | ! CALCULATE/UPDATE THE SOIL TEMPERATURE FIELD. |
---|
| 2252 | ! ---------------------------------------------------------------------- |
---|
| 2253 | INTEGER NSOLD |
---|
| 2254 | PARAMETER(NSOLD = 20) |
---|
| 2255 | |
---|
| 2256 | INTEGER K |
---|
| 2257 | INTEGER NSOIL |
---|
| 2258 | |
---|
| 2259 | REAL AI(NSOLD) |
---|
| 2260 | REAL BI(NSOLD) |
---|
| 2261 | REAL CI(NSOLD) |
---|
| 2262 | REAL CIin(NSOLD) |
---|
| 2263 | REAL DT |
---|
| 2264 | REAL RHSTS(NSOIL) |
---|
| 2265 | REAL RHSTSin(NSOIL) |
---|
| 2266 | REAL STCIN(NSOIL) |
---|
| 2267 | REAL STCOUT(NSOIL) |
---|
| 2268 | |
---|
| 2269 | ! ---------------------------------------------------------------------- |
---|
| 2270 | ! CREATE FINITE DIFFERENCE VALUES FOR USE IN ROSR12 ROUTINE |
---|
| 2271 | ! ---------------------------------------------------------------------- |
---|
| 2272 | DO K = 1,NSOIL |
---|
| 2273 | RHSTS(K) = RHSTS(K) * DT |
---|
| 2274 | AI(K) = AI(K) * DT |
---|
| 2275 | BI(K) = 1. + BI(K) * DT |
---|
| 2276 | CI(K) = CI(K) * DT |
---|
| 2277 | END DO |
---|
| 2278 | |
---|
| 2279 | ! ---------------------------------------------------------------------- |
---|
| 2280 | ! COPY VALUES FOR INPUT VARIABLES BEFORE CALL TO ROSR12 |
---|
| 2281 | ! ---------------------------------------------------------------------- |
---|
| 2282 | DO K = 1,NSOIL |
---|
| 2283 | RHSTSin(K) = RHSTS(K) |
---|
| 2284 | END DO |
---|
| 2285 | DO K = 1,NSOIL |
---|
| 2286 | CIin(K) = CI(K) |
---|
| 2287 | END DO |
---|
| 2288 | |
---|
| 2289 | ! ---------------------------------------------------------------------- |
---|
| 2290 | ! SOLVE THE TRI-DIAGONAL MATRIX EQUATION |
---|
| 2291 | ! ---------------------------------------------------------------------- |
---|
| 2292 | CALL ROSR12(CI,AI,BI,CIin,RHSTSin,RHSTS,NSOIL) |
---|
| 2293 | |
---|
| 2294 | ! ---------------------------------------------------------------------- |
---|
| 2295 | ! CALC/UPDATE THE SOIL TEMPS USING MATRIX SOLUTION |
---|
| 2296 | ! ---------------------------------------------------------------------- |
---|
| 2297 | DO K = 1,NSOIL |
---|
| 2298 | STCOUT(K) = STCIN(K) + CI(K) |
---|
| 2299 | END DO |
---|
| 2300 | |
---|
| 2301 | ! ---------------------------------------------------------------------- |
---|
| 2302 | ! END SUBROUTINE HSTEP |
---|
| 2303 | ! ---------------------------------------------------------------------- |
---|
| 2304 | END SUBROUTINE HSTEP |
---|
| 2305 | |
---|
| 2306 | SUBROUTINE NOPAC(ETP,ETA,PRCP,SMC,SMCMAX,SMCWLT, & |
---|
| 2307 | & SMCREF,SMCDRY,CMC,CMCMAX,NSOIL,DT,SHDFAC, & |
---|
| 2308 | & SBETA,Q2,T1,SFCTMP,T24,TH2,FDOWN,F1,SSOIL, & |
---|
| 2309 | & STC,EPSCA,BEXP,PC,RCH,RR,CFACTR, & |
---|
| 2310 | & SH2O,SLOPE,KDT,FRZFACT,PSISAT,ZSOIL, & |
---|
| 2311 | & DKSAT,DWSAT,TBOT,ZBOT,RUNOFF1,RUNOFF2, & |
---|
| 2312 | & RUNOFF3,EDIR,EC,ET,ETT,NROOT,ICE,RTDIS, & |
---|
| 2313 | & QUARTZ,FXEXP,CSOIL, & |
---|
| 2314 | & BETA,DRIP,DEW,FLX1,FLX2,FLX3) |
---|
| 2315 | |
---|
| 2316 | IMPLICIT NONE |
---|
| 2317 | |
---|
| 2318 | ! ---------------------------------------------------------------------- |
---|
| 2319 | ! SUBROUTINE NOPAC |
---|
| 2320 | ! ---------------------------------------------------------------------- |
---|
| 2321 | ! CALCULATE SOIL MOISTURE AND HEAT FLUX VALUES AND UPDATE SOIL MOISTURE |
---|
| 2322 | ! CONTENT AND SOIL HEAT CONTENT VALUES FOR THE CASE WHEN NO SNOW PACK IS |
---|
| 2323 | ! PRESENT. |
---|
| 2324 | ! ---------------------------------------------------------------------- |
---|
| 2325 | INTEGER ICE |
---|
| 2326 | INTEGER NROOT |
---|
| 2327 | INTEGER NSOIL |
---|
| 2328 | |
---|
| 2329 | REAL BEXP |
---|
| 2330 | REAL BETA |
---|
| 2331 | REAL CFACTR |
---|
| 2332 | REAL CMC |
---|
| 2333 | REAL CMCMAX |
---|
| 2334 | REAL CP |
---|
| 2335 | REAL CSOIL |
---|
| 2336 | REAL DEW |
---|
| 2337 | REAL DF1 |
---|
| 2338 | REAL DKSAT |
---|
| 2339 | REAL DRIP |
---|
| 2340 | REAL DT |
---|
| 2341 | REAL DWSAT |
---|
| 2342 | REAL EC |
---|
| 2343 | REAL EDIR |
---|
| 2344 | REAL EPSCA |
---|
| 2345 | REAL ETA |
---|
| 2346 | REAL ETA1 |
---|
| 2347 | REAL ETP |
---|
| 2348 | REAL ETP1 |
---|
| 2349 | REAL ET(NSOIL) |
---|
| 2350 | REAL ETT |
---|
| 2351 | REAL FDOWN |
---|
| 2352 | REAL F1 |
---|
| 2353 | REAL FXEXP |
---|
| 2354 | REAL FLX1 |
---|
| 2355 | REAL FLX2 |
---|
| 2356 | REAL FLX3 |
---|
| 2357 | REAL FRZFACT |
---|
| 2358 | REAL KDT |
---|
| 2359 | REAL PC |
---|
| 2360 | REAL PRCP |
---|
| 2361 | REAL PRCP1 |
---|
| 2362 | REAL PSISAT |
---|
| 2363 | REAL Q2 |
---|
| 2364 | REAL QUARTZ |
---|
| 2365 | REAL RCH |
---|
| 2366 | REAL RR |
---|
| 2367 | REAL RTDIS(NSOIL) |
---|
| 2368 | REAL RUNOFF1 |
---|
| 2369 | REAL RUNOFF2 |
---|
| 2370 | REAL RUNOFF3 |
---|
| 2371 | REAL SSOIL |
---|
| 2372 | REAL SBETA |
---|
| 2373 | REAL SFCTMP |
---|
| 2374 | REAL SHDFAC |
---|
| 2375 | REAL SH2O(NSOIL) |
---|
| 2376 | REAL SIGMA |
---|
| 2377 | REAL SLOPE |
---|
| 2378 | REAL SMC(NSOIL) |
---|
| 2379 | REAL SMCDRY |
---|
| 2380 | REAL SMCMAX |
---|
| 2381 | REAL SMCREF |
---|
| 2382 | REAL SMCWLT |
---|
| 2383 | REAL STC(NSOIL) |
---|
| 2384 | REAL T1 |
---|
| 2385 | REAL T24 |
---|
| 2386 | REAL TBOT |
---|
| 2387 | REAL TH2 |
---|
| 2388 | REAL YY |
---|
| 2389 | REAL YYNUM |
---|
| 2390 | REAL ZBOT |
---|
| 2391 | REAL ZSOIL(NSOIL) |
---|
| 2392 | REAL ZZ1 |
---|
| 2393 | |
---|
| 2394 | REAL EC1 |
---|
| 2395 | REAL EDIR1 |
---|
| 2396 | REAL ET1(NSOIL) |
---|
| 2397 | REAL ETT1 |
---|
| 2398 | |
---|
| 2399 | INTEGER K |
---|
| 2400 | |
---|
| 2401 | PARAMETER(CP = 1004.5) |
---|
| 2402 | PARAMETER(SIGMA = 5.67E-8) |
---|
| 2403 | |
---|
| 2404 | ! ---------------------------------------------------------------------- |
---|
| 2405 | ! EXECUTABLE CODE BEGINS HERE: |
---|
| 2406 | ! CONVERT ETP FROM KG M-2 S-1 TO MS-1 AND INITIALIZE DEW. |
---|
| 2407 | ! ---------------------------------------------------------------------- |
---|
| 2408 | PRCP1 = PRCP * 0.001 |
---|
| 2409 | ETP1 = ETP * 0.001 |
---|
| 2410 | DEW = 0.0 |
---|
| 2411 | |
---|
| 2412 | EDIR = 0. |
---|
| 2413 | EDIR1 = 0. |
---|
| 2414 | EC = 0. |
---|
| 2415 | EC1 = 0. |
---|
| 2416 | DO K = 1,NSOIL |
---|
| 2417 | ET(K) = 0. |
---|
| 2418 | ET1(K) = 0. |
---|
| 2419 | END DO |
---|
| 2420 | ETT = 0. |
---|
| 2421 | ETT1 = 0. |
---|
| 2422 | |
---|
| 2423 | IF (ETP .GT. 0.0) THEN |
---|
| 2424 | |
---|
| 2425 | ! ---------------------------------------------------------------------- |
---|
| 2426 | ! CONVERT PRCP FROM 'KG M-2 S-1' TO 'M S-1'. |
---|
| 2427 | ! ---------------------------------------------------------------------- |
---|
| 2428 | CALL EVAPO (ETA1,SMC,NSOIL,CMC,ETP1,DT,ZSOIL, & |
---|
| 2429 | & SH2O,SMCMAX,BEXP,PC,SMCWLT,DKSAT,DWSAT, & |
---|
| 2430 | & SMCREF,SHDFAC,CMCMAX, & |
---|
| 2431 | & SMCDRY,CFACTR, & |
---|
| 2432 | & EDIR1,EC1,ET1,ETT1,SFCTMP,Q2,NROOT,RTDIS,FXEXP) |
---|
| 2433 | CALL SMFLX (SMC,NSOIL,CMC,DT,PRCP1,ZSOIL, & |
---|
| 2434 | & SH2O,SLOPE,KDT,FRZFACT, & |
---|
| 2435 | & SMCMAX,BEXP,SMCWLT,DKSAT,DWSAT, & |
---|
| 2436 | & SHDFAC,CMCMAX, & |
---|
| 2437 | & RUNOFF1,RUNOFF2,RUNOFF3, & |
---|
| 2438 | & EDIR1,EC1,ET1, & |
---|
| 2439 | & DRIP) |
---|
| 2440 | |
---|
| 2441 | ! ---------------------------------------------------------------------- |
---|
| 2442 | ! CONVERT MODELED EVAPOTRANSPIRATION FM M S-1 TO KG M-2 S-1 |
---|
| 2443 | ! ---------------------------------------------------------------------- |
---|
| 2444 | ETA = ETA1 * 1000.0 |
---|
| 2445 | |
---|
| 2446 | ! ---------------------------------------------------------------------- |
---|
| 2447 | ! EDIR = EDIR1 * 1000.0 |
---|
| 2448 | ! EC = EC1 * 1000.0 |
---|
| 2449 | ! ETT = ETT1 * 1000.0 |
---|
| 2450 | ! ET(1) = ET1(1) * 1000.0 |
---|
| 2451 | ! ET(2) = ET1(2) * 1000.0 |
---|
| 2452 | ! ET(3) = ET1(3) * 1000.0 |
---|
| 2453 | ! ET(4) = ET1(4) * 1000.0 |
---|
| 2454 | ! ---------------------------------------------------------------------- |
---|
| 2455 | |
---|
| 2456 | ELSE |
---|
| 2457 | |
---|
| 2458 | ! ---------------------------------------------------------------------- |
---|
| 2459 | ! IF ETP < 0, ASSUME DEW FORMS (TRANSFORM ETP1 INTO DEW AND REINITIALIZE |
---|
| 2460 | ! ETP1 TO ZERO). |
---|
| 2461 | ! ---------------------------------------------------------------------- |
---|
| 2462 | DEW = -ETP1 |
---|
| 2463 | ! ETP1 = 0.0 |
---|
| 2464 | |
---|
| 2465 | ! ---------------------------------------------------------------------- |
---|
| 2466 | ! CONVERT PRCP FROM 'KG M-2 S-1' TO 'M S-1' AND ADD DEW AMOUNT. |
---|
| 2467 | ! ---------------------------------------------------------------------- |
---|
| 2468 | PRCP1 = PRCP1 + DEW |
---|
| 2469 | ! |
---|
| 2470 | ! CALL EVAPO (ETA1,SMC,NSOIL,CMC,ETP1,DT,ZSOIL, |
---|
| 2471 | ! & SH2O,SMCMAX,BEXP,PC,SMCWLT,DKSAT,DWSAT, |
---|
| 2472 | ! & SMCREF,SHDFAC,CMCMAX, |
---|
| 2473 | ! & SMCDRY,CFACTR, |
---|
| 2474 | ! & EDIR1,EC1,ET1,ETT,SFCTMP,Q2,NROOT,RTDIS,FXEXP) |
---|
| 2475 | CALL SMFLX (SMC,NSOIL,CMC,DT,PRCP1,ZSOIL, & |
---|
| 2476 | & SH2O,SLOPE,KDT,FRZFACT, & |
---|
| 2477 | & SMCMAX,BEXP,SMCWLT,DKSAT,DWSAT, & |
---|
| 2478 | & SHDFAC,CMCMAX, & |
---|
| 2479 | & RUNOFF1,RUNOFF2,RUNOFF3, & |
---|
| 2480 | & EDIR1,EC1,ET1, & |
---|
| 2481 | & DRIP) |
---|
| 2482 | |
---|
| 2483 | ! ---------------------------------------------------------------------- |
---|
| 2484 | ! CONVERT MODELED EVAPOTRANSPIRATION FROM 'M S-1' TO 'KG M-2 S-1'. |
---|
| 2485 | ! ---------------------------------------------------------------------- |
---|
| 2486 | ! ETA = ETA1 * 1000.0 |
---|
| 2487 | |
---|
| 2488 | ! ---------------------------------------------------------------------- |
---|
| 2489 | ! EDIR = EDIR1 * 1000.0 |
---|
| 2490 | ! EC = EC1 * 1000.0 |
---|
| 2491 | ! ETT = ETT1 * 1000.0 |
---|
| 2492 | ! ET(1) = ET1(1) * 1000.0 |
---|
| 2493 | ! ET(2) = ET1(2) * 1000.0 |
---|
| 2494 | ! ET(3) = ET1(3) * 1000.0 |
---|
| 2495 | ! ET(4) = ET1(4) * 1000.0 |
---|
| 2496 | ! ---------------------------------------------------------------------- |
---|
| 2497 | |
---|
| 2498 | ENDIF |
---|
| 2499 | |
---|
| 2500 | ! ---------------------------------------------------------------------- |
---|
| 2501 | ! CONVERT MODELED EVAPOTRANSPIRATION FM M S-1 TO KG M-2 S-1 |
---|
| 2502 | ! ---------------------------------------------------------------------- |
---|
| 2503 | ! ETA = ETA1 * 1000.0 |
---|
| 2504 | |
---|
| 2505 | ! ---------------------------------------------------------------------- |
---|
| 2506 | EDIR = EDIR1 * 1000.0 |
---|
| 2507 | EC = EC1 * 1000.0 |
---|
| 2508 | DO K = 1,NSOIL |
---|
| 2509 | ET(K) = ET1(K) * 1000.0 |
---|
| 2510 | ! ET(1) = ET1(1) * 1000.0 |
---|
| 2511 | ! ET(2) = ET1(2) * 1000.0 |
---|
| 2512 | ! ET(3) = ET1(3) * 1000.0 |
---|
| 2513 | ! ET(4) = ET1(4) * 1000.0 |
---|
| 2514 | ENDDO |
---|
| 2515 | ETT = ETT1 * 1000.0 |
---|
| 2516 | ! ---------------------------------------------------------------------- |
---|
| 2517 | |
---|
| 2518 | ! ---------------------------------------------------------------------- |
---|
| 2519 | ! BASED ON ETP AND E VALUES, DETERMINE BETA |
---|
| 2520 | ! ---------------------------------------------------------------------- |
---|
| 2521 | IF ( ETP .LE. 0.0 ) THEN |
---|
| 2522 | BETA = 0.0 |
---|
| 2523 | IF ( ETP .LT. 0.0 ) THEN |
---|
| 2524 | BETA = 1.0 |
---|
| 2525 | ETA = ETP |
---|
| 2526 | ENDIF |
---|
| 2527 | ELSE |
---|
| 2528 | BETA = ETA / ETP |
---|
| 2529 | ENDIF |
---|
| 2530 | |
---|
| 2531 | ! ---------------------------------------------------------------------- |
---|
| 2532 | ! GET SOIL THERMAL DIFFUXIVITY/CONDUCTIVITY FOR TOP SOIL LYR, |
---|
| 2533 | ! CALC. ADJUSTED TOP LYR SOIL TEMP AND ADJUSTED SOIL FLUX, THEN |
---|
| 2534 | ! CALL SHFLX TO COMPUTE/UPDATE SOIL HEAT FLUX AND SOIL TEMPS. |
---|
| 2535 | ! ---------------------------------------------------------------------- |
---|
| 2536 | CALL TDFCND (DF1,SMC(1),QUARTZ,SMCMAX,SH2O(1)) |
---|
| 2537 | |
---|
| 2538 | ! ---------------------------------------------------------------------- |
---|
| 2539 | ! VEGETATION GREENNESS FRACTION REDUCTION IN SUBSURFACE HEAT FLUX |
---|
| 2540 | ! VIA REDUCTION FACTOR, WHICH IS CONVENIENT TO APPLY HERE TO THERMAL |
---|
| 2541 | ! DIFFUSIVITY THAT IS LATER USED IN HRT TO COMPUTE SUB SFC HEAT FLUX |
---|
| 2542 | ! (SEE ADDITIONAL COMMENTS ON VEG EFFECT SUB-SFC HEAT FLX IN |
---|
| 2543 | ! ROUTINE SFLX) |
---|
| 2544 | ! ---------------------------------------------------------------------- |
---|
| 2545 | DF1 = DF1 * EXP(SBETA*SHDFAC) |
---|
| 2546 | |
---|
| 2547 | ! ---------------------------------------------------------------------- |
---|
| 2548 | ! COMPUTE INTERMEDIATE TERMS PASSED TO ROUTINE HRT (VIA ROUTINE |
---|
| 2549 | ! SHFLX BELOW) FOR USE IN COMPUTING SUBSURFACE HEAT FLUX IN HRT |
---|
| 2550 | ! ---------------------------------------------------------------------- |
---|
| 2551 | YYNUM = FDOWN - SIGMA * T24 |
---|
| 2552 | YY = SFCTMP + (YYNUM/RCH+TH2-SFCTMP-BETA*EPSCA) / RR |
---|
| 2553 | ZZ1 = DF1 / ( -0.5 * ZSOIL(1) * RCH * RR ) + 1.0 |
---|
| 2554 | |
---|
| 2555 | CALL SHFLX (SSOIL,STC,SMC,SMCMAX,NSOIL,T1,DT,YY,ZZ1,ZSOIL, & |
---|
| 2556 | & TBOT,ZBOT,SMCWLT,PSISAT,SH2O,BEXP,F1,DF1,ICE, & |
---|
| 2557 | & QUARTZ,CSOIL) |
---|
| 2558 | |
---|
| 2559 | ! ---------------------------------------------------------------------- |
---|
| 2560 | ! SET FLX1 AND FLX3 (SNOPACK PHASE CHANGE HEAT FLUXES) TO ZERO SINCE |
---|
| 2561 | ! THEY ARE NOT USED HERE IN SNOPAC. FLX2 (FREEZING RAIN HEAT FLUX) WAS |
---|
| 2562 | ! SIMILARLY INITIALIZED IN THE PENMAN ROUTINE. |
---|
| 2563 | ! ---------------------------------------------------------------------- |
---|
| 2564 | FLX1 = 0.0 |
---|
| 2565 | FLX3 = 0.0 |
---|
| 2566 | |
---|
| 2567 | ! ---------------------------------------------------------------------- |
---|
| 2568 | ! END SUBROUTINE NOPAC |
---|
| 2569 | ! ---------------------------------------------------------------------- |
---|
| 2570 | END SUBROUTINE NOPAC |
---|
| 2571 | |
---|
| 2572 | SUBROUTINE PENMAN (SFCTMP,SFCPRS,CH,T2V,TH2,PRCP,FDOWN,T24,SSOIL, & |
---|
| 2573 | & Q2,Q2SAT,ETP,RCH,EPSCA,RR,SNOWNG,FRZGRA, & |
---|
| 2574 | & DQSDT2,FLX2) |
---|
| 2575 | |
---|
| 2576 | IMPLICIT NONE |
---|
| 2577 | |
---|
| 2578 | ! ---------------------------------------------------------------------- |
---|
| 2579 | ! SUBROUTINE PENMAN |
---|
| 2580 | ! ---------------------------------------------------------------------- |
---|
| 2581 | ! CALCULATE POTENTIAL EVAPORATION FOR THE CURRENT POINT. VARIOUS |
---|
| 2582 | ! PARTIAL SUMS/PRODUCTS ARE ALSO CALCULATED AND PASSED BACK TO THE |
---|
| 2583 | ! CALLING ROUTINE FOR LATER USE. |
---|
| 2584 | ! ---------------------------------------------------------------------- |
---|
| 2585 | LOGICAL SNOWNG |
---|
| 2586 | LOGICAL FRZGRA |
---|
| 2587 | |
---|
| 2588 | REAL A |
---|
| 2589 | REAL BETA |
---|
| 2590 | REAL CH |
---|
| 2591 | REAL CP |
---|
| 2592 | REAL CPH2O |
---|
| 2593 | REAL CPICE |
---|
| 2594 | REAL DELTA |
---|
| 2595 | REAL DQSDT2 |
---|
| 2596 | REAL ELCP |
---|
| 2597 | REAL EPSCA |
---|
| 2598 | REAL ETP |
---|
| 2599 | REAL FDOWN |
---|
| 2600 | REAL FLX2 |
---|
| 2601 | REAL FNET |
---|
| 2602 | REAL LSUBC |
---|
| 2603 | REAL LSUBF |
---|
| 2604 | REAL PRCP |
---|
| 2605 | REAL Q2 |
---|
| 2606 | REAL Q2SAT |
---|
| 2607 | REAL R |
---|
| 2608 | REAL RAD |
---|
| 2609 | REAL RCH |
---|
| 2610 | REAL RHO |
---|
| 2611 | REAL RR |
---|
| 2612 | REAL SSOIL |
---|
| 2613 | REAL SFCPRS |
---|
| 2614 | REAL SFCTMP |
---|
| 2615 | REAL SIGMA |
---|
| 2616 | REAL T24 |
---|
| 2617 | REAL T2V |
---|
| 2618 | REAL TH2 |
---|
| 2619 | |
---|
| 2620 | PARAMETER(CP = 1004.6) |
---|
| 2621 | PARAMETER(CPH2O = 4.218E+3) |
---|
| 2622 | PARAMETER(CPICE = 2.106E+3) |
---|
| 2623 | PARAMETER(R = 287.04) |
---|
| 2624 | PARAMETER(ELCP = 2.4888E+3) |
---|
| 2625 | PARAMETER(LSUBF = 3.335E+5) |
---|
| 2626 | PARAMETER(LSUBC = 2.501000E+6) |
---|
| 2627 | PARAMETER(SIGMA = 5.67E-8) |
---|
| 2628 | |
---|
| 2629 | ! ---------------------------------------------------------------------- |
---|
| 2630 | ! EXECUTABLE CODE BEGINS HERE: |
---|
| 2631 | ! ---------------------------------------------------------------------- |
---|
| 2632 | FLX2 = 0.0 |
---|
| 2633 | |
---|
| 2634 | ! ---------------------------------------------------------------------- |
---|
| 2635 | ! PREPARE PARTIAL QUANTITIES FOR PENMAN EQUATION. |
---|
| 2636 | ! ---------------------------------------------------------------------- |
---|
| 2637 | DELTA = ELCP * DQSDT2 |
---|
| 2638 | T24 = SFCTMP * SFCTMP * SFCTMP * SFCTMP |
---|
| 2639 | RR = T24 * 6.48E-8 /(SFCPRS * CH) + 1.0 |
---|
| 2640 | RHO = SFCPRS / (R * T2V) |
---|
| 2641 | RCH = RHO * CP * CH |
---|
| 2642 | |
---|
| 2643 | ! ---------------------------------------------------------------------- |
---|
| 2644 | ! ADJUST THE PARTIAL SUMS / PRODUCTS WITH THE LATENT HEAT |
---|
| 2645 | ! EFFECTS CAUSED BY FALLING PRECIPITATION. |
---|
| 2646 | ! ---------------------------------------------------------------------- |
---|
| 2647 | IF (.NOT. SNOWNG) THEN |
---|
| 2648 | IF (PRCP .GT. 0.0) RR = RR + CPH2O*PRCP/RCH |
---|
| 2649 | ELSE |
---|
| 2650 | RR = RR + CPICE*PRCP/RCH |
---|
| 2651 | ENDIF |
---|
| 2652 | |
---|
| 2653 | FNET = FDOWN - SIGMA*T24 - SSOIL |
---|
| 2654 | |
---|
| 2655 | ! ---------------------------------------------------------------------- |
---|
| 2656 | ! INCLUDE THE LATENT HEAT EFFECTS OF FRZNG RAIN CONVERTING TO ICE ON |
---|
| 2657 | ! IMPACT IN THE CALCULATION OF FLX2 AND FNET. |
---|
| 2658 | ! ---------------------------------------------------------------------- |
---|
| 2659 | IF (FRZGRA) THEN |
---|
| 2660 | FLX2 = -LSUBF * PRCP |
---|
| 2661 | FNET = FNET - FLX2 |
---|
| 2662 | ENDIF |
---|
| 2663 | |
---|
| 2664 | ! ---------------------------------------------------------------------- |
---|
| 2665 | ! FINISH PENMAN EQUATION CALCULATIONS. |
---|
| 2666 | ! ---------------------------------------------------------------------- |
---|
| 2667 | RAD = FNET/RCH + TH2 - SFCTMP |
---|
| 2668 | A = ELCP * (Q2SAT - Q2) |
---|
| 2669 | EPSCA = (A*RR + RAD*DELTA) / (DELTA + RR) |
---|
| 2670 | ETP = EPSCA * RCH / LSUBC |
---|
| 2671 | |
---|
| 2672 | ! ---------------------------------------------------------------------- |
---|
| 2673 | ! END SUBROUTINE PENMAN |
---|
| 2674 | ! ---------------------------------------------------------------------- |
---|
| 2675 | END SUBROUTINE PENMAN |
---|
| 2676 | |
---|
| 2677 | SUBROUTINE REDPRM ( & |
---|
| 2678 | & VEGTYP,SOILTYP,SLOPETYP, & |
---|
| 2679 | & CFACTR,CMCMAX,RSMAX,TOPT,REFKDT,KDT,SBETA, & |
---|
| 2680 | & SHDFAC,RSMIN,RGL,HS,ZBOT,FRZX,PSISAT,SLOPE, & |
---|
| 2681 | & SNUP,SALP,BEXP,DKSAT,DWSAT, & |
---|
| 2682 | & SMCMAX,SMCWLT,SMCREF, & |
---|
| 2683 | & SMCDRY,F1,QUARTZ,FXEXP,RTDIS,SLDPTH,ZSOIL, & |
---|
| 2684 | & NROOT,NSOIL,Z0,CZIL,LAI,CSOIL,PTU) |
---|
| 2685 | |
---|
| 2686 | USE module_wrf_error |
---|
| 2687 | IMPLICIT NONE |
---|
| 2688 | ! ---------------------------------------------------------------------- |
---|
| 2689 | ! SUBROUTINE REDPRM |
---|
| 2690 | ! ---------------------------------------------------------------------- |
---|
| 2691 | ! INTERNALLY SET (DEFAULT VALUESS), OR OPTIONALLY READ-IN VIA NAMELIST |
---|
| 2692 | ! I/O, ALL SOIL AND VEGETATION PARAMETERS REQUIRED FOR THE EXECUSION OF |
---|
| 2693 | ! THE NOAH LSM. |
---|
| 2694 | ! |
---|
| 2695 | ! OPTIONAL NON-DEFAULT PARAMETERS CAN BE READ IN, ACCOMMODATING UP TO 30 |
---|
| 2696 | ! SOIL, VEG, OR SLOPE CLASSES, IF THE DEFAULT MAX NUMBER OF SOIL, VEG, |
---|
| 2697 | ! AND/OR SLOPE TYPES IS RESET. |
---|
| 2698 | ! |
---|
| 2699 | ! FUTURE UPGRADES OF ROUTINE REDPRM MUST EXPAND TO INCORPORATE SOME OF |
---|
| 2700 | ! THE EMPIRICAL PARAMETERS OF THE FROZEN SOIL AND SNOWPACK PHYSICS (SUCH |
---|
| 2701 | ! AS IN ROUTINES FRH2O, SNOWPACK, AND SNOW_NEW) NOT YET SET IN THIS |
---|
| 2702 | ! REDPRM ROUTINE, BUT RATHER SET IN LOWER LEVEL SUBROUTINES. |
---|
| 2703 | ! |
---|
| 2704 | ! SET MAXIMUM NUMBER OF SOIL-, VEG-, AND SLOPETYP IN DATA STATEMENT. |
---|
| 2705 | ! ---------------------------------------------------------------------- |
---|
| 2706 | INTEGER MAX_SLOPETYP |
---|
| 2707 | INTEGER MAX_SOILTYP |
---|
| 2708 | INTEGER MAX_VEGTYP |
---|
| 2709 | |
---|
| 2710 | PARAMETER(MAX_SLOPETYP = 30) |
---|
| 2711 | PARAMETER(MAX_SOILTYP = 30) |
---|
| 2712 | PARAMETER(MAX_VEGTYP = 30) |
---|
| 2713 | |
---|
| 2714 | ! ---------------------------------------------------------------------- |
---|
| 2715 | ! NUMBER OF DEFINED SOIL-, VEG-, AND SLOPETYPS USED. |
---|
| 2716 | ! ---------------------------------------------------------------------- |
---|
| 2717 | INTEGER DEFINED_VEG |
---|
| 2718 | INTEGER DEFINED_SOIL |
---|
| 2719 | INTEGER DEFINED_SLOPE |
---|
| 2720 | |
---|
| 2721 | DATA DEFINED_VEG/27/ |
---|
| 2722 | DATA DEFINED_SOIL/19/ |
---|
| 2723 | DATA DEFINED_SLOPE/9/ |
---|
| 2724 | |
---|
| 2725 | ! ---------------------------------------------------------------------- |
---|
| 2726 | ! SET-UP SOIL PARAMETERS FOR GIVEN SOIL TYPE |
---|
| 2727 | ! INPUT: SOLTYP: SOIL TYPE (INTEGER INDEX) |
---|
| 2728 | ! OUTPUT: SOIL PARAMETERS: |
---|
| 2729 | ! MAXSMC: MAX SOIL MOISTURE CONTENT (POROSITY) |
---|
| 2730 | ! REFSMC: REFERENCE SOIL MOISTURE (ONSET OF SOIL MOISTURE |
---|
| 2731 | ! STRESS IN TRANSPIRATION) |
---|
| 2732 | ! WLTSMC: WILTING PT SOIL MOISTURE CONTENTS |
---|
| 2733 | ! DRYSMC: AIR DRY SOIL MOIST CONTENT LIMITS |
---|
| 2734 | ! SATPSI: SATURATED SOIL POTENTIAL |
---|
| 2735 | ! SATDK: SATURATED SOIL HYDRAULIC CONDUCTIVITY |
---|
| 2736 | ! BB: THE 'B' PARAMETER |
---|
| 2737 | ! SATDW: SATURATED SOIL DIFFUSIVITY |
---|
| 2738 | ! F11: USED TO COMPUTE SOIL DIFFUSIVITY/CONDUCTIVITY |
---|
| 2739 | ! QUARTZ: SOIL QUARTZ CONTENT |
---|
| 2740 | ! ---------------------------------------------------------------------- |
---|
| 2741 | ! SOIL STATSGO |
---|
| 2742 | ! TYPE CLASS |
---|
| 2743 | ! ---- ------- |
---|
| 2744 | ! 1 SAND |
---|
| 2745 | ! 2 LOAMY SAND |
---|
| 2746 | ! 3 SANDY LOAM |
---|
| 2747 | ! 4 SILT LOAM |
---|
| 2748 | ! 5 SILT |
---|
| 2749 | ! 6 LOAM |
---|
| 2750 | ! 7 SANDY CLAY LOAM |
---|
| 2751 | ! 8 SILTY CLAY LOAM |
---|
| 2752 | ! 9 CLAY LOAM |
---|
| 2753 | ! 10 SANDY CLAY |
---|
| 2754 | ! 11 SILTY CLAY |
---|
| 2755 | ! 12 CLAY |
---|
| 2756 | ! 13 ORGANIC MATERIAL |
---|
| 2757 | ! 14 WATER |
---|
| 2758 | ! 15 BEDROCK |
---|
| 2759 | ! 16 OTHER(land-ice) |
---|
| 2760 | ! 17 PLAYA |
---|
| 2761 | ! 18 LAVA |
---|
| 2762 | ! 19 WHITE SAND |
---|
| 2763 | ! ---------------------------------------------------------------------- |
---|
| 2764 | |
---|
| 2765 | REAL BB(MAX_SOILTYP) |
---|
| 2766 | REAL DRYSMC(MAX_SOILTYP) |
---|
| 2767 | REAL F11(MAX_SOILTYP) |
---|
| 2768 | REAL MAXSMC(MAX_SOILTYP) |
---|
| 2769 | REAL REFSMC(MAX_SOILTYP) |
---|
| 2770 | REAL SATPSI(MAX_SOILTYP) |
---|
| 2771 | REAL SATDK(MAX_SOILTYP) |
---|
| 2772 | REAL SATDW(MAX_SOILTYP) |
---|
| 2773 | REAL WLTSMC(MAX_SOILTYP) |
---|
| 2774 | REAL QTZ(MAX_SOILTYP) |
---|
| 2775 | |
---|
| 2776 | REAL BEXP |
---|
| 2777 | REAL DKSAT |
---|
| 2778 | REAL DWSAT |
---|
| 2779 | REAL F1 |
---|
| 2780 | REAL PTU |
---|
| 2781 | REAL QUARTZ |
---|
| 2782 | REAL REFSMC1 |
---|
| 2783 | REAL SMCDRY |
---|
| 2784 | REAL SMCMAX |
---|
| 2785 | REAL SMCREF |
---|
| 2786 | REAL SMCWLT |
---|
| 2787 | REAL WLTSMC1 |
---|
| 2788 | |
---|
| 2789 | ! ---------------------------------------------------------------------- |
---|
| 2790 | ! SOIL TEXTURE-RELATED ARRAYS. |
---|
| 2791 | ! ---------------------------------------------------------------------- |
---|
| 2792 | DATA MAXSMC/0.395, 0.421, 0.434, 0.476, 0.476, 0.439, & |
---|
| 2793 | & 0.404, 0.464, 0.465, 0.406, 0.468, 0.457, & |
---|
| 2794 | & 0.464, 0.464, 0.200, 0.421, 0.457, 0.200, & |
---|
| 2795 | & 0.395, 0.000, 0.000, 0.000, 0.000, 0.000, & |
---|
| 2796 | & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/ |
---|
| 2797 | ! ---------------------------------------------------------------------- |
---|
| 2798 | DATA SATPSI/0.0350, 0.0363, 0.1413, 0.7586, 0.7586, 0.3548, & |
---|
| 2799 | & 0.1349, 0.6166, 0.2630, 0.0977, 0.3236, 0.4677, & |
---|
| 2800 | & 0.3548, 0.3548, 0.0350, 0.0363, 0.4677, 0.0350, & |
---|
| 2801 | & 0.0350, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, & |
---|
| 2802 | & 0.000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000/ |
---|
| 2803 | ! ---------------------------------------------------------------------- |
---|
| 2804 | DATA SATDK /1.7600E-4, 1.4078E-5, 5.2304E-6, 2.8089E-6, 2.8089E-6,& |
---|
| 2805 | & 3.3770E-6, 4.4518E-6, 2.0348E-6, 2.4464E-6, 7.2199E-6,& |
---|
| 2806 | & 1.3444E-6, 9.7394E-7, 3.3770E-6, 3.3770E-6, 1.4078E-5,& |
---|
| 2807 | & 1.4078E-5, 9.7394E-7, 1.4078E-5, 1.7600E-4, 0.0,& |
---|
| 2808 | & 0.0, 0.0, 0.0, 0.0, 0.0,& |
---|
| 2809 | & 0.0, 0.0, 0.0, 0.0, 0.0/ |
---|
| 2810 | ! ---------------------------------------------------------------------- |
---|
| 2811 | DATA BB /4.05, 4.26, 4.74, 5.33, 5.33, 5.25, & |
---|
| 2812 | & 6.77, 8.72, 8.17, 10.73, 10.39, 11.55, & |
---|
| 2813 | & 5.25, 5.25, 4.05, 4.26, 11.55, 4.05, & |
---|
| 2814 | & 4.05, 0.00, 0.00, 0.00, 0.00, 0.00, & |
---|
| 2815 | & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00/ |
---|
| 2816 | ! ---------------------------------------------------------------------- |
---|
| 2817 | DATA QTZ /0.92, 0.82, 0.60, 0.25, 0.10, 0.40, & |
---|
| 2818 | & 0.60, 0.10, 0.35, 0.52, 0.10, 0.25, & |
---|
| 2819 | & 0.05, 0.05, 0.07, 0.25, 0.60, 0.52, & |
---|
| 2820 | & 0.92, 0.00, 0.00, 0.00, 0.00, 0.00, & |
---|
| 2821 | & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00/ |
---|
| 2822 | |
---|
| 2823 | ! ---------------------------------------------------------------------- |
---|
| 2824 | ! THE FOLLOWING 5 PARAMETERS ARE DERIVED LATER IN REDPRM.F FROM THE SOIL |
---|
| 2825 | ! DATA, AND ARE JUST GIVEN HERE FOR REFERENCE AND TO FORCE STATIC |
---|
| 2826 | ! STORAGE ALLOCATION. -DAG LOHMANN, FEB. 2001 |
---|
| 2827 | ! ---------------------------------------------------------------------- |
---|
| 2828 | ! !!!!!!!!!!!!!! The following values in the table are NOT used |
---|
| 2829 | ! !!!!!!!!!!!!!! and are just given for reference |
---|
| 2830 | DATA REFSMC/0.196, 0.248, 0.282, 0.332, 0.332, 0.301, & |
---|
| 2831 | & 0.293, 0.368, 0.361, 0.320, 0.388, 0.389, & |
---|
| 2832 | & 0.319, 0.000, 0.116, 0.248, 0.389, 0.116, & |
---|
| 2833 | & 0.196, 0.000, 0.000, 0.000, 0.000, 0.000, & |
---|
| 2834 | & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/ |
---|
| 2835 | ! !!!!!!!!!!!!!! The following values in the table are NOT used |
---|
| 2836 | ! !!!!!!!!!!!!!! and are just given for reference |
---|
| 2837 | DATA WLTSMC/0.023, 0.028, 0.047, 0.084, 0.084, 0.066, & |
---|
| 2838 | & 0.069, 0.120, 0.103, 0.100, 0.126, 0.135, & |
---|
| 2839 | & 0.069, 0.000, 0.012, 0.028, 0.135, 0.012, & |
---|
| 2840 | & 0.023, 0.000, 0.000, 0.000, 0.000, 0.000, & |
---|
| 2841 | & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/ |
---|
| 2842 | ! !!!!!!!!!!!!!! The following values in the table are NOT used |
---|
| 2843 | ! !!!!!!!!!!!!!! and are just given for reference |
---|
| 2844 | DATA DRYSMC/0.023, 0.028, 0.047, 0.084, 0.084, 0.066, & |
---|
| 2845 | & 0.069, 0.120, 0.103, 0.100, 0.126, 0.135, & |
---|
| 2846 | & 0.069, 0.000, 0.012, 0.028, 0.135, 0.012, & |
---|
| 2847 | & 0.023, 0.000, 0.000, 0.000, 0.000, 0.000, & |
---|
| 2848 | & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/ |
---|
| 2849 | |
---|
| 2850 | ! !!!!!!!!!!!!!! The following values in the table are NOT used |
---|
| 2851 | ! !!!!!!!!!!!!!! and are just given for reference |
---|
| 2852 | DATA SATDW /0.632E-4, 0.517E-5, 0.807E-5, 0.239E-4, 0.239E-4, & |
---|
| 2853 | & 0.143E-4, 0.101E-4, 0.236E-4, 0.113E-4, 0.186E-4, & |
---|
| 2854 | & 0.966E-5, 0.115E-4, 0.136E-4, 0.0, 0.998E-5, & |
---|
| 2855 | & 0.517E-5, 0.115E-4, 0.998E-5, 0.632E-4, 0.0, & |
---|
| 2856 | & 0.0, 0.0, 0.0, 0.0, 0.0, & |
---|
| 2857 | & 0.0, 0.0, 0.0, 0.0, 0.0/ |
---|
| 2858 | ! !!!!!!!!!!!!!! The following values in the table are NOT used |
---|
| 2859 | ! !!!!!!!!!!!!!! and are just given for reference |
---|
| 2860 | DATA F11 /-1.090, -1.041, -0.568, 0.162, 0.162, -0.327, & |
---|
| 2861 | & -1.535, -1.118, -1.297, -3.211, -1.916, -2.258, & |
---|
| 2862 | & -0.201, 0.000, -2.287, -1.041, -2.258, -2.287, & |
---|
| 2863 | & -1.090, 0.000, 0.000, 0.000, 0.000, 0.000, & |
---|
| 2864 | & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/ |
---|
| 2865 | |
---|
| 2866 | ! ---------------------------------------------------------------------- |
---|
| 2867 | ! SET-UP VEGETATION PARAMETERS FOR A GIVEN VEGETAION TYPE: |
---|
| 2868 | ! INPUT: VEGTYP = VEGETATION TYPE (INTEGER INDEX) |
---|
| 2869 | ! OUPUT: VEGETATION PARAMETERS |
---|
| 2870 | ! SHDFAC: VEGETATION GREENNESS FRACTION |
---|
| 2871 | ! RSMIN: MIMIMUM STOMATAL RESISTANCE |
---|
| 2872 | ! RGL: PARAMETER USED IN SOLAR RAD TERM OF |
---|
| 2873 | ! CANOPY RESISTANCE FUNCTION |
---|
| 2874 | ! HS: PARAMETER USED IN VAPOR PRESSURE DEFICIT TERM OF |
---|
| 2875 | ! CANOPY RESISTANCE FUNCTION |
---|
| 2876 | ! SNUP: THRESHOLD SNOW DEPTH (IN WATER EQUIVALENT M) THAT |
---|
| 2877 | ! IMPLIES 100% SNOW COVER |
---|
| 2878 | ! ---------------------------------------------------------------------- |
---|
| 2879 | ! CLASS USGS-WRF VEGETATION/SURFACE TYPE |
---|
| 2880 | ! 1 Urban and Built-Up Land |
---|
| 2881 | ! 2 Dryland Cropland and Pasture |
---|
| 2882 | ! 3 Irrigated Cropland and Pasture |
---|
| 2883 | ! 4 Mixed Dryland/Irrigated Cropland and Pasture |
---|
| 2884 | ! 5 Cropland/Grassland Mosaic |
---|
| 2885 | ! 6 Cropland/Woodland Mosaic |
---|
| 2886 | ! 7 Grassland |
---|
| 2887 | ! 8 Shrubland |
---|
| 2888 | ! 9 Mixed Shrubland/Grassland |
---|
| 2889 | ! 10 Savanna |
---|
| 2890 | ! 11 Deciduous Broadleaf Forest |
---|
| 2891 | ! 12 Deciduous Needleleaf Forest |
---|
| 2892 | ! 13 Evergreen Broadleaf Forest |
---|
| 2893 | ! 14 Evergreen Needleleaf Forest |
---|
| 2894 | ! 15 Mixed Forest |
---|
| 2895 | ! 16 Water Bodies |
---|
| 2896 | ! 17 Herbaceous Wetland |
---|
| 2897 | ! 18 Wooded Wetland |
---|
| 2898 | ! 19 Barren or Sparsely Vegetated |
---|
| 2899 | ! 20 Herbaceous Tundra |
---|
| 2900 | ! 21 Wooded Tundra |
---|
| 2901 | ! 22 Mixed Tundra |
---|
| 2902 | ! 23 Bare Ground Tundra |
---|
| 2903 | ! 24 Snow or Ice |
---|
| 2904 | ! 25 Playa |
---|
| 2905 | ! 26 Lava |
---|
| 2906 | ! 27 White Sand |
---|
| 2907 | ! ---------------------------------------------------------------------- |
---|
| 2908 | |
---|
| 2909 | INTEGER NROOT |
---|
| 2910 | INTEGER NROOT_DATA(MAX_VEGTYP) |
---|
| 2911 | |
---|
| 2912 | REAL FRZFACT |
---|
| 2913 | REAL HS |
---|
| 2914 | REAL HSTBL(MAX_VEGTYP) |
---|
| 2915 | REAL LAI |
---|
| 2916 | REAL LAI_DATA(MAX_VEGTYP) |
---|
| 2917 | REAL PSISAT |
---|
| 2918 | REAL RSMIN |
---|
| 2919 | REAL RGL |
---|
| 2920 | REAL RGLTBL(MAX_VEGTYP) |
---|
| 2921 | REAL RSMTBL(MAX_VEGTYP) |
---|
| 2922 | REAL SHDFAC |
---|
| 2923 | REAL SNUP |
---|
| 2924 | REAL SNUPX(MAX_VEGTYP) |
---|
| 2925 | REAL Z0 |
---|
| 2926 | REAL Z0_DATA(MAX_VEGTYP) |
---|
| 2927 | |
---|
| 2928 | ! ---------------------------------------------------------------------- |
---|
| 2929 | ! VEGETATION CLASS-RELATED ARRAYS |
---|
| 2930 | ! ---------------------------------------------------------------------- |
---|
| 2931 | ! DATA NROOT_DATA /2,3,3,3,3,3,3,3,3,3, |
---|
| 2932 | ! & 4,4,4,4,4,2,2,2,2,3, |
---|
| 2933 | ! & 3,3,2,2,2,2,2,0,0,0/ |
---|
| 2934 | DATA NROOT_DATA /1,3,3,3,3,3,3,3,3,3, & |
---|
| 2935 | & 4,4,4,4,4,0,2,2,1,3, & |
---|
| 2936 | & 3,3,2,1,1,1,1,0,0,0/ |
---|
| 2937 | DATA RSMTBL /200.0, 70.0, 70.0, 70.0, 70.0, 70.0, & |
---|
| 2938 | & 70.0, 300.0, 170.0, 70.0, 100.0, 150.0, & |
---|
| 2939 | & 150.0, 125.0, 125.0, 100.0, 40.0, 100.0, & |
---|
| 2940 | & 300.0, 150.0, 150.0, 150.0, 200.0, 200.0, & |
---|
| 2941 | & 40.0, 100.0, 300.0, 0.0, 0.0, 0.0/ |
---|
| 2942 | DATA RGLTBL /100.0, 100.0, 100.0, 100.0, 100.0, 65.0, & |
---|
| 2943 | & 100.0, 100.0, 100.0, 65.0, 30.0, 30.0, & |
---|
| 2944 | & 30.0, 30.0, 30.0, 30.0, 100.0, 30.0, & |
---|
| 2945 | & 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, & |
---|
| 2946 | & 100.0, 100.0, 100.0, 0.0, 0.0, 0.0/ |
---|
| 2947 | DATA HSTBL /42.00, 36.25, 36.25, 36.25, 36.25, 44.14, & |
---|
| 2948 | & 36.35, 42.00, 39.18, 54.53, 54.53, 47.35, & |
---|
| 2949 | & 41.69, 47.35, 51.93, 51.75, 60.00, 51.93, & |
---|
| 2950 | & 42.00, 42.00, 42.00, 42.00, 42.00, 42.00, & |
---|
| 2951 | & 36.25, 42.00, 42.00, 0.00, 0.00, 0.00/ |
---|
| 2952 | DATA SNUPX /0.020, 0.020, 0.020, 0.020, 0.020, 0.020, & |
---|
| 2953 | & 0.020, 0.020, 0.020, 0.040, 0.040, 0.040, & |
---|
| 2954 | & 0.040, 0.040, 0.040, 0.010, 0.013, 0.020, & |
---|
| 2955 | & 0.013, 0.020, 0.020, 0.020, 0.020, 0.013, & |
---|
| 2956 | & 0.013, 0.013, 0.013, 0.000, 0.000, 0.000/ |
---|
| 2957 | DATA Z0_DATA / 1.00, 0.07, 0.07, 0.07, 0.07, 0.15, & |
---|
| 2958 | & 0.08, 0.03, 0.05, 0.86, 0.80, 0.85, & |
---|
| 2959 | & 2.65, 1.09, 0.80, 0.001, 0.04, 0.05, & |
---|
| 2960 | & 0.01, 0.04, 0.06, 0.05, 0.03, 0.001, & |
---|
| 2961 | & 0.01, 0.15, 0.01, 0.00, 0.00, 0.00/ |
---|
| 2962 | DATA LAI_DATA /4.0, 4.0, 4.0, 4.0, 4.0, 4.0, & |
---|
| 2963 | & 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, & |
---|
| 2964 | & 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, & |
---|
| 2965 | & 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, & |
---|
| 2966 | & 4.0, 4.0, 4.0, 0.0, 0.0, 0.0/ |
---|
| 2967 | |
---|
| 2968 | ! ---------------------------------------------------------------------- |
---|
| 2969 | ! CLASS PARAMETER 'SLOPETYP' WAS INCLUDED TO ESTIMATE LINEAR RESERVOIR |
---|
| 2970 | ! COEFFICIENT 'SLOPE' TO THE BASEFLOW RUNOFF OUT OF THE BOTTOM LAYER. |
---|
| 2971 | ! LOWEST CLASS (SLOPETYP=0) MEANS HIGHEST SLOPE PARAMETER = 1. |
---|
| 2972 | ! DEFINITION OF SLOPETYP FROM 'ZOBLER' SLOPE TYPE: |
---|
| 2973 | ! SLOPE CLASS PERCENT SLOPE |
---|
| 2974 | ! 1 0-8 |
---|
| 2975 | ! 2 8-30 |
---|
| 2976 | ! 3 > 30 |
---|
| 2977 | ! 4 0-30 |
---|
| 2978 | ! 5 0-8 & > 30 |
---|
| 2979 | ! 6 8-30 & > 30 |
---|
| 2980 | ! 7 0-8, 8-30, > 30 |
---|
| 2981 | ! 9 GLACIAL ICE |
---|
| 2982 | ! BLANK OCEAN/SEA |
---|
| 2983 | ! ---------------------------------------------------------------------- |
---|
| 2984 | ! NOTE: |
---|
| 2985 | ! CLASS 9 FROM 'ZOBLER' FILE SHOULD BE REPLACED BY 8 AND 'BLANK' 9 |
---|
| 2986 | ! ---------------------------------------------------------------------- |
---|
| 2987 | REAL SLOPE |
---|
| 2988 | REAL SLOPE_DATA(MAX_SLOPETYP) |
---|
| 2989 | |
---|
| 2990 | DATA SLOPE_DATA /0.1, 0.6, 1.0, 0.35, 0.55, 0.8, & |
---|
| 2991 | & 0.63, 0.0, 0.0, 0.0, 0.0, 0.0, & |
---|
| 2992 | & 0.0 , 0.0, 0.0, 0.0, 0.0, 0.0, & |
---|
| 2993 | & 0.0 , 0.0, 0.0, 0.0, 0.0, 0.0, & |
---|
| 2994 | & 0.0 , 0.0, 0.0, 0.0, 0.0, 0.0/ |
---|
| 2995 | |
---|
| 2996 | ! ---------------------------------------------------------------------- |
---|
| 2997 | ! SET NAMELIST FILE NAME |
---|
| 2998 | ! ---------------------------------------------------------------------- |
---|
| 2999 | CHARACTER*50 NAMELIST_NAME |
---|
| 3000 | |
---|
| 3001 | ! ---------------------------------------------------------------------- |
---|
| 3002 | ! SET UNIVERSAL PARAMETERS (NOT DEPENDENT ON SOIL, VEG, SLOPE TYPE) |
---|
| 3003 | ! ---------------------------------------------------------------------- |
---|
| 3004 | INTEGER I |
---|
| 3005 | INTEGER NSOIL |
---|
| 3006 | INTEGER SLOPETYP |
---|
| 3007 | INTEGER SOILTYP |
---|
| 3008 | INTEGER VEGTYP |
---|
| 3009 | |
---|
| 3010 | INTEGER BARE |
---|
| 3011 | ! DATA BARE /11/ |
---|
| 3012 | DATA BARE /19/ |
---|
| 3013 | |
---|
| 3014 | LOGICAL LPARAM |
---|
| 3015 | DATA LPARAM /.TRUE./ |
---|
| 3016 | |
---|
| 3017 | LOGICAL LFIRST |
---|
| 3018 | DATA LFIRST /.TRUE./ |
---|
| 3019 | |
---|
| 3020 | ! ---------------------------------------------------------------------- |
---|
| 3021 | ! PARAMETER USED TO CALCULATE ROUGHNESS LENGTH OF HEAT. |
---|
| 3022 | ! ---------------------------------------------------------------------- |
---|
| 3023 | REAL CZIL |
---|
| 3024 | REAL CZIL_DATA |
---|
| 3025 | ! changed in version 2.6 June 2nd 2003 |
---|
| 3026 | ! DATA CZIL_DATA /0.2/ |
---|
| 3027 | DATA CZIL_DATA /0.1/ |
---|
| 3028 | |
---|
| 3029 | ! ---------------------------------------------------------------------- |
---|
| 3030 | ! PARAMETER USED TO CALUCULATE VEGETATION EFFECT ON SOIL HEAT FLUX. |
---|
| 3031 | ! ---------------------------------------------------------------------- |
---|
| 3032 | REAL SBETA |
---|
| 3033 | REAL SBETA_DATA |
---|
| 3034 | DATA SBETA_DATA /-2.0/ |
---|
| 3035 | |
---|
| 3036 | ! ---------------------------------------------------------------------- |
---|
| 3037 | ! BARE SOIL EVAPORATION EXPONENT USED IN DEVAP. |
---|
| 3038 | ! ---------------------------------------------------------------------- |
---|
| 3039 | REAL FXEXP |
---|
| 3040 | REAL FXEXP_DATA |
---|
| 3041 | DATA FXEXP_DATA /2.0/ |
---|
| 3042 | |
---|
| 3043 | ! ---------------------------------------------------------------------- |
---|
| 3044 | ! SOIL HEAT CAPACITY [J M-3 K-1] |
---|
| 3045 | ! ---------------------------------------------------------------------- |
---|
| 3046 | REAL CSOIL |
---|
| 3047 | REAL CSOIL_DATA |
---|
| 3048 | ! DATA CSOIL_DATA /1.26E+6/ |
---|
| 3049 | DATA CSOIL_DATA /2.00E+6/ |
---|
| 3050 | |
---|
| 3051 | ! ---------------------------------------------------------------------- |
---|
| 3052 | ! SPECIFY SNOW DISTRIBUTION SHAPE PARAMETER SALP - SHAPE PARAMETER OF |
---|
| 3053 | ! DISTRIBUTION FUNCTION OF SNOW COVER. FROM ANDERSON'S DATA (HYDRO-17) |
---|
| 3054 | ! BEST FIT IS WHEN SALP = 2.6 |
---|
| 3055 | ! ---------------------------------------------------------------------- |
---|
| 3056 | REAL SALP |
---|
| 3057 | REAL SALP_DATA |
---|
| 3058 | ! changed for version 2.6 June 2nd 2003 |
---|
| 3059 | ! DATA SALP_DATA /2.6/ |
---|
| 3060 | DATA SALP_DATA /4.0/ |
---|
| 3061 | |
---|
| 3062 | ! ---------------------------------------------------------------------- |
---|
| 3063 | ! KDT IS DEFINED BY REFERENCE REFKDT AND DKSAT; REFDK=2.E-6 IS THE SAT. |
---|
| 3064 | ! DK. VALUE FOR THE SOIL TYPE 2 |
---|
| 3065 | ! ---------------------------------------------------------------------- |
---|
| 3066 | REAL REFDK |
---|
| 3067 | REAL REFDK_DATA |
---|
| 3068 | DATA REFDK_DATA /2.0E-6/ |
---|
| 3069 | |
---|
| 3070 | REAL REFKDT |
---|
| 3071 | REAL REFKDT_DATA |
---|
| 3072 | DATA REFKDT_DATA /3.0/ |
---|
| 3073 | |
---|
| 3074 | REAL FRZX |
---|
| 3075 | REAL KDT |
---|
| 3076 | |
---|
| 3077 | ! ---------------------------------------------------------------------- |
---|
| 3078 | ! FROZEN GROUND PARAMETER, FRZK, DEFINITION: ICE CONTENT THRESHOLD ABOVE |
---|
| 3079 | ! WHICH FROZEN SOIL IS IMPERMEABLE REFERENCE VALUE OF THIS PARAMETER FOR |
---|
| 3080 | ! THE LIGHT CLAY SOIL (TYPE=3) FRZK = 0.15 M. |
---|
| 3081 | ! ---------------------------------------------------------------------- |
---|
| 3082 | REAL FRZK |
---|
| 3083 | REAL FRZK_DATA |
---|
| 3084 | DATA FRZK_DATA /0.15/ |
---|
| 3085 | |
---|
| 3086 | REAL RTDIS(NSOIL) |
---|
| 3087 | REAL SLDPTH(NSOIL) |
---|
| 3088 | REAL ZSOIL(NSOIL) |
---|
| 3089 | |
---|
| 3090 | ! ---------------------------------------------------------------------- |
---|
| 3091 | ! SET TWO CANOPY WATER PARAMETERS. |
---|
| 3092 | ! ---------------------------------------------------------------------- |
---|
| 3093 | REAL CFACTR |
---|
| 3094 | REAL CFACTR_DATA |
---|
| 3095 | DATA CFACTR_DATA /0.5/ |
---|
| 3096 | |
---|
| 3097 | REAL CMCMAX |
---|
| 3098 | REAL CMCMAX_DATA |
---|
| 3099 | DATA CMCMAX_DATA /0.5E-3/ |
---|
| 3100 | |
---|
| 3101 | ! ---------------------------------------------------------------------- |
---|
| 3102 | ! SET MAX. STOMATAL RESISTANCE. |
---|
| 3103 | ! ---------------------------------------------------------------------- |
---|
| 3104 | REAL RSMAX |
---|
| 3105 | REAL RSMAX_DATA |
---|
| 3106 | DATA RSMAX_DATA /5000.0/ |
---|
| 3107 | |
---|
| 3108 | ! ---------------------------------------------------------------------- |
---|
| 3109 | ! SET OPTIMUM TRANSPIRATION AIR TEMPERATURE. |
---|
| 3110 | ! ---------------------------------------------------------------------- |
---|
| 3111 | REAL TOPT |
---|
| 3112 | REAL TOPT_DATA |
---|
| 3113 | DATA TOPT_DATA /298.0/ |
---|
| 3114 | |
---|
| 3115 | ! ---------------------------------------------------------------------- |
---|
| 3116 | ! SPECIFY DEPTH[M] OF LOWER BOUNDARY SOIL TEMPERATURE. |
---|
| 3117 | ! ---------------------------------------------------------------------- |
---|
| 3118 | REAL ZBOT |
---|
| 3119 | REAL ZBOT_DATA |
---|
| 3120 | ! changed for version 2.5.2 |
---|
| 3121 | ! DATA ZBOT_DATA /-3.0/ |
---|
| 3122 | DATA ZBOT_DATA /-8.0/ |
---|
| 3123 | |
---|
| 3124 | ! ---------------------------------------------------------------------- |
---|
| 3125 | ! SET TWO SOIL MOISTURE WILT, SOIL MOISTURE REFERENCE PARAMETERS |
---|
| 3126 | ! ---------------------------------------------------------------------- |
---|
| 3127 | REAL SMLOW |
---|
| 3128 | REAL SMLOW_DATA |
---|
| 3129 | DATA SMLOW_DATA /0.5/ |
---|
| 3130 | |
---|
| 3131 | REAL SMHIGH |
---|
| 3132 | REAL SMHIGH_DATA |
---|
| 3133 | ! changed in 2.6 from 3 to 6 on June 2nd 2003 |
---|
| 3134 | DATA SMHIGH_DATA /3.0/ |
---|
| 3135 | ! DATA SMHIGH_DATA /6.0/ |
---|
| 3136 | |
---|
| 3137 | ! ---------------------------------------------------------------------- |
---|
| 3138 | ! NAMELIST DEFINITION: |
---|
| 3139 | ! ---------------------------------------------------------------------- |
---|
| 3140 | NAMELIST /SOIL_VEG/ SLOPE_DATA, RSMTBL, RGLTBL, HSTBL, SNUPX, & |
---|
| 3141 | & BB, DRYSMC, F11, MAXSMC, REFSMC, SATPSI, SATDK, SATDW, & |
---|
| 3142 | & WLTSMC, QTZ, LPARAM, ZBOT_DATA, SALP_DATA, CFACTR_DATA, & |
---|
| 3143 | & CMCMAX_DATA, SBETA_DATA, RSMAX_DATA, TOPT_DATA, & |
---|
| 3144 | & REFDK_DATA, FRZK_DATA, BARE, DEFINED_VEG, DEFINED_SOIL, & |
---|
| 3145 | & DEFINED_SLOPE, FXEXP_DATA, NROOT_DATA, REFKDT_DATA, Z0_DATA, & |
---|
| 3146 | & CZIL_DATA, LAI_DATA, CSOIL_DATA |
---|
| 3147 | |
---|
| 3148 | ! ---------------------------------------------------------------------- |
---|
| 3149 | ! READ NAMELIST FILE TO OVERRIDE DEFAULT PARAMETERS ONLY ONCE. |
---|
| 3150 | ! NAMELIST_NAME must be 50 characters or less. |
---|
| 3151 | ! ---------------------------------------------------------------------- |
---|
| 3152 | IF (LFIRST) THEN |
---|
| 3153 | ! WRITE(*,*) 'READ NAMELIST' |
---|
| 3154 | ! OPEN(58, FILE = 'namelist_filename.txt') |
---|
| 3155 | ! READ(58,'(A)') NAMELIST_NAME |
---|
| 3156 | ! CLOSE(58) |
---|
| 3157 | ! WRITE(*,*) 'Namelist Filename is ', NAMELIST_NAME |
---|
| 3158 | ! OPEN(59, FILE = NAMELIST_NAME) |
---|
| 3159 | ! 50 CONTINUE |
---|
| 3160 | ! READ(59, SOIL_VEG, END=100) |
---|
| 3161 | ! IF (LPARAM) GOTO 50 |
---|
| 3162 | ! 100 CONTINUE |
---|
| 3163 | ! CLOSE(59) |
---|
| 3164 | ! WRITE(*,NML=SOIL_VEG) |
---|
| 3165 | LFIRST = .FALSE. |
---|
| 3166 | IF (DEFINED_SOIL .GT. MAX_SOILTYP) THEN |
---|
| 3167 | WRITE(wrf_err_message,*) 'Warning: DEFINED_SOIL too large in namelist' |
---|
| 3168 | CALL wrf_error_fatal( wrf_err_message ) |
---|
| 3169 | ! STOP 222 |
---|
| 3170 | ENDIF |
---|
| 3171 | IF (DEFINED_VEG .GT. MAX_VEGTYP) THEN |
---|
| 3172 | WRITE(wrf_err_message,*) 'Warning: DEFINED_VEG too large in namelist' |
---|
| 3173 | CALL wrf_error_fatal( wrf_err_message ) |
---|
| 3174 | ! STOP 222 |
---|
| 3175 | ENDIF |
---|
| 3176 | IF (DEFINED_SLOPE .GT. MAX_SLOPETYP) THEN |
---|
| 3177 | WRITE(wrf_err_message,*) 'Warning: DEFINED_SLOPE too large in namelist' |
---|
| 3178 | CALL wrf_error_fatal( wrf_err_message ) |
---|
| 3179 | ! STOP 222 |
---|
| 3180 | ENDIF |
---|
| 3181 | |
---|
| 3182 | SMLOW = SMLOW_DATA |
---|
| 3183 | SMHIGH = SMHIGH_DATA |
---|
| 3184 | |
---|
| 3185 | DO I = 1,DEFINED_SOIL |
---|
| 3186 | SATDW(I) = BB(I)*SATDK(I)*(SATPSI(I)/MAXSMC(I)) |
---|
| 3187 | F11(I) = ALOG10(SATPSI(I)) + BB(I)*ALOG10(MAXSMC(I)) + 2.0 |
---|
| 3188 | REFSMC1 = MAXSMC(I)*(5.79E-9/SATDK(I)) & |
---|
| 3189 | & **(1.0/(2.0*BB(I)+3.0)) |
---|
| 3190 | REFSMC(I) = REFSMC1 + (MAXSMC(I)-REFSMC1) / SMHIGH |
---|
| 3191 | WLTSMC1 = MAXSMC(I) * (200.0/SATPSI(I))**(-1.0/BB(I)) |
---|
| 3192 | WLTSMC(I) = WLTSMC1 - SMLOW * WLTSMC1 |
---|
| 3193 | |
---|
| 3194 | ! ---------------------------------------------------------------------- |
---|
| 3195 | ! CURRENT VERSION DRYSMC VALUES THAT EQUATE TO WLTSMC. |
---|
| 3196 | ! FUTURE VERSION COULD LET DRYSMC BE INDEPENDENTLY SET VIA NAMELIST. |
---|
| 3197 | ! ---------------------------------------------------------------------- |
---|
| 3198 | DRYSMC(I) = WLTSMC(I) |
---|
| 3199 | END DO |
---|
| 3200 | |
---|
| 3201 | ! ---------------------------------------------------------------------- |
---|
| 3202 | ! END LFIRST BLOCK |
---|
| 3203 | ! ---------------------------------------------------------------------- |
---|
| 3204 | ENDIF |
---|
| 3205 | |
---|
| 3206 | IF (SOILTYP .GT. DEFINED_SOIL) THEN |
---|
| 3207 | WRITE(wrf_err_message,*) 'Warning: too many soil types' |
---|
| 3208 | CALL wrf_error_fatal( wrf_err_message ) |
---|
| 3209 | ! STOP 333 |
---|
| 3210 | ENDIF |
---|
| 3211 | IF (VEGTYP .GT. DEFINED_VEG) THEN |
---|
| 3212 | WRITE(wrf_err_message,*) 'Warning: too many veg types' |
---|
| 3213 | ! STOP 333 |
---|
| 3214 | ENDIF |
---|
| 3215 | IF (SLOPETYP .GT. DEFINED_SLOPE) THEN |
---|
| 3216 | WRITE(wrf_err_message,*) 'Warning: too many slope types' |
---|
| 3217 | ! STOP 333 |
---|
| 3218 | ENDIF |
---|
| 3219 | |
---|
| 3220 | ! ---------------------------------------------------------------------- |
---|
| 3221 | ! SET-UP UNIVERSAL PARAMETERS (NOT DEPENDENT ON SOILTYP, VEGTYP OR |
---|
| 3222 | ! SLOPETYP) |
---|
| 3223 | ! ---------------------------------------------------------------------- |
---|
| 3224 | ZBOT = ZBOT_DATA |
---|
| 3225 | SALP = SALP_DATA |
---|
| 3226 | CFACTR = CFACTR_DATA |
---|
| 3227 | CMCMAX = CMCMAX_DATA |
---|
| 3228 | SBETA = SBETA_DATA |
---|
| 3229 | RSMAX = RSMAX_DATA |
---|
| 3230 | TOPT = TOPT_DATA |
---|
| 3231 | REFDK = REFDK_DATA |
---|
| 3232 | FRZK = FRZK_DATA |
---|
| 3233 | FXEXP = FXEXP_DATA |
---|
| 3234 | REFKDT = REFKDT_DATA |
---|
| 3235 | CZIL = CZIL_DATA |
---|
| 3236 | CSOIL = CSOIL_DATA |
---|
| 3237 | |
---|
| 3238 | ! ---------------------------------------------------------------------- |
---|
| 3239 | ! SET-UP SOIL PARAMETERS |
---|
| 3240 | ! ---------------------------------------------------------------------- |
---|
| 3241 | BEXP = BB(SOILTYP) |
---|
| 3242 | DKSAT = SATDK(SOILTYP) |
---|
| 3243 | DWSAT = SATDW(SOILTYP) |
---|
| 3244 | F1 = F11(SOILTYP) |
---|
| 3245 | KDT = REFKDT * DKSAT/REFDK |
---|
| 3246 | PSISAT = SATPSI(SOILTYP) |
---|
| 3247 | QUARTZ = QTZ(SOILTYP) |
---|
| 3248 | SMCDRY = DRYSMC(SOILTYP) |
---|
| 3249 | SMCMAX = MAXSMC(SOILTYP) |
---|
| 3250 | SMCREF = REFSMC(SOILTYP) |
---|
| 3251 | SMCWLT = WLTSMC(SOILTYP) |
---|
| 3252 | FRZFACT = (SMCMAX / SMCREF) * (0.412 / 0.468) |
---|
| 3253 | |
---|
| 3254 | ! ---------------------------------------------------------------------- |
---|
| 3255 | ! TO ADJUST FRZK PARAMETER TO ACTUAL SOIL TYPE: FRZK * FRZFACT |
---|
| 3256 | ! ---------------------------------------------------------------------- |
---|
| 3257 | FRZX = FRZK * FRZFACT |
---|
| 3258 | |
---|
| 3259 | ! ---------------------------------------------------------------------- |
---|
| 3260 | ! SET-UP VEGETATION PARAMETERS |
---|
| 3261 | ! ---------------------------------------------------------------------- |
---|
| 3262 | NROOT = NROOT_DATA(VEGTYP) |
---|
| 3263 | SNUP = SNUPX(VEGTYP) |
---|
| 3264 | RSMIN = RSMTBL(VEGTYP) |
---|
| 3265 | RGL = RGLTBL(VEGTYP) |
---|
| 3266 | HS = HSTBL(VEGTYP) |
---|
| 3267 | Z0 = Z0_DATA(VEGTYP) |
---|
| 3268 | LAI = LAI_DATA(VEGTYP) |
---|
| 3269 | IF (VEGTYP .EQ. BARE) SHDFAC = 0.0 |
---|
| 3270 | |
---|
| 3271 | IF (NROOT .GT. NSOIL) THEN |
---|
| 3272 | WRITE(wrf_err_message,*) 'Warning: too many root layers' |
---|
| 3273 | CALL wrf_error_fatal(wrf_err_message) |
---|
| 3274 | ! STOP 333 |
---|
| 3275 | ENDIF |
---|
| 3276 | |
---|
| 3277 | ! ---------------------------------------------------------------------- |
---|
| 3278 | ! CALCULATE ROOT DISTRIBUTION. PRESENT VERSION ASSUMES UNIFORM |
---|
| 3279 | ! DISTRIBUTION BASED ON SOIL LAYER DEPTHS. |
---|
| 3280 | ! ---------------------------------------------------------------------- |
---|
| 3281 | DO I = 1,NROOT |
---|
| 3282 | RTDIS(I) = -SLDPTH(I)/ZSOIL(NROOT) |
---|
| 3283 | END DO |
---|
| 3284 | |
---|
| 3285 | ! ---------------------------------------------------------------------- |
---|
| 3286 | ! SET-UP SLOPE PARAMETER |
---|
| 3287 | ! ---------------------------------------------------------------------- |
---|
| 3288 | SLOPE = SLOPE_DATA(SLOPETYP) |
---|
| 3289 | |
---|
| 3290 | ! ---------------------------------------------------------------------- |
---|
| 3291 | ! END SUBROUTINE REDPRM |
---|
| 3292 | ! ---------------------------------------------------------------------- |
---|
| 3293 | END SUBROUTINE REDPRM |
---|
| 3294 | |
---|
| 3295 | SUBROUTINE ROSR12 (P,A,B,C,D,DELTA,NSOIL) |
---|
| 3296 | |
---|
| 3297 | IMPLICIT NONE |
---|
| 3298 | |
---|
| 3299 | ! ---------------------------------------------------------------------- |
---|
| 3300 | ! SUBROUTINE ROSR12 |
---|
| 3301 | ! ---------------------------------------------------------------------- |
---|
| 3302 | ! INVERT (SOLVE) THE TRI-DIAGONAL MATRIX PROBLEM SHOWN BELOW: |
---|
| 3303 | ! ### ### ### ### ### ### |
---|
| 3304 | ! #B(1), C(1), 0 , 0 , 0 , . . . , 0 # # # # # |
---|
| 3305 | ! #A(2), B(2), C(2), 0 , 0 , . . . , 0 # # # # # |
---|
| 3306 | ! # 0 , A(3), B(3), C(3), 0 , . . . , 0 # # # # D(3) # |
---|
| 3307 | ! # 0 , 0 , A(4), B(4), C(4), . . . , 0 # # P(4) # # D(4) # |
---|
| 3308 | ! # 0 , 0 , 0 , A(5), B(5), . . . , 0 # # P(5) # # D(5) # |
---|
| 3309 | ! # . . # # . # = # . # |
---|
| 3310 | ! # . . # # . # # . # |
---|
| 3311 | ! # . . # # . # # . # |
---|
| 3312 | ! # 0 , . . . , 0 , A(M-2), B(M-2), C(M-2), 0 # #P(M-2)# #D(M-2)# |
---|
| 3313 | ! # 0 , . . . , 0 , 0 , A(M-1), B(M-1), C(M-1)# #P(M-1)# #D(M-1)# |
---|
| 3314 | ! # 0 , . . . , 0 , 0 , 0 , A(M) , B(M) # # P(M) # # D(M) # |
---|
| 3315 | ! ### ### ### ### ### ### |
---|
| 3316 | ! ---------------------------------------------------------------------- |
---|
| 3317 | INTEGER K |
---|
| 3318 | INTEGER KK |
---|
| 3319 | INTEGER NSOIL |
---|
| 3320 | |
---|
| 3321 | REAL A(NSOIL) |
---|
| 3322 | REAL B(NSOIL) |
---|
| 3323 | REAL C(NSOIL) |
---|
| 3324 | REAL D(NSOIL) |
---|
| 3325 | REAL DELTA(NSOIL) |
---|
| 3326 | REAL P(NSOIL) |
---|
| 3327 | |
---|
| 3328 | ! ---------------------------------------------------------------------- |
---|
| 3329 | ! INITIALIZE EQN COEF C FOR THE LOWEST SOIL LAYER |
---|
| 3330 | ! ---------------------------------------------------------------------- |
---|
| 3331 | C(NSOIL) = 0.0 |
---|
| 3332 | |
---|
| 3333 | ! ---------------------------------------------------------------------- |
---|
| 3334 | ! SOLVE THE COEFS FOR THE 1ST SOIL LAYER |
---|
| 3335 | ! ---------------------------------------------------------------------- |
---|
| 3336 | P(1) = -C(1) / B(1) |
---|
| 3337 | DELTA(1) = D(1) / B(1) |
---|
| 3338 | |
---|
| 3339 | ! ---------------------------------------------------------------------- |
---|
| 3340 | ! SOLVE THE COEFS FOR SOIL LAYERS 2 THRU NSOIL |
---|
| 3341 | ! ---------------------------------------------------------------------- |
---|
| 3342 | DO K = 2,NSOIL |
---|
| 3343 | P(K) = -C(K) * ( 1.0 / (B(K) + A (K) * P(K-1)) ) |
---|
| 3344 | DELTA(K) = (D(K)-A(K)*DELTA(K-1))*(1.0/(B(K)+A(K)*P(K-1))) |
---|
| 3345 | END DO |
---|
| 3346 | |
---|
| 3347 | ! ---------------------------------------------------------------------- |
---|
| 3348 | ! SET P TO DELTA FOR LOWEST SOIL LAYER |
---|
| 3349 | ! ---------------------------------------------------------------------- |
---|
| 3350 | P(NSOIL) = DELTA(NSOIL) |
---|
| 3351 | |
---|
| 3352 | ! ---------------------------------------------------------------------- |
---|
| 3353 | ! ADJUST P FOR SOIL LAYERS 2 THRU NSOIL |
---|
| 3354 | ! ---------------------------------------------------------------------- |
---|
| 3355 | DO K = 2,NSOIL |
---|
| 3356 | KK = NSOIL - K + 1 |
---|
| 3357 | P(KK) = P(KK) * P(KK+1) + DELTA(KK) |
---|
| 3358 | END DO |
---|
| 3359 | |
---|
| 3360 | ! ---------------------------------------------------------------------- |
---|
| 3361 | ! END SUBROUTINE ROSR12 |
---|
| 3362 | ! ---------------------------------------------------------------------- |
---|
| 3363 | END SUBROUTINE ROSR12 |
---|
| 3364 | |
---|
| 3365 | SUBROUTINE SHFLX (SSOIL,STC,SMC,SMCMAX,NSOIL,T1,DT,YY,ZZ1,ZSOIL, & |
---|
| 3366 | & TBOT,ZBOT,SMCWLT,PSISAT,SH2O,BEXP,F1,DF1,ICE, & |
---|
| 3367 | & QUARTZ,CSOIL) |
---|
| 3368 | |
---|
| 3369 | IMPLICIT NONE |
---|
| 3370 | |
---|
| 3371 | ! ---------------------------------------------------------------------- |
---|
| 3372 | ! SUBROUTINE SHFLX |
---|
| 3373 | ! ---------------------------------------------------------------------- |
---|
| 3374 | ! UPDATE THE TEMPERATURE STATE OF THE SOIL COLUMN BASED ON THE THERMAL |
---|
| 3375 | ! DIFFUSION EQUATION AND UPDATE THE FROZEN SOIL MOISTURE CONTENT BASED |
---|
| 3376 | ! ON THE TEMPERATURE. |
---|
| 3377 | ! ---------------------------------------------------------------------- |
---|
| 3378 | INTEGER NSOLD |
---|
| 3379 | PARAMETER(NSOLD = 20) |
---|
| 3380 | |
---|
| 3381 | INTEGER I |
---|
| 3382 | INTEGER ICE |
---|
| 3383 | INTEGER IFRZ |
---|
| 3384 | INTEGER NSOIL |
---|
| 3385 | |
---|
| 3386 | REAL AI(NSOLD) |
---|
| 3387 | REAL BI(NSOLD) |
---|
| 3388 | REAL CI(NSOLD) |
---|
| 3389 | |
---|
| 3390 | REAL BEXP |
---|
| 3391 | REAL CSOIL |
---|
| 3392 | REAL DF1 |
---|
| 3393 | REAL DT |
---|
| 3394 | REAL F1 |
---|
| 3395 | REAL PSISAT |
---|
| 3396 | REAL QUARTZ |
---|
| 3397 | REAL RHSTS(NSOLD) |
---|
| 3398 | REAL SSOIL |
---|
| 3399 | REAL SH2O(NSOIL) |
---|
| 3400 | REAL SMC(NSOIL) |
---|
| 3401 | REAL SMCMAX |
---|
| 3402 | REAL SMCWLT |
---|
| 3403 | REAL STC(NSOIL) |
---|
| 3404 | REAL STCF(NSOLD) |
---|
| 3405 | REAL T0 |
---|
| 3406 | REAL T1 |
---|
| 3407 | REAL TBOT |
---|
| 3408 | REAL YY |
---|
| 3409 | REAL ZBOT |
---|
| 3410 | REAL ZSOIL(NSOIL) |
---|
| 3411 | REAL ZZ1 |
---|
| 3412 | |
---|
| 3413 | PARAMETER(T0 = 273.15) |
---|
| 3414 | |
---|
| 3415 | ! ---------------------------------------------------------------------- |
---|
| 3416 | ! HRT ROUTINE CALCS THE RIGHT HAND SIDE OF THE SOIL TEMP DIF EQN |
---|
| 3417 | ! ---------------------------------------------------------------------- |
---|
| 3418 | IF (ICE.EQ.1) THEN |
---|
| 3419 | |
---|
| 3420 | ! ---------------------------------------------------------------------- |
---|
| 3421 | ! SEA-ICE CASE |
---|
| 3422 | ! ---------------------------------------------------------------------- |
---|
| 3423 | CALL HRTICE (RHSTS,STC,NSOIL,ZSOIL,YY,ZZ1,DF1,AI,BI,CI) |
---|
| 3424 | |
---|
| 3425 | CALL HSTEP (STCF,STC,RHSTS,DT,NSOIL,AI,BI,CI) |
---|
| 3426 | |
---|
| 3427 | ELSE |
---|
| 3428 | |
---|
| 3429 | ! ---------------------------------------------------------------------- |
---|
| 3430 | ! LAND-MASS CASE |
---|
| 3431 | ! ---------------------------------------------------------------------- |
---|
| 3432 | CALL HRT (RHSTS,STC,SMC,SMCMAX,NSOIL,ZSOIL,YY,ZZ1,TBOT, & |
---|
| 3433 | & ZBOT,PSISAT,SH2O,DT, & |
---|
| 3434 | & BEXP,F1,DF1,QUARTZ,CSOIL,AI,BI,CI) |
---|
| 3435 | |
---|
| 3436 | CALL HSTEP (STCF,STC,RHSTS,DT,NSOIL,AI,BI,CI) |
---|
| 3437 | |
---|
| 3438 | ENDIF |
---|
| 3439 | |
---|
| 3440 | DO I = 1,NSOIL |
---|
| 3441 | STC(I) = STCF(I) |
---|
| 3442 | END DO |
---|
| 3443 | |
---|
| 3444 | ! ---------------------------------------------------------------------- |
---|
| 3445 | ! IN THE NO SNOWPACK CASE (VIA ROUTINE NOPAC BRANCH,) UPDATE THE GRND |
---|
| 3446 | ! (SKIN) TEMPERATURE HERE IN RESPONSE TO THE UPDATED SOIL TEMPERATURE |
---|
| 3447 | ! PROFILE ABOVE. (NOTE: INSPECTION OF ROUTINE SNOPAC SHOWS THAT T1 |
---|
| 3448 | ! BELOW IS A DUMMY VARIABLE ONLY, AS SKIN TEMPERATURE IS UPDATED |
---|
| 3449 | ! DIFFERENTLY IN ROUTINE SNOPAC) |
---|
| 3450 | ! ---------------------------------------------------------------------- |
---|
| 3451 | T1 = (YY + (ZZ1 - 1.0) * STC(1)) / ZZ1 |
---|
| 3452 | |
---|
| 3453 | ! ---------------------------------------------------------------------- |
---|
| 3454 | ! CALCULATE SURFACE SOIL HEAT FLUX |
---|
| 3455 | ! ---------------------------------------------------------------------- |
---|
| 3456 | SSOIL = DF1 * (STC(1) - T1) / (0.5 * ZSOIL(1)) |
---|
| 3457 | |
---|
| 3458 | ! ---------------------------------------------------------------------- |
---|
| 3459 | ! END SUBROUTINE SHFLX |
---|
| 3460 | ! ---------------------------------------------------------------------- |
---|
| 3461 | END SUBROUTINE SHFLX |
---|
| 3462 | |
---|
| 3463 | SUBROUTINE SMFLX (SMC,NSOIL,CMC,DT,PRCP1,ZSOIL, & |
---|
| 3464 | & SH2O,SLOPE,KDT,FRZFACT, & |
---|
| 3465 | & SMCMAX,BEXP,SMCWLT,DKSAT,DWSAT, & |
---|
| 3466 | & SHDFAC,CMCMAX, & |
---|
| 3467 | & RUNOFF1,RUNOFF2,RUNOFF3, & |
---|
| 3468 | & EDIR1,EC1,ET1, & |
---|
| 3469 | & DRIP) |
---|
| 3470 | |
---|
| 3471 | IMPLICIT NONE |
---|
| 3472 | |
---|
| 3473 | ! ---------------------------------------------------------------------- |
---|
| 3474 | ! SUBROUTINE SMFLX |
---|
| 3475 | ! ---------------------------------------------------------------------- |
---|
| 3476 | ! CALCULATE SOIL MOISTURE FLUX. THE SOIL MOISTURE CONTENT (SMC - A PER |
---|
| 3477 | ! UNIT VOLUME MEASUREMENT) IS A DEPENDENT VARIABLE THAT IS UPDATED WITH |
---|
| 3478 | ! PROGNOSTIC EQNS. THE CANOPY MOISTURE CONTENT (CMC) IS ALSO UPDATED. |
---|
| 3479 | ! FROZEN GROUND VERSION: NEW STATES ADDED: SH2O, AND FROZEN GROUND |
---|
| 3480 | ! CORRECTION FACTOR, FRZFACT AND PARAMETER SLOPE. |
---|
| 3481 | ! ---------------------------------------------------------------------- |
---|
| 3482 | INTEGER NSOLD |
---|
| 3483 | PARAMETER(NSOLD = 20) |
---|
| 3484 | |
---|
| 3485 | INTEGER I |
---|
| 3486 | INTEGER K |
---|
| 3487 | INTEGER NSOIL |
---|
| 3488 | |
---|
| 3489 | REAL AI(NSOLD) |
---|
| 3490 | REAL BI(NSOLD) |
---|
| 3491 | REAL CI(NSOLD) |
---|
| 3492 | |
---|
| 3493 | REAL BEXP |
---|
| 3494 | REAL CMC |
---|
| 3495 | REAL CMCMAX |
---|
| 3496 | REAL DKSAT |
---|
| 3497 | REAL DRIP |
---|
| 3498 | REAL DT |
---|
| 3499 | REAL DUMMY |
---|
| 3500 | REAL DWSAT |
---|
| 3501 | REAL EC1 |
---|
| 3502 | REAL EDIR1 |
---|
| 3503 | REAL ET1(NSOIL) |
---|
| 3504 | REAL EXCESS |
---|
| 3505 | REAL FRZFACT |
---|
| 3506 | REAL KDT |
---|
| 3507 | REAL PCPDRP |
---|
| 3508 | REAL PRCP1 |
---|
| 3509 | REAL RHSCT |
---|
| 3510 | REAL RHSTT(NSOLD) |
---|
| 3511 | REAL RUNOFF1 |
---|
| 3512 | REAL RUNOFF2 |
---|
| 3513 | REAL RUNOFF3 |
---|
| 3514 | REAL SHDFAC |
---|
| 3515 | REAL SMC(NSOIL) |
---|
| 3516 | REAL SH2O(NSOIL) |
---|
| 3517 | REAL SICE(NSOLD) |
---|
| 3518 | REAL SH2OA(NSOLD) |
---|
| 3519 | REAL SH2OFG(NSOLD) |
---|
| 3520 | REAL SLOPE |
---|
| 3521 | REAL SMCMAX |
---|
| 3522 | REAL SMCWLT |
---|
| 3523 | REAL TRHSCT |
---|
| 3524 | REAL ZSOIL(NSOIL) |
---|
| 3525 | |
---|
| 3526 | ! ---------------------------------------------------------------------- |
---|
| 3527 | ! EXECUTABLE CODE BEGINS HERE. |
---|
| 3528 | ! ---------------------------------------------------------------------- |
---|
| 3529 | DUMMY = 0. |
---|
| 3530 | |
---|
| 3531 | ! ---------------------------------------------------------------------- |
---|
| 3532 | ! COMPUTE THE RIGHT HAND SIDE OF THE CANOPY EQN TERM ( RHSCT ) |
---|
| 3533 | ! ---------------------------------------------------------------------- |
---|
| 3534 | RHSCT = SHDFAC * PRCP1 - EC1 |
---|
| 3535 | |
---|
| 3536 | ! ---------------------------------------------------------------------- |
---|
| 3537 | ! CONVERT RHSCT (A RATE) TO TRHSCT (AN AMOUNT) AND ADD IT TO EXISTING |
---|
| 3538 | ! CMC. IF RESULTING AMT EXCEEDS MAX CAPACITY, IT BECOMES DRIP AND WILL |
---|
| 3539 | ! FALL TO THE GRND. |
---|
| 3540 | ! ---------------------------------------------------------------------- |
---|
| 3541 | DRIP = 0. |
---|
| 3542 | TRHSCT = DT * RHSCT |
---|
| 3543 | EXCESS = CMC + TRHSCT |
---|
| 3544 | IF (EXCESS .GT. CMCMAX) DRIP = EXCESS - CMCMAX |
---|
| 3545 | |
---|
| 3546 | ! ---------------------------------------------------------------------- |
---|
| 3547 | ! PCPDRP IS THE COMBINED PRCP1 AND DRIP (FROM CMC) THAT GOES INTO THE |
---|
| 3548 | ! SOIL |
---|
| 3549 | ! ---------------------------------------------------------------------- |
---|
| 3550 | PCPDRP = (1. - SHDFAC) * PRCP1 + DRIP / DT |
---|
| 3551 | |
---|
| 3552 | ! ---------------------------------------------------------------------- |
---|
| 3553 | ! STORE ICE CONTENT AT EACH SOIL LAYER BEFORE CALLING SRT & SSTEP |
---|
| 3554 | ! ---------------------------------------------------------------------- |
---|
| 3555 | DO I = 1,NSOIL |
---|
| 3556 | SICE(I) = SMC(I) - SH2O(I) |
---|
| 3557 | END DO |
---|
| 3558 | |
---|
| 3559 | ! ---------------------------------------------------------------------- |
---|
| 3560 | ! CALL SUBROUTINES SRT AND SSTEP TO SOLVE THE SOIL MOISTURE |
---|
| 3561 | ! TENDENCY EQUATIONS. |
---|
| 3562 | ! |
---|
| 3563 | ! IF THE INFILTRATING PRECIP RATE IS NONTRIVIAL, |
---|
| 3564 | ! (WE CONSIDER NONTRIVIAL TO BE A PRECIP TOTAL OVER THE TIME STEP |
---|
| 3565 | ! EXCEEDING ONE ONE-THOUSANDTH OF THE WATER HOLDING CAPACITY OF |
---|
| 3566 | ! THE FIRST SOIL LAYER) |
---|
| 3567 | ! THEN CALL THE SRT/SSTEP SUBROUTINE PAIR TWICE IN THE MANNER OF |
---|
| 3568 | ! TIME SCHEME "F" (IMPLICIT STATE, AVERAGED COEFFICIENT) |
---|
| 3569 | ! OF SECTION 2 OF KALNAY AND KANAMITSU (1988, MWR, VOL 116, |
---|
| 3570 | ! PAGES 1945-1958)TO MINIMIZE 2-DELTA-T OSCILLATIONS IN THE |
---|
| 3571 | ! SOIL MOISTURE VALUE OF THE TOP SOIL LAYER THAT CAN ARISE BECAUSE |
---|
| 3572 | ! OF THE EXTREME NONLINEAR DEPENDENCE OF THE SOIL HYDRAULIC |
---|
| 3573 | ! DIFFUSIVITY COEFFICIENT AND THE HYDRAULIC CONDUCTIVITY ON THE |
---|
| 3574 | ! SOIL MOISTURE STATE |
---|
| 3575 | ! OTHERWISE CALL THE SRT/SSTEP SUBROUTINE PAIR ONCE IN THE MANNER OF |
---|
| 3576 | ! TIME SCHEME "D" (IMPLICIT STATE, EXPLICIT COEFFICIENT) |
---|
| 3577 | ! OF SECTION 2 OF KALNAY AND KANAMITSU |
---|
| 3578 | ! PCPDRP IS UNITS OF KG/M**2/S OR MM/S, ZSOIL IS NEGATIVE DEPTH IN M |
---|
| 3579 | ! ---------------------------------------------------------------------- |
---|
| 3580 | ! IF ( PCPDRP .GT. 0.0 ) THEN |
---|
| 3581 | IF ( (PCPDRP*DT) .GT. (0.001*1000.0*(-ZSOIL(1))*SMCMAX) ) THEN |
---|
| 3582 | |
---|
| 3583 | ! ---------------------------------------------------------------------- |
---|
| 3584 | ! FROZEN GROUND VERSION: |
---|
| 3585 | ! SMC STATES REPLACED BY SH2O STATES IN SRT SUBR. SH2O & SICE STATES |
---|
| 3586 | ! INCLUDED IN SSTEP SUBR. FROZEN GROUND CORRECTION FACTOR, FRZFACT |
---|
| 3587 | ! ADDED. ALL WATER BALANCE CALCULATIONS USING UNFROZEN WATER |
---|
| 3588 | ! ---------------------------------------------------------------------- |
---|
| 3589 | CALL SRT (RHSTT,EDIR1,ET1,SH2O,SH2O,NSOIL,PCPDRP,ZSOIL, & |
---|
| 3590 | & DWSAT,DKSAT,SMCMAX,BEXP,RUNOFF1, & |
---|
| 3591 | & RUNOFF2,DT,SMCWLT,SLOPE,KDT,FRZFACT,SICE,AI,BI,CI) |
---|
| 3592 | |
---|
| 3593 | CALL SSTEP (SH2OFG,SH2O,DUMMY,RHSTT,RHSCT,DT,NSOIL,SMCMAX, & |
---|
| 3594 | & CMCMAX,RUNOFF3,ZSOIL,SMC,SICE,AI,BI,CI) |
---|
| 3595 | |
---|
| 3596 | DO K = 1,NSOIL |
---|
| 3597 | SH2OA(K) = (SH2O(K) + SH2OFG(K)) * 0.5 |
---|
| 3598 | END DO |
---|
| 3599 | |
---|
| 3600 | CALL SRT (RHSTT,EDIR1,ET1,SH2O,SH2OA,NSOIL,PCPDRP,ZSOIL, & |
---|
| 3601 | & DWSAT,DKSAT,SMCMAX,BEXP,RUNOFF1, & |
---|
| 3602 | & RUNOFF2,DT,SMCWLT,SLOPE,KDT,FRZFACT,SICE,AI,BI,CI) |
---|
| 3603 | |
---|
| 3604 | CALL SSTEP (SH2O,SH2O,CMC,RHSTT,RHSCT,DT,NSOIL,SMCMAX, & |
---|
| 3605 | & CMCMAX,RUNOFF3,ZSOIL,SMC,SICE,AI,BI,CI) |
---|
| 3606 | |
---|
| 3607 | ELSE |
---|
| 3608 | |
---|
| 3609 | CALL SRT (RHSTT,EDIR1,ET1,SH2O,SH2O,NSOIL,PCPDRP,ZSOIL, & |
---|
| 3610 | & DWSAT,DKSAT,SMCMAX,BEXP,RUNOFF1, & |
---|
| 3611 | & RUNOFF2,DT,SMCWLT,SLOPE,KDT,FRZFACT,SICE,AI,BI,CI) |
---|
| 3612 | |
---|
| 3613 | CALL SSTEP (SH2O,SH2O,CMC,RHSTT,RHSCT,DT,NSOIL,SMCMAX, & |
---|
| 3614 | & CMCMAX,RUNOFF3,ZSOIL,SMC,SICE,AI,BI,CI) |
---|
| 3615 | |
---|
| 3616 | ENDIF |
---|
| 3617 | |
---|
| 3618 | ! RUNOF = RUNOFF |
---|
| 3619 | |
---|
| 3620 | ! ---------------------------------------------------------------------- |
---|
| 3621 | ! END SUBROUTINE SMFLX |
---|
| 3622 | ! ---------------------------------------------------------------------- |
---|
| 3623 | END SUBROUTINE SMFLX |
---|
| 3624 | |
---|
| 3625 | SUBROUTINE SNFRAC (SNEQV,SNUP,SALP,SNOWH,SNCOVR) |
---|
| 3626 | |
---|
| 3627 | IMPLICIT NONE |
---|
| 3628 | |
---|
| 3629 | ! ---------------------------------------------------------------------- |
---|
| 3630 | ! SUBROUTINE SNFRAC |
---|
| 3631 | ! ---------------------------------------------------------------------- |
---|
| 3632 | ! CALCULATE SNOW FRACTION (0 -> 1) |
---|
| 3633 | ! SNEQV SNOW WATER EQUIVALENT (M) |
---|
| 3634 | ! SNUP THRESHOLD SNEQV DEPTH ABOVE WHICH SNCOVR=1 |
---|
| 3635 | ! SALP TUNING PARAMETER |
---|
| 3636 | ! SNCOVR FRACTIONAL SNOW COVER |
---|
| 3637 | ! ---------------------------------------------------------------------- |
---|
| 3638 | REAL SNEQV, SNUP, SALP, SNCOVR, RSNOW, Z0N, SNOWH |
---|
| 3639 | |
---|
| 3640 | ! ---------------------------------------------------------------------- |
---|
| 3641 | ! SNUP IS VEG-CLASS DEPENDENT SNOWDEPTH THRESHHOLD (SET IN ROUTINE |
---|
| 3642 | ! REDPRM) ABOVE WHICH SNOCVR=1. |
---|
| 3643 | ! ---------------------------------------------------------------------- |
---|
| 3644 | IF (SNEQV .LT. SNUP) THEN |
---|
| 3645 | RSNOW = SNEQV/SNUP |
---|
| 3646 | SNCOVR = 1. - ( EXP(-SALP*RSNOW) - RSNOW*EXP(-SALP)) |
---|
| 3647 | ELSE |
---|
| 3648 | SNCOVR = 1.0 |
---|
| 3649 | ENDIF |
---|
| 3650 | |
---|
| 3651 | Z0N=0.035 |
---|
| 3652 | ! FORMULATION OF DICKINSON ET AL. 1986 |
---|
| 3653 | |
---|
| 3654 | ! SNCOVR=SNOWH/(SNOWH + 5*Z0N) |
---|
| 3655 | |
---|
| 3656 | ! FORMULATION OF MARSHALL ET AL. 1994 |
---|
| 3657 | ! SNCOVR=SNEQV/(SNEQV + 2*Z0N) |
---|
| 3658 | |
---|
| 3659 | ! ---------------------------------------------------------------------- |
---|
| 3660 | ! END SUBROUTINE SNFRAC |
---|
| 3661 | ! ---------------------------------------------------------------------- |
---|
| 3662 | END SUBROUTINE SNFRAC |
---|
| 3663 | |
---|
| 3664 | SUBROUTINE SNOPAC (ETP,ETA,PRCP,PRCP1,SNOWNG,SMC,SMCMAX,SMCWLT, & |
---|
| 3665 | & SMCREF,SMCDRY,CMC,CMCMAX,NSOIL,DT, & |
---|
| 3666 | & SBETA,DF1, & |
---|
| 3667 | & Q2,T1,SFCTMP,T24,TH2,FDOWN,F1,SSOIL,STC,EPSCA, & |
---|
| 3668 | & SFCPRS,BEXP,PC,RCH,RR,CFACTR,SNCOVR,ESD,SNDENS,& |
---|
| 3669 | & SNOWH,SH2O,SLOPE,KDT,FRZFACT,PSISAT,SNUP, & |
---|
| 3670 | & ZSOIL,DWSAT,DKSAT,TBOT,ZBOT,SHDFAC,RUNOFF1, & |
---|
| 3671 | & RUNOFF2,RUNOFF3,EDIR,EC,ET,ETT,NROOT,SNOMLT, & |
---|
| 3672 | & ICE,RTDIS,QUARTZ,FXEXP,CSOIL, & |
---|
| 3673 | & BETA,DRIP,DEW,FLX1,FLX2,FLX3,ESNOW) |
---|
| 3674 | |
---|
| 3675 | IMPLICIT NONE |
---|
| 3676 | |
---|
| 3677 | ! ---------------------------------------------------------------------- |
---|
| 3678 | ! SUBROUTINE SNOPAC |
---|
| 3679 | ! ---------------------------------------------------------------------- |
---|
| 3680 | ! CALCULATE SOIL MOISTURE AND HEAT FLUX VALUES & UPDATE SOIL MOISTURE |
---|
| 3681 | ! CONTENT AND SOIL HEAT CONTENT VALUES FOR THE CASE WHEN A SNOW PACK IS |
---|
| 3682 | ! PRESENT. |
---|
| 3683 | ! ---------------------------------------------------------------------- |
---|
| 3684 | INTEGER ICE |
---|
| 3685 | INTEGER NROOT |
---|
| 3686 | INTEGER NSOIL |
---|
| 3687 | |
---|
| 3688 | LOGICAL SNOWNG |
---|
| 3689 | |
---|
| 3690 | REAL BEXP |
---|
| 3691 | REAL BETA |
---|
| 3692 | REAL CFACTR |
---|
| 3693 | REAL CMC |
---|
| 3694 | REAL CMCMAX |
---|
| 3695 | REAL CP |
---|
| 3696 | REAL CPH2O |
---|
| 3697 | REAL CPICE |
---|
| 3698 | REAL CSOIL |
---|
| 3699 | REAL DENOM |
---|
| 3700 | REAL DEW |
---|
| 3701 | REAL DF1 |
---|
| 3702 | REAL DKSAT |
---|
| 3703 | REAL DRIP |
---|
| 3704 | REAL DSOIL |
---|
| 3705 | REAL DTOT |
---|
| 3706 | REAL DT |
---|
| 3707 | REAL DWSAT |
---|
| 3708 | REAL EC |
---|
| 3709 | REAL EDIR |
---|
| 3710 | REAL EPSCA |
---|
| 3711 | REAL ESD |
---|
| 3712 | REAL ESDMIN |
---|
| 3713 | REAL EXPSNO |
---|
| 3714 | REAL EXPSOI |
---|
| 3715 | REAL ETA |
---|
| 3716 | REAL ETA1 |
---|
| 3717 | REAL ETP |
---|
| 3718 | REAL ETP1 |
---|
| 3719 | REAL ETP2 |
---|
| 3720 | REAL ET(NSOIL) |
---|
| 3721 | REAL ETT |
---|
| 3722 | REAL EX |
---|
| 3723 | REAL EXPFAC |
---|
| 3724 | REAL FDOWN |
---|
| 3725 | REAL FXEXP |
---|
| 3726 | REAL FLX1 |
---|
| 3727 | REAL FLX2 |
---|
| 3728 | REAL FLX3 |
---|
| 3729 | REAL F1 |
---|
| 3730 | REAL KDT |
---|
| 3731 | REAL LSUBF |
---|
| 3732 | REAL LSUBC |
---|
| 3733 | REAL LSUBS |
---|
| 3734 | REAL PC |
---|
| 3735 | REAL PRCP |
---|
| 3736 | REAL PRCP1 |
---|
| 3737 | REAL Q2 |
---|
| 3738 | REAL RCH |
---|
| 3739 | REAL RR |
---|
| 3740 | REAL RTDIS(NSOIL) |
---|
| 3741 | REAL SSOIL |
---|
| 3742 | REAL SBETA |
---|
| 3743 | REAL SSOIL1 |
---|
| 3744 | REAL SFCTMP |
---|
| 3745 | REAL SHDFAC |
---|
| 3746 | REAL SIGMA |
---|
| 3747 | REAL SMC(NSOIL) |
---|
| 3748 | REAL SH2O(NSOIL) |
---|
| 3749 | REAL SMCDRY |
---|
| 3750 | REAL SMCMAX |
---|
| 3751 | REAL SMCREF |
---|
| 3752 | REAL SMCWLT |
---|
| 3753 | REAL SNOMLT |
---|
| 3754 | REAL SNOWH |
---|
| 3755 | REAL STC(NSOIL) |
---|
| 3756 | REAL T1 |
---|
| 3757 | REAL T11 |
---|
| 3758 | REAL T12 |
---|
| 3759 | REAL T12A |
---|
| 3760 | REAL T12B |
---|
| 3761 | REAL T24 |
---|
| 3762 | REAL TBOT |
---|
| 3763 | REAL ZBOT |
---|
| 3764 | REAL TH2 |
---|
| 3765 | REAL YY |
---|
| 3766 | REAL ZSOIL(NSOIL) |
---|
| 3767 | REAL ZZ1 |
---|
| 3768 | REAL TFREEZ |
---|
| 3769 | REAL SALP |
---|
| 3770 | REAL SFCPRS |
---|
| 3771 | REAL SLOPE |
---|
| 3772 | REAL FRZFACT |
---|
| 3773 | REAL PSISAT |
---|
| 3774 | REAL SNUP |
---|
| 3775 | REAL RUNOFF1 |
---|
| 3776 | REAL RUNOFF2 |
---|
| 3777 | REAL RUNOFF3 |
---|
| 3778 | REAL QUARTZ |
---|
| 3779 | REAL SNDENS |
---|
| 3780 | REAL SNCOND |
---|
| 3781 | REAL RSNOW |
---|
| 3782 | REAL SNCOVR |
---|
| 3783 | REAL QSAT |
---|
| 3784 | REAL ETP3 |
---|
| 3785 | REAL SEH |
---|
| 3786 | REAL T14 |
---|
| 3787 | ! REAL CSNOW |
---|
| 3788 | |
---|
| 3789 | REAL EC1 |
---|
| 3790 | REAL EDIR1 |
---|
| 3791 | REAL ET1(NSOIL) |
---|
| 3792 | REAL ETT1 |
---|
| 3793 | |
---|
| 3794 | REAL ETNS |
---|
| 3795 | REAL ETNS1 |
---|
| 3796 | REAL ESNOW |
---|
| 3797 | REAL ESNOW1 |
---|
| 3798 | REAL ESNOW2 |
---|
| 3799 | REAL ETANRG |
---|
| 3800 | |
---|
| 3801 | INTEGER K |
---|
| 3802 | |
---|
| 3803 | REAL SNOEXP |
---|
| 3804 | |
---|
| 3805 | PARAMETER(CP = 1004.5) |
---|
| 3806 | PARAMETER(CPH2O = 4.218E+3) |
---|
| 3807 | PARAMETER(CPICE = 2.106E+3) |
---|
| 3808 | PARAMETER(ESDMIN = 1.E-6) |
---|
| 3809 | PARAMETER(LSUBF = 3.335E+5) |
---|
| 3810 | PARAMETER(LSUBC = 2.501000E+6) |
---|
| 3811 | PARAMETER(LSUBS = 2.83E+6) |
---|
| 3812 | PARAMETER(SIGMA = 5.67E-8) |
---|
| 3813 | PARAMETER(TFREEZ = 273.15) |
---|
| 3814 | |
---|
| 3815 | ! DATA SNOEXP /1.0/ |
---|
| 3816 | DATA SNOEXP /2.0/ |
---|
| 3817 | |
---|
| 3818 | ! ---------------------------------------------------------------------- |
---|
| 3819 | ! EXECUTABLE CODE BEGINS HERE: |
---|
| 3820 | ! CONVERT POTENTIAL EVAP (ETP) FROM KG M-2 S-1 TO M S-1 AND THEN TO AN |
---|
| 3821 | ! AMOUNT (M) GIVEN TIMESTEP (DT) AND CALL IT AN EFFECTIVE SNOWPACK |
---|
| 3822 | ! REDUCTION AMOUNT, ETP2 (M). THIS IS THE AMOUNT THE SNOWPACK WOULD BE |
---|
| 3823 | ! REDUCED DUE TO EVAPORATION FROM THE SNOW SFC DURING THE TIMESTEP. |
---|
| 3824 | ! EVAPORATION WILL PROCEED AT THE POTENTIAL RATE UNLESS THE SNOW DEPTH |
---|
| 3825 | ! IS LESS THAN THE EXPECTED SNOWPACK REDUCTION. |
---|
| 3826 | ! IF SEAICE (ICE=1), BETA REMAINS=1. |
---|
| 3827 | ! ---------------------------------------------------------------------- |
---|
| 3828 | PRCP1 = PRCP1*0.001 |
---|
| 3829 | |
---|
| 3830 | ! ETP2 = ETP * 0.001 * DT |
---|
| 3831 | ! BETA = 1.0 |
---|
| 3832 | ! IF (ICE .NE. 1) THEN |
---|
| 3833 | ! IF (ESD .LT. ETP2) THEN |
---|
| 3834 | ! BETA = ESD / ETP2 |
---|
| 3835 | ! ENDIF |
---|
| 3836 | ! ENDIF |
---|
| 3837 | |
---|
| 3838 | ! ---------------------------------------------------------------------- |
---|
| 3839 | EDIR = 0.0 |
---|
| 3840 | EDIR1 = 0.0 |
---|
| 3841 | EC = 0.0 |
---|
| 3842 | EC1 = 0.0 |
---|
| 3843 | DO K = 1,NSOIL |
---|
| 3844 | ET(K) = 0.0 |
---|
| 3845 | ET1(K) = 0.0 |
---|
| 3846 | ENDDO |
---|
| 3847 | ETT = 0.0 |
---|
| 3848 | ETT1 = 0.0 |
---|
| 3849 | ETNS = 0.0 |
---|
| 3850 | ETNS1 = 0.0 |
---|
| 3851 | ESNOW = 0.0 |
---|
| 3852 | ESNOW1 = 0.0 |
---|
| 3853 | ESNOW2 = 0.0 |
---|
| 3854 | ! ---------------------------------------------------------------------- |
---|
| 3855 | |
---|
| 3856 | ! ---------------------------------------------------------------------- |
---|
| 3857 | ! IF ETP<0 (DOWNWARD) THEN DEWFALL (=FROSTFALL IN THIS CASE). |
---|
| 3858 | ! ---------------------------------------------------------------------- |
---|
| 3859 | DEW = 0.0 |
---|
| 3860 | ETP1 = ETP*0.001 |
---|
| 3861 | IF (ETP .LT. 0.0) THEN |
---|
| 3862 | ! DEW = -ETP * 0.001 |
---|
| 3863 | DEW = -ETP1 |
---|
| 3864 | ! ESNOW2 = ETP * 0.001 * DT |
---|
| 3865 | ESNOW2 = ETP1 * DT |
---|
| 3866 | ETANRG = ETP*((1.-SNCOVR)*LSUBC + SNCOVR*LSUBS) |
---|
| 3867 | ! ENDIF |
---|
| 3868 | ELSE |
---|
| 3869 | ! ---------------------------------------------------------------------- |
---|
| 3870 | ! ETP1 = 0.0 |
---|
| 3871 | ! ETP1 = ETP*0.001 |
---|
| 3872 | IF (ICE .NE. 1) THEN |
---|
| 3873 | IF (SNCOVR .LT. 1.) THEN |
---|
| 3874 | ! CALL EVAPO (ETA1,SMC,NSOIL,CMC,ETP1,DT,ZSOIL, |
---|
| 3875 | CALL EVAPO (ETNS1,SMC,NSOIL,CMC,ETP1,DT,ZSOIL, & |
---|
| 3876 | & SH2O,SMCMAX,BEXP,PC,SMCWLT,DKSAT,DWSAT, & |
---|
| 3877 | & SMCREF,SHDFAC,CMCMAX, & |
---|
| 3878 | & SMCDRY,CFACTR, & |
---|
| 3879 | & EDIR1,EC1,ET1,ETT1,SFCTMP,Q2,NROOT,RTDIS,FXEXP) |
---|
| 3880 | ! ENDIF |
---|
| 3881 | ! ---------------------------------------------------------------------- |
---|
| 3882 | EDIR1 = EDIR1*(1.-SNCOVR) |
---|
| 3883 | EC1 = EC1*(1.-SNCOVR) |
---|
| 3884 | DO K = 1,NSOIL |
---|
| 3885 | ET1(K) = ET1(K)*(1.-SNCOVR) |
---|
| 3886 | END DO |
---|
| 3887 | ETT1 = ETT1*(1.-SNCOVR) |
---|
| 3888 | ETNS1 = ETNS1*(1.-SNCOVR) |
---|
| 3889 | ! ---------------------------------------------------------------------- |
---|
| 3890 | EDIR = EDIR1 * 1000.0 |
---|
| 3891 | EC = EC1 * 1000.0 |
---|
| 3892 | DO K = 1,NSOIL |
---|
| 3893 | ET(K) = ET1(K) * 1000.0 |
---|
| 3894 | END DO |
---|
| 3895 | ETT = ETT1 * 1000.0 |
---|
| 3896 | ETNS = ETNS1 * 1000.0 |
---|
| 3897 | ! ---------------------------------------------------------------------- |
---|
| 3898 | ENDIF |
---|
| 3899 | ! ESNOW = ETP*SNCOVR |
---|
| 3900 | ! ESNOW1 = ETP*0.001 |
---|
| 3901 | ! ESNOW1 = ESNOW*0.001 |
---|
| 3902 | ! ESNOW2 = ESNOW1*DT |
---|
| 3903 | ! ETANRG = ESNOW*LSUBS + ETNS*LSUBC |
---|
| 3904 | ENDIF |
---|
| 3905 | ESNOW = ETP*SNCOVR |
---|
| 3906 | ESNOW1 = ESNOW*0.001 |
---|
| 3907 | ESNOW2 = ESNOW1*DT |
---|
| 3908 | ETANRG = ESNOW*LSUBS + ETNS*LSUBC |
---|
| 3909 | ENDIF |
---|
| 3910 | |
---|
| 3911 | ! ---------------------------------------------------------------------- |
---|
| 3912 | ! IF PRECIP IS FALLING, CALCULATE HEAT FLUX FROM SNOW SFC TO NEWLY |
---|
| 3913 | ! ACCUMULATING PRECIP. NOTE THAT THIS REFLECTS THE FLUX APPROPRIATE FOR |
---|
| 3914 | ! THE NOT-YET-UPDATED SKIN TEMPERATURE (T1). ASSUMES TEMPERATURE OF THE |
---|
| 3915 | ! SNOWFALL STRIKING THE GOUND IS =SFCTMP (LOWEST MODEL LEVEL AIR TEMP). |
---|
| 3916 | ! ---------------------------------------------------------------------- |
---|
| 3917 | FLX1 = 0.0 |
---|
| 3918 | IF (SNOWNG) THEN |
---|
| 3919 | FLX1 = CPICE * PRCP * (T1 - SFCTMP) |
---|
| 3920 | ELSE |
---|
| 3921 | IF (PRCP .GT. 0.0) FLX1 = CPH2O * PRCP * (T1 - SFCTMP) |
---|
| 3922 | ENDIF |
---|
| 3923 | |
---|
| 3924 | ! ---------------------------------------------------------------------- |
---|
| 3925 | ! CALCULATE AN 'EFFECTIVE SNOW-GRND SFC TEMP' (T12) BASED ON HEAT FLUXES |
---|
| 3926 | ! BETWEEN THE SNOW PACK AND THE SOIL AND ON NET RADIATION. |
---|
| 3927 | ! INCLUDE FLX1 (PRECIP-SNOW SFC) AND FLX2 (FREEZING RAIN LATENT HEAT) |
---|
| 3928 | ! FLUXES. |
---|
| 3929 | ! FLX2 REFLECTS FREEZING RAIN LATENT HEAT FLUX USING T1 CALCULATED IN |
---|
| 3930 | ! PENMAN. |
---|
| 3931 | ! ---------------------------------------------------------------------- |
---|
| 3932 | DSOIL = -(0.5 * ZSOIL(1)) |
---|
| 3933 | DTOT = SNOWH + DSOIL |
---|
| 3934 | DENOM = 1.0 + DF1 / (DTOT * RR * RCH) |
---|
| 3935 | ! T12A = ( (FDOWN-FLX1-FLX2-SIGMA*T24)/RCH |
---|
| 3936 | ! & + TH2 - SFCTMP - BETA*EPSCA ) / RR |
---|
| 3937 | ! T12A = ( (FDOWN-FLX1-FLX2-SIGMA*T24)/RCH |
---|
| 3938 | ! M.Ek, 24Nov04, add snow emissivity |
---|
| 3939 | T12A = ((FDOWN-FLX1-FLX2 & |
---|
| 3940 | & -(0.95*SNCOVR+(1.0-SNCOVR))*SIGMA*T24)/RCH & |
---|
| 3941 | & + TH2 - SFCTMP - ETANRG/RCH ) / RR |
---|
| 3942 | T12B = DF1 * STC(1) / (DTOT * RR * RCH) |
---|
| 3943 | T12 = (SFCTMP + T12A + T12B) / DENOM |
---|
| 3944 | |
---|
| 3945 | ! ---------------------------------------------------------------------- |
---|
| 3946 | ! IF THE 'EFFECTIVE SNOW-GRND SFC TEMP' IS AT OR BELOW FREEZING, NO SNOW |
---|
| 3947 | ! MELT WILL OCCUR. SET THE SKIN TEMP TO THIS EFFECTIVE TEMP. REDUCE |
---|
| 3948 | ! (BY SUBLIMINATION ) OR INCREASE (BY FROST) THE DEPTH OF THE SNOWPACK, |
---|
| 3949 | ! DEPENDING ON SIGN OF ETP. |
---|
| 3950 | ! UPDATE SOIL HEAT FLUX (SSOIL) USING NEW SKIN TEMPERATURE (T1) |
---|
| 3951 | ! SINCE NO SNOWMELT, SET ACCUMULATED SNOWMELT TO ZERO, SET 'EFFECTIVE' |
---|
| 3952 | ! PRECIP FROM SNOWMELT TO ZERO, SET PHASE-CHANGE HEAT FLUX FROM SNOWMELT |
---|
| 3953 | ! TO ZERO. |
---|
| 3954 | ! ---------------------------------------------------------------------- |
---|
| 3955 | IF (T12 .LE. TFREEZ) THEN |
---|
| 3956 | T1 = T12 |
---|
| 3957 | SSOIL = DF1 * (T1 - STC(1)) / DTOT |
---|
| 3958 | ! ESD = MAX(0.0, ESD-ETP2) |
---|
| 3959 | ESD = MAX(0.0, ESD-ESNOW2) |
---|
| 3960 | FLX3 = 0.0 |
---|
| 3961 | EX = 0.0 |
---|
| 3962 | SNOMLT = 0.0 |
---|
| 3963 | |
---|
| 3964 | ELSE |
---|
| 3965 | ! ---------------------------------------------------------------------- |
---|
| 3966 | ! IF THE 'EFFECTIVE SNOW-GRND SFC TEMP' IS ABOVE FREEZING, SNOW MELT |
---|
| 3967 | ! WILL OCCUR. CALL THE SNOW MELT RATE,EX AND AMT, SNOMLT. REVISE THE |
---|
| 3968 | ! EFFECTIVE SNOW DEPTH. REVISE THE SKIN TEMP BECAUSE IT WOULD HAVE CHGD |
---|
| 3969 | ! DUE TO THE LATENT HEAT RELEASED BY THE MELTING. CALC THE LATENT HEAT |
---|
| 3970 | ! RELEASED, FLX3. SET THE EFFECTIVE PRECIP, PRCP1 TO THE SNOW MELT RATE, |
---|
| 3971 | ! EX FOR USE IN SMFLX. ADJUSTMENT TO T1 TO ACCOUNT FOR SNOW PATCHES. |
---|
| 3972 | ! CALCULATE QSAT VALID AT FREEZING POINT. NOTE THAT ESAT (SATURATION |
---|
| 3973 | ! VAPOR PRESSURE) VALUE OF 6.11E+2 USED HERE IS THAT VALID AT FRZZING |
---|
| 3974 | ! POINT. NOTE THAT ETP FROM CALL PENMAN IN SFLX IS IGNORED HERE IN |
---|
| 3975 | ! FAVOR OF BULK ETP OVER 'OPEN WATER' AT FREEZING TEMP. |
---|
| 3976 | ! UPDATE SOIL HEAT FLUX (S) USING NEW SKIN TEMPERATURE (T1) |
---|
| 3977 | ! ---------------------------------------------------------------------- |
---|
| 3978 | ! T1 = TFREEZ * SNCOVR + T12 * (1.0 - SNCOVR) |
---|
| 3979 | ! mek Feb2004 |
---|
| 3980 | ! non-linear weighting of snow vs non-snow covered portions of gridbox |
---|
| 3981 | ! so with SNOEXP = 2.0 (>1), surface skin temperature is higher than for |
---|
| 3982 | ! the linear case (SNOEXP = 1). |
---|
| 3983 | T1 = TFREEZ * SNCOVR**SNOEXP + T12 * (1.0 - SNCOVR**SNOEXP) |
---|
| 3984 | ! QSAT = (0.622*6.11E2)/(SFCPRS-0.378*6.11E2) |
---|
| 3985 | ! ETP = RCH*(QSAT-Q2)/CP |
---|
| 3986 | ! ETP2 = ETP*0.001*DT |
---|
| 3987 | ! BETA = 1.0 |
---|
| 3988 | SSOIL = DF1 * (T1 - STC(1)) / DTOT |
---|
| 3989 | |
---|
| 3990 | ! ---------------------------------------------------------------------- |
---|
| 3991 | ! IF POTENTIAL EVAP (SUBLIMATION) GREATER THAN DEPTH OF SNOWPACK. |
---|
| 3992 | ! BETA<1 |
---|
| 3993 | ! SNOWPACK HAS SUBLIMATED AWAY, SET DEPTH TO ZERO. |
---|
| 3994 | ! ---------------------------------------------------------------------- |
---|
| 3995 | ! IF (ESD .LE. ETP2) THEN |
---|
| 3996 | ! IF (ESD .LE. ESNOW2) THEN |
---|
| 3997 | IF (ESD-ESNOW2 .LE. ESDMIN) THEN |
---|
| 3998 | ! BETA = ESD / ETP2 |
---|
| 3999 | ESD = 0.0 |
---|
| 4000 | EX = 0.0 |
---|
| 4001 | SNOMLT = 0.0 |
---|
| 4002 | |
---|
| 4003 | ELSE |
---|
| 4004 | ! ---------------------------------------------------------------------- |
---|
| 4005 | ! POTENTIAL EVAP (SUBLIMATION) LESS THAN DEPTH OF SNOWPACK, RETAIN |
---|
| 4006 | ! BETA=1. |
---|
| 4007 | ! SNOWPACK (ESD) REDUCED BY POTENTIAL EVAP RATE |
---|
| 4008 | ! ETP3 (CONVERT TO FLUX) |
---|
| 4009 | ! ---------------------------------------------------------------------- |
---|
| 4010 | ! ESD = ESD-ETP2 |
---|
| 4011 | ESD = ESD-ESNOW2 |
---|
| 4012 | ! ETP3 = ETP*LSUBC |
---|
| 4013 | SEH = RCH*(T1-TH2) |
---|
| 4014 | T14 = T1*T1 |
---|
| 4015 | T14 = T14*T14 |
---|
| 4016 | ! FLX3 = FDOWN - FLX1 - FLX2 - SIGMA*T14 - SSOIL - SEH - ETP3 |
---|
| 4017 | ! FLX3 = FDOWN - FLX1 - FLX2 - SIGMA*T14 - SSOIL - SEH - ETANRG |
---|
| 4018 | ! M.Ek, 24Nov04, add snow emissivity |
---|
| 4019 | FLX3 = FDOWN - FLX1 - FLX2 - & |
---|
| 4020 | & (0.95*SNCOVR+(1.0-SNCOVR))*SIGMA*T14 - SSOIL - SEH - ETANRG |
---|
| 4021 | IF (FLX3 .LE. 0.0) FLX3 = 0.0 |
---|
| 4022 | EX = FLX3*0.001/LSUBF |
---|
| 4023 | |
---|
| 4024 | ! ---------------------------------------------------------------------- |
---|
| 4025 | ! SNOWMELT REDUCTION DEPENDING ON SNOW COVER |
---|
| 4026 | ! IF SNOW COVER LESS THAN 5% NO SNOWMELT REDUCTION |
---|
| 4027 | ! ***NOTE: DOES 'IF' BELOW FAIL TO MATCH THE MELT WATER WITH THE MELT |
---|
| 4028 | ! ENERGY? |
---|
| 4029 | ! ---------------------------------------------------------------------- |
---|
| 4030 | ! IF (SNCOVR .GT. 0.05) EX = EX * SNCOVR |
---|
| 4031 | SNOMLT = EX * DT |
---|
| 4032 | |
---|
| 4033 | ! ---------------------------------------------------------------------- |
---|
| 4034 | ! ESDMIN REPRESENTS A SNOWPACK DEPTH THRESHOLD VALUE BELOW WHICH WE |
---|
| 4035 | ! CHOOSE NOT TO RETAIN ANY SNOWPACK, AND INSTEAD INCLUDE IT IN SNOWMELT. |
---|
| 4036 | ! ---------------------------------------------------------------------- |
---|
| 4037 | IF (ESD-SNOMLT .GE. ESDMIN) THEN |
---|
| 4038 | ESD = ESD - SNOMLT |
---|
| 4039 | |
---|
| 4040 | ELSE |
---|
| 4041 | ! ---------------------------------------------------------------------- |
---|
| 4042 | ! SNOWMELT EXCEEDS SNOW DEPTH |
---|
| 4043 | ! ---------------------------------------------------------------------- |
---|
| 4044 | EX = ESD/DT |
---|
| 4045 | FLX3 = EX*1000.0*LSUBF |
---|
| 4046 | SNOMLT = ESD |
---|
| 4047 | ESD = 0.0 |
---|
| 4048 | |
---|
| 4049 | ENDIF |
---|
| 4050 | ! ---------------------------------------------------------------------- |
---|
| 4051 | ! END OF 'ESD .LE. ETP2' IF-BLOCK |
---|
| 4052 | ! ---------------------------------------------------------------------- |
---|
| 4053 | ENDIF |
---|
| 4054 | |
---|
| 4055 | PRCP1 = PRCP1 + EX |
---|
| 4056 | |
---|
| 4057 | ! ---------------------------------------------------------------------- |
---|
| 4058 | ! END OF 'T12 .LE. TFREEZ' IF-BLOCK |
---|
| 4059 | ! ---------------------------------------------------------------------- |
---|
| 4060 | ENDIF |
---|
| 4061 | |
---|
| 4062 | ! ---------------------------------------------------------------------- |
---|
| 4063 | ! FINAL BETA NOW IN HAND, SO COMPUTE EVAPORATION. EVAP EQUALS ETP |
---|
| 4064 | ! UNLESS BETA<1. |
---|
| 4065 | ! ---------------------------------------------------------------------- |
---|
| 4066 | ! ETA = BETA*ETP |
---|
| 4067 | |
---|
| 4068 | ! ---------------------------------------------------------------------- |
---|
| 4069 | ! SET THE EFFECTIVE POTNL EVAPOTRANSP (ETP1) TO ZERO SINCE THIS IS SNOW |
---|
| 4070 | ! CASE, SO SURFACE EVAP NOT CALCULATED FROM EDIR, EC, OR ETT IN SMFLX |
---|
| 4071 | ! (BELOW). |
---|
| 4072 | ! IF SEAICE (ICE=1) SKIP CALL TO SMFLX. |
---|
| 4073 | ! SMFLX RETURNS UPDATED SOIL MOISTURE VALUES. IN THIS, THE SNOW PACK |
---|
| 4074 | ! CASE, ETA1 IS NOT USED IN CALCULATION OF EVAP. |
---|
| 4075 | ! ---------------------------------------------------------------------- |
---|
| 4076 | ! ETP1 = 0.0 |
---|
| 4077 | IF (ICE .NE. 1) THEN |
---|
| 4078 | ! CALL EVAPO (ETA1,SMC,NSOIL,CMC,ETP1,DT,ZSOIL, |
---|
| 4079 | ! & SH2O,SMCMAX,BEXP,PC,SMCWLT,DKSAT,DWSAT, |
---|
| 4080 | ! & SMCREF,SHDFAC,CMCMAX, |
---|
| 4081 | ! & SMCDRY,CFACTR, |
---|
| 4082 | ! & EDIR1,EC1,ET1,ETT1,SFCTMP,Q2,NROOT,RTDIS,FXEXP) |
---|
| 4083 | CALL SMFLX (SMC,NSOIL,CMC,DT,PRCP1,ZSOIL, & |
---|
| 4084 | & SH2O,SLOPE,KDT,FRZFACT, & |
---|
| 4085 | & SMCMAX,BEXP,SMCWLT,DKSAT,DWSAT, & |
---|
| 4086 | & SHDFAC,CMCMAX, & |
---|
| 4087 | & RUNOFF1,RUNOFF2,RUNOFF3, & |
---|
| 4088 | & EDIR1,EC1,ET1, & |
---|
| 4089 | & DRIP) |
---|
| 4090 | |
---|
| 4091 | ENDIF |
---|
| 4092 | |
---|
| 4093 | ! ---------------------------------------------------------------------- |
---|
| 4094 | ! EDIR = EDIR1 * 1000.0 |
---|
| 4095 | ! EC = EC1 * 1000.0 |
---|
| 4096 | ! ETT = ETT1 * 1000.0 |
---|
| 4097 | ! ET(1) = ET1(1) * 1000.0 |
---|
| 4098 | ! ET(2) = ET1(2) * 1000.0 |
---|
| 4099 | ! ET(3) = ET1(3) * 1000.0 |
---|
| 4100 | ! ET(4) = ET1(4) * 1000.0 |
---|
| 4101 | ! ---------------------------------------------------------------------- |
---|
| 4102 | |
---|
| 4103 | ! ---------------------------------------------------------------------- |
---|
| 4104 | ! BEFORE CALL SHFLX IN THIS SNOWPACK CASE, SET ZZ1 AND YY ARGUMENTS TO |
---|
| 4105 | ! SPECIAL VALUES THAT ENSURE THAT GROUND HEAT FLUX CALCULATED IN SHFLX |
---|
| 4106 | ! MATCHES THAT ALREADY COMPUTER FOR BELOW THE SNOWPACK, THUS THE SFC |
---|
| 4107 | ! HEAT FLUX TO BE COMPUTED IN SHFLX WILL EFFECTIVELY BE THE FLUX AT THE |
---|
| 4108 | ! SNOW TOP SURFACE. T11 IS A DUMMY ARGUEMENT SO WE WILL NOT USE THE |
---|
| 4109 | ! SKIN TEMP VALUE AS REVISED BY SHFLX. |
---|
| 4110 | ! ---------------------------------------------------------------------- |
---|
| 4111 | ZZ1 = 1.0 |
---|
| 4112 | YY = STC(1)-0.5*SSOIL*ZSOIL(1)*ZZ1/DF1 |
---|
| 4113 | T11 = T1 |
---|
| 4114 | |
---|
| 4115 | ! ---------------------------------------------------------------------- |
---|
| 4116 | ! SHFLX WILL CALC/UPDATE THE SOIL TEMPS. NOTE: THE SUB-SFC HEAT FLUX |
---|
| 4117 | ! (SSOIL1) AND THE SKIN TEMP (T11) OUTPUT FROM THIS SHFLX CALL ARE NOT |
---|
| 4118 | ! USED IN ANY SUBSEQUENT CALCULATIONS. RATHER, THEY ARE DUMMY VARIABLES |
---|
| 4119 | ! HERE IN THE SNOPAC CASE, SINCE THE SKIN TEMP AND SUB-SFC HEAT FLUX ARE |
---|
| 4120 | ! UPDATED INSTEAD NEAR THE BEGINNING OF THE CALL TO SNOPAC. |
---|
| 4121 | ! ---------------------------------------------------------------------- |
---|
| 4122 | CALL SHFLX (SSOIL1,STC,SMC,SMCMAX,NSOIL,T11,DT,YY,ZZ1,ZSOIL, & |
---|
| 4123 | & TBOT,ZBOT,SMCWLT,PSISAT,SH2O,BEXP,F1,DF1,ICE, & |
---|
| 4124 | & QUARTZ,CSOIL) |
---|
| 4125 | |
---|
| 4126 | ! ---------------------------------------------------------------------- |
---|
| 4127 | ! SNOW DEPTH AND DENSITY ADJUSTMENT BASED ON SNOW COMPACTION. YY IS |
---|
| 4128 | ! ASSUMED TO BE THE SOIL TEMPERTURE AT THE TOP OF THE SOIL COLUMN. |
---|
| 4129 | ! ---------------------------------------------------------------------- |
---|
| 4130 | IF (ESD .GT. 0.) THEN |
---|
| 4131 | CALL SNOWPACK (ESD,DT,SNOWH,SNDENS,T1,YY) |
---|
| 4132 | ELSE |
---|
| 4133 | ESD = 0. |
---|
| 4134 | SNOWH = 0. |
---|
| 4135 | SNDENS = 0. |
---|
| 4136 | SNCOND = 1. |
---|
| 4137 | SNCOVR = 0. |
---|
| 4138 | ENDIF |
---|
| 4139 | |
---|
| 4140 | ! ---------------------------------------------------------------------- |
---|
| 4141 | ! END SUBROUTINE SNOPAC |
---|
| 4142 | ! ---------------------------------------------------------------------- |
---|
| 4143 | END SUBROUTINE SNOPAC |
---|
| 4144 | |
---|
| 4145 | SUBROUTINE SNOWPACK (ESD,DTSEC,SNOWH,SNDENS,TSNOW,TSOIL) |
---|
| 4146 | |
---|
| 4147 | IMPLICIT NONE |
---|
| 4148 | |
---|
| 4149 | ! ---------------------------------------------------------------------- |
---|
| 4150 | ! SUBROUTINE SNOWPACK |
---|
| 4151 | ! ---------------------------------------------------------------------- |
---|
| 4152 | ! CALCULATE COMPACTION OF SNOWPACK UNDER CONDITIONS OF INCREASING SNOW |
---|
| 4153 | ! DENSITY, AS OBTAINED FROM AN APPROXIMATE SOLUTION OF E. ANDERSON'S |
---|
| 4154 | ! DIFFERENTIAL EQUATION (3.29), NOAA TECHNICAL REPORT NWS 19, BY VICTOR |
---|
| 4155 | ! KOREN, 03/25/95. |
---|
| 4156 | ! ---------------------------------------------------------------------- |
---|
| 4157 | ! ESD WATER EQUIVALENT OF SNOW (M) |
---|
| 4158 | ! DTSEC TIME STEP (SEC) |
---|
| 4159 | ! SNOWH SNOW DEPTH (M) |
---|
| 4160 | ! SNDENS SNOW DENSITY (G/CM3=DIMENSIONLESS FRACTION OF H2O DENSITY) |
---|
| 4161 | ! TSNOW SNOW SURFACE TEMPERATURE (K) |
---|
| 4162 | ! TSOIL SOIL SURFACE TEMPERATURE (K) |
---|
| 4163 | ! |
---|
| 4164 | ! SUBROUTINE WILL RETURN NEW VALUES OF SNOWH AND SNDENS |
---|
| 4165 | ! ---------------------------------------------------------------------- |
---|
| 4166 | INTEGER IPOL, J |
---|
| 4167 | |
---|
| 4168 | REAL BFAC,C1,C2,SNDENS,DSX,DTHR,DTSEC,DW,SNOWHC,SNOWH,PEXP,TAVGC, & |
---|
| 4169 | & TSNOW,TSNOWC,TSOIL,TSOILC,ESD,ESDC,ESDCX,G,KN |
---|
| 4170 | |
---|
| 4171 | PARAMETER(C1 = 0.01, C2=21.0, G=9.81, KN=4000.0) |
---|
| 4172 | |
---|
| 4173 | ! ---------------------------------------------------------------------- |
---|
| 4174 | ! CONVERSION INTO SIMULATION UNITS |
---|
| 4175 | ! ---------------------------------------------------------------------- |
---|
| 4176 | SNOWHC = SNOWH*100. |
---|
| 4177 | ESDC = ESD*100. |
---|
| 4178 | DTHR = DTSEC/3600. |
---|
| 4179 | TSNOWC = TSNOW-273.15 |
---|
| 4180 | TSOILC = TSOIL-273.15 |
---|
| 4181 | |
---|
| 4182 | ! ---------------------------------------------------------------------- |
---|
| 4183 | ! CALCULATING OF AVERAGE TEMPERATURE OF SNOW PACK |
---|
| 4184 | ! ---------------------------------------------------------------------- |
---|
| 4185 | TAVGC = 0.5*(TSNOWC+TSOILC) |
---|
| 4186 | |
---|
| 4187 | ! ---------------------------------------------------------------------- |
---|
| 4188 | ! CALCULATING OF SNOW DEPTH AND DENSITY AS A RESULT OF COMPACTION |
---|
| 4189 | ! SNDENS=DS0*(EXP(BFAC*ESD)-1.)/(BFAC*ESD) |
---|
| 4190 | ! BFAC=DTHR*C1*EXP(0.08*TAVGC-C2*DS0) |
---|
| 4191 | ! NOTE: BFAC*ESD IN SNDENS EQN ABOVE HAS TO BE CAREFULLY TREATED |
---|
| 4192 | ! NUMERICALLY BELOW: |
---|
| 4193 | ! C1 IS THE FRACTIONAL INCREASE IN DENSITY (1/(CM*HR)) |
---|
| 4194 | ! C2 IS A CONSTANT (CM3/G) KOJIMA ESTIMATED AS 21 CMS/G |
---|
| 4195 | ! ---------------------------------------------------------------------- |
---|
| 4196 | IF (ESDC .GT. 1.E-2) THEN |
---|
| 4197 | ESDCX = ESDC |
---|
| 4198 | ELSE |
---|
| 4199 | ESDCX = 1.E-2 |
---|
| 4200 | ENDIF |
---|
| 4201 | BFAC = DTHR*C1*EXP(0.08*TAVGC-C2*SNDENS) |
---|
| 4202 | |
---|
| 4203 | ! DSX = SNDENS*((DEXP(BFAC*ESDC)-1.)/(BFAC*ESDC)) |
---|
| 4204 | ! ---------------------------------------------------------------------- |
---|
| 4205 | ! THE FUNCTION OF THE FORM (e**x-1)/x IMBEDDED IN ABOVE EXPRESSION |
---|
| 4206 | ! FOR DSX WAS CAUSING NUMERICAL DIFFICULTIES WHEN THE DENOMINATOR "x" |
---|
| 4207 | ! (I.E. BFAC*ESDC) BECAME ZERO OR APPROACHED ZERO (DESPITE THE FACT THAT |
---|
| 4208 | ! THE ANALYTICAL FUNCTION (e**x-1)/x HAS A WELL DEFINED LIMIT AS |
---|
| 4209 | ! "x" APPROACHES ZERO), HENCE BELOW WE REPLACE THE (e**x-1)/x |
---|
| 4210 | ! EXPRESSION WITH AN EQUIVALENT, NUMERICALLY WELL-BEHAVED |
---|
| 4211 | ! POLYNOMIAL EXPANSION. |
---|
| 4212 | ! |
---|
| 4213 | ! NUMBER OF TERMS OF POLYNOMIAL EXPANSION, AND HENCE ITS ACCURACY, |
---|
| 4214 | ! IS GOVERNED BY ITERATION LIMIT "IPOL". |
---|
| 4215 | ! IPOL GREATER THAN 9 ONLY MAKES A DIFFERENCE ON DOUBLE |
---|
| 4216 | ! PRECISION (RELATIVE ERRORS GIVEN IN PERCENT %). |
---|
| 4217 | ! IPOL=9, FOR REL.ERROR <~ 1.6 E-6 % (8 SIGNIFICANT DIGITS) |
---|
| 4218 | ! IPOL=8, FOR REL.ERROR <~ 1.8 E-5 % (7 SIGNIFICANT DIGITS) |
---|
| 4219 | ! IPOL=7, FOR REL.ERROR <~ 1.8 E-4 % ... |
---|
| 4220 | ! ---------------------------------------------------------------------- |
---|
| 4221 | IPOL = 4 |
---|
| 4222 | PEXP = 0. |
---|
| 4223 | DO J = IPOL,1,-1 |
---|
| 4224 | ! PEXP = (1. + PEXP)*BFAC*ESDC/REAL(J+1) |
---|
| 4225 | PEXP = (1. + PEXP)*BFAC*ESDCX/REAL(J+1) |
---|
| 4226 | END DO |
---|
| 4227 | PEXP = PEXP + 1. |
---|
| 4228 | |
---|
| 4229 | DSX = SNDENS*(PEXP) |
---|
| 4230 | ! ---------------------------------------------------------------------- |
---|
| 4231 | ! ABOVE LINE ENDS POLYNOMIAL SUBSTITUTION |
---|
| 4232 | ! ---------------------------------------------------------------------- |
---|
| 4233 | ! END OF KOREAN FORMULATION |
---|
| 4234 | |
---|
| 4235 | ! BASE FORMULATION (COGLEY ET AL., 1990) |
---|
| 4236 | ! CONVERT DENSITY FROM G/CM3 TO KG/M3 |
---|
| 4237 | ! DSM=SNDENS*1000.0 |
---|
| 4238 | |
---|
| 4239 | ! DSX=DSM+DTSEC*0.5*DSM*G*ESD/ |
---|
| 4240 | ! & (1E7*EXP(-0.02*DSM+KN/(TAVGC+273.16)-14.643)) |
---|
| 4241 | |
---|
| 4242 | ! CONVERT DENSITY FROM KG/M3 TO G/CM3 |
---|
| 4243 | ! DSX=DSX/1000.0 |
---|
| 4244 | |
---|
| 4245 | ! END OF COGLEY ET AL. FORMULATION |
---|
| 4246 | |
---|
| 4247 | ! ---------------------------------------------------------------------- |
---|
| 4248 | ! SET UPPER/LOWER LIMIT ON SNOW DENSITY |
---|
| 4249 | ! ---------------------------------------------------------------------- |
---|
| 4250 | IF (DSX .GT. 0.40) DSX = 0.40 |
---|
| 4251 | IF (DSX .LT. 0.05) DSX = 0.05 |
---|
| 4252 | SNDENS = DSX |
---|
| 4253 | ! ---------------------------------------------------------------------- |
---|
| 4254 | ! UPDATE OF SNOW DEPTH AND DENSITY DEPENDING ON LIQUID WATER DURING |
---|
| 4255 | ! SNOWMELT. ASSUMED THAT 13% OF LIQUID WATER CAN BE STORED IN SNOW PER |
---|
| 4256 | ! DAY DURING SNOWMELT TILL SNOW DENSITY 0.40. |
---|
| 4257 | ! ---------------------------------------------------------------------- |
---|
| 4258 | IF (TSNOWC .GE. 0.) THEN |
---|
| 4259 | DW = 0.13*DTHR/24. |
---|
| 4260 | SNDENS = SNDENS*(1.-DW)+DW |
---|
| 4261 | IF (SNDENS .GT. 0.40) SNDENS = 0.40 |
---|
| 4262 | ENDIF |
---|
| 4263 | |
---|
| 4264 | ! ---------------------------------------------------------------------- |
---|
| 4265 | ! CALCULATE SNOW DEPTH (CM) FROM SNOW WATER EQUIVALENT AND SNOW DENSITY. |
---|
| 4266 | ! CHANGE SNOW DEPTH UNITS TO METERS |
---|
| 4267 | ! ---------------------------------------------------------------------- |
---|
| 4268 | SNOWHC = ESDC/SNDENS |
---|
| 4269 | SNOWH = SNOWHC*0.01 |
---|
| 4270 | |
---|
| 4271 | ! ---------------------------------------------------------------------- |
---|
| 4272 | ! END SUBROUTINE SNOWPACK |
---|
| 4273 | ! ---------------------------------------------------------------------- |
---|
| 4274 | END SUBROUTINE SNOWPACK |
---|
| 4275 | |
---|
| 4276 | SUBROUTINE SNOWZ0 (SNCOVR,Z0) |
---|
| 4277 | |
---|
| 4278 | IMPLICIT NONE |
---|
| 4279 | |
---|
| 4280 | ! ---------------------------------------------------------------------- |
---|
| 4281 | ! SUBROUTINE SNOWZ0 |
---|
| 4282 | ! ---------------------------------------------------------------------- |
---|
| 4283 | ! CALCULATE TOTAL ROUGHNESS LENGTH OVER SNOW |
---|
| 4284 | ! SNCOVR FRACTIONAL SNOW COVER |
---|
| 4285 | ! Z0 ROUGHNESS LENGTH (m) |
---|
| 4286 | ! Z0S SNOW ROUGHNESS LENGTH:=0.001 (m) |
---|
| 4287 | ! ---------------------------------------------------------------------- |
---|
| 4288 | REAL SNCOVR, Z0, Z0S |
---|
| 4289 | ! PARAMETER (Z0S=0.001) |
---|
| 4290 | |
---|
| 4291 | ! CURRENT NOAH LSM CONDITION - MBEK, 09-OCT-2001 |
---|
| 4292 | Z0S = Z0 |
---|
| 4293 | ! |
---|
| 4294 | Z0 = (1-SNCOVR)*Z0 + SNCOVR*Z0S |
---|
| 4295 | ! ---------------------------------------------------------------------- |
---|
| 4296 | ! END SUBROUTINE SNOWZ0 |
---|
| 4297 | ! ---------------------------------------------------------------------- |
---|
| 4298 | END SUBROUTINE SNOWZ0 |
---|
| 4299 | |
---|
| 4300 | SUBROUTINE SNOW_NEW (TEMP,NEWSN,SNOWH,SNDENS) |
---|
| 4301 | |
---|
| 4302 | IMPLICIT NONE |
---|
| 4303 | |
---|
| 4304 | ! ---------------------------------------------------------------------- |
---|
| 4305 | ! SUBROUTINE SNOW_NEW |
---|
| 4306 | ! ---------------------------------------------------------------------- |
---|
| 4307 | ! CALCULATE SNOW DEPTH AND DENSITITY TO ACCOUNT FOR THE NEW SNOWFALL. |
---|
| 4308 | ! NEW VALUES OF SNOW DEPTH & DENSITY RETURNED. |
---|
| 4309 | ! |
---|
| 4310 | ! TEMP AIR TEMPERATURE (K) |
---|
| 4311 | ! NEWSN NEW SNOWFALL (M) |
---|
| 4312 | ! SNOWH SNOW DEPTH (M) |
---|
| 4313 | ! SNDENS SNOW DENSITY (G/CM3=DIMENSIONLESS FRACTION OF H2O DENSITY) |
---|
| 4314 | ! ---------------------------------------------------------------------- |
---|
| 4315 | REAL SNDENS |
---|
| 4316 | REAL DSNEW |
---|
| 4317 | REAL SNOWHC |
---|
| 4318 | REAL HNEWC |
---|
| 4319 | REAL SNOWH |
---|
| 4320 | REAL NEWSN |
---|
| 4321 | REAL NEWSNC |
---|
| 4322 | REAL TEMP |
---|
| 4323 | REAL TEMPC |
---|
| 4324 | |
---|
| 4325 | ! ---------------------------------------------------------------------- |
---|
| 4326 | ! CONVERSION INTO SIMULATION UNITS |
---|
| 4327 | ! ---------------------------------------------------------------------- |
---|
| 4328 | SNOWHC = SNOWH*100. |
---|
| 4329 | NEWSNC = NEWSN*100. |
---|
| 4330 | TEMPC = TEMP-273.15 |
---|
| 4331 | |
---|
| 4332 | ! ---------------------------------------------------------------------- |
---|
| 4333 | ! CALCULATING NEW SNOWFALL DENSITY DEPENDING ON TEMPERATURE |
---|
| 4334 | ! EQUATION FROM GOTTLIB L. 'A GENERAL RUNOFF MODEL FOR SNOWCOVERED |
---|
| 4335 | ! AND GLACIERIZED BASIN', 6TH NORDIC HYDROLOGICAL CONFERENCE, |
---|
| 4336 | ! VEMADOLEN, SWEDEN, 1980, 172-177PP. |
---|
| 4337 | !----------------------------------------------------------------------- |
---|
| 4338 | IF (TEMPC .LE. -15.) THEN |
---|
| 4339 | DSNEW = 0.05 |
---|
| 4340 | ELSE |
---|
| 4341 | DSNEW = 0.05+0.0017*(TEMPC+15.)**1.5 |
---|
| 4342 | ENDIF |
---|
| 4343 | |
---|
| 4344 | ! ---------------------------------------------------------------------- |
---|
| 4345 | ! ADJUSTMENT OF SNOW DENSITY DEPENDING ON NEW SNOWFALL |
---|
| 4346 | ! ---------------------------------------------------------------------- |
---|
| 4347 | HNEWC = NEWSNC/DSNEW |
---|
| 4348 | SNDENS = (SNOWHC*SNDENS+HNEWC*DSNEW)/(SNOWHC+HNEWC) |
---|
| 4349 | SNOWHC = SNOWHC+HNEWC |
---|
| 4350 | SNOWH = SNOWHC*0.01 |
---|
| 4351 | |
---|
| 4352 | ! ---------------------------------------------------------------------- |
---|
| 4353 | ! END SUBROUTINE SNOW_NEW |
---|
| 4354 | ! ---------------------------------------------------------------------- |
---|
| 4355 | END SUBROUTINE SNOW_NEW |
---|
| 4356 | |
---|
| 4357 | SUBROUTINE SRT (RHSTT,EDIR,ET,SH2O,SH2OA,NSOIL,PCPDRP, & |
---|
| 4358 | & ZSOIL,DWSAT,DKSAT,SMCMAX,BEXP,RUNOFF1, & |
---|
| 4359 | & RUNOFF2,DT,SMCWLT,SLOPE,KDT,FRZX,SICE,AI,BI,CI) |
---|
| 4360 | |
---|
| 4361 | IMPLICIT NONE |
---|
| 4362 | |
---|
| 4363 | ! ---------------------------------------------------------------------- |
---|
| 4364 | ! SUBROUTINE SRT |
---|
| 4365 | ! ---------------------------------------------------------------------- |
---|
| 4366 | ! CALCULATE THE RIGHT HAND SIDE OF THE TIME TENDENCY TERM OF THE SOIL |
---|
| 4367 | ! WATER DIFFUSION EQUATION. ALSO TO COMPUTE ( PREPARE ) THE MATRIX |
---|
| 4368 | ! COEFFICIENTS FOR THE TRI-DIAGONAL MATRIX OF THE IMPLICIT TIME SCHEME. |
---|
| 4369 | ! ---------------------------------------------------------------------- |
---|
| 4370 | INTEGER NSOLD |
---|
| 4371 | PARAMETER(NSOLD = 20) |
---|
| 4372 | |
---|
| 4373 | INTEGER CVFRZ |
---|
| 4374 | INTEGER IALP1 |
---|
| 4375 | INTEGER IOHINF |
---|
| 4376 | INTEGER J |
---|
| 4377 | INTEGER JJ |
---|
| 4378 | INTEGER K |
---|
| 4379 | INTEGER KS |
---|
| 4380 | INTEGER NSOIL |
---|
| 4381 | |
---|
| 4382 | REAL ACRT |
---|
| 4383 | REAL AI(NSOLD) |
---|
| 4384 | REAL BEXP |
---|
| 4385 | REAL BI(NSOLD) |
---|
| 4386 | REAL CI(NSOLD) |
---|
| 4387 | REAL DD |
---|
| 4388 | REAL DDT |
---|
| 4389 | REAL DDZ |
---|
| 4390 | REAL DDZ2 |
---|
| 4391 | REAL DENOM |
---|
| 4392 | REAL DENOM2 |
---|
| 4393 | REAL DICE |
---|
| 4394 | REAL DKSAT |
---|
| 4395 | REAL DMAX(NSOLD) |
---|
| 4396 | REAL DSMDZ |
---|
| 4397 | REAL DSMDZ2 |
---|
| 4398 | REAL DT |
---|
| 4399 | REAL DT1 |
---|
| 4400 | REAL DWSAT |
---|
| 4401 | REAL EDIR |
---|
| 4402 | REAL ET(NSOIL) |
---|
| 4403 | REAL FCR |
---|
| 4404 | REAL FRZX |
---|
| 4405 | REAL INFMAX |
---|
| 4406 | REAL KDT |
---|
| 4407 | REAL MXSMC |
---|
| 4408 | REAL MXSMC2 |
---|
| 4409 | REAL NUMER |
---|
| 4410 | REAL PCPDRP |
---|
| 4411 | REAL PDDUM |
---|
| 4412 | REAL PX |
---|
| 4413 | REAL RHSTT(NSOIL) |
---|
| 4414 | REAL RUNOFF1 |
---|
| 4415 | REAL RUNOFF2 |
---|
| 4416 | REAL SH2O(NSOIL) |
---|
| 4417 | REAL SH2OA(NSOIL) |
---|
| 4418 | REAL SICE(NSOIL) |
---|
| 4419 | REAL SICEMAX |
---|
| 4420 | REAL SLOPE |
---|
| 4421 | REAL SLOPX |
---|
| 4422 | REAL SMCAV |
---|
| 4423 | REAL SMCMAX |
---|
| 4424 | REAL SMCWLT |
---|
| 4425 | REAL SSTT |
---|
| 4426 | REAL SUM |
---|
| 4427 | REAL VAL |
---|
| 4428 | REAL WCND |
---|
| 4429 | REAL WCND2 |
---|
| 4430 | REAL WDF |
---|
| 4431 | REAL WDF2 |
---|
| 4432 | REAL ZSOIL(NSOIL) |
---|
| 4433 | |
---|
| 4434 | ! ---------------------------------------------------------------------- |
---|
| 4435 | ! FROZEN GROUND VERSION: |
---|
| 4436 | ! REFERENCE FROZEN GROUND PARAMETER, CVFRZ, IS A SHAPE PARAMETER OF |
---|
| 4437 | ! AREAL DISTRIBUTION FUNCTION OF SOIL ICE CONTENT WHICH EQUALS 1/CV. |
---|
| 4438 | ! CV IS A COEFFICIENT OF SPATIAL VARIATION OF SOIL ICE CONTENT. BASED |
---|
| 4439 | ! ON FIELD DATA CV DEPENDS ON AREAL MEAN OF FROZEN DEPTH, AND IT CLOSE |
---|
| 4440 | ! TO CONSTANT = 0.6 IF AREAL MEAN FROZEN DEPTH IS ABOVE 20 CM. THAT IS |
---|
| 4441 | ! WHY PARAMETER CVFRZ = 3 (INT{1/0.6*0.6}). |
---|
| 4442 | ! CURRENT LOGIC DOESN'T ALLOW CVFRZ BE BIGGER THAN 3 |
---|
| 4443 | ! ---------------------------------------------------------------------- |
---|
| 4444 | PARAMETER(CVFRZ = 3) |
---|
| 4445 | |
---|
| 4446 | ! ---------------------------------------------------------------------- |
---|
| 4447 | ! DETERMINE RAINFALL INFILTRATION RATE AND RUNOFF. INCLUDE THE |
---|
| 4448 | ! INFILTRATION FORMULE FROM SCHAAKE AND KOREN MODEL. |
---|
| 4449 | ! MODIFIED BY Q DUAN |
---|
| 4450 | ! ---------------------------------------------------------------------- |
---|
| 4451 | IOHINF=1 |
---|
| 4452 | |
---|
| 4453 | ! ---------------------------------------------------------------------- |
---|
| 4454 | ! LET SICEMAX BE THE GREATEST, IF ANY, FROZEN WATER CONTENT WITHIN SOIL |
---|
| 4455 | ! LAYERS. |
---|
| 4456 | ! ---------------------------------------------------------------------- |
---|
| 4457 | SICEMAX = 0.0 |
---|
| 4458 | DO KS=1,NSOIL |
---|
| 4459 | IF (SICE(KS) .GT. SICEMAX) SICEMAX = SICE(KS) |
---|
| 4460 | END DO |
---|
| 4461 | |
---|
| 4462 | ! ---------------------------------------------------------------------- |
---|
| 4463 | ! DETERMINE RAINFALL INFILTRATION RATE AND RUNOFF |
---|
| 4464 | ! ---------------------------------------------------------------------- |
---|
| 4465 | PDDUM = PCPDRP |
---|
| 4466 | RUNOFF1 = 0.0 |
---|
| 4467 | IF (PCPDRP .NE. 0.0) THEN |
---|
| 4468 | |
---|
| 4469 | ! ---------------------------------------------------------------------- |
---|
| 4470 | ! MODIFIED BY Q. DUAN, 5/16/94 |
---|
| 4471 | ! ---------------------------------------------------------------------- |
---|
| 4472 | ! IF (IOHINF .EQ. 1) THEN |
---|
| 4473 | |
---|
| 4474 | DT1 = DT/86400. |
---|
| 4475 | SMCAV = SMCMAX - SMCWLT |
---|
| 4476 | DMAX(1)=-ZSOIL(1)*SMCAV |
---|
| 4477 | |
---|
| 4478 | ! ---------------------------------------------------------------------- |
---|
| 4479 | ! FROZEN GROUND VERSION: |
---|
| 4480 | ! ---------------------------------------------------------------------- |
---|
| 4481 | DICE = -ZSOIL(1) * SICE(1) |
---|
| 4482 | |
---|
| 4483 | DMAX(1)=DMAX(1)*(1.0 - (SH2OA(1)+SICE(1)-SMCWLT)/SMCAV) |
---|
| 4484 | DD=DMAX(1) |
---|
| 4485 | |
---|
| 4486 | DO KS=2,NSOIL |
---|
| 4487 | |
---|
| 4488 | ! ---------------------------------------------------------------------- |
---|
| 4489 | ! FROZEN GROUND VERSION: |
---|
| 4490 | ! ---------------------------------------------------------------------- |
---|
| 4491 | DICE = DICE + ( ZSOIL(KS-1) - ZSOIL(KS) ) * SICE(KS) |
---|
| 4492 | |
---|
| 4493 | DMAX(KS) = (ZSOIL(KS-1)-ZSOIL(KS))*SMCAV |
---|
| 4494 | DMAX(KS) = DMAX(KS)*(1.0 - (SH2OA(KS)+SICE(KS)-SMCWLT)/SMCAV) |
---|
| 4495 | DD = DD+DMAX(KS) |
---|
| 4496 | END DO |
---|
| 4497 | |
---|
| 4498 | ! ---------------------------------------------------------------------- |
---|
| 4499 | ! VAL = (1.-EXP(-KDT*SQRT(DT1))) |
---|
| 4500 | ! IN BELOW, REMOVE THE SQRT IN ABOVE |
---|
| 4501 | ! ---------------------------------------------------------------------- |
---|
| 4502 | VAL = (1.-EXP(-KDT*DT1)) |
---|
| 4503 | DDT = DD*VAL |
---|
| 4504 | PX = PCPDRP*DT |
---|
| 4505 | IF (PX .LT. 0.0) PX = 0.0 |
---|
| 4506 | INFMAX = (PX*(DDT/(PX+DDT)))/DT |
---|
| 4507 | |
---|
| 4508 | ! ---------------------------------------------------------------------- |
---|
| 4509 | ! FROZEN GROUND VERSION: |
---|
| 4510 | ! REDUCTION OF INFILTRATION BASED ON FROZEN GROUND PARAMETERS |
---|
| 4511 | ! ---------------------------------------------------------------------- |
---|
| 4512 | FCR = 1. |
---|
| 4513 | IF (DICE .GT. 1.E-2) THEN |
---|
| 4514 | ACRT = CVFRZ * FRZX / DICE |
---|
| 4515 | SUM = 1. |
---|
| 4516 | IALP1 = CVFRZ - 1 |
---|
| 4517 | DO J = 1,IALP1 |
---|
| 4518 | K = 1 |
---|
| 4519 | DO JJ = J+1,IALP1 |
---|
| 4520 | K = K * JJ |
---|
| 4521 | END DO |
---|
| 4522 | SUM = SUM + (ACRT ** ( CVFRZ-J)) / FLOAT (K) |
---|
| 4523 | END DO |
---|
| 4524 | FCR = 1. - EXP(-ACRT) * SUM |
---|
| 4525 | ENDIF |
---|
| 4526 | INFMAX = INFMAX * FCR |
---|
| 4527 | |
---|
| 4528 | ! ---------------------------------------------------------------------- |
---|
| 4529 | ! CORRECTION OF INFILTRATION LIMITATION: |
---|
| 4530 | ! IF INFMAX .LE. HYDROLIC CONDUCTIVITY ASSIGN INFMAX THE VALUE OF |
---|
| 4531 | ! HYDROLIC CONDUCTIVITY |
---|
| 4532 | ! ---------------------------------------------------------------------- |
---|
| 4533 | ! MXSMC = MAX ( SH2OA(1), SH2OA(2) ) |
---|
| 4534 | MXSMC = SH2OA(1) |
---|
| 4535 | |
---|
| 4536 | CALL WDFCND (WDF,WCND,MXSMC,SMCMAX,BEXP,DKSAT,DWSAT, & |
---|
| 4537 | & SICEMAX) |
---|
| 4538 | |
---|
| 4539 | INFMAX = MAX(INFMAX,WCND) |
---|
| 4540 | INFMAX = MIN(INFMAX,PX) |
---|
| 4541 | |
---|
| 4542 | IF (PCPDRP .GT. INFMAX) THEN |
---|
| 4543 | RUNOFF1 = PCPDRP - INFMAX |
---|
| 4544 | PDDUM = INFMAX |
---|
| 4545 | ENDIF |
---|
| 4546 | |
---|
| 4547 | ENDIF |
---|
| 4548 | |
---|
| 4549 | ! ---------------------------------------------------------------------- |
---|
| 4550 | ! TO AVOID SPURIOUS DRAINAGE BEHAVIOR, 'UPSTREAM DIFFERENCING' IN LINE |
---|
| 4551 | ! BELOW REPLACED WITH NEW APPROACH IN 2ND LINE: |
---|
| 4552 | ! 'MXSMC = MAX(SH2OA(1), SH2OA(2))' |
---|
| 4553 | ! ---------------------------------------------------------------------- |
---|
| 4554 | MXSMC = SH2OA(1) |
---|
| 4555 | |
---|
| 4556 | CALL WDFCND (WDF,WCND,MXSMC,SMCMAX,BEXP,DKSAT,DWSAT, & |
---|
| 4557 | & SICEMAX) |
---|
| 4558 | |
---|
| 4559 | ! ---------------------------------------------------------------------- |
---|
| 4560 | ! CALC THE MATRIX COEFFICIENTS AI, BI, AND CI FOR THE TOP LAYER |
---|
| 4561 | ! ---------------------------------------------------------------------- |
---|
| 4562 | DDZ = 1. / ( -.5 * ZSOIL(2) ) |
---|
| 4563 | AI(1) = 0.0 |
---|
| 4564 | BI(1) = WDF * DDZ / ( -ZSOIL(1) ) |
---|
| 4565 | CI(1) = -BI(1) |
---|
| 4566 | |
---|
| 4567 | ! ---------------------------------------------------------------------- |
---|
| 4568 | ! CALC RHSTT FOR THE TOP LAYER AFTER CALC'NG THE VERTICAL SOIL MOISTURE |
---|
| 4569 | ! GRADIENT BTWN THE TOP AND NEXT TO TOP LAYERS. |
---|
| 4570 | ! ---------------------------------------------------------------------- |
---|
| 4571 | DSMDZ = ( SH2O(1) - SH2O(2) ) / ( -.5 * ZSOIL(2) ) |
---|
| 4572 | RHSTT(1) = (WDF * DSMDZ + WCND - PDDUM + EDIR + ET(1))/ZSOIL(1) |
---|
| 4573 | SSTT = WDF * DSMDZ + WCND + EDIR + ET(1) |
---|
| 4574 | |
---|
| 4575 | ! ---------------------------------------------------------------------- |
---|
| 4576 | ! INITIALIZE DDZ2 |
---|
| 4577 | ! ---------------------------------------------------------------------- |
---|
| 4578 | DDZ2 = 0.0 |
---|
| 4579 | |
---|
| 4580 | ! ---------------------------------------------------------------------- |
---|
| 4581 | ! LOOP THRU THE REMAINING SOIL LAYERS, REPEATING THE ABV PROCESS |
---|
| 4582 | ! ---------------------------------------------------------------------- |
---|
| 4583 | DO K = 2,NSOIL |
---|
| 4584 | DENOM2 = (ZSOIL(K-1) - ZSOIL(K)) |
---|
| 4585 | IF (K .NE. NSOIL) THEN |
---|
| 4586 | SLOPX = 1. |
---|
| 4587 | |
---|
| 4588 | ! ---------------------------------------------------------------------- |
---|
| 4589 | ! AGAIN, TO AVOID SPURIOUS DRAINAGE BEHAVIOR, 'UPSTREAM DIFFERENCING' IN |
---|
| 4590 | ! LINE BELOW REPLACED WITH NEW APPROACH IN 2ND LINE: |
---|
| 4591 | ! 'MXSMC2 = MAX (SH2OA(K), SH2OA(K+1))' |
---|
| 4592 | ! ---------------------------------------------------------------------- |
---|
| 4593 | MXSMC2 = SH2OA(K) |
---|
| 4594 | |
---|
| 4595 | CALL WDFCND (WDF2,WCND2,MXSMC2,SMCMAX,BEXP,DKSAT,DWSAT, & |
---|
| 4596 | & SICEMAX) |
---|
| 4597 | |
---|
| 4598 | ! ---------------------------------------------------------------------- |
---|
| 4599 | ! CALC SOME PARTIAL PRODUCTS FOR LATER USE IN CALC'NG RHSTT |
---|
| 4600 | ! ---------------------------------------------------------------------- |
---|
| 4601 | DENOM = (ZSOIL(K-1) - ZSOIL(K+1)) |
---|
| 4602 | DSMDZ2 = (SH2O(K) - SH2O(K+1)) / (DENOM * 0.5) |
---|
| 4603 | |
---|
| 4604 | ! ---------------------------------------------------------------------- |
---|
| 4605 | ! CALC THE MATRIX COEF, CI, AFTER CALC'NG ITS PARTIAL PRODUCT |
---|
| 4606 | ! ---------------------------------------------------------------------- |
---|
| 4607 | DDZ2 = 2.0 / DENOM |
---|
| 4608 | CI(K) = -WDF2 * DDZ2 / DENOM2 |
---|
| 4609 | ELSE |
---|
| 4610 | |
---|
| 4611 | ! ---------------------------------------------------------------------- |
---|
| 4612 | ! SLOPE OF BOTTOM LAYER IS INTRODUCED |
---|
| 4613 | ! ---------------------------------------------------------------------- |
---|
| 4614 | SLOPX = SLOPE |
---|
| 4615 | |
---|
| 4616 | ! ---------------------------------------------------------------------- |
---|
| 4617 | ! RETRIEVE THE SOIL WATER DIFFUSIVITY AND HYDRAULIC CONDUCTIVITY FOR |
---|
| 4618 | ! THIS LAYER |
---|
| 4619 | ! ---------------------------------------------------------------------- |
---|
| 4620 | CALL WDFCND (WDF2,WCND2,SH2OA(NSOIL),SMCMAX,BEXP,DKSAT,DWSAT, & |
---|
| 4621 | & SICEMAX) |
---|
| 4622 | |
---|
| 4623 | ! ---------------------------------------------------------------------- |
---|
| 4624 | ! CALC A PARTIAL PRODUCT FOR LATER USE IN CALC'NG RHSTT |
---|
| 4625 | ! ---------------------------------------------------------------------- |
---|
| 4626 | DSMDZ2 = 0.0 |
---|
| 4627 | |
---|
| 4628 | ! ---------------------------------------------------------------------- |
---|
| 4629 | ! SET MATRIX COEF CI TO ZERO |
---|
| 4630 | ! ---------------------------------------------------------------------- |
---|
| 4631 | CI(K) = 0.0 |
---|
| 4632 | ENDIF |
---|
| 4633 | |
---|
| 4634 | ! ---------------------------------------------------------------------- |
---|
| 4635 | ! CALC RHSTT FOR THIS LAYER AFTER CALC'NG ITS NUMERATOR |
---|
| 4636 | ! ---------------------------------------------------------------------- |
---|
| 4637 | NUMER = (WDF2 * DSMDZ2) + SLOPX * WCND2 - (WDF * DSMDZ) & |
---|
| 4638 | & - WCND + ET(K) |
---|
| 4639 | RHSTT(K) = NUMER / (-DENOM2) |
---|
| 4640 | |
---|
| 4641 | ! ---------------------------------------------------------------------- |
---|
| 4642 | ! CALC MATRIX COEFS, AI, AND BI FOR THIS LAYER |
---|
| 4643 | ! ---------------------------------------------------------------------- |
---|
| 4644 | AI(K) = -WDF * DDZ / DENOM2 |
---|
| 4645 | BI(K) = -( AI(K) + CI(K) ) |
---|
| 4646 | |
---|
| 4647 | ! ---------------------------------------------------------------------- |
---|
| 4648 | ! RESET VALUES OF WDF, WCND, DSMDZ, AND DDZ FOR LOOP TO NEXT LYR |
---|
| 4649 | ! RUNOFF2: SUB-SURFACE OR BASEFLOW RUNOFF |
---|
| 4650 | ! ---------------------------------------------------------------------- |
---|
| 4651 | IF (K .EQ. NSOIL) THEN |
---|
| 4652 | RUNOFF2 = SLOPX * WCND2 |
---|
| 4653 | ENDIF |
---|
| 4654 | |
---|
| 4655 | IF (K .NE. NSOIL) THEN |
---|
| 4656 | WDF = WDF2 |
---|
| 4657 | WCND = WCND2 |
---|
| 4658 | DSMDZ = DSMDZ2 |
---|
| 4659 | DDZ = DDZ2 |
---|
| 4660 | ENDIF |
---|
| 4661 | END DO |
---|
| 4662 | |
---|
| 4663 | ! ---------------------------------------------------------------------- |
---|
| 4664 | ! END SUBROUTINE SRT |
---|
| 4665 | ! ---------------------------------------------------------------------- |
---|
| 4666 | END SUBROUTINE SRT |
---|
| 4667 | |
---|
| 4668 | SUBROUTINE SSTEP (SH2OOUT,SH2OIN,CMC,RHSTT,RHSCT,DT, & |
---|
| 4669 | & NSOIL,SMCMAX,CMCMAX,RUNOFF3,ZSOIL,SMC,SICE, & |
---|
| 4670 | & AI,BI,CI) |
---|
| 4671 | |
---|
| 4672 | IMPLICIT NONE |
---|
| 4673 | |
---|
| 4674 | ! ---------------------------------------------------------------------- |
---|
| 4675 | ! SUBROUTINE SSTEP |
---|
| 4676 | ! ---------------------------------------------------------------------- |
---|
| 4677 | ! CALCULATE/UPDATE SOIL MOISTURE CONTENT VALUES AND CANOPY MOISTURE |
---|
| 4678 | ! CONTENT VALUES. |
---|
| 4679 | ! ---------------------------------------------------------------------- |
---|
| 4680 | INTEGER NSOLD |
---|
| 4681 | PARAMETER(NSOLD = 20) |
---|
| 4682 | |
---|
| 4683 | INTEGER I |
---|
| 4684 | INTEGER K |
---|
| 4685 | INTEGER KK11 |
---|
| 4686 | INTEGER NSOIL |
---|
| 4687 | |
---|
| 4688 | REAL AI(NSOLD) |
---|
| 4689 | REAL BI(NSOLD) |
---|
| 4690 | REAL CI(NSOLD) |
---|
| 4691 | REAL CIin(NSOLD) |
---|
| 4692 | REAL CMC |
---|
| 4693 | REAL CMCMAX |
---|
| 4694 | REAL DDZ |
---|
| 4695 | REAL DT |
---|
| 4696 | REAL RHSCT |
---|
| 4697 | REAL RHSTT(NSOIL) |
---|
| 4698 | REAL RHSTTin(NSOIL) |
---|
| 4699 | REAL RUNOFF3 |
---|
| 4700 | REAL SH2OIN(NSOIL) |
---|
| 4701 | REAL SH2OOUT(NSOIL) |
---|
| 4702 | REAL SICE(NSOIL) |
---|
| 4703 | REAL SMC(NSOIL) |
---|
| 4704 | REAL SMCMAX |
---|
| 4705 | REAL STOT |
---|
| 4706 | REAL WPLUS |
---|
| 4707 | REAL ZSOIL(NSOIL) |
---|
| 4708 | |
---|
| 4709 | ! ---------------------------------------------------------------------- |
---|
| 4710 | ! CREATE 'AMOUNT' VALUES OF VARIABLES TO BE INPUT TO THE |
---|
| 4711 | ! TRI-DIAGONAL MATRIX ROUTINE. |
---|
| 4712 | ! ---------------------------------------------------------------------- |
---|
| 4713 | DO K = 1,NSOIL |
---|
| 4714 | RHSTT(K) = RHSTT(K) * DT |
---|
| 4715 | AI(K) = AI(K) * DT |
---|
| 4716 | BI(K) = 1. + BI(K) * DT |
---|
| 4717 | CI(K) = CI(K) * DT |
---|
| 4718 | END DO |
---|
| 4719 | |
---|
| 4720 | ! ---------------------------------------------------------------------- |
---|
| 4721 | ! COPY VALUES FOR INPUT VARIABLES BEFORE CALL TO ROSR12 |
---|
| 4722 | ! ---------------------------------------------------------------------- |
---|
| 4723 | DO K = 1,NSOIL |
---|
| 4724 | RHSTTin(K) = RHSTT(K) |
---|
| 4725 | END DO |
---|
| 4726 | DO K = 1,NSOIL |
---|
| 4727 | CIin(K) = CI(K) |
---|
| 4728 | END DO |
---|
| 4729 | |
---|
| 4730 | ! ---------------------------------------------------------------------- |
---|
| 4731 | ! CALL ROSR12 TO SOLVE THE TRI-DIAGONAL MATRIX |
---|
| 4732 | ! ---------------------------------------------------------------------- |
---|
| 4733 | CALL ROSR12 (CI,AI,BI,CIin,RHSTTin,RHSTT,NSOIL) |
---|
| 4734 | |
---|
| 4735 | ! ---------------------------------------------------------------------- |
---|
| 4736 | ! SUM THE PREVIOUS SMC VALUE AND THE MATRIX SOLUTION TO GET A |
---|
| 4737 | ! NEW VALUE. MIN ALLOWABLE VALUE OF SMC WILL BE 0.02. |
---|
| 4738 | ! RUNOFF3: RUNOFF WITHIN SOIL LAYERS |
---|
| 4739 | ! ---------------------------------------------------------------------- |
---|
| 4740 | WPLUS = 0.0 |
---|
| 4741 | RUNOFF3 = 0. |
---|
| 4742 | DDZ = -ZSOIL(1) |
---|
| 4743 | |
---|
| 4744 | DO K = 1,NSOIL |
---|
| 4745 | IF (K .NE. 1) DDZ = ZSOIL(K - 1) - ZSOIL(K) |
---|
| 4746 | SH2OOUT(K) = SH2OIN(K) + CI(K) + WPLUS / DDZ |
---|
| 4747 | |
---|
| 4748 | STOT = SH2OOUT(K) + SICE(K) |
---|
| 4749 | IF (STOT .GT. SMCMAX) THEN |
---|
| 4750 | IF (K .EQ. 1) THEN |
---|
| 4751 | DDZ = -ZSOIL(1) |
---|
| 4752 | ELSE |
---|
| 4753 | KK11 = K - 1 |
---|
| 4754 | DDZ = -ZSOIL(K) + ZSOIL(KK11) |
---|
| 4755 | ENDIF |
---|
| 4756 | WPLUS = (STOT-SMCMAX) * DDZ |
---|
| 4757 | ELSE |
---|
| 4758 | WPLUS = 0. |
---|
| 4759 | ENDIF |
---|
| 4760 | SMC(K) = MAX ( MIN(STOT,SMCMAX),0.02 ) |
---|
| 4761 | SH2OOUT(K) = MAX((SMC(K)-SICE(K)),0.0) |
---|
| 4762 | END DO |
---|
| 4763 | |
---|
| 4764 | RUNOFF3 = WPLUS |
---|
| 4765 | |
---|
| 4766 | ! ---------------------------------------------------------------------- |
---|
| 4767 | ! UPDATE CANOPY WATER CONTENT/INTERCEPTION (CMC). CONVERT RHSCT TO |
---|
| 4768 | ! AN 'AMOUNT' VALUE AND ADD TO PREVIOUS CMC VALUE TO GET NEW CMC. |
---|
| 4769 | ! ---------------------------------------------------------------------- |
---|
| 4770 | CMC = CMC + DT * RHSCT |
---|
| 4771 | IF (CMC .LT. 1.E-20) CMC=0.0 |
---|
| 4772 | CMC = MIN(CMC,CMCMAX) |
---|
| 4773 | |
---|
| 4774 | ! ---------------------------------------------------------------------- |
---|
| 4775 | ! END SUBROUTINE SSTEP |
---|
| 4776 | ! ---------------------------------------------------------------------- |
---|
| 4777 | END SUBROUTINE SSTEP |
---|
| 4778 | |
---|
| 4779 | SUBROUTINE TBND (TU,TB,ZSOIL,ZBOT,K,NSOIL,TBND1) |
---|
| 4780 | |
---|
| 4781 | IMPLICIT NONE |
---|
| 4782 | |
---|
| 4783 | ! ---------------------------------------------------------------------- |
---|
| 4784 | ! SUBROUTINE TBND |
---|
| 4785 | ! ---------------------------------------------------------------------- |
---|
| 4786 | ! CALCULATE TEMPERATURE ON THE BOUNDARY OF THE LAYER BY INTERPOLATION OF |
---|
| 4787 | ! THE MIDDLE LAYER TEMPERATURES |
---|
| 4788 | ! ---------------------------------------------------------------------- |
---|
| 4789 | INTEGER NSOIL |
---|
| 4790 | INTEGER K |
---|
| 4791 | |
---|
| 4792 | REAL TBND1 |
---|
| 4793 | REAL T0 |
---|
| 4794 | REAL TU |
---|
| 4795 | REAL TB |
---|
| 4796 | REAL ZB |
---|
| 4797 | REAL ZBOT |
---|
| 4798 | REAL ZUP |
---|
| 4799 | REAL ZSOIL (NSOIL) |
---|
| 4800 | |
---|
| 4801 | PARAMETER(T0 = 273.15) |
---|
| 4802 | |
---|
| 4803 | ! ---------------------------------------------------------------------- |
---|
| 4804 | ! USE SURFACE TEMPERATURE ON THE TOP OF THE FIRST LAYER |
---|
| 4805 | ! ---------------------------------------------------------------------- |
---|
| 4806 | IF (K .EQ. 1) THEN |
---|
| 4807 | ZUP = 0. |
---|
| 4808 | ELSE |
---|
| 4809 | ZUP = ZSOIL(K-1) |
---|
| 4810 | ENDIF |
---|
| 4811 | |
---|
| 4812 | ! ---------------------------------------------------------------------- |
---|
| 4813 | ! USE DEPTH OF THE CONSTANT BOTTOM TEMPERATURE WHEN INTERPOLATE |
---|
| 4814 | ! TEMPERATURE INTO THE LAST LAYER BOUNDARY |
---|
| 4815 | ! ---------------------------------------------------------------------- |
---|
| 4816 | IF (K .EQ. NSOIL) THEN |
---|
| 4817 | ZB = 2.*ZBOT-ZSOIL(K) |
---|
| 4818 | ELSE |
---|
| 4819 | ZB = ZSOIL(K+1) |
---|
| 4820 | ENDIF |
---|
| 4821 | |
---|
| 4822 | ! ---------------------------------------------------------------------- |
---|
| 4823 | ! LINEAR INTERPOLATION BETWEEN THE AVERAGE LAYER TEMPERATURES |
---|
| 4824 | ! ---------------------------------------------------------------------- |
---|
| 4825 | TBND1 = TU+(TB-TU)*(ZUP-ZSOIL(K))/(ZUP-ZB) |
---|
| 4826 | |
---|
| 4827 | ! ---------------------------------------------------------------------- |
---|
| 4828 | ! END SUBROUTINE TBND |
---|
| 4829 | ! ---------------------------------------------------------------------- |
---|
| 4830 | END SUBROUTINE TBND |
---|
| 4831 | |
---|
| 4832 | SUBROUTINE TDFCND ( DF, SMC, QZ, SMCMAX, SH2O) |
---|
| 4833 | |
---|
| 4834 | IMPLICIT NONE |
---|
| 4835 | |
---|
| 4836 | ! ---------------------------------------------------------------------- |
---|
| 4837 | ! SUBROUTINE TDFCND |
---|
| 4838 | ! ---------------------------------------------------------------------- |
---|
| 4839 | ! CALCULATE THERMAL DIFFUSIVITY AND CONDUCTIVITY OF THE SOIL FOR A GIVEN |
---|
| 4840 | ! POINT AND TIME. |
---|
| 4841 | ! ---------------------------------------------------------------------- |
---|
| 4842 | ! PETERS-LIDARD APPROACH (PETERS-LIDARD et al., 1998) |
---|
| 4843 | ! June 2001 CHANGES: FROZEN SOIL CONDITION. |
---|
| 4844 | ! ---------------------------------------------------------------------- |
---|
| 4845 | REAL DF |
---|
| 4846 | REAL GAMMD |
---|
| 4847 | REAL THKDRY |
---|
| 4848 | REAL AKE |
---|
| 4849 | REAL THKICE |
---|
| 4850 | REAL THKO |
---|
| 4851 | REAL THKQTZ |
---|
| 4852 | REAL THKSAT |
---|
| 4853 | REAL THKS |
---|
| 4854 | REAL THKW |
---|
| 4855 | REAL QZ |
---|
| 4856 | REAL SATRATIO |
---|
| 4857 | REAL SH2O |
---|
| 4858 | REAL SMC |
---|
| 4859 | REAL SMCMAX |
---|
| 4860 | REAL XU |
---|
| 4861 | REAL XUNFROZ |
---|
| 4862 | |
---|
| 4863 | ! ---------------------------------------------------------------------- |
---|
| 4864 | ! WE NOW GET QUARTZ AS AN INPUT ARGUMENT (SET IN ROUTINE REDPRM): |
---|
| 4865 | ! DATA QUARTZ /0.82, 0.10, 0.25, 0.60, 0.52, |
---|
| 4866 | ! & 0.35, 0.60, 0.40, 0.82/ |
---|
| 4867 | ! ---------------------------------------------------------------------- |
---|
| 4868 | ! IF THE SOIL HAS ANY MOISTURE CONTENT COMPUTE A PARTIAL SUM/PRODUCT |
---|
| 4869 | ! OTHERWISE USE A CONSTANT VALUE WHICH WORKS WELL WITH MOST SOILS |
---|
| 4870 | ! ---------------------------------------------------------------------- |
---|
| 4871 | ! THKW ......WATER THERMAL CONDUCTIVITY |
---|
| 4872 | ! THKQTZ ....THERMAL CONDUCTIVITY FOR QUARTZ |
---|
| 4873 | ! THKO ......THERMAL CONDUCTIVITY FOR OTHER SOIL COMPONENTS |
---|
| 4874 | ! THKS ......THERMAL CONDUCTIVITY FOR THE SOLIDS COMBINED(QUARTZ+OTHER) |
---|
| 4875 | ! THKICE ....ICE THERMAL CONDUCTIVITY |
---|
| 4876 | ! SMCMAX ....POROSITY (= SMCMAX) |
---|
| 4877 | ! QZ .........QUARTZ CONTENT (SOIL TYPE DEPENDENT) |
---|
| 4878 | ! ---------------------------------------------------------------------- |
---|
| 4879 | ! USE AS IN PETERS-LIDARD, 1998 (MODIF. FROM JOHANSEN, 1975). |
---|
| 4880 | ! |
---|
| 4881 | ! PABLO GRUNMANN, 08/17/98 |
---|
| 4882 | ! REFS.: |
---|
| 4883 | ! FAROUKI, O.T.,1986: THERMAL PROPERTIES OF SOILS. SERIES ON ROCK |
---|
| 4884 | ! AND SOIL MECHANICS, VOL. 11, TRANS TECH, 136 PP. |
---|
| 4885 | ! JOHANSEN, O., 1975: THERMAL CONDUCTIVITY OF SOILS. PH.D. THESIS, |
---|
| 4886 | ! UNIVERSITY OF TRONDHEIM, |
---|
| 4887 | ! PETERS-LIDARD, C. D., ET AL., 1998: THE EFFECT OF SOIL THERMAL |
---|
| 4888 | ! CONDUCTIVITY PARAMETERIZATION ON SURFACE ENERGY FLUXES |
---|
| 4889 | ! AND TEMPERATURES. JOURNAL OF THE ATMOSPHERIC SCIENCES, |
---|
| 4890 | ! VOL. 55, PP. 1209-1224. |
---|
| 4891 | ! ---------------------------------------------------------------------- |
---|
| 4892 | ! NEEDS PARAMETERS |
---|
| 4893 | ! POROSITY(SOIL TYPE): |
---|
| 4894 | ! POROS = SMCMAX |
---|
| 4895 | ! SATURATION RATIO: |
---|
| 4896 | SATRATIO = SMC/SMCMAX |
---|
| 4897 | |
---|
| 4898 | ! PARAMETERS W/(M.K) |
---|
| 4899 | THKICE = 2.2 |
---|
| 4900 | THKW = 0.57 |
---|
| 4901 | THKO = 2.0 |
---|
| 4902 | ! IF (QZ .LE. 0.2) THKO = 3.0 |
---|
| 4903 | THKQTZ = 7.7 |
---|
| 4904 | ! SOLIDS' CONDUCTIVITY |
---|
| 4905 | THKS = (THKQTZ**QZ)*(THKO**(1.- QZ)) |
---|
| 4906 | |
---|
| 4907 | ! UNFROZEN FRACTION (FROM 1., i.e., 100%LIQUID, TO 0. (100% FROZEN)) |
---|
| 4908 | XUNFROZ = (SH2O + 1.E-9) / (SMC + 1.E-9) |
---|
| 4909 | |
---|
| 4910 | ! UNFROZEN VOLUME FOR SATURATION (POROSITY*XUNFROZ) |
---|
| 4911 | XU=XUNFROZ*SMCMAX |
---|
| 4912 | ! SATURATED THERMAL CONDUCTIVITY |
---|
| 4913 | THKSAT = THKS**(1.-SMCMAX)*THKICE**(SMCMAX-XU)*THKW**(XU) |
---|
| 4914 | |
---|
| 4915 | ! DRY DENSITY IN KG/M3 |
---|
| 4916 | GAMMD = (1. - SMCMAX)*2700. |
---|
| 4917 | |
---|
| 4918 | ! DRY THERMAL CONDUCTIVITY IN W.M-1.K-1 |
---|
| 4919 | THKDRY = (0.135*GAMMD + 64.7)/(2700. - 0.947*GAMMD) |
---|
| 4920 | |
---|
| 4921 | IF ( (SH2O + 0.0005) .LT. SMC ) THEN |
---|
| 4922 | ! FROZEN |
---|
| 4923 | AKE = SATRATIO |
---|
| 4924 | ELSE |
---|
| 4925 | ! UNFROZEN |
---|
| 4926 | ! RANGE OF VALIDITY FOR THE KERSTEN NUMBER (AKE) |
---|
| 4927 | IF ( SATRATIO .GT. 0.1 ) THEN |
---|
| 4928 | |
---|
| 4929 | ! KERSTEN NUMBER (USING "FINE" FORMULA, VALID FOR SOILS CONTAINING AT |
---|
| 4930 | ! LEAST 5% OF PARTICLES WITH DIAMETER LESS THAN 2.E-6 METERS.) |
---|
| 4931 | ! (FOR "COARSE" FORMULA, SEE PETERS-LIDARD ET AL., 1998). |
---|
| 4932 | |
---|
| 4933 | AKE = LOG10(SATRATIO) + 1.0 |
---|
| 4934 | |
---|
| 4935 | ELSE |
---|
| 4936 | |
---|
| 4937 | ! USE K = KDRY |
---|
| 4938 | AKE = 0.0 |
---|
| 4939 | |
---|
| 4940 | ENDIF |
---|
| 4941 | ENDIF |
---|
| 4942 | |
---|
| 4943 | ! THERMAL CONDUCTIVITY |
---|
| 4944 | |
---|
| 4945 | DF = AKE*(THKSAT - THKDRY) + THKDRY |
---|
| 4946 | |
---|
| 4947 | ! ---------------------------------------------------------------------- |
---|
| 4948 | ! END SUBROUTINE TDFCND |
---|
| 4949 | ! ---------------------------------------------------------------------- |
---|
| 4950 | END SUBROUTINE TDFCND |
---|
| 4951 | |
---|
| 4952 | SUBROUTINE TMPAVG (TAVG,TUP,TM,TDN,ZSOIL,NSOIL,K) |
---|
| 4953 | |
---|
| 4954 | IMPLICIT NONE |
---|
| 4955 | |
---|
| 4956 | ! ---------------------------------------------------------------------- |
---|
| 4957 | ! SUBROUTINE TMPAVG |
---|
| 4958 | ! ---------------------------------------------------------------------- |
---|
| 4959 | ! CALCULATE SOIL LAYER AVERAGE TEMPERATURE (TAVG) IN FREEZING/THAWING |
---|
| 4960 | ! LAYER USING UP, DOWN, AND MIDDLE LAYER TEMPERATURES (TUP, TDN, TM), |
---|
| 4961 | ! WHERE TUP IS AT TOP BOUNDARY OF LAYER, TDN IS AT BOTTOM BOUNDARY OF |
---|
| 4962 | ! LAYER. TM IS LAYER PROGNOSTIC STATE TEMPERATURE. |
---|
| 4963 | ! ---------------------------------------------------------------------- |
---|
| 4964 | INTEGER K |
---|
| 4965 | INTEGER NSOIL |
---|
| 4966 | |
---|
| 4967 | REAL DZ |
---|
| 4968 | REAL DZH |
---|
| 4969 | REAL T0 |
---|
| 4970 | REAL TAVG |
---|
| 4971 | REAL TDN |
---|
| 4972 | REAL TM |
---|
| 4973 | REAL TUP |
---|
| 4974 | REAL X0 |
---|
| 4975 | REAL XDN |
---|
| 4976 | REAL XUP |
---|
| 4977 | REAL ZSOIL (NSOIL) |
---|
| 4978 | |
---|
| 4979 | PARAMETER(T0 = 2.7315E2) |
---|
| 4980 | |
---|
| 4981 | ! ---------------------------------------------------------------------- |
---|
| 4982 | IF (K .EQ. 1) THEN |
---|
| 4983 | DZ = -ZSOIL(1) |
---|
| 4984 | ELSE |
---|
| 4985 | DZ = ZSOIL(K-1)-ZSOIL(K) |
---|
| 4986 | ENDIF |
---|
| 4987 | |
---|
| 4988 | DZH=DZ*0.5 |
---|
| 4989 | |
---|
| 4990 | IF (TUP .LT. T0) THEN |
---|
| 4991 | IF (TM .LT. T0) THEN |
---|
| 4992 | IF (TDN .LT. T0) THEN |
---|
| 4993 | ! ---------------------------------------------------------------------- |
---|
| 4994 | ! TUP, TM, TDN < T0 |
---|
| 4995 | ! ---------------------------------------------------------------------- |
---|
| 4996 | TAVG = (TUP + 2.0*TM + TDN)/ 4.0 |
---|
| 4997 | ELSE |
---|
| 4998 | ! ---------------------------------------------------------------------- |
---|
| 4999 | ! TUP & TM < T0, TDN >= T0 |
---|
| 5000 | ! ---------------------------------------------------------------------- |
---|
| 5001 | X0 = (T0 - TM) * DZH / (TDN - TM) |
---|
| 5002 | TAVG = 0.5 * (TUP*DZH+TM*(DZH+X0)+T0*(2.*DZH-X0)) / DZ |
---|
| 5003 | ENDIF |
---|
| 5004 | ELSE |
---|
| 5005 | IF (TDN .LT. T0) THEN |
---|
| 5006 | ! ---------------------------------------------------------------------- |
---|
| 5007 | ! TUP < T0, TM >= T0, TDN < T0 |
---|
| 5008 | ! ---------------------------------------------------------------------- |
---|
| 5009 | XUP = (T0-TUP) * DZH / (TM-TUP) |
---|
| 5010 | XDN = DZH - (T0-TM) * DZH / (TDN-TM) |
---|
| 5011 | TAVG = 0.5 * (TUP*XUP+T0*(2.*DZ-XUP-XDN)+TDN*XDN) / DZ |
---|
| 5012 | ELSE |
---|
| 5013 | ! ---------------------------------------------------------------------- |
---|
| 5014 | ! TUP < T0, TM >= T0, TDN >= T0 |
---|
| 5015 | ! ---------------------------------------------------------------------- |
---|
| 5016 | XUP = (T0-TUP) * DZH / (TM-TUP) |
---|
| 5017 | TAVG = 0.5 * (TUP*XUP+T0*(2.*DZ-XUP)) / DZ |
---|
| 5018 | ENDIF |
---|
| 5019 | ENDIF |
---|
| 5020 | ELSE |
---|
| 5021 | IF (TM .LT. T0) THEN |
---|
| 5022 | IF (TDN .LT. T0) THEN |
---|
| 5023 | ! ---------------------------------------------------------------------- |
---|
| 5024 | ! TUP >= T0, TM < T0, TDN < T0 |
---|
| 5025 | ! ---------------------------------------------------------------------- |
---|
| 5026 | XUP = DZH - (T0-TUP) * DZH / (TM-TUP) |
---|
| 5027 | TAVG = 0.5 * (T0*(DZ-XUP)+TM*(DZH+XUP)+TDN*DZH) / DZ |
---|
| 5028 | ELSE |
---|
| 5029 | ! ---------------------------------------------------------------------- |
---|
| 5030 | ! TUP >= T0, TM < T0, TDN >= T0 |
---|
| 5031 | ! ---------------------------------------------------------------------- |
---|
| 5032 | XUP = DZH - (T0-TUP) * DZH / (TM-TUP) |
---|
| 5033 | XDN = (T0-TM) * DZH / (TDN-TM) |
---|
| 5034 | TAVG = 0.5 * (T0*(2.*DZ-XUP-XDN)+TM*(XUP+XDN)) / DZ |
---|
| 5035 | ENDIF |
---|
| 5036 | ELSE |
---|
| 5037 | IF (TDN .LT. T0) THEN |
---|
| 5038 | ! ---------------------------------------------------------------------- |
---|
| 5039 | ! TUP >= T0, TM >= T0, TDN < T0 |
---|
| 5040 | ! ---------------------------------------------------------------------- |
---|
| 5041 | XDN = DZH - (T0-TM) * DZH / (TDN-TM) |
---|
| 5042 | TAVG = (T0*(DZ-XDN)+0.5*(T0+TDN)*XDN) / DZ |
---|
| 5043 | ELSE |
---|
| 5044 | ! ---------------------------------------------------------------------- |
---|
| 5045 | ! TUP >= T0, TM >= T0, TDN >= T0 |
---|
| 5046 | ! ---------------------------------------------------------------------- |
---|
| 5047 | TAVG = (TUP + 2.0*TM + TDN) / 4.0 |
---|
| 5048 | ENDIF |
---|
| 5049 | ENDIF |
---|
| 5050 | ENDIF |
---|
| 5051 | ! ---------------------------------------------------------------------- |
---|
| 5052 | ! END SUBROUTINE TMPAVG |
---|
| 5053 | ! ---------------------------------------------------------------------- |
---|
| 5054 | END SUBROUTINE TMPAVG |
---|
| 5055 | |
---|
| 5056 | SUBROUTINE TRANSP (ET1,NSOIL,ETP1,SMC,CMC,ZSOIL,SHDFAC,SMCWLT, & |
---|
| 5057 | & CMCMAX,PC,CFACTR,SMCREF,SFCTMP,Q2,NROOT,RTDIS) |
---|
| 5058 | |
---|
| 5059 | IMPLICIT NONE |
---|
| 5060 | |
---|
| 5061 | ! ---------------------------------------------------------------------- |
---|
| 5062 | ! SUBROUTINE TRANSP |
---|
| 5063 | ! ---------------------------------------------------------------------- |
---|
| 5064 | ! CALCULATE TRANSPIRATION FOR THE VEG CLASS. |
---|
| 5065 | ! ---------------------------------------------------------------------- |
---|
| 5066 | INTEGER I |
---|
| 5067 | INTEGER K |
---|
| 5068 | INTEGER NSOIL |
---|
| 5069 | INTEGER NROOT |
---|
| 5070 | |
---|
| 5071 | REAL CFACTR |
---|
| 5072 | REAL CMC |
---|
| 5073 | REAL CMCMAX |
---|
| 5074 | REAL DENOM |
---|
| 5075 | REAL ET1(NSOIL) |
---|
| 5076 | REAL ETP1 |
---|
| 5077 | REAL ETP1A |
---|
| 5078 | REAL GX (7) |
---|
| 5079 | !.....REAL PART(NSOIL) |
---|
| 5080 | REAL PC |
---|
| 5081 | REAL Q2 |
---|
| 5082 | REAL RTDIS(NSOIL) |
---|
| 5083 | REAL RTX |
---|
| 5084 | REAL SFCTMP |
---|
| 5085 | REAL SGX |
---|
| 5086 | REAL SHDFAC |
---|
| 5087 | REAL SMC(NSOIL) |
---|
| 5088 | REAL SMCREF |
---|
| 5089 | REAL SMCWLT |
---|
| 5090 | REAL ZSOIL(NSOIL) |
---|
| 5091 | |
---|
| 5092 | ! ---------------------------------------------------------------------- |
---|
| 5093 | ! INITIALIZE PLANT TRANSP TO ZERO FOR ALL SOIL LAYERS. |
---|
| 5094 | ! ---------------------------------------------------------------------- |
---|
| 5095 | DO K = 1,NSOIL |
---|
| 5096 | ET1(K) = 0. |
---|
| 5097 | END DO |
---|
| 5098 | |
---|
| 5099 | ! ---------------------------------------------------------------------- |
---|
| 5100 | ! CALCULATE AN 'ADJUSTED' POTENTIAL TRANSPIRATION |
---|
| 5101 | ! IF STATEMENT BELOW TO AVOID TANGENT LINEAR PROBLEMS NEAR ZERO |
---|
| 5102 | ! NOTE: GX AND OTHER TERMS BELOW REDISTRIBUTE TRANSPIRATION BY LAYER, |
---|
| 5103 | ! ET(K), AS A FUNCTION OF SOIL MOISTURE AVAILABILITY, WHILE PRESERVING |
---|
| 5104 | ! TOTAL ETP1A. |
---|
| 5105 | ! ---------------------------------------------------------------------- |
---|
| 5106 | IF (CMC .NE. 0.0) THEN |
---|
| 5107 | ETP1A = SHDFAC * PC * ETP1 * (1.0 - (CMC /CMCMAX) ** CFACTR) |
---|
| 5108 | ELSE |
---|
| 5109 | ETP1A = SHDFAC * PC * ETP1 |
---|
| 5110 | ENDIF |
---|
| 5111 | |
---|
| 5112 | SGX = 0.0 |
---|
| 5113 | DO I = 1,NROOT |
---|
| 5114 | GX(I) = ( SMC(I) - SMCWLT ) / ( SMCREF - SMCWLT ) |
---|
| 5115 | GX(I) = MAX ( MIN ( GX(I), 1. ), 0. ) |
---|
| 5116 | SGX = SGX + GX (I) |
---|
| 5117 | END DO |
---|
| 5118 | SGX = SGX / NROOT |
---|
| 5119 | |
---|
| 5120 | DENOM = 0. |
---|
| 5121 | DO I = 1,NROOT |
---|
| 5122 | RTX = RTDIS(I) + GX(I) - SGX |
---|
| 5123 | GX(I) = GX(I) * MAX ( RTX, 0. ) |
---|
| 5124 | DENOM = DENOM + GX(I) |
---|
| 5125 | END DO |
---|
| 5126 | IF (DENOM .LE. 0.0) DENOM = 1. |
---|
| 5127 | |
---|
| 5128 | DO I = 1,NROOT |
---|
| 5129 | ET1(I) = ETP1A * GX(I) / DENOM |
---|
| 5130 | END DO |
---|
| 5131 | |
---|
| 5132 | ! ---------------------------------------------------------------------- |
---|
| 5133 | ! ABOVE CODE ASSUMES A VERTICALLY UNIFORM ROOT DISTRIBUTION |
---|
| 5134 | ! CODE BELOW TESTS A VARIABLE ROOT DISTRIBUTION |
---|
| 5135 | ! ---------------------------------------------------------------------- |
---|
| 5136 | ! ET(1) = ( ZSOIL(1) / ZSOIL(NROOT) ) * GX * ETP1A |
---|
| 5137 | ! ET(1) = ( ZSOIL(1) / ZSOIL(NROOT) ) * ETP1A |
---|
| 5138 | ! ---------------------------------------------------------------------- |
---|
| 5139 | ! USING ROOT DISTRIBUTION AS WEIGHTING FACTOR |
---|
| 5140 | ! ---------------------------------------------------------------------- |
---|
| 5141 | ! ET(1) = RTDIS(1) * ETP1A |
---|
| 5142 | ! ET(1) = ETP1A * PART(1) |
---|
| 5143 | ! ---------------------------------------------------------------------- |
---|
| 5144 | ! LOOP DOWN THRU THE SOIL LAYERS REPEATING THE OPERATION ABOVE, |
---|
| 5145 | ! BUT USING THE THICKNESS OF THE SOIL LAYER (RATHER THAN THE |
---|
| 5146 | ! ABSOLUTE DEPTH OF EACH LAYER) IN THE FINAL CALCULATION. |
---|
| 5147 | ! ---------------------------------------------------------------------- |
---|
| 5148 | ! DO K = 2,NROOT |
---|
| 5149 | ! GX = ( SMC(K) - SMCWLT ) / ( SMCREF - SMCWLT ) |
---|
| 5150 | ! GX = MAX ( MIN ( GX, 1. ), 0. ) |
---|
| 5151 | ! TEST CANOPY RESISTANCE |
---|
| 5152 | ! GX = 1.0 |
---|
| 5153 | ! ET(K) = ((ZSOIL(K)-ZSOIL(K-1))/ZSOIL(NROOT))*GX*ETP1A |
---|
| 5154 | ! ET(K) = ((ZSOIL(K)-ZSOIL(K-1))/ZSOIL(NROOT))*ETP1A |
---|
| 5155 | ! ---------------------------------------------------------------------- |
---|
| 5156 | ! USING ROOT DISTRIBUTION AS WEIGHTING FACTOR |
---|
| 5157 | ! ---------------------------------------------------------------------- |
---|
| 5158 | ! ET(K) = RTDIS(K) * ETP1A |
---|
| 5159 | ! ET(K) = ETP1A*PART(K) |
---|
| 5160 | ! END DO |
---|
| 5161 | ! ---------------------------------------------------------------------- |
---|
| 5162 | ! END SUBROUTINE TRANSP |
---|
| 5163 | ! ---------------------------------------------------------------------- |
---|
| 5164 | END SUBROUTINE TRANSP |
---|
| 5165 | |
---|
| 5166 | SUBROUTINE WDFCND (WDF,WCND,SMC,SMCMAX,BEXP,DKSAT,DWSAT, & |
---|
| 5167 | & SICEMAX) |
---|
| 5168 | |
---|
| 5169 | IMPLICIT NONE |
---|
| 5170 | |
---|
| 5171 | ! ---------------------------------------------------------------------- |
---|
| 5172 | ! SUBROUTINE WDFCND |
---|
| 5173 | ! ---------------------------------------------------------------------- |
---|
| 5174 | ! CALCULATE SOIL WATER DIFFUSIVITY AND SOIL HYDRAULIC CONDUCTIVITY. |
---|
| 5175 | ! ---------------------------------------------------------------------- |
---|
| 5176 | REAL BEXP |
---|
| 5177 | REAL DKSAT |
---|
| 5178 | REAL DWSAT |
---|
| 5179 | REAL EXPON |
---|
| 5180 | REAL FACTR1 |
---|
| 5181 | REAL FACTR2 |
---|
| 5182 | REAL SICEMAX |
---|
| 5183 | REAL SMC |
---|
| 5184 | REAL SMCMAX |
---|
| 5185 | REAL VKwgt |
---|
| 5186 | REAL WCND |
---|
| 5187 | REAL WDF |
---|
| 5188 | |
---|
| 5189 | ! ---------------------------------------------------------------------- |
---|
| 5190 | ! CALC THE RATIO OF THE ACTUAL TO THE MAX PSBL SOIL H2O CONTENT |
---|
| 5191 | ! ---------------------------------------------------------------------- |
---|
| 5192 | SMC = SMC |
---|
| 5193 | SMCMAX = SMCMAX |
---|
| 5194 | FACTR1 = 0.2 / SMCMAX |
---|
| 5195 | FACTR2 = SMC / SMCMAX |
---|
| 5196 | |
---|
| 5197 | ! ---------------------------------------------------------------------- |
---|
| 5198 | ! PREP AN EXPNTL COEF AND CALC THE SOIL WATER DIFFUSIVITY |
---|
| 5199 | ! ---------------------------------------------------------------------- |
---|
| 5200 | EXPON = BEXP + 2.0 |
---|
| 5201 | WDF = DWSAT * FACTR2 ** EXPON |
---|
| 5202 | |
---|
| 5203 | ! ---------------------------------------------------------------------- |
---|
| 5204 | ! FROZEN SOIL HYDRAULIC DIFFUSIVITY. VERY SENSITIVE TO THE VERTICAL |
---|
| 5205 | ! GRADIENT OF UNFROZEN WATER. THE LATTER GRADIENT CAN BECOME VERY |
---|
| 5206 | ! EXTREME IN FREEZING/THAWING SITUATIONS, AND GIVEN THE RELATIVELY |
---|
| 5207 | ! FEW AND THICK SOIL LAYERS, THIS GRADIENT SUFFERES SERIOUS |
---|
| 5208 | ! TRUNCTION ERRORS YIELDING ERRONEOUSLY HIGH VERTICAL TRANSPORTS OF |
---|
| 5209 | ! UNFROZEN WATER IN BOTH DIRECTIONS FROM HUGE HYDRAULIC DIFFUSIVITY. |
---|
| 5210 | ! THEREFORE, WE FOUND WE HAD TO ARBITRARILY CONSTRAIN WDF |
---|
| 5211 | ! -- |
---|
| 5212 | ! VERSION D_10CM: ........ FACTR1 = 0.2/SMCMAX |
---|
| 5213 | ! WEIGHTED APPROACH...................... PABLO GRUNMANN, 28_SEP_1999. |
---|
| 5214 | ! ---------------------------------------------------------------------- |
---|
| 5215 | IF (SICEMAX .GT. 0.0) THEN |
---|
| 5216 | VKWGT = 1./(1.+(500.*SICEMAX)**3.) |
---|
| 5217 | WDF = VKWGT*WDF + (1.- VKWGT)*DWSAT*FACTR1**EXPON |
---|
| 5218 | ENDIF |
---|
| 5219 | |
---|
| 5220 | ! ---------------------------------------------------------------------- |
---|
| 5221 | ! RESET THE EXPNTL COEF AND CALC THE HYDRAULIC CONDUCTIVITY |
---|
| 5222 | ! ---------------------------------------------------------------------- |
---|
| 5223 | EXPON = (2.0 * BEXP) + 3.0 |
---|
| 5224 | WCND = DKSAT * FACTR2 ** EXPON |
---|
| 5225 | |
---|
| 5226 | ! ---------------------------------------------------------------------- |
---|
| 5227 | ! END SUBROUTINE WDFCND |
---|
| 5228 | ! ---------------------------------------------------------------------- |
---|
| 5229 | END SUBROUTINE WDFCND |
---|
| 5230 | |
---|
| 5231 | SUBROUTINE nmmlsminit(isn,XICE,VEGFRA,SNOW,SNOWC,CANWAT,SMSTAV, & |
---|
| 5232 | SMSTOT, SFCRUNOFF,UDRUNOFF,GRDFLX,ACSNOW, & |
---|
| 5233 | ACSNOM,IVGTYP,ISLTYP,TSLB,SMOIS,DZS,SFCEVP, & ! STEMP |
---|
| 5234 | TMN, & |
---|
| 5235 | num_soil_layers, & |
---|
| 5236 | allowed_to_read, & |
---|
| 5237 | ids,ide, jds,jde, kds,kde, & |
---|
| 5238 | ims,ime, jms,jme, kms,kme, & |
---|
| 5239 | its,ite, jts,jte, kts,kte ) |
---|
| 5240 | |
---|
| 5241 | IMPLICIT NONE |
---|
| 5242 | |
---|
| 5243 | ! Arguments |
---|
| 5244 | INTEGER, INTENT(IN ) :: ids,ide, jds,jde, kds,kde, & |
---|
| 5245 | ims,ime, jms,jme, kms,kme, & |
---|
| 5246 | its,ite, jts,jte, kts,kte |
---|
| 5247 | |
---|
| 5248 | INTEGER, INTENT(IN) :: num_soil_layers |
---|
| 5249 | |
---|
| 5250 | REAL, DIMENSION( num_soil_layers), INTENT(IN) :: DZS |
---|
| 5251 | |
---|
| 5252 | REAL, DIMENSION( ims:ime, num_soil_layers, jms:jme ) , & |
---|
| 5253 | INTENT(INOUT) :: SMOIS, & |
---|
| 5254 | TSLB !STEMP |
---|
| 5255 | |
---|
| 5256 | REAL, DIMENSION( ims:ime, jms:jme ) , & |
---|
| 5257 | INTENT(INOUT) :: SNOW, & |
---|
| 5258 | SNOWC, & |
---|
| 5259 | CANWAT, & |
---|
| 5260 | SMSTAV, & |
---|
| 5261 | SMSTOT, & |
---|
| 5262 | SFCRUNOFF, & |
---|
| 5263 | UDRUNOFF, & |
---|
| 5264 | SFCEVP, & |
---|
| 5265 | GRDFLX, & |
---|
| 5266 | ACSNOW, & |
---|
| 5267 | XICE, & |
---|
| 5268 | VEGFRA, & |
---|
| 5269 | TMN, & |
---|
| 5270 | ACSNOM |
---|
| 5271 | |
---|
| 5272 | INTEGER, DIMENSION( ims:ime, jms:jme ) , & |
---|
| 5273 | INTENT(INOUT) :: IVGTYP, & |
---|
| 5274 | ISLTYP |
---|
| 5275 | |
---|
| 5276 | ! |
---|
| 5277 | |
---|
| 5278 | INTEGER, INTENT(IN) :: isn |
---|
| 5279 | LOGICAL, INTENT(IN) :: allowed_to_read |
---|
| 5280 | ! Local |
---|
| 5281 | INTEGER :: iseason |
---|
| 5282 | INTEGER :: icm,jcm,itf,jtf |
---|
| 5283 | INTEGER :: I,J,L |
---|
| 5284 | |
---|
| 5285 | |
---|
| 5286 | itf=min0(ite,ide-1) |
---|
| 5287 | jtf=min0(jte,jde-1) |
---|
| 5288 | |
---|
| 5289 | icm = ide/2 |
---|
| 5290 | jcm = jde/2 |
---|
| 5291 | |
---|
| 5292 | iseason=isn |
---|
| 5293 | |
---|
| 5294 | DO J=jts,jtf |
---|
| 5295 | DO I=its,itf |
---|
| 5296 | ! SNOW(i,j)=0. |
---|
| 5297 | SNOWC(i,j)=0. |
---|
| 5298 | ! SMSTAV(i,j)= |
---|
| 5299 | ! SMSTOT(i,j)= |
---|
| 5300 | ! SFCRUNOFF(i,j)= |
---|
| 5301 | ! UDRUNOFF(i,j)= |
---|
| 5302 | ! GRDFLX(i,j)= |
---|
| 5303 | ! ACSNOW(i,j)= |
---|
| 5304 | ! ACSNOM(i,j)= |
---|
| 5305 | ENDDO |
---|
| 5306 | ENDDO |
---|
| 5307 | |
---|
| 5308 | END SUBROUTINE nmmlsminit |
---|
| 5309 | |
---|
| 5310 | FUNCTION CSNOW (DSNOW) |
---|
| 5311 | |
---|
| 5312 | IMPLICIT NONE |
---|
| 5313 | |
---|
| 5314 | ! ---------------------------------------------------------------------- |
---|
| 5315 | ! FUNCTION CSNOW |
---|
| 5316 | ! ---------------------------------------------------------------------- |
---|
| 5317 | ! CALCULATE SNOW TERMAL CONDUCTIVITY |
---|
| 5318 | ! ---------------------------------------------------------------------- |
---|
| 5319 | REAL C |
---|
| 5320 | REAL DSNOW |
---|
| 5321 | REAL CSNOW |
---|
| 5322 | REAL UNIT |
---|
| 5323 | |
---|
| 5324 | PARAMETER(UNIT = 0.11631) |
---|
| 5325 | |
---|
| 5326 | ! ---------------------------------------------------------------------- |
---|
| 5327 | ! CSNOW IN UNITS OF CAL/(CM*HR*C), RETURNED IN W/(M*C) |
---|
| 5328 | ! BASIC VERSION IS DYACHKOVA EQUATION (1960), FOR RANGE 0.1-0.4 |
---|
| 5329 | ! ---------------------------------------------------------------------- |
---|
| 5330 | C=0.328*10**(2.25*DSNOW) |
---|
| 5331 | ! CSNOW=UNIT*C |
---|
| 5332 | ! MEK JAN 2006, DOUBLE SNOW THERMAL CONDUCTIVITY |
---|
| 5333 | CSNOW=2.0*UNIT*C |
---|
| 5334 | |
---|
| 5335 | ! ---------------------------------------------------------------------- |
---|
| 5336 | ! DE VAUX EQUATION (1933), IN RANGE 0.1-0.6 |
---|
| 5337 | ! ---------------------------------------------------------------------- |
---|
| 5338 | ! CSNOW=0.0293*(1.+100.*DSNOW**2) |
---|
| 5339 | |
---|
| 5340 | ! ---------------------------------------------------------------------- |
---|
| 5341 | ! E. ANDERSEN FROM FLERCHINGER |
---|
| 5342 | ! ---------------------------------------------------------------------- |
---|
| 5343 | ! CSNOW=0.021+2.51*DSNOW**2 |
---|
| 5344 | |
---|
| 5345 | ! ---------------------------------------------------------------------- |
---|
| 5346 | ! END FUNCTION CSNOW |
---|
| 5347 | ! ---------------------------------------------------------------------- |
---|
| 5348 | END FUNCTION CSNOW |
---|
| 5349 | |
---|
| 5350 | FUNCTION FRH2O (TKELV,SMC,SH2O,SMCMAX,BEXP,PSIS) |
---|
| 5351 | |
---|
| 5352 | IMPLICIT NONE |
---|
| 5353 | |
---|
| 5354 | ! ---------------------------------------------------------------------- |
---|
| 5355 | ! FUNCTION FRH2O |
---|
| 5356 | ! ---------------------------------------------------------------------- |
---|
| 5357 | ! CALCULATE AMOUNT OF SUPERCOOLED LIQUID SOIL WATER CONTENT IF |
---|
| 5358 | ! TEMPERATURE IS BELOW 273.15K (T0). REQUIRES NEWTON-TYPE ITERATION TO |
---|
| 5359 | ! SOLVE THE NONLINEAR IMPLICIT EQUATION GIVEN IN EQN 17 OF KOREN ET AL |
---|
| 5360 | ! (1999, JGR, VOL 104(D16), 19569-19585). |
---|
| 5361 | ! ---------------------------------------------------------------------- |
---|
| 5362 | ! NEW VERSION (JUNE 2001): MUCH FASTER AND MORE ACCURATE NEWTON |
---|
| 5363 | ! ITERATION ACHIEVED BY FIRST TAKING LOG OF EQN CITED ABOVE -- LESS THAN |
---|
| 5364 | ! 4 (TYPICALLY 1 OR 2) ITERATIONS ACHIEVES CONVERGENCE. ALSO, EXPLICIT |
---|
| 5365 | ! 1-STEP SOLUTION OPTION FOR SPECIAL CASE OF PARAMETER CK=0, WHICH |
---|
| 5366 | ! REDUCES THE ORIGINAL IMPLICIT EQUATION TO A SIMPLER EXPLICIT FORM, |
---|
| 5367 | ! KNOWN AS THE "FLERCHINGER EQN". IMPROVED HANDLING OF SOLUTION IN THE |
---|
| 5368 | ! LIMIT OF FREEZING POINT TEMPERATURE T0. |
---|
| 5369 | ! ---------------------------------------------------------------------- |
---|
| 5370 | ! INPUT: |
---|
| 5371 | ! |
---|
| 5372 | ! TKELV.........TEMPERATURE (Kelvin) |
---|
| 5373 | ! SMC...........TOTAL SOIL MOISTURE CONTENT (VOLUMETRIC) |
---|
| 5374 | ! SH2O..........LIQUID SOIL MOISTURE CONTENT (VOLUMETRIC) |
---|
| 5375 | ! SMCMAX........SATURATION SOIL MOISTURE CONTENT (FROM REDPRM) |
---|
| 5376 | ! B.............SOIL TYPE "B" PARAMETER (FROM REDPRM) |
---|
| 5377 | ! PSIS..........SATURATED SOIL MATRIC POTENTIAL (FROM REDPRM) |
---|
| 5378 | ! |
---|
| 5379 | ! OUTPUT: |
---|
| 5380 | ! FRH2O.........SUPERCOOLED LIQUID WATER CONTENT |
---|
| 5381 | ! ---------------------------------------------------------------------- |
---|
| 5382 | REAL BEXP |
---|
| 5383 | REAL BLIM |
---|
| 5384 | REAL BX |
---|
| 5385 | REAL CK |
---|
| 5386 | REAL DENOM |
---|
| 5387 | REAL DF |
---|
| 5388 | REAL DH2O |
---|
| 5389 | REAL DICE |
---|
| 5390 | REAL DSWL |
---|
| 5391 | REAL ERROR |
---|
| 5392 | REAL FK |
---|
| 5393 | REAL FRH2O |
---|
| 5394 | REAL GS |
---|
| 5395 | REAL HLICE |
---|
| 5396 | REAL PSIS |
---|
| 5397 | REAL SH2O |
---|
| 5398 | REAL SMC |
---|
| 5399 | REAL SMCMAX |
---|
| 5400 | REAL SWL |
---|
| 5401 | REAL SWLK |
---|
| 5402 | REAL TKELV |
---|
| 5403 | REAL T0 |
---|
| 5404 | |
---|
| 5405 | INTEGER NLOG |
---|
| 5406 | INTEGER KCOUNT |
---|
| 5407 | |
---|
| 5408 | PARAMETER(CK = 8.0) |
---|
| 5409 | ! PARAMETER(CK = 0.0) |
---|
| 5410 | PARAMETER(BLIM = 5.5) |
---|
| 5411 | PARAMETER(ERROR = 0.005) |
---|
| 5412 | |
---|
| 5413 | PARAMETER(HLICE = 3.335E5) |
---|
| 5414 | PARAMETER(GS = 9.81) |
---|
| 5415 | PARAMETER(DICE = 920.0) |
---|
| 5416 | PARAMETER(DH2O = 1000.0) |
---|
| 5417 | PARAMETER(T0 = 273.15) |
---|
| 5418 | |
---|
| 5419 | ! ---------------------------------------------------------------------- |
---|
| 5420 | ! LIMITS ON PARAMETER B: B < 5.5 (use parameter BLIM) |
---|
| 5421 | ! SIMULATIONS SHOWED IF B > 5.5 UNFROZEN WATER CONTENT IS |
---|
| 5422 | ! NON-REALISTICALLY HIGH AT VERY LOW TEMPERATURES. |
---|
| 5423 | ! ---------------------------------------------------------------------- |
---|
| 5424 | BX = BEXP |
---|
| 5425 | IF (BEXP .GT. BLIM) BX = BLIM |
---|
| 5426 | |
---|
| 5427 | ! ---------------------------------------------------------------------- |
---|
| 5428 | ! INITIALIZING ITERATIONS COUNTER AND ITERATIVE SOLUTION FLAG. |
---|
| 5429 | ! ---------------------------------------------------------------------- |
---|
| 5430 | NLOG=0 |
---|
| 5431 | KCOUNT=0 |
---|
| 5432 | |
---|
| 5433 | ! ---------------------------------------------------------------------- |
---|
| 5434 | ! IF TEMPERATURE NOT SIGNIFICANTLY BELOW FREEZING (T0), SH2O = SMC |
---|
| 5435 | ! ---------------------------------------------------------------------- |
---|
| 5436 | IF (TKELV .GT. (T0 - 1.E-3)) THEN |
---|
| 5437 | FRH2O = SMC |
---|
| 5438 | ELSE |
---|
| 5439 | IF (CK .NE. 0.0) THEN |
---|
| 5440 | |
---|
| 5441 | ! ---------------------------------------------------------------------- |
---|
| 5442 | ! OPTION 1: ITERATED SOLUTION FOR NONZERO CK |
---|
| 5443 | ! IN KOREN ET AL, JGR, 1999, EQN 17 |
---|
| 5444 | ! ---------------------------------------------------------------------- |
---|
| 5445 | ! INITIAL GUESS FOR SWL (frozen content) |
---|
| 5446 | ! ---------------------------------------------------------------------- |
---|
| 5447 | SWL = SMC-SH2O |
---|
| 5448 | |
---|
| 5449 | ! ---------------------------------------------------------------------- |
---|
| 5450 | ! KEEP WITHIN BOUNDS. |
---|
| 5451 | ! ---------------------------------------------------------------------- |
---|
| 5452 | IF (SWL .GT. (SMC-0.02)) SWL = SMC-0.02 |
---|
| 5453 | IF (SWL .LT. 0.) SWL = 0. |
---|
| 5454 | |
---|
| 5455 | ! ---------------------------------------------------------------------- |
---|
| 5456 | ! START OF ITERATIONS |
---|
| 5457 | ! ---------------------------------------------------------------------- |
---|
| 5458 | DO WHILE ( (NLOG .LT. 10) .AND. (KCOUNT .EQ. 0) ) |
---|
| 5459 | NLOG = NLOG+1 |
---|
| 5460 | DF = ALOG(( PSIS*GS/HLICE ) * ( ( 1.+CK*SWL )**2. ) * & |
---|
| 5461 | & ( SMCMAX/(SMC-SWL) )**BX) - ALOG(-(TKELV-T0)/TKELV) |
---|
| 5462 | DENOM = 2. * CK / ( 1.+CK*SWL ) + BX / ( SMC - SWL ) |
---|
| 5463 | SWLK = SWL - DF/DENOM |
---|
| 5464 | ! ---------------------------------------------------------------------- |
---|
| 5465 | ! BOUNDS USEFUL FOR MATHEMATICAL SOLUTION. |
---|
| 5466 | ! ---------------------------------------------------------------------- |
---|
| 5467 | IF (SWLK .GT. (SMC-0.02)) SWLK = SMC - 0.02 |
---|
| 5468 | IF (SWLK .LT. 0.) SWLK = 0. |
---|
| 5469 | |
---|
| 5470 | ! ---------------------------------------------------------------------- |
---|
| 5471 | ! MATHEMATICAL SOLUTION BOUNDS APPLIED. |
---|
| 5472 | ! ---------------------------------------------------------------------- |
---|
| 5473 | DSWL = ABS(SWLK-SWL) |
---|
| 5474 | SWL = SWLK |
---|
| 5475 | |
---|
| 5476 | ! ---------------------------------------------------------------------- |
---|
| 5477 | ! IF MORE THAN 10 ITERATIONS, USE EXPLICIT METHOD (CK=0 APPROX.) |
---|
| 5478 | ! WHEN DSWL LESS OR EQ. ERROR, NO MORE ITERATIONS REQUIRED. |
---|
| 5479 | ! ---------------------------------------------------------------------- |
---|
| 5480 | IF ( DSWL .LE. ERROR ) THEN |
---|
| 5481 | KCOUNT = KCOUNT+1 |
---|
| 5482 | ENDIF |
---|
| 5483 | END DO |
---|
| 5484 | |
---|
| 5485 | ! ---------------------------------------------------------------------- |
---|
| 5486 | ! END OF ITERATIONS |
---|
| 5487 | ! ---------------------------------------------------------------------- |
---|
| 5488 | ! BOUNDS APPLIED WITHIN DO-BLOCK ARE VALID FOR PHYSICAL SOLUTION. |
---|
| 5489 | ! ---------------------------------------------------------------------- |
---|
| 5490 | FRH2O = SMC - SWL |
---|
| 5491 | |
---|
| 5492 | ! ---------------------------------------------------------------------- |
---|
| 5493 | ! END OPTION 1 |
---|
| 5494 | ! ---------------------------------------------------------------------- |
---|
| 5495 | ENDIF |
---|
| 5496 | |
---|
| 5497 | ! ---------------------------------------------------------------------- |
---|
| 5498 | ! OPTION 2: EXPLICIT SOLUTION FOR FLERCHINGER EQ. i.e. CK=0 |
---|
| 5499 | ! IN KOREN ET AL., JGR, 1999, EQN 17 |
---|
| 5500 | ! APPLY PHYSICAL BOUNDS TO FLERCHINGER SOLUTION |
---|
| 5501 | ! ---------------------------------------------------------------------- |
---|
| 5502 | IF (KCOUNT .EQ. 0) THEN |
---|
| 5503 | Print*,'Flerchinger used in NEW version. Iterations=',NLOG |
---|
| 5504 | FK = (((HLICE/(GS*(-PSIS)))* & |
---|
| 5505 | & ((TKELV-T0)/TKELV))**(-1/BX))*SMCMAX |
---|
| 5506 | IF (FK .LT. 0.02) FK = 0.02 |
---|
| 5507 | FRH2O = MIN (FK, SMC) |
---|
| 5508 | ! ---------------------------------------------------------------------- |
---|
| 5509 | ! END OPTION 2 |
---|
| 5510 | ! ---------------------------------------------------------------------- |
---|
| 5511 | ENDIF |
---|
| 5512 | |
---|
| 5513 | ENDIF |
---|
| 5514 | |
---|
| 5515 | ! ---------------------------------------------------------------------- |
---|
| 5516 | ! END FUNCTION FRH2O |
---|
| 5517 | ! ---------------------------------------------------------------------- |
---|
| 5518 | END FUNCTION FRH2O |
---|
| 5519 | |
---|
| 5520 | FUNCTION SNKSRC (TAVG,SMC,SH2O,ZSOIL,NSOIL, & |
---|
| 5521 | & SMCMAX,PSISAT,BEXP,DT,K,QTOT) |
---|
| 5522 | |
---|
| 5523 | IMPLICIT NONE |
---|
| 5524 | |
---|
| 5525 | ! ---------------------------------------------------------------------- |
---|
| 5526 | ! FUNCTION SNKSRC |
---|
| 5527 | ! ---------------------------------------------------------------------- |
---|
| 5528 | ! CALCULATE SINK/SOURCE TERM OF THE TERMAL DIFFUSION EQUATION. (SH2O) IS |
---|
| 5529 | ! AVAILABLE LIQUED WATER. |
---|
| 5530 | ! ---------------------------------------------------------------------- |
---|
| 5531 | INTEGER K |
---|
| 5532 | INTEGER NSOIL |
---|
| 5533 | |
---|
| 5534 | REAL BEXP |
---|
| 5535 | REAL DF |
---|
| 5536 | REAL DH2O |
---|
| 5537 | REAL DT |
---|
| 5538 | REAL DZ |
---|
| 5539 | REAL DZH |
---|
| 5540 | REAL FREE |
---|
| 5541 | ! REAL FRH2O |
---|
| 5542 | REAL HLICE |
---|
| 5543 | REAL PSISAT |
---|
| 5544 | REAL QTOT |
---|
| 5545 | REAL SH2O |
---|
| 5546 | REAL SMC |
---|
| 5547 | REAL SMCMAX |
---|
| 5548 | REAL SNKSRC |
---|
| 5549 | REAL T0 |
---|
| 5550 | REAL TAVG |
---|
| 5551 | REAL TDN |
---|
| 5552 | REAL TM |
---|
| 5553 | REAL TUP |
---|
| 5554 | REAL TZ |
---|
| 5555 | REAL X0 |
---|
| 5556 | REAL XDN |
---|
| 5557 | REAL XH2O |
---|
| 5558 | REAL XUP |
---|
| 5559 | REAL ZSOIL (NSOIL) |
---|
| 5560 | |
---|
| 5561 | PARAMETER(DH2O = 1.0000E3) |
---|
| 5562 | PARAMETER(HLICE = 3.3350E5) |
---|
| 5563 | PARAMETER(T0 = 2.7315E2) |
---|
| 5564 | |
---|
| 5565 | IF (K .EQ. 1) THEN |
---|
| 5566 | DZ = -ZSOIL(1) |
---|
| 5567 | ELSE |
---|
| 5568 | DZ = ZSOIL(K-1)-ZSOIL(K) |
---|
| 5569 | ENDIF |
---|
| 5570 | |
---|
| 5571 | ! ---------------------------------------------------------------------- |
---|
| 5572 | ! VIA FUNCTION FRH2O, COMPUTE POTENTIAL OR 'EQUILIBRIUM' UNFROZEN |
---|
| 5573 | ! SUPERCOOLED FREE WATER FOR GIVEN SOIL TYPE AND SOIL LAYER TEMPERATURE. |
---|
| 5574 | ! FUNCTION FRH20 INVOKES EQN (17) FROM V. KOREN ET AL (1999, JGR, VOL. |
---|
| 5575 | ! 104, PG 19573). (ASIDE: LATTER EQN IN JOURNAL IN CENTIGRADE UNITS. |
---|
| 5576 | ! ROUTINE FRH2O USE FORM OF EQN IN KELVIN UNITS.) |
---|
| 5577 | ! ---------------------------------------------------------------------- |
---|
| 5578 | FREE = FRH2O(TAVG,SMC,SH2O,SMCMAX,BEXP,PSISAT) |
---|
| 5579 | |
---|
| 5580 | ! ---------------------------------------------------------------------- |
---|
| 5581 | ! IN NEXT BLOCK OF CODE, INVOKE EQN 18 OF V. KOREN ET AL (1999, JGR, |
---|
| 5582 | ! VOL. 104, PG 19573.) THAT IS, FIRST ESTIMATE THE NEW AMOUNTOF LIQUID |
---|
| 5583 | ! WATER, 'XH2O', IMPLIED BY THE SUM OF (1) THE LIQUID WATER AT THE BEGIN |
---|
| 5584 | ! OF CURRENT TIME STEP, AND (2) THE FREEZE OF THAW CHANGE IN LIQUID |
---|
| 5585 | ! WATER IMPLIED BY THE HEAT FLUX 'QTOT' PASSED IN FROM ROUTINE HRT. |
---|
| 5586 | ! SECOND, DETERMINE IF XH2O NEEDS TO BE BOUNDED BY 'FREE' (EQUIL AMT) OR |
---|
| 5587 | ! IF 'FREE' NEEDS TO BE BOUNDED BY XH2O. |
---|
| 5588 | ! ---------------------------------------------------------------------- |
---|
| 5589 | XH2O = SH2O + QTOT*DT/(DH2O*HLICE*DZ) |
---|
| 5590 | |
---|
| 5591 | ! ---------------------------------------------------------------------- |
---|
| 5592 | ! FIRST, IF FREEZING AND REMAINING LIQUID LESS THAN LOWER BOUND, THEN |
---|
| 5593 | ! REDUCE EXTENT OF FREEZING, THEREBY LETTING SOME OR ALL OF HEAT FLUX |
---|
| 5594 | ! QTOT COOL THE SOIL TEMP LATER IN ROUTINE HRT. |
---|
| 5595 | ! ---------------------------------------------------------------------- |
---|
| 5596 | IF ( XH2O .LT. SH2O .AND. XH2O .LT. FREE) THEN |
---|
| 5597 | IF ( FREE .GT. SH2O ) THEN |
---|
| 5598 | XH2O = SH2O |
---|
| 5599 | ELSE |
---|
| 5600 | XH2O = FREE |
---|
| 5601 | ENDIF |
---|
| 5602 | ENDIF |
---|
| 5603 | |
---|
| 5604 | ! ---------------------------------------------------------------------- |
---|
| 5605 | ! SECOND, IF THAWING AND THE INCREASE IN LIQUID WATER GREATER THAN UPPER |
---|
| 5606 | ! BOUND, THEN REDUCE EXTENT OF THAW, THEREBY LETTING SOME OR ALL OF HEAT |
---|
| 5607 | ! FLUX QTOT WARM THE SOIL TEMP LATER IN ROUTINE HRT. |
---|
| 5608 | ! ---------------------------------------------------------------------- |
---|
| 5609 | IF ( XH2O .GT. SH2O .AND. XH2O .GT. FREE ) THEN |
---|
| 5610 | IF ( FREE .LT. SH2O ) THEN |
---|
| 5611 | XH2O = SH2O |
---|
| 5612 | ELSE |
---|
| 5613 | XH2O = FREE |
---|
| 5614 | ENDIF |
---|
| 5615 | ENDIF |
---|
| 5616 | |
---|
| 5617 | IF (XH2O .LT. 0.) XH2O = 0. |
---|
| 5618 | IF (XH2O .GT. SMC) XH2O = SMC |
---|
| 5619 | |
---|
| 5620 | ! ---------------------------------------------------------------------- |
---|
| 5621 | ! CALCULATE PHASE-CHANGE HEAT SOURCE/SINK TERM FOR USE IN ROUTINE HRT |
---|
| 5622 | ! AND UPDATE LIQUID WATER TO REFLCET FINAL FREEZE/THAW INCREMENT. |
---|
| 5623 | ! ---------------------------------------------------------------------- |
---|
| 5624 | SNKSRC = -DH2O*HLICE*DZ*(XH2O-SH2O)/DT |
---|
| 5625 | SH2O = XH2O |
---|
| 5626 | |
---|
| 5627 | ! ---------------------------------------------------------------------- |
---|
| 5628 | ! END FUNCTION SNKSRC |
---|
| 5629 | ! ---------------------------------------------------------------------- |
---|
| 5630 | END FUNCTION SNKSRC |
---|
| 5631 | |
---|
| 5632 | END MODULE module_sf_lsm_nmm |
---|
| 5633 | |
---|