source: LMDZ6/branches/Amaury_dev/libf/dyn3d_common/initdynav.F90 @ 5295

Last change on this file since 5295 was 5195, checked in by abarral, 7 weeks ago

Correct r5192, some lmdz_description cases were missing

  • 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.2 KB
Line 
1! $Id: initdynav.F90 5195 2024-09-16 13:18:00Z abarral $
2
3SUBROUTINE initdynav(day0, anne0, tstep, t_ops, t_wrt)
4
5  USE IOIPSL
6  USE lmdz_infotrac, ONLY: nqtot
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  USE lmdz_iniprint, ONLY: lunout, prt_level
13  USE lmdz_comgeom
14
15  USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
16  USE lmdz_paramet
17  IMPLICIT 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
43  !   Arguments
44
45  INTEGER day0, anne0
46  REAL tstep, t_ops, t_wrt
47
48  ! This routine needs IOIPSL to work
49  !   Variables locales
50
51  INTEGER tau0
52  REAL zjulian
53  INTEGER iq
54  REAL rlong(iip1, jjp1), rlat(iip1, jjp1)
55  INTEGER uhoriid, vhoriid, thoriid, zvertiid
56  INTEGER ii, jj
57  INTEGER zan, dayref
58
59  !--------------------------------------------------------------------
60
61  !  Initialisations
62
63  pi = 4. * atan (1.)
64
65  !  Appel a histbeg: creation du fichier netcdf et initialisations diverses
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
185END SUBROUTINE  initdynav
Note: See TracBrowser for help on using the repository browser.