7 SUBROUTINE exner_hyb_p ( ngrid, ps, p, pks, pk, pkf )
36 include
"dimensions.h"
45 REAL,
optional:: pkf(ngrid,
llm)
46 REAL ps(ngrid),pks(ngrid)
47 REAL alpha(ngrid,
llm),beta(ngrid,
llm)
54 INTEGER ije,ijb,jje,jjb
55 logical,
save :: firstcall=.
true.
57 character(len=*),
parameter :: modname=
"exner_hyb_p"
65 "kappa!=1 , but running in Shallow Water mode!!",42)
69 "cpp!=r , but running in Shallow Water mode!!",42)
88 if (
present(pkf)) pkf(ij,1)=pk(ij,1)
93 if (
present(pkf))
then
105 unpl2k = 1.+ 2.*
kappa
129 beta(ij,
llm) = 1./ unpl2k
135 DO l =
llm -1 , 2 , -1
139 dellta = p(ij,l)* unpl2k + p(ij,l+1)* ( beta(ij,l+1)-unpl2k )
140 alpha(ij,l) = - p(ij,l+1) / dellta * alpha(ij,l+1)
141 beta(ij,l) = p(ij,l ) / dellta
151 pk(ij,1) = ( p(ij,1)*pks(ij) - 0.5*alpha(ij,2)*p(ij,2) ) / &
152 ( p(ij,1)* (1.+
kappa) + 0.5*( beta(ij,2)-unpl2k )* p(ij,2) )
161 pk(ij,l) = alpha(ij,l) + beta(ij,l) * pk(ij,l-1)
166 if (
present(pkf))
then
!$Id mode_top_bound COMMON comconstr r
!$Id mode_top_bound COMMON comconstr kappa
subroutine filtreg_p(champ, ibeg, iend, nlat, nbniv, ifiltre, iaire, griscal, iter)
subroutine abort_gcm(modname, message, ierr)
!$Id Turb_fcg_gcssold get_uvd hqturb_gcssold endif!large scale llm day day1 day day1 *dt_toga endif!time annee_ref dt_toga u_toga vq_toga w_prof vq_prof llm day day1 day day1 *dt_dice endif!time annee_ref dt_dice swup_dice vg_dice omega_dice tg_prof vg_profd w_profd omega_profd!do llm!print llm l llm
!$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 mode_top_bound COMMON comconstr cpp
!$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
subroutine exner_hyb_p(ngrid, ps, p, pks, pk, pkf)