11 rlong =
rlonu * degres
12 rlatg =
rlatu * degres
14 CALL
histbeg("paramLMDZ_dyn.nc",
15 . iip1,rlong,
jjp1,rlatg,
18 . thoriid, nid_ctesGCM)
21 . "Niveau impression debuggage dynamique",
22 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
23 . "once", dt_cum,dt_cum)
25 CALL histdef(nid_ctesGCM, "
dayref",
26 . "Jour
de l etat initial ( = 350 si 20 Decembre par ex.)",
27 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
28 . "once", dt_cum,dt_cum)
30 CALL histdef(nid_ctesGCM, "
anneeref",
31 . "Annee
de l etat initial",
32 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
33 . "once", dt_cum,dt_cum)
35 CALL histdef(nid_ctesGCM, "anneelim",
37 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
38 . "once", dt_cum,dt_cum)
40 CALL histdef(nid_ctesGCM, "
raz_date",
41 . "Remise a
zero (raz) date init.: 0 pas
de raz;1=date
gcm.
def",
42 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
43 . "once", dt_cum,dt_cum)
45 CALL histdef(nid_ctesGCM, "
nday",
46 . "Nombre
de jours
d integration",
47 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
48 . "once", dt_cum,dt_cum)
50 CALL histdef(nid_ctesGCM, "
day_step",
51 . "nombre
de pas par jour pour
dt = 1 min",
52 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
53 . "once", dt_cum,dt_cum)
55 CALL histdef(nid_ctesGCM, "
iperiod",
56 . "periode pour le pas Matsuno (en pas
de temps)",
57 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
58 . "once", dt_cum,dt_cum)
61 . "frequence
du groupement des flux (en pas
de temps)",
62 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
63 . "once", dt_cum,dt_cum)
65 CALL histdef(nid_ctesGCM, "
iconser",
66 . "periode
de sortie des variables
de controle (en pas
de temps)",
67 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
68 . "once", dt_cum,dt_cum)
70 CALL histdef(nid_ctesGCM, "
iecri",
71 . "periode
d ecriture
du fichier histoire (en jour)",
72 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
73 . "once", dt_cum,dt_cum)
75 CALL histdef(nid_ctesGCM, "
periodav",
76 . "periode
de stockage
fichier histmoy (en jour)",
77 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
78 . "once", dt_cum,dt_cum)
81 . "periode
de la dissipation (en pas) ... a completer",
82 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
83 . "once", dt_cum,dt_cum)
85 CALL histdef(nid_ctesGCM, "lstardis",
86 . "choix
de l operateur
de dissipation: 1= star,0=non-star ??",
87 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
88 . "once", dt_cum,dt_cum)
91 . "nombre
d iterations
de l operateur
de dissipation
gradiv",
92 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
93 . "once", dt_cum,dt_cum)
96 . "nombre
d iterations
de l operateur
de dissipation nxgradrot",
97 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
98 . "once", dt_cum,dt_cum)
100 CALL histdef(nid_ctesGCM, "
niterh",
101 . "nombre
d iterations
de l operateur
de dissipation
divgrad",
102 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
103 . "once", dt_cum,dt_cum)
105 CALL histdef(nid_ctesGCM, "
tetagdiv",
106 ."temps dissipation des + petites
long.
d ondes pour
u,v (gradiv)",
107 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
108 . "once", dt_cum,dt_cum)
110 CALL histdef(nid_ctesGCM, "
tetagrot",
111 ."temps diss. des + petites
long.
d ondes pour u,v (nxgradrot)",
112 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
113 . "once", dt_cum,dt_cum)
115 CALL histdef(nid_ctesGCM, "
tetatemp",
116 ."temps diss. des + petites
long.
d ondes pour h (divgrad)",
117 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
118 . "once", dt_cum,dt_cum)
120 CALL histdef(nid_ctesGCM, "
coefdis",
121 ."coefficient pour gamdissip",
122 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
123 . "once", dt_cum,dt_cum)
125 CALL histdef(nid_ctesGCM, "
purmats",
126 ."Choix schema integration temporel: 1=Matsuno,0=Matsuno-
leapfrog",
127 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
128 . "once", dt_cum,dt_cum)
130 CALL histdef(nid_ctesGCM, "
ok_guide",
132 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
133 . "once", dt_cum,dt_cum)
135 CALL histdef(nid_ctesGCM, "true_calendar",
136 ."Choix
du calendrier",
137 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
138 . "once", dt_cum,dt_cum)
140 CALL histdef(nid_ctesGCM, "guide_calend",
141 ."Guidage calendrier gregorien: 1=oui ,0=non",
142 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
143 . "once", dt_cum,dt_cum)
146 ."Permet
de faire tourner le modele sans physique: 1=avec ,0=sans",
147 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
148 . "once", dt_cum,dt_cum)
150 CALL histdef(nid_ctesGCM, "
iphysiq",
151 ."Periode
de la physique en pas
de temps
de la dynamique",
152 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
153 . "once", dt_cum,dt_cum)
155 CALL histdef(nid_ctesGCM, "
clon",
157 . "deg",iip1,jjp1,thoriid, 1,1,1, -99, 32,
158 . "once", dt_cum,dt_cum)
160 CALL histdef(nid_ctesGCM, "
clat",
162 . "deg",iip1,jjp1,thoriid, 1,1,1, -99, 32,
163 . "once", dt_cum,dt_cum)
167 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
168 . "once", dt_cum,dt_cum)
172 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
173 . "once", dt_cum,dt_cum)
175 CALL histdef(nid_ctesGCM, "
fxyhypb",
176 ."Fonction
f(y) hyperbolique si true=1, sinusoidale si false=0",
177 . "-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
178 . "once", dt_cum,dt_cum)
180 CALL histdef(nid_ctesGCM, "
dzoomx",
181 ."extension en longitude
de la zone
du zoom (fraction zone totale)"
182 . ,"-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
183 . "once", dt_cum,dt_cum)
185 CALL histdef(nid_ctesGCM, "
dzoomy",
186 ."extension en latitude
de la zone
du zoom (fraction zone totale)"
187 . ,"-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
188 . "once", dt_cum,dt_cum)
190 CALL histdef(nid_ctesGCM, "
taux",
191 ."raideur
du zoom en X"
192 . ,"-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
193 . "once", dt_cum,dt_cum)
195 CALL histdef(nid_ctesGCM, "tauy",
196 ."raideur
du zoom en Y"
197 . ,"-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
198 . "once", dt_cum,dt_cum)
200 CALL histdef(nid_ctesGCM, "ysinus",
201 ."ysinus=1: Ftion
f(y) avec y=Sin(latit.)/ ysinus=0: y = latit"
202 . ,"-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
203 . "once", dt_cum,dt_cum)
206 ."PRINTlevel for energy conservation diag.; 0/1= pas
de print,
207 . 2= print","-",iip1,jjp1,thoriid, 1,1,1, -99, 32,
208 . "once", dt_cum,dt_cum)
210 c=================================================================
212 CALL histend(nid_ctesGCM)
214 c=================================================================
!$Header!c!c!c include serre h!c REAL dzoomy
integer, save iapp_tracvl
!$Header!c!c!c include serre h!c REAL && grossismx
!$Id zjulian!correction pour l heure initiale!jyg!jyg CALL ymds2ju(annee_ref, 1, day_ref, hour, zjulian)!jyg CALL histbeg_phy("histrac"
c c zjulian c cym CALL iim cym klev cym zjulian
type(fields_type), pointer f
c c $Id c c calculs statistiques distribution nuage ftion du regime dynamique c c Ce calcul doit etre fait a partir de valeurs mensuelles CALL nbregdyn DO kmaxm1 DO l
real, dimension(:), allocatable, save longitude
!$Header!c include clesph0 h c COMMON clesph0 ok_limitvrai
!$Header!c!c!c include serre h!c REAL clon
!$Id calend INTEGER itaufin INTEGER itau_phy INTEGER day_ref REAL dt
!$Id mode_top_bound COMMON comconstr && pi
!$Header!integer nvarmx s s s fichier
!$Header!CDK comgeom COMMON comgeom rlatu
!$Id ysinus ok_gradsfile hybrid COMMON logici iflag_phys
!$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
integer, save dissip_period
subroutine divgrad(klevel, h, lh, divgra)
!FH On elimine toutes les clefs physiques dans la dynamique prt_level
!$Header!CDK comgeom COMMON comgeom rlonu
!$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 u(l)
!$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
!$Id ysinus ok_gradsfile hybrid COMMON logici iflag_trac LOGICAL purmats
!$Header!c!c!c include serre h!c REAL dzoomx
!$Header!c!c!c include serre h!c REAL grossismy
!$Id mode_top_bound COMMON comconstr dtvr
subroutine gradiv(klevel, xcov, ycov, ld, gdx, gdy)
real, dimension(:,:), pointer, save du
!$Header!c!c!c include serre h!c REAL taux
!$Header!INCLUDE comdissip h COMMON comdissip tetatemp
subroutine leapfrog(ucov, vcov, teta, ps, masse, phis, q, time_0)
integer, save ip_ebil_dyn
!$Header!c!c!c include serre h!c REAL clat
!$Id pressure_exner real ap!hybrid pressure contribution at interlayers real bp!hybrid sigma contribution at interlayer real based on!preff and scaleheight integer disvert_type!type of vertical!automatic!using z2sig def(or 'esasig.def) file logical pressure_exner!compute pressure inside layers using Exner function
real(kind=8), dimension(2, 3), parameter d
c c zjulian c cym CALL iim cym klev iim cym jjmp1 cym On stoke le fichier bilKP instantanne s jmax_ins print On stoke le fichier bilKP instantanne s s cym cym nid_bilKPins ENDIF c cIM BEG c cIM cf AM BEG region cym CALL histbeg("histbilKP_ins", iim, zx_lon(:, 1), cym.jjmp1, zx_lat(1,:), cym.imin_ins, imax_ins-imin_ins+1, cym.jmin_ins, jmax_ins-jmin_ins+1, cym.itau_phy, zjulian, dtime, cym.nhori, nid_bilKPins) CALL histbeg_phy("histbilKP_ins"
!$Header!INCLUDE comdissip h COMMON comdissip coefdis
real, dimension(:), allocatable, save latitude