Changeset 2205


Ignore:
Timestamp:
Feb 13, 2015, 8:22:32 AM (10 years ago)
Author:
fhourdin
Message:

Introduction of a bi-gausian descrption of the subgrid scale
distribution of water associated with deep convection.

Introduction d'un schéma bi-gausien pour la distribution sous maille
de l'eau associée à la convection profonde.

Contrôlé par
iflag_cld_cv=2 (1 pour le schéma de Bony et Emanuel 2001)
autres paramètres de contrôle : tau_cld_cv et coefw_cld_cv

Arnaud Jam

Location:
LMDZ5/trunk/libf/phylmd
Files:
9 edited

Legend:

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

    r1907 r2205  
    11SUBROUTINE calcratqs(klon,klev,prt_level,lunout,       &
    2            iflag_ratqs,iflag_con,iflag_cldcon,pdtphys, &
     2           iflag_ratqs,iflag_con,iflag_cldth,pdtphys, &
    33           ratqsbas,ratqshaut,tau_ratqs,fact_cldcon,   &
    44           ptconv,ptconvth,clwcon0th, rnebcon0th,      &
     
    1919! Input
    2020integer,intent(in) :: klon,klev,prt_level,lunout
    21 integer,intent(in) :: iflag_con,iflag_cldcon,iflag_ratqs
     21integer,intent(in) :: iflag_con,iflag_cldth,iflag_ratqs
    2222real,intent(in) :: pdtphys,ratqsbas,ratqshaut,fact_cldcon,tau_ratqs
    2323real, dimension(klon,klev+1),intent(in) :: paprs
     
    4343!   ----------------
    4444!   on ecrase le tableau ratqsc calcule par clouds_gno
    45       if (iflag_cldcon.eq.1) then
     45      if (iflag_cldth.eq.1) then
    4646         do k=1,klev
    4747         do i=1,klon
     
    5858!  par nversion de la fonction log normale
    5959!-----------------------------------------------------------------------
    60       else if (iflag_cldcon.eq.4) then
     60      else if (iflag_cldth.eq.4) then
    6161         ptconvth(:,:)=.false.
    6262         ratqsc(:,:)=0.
     
    136136!  -----------
    137137
    138       if (iflag_cldcon.eq.1 .or.iflag_cldcon.eq.2.or.iflag_cldcon.eq.4) then
     138      if (iflag_cldth.eq.1 .or.iflag_cldth.eq.2.or.iflag_cldth.eq.4) then
    139139
    140140! On ajoute une constante au ratqsc*2 pour tenir compte de
     
    165165!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    166166         ratqs(:,:)=max(ratqs(:,:),ratqss(:,:))
    167       else if (iflag_cldcon<=6) then
     167      else if (iflag_cldth<=6) then
    168168!   on ne prend que le ratqs stable pour fisrtilp
    169169         ratqs(:,:)=ratqss(:,:)
     
    174174             do i=1,klon
    175175                if (ratqsc(i,k).gt.1.e-10) then
    176                    ratqs(i,k)=ratqs(i,k)*zfratqs2+(iflag_cldcon/100.)*ratqsc(i,k)*(1.-zfratqs2)
     176                   ratqs(i,k)=ratqs(i,k)*zfratqs2+(iflag_cldth/100.)*ratqsc(i,k)*(1.-zfratqs2)
    177177                endif
    178178                ratqs(i,k)=min(ratqs(i,k)*zfratqs1+ratqss(i,k)*(1.-zfratqs1),0.5)
  • LMDZ5/trunk/libf/phylmd/concvl.F90

    r2201 r2205  
    1515                  dd_t, dd_q, lalim_conv, wght_th, &                 ! RomP
    1616                  evap, ep, epmlmMm, eplaMm, &                       ! RomP
    17                   wdtrainA, wdtrainM, wght)                          ! RomP+RL
     17                  wdtrainA, wdtrainM, wght, qtc, sigt, &
     18                  tau_cld_cv, coefw_cld_cv)                           ! RomP+RL, AJ
    1819!RomP <<<
    1920! **************************************************************
     
    136137  REAL dplcldt(klon), dplcldr(klon)
    137138  REAL qcondc(klon, klev)
     139  REAL qtc(klon, klev)
     140  REAL sigt(klon, klev)
    138141  REAL wd(klon)
    139142  REAL plim1(klon), plim2(klon), asupmax(klon, klev)
     
    142145  REAL sigd(klon)
    143146  REAL zx_t, zdelta, zx_qs, zcor
     147  REAL tau_cld_cv, coefw_cld_cv
    144148
    145149!   INTEGER iflag_mix
     
    204208!$OMP THREADPRIVATE(itap, igout)
    205209
     210
    206211  include "YOMCST.h"
    207212  include "YOMCST2.h"
     
    412417                    da, phi, mp, phi2, d1a, dam, sij, wght, &           ! RomP+RL
    413418                    clw, elij, evap, ep, epmlmMm, eplaMm, &             ! RomP+RL
    414                     wdtrainA, wdtrainM)                                 ! RomP
     419                    wdtrainA, wdtrainM, qtc, sigt, &
     420                    tau_cld_cv, coefw_cld_cv)                           ! RomP,AJ
    415421!AC!+!RomP+jyg
    416422  END IF
  • LMDZ5/trunk/libf/phylmd/conf_phys_m.F90

    r2201 r2205  
    1515       solarlong0,seuil_inversion, &
    1616       fact_cldcon, facttemps,ok_newmicro,iflag_radia,&
    17        iflag_cldcon, &
     17       iflag_cldth, &
    1818       iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, &
    1919       ok_ade, ok_aie, ok_cdnc, aerosol_couple, &
     
    8181    REAL                 :: bl95_b0, bl95_b1
    8282    real                 :: fact_cldcon, facttemps,ratqsbas,ratqshaut,tau_ratqs
    83     integer              :: iflag_cldcon
     83    integer              :: iflag_cldth
    8484    integer              :: iflag_ratqs
    8585
     
    101101    REAL,SAVE           :: freq_COSP_omp
    102102    real,SAVE           :: fact_cldcon_omp, facttemps_omp,ratqsbas_omp
     103    real,SAVE           :: tau_cld_cv_omp, coefw_cld_cv_omp
     104    integer,SAVE        :: iflag_cld_cv_omp
     105
     106
    103107    real,SAVE           :: ratqshaut_omp
    104108    real,SAVE           :: tau_ratqs_omp
     
    107111    integer,SAVE        :: iflag_rrtm_omp
    108112    integer,SAVE        :: NSW_omp
    109     integer,SAVE        :: iflag_cldcon_omp, ip_ebil_phy_omp
     113    integer,SAVE        :: iflag_cldth_omp, ip_ebil_phy_omp
    110114    integer,SAVE        :: iflag_ratqs_omp
    111115
     
    887891
    888892    !
    889     !Config Key  = iflag_cldcon
     893    !Config Key  = iflag_cldth
    890894    !Config Desc = 
    891895    !Config Def  = 1
    892896    !Config Help =
    893897    !
    894     iflag_cldcon_omp = 1
    895     call getin('iflag_cldcon',iflag_cldcon_omp)
     898    iflag_cldth_omp = 1
     899! On lit deux fois avec l'ancien et le nouveau nom
     900! pour assurer une retrocompatiblite.
     901! A abandonner un jour
     902    call getin('iflag_cldcon',iflag_cldth_omp)
     903    call getin('iflag_cldth',iflag_cldth_omp)
     904
     905    !
     906    !Config Key  = iflag_cld_cv
     907    !Config Desc =
     908    !Config Def  = 1
     909    !Config Help =
     910    !
     911    iflag_cld_cv_omp = 1
     912    call getin('iflag_cld_cv',iflag_cld_cv_omp)
     913
     914    !
     915    !Config Key  = tau_cld_cv
     916    !Config Desc =
     917    !Config Def  = 10.
     918    !Config Help =
     919    !
     920    tau_cld_cv_omp = 10.
     921    call getin('tau_cld_cv',tau_cld_cv_omp)
     922
     923    !
     924    !Config Key  = coefw_cld_cv
     925    !Config Desc =
     926    !Config Def  = 0.1
     927    !Config Help =
     928    !
     929    coefw_cld_cv_omp = 0.1
     930    call getin('coefw_cld_cv',coefw_cld_cv_omp)
     931
     932
     933
    896934
    897935    !
     
    19351973    iflag_rrtm = iflag_rrtm_omp
    19361974    NSW = NSW_omp
    1937     iflag_cldcon = iflag_cldcon_omp
     1975    iflag_cldth = iflag_cldth_omp
     1976    iflag_cld_cv = iflag_cld_cv_omp
     1977    tau_cld_cv = tau_cld_cv_omp
     1978    coefw_cld_cv = coefw_cld_cv_omp
    19381979    iflag_ratqs = iflag_ratqs_omp
    19391980    ip_ebil_phy = ip_ebil_phy_omp
     
    20872128    write(lunout,*)' reevap_ice = ', reevap_ice
    20882129    write(lunout,*)' iflag_pdf = ', iflag_pdf
    2089     write(lunout,*)' iflag_cldcon = ', iflag_cldcon
     2130    write(lunout,*)' iflag_cldth = ', iflag_cldth
     2131    write(lunout,*)' iflag_cld_cv = ', iflag_cld_cv
     2132    write(lunout,*)' tau_cld_cv = ', tau_cld_cv
     2133    write(lunout,*)' coefw_cld_cv = ', coefw_cld_cv
    20902134    write(lunout,*)' iflag_radia = ', iflag_radia
    20912135    write(lunout,*)' iflag_rrtm = ', iflag_rrtm
  • LMDZ5/trunk/libf/phylmd/cv3_routines.F90

    r2110 r2205  
    11
    22! $Id$
     3
    34
    45
     
    27632764                     cbmf, upwd, dnwd, dnwd0, ma, mip, &
    27642765                     tls, tps, qcondc, wd, &
    2765                      ftd, fqd)
     2766                     ftd, fqd, qnk, qtc, sigt, tau_cld_cv, coefw_cld_cv)
    27662767
    27672768  IMPLICIT NONE
     
    28002801!input/output:
    28012802      INTEGER iflag(nloc)
     2803      REAL,INTENT(in) :: tau_cld_cv, coefw_cld_cv
    28022804!
    28032805!outputs:
     
    28112813      REAL tls(nloc, nd), tps(nloc, nd)
    28122814      REAL qcondc(nloc, nd) ! cld
     2815      REAL qtc(nloc,nd), sigt(nloc,nd) ! cld
    28132816      REAL wd(nloc) ! gust
    28142817      REAL cbmf(nloc)
     
    28302833      REAL qcond(nloc, nd), nqcond(nloc, nd), wa(nloc, nd) ! cld
    28312834      REAL siga(nloc, nd), sax(nloc, nd), mac(nloc, nd) ! cld
    2832 
     2835      REAL sument(nloc), sigment(nloc,nd), qtment(nloc,nd) ! cld
     2836      REAL qnk(nloc)
    28332837      REAL sumdq !jyg
    28342838!
     
    28612865      qcondc(il, i) = 0.0 ! cld
    28622866      qcond(il, i) = 0.0 ! cld
     2867      qtc(il, i) = 0.0 ! cld
     2868      qtment(il, i) = 0.0 ! cld
     2869      sigment(il, i) = 0.0 ! cld
     2870      sigt(il, i) = 0.0 ! cld
    28632871      nqcond(il, i) = 0.0 ! cld
    28642872    END DO
     
    32343242! (saturated updrafts resulting from mixing)                                   ! cld
    32353243          qcond(il, i) = qcond(il, i) + (elij(il,k,i)-awat(il))                ! cld
    3236           nqcond(il, i) = nqcond(il, i) + 1. ! cld
     3244          qtment(il, i) = qtment(il, i) + qent(il,k,i)                         ! cld
     3245          nqcond(il, i) = nqcond(il, i) + 1.                                   ! cld
    32373246        END IF ! i
    32383247      END DO
     
    33103319! (saturated downdrafts resulting from mixing)                                 ! cld
    33113320          qcond(il, i) = qcond(il, i) + elij(il, k, i)                         ! cld
    3312           nqcond(il, i) = nqcond(il, i) + 1. ! cld
     3321          qtment(il, i) = qent(il,k,i) + qtment(il,i)                          ! cld
     3322          nqcond(il, i) = nqcond(il, i) + 1.                                   ! cld
    33133323        END IF ! cld
    33143324      END DO ! cld
     
    33193329      IF (i<=inb(il) .AND. nent(il,i)==0 .AND. iflag(il)<=1) THEN              ! cld
    33203330        qcond(il, i) = qcond(il, i) + (1.-ep(il,i))*clw(il, i)                 ! cld
     3331        qtment(il, i) = qent(il,k,i) + qtment(il,i)                          ! cld
    33213332        nqcond(il, i) = nqcond(il, i) + 1.                                     ! cld
    33223333      END IF                                                                   ! cld
     
    33263337      IF (i<=inb(il) .AND. nqcond(il,i)/=0 .AND. iflag(il)<=1) THEN            ! cld
    33273338        qcond(il, i) = qcond(il, i)/nqcond(il, i)                              ! cld
     3339        qtment(il, i) = qtment(il,i)/nqcond(il, i)                             ! cld
    33283340      END IF                                                                   ! cld
    33293341    END DO
     
    37883800      END IF                                                         ! cld
    37893801    END DO                                                           ! cld
    3790   END DO                                                             ! cld
    3791 
    3792   DO i = 1, nl                                                       ! cld
     3802  END DO 
     3803                                                           ! cld
     3804  DO i = 1, nl 
     3805
     3806! 14/01/15 AJ je remets les parties manquantes cf JYG
     3807! Initialize sument to 0
     3808
     3809    DO il = 1,ncum
     3810     sument(il) = 0.
     3811    ENDDO
     3812
     3813! Sum mixed mass fluxes in sument
     3814
     3815    DO k = 1,nl
     3816      DO il = 1,ncum
     3817        IF  (k<=inb(il) .AND. i<=inb(il) .AND. iflag(il)<=1) THEN   ! cld
     3818          sument(il) =sument(il) + abs(ment(il,k,i))
     3819        ENDIF
     3820      ENDDO     ! il
     3821    ENDDO       ! k
     3822
     3823! 14/01/15 AJ delta n'a rien à faire là...                                                 
    37933824    DO il = 1, ncum                                                  ! cld
    37943825      IF (wa(il,i)>0.0 .AND. iflag(il)<=1) &                         ! cld
    3795         siga(il, i) = mac(il, i)/wa(il, i) &                         ! cld
    3796         *rrd*tvp(il, i)/p(il, i)/100./delta                          ! cld
     3826        siga(il, i) = mac(il, i)/(coefw_cld_cv*wa(il, i)) &          ! cld
     3827        *rrd*tvp(il, i)/p(il, i)/100.                                ! cld
     3828
    37973829      siga(il, i) = min(siga(il,i), 1.0)                             ! cld
    3798 ! IM cf. FH                                                         
     3830
     3831! IM cf. FH
     3832! 14/01/15 AJ ne correspond pas à ce qui a été codé par JYG et SB           
     3833                                                         
    37993834      IF (iflag_clw==0) THEN                                         ! cld
    38003835        qcondc(il, i) = siga(il, i)*clw(il, i)*(1.-ep(il,i)) &       ! cld
    38013836          +(1.-siga(il,i))*qcond(il, i)                              ! cld
     3837
     3838
     3839        sigment(il,i)=sument(il)*tau_cld_cv/(ph(il,i)-ph(il,i+1))    ! cld
     3840        sigment(il, i) = min(1.e-4+sigment(il,i), 1.0 - siga(il,i))  ! cld
     3841        qtc(il, i) = (siga(il,i)*qnk(il)+sigment(il,i)*qtment(il,i)) & ! cld
     3842                     /(siga(il,i)+sigment(il,i))                     ! cld
     3843        sigt(il,i) = sigment(il, i) + siga(il, i)
     3844
     3845!        qtc(il, i) = siga(il,i)*qnk(il)+(1.-siga(il,i))*qtment(il,i) ! cld
     3846      print*,'BIGAUSSIAN CONV',siga(il,i),sigment(il,i),qtc(il,i) 
     3847               
    38023848      ELSE IF (iflag_clw==1) THEN                                    ! cld
    38033849        qcondc(il, i) = qcond(il, i)                                 ! cld
     3850        qtc(il,i) = qtment(il,i)                                     ! cld
    38043851      END IF                                                         ! cld
    38053852
  • LMDZ5/trunk/libf/phylmd/cva_driver.F90

    r2201 r2205  
    2424                      da1, phi1, mp1, phi21, d1a1, dam1, sigij1, wghti1, & ! RomP, RL
    2525                      clw1, elij1, evap1, ep1, epmlmMm1, eplaMm1, &        ! RomP, RL
    26                       wdtrainA1, wdtrainM1)                                ! RomP
     26                      wdtrainA1, wdtrainM1, qtc, sigt, tau_cld_cv, &
     27                      coefw_cld_cv)                                        ! RomP, AJ
    2728! **************************************************************
    2829! *
     
    5556! iflag_ice_thermo Integer        Input        accounting for ice thermodynamics (0/1)
    5657! iflag_clos    Integer        Input        version of closure (0/1)
     58! tau_cld_cv    Real           Input        characteristic time of dissipation of mixing fluxes
     59! coefw_cld_cv  Real           Input        coefficient for updraft velocity in convection
    5760! ok_conserv_q  Logical        Input        when true corrections for water conservation are swtiched on
    5861! delt          Real           Input        time step
     
    119122! phi1          Real           Output     used in tracer transport (cvltr)
    120123! mp1           Real           Output     used in tracer transport (cvltr)
    121                                          
     124! qtc           Real           Output     specific humidity in convection
     125! sigt          Real           Output     surface fraction in adiabatic updrafts                                         
    122126! phi21         Real           Output     used in tracer transport (cvltr)
    123127                                         
     
    163167  INTEGER iflag_clos
    164168  LOGICAL ok_conserv_q
     169  REAL tau_cld_cv
     170  REAL coefw_cld_cv
    165171  REAL delt
    166172  REAL t1(len, nd)
     
    479485  REAL ftra(nloc, klev, ntra), traent(nloc, klev, klev, ntra)
    480486  REAL qcondc(nloc, klev)      ! cld
     487  REAL qtc(nloc, klev)         ! cld
     488  REAL sigt(nloc, klev)        ! cld
    481489  REAL wd(nloc)                ! gust
    482490  REAL Plim1(nloc), plim2(nloc)
     
    980988                     cbmf, upwd, dnwd, dnwd0, ma, mip, &
    981989                     tls, tps, qcondc, wd, &
    982                      ftd, fqd)
     990                     ftd, fqd, qnk, qtc, sigt, tau_cld_cv, coefw_cld_cv)
    983991    END IF
    984992
  • LMDZ5/trunk/libf/phylmd/fisrtilp.F90

    r2109 r2205  
    88     frac_impa, frac_nucl, beta,                        &
    99     prfl, psfl, rhcl, zqta, fraca,                     &
    10      ztv, zpspsk, ztla, zthl, iflag_cldcon,             &
     10     ztv, zpspsk, ztla, zthl, iflag_cldth,             &
    1111     iflag_ice_thermo)
    1212
     
    8282  INTEGER ninter ! sous-intervals pour la precipitation
    8383  INTEGER ncoreczq 
    84   INTEGER iflag_cldcon
     84  INTEGER iflag_cldth
    8585  INTEGER iflag_ice_thermo
    8686  PARAMETER (ninter=5)
     
    545545           enddo
    546546
    547            if (iflag_cldcon>=5) then
     547           if (iflag_cldth>=5) then
    548548
    549549              call cloudth(klon,klev,k,ztv, &
     
    559559           endif
    560560
    561            if (iflag_cldcon <= 4) then
     561           if (iflag_cldth <= 4) then
    562562              lognormale = .true.
    563            elseif (iflag_cldcon >= 6) then
     563           elseif (iflag_cldth >= 6) then
    564564              ! lognormale en l'absence des thermiques
    565565              lognormale = fraca(:,k) < 1e-10
    566566           else
    567               ! Dans le cas iflag_cldcon=5, on prend systématiquement la
     567              ! Dans le cas iflag_cldth=5, on prend systématiquement la
    568568              ! bi-gaussienne
    569569              lognormale = .false.
  • LMDZ5/trunk/libf/phylmd/nuage.h

    r2006 r2205  
    55      REAL exposant_glace
    66      REAL rei_min,rei_max
     7      REAL tau_cld_cv,coefw_cld_cv
    78
    8       INTEGER iflag_t_glace
     9      INTEGER iflag_t_glace,iflag_cld_cv
    910
    1011      common /nuagecom/ rad_froid,rad_chau1, rad_chau2,t_glace_max,     &
    1112     &                  t_glace_min,exposant_glace,rei_min,rei_max,     &
    12      &                  iflag_t_glace
     13     &                  tau_cld_cv,coefw_cld_cv,                        &
     14     &                  iflag_t_glace,iflag_cld_cv
    1315!$OMP THREADPRIVATE(/nuagecom/)
  • LMDZ5/trunk/libf/phylmd/phys_state_var_mod.F90

    r2181 r2205  
    6060      REAL, ALLOCATABLE, SAVE :: clwcon(:,:),rnebcon(:,:)
    6161!$OMP THREADPRIVATE(clwcon,rnebcon)
     62      REAL, ALLOCATABLE, SAVE :: qtc_cv(:,:),sigt_cv(:,:)
     63!$OMP THREADPRIVATE(qtc_cv,sigt_cv)
    6264      REAL, ALLOCATABLE, SAVE :: ratqs(:,:)
    6365!$OMP THREADPRIVATE(ratqs)
     
    416418!!! Rom P <<<
    417419      ALLOCATE(clwcon(klon,klev),rnebcon(klon,klev))
     420      ALLOCATE(qtc_cv(klon,klev),sigt_cv(klon,klev))
    418421      ALLOCATE(ratqs(klon,klev))
    419422      ALLOCATE(pbl_tke(klon,klev+1,nbsrf+1))
     
    566569      deallocate(zthe, zpic, zval)
    567570      deallocate(rugoro, t_ancien, q_ancien, clwcon, rnebcon)
     571      deallocate(qtc_cv,sigt_cv)
    568572      deallocate(        u_ancien, v_ancien                 )
    569573      deallocate(        tr_ancien)                           !RomP
  • LMDZ5/trunk/libf/phylmd/physiq.F90

    r2200 r2205  
    636636  !$OMP THREADPRIVATE(fact_cldcon,facttemps)
    637637
    638   integer iflag_cldcon
    639   save iflag_cldcon
    640   !$OMP THREADPRIVATE(iflag_cldcon)
     638  integer iflag_cldth
     639  save iflag_cldth
     640  !$OMP THREADPRIVATE(iflag_cldth)
    641641  logical ptconv(klon,klev)
    642642  !IM cf. AM 081204 BEG
     
    913913          solarlong0,seuil_inversion, &
    914914          fact_cldcon, facttemps,ok_newmicro,iflag_radia, &
    915           iflag_cldcon,iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, &
     915          iflag_cldth,iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, &
    916916          ok_ade, ok_aie, ok_cdnc, aerosol_couple,  &
    917917          flag_aerosol, flag_aerosol_strat, new_aod, &
     
    10141014     print*,'CYCLE_DIURNE', cycle_diurne
    10151015     !
    1016      IF (iflag_con.EQ.2.AND.iflag_cldcon.GT.-1) THEN
    1017         abort_message = 'Tiedtke needs iflag_cldcon=-2 or -1'
     1016     IF (iflag_con.EQ.2.AND.iflag_cldth.GT.-1) THEN
     1017        abort_message = 'Tiedtke needs iflag_cldth=-2 or -1'
    10181018        CALL abort_gcm (modname,abort_message,1)
    10191019     ENDIF
     
    11301130                ,alp_bl_prescr, ale_bl_prescr)
    11311131           ! 11/09/06 rajout initialisation ALE et ALP du wake et PBL(YU)
    1132            !        print*,'apres ini_wake iflag_cldcon=', iflag_cldcon
     1132           !        print*,'apres ini_wake iflag_cldth=', iflag_cldth
    11331133        endif
    11341134
     
    21702170             ftd,fqd,lalim_conv,wght_th, &
    21712171             ev, ep,epmlmMm,eplaMm, &
    2172              wdtrainA,wdtrainM,wght_cvfd)
     2172             wdtrainA,wdtrainM,wght_cvfd,qtc_cv,sigt_cv, &
     2173             tau_cld_cv,coefw_cld_cv)
    21732174        ! RomP <<<
    21742175
     
    22202221     !   calcul des proprietes des nuages convectifs
    22212222     clwcon0(:,:)=fact_cldcon*clwcon0(:,:)
     2223     IF (iflag_cld_cv <= 1) THEN
    22222224     call clouds_gno &
    22232225          (klon,klev,q_seri,zqsat,clwcon0,ptconv,ratqsc,rnebcon0)
     2226     ELSE
     2227     call clouds_bigauss &
     2228          (klon,klev,q_seri,zqsat,qtc_cv,sigt_cv,ptconv,ratqsc,rnebcon0)
     2229     ENDIF
     2230
    22242231
    22252232     ! =================================================================== c
     
    24542461  END IF
    24552462
    2456   !      print*,'apres callwake iflag_cldcon=', iflag_cldcon
     2463  !      print*,'apres callwake iflag_cldth=', iflag_cldth
    24572464  !
    24582465  !===================================================================
     
    27752782  ! water distribution
    27762783  CALL  calcratqs(klon,klev,prt_level,lunout,        &
    2777        iflag_ratqs,iflag_con,iflag_cldcon,pdtphys,  &
     2784       iflag_ratqs,iflag_con,iflag_cldth,pdtphys,  &
    27782785       ratqsbas,ratqshaut,tau_ratqs,fact_cldcon,   &
    27792786       ptconv,ptconvth,clwcon0th, rnebcon0th,     &
     
    27972804       frac_impa, frac_nucl, beta_prec_fisrt, &
    27982805       prfl, psfl, rhcl,  &
    2799        zqasc, fraca,ztv,zpspsk,ztla,zthl,iflag_cldcon, &
     2806       zqasc, fraca,ztv,zpspsk,ztla,zthl,iflag_cldth, &
    28002807       iflag_ice_thermo)
    28012808  !
     
    28532860  !
    28542861  !IM cf FH
    2855   !     IF (iflag_cldcon.eq.-1) THEN ! seulement pour Tiedtke
    2856   IF (iflag_cldcon.le.-1) THEN ! seulement pour Tiedtke
     2862  !     IF (iflag_cldth.eq.-1) THEN ! seulement pour Tiedtke
     2863  IF (iflag_cldth.le.-1) THEN ! seulement pour Tiedtke
    28572864     snow_tiedtke=0.
    28582865     !     print*,'avant calcul de la pseudo precip '
    2859      !     print*,'iflag_cldcon',iflag_cldcon
    2860      if (iflag_cldcon.eq.-1) then
     2866     !     print*,'iflag_cldth',iflag_cldth
     2867     if (iflag_cldth.eq.-1) then
    28612868        rain_tiedtke=rain_con
    28622869     else
     
    28912898     ENDDO
    28922899
    2893   ELSE IF (iflag_cldcon.ge.3) THEN
     2900  ELSE IF (iflag_cldth.ge.3) THEN
    28942901     !  On prend pour les nuages convectifs le max du calcul de la
    28952902     !  convection et du calcul du pas de temps precedent diminue d'un facteur
     
    29782985     !   On prend la somme des fractions nuageuses et des contenus en eau
    29792986
    2980      if (iflag_cldcon>=5) then
     2987     if (iflag_cldth>=5) then
    29812988
    29822989        do k=1,klev
Note: See TracChangeset for help on using the changeset viewer.