source: LMDZ4/branches/V3_test/libf/dyn3dpar/inithist_p.F @ 1425

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

Versions parallèlisées des routines YM
LF

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