Changeset 1277


Ignore:
Timestamp:
Dec 8, 2009, 3:34:09 PM (14 years ago)
Author:
musat
Message:

Corrections conservation de l'eau dans les descentes insaturees pour la nouvelle physique
JYG/IM

Location:
LMDZ4/trunk/libf/phylmd
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/trunk/libf/phylmd/cv3_routines.F

    r1146 r1277  
    7272c      tau    = 3000.
    7373cc      tau = 1800.
     74c     tau= 2800.
    7475      tau=8000.
    7576      beta   = 1.0 - delt/tau
     
    20862087cc---end jyg---
    20872088c
    2088 c--------retour à la formulation originale d'Emanuel.
     2089c--------retour à la formulation originale d''Emanuel.
    20892090      b6=bfac*50.*sigd(il)*(ph(il,i)-ph(il,i+1))*sigt*afac
    20902091      c6=water(il,i+1)+bfac*wdtrain(il)
     
    20922093      if(c6.gt.0.0)then
    20932094       revap=0.5*(-b6+sqrt(b6*b6+4.*c6))
    2094        evap(il,i)=sigt*afac*revap
    2095        water(il,i)=revap*revap
     2095       water(il,i)=revap*revap      !equation de conservation
    20962096      else
     2097       water(il,i) = 0.
     2098      endif
    20972099cJYG/IM : ci-dessous formulation originale de KE
    20982100c      evap(il,i)=-evap(il,i+1)
     
    21042106c        lorsqu'il y a evaporation totale de la pluie
    21052107c
    2106        evap(il,i)= +(wdtrain(il)+sigd(il)*wt(il,i)*water(il,i+1))
     2108c       evap(il,i)= +(wdtrain(il)+sigd(il)*wt(il,i)*water(il,i+1)) !itlmd(jyg)
     2109c     :                 /(sigd(il)*(ph(il,i)-ph(il,i+1))*100.)
     2110c      end if  !itlmd(jyg)
     2111cjyg---   Dans tous les cas, evaporation = [tt ce qui entre dans la couche i]
     2112c                                    moins [tt ce qui sort de la couche i]
     2113       evap(il,i)=
     2114     :       (wdtrain(il)+sigd(il)*wt(il,i)*(water(il,i+1)-water(il,i)))
    21072115     :                 /(sigd(il)*(ph(il,i)-ph(il,i+1))*100.)
    2108       end if
     2116c
    21092117ccc
    21102118c    ***  calculate precipitating downdraft mass flux under     ***
  • LMDZ4/trunk/libf/phylmd/wake.F

    r1146 r1277  
    221221      REAL, dimension(klon) :: RRe1, RRe2
    222222      REAL :: RRd1, RRd2
    223       REAL, DIMENSION(klon,klev) :: Th1, Th2, q1, q2
     223      REAL, DIMENSION(klon,klev) :: Th1, Th2, q1, q2, T1
    224224      REAL, DIMENSION(klon,klev) :: D_Th1, D_Th2, D_dth
    225225      REAL, DIMENSION(klon,klev) :: D_q1, D_q2, D_dq
     
    269269      Crep_upper=0.9
    270270      Crep_sol=1.0
    271 
    272271
    273272C Minimum value for |T_wake - T_undist|. Used for wake top definition
     
    366365        tu(i,k) = te(i,k) - deltatw(i,k)*sigmaw(i)
    367366        qu(i,k)  =  qe(i,k) - deltaqw(i,k)*sigmaw(i)
    368         rhow(i,k) = p(i,k)/(rd*(te(i,k)+deltatw(i,k)))
     367        rhow(i,k) = p(i,k)/(rd*(tu(i,k)+deltatw(i,k)))
    369368        dth(i,k) = deltatw(i,k)/ppi(i,k)
    370369       ENDDO
     
    836835        q1(i,k) = qe(i,k) - sigmaw(i)     *deltaqw(i,k) ! undisturbed area
    837836        q2(i,k) = qe(i,k) + (1.-sigmaw(i))*deltaqw(i,k) ! wake
    838        ENDIF
    839       ENDDO
    840       ENDDO
    841 
    842       DO i=1,klon
    843        D_Th1(i,1) = 0.
     837        T1(i,k) = te(i,k) - sigmaw(i)*deltatw(i,k)! undisturb itlmd
     838       ENDIF
     839      ENDDO
     840      ENDDO
     841
     842      DO i=1,klon
     843       D_Th1(i,1) = 0.   !!!itlmd : ne pas mettre if wk_adv cf nrlmd?
    844844       D_Th2(i,1) = 0.
    845845       D_dth(i,1) = 0.
     
    912912     $         -RRe2(i)*omg(i,k+1)*(1.-sigmaw(i))*D_Th2(i,k+1) )
    913913     $               /(Ph(i,k)-Ph(i,k+1))
    914      $         -sigmaw(i)*(1.-sigmaw(i))*dth(i,k)*dp_deltomg(i,k)
     914     $         -sigmaw(i)*(1.-sigmaw(i))*dth(i,k)*
     915     $            (omg(i,k)-omg(i,k+1))/(Ph(i,k)-Ph(i,k+1)) !instead of dp_deltomg(i,k)
    915916     $                      )*ppi(i,k)
    916917c
     
    919920     $         -RRe2(i)*omg(i,k+1)*(1.-sigmaw(i))*D_q2(i,k+1) )
    920921     $               /(Ph(i,k)-Ph(i,k+1))
    921      $         -sigmaw(i)*(1.-sigmaw(i))*deltaqw(i,k)*dp_deltomg(i,k)
     922     $         -sigmaw(i)*(1.-sigmaw(i))*deltaqw(i,k)*
     923     $           (omg(i,k)-omg(i,k+1))/(Ph(i,k)-Ph(i,k+1))!instead of dp_deltomg(i,k)
     924     $                      )
     925        ELSE IF(wk_adv(i) .AND. k .EQ. kupper(i)) THEN ! corr pour conserver l'eau
     926
     927         d_te(i,k) =  dtimesub*(
     928     $        ( RRe1(i)*omg(i,k  )*sigmaw(i)     *D_Th1(i,k))
     929     $               /(Ph(i,k)-Ph(i,k+1))
     930     $                      )*ppi(i,k)
     931
     932         d_qe(i,k) =  dtimesub*(
     933     $        ( RRe1(i)*omg(i,k  )*sigmaw(i)     *D_q1(i,k))
     934     $               /(Ph(i,k)-Ph(i,k+1))
    922935     $                      )
    923936       ENDIF
     
    12261239        IF (dz(i) .GT. 0) THEN
    12271240         z(i) = z(i)+dz(i)
    1228          sum_thu(i) = sum_thu(i) + thu(i,k)*dz(i)
    1229          sum_tu(i) = sum_tu(i) + tu(i,k)*dz(i)
    1230          sum_qu(i) = sum_qu(i) + qu(i,k)*dz(i)
    1231          sum_thvu(i) = sum_thvu(i) + thu(i,k)*(1.+eps*qu(i,k))*dz(i)
     1241         sum_thu(i) = sum_thu(i) + th1(i,k)*dz(i)
     1242         sum_tu(i) = sum_tu(i) + t1(i,k)*dz(i)
     1243         sum_qu(i) = sum_qu(i) + q1(i,k)*dz(i)
     1244         sum_thvu(i) = sum_thvu(i) + th1(i,k)*(1.+eps*q1(i,k))*dz(i)!itlmd
     1245
    12321246         sum_dth(i) = sum_dth(i) + dth(i,k)*dz(i)
    12331247         sum_dq(i) = sum_dq(i) + deltaqw(i,k)*dz(i)
     
    13001314      DO k = 1,klev
    13011315      DO i=1,klon
    1302         IF ( wk_adv(i) .AND. k .LE. kupper(i)-1) THEN
     1316       IF ( wk_adv(i) .AND. k .LE. kupper(i)) THEN  !! corr conservation eau
    13031317         dtls(i,k) = dtls(i,k)/dtime
    13041318         dqls(i,k) = dqls(i,k)/dtime
     
    13591373        tu(i,k) = te(i,k) - deltatw(i,k)*sigmaw(i)
    13601374        qu(i,k)  =  qe(i,k) - deltaqw(i,k)*sigmaw(i)
    1361         rhow(i,k) = p(i,k)/(rd*(te(i,k)+deltatw(i,k)))
     1375        rhow(i,k) = p(i,k)/(rd*(tu(i,k)+deltatw(i,k)))
    13621376        dth(i,k) = deltatw(i,k)/ppi(i,k)
    13631377       ENDIF
     
    15201534ccc      IF (sigmaw(i).GT.0.9) THEN
    15211535         wape(i) = 0.
     1536         cstar(i)= 0.  !!corr itlmd
    15221537         hw(i) = hwmin
    15231538         sigmaw(i) = sigmad
     
    15251540        ELSE
    15261541         wape(i) = wape2(i)
     1542         cstar(i)= cstar2(i) !!corr itlmd
    15271543        ENDIF
    15281544      ENDDO
Note: See TracChangeset for help on using the changeset viewer.