/[lmdze]/trunk/phylmd/fisrtilp.f
ViewVC logotype

Diff of /trunk/phylmd/fisrtilp.f

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

trunk/libf/phylmd/fisrtilp.f90 revision 68 by guez, Wed Nov 14 16:59:30 2012 UTC trunk/phylmd/fisrtilp.f revision 103 by guez, Fri Aug 29 13:00:05 2014 UTC
# Line 9  contains Line 9  contains
9         frac_impa, frac_nucl, prfl, psfl, rhcl)         frac_impa, frac_nucl, prfl, psfl, rhcl)
10    
11      ! From phylmd/fisrtilp.F, version 1.2 2004/11/09 16:55:40      ! From phylmd/fisrtilp.F, version 1.2 2004/11/09 16:55:40
12      ! Author: Z. X. Li (LMD/CNRS), 20 mars 1995      ! First author: Z. X. Li (LMD/CNRS), 20 mars 1995
13        ! Other authors: Olivier, AA, IM, YM, MAF
14    
15      ! Objet: condensation et précipitation stratiforme, schéma de      ! Objet : condensation et précipitation stratiforme, schéma de
16      ! nuage, schéma de condensation à grande échelle (pluie).      ! nuage, schéma de condensation à grande échelle (pluie).
17    
     USE dimphy, ONLY: klev, klon  
     USE suphec_m, ONLY: rcpd, rd, retv, rg, rlstt, rlvtt, rtt  
     USE yoethf_m, ONLY: r2es, r5ies, r5les, rvtmp2  
     USE fcttre, ONLY: dqsatl, dqsats, foede, foeew, qsatl, qsats, thermcep  
18      USE comfisrtilp, ONLY: cld_lc_con, cld_lc_lsc, cld_tau_con, &      USE comfisrtilp, ONLY: cld_lc_con, cld_lc_lsc, cld_tau_con, &
19           cld_tau_lsc, coef_eva, ffallv_con, ffallv_lsc, iflag_pdf, reevap_ice           cld_tau_lsc, coef_eva, ffallv_con, ffallv_lsc, iflag_pdf, reevap_ice
20        USE dimphy, ONLY: klev, klon
21        USE fcttre, ONLY: dqsatl, dqsats, foede, foeew, qsatl, qsats, thermcep
22      USE numer_rec_95, ONLY: nr_erf      USE numer_rec_95, ONLY: nr_erf
23        USE suphec_m, ONLY: rcpd, rd, retv, rg, rlstt, rlvtt, rtt
24        USE yoethf_m, ONLY: r2es, r5ies, r5les, rvtmp2
25    
26      ! Arguments:      ! Arguments:
27    
28      REAL, INTENT (IN):: dtime ! intervalle du temps (s)                      REAL, INTENT (IN):: dtime ! intervalle du temps (s)
29      REAL, INTENT (IN):: paprs(klon, klev+1) ! pression a inter-couche        REAL, INTENT (IN):: paprs(klon, klev+1) ! pression a inter-couche
30      REAL, INTENT (IN):: pplay(klon, klev) ! pression au milieu de couche      REAL, INTENT (IN):: pplay(klon, klev) ! pression au milieu de couche
31      REAL, INTENT (IN):: t(klon, klev) ! temperature (K)      REAL, INTENT (IN):: t(klon, klev) ! temperature (K)
32      REAL q(klon, klev) ! humidite specifique (kg/kg)                        REAL, INTENT (IN):: q(klon, klev) ! humidite specifique (kg/kg)
33      REAL d_t(klon, klev) ! incrementation de la temperature (K)              LOGICAL, INTENT (IN):: ptconv(klon, klev)
34      REAL d_q(klon, klev) ! incrementation de la vapeur d'eau            
35      REAL d_ql(klon, klev) ! incrementation de l'eau liquide                  REAL, INTENT (IN):: ratqs(klon, klev)
36      REAL rneb(klon, klev) ! fraction nuageuse                                ! determine la largeur de distribution de vapeur
37      REAL radliq(klon, klev) ! eau liquide utilisee dans rayonnements    
38      REAL rhcl(klon, klev) ! humidite relative en ciel clair                  REAL, INTENT (out):: d_t(klon, klev) ! incrementation de la temperature (K)
39      REAL rain(klon) ! pluies (mm/s)                                        REAL, INTENT (out):: d_q(klon, klev) ! incrementation de la vapeur d'eau
40      REAL snow(klon) ! neige (mm/s)                                          REAL, INTENT (out):: d_ql(klon, klev) ! incrementation de l'eau liquide
41      REAL prfl(klon, klev+1) ! flux d'eau precipitante aux interfaces (kg/m2/s)      REAL, INTENT (out):: rneb(klon, klev) ! fraction nuageuse
42      REAL psfl(klon, klev+1) ! flux d'eau precipitante aux interfaces (kg/m2/s)  
43      ! Coeffients de fraction lessivee : pour OFF-LINE      REAL, INTENT (out):: radliq(klon, klev)
44        ! eau liquide utilisee dans rayonnement
45      REAL pfrac_nucl(klon, klev)  
46      REAL pfrac_1nucl(klon, klev)      REAL, INTENT (out):: rain(klon) ! pluies (mm/s)
47      REAL pfrac_impa(klon, klev)      REAL, INTENT (out):: snow(klon) ! neige (mm/s)
48    
49        ! Coeffients de fraction lessivee :
50        REAL, INTENT (inout):: pfrac_impa(klon, klev)
51        REAL, INTENT (inout):: pfrac_nucl(klon, klev)
52        REAL, INTENT (inout):: pfrac_1nucl(klon, klev)
53    
54      ! Fraction d'aerosols lessivee par impaction et par nucleation      ! Fraction d'aerosols lessivee par impaction
55      ! POur ON-LINE      REAL, INTENT (out):: frac_impa(klon, klev)
56    
57        ! Fraction d'aerosols lessivee par nucleation
58        REAL, INTENT (out):: frac_nucl(klon, klev)
59    
60        REAL, INTENT (out):: prfl(klon, klev+1)
61        ! flux d'eau precipitante aux interfaces (kg/m2/s)
62    
63        REAL, INTENT (out):: psfl(klon, klev+1)
64        ! flux d'eau precipitante aux interfaces (kg/m2/s)
65    
66        REAL, INTENT (out):: rhcl(klon, klev) ! humidite relative en ciel clair
67    
68        ! Local:
69    
     REAL frac_impa(klon, klev)  
     REAL frac_nucl(klon, klev)  
70      REAL zct(klon), zcl(klon)      REAL zct(klon), zcl(klon)
     !AA  
71    
72      ! Options du programme:      ! Options du programme:
73    
# Line 60  contains Line 76  contains
76    
77      INTEGER ninter ! sous-intervals pour la precipitation      INTEGER ninter ! sous-intervals pour la precipitation
78      PARAMETER (ninter=5)      PARAMETER (ninter=5)
79      LOGICAL evap_prec ! evaporation de la pluie                            LOGICAL evap_prec ! evaporation de la pluie
80      PARAMETER (evap_prec=.TRUE.)      PARAMETER (evap_prec=.TRUE.)
     REAL ratqs(klon, klev) ! determine la largeur de distribution de vapeur  
     LOGICAL ptconv(klon, klev) ! determine la largeur de distribution de vapeur  
81      REAL zpdf_sig(klon), zpdf_k(klon), zpdf_delta(klon)      REAL zpdf_sig(klon), zpdf_k(klon), zpdf_delta(klon)
82      REAL zpdf_a(klon), zpdf_b(klon), zpdf_e1(klon), zpdf_e2(klon)      REAL zpdf_a(klon), zpdf_b(klon), zpdf_e1(klon), zpdf_e2(klon)
83    
84      LOGICAL cpartiel ! condensation partielle                              LOGICAL cpartiel ! condensation partielle
85      PARAMETER (cpartiel=.TRUE.)      PARAMETER (cpartiel=.TRUE.)
86      REAL t_coup      REAL t_coup
87      PARAMETER (t_coup=234.0)      PARAMETER (t_coup=234.0)
88    
     ! Variables locales:  
   
89      INTEGER i, k, n, kk      INTEGER i, k, n, kk
90      REAL zqs(klon), zdqs(klon), zdelta, zcor, zcvm5      REAL zqs(klon), zdqs(klon), zcor, zcvm5
91        logical zdelta
92      REAL zrfl(klon), zrfln(klon), zqev, zqevt      REAL zrfl(klon), zrfln(klon), zqev, zqevt
93      REAL zoliq(klon), zcond(klon), zq(klon), zqn(klon), zdelq      REAL zoliq(klon), zcond(klon), zq(klon), zqn(klon), zdelq
94      REAL ztglace, zt(klon)      REAL ztglace, zt(klon)
95      INTEGER nexpo ! exponentiel pour glace/eau                              INTEGER nexpo ! exponentiel pour glace/eau
96      REAL zdz(klon), zrho(klon), ztot(klon), zrhol(klon)      REAL zdz(klon), zrho(klon), ztot(klon), zrhol(klon)
97      REAL zchau(klon), zfroi(klon), zfice(klon), zneb(klon)      REAL zchau(klon), zfroi(klon), zfice(klon), zneb(klon)
98    
99      LOGICAL appel1er      LOGICAL:: appel1er = .TRUE.
     SAVE appel1er  
100    
101      !---------------------------------------------------------------      ! Variables traceurs:
102        ! Provisoire !!! Parametres alpha du lessivage
103        ! A priori on a 4 scavenging numbers possibles
104    
105      !AA Variables traceurs:      REAL, save:: a_tr_sca(4)
     !AA  Provisoire !!! Parametres alpha du lessivage  
     !AA  A priori on a 4 scavenging numbers possibles  
   
     REAL a_tr_sca(4)  
     SAVE a_tr_sca  
106    
107      ! Variables intermediaires      ! Variables intermediaires
108    
109      REAL zalpha_tr      REAL zalpha_tr
110      REAL zfrac_lessi      REAL zfrac_lessi
111      REAL zprec_cond(klon)      REAL zprec_cond(klon)
     !AA  
112      REAL zmair, zcpair, zcpeau      REAL zmair, zcpair, zcpeau
113      !     Pour la conversion eau-neige      ! Pour la conversion eau-neige
114      REAL zlh_solid(klon), zm_solid      REAL zlh_solid(klon), zm_solid
     !IM  
     INTEGER klevm1  
     !---------------------------------------------------------------  
115    
116      ! Fonctions en ligne:      ! Fonctions en ligne:
117    
118      REAL fallvs, fallvc ! vitesse de chute pour crystaux de glace            REAL fallvs, fallvc ! vitesse de chute pour crystaux de glace
119      REAL zzz      REAL zzz
120    
121      fallvc(zzz) = 3.29/2.0*((zzz)**0.16)*ffallv_con      fallvc(zzz) = 3.29/2.0*((zzz)**0.16)*ffallv_con
122      fallvs(zzz) = 3.29/2.0*((zzz)**0.16)*ffallv_lsc      fallvs(zzz) = 3.29/2.0*((zzz)**0.16)*ffallv_lsc
123    
124      DATA appel1er/ .TRUE./      !---------------------------------------------------------------
125      !ym  
126      zdelq = 0.0      zdelq = 0.0
127    
128      IF (appel1er) THEN      IF (appel1er) THEN
   
129         PRINT *, 'fisrtilp, ninter:', ninter         PRINT *, 'fisrtilp, ninter:', ninter
130         PRINT *, 'fisrtilp, evap_prec:', evap_prec         PRINT *, 'fisrtilp, evap_prec:', evap_prec
131         PRINT *, 'fisrtilp, cpartiel:', cpartiel         PRINT *, 'fisrtilp, cpartiel:', cpartiel
# Line 131  contains Line 135  contains
135         END IF         END IF
136         appel1er = .FALSE.         appel1er = .FALSE.
137    
138         !AA initialiation provisoire         ! initialiation provisoire
139         a_tr_sca(1) = -0.5         a_tr_sca(1) = -0.5
140         a_tr_sca(2) = -0.5         a_tr_sca(2) = -0.5
141         a_tr_sca(3) = -0.5         a_tr_sca(3) = -0.5
142         a_tr_sca(4) = -0.5         a_tr_sca(4) = -0.5
143    
144         !AA Initialisation a 1 des coefs des fractions lessivees         ! Initialisation a 1 des coefs des fractions lessivees
   
145         DO k = 1, klev         DO k = 1, klev
146            DO i = 1, klon            DO i = 1, klon
147               pfrac_nucl(i, k) = 1.               pfrac_nucl(i, k) = 1.
# Line 146  contains Line 149  contains
149               pfrac_impa(i, k) = 1.               pfrac_impa(i, k) = 1.
150            END DO            END DO
151         END DO         END DO
152        END IF
153    
154        ! Initialisation a 0 de zoliq
     END IF !  test sur appel1er  
     !MAf Initialisation a 0 de zoliq  
155      DO i = 1, klon      DO i = 1, klon
156         zoliq(i) = 0.         zoliq(i) = 0.
157      END DO      END DO
158      ! Determiner les nuages froids par leur temperature      ! Determiner les nuages froids par leur temperature
159      !  nexpo regle la raideur de la transition eau liquide / eau glace.      ! nexpo regle la raideur de la transition eau liquide / eau glace.
160    
161      ztglace = rtt - 15.0      ztglace = rtt - 15.0
162      nexpo = 6      nexpo = 6
     !cc      nexpo = 1  
163    
164      ! Initialiser les sorties:      ! Initialiser les sorties:
165    
# Line 192  contains Line 193  contains
193         zneb(i) = seuil_neb         zneb(i) = seuil_neb
194      END DO      END DO
195    
196        ! Pour plus de securite
     !AA Pour plus de securite  
197    
198      zalpha_tr = 0.      zalpha_tr = 0.
199      zfrac_lessi = 0.      zfrac_lessi = 0.
200    
201      !AA----------------------------------------------------------      loop_vertical: DO k = klev, 1, -1
   
     ! Boucle verticale (du haut vers le bas)  
   
     !IM : klevm1  
     klevm1 = klev - 1  
     DO  k = klev, 1, -1  
   
        !AA----------------------------------------------------------  
   
202         DO i = 1, klon         DO i = 1, klon
203            zt(i) = t(i, k)            zt(i) = t(i, k)
204            zq(i) = q(i, k)            zq(i) = q(i, k)
# Line 220  contains Line 211  contains
211         ! surface.         ! surface.
212    
213         DO i = 1, klon         DO i = 1, klon
214            IF (k<=klevm1) THEN            IF (k <= klev - 1) THEN
215               zmair = (paprs(i, k)-paprs(i, k+1))/rg               zmair = (paprs(i, k)-paprs(i, k+1))/rg
216               zcpair = rcpd*(1.0+rvtmp2*zq(i))               zcpair = rcpd*(1.0+rvtmp2*zq(i))
217               zcpeau = rcpd*rvtmp2               zcpeau = rcpd*rvtmp2
# Line 230  contains Line 221  contains
221            END IF            END IF
222         END DO         END DO
223    
        ! Calculer l'evaporation de la precipitation  
   
   
   
224         IF (evap_prec) THEN         IF (evap_prec) THEN
225              ! Calculer l'evaporation de la precipitation
226            DO i = 1, klon            DO i = 1, klon
227               IF (zrfl(i)>0.) THEN               IF (zrfl(i)>0.) THEN
228                  IF (thermcep) THEN                  IF (thermcep) THEN
229                     zdelta = max(0., sign(1., rtt-zt(i)))                     zqs(i) = r2es*foeew(zt(i), rtt >= zt(i))/pplay(i, k)
                    zqs(i) = r2es*foeew(zt(i), zdelta)/pplay(i, k)  
230                     zqs(i) = min(0.5, zqs(i))                     zqs(i) = min(0.5, zqs(i))
231                     zcor = 1./(1.-retv*zqs(i))                     zcor = 1./(1.-retv*zqs(i))
232                     zqs(i) = zqs(i)*zcor                     zqs(i) = zqs(i)*zcor
# Line 277  contains Line 264  contains
264    
265         IF (thermcep) THEN         IF (thermcep) THEN
266            DO i = 1, klon            DO i = 1, klon
267               zdelta = max(0., sign(1., rtt-zt(i)))               zdelta = rtt >= zt(i)
268               zcvm5 = r5les*rlvtt*(1.-zdelta) + r5ies*rlstt*zdelta               zcvm5 = merge(r5ies*rlstt, r5les*rlvtt, zdelta)
269               zcvm5 = zcvm5/rcpd/(1.0+rvtmp2*zq(i))               zcvm5 = zcvm5/rcpd/(1.0+rvtmp2*zq(i))
270               zqs(i) = r2es*foeew(zt(i), zdelta)/pplay(i, k)               zqs(i) = r2es*foeew(zt(i), zdelta)/pplay(i, k)
271               zqs(i) = min(0.5, zqs(i))               zqs(i) = min(0.5, zqs(i))
# Line 302  contains Line 289  contains
289         ! de l'eau condensee:         ! de l'eau condensee:
290    
291         IF (cpartiel) THEN         IF (cpartiel) THEN
292              ! Calcul de l'eau condensee et de la fraction nuageuse et de l'eau
293              ! nuageuse a partir des PDF de Sandrine Bony.
294              ! rneb : fraction nuageuse
295              ! zqn : eau totale dans le nuage
296              ! zcond : eau condensee moyenne dans la maille.
297    
298            !        print*, 'Dans partiel k=', k            ! on prend en compte le réchauffement qui diminue
299              ! la partie condensée
           !   Calcul de l'eau condensee et de la fraction nuageuse et de l'eau  
           !   nuageuse a partir des PDF de Sandrine Bony.  
           !   rneb  : fraction nuageuse  
           !   zqn   : eau totale dans le nuage  
           !   zcond : eau condensee moyenne dans la maille.  
300    
301            !           on prend en compte le réchauffement qui diminue            ! Version avec les ratqs
           !           la partie condensee  
   
           !   Version avec les raqts  
302    
303            IF (iflag_pdf==0) THEN            IF (iflag_pdf==0) THEN
   
304               DO i = 1, klon               DO i = 1, klon
305                  zdelq = min(ratqs(i, k), 0.99)*zq(i)                  zdelq = min(ratqs(i, k), 0.99)*zq(i)
306                  rneb(i, k) = (zq(i)+zdelq-zqs(i))/(2.0*zdelq)                  rneb(i, k) = (zq(i)+zdelq-zqs(i))/(2.0*zdelq)
307                  zqn(i) = (zq(i)+zdelq+zqs(i))/2.0                  zqn(i) = (zq(i)+zdelq+zqs(i))/2.0
308               END DO               END DO
   
309            ELSE            ELSE
310                 ! Version avec les nouvelles PDFs.
              !   Version avec les nouvelles PDFs.  
311               DO i = 1, klon               DO i = 1, klon
312                  IF (zq(i)<1.E-15) THEN                  IF (zq(i) < 1E-15) THEN
313                     zq(i) = 1.E-15                     zq(i) = 1E-15
314                  END IF                  END IF
315               END DO               END DO
316               DO i = 1, klon               DO i = 1, klon
# Line 351  contains Line 332  contains
332                     rneb(i, k) = 0.5*zpdf_e1(i)                     rneb(i, k) = 0.5*zpdf_e1(i)
333                     zqn(i) = zq(i)*zpdf_e2(i)/zpdf_e1(i)                     zqn(i) = zq(i)*zpdf_e2(i)/zpdf_e1(i)
334                  END IF                  END IF
   
335               END DO               END DO
   
   
336            END IF            END IF
337            ! iflag_pdf                                                
338            DO i = 1, klon            DO i = 1, klon
339               IF (rneb(i, k)<=0.0) zqn(i) = 0.0               IF (rneb(i, k)<=0.0) zqn(i) = 0.0
340               IF (rneb(i, k)>=1.0) zqn(i) = zq(i)               IF (rneb(i, k)>=1.0) zqn(i) = zq(i)
341               rneb(i, k) = max(0.0, min(1.0, rneb(i, k)))               rneb(i, k) = max(0., min(1., rneb(i, k)))
342               !  On ne divise pas par 1+zdqs pour forcer a avoir l'eau               ! On ne divise pas par 1 + zdqs pour forcer à avoir l'eau
343               !  predite par la convection.  ATTENTION !!! Il va               ! prédite par la convection. Attention : il va falloir
344               !  falloir verifier tout ca.               ! verifier tout ca.
345               zcond(i) = max(0.0, zqn(i)-zqs(i))*rneb(i, k)               zcond(i) = max(0., zqn(i)-zqs(i))*rneb(i, k)
              !           print*, 'ZDQS ', zdqs(i)  
              !--Olivier  
346               rhcl(i, k) = (zqs(i)+zq(i)-zdelq)/2./zqs(i)               rhcl(i, k) = (zqs(i)+zq(i)-zdelq)/2./zqs(i)
347               IF (rneb(i, k)<=0.0) rhcl(i, k) = zq(i)/zqs(i)               IF (rneb(i, k) <= 0.) rhcl(i, k) = zq(i) / zqs(i)
348               IF (rneb(i, k)>=1.0) rhcl(i, k) = 1.0               IF (rneb(i, k) >= 1.) rhcl(i, k) = 1.
              !--fin  
349            END DO            END DO
350         ELSE         ELSE
351            DO i = 1, klon            DO i = 1, klon
# Line 385  contains Line 360  contains
360    
361         DO i = 1, klon         DO i = 1, klon
362            zq(i) = zq(i) - zcond(i)            zq(i) = zq(i) - zcond(i)
           !         zt(i) = zt(i) + zcond(i) * RLVTT/RCPD  
363            zt(i) = zt(i) + zcond(i)*rlvtt/rcpd/(1.0+rvtmp2*zq(i))            zt(i) = zt(i) + zcond(i)*rlvtt/rcpd/(1.0+rvtmp2*zq(i))
364         END DO         END DO
365    
# Line 416  contains Line 390  contains
390                     zcl(i) = cld_lc_lsc                     zcl(i) = cld_lc_lsc
391                     zct(i) = 1./cld_tau_lsc                     zct(i) = 1./cld_tau_lsc
392                  END IF                  END IF
393                  !  quantité d'eau à élminier.                  ! quantité d'eau à élminier.
394                  zchau(i) = zct(i)*dtime/real(ninter)*zoliq(i)* &                  zchau(i) = zct(i)*dtime/real(ninter)*zoliq(i)* &
395                       (1.0-exp(-(zoliq(i)/zneb(i)/zcl(i))**2))*(1.-zfice(i))                       (1.0-exp(-(zoliq(i)/zneb(i)/zcl(i))**2))*(1.-zfice(i))
396                  !  meme chose pour la glace.                  ! meme chose pour la glace.
397                  IF (ptconv(i, k)) THEN                  IF (ptconv(i, k)) THEN
398                     zfroi(i) = dtime/real(ninter)/zdz(i)*zoliq(i)* &                     zfroi(i) = dtime/real(ninter)/zdz(i)*zoliq(i)* &
399                          fallvc(zrhol(i))*zfice(i)                          fallvc(zrhol(i))*zfice(i)
# Line 450  contains Line 424  contains
424         END DO         END DO
425    
426         ! Calculer les tendances de q et de t:         ! Calculer les tendances de q et de t:
   
427         DO i = 1, klon         DO i = 1, klon
428            d_q(i, k) = zq(i) - q(i, k)            d_q(i, k) = zq(i) - q(i, k)
429            d_t(i, k) = zt(i) - t(i, k)            d_t(i, k) = zt(i) - t(i, k)
430         END DO         END DO
431    
432         !AA--------------- Calcul du lessivage stratiforme  -------------         ! Calcul du lessivage stratiforme
   
433         DO i = 1, klon         DO i = 1, klon
434            zprec_cond(i) = max(zcond(i)-zoliq(i), 0.0)* &            zprec_cond(i) = max(zcond(i)-zoliq(i), 0.0)* &
435                 (paprs(i, k)-paprs(i, k+1))/rg                 (paprs(i, k)-paprs(i, k+1))/rg
436            IF (rneb(i, k)>0.0 .AND. zprec_cond(i)>0.) THEN            IF (rneb(i, k)>0.0 .AND. zprec_cond(i)>0.) THEN
437               !AA lessivage nucleation LMD5 dans la couche elle-meme               ! lessivage nucleation LMD5 dans la couche elle-meme
438               IF (t(i, k)>=ztglace) THEN               IF (t(i, k)>=ztglace) THEN
439                  zalpha_tr = a_tr_sca(3)                  zalpha_tr = a_tr_sca(3)
440               ELSE               ELSE
# Line 476  contains Line 448  contains
448               zfrac_lessi = 1. - exp(-zprec_cond(i)/zneb(i))               zfrac_lessi = 1. - exp(-zprec_cond(i)/zneb(i))
449               pfrac_1nucl(i, k) = pfrac_1nucl(i, k)*(1.-zneb(i)*zfrac_lessi)               pfrac_1nucl(i, k) = pfrac_1nucl(i, k)*(1.-zneb(i)*zfrac_lessi)
450            END IF            END IF
   
   
451         END DO         END DO
452         !AA Lessivage par impaction dans les couches en-dessous  
453         ! boucle sur i                                                 ! Lessivage par impaction dans les couches en-dessous
454           ! boucle sur i
455         DO kk = k - 1, 1, -1         DO kk = k - 1, 1, -1
456            DO i = 1, klon            DO i = 1, klon
457               IF (rneb(i, k)>0.0 .AND. zprec_cond(i)>0.) THEN               IF (rneb(i, k)>0. .AND. zprec_cond(i)>0.) THEN
458                  IF (t(i, kk)>=ztglace) THEN                  IF (t(i, kk)>=ztglace) THEN
459                     zalpha_tr = a_tr_sca(1)                     zalpha_tr = a_tr_sca(1)
460                  ELSE                  ELSE
# Line 495  contains Line 466  contains
466               END IF               END IF
467            END DO            END DO
468         END DO         END DO
469        end DO loop_vertical
        !AA----------------------------------------------------------  
        !                     FIN DE BOUCLE SUR K  
     end DO  
   
     !AA-----------------------------------------------------------  
470    
471      ! Pluie ou neige au sol selon la temperature de la 1ere couche      ! Pluie ou neige au sol selon la temperature de la 1ere couche
472    

Legend:
Removed from v.68  
changed lines
  Added in v.103

  ViewVC Help
Powered by ViewVC 1.1.21