source: trunk/LMDZ.COMMON/libf/dyn3dpar/initdynav_p.F @ 3537

Last change on this file since 3537 was 1422, checked in by milmd, 10 years ago

In GENERIC, MARS and COMMON models replace some include files by modules (usefull for decoupling physics with dynamics).

File size: 5.0 KB
Line 
1!
2! $Id: initdynav_p.F 1279 2009-12-10 09:02:56Z fairhead $
3!
4      subroutine initdynav_p(infile,day0,anne0,tstep,t_ops,t_wrt,fileid)
5
6#ifdef CPP_IOIPSL
7! This routine needs IOIPSL
8       USE IOIPSL
9#endif
10       use parallel_lmdz
11       use Write_field
12       use misc_mod
13       USE infotrac
14       USE comvert_mod, ONLY: nivsigs
15       USE comconst_mod, ONLY: pi
16       USE temps_mod, ONLY: itau_dyn
17
18      implicit none
19
20C
21C   Routine d'initialisation des ecritures des fichiers histoires LMDZ
22C   au format IOIPSL. Initialisation du fichier histoire moyenne.
23C
24C   Appels succesifs des routines: histbeg
25C                                  histhori
26C                                  histver
27C                                  histdef
28C                                  histend
29C
30C   Entree:
31C
32C      infile: nom du fichier histoire a creer
33C      day0,anne0: date de reference
34C      tstep : frequence d'ecriture
35C      t_ops: frequence de l'operation pour IOIPSL
36C      t_wrt: frequence d'ecriture sur le fichier
37C
38C   Sortie:
39C      fileid: ID du fichier netcdf cree
40C
41C   L. Fairhead, LMD, 03/99
42C
43C =====================================================================
44C
45C   Declarations
46#include "dimensions.h"
47#include "paramet.h"
48#include "comgeom.h"
49#include "iniprint.h"
50
51C   Arguments
52C
53      character*(*) infile
54      integer*4 day0, anne0
55      real tstep, t_ops, t_wrt
56      integer fileid
57
58#ifdef CPP_IOIPSL
59! This routine needs IOIPSL
60C   Variables locales
61C
62      integer thoriid, zvertiid
63      integer tau0
64      real zjulian
65      integer iq
66      real rlong(iip1,jjp1), rlat(iip1,jjp1)
67      integer ii,jj
68      integer zan, dayref
69      integer :: jjb,jje,jjn
70
71! definition du domaine d'ecriture pour le rebuild
72
73      INTEGER,DIMENSION(2) :: ddid
74      INTEGER,DIMENSION(2) :: dsg
75      INTEGER,DIMENSION(2) :: dsl
76      INTEGER,DIMENSION(2) :: dpf
77      INTEGER,DIMENSION(2) :: dpl
78      INTEGER,DIMENSION(2) :: dhs
79      INTEGER,DIMENSION(2) :: dhe
80     
81      INTEGER :: dynave_domain_id
82     
83      if (adjust) return
84C
85C  Initialisations
86C
87      pi = 4. * atan (1.)
88C
89C  Appel a histbeg: creation du fichier netcdf et initialisations diverses
90C         
91
92      zan = anne0
93      dayref = day0
94      CALL ymds2ju(zan, 1, dayref, 0.0, zjulian)
95      tau0 = itau_dyn
96     
97      do jj = 1, jjp1
98        do ii = 1, iip1
99          rlong(ii,jj) = rlonv(ii) * 180. / pi
100          rlat(ii,jj)  = rlatu(jj) * 180. / pi
101        enddo
102      enddo
103
104      jjb=jj_begin
105      jje=jj_end
106      jjn=jj_nb
107
108      ddid=(/ 1,2 /)
109      dsg=(/ iip1,jjp1 /)
110      dsl=(/ iip1,jjn /)
111      dpf=(/ 1,jjb /)
112      dpl=(/ iip1,jje /)
113      dhs=(/ 0,0 /)
114      dhe=(/ 0,0 /)
115
116      call flio_dom_set(mpi_size,mpi_rank,ddid,dsg,dsl,dpf,dpl,dhs,dhe,
117     .                 'box',dynave_domain_id)
118             
119      call histbeg(trim(infile),iip1, rlong(:,1), jjn, rlat(1,jjb:jje),
120     .             1, iip1, 1, jjn,tau0, zjulian, tstep, thoriid,
121     .             fileid,dynave_domain_id)
122
123C
124C  Appel a histvert pour la grille verticale
125C
126      call histvert(fileid, 'sigss', 'Niveaux sigma','Pa',
127     .              llm, nivsigs, zvertiid)
128C
129C  Appels a histdef pour la definition des variables a sauvegarder
130C
131C  Vents U
132C
133      write(6,*)'inithistave',tstep
134      call histdef(fileid, 'u', 'vents u scalaires moyennes',
135     .             'm/s', iip1, jjn, thoriid, llm, 1, llm, zvertiid,
136     .             32, 'ave(X)', t_ops, t_wrt)
137
138C
139C  Vents V
140C
141      call histdef(fileid, 'v', 'vents v scalaires moyennes',
142     .             'm/s', iip1, jjn, thoriid, llm, 1, llm, zvertiid,
143     .             32, 'ave(X)', t_ops, t_wrt)
144
145C
146C  Temperature
147C
148      call histdef(fileid, 'temp', 'temperature moyennee', 'K',
149     .             iip1, jjn, thoriid, llm, 1, llm, zvertiid,
150     .             32, 'ave(X)', t_ops, t_wrt)
151C
152C  Temperature potentielle
153C
154      call histdef(fileid, 'theta', 'temperature potentielle', 'K',
155     .             iip1, jjn, thoriid, llm, 1, llm, zvertiid,
156     .             32, 'ave(X)', t_ops, t_wrt)
157
158
159C
160C  Geopotentiel
161C
162      call histdef(fileid, 'phi', 'geopotentiel moyenne', '-',
163     .             iip1, jjn, thoriid, llm, 1, llm, zvertiid,
164     .             32, 'ave(X)', t_ops, t_wrt)
165C
166C  Traceurs
167C
168        DO iq=1,nqtot
169          call histdef(fileid, ttext(iq), ttext(iq), '-',
170     .             iip1, jjn, thoriid, llm, 1, llm, zvertiid,
171     .             32, 'ave(X)', t_ops, t_wrt)
172        enddo
173C
174C  Masse
175C
176      call histdef(fileid, 'masse', 'masse', 'kg',
177     .             iip1, jjn, thoriid, 1, 1, 1, -99,
178     .             32, 'ave(X)', t_ops, t_wrt)
179C
180C  Pression au sol
181C
182      call histdef(fileid, 'ps', 'pression naturelle au sol', 'Pa',
183     .             iip1, jjn, thoriid, 1, 1, 1, -99,
184     .             32, 'ave(X)', t_ops, t_wrt)
185C
186C  Pression au sol
187C
188      call histdef(fileid, 'phis', 'geopotentiel au sol', '-',
189     .             iip1, jjn, thoriid, 1, 1, 1, -99,
190     .             32, 'ave(X)', t_ops, t_wrt)
191C
192C  Fin
193C
194      call histend(fileid)
195#else
196      write(lunout,*)'initdynav_p: Needs IOIPSL to function'
197#endif
198! #endif of #ifdef CPP_IOIPSL
199      return
200      end
Note: See TracBrowser for help on using the repository browser.