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

Last change on this file since 5282 was 5282, checked in by abarral, 6 hours ago

Turn iniprint.h clesphys.h into modules
Remove unused description.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 5282 2024-10-28 12:11:48Z abarral $
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, ONLY: iip1, iip2, iip3, jjp1, llmp1, llmp2, llmm1, kftd, ip1jm, ip1jmp1, &
17          ip1jmi1, ijp1llm, ijmllm, mvar, jcfil, jcfllm
18implicit 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  !   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
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
186
187
188end subroutine initdynav
Note: See TracBrowser for help on using the repository browser.