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

Last change on this file since 5186 was 5182, checked in by abarral, 10 days ago

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