/[lmdze]/trunk/dyn3d/init_dynzon.f
ViewVC logotype

Diff of /trunk/dyn3d/init_dynzon.f

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

trunk/libf/dyn3d/init_dynzon.f90 revision 61 by guez, Fri Apr 20 14:58:43 2012 UTC trunk/dyn3d/init_dynzon.f revision 92 by guez, Wed Mar 26 18:16:05 2014 UTC
# Line 15  contains Line 15  contains
15    
16      ! From LMDZ4/libf/dyn3d/bilan_dyn.F, version 1.5 2005/03/16 10:12:17      ! From LMDZ4/libf/dyn3d/bilan_dyn.F, version 1.5 2005/03/16 10:12:17
17    
18      USE conf_gcm_m, ONLY : day_step, iperiod, periodav      USE comgeom, ONLY: rlatv
19      USE histbeg_totreg_m, ONLY : histbeg_totreg      USE conf_gcm_m, ONLY: day_step, iperiod, periodav
20      USE histdef_m, ONLY : histdef      USE dimens_m, ONLY: jjm, llm
21      USE histend_m, ONLY : histend      USE disvert_m, ONLY: presnivs
22      USE histvert_m, ONLY : histvert      USE histbeg_totreg_m, ONLY: histbeg_totreg
23      USE calendar, ONLY : ymds2ju      USE histdef_m, ONLY: histdef
24      USE dimens_m, ONLY : jjm, llm      USE histend_m, ONLY: histend
25      USE comvert, ONLY : presnivs      USE histvert_m, ONLY: histvert
26      USE comgeom, ONLY : rlatv      USE nr_util, ONLY: pi
27      USE temps, ONLY : annee_ref, day_ref, itau_dyn      USE temps, ONLY: annee_ref, day_ref, itau_dyn
28      USE nr_util, ONLY : pi      USE ymds2ju_m, ONLY: ymds2ju
   
     ! Arguments:  
29    
30      real, intent(in):: dt_app      real, intent(in):: dt_app
31    
# Line 37  contains Line 35  contains
35      character(len=5), parameter:: unites(nQ) = (/'K    ', 'm2/s2', 'm2/s2', &      character(len=5), parameter:: unites(nQ) = (/'K    ', 'm2/s2', 'm2/s2', &
36           'ang  ', 'm/s  ', 'kg/kg', 'un   '/)           'ang  ', 'm/s  ', 'kg/kg', 'un   '/)
37    
38      ! champs de tansport en moyenne zonale      ! Champs de tansport en moyenne zonale
39      integer itr      integer itr
40        character(len=26) noml(ntr, nQ)
     character(len=26) znoml(ntr, nQ)  
41      character(len=12) zunites(ntr, nQ)      character(len=12) zunites(ntr, nQ)
   
42      character(len=3), parameter:: ctrs(ntr) = (/'   ', 'TOT', 'MMC', 'TRS', &      character(len=3), parameter:: ctrs(ntr) = (/'   ', 'TOT', 'MMC', 'TRS', &
43           'STN'/)           'STN'/)
   
44      integer iQ      integer iQ
45    
46      ! Initialisation du fichier contenant les moyennes zonales.      ! Initialisation du fichier contenant les moyennes zonales.
47    
48      integer thoriid, zvertiid      integer horiid, vertiid
49        real julian
50      real zjulian      integer an, dayref
     integer zan, dayref  
   
51      real rlong(jjm), rlatg(jjm)      real rlong(jjm), rlatg(jjm)
52    
53      !-----------------------------------------------------------------      !-----------------------------------------------------------------
54    
55      print *, "Call sequence information: init_dynzon"      print *, "Call sequence information: init_dynzon"
56    
57      ! initialisation des fichiers      ! Initialisation des fichiers
58      ! ncum est la frequence de stokage en pas de temps      ! ncum est la frequence de stokage en pas de temps
59      ncum = day_step / iperiod * periodav      ncum = day_step / iperiod * periodav
60      dt_cum = ncum * dt_app      dt_cum = ncum * dt_app
61    
62      ! Initialisation du fichier contenant les moyennes zonales      ! Initialisation du fichier contenant les moyennes zonales
63    
64      zan = annee_ref      an = annee_ref
65      dayref = day_ref      dayref = day_ref
66      CALL ymds2ju(zan, 1, dayref, 0.0, zjulian)      CALL ymds2ju(an, 1, dayref, 0.0, julian)
67    
68      rlong = 0.      rlong = 0.
69      rlatg = rlatv*180./pi      rlatg = rlatv * 180. / pi
70    
71      call histbeg_totreg('dynzon', rlong(:1), rlatg, 1, 1, 1, jjm, itau_dyn, &      call histbeg_totreg('dynzon', rlong(:1), rlatg, 1, 1, 1, jjm, itau_dyn, &
72           zjulian, dt_cum, thoriid, fileid)           julian, dt_cum, horiid, fileid)
73    
74      ! Appel à histvert pour la grille verticale      ! Appel à histvert pour la grille verticale
75    
76      call histvert(fileid, 'presnivs', 'Niveaux sigma', 'mb', llm, presnivs, &      call histvert(fileid, 'presnivs', 'Niveaux sigma', 'mb', presnivs, vertiid)
          zvertiid)  
77    
78      ! Appels à histdef pour la définition des variables à sauvegarder      ! Appels à histdef pour la définition des variables à sauvegarder
79      do iQ = 1, nQ      do iQ = 1, nQ
80         do itr = 1, ntr         do itr = 1, ntr
81            if (itr == 1) then            if (itr == 1) then
82               znom(itr, iQ) = nom(iQ)               znom(itr, iQ) = nom(iQ)
83               znoml(itr, iQ) = nom(iQ)               noml(itr, iQ) = nom(iQ)
84               zunites(itr, iQ) = unites(iQ)               zunites(itr, iQ) = unites(iQ)
85            else            else
86               znom(itr, iQ) = ctrs(itr)//'v'//nom(iQ)               znom(itr, iQ) = ctrs(itr) // 'v' // nom(iQ)
87               znoml(itr, iQ) = 'transport : v * '//nom(iQ)//' '//ctrs(itr)               noml(itr, iQ) = 'transport: v * ' // nom(iQ) // ' ' // ctrs(itr)
88               zunites(itr, iQ) = 'm/s * '//unites(iQ)               zunites(itr, iQ) = 'm/s * ' // unites(iQ)
89            endif            endif
90         enddo         enddo
91      enddo      enddo
# Line 101  contains Line 93  contains
93      ! Déclarations des champs avec dimension verticale      ! Déclarations des champs avec dimension verticale
94      do iQ = 1, nQ      do iQ = 1, nQ
95         do itr = 1, ntr         do itr = 1, ntr
96            call histdef(fileid, znom(itr, iQ), znoml(itr, iQ), &            call histdef(fileid, znom(itr, iQ), noml(itr, iQ), &
97                 zunites(itr, iQ), 1, jjm, thoriid, llm, 1, llm, zvertiid, &                 zunites(itr, iQ), 1, jjm, horiid, llm, 1, llm, vertiid, &
98                 'ave(X)', dt_cum, dt_cum)                 'ave(X)', dt_cum, dt_cum)
99         enddo         enddo
100         ! Déclarations pour les fonctions de courant         ! Déclarations pour les fonctions de courant
101         call histdef(fileid, 'psi'//nom(iQ), 'stream fn. '//znoml(2, iQ), &         call histdef(fileid, 'psi' // nom(iQ), 'stream fn. ' // noml(2, iQ), &
102              zunites(2, iQ), 1, jjm, thoriid, llm, 1, llm, zvertiid, &              zunites(2, iQ), 1, jjm, horiid, llm, 1, llm, vertiid, &
103              'ave(X)', dt_cum, dt_cum)              'ave(X)', dt_cum, dt_cum)
104      enddo      enddo
105    
106      ! Déclarations pour les champs de transport d'air      ! Déclarations pour les champs de transport d'air
107      call histdef(fileid, 'masse', 'masse', &      call histdef(fileid, 'masse', 'masse', 'kg', 1, jjm, horiid, llm, 1, &
108           'kg', 1, jjm, thoriid, llm, 1, llm, zvertiid, &           llm, vertiid, 'ave(X)', dt_cum, dt_cum)
109           'ave(X)', dt_cum, dt_cum)      call histdef(fileid, 'v', 'v', 'm/s', 1, jjm, horiid, llm, 1, llm, &
110      call histdef(fileid, 'v', 'v', &           vertiid, 'ave(X)', dt_cum, dt_cum)
          'm/s', 1, jjm, thoriid, llm, 1, llm, zvertiid, &  
          'ave(X)', dt_cum, dt_cum)  
111      ! Déclarations pour les fonctions de courant      ! Déclarations pour les fonctions de courant
112      call histdef(fileid, 'psi', 'stream fn. MMC ', 'mega t/s', &      call histdef(fileid, 'psi', 'stream fn. MMC ', 'mega t/s', 1, jjm, &
113           1, jjm, thoriid, llm, 1, llm, zvertiid, &           horiid, llm, 1, llm, vertiid, 'ave(X)', dt_cum, dt_cum)
          'ave(X)', dt_cum, dt_cum)  
114    
115      ! Déclaration des champs 1D de transport en latitude      ! Déclaration des champs 1D de transport en latitude
116      do iQ = 1, nQ      do iQ = 1, nQ
117         do itr = 2, ntr         do itr = 2, ntr
118            call histdef(fileid, 'a'//znom(itr, iQ), znoml(itr, iQ), &            call histdef(fileid, 'a' // znom(itr, iQ), noml(itr, iQ), &
119                 zunites(itr, iQ), 1, jjm, thoriid, 1, 1, 1, -99, &                 zunites(itr, iQ), 1, jjm, horiid, 1, 1, 1, -99, 'ave(X)', &
120                 'ave(X)', dt_cum, dt_cum)                 dt_cum, dt_cum)
121         enddo         enddo
122      enddo      enddo
123    

Legend:
Removed from v.61  
changed lines
  Added in v.92

  ViewVC Help
Powered by ViewVC 1.1.21