LMDZ
initdynav.F90
Go to the documentation of this file.
1 ! $Id: initdynav.F90 2239 2015-03-23 07:27:30Z emillour $
2 
3 subroutine initdynav(day0,anne0,tstep,t_ops,t_wrt)
4 
5 #ifdef CPP_IOIPSL
6  USE ioipsl
7 #endif
8  USE infotrac, ONLY : nqtot, ttext
11  implicit none
12 
13 
14  ! Routine d'initialisation des ecritures des fichiers histoires LMDZ
15  ! au format IOIPSL. Initialisation du fichier histoire moyenne.
16 
17  ! Appels succesifs des routines: histbeg
18  ! histhori
19  ! histver
20  ! histdef
21  ! histend
22 
23  ! Entree:
24 
25  ! infile: nom du fichier histoire a creer
26  ! day0,anne0: date de reference
27  ! tstep : frequence d'ecriture
28  ! t_ops: frequence de l'operation pour IOIPSL
29  ! t_wrt: frequence d'ecriture sur le fichier
30 
31 
32  ! L. Fairhead, LMD, 03/99
33 
34  include "dimensions.h"
35  include "paramet.h"
36  include "comconst.h"
37  include "comvert.h"
38  include "comgeom.h"
39  include "temps.h"
40  include "ener.h"
41  include "logic.h"
42  include "description.h"
43  include "serre.h"
44  include "iniprint.h"
45 
46  ! Arguments
47 
48  integer day0, anne0
49  real tstep, t_ops, t_wrt
50 
51 #ifdef CPP_IOIPSL
52  ! This routine needs IOIPSL to work
53  ! Variables locales
54 
55  integer tau0
56  real zjulian
57  integer iq
58  real rlong(iip1,jjp1), rlat(iip1,jjp1)
59  integer uhoriid, vhoriid, thoriid, zvertiid
60  integer ii,jj
61  integer zan, dayref
62 
63  !--------------------------------------------------------------------
64 
65  ! Initialisations
66 
67  pi = 4. * atan(1.)
68 
69  ! Appel a histbeg: creation du fichier netcdf et initialisations diverses
70 
71 
72  zan = anne0
73  dayref = day0
74  CALL ymds2ju(zan, 1, dayref, 0.0, zjulian)
75  tau0 = itau_dyn
76 
77  do jj = 1, jjp1
78  do ii = 1, iip1
79  rlong(ii,jj) = rlonv(ii) * 180. / pi
80  rlat(ii,jj) = rlatu(jj) * 180. / pi
81  enddo
82  enddo
83 
84  ! Creation de 3 fichiers pour les differentes grilles horizontales
85  ! Restriction de IOIPSL: seulement 2 coordonnees dans le meme fichier
86  ! Grille Scalaire
87  call histbeg(dynhistave_file, iip1, rlong(:,1), jjp1, rlat(1,:), &
88  1, iip1, 1, jjp1, &
89  tau0, zjulian, tstep, thoriid,histaveid)
90 
91  ! Creation du fichier histoire pour les grilles en V et U (oblige
92  ! pour l'instant, IOIPSL ne permet pas de grilles avec des nombres
93  ! de point differents dans un meme fichier)
94  ! Grille V
95  do jj = 1, jjm
96  do ii = 1, iip1
97  rlong(ii,jj) = rlonv(ii) * 180. / pi
98  rlat(ii,jj) = rlatv(jj) * 180. / pi
99  enddo
100  enddo
101 
102  call histbeg(dynhistvave_file, iip1, rlong(:,1), jjm, rlat(1,:), &
103  1, iip1, 1, jjm, &
104  tau0, zjulian, tstep, vhoriid,histvaveid)
105  ! Grille U
106  do jj = 1, jjp1
107  do ii = 1, iip1
108  rlong(ii,jj) = rlonu(ii) * 180. / pi
109  rlat(ii,jj) = rlatu(jj) * 180. / pi
110  enddo
111  enddo
112 
113  call histbeg(dynhistuave_file, iip1, rlong(:,1),jjp1, rlat(1,:), &
114  1, iip1, 1, jjp1, &
115  tau0, zjulian, tstep, uhoriid,histuaveid)
116 
117  ! Appel a histvert pour la grille verticale
118 
119  call histvert(histaveid,'presnivs','Niveaux Pression approximatifs','mb', &
120  llm, presnivs/100., zvertiid,'down')
121  call histvert(histuaveid,'presnivs','Niveaux Pression approximatifs','mb', &
122  llm, presnivs/100., zvertiid,'down')
123  call histvert(histvaveid,'presnivs','Niveaux Pression approximatifs','mb', &
124  llm, presnivs/100., zvertiid,'down')
125 
126  ! Appels a histdef pour la definition des variables a sauvegarder
127 
128  ! Vents U
129 
130  call histdef(histuaveid, 'u', 'vent u moyen ', &
131  'm/s', iip1, jjp1, uhoriid, llm, 1, llm, zvertiid, &
132  32, 'ave(X)', t_ops, t_wrt)
133 
134  ! Vents V
135 
136  call histdef(histvaveid, 'v', 'vent v moyen', &
137  'm/s', iip1, jjm, vhoriid, llm, 1, llm, zvertiid, &
138  32, 'ave(X)', t_ops, t_wrt)
139 
140 
141  ! Temperature
142 
143  call histdef(histaveid, 'temp', 'temperature moyenne', 'K', &
144  iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &
145  32, 'ave(X)', t_ops, t_wrt)
146 
147  ! Temperature potentielle
148 
149  call histdef(histaveid, 'theta', 'temperature potentielle', 'K', &
150  iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &
151  32, 'ave(X)', t_ops, t_wrt)
152 
153  ! Geopotentiel
154 
155  call histdef(histaveid, 'phi', 'geopotentiel moyen', '-', &
156  iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &
157  32, 'ave(X)', t_ops, t_wrt)
158 
159  ! Traceurs
160 
161  ! DO iq=1,nqtot
162  ! call histdef(histaveid, ttext(iq), ttext(iq), '-', &
163  ! iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &
164  ! 32, 'ave(X)', t_ops, t_wrt)
165  ! enddo
166 
167  ! Masse
168 
169  call histdef(histaveid, 'masse', 'masse', 'kg', &
170  iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &
171  32, 'ave(X)', t_ops, t_wrt)
172 
173  ! Pression au sol
174 
175  call histdef(histaveid, 'ps', 'pression naturelle au sol', 'Pa', &
176  iip1, jjp1, thoriid, 1, 1, 1, -99, &
177  32, 'ave(X)', t_ops, t_wrt)
178 
179  ! Geopotentiel au sol
180 
181  ! call histdef(histaveid, 'phis', 'geopotentiel au sol', '-', &
182  ! iip1, jjp1, thoriid, 1, 1, 1, -99, &
183  ! 32, 'ave(X)', t_ops, t_wrt)
184 
185  call histend(histaveid)
186  call histend(histuaveid)
187  call histend(histvaveid)
188 #else
189  write(lunout,*)"initdynav: Warning this routine should not be", &
190  " used without ioipsl"
191 #endif
192  ! of #ifdef CPP_IOIPSL
193 
194 end subroutine initdynav
!$Id && itau_dyn
Definition: temps.h:15
character(len=23), dimension(:), allocatable, save ttext
Definition: infotrac.F90:19
!$Id zjulian!correction pour l heure initiale!jyg!jyg CALL ymds2ju(annee_ref, 1, day_ref, hour, zjulian)!jyg CALL histbeg_phy("histrac"
!$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)
integer, save nqtot
Definition: infotrac.F90:6
!$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 rlonu
Definition: comgeom.h:25
!$Header!CDK comgeom COMMON comgeom rlatv
Definition: comgeom.h:25
character(len=18), parameter dynhistvave_file
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(day0, anne0, tstep, t_ops, t_wrt)
Definition: initdynav.F90:4
!$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