source: LMDZ4/trunk/libf/bibio/inithist.F @ 900

Last change on this file since 900 was 761, checked in by Laurent Fairhead, 18 years ago

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