/[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 52 by guez, Fri Sep 23 12:28:01 2011 UTC trunk/Sources/dyn3d/inithist.f revision 212 by guez, Thu Jan 12 12:31:31 2017 UTC
# Line 2  module inithist_m Line 2  module inithist_m
2    
3    implicit none    implicit none
4    
5      integer histid, histvid, histuid
6    
7  contains  contains
8    
9    subroutine inithist(day0, anne0, tstep, nq, fileid, filevid, t_ops, t_wrt)    subroutine inithist(tstep, nq, t_ops, t_wrt)
10    
11      ! 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  
   
     ! Sorties :  
     ! fileid : ID du fichier Netcdf créé  
     ! filevid : ID du fichier Netcdf pour la grille v  
   
12      ! L. Fairhead, LMD, 03/99      ! L. Fairhead, LMD, 03/99
13    
14      USE calendar      ! Routine d'initialisation des écritures des fichiers histoires
15      use histcom      ! LMDZ au format IOIPSL.
     use dimens_m  
     use paramet_m  
     use comconst  
     use comvert  
     use logic  
     use comgeom  
     use serre  
     use temps  
     use ener  
     use iniadvtrac_m  
     use nr_util, only: pi  
   
     ! Arguments  
     integer day0, anne0  
     real, intent(in):: tstep, t_ops, t_wrt  
     integer fileid, filevid  
     integer nq  
16    
17      ! Variables locales      USE dimens_m, ONLY: jjm, llm
18        USE disvert_m, ONLY: presnivs
19        use dynetat0_m, only: day_ref, annee_ref, rlatu, rlatv, rlonu, rlonv
20        USE histbeg_totreg_m, ONLY : histbeg_totreg
21        USE histdef_m, ONLY : histdef
22        USE histend_m, ONLY : histend
23        USE histvert_m, ONLY : histvert
24        USE iniadvtrac_m, ONLY: ttext
25        USE nr_util, ONLY: pi
26        USE paramet_m, ONLY: iip1, jjp1
27        USE temps, ONLY: itau_dyn
28        USE ymds2ju_m, ONLY: ymds2ju
29    
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:
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 69  contains Line 50  contains
50         enddo         enddo
51      enddo      enddo
52    
53      call histbeg_totreg("dyn_hist.nc", rlong(:, 1), rlat(1, :), &      call histbeg_totreg("dyn_histu.nc", rlong(:,1), rlat(1,:), 1, iip1, 1, &
54           1, iip1, 1, jjp1, &           jjp1, itau_dyn, zjulian, tstep, uhoriid, histuid)
          itau_dyn, zjulian, tstep, uhoriid, fileid)  
     !  
     ! Creation du fichier histoire pour la grille en V (oblige pour l'instant,  
     ! IOIPSL ne permet pas de grilles avec des nombres de point differents dans  
     ! un meme fichier)  
55    
56      do jj = 1, jjm      do jj = 1, jjm
57         do ii = 1, iip1         do ii = 1, iip1
# Line 84  contains Line 60  contains
60         enddo         enddo
61      enddo      enddo
62    
63      call histbeg_totreg('dyn_histv.nc', rlong(:, 1), rlat(1, :jjm), &      ! Creation du fichier histoire pour la grille en V (oblige pour l'instant,
64           1, iip1, 1, jjm, &      ! IOIPSL ne permet pas de grilles avec des nombres de point differents dans
65           itau_dyn, zjulian, tstep, vhoriid, filevid)      ! un meme fichier)
66      !  
67      ! Appel a histhori pour rajouter les autres grilles horizontales      call histbeg_totreg('dyn_histv.nc', rlong(:, 1), rlat(1, :jjm), 1, iip1, &
68      !           1, jjm, itau_dyn, zjulian, tstep, vhoriid, histvid)
69    
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 97  contains Line 74  contains
74         enddo         enddo
75      enddo      enddo
76    
77      call histhori_regular(fileid, iip1, rlong, jjp1, rlat, 'scalar', &      call histbeg_totreg("dyn_hist.nc", rlong(:, 1), rlat(1, :), 1, iip1, 1, &
78           'Grille points scalaires', thoriid)           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(fileid, 'sig_s', 'Niveaux sigma', '-', &      call histvert(histid, 'presnivs', 'Niveaux pression','mb', presnivs/100., &
83           llm, nivsigs, zvertiid)           zvertiid,'down')
84      ! Pour le fichier V      call histvert(histvid, 'presnivs', 'Niveaux pression','mb', &
85      call histvert(filevid, 'sig_s', 'Niveaux sigma', '-', &           presnivs/100., zvertiid,'down')
86           llm, nivsigs, zvertiid)      call histvert(histuid, 'presnivs', 'Niveaux pression','mb', &
87      !           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(fileid, 'ucov', 'vents u covariants', '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(filevid, 'vcov', 'vents v covariants', 'm/s', &  
          iip1, jjm, vhoriid, llm, 1, llm, zvertiid, &  
          'inst(X)', t_ops, t_wrt)  
   
     !  
     ! Temperature potentielle  
     !  
     call histdef(fileid, 'teta', 'temperature potentielle', '-', &  
          iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &  
          'inst(X)', t_ops, t_wrt)  
     !  
     ! Geopotentiel  
     !  
     call histdef(fileid, 'phi', 'geopotentiel instantane', '-', &  
          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(fileid, 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(fileid, 'masse', 'masse', 'kg', &      call histdef(histid, 'ps', 'pression naturelle au sol', 'Pa', iip1, jjp1, &
109           iip1, jjp1, thoriid, 1, 1, 1, -99, &           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  
113      !      call histend(histid)
114      call histdef(fileid, 'ps', 'pression naturelle au sol', 'Pa', &      call histend(histuid)
115           iip1, jjp1, thoriid, 1, 1, 1, -99, &      call histend(histvid)
          'inst(X)', t_ops, t_wrt)  
     !  
     ! Pression au sol  
     !  
     call histdef(fileid, 'phis', 'geopotentiel au sol', '-', &  
          iip1, jjp1, thoriid, 1, 1, 1, -99, &  
          'inst(X)', t_ops, t_wrt)  
     !  
     ! Fin  
     !  
     call histend(fileid)  
     call histend(filevid)  
116    
117    end subroutine inithist    end subroutine inithist
118    

Legend:
Removed from v.52  
changed lines
  Added in v.212

  ViewVC Help
Powered by ViewVC 1.1.21