source: LMDZ4/tags/pre-merge-2009-12/libf/bibio/inithist.F @ 1275

Last change on this file since 1275 was 1146, checked in by Laurent Fairhead, 15 years ago

Réintegration dans le tronc des modifications issues de la branche LMDZ-dev
comprises entre la révision 1074 et 1145
Validation: une simulation de 1 jour en séquentiel sur PC donne les mêmes
résultats entre la trunk et la dev
LF

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.9 KB
Line 
1!
2! $Header$
3!
4      subroutine inithist(infile,day0,anne0,tstep,t_ops,t_wrt,fileid,
5     .                    filevid)
6
7       USE IOIPSL
8       USE infotrac, ONLY : nqtot, ttext
9
10      implicit none
11
12C
13C   Routine d'initialisation des ecritures des fichiers histoires LMDZ
14C   au format IOIPSL
15C
16C   Appels succesifs des routines: histbeg
17C                                  histhori
18C                                  histver
19C                                  histdef
20C                                  histend
21C
22C   Entree:
23C
24C      infile: nom du fichier histoire a creer
25C      day0,anne0: date de reference
26C      tstep: duree du pas de temps en seconde
27C      t_ops: frequence de l'operation pour IOIPSL
28C      t_wrt: frequence d'ecriture sur le fichier
29C      nq: nombre de traceurs
30C
31C   Sortie:
32C      fileid: ID du fichier netcdf cree
33C      filevid:ID du fichier netcdf pour la grille v
34C
35C   L. Fairhead, LMD, 03/99
36C
37C =====================================================================
38C
39C   Declarations
40#include "dimensions.h"
41#include "paramet.h"
42#include "comconst.h"
43#include "comvert.h"
44#include "comgeom.h"
45#include "temps.h"
46#include "ener.h"
47#include "logic.h"
48#include "description.h"
49#include "serre.h"
50
51C   Arguments
52C
53      character*(*) infile
54      integer*4 day0, anne0
55      real tstep, t_ops, t_wrt
56      integer fileid, filevid
57
58C   Variables locales
59C
60      integer tau0
61      real zjulian
62      integer iq
63      real rlong(iip1,jjp1), rlat(iip1,jjp1)
64      integer uhoriid, vhoriid, thoriid, zvertiid
65      integer ii,jj
66      integer zan, dayref
67C
68C  Initialisations
69C
70      pi = 4. * atan (1.)
71C
72C  Appel a histbeg: creation du fichier netcdf et initialisations diverses
73C         
74
75      zan = anne0
76      dayref = day0
77      CALL ymds2ju(zan, 1, dayref, 0.0, zjulian)
78      tau0 = itau_dyn
79     
80      do jj = 1, jjp1
81        do ii = 1, iip1
82          rlong(ii,jj) = rlonu(ii) * 180. / pi
83          rlat(ii,jj) = rlatu(jj) * 180. / pi
84        enddo
85      enddo
86       
87      call histbeg(infile, iip1, rlong(:,1), jjp1, rlat(1,:),
88     .             1, iip1, 1, jjp1,
89     .             tau0, zjulian, tstep, uhoriid, fileid)
90C
91C  Creation du fichier histoire pour la grille en V (oblige pour l'instant,
92C  IOIPSL ne permet pas de grilles avec des nombres de point differents dans
93C  un meme fichier)
94
95      do jj = 1, jjm
96        do ii = 1, iip1
97          rlong(ii,jj) = rlonv(ii) * 180. / pi
98          rlat(ii,jj) = rlatv(jj) * 180. / pi
99        enddo
100      enddo
101
102      call histbeg('dyn_histv.nc', iip1, rlong(:,1), jjm, rlat(1,:),
103     .             1, iip1, 1, jjm,
104     .             tau0, zjulian, tstep, vhoriid, filevid)
105C
106C  Appel a histhori pour rajouter les autres grilles horizontales
107C
108      do jj = 1, jjp1
109        do ii = 1, iip1
110          rlong(ii,jj) = rlonv(ii) * 180. / pi
111          rlat(ii,jj) = rlatu(jj) * 180. / pi
112        enddo
113      enddo
114
115      call histhori(fileid, iip1, rlong, jjp1, rlat, 'scalar',
116     .              'Grille points scalaires', thoriid)
117C
118C  Appel a histvert pour la grille verticale
119C
120      call histvert(fileid, 'sig_s', 'Niveaux sigma','-',
121     .              llm, nivsigs, zvertiid)
122C Pour le fichier V
123      call histvert(filevid, 'sig_s', 'Niveaux sigma','-',
124     .              llm, nivsigs, zvertiid)
125C
126C  Appels a histdef pour la definition des variables a sauvegarder
127C
128C  Vents U
129C
130      call histdef(fileid, 'ucov', 'vents u covariants', 'm/s',
131     .             iip1, jjp1, uhoriid, llm, 1, llm, zvertiid,
132     .             32, 'inst(X)', t_ops, t_wrt)
133C
134C  Vents V
135C
136      call histdef(filevid, 'vcov', 'vents v covariants', 'm/s',
137     .             iip1, jjm, vhoriid, llm, 1, llm, zvertiid,
138     .             32, 'inst(X)', t_ops, t_wrt)
139
140C
141C  Temperature potentielle
142C
143      call histdef(fileid, 'teta', 'temperature potentielle', '-',
144     .             iip1, jjp1, thoriid, llm, 1, llm, zvertiid,
145     .             32, 'inst(X)', t_ops, t_wrt)
146C
147C  Geopotentiel
148C
149      call histdef(fileid, 'phi', 'geopotentiel instantane', '-',
150     .             iip1, jjp1, thoriid, llm, 1, llm, zvertiid,
151     .             32, 'inst(X)', t_ops, t_wrt)
152C
153C  Traceurs
154C
155        DO iq=1,nqtot
156          call histdef(fileid, ttext(iq),  ttext(iq), '-',
157     .             iip1, jjp1, thoriid, llm, 1, llm, zvertiid,
158     .             32, 'inst(X)', t_ops, t_wrt)
159        enddo
160C
161C  Masse
162C
163      call histdef(fileid, 'masse', 'masse', 'kg',
164     .             iip1, jjp1, thoriid, 1, 1, 1, -99,
165     .             32, 'inst(X)', t_ops, t_wrt)
166C
167C  Pression au sol
168C
169      call histdef(fileid, 'ps', 'pression naturelle au sol', 'Pa',
170     .             iip1, jjp1, thoriid, 1, 1, 1, -99,
171     .             32, 'inst(X)', t_ops, t_wrt)
172C
173C  Pression au sol
174C
175      call histdef(fileid, 'phis', 'geopotentiel au sol', '-',
176     .             iip1, jjp1, thoriid, 1, 1, 1, -99,
177     .             32, 'inst(X)', t_ops, t_wrt)
178C
179C  Fin
180C
181      call histend(fileid)
182      call histend(filevid)
183      return
184      end
Note: See TracBrowser for help on using the repository browser.