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