Changeset 5486 for LMDZ6/trunk/libf/phylmd
- Timestamp:
- Jan 17, 2025, 3:38:37 PM (5 days ago)
- Location:
- LMDZ6/trunk/libf/phylmd
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/calcul_fluxs_mod.f90
r5285 r5486 177 177 zx_coefh(i) = cdragh(i) * zx_wind(i) * p1lay(i)/(RD*t1lay(i)) 178 178 zx_coefq(i) = cdragq(i) * zx_wind(i) * p1lay(i)/(RD*t1lay(i)) 179 ! zx_wind(i)=min_wind_speed+SQRT(gustiness(i)+u1lay(i)**2+v1lay(i)**2) &180 ! * p1lay(i)/(RD*t1lay(i))181 ! zx_coefh(i) = cdragh(i) * zx_wind(i)182 ! zx_coefq(i) = cdragq(i) * zx_wind(i)183 179 ENDDO 184 180 -
LMDZ6/trunk/libf/phylmd/fonte_neige_mod.F90
r5285 r5486 231 231 SUBROUTINE fonte_neige( knon, nisurf, knindex, dtime, & 232 232 tsurf, precip_rain, precip_snow, & 233 snow, qsol, tsurf_new, evap &233 snow, qsol, tsurf_new, evap, ice_sub & 234 234 #ifdef ISO 235 235 & ,fq_fonte_diag,fqfonte_diag,snow_evap_diag,fqcalving_diag & … … 288 288 REAL, DIMENSION(klon), INTENT(INOUT) :: evap 289 289 290 291 REAL, DIMENSION(klon), INTENT(OUT) :: ice_sub 290 292 #ifdef ISO 291 293 ! sortie de quelques diagnostiques … … 297 299 REAL, DIMENSION(klon), INTENT(OUT) :: runoff_diag 298 300 REAL, DIMENSION(klon), INTENT(OUT) :: run_off_lic_diag 299 REAL, INTENT(OUT) :: coeff_rel_diag 300 #endif 301 REAL, INTENT(OUT) :: coeff_rel_diag 302 #endif 303 301 304 302 305 ! Local variables … … 345 348 346 349 snow_evap = 0. 350 ice_sub(:) = 0. 347 351 348 352 IF (.NOT. ok_lic_cond) THEN … … 363 367 364 368 bil_eau_s(:) = (precip_rain(:) * dtime) - (evap(:) - snow_evap(:)) * dtime 369 370 IF (nisurf==is_lic) THEN 371 DO i=1,knon 372 ice_sub(i)=evap(i)-snow_evap(i) 373 ENDDO 374 ENDIF 375 365 376 #ifdef ISO 366 377 snow_evap_diag(:) = snow_evap(:) -
LMDZ6/trunk/libf/phylmd/ocean_forced_mod.F90
r5301 r5486 335 335 REAL :: zfra 336 336 REAL, PARAMETER :: t_grnd=271.35 337 REAL, DIMENSION(klon) :: cal, beta, dif_grnd, capsol 337 REAL, DIMENSION(klon) :: cal, beta, dif_grnd, capsol, icesub 338 338 REAL, DIMENSION(klon) :: alb_neig, tsurf_tmp 339 339 REAL, DIMENSION(klon) :: soilcap, soilflux … … 452 452 CALL fonte_neige( knon, is_sic, knindex, dtime, & 453 453 tsurf_tmp, precip_rain, precip_snow, & 454 snow, qsol, tsurf_new, evap &454 snow, qsol, tsurf_new, evap, icesub & 455 455 #ifdef ISO 456 456 & ,fq_fonte_diag,fqfonte_diag,snow_evap_diag,fqcalving_diag & -
LMDZ6/trunk/libf/phylmd/pbl_surface_mod.F90
r5310 r5486 277 277 !>jyg 278 278 alb_dir_m, alb_dif_m, zxsens, zxevap, zxsnowerosion, & 279 alb3_lic, runoff, snowhgt, qsnow, to_ice, sissnow, &279 icesub_lic, alb3_lic, runoff, snowhgt, qsnow, to_ice, sissnow, & 280 280 zxtsol, zxfluxlat, zt2m, qsat2m, zn2mout, & 281 281 d_t, d_q, d_qbs, d_u, d_v, d_t_diss, & … … 522 522 REAL, DIMENSION(klon), INTENT(OUT) :: zxevap ! water vapour flux at surface, positiv upwards 523 523 REAL, DIMENSION(klon), INTENT(OUT) :: zxsnowerosion ! blowing snow flux at surface 524 REAL, DIMENSION(klon), INTENT(OUT) :: icesub_lic ! ice (no snow!) sublimation over ice sheet 524 525 REAL, DIMENSION(klon), INTENT(OUT) :: zxtsol ! temperature at surface, mean for each grid point 525 526 !!! jyg le ??? … … 745 746 REAL, DIMENSION(klon) :: AcoefQBS, BcoefQBS 746 747 REAL, DIMENSION(klon) :: ypsref 747 REAL, DIMENSION(klon) :: yevap, yevap_pot, ytsurf_new, yalb3_new 748 REAL, DIMENSION(klon) :: yevap, yevap_pot, ytsurf_new, yalb3_new, yicesub_lic 748 749 !albedo SB >>> 749 750 REAL, DIMENSION(klon,nsw) :: yalb_dir_new, yalb_dif_new … … 1246 1247 zxfluxt(:,:)=0. ; zxfluxq(:,:)=0.; zxfluxqbs(:,:)=0. 1247 1248 qsnow(:)=0. ; snowhgt(:)=0. ; to_ice(:)=0. ; sissnow(:)=0. 1248 runoff(:)=0. 1249 runoff(:)=0. ; icesub_lic(:)=0. 1249 1250 #ifdef ISO 1250 1251 zxxtevap(:,:)=0. … … 2498 2499 ypsref, yu1, yv1, ygustiness, yrugoro, pctsrf, & 2499 2500 ysnow, yqsurf, yqsol,yqbs1, yagesno, & 2500 ytsoil, yz0m, yz0h, SFRWL, yalb_dir_new, yalb_dif_new, yevap, yfluxsens,yfluxlat, &2501 ytsoil, yz0m, yz0h, SFRWL, yalb_dir_new, yalb_dif_new, yevap, yicesub_lic, yfluxsens,yfluxlat, & 2501 2502 yfluxbs, ytsurf_new, y_dflux_t, y_dflux_q, & 2502 2503 yzmea, yzsig, ycldt, & … … 2521 2522 sissnow(i) = ysissnow(j) 2522 2523 runoff(i) = yrunoff(j) 2524 icesub_lic(i) = yicesub_lic(j)*ypct(j) 2523 2525 ENDDO 2524 2526 ! Martin … … 3225 3227 3226 3228 ENDIF ! (iflag_split .eq.0) 3227 !!! 3229 3228 3230 3229 3231 ! tendencies of blowing snow -
LMDZ6/trunk/libf/phylmd/phys_local_var_mod.F90
r5425 r5486 385 385 REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: dthmin, evap, snowerosion, fder, plcl, plfc, prw, prlw, prsw, prbsw, water_budget 386 386 !$OMP THREADPRIVATE(dthmin, evap, snowerosion, fder, plcl, plfc, prw, prlw, prsw, prbsw, water_budget) 387 REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: icesub_lic 388 !$OMP THREADPRIVATE(icesub_lic) 387 389 REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zustar, zu10m, zv10m, rh2m 388 390 !$OMP THREADPRIVATE(zustar, zu10m, zv10m, rh2m) … … 1027 1029 ALLOCATE(cldm(klon), cldq(klon), cldt(klon), qsat2m(klon)) 1028 1030 ALLOCATE(JrNt(klon)) 1029 ALLOCATE(dthmin(klon), evap(klon), snowerosion(klon), fder(klon), plcl(klon), plfc(klon) )1031 ALLOCATE(dthmin(klon), evap(klon), snowerosion(klon), fder(klon), plcl(klon), plfc(klon), icesub_lic(klon)) 1030 1032 ALLOCATE(prw(klon), prlw(klon), prsw(klon), prbsw(klon), water_budget(klon), zustar(klon), zu10m(klon), zv10m(klon), rh2m(klon)) 1031 1033 ALLOCATE(s_lcl(klon)) … … 1460 1462 DEALLOCATE(cldm, cldq, cldt, qsat2m) 1461 1463 DEALLOCATE(JrNt) 1462 DEALLOCATE(dthmin, evap, snowerosion, fder, plcl, plfc)1464 DEALLOCATE(dthmin, evap, snowerosion, icesub_lic, fder, plcl, plfc) 1463 1465 DEALLOCATE(prw, prlw, prsw, prbsw, water_budget, zustar, zu10m, zv10m, rh2m, s_lcl) 1464 1466 DEALLOCATE(s_pblh, s_pblt, s_therm) -
LMDZ6/trunk/libf/phylmd/phys_output_ctrlout_mod.F90
r5473 r5486 384 384 TYPE(ctrl_out), SAVE :: o_snowerosion = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 385 385 'snowerosion', 'blowing snow flux', 'kg/(s*m2)', (/ ('', i=1, 10) /)) 386 TYPE(ctrl_out), SAVE :: o_icesub_lic = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 387 'icesub_lic', 'sublimation of ice over landice tiles, mesh-averaged', 'kg/(s*m2)', (/ ('', i=1, 10) /)) 386 388 TYPE(ctrl_out), SAVE :: o_ustart_lic = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 387 389 'ustart_lic', 'threshold velocity', 'm/s', (/ ('', i=1, 10) /)) -
LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90
r5473 r5486 49 49 o_psol, o_mass, o_qsurf, o_qsol, & 50 50 o_precip, o_rain_fall, o_rain_con, o_ndayrain, o_plul, o_pluc, o_plun, & 51 o_snow, o_msnow, o_fsnow, o_evap, o_snowerosion, o_ustart_lic, o_qsalt_lic, o_rhosnow_lic, o_bsfall, & 51 o_snow, o_msnow, o_fsnow, o_evap, o_snowerosion, o_ustart_lic, o_qsalt_lic, o_rhosnow_lic, o_bsfall, & 52 o_icesub_lic, & 52 53 o_ep,o_epmax_diag, & ! epmax_cape 53 54 o_tops, o_tops0, o_topl, o_topl0, & … … 317 318 USE phys_local_var_mod, ONLY: zxfluxlat, slp, ptstar, pt0, zxtsol, zt2m, & 318 319 zn2mout, t2m_min_mon, t2m_max_mon, evap, & 319 snowerosion, zxustartlic, zxrhoslic, zxqsaltlic, &320 snowerosion, icesub_lic, zxustartlic, zxrhoslic, zxqsaltlic, & 320 321 l_mixmin,l_mix, pbl_eps, tke_shear, tke_buoy, tke_trans, & 321 322 zu10m, zv10m, zq2m, zustar, zxqsurf, & … … 915 916 CALL histwrite_phy(o_fsnow, zfra_o) 916 917 CALL histwrite_phy(o_evap, evap) 918 CALL histwrite_phy(o_icesub_lic, icesub_lic) 917 919 918 920 IF (ok_bs) THEN -
LMDZ6/trunk/libf/phylmd/physiq_mod.F90
r5483 r5486 247 247 cldh, cldl,cldm, cldq, cldt, & 248 248 JrNt, & 249 dthmin, evap, snowerosion, fder, plcl, plfc, &249 dthmin, evap, snowerosion, icesub_lic, fder, plcl, plfc, & 250 250 prw, prlw, prsw, prbsw, water_budget, & 251 251 s_lcl, s_pblh, s_pblt, s_therm, & … … 1101 1101 REAL ztsol(klon) 1102 1102 REAL q2m(klon,nbsrf) ! humidite a 2m 1103 REAL fsnowerosion(klon,nbsrf) ! blowing snow flux at surface1104 1103 REAL qbsfra ! blowing snow fraction 1105 1104 !IM: t2m, q2m, ustar, u10m, v10m et t2mincels, t2maxcels … … 2894 2893 cdragh, cdragm, u1, v1, & 2895 2894 beta_aridity, & 2896 !albedo SB >>> 2897 ! albsol1, albsol2, sens, evap, & 2898 albsol_dir, albsol_dif, sens, evap, snowerosion, & 2899 !albedo SB <<< 2895 albsol_dir, albsol_dif, sens, evap, snowerosion, icesub_lic, & 2900 2896 albsol3_lic,runoff, snowhgt, qsnow, to_ice, sissnow, & 2901 2897 zxtsol, zxfluxlat, zt2m, qsat2m, zn2mout, & -
LMDZ6/trunk/libf/phylmd/surf_land_bucket_mod.F90
r5285 r5486 102 102 REAL, DIMENSION(klon) :: soilcap, soilflux 103 103 REAL, DIMENSION(klon) :: cal, beta, dif_grnd, capsol 104 REAL, DIMENSION(klon) :: alb_neig, alb_lim 104 REAL, DIMENSION(klon) :: alb_neig, alb_lim, icesub 105 105 REAL, DIMENSION(klon) :: zfra 106 106 REAL, DIMENSION(klon) :: radsol ! total net radiance at surface … … 239 239 CALL fonte_neige( knon, is_ter, knindex, dtime, & 240 240 tsurf, precip_rain, precip_snow, & 241 snow, qsol, tsurf_new, evap &241 snow, qsol, tsurf_new, evap, icesub & 242 242 #ifdef ISO 243 243 & ,fq_fonte_diag,fqfonte_diag,snow_evap_diag,fqcalving_diag & -
LMDZ6/trunk/libf/phylmd/surf_landice_mod.F90
r5364 r5486 18 18 ps, u1, v1, gustiness, rugoro, pctsrf, & 19 19 snow, qsurf, qsol, qbs1, agesno, & 20 tsoil, z0m, z0h, SFRWL, alb_dir, alb_dif, evap, fluxsens, fluxlat, fluxbs, &20 tsoil, z0m, z0h, SFRWL, alb_dir, alb_dif, evap, icesub_lic, fluxsens, fluxlat, fluxbs, & 21 21 tsurf_new, dflux_s, dflux_l, & 22 22 alt, slope, cloudf, & … … 48 48 #endif 49 49 50 !FC51 50 USE clesphys_mod_h 52 51 USE yomcst_mod_h 53 USE ioipsl_getin_p_mod, ONLY : getin_p52 USE ioipsl_getin_p_mod, ONLY : getin_p 54 53 USE lmdz_blowing_snow_ini, ONLY : c_esalt_bs, zeta_bs, pbst_bs, prt_bs, rhoice_bs, rhohard_bs 55 54 USE lmdz_blowing_snow_ini, ONLY : rhofresh_bs, tau_eqsalt_bs, tau_dens0_bs, tau_densmin_bs … … 60 59 USE dimsoil_mod_h, ONLY: nsoilmx 61 60 62 ! INCLUDE "indicesol.h"63 61 64 62 … … 121 119 REAL, DIMENSION(klon,nsw), INTENT(OUT) :: alb_dir,alb_dif 122 120 !albedo SB <<< 123 REAL, DIMENSION(klon), INTENT(OUT) :: evap, fluxsens, fluxlat 121 REAL, DIMENSION(klon), INTENT(OUT) :: evap, fluxsens, fluxlat, icesub_lic 124 122 REAL, DIMENSION(klon), INTENT(OUT) :: fluxbs 125 123 REAL, DIMENSION(klon), INTENT(OUT) :: tsurf_new … … 135 133 #ifdef ISO 136 134 REAL, DIMENSION(ntiso,klon), INTENT(OUT) :: xtevap 137 ! real, DIMENSION(niso,klon) :: xtrun_off_lic_0_diag ! est une variable globale de138 ! fonte_neige139 135 #endif 140 136 … … 163 159 REAL, DIMENSION(niso,klon) :: xtsnow_prec,xtsol_prec 164 160 REAL, DIMENSION(klon) :: snow_prec,qsol_prec 165 ! real, DIMENSION(klon) :: run_off_lic_0_diag166 161 #endif 167 162 … … 257 252 ! landice_opt = 0 : soil_model, calcul_flux, fonte_neige, ... 258 253 ! landice_opt = 1 : prepare and call INterace Lmdz SISvat (INLANDSIS) 254 ! landice_opt = 2 : skip surf_landice and use orchidee over all land surfaces 259 255 !**************************************************************************************** 260 256 … … 375 371 ! 376 372 !**************************************************************************************** 377 ! beta(:) = 1.0378 ! dif_grnd(:) = 0.0379 373 380 374 ! Suppose zero surface speed … … 393 387 #ifdef ISO 394 388 #ifdef ISOVERIF 395 !write(*,*) 'surf_land_ice 1499'396 389 DO i=1,knon 397 390 IF (iso_eau > 0) THEN … … 427 420 ! 428 421 !**************************************************************************************** 429 430 !431 !IM: plusieurs choix/tests sur l'albedo des "glaciers continentaux"432 ! alb1(1 : knon) = 0.6 !IM cf FH/GK433 ! alb1(1 : knon) = 0.82434 ! alb1(1 : knon) = 0.77 !211003 Ksta0.77435 ! alb1(1 : knon) = 0.8 !KstaTER0.8 & LMD_ARMIP5436 !IM: KstaTER0.77 & LMD_ARMIP6437 422 438 423 ! Attantion: alb1 and alb2 are not the same! … … 622 607 CALL fonte_neige(knon, is_lic, knindex, dtime, & 623 608 tsurf, precip_rain, precip_totsnow, & 624 snow, qsol, tsurf_new, evap_totsnow &609 snow, qsol, tsurf_new, evap_totsnow, icesub_lic & 625 610 #ifdef ISO 626 611 & ,fq_fonte_diag,fqfonte_diag,snow_evap_diag,fqcalving_diag &
Note: See TracChangeset
for help on using the changeset viewer.