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

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

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

trunk/libf/dyn3d/bilan_dyn.f90 revision 56 by guez, Tue Jan 10 19:02:02 2012 UTC trunk/Sources/dyn3d/bilan_dyn.f revision 161 by guez, Fri Jul 24 14:27:59 2015 UTC
# Line 5  module bilan_dyn_m Line 5  module bilan_dyn_m
5  contains  contains
6    
7    SUBROUTINE bilan_dyn(ps, masse, pk, flux_u, flux_v, teta, phi, ucov, vcov, &    SUBROUTINE bilan_dyn(ps, masse, pk, flux_u, flux_v, teta, phi, ucov, vcov, &
8         trac, dt_app)         trac)
9    
10      ! 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
11    
12      ! Sous-programme consacré à des diagnostics dynamiques de base.      ! Sous-programme consacr\'e \`a des diagnostics dynamiques de
13      ! De façon générale, les moyennes des scalaires Q sont pondérées      ! base.  De fa\c{}con g\'en\'erale, les moyennes des scalaires Q
14      ! par la masse. Les flux de masse sont, eux, simplement moyennés.      ! sont pond\'er\'ees par la masse. Les flux de masse sont, eux,
15        ! simplement moyenn\'es.
16    
     USE calendar, ONLY: ymds2ju  
     USE conf_gcm_m, ONLY: day_step, iperiod, periodav  
17      USE comconst, ONLY: cpp      USE comconst, ONLY: cpp
18      USE comvert, ONLY: presnivs      USE comgeom, ONLY: constang_2d, cu_2d, cv_2d
19      USE comgeom, ONLY: constang_2d, cu_2d, cv_2d, rlatv      use covcont_m, only: covcont
20      USE dimens_m, ONLY: iim, jjm, llm      USE dimens_m, ONLY: iim, jjm, llm
     USE histcom, ONLY: histbeg_totreg, histdef, histend, histvert  
21      USE histwrite_m, ONLY: histwrite      USE histwrite_m, ONLY: histwrite
22      USE nr_util, ONLY: pi      use init_dynzon_m, only: ncum, fileid, znom, ntr, nq, nom
23        use massbar_m, only: massbar
24      USE paramet_m, ONLY: iip1, jjp1      USE paramet_m, ONLY: iip1, jjp1
     USE temps, ONLY: annee_ref, day_ref, itau_dyn  
   
     ! Arguments:  
25    
26      real, intent(in):: ps(iip1, jjp1)      real, intent(in):: ps(iip1, jjp1)
27      real, intent(in):: masse(iip1, jjp1, llm), pk(iip1, jjp1, llm)      real, intent(in):: masse(iip1, jjp1, llm), pk(iip1, jjp1, llm)
# Line 33  contains Line 29  contains
29      real, intent(in):: flux_v(iip1, jjm, llm)      real, intent(in):: flux_v(iip1, jjm, llm)
30      real, intent(in):: teta(iip1, jjp1, llm)      real, intent(in):: teta(iip1, jjp1, llm)
31      real, intent(in):: phi(iip1, jjp1, llm)      real, intent(in):: phi(iip1, jjp1, llm)
32      real, intent(in):: ucov(iip1, jjp1, llm)      real, intent(in):: ucov(:, :, :) ! (iip1, jjp1, llm)
33      real, intent(in):: vcov(iip1, jjm, llm)      real, intent(in):: vcov(iip1, jjm, llm)
34      real, intent(in):: trac(:, :, :) ! (iim + 1, jjm + 1, llm)      real, intent(in):: trac(:, :, :) ! (iim + 1, jjm + 1, llm)
     real, intent(in):: dt_app  
35    
36      ! Local:      ! Local:
37    
     real dt_cum  
38      integer:: icum  = 0      integer:: icum  = 0
     integer, save:: ncum  
     logical:: first = .true.  
     real zqy, zfactv(jjm, llm)  
   
     integer, parameter:: nQ = 7  
     character(len=4), parameter:: nom(nQ) = (/'T   ', 'gz  ', 'K   ', 'ang ', &  
          'u   ', 'ovap', 'un  '/)  
     character(len=5), parameter:: unites(nQ) = (/'K    ', 'm2/s2', 'm2/s2', &  
          'ang  ', 'm/s  ', 'kg/kg', 'un   '/)  
   
39      integer:: itau = 0      integer:: itau = 0
40      real ww      real qy, factv(jjm, llm)
41    
42      ! Variables dynamiques intermédiaires      ! Variables dynamiques interm\'ediaires
43      REAL vcont(iip1, jjm, llm), ucont(iip1, jjp1, llm)      REAL vcont(iip1, jjm, llm), ucont(iip1, jjp1, llm)
44      REAL ang(iip1, jjp1, llm), unat(iip1, jjp1, llm)      REAL ang(iip1, jjp1, llm), unat(iip1, jjp1, llm)
45      REAL massebx(iip1, jjp1, llm), masseby(iip1, jjm, llm)      REAL massebx(iip1, jjp1, llm), masseby(iip1, jjm, llm)
46      REAL w(iip1, jjp1, llm), ecin(iip1, jjp1, llm), convm(iip1, jjp1, llm)      REAL ecin(iip1, jjp1, llm)
47    
48      ! Champ contenant les scalaires advectés      ! Champ contenant les scalaires advect\'es
49      real Q(iip1, jjp1, llm, nQ)      real Q(iip1, jjp1, llm, nQ)
50    
51      ! Champs cumulés      ! Champs cumul\'es
52      real, save:: ps_cum(iip1, jjp1)      real, save:: ps_cum(iip1, jjp1)
53      real, save:: masse_cum(iip1, jjp1, llm)      real, save:: masse_cum(iip1, jjp1, llm)
54      real, save:: flux_u_cum(iip1, jjp1, llm)      real, save:: flux_u_cum(iip1, jjp1, llm)
# Line 72  contains Line 56  contains
56      real, save:: Q_cum(iip1, jjp1, llm, nQ)      real, save:: Q_cum(iip1, jjp1, llm, nQ)
57      real, save:: flux_uQ_cum(iip1, jjp1, llm, nQ)      real, save:: flux_uQ_cum(iip1, jjp1, llm, nQ)
58      real, save:: flux_vQ_cum(iip1, jjm, llm, nQ)      real, save:: flux_vQ_cum(iip1, jjm, llm, nQ)
     real dQ(iip1, jjp1, llm, nQ)  
59    
60      ! champs de tansport en moyenne zonale      ! champs de tansport en moyenne zonale
61      integer itr      integer itr
     integer, parameter:: ntr = 5  
   
     character(len=10), save:: znom(ntr, nQ)  
     character(len=26), save:: znoml(ntr, nQ)  
     character(len=12), save:: zunites(ntr, nQ)  
   
62      integer, parameter:: iave = 1, itot = 2, immc = 3, itrs = 4, istn = 5      integer, parameter:: iave = 1, itot = 2, immc = 3, itrs = 4, istn = 5
     character(len=3), parameter:: ctrs(ntr) = (/'   ', 'TOT', 'MMC', 'TRS', &  
          'STN'/)  
63    
64      real zvQ(jjm, llm, ntr, nQ), zvQtmp(jjm, llm)      real vq(jjm, llm, ntr, nQ), vqtmp(jjm, llm)
65      real zavQ(jjm, 2: ntr, nQ), psiQ(jjm, llm + 1, nQ)      real avq(jjm, 2: ntr, nQ), psiQ(jjm, llm + 1, nQ)
66      real zmasse(jjm, llm)      real zmasse(jjm, llm)
67      real zv(jjm, llm), psi(jjm, llm + 1)      real v(jjm, llm), psi(jjm, llm + 1)
68      integer i, j, l, iQ      integer i, j, l, iQ
69    
     ! Initialisation du fichier contenant les moyennes zonales.  
   
     integer, save:: fileid  
     integer thoriid, zvertiid  
   
     real zjulian  
     integer zan, dayref  
   
     real rlong(jjm), rlatg(jjm)  
   
70      !-----------------------------------------------------------------      !-----------------------------------------------------------------
71    
     !!print *, "Call sequence information: bilan_dyn"  
   
     first_call: if (first) then  
        ! initialisation des fichiers  
        first = .false.  
        ! ncum est la frequence de stokage en pas de temps  
        ncum = day_step / iperiod * periodav  
        dt_cum = ncum * dt_app  
   
        ! Initialisation du fichier contenant les moyennes zonales  
   
        zan = annee_ref  
        dayref = day_ref  
        CALL ymds2ju(zan, 1, dayref, 0.0, zjulian)  
   
        rlong = 0.  
        rlatg = rlatv*180./pi  
   
        call histbeg_totreg('dynzon', rlong(:1), rlatg, 1, 1, 1, jjm, itau_dyn, &  
             zjulian, dt_cum, thoriid, fileid)  
   
        ! Appel à histvert pour la grille verticale  
   
        call histvert(fileid, 'presnivs', 'Niveaux sigma', 'mb', llm, presnivs, &  
             zvertiid)  
   
        ! Appels à histdef pour la définition des variables à sauvegarder  
        do iQ = 1, nQ  
           do itr = 1, ntr  
              if (itr == 1) then  
                 znom(itr, iQ) = nom(iQ)  
                 znoml(itr, iQ) = nom(iQ)  
                 zunites(itr, iQ) = unites(iQ)  
              else  
                 znom(itr, iQ) = ctrs(itr)//'v'//nom(iQ)  
                 znoml(itr, iQ) = 'transport : v * '//nom(iQ)//' '//ctrs(itr)  
                 zunites(itr, iQ) = 'm/s * '//unites(iQ)  
              endif  
           enddo  
        enddo  
   
        ! Déclarations des champs avec dimension verticale  
        do iQ = 1, nQ  
           do itr = 1, ntr  
              call histdef(fileid, znom(itr, iQ), znoml(itr, iQ), &  
                   zunites(itr, iQ), 1, jjm, thoriid, llm, 1, llm, zvertiid, &  
                   'ave(X)', dt_cum, dt_cum)  
           enddo  
           ! Déclarations pour les fonctions de courant  
           call histdef(fileid, 'psi'//nom(iQ), 'stream fn. '//znoml(itot, iQ), &  
                zunites(itot, iQ), 1, jjm, thoriid, llm, 1, llm, zvertiid, &  
                'ave(X)', dt_cum, dt_cum)  
        enddo  
   
        ! Déclarations pour les champs de transport d'air  
        call histdef(fileid, 'masse', 'masse', &  
             'kg', 1, jjm, thoriid, llm, 1, llm, zvertiid, &  
             'ave(X)', dt_cum, dt_cum)  
        call histdef(fileid, 'v', 'v', &  
             'm/s', 1, jjm, thoriid, llm, 1, llm, zvertiid, &  
             'ave(X)', dt_cum, dt_cum)  
        ! Déclarations pour les fonctions de courant  
        call histdef(fileid, 'psi', 'stream fn. MMC ', 'mega t/s', &  
             1, jjm, thoriid, llm, 1, llm, zvertiid, &  
             'ave(X)', dt_cum, dt_cum)  
   
        ! Déclaration des champs 1D de transport en latitude  
        do iQ = 1, nQ  
           do itr = 2, ntr  
              call histdef(fileid, 'a'//znom(itr, iQ), znoml(itr, iQ), &  
                   zunites(itr, iQ), 1, jjm, thoriid, 1, 1, 1, -99, &  
                   'ave(X)', dt_cum, dt_cum)  
           enddo  
        enddo  
   
        CALL histend(fileid)  
     endif first_call  
   
     itau = itau + 1  
   
72      ! Calcul des champs dynamiques      ! Calcul des champs dynamiques
73    
74      ! Énergie cinétique      ! \'Energie cin\'etique
75      ucont = 0      ucont = 0
76      CALL covcont(llm, ucov, vcov, ucont, vcont)      CALL covcont(llm, ucov, vcov, ucont, vcont)
77      CALL enercin(vcov, ucov, vcont, ucont, ecin)      CALL enercin(vcov, ucov, vcont, ucont, ecin)
78    
79      ! moment cinétique      ! moment cin\'etique
80      do l = 1, llm      forall (l = 1: llm)
81         ang(:, :, l) = ucov(:, :, l) + constang_2d         ang(:, :, l) = ucov(:, :, l) + constang_2d
82         unat(:, :, l) = ucont(:, :, l)*cu_2d         unat(:, :, l) = ucont(:, :, l) * cu_2d
83      enddo      end forall
84    
85      Q(:, :, :, 1) = teta * pk / cpp      Q(:, :, :, 1) = teta * pk / cpp
86      Q(:, :, :, 2) = phi      Q(:, :, :, 2) = phi
# Line 217  contains Line 102  contains
102         flux_uQ_cum = 0.         flux_uQ_cum = 0.
103      endif      endif
104    
105        itau = itau + 1
106      icum = icum + 1      icum = icum + 1
107    
108      ! Accumulation des flux de masse horizontaux      ! Accumulation des flux de masse horizontaux
# Line 224  contains Line 110  contains
110      masse_cum = masse_cum + masse      masse_cum = masse_cum + masse
111      flux_u_cum = flux_u_cum + flux_u      flux_u_cum = flux_u_cum + flux_u
112      flux_v_cum = flux_v_cum + flux_v      flux_v_cum = flux_v_cum + flux_v
113      do iQ = 1, nQ      forall (iQ = 1: nQ) Q_cum(:, :, :, iQ) = Q_cum(:, :, :, iQ) &
114         Q_cum(:, :, :, iQ) = Q_cum(:, :, :, iQ) + Q(:, :, :, iQ)*masse           + Q(:, :, :, iQ) * masse
     enddo  
   
     ! FLUX ET TENDANCES  
115    
116      ! Flux longitudinal      ! Flux longitudinal
117      forall (iQ = 1: nQ, i = 1: iim) flux_uQ_cum(i, :, :, iQ) &      forall (iQ = 1: nQ, i = 1: iim) flux_uQ_cum(i, :, :, iQ) &
# Line 236  contains Line 119  contains
119           + flux_u(i, :, :) * 0.5 * (Q(i, :, :, iQ) + Q(i + 1, :, :, iQ))           + flux_u(i, :, :) * 0.5 * (Q(i, :, :, iQ) + Q(i + 1, :, :, iQ))
120      flux_uQ_cum(iip1, :, :, :) = flux_uQ_cum(1, :, :, :)      flux_uQ_cum(iip1, :, :, :) = flux_uQ_cum(1, :, :, :)
121    
122      ! Flux méridien      ! Flux m\'eridien
123      forall (iQ = 1: nQ, j = 1: jjm) flux_vQ_cum(:, j, :, iQ) &      forall (iQ = 1: nQ, j = 1: jjm) flux_vQ_cum(:, j, :, iQ) &
124           = flux_vQ_cum(:, j, :, iQ) &           = flux_vQ_cum(:, j, :, iQ) &
125           + flux_v(:, j, :) * 0.5 * (Q(:, j, :, iQ) + Q(:, j + 1, :, iQ))           + flux_v(:, j, :) * 0.5 * (Q(:, j, :, iQ) + Q(:, j + 1, :, iQ))
126    
     ! tendances  
   
     ! convergence horizontale  
     call convflu(flux_uQ_cum, flux_vQ_cum, llm*nQ, dQ)  
   
     ! calcul de la vitesse verticale  
     call convmas(flux_u_cum, flux_v_cum, convm)  
     CALL vitvert(convm, w)  
   
     do iQ = 1, nQ  
        do l = 1, llm-1  
           do j = 1, jjp1  
              do i = 1, iip1  
                 ww = -0.5*w(i, j, l + 1)*(Q(i, j, l, iQ) + Q(i, j, l + 1, iQ))  
                 dQ(i, j, l, iQ) = dQ(i, j, l, iQ)-ww  
                 dQ(i, j, l + 1, iQ) = dQ(i, j, l + 1, iQ) + ww  
              enddo  
           enddo  
        enddo  
     enddo  
   
     ! PAS DE TEMPS D'ECRITURE  
   
127      writing_step: if (icum == ncum) then      writing_step: if (icum == ncum) then
128         ! Normalisation         ! Normalisation
129         do iQ = 1, nQ         forall (iQ = 1: nQ) Q_cum(:, :, :, iQ) = Q_cum(:, :, :, iQ) / masse_cum
           Q_cum(:, :, :, iQ) = Q_cum(:, :, :, iQ)/masse_cum  
        enddo  
130         ps_cum = ps_cum / ncum         ps_cum = ps_cum / ncum
131         masse_cum = masse_cum / ncum         masse_cum = masse_cum / ncum
132         flux_u_cum = flux_u_cum / ncum         flux_u_cum = flux_u_cum / ncum
133         flux_v_cum = flux_v_cum / ncum         flux_v_cum = flux_v_cum / ncum
134         flux_uQ_cum = flux_uQ_cum / ncum         flux_uQ_cum = flux_uQ_cum / ncum
135         flux_vQ_cum = flux_vQ_cum / ncum         flux_vQ_cum = flux_vQ_cum / ncum
        dQ = dQ / ncum  
   
        ! A retravailler eventuellement  
        ! division de dQ par la masse pour revenir aux bonnes grandeurs  
        do iQ = 1, nQ  
           dQ(:, :, :, iQ) = dQ(:, :, :, iQ)/masse_cum  
        enddo  
136    
137         ! Transport méridien         ! Transport m\'eridien
138    
139         ! cumul zonal des masses des mailles         ! Cumul zonal des masses des mailles
140    
141         zv = 0.         v = 0.
142         zmasse = 0.         zmasse = 0.
143         call massbar(masse_cum, massebx, masseby)         call massbar(masse_cum, massebx, masseby)
144         do l = 1, llm         do l = 1, llm
145            do j = 1, jjm            do j = 1, jjm
146               do i = 1, iim               do i = 1, iim
147                  zmasse(j, l) = zmasse(j, l) + masseby(i, j, l)                  zmasse(j, l) = zmasse(j, l) + masseby(i, j, l)
148                  zv(j, l) = zv(j, l) + flux_v_cum(i, j, l)                  v(j, l) = v(j, l) + flux_v_cum(i, j, l)
149               enddo               enddo
150               zfactv(j, l) = cv_2d(1, j)/zmasse(j, l)               factv(j, l) = cv_2d(1, j) / zmasse(j, l)
151            enddo            enddo
152         enddo         enddo
153    
154         ! Transport dans le plan latitude-altitude         ! Transport dans le plan latitude-altitude
155    
156         zvQ = 0.         vq = 0.
157         psiQ = 0.         psiQ = 0.
158         do iQ = 1, nQ         do iQ = 1, nQ
159            zvQtmp = 0.            vqtmp = 0.
160            do l = 1, llm            do l = 1, llm
161               do j = 1, jjm               do j = 1, jjm
162                  ! Calcul des moyennes zonales du transort total et de zvQtmp                  ! Calcul des moyennes zonales du transport total et de vqtmp
163                  do i = 1, iim                  do i = 1, iim
164                     zvQ(j, l, itot, iQ) = zvQ(j, l, itot, iQ) &                     vq(j, l, itot, iQ) = vq(j, l, itot, iQ) &
165                          + flux_vQ_cum(i, j, l, iQ)                          + flux_vQ_cum(i, j, l, iQ)
166                     zqy =  0.5 * (Q_cum(i, j, l, iQ) * masse_cum(i, j, l) &                     qy =  0.5 * (Q_cum(i, j, l, iQ) * masse_cum(i, j, l) &
167                          + Q_cum(i, j + 1, l, iQ) * masse_cum(i, j + 1, l))                          + Q_cum(i, j + 1, l, iQ) * masse_cum(i, j + 1, l))
168                     zvQtmp(j, l) = zvQtmp(j, l) + flux_v_cum(i, j, l) * zqy &                     vqtmp(j, l) = vqtmp(j, l) + flux_v_cum(i, j, l) * qy &
169                          / (0.5 * (masse_cum(i, j, l) + masse_cum(i, j + 1, l)))                          / (0.5 * (masse_cum(i, j, l) + masse_cum(i, j + 1, l)))
170                     zvQ(j, l, iave, iQ) = zvQ(j, l, iave, iQ) + zqy                     vq(j, l, iave, iQ) = vq(j, l, iave, iQ) + qy
171                  enddo                  enddo
172                  ! Decomposition                  ! Decomposition
173                  zvQ(j, l, iave, iQ) = zvQ(j, l, iave, iQ)/zmasse(j, l)                  vq(j, l, iave, iQ) = vq(j, l, iave, iQ) / zmasse(j, l)
174                  zvQ(j, l, itot, iQ) = zvQ(j, l, itot, iQ)*zfactv(j, l)                  vq(j, l, itot, iQ) = vq(j, l, itot, iQ) * factv(j, l)
175                  zvQtmp(j, l) = zvQtmp(j, l)*zfactv(j, l)                  vqtmp(j, l) = vqtmp(j, l) * factv(j, l)
176                  zvQ(j, l, immc, iQ) = zv(j, l)*zvQ(j, l, iave, iQ)*zfactv(j, l)                  vq(j, l, immc, iQ) = v(j, l) * vq(j, l, iave, iQ) * factv(j, l)
177                  zvQ(j, l, itrs, iQ) = zvQ(j, l, itot, iQ)-zvQtmp(j, l)                  vq(j, l, itrs, iQ) = vq(j, l, itot, iQ) - vqtmp(j, l)
178                  zvQ(j, l, istn, iQ) = zvQtmp(j, l)-zvQ(j, l, immc, iQ)                  vq(j, l, istn, iQ) = vqtmp(j, l) - vq(j, l, immc, iQ)
179               enddo               enddo
180            enddo            enddo
181            ! fonction de courant meridienne pour la quantite Q            ! Fonction de courant m\'eridienne pour la quantit\'e Q
182            do l = llm, 1, -1            do l = llm, 1, -1
183               do j = 1, jjm               do j = 1, jjm
184                  psiQ(j, l, iQ) = psiQ(j, l + 1, iQ) + zvQ(j, l, itot, iQ)                  psiQ(j, l, iQ) = psiQ(j, l + 1, iQ) + vq(j, l, itot, iQ)
185               enddo               enddo
186            enddo            enddo
187         enddo         enddo
188    
189         ! fonction de courant pour la circulation meridienne moyenne         ! Fonction de courant pour la circulation m\'eridienne moyenne
190         psi = 0.         psi = 0.
191         do l = llm, 1, -1         do l = llm, 1, -1
192            do j = 1, jjm            do j = 1, jjm
193               psi(j, l) = psi(j, l + 1) + zv(j, l)               psi(j, l) = psi(j, l + 1) + v(j, l)
194               zv(j, l) = zv(j, l)*zfactv(j, l)               v(j, l) = v(j, l) * factv(j, l)
195            enddo            enddo
196         enddo         enddo
197    
198         ! sorties proprement dites         ! Sorties proprement dites
199         do iQ = 1, nQ         do iQ = 1, nQ
200            do itr = 1, ntr            do itr = 1, ntr
201               call histwrite(fileid, znom(itr, iQ), itau, zvQ(:, :, itr, iQ))               call histwrite(fileid, znom(itr, iQ), itau, vq(:, :, itr, iQ))
202            enddo            enddo
203            call histwrite(fileid, 'psi'//nom(iQ), itau, psiQ(:, :llm, iQ))            call histwrite(fileid, 'psi' // nom(iQ), itau, psiQ(:, :llm, iQ))
204         enddo         enddo
205    
206         call histwrite(fileid, 'masse', itau, zmasse)         call histwrite(fileid, 'masse', itau, zmasse)
207         call histwrite(fileid, 'v', itau, zv)         call histwrite(fileid, 'v', itau, v)
208         psi = psi*1.e-9         psi = psi * 1e-9
209         call histwrite(fileid, 'psi', itau, psi(:, :llm))         call histwrite(fileid, 'psi', itau, psi(:, :llm))
210    
211         ! Intégrale verticale         ! Int\'egrale verticale
212    
213         forall (iQ = 1: nQ, itr = 2: ntr) zavQ(:, itr, iQ) &         forall (iQ = 1: nQ, itr = 2: ntr) avq(:, itr, iQ) &
214              = sum(zvQ(:, :, itr, iQ) * zmasse, dim=2) / cv_2d(1, :)              = sum(vq(:, :, itr, iQ) * zmasse, dim=2) / cv_2d(1, :)
215    
216         do iQ = 1, nQ         do iQ = 1, nQ
217            do itr = 2, ntr            do itr = 2, ntr
218               call histwrite(fileid, 'a'//znom(itr, iQ), itau, zavQ(:, itr, iQ))               call histwrite(fileid, 'a' // znom(itr, iQ), itau, avq(:, itr, iQ))
219            enddo            enddo
220         enddo         enddo
221    
        ! On doit pouvoir tracer systematiquement la fonction de courant.  
222         icum = 0         icum = 0
223      endif writing_step      endif writing_step
224    

Legend:
Removed from v.56  
changed lines
  Added in v.161

  ViewVC Help
Powered by ViewVC 1.1.21