Changeset 1091


Ignore:
Timestamp:
Feb 3, 2009, 11:25:03 AM (15 years ago)
Author:
yann meurdesoif
Message:

optimisation Othman Bouizi : fisrtilp

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/fisrtilp.F

    r883 r1091  
    231231C surface.
    232232C
    233       DO i = 1, klon
     233      IF(k.LE.klevm1) THEN         
     234         DO i = 1, klon
    234235cIM
    235        IF(k.LE.klevm1) THEN         
    236         zmair=(paprs(i,k)-paprs(i,k+1))/RG
    237         zcpair=RCPD*(1.0+RVTMP2*zq(i))
    238         zcpeau=RCPD*RVTMP2
    239         zt(i) = ( (t(i,k+1)+d_t(i,k+1))*zrfl(i)*dtime*zcpeau
    240      $      + zmair*zcpair*zt(i) )
    241      $      / (zmair*zcpair + zrfl(i)*dtime*zcpeau)
    242 CC        WRITE (6,*) 'cppluie ', zt(i)-(t(i,k+1)+d_t(i,k+1))
    243        ENDIF
    244       ENDDO
     236            zmair=(paprs(i,k)-paprs(i,k+1))/RG
     237            zcpair=RCPD*(1.0+RVTMP2*zq(i))
     238            zcpeau=RCPD*RVTMP2
     239            zt(i) = ( (t(i,k+1)+d_t(i,k+1))*zrfl(i)*dtime*zcpeau
     240     $           + zmair*zcpair*zt(i) )
     241     $           / (zmair*zcpair + zrfl(i)*dtime*zcpeau)
     242C     C        WRITE (6,*) 'cppluie ', zt(i)-(t(i,k+1)+d_t(i,k+1))
     243         ENDDO
     244      ENDIF
    245245c
    246246c
     
    372372        endif ! iflag_pdf
    373373
    374          do i=1,klon
    375             IF (rneb(i,k) .LE. 0.0) zqn(i) = 0.0
    376             IF (rneb(i,k) .GE. 1.0) zqn(i) = zq(i)
    377             rneb(i,k) = MAX(0.0,MIN(1.0,rneb(i,k)))
    378 c           zcond(i) = MAX(0.0,zqn(i)-zqs(i))*rneb(i,k)/(1.+zdqs(i))
    379 c  On ne divise pas par 1+zdqs pour forcer a avoir l'eau predite par
    380 c  la convection.
    381 c  ATTENTION !!! Il va falloir verifier tout ca.
    382             zcond(i) = MAX(0.0,zqn(i)-zqs(i))*rneb(i,k)
    383 c           print*,'ZDQS ',zdqs(i)
    384 c--Olivier
    385             rhcl(i,k)=(zqs(i)+zq(i)-zdelq)/2./zqs(i)
    386             IF (rneb(i,k) .LE. 0.0) rhcl(i,k)=zq(i)/zqs(i)
    387             IF (rneb(i,k) .GE. 1.0) rhcl(i,k)=1.0
    388 c--fin
    389            ENDDO
     374        DO i=1,klon
     375           IF (rneb(i,k) .LE. 0.0) THEN
     376              zqn(i) = 0.0
     377              rneb(i,k) = 0.0
     378              zcond(i) = 0.0
     379              rhcl(i,k)=zq(i)/zqs(i)
     380           ELSE IF (rneb(i,k) .GE. 1.0) THEN
     381              zqn(i) = zq(i)
     382              rneb(i,k) = 1.0                 
     383              zcond(i) = MAX(0.0,zqn(i)-zqs(i))
     384              rhcl(i,k)=1.0
     385           ELSE
     386              zcond(i) = MAX(0.0,zqn(i)-zqs(i))*rneb(i,k)
     387              rhcl(i,k)=(zqs(i)+zq(i)-zdelq)/2./zqs(i)
     388           ENDIF
     389        ENDDO
     390!         do i=1,klon
     391!            IF (rneb(i,k) .LE. 0.0) zqn(i) = 0.0
     392!            IF (rneb(i,k) .GE. 1.0) zqn(i) = zq(i)
     393!            rneb(i,k) = MAX(0.0,MIN(1.0,rneb(i,k)))
     394!c           zcond(i) = MAX(0.0,zqn(i)-zqs(i))*rneb(i,k)/(1.+zdqs(i))
     395!c  On ne divise pas par 1+zdqs pour forcer a avoir l'eau predite par
     396!c  la convection.
     397!c  ATTENTION !!! Il va falloir verifier tout ca.
     398!            zcond(i) = MAX(0.0,zqn(i)-zqs(i))*rneb(i,k)
     399!c           print*,'ZDQS ',zdqs(i)
     400!c--Olivier
     401!            rhcl(i,k)=(zqs(i)+zq(i)-zdelq)/2./zqs(i)
     402!            IF (rneb(i,k) .LE. 0.0) rhcl(i,k)=zq(i)/zqs(i)
     403!            IF (rneb(i,k) .GE. 1.0) rhcl(i,k)=1.0
     404!c--fin
     405!           ENDDO
    390406      ELSE
    391407         DO i = 1, klon
Note: See TracChangeset for help on using the changeset viewer.