/[lmdze]/trunk/Sources/dyn3d/inithist.f
ViewVC logotype

Diff of /trunk/Sources/dyn3d/inithist.f

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

trunk/libf/bibio/inithist.f90 revision 57 by guez, Mon Jan 30 12:54:02 2012 UTC trunk/bibio/inithist.f revision 129 by guez, Fri Feb 13 18:22:38 2015 UTC
# Line 4  module inithist_m Line 4  module inithist_m
4    
5  contains  contains
6    
7    subroutine inithist(day0, anne0, tstep, nq, t_ops, t_wrt)    subroutine inithist(tstep, nq, t_ops, t_wrt)
8    
9      ! From inithist.F, version 1.1.1.1 2004/05/19 12:53:05      ! From inithist.F, version 1.1.1.1 2004/05/19 12:53:05
   
     ! Routine d'initialisation des écritures des fichiers histoires LMDZ  
     ! au format IOIPSL  
     ! Appels successifs des routines : histbeg, histhori, histver,  
     ! histdef, histend  
   
     ! Entrées :  
     ! day0, anne0: date de référence  
     ! tstep : durée du pas de temps en secondes  
     ! t_ops : fréquence de l'opération pour IOIPSL  
     ! t_wrt : fréquence d'écriture sur le fichier  
     ! nq : nombre de traceurs  
   
10      ! L. Fairhead, LMD, 03/99      ! L. Fairhead, LMD, 03/99
11    
12      USE calendar      ! Routine d'initialisation des écritures des fichiers histoires
13      use com_io_dyn, only: histid, histvid, histuid      ! LMDZ au format IOIPSL.
14      use histcom  
15      use dimens_m      USE comgeom, ONLY: rlatu, rlatv, rlonu, rlonv
16      use paramet_m      USE com_io_dyn, ONLY: histid, histuid, histvid
17      use comconst      USE dimens_m, ONLY: jjm, llm
18      use comvert      USE disvert_m, ONLY: presnivs
19      use comgeom      use dynetat0_m, only: day_ref, annee_ref
20      use serre      USE histbeg_totreg_m, ONLY : histbeg_totreg
21      use temps      USE histdef_m, ONLY : histdef
22      use ener      USE histend_m, ONLY : histend
23      use iniadvtrac_m      USE histvert_m, ONLY : histvert
24      use nr_util, only: pi      USE iniadvtrac_m, ONLY: ttext
25        USE nr_util, ONLY: pi
26      ! Arguments      USE paramet_m, ONLY: iip1, jjp1
27      integer day0, anne0      USE temps, ONLY: itau_dyn
28      real, intent(in):: tstep, t_ops, t_wrt      USE ymds2ju_m, ONLY: ymds2ju
29      integer nq  
30        real, intent(in):: tstep ! durée du pas de temps en secondes
31        integer, intent(in):: nq ! nombre de traceurs
32        real, intent(in):: t_ops ! fréquence de l'opération pour IOIPSL
33        real, intent(in):: t_wrt ! fréquence d'écriture sur le fichier
34    
35      ! Variables locales      ! Variables locales:
36      real zjulian      real zjulian
37      integer iq      integer iq
38      real rlong(iip1, jjp1), rlat(iip1, jjp1)      real rlong(iip1, jjp1), rlat(iip1, jjp1)
39      integer uhoriid, vhoriid, thoriid, zvertiid      integer uhoriid, vhoriid, thoriid, zvertiid
40      integer ii, jj      integer ii, jj
     integer zan, dayref  
41    
42      !-----------------------------------------------------------------------      !-----------------------------------------------------------------------
43    
44      ! Appel a histbeg: creation du fichier netcdf et initialisations diverses      CALL ymds2ju(annee_ref, 1, day_ref, 0.0, zjulian)
   
     zan = anne0  
     dayref = day0  
     CALL ymds2ju(zan, 1, dayref, 0.0, zjulian)  
45    
46      do jj = 1, jjp1      do jj = 1, jjp1
47         do ii = 1, iip1         do ii = 1, iip1
# Line 78  contains Line 64  contains
64      ! 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
65      ! un meme fichier)      ! un meme fichier)
66    
67      call histbeg_totreg('dyn_histv.nc', rlong(:, 1), rlat(1, :jjm), &      call histbeg_totreg('dyn_histv.nc', rlong(:, 1), rlat(1, :jjm), 1, iip1, &
68           1, iip1, 1, jjm, &           1, jjm, itau_dyn, zjulian, tstep, vhoriid, histvid)
69           itau_dyn, zjulian, tstep, vhoriid, histvid)  
     !  
     ! Appel a histhori pour rajouter les autres grilles horizontales  
     !  
70      do jj = 1, jjp1      do jj = 1, jjp1
71         do ii = 1, iip1         do ii = 1, iip1
72            rlong(ii, jj) = rlonv(ii) * 180. / pi            rlong(ii, jj) = rlonv(ii) * 180. / pi
# Line 93  contains Line 76  contains
76    
77      call histbeg_totreg("dyn_hist.nc", rlong(:, 1), rlat(1, :), 1, iip1, 1, &      call histbeg_totreg("dyn_hist.nc", rlong(:, 1), rlat(1, :), 1, iip1, 1, &
78           jjp1, itau_dyn, zjulian, tstep, thoriid, histid)           jjp1, itau_dyn, zjulian, tstep, thoriid, histid)
79      !  
80      ! Appel a histvert pour la grille verticale      ! Appel a histvert pour la grille verticale
81      !  
82        call histvert(histid, 'presnivs', 'Niveaux pression','mb', llm, &      call histvert(histid, 'presnivs', 'Niveaux pression','mb', presnivs/100., &
83             presnivs/100., zvertiid,'down')           zvertiid,'down')
84        call histvert(histvid, 'presnivs', 'Niveaux pression','mb', llm, &      call histvert(histvid, 'presnivs', 'Niveaux pression','mb', &
85             presnivs/100., zvertiid,'down')           presnivs/100., zvertiid,'down')
86        call histvert(histuid, 'presnivs', 'Niveaux pression','mb', llm, &      call histvert(histuid, 'presnivs', 'Niveaux pression','mb', &
87             presnivs/100., zvertiid,'down')           presnivs/100., zvertiid,'down')
88      !  
89      ! Appels a histdef pour la definition des variables a sauvegarder      ! Appels a histdef pour la definition des variables a sauvegarder
90      !  
91      ! Vents U      call histdef(histuid, 'u', 'vent u', 'm/s', iip1, jjp1, uhoriid, llm, 1, &
92      !           llm, zvertiid, 'inst(X)', t_ops, t_wrt)
93      call histdef(histuid, 'u', 'vent u', 'm/s', &      call histdef(histvid, 'v', 'vent v', 'm/s', iip1, jjm, vhoriid, llm, 1, &
94           iip1, jjp1, uhoriid, llm, 1, llm, zvertiid, &           llm, zvertiid, 'inst(X)', t_ops, t_wrt)
95           'inst(X)', t_ops, t_wrt)      call histdef(histid, 'teta', 'temperature potentielle', '-', iip1, jjp1, &
96      !           thoriid, llm, 1, llm, zvertiid, 'inst(X)', t_ops, t_wrt)
97      ! Vents V      call histdef(histid, 'phi', 'geopotentiel', '-', iip1, jjp1, thoriid, &
98      !           llm, 1, llm, zvertiid, 'inst(X)', t_ops, t_wrt)
99      call histdef(histvid, 'v', 'vent v', 'm/s', &  
          iip1, jjm, vhoriid, llm, 1, llm, zvertiid, &  
          'inst(X)', t_ops, t_wrt)  
   
     !  
     ! Temperature potentielle  
     !  
     call histdef(histid, 'teta', 'temperature potentielle', '-', &  
          iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &  
          'inst(X)', t_ops, t_wrt)  
     !  
     ! Geopotentiel  
     !  
     call histdef(histid, 'phi', 'geopotentiel', '-', &  
          iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &  
          'inst(X)', t_ops, t_wrt)  
     !  
100      ! Traceurs      ! Traceurs
     !  
101      DO iq=1, nq      DO iq=1, nq
102         call histdef(histid, ttext(iq), ttext(iq), '-', &         call histdef(histid, ttext(iq), ttext(iq), '-', iip1, jjp1, thoriid, &
103              iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &              llm, 1, llm, zvertiid, 'inst(X)', t_ops, t_wrt)
             'inst(X)', t_ops, t_wrt)  
104      enddo      enddo
105      !  
106      ! Masse      call histdef(histid, 'masse', 'masse', 'kg', iip1, jjp1, thoriid, llm, 1, &
107      !           llm, zvertiid, 'inst(X)', t_ops, t_wrt)
108      call histdef(histid, 'masse', 'masse', 'kg', &      call histdef(histid, 'ps', 'pression naturelle au sol', 'Pa', iip1, jjp1, &
109           iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &           thoriid, 1, 1, 1, -99, 'inst(X)', t_ops, t_wrt)
110           'inst(X)', t_ops, t_wrt)      call histdef(histid, 'phis', 'geopotentiel au sol', '-', iip1, jjp1, &
111      !           thoriid, 1, 1, 1, -99, 'inst(X)', t_ops, t_wrt)
112      ! Pression au sol  
     !  
     call histdef(histid, 'ps', 'pression naturelle au sol', 'Pa', &  
          iip1, jjp1, thoriid, 1, 1, 1, -99, &  
          'inst(X)', t_ops, t_wrt)  
     !  
     ! Geopotentiel au sol  
     !  
     call histdef(histid, 'phis', 'geopotentiel au sol', '-', &  
          iip1, jjp1, thoriid, 1, 1, 1, -99, &  
          'inst(X)', t_ops, t_wrt)  
     !  
     ! Fin  
     !  
113      call histend(histid)      call histend(histid)
114      call histend(histuid)      call histend(histuid)
115      call histend(histvid)      call histend(histvid)

Legend:
Removed from v.57  
changed lines
  Added in v.129

  ViewVC Help
Powered by ViewVC 1.1.21