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

Last change on this file since 5136 was 5136, checked in by abarral, 3 months ago

Put comgeom.h, comgeom2.h into 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 5136 2024-07-28 14:17:54Z abarral $
2
3SUBROUTINE initdynav(day0, anne0, tstep, t_ops, t_wrt)
4
5  USE IOIPSL
6  USE 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  IMPLICIT NONE
17
18
19  !   Routine d'initialisation des ecritures des fichiers histoires LMDZ
20  !   au format IOIPSL. Initialisation du fichier histoire moyenne.
21
22  !   Appels succesifs des routines: histbeg
23  !                                  histhori
24  !                                  histver
25  !                                  histdef
26  !                                  histend
27
28  !   Entree:
29
30  !      infile: nom du fichier histoire a creer
31  !      day0,anne0: date de reference
32  !      tstep : frequence d'ecriture
33  !      t_ops: frequence de l'operation pour IOIPSL
34  !      t_wrt: frequence d'ecriture sur le fichier
35
36
37  !   L. Fairhead, LMD, 03/99
38
39  INCLUDE "dimensions.h"
40  INCLUDE "paramet.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  zan = anne0
67  dayref = day0
68  CALL ymds2ju(zan, 1, dayref, 0.0, zjulian)
69  tau0 = itau_dyn
70
71  do jj = 1, jjp1
72    do ii = 1, iip1
73      rlong(ii, jj) = rlonv(ii) * 180. / pi
74      rlat(ii, jj) = rlatu(jj) * 180. / pi
75    enddo
76  enddo
77
78  ! Creation de 3 fichiers pour les differentes grilles horizontales
79  ! Restriction de IOIPSL: seulement 2 coordonnees dans le meme fichier
80  ! Grille Scalaire
81  CALL histbeg(dynhistave_file, iip1, rlong(:, 1), jjp1, rlat(1, :), &
82          1, iip1, 1, jjp1, &
83          tau0, zjulian, tstep, thoriid, histaveid)
84
85  ! Creation du fichier histoire pour les grilles en V et U (oblige
86  ! pour l'instant, IOIPSL ne permet pas de grilles avec des nombres
87  ! de point differents dans  un meme fichier)
88  ! Grille V
89  do jj = 1, jjm
90    do ii = 1, iip1
91      rlong(ii, jj) = rlonv(ii) * 180. / pi
92      rlat(ii, jj) = rlatv(jj) * 180. / pi
93    enddo
94  enddo
95
96  CALL histbeg(dynhistvave_file, iip1, rlong(:, 1), jjm, rlat(1, :), &
97          1, iip1, 1, jjm, &
98          tau0, zjulian, tstep, vhoriid, histvaveid)
99  ! Grille U
100  do jj = 1, jjp1
101    do ii = 1, iip1
102      rlong(ii, jj) = rlonu(ii) * 180. / pi
103      rlat(ii, jj) = rlatu(jj) * 180. / pi
104    enddo
105  enddo
106
107  CALL histbeg(dynhistuave_file, iip1, rlong(:, 1), jjp1, rlat(1, :), &
108          1, iip1, 1, jjp1, &
109          tau0, zjulian, tstep, uhoriid, histuaveid)
110
111  !  Appel a histvert pour la grille verticale
112
113  CALL histvert(histaveid, 'presnivs', 'Niveaux Pression approximatifs', 'mb', &
114          llm, presnivs / 100., zvertiid, 'down')
115  CALL histvert(histuaveid, 'presnivs', 'Niveaux Pression approximatifs', 'mb', &
116          llm, presnivs / 100., zvertiid, 'down')
117  CALL histvert(histvaveid, 'presnivs', 'Niveaux Pression approximatifs', 'mb', &
118          llm, presnivs / 100., zvertiid, 'down')
119
120  !  Appels a histdef pour la definition des variables a sauvegarder
121
122  !  Vents U
123
124  CALL histdef(histuaveid, 'u', 'vent u moyen ', &
125          'm/s', iip1, jjp1, uhoriid, llm, 1, llm, zvertiid, &
126          32, 'ave(X)', t_ops, t_wrt)
127
128  !  Vents V
129
130  CALL histdef(histvaveid, 'v', 'vent v moyen', &
131          'm/s', iip1, jjm, vhoriid, llm, 1, llm, zvertiid, &
132          32, 'ave(X)', t_ops, t_wrt)
133
134
135  !  Temperature
136
137  CALL histdef(histaveid, 'temp', 'temperature moyenne', 'K', &
138          iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &
139          32, 'ave(X)', t_ops, t_wrt)
140
141  !  Temperature potentielle
142
143  CALL histdef(histaveid, 'theta', 'temperature potentielle', 'K', &
144          iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &
145          32, 'ave(X)', t_ops, t_wrt)
146
147  !  Geopotentiel
148
149  CALL histdef(histaveid, 'phi', 'geopotentiel moyen', '-', &
150          iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &
151          32, 'ave(X)', t_ops, t_wrt)
152
153  !  Traceurs
154
155  !        DO iq=1,nqtot
156  !          CALL histdef(histaveid, tracers(iq)%name, &
157  !                                  tracers(iq)%longName, '-',  &
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
184END SUBROUTINE  initdynav
Note: See TracBrowser for help on using the repository browser.