Changeset 2957 for LMDZ5


Ignore:
Timestamp:
Jul 18, 2017, 12:38:26 PM (7 years ago)
Author:
jbmadeleine
Message:

Added options in cloudth_vert_v3:

  • iflag_cloudth_vert_noratqs runs only when iflag_cloudth_vert=4 and removes

the dependency to ratqs from the calculation of sigma1s

  • sigma1s_factor=1.1 and sigma1s_power=0.6 control the values used in the

calculation of sigma1s=(1.10.5)*(fraca(ind1,ind2)0.6)/...

File:
1 edited

Legend:

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

    r2945 r2957  
    845845      REAL zqsatenv(ngrid,klev)
    846846     
    847    
    848 
    849 
    850847      REAL sigma1(ngrid,klev)                                                         
    851848      REAL sigma2(ngrid,klev)
     
    864861      REAL rdd,cppd,Lv
    865862      REAL alth,alenv,ath,aenv
    866       REAL sth,senv,sigma1s,sigma2s,xth,xenv,exp_xenv1,exp_xenv2,exp_xth1,exp_xth2
     863      REAL sth,senv,sigma1s,sigma2s,sigma1s_fraca,sigma1s_ratqs
     864      REAL xth,xenv,exp_xenv1,exp_xenv2,exp_xth1,exp_xth2
    867865      REAL xth1,xth2,xenv1,xenv2,deltasth, deltasenv
    868866      REAL IntJ,IntI1,IntI2,IntI3,IntJ_CF,IntI1_CF,IntI3_CF,coeffqlenv,coeffqlth
     
    874872      REAL,SAVE :: vert_alpha, vert_alpha_th
    875873      !$OMP THREADPRIVATE(vert_alpha, vert_alpha_th)
     874      REAL,SAVE :: sigma1s_factor=1.1
     875      REAL,SAVE :: sigma1s_power=0.6
     876      !$OMP THREADPRIVATE(sigma1s_factor,sigma1s_power)
     877      INTEGER, SAVE :: iflag_cloudth_vert_noratqs=0
     878      !$OMP THREADPRIVATE(iflag_cloudth_vert_noratqs)
     879
    876880      LOGICAL, SAVE :: firstcall = .TRUE.
    877881      !$OMP THREADPRIVATE(firstcall)
     
    917921        CALL getin_p('cloudth_vert_alpha_th',vert_alpha_th)
    918922        WRITE(*,*) 'cloudth_vert_alpha_th = ', vert_alpha_th
     923        ! Factor used in the calculation of sigma1s
     924        CALL getin_p('cloudth_sigma1s_factor',sigma1s_factor)
     925        WRITE(*,*) 'cloudth_sigma1s_factor = ', sigma1s_factor
     926        ! Power used in the calculation of sigma1s
     927        CALL getin_p('cloudth_sigma1s_power',sigma1s_power)
     928        WRITE(*,*) 'cloudth_sigma1s_power = ', sigma1s_power
     929        ! Remove the dependency to ratqs from the variance of the vertical PDF
     930        CALL getin_p('iflag_cloudth_vert_noratqs',iflag_cloudth_vert_noratqs)
     931        WRITE(*,*) 'iflag_cloudth_vert_noratqs = ', iflag_cloudth_vert_noratqs
     932
    919933        firstcall=.FALSE.
    920934      ENDIF
     
    969983!------------------------------------------------------------------------------
    970984
    971       sigma1s=(1.1**0.5)*(fraca(ind1,ind2)**0.6)/(1-fraca(ind1,ind2))*((sth-senv)**2)**0.5+ratqs(ind1,ind2)*po(ind1)
     985      sigma1s_fraca = (sigma1s_factor**0.5)*(fraca(ind1,ind2)**sigma1s_power) / &
     986     &                (1-fraca(ind1,ind2))*((sth-senv)**2)**0.5
     987!     sigma1s_fraca = (1.1**0.5)*(fraca(ind1,ind2)**0.6)/(1-fraca(ind1,ind2))*((sth-senv)**2)**0.5
     988      sigma1s_ratqs = ratqs(ind1,ind2)*po(ind1)
     989      sigma1s = sigma1s_fraca + sigma1s_ratqs
    972990      sigma2s=(0.09*(((sth-senv)**2)**0.5)/((fraca(ind1,ind2)+0.02)**0.5))+0.002*zqta(ind1,ind2)
    973991!      tests
     
    10341052        deltasth=ath*vert_alpha_th*sigma2s
    10351053      ELSE IF (iflag_cloudth_vert == 4) THEN
    1036         deltasenv=vert_alpha*sigma1s
    1037         deltasth=vert_alpha_th*sigma2s
     1054        IF (iflag_cloudth_vert_noratqs == 1) THEN
     1055          deltasenv=vert_alpha*sigma1s_fraca
     1056          deltasth=vert_alpha_th*sigma2s
     1057        ELSE
     1058          deltasenv=vert_alpha*sigma1s
     1059          deltasth=vert_alpha_th*sigma2s
     1060        ENDIF
    10381061      ENDIF
    10391062     
Note: See TracChangeset for help on using the changeset viewer.