4 SUBROUTINE limy(s0,sy,sm,pente_max)
18 #include "dimensions.h"
37 REAL airej2,airejjm,airescb(
iim),airesch(
iim)
42 REAL qpns,qpsn,appn,apps,dyn1,dys1,dyn2,dys2
43 Logical extremum,first
46 real convpn,convps,convmpn,convmps
47 real sinlon(iip1),sinlondlon(iip1)
48 real coslon(iip1),coslondlon(iip1)
49 save sinlon,coslon,sinlondlon,coslondlon
54 EXTERNAL ssum,
convflu,ismin,ismax
60 print*,
'SCHEMA AMONT NOUVEAU'
63 coslon(i)=cos(
rlonv(i))
64 sinlon(i)=sin(
rlonv(i))
68 coslon(1)=coslon(iip1)
69 coslondlon(1)=coslondlon(iip1)
70 sinlon(1)=sinlon(iip1)
71 sinlondlon(1)=sinlondlon(iip1)
79 q(ij,l) = s0(ij,l) / sm( ij,l )
80 dyq(ij) = sy(ij,l) / sm( ij,l )
94 airescb(i) =
aire(i+ iip1) * q(i+ iip1,l)
97 qpns = ssum(
iim, airescb ,1 ) / airej2
98 qpsn = ssum(
iim, airesch ,1 ) / airejjm
103 dyqv(ij)=q(ij,l)-q(ij+iip1,l)
104 adyqv(ij)=abs(dyqv(ij))
110 dyqmax(ij)=min(adyqv(ij-iip1),adyqv(ij))
111 dyqmax(ij)=pente_max*dyqmax(ij)
154 if(dyqv(ismin(
iim,dyqv,1))*dyqv(ismax(
iim,dyqv,1)).le.0.)
161 dyqmax(ij)=pente_max*abs(dyqv(ij))
173 dyqmax(ij)=pente_max*abs(dyqv(ij-iip1))
180 if(dyqv(ij)*dyqv(ij-iip1).gt.0.)
then
181 dyq(ij)=sign(min(abs(dyq(ij)),dyqmax(ij)),dyq(ij))
188 sy(ij,l) = dyq(ij) * sm( ij,l )
!$Header llmm1 INTEGER ip1jmp1
subroutine limy(s0, sy, sm, pente_max)
!$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
subroutine convflu(xflu, yflu, nbniv, convfl)
!$Header llmm1 INTEGER ip1jm
!$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
!$Header!CDK comgeom COMMON comgeom rlonu
!$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
subroutine filtreg(champ, nlat, nbniv, ifiltre, iaire, griscal, iter)
!$Header!CDK comgeom COMMON comgeom rlonv