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

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

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

trunk/libf/bibio/initdynav.f90 revision 30 by guez, Thu Apr 1 09:07:28 2010 UTC trunk/Sources/bibio/initdynav.f revision 139 by guez, Tue May 26 17:46:03 2015 UTC
# Line 1  Line 1 
1  module initdynav_m  module initdynav_m
2    
   ! This module is clean: no C preprocessor directive, no include line  
   
3    implicit none    implicit none
4    
5      integer histaveid
6    
7  contains  contains
8    
9    subroutine initdynav(day0, anne0, tstep, nq, fileid, t_ops, t_wrt)    subroutine initdynav(tstep, nq, t_ops, t_wrt)
10    
11      ! From initdynav.F, version 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      ! L. Fairhead, LMD
   
     USE histcom, ONLY: histbeg_totreg, histdef, histend, histvert  
     use calendar, ONLY: ymds2ju  
     USE dimens_m, ONLY : llm  
     USE paramet_m, ONLY : iip1, jjp1  
     USE comconst, ONLY : pi  
     USE comvert, ONLY : nivsigs  
     USE comgeom, ONLY : rlatu, rlonv  
     USE temps, ONLY : itau_dyn  
     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:  
     !      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  
   
     !   Arguments  
     integer day0, anne0  
     real, intent(in):: tstep, t_ops, t_wrt  
     integer fileid  
     integer nq  
     integer thoriid, zvertiid  
   
     !   Variables locales  
   
     real zjulian  
     integer iq  
     real rlong(iip1,jjp1), rlat(iip1,jjp1)  
     integer ii,jj  
     integer zan, dayref  
   
     !----------------------------------------------------  
   
     !  Appel a histbeg: creation du fichier netcdf et initialisations diverses  
   
     zan = anne0  
     dayref = day0  
     CALL ymds2ju(zan, 1, dayref, 0.0, zjulian)  
   
     do jj = 1, jjp1  
        do ii = 1, iip1  
           rlong(ii,jj) = rlonv(ii) * 180. / pi  
           rlat(ii,jj)  = rlatu(jj) * 180. / pi  
        enddo  
     enddo  
   
     call histbeg_totreg('dyn_hist_ave.nc', rlong(:,1), rlat(1,:), &  
          1, iip1, 1, jjp1, &  
          itau_dyn, zjulian, tstep, thoriid, fileid)  
   
   
     !  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  
     call histdef(fileid, 'u', 'vents u scalaires moyennes', &  
          'm/s', iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &  
          'ave(X)', t_ops, t_wrt)  
13    
14        ! Routine d'initialisation des écritures des fichiers histoires au
15        ! format IOIPSL. Initialisation du fichier histoire moyenne.
16    
17      !  Vents V      USE dimens_m, ONLY: llm
18        use dynetat0_m, only: day_ref, annee_ref, rlatu, rlonv
19        USE histbeg_totreg_m, ONLY: histbeg_totreg
20        USE histdef_m, ONLY: histdef
21        USE histend_m, ONLY: histend
22        USE histvert_m, ONLY: histvert
23        USE iniadvtrac_m, ONLY: ttext
24        USE nr_util, ONLY: pi
25        USE paramet_m, ONLY: iip1, jjp1
26        USE temps, ONLY: itau_dyn
27        use ymds2ju_m, ONLY: ymds2ju
28    
29        real, intent(in):: tstep ! fréquence d'écriture
30        integer, intent(in):: nq ! nombre de traceurs
31        real, intent(in):: t_ops ! fréquence de l'opération pour IOIPSL
32        real, intent(in):: t_wrt ! fréquence d'écriture sur le fichier
33    
34        ! Variables locales
35        integer horiid, zvertiid
36        real julian
37        integer iq, l
38    
39      call histdef(fileid, 'v', 'vents v scalaires moyennes', &      !----------------------------------------------------
          'm/s', iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &  
          'ave(X)', t_ops, t_wrt)  
   
   
     !  Temperature  
   
     call histdef(fileid, 'temp', 'temperature moyennee', 'K', &  
          iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &  
          'ave(X)', t_ops, t_wrt)  
   
     !  Temperature potentielle  
   
     call histdef(fileid, 'theta', 'temperature potentielle', 'K', &  
          iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &  
          'ave(X)', t_ops, t_wrt)  
   
   
   
     !  Geopotentiel  
   
     call histdef(fileid, 'phi', 'geopotentiel moyenne', '-', &  
          iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &  
          'ave(X)', t_ops, t_wrt)  
40    
41      !  Traceurs      print *, "Call sequence information: initdynav"
42    
43      DO iq=1,nq      CALL ymds2ju(annee_ref, 1, day_ref, 0., julian)
44         call histdef(fileid, ttext(iq), ttext(iq), '-', &      call histbeg_totreg('dyn_hist_ave.nc', rlonv * 180. / pi, &
45              iip1, jjp1, thoriid, llm, 1, llm, zvertiid, &           rlatu * 180. / pi, 1, iip1, 1, jjp1, itau_dyn, julian, tstep, &
46              'ave(X)', t_ops, t_wrt)           horiid, histaveid)
47        call histvert(histaveid, 'sigss', 'Niveaux sigma', '', &
48             (/(real(l), l = 1, llm)/), zvertiid)
49    
50        call histdef(histaveid, 'u', 'vents u scalaires moyennes', 'm/s', iip1, &
51             jjp1, horiid, llm, 1, llm, zvertiid, 'ave(X)', t_ops, t_wrt)
52        call histdef(histaveid, 'v', 'vents v scalaires moyennes', 'm/s', iip1, &
53             jjp1, horiid, llm, 1, llm, zvertiid, 'ave(X)', t_ops, t_wrt)
54        call histdef(histaveid, 'temp', 'temperature moyennee', 'K', iip1, jjp1, &
55             horiid, llm, 1, llm, zvertiid, 'ave(X)', t_ops, t_wrt)
56        call histdef(histaveid, 'theta', 'temperature potentielle', 'K', iip1, &
57             jjp1, horiid, llm, 1, llm, zvertiid, 'ave(X)', t_ops, t_wrt)
58        call histdef(histaveid, 'phi', 'geopotentiel moyenne', '-', iip1, jjp1, &
59             horiid, llm, 1, llm, zvertiid, 'ave(X)', t_ops, t_wrt)
60    
61        ! Traceurs
62        DO iq = 1, nq
63           call histdef(histaveid, ttext(iq), ttext(iq), '-', iip1, jjp1, &
64                horiid, llm, 1, llm, zvertiid, 'ave(X)', t_ops, t_wrt)
65      enddo      enddo
66    
67      !  Masse      call histdef(histaveid, 'masse', 'masse', 'kg', iip1, jjp1, horiid, 1, &
68             1, 1, -99, 'ave(X)', t_ops, t_wrt)
69      call histdef(fileid, 'masse', 'masse', 'kg', &      call histdef(histaveid, 'ps', 'pression naturelle au sol', 'Pa', iip1, &
70           iip1, jjp1, thoriid, 1, 1, 1, -99, &           jjp1, horiid, 1, 1, 1, -99, 'ave(X)', t_ops, t_wrt)
71           'ave(X)', t_ops, t_wrt)      call histdef(histaveid, 'phis', 'geopotentiel au sol', '-', iip1, jjp1, &
72             horiid, 1, 1, 1, -99, 'ave(X)', t_ops, t_wrt)
     !  Pression au sol  
   
     call histdef(fileid, 'ps', 'pression naturelle au sol', 'Pa', &  
          iip1, jjp1, thoriid, 1, 1, 1, -99, &  
          'ave(X)', t_ops, t_wrt)  
   
     !  Pression au sol  
   
     call histdef(fileid, 'phis', 'geopotentiel au sol', '-', &  
          iip1, jjp1, thoriid, 1, 1, 1, -99, &  
          'ave(X)', t_ops, t_wrt)  
73    
74      call histend(fileid)      call histend(histaveid)
75    
76    end subroutine initdynav    end subroutine initdynav
77    

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

  ViewVC Help
Powered by ViewVC 1.1.21