Ignore:
Timestamp:
Oct 29, 2009, 2:55:23 PM (15 years ago)
Author:
yann meurdesoif
Message:

Optimisations SX9

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/cvltr.F90

    r1191 r1250  
    2828
    2929! Variables locales     
    30   REAL,DIMENSION(klon,klev)       :: zed
     30! REAL,DIMENSION(klon,klev)       :: zed
    3131  REAL,DIMENSION(klon,klev,klev)  :: zmd
    3232  REAL,DIMENSION(klon,klev,klev)  :: za
     
    3434  REAL,DIMENSION(klon,klev)       :: zmfp,zmfu
    3535  INTEGER                         :: i,k,j
     36  REAL                            :: pdtimeRG
    3637
    3738! =========================================
    3839! calcul des tendances liees au downdraft
    3940! =========================================
    40   zed(:,:)=0.
    41   zmfd(:,:)=0.
    42   zmfa(:,:)=0.
    43   zmfu(:,:)=0.
    44   zmfp(:,:)=0.
    45   zmd(:,:,:)=0.
    46   za(:,:,:)=0.
     41!cdir collapse
     42  DO j=1,klev
     43  DO i=1,klon
     44!   zed(i,j)=0.
     45    zmfd(i,j)=0.
     46    zmfa(i,j)=0.
     47    zmfu(i,j)=0.
     48    zmfp(i,j)=0.
     49  END DO
     50  END DO
     51!cdir collapse
     52  DO k=1,klev
     53  DO j=1,klev
     54  DO i=1,klon
     55    zmd(i,j,k)=0.
     56    za (i,j,k)=0.
     57  END DO
     58  END DO
     59  END DO
    4760! entrainement
    48   DO k=1,klev-1
    49      DO i=1,klon
    50         zed(i,k)=max(0.,mp(i,k)-mp(i,k+1))
    51      END DO
    52   END DO
     61! DO k=1,klev-1
     62!    DO i=1,klon
     63!       zed(i,k)=max(0.,mp(i,k)-mp(i,k+1))
     64!    END DO
     65! END DO
    5366
    5467! calcul de la matrice d echange
    5568! matrice de distribution de la masse entrainee en k
    5669
    57   DO k=1,klev
     70  DO k=1,klev-1
    5871     DO i=1,klon
    59         zmd(i,k,k)=zed(i,k)
     72        zmd(i,k,k)=max(0.,mp(i,k)-mp(i,k+1))
    6073     END DO
    6174  END DO
     
    126139  DO k=1, klev
    127140     DO i=1, klon
     141        dx(i,k)=paprs(i,k)-paprs(i,k+1)
     142     ENDDO
     143  ENDDO
     144  pdtimeRG=pdtime*RG
     145!cdir collapse
     146  DO k=1, klev
     147     DO i=1, klon
    128148        dx(i,k)=(zmfd(i,k)+zmfu(i,k)       &
    129              +zmfa(i,k)+zmfp(i,k))*pdtime  &
    130              *RG/(paprs(i,k)-paprs(i,k+1))
     149                +zmfa(i,k)+zmfp(i,k))*pdtimeRG/dx(i,k)
    131150        !          print*,'dx',k,dx(i,k)
    132151     ENDDO
Note: See TracChangeset for help on using the changeset viewer.