5 $ ( nq,vcovm1,ucovm1,tetam1,psm1,massem1,
6 $ dv,du,dteta,
dq,dp,vcov,ucov,teta,q,ps0,masse,
phis)
27 #include "dimensions.h"
40 integer,
intent(in) :: nq
41 real,
intent(inout) :: vcov(
ip1jm,
llm)
45 real,
intent(inout) :: ps0(
ip1jmp1)
47 real,
intent(in) :: phis(
ip1jmp1)
49 real,
intent(inout) :: vcovm1(
ip1jm,
llm)
52 real,
intent(inout) :: psm1(
ip1jmp1)
69 REAL tpn,tps,tppn(
iim),tpps(
iim)
70 REAL qpn,qps,qppn(
iim),qpps(
iim)
77 INTEGER ijb,ije,jjb,jje
98 ucov( ij +
ip1jm, l) = 0.
99 uscr( ij +
ip1jm ) = 0.
113 massescr(ijb:ije,l)=masse(ijb:ije,l)
120 ps(ij) = psm1(ij) +
dt * dp(ij)
131 IF( ps(ij).LT.0. )
THEN
132 IF (checksum) stop_it=ij
138 IF( .NOT. checksum )
THEN
139 write(
lunout,*)
"integrd: ps = ", ps(stop_it)
140 write(
lunout,*)
" at node ij =", stop_it
142 j=modulo(stop_it,
jjp1)
145 &
" lat = ",
rlatu(j)*180./
pi,
" deg"
146 call abort_gcm(
"integrd_p",
"negative surface pressure", 1)
154 tppn(ij) =
aire( ij ) * ps( ij )
212 uscr( ij ) = ucov( ij,l )
213 ucov( ij,l ) = ucovm1( ij,l ) +
dt * du( ij,l )
221 vscr( ij ) = vcov( ij,l )
222 vcov( ij,l ) = vcovm1( ij,l ) +
dt * dv( ij,l )
229 hscr( ij ) = teta(ij,l)
230 teta( ij,l ) = tetam1(ij,l) * massem1(ij,l) / masse(ij,l)
231 $ +
dt * dteta(ij,l) / masse(ij,l)
240 tppn(ij) =
aire( ij ) * teta( ij ,l)
258 teta(ij+
ip1jm,l) = tps
270 ucovm1(ijb:ije,l)=uscr(ijb:ije)
271 tetam1(ijb:ije,l)=hscr(ijb:ije)
273 vcovm1(ijb:ije,l)=vscr(ijb:ije)
292 deltap(ij,l) = p(ij,l) - p(ij,l+1)
311 qppn(ij) =
aire( ij ) * q( ij ,l,iq)
339 q(ij+
ip1jm,l,iq) = qps
386 massem1(ijb:ije,l)=massescr(ijb:ije,l)
!$Header llmm1 INTEGER ip1jmp1
!$Header!CDK comgeom COMMON comgeom apols
subroutine massdair_p(p, masse)
subroutine qminimum_p(q, nq, deltap)
do llm!au dessus on relaxe vers profil init!on fait l hypothese que dans ce il n y a plus d eau liq au dessus!donc la relaxation en thetal et qt devient relaxation en tempe et qv l dq1 relax dq(l, 1)
!$Id calend INTEGER itaufin INTEGER itau_phy INTEGER day_ref REAL dt
character(len=10), save planet_type
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 mode_top_bound COMMON comconstr && pi
!$Header!CDK comgeom COMMON comgeom aire
!$Header!CDK comgeom COMMON comgeom rlatu
subroutine pression_p(ngrid, ap, bp, ps, p)
!$Header llmm1 INTEGER ip1jm
!$Header!CDK comgeom COMMON comgeom apoln
!$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 ***************************************!ECRITURE DU phis
!$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
c c zjulian c cym CALL iim cym klev iim
!$Header!gestion des impressions de sorties et de débogage la sortie standard prt_level COMMON comprint lunout
subroutine integrd_p(nq, vcovm1, ucovm1, tetam1, psm1, massem1, dv, du, dteta, dq, dp, vcov, ucov, teta, q, ps0, masse, phis)
!$Header!CDK comgeom COMMON comgeom rlonv