Changeset 2946 for LMDZ5/trunk/libf/phylmd/fonte_neige_mod.F90
- Timestamp:
- Jul 12, 2017, 8:28:32 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/fonte_neige_mod.F90
r2619 r2946 213 213 214 214 snow_evap = 0. 215 WHERE (evap > 0. ) 216 snow_evap = MIN (snow / dtime, evap) 217 snow = snow - snow_evap * dtime 218 snow = MAX(0.0, snow) 219 END WHERE 215 216 IF (.NOT. ok_lic_cond) THEN 217 !---only positive evaporation has an impact on snow 218 !---note that this could create a bit of water 219 !---this was the default until CMIP6 220 WHERE (evap > 0. ) 221 snow_evap = MIN (snow / dtime, evap) !---one cannot evaporate more than the amount of snow 222 snow = snow - snow_evap * dtime !---snow that remains on the ground 223 snow = MAX(0.0, snow) !---just in case 224 END WHERE 225 ELSE 226 !--now considers both positive and negative evaporation in the budget of snow 227 snow_evap = MIN (snow / dtime, evap) !---one cannot evaporate more than the amount of snow 228 snow = snow - snow_evap * dtime !---snow that remains or deposits on the ground 229 snow = MAX(0.0, snow) !---just in case 230 ENDIF 220 231 221 232 bil_eau_s(:) = (precip_rain(:) * dtime) - (evap(:) - snow_evap(:)) * dtime … … 232 243 fqcalving(:) = 0.0 233 244 fqfonte(:) = 0.0 245 234 246 DO i = 1, knon 235 247 ! Y'a-t-il fonte de neige? 236 neige_fond = ((snow(i) > epsfra .OR. nisurf == is_sic .OR. nisurf == is_lic) & 237 .AND. tsurf_new(i) >= RTT) 248 neige_fond = (snow(i)>epsfra .OR. nisurf==is_sic .OR. nisurf==is_lic) .AND. tsurf_new(i)>=RTT 238 249 IF (neige_fond) THEN 239 250 fq_fonte = MIN( MAX((tsurf_new(i)-RTT )/chasno,0.0),snow(i)) … … 258 269 ENDIF 259 270 260 ! s'il y a une hauteur trop importante de neige, elle s'coule271 ! s'il y a une hauteur trop importante de neige, elle est ecretee 261 272 fqcalving(i) = MAX(0., snow(i) - snow_max)/dtime 262 273 snow(i)=MIN(snow(i),snow_max) 263 END DO 264 274 ENDDO 265 275 266 276 IF (nisurf == is_ter) THEN … … 269 279 run_off_ter(i) = run_off_ter(i) + MAX(qsol(i) - max_eau_sol, 0.0) 270 280 qsol(i) = MIN(qsol(i), max_eau_sol) 271 END 281 ENDDO 272 282 ELSE IF (nisurf == is_lic) THEN 273 283 DO i = 1, knon 274 284 j = knindex(i) 275 run_off_lic(i) = (coeff_rel * fqcalving(i)) + &276 (1. - coeff_rel) *run_off_lic_0(j)285 !--temporal filtering 286 run_off_lic(i) = coeff_rel*fqcalving(i) + (1.-coeff_rel)*run_off_lic_0(j) 277 287 run_off_lic_0(j) = run_off_lic(i) 288 !--add melting snow and liquid precip to runoff of ice cap 278 289 run_off_lic(i) = run_off_lic(i) + fqfonte(i) + precip_rain(i) 279 END 290 ENDDO 280 291 ENDIF 281 292
Note: See TracChangeset
for help on using the changeset viewer.