4 SUBROUTINE cltrac(dtime,coef,t,tr,flux,paprs,pplay,delp, &
5 d_tr,d_tr_dry,flux_tr_dry)
36 REAL,
INTENT(IN) :: dtime
37 REAL,
DIMENSION(klon,klev),
INTENT(IN) :: coef
38 REAL,
DIMENSION(klon,klev),
INTENT(IN) :: t, tr
39 REAL,
DIMENSION(klon),
INTENT(IN) :: flux
40 REAL,
DIMENSION(klon,klev+1),
INTENT(IN) :: paprs
41 REAL,
DIMENSION(klon,klev),
INTENT(IN) :: pplay, delp
45 REAL ,
DIMENSION(klon,klev),
INTENT(OUT) :: d_tr
46 REAL ,
DIMENSION(klon),
INTENT(OUT) :: d_tr_dry
47 REAL ,
DIMENSION(klon),
INTENT(OUT) :: flux_tr_dry
53 REAL,
DIMENSION(klon) :: cdrag, tr0
54 REAL,
DIMENSION(klon,klev) :: zx_ctr
55 REAL,
DIMENSION(klon,klev) :: zx_dtr
56 REAL,
DIMENSION(klon) :: zx_buf
57 REAL,
DIMENSION(klon,klev) :: zx_coef
58 REAL,
DIMENSION(klon,klev) :: local_tr
59 REAL,
DIMENSION(klon) :: zx_alf1,zx_alf2,zx_flux
65 local_tr(i,k) = tr(i,k)
72 zx_alf1(i) = (paprs(i,1)-pplay(i,2))/(pplay(i,1)-pplay(i,2))
73 zx_alf2(i) = 1.0 - zx_alf1(i)
74 flux_tr_dry(i) = -flux(i)*dtime
75 zx_flux(i) = flux_tr_dry(i)*
rg
80 zx_coef(i,1) = cdrag(i)*dtime*
rg
89 zx_coef(i,k) = coef(i,k)*
rg/(pplay(i,k-1)-pplay(i,k)) &
90 *(paprs(i,k)*2/(t(i,k)+t(i,k-1))/rd)**2
91 zx_coef(i,k) = zx_coef(i,k)*dtime*
rg
98 zx_buf(i) = delp(i,1) + zx_coef(i,1)*zx_alf1(i) + zx_coef(i,2)
100 zx_ctr(i,2) = (local_tr(i,1)*delp(i,1)+ &
101 zx_coef(i,1)*tr0(i)-zx_flux(i))/zx_buf(i)
103 zx_dtr(i,2) = (zx_coef(i,2)-zx_alf2(i)*zx_coef(i,1)) / &
105 d_tr_dry(i) = -zx_flux(i)/zx_buf(i)
110 zx_buf(i) = delp(i,k-1) + zx_coef(i,k) &
111 + zx_coef(i,k-1)*(1.-zx_dtr(i,k-1))
112 zx_ctr(i,k) = (local_tr(i,k-1)*delp(i,k-1) &
113 +zx_coef(i,k-1)*zx_ctr(i,k-1) )/zx_buf(i)
114 zx_dtr(i,k) = zx_coef(i,k)/zx_buf(i)
121 / ( delp(i,
klev) + zx_coef(i,
klev) &
127 local_tr(i,k) = zx_ctr(i,k+1) + zx_dtr(i,k+1)*local_tr(i,k+1)
145 d_tr(i,k) = local_tr(i,k) - tr(i,k)
subroutine cltrac(dtime, coef, t, tr, flux, paprs, pplay, delp, d_tr, d_tr_dry, flux_tr_dry)