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

Last change on this file since 5135 was 5134, checked in by abarral, 5 months ago

Replace academic.h, alpale.h, comdissip.h, comdissipn.h, comdissnew.h by modules
Remove unused clesph0.h

  • 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 5134 2024-07-26 15:56:37Z 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
15  IMPLICIT NONE
16
17
18  !   Routine d'initialisation des ecritures des fichiers histoires LMDZ
19  !   au format IOIPSL. Initialisation du fichier histoire moyenne.
20
21  !   Appels succesifs des routines: histbeg
22  !                                  histhori
23  !                                  histver
24  !                                  histdef
25  !                                  histend
26
27  !   Entree:
28
29  !      infile: nom du fichier histoire a creer
30  !      day0,anne0: date de reference
31  !      tstep : frequence d'ecriture
32  !      t_ops: frequence de l'operation pour IOIPSL
33  !      t_wrt: frequence d'ecriture sur le fichier
34
35
36  !   L. Fairhead, LMD, 03/99
37
38  INCLUDE "dimensions.h"
39  INCLUDE "paramet.h"
40  INCLUDE "comgeom.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.