source: LMDZ4/trunk/libf/dyn3dpar/inithist_p.F @ 1114

Last change on this file since 1114 was 1000, checked in by Laurent Fairhead, 16 years ago
  • Modifs sur le parallelisme: masquage dans la physique
  • Inclusion strato
  • mise en coherence etat0
  • le mode offline fonctionne maintenant en parallele,
  • les fichiers de la dynamiques sont correctement sortis et peuvent etre reconstruit avec rebuild
  • la version parallele de la dynamique peut s'executer sans MPI (sur 1 proc)
  • L'OPENMP fonctionne maintenant sans la parallelisation MPI.

YM
LF

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 6.3 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
72
73! definition du domaine d'ecriture pour le rebuild
74
75      INTEGER,DIMENSION(2) :: ddid
76      INTEGER,DIMENSION(2) :: dsg
77      INTEGER,DIMENSION(2) :: dsl
78      INTEGER,DIMENSION(2) :: dpf
79      INTEGER,DIMENSION(2) :: dpl
80      INTEGER,DIMENSION(2) :: dhs
81      INTEGER,DIMENSION(2) :: dhe
82     
83      INTEGER :: dynu_domain_id
84      INTEGER :: dynv_domain_id
85C
86C  Initialisations
87C
88      if (adjust) return
89       
90      pi = 4. * atan (1.)
91C
92C  Appel a histbeg: creation du fichier netcdf et initialisations diverses
93C         
94
95      zan = anne0
96      dayref = day0
97      CALL ymds2ju(zan, 1, dayref, 0.0, zjulian)
98      tau0 = itau_dyn
99     
100      do jj = 1, jjp1
101        do ii = 1, iip1
102          rlong(ii,jj) = rlonu(ii) * 180. / pi
103          rlat(ii,jj) = rlatu(jj) * 180. / pi
104        enddo
105      enddo
106     
107      jjb=jj_begin
108      jje=jj_end
109      jjn=jj_nb
110
111
112      ddid=(/ 1,2 /)
113      dsg=(/ iip1,jjp1 /)
114      dsl=(/ iip1,jjn /)
115      dpf=(/ 1,jjb /)
116      dpl=(/ iip1,jje /)
117      dhs=(/ 0,0 /)
118      dhe=(/ 0,0 /)
119
120      call flio_dom_set(mpi_size,mpi_rank,ddid,dsg,dsl,dpf,dpl,dhs,dhe,
121     .                 'box',dynu_domain_id)
122     
123       call histbeg(trim(infile),iip1, rlong(:,1), jjn,
124     .              rlat(1,jjb:jje), 1, iip1, 1, jjn, tau0,
125     .              zjulian, tstep, uhoriid, fileid,dynu_domain_id)
126C
127C  Creation du fichier histoire pour la grille en V (oblige pour l'instant,
128C  IOIPSL ne permet pas de grilles avec des nombres de point differents dans
129C  un meme fichier)
130
131      do jj = 1, jjm
132        do ii = 1, iip1
133          rlong(ii,jj) = rlonv(ii) * 180. / pi
134          rlat(ii,jj) = rlatv(jj) * 180. / pi
135        enddo
136      enddo
137
138      jjb=jj_begin
139      jje=jj_end
140      jjn=jj_nb
141      if (pole_sud) jje=jj_end-1
142      if (pole_sud) jjn=jj_nb-1
143
144      ddid=(/ 1,2 /)
145      dsg=(/ iip1,jjm /)
146      dsl=(/ iip1,jjn /)
147      dpf=(/ 1,jjb /)
148      dpl=(/ iip1,jje /)
149      dhs=(/ 0,0 /)
150      dhe=(/ 0,0 /)
151
152      call flio_dom_set(mpi_size,mpi_rank,ddid,dsg,dsl,dpf,dpl,dhs,dhe,
153     .                 'box',dynv_domain_id)
154     
155      call histbeg('dyn_histv', iip1, rlong(:,1), jjn, rlat(1,jjb:jje),
156     .             1, iip1, 1, jjn, tau0, zjulian, tstep, vhoriid,
157     .             filevid,dynv_domain_id)
158C
159C  Appel a histhori pour rajouter les autres grilles horizontales
160C
161     
162      do jj = 1, jjp1
163        do ii = 1, iip1
164          rlong(ii,jj) = rlonv(ii) * 180. / pi
165          rlat(ii,jj) = rlatu(jj) * 180. / pi
166        enddo
167      enddo
168
169      jjb=jj_begin
170      jje=jj_end
171      jjn=jj_nb
172
173      call histhori(fileid, iip1, rlong(:,jjb:jje),jjn,rlat(:,jjb:jje),
174     .              'scalar','Grille points scalaires', thoriid)
175C
176C  Appel a histvert pour la grille verticale
177C
178      call histvert(fileid, 'sig_s', 'Niveaux sigma','-',
179     .              llm, nivsigs, zvertiid)
180C Pour le fichier V
181      call histvert(filevid, 'sig_s', 'Niveaux sigma','-',
182     .              llm, nivsigs, zvertiid)
183C
184C  Appels a histdef pour la definition des variables a sauvegarder
185C
186C  Vents U
187C
188      jjn=jj_nb
189
190      call histdef(fileid, 'ucov', 'vents u covariants', 'm/s',
191     .             iip1, jjn, uhoriid, llm, 1, llm, zvertiid,
192     .             32, 'inst(X)', t_ops, t_wrt)
193C
194C  Vents V
195C
196      if (pole_sud) jjn=jj_nb-1
197     
198      call histdef(filevid, 'vcov', 'vents v covariants', 'm/s',
199     .             iip1, jjn, vhoriid, llm, 1, llm, zvertiid,
200     .             32, 'inst(X)', t_ops, t_wrt)
201
202C
203C  Temperature potentielle
204C
205      jjn=jj_nb
206     
207      call histdef(fileid, 'teta', 'temperature potentielle', '-',
208     .             iip1, jjn, thoriid, llm, 1, llm, zvertiid,
209     .             32, 'inst(X)', t_ops, t_wrt)
210C
211C  Geopotentiel
212C
213      call histdef(fileid, 'phi', 'geopotentiel instantane', '-',
214     .             iip1, jjn, thoriid, llm, 1, llm, zvertiid,
215     .             32, 'inst(X)', t_ops, t_wrt)
216C
217C  Traceurs
218C
219        DO iq=1,nq
220          call histdef(fileid, ttext(iq),  ttext(iq), '-',
221     .             iip1, jjn, thoriid, llm, 1, llm, zvertiid,
222     .             32, 'inst(X)', t_ops, t_wrt)
223        enddo
224C
225C  Masse
226C
227      call histdef(fileid, 'masse', 'masse', 'kg',
228     .             iip1, jjn, thoriid, 1, 1, 1, -99,
229     .             32, 'inst(X)', t_ops, t_wrt)
230C
231C  Pression au sol
232C
233      call histdef(fileid, 'ps', 'pression naturelle au sol', 'Pa',
234     .             iip1, jjn, thoriid, 1, 1, 1, -99,
235     .             32, 'inst(X)', t_ops, t_wrt)
236C
237C  Pression au sol
238C
239      call histdef(fileid, 'phis', 'geopotentiel au sol', '-',
240     .             iip1, jjn, thoriid, 1, 1, 1, -99,
241     .             32, 'inst(X)', t_ops, t_wrt)
242C
243C  Fin
244C
245      call histend(fileid)
246      call histend(filevid)
247      return
248      end
Note: See TracBrowser for help on using the repository browser.