/[lmdze]/trunk/bibio/initdynav.f
ViewVC logotype

Diff of /trunk/bibio/initdynav.f

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

revision 18 by guez, Thu Aug 7 12:29:13 2008 UTC revision 40 by guez, Tue Feb 22 13:49:36 2011 UTC
# Line 6  module initdynav_m Line 6  module initdynav_m
6    
7  contains  contains
8    
9    subroutine initdynav(day0, anne0, tstep, nq, fileid, infile, t_ops, t_wrt)    subroutine initdynav(day0, anne0, tstep, nq, fileid, t_ops, t_wrt)
10    
11      ! From initdynav.F,v 1.1.1.1 2004/05/19 12:53:05      ! From initdynav.F, version 1.1.1.1, 2004/05/19 12:53:05
12        ! L. Fairhead, LMD
13        ! Routine d'initialisation des écritures des fichiers histoires LMDZ
14        ! au format IOIPSL. Initialisation du fichier histoire moyenne.
15    
16        use calendar, ONLY: ymds2ju
17        USE comvert, ONLY : nivsigs
18        USE comgeom, ONLY : rlatu, rlonv
19        USE dimens_m, ONLY : llm
20        USE histcom, ONLY: histbeg_totreg, histdef, histend, histvert
21        USE iniadvtrac_m, ONLY : ttext
22        USE nr_util, ONLY : pi
23        USE paramet_m, ONLY : iip1, jjp1
24        USE temps, ONLY : itau_dyn
25    
26        integer, intent(in):: day0, anne0 ! date de reference
27        real, intent(in):: tstep ! frequence d'ecriture
28        real, intent(in):: t_ops ! frequence de l'operation pour IOIPSL
29        real, intent(in):: t_wrt ! frequence d'ecriture sur le fichier
30        integer, intent(out):: fileid ! ID du fichier netcdf cree
31        integer, intent(in):: nq ! nombre de traceurs
32    
33      USE IOIPSL, only: ymds2ju, histbeg_totreg, histvert, histdef, histend      ! Variables locales
     use dimens_m  
     use paramet_m  
     use comconst, only: pi  
     use comvert, only: nivsigs  
     use logic  
     use comgeom  
     use serre  
     use temps  
     use ener  
     use iniadvtrac_m, only: ttext  
   
     !   Routine d'initialisation des ecritures des fichiers histoires LMDZ  
     !   au format IOIPSL. Initialisation du fichier histoire moyenne.  
   
     !   Appels succesifs des routines: histbeg  
     !                                  histhori  
     !                                  histver  
     !                                  histdef  
     !                                  histend  
   
     !   Entree:  
     !      infile: nom du fichier histoire a creer  
     !      day0,anne0: date de reference  
     !      tstep : frequence d'ecriture  
     !      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  
   
     !   L. Fairhead, LMD, 03/99  
   
     !   Arguments  
     character(len=*) infile  
     integer day0, anne0  
     real, intent(in):: tstep, t_ops, t_wrt  
     integer fileid  
     integer nq  
34      integer thoriid, zvertiid      integer thoriid, zvertiid
   
     !   Variables locales  
   
     integer tau0  
35      real zjulian      real zjulian
36      integer iq      integer iq
37      real rlong(iip1,jjp1), rlat(iip1,jjp1)      real rlong(iip1, jjp1), rlat(iip1, jjp1)
38      integer ii,jj      integer ii, jj
39      integer zan, dayref      integer zan, dayref
40    
41      !----------------------------------------------------      !----------------------------------------------------
42    
43      !  Initialisations      print *, "Call sequence information: initdynav"
   
     pi = 4. * atan (1.)  
     !  
     !  Appel a histbeg: creation du fichier netcdf et initialisations diverses  
     !          
44    
45      zan = anne0      zan = anne0
46      dayref = day0      dayref = day0
47      CALL ymds2ju(zan, 1, dayref, 0.0, zjulian)      CALL ymds2ju(zan, 1, dayref, 0.0, zjulian)
     tau0 = itau_dyn  
48    
49      do jj = 1, jjp1      do jj = 1, jjp1
50         do ii = 1, iip1         do ii = 1, iip1
51            rlong(ii,jj) = rlonv(ii) * 180. / pi            rlong(ii, jj) = rlonv(ii) * 180. / pi
52            rlat(ii,jj)  = rlatu(jj) * 180. / pi            rlat(ii, jj) = rlatu(jj) * 180. / pi
53         enddo         enddo
54      enddo      enddo
55    
56      call histbeg_totreg(infile, rlong(:,1), rlat(1,:), &      call histbeg_totreg('dyn_hist_ave.nc', rlong(:, 1), rlat(1, :), 1, iip1, &
57           1, iip1, 1, jjp1, &           1, jjp1, itau_dyn, zjulian, tstep, thoriid, fileid)
58           tau0, zjulian, tstep, thoriid, fileid)      call histvert(fileid, 'sigss', 'Niveaux sigma', 'Pa', llm, nivsigs, &
59             zvertiid)
60      !  
     !  Appel a histvert pour la grille verticale  
     !  
     call histvert(fileid, 'sigss', 'Niveaux sigma','Pa', &  
          llm, nivsigs, zvertiid)  
     !  
     !  Appels a histdef pour la definition des variables a sauvegarder  
     !  
     !  Vents U  
     !  
     write(6,*)'inithistave',tstep  
61      call histdef(fileid, 'u', 'vents u scalaires moyennes', &      call histdef(fileid, 'u', 'vents u scalaires moyennes', &
62           'm/s', iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &           'm/s', iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &
63           'ave(X)', t_ops, t_wrt)           'ave(X)', t_ops, t_wrt)
   
     !  
     !  Vents V  
     !  
64      call histdef(fileid, 'v', 'vents v scalaires moyennes', &      call histdef(fileid, 'v', 'vents v scalaires moyennes', &
65           'm/s', iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &           'm/s', iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &
66           'ave(X)', t_ops, t_wrt)           'ave(X)', t_ops, t_wrt)
   
     !  
     !  Temperature  
     !  
67      call histdef(fileid, 'temp', 'temperature moyennee', 'K', &      call histdef(fileid, 'temp', 'temperature moyennee', 'K', &
68           iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &           iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &
69           'ave(X)', t_ops, t_wrt)           'ave(X)', t_ops, t_wrt)
     !  
     !  Temperature potentielle  
     !  
70      call histdef(fileid, 'theta', 'temperature potentielle', 'K', &      call histdef(fileid, 'theta', 'temperature potentielle', 'K', &
71           iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &           iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &
72           'ave(X)', t_ops, t_wrt)           'ave(X)', t_ops, t_wrt)
   
   
     !  
     !  Geopotentiel  
     !  
73      call histdef(fileid, 'phi', 'geopotentiel moyenne', '-', &      call histdef(fileid, 'phi', 'geopotentiel moyenne', '-', &
74           iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &           iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &
75           'ave(X)', t_ops, t_wrt)           'ave(X)', t_ops, t_wrt)
76      !  
77      !  Traceurs      ! Traceurs
78      !      DO iq = 1, nq
     DO iq=1,nq  
79         call histdef(fileid, ttext(iq), ttext(iq), '-', &         call histdef(fileid, ttext(iq), ttext(iq), '-', &
80              iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &              iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &
81              'ave(X)', t_ops, t_wrt)              'ave(X)', t_ops, t_wrt)
82      enddo      enddo
83      !  
     !  Masse  
     !  
84      call histdef(fileid, 'masse', 'masse', 'kg', &      call histdef(fileid, 'masse', 'masse', 'kg', &
85           iip1, jjp1, thoriid, 1, 1, 1, -99, &           iip1, jjp1, thoriid, 1, 1, 1, -99, &
86           'ave(X)', t_ops, t_wrt)           'ave(X)', t_ops, t_wrt)
     !  
     !  Pression au sol  
     !  
87      call histdef(fileid, 'ps', 'pression naturelle au sol', 'Pa', &      call histdef(fileid, 'ps', 'pression naturelle au sol', 'Pa', &
88           iip1, jjp1, thoriid, 1, 1, 1, -99, &           iip1, jjp1, thoriid, 1, 1, 1, -99, &
89           'ave(X)', t_ops, t_wrt)           'ave(X)', t_ops, t_wrt)
     !  
     !  Pression au sol  
     !  
90      call histdef(fileid, 'phis', 'geopotentiel au sol', '-', &      call histdef(fileid, 'phis', 'geopotentiel au sol', '-', &
91           iip1, jjp1, thoriid, 1, 1, 1, -99, &           iip1, jjp1, thoriid, 1, 1, 1, -99, &
92           'ave(X)', t_ops, t_wrt)           'ave(X)', t_ops, t_wrt)
93      !  
     !  Fin  
     !  
94      call histend(fileid)      call histend(fileid)
95    
96    end subroutine initdynav    end subroutine initdynav

Legend:
Removed from v.18  
changed lines
  Added in v.40

  ViewVC Help
Powered by ViewVC 1.1.21