/[lmdze]/trunk/phylmd/Conflx/flxmain.f90
ViewVC logotype

Diff of /trunk/phylmd/Conflx/flxmain.f90

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 63 by guez, Wed Aug 1 14:13:57 2012 UTC revision 64 by guez, Wed Aug 29 14:47:17 2012 UTC
# Line 11  contains Line 11  contains
11      USE dimphy, ONLY: klev, klon      USE dimphy, ONLY: klev, klon
12      USE suphec_m, ONLY: rcpd, retv, rg, rlvtt      USE suphec_m, ONLY: rcpd, retv, rg, rlvtt
13      USE yoethf_m, ONLY: r4les, r5les      USE yoethf_m, ONLY: r4les, r5les
14      USE yoecumf, ONLY: cmfdeps, entrpen, entrscv, lmfdd      USE yoecumf, ONLY: flxsetup, cmfdeps, entrpen, entrscv, lmfdd
     use flxsetup_m, only: flxsetup  
15    
16        REAL, intent(in):: pdtime
17      REAL pten(klon,klev), pqen(klon,klev), pqsen(klon,klev)      REAL pten(klon,klev), pqen(klon,klev), pqsen(klon,klev)
18      REAL ptte(klon,klev)      REAL ptte(klon,klev)
19      REAL pqte(klon,klev)      REAL pqte(klon,klev)
# Line 25  contains Line 25  contains
25      REAL plude(klon,klev)      REAL plude(klon,klev)
26      REAL pmfu(klon,klev)      REAL pmfu(klon,klev)
27      REAL prsfc(klon), pssfc(klon)      REAL prsfc(klon), pssfc(klon)
28      INTEGER  kcbot(klon), kctop(klon), ktype(klon)      INTEGER kcbot(klon), kctop(klon), ktype(klon)
29      LOGICAL  ldland(klon), ldcum(klon)      LOGICAL ldland(klon), ldcum(klon)
30    
31      REAL ztenh(klon,klev), zqenh(klon,klev), zqsenh(klon,klev)      REAL ztenh(klon,klev), zqenh(klon,klev), zqsenh(klon,klev)
32      REAL zgeoh(klon,klev)      REAL zgeoh(klon,klev)
# Line 38  contains Line 38  contains
38      REAL zrfl(klon)      REAL zrfl(klon)
39      REAL pmflxr(klon,klev+1)      REAL pmflxr(klon,klev+1)
40      REAL pmflxs(klon,klev+1)      REAL pmflxs(klon,klev+1)
41      INTEGER  ilab(klon,klev), ictop0(klon)      INTEGER ilab(klon,klev), ictop0(klon)
42      LOGICAL  llo1      LOGICAL llo1
43      REAL dt_con(klon,klev), dq_con(klon,klev)      REAL dt_con(klon,klev), dq_con(klon,klev)
44      REAL zmfmax, zdh      REAL zmfmax, zdh
     REAL, intent(in):: pdtime  
45      real zqumqe, zdqmin, zalvdcp, zhsat, zzz      real zqumqe, zdqmin, zalvdcp, zhsat, zzz
46      REAL zhhat, zpbmpt, zgam, zeps, zfac      REAL zhhat, zpbmpt, zgam, zeps, zfac
47      INTEGER i, k, ikb, itopm2, kcum      INTEGER i, k, ikb, itopm2, kcum
# Line 114  contains Line 113  contains
113      DO i = 1, klon      DO i = 1, klon
114         ktype(i) = 2         ktype(i) = 2
115         if (zdqcv(i).GT.MAX(0.,-1.5*pqhfl(i)*RG)) ktype(i) = 1         if (zdqcv(i).GT.MAX(0.,-1.5*pqhfl(i)*RG)) ktype(i) = 1
116         !cc         if (zdqcv(i).GT.MAX(0.,-1.1*pqhfl(i)*RG)) ktype(i) = 1         !cc if (zdqcv(i).GT.MAX(0.,-1.1*pqhfl(i)*RG)) ktype(i) = 1
117      ENDDO      ENDDO
118    
119      ! determiner le flux de masse entrant a travers la base.      ! determiner le flux de masse entrant a travers la base.
# Line 144  contains Line 143  contains
143      ! DETERMINE CLOUD ASCENT FOR ENTRAINING PLUME      ! DETERMINE CLOUD ASCENT FOR ENTRAINING PLUME
144    
145      ! (A) calculer d'abord la hauteur "theorique" de la tour convective sans      ! (A) calculer d'abord la hauteur "theorique" de la tour convective sans
146      !     considerer l'entrainement ni le detrainement du panache, sachant      ! considerer l'entrainement ni le detrainement du panache, sachant
147      !     ces derniers peuvent abaisser la hauteur theorique.      ! ces derniers peuvent abaisser la hauteur theorique.
148    
149      DO i = 1, klon      DO i = 1, klon
150         ikb=kcbot(i)         ikb=kcbot(i)
# Line 158  contains Line 157  contains
157         DO i = 1, klon         DO i = 1, klon
158            zhsat=RCPD*ztenh(i,k)+zgeoh(i,k)+RLVTT*zqsenh(i,k)            zhsat=RCPD*ztenh(i,k)+zgeoh(i,k)+RLVTT*zqsenh(i,k)
159            zgam=R5LES*zalvdcp*zqsenh(i,k)/ &            zgam=R5LES*zalvdcp*zqsenh(i,k)/ &
160                 ((1.-RETV  *zqsenh(i,k))*(ztenh(i,k)-R4LES)**2)                 ((1.-RETV *zqsenh(i,k))*(ztenh(i,k)-R4LES)**2)
161            zzz=RCPD*ztenh(i,k)*0.608            zzz=RCPD*ztenh(i,k)*0.608
162            zhhat=zhsat-(zzz+zgam*zzz)/(1.+zgam*zzz/RLVTT)* &            zhhat=zhsat-(zzz+zgam*zzz)/(1.+zgam*zzz/RLVTT)* &
163                 MAX(zqsenh(i,k)-zqenh(i,k),0.)                 MAX(zqsenh(i,k)-zqenh(i,k),0.)
# Line 186  contains Line 185  contains
185            IF(ktype(i).EQ.2) zentr(i)=ENTRSCV            IF(ktype(i).EQ.2) zentr(i)=ENTRSCV
186         ENDDO         ENDDO
187    
188         IF (lmfdd) THEN  ! si l'on considere le panache descendant         IF (lmfdd) THEN ! si l'on considere le panache descendant
189            ! calculer la precipitation issue du panache ascendant pour            ! calculer la precipitation issue du panache ascendant pour
190            ! determiner l'existence du panache descendant dans la convection            ! determiner l'existence du panache descendant dans la convection
191            DO i = 1, klon            DO i = 1, klon
# Line 200  contains Line 199  contains
199    
200            ! determiner le LFS (level of free sinking: niveau de plonge libre)            ! determiner le LFS (level of free sinking: niveau de plonge libre)
201            CALL flxdlfs(ztenh, zqenh, zgeoh, paph, ptu, pqu, &            CALL flxdlfs(ztenh, zqenh, zgeoh, paph, ptu, pqu, &
202                 ldcum,    kcbot,    kctop,    zmfub,    zrfl, &                 ldcum, kcbot, kctop, zmfub, zrfl, &
203                 ptd,      pqd, &                 ptd, pqd, &
204                 pmfd,     zmfds,    zmfdq,    zdmfdp, &                 pmfd, zmfds, zmfdq, zdmfdp, &
205                 kdtop,    lddraf)                 kdtop, lddraf)
206    
207            ! calculer le panache descendant            ! calculer le panache descendant
208            CALL flxddraf(ztenh,    zqenh, &            CALL flxddraf(ztenh, zqenh, &
209                 zgeoh,    paph,     zrfl, &                 zgeoh, paph, zrfl, &
210                 ptd,      pqd, &                 ptd, pqd, &
211                 pmfd,     zmfds,    zmfdq,    zdmfdp, &                 pmfd, zmfds, zmfdq, zdmfdp, &
212                 lddraf, pen_d, pde_d)                 lddraf, pen_d, pde_d)
213    
214            ! calculer de nouveau le flux de masse entrant a travers la base            ! calculer de nouveau le flux de masse entrant a travers la base
# Line 258  contains Line 257  contains
257            DO i = 1, klon            DO i = 1, klon
258               IF (lddraf(i)) zmfub(i)=zmfub1(i)               IF (lddraf(i)) zmfub(i)=zmfub1(i)
259            ENDDO            ENDDO
260         ENDIF   ! fin de test sur lmfdd         ENDIF ! fin de test sur lmfdd
261    
262         ! calculer de nouveau le panache ascendant         ! calculer de nouveau le panache ascendant
263    
# Line 272  contains Line 271  contains
271         ! determiner les flux convectifs en forme finale, ainsi que         ! determiner les flux convectifs en forme finale, ainsi que
272         ! la quantite des precipitations         ! la quantite des precipitations
273    
274         CALL flxflux(pdtime, pqen, pqsen, ztenh, zqenh, pap, paph,  &         CALL flxflux(pdtime, pqen, pqsen, ztenh, zqenh, pap, paph, &
275              ldland, zgeoh, kcbot, kctop, lddraf, kdtop, ktype, ldcum, &              ldland, zgeoh, kcbot, kctop, lddraf, kdtop, ktype, ldcum, &
276              pmfu, pmfd, zmfus, zmfds, zmfuq, zmfdq, zmful, plude, &              pmfu, pmfd, zmfus, zmfds, zmfuq, zmfdq, zmful, plude, &
277              zdmfup, zdmfdp, pten, prsfc, pssfc, zdpmel, itopm2, &              zdmfup, zdmfdp, pten, prsfc, pssfc, zdpmel, itopm2, &

Legend:
Removed from v.63  
changed lines
  Added in v.64

  ViewVC Help
Powered by ViewVC 1.1.21