Ignore:
Timestamp:
Jan 17, 2025, 3:38:37 PM (5 days ago)
Author:
evignon
Message:

inclusion d'un diagnostique de la sublimation de la glace sur les landice
pour la conservation de l'eau

Location:
LMDZ6/trunk/libf/phylmd
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/calcul_fluxs_mod.f90

    r5285 r5486  
    177177       zx_coefh(i) = cdragh(i) * zx_wind(i) * p1lay(i)/(RD*t1lay(i))
    178178       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)
    183179    ENDDO
    184180
  • LMDZ6/trunk/libf/phylmd/fonte_neige_mod.F90

    r5285 r5486  
    231231  SUBROUTINE fonte_neige( knon, nisurf, knindex, dtime, &
    232232       tsurf, precip_rain, precip_snow, &
    233        snow, qsol, tsurf_new, evap &
     233       snow, qsol, tsurf_new, evap, ice_sub &
    234234#ifdef ISO   
    235235     & ,fq_fonte_diag,fqfonte_diag,snow_evap_diag,fqcalving_diag   &
     
    288288    REAL, DIMENSION(klon), INTENT(INOUT) :: evap
    289289
     290
     291    REAL, DIMENSION(klon), INTENT(OUT)   :: ice_sub
    290292#ifdef ISO   
    291293        ! sortie de quelques diagnostiques
     
    297299    REAL, DIMENSION(klon), INTENT(OUT) ::  runoff_diag   
    298300    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
    301304
    302305! Local variables
     
    345348
    346349    snow_evap = 0.
     350    ice_sub(:) = 0.
    347351 
    348352    IF (.NOT. ok_lic_cond) THEN
     
    363367   
    364368    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
    365376#ifdef ISO
    366377    snow_evap_diag(:) = snow_evap(:)
  • LMDZ6/trunk/libf/phylmd/ocean_forced_mod.F90

    r5301 r5486  
    335335    REAL                        :: zfra
    336336    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
    338338    REAL, DIMENSION(klon)       :: alb_neig, tsurf_tmp
    339339    REAL, DIMENSION(klon)       :: soilcap, soilflux
     
    452452    CALL fonte_neige( knon, is_sic, knindex, dtime, &
    453453         tsurf_tmp, precip_rain, precip_snow, &
    454          snow, qsol, tsurf_new, evap &
     454         snow, qsol, tsurf_new, evap, icesub &
    455455#ifdef ISO   
    456456     &  ,fq_fonte_diag,fqfonte_diag,snow_evap_diag,fqcalving_diag   &
  • LMDZ6/trunk/libf/phylmd/pbl_surface_mod.F90

    r5310 r5486  
    277277!>jyg
    278278       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,  &
    280280       zxtsol,    zxfluxlat, zt2m,     qsat2m, zn2mout,                 &
    281281       d_t,       d_q,    d_qbs,    d_u,      d_v, d_t_diss,            &
     
    522522    REAL, DIMENSION(klon),        INTENT(OUT)       :: zxevap     ! water vapour flux at surface, positiv upwards
    523523    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
    524525    REAL, DIMENSION(klon),        INTENT(OUT)       :: zxtsol     ! temperature at surface, mean for each grid point
    525526!!! jyg le ???
     
    745746    REAL, DIMENSION(klon)              :: AcoefQBS, BcoefQBS
    746747    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
    748749!albedo SB >>>
    749750    REAL, DIMENSION(klon,nsw)          :: yalb_dir_new, yalb_dif_new
     
    12461247 zxfluxt(:,:)=0. ; zxfluxq(:,:)=0.; zxfluxqbs(:,:)=0.
    12471248 qsnow(:)=0. ; snowhgt(:)=0. ; to_ice(:)=0. ; sissnow(:)=0.
    1248  runoff(:)=0.
     1249 runoff(:)=0. ; icesub_lic(:)=0.
    12491250#ifdef ISO
    12501251zxxtevap(:,:)=0.
     
    24982499                  ypsref, yu1, yv1, ygustiness, yrugoro, pctsrf, &
    24992500                  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, &
    25012502                  yfluxbs, ytsurf_new, y_dflux_t, y_dflux_q, &
    25022503                  yzmea, yzsig, ycldt, &
     
    25212522                sissnow(i)   = ysissnow(j)
    25222523                runoff(i)    = yrunoff(j)
     2524                icesub_lic(i) = yicesub_lic(j)*ypct(j)
    25232525             ENDDO
    25242526             ! Martin
     
    32253227
    32263228       ENDIF  ! (iflag_split .eq.0)
    3227 !!!
     3229
    32283230
    32293231       ! tendencies of blowing snow
  • LMDZ6/trunk/libf/phylmd/phys_local_var_mod.F90

    r5425 r5486  
    385385      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: dthmin, evap, snowerosion, fder, plcl, plfc, prw, prlw, prsw, prbsw, water_budget
    386386!$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)
    387389      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zustar, zu10m, zv10m, rh2m
    388390!$OMP THREADPRIVATE(zustar, zu10m, zv10m, rh2m)
     
    10271029      ALLOCATE(cldm(klon), cldq(klon), cldt(klon), qsat2m(klon))
    10281030      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))
    10301032      ALLOCATE(prw(klon), prlw(klon), prsw(klon), prbsw(klon), water_budget(klon), zustar(klon), zu10m(klon), zv10m(klon), rh2m(klon))
    10311033      ALLOCATE(s_lcl(klon))
     
    14601462      DEALLOCATE(cldm, cldq, cldt, qsat2m)
    14611463      DEALLOCATE(JrNt)
    1462       DEALLOCATE(dthmin, evap, snowerosion, fder, plcl, plfc)
     1464      DEALLOCATE(dthmin, evap, snowerosion, icesub_lic, fder, plcl, plfc)
    14631465      DEALLOCATE(prw, prlw, prsw, prbsw, water_budget, zustar, zu10m, zv10m, rh2m, s_lcl)
    14641466      DEALLOCATE(s_pblh, s_pblt, s_therm)
  • LMDZ6/trunk/libf/phylmd/phys_output_ctrlout_mod.F90

    r5473 r5486  
    384384  TYPE(ctrl_out), SAVE :: o_snowerosion = ctrl_out((/ 10, 10, 10, 10, 10, 10, 11, 11, 11, 11/), &
    385385   '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) /))
    386388  TYPE(ctrl_out), SAVE :: o_ustart_lic = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), &
    387389    'ustart_lic', 'threshold velocity', 'm/s', (/ ('', i=1, 10) /))
  • LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90

    r5473 r5486  
    4949         o_psol, o_mass, o_qsurf, o_qsol, &
    5050         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, &
    5253         o_ep,o_epmax_diag, & ! epmax_cape
    5354         o_tops, o_tops0, o_topl, o_topl0, &
     
    317318    USE phys_local_var_mod, ONLY: zxfluxlat, slp, ptstar, pt0, zxtsol, zt2m, &
    318319         zn2mout, t2m_min_mon, t2m_max_mon, evap, &
    319          snowerosion, zxustartlic, zxrhoslic, zxqsaltlic, &
     320         snowerosion, icesub_lic, zxustartlic, zxrhoslic, zxqsaltlic, &
    320321         l_mixmin,l_mix, pbl_eps, tke_shear, tke_buoy, tke_trans, &
    321322         zu10m, zv10m, zq2m, zustar, zxqsurf, &
     
    915916       CALL histwrite_phy(o_fsnow, zfra_o)
    916917       CALL histwrite_phy(o_evap, evap)
     918       CALL histwrite_phy(o_icesub_lic, icesub_lic)
    917919
    918920       IF (ok_bs) THEN
  • LMDZ6/trunk/libf/phylmd/physiq_mod.F90

    r5483 r5486  
    247247       cldh, cldl,cldm, cldq, cldt,      &
    248248       JrNt,                             &
    249        dthmin, evap, snowerosion,fder, plcl, plfc,   &
     249       dthmin, evap, snowerosion, icesub_lic, fder, plcl, plfc,   &
    250250       prw, prlw, prsw, prbsw, water_budget,         &
    251251       s_lcl, s_pblh, s_pblt, s_therm,   &
     
    11011101    REAL ztsol(klon)
    11021102    REAL q2m(klon,nbsrf)  ! humidite a 2m
    1103     REAL fsnowerosion(klon,nbsrf) ! blowing snow flux at surface
    11041103    REAL qbsfra  ! blowing snow fraction
    11051104    !IM: t2m, q2m, ustar, u10m, v10m et t2mincels, t2maxcels
     
    28942893            cdragh,    cdragm,  u1,    v1,            &
    28952894            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, &
    29002896            albsol3_lic,runoff,   snowhgt,   qsnow, to_ice, sissnow, &
    29012897            zxtsol,    zxfluxlat, zt2m,    qsat2m,  zn2mout, &
  • LMDZ6/trunk/libf/phylmd/surf_land_bucket_mod.F90

    r5285 r5486  
    102102    REAL, DIMENSION(klon) :: soilcap, soilflux
    103103    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
    105105    REAL, DIMENSION(klon) :: zfra
    106106    REAL, DIMENSION(klon) :: radsol       ! total net radiance at surface
     
    239239    CALL fonte_neige( knon, is_ter, knindex, dtime, &
    240240         tsurf, precip_rain, precip_snow, &
    241          snow, qsol, tsurf_new, evap &
     241         snow, qsol, tsurf_new, evap, icesub &
    242242#ifdef ISO   
    243243     & ,fq_fonte_diag,fqfonte_diag,snow_evap_diag,fqcalving_diag   &
  • LMDZ6/trunk/libf/phylmd/surf_landice_mod.F90

    r5364 r5486  
    1818       ps, u1, v1, gustiness, rugoro, pctsrf, &
    1919       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, &
    2121       tsurf_new, dflux_s, dflux_l, &
    2222       alt, slope, cloudf, &
     
    4848#endif
    4949 
    50 !FC
    5150    USE clesphys_mod_h
    5251    USE yomcst_mod_h
    53 USE ioipsl_getin_p_mod, ONLY : getin_p
     52    USE ioipsl_getin_p_mod, ONLY : getin_p
    5453    USE lmdz_blowing_snow_ini, ONLY : c_esalt_bs, zeta_bs, pbst_bs, prt_bs, rhoice_bs, rhohard_bs
    5554    USE lmdz_blowing_snow_ini, ONLY : rhofresh_bs, tau_eqsalt_bs, tau_dens0_bs, tau_densmin_bs
     
    6059    USE dimsoil_mod_h, ONLY: nsoilmx
    6160
    62 !    INCLUDE "indicesol.h"
    6361
    6462
     
    121119    REAL, DIMENSION(klon,nsw), INTENT(OUT)        :: alb_dir,alb_dif
    122120!albedo SB <<<
    123     REAL, DIMENSION(klon), INTENT(OUT)            :: evap, fluxsens, fluxlat
     121    REAL, DIMENSION(klon), INTENT(OUT)            :: evap, fluxsens, fluxlat, icesub_lic
    124122    REAL, DIMENSION(klon), INTENT(OUT)            :: fluxbs
    125123    REAL, DIMENSION(klon), INTENT(OUT)            :: tsurf_new
     
    135133#ifdef ISO
    136134    REAL, DIMENSION(ntiso,klon), INTENT(OUT)     :: xtevap     
    137 !    real, DIMENSION(niso,klon) :: xtrun_off_lic_0_diag ! est une variable globale de
    138 !    fonte_neige
    139135#endif
    140136 
     
    163159    REAL, DIMENSION(niso,klon) :: xtsnow_prec,xtsol_prec
    164160    REAL, DIMENSION(klon) :: snow_prec,qsol_prec
    165 !    real, DIMENSION(klon) :: run_off_lic_0_diag
    166161#endif
    167162
     
    257252!  landice_opt = 0 : soil_model, calcul_flux, fonte_neige, ... 
    258253!  landice_opt = 1  : prepare and call INterace Lmdz SISvat (INLANDSIS)
     254!  landice_opt = 2  : skip surf_landice and use orchidee over all land surfaces
    259255!****************************************************************************************
    260256
     
    375371!
    376372!****************************************************************************************
    377 !    beta(:) = 1.0
    378 !    dif_grnd(:) = 0.0
    379373
    380374! Suppose zero surface speed
     
    393387#ifdef ISO
    394388#ifdef ISOVERIF
    395      !write(*,*) 'surf_land_ice 1499'   
    396389     DO i=1,knon
    397390       IF (iso_eau > 0) THEN
     
    427420!
    428421!****************************************************************************************
    429 
    430 !
    431 !IM: plusieurs choix/tests sur l'albedo des "glaciers continentaux"
    432 !       alb1(1 : knon)  = 0.6 !IM cf FH/GK
    433 !       alb1(1 : knon)  = 0.82
    434 !       alb1(1 : knon)  = 0.77 !211003 Ksta0.77
    435 !       alb1(1 : knon)  = 0.8 !KstaTER0.8 & LMD_ARMIP5
    436 !IM: KstaTER0.77 & LMD_ARMIP6   
    437422
    438423! Attantion: alb1 and alb2 are not the same!
     
    622607    CALL fonte_neige(knon, is_lic, knindex, dtime, &
    623608         tsurf, precip_rain, precip_totsnow, &
    624          snow, qsol, tsurf_new, evap_totsnow &
     609         snow, qsol, tsurf_new, evap_totsnow, icesub_lic &
    625610#ifdef ISO   
    626611     &  ,fq_fonte_diag,fqfonte_diag,snow_evap_diag,fqcalving_diag     &
Note: See TracChangeset for help on using the changeset viewer.