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, tra, sig1, w01, & |
8 |
d_t, d_q, d_u, d_v, d_tra, rain, snow, kbas, ktop, upwd, dnwd, dnwd0, & |
d_t, d_q, d_u, d_v, d_tra, rain, snow, kbas, ktop, upwd, dnwd, dnwd0, & |
9 |
ma, cape, tvp, iflag, pbase, bbase, dtvpdt1, dtvpdq1, dplcldt, & |
ma, cape, tvp, iflag, pbase, bbase, dtvpdt1, dtvpdq1, dplcldt, & |
10 |
dplcldr, qcondc, wd, pmflxr, pmflxs, da, phi, mp, ntra) |
dplcldr, qcondc, wd, pmflxr, pmflxs, da, phi, mp, ntra) |
27 |
|
|
28 |
REAL, INTENT (IN):: dtime ! pas d'integration (s) |
REAL, INTENT (IN):: dtime ! pas d'integration (s) |
29 |
REAL, INTENT (IN):: paprs(klon, klev+1) |
REAL, INTENT (IN):: paprs(klon, klev+1) |
30 |
REAL, INTENT (IN):: pplay(klon, klev) |
REAL, INTENT (IN):: play(klon, klev) |
31 |
REAL, intent(in):: t(klon, klev) |
REAL, intent(in):: t(klon, klev) |
32 |
real q(klon, klev) ! input vapeur d'eau (en kg/kg) |
real q(klon, klev) ! input vapeur d'eau (en kg/kg) |
33 |
real u(klon, klev), v(klon, klev) |
real u(klon, klev), v(klon, klev) |
34 |
REAL, INTENT (IN):: tra(klon, klev, ntrac) |
REAL, INTENT (IN):: tra(klon, klev, ntrac) |
35 |
INTEGER, intent(in):: ntra ! number of tracers |
INTEGER, intent(in):: ntra ! number of tracers |
36 |
REAL work1(klon, klev), work2(klon, klev) |
REAL, intent(inout):: sig1(klon, klev), w01(klon, klev) |
|
! work*: input et output: deux variables de travail, |
|
|
! on peut les mettre a 0 au debut |
|
37 |
REAL pmflxr(klon, klev+1), pmflxs(klon, klev+1) |
REAL pmflxr(klon, klev+1), pmflxs(klon, klev+1) |
38 |
|
|
39 |
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, & |
95 |
|
|
96 |
DO k = 1, klev |
DO k = 1, klev |
97 |
DO i = 1, klon |
DO i = 1, klon |
98 |
em_p(i, k) = pplay(i, k)/100.0 |
em_p(i, k) = play(i, k)/100.0 |
99 |
END DO |
END DO |
100 |
END DO |
END DO |
101 |
|
|
127 |
END IF |
END IF |
128 |
|
|
129 |
CALL cv_driver(klon, klev, klev+1, ntra, t, q, qs, u, v, tra, em_p, & |
CALL cv_driver(klon, klev, klev+1, ntra, t, q, qs, u, v, tra, em_p, & |
130 |
em_ph, iflag, d_t, d_q, d_u, d_v, d_tra, rain, pmflxr, cbmf, work1, & |
em_ph, iflag, d_t, d_q, d_u, d_v, d_tra, rain, pmflxr, cbmf, sig1, & |
131 |
work2, kbas, ktop, dtime, ma, upwd, dnwd, dnwd0, qcondc, wd, cape, & |
w01, kbas, ktop, dtime, ma, upwd, dnwd, dnwd0, qcondc, wd, cape, & |
132 |
da, phi, mp) |
da, phi, mp) |
133 |
|
|
134 |
DO i = 1, klon |
DO i = 1, klon |