Changeset 5999


Ignore:
Timestamp:
Jan 6, 2026, 9:22:21 AM (6 days ago)
Author:
evignon
Message:

poursuite nettoyage ratqs et correction dans lmdz_lscp_phase

Location:
LMDZ6/trunk/libf
Files:
6 edited

Legend:

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

    r5996 r5999  
    2525     cf_seri, rvc_seri, u_seri, v_seri,                 &
    2626     qsub, qissr, qcld, subfra, issrfra, gamma_cond,    &
    27      dcf_sub, dcf_con, dcf_mix,          &
     27     dcf_sub, dcf_con, dcf_mix,                         &
    2828     dqi_adj, dqi_sub, dqi_con, dqi_mix, dqvc_adj,      &
    2929     dqvc_sub, dqvc_con, dqvc_mix, qsatl, qsati,        &
  • LMDZ6/trunk/libf/phylmd/lmdz_lscp_phase.f90

    r5996 r5999  
    169169   USE lmdz_lscp_ini, ONLY : naero5, gamma_snwretro, gamma_taud, capa_crystal, rho_ice
    170170   USE lmdz_lscp_ini, ONLY : eps, snow_fallspeed
     171   USE lmdz_lscp_tools, ONLY: calc_qsat_ecmwf
    171172
    172173   IMPLICIT NONE
  • LMDZ6/trunk/libf/phylmd/lmdz_ratqs_main.f90

    r5995 r5999  
    3838           qtc_cv, sigt_cv,detrain_cv,fm_cv,fqd,fqcomp,sigd,zqsat,             &
    3939           omega, &
    40            t2m,q2m,fm_therm,entr_therm,detr_therm,cell_area,&
     40           fm_therm,entr_therm,detr_therm,cell_area,&
    4141           ratqs,ratqsc,ratqs_inter_,sigma_qtherm)
    4242
    4343
    4444USE clouds_gno_mod,     ONLY: clouds_gno
    45 USE lmdz_ratqs_multi,   ONLY: ratqs_inter, ratqs_oro, ratqs_hetero
     45USE lmdz_ratqs_multi,   ONLY: ratqs_inter, ratqs_oro
    4646
    4747implicit none
     
    7373real, dimension(klon,klev),intent(in) :: wake_deltaq
    7474real, dimension(klon),intent(in) :: wake_s
    75 real, dimension(klon,nbsrf),intent(in) :: t2m,q2m
    7675real, dimension(klon), intent(in) :: cell_area
    7776real, dimension(klon,nbsrf),intent(in) :: pctsrf
     
    8887real, dimension(klon,klev) :: ratqss
    8988real facteur,zfratqs1,zfratqs2
    90 real, dimension(klon,klev) :: ratqs_hetero_,ratqs_oro_
     89real, dimension(klon,klev) :: ratqs_oro_
    9190real :: resol, fact
    9291
     
    202201       else if (iflag_ratqs .GT. 9) then
    203202 
    204        ! interactive ratqs calculations that depend on cold pools, orography, surface heterogeneity and small-scale turbulence
     203       ! interactive ratqs calculations that depend on cold pools, orography
    205204       ! This should help getting a more realistic ratqs in the low and mid troposphere
    206205       ! We however need a "background" ratqs to account for subgrid distribution of qt (or qt/qs)
     
    213212              *( tanh( (ratqsp0-pplay(i,k))/ratqsdp) + 1.)
    214213              ratqss(i,k)=max(ratqss(i,k),0.0)
    215               ratqs_hetero_(i,k)=0.
    216214              ratqs_oro_(i,k)=0.
    217215              ratqs_inter_(i,k)=0
     
    234232             ratqss=ratqss+ratqs_inter_
    235233          else if (iflag_ratqs .EQ. 12) then
    236              ! contribution of surface heterogeneities to ratqs
    237              call ratqs_hetero(klon,klev,pctsrf,s_pblh,t2m,q2m,t_seri,q_seri,pplay,paprs,ratqs_hetero_)
    238              ratqss=ratqss+ratqs_hetero_
    239           else if (iflag_ratqs .EQ. 13) then
    240              ! contribution of ubgrid orography to ratqs
     234             ! contribution of subgrid orography to ratqs
    241235             call ratqs_oro(klon,klev,pctsrf,zstd,zqsat,t_seri,pplay,paprs,ratqs_oro_)
    242236             ratqss=ratqss+ratqs_oro_
  • LMDZ6/trunk/libf/phylmd/lmdz_ratqs_multi.f90

    r5995 r5999  
    22
    33!=============================================
    4 ! A FAIRE :
    5 ! Traiter le probleme de USE lmdz_lscp_tools, ONLY: CALC_QSAT_ECMWF
    6 !=============================================
    7 
    8 !=============================================
    94! module containing subroutines that take
    10 ! into account the effect of convection, orography,
    11 ! surface heterogeneities and subgrid-scale
    12 ! turbulence on ratqs, i.e. on the width of the
     5! into account the effect of convection and orography
     6! i.e. on the width of the
    137! total water subgrid distribution.
    148!=============================================
     
    4034! L. d'Alencon, 25/02/2021
    4135! Cette subroutine calcule une valeur de ratqsbas interactive 
    42 ! Elle est appel??e par la subroutine ratqs lorsque iflag_ratqs = 11.
     36! Elle est appelee par la subroutine ratqs lorsque iflag_ratqs = 11.
    4337!========================================================================
    4438
     
    7468lev_out=0.
    7569
    76 print*,'ratqs_inter'
    77 
    7870!-----------------------------------------------------------------------
    7971!   Calcul des masses
     
    289281!=============================================
    290282
    291 SUBROUTINE ratqs_hetero(klon,klev,pctsrf,s_pblh,t2m,q2m,temp,q,pplay,paprs,ratqs_hetero_)
    292 
    293 ! Etienne Vignon, November 2021
    294 ! Effect of subgrid surface heterogeneities on ratqs
    295 
    296 USE lmdz_lscp_tools, ONLY: CALC_QSAT_ECMWF
    297 
    298 USE lmdz_ratqs_ini, ONLY : RG,RD,RTT,nbsrf
    299 
    300 IMPLICIT NONE
    301 
    302 ! INPUTS
    303 
    304 
    305 INTEGER, INTENT(IN) :: klon                       ! number of horizontal grid points
    306 INTEGER, INTENT(IN) :: klev                       ! number of vertical layers
    307 REAL, DIMENSION(klon)                   :: s_pblh ! height of the planetary boundary layer(HPBL)
    308 REAL, DIMENSION(klon,nbsrf)             :: pctsrf ! Fractional cover of subsurfaces
    309 REAL, DIMENSION(klon,nbsrf), INTENT(IN) :: t2m    ! 2m temperature for each tile [K]
    310 REAL, DIMENSION(klon,nbsrf), INTENT(IN) :: q2m    ! 2m specific humidity for each tile [kg/kg]
    311 REAL, DIMENSION(klon,klev), INTENT(IN) :: temp    ! air temperature [K]
    312 REAL, DIMENSION(klon,klev), INTENT(IN) :: q       ! specific humidity [kg/kg]
    313 REAL, DIMENSION(klon,klev), INTENT(IN) :: pplay   ! air pressure, layer's center [Pa]
    314 REAL, DIMENSION(klon,klev+1), INTENT(IN) :: paprs ! air pressure, lower inteface [Pa]
    315 
    316 ! OUTPUTS
    317 
    318 REAL, DIMENSION(klon,klev), INTENT(out) :: ratqs_hetero_ ! ratsq profile due to surface heterogeneities
    319 
    320 
    321 INTEGER :: i,k,nsrf
    322 REAL, DIMENSION(klon) :: xsi0, ratiom, qsat2m, dqsatdT
    323 REAL, DIMENSION (klon,klev) :: zlay
    324 
    325 
    326 
    327 ! Calculation of near-surface surface ratqs
    328 !-------------------------------------------
    329 
    330    
    331     ratiom(:)=0.
    332     xsi0(:)=0.
    333    
    334     DO nsrf=1,nbsrf
    335     CALL CALC_QSAT_ECMWF(klon,t2m(:,nsrf),q2m(:,nsrf),paprs(:,1),RTT,0,.false.,qsat2m,dqsatdT)
    336     ratiom(:)=ratiom(:)+pctsrf(:,nsrf)*(q2m(:,nsrf)/qsat2m(:))
    337     xsi0(:)=xsi0(:)+pctsrf(:,nsrf)*((q2m(:,nsrf)/qsat2m(:)-ratiom(:))**2)
    338     END DO
    339    
    340     xsi0(:)=sqrt(xsi0(:))/(ratiom(:)+1E-6)
    341 
    342 
    343 
    344 ! Vertical profile of ratqs assuming an exponential decrease with height
    345 !------------------------------------------------------------------------
    346        
    347 ! calculation of geop. height AGL
    348 
    349 zlay(:,1)= RD*temp(:,1)/(0.5*(paprs(:,1)+pplay(:,1))) &
    350            *(paprs(:,1)-pplay(:,1))/RG
    351 ratqs_hetero_(:,1)=xsi0(:)
    352 
    353 DO k=2,klev
    354    DO i = 1, klon
    355       zlay(i,k)= zlay(i,k-1)+RD*0.5*(temp(i,k-1)+temp(i,k)) &
    356                /paprs(i,k)*(pplay(i,k-1)-pplay(i,k))/RG
    357                
    358       ratqs_hetero_(i,k)=MAX(xsi0(i)*exp(-zlay(i,k)/(s_pblh(i)+1.0)),0.0)   
    359     END DO
    360 END DO
    361 
    362 END SUBROUTINE ratqs_hetero
    363 
    364 !=============================================
    365 
    366283END MODULE lmdz_ratqs_multi
  • LMDZ6/trunk/libf/phylmd/physiq_mod.F90

    r5998 r5999  
    39563956         qtc_cv, sigt_cv,detrain_cv,fm_cv,fqd,fqcomp,sigd,zqsat, &
    39573957         omega, &
    3958          t2m,q2m,fm_therm,entr_therm,detr_therm,cell_area, &
     3958         fm_therm,entr_therm,detr_therm,cell_area, &
    39593959         ratqs,ratqsc,ratqs_inter_,sigma_qtherm)
    39603960
  • LMDZ6/trunk/libf/phylmdiso/physiq_mod.F90

    r5998 r5999  
    51155115         qtc_cv, sigt_cv,detrain_cv,fm_cv,fqd,fqcomp,sigd,zqsat, &
    51165116         omega, &
    5117          t2m,q2m,fm_therm,entr_therm,detr_therm,cell_area, &
     5117         fm_therm,entr_therm,detr_therm,cell_area, &
    51185118         ratqs,ratqsc,ratqs_inter_,sigma_qtherm)
    51195119
Note: See TracChangeset for help on using the changeset viewer.