Changeset 2946 for LMDZ5/trunk/libf/phylmd
- Timestamp:
- Jul 12, 2017, 8:28:32 PM (7 years ago)
- Location:
- LMDZ5/trunk/libf/phylmd
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/clesphys.h
r2788 r2946 29 29 !OM Fonte calotte dans bilan eau 30 30 LOGICAL ok_lic_melt 31 !OB Depot de vapeur d eau sur la calotte pour le bilan eau 32 LOGICAL ok_lic_cond 31 33 32 34 !IM simulateur ISCCP … … 129 131 & , ip_ebil_phy & 130 132 & , iflag_gusts ,iflag_z0_oce & 131 & , ok_lic_melt, aer_type&133 & , ok_lic_melt, ok_lic_cond, aer_type & 132 134 & , iflag_rrtm, ok_strato,ok_hines, ok_qch4 & 133 135 & , iflag_ice_thermo, ok_gwd_rando, NSW, iflag_albedo & -
LMDZ5/trunk/libf/phylmd/conf_phys_m.F90
r2945 r2946 207 207 REAL,SAVE :: cvl_corr_omp 208 208 LOGICAL,SAVE :: ok_lic_melt_omp 209 LOGICAL,SAVE :: ok_lic_cond_omp 209 210 ! 210 211 LOGICAL,SAVE :: cycle_diurne_omp,soil_model_omp,new_oliq_omp … … 1383 1384 ok_lic_melt_omp = .FALSE. 1384 1385 CALL getin('ok_lic_melt', ok_lic_melt_omp) 1386 1387 1388 !Config Key = ok_lic_cond 1389 !Config Desc = Prise en compte depot de vapeur d'eau sur la calotte dans le bilan d'eau 1390 !Config Def = .FALSE. 1391 !Config Help = mettre a .TRUE. pour assurer la conservation en eau 1392 ok_lic_cond_omp = .FALSE. 1393 CALL getin('ok_lic_cond', ok_lic_cond_omp) 1385 1394 1386 1395 ! -
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.