source: LMDZ6/trunk/libf/dyn3d_common/initdynav.f90 @ 5348

Last change on this file since 5348 was 5285, checked in by abarral, 5 weeks ago

As discussed internally, remove generic ONLY: ... for new _mod_h modules

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 5.1 KB
Line 
1! $Id: initdynav.f90 5285 2024-10-28 13:33:29Z fhourdin $
2
3subroutine initdynav(day0,anne0,tstep,t_ops,t_wrt)
4
5  USE iniprint_mod_h
6  USE comgeom_mod_h
7  USE IOIPSL
8  USE infotrac, ONLY : nqtot
9  use com_io_dyn_mod, only : histaveid,histvaveid,histuaveid, &
10       dynhistave_file,dynhistvave_file,dynhistuave_file
11  USE comconst_mod, ONLY: pi
12  USE comvert_mod, ONLY: presnivs
13  USE temps_mod, ONLY: itau_dyn
14
15  USE dimensions_mod, ONLY: iim, jjm, llm, ndm
16USE paramet_mod_h
17implicit none
18
19
20  !   Routine d'initialisation des ecritures des fichiers histoires LMDZ
21  !   au format IOIPSL. Initialisation du fichier histoire moyenne.
22
23  !   Appels succesifs des routines: histbeg
24  !                                  histhori
25  !                                  histver
26  !                                  histdef
27  !                                  histend
28
29  !   Entree:
30
31  !      infile: nom du fichier histoire a creer
32  !      day0,anne0: date de reference
33  !      tstep : frequence d'ecriture
34  !      t_ops: frequence de l'operation pour IOIPSL
35  !      t_wrt: frequence d'ecriture sur le fichier
36
37
38  !   L. Fairhead, LMD, 03/99
39
40
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, tracers(iq)%name, &
158  !                                  tracers(iq)%longName, '-',  &
159  !                  iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &
160  !                  32, 'ave(X)', t_ops, t_wrt)
161  !        enddo
162
163  !  Masse
164
165  call histdef(histaveid, 'masse', 'masse', 'kg', &
166       iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &
167       32, 'ave(X)', t_ops, t_wrt)
168
169  !  Pression au sol
170
171  call histdef(histaveid, 'ps', 'pression naturelle au sol', 'Pa', &
172       iip1, jjp1, thoriid, 1, 1, 1, -99, &
173       32, 'ave(X)', t_ops, t_wrt)
174
175  !  Geopotentiel au sol
176
177  !      call histdef(histaveid, 'phis', 'geopotentiel au sol', '-', &
178  !                  iip1, jjp1, thoriid, 1, 1, 1, -99, &
179  !                  32, 'ave(X)', t_ops, t_wrt)
180
181  call histend(histaveid)
182  call histend(histuaveid)
183  call histend(histvaveid)
184
185
186
187end subroutine initdynav
Note: See TracBrowser for help on using the repository browser.