GCC Code Coverage Report


Directory: ./
File: dyn3d_common/initdynav.f90
Date: 2022-01-11 19:19:34
Exec Total Coverage
Lines: 0 35 0.0%
Branches: 0 24 0.0%

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