4 SUBROUTINE flxtr(pdtime, pmfu, pmfd, pen_u, pde_u, pen_d, pde_d, pt, pplay, &
5 paprs, kcbot, kctop, kdtop,
x, dx)
78 zpen_u(i, k) = pen_u(i, k)
79 zpde_u(i, k) = pde_u(i, k)
85 zpen_d(i, k) = -pen_d(i, k+1)
86 zpde_d(i, k) = -pde_d(i, k+1)
95 IF (kdtop(i)==
klev+1)
THEN
96 zpen_d(i, kdtop(i)-1) = pmfd(i, kdtop(i)-1)
98 zpen_d(i, kdtop(i)-1) = pmfd(i, kdtop(i)-1) - pmfd(i, kdtop(i))
101 zpde_u(i, kctop(i)-2) = pmfu(i, kctop(i)-1)
106 DO k = kcbot(i),
klev - 1
107 zpen_u(i, k) = pmfu(i, k) - pmfu(i, k+1)
115 paph(i,
klev+2-k) = paprs(i, k)
121 pap(i,
klev+1-k) = pplay(i, k)
122 zt(i,
klev+1-k) = pt(i, k)
123 zx(i,
klev+1-k) = x(i, k)
130 zmfux(i,
klev+1) = 0.0
139 IF (k>=kcbot(i))
THEN
141 zmfux(i, k) = pmfu(i, k)*xu(i, k)
143 zmfux(i, k) = (zmfux(i,k+1)+zpen_u(i,k)*zx(i,k))/ &
144 (1.+zpde_u(i,k)/max(zmfmin,pmfu(i,k)))
145 xu(i, k) = zmfux(i, k)/max(zmfmin, pmfu(i,k))
154 IF (k<=kdtop(i)-1)
THEN
155 xd(i, k) = (zx(i,k)+xu(i,k))/2.
156 zmfdx(i, k+1) = pmfd(i, k+1)*xd(i, k)
158 zmfdx(i, k+1) = (zmfdx(i,k)-zpen_d(i,k)*zx(i,k))/ &
159 (1.-zpde_d(i,k)/min(-zmfmin,pmfd(i,k+1)))
160 xd(i, k) = zmfdx(i, k+1)/min(-zmfmin, pmfd(i,k+1))
165 zmfdx(i,
klev+1) = 0.0
167 max(zmfmin, zpde_d(i,
klev))
174 IF (k<=kctop(i)-3)
THEN
176 zmfex(i, k+1) = -(pmfu(i,k+1)+pmfd(i,k+1))*xe(i, k)
178 zmfex(i, k+1) = (zmfex(i,k)-(zpde_u(i,k)*xu(i,k)+zpde_d(i,k)*xd(i, &
179 k)))/(1.-(zpen_d(i,k)+zpen_u(i,k))/min(-zmfmin,-pmfu(i,k+1)-pmfd(i, &
181 xe(i, k) = zmfex(i, k+1)/min(-zmfmin, -pmfu(i,k+1)-pmfd(i,k+1))
186 zmfex(i,
klev+1) = 0.0
195 dx(i,
klev+1-k) =
rg/(paph(i,k+1)-paph(i,k))*pdtime* &
196 (zmfux(i,k+1)-zmfux(i,k)+zmfdx(i,k+1)-zmfdx(i,k)+zmfex(i,k+1)- &
subroutine flxtr(pdtime, pmfu, pmfd, pen_u, pde_u, pen_d, pde_d, pt, pplay, paprs, kcbot, kctop, kdtop, x, dx)
!$Header!integer nvarmx parameter(nfmx=10, imx=200, jmx=150, lmx=200, nvarmx=1000) real xd(imx
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL ulevSTD CALL &zphi philevSTD CALL &zx_rh rhlevSTD!DO klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon du jour ou toutes les read_climoz CALL &zphi geo500!IM on interpole a chaque pas de temps le paprs
!$Header!c c INCLUDE fxyprim h c c c Fonctions in line c c REAL fyprim REAL rj c c il faut la calculer avant d appeler ces fonctions c c c Fonctions a changer selon x(x) et y(y) choisis.c-----------------------------------------------------------------c c.....ici