5 |
contains |
contains |
6 |
|
|
7 |
SUBROUTINE flxflux(pdtime, pqen, pqsen, ptenh, pqenh, pap, paph, ldland, & |
SUBROUTINE flxflux(pdtime, pqen, pqsen, ptenh, pqenh, pap, paph, ldland, & |
8 |
pgeoh, kcbot, kctop, lddraf, kdtop, ktype, ldcum, pmfu, pmfd, pmfus, & |
pgeoh, kcbot, kctop, lddraf, kdtop, ktype, ldcum, mfu, pmfd, mfus, & |
9 |
pmfds, pmfuq, pmfdq, pmful, plude, pdmfup, pdmfdp, pten, prfl, psfl, & |
pmfds, mfuq, pmfdq, mful, plude, pdmfup, pdmfdp, pten, prfl, psfl, & |
10 |
pdpmel, ktopm2, pmflxr, pmflxs) |
pdpmel, ktopm2, pmflxr, pmflxs) |
11 |
|
|
12 |
! This routine does the final calculation of convective fluxes in |
! This routine does the final calculation of convective fluxes in |
31 |
INTEGER kdtop(klon) |
INTEGER kdtop(klon) |
32 |
INTEGER, intent(inout):: ktype(klon) |
INTEGER, intent(inout):: ktype(klon) |
33 |
LOGICAL, intent(in):: ldcum(klon) |
LOGICAL, intent(in):: ldcum(klon) |
34 |
REAL pmfu(klon, klev) |
REAL mfu(klon, klev) |
35 |
REAL pmfd(klon, klev) |
REAL pmfd(klon, klev) |
36 |
real pmfus(klon, klev) |
real, intent(inout):: mfus(klon, klev) |
37 |
real pmfds(klon, klev) |
real pmfds(klon, klev) |
38 |
REAL pmfuq(klon, klev) |
REAL mfuq(klon, klev) |
39 |
REAL pmfdq(klon, klev) |
REAL pmfdq(klon, klev) |
40 |
real pmful(klon, klev) |
real mful(klon, klev) |
41 |
REAL plude(klon, klev) |
REAL plude(klon, klev) |
42 |
REAL pdmfup(klon, klev) |
REAL pdmfup(klon, klev) |
43 |
REAL pdmfdp(klon, klev) |
REAL pdmfdp(klon, klev) |
88 |
DO k = ktopm2, klev |
DO k = ktopm2, klev |
89 |
DO i = 1, klon |
DO i = 1, klon |
90 |
IF (ldcum(i) .AND. k >= kctop(i) - 1) THEN |
IF (ldcum(i) .AND. k >= kctop(i) - 1) THEN |
91 |
pmfus(i, k) = pmfus(i, k) & |
mfus(i, k) = mfus(i, k) & |
92 |
- pmfu(i, k) * (RCPD * ptenh(i, k) + pgeoh(i, k)) |
- mfu(i, k) * (RCPD * ptenh(i, k) + pgeoh(i, k)) |
93 |
pmfuq(i, k)=pmfuq(i, k)-pmfu(i, k)*pqenh(i, k) |
mfuq(i, k)=mfuq(i, k)-mfu(i, k)*pqenh(i, k) |
94 |
zdp = 1.5E4 |
zdp = 1.5E4 |
95 |
IF (ldland(i)) zdp = 3.E4 |
IF (ldland(i)) zdp = 3.E4 |
96 |
|
|
113 |
pdmfdp(i, k-1)=0. |
pdmfdp(i, k-1)=0. |
114 |
END IF |
END IF |
115 |
ELSE |
ELSE |
116 |
pmfu(i, k)=0. |
mfu(i, k)=0. |
117 |
pmfus(i, k)=0. |
mfus(i, k)=0. |
118 |
pmfuq(i, k)=0. |
mfuq(i, k)=0. |
119 |
pmful(i, k)=0. |
mful(i, k)=0. |
120 |
pdmfup(i, k-1)=0. |
pdmfup(i, k-1)=0. |
121 |
plude(i, k-1)=0. |
plude(i, k-1)=0. |
122 |
pmfd(i, k)=0. |
pmfd(i, k)=0. |
134 |
zzp = ((paph(i, klev + 1) - paph(i, k)) & |
zzp = ((paph(i, klev + 1) - paph(i, k)) & |
135 |
/ (paph(i, klev + 1) - paph(i, ikb))) |
/ (paph(i, klev + 1) - paph(i, ikb))) |
136 |
IF (ktype(i) == 3) zzp = zzp**2 |
IF (ktype(i) == 3) zzp = zzp**2 |
137 |
pmfu(i, k)=pmfu(i, ikb)*zzp |
mfu(i, k)=mfu(i, ikb)*zzp |
138 |
pmfus(i, k)=pmfus(i, ikb)*zzp |
mfus(i, k)=mfus(i, ikb)*zzp |
139 |
pmfuq(i, k)=pmfuq(i, ikb)*zzp |
mfuq(i, k)=mfuq(i, ikb)*zzp |
140 |
pmful(i, k)=pmful(i, ikb)*zzp |
mful(i, k)=mful(i, ikb)*zzp |
141 |
ENDIF |
ENDIF |
142 |
end DO |
end DO |
143 |
end DO |
end DO |