7 SUBROUTINE plevel_new(ilon, ilev, klevstd, lnew, pgcm, pres, qgcm, qpres)
16 USE wxios
, ONLY: missing_val
39 INTEGER ilon, ilev, klevstd
45 REAL qpres(ilon, klevstd)
54 INTEGER,
ALLOCATABLE,
SAVE,
DIMENSION (:, :) :: lt, lb
55 REAL,
ALLOCATABLE,
SAVE,
DIMENSION (:, :) :: aist, aisb
57 REAL,
SAVE :: ptop, pbot
59 LOGICAL,
SAVE :: first = .
true.
76 ALLOCATE (lt(
klon,klevstd), lb(
klon,klevstd))
77 ALLOCATE (aist(
klon,klevstd), aisb(
klon,klevstd))
95 IF (abs(pres(nlev)-pgcm(i,ilev))<abs(pres(nlev)-pgcm(i,1)))
THEN
97 lb(i, nlev) = ilev - 1
107 IF (ptop<=pres(nlev) .AND. pbot>=pres(nlev))
THEN
121 aist(i, nlev) = log(pgcm(i,lb(i,nlev))/pres(nlev))/log(pgcm(i,lb(i, &
122 nlev))/pgcm(i,lt(i,nlev)))
123 aisb(i, nlev) = log(pres(nlev)/pgcm(i,lt(i,nlev)))/log(pgcm(i,lb(i, &
124 nlev))/pgcm(i,lt(i,nlev)))
137 IF (pgcm(i,1)<pres(nlev))
THEN
138 qpres(i, nlev) = missing_val
140 qpres(i, nlev) = qgcm(i, lb(i,nlev))*aisb(i, nlev) + &
141 qgcm(i, lt(i,nlev))*aist(i, nlev)
!$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 plevel_new
real, parameter missing_val_nf90
!$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
!$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