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

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

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

trunk/libf/dyn3d/init_dynzon.f90 revision 57 by guez, Mon Jan 30 12:54:02 2012 UTC trunk/Sources/dyn3d/init_dynzon.f revision 139 by guez, Tue May 26 17:46:03 2015 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 conf_gcm_m, ONLY: day_step, iperiod, periodav
19      USE histcom, ONLY : histbeg_totreg, histdef, histend, histvert      USE dimens_m, ONLY: jjm, llm
20      USE calendar, ONLY : ymds2ju      USE disvert_m, ONLY: presnivs
21      USE dimens_m, ONLY : jjm, llm      use dynetat0_m, only: day_ref, annee_ref, rlatv
22      USE comvert, ONLY : presnivs      USE histbeg_totreg_m, ONLY: histbeg_totreg
23      USE comgeom, ONLY : rlatv      USE histdef_m, ONLY: histdef
24      USE temps, ONLY : annee_ref, day_ref, itau_dyn      USE histend_m, ONLY: histend
25      USE nr_util, ONLY : pi      USE histvert_m, ONLY: histvert
26        USE nr_util, ONLY: pi
27      ! Arguments:      USE temps, ONLY: itau_dyn
28        USE ymds2ju_m, ONLY: ymds2ju
29    
30      real, intent(in):: dt_app      real, intent(in):: dt_app
31    
# Line 34  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
     real zjulian  
     integer zan, dayref  
   
50      real rlong(jjm), rlatg(jjm)      real rlong(jjm), rlatg(jjm)
51    
52      !-----------------------------------------------------------------      !-----------------------------------------------------------------
53    
54      print *, "Call sequence information: init_dynzon"      print *, "Call sequence information: init_dynzon"
55    
56      ! initialisation des fichiers      ! Initialisation des fichiers
57      ! ncum est la frequence de stokage en pas de temps      ! ncum est la frequence de stokage en pas de temps
58      ncum = day_step / iperiod * periodav      ncum = day_step / iperiod * periodav
59      dt_cum = ncum * dt_app      dt_cum = ncum * dt_app
60    
61      ! Initialisation du fichier contenant les moyennes zonales      ! Initialisation du fichier contenant les moyennes zonales
62    
63      zan = annee_ref      CALL ymds2ju(annee_ref, 1, day_ref, 0.0, julian)
     dayref = day_ref  
     CALL ymds2ju(zan, 1, dayref, 0.0, zjulian)  
64    
65      rlong = 0.      rlong = 0.
66      rlatg = rlatv*180./pi      rlatg = rlatv * 180. / pi
67    
68      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, &
69           zjulian, dt_cum, thoriid, fileid)           julian, dt_cum, horiid, fileid)
70    
71      ! Appel à histvert pour la grille verticale      ! Appel \`a histvert pour la grille verticale
72    
73      call histvert(fileid, 'presnivs', 'Niveaux sigma', 'mb', llm, presnivs, &      call histvert(fileid, 'presnivs', 'Niveaux sigma', 'mb', presnivs, vertiid)
          zvertiid)  
74    
75      ! Appels à histdef pour la définition des variables à sauvegarder      ! Appels \`a histdef pour la d\'efinition des variables \`a sauvegarder
76      do iQ = 1, nQ      do iQ = 1, nQ
77         do itr = 1, ntr         do itr = 1, ntr
78            if (itr == 1) then            if (itr == 1) then
79               znom(itr, iQ) = nom(iQ)               znom(itr, iQ) = nom(iQ)
80               znoml(itr, iQ) = nom(iQ)               noml(itr, iQ) = nom(iQ)
81               zunites(itr, iQ) = unites(iQ)               zunites(itr, iQ) = unites(iQ)
82            else            else
83               znom(itr, iQ) = ctrs(itr)//'v'//nom(iQ)               znom(itr, iQ) = ctrs(itr) // 'v' // nom(iQ)
84               znoml(itr, iQ) = 'transport : v * '//nom(iQ)//' '//ctrs(itr)               noml(itr, iQ) = 'transport: v * ' // nom(iQ) // ' ' // ctrs(itr)
85               zunites(itr, iQ) = 'm/s * '//unites(iQ)               zunites(itr, iQ) = 'm/s * ' // unites(iQ)
86            endif            endif
87         enddo         enddo
88      enddo      enddo
89    
90      ! Déclarations des champs avec dimension verticale      ! D\'eclarations des champs avec dimension verticale
91      do iQ = 1, nQ      do iQ = 1, nQ
92         do itr = 1, ntr         do itr = 1, ntr
93            call histdef(fileid, znom(itr, iQ), znoml(itr, iQ), &            call histdef(fileid, znom(itr, iQ), noml(itr, iQ), &
94                 zunites(itr, iQ), 1, jjm, thoriid, llm, 1, llm, zvertiid, &                 zunites(itr, iQ), 1, jjm, horiid, llm, 1, llm, vertiid, &
95                 'ave(X)', dt_cum, dt_cum)                 'ave(X)', dt_cum, dt_cum)
96         enddo         enddo
97         ! Déclarations pour les fonctions de courant         ! D\'eclarations pour les fonctions de courant
98         call histdef(fileid, 'psi'//nom(iQ), 'stream fn. '//znoml(2, iQ), &         call histdef(fileid, 'psi' // nom(iQ), 'stream fn. ' // noml(2, iQ), &
99              zunites(2, iQ), 1, jjm, thoriid, llm, 1, llm, zvertiid, &              zunites(2, iQ), 1, jjm, horiid, llm, 1, llm, vertiid, &
100              'ave(X)', dt_cum, dt_cum)              'ave(X)', dt_cum, dt_cum)
101      enddo      enddo
102    
103      ! Déclarations pour les champs de transport d'air      ! D\'eclarations pour les champs de transport d'air
104      call histdef(fileid, 'masse', 'masse', &      call histdef(fileid, 'masse', 'masse', 'kg', 1, jjm, horiid, llm, 1, &
105           'kg', 1, jjm, thoriid, llm, 1, llm, zvertiid, &           llm, vertiid, 'ave(X)', dt_cum, dt_cum)
106           'ave(X)', dt_cum, dt_cum)      call histdef(fileid, 'v', 'v', 'm/s', 1, jjm, horiid, llm, 1, llm, &
107      call histdef(fileid, 'v', 'v', &           vertiid, 'ave(X)', dt_cum, dt_cum)
108           'm/s', 1, jjm, thoriid, llm, 1, llm, zvertiid, &      ! D\'eclarations pour les fonctions de courant
109           'ave(X)', dt_cum, dt_cum)      call histdef(fileid, 'psi', 'stream fn. MMC ', 'mega t/s', 1, jjm, &
110      ! Déclarations pour les fonctions de courant           horiid, llm, 1, llm, vertiid, 'ave(X)', dt_cum, dt_cum)
     call histdef(fileid, 'psi', 'stream fn. MMC ', 'mega t/s', &  
          1, jjm, thoriid, llm, 1, llm, zvertiid, &  
          'ave(X)', dt_cum, dt_cum)  
111    
112      ! Déclaration des champs 1D de transport en latitude      ! D\'eclaration des champs 1D de transport en latitude
113      do iQ = 1, nQ      do iQ = 1, nQ
114         do itr = 2, ntr         do itr = 2, ntr
115            call histdef(fileid, 'a'//znom(itr, iQ), znoml(itr, iQ), &            call histdef(fileid, 'a' // znom(itr, iQ), noml(itr, iQ), &
116                 zunites(itr, iQ), 1, jjm, thoriid, 1, 1, 1, -99, &                 zunites(itr, iQ), 1, jjm, horiid, 1, 1, 1, -99, 'ave(X)', &
117                 'ave(X)', dt_cum, dt_cum)                 dt_cum, dt_cum)
118         enddo         enddo
119      enddo      enddo
120    

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

  ViewVC Help
Powered by ViewVC 1.1.21