Ignore:
Timestamp:
Mar 12, 2010, 11:54:11 AM (14 years ago)
Author:
Laurent Fairhead
Message:

Improvements concerning wake parametrisation (from JYG, NR, IT, with more to come).
Alp_offset is read in form physiq.def file


Améliorations à la paramétrisation des poches froides (de JYG, NR, IT, d'autres
sont à venir)
Alp_offset est rajouté à la liste des paramètres lus dans physiq.def

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/cv3_routines.F

    r1299 r1322  
    7474c      dtcrit = -5.0
    7575c      tau    = 3000.
    76 cc      tau = 1800.
    77 c     tau= 2800.
    78       tau=8000.
     76      tau = 1800.
     77cc      tau=8000.
    7978      beta   = 1.0 - delt/tau
    8079      alpha1 = 1.5e-3
     
    20942093cc---end jyg---
    20952094c
    2096 c--------retour à la formulation originale d''Emanuel.
     2095c--------retour à la formulation originale d'Emanuel.
    20972096      b6=bfac*50.*sigd(il)*(ph(il,i)-ph(il,i+1))*sigt*afac
    20982097      c6=water(il,i+1)+bfac*wdtrain(il)
     
    21002099      if(c6.gt.0.0)then
    21012100       revap=0.5*(-b6+sqrt(b6*b6+4.*c6))
    2102        water(il,i)=revap*revap      !equation de conservation
     2101cjyg    Dans sa formulation originale, Emanuel calcule l'evaporation par:
     2102cc             evap(il,i)=sigt*afac*revap
     2103c     ce qui n'est pas correct. Dans cv_routines, la formulation a été modifiee.
     2104c     Ici,l'evaporation evap est simplement calculee par l'equation de
     2105c     conservation.
     2106       water(il,i)=revap*revap
    21032107      else
     2108cjyg----   Correction : si c6 <= 0, water(il,i)=0.
    21042109       water(il,i) = 0.
    21052110      endif
     
    23452350      real esum(nloc), fsum(nloc), gsum(nloc), hsum(nloc)
    23462351      real th_wake(nloc,nd)
    2347       real alpha_qpos(nloc)
     2352      real alpha_qpos(nloc),alpha_qpos1(nloc)
    23482353      real qcond(nloc,nd), nqcond(nloc,nd), wa(nloc,nd)  ! cld
    23492354      real siga(nloc,nd), sax(nloc,nd), mac(nloc,nd)      ! cld
     
    30503055       do il=1,ncum
    30513056        IF (iflag(il) .le. 1) THEN
     3057        IF (cvflag_grav) then
     3058        ex=0.01*grav*ment(il,inb(il),inb(il))
     3059     :      *(traent(il,inb(il),inb(il),j)-tra(il,inb(il),j))
     3060     :      /(ph(i l,inb(il))-ph(il,inb(il)+1))
     3061        ftra(il,inb(il),j)=ftra(il,inb(il),j)-ex
     3062        ftra(il,inb(il)-1,j)=ftra(il,inb(il)-1,j)
     3063     :       +ex*(ph(il,inb(il))-ph(il,inb(il)+1))
     3064     :          /(ph(il,inb(il)-1)-ph(il,inb(il)))
     3065        else
    30523066        ex=0.1*ment(il,inb(il),inb(il))
    30533067     :      *(traent(il,inb(il),inb(il),j)-tra(il,inb(il),j))
     
    30573071     :       +ex*(ph(il,inb(il))-ph(il,inb(il)+1))
    30583072     :          /(ph(il,inb(il)-1)-ph(il,inb(il)))
     3073        ENDIF   !cvflag grav
    30593074        ENDIF    !iflag
    30603075       enddo
     
    31223137c        in order to ensure moisture positivity
    31233138      DO il = 1,ncum
     3139      alpha_qpos(il)=1.
    31243140       IF (iflag(il) .le. 1) THEN
    3125         alpha_qpos(il) = max(1. , -delt*fr(il,1)/
     3141        if (fr(il,1) .le. 0.) then
     3142            alpha_qpos(il) = max(alpha_qpos(il) ,
     3143     :     (-delt*fr(il,1))/
    31263144     :     (s_wake(il)*rr_wake(il,1)+(1.-s_wake(il))*rr(il,1)))
     3145        end if
    31273146       ENDIF
    31283147      ENDDO
     
    31303149       DO il = 1,ncum
    31313150        IF (iflag(il) .le. 1) THEN
    3132         alpha_qpos(il) = max(alpha_qpos(il) , -delt*fr(il,i)/
     3151          IF (fr(il,i) .le. 0.) THEN
     3152           alpha_qpos1(il)=max(1. , (-delt*fr(il,i))/
    31333153     :     (s_wake(il)*rr_wake(il,i)+(1.-s_wake(il))*rr(il,i)))
     3154             IF (alpha_qpos1(il) .ge. alpha_qpos(il))
     3155     :           alpha_qpos(il)=alpha_qpos1(il)
     3156          ENDIF
    31343157        ENDIF
    31353158       ENDDO
Note: See TracChangeset for help on using the changeset viewer.