Changeset 16 for LMDZ.3.3/trunk/libf


Ignore:
Timestamp:
Jan 12, 2000, 4:19:31 PM (25 years ago)
Author:
lmdz
Message:

Modif G. Krinner pour acceleration du code

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ.3.3/trunk/libf/phylmd/fisrtilp_tr.F

    r2 r16  
    101101      REAL zalpha_tr
    102102      REAL zfrac_lessi
    103       REAL zprec_cond
     103      REAL zprec_cond(klon)
    104104cAA
    105105c---------------------------------------------------------------
     
    186186      zalpha_tr   = 0.
    187187      zfrac_lessi = 0.
    188       zprec_cond  = 0.
    189188
    190189cAA----------------------------------------------------------
     
    350349      DO i = 1,klon
    351350c
    352              zprec_cond = MAX(zcond(i)-zoliq(i),0.0)
     351         zprec_cond(i) = MAX(zcond(i)-zoliq(i),0.0)
    353352     .                * (paprs(i,k)-paprs(i,k+1))/RG
    354          IF (rneb(i,k).GT.0.0.and.zprec_cond.gt.0.) THEN
     353         IF (rneb(i,k).GT.0.0.and.zprec_cond(i).gt.0.) THEN
    355354cAA lessivage nucleation LMD5 dans la couche elle-meme
    356355            if (t(i,k) .GE. ztglace) THEN
     
    359358               zalpha_tr = a_tr_sca(4)
    360359            endif
    361             zfrac_lessi = 1. - EXP(zalpha_tr*zprec_cond/zneb(i))
     360            zfrac_lessi = 1. - EXP(zalpha_tr*zprec_cond(i)/zneb(i))
    362361            pfrac_nucl(i,k)=pfrac_nucl(i,k)*(1.-zneb(i)*zfrac_lessi)
    363362            frac_nucl(i,k)= 1.-zneb(i)*zfrac_lessi
    364363c
    365364c nucleation avec un facteur -1 au lieu de -0.5
    366             zfrac_lessi = 1. - EXP(-zprec_cond/zneb(i))
     365            zfrac_lessi = 1. - EXP(-zprec_cond(i)/zneb(i))
    367366            pfrac_1nucl(i,k)=pfrac_1nucl(i,k)*(1.-zneb(i)*zfrac_lessi)
     367         ENDIF
     368c
     369      ENDDO      ! boucle sur i
     370c
    368371cAA Lessivage par impaction dans les couches en-dessous
    369             do kk=k-1,1,-1
    370               if (t(i,kk) .GE. ztglace) THEN
    371                  zalpha_tr = a_tr_sca(1)
    372               else
    373                  zalpha_tr = a_tr_sca(2)
    374               endif
    375               zfrac_lessi = 1. - EXP(zalpha_tr*zprec_cond/zneb(i))
    376               pfrac_impa(i,kk)=pfrac_impa(i,kk)*(1.-zneb(i)*zfrac_lessi)
    377               frac_impa(i,kk)= 1.-zneb(i)*zfrac_lessi
    378             enddo
    379          ENDIF
    380 c
    381       ENDDO      ! boucle sur i
     372      DO kk = k-1, 1, -1
     373        DO i = 1, klon
     374          IF (rneb(i,k).GT.0.0.and.zprec_cond(i).gt.0.) THEN
     375            if (t(i,kk) .GE. ztglace) THEN
     376              zalpha_tr = a_tr_sca(1)
     377            else
     378              zalpha_tr = a_tr_sca(2)
     379            endif
     380            zfrac_lessi = 1. - EXP(zalpha_tr*zprec_cond(i)/zneb(i))
     381            pfrac_impa(i,kk)=pfrac_impa(i,kk)*(1.-zneb(i)*zfrac_lessi)
     382            frac_impa(i,kk)= 1.-zneb(i)*zfrac_lessi
     383          ENDIF
     384        ENDDO
     385      ENDDO
    382386c
    383387cAA----------------------------------------------------------
Note: See TracChangeset for help on using the changeset viewer.