LMDZ
initdynav_loc.F
Go to the documentation of this file.
1 !
2 ! $Id: initdynav_p.F 1279 2009-12-10 09:02:56Z fairhead $
3 !
4  subroutine initdynav_loc(day0,anne0,tstep,t_ops,t_wrt)
5 
6 #ifdef CPP_IOIPSL
7 ! This routine needs IOIPSL
8  USE ioipsl
9 #endif
10  USE parallel_lmdz
11  use write_field
12  use misc_mod
13  USE infotrac
16  implicit none
17 
18 C
19 C Routine d'initialisation des ecritures des fichiers histoires LMDZ
20 C au format IOIPSL. Initialisation du fichier histoire moyenne.
21 C
22 C Appels succesifs des routines: histbeg
23 C histhori
24 C histver
25 C histdef
26 C histend
27 C
28 C Entree:
29 C
30 C day0,anne0: date de reference
31 C tstep : frequence d'ecriture
32 C t_ops: frequence de l'operation pour IOIPSL
33 C t_wrt: frequence d'ecriture sur le fichier
34 C
35 C Sortie:
36 C fileid: ID du fichier netcdf cree
37 C
38 C L. Fairhead, LMD, 03/99
39 C
40 C =====================================================================
41 C
42 C Declarations
43 #include "dimensions.h"
44 #include "paramet.h"
45 #include "comconst.h"
46 #include "comvert.h"
47 #include "comgeom.h"
48 #include "temps.h"
49 #include "ener.h"
50 #include "logic.h"
51 #include "description.h"
52 #include "serre.h"
53 #include "iniprint.h"
54 
55 C Arguments
56 C
57  integer*4 day0, anne0
58  real tstep, t_ops, t_wrt
59 
60 #ifdef CPP_IOIPSL
61 ! This routine needs IOIPSL
62 C Variables locales
63 C
64  integer tau0
65  real zjulian
66  integer iq
67  real rlong(iip1,jjp1), rlat(iip1,jjp1)
68  integer uhoriid, vhoriid, thoriid
69  integer zvertiid,zvertiidv,zvertiidu
70  integer ii,jj
71  integer zan, dayref
72  integer :: jjb,jje,jjn
73 
74 ! definition du domaine d'ecriture pour le rebuild
75 
76  INTEGER,DIMENSION(2) :: ddid
77  INTEGER,DIMENSION(2) :: dsg
78  INTEGER,DIMENSION(2) :: dsl
79  INTEGER,DIMENSION(2) :: dpf
80  INTEGER,DIMENSION(2) :: dpl
81  INTEGER,DIMENSION(2) :: dhs
82  INTEGER,DIMENSION(2) :: dhe
83 
84  INTEGER :: dynhistave_domain_id
85  INTEGER :: dynhistvave_domain_id
86  INTEGER :: dynhistuave_domain_id
87 
88  if (adjust) return
89 
90 C
91 C Initialisations
92 C
93  pi = 4. * atan(1.)
94 C
95 C Appel a histbeg: creation du fichier netcdf et initialisations diverses
96 C
97 
98  zan = anne0
99  dayref = day0
100  CALL ymds2ju(zan, 1, dayref, 0.0, zjulian)
101  tau0 = itau_dyn
102 
103  do jj = 1, jjp1
104  do ii = 1, iip1
105  rlong(ii,jj) = rlonv(ii) * 180. / pi
106  rlat(ii,jj) = rlatu(jj) * 180. / pi
107  enddo
108  enddo
109 
110 
111 ! Creation de 3 fichiers pour les differentes grilles horizontales
112 ! Restriction de IOIPSL: seulement 2 coordonnees dans le meme fichier
113 ! Grille Scalaire
114 
115  jjb=jj_begin
116  jje=jj_end
117  jjn=jj_nb
118 
119  ddid=(/ 1,2 /)
120  dsg=(/ iip1,jjp1 /)
121  dsl=(/ iip1,jjn /)
122  dpf=(/ 1,jjb /)
123  dpl=(/ iip1,jje /)
124  dhs=(/ 0,0 /)
125  dhe=(/ 0,0 /)
126 
127 
128  call flio_dom_set(mpi_size,mpi_rank,ddid,dsg,dsl,dpf,dpl,dhs,dhe,
129  . 'box',dynhistave_domain_id)
130 
131  call histbeg(dynhistave_file,iip1, rlong(:,1), jjn,
132  . rlat(1,jjb:jje), 1, iip1, 1, jjn,tau0,
133  . zjulian, tstep, thoriid,
134  . histaveid,dynhistave_domain_id)
135 
136 
137 C Creation du fichier histoire pour les grilles en V et U (oblige pour l'instant,
138 C IOIPSL ne permet pas de grilles avec des nombres de point differents dans
139 C un meme fichier)
140 ! Grille V
141 
142  jjb=jj_begin
143  jje=jj_end
144  jjn=jj_nb
145  IF (pole_sud) jjn=jjn-1
146  IF (pole_sud) jje=jje-1
147 
148  do jj = jjb, jje
149  do ii = 1, iip1
150  rlong(ii,jj) = rlonv(ii) * 180. / pi
151  rlat(ii,jj) = rlatv(jj) * 180. / pi
152  enddo
153  enddo
154 
155  ddid=(/ 1,2 /)
156  dsg=(/ iip1,jjp1 /)
157  dsl=(/ iip1,jjn /)
158  dpf=(/ 1,jjb /)
159  dpl=(/ iip1,jje /)
160  dhs=(/ 0,0 /)
161  dhe=(/ 0,0 /)
162 
163 
164  call flio_dom_set(mpi_size,mpi_rank,ddid,dsg,dsl,dpf,dpl,dhs,dhe,
165  . 'box',dynhistvave_domain_id)
166 
167  call histbeg(dynhistvave_file,iip1, rlong(:,1), jjn,
168  . rlat(1,jjb:jje), 1, iip1, 1, jjn,tau0,
169  . zjulian, tstep, vhoriid,
170  . histvaveid,dynhistvave_domain_id)
171 
172 ! Grille U
173 
174  jjb=jj_begin
175  jje=jj_end
176  jjn=jj_nb
177 
178  ddid=(/ 1,2 /)
179  dsg=(/ iip1,jjp1 /)
180  dsl=(/ iip1,jjn /)
181  dpf=(/ 1,jjb /)
182  dpl=(/ iip1,jje /)
183  dhs=(/ 0,0 /)
184  dhe=(/ 0,0 /)
185 
186 
187  call flio_dom_set(mpi_size,mpi_rank,ddid,dsg,dsl,dpf,dpl,dhs,dhe,
188  . 'box',dynhistuave_domain_id)
189 
190  call histbeg(dynhistuave_file,iip1, rlong(:,1), jjn,
191  . rlat(1,jjb:jje), 1, iip1, 1, jjn,tau0,
192  . zjulian, tstep, uhoriid,
193  . histuaveid,dynhistuave_domain_id)
194 
195 
196 C
197 C Appel a histvert pour la grille verticale
198 C
199  call histvert(histaveid,'presnivs','Niveaux Pression
200  & approximatifs','mb',llm, presnivs/100., zvertiid,'down')
201  call histvert(histuaveid,'presnivs','Niveaux Pression
202  & approximatifs','mb',llm, presnivs/100., zvertiidv,'down')
203  call histvert(histvaveid,'presnivs','Niveaux Pression
204  & approximatifs','mb',llm, presnivs/100., zvertiidu,'down')
205 
206 C
207 C Appels a histdef pour la definition des variables a sauvegarder
208 C
209 C Vents U
210 C
211  call histdef(histuaveid, 'u', 'vent u moyen ',
212  . 'm/s', iip1, jjp1, uhoriid, llm, 1, llm, zvertiidu,
213  . 32, 'ave(X)', t_ops, t_wrt)
214 
215 C
216 C Vents V
217 C
218  call histdef(histvaveid, 'v', 'vent v moyen',
219  . 'm/s', iip1, jjm, vhoriid, llm, 1, llm, zvertiidv,
220  . 32, 'ave(X)', t_ops, t_wrt)
221 
222 C
223 C Temperature
224 C
225  call histdef(histaveid, 'temp', 'temperature moyenne', 'K',
226  . iip1, jjp1, thoriid, llm, 1, llm, zvertiid,
227  . 32, 'ave(X)', t_ops, t_wrt)
228 C
229 C Temperature potentielle
230 C
231  call histdef(histaveid, 'theta', 'temperature potentielle', 'K',
232  . iip1, jjp1, thoriid, llm, 1, llm, zvertiid,
233  . 32, 'ave(X)', t_ops, t_wrt)
234 
235 
236 C
237 C Geopotentiel
238 C
239  call histdef(histaveid, 'phi', 'geopotentiel moyen', '-',
240  . iip1, jjp1, thoriid, llm, 1, llm, zvertiid,
241  . 32, 'ave(X)', t_ops, t_wrt)
242 C
243 C Traceurs
244 C
245 ! DO iq=1,nqtot
246 ! call histdef(histaveid, ttext(iq), ttext(iq), '-',
247 ! . iip1, jjn, thoriid, llm, 1, llm, zvertiid,
248 ! . 32, 'ave(X)', t_ops, t_wrt)
249 ! enddo
250 C
251 C Masse
252 C
253  call histdef(histaveid, 'masse', 'masse', 'kg',
254  . iip1, jjp1, thoriid, llm, 1, llm, zvertiid,
255  . 32, 'ave(X)', t_ops, t_wrt)
256 C
257 C Pression au sol
258 C
259  call histdef(histaveid, 'ps', 'pression naturelle au sol', 'Pa',
260  . iip1, jjp1, thoriid, 1, 1, 1, -99,
261  . 32, 'ave(X)', t_ops, t_wrt)
262 C
263 C Pression au sol
264 C
265 ! call histdef(histaveid, 'phis', 'geopotentiel au sol', '-',
266 ! . iip1, jjn, thoriid, 1, 1, 1, -99,
267 ! . 32, 'ave(X)', t_ops, t_wrt)
268 C
269 C Fin
270 C
271  call histend(histaveid)
272  call histend(histuaveid)
273  call histend(histvaveid)
274 #else
275  write(lunout,*)'initdynav_p: Needs IOIPSL to function'
276 #endif
277 ! #endif of #ifdef CPP_IOIPSL
278  return
279  end
!$Id && itau_dyn
Definition: temps.h:15
!$Id zjulian!correction pour l heure initiale!jyg!jyg CALL ymds2ju(annee_ref, 1, day_ref, hour, zjulian)!jyg CALL histbeg_phy("histrac"
integer, save mpi_rank
integer, save jj_end
integer, save mpi_size
integer, save jj_begin
logical, save pole_sud
!$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
Definition: comconst.h:7
!$Header!CDK comgeom COMMON comgeom rlatu
Definition: comgeom.h:25
character(len=18), parameter dynhistave_file
!$Id presnivs(llm)
!$Id zjulian!correction pour l heure initiale!jyg!jyg CALL nid_tra CALL histvert(nid_tra,"presnivs","Vertical levels","Pa", klev, presnivs, nvert,"down") zsto
!$Header jjp1
Definition: paramet.h:14
character(len=18), parameter dynhistuave_file
!$Header!CDK comgeom COMMON comgeom rlatv
Definition: comgeom.h:25
integer, save jj_nb
character(len=18), parameter dynhistvave_file
logical, save adjust
Definition: misc_mod.F90:3
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"
subroutine initdynav_loc(day0, anne0, tstep, t_ops, t_wrt)
Definition: initdynav_loc.F:5
!$Header!gestion des impressions de sorties et de débogage la sortie standard prt_level COMMON comprint lunout
Definition: iniprint.h:7
!$Header!CDK comgeom COMMON comgeom rlonv
Definition: comgeom.h:25