4 SUBROUTINE ajsec(paprs, pplay, t, q, limbas, d_t, d_q)
21 INTEGER limbas(
klon), limhau
33 LOGICAL modif(
klon), down
50 zpk(i, k) = pplay(i, k)**rkappa
51 zh(i, k) = rcpd*t(i, k)/zpk(i, k)
59 zpkdp(i, k) = zpk(i, k)*(paprs(i,k)-paprs(i,k+1))
68 IF (.NOT. modif(i) .AND. k-1>limbas(i))
THEN
69 IF (zh(i,k)<zh(i,k-1)) modif(i) = .
true.
79 IF (k2>limhau)
GO TO 8001
80 IF (zh(i,k2)<zh(i,k2-1))
THEN
88 hm = hm + zpkdp(i, k)*(zh(i,k)-hm)/sm
89 qm = qm + zpkdp(i, k)*(zq(i,k)-qm)/sm
91 IF (k1/=limbas(i))
THEN
92 IF (hm<zh(i,k1-1)) down = .
true.
98 IF ((k2==limhau))
GO TO 8021
99 IF ((zh(i,k2+1)>=hm))
GO TO 8021
119 d_t(i, k) = (zh(i,k)-zho(i,k))*zpk(i, k)/rcpd
120 d_q(i, k) = zq(i, k) - q(i, k)
173 INTEGER limbas, limhau
186 LOGICAL modif(
klon), down
202 DO k = limbas, limhau
204 zpk(i, k) = pplay(i, k)**rkappa
205 zh(i, k) = rcpd*t(i, k)/zpk(i, k)
210 DO k = limbas, limhau
212 zpkdp(i, k) = zpk(i, k)*(paprs(i,k)-paprs(i,k+1))
219 DO k = limbas + 1, limhau
221 IF (.NOT. modif(i))
THEN
222 IF (zh(i,k)<zh(i,k-1)) modif(i) = .
true.
232 IF (k2>limhau)
GO TO 8001
233 IF (zh(i,k2)<zh(i,k2-1))
THEN
240 sm = sm + zpkdp(i, k)
241 hm = hm + zpkdp(i, k)*(zh(i,k)-hm)/sm
242 qm = qm + zpkdp(i, k)*(zq(i,k)-qm)/sm
245 IF (hm<zh(i,k1-1)) down = .
true.
251 IF ((k2==limhau))
GO TO 8021
252 IF ((zh(i,k2+1)>=hm))
GO TO 8021
270 DO k = limbas, limhau
272 d_t(i, k) = zh(i, k)*zpk(i, k)/rcpd - t(i, k)
273 d_q(i, k) = zq(i, k) - q(i, k)
286 IF (limhau<
klev)
THEN
287 DO k = limhau + 1,
klev
305 SUBROUTINE ajsec_old(paprs, pplay, t, d_t)
324 LOGICAL modif(
klon), down
333 local_h(i, l) = rcpd*t(i, l)/(pplay(i,l)**rkappa)
339 IF (local_h(i,l)<local_h(i,l-1))
THEN
352 IF (l2>
klev)
GO TO 8001
353 IF (local_h(i,l2)<local_h(i,l2-1))
THEN
356 sm = pplay(i, l2)**rkappa*(paprs(i,l2)-paprs(i,l2+1))
359 sm = sm + pplay(i, l)**rkappa*(paprs(i,l)-paprs(i,l+1))
360 hm = hm + pplay(i, l)**rkappa*(paprs(i,l)-paprs(i,l+1))*(local_h(i,l) &
364 IF (hm<local_h(i,l1-1))
THEN
372 IF ((l2==
klev))
GO TO 8021
373 IF ((local_h(i,l2+1)>=hm))
GO TO 8021
392 d_t(i, l) = local_h(i, l)*(pplay(i,l)**rkappa)/rcpd - t(i, l)
subroutine ajsec_old(paprs, pplay, t, d_t)
subroutine ajsec(paprs, pplay, t, q, limbas, d_t, d_q)
!$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 false
subroutine ajsec_convv2(paprs, pplay, t, q, d_t, d_q)
!$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 true