4 SUBROUTINE nflxtr(pdtime,pmfu,pmfd,pen_u,pde_u,pen_d,pde_d,pplay,paprs,x,dx)
26 REAL,
INTENT(IN) :: pdtime
31 REAL,
DIMENSION(klon,klev),
INTENT(IN) :: pmfu
32 REAL,
DIMENSION(klon,klev),
INTENT(IN) :: pmfd
33 REAL,
DIMENSION(klon,klev),
INTENT(IN) :: pen_u
34 REAL,
DIMENSION(klon,klev),
INTENT(IN) :: pde_u
35 REAL,
DIMENSION(klon,klev),
INTENT(IN) :: pen_d
36 REAL,
DIMENSION(klon,klev),
INTENT(IN) :: pde_d
38 REAL,
DIMENSION(klon,klev),
INTENT(IN) :: pplay
39 REAL,
DIMENSION(klon,klev+1),
INTENT(IN) :: paprs
40 REAL,
DIMENSION(klon,klev),
INTENT(IN) :: x
41 REAL,
DIMENSION(klon,klev),
INTENT(INOUT) :: dx
44 REAL,
DIMENSION(klon,klev+1) :: zmfu
45 REAL,
DIMENSION(klon,klev+1) :: zmfd
46 REAL,
DIMENSION(klon,klev) :: zen_u
47 REAL,
DIMENSION(klon,klev) :: zde_u
48 REAL,
DIMENSION(klon,klev) :: zen_d
49 REAL,
DIMENSION(klon,klev) :: zde_d
55 REAL,
DIMENSION(klon,klev) :: xu
56 REAL,
DIMENSION(klon,klev) :: xd
57 REAL,
DIMENSION(klon,klev+1) :: zmfux
58 REAL,
DIMENSION(klon,klev+1) :: zmfdx
59 REAL,
DIMENSION(klon,klev+1) :: zmfex
61 REAL,
PARAMETER :: zmfmin=1.e-10
85 zde_d(i,k) =-zmfd(i,k+1)+zmfd(i,k)+zen_d(i,k)
86 zen_u(i,k) = zmfu(i,k+1)-zmfu(i,k)+zde_u(i,k)
102 IF ((zmfu(i,k+1)+zde_u(i,k)).lt.zmfmin)
THEN
105 xu(i,k)=(zmfux(i,k)+zen_u(i,k)*x(i,k))/(zmfu(i,k+1)+zde_u(i,k))
107 zmfux(i,k+1)=zmfu(i,k+1)*xu(i,k)
120 IF ((zde_d(i,k)-zmfd(i,k)).lt.zmfmin)
THEN
123 xd(i,k)=(zmfdx(i,k+1)-zen_d(i,k)*x(i,k))/(zmfd(i,k)-zde_d(i,k))
125 zmfdx(i,k)=zmfd(i,k)*xd(i,k)
134 zmfe=-zmfu(i,k)-zmfd(i,k)
136 zmfex(i,k)= zmfe*x(i,k)
138 zmfex(i,k)= zmfe*x(i,k-1)
152 dx(i,k)=
rg/(paprs(i,k)-paprs(i,k+1))*pdtime* &
153 ( zmfux(i,k) - zmfux(i,k+1) + &
154 zmfdx(i,k) - zmfdx(i,k+1) + &
155 zmfex(i,k) - zmfex(i,k+1) )
subroutine nflxtr(pdtime, pmfu, pmfd, pen_u, pde_u, pen_d, pde_d, pplay, paprs, x, dx)