Changeset 5995


Ignore:
Timestamp:
Jan 5, 2026, 5:09:54 PM (7 days ago)
Author:
evignon
Message:

nettoyage d'une option obsolete de ratqs_multi

Location:
LMDZ6/trunk/libf
Files:
5 edited

Legend:

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

    r5727 r5995  
    11MODULE lmdz_lscp_ini
    22
     3!----------------------------------------------------------
     4! This module initializes all the parameters needed for the
     5! lscp (large scale clouds and precipitation) routines.
     6!----------------------------------------------------------
     7
    38IMPLICIT NONE
    49
    5   ! PARAMETERS for lscp:
    6   !--------------------
     10  ! PARAMETERS for lscp_main:
     11  !-------------------------
    712 
    813  REAL RCPD, RLSTT, RLVTT, RLMLT, RVTMP2, RTT, RD, RV, RG, RPI, EPS_W
     
    339344  !$OMP THREADPRIVATE(vert_alpha_th)
    340345  ! End of parameters for cloudth routines
     346
     347  ! parameters for subgrid variability (ratqs) routines
     348
     349
     350
    341351
    342352  ! Two parameters used for lmdz_lscp_old only
  • LMDZ6/trunk/libf/phylmd/lmdz_ratqs_main.f90

    r5831 r5995  
    3737           paprs,pplay,t_seri,q_seri,                   &
    3838           qtc_cv, sigt_cv,detrain_cv,fm_cv,fqd,fqcomp,sigd,zqsat,             &
    39            omega,tke,tke_dissip,lmix,wprime, &
     39           omega, &
    4040           t2m,q2m,fm_therm,entr_therm,detr_therm,cell_area,&
    4141           ratqs,ratqsc,ratqs_inter_,sigma_qtherm)
     
    4343
    4444USE clouds_gno_mod,     ONLY: clouds_gno
    45 USE lmdz_ratqs_multi,   ONLY: ratqs_inter, ratqs_oro, ratqs_hetero, ratqs_tke
     45USE lmdz_ratqs_multi,   ONLY: ratqs_inter, ratqs_oro, ratqs_hetero
    4646
    4747implicit none
     
    6262real,intent(in) :: ratqsp0, ratqsdp
    6363real, dimension(klon,klev),intent(in) :: omega
    64 real, dimension(klon,klev+1),intent(in) :: paprs,tke,tke_dissip,lmix,wprime
     64real, dimension(klon,klev+1),intent(in) :: paprs
    6565real, dimension(klon,klev),intent(in) :: pplay,t_seri,q_seri,zqsat
    6666real, dimension(klon,klev),intent(in) :: entr_therm,detr_therm,qtc_cv, sigt_cv
     
    8888real, dimension(klon,klev) :: ratqss
    8989real facteur,zfratqs1,zfratqs2
    90 real, dimension(klon,klev) :: ratqs_hetero_,ratqs_oro_,ratqs_tke_
     90real, dimension(klon,klev) :: ratqs_hetero_,ratqs_oro_
    9191real :: resol, fact
    9292
     
    215215              ratqs_hetero_(i,k)=0.
    216216              ratqs_oro_(i,k)=0.
    217               ratqs_tke_(i,k)=0.
    218217              ratqs_inter_(i,k)=0
    219218             enddo
     
    221220     
    222221          if (iflag_ratqs .EQ. 10) then
    223              print*,'avant ratqs_inter'
    224222            ! interactive ratqs with several sources
    225223             call ratqs_inter(klon,klev,iflag_ratqs,pdtphys,paprs, &
     
    229227             ratqss=ratqss+ratqs_inter_
    230228          else if (iflag_ratqs .EQ. 11) then
    231             print*,'avant ratqs_inter'
    232229            ! interactive ratqs with several sources
    233230             call ratqs_inter(klon,klev,iflag_ratqs,pdtphys,paprs, &
     
    244241             call ratqs_oro(klon,klev,pctsrf,zstd,zqsat,t_seri,pplay,paprs,ratqs_oro_)
    245242             ratqss=ratqss+ratqs_oro_
    246           else if (iflag_ratqs .EQ. 14) then
    247              ! effect of subgrid-scale TKE on ratqs (in development)
    248              call ratqs_tke(klon,klev,pdtphys,t_seri,q_seri,zqsat,pplay,paprs,omega,tke,tke_dissip,lmix,wprime,ratqs_tke_)     
    249              ratqss=ratqss+ratqs_tke_
    250243          endif
    251244         
  • LMDZ6/trunk/libf/phylmd/lmdz_ratqs_multi.f90

    r5820 r5995  
    3838
    3939!========================================================================
    40 ! L. d'Alen??on, 25/02/2021
     40! L. d'Alencon, 25/02/2021
    4141! Cette subroutine calcule une valeur de ratqsbas interactive 
    4242! Elle est appel??e par la subroutine ratqs lorsque iflag_ratqs = 11.
     
    8484      enddo
    8585!-------------------------------------------------------------------------
    86 !  Caclul du terme de d??trainement de la variance pour les thermiques
     86!  Caclul du terme de detrainement de la variance pour les thermiques
    8787!-------------------------------------------------------------------------
    8888
     
    102102      detr0(:,:) = detr_therm(:,:)
    103103
    104 ! calcul du carr?? de l'humidit?? sp??cifique et circulation dans les thermiques
     104! calcul du carre de l'humidite specifique et circulation dans les thermiques
    105105      po(:,:) = q_seri(:,:)
    106106      call thermcell_dq(klon,klev,dqimpl,pdtphys,fm0,entr0,zmasse,  &
     
    115115
    116116
    117 ! variance de l'humidit?? sp??cifique totale dans les thermiques     
     117! variance de l'humidit?? specifique totale dans les thermiques     
    118118      do k=1,klev
    119119         do i=1,klon     
     
    364364!=============================================
    365365
    366 SUBROUTINE ratqs_tke(klon,klev,pdtphys,temp,q,qsat,pplay,paprs,omega,tke,tke_dissip,lmix,wprime,ratqs_tke_)
    367 
    368 ! References:
    369 !
    370 ! Etienne Vignon: effect of subgrid turbulence on ratqs
    371 !
    372 ! Field, P.R., Hill, A., Furtado, K., Korolev, A., 2014b. Mixed-phase clouds in a turbulent environment. Part
    373 ! 2: analytic treatment. Q. J. R. Meteorol. Soc. 21, 2651???2663. https://doi.org/10.1002/qj.2175.
    374 !
    375 ! Furtado, K., Field, P.R., Boutle, I.A., Morcrette, C.R., Wilkinson, J., 2016. A physically-based, subgrid
    376 ! parametrization for the production and maintenance of mixed-phase clouds in a general circulation
    377 ! model. J. Atmos. Sci. 73, 279???291. https://doi.org/10.1175/JAS-D-15-0021.
    378 
    379 USE lmdz_ratqs_ini, ONLY : RG,RV,RD,RCPD,RLSTT,RLVTT,RTT
    380 
    381 IMPLICIT NONE
    382 
    383 ! INPUTS
    384 
    385 INTEGER, INTENT(IN) :: klon                             ! number of horizontal grid points
    386 INTEGER, INTENT(IN) :: klev                             ! number of vertical layers
    387 REAL, INTENT(IN) :: pdtphys                             ! physics time step [s]
    388 REAL, DIMENSION(klon,klev), INTENT(IN) :: temp          ! air temperature [K]
    389 REAL, DIMENSION(klon,klev), INTENT(IN) :: q             ! specific humidity [kg/kg]
    390 REAL, DIMENSION(klon,klev), INTENT(IN) :: qsat          ! saturation specific humidity [kg/kg]
    391 REAL, DIMENSION(klon,klev), INTENT(IN) :: pplay         ! air pressure, layer's center [Pa]
    392 REAL, DIMENSION(klon,klev+1), INTENT(IN) :: paprs       ! air pressure, lower inteface [Pa]
    393 REAL, DIMENSION(klon,klev), INTENT(IN) :: omega       ! air pressure, lower inteface [Pa]
    394 REAL, DIMENSION(klon,klev+1), INTENT(IN) :: tke         ! Turbulent Kinetic Energy [m2/s2]
    395 REAL, DIMENSION(klon,klev+1), INTENT(IN) :: tke_dissip  ! Turbulent Kinetic Energy Dissipation rate [m2/s3]
    396 REAL, DIMENSION(klon,klev+1), INTENT(IN) :: lmix  ! Turbulent mixing length
    397 REAL, DIMENSION(klon,klev+1), INTENT(IN) :: wprime      ! Turbulent vertical velocity scale [m/s]
    398 
    399 ! OUTPUTS
    400 
    401 REAL, DIMENSION(klon,klev), INTENT(out) :: ratqs_tke_  ! ratsq profile due to subgrid TKE
    402 
    403 ! LOCAL
    404 INTEGER :: i, k
    405 REAL :: AA, DD, NW, AAprime, VARLOG,rho,Lvs,taue,lhomo,dissmin,maxvarlog
    406 REAL, DIMENSION(klon,klev) :: sigmaw,w
    407 REAL, PARAMETER :: C0=10.0
    408 REAL, PARAMETER :: lmin=0.001
    409 REAL, PARAMETER :: ratqsmin=1E-6
    410 REAL, PARAMETER :: ratqsmax=0.5
    411 
    412 
    413 ! Calculation of large scale and turbulent vertical velocities
    414 !---------------------------------------------------------------
    415 
    416 DO k=1,klev
    417     DO i=1,klon
    418         rho=pplay(i,k)/temp(i,k)/RD
    419         w(i,k)=-rho*RG*omega(i,k)
    420         sigmaw(i,k)=0.5*(wprime(i,k+1)+wprime(i,k)) ! turbulent vertical velocity at the middle of model layers.
    421     END DO
    422 END DO
    423 
    424 ! Calculation of ratqs
    425 !---------------------------------------------------------------
    426 ratqs_tke_(:,1)=ratqsmin ! set to a very low value to avoid division by 0 in order parts
    427                         ! of the code
    428 DO k=2,klev ! we start from second model level since TKE is not defined at k=1
    429     DO i=1,klon
    430 
    431        IF (temp(i,k) .LT. RTT) THEN
    432            Lvs=RLSTT
    433        ELSE
    434            Lvs=RLVTT
    435        ENDIF
    436        dissmin=0.01*(0.5*(tke(i,k)+tke(i,k+1))/pdtphys)
    437        maxvarlog=LOG(1.0+ratqsmax**2)! to prevent ratqs from exceeding an arbitrary threshold value
    438        AA=RG*(Lvs/(RCPD*temp(i,k)*temp(i,k)*RV) - 1./(RD*temp(i,k)))
    439        lhomo=MAX(0.5*(lmix(i,k)+lmix(i,k+1)),lmin)
    440        taue=(lhomo*lhomo/MAX(0.5*(tke_dissip(i,k)+tke_dissip(i,k+1)),dissmin))**(1./3) ! Fields et al. 2014
    441        DD=1.0/taue
    442        NW=(sigmaw(i,k)**2)*SQRT(2./(C0*MAX(0.5*(tke_dissip(i,k)+tke_dissip(i,k+1)),dissmin)))
    443        AAprime=AA*NW
    444        VARLOG=AAprime/2./DD
    445        VARLOG=MIN(VARLOG,maxvarlog)
    446        ratqs_tke_(i,k)=SQRT(MAX(EXP(VARLOG)-1.0,ratqsmin))
    447        END DO
    448 END DO
    449 END SUBROUTINE ratqs_tke
    450 
    451366END MODULE lmdz_ratqs_multi
  • LMDZ6/trunk/libf/phylmd/physiq_mod.F90

    r5942 r5995  
    39653965         paprs,pplay,t_seri,q_seri, &
    39663966         qtc_cv, sigt_cv,detrain_cv,fm_cv,fqd,fqcomp,sigd,zqsat, &
    3967          omega,pbl_tke(:,:,is_ave),pbl_eps(:,:,is_ave),l_mix_ave,wprime_ave, &
     3967         omega, &
    39683968         t2m,q2m,fm_therm,entr_therm,detr_therm,cell_area, &
    39693969         ratqs,ratqsc,ratqs_inter_,sigma_qtherm)
  • LMDZ6/trunk/libf/phylmdiso/physiq_mod.F90

    r5927 r5995  
    51255125         paprs,pplay,t_seri,q_seri, &
    51265126         qtc_cv, sigt_cv,detrain_cv,fm_cv,fqd,fqcomp,sigd,zqsat, &
    5127          omega,pbl_tke(:,:,is_ave),pbl_eps(:,:,is_ave),l_mix_ave,wprime_ave, &
     5127         omega, &
    51285128         t2m,q2m,fm_therm,entr_therm,detr_therm,cell_area, &
    51295129         ratqs,ratqsc,ratqs_inter_,sigma_qtherm)
Note: See TracChangeset for help on using the changeset viewer.