Ignore:
Timestamp:
Mar 19, 2014, 3:14:30 PM (10 years ago)
Author:
fhourdin
Message:

Reactivation du calcul d'un zmax continu pour les thermiques

(thermcell_height.F90, thermcell_plume.F90, thermcell_dry.F90)
ouvre la voie à la réactivation d'une fermeture humide des thermiques
iflag_thermals_closure=2
(conf_phys_m.F90, thermcell.h, thermcell_main.F90)

Modification liée à la conservation de l'eau

(add_phys_tend.F90, add_pbl_tend.F90, physiq.F90)

Modifications liées au déclenchement stochastique

  1. possibilité de revenir à la Ale déterministe pour le criter ALE>|CIN| iflag_trig_bl=2, 1 par défaut)
  2. possibilité d'activer une fermeture statistique où ALP est divisé par la probabilité de déclenchement iflag_clos_bl=1 (0 par défaut, ancienne option 1 passée en =2)

Modification de l'entrainemement dans la version "stratocumulus" du

modèle du thermique (quand iflag_thermals_ed=8).
(modifie thermcell_plume.F90)

Catherine, Jean-Yves et Frédéric

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/thermcell_plume.F90

    r1982 r1998  
    66     &           lalim,f0,detr_star,entr_star,f_star,csc,ztva,  &
    77     &           ztla,zqla,zqta,zha,zw2,w_est,ztva_est,zqsatth,lmix,lmix_bis,linter &
    8      &           ,lev_out,lunout1,igout)
    9 
     8     &           ,lev_out,lunout1,igout)
    109!--------------------------------------------------------------------------
    11 ! thermcell_plume: calcule les valeurs de qt, thetal et w dans l ascendance
    12 ! Last modified : Arnaud Jam 2014/02/11
    13 !                 Better representation of stratocumulus
     10!thermcell_plume: calcule les valeurs de qt, thetal et w dans l ascendance
    1411!--------------------------------------------------------------------------
    1512
     
    9592! Initialisation
    9693
     94!     print*,'THERMCELL PLUME OK'
    9795      RLvCp = RLVTT/RCPD
    9896      fact_epsilon=0.002
     
    322320!          zbuoyjam(ig,l)=RG*(ztva_est(ig,l)-ztv(ig,l))/ztv(ig,l)
    323321
    324           entr_star(ig,l)=f_star(ig,l)*zdz*zbetalpha*MAX(0.,  &
    325     &     afact*zbuoyjam(ig,l)/zw2m - fact_epsilon )
    326 
    327           entrbis=entr_star(ig,l)
     322!          entr_star(ig,l)=f_star(ig,l)*zdz*zbetalpha*MAX(0.,  &
     323!    &     afact*zbuoyjam(ig,l)/zw2m - fact_epsilon )
     324
     325!          entrbis=entr_star(ig,l)
    328326
    329327
     
    332330    &     + 0.012*(zdqt(ig,l)/zw2m)**0.5 )
    333331
    334 
    335 !           zbuoy(ig,l)=RG*(ztva_est(ig,l)-ztv(ig,l))/ztv(ig,l)
    336 !
    337 !           entr_star(ig,l)=Max(0.,f_star(ig,l)*zdz*zbetalpha*  &     
    338 !     &     afact*zbuoy(ig,l)/zw2m &
    339 !     &     - 1.*fact_epsilon)
     332          zbuoy(ig,l)=RG*(ztva_est(ig,l)-ztv(ig,l))/ztv(ig,l)
     333
     334          entr_star(ig,l)=f_star(ig,l)*zdz*zbetalpha*MAX(0.,  &
     335    &     afact*zbuoy(ig,l)/zw2m - fact_epsilon )
     336!   &     afact*zbuoy(ig,l)/zw2m - fact_epsilon+ 0.012*(zdqt(ig,l)/zw2m)**0.5)
     337
     338
     339!          entr_star(ig,l)=Max(0.,f_star(ig,l)*zdz*zbetalpha*  &     
     340!    &     afact*zbuoy(ig,l)/zw2m &
     341!    &     - 1.*fact_epsilon)
    340342
    341343         
     
    350352!        endif
    351353
    352 !print*,'alim0',l,lalim(ig),alim_star(ig,l),entrbis,f_star(ig,l)
     354!print*,'alim0',zlev(ig,l),entr_star(ig,l),detr_star(ig,l),zw2m,zbuoy(ig,l),f_star(ig,l)
    353355! Calcul du flux montant normalise
    354356      f_star(ig,l+1)=f_star(ig,l)+alim_star(ig,l)+entr_star(ig,l)  &
     
    425427     &               -zw2(ig,l))/(zw2(ig,l+1)-zw2(ig,l))
    426428           zw2(ig,l+1)=0.
     429!+CR:04/05/12:correction calcul linter pour calcul de zmax continu
     430        elseif (f_star(ig,l+1).lt.0.) then
     431           linter(ig)=(l*(f_star(ig,l+1)-f_star(ig,l))  &
     432     &               -f_star(ig,l))/(f_star(ig,l+1)-f_star(ig,l))
     433           zw2(ig,l+1)=0.
     434!fin CR:04/05/12
    427435        endif
    428436
     
    464472     return
    465473     end
     474
     475
    466476
    467477
     
    536546      REAL zqsatth(ngrid,klev)
    537547      REAL zta_est(ngrid,klev)
     548      REAL zbuoyjam(ngrid,klev)
    538549      REAL ztemp(ngrid),zqsat(ngrid)
    539550      REAL zdw2
     
    572583
    573584! Initialisations des variables reeles
    574 if (1==0) then
     585if (1==1) then
    575586      ztva(:,:)=ztv(:,:)
    576587      ztva_est(:,:)=ztva(:,:)
     
    598609      zw2(:,:)=0.
    599610      zbuoy(:,:)=0.
     611      zbuoyjam(:,:)=0.
    600612      gamma(:,:)=0.
    601613      zeps(:,:)=0.
     
    819831                zw2(ig,l+1)=0.
    820832                linter(ig)=l+1
    821             endif
     833!CR:04/05/12:calcul linter
     834        elseif (f_star(ig,l+1).lt.0.) then
     835           linter(ig)=(l*(f_star(ig,l+1)-f_star(ig,l))  &
     836     &               -f_star(ig,l))/(f_star(ig,l+1)-f_star(ig,l))
     837           zw2(ig,l+1)=0.
     838!fin CR:04/05/12
     839        endif
     840
    822841
    823842        if (zw2(ig,l+1).lt.0.) then
     
    862881        if (prt_level.ge.20) print*,'coucou calcul detr 470: ig, l', ig, l
    863882
     883
     884
    864885     return
    865886     end
Note: See TracChangeset for help on using the changeset viewer.