source: LMDZ.3.3/trunk/libf/bibio/inithist.F @ 2

Last change on this file since 2 was 2, checked in by lmdz, 25 years ago

Initial revision

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 5.2 KB
Line 
1      subroutine inithist(infile,day0,anne0,tstep,t_ops,t_wrt,nq,fileid,
2     .                    filevid)
3
4       USE IOIPSL
5
6      implicit none
7
8C
9C   Routine d'initialisation des ecritures des fichiers histoires LMDZ
10C   au format IOIPSL
11C
12C   Appels succesifs des routines: histbeg
13C                                  histhori
14C                                  histver
15C                                  histdef
16C                                  histend
17C
18C   Entree:
19C
20C      infile: nom du fichier histoire a creer
21C      day0,anne0: date de reference
22C      tstep: duree du pas de temps en seconde
23C      t_ops: frequence de l'operation pour IOIPSL
24C      t_wrt: frequence d'ecriture sur le fichier
25C      nq: nombre de traceurs
26C
27C   Sortie:
28C      fileid: ID du fichier netcdf cree
29C      filevid:ID du fichier netcdf pour la grille v
30C
31C   L. Fairhead, LMD, 03/99
32C
33C =====================================================================
34C
35C   Declarations
36#include "dimensions.h"
37#include "paramet.h"
38#include "comconst.h"
39#include "comvert.h"
40#include "comgeom.h"
41#include "temps.h"
42#include "ener.h"
43#include "logic.h"
44#include "description.h"
45#include "serre.h"
46
47C   Arguments
48C
49      character*(*) infile
50      integer*4 day0, anne0
51      real tstep, t_ops, t_wrt
52      integer fileid, filevid
53      integer nq
54
55C   Variables locales
56C
57      integer tau0
58      real zjulian
59      character*3 str
60      character*10 ctrac
61      integer iq
62      real rlong(iip1,jjp1), rlat(iip1,jjp1)
63      integer uhoriid, vhoriid, thoriid, zvertiid
64      integer ii,jj
65      integer zan
66C
67C  Initialisations
68C
69      pi = 4. * atan (1.)
70      str='q  '
71      ctrac = 'traceur   '
72C
73C  Appel a histbeg: creation du fichier netcdf et initialisations diverses
74C         
75
76      zan = anne0
77      CALL ymds2ju(zan, 1, 1, 0.0, zjulian)
78      zjulian = zjulian + day0
79      tau0 = 0
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, jjp1, rlat,
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, jjm, rlat,
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      IF(nq.GE.1) THEN
157        DO iq=1,nq
158          IF ( iq.LE.9 ) THEN
159            WRITE(str(2:2),'(i1.1)') iq
160            write(ctrac(9:9),'(i1.1)') iq
161          ELSE
162            WRITE(str(2:3),'(i2.2)') iq
163            write(ctrac(9:10),'(i2.2)') iq
164          ENDIF
165          call histdef(fileid, str, ctrac, '-',
166     .             iip1, jjp1, thoriid, llm, 1, llm, zvertiid,
167     .             32, 'inst(X)', t_ops, t_wrt)
168        enddo
169      endif
170C
171C  Masse
172C
173      call histdef(fileid, 'masse', 'masse', 'kg',
174     .             iip1, jjp1, thoriid, 1, 1, 1, -99,
175     .             32, 'inst(X)', t_ops, t_wrt)
176C
177C  Pression au sol
178C
179      call histdef(fileid, 'ps', 'pression naturelle au sol', 'Pa',
180     .             iip1, jjp1, thoriid, 1, 1, 1, -99,
181     .             32, 'inst(X)', t_ops, t_wrt)
182C
183C  Pression au sol
184C
185      call histdef(fileid, 'phis', 'geopotentiel au sol', '-',
186     .             iip1, jjp1, thoriid, 1, 1, 1, -99,
187     .             32, 'inst(X)', t_ops, t_wrt)
188C
189C  Fin
190C
191      call histend(fileid)
192      call histend(filevid)
193      return
194      end
Note: See TracBrowser for help on using the repository browser.