/[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

revision 61 by guez, Fri Apr 20 14:58:43 2012 UTC revision 62 by guez, Thu Jul 26 14:37:37 2012 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 histbeg_totreg_m, ONLY : histbeg_totreg      USE histbeg_totreg_m, ONLY: histbeg_totreg
20      USE histdef_m, ONLY : histdef      USE histdef_m, ONLY: histdef
21      USE histend_m, ONLY : histend      USE histend_m, ONLY: histend
22      USE histvert_m, ONLY : histvert      USE histvert_m, ONLY: histvert
23      USE calendar, ONLY : ymds2ju      USE calendar, ONLY: ymds2ju
24      USE dimens_m, ONLY : jjm, llm      USE dimens_m, ONLY: jjm, llm
25      USE comvert, ONLY : presnivs      USE comvert, ONLY: presnivs
26      USE comgeom, ONLY : rlatv      USE comgeom, ONLY: rlatv
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 nr_util, ONLY: pi
   
     ! 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', llm, presnivs, &
77           zvertiid)           vertiid)
78    
79      ! Appels à histdef pour la définition des variables à sauvegarder      ! Appels à histdef pour la définition des variables à sauvegarder
80      do iQ = 1, nQ      do iQ = 1, nQ
81         do itr = 1, ntr         do itr = 1, ntr
82            if (itr == 1) then            if (itr == 1) then
83               znom(itr, iQ) = nom(iQ)               znom(itr, iQ) = nom(iQ)
84               znoml(itr, iQ) = nom(iQ)               noml(itr, iQ) = nom(iQ)
85               zunites(itr, iQ) = unites(iQ)               zunites(itr, iQ) = unites(iQ)
86            else            else
87               znom(itr, iQ) = ctrs(itr)//'v'//nom(iQ)               znom(itr, iQ) = ctrs(itr) // 'v' // nom(iQ)
88               znoml(itr, iQ) = 'transport : v * '//nom(iQ)//' '//ctrs(itr)               noml(itr, iQ) = 'transport: v * ' // nom(iQ) // ' ' // ctrs(itr)
89               zunites(itr, iQ) = 'm/s * '//unites(iQ)               zunites(itr, iQ) = 'm/s * ' // unites(iQ)
90            endif            endif
91         enddo         enddo
92      enddo      enddo
# Line 101  contains Line 94  contains
94      ! Déclarations des champs avec dimension verticale      ! Déclarations des champs avec dimension verticale
95      do iQ = 1, nQ      do iQ = 1, nQ
96         do itr = 1, ntr         do itr = 1, ntr
97            call histdef(fileid, znom(itr, iQ), znoml(itr, iQ), &            call histdef(fileid, znom(itr, iQ), noml(itr, iQ), &
98                 zunites(itr, iQ), 1, jjm, thoriid, llm, 1, llm, zvertiid, &                 zunites(itr, iQ), 1, jjm, horiid, llm, 1, llm, vertiid, &
99                 'ave(X)', dt_cum, dt_cum)                 'ave(X)', dt_cum, dt_cum)
100         enddo         enddo
101         ! Déclarations pour les fonctions de courant         ! Déclarations pour les fonctions de courant
102         call histdef(fileid, 'psi'//nom(iQ), 'stream fn. '//znoml(2, iQ), &         call histdef(fileid, 'psi' // nom(iQ), 'stream fn. ' // noml(2, iQ), &
103              zunites(2, iQ), 1, jjm, thoriid, llm, 1, llm, zvertiid, &              zunites(2, iQ), 1, jjm, horiid, llm, 1, llm, vertiid, &
104              'ave(X)', dt_cum, dt_cum)              'ave(X)', dt_cum, dt_cum)
105      enddo      enddo
106    
107      ! Déclarations pour les champs de transport d'air      ! Déclarations pour les champs de transport d'air
108      call histdef(fileid, 'masse', 'masse', &      call histdef(fileid, 'masse', 'masse', 'kg', 1, jjm, horiid, llm, 1, &
109           'kg', 1, jjm, thoriid, llm, 1, llm, zvertiid, &           llm, vertiid, 'ave(X)', dt_cum, dt_cum)
110           'ave(X)', dt_cum, dt_cum)      call histdef(fileid, 'v', 'v', 'm/s', 1, jjm, horiid, llm, 1, llm, &
111      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)  
112      ! Déclarations pour les fonctions de courant      ! Déclarations pour les fonctions de courant
113      call histdef(fileid, 'psi', 'stream fn. MMC ', 'mega t/s', &      call histdef(fileid, 'psi', 'stream fn. MMC ', 'mega t/s', 1, jjm, &
114           1, jjm, thoriid, llm, 1, llm, zvertiid, &           horiid, llm, 1, llm, vertiid, 'ave(X)', dt_cum, dt_cum)
          'ave(X)', dt_cum, dt_cum)  
115    
116      ! Déclaration des champs 1D de transport en latitude      ! Déclaration des champs 1D de transport en latitude
117      do iQ = 1, nQ      do iQ = 1, nQ
118         do itr = 2, ntr         do itr = 2, ntr
119            call histdef(fileid, 'a'//znom(itr, iQ), znoml(itr, iQ), &            call histdef(fileid, 'a' // znom(itr, iQ), noml(itr, iQ), &
120                 zunites(itr, iQ), 1, jjm, thoriid, 1, 1, 1, -99, &                 zunites(itr, iQ), 1, jjm, horiid, 1, 1, 1, -99, 'ave(X)', &
121                 'ave(X)', dt_cum, dt_cum)                 dt_cum, dt_cum)
122         enddo         enddo
123      enddo      enddo
124    

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

  ViewVC Help
Powered by ViewVC 1.1.21