/[lmdze]/trunk/Sources/phylmd/concvl.f
ViewVC logotype

Diff of /trunk/Sources/phylmd/concvl.f

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

trunk/libf/phylmd/concvl.f90 revision 69 by guez, Mon Feb 18 16:33:12 2013 UTC trunk/phylmd/concvl.f revision 99 by guez, Wed Jul 2 18:39:15 2014 UTC
# Line 4  module concvl_m Line 4  module concvl_m
4    
5  contains  contains
6    
7    SUBROUTINE concvl(dtime, paprs, pplay, t, q, u, v, tra, work1, work2, &    SUBROUTINE concvl(dtime, paprs, play, t, q, u, v, sig1, w01, d_t, d_q, d_u, &
8         d_t, d_q, d_u, d_v, d_tra, rain, snow, kbas, ktop, upwd, dnwd, dnwd0, &         d_v, rain, snow, kbas, ktop, upwd, dnwd, dnwd0, ma, cape, iflag, &
9         ma, cape, tvp, iflag, pbase, bbase, dtvpdt1, dtvpdq1, dplcldt, &         qcondc, wd, pmflxr, pmflxs, da, phi, mp)
        dplcldr, qcondc, wd, pmflxr, pmflxs, da, phi, mp, ntra)  
10    
11      ! From phylmd/concvl.F, version 1.3 2005/04/15 12:36:17      ! From phylmd/concvl.F, version 1.3 2005/04/15 12:36:17
12      ! Author: Z. X. Li (LMD/CNRS)      ! Author: Z. X. Li (LMD/CNRS)
# Line 23  contains Line 22  contains
22      USE suphec_m, ONLY: retv, rtt      USE suphec_m, ONLY: retv, rtt
23      USE yoethf_m, ONLY: r2es      USE yoethf_m, ONLY: r2es
24    
     INTEGER, PARAMETER:: ntrac = nqmx - 2  
   
25      REAL, INTENT (IN):: dtime ! pas d'integration (s)      REAL, INTENT (IN):: dtime ! pas d'integration (s)
26      REAL, INTENT (IN):: paprs(klon, klev+1)      REAL, INTENT (IN):: paprs(klon, klev+1)
27      REAL, INTENT (IN):: pplay(klon, klev)      REAL, INTENT (IN):: play(klon, klev)
28      REAL, intent(in):: t(klon, klev)      REAL, intent(in):: t(klon, klev)
29      real q(klon, klev) ! input vapeur d'eau (en kg/kg)      real q(klon, klev) ! input vapeur d'eau (en kg/kg)
30      real u(klon, klev), v(klon, klev)      real, INTENT (IN):: u(klon, klev), v(klon, klev)
31      REAL, INTENT (IN):: tra(klon, klev, ntrac)      REAL, intent(inout):: sig1(klon, klev), w01(klon, klev)
     INTEGER, intent(in):: ntra ! number of tracers  
     REAL work1(klon, klev), work2(klon, klev)  
     ! work*: input et output: deux variables de travail,  
     !                            on peut les mettre a 0 au debut  
     REAL pmflxr(klon, klev+1), pmflxs(klon, klev+1)  
32    
33      REAL d_t(klon, klev), d_q(klon, klev), d_u(klon, klev), d_v(klon, &      REAL d_t(klon, klev), d_q(klon, klev), d_u(klon, klev), d_v(klon, &
34           klev)           klev)
35      ! d_q-----output-R-increment de la vapeur d'eau      ! d_q-----output-R-increment de la vapeur d'eau
36      REAL d_tra(klon, klev, ntrac)  
37      REAL rain(klon), snow(klon)      REAL rain(klon), snow(klon)
38      ! rain----output-R-la pluie (mm/s)      ! rain----output-R-la pluie (mm/s)
39      ! snow----output-R-la neige (mm/s)      ! snow----output-R-la neige (mm/s)
40    
41      INTEGER kbas(klon), ktop(klon)      INTEGER kbas(klon), ktop(klon)
     REAL em_ph(klon, klev+1), em_p(klon, klev)  
42    
43      REAL, intent(out):: upwd(klon, klev)      REAL, intent(out):: upwd(klon, klev)
44      ! saturated updraft mass flux (kg/m**2/s)      ! saturated updraft mass flux (kg/m**2/s)
# Line 58  contains Line 49  contains
49      real, intent(out):: dnwd0(klon, klev)      real, intent(out):: dnwd0(klon, klev)
50      ! unsaturated downdraft mass flux (kg/m**2/s)      ! unsaturated downdraft mass flux (kg/m**2/s)
51    
52      REAL ma(klon, klev), cape(klon), tvp(klon, klev)      REAL ma(klon, klev), cape(klon)
53      ! Cape----output-R-CAPE (J/kg)      ! Cape----output-R-CAPE (J/kg)
54      ! Tvp-----output-R-Temperature virtuelle d'une parcelle soulevee  
     !                  adiabatiquement a partir du niveau 1 (K)  
     REAL da(klon, klev), phi(klon, klev, klev), mp(klon, klev)  
55      INTEGER iflag(klon)      INTEGER iflag(klon)
     REAL pbase(klon), bbase(klon)  
     REAL dtvpdt1(klon, klev), dtvpdq1(klon, klev)  
     REAL dplcldt(klon), dplcldr(klon)  
56      REAL qcondc(klon, klev)      REAL qcondc(klon, klev)
57      REAL wd(klon)      REAL wd(klon)
58        REAL pmflxr(klon, klev+1), pmflxs(klon, klev+1)
59        REAL, intent(inout):: da(klon, klev), phi(klon, klev, klev), mp(klon, klev)
60    
61      REAL zx_t, zdelta, zx_qs, zcor      ! Local:
62    
63      INTEGER i, k, itra      REAL em_ph(klon, klev+1), em_p(klon, klev)
64        REAL zx_t, zdelta, zx_qs, zcor
65        INTEGER i, k
66      REAL qs(klon, klev)      REAL qs(klon, klev)
67      REAL, save:: cbmf(klon)      REAL, save:: cbmf(klon)
68      INTEGER:: ifrst = 0      INTEGER:: ifrst = 0
# Line 97  contains Line 87  contains
87    
88      DO k = 1, klev      DO k = 1, klev
89         DO i = 1, klon         DO i = 1, klon
90            em_p(i, k) = pplay(i, k)/100.0            em_p(i, k) = play(i, k)/100.0
91         END DO         END DO
92      END DO      END DO
93    
# Line 128  contains Line 118  contains
118         END DO         END DO
119      END IF      END IF
120    
121      CALL cv_driver(klon, klev, klev+1, ntra, t, q, qs, u, v, tra, em_p, &      CALL cv_driver(klon, klev, t, q, qs, u, v, em_p, em_ph, iflag, d_t, d_q, &
122           em_ph, iflag, d_t, d_q, d_u, d_v, d_tra, rain, pmflxr, cbmf, work1, &           d_u, d_v, rain, pmflxr, cbmf, sig1, w01, kbas, ktop, dtime, ma, &
123           work2, kbas, ktop, dtime, ma, upwd, dnwd, dnwd0, qcondc, wd, cape, &           upwd, dnwd, dnwd0, qcondc, wd, cape, da, phi, mp)
          da, phi, mp)  
124    
125      DO i = 1, klon      DO i = 1, klon
126         rain(i) = rain(i)/86400.         rain(i) = rain(i)/86400.
# Line 145  contains Line 134  contains
134            d_v(i, k) = dtime*d_v(i, k)            d_v(i, k) = dtime*d_v(i, k)
135         END DO         END DO
136      END DO      END DO
     DO itra = 1, ntra  
        DO k = 1, klev  
           DO i = 1, klon  
              d_tra(i, k, itra) = dtime*d_tra(i, k, itra)  
           END DO  
        END DO  
     END DO  
     ! les traceurs ne sont pas mis dans cette version de convect4:  
     IF (iflag_con==4) THEN  
        DO itra = 1, ntra  
           DO k = 1, klev  
              DO i = 1, klon  
                 d_tra(i, k, itra) = 0.  
              END DO  
           END DO  
        END DO  
     END IF  
137    
138    END SUBROUTINE concvl    END SUBROUTINE concvl
139    

Legend:
Removed from v.69  
changed lines
  Added in v.99

  ViewVC Help
Powered by ViewVC 1.1.21