Changeset 1742 for LMDZ5/trunk/libf/phylmd/phytrac.F90
- Timestamp:
- Apr 5, 2013, 1:49:35 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/phytrac.F90
r1670 r1742 3 3 SUBROUTINE phytrac( & 4 4 nstep, julien, gmtime, debutphy, & 5 lafin, pdtphys, u, v, t_seri, 5 lafin, pdtphys, u, v, t_seri, & 6 6 paprs, pplay, pmfu, pmfd, & 7 7 pen_u, pde_u, pen_d, pde_d, & … … 9 9 yu1, yv1, ftsol, pctsrf, & 10 10 ustar, u10m, v10m, & 11 xlat, frac_impa,frac_nucl,xlon, & 11 xlat, xlon, & 12 frac_impa,frac_nucl,beta_fisrt,beta_v1, & 12 13 presnivs, pphis, pphi, albsol, & 13 14 sh, rh, cldfra, rneb, & … … 15 16 pmflxr, pmflxs, prfl, psfl, & 16 17 da, phi, mp, upwd, & 18 phi2, d1a, dam, sij, & ! RomP 19 wdtrainA, wdtrainM, sigd, clw,elij, & ! RomP 20 evap, ep, epmlmMm, eplaMm, & ! RomP 17 21 dnwd, aerosol_couple, flxmass_w, & 18 22 tau_aero, piz_aero, cg_aero, ccm, & 19 23 rfname, & 24 d_tr_dyn, & ! RomP 20 25 tr_seri) 21 26 ! … … 23 28 ! Auteur(s) FH 24 29 ! Objet: Moniteur general des tendances traceurs 30 ! Modification R. Pilon 01 janvier 2012 transport+scavenging KE scheme : cvltr 31 ! Modification R. Pilon 10 octobre 2012 large scale scavenging incloud_scav + bc_scav 25 32 !====================================================================== 26 33 27 34 USE ioipsl 35 USE phys_cal_mod, only : hour 36 USE phys_output_mod, only : convers_timesteps 28 37 USE dimphy 29 38 USE infotrac … … 36 45 USE tracreprobus_mod 37 46 USE control_mod 38 39 47 40 48 IMPLICIT NONE … … 68 76 !-------- 69 77 REAL,DIMENSION(klon,klev),INTENT(IN) :: t_seri ! Temperature 70 REAL,DIMENSION(klon,klev),INTENT(IN) :: u ! variable not used 71 REAL,DIMENSION(klon,klev),INTENT(IN) :: v ! variable not used 78 REAL,DIMENSION(klon,klev),INTENT(IN) :: u ! variable not used 79 REAL,DIMENSION(klon,klev),INTENT(IN) :: v ! variable not used 72 80 REAL,DIMENSION(klon,klev),INTENT(IN) :: sh ! humidite specifique 73 81 REAL,DIMENSION(klon,klev),INTENT(IN) :: rh ! humidite relative … … 81 89 REAL,DIMENSION(klon,klev),INTENT(IN) :: diafra ! fraction nuageuse (convection ou stratus artificiels) 82 90 REAL,DIMENSION(klon,klev),INTENT(IN) :: rneb ! fraction nuageuse (grande echelle) 91 ! 92 REAL :: ql_incl ! contenu en eau liquide nuageuse dans le nuage ! ql_incl=oliq/rneb 93 REAL,DIMENSION(klon,klev),INTENT(IN) :: beta_fisrt ! taux de conversion de l'eau cond (de fisrtilp) 94 REAL,DIMENSION(klon,klev),INTENT(out) :: beta_v1 ! -- (originale version) 95 96 ! 83 97 INTEGER,DIMENSION(klon),INTENT(IN) :: itop_con 84 98 INTEGER,DIMENSION(klon),INTENT(IN) :: ibas_con 85 99 REAL,DIMENSION(klon),INTENT(IN) :: albsol ! albedo surface 100 ! 101 !Dynamique 102 !-------- 103 REAL,DIMENSION(klon,klev,nbtr),INTENT(IN) :: d_tr_dyn 86 104 ! 87 105 !Convection: … … 108 126 REAL,DIMENSION(klon,klev),INTENT(IN) :: da 109 127 REAL,DIMENSION(klon,klev,klev),INTENT(IN):: phi 128 ! RomP >>> 129 REAL,DIMENSION(klon,klev),INTENT(IN) :: d1a,dam 130 REAL,DIMENSION(klon,klev,klev),INTENT(IN) :: phi2 131 ! 132 REAL,DIMENSION(klon,klev),INTENT(IN) :: wdtrainA 133 REAL,DIMENSION(klon,klev),INTENT(IN) :: wdtrainM 134 REAL,DIMENSION(klon),INTENT(IN) :: sigd 135 ! ---- RomP flux entraine, detraine et precipitant kerry Emanuel 136 REAL,DIMENSION(klon,klev),INTENT(IN) :: evap 137 REAL,DIMENSION(klon,klev),INTENT(IN) :: ep 138 REAL,DIMENSION(klon,klev,klev),INTENT(IN) :: sij 139 REAL,DIMENSION(klon,klev,klev),INTENT(IN) :: elij 140 REAL,DIMENSION(klon,klev,klev),INTENT(IN) :: epmlmMm 141 REAL,DIMENSION(klon,klev),INTENT(IN) :: eplaMm 142 REAL,DIMENSION(klon,klev),INTENT(IN) :: clw 143 ! RomP <<< 144 145 ! 110 146 REAL,DIMENSION(klon,klev),INTENT(IN) :: mp 111 147 REAL,DIMENSION(klon,klev),INTENT(IN) :: upwd ! saturated updraft mass flux … … 120 156 !-------------- 121 157 ! 122 REAL,DIMENSION(klon),INTENT(IN) :: cdragh ! coeff drag pour T et Q123 REAL,DIMENSION(klon,klev),INTENT(IN) :: coefh ! coeff melange CL (m**2/s)124 REAL,DIMENSION(klon),INTENT(IN) :: ustar,u10m,v10m ! u* & vent a 10m (m/s)125 REAL,DIMENSION(klon),INTENT(IN) :: yu1 ! vents au premier niveau126 REAL,DIMENSION(klon),INTENT(IN) :: yv1 ! vents au premier niveau158 REAL,DIMENSION(klon),INTENT(IN) :: cdragh ! coeff drag pour T et Q 159 REAL,DIMENSION(klon,klev),INTENT(IN) :: coefh ! coeff melange CL (m**2/s) 160 REAL,DIMENSION(klon),INTENT(IN) :: ustar,u10m,v10m ! u* & vent a 10m (m/s) 161 REAL,DIMENSION(klon),INTENT(IN) :: yu1 ! vents au premier niveau 162 REAL,DIMENSION(klon),INTENT(IN) :: yv1 ! vents au premier niveau 127 163 ! 128 164 !Lessivage: … … 141 177 ! Output argument 142 178 !---------------- 143 REAL,DIMENSION(klon,klev,nbtr),INTENT(INOUT) :: tr_seri ! Concentration Traceur [U/KgA] 144 179 REAL,DIMENSION(klon,klev,nbtr),INTENT(INOUT) :: tr_seri ! Concentration Traceur [U/KgA] 180 REAL,DIMENSION(klon,klev) :: sourceBE 145 181 !======================================================================================= 146 182 ! -- LOCAL VARIABLES -- … … 153 189 !-------------------------------------------- 154 190 ! 155 REAL,DIMENSION(:,:),ALLOCATABLE,SAVE :: source ! a voir lorsque le flux de surface est prescrit 191 REAL,DIMENSION(:,:),ALLOCATABLE,SAVE :: source ! a voir lorsque le flux de surface est prescrit 156 192 !$OMP THREADPRIVATE(source) 157 193 … … 166 202 REAL,DIMENSION(klon) :: zx_tmp_fi2d ! variable temporaire grille physique 167 203 INTEGER :: itau_w ! pas de temps ecriture = nstep + itau_phy 168 LOGICAL,PARAMETER :: ok_sync=.TRUE. 204 LOGICAL,PARAMETER :: ok_sync=.TRUE. 205 CHARACTER(len=20) :: chtratimestep 169 206 170 207 ! … … 175 212 REAL,DIMENSION(klon,klev) :: delp ! epaisseur de couche (Pa) 176 213 ! 177 ! Tendances de traceurs (Td) :214 ! Tendances de traceurs (Td) et flux de traceurs: 178 215 !------------------------ 179 !180 216 REAL,DIMENSION(klon,klev) :: d_tr ! Td dans l'atmosphere 181 217 REAL,DIMENSION(klon,klev,nbtr) :: d_tr_cl ! Td couche limite/traceur 218 REAL,DIMENSION(klon,nbtr) :: d_tr_dry ! Td depot sec/traceur (1st layer) jyg 219 REAL,DIMENSION(klon,nbtr) :: flux_tr_dry ! depot sec/traceur (surface) jyg 220 REAL,DIMENSION(klon,klev,nbtr) :: d_tr_dec !RomP 182 221 REAL,DIMENSION(klon,klev,nbtr) :: d_tr_cv ! Td convection/traceur 222 ! RomP >>> 223 REAL,DIMENSION(klon,klev,nbtr) :: d_tr_insc 224 REAL,DIMENSION(klon,klev,nbtr) :: d_tr_bcscav 225 REAL,DIMENSION(klon,klev,nbtr) :: d_tr_evapls 226 REAL,DIMENSION(klon,klev,nbtr) :: d_tr_ls 227 REAL,DIMENSION(klon,nbtr) :: qPrls !jyg: concentration tra dans pluie LS a la surf. 228 REAL,DIMENSION(klon,klev,nbtr) :: d_tr_trsp 229 REAL,DIMENSION(klon,klev,nbtr) :: d_tr_sscav 230 REAL,DIMENSION(klon,klev,nbtr) :: d_tr_sat 231 REAL,DIMENSION(klon,klev,nbtr) :: d_tr_uscav 232 REAL,DIMENSION(klon,klev,nbtr) :: qPr,qDi ! concentration tra dans pluie,air descente insaturee 233 REAL,DIMENSION(klon,klev,nbtr) :: qPa,qMel 234 REAL,DIMENSION(klon,klev,nbtr) :: qTrdi,dtrcvMA ! conc traceur descente air insaturee et td convective MA 235 REAL,DIMENSION(klon,klev) :: Mint 236 REAL,DIMENSION(klon,klev,nbtr) :: zmfd1a 237 REAL,DIMENSION(klon,klev,nbtr) :: zmfdam 238 REAL,DIMENSION(klon,klev,nbtr) :: zmfphi2 239 ! RomP <<< 183 240 REAL,DIMENSION(klon,klev,nbtr) :: d_tr_th ! Td thermique 184 241 REAL,DIMENSION(klon,klev,nbtr) :: d_tr_lessi_impa ! Td du lessivage par impaction 185 REAL,DIMENSION(klon,klev,nbtr) :: d_tr_lessi_nucl ! Td du lessivage par nucleation 242 REAL,DIMENSION(klon,klev,nbtr) :: d_tr_lessi_nucl ! Td du lessivage par nucleation 186 243 ! 187 244 ! Physique 188 !---------- 245 !---------- 189 246 REAL,DIMENSION(klon,klev,nbtr) :: flestottr ! flux de lessivage dans chaque couche 190 247 REAL,DIMENSION(klon,klev) :: zmasse ! densité atmosphérique Kg/m2 191 248 REAL,DIMENSION(klon,klev) :: ztra_th 249 !PhH 250 REAL,DIMENSION(klon,klev) :: zrho 251 REAL,DIMENSION(klon,klev) :: zdz 252 REAL :: evaplsc,dx,beta ! variable pour lessivage Genthon 253 REAL,DIMENSION(klon) :: his_dh ! --- 254 ! in-cloud scav variables 255 REAL :: ql_incloud_ref ! ref value of in-cloud condensed water content 192 256 193 257 !Controles: … … 199 263 200 264 CHARACTER(len=8),DIMENSION(nbtr) :: solsym 201 202 265 !RomP >>> 266 INTEGER,SAVE :: iflag_lscav 267 LOGICAL,SAVE :: convscav 268 !$OMP THREADPRIVATE(iflag_lscav,convscav) 269 !RomP <<< 203 270 !###################################################################### 204 271 ! -- INITIALIZATION -- 205 272 !###################################################################### 273 DO k=1,klev 274 DO i=1,klon 275 sourceBE(i,k)=0. 276 Mint(i,k)=0. 277 zrho(i,k)=0. 278 zdz(i,k)=0. 279 END DO 280 END DO 281 282 DO it=1, nbtr 283 DO k=1,klev 284 DO i=1,klon 285 d_tr_insc(i,k,it)=0. 286 d_tr_bcscav(i,k,it)=0. 287 d_tr_evapls(i,k,it)=0. 288 d_tr_ls(i,k,it)=0. 289 d_tr_cv(i,k,it)=0. 290 d_tr_cl(i,k,it)=0. 291 d_tr_trsp(i,k,it)=0. 292 d_tr_sscav(i,k,it)=0. 293 d_tr_sat(i,k,it)=0. 294 d_tr_uscav(i,k,it)=0. 295 d_tr_lessi_impa(i,k,it)=0. 296 d_tr_lessi_nucl(i,k,it)=0. 297 qDi(i,k,it)=0. 298 qPr(i,k,it)=0. 299 qPa(i,k,it)=0. 300 qMel(i,k,it)=0. 301 qTrdi(i,k,it)=0. 302 dtrcvMA(i,k,it)=0. 303 zmfd1a(i,k,it)=0. 304 zmfdam(i,k,it)=0. 305 zmfphi2(i,k,it)=0. 306 END DO 307 END DO 308 END DO 206 309 IF (debutphy) THEN 207 IF (prt_level >9) WRITE(lunout,*) 'FIRST TIME IN PHYTRAC : pdtphys(sec) = ',pdtphys,'ecrit_tra (sec) = ',ecrit_tra 310 !!jyg 311 chtratimestep='DefFreq' 312 CALL getin('tra_time_step',chtratimestep) 313 IF (chtratimestep .NE. 'DefFreq') THEN 314 call convers_timesteps(chtratimestep,pdtphys,ecrit_tra) 315 ENDIF 316 !RomP >>> 317 ! 318 !Config Key = convscav 319 !Config Desc = Convective scavenging switch: 0=off, 1=on. 320 !Config Def = .false. 321 !Config Help = 322 ! 323 convscav=.false. 324 call getin('convscav', convscav) 325 print*,'phytrac passage dans routine conv avec lessivage', convscav 326 ! 327 !Config Key = iflag_lscav 328 !Config Desc = Large scale scavenging parametrization: 0=none, 1=old(Genthon92), 329 ! 2=1+PHeinrich, 3=Reddy_Boucher2004, 4=3+RPilon. 330 !Config Def = 1 331 !Config Help = 332 ! 333 iflag_lscav=1 334 call getin('iflag_lscav', iflag_lscav) 335 ! 336 SELECT CASE(iflag_lscav) 337 CASE(0) 338 PRINT*, 'Large scale scavenging: none' 339 CASE(1) 340 PRINT*, 'Large scale scavenging: C. Genthon, Tellus(1992), 44B, 371-389' 341 CASE(2) 342 PRINT*, 'Large scale scavenging: C. Genthon, modified P. Heinrich' 343 CASE(3) 344 PRINT*, 'Large scale scavenging: M. Shekkar Reddy and O. Boucher, JGR(2004), 109, D14202' 345 CASE(4) 346 PRINT*, 'Large scale scavenging: Reddy and Boucher, modified R. Pilon' 347 END SELECT 348 !RomP <<< 349 WRITE(*,*) 'FIRST TIME IN PHYTRAC : pdtphys(sec) = ',pdtphys,'ecrit_tra (sec) = ',ecrit_tra 208 350 ALLOCATE( source(klon,nbtr), stat=ierr) 209 351 IF (ierr /= 0) CALL abort_gcm('phytrac', 'pb in allocation 1',1) … … 237 379 END DO 238 380 END DO 381 ! 382 IF (id_be .GT. 0) THEN 383 DO k=1,klev 384 DO i=1,klon 385 sourceBE(i,k)=srcbe(i,k) !RomP -> pour sortie histrac 386 END DO 387 END DO 388 ENDIF 239 389 240 390 !=============================================================================== … … 246 396 ! -- Traitement des traceurs avec traclmdz 247 397 CALL traclmdz(nstep, julien, gmtime, pdtphys, t_seri, paprs, pplay, & 248 cdragh, coefh, yu1, yv1, ftsol, pctsrf, xlat, xlon,couchelimite,sh, &398 cdragh, coefh, yu1, yv1, ftsol, pctsrf, xlat, xlon,couchelimite,sh, & 249 399 rh, pphi, ustar, u10m, v10m, & 250 tr_seri, source, solsym, d_tr_cl, zmasse) 400 !! tr_seri, source, solsym, d_tr_cl, zmasse) !RomP 401 tr_seri, source, solsym, d_tr_cl,d_tr_dec, zmasse) !RomP 251 402 CASE('inca') 252 403 ! -- CHIMIE INCA config_inca = aero or chem -- … … 273 424 274 425 END SELECT 275 276 426 !====================================================================== 277 427 ! -- Calcul de l'effet de la convection -- 278 428 !====================================================================== 429 279 430 IF (convection) THEN 280 431 DO it=1, nbtr 281 432 IF ( conv_flg(it) == 0 ) CYCLE 282 283 433 IF (iflag_con.LT.2) THEN 284 d_tr_cv(:,:, :)=0.434 d_tr_cv(:,:,it)=0. 285 435 ELSE IF (iflag_con.EQ.2) THEN 286 436 !..Tiedke 287 437 CALL nflxtr(pdtphys, pmfu, pmfd, pen_u, pde_u, pen_d, pde_d, & 288 438 pplay, paprs, tr_seri(:,:,it), d_tr_cv(:,:,it)) 289 ELSE 290 !..K.Emanuel 291 CALL cvltr(pdtphys, da, phi, mp, paprs,pplay, tr_seri(:,:,it),& 292 upwd,dnwd,d_tr_cv(:,:,it)) 439 ! RomP >>> 440 ELSE 441 !..K.Emanuel !RomP modif arg 442 if (convscav.and.aerosol(it)) then ! lessivage convectif pour aerosol 443 ! 444 CALL cvltr(pdtphys, da, phi,phi2,d1a,dam, mp,ep, & 445 sigd,sij,clw,elij,epmlmMm,eplaMm, & 446 pmflxr,pmflxs,evap,t_seri,wdtrainA,wdtrainM, & 447 paprs,it,tr_seri,upwd,dnwd,itop_con,ibas_con, & 448 d_tr_cv,d_tr_trsp,d_tr_sscav,d_tr_sat,d_tr_uscav,qDi,qPr,& 449 qPa,qMel,qTrdi,dtrcvMA,Mint, & 450 zmfd1a,zmfphi2,zmfdam) 451 else !pas de lessivage convectif ou n'est pas un aerosol 452 CALL cvltrorig(it,pdtphys, da, phi,mp,paprs,pplay,tr_seri,& 453 upwd,dnwd,d_tr_cv) 454 endif 293 455 END IF 456 ! RomP <<< 294 457 295 458 DO k = 1, klev … … 357 520 tr_seri(:,:,it), source(:,it), & 358 521 paprs, pplay, delp, & 359 d_tr_cl(:,:,it) )522 d_tr_cl(:,:,it),d_tr_dry(:,it),flux_tr_dry(:,it)) 360 523 361 524 DO k = 1, klev … … 372 535 373 536 !====================================================================== 374 ! Calcul de l'effet de la precipitation 375 !====================================================================== 376 537 ! Calcul de l'effet de la precipitation grande echelle 538 !====================================================================== 377 539 IF (lessivage) THEN 378 540 541 ql_incloud_ref = 10.e-4 542 ql_incloud_ref = 5.e-4 543 544 545 ! calcul du contenu en eau liquide au sein du nuage 546 ql_incl = ql_incloud_ref 547 ! choix du lessivage 548 ! 549 IF (iflag_lscav .EQ. 3 .OR. iflag_lscav .EQ. 4) THEN 550 ! ******** Olivier Boucher version (3) possibly with modified ql_incl (4) 551 ! 552 DO it = 1, nbtr 553 ! incloud scavenging and removal by large scale rain ! orig : ql_incl was replaced by 0.5e-3 kg/kg 554 ! the value 0.5e-3 kg/kg is from Giorgi and Chameides (1986), JGR 555 ! Liu (2001) proposed to use 1.5e-3 kg/kg 556 557 CALL lsc_scav(pdtphys,it,iflag_lscav,ql_incl,prfl,psfl,rneb,beta_fisrt, & 558 beta_v1,pplay,paprs,t_seri,tr_seri,d_tr_insc, & 559 d_tr_bcscav,d_tr_evapls,qPrls) 560 561 !large scale scavenging tendency 562 DO k = 1, klev 563 DO i = 1, klon 564 d_tr_ls(i,k,it)=d_tr_insc(i,k,it)+d_tr_bcscav(i,k,it)+d_tr_evapls(i,k,it) 565 tr_seri(i,k,it)=tr_seri(i,k,it)+d_tr_ls(i,k,it) 566 ENDDO 567 ENDDO 568 CALL minmaxqfi(tr_seri(:,:,it),0.,1.e33,'lsc scav it = '//solsym(it)) 569 END DO !tr 570 571 ELSE IF (iflag_lscav .EQ. 2) THEN ! frac_impa, frac_nucl 572 ! ********* modified old version 573 574 d_tr_lessi_nucl(:,:,:) = 0. 575 d_tr_lessi_impa(:,:,:) = 0. 576 flestottr(:,:,:) = 0. 577 ! Tendance des aerosols nuclees et impactes 578 DO it = 1, nbtr 579 IF (aerosol(it)) THEN 580 his_dh(:)=0. 581 DO k = 1, klev 582 DO i = 1, klon 583 !PhH 584 zrho(i,k)=pplay(i,k)/t_seri(i,k)/RD 585 zdz(i,k)=(paprs(i,k)-paprs(i,k+1))/zrho(i,k)/RG 586 ! 587 END DO 588 END DO 589 590 DO k=klev-1, 1, -1 591 DO i=1, klon 592 ! d_tr_ls(i,k,it)=tr_seri(i,k,it)*(frac_impa(i,k)*frac_nucl(i,k)-1.) 593 dx=d_tr_ls(i,k,it) 594 his_dh(i)=his_dh(i)-dx*zrho(i,k)*zdz(i,k)/pdtphys ! kg/m2/s 595 evaplsc = prfl(i,k) - prfl(i,k+1) + psfl(i,k) - psfl(i,k+1) 596 ! Evaporation Partielle -> Liberation Partielle 0.5*evap 597 IF ( evaplsc .LT.0..and.abs(prfl(i,k+1)+psfl(i,k+1)).gt.1.e-10) THEN 598 evaplsc = (-evaplsc)/(prfl(i,k+1)+psfl(i,k+1)) 599 ! evaplsc est donc positif, his_dh(i) est positif 600 !-------------- 601 d_tr_evapls(i,k,it)=0.5*evaplsc*(d_tr_lessi_nucl(i,k+1,it) & 602 +d_tr_lessi_impa(i,k+1,it)) 603 !------------- d_tr_evapls(i,k,it)=-0.5*evaplsc*(d_tr_lsc(i,k+1,it)) 604 beta=0.5*evaplsc 605 if ((prfl(i,k)+psfl(i,k)).lt.1.e-10) THEN 606 beta=1.0*evaplsc 607 endif 608 dx=beta*his_dh(i)/zrho(i,k)/zdz(i,k)*pdtphys 609 his_dh(i)=(1.-beta)*his_dh(i) ! tracer from 610 d_tr_evapls(i,k,it)=dx 611 ENDIF 612 d_tr_ls(i,k,it)=tr_seri(i,k,it)*(frac_impa(i,k)*frac_nucl(i,k)-1.) & 613 +d_tr_evapls(i,k,it) 614 615 !-------------- 616 d_tr_lessi_nucl(i,k,it) = d_tr_lessi_nucl(i,k,it) + & 617 ( 1 - frac_nucl(i,k) )*tr_seri(i,k,it) 618 d_tr_lessi_impa(i,k,it) = d_tr_lessi_impa(i,k,it) + & 619 ( 1 - frac_impa(i,k) )*tr_seri(i,k,it) 620 ! 621 ! Flux lessivage total 622 flestottr(i,k,it) = flestottr(i,k,it) - & 623 ( d_tr_lessi_nucl(i,k,it) + & 624 d_tr_lessi_impa(i,k,it) ) * & 625 ( paprs(i,k)-paprs(i,k+1) ) / & 626 (RG * pdtphys) 627 !! Mise a jour des traceurs due a l'impaction,nucleation 628 ! tr_seri(i,k,it)=tr_seri(i,k,it)*frac_impa(i,k)*frac_nucl(i,k) 629 !! calcul de la tendance liee au lessivage stratiforme 630 ! d_tr_ls(i,k,it)=tr_seri(i,k,it)*& 631 ! (1.-1./(frac_impa(i,k)*frac_nucl(i,k))) 632 !-------------- 633 END DO 634 END DO 635 END IF 636 END DO 637 ! ********* end modified old version 638 639 ELSE IF (iflag_lscav .EQ. 1) THEN ! frac_impa, frac_nucl 640 ! ********* old version 641 379 642 d_tr_lessi_nucl(:,:,:) = 0. 380 643 d_tr_lessi_impa(:,:,:) = 0. … … 412 675 END DO 413 676 414 END IF ! lessivage 677 ! ********* end old version 678 ENDIF ! iflag_lscav . EQ. 1, 2, 3 or 4 679 ! 680 END IF ! lessivage 415 681 416 682 !=============================================================
Note: See TracChangeset
for help on using the changeset viewer.