123 |
|
|
124 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
125 |
|
|
126 |
#ifdef LAND_OLD_VERSION |
IF ( land_calc_grW .OR. land_calc_snow ) THEN |
|
IF ( .TRUE. ) THEN |
|
|
#else |
|
|
IF ( land_calc_grW ) THEN |
|
|
#endif |
|
127 |
C-- Initialize run-off arrays. |
C-- Initialize run-off arrays. |
128 |
DO j=1,sNy |
DO j=1,sNy |
129 |
DO i=1,sNx |
DO i=1,sNx |
131 |
land_enRnOf(i,j,bi,bj) = 0. _d 0 |
land_enRnOf(i,j,bi,bj) = 0. _d 0 |
132 |
ENDDO |
ENDDO |
133 |
ENDDO |
ENDDO |
134 |
|
ENDIF |
135 |
|
|
136 |
|
#ifdef LAND_OLD_VERSION |
137 |
|
IF ( .TRUE. ) THEN |
138 |
|
#else |
139 |
|
IF ( land_calc_grW ) THEN |
140 |
|
#endif |
141 |
C-- need (later on) ground temp. to be consistent with updated enthalpy: |
C-- need (later on) ground temp. to be consistent with updated enthalpy: |
142 |
DO k=1,land_nLev |
DO k=1,land_nLev |
143 |
DO j=1,sNy |
DO j=1,sNy |
170 |
land_snowAge(i,j,bi,bj) = |
land_snowAge(i,j,bi,bj) = |
171 |
& ( land_deltaT + land_snowAge(i,j,bi,bj)*ageFac ) |
& ( land_deltaT + land_snowAge(i,j,bi,bj)*ageFac ) |
172 |
IF ( enWfx.LT.0. ) THEN |
IF ( enWfx.LT.0. ) THEN |
173 |
C- snow precip in excess (Snow > Evap) : |
C- snow precip in excess ( > Evap of snow) or snow prec & Evap of Liq.Water: |
174 |
C => start to melt (until ground at freezing point) and then accumulate |
C => start to melt (until ground at freezing point) and then accumulate |
175 |
snowPrec = -enWfx -MAX( enGr1/land_deltaT, 0. _d 0 ) |
snowPrec = -enWfx -MAX( enGr1/land_deltaT, 0. _d 0 ) |
176 |
snowPrec = MAX( snowPrec*recip_Lfreez , 0. _d 0 ) |
C- snow accumulation cannot be larger that net precip |
177 |
|
snowPrec = MAX( 0. _d 0 , |
178 |
|
& MIN( snowPrec*recip_Lfreez, mPmE ) ) |
179 |
mPmE = mPmE - snowPrec |
mPmE = mPmE - snowPrec |
180 |
flxEngU(i,j) = enWfx + land_Lfreez*snowPrec |
flxEngU(i,j) = enWfx + land_Lfreez*snowPrec |
181 |
hNewSnow = land_deltaT * snowPrec / land_rhoSnow |
hNewSnow = land_deltaT * snowPrec / land_rhoSnow |
193 |
land_runOff(i,j,bi,bj) = mIceDt/land_rhoLiqW |
land_runOff(i,j,bi,bj) = mIceDt/land_rhoLiqW |
194 |
land_enRnOf(i,j,bi,bj) = -mIceDt*land_Lfreez |
land_enRnOf(i,j,bi,bj) = -mIceDt*land_Lfreez |
195 |
ELSE |
ELSE |
196 |
C- rain precip (whatever Evap is) or Evap exceeds snow precip : |
C- rain precip (whatever Evap is) or Evap of snow exceeds snow precip: |
197 |
C => snow melts or sublimates |
C => snow melts or sublimates |
198 |
c snowMelt = MIN( enWfx*recip_Lfreez , |
c snowMelt = MIN( enWfx*recip_Lfreez , |
199 |
c & land_hSnow(i,j,bi,bj)*land_rhoSnow/land_deltaT ) |
c & land_hSnow(i,j,bi,bj)*land_rhoSnow/land_deltaT ) |