source: LMDZ4/branches/IPSL-CM4_IPCC_patches/libf/bibio/inithist.F @ 5301

Last change on this file since 5301 was 524, checked in by lmdzadmin, 20 years ago

Initial revision

  • 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       USE histcom
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#include "advtrac.h"
51
52C   Arguments
53C
54      character*(*) infile
55      integer*4 day0, anne0
56      real tstep, t_ops, t_wrt
57      integer fileid, filevid
58      integer nq
59
60C   Variables locales
61C
62      integer tau0
63      real zjulian
64      integer iq
65      real rlong(iip1,jjp1), rlat(iip1,jjp1)
66      integer uhoriid, vhoriid, thoriid, zvertiid
67      integer ii,jj
68      integer zan, dayref
69C
70C  Initialisations
71C
72      pi = 4. * atan (1.)
73C
74C  Appel a histbeg: creation du fichier netcdf et initialisations diverses
75C         
76
77      zan = anne0
78      dayref = day0
79      CALL ymds2ju(zan, 1, dayref, 0.0, zjulian)
80      tau0 = itau_dyn
81     
82      do jj = 1, jjp1
83        do ii = 1, iip1
84          rlong(ii,jj) = rlonu(ii) * 180. / pi
85          rlat(ii,jj) = rlatu(jj) * 180. / pi
86        enddo
87      enddo
88       
89      call histbeg(infile, iip1, rlong(:,1), jjp1, rlat(1,:),
90     .             1, iip1, 1, jjp1,
91     .             tau0, zjulian, tstep, uhoriid, fileid)
92C
93C  Creation du fichier histoire pour la grille en V (oblige pour l'instant,
94C  IOIPSL ne permet pas de grilles avec des nombres de point differents dans
95C  un meme fichier)
96
97      do jj = 1, jjm
98        do ii = 1, iip1
99          rlong(ii,jj) = rlonv(ii) * 180. / pi
100          rlat(ii,jj) = rlatv(jj) * 180. / pi
101        enddo
102      enddo
103
104      call histbeg('dyn_histv.nc', iip1, rlong(:,1), jjm, rlat(1,:),
105     .             1, iip1, 1, jjm,
106     .             tau0, zjulian, tstep, vhoriid, filevid)
107C
108C  Appel a histhori pour rajouter les autres grilles horizontales
109C
110      do jj = 1, jjp1
111        do ii = 1, iip1
112          rlong(ii,jj) = rlonv(ii) * 180. / pi
113          rlat(ii,jj) = rlatu(jj) * 180. / pi
114        enddo
115      enddo
116
117      call histhori(fileid, iip1, rlong, jjp1, rlat, 'scalar',
118     .              'Grille points scalaires', thoriid)
119C
120C  Appel a histvert pour la grille verticale
121C
122      call histvert(fileid, 'sig_s', 'Niveaux sigma','-',
123     .              llm, nivsigs, zvertiid)
124C Pour le fichier V
125      call histvert(filevid, 'sig_s', 'Niveaux sigma','-',
126     .              llm, nivsigs, zvertiid)
127C
128C  Appels a histdef pour la definition des variables a sauvegarder
129C
130C  Vents U
131C
132      call histdef(fileid, 'ucov', 'vents u covariants', 'm/s',
133     .             iip1, jjp1, uhoriid, llm, 1, llm, zvertiid,
134     .             32, 'inst(X)', t_ops, t_wrt)
135C
136C  Vents V
137C
138      call histdef(filevid, 'vcov', 'vents v covariants', 'm/s',
139     .             iip1, jjm, vhoriid, llm, 1, llm, zvertiid,
140     .             32, 'inst(X)', t_ops, t_wrt)
141
142C
143C  Temperature potentielle
144C
145      call histdef(fileid, 'teta', 'temperature potentielle', '-',
146     .             iip1, jjp1, thoriid, llm, 1, llm, zvertiid,
147     .             32, 'inst(X)', t_ops, t_wrt)
148C
149C  Geopotentiel
150C
151      call histdef(fileid, 'phi', 'geopotentiel instantane', '-',
152     .             iip1, jjp1, thoriid, llm, 1, llm, zvertiid,
153     .             32, 'inst(X)', t_ops, t_wrt)
154C
155C  Traceurs
156C
157        DO iq=1,nq
158          call histdef(fileid, ttext(iq),  ttext(iq), '-',
159     .             iip1, jjp1, thoriid, llm, 1, llm, zvertiid,
160     .             32, 'inst(X)', t_ops, t_wrt)
161        enddo
162C
163C  Masse
164C
165      call histdef(fileid, 'masse', 'masse', 'kg',
166     .             iip1, jjp1, thoriid, 1, 1, 1, -99,
167     .             32, 'inst(X)', t_ops, t_wrt)
168C
169C  Pression au sol
170C
171      call histdef(fileid, 'ps', 'pression naturelle au sol', 'Pa',
172     .             iip1, jjp1, thoriid, 1, 1, 1, -99,
173     .             32, 'inst(X)', t_ops, t_wrt)
174C
175C  Pression au sol
176C
177      call histdef(fileid, 'phis', 'geopotentiel au sol', '-',
178     .             iip1, jjp1, thoriid, 1, 1, 1, -99,
179     .             32, 'inst(X)', t_ops, t_wrt)
180C
181C  Fin
182C
183      call histend(fileid)
184      call histend(filevid)
185      return
186      end
Note: See TracBrowser for help on using the repository browser.