/[lmdze]/trunk/libf/bibio/inithist.f90
ViewVC logotype

Diff of /trunk/libf/bibio/inithist.f90

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 30 by guez, Thu Apr 1 09:07:28 2010 UTC revision 39 by guez, Tue Jan 25 15:11:05 2011 UTC
# Line 6  module inithist_m Line 6  module inithist_m
6    
7  contains  contains
8    
9    subroutine inithist(day0, anne0, tstep, nq, fileid, filevid, t_ops, &    subroutine inithist(day0, anne0, tstep, nq, fileid, filevid, t_ops, t_wrt)
        t_wrt)  
10    
11      ! From inithist.F,v 1.1.1.1 2004/05/19 12:53:05      ! From inithist.F, version 1.1.1.1 2004/05/19 12:53:05
12    
13      !   Routine d'initialisation des ecritures des fichiers histoires LMDZ      ! Routine d'initialisation des écritures des fichiers histoires LMDZ
14      !   au format IOIPSL      ! au format IOIPSL
15        ! Appels successifs des routines : histbeg, histhori, histver,
16        ! histdef, histend
17    
18        ! Entrées :
19        ! day0, anne0: date de référence
20        ! tstep : durée du pas de temps en secondes
21        ! t_ops : fréquence de l'opération pour IOIPSL
22        ! t_wrt : fréquence d'écriture sur le fichier
23        ! nq : nombre de traceurs
24    
25        ! Sorties :
26        ! fileid : ID du fichier Netcdf créé
27        ! filevid : ID du fichier Netcdf pour la grille v
28    
29      !   Appels succesifs des routines: histbeg      ! L. Fairhead, LMD, 03/99
     !                                  histhori  
     !                                  histver  
     !                                  histdef  
     !                                  histend  
   
     !   Entree:  
     !      day0,anne0: date de reference  
     !      tstep: duree du pas de temps en seconde  
     !      t_ops: frequence de l'operation pour IOIPSL  
     !      t_wrt: frequence d'ecriture sur le fichier  
     !      nq: nombre de traceurs  
   
     !   Sortie:  
     !      fileid: ID du fichier netcdf cree  
     !      filevid:ID du fichier netcdf pour la grille v  
   
     !   L. Fairhead, LMD, 03/99  
30    
31      USE calendar      USE calendar
32      use histcom      use histcom
# Line 45  contains Line 40  contains
40      use temps      use temps
41      use ener      use ener
42      use iniadvtrac_m      use iniadvtrac_m
43        use nr_util, only: pi
44    
45      !   Arguments      ! Arguments
46      integer day0, anne0      integer day0, anne0
47      real, intent(in):: tstep, t_ops, t_wrt      real, intent(in):: tstep, t_ops, t_wrt
48      integer fileid, filevid      integer fileid, filevid
49      integer nq      integer nq
50    
51      !   Variables locales      ! Variables locales
52      real zjulian      real zjulian
53      integer iq      integer iq
54      real rlong(iip1,jjp1), rlat(iip1,jjp1)      real rlong(iip1, jjp1), rlat(iip1, jjp1)
55      integer uhoriid, vhoriid, thoriid, zvertiid      integer uhoriid, vhoriid, thoriid, zvertiid
56      integer ii,jj      integer ii, jj
57      integer zan, dayref      integer zan, dayref
58    
59      !-----------------------------------------------------------------------      !-----------------------------------------------------------------------
60    
61      !  Initialisations      ! Appel a histbeg: creation du fichier netcdf et initialisations diverses
   
     pi = 4. * atan (1.)  
   
     !  Appel a histbeg: creation du fichier netcdf et initialisations diverses  
62    
63      zan = anne0      zan = anne0
64      dayref = day0      dayref = day0
# Line 74  contains Line 66  contains
66    
67      do jj = 1, jjp1      do jj = 1, jjp1
68         do ii = 1, iip1         do ii = 1, iip1
69            rlong(ii,jj) = rlonu(ii) * 180. / pi            rlong(ii, jj) = rlonu(ii) * 180. / pi
70            rlat(ii,jj) = rlatu(jj) * 180. / pi            rlat(ii, jj) = rlatu(jj) * 180. / pi
71         enddo         enddo
72      enddo      enddo
73    
74      call histbeg_totreg("dyn_hist.nc", rlong(:,1), rlat(1,:), &      call histbeg_totreg("dyn_hist.nc", rlong(:, 1), rlat(1, :), &
75           1, iip1, 1, jjp1, &           1, iip1, 1, jjp1, &
76           itau_dyn, zjulian, tstep, uhoriid, fileid)           itau_dyn, zjulian, tstep, uhoriid, fileid)
77      !      !
78      !  Creation du fichier histoire pour la grille en V (oblige pour l'instant,      ! Creation du fichier histoire pour la grille en V (oblige pour l'instant,
79      !  IOIPSL ne permet pas de grilles avec des nombres de point differents dans      ! IOIPSL ne permet pas de grilles avec des nombres de point differents dans
80      !  un meme fichier)      ! un meme fichier)
81    
82      do jj = 1, jjm      do jj = 1, jjm
83         do ii = 1, iip1         do ii = 1, iip1
84            rlong(ii,jj) = rlonv(ii) * 180. / pi            rlong(ii, jj) = rlonv(ii) * 180. / pi
85            rlat(ii,jj) = rlatv(jj) * 180. / pi            rlat(ii, jj) = rlatv(jj) * 180. / pi
86         enddo         enddo
87      enddo      enddo
88    
89      call histbeg_totreg('dyn_histv.nc', rlong(:,1), rlat(1,:jjm), &      call histbeg_totreg('dyn_histv.nc', rlong(:, 1), rlat(1, :jjm), &
90           1, iip1, 1, jjm, &           1, iip1, 1, jjm, &
91           itau_dyn, zjulian, tstep, vhoriid, filevid)           itau_dyn, zjulian, tstep, vhoriid, filevid)
92      !      !
93      !  Appel a histhori pour rajouter les autres grilles horizontales      ! Appel a histhori pour rajouter les autres grilles horizontales
94      !      !
95      do jj = 1, jjp1      do jj = 1, jjp1
96         do ii = 1, iip1         do ii = 1, iip1
97            rlong(ii,jj) = rlonv(ii) * 180. / pi            rlong(ii, jj) = rlonv(ii) * 180. / pi
98            rlat(ii,jj) = rlatu(jj) * 180. / pi            rlat(ii, jj) = rlatu(jj) * 180. / pi
99         enddo         enddo
100      enddo      enddo
101    
102      call histhori_regular(fileid, iip1, rlong, jjp1, rlat, 'scalar', &      call histhori_regular(fileid, iip1, rlong, jjp1, rlat, 'scalar', &
103           'Grille points scalaires', thoriid)           'Grille points scalaires', thoriid)
104      !      !
105      !  Appel a histvert pour la grille verticale      ! Appel a histvert pour la grille verticale
106      !      !
107      call histvert(fileid, 'sig_s', 'Niveaux sigma','-', &      call histvert(fileid, 'sig_s', 'Niveaux sigma', '-', &
108           llm, nivsigs, zvertiid)           llm, nivsigs, zvertiid)
109      ! Pour le fichier V      ! Pour le fichier V
110      call histvert(filevid, 'sig_s', 'Niveaux sigma','-', &      call histvert(filevid, 'sig_s', 'Niveaux sigma', '-', &
111           llm, nivsigs, zvertiid)           llm, nivsigs, zvertiid)
112      !      !
113      !  Appels a histdef pour la definition des variables a sauvegarder      ! Appels a histdef pour la definition des variables a sauvegarder
114      !      !
115      !  Vents U      ! Vents U
116      !      !
117      call histdef(fileid, 'ucov', 'vents u covariants', 'm/s', &      call histdef(fileid, 'ucov', 'vents u covariants', 'm/s', &
118           iip1, jjp1, uhoriid, llm, 1, llm, zvertiid, &           iip1, jjp1, uhoriid, llm, 1, llm, zvertiid, &
119           'inst(X)', t_ops, t_wrt)           'inst(X)', t_ops, t_wrt)
120      !      !
121      !  Vents V      ! Vents V
122      !      !
123      call histdef(filevid, 'vcov', 'vents v covariants', 'm/s', &      call histdef(filevid, 'vcov', 'vents v covariants', 'm/s', &
124           iip1, jjm, vhoriid, llm, 1, llm, zvertiid, &           iip1, jjm, vhoriid, llm, 1, llm, zvertiid, &
125           'inst(X)', t_ops, t_wrt)           'inst(X)', t_ops, t_wrt)
126    
127      !      !
128      !  Temperature potentielle      ! Temperature potentielle
129      !      !
130      call histdef(fileid, 'teta', 'temperature potentielle', '-', &      call histdef(fileid, 'teta', 'temperature potentielle', '-', &
131           iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &           iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &
132           'inst(X)', t_ops, t_wrt)           'inst(X)', t_ops, t_wrt)
133      !      !
134      !  Geopotentiel      ! Geopotentiel
135      !      !
136      call histdef(fileid, 'phi', 'geopotentiel instantane', '-', &      call histdef(fileid, 'phi', 'geopotentiel instantane', '-', &
137           iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &           iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &
138           'inst(X)', t_ops, t_wrt)           'inst(X)', t_ops, t_wrt)
139      !      !
140      !  Traceurs      ! Traceurs
141      !      !
142      DO iq=1,nq      DO iq=1, nq
143         call histdef(fileid, ttext(iq),  ttext(iq), '-', &         call histdef(fileid, ttext(iq), ttext(iq), '-', &
144              iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &              iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &
145              'inst(X)', t_ops, t_wrt)              'inst(X)', t_ops, t_wrt)
146      enddo      enddo
147      !      !
148      !  Masse      ! Masse
149      !      !
150      call histdef(fileid, 'masse', 'masse', 'kg', &      call histdef(fileid, 'masse', 'masse', 'kg', &
151           iip1, jjp1, thoriid, 1, 1, 1, -99, &           iip1, jjp1, thoriid, 1, 1, 1, -99, &
152           'inst(X)', t_ops, t_wrt)           'inst(X)', t_ops, t_wrt)
153      !      !
154      !  Pression au sol      ! Pression au sol
155      !      !
156      call histdef(fileid, 'ps', 'pression naturelle au sol', 'Pa', &      call histdef(fileid, 'ps', 'pression naturelle au sol', 'Pa', &
157           iip1, jjp1, thoriid, 1, 1, 1, -99, &           iip1, jjp1, thoriid, 1, 1, 1, -99, &
158           'inst(X)', t_ops, t_wrt)           'inst(X)', t_ops, t_wrt)
159      !      !
160      !  Pression au sol      ! Pression au sol
161      !      !
162      call histdef(fileid, 'phis', 'geopotentiel au sol', '-', &      call histdef(fileid, 'phis', 'geopotentiel au sol', '-', &
163           iip1, jjp1, thoriid, 1, 1, 1, -99, &           iip1, jjp1, thoriid, 1, 1, 1, -99, &
164           'inst(X)', t_ops, t_wrt)           'inst(X)', t_ops, t_wrt)
165      !      !
166      !  Fin      ! Fin
167      !      !
168      call histend(fileid)      call histend(fileid)
169      call histend(filevid)      call histend(filevid)

Legend:
Removed from v.30  
changed lines
  Added in v.39

  ViewVC Help
Powered by ViewVC 1.1.21