Changeset 2459


Ignore:
Timestamp:
Mar 9, 2016, 11:18:30 AM (8 years ago)
Author:
jyg
Message:

Fix to the previous commit (Yacine's optimisation
was included by mistake).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/cv3_routines.F90

    r2458 r2459  
    138138    WRITE (*, *) 'tau_stop =', tau_stop
    139139    WRITE (*, *) 'ok_intermittent =', ok_intermittent
     140    WRITE (*, *) 'coef_peel =', coef_peel
    140141
    141142! IM Lecture du fichier ep_param.data
     
    19541955! ori      do 400 k=1,nlp
    19551956! ori       do 390 j=1,nlp
    1956 !yor! commented original :
    1957 !  DO j = 1, nl
    1958 !    DO k = 1, nl
    1959 !      DO i = 1, ncum
    1960 !        qent(i, k, j) = rr(i, j)
    1961 !        uent(i, k, j) = u(i, j)
    1962 !        vent(i, k, j) = v(i, j)
    1963 !        elij(i, k, j) = 0.0
    1964 !!ym            ment(i,k,j)=0.0
    1965 !!ym            sij(i,k,j)=0.0
    1966 !      END DO
    1967 !    END DO
    1968 !  END DO
    1969 !yor! optim :
    19701957  DO j = 1, nl
    1971      DO k = 1, nl
    1972         qent(1:ncum, k, j) = rr(1:ncum, j)
    1973         uent(1:ncum, k, j) = u(1:ncum, j)
    1974         vent(1:ncum, k, j) = v(1:ncum, j)
    1975      END DO
    1976   END DO
    1977   elij(1:ncum, 1:nl, 1:nl) = 0.
     1958    DO k = 1, nl
     1959      DO i = 1, ncum
     1960        qent(i, k, j) = rr(i, j)
     1961        uent(i, k, j) = u(i, j)
     1962        vent(i, k, j) = v(i, j)
     1963        elij(i, k, j) = 0.0
     1964!ym            ment(i,k,j)=0.0
     1965!ym            sij(i,k,j)=0.0
     1966      END DO
     1967    END DO
     1968  END DO
    19781969
    19791970!ym
     
    22892280! MAF: renormalisation de MENT
    22902281  CALL zilch(zm, nloc*na)
    2291 
    2292 !yor! commented orig
    2293 !  DO jm = 1, nl
    2294 !    DO im = 1, nl
    2295 !      DO il = 1, ncum
    2296 !        zm(il, im) = zm(il, im) + (1.-sij(il,im,jm))*ment(il, im, jm)
    2297 !      END DO
    2298 !    END DO
    2299 !  END DO
    2300 !yor! optim
    23012282  DO jm = 1, nl
    2302      DO im = 1, nl
    2303         !DO il = 1, ncum
    2304         zm(1:ncum, im) = zm(1:ncum, im) + (1.-sij(1:ncum,im,jm))*ment(1:ncum, im, jm)
    2305         !END DO
    2306      END DO
    2307   END DO
    2308 !!
     2283    DO im = 1, nl
     2284      DO il = 1, ncum
     2285        zm(il, im) = zm(il, im) + (1.-sij(il,im,jm))*ment(il, im, jm)
     2286      END DO
     2287    END DO
     2288  END DO
    23092289
    23102290  DO jm = 1, nl
     
    23182298  END DO
    23192299
    2320 
    2321 !yor! commented original
    2322 !  DO jm = 1, nl
    2323 !    DO im = 1, nl
    2324 !      DO il = 1, ncum
    2325 !        qents(il, im, jm) = qent(il, im, jm)
    2326 !        ments(il, im, jm) = ment(il, im, jm)
    2327 !      END DO
    2328 !    END DO
    2329 !  END DO
    2330 !yor! replaced
    2331   qents(1:ncum, 1:nl, 1:nl) = qent(1:ncum, 1:nl, 1:nl) !yor! ncum?=nloc , nd?=na  ??
    2332   ments(1:ncum, 1:nl, 1:nl) = ment(1:ncum, 1:nl, 1:nl)
     2300  DO jm = 1, nl
     2301    DO im = 1, nl
     2302      DO il = 1, ncum
     2303        qents(il, im, jm) = qent(il, im, jm)
     2304        ments(il, im, jm) = ment(il, im, jm)
     2305      END DO
     2306    END DO
     2307  END DO
    23332308
    23342309  RETURN
     
    33273302    END DO
    33283303
    3329     DO j = i + 1, nl + 1         
    3330        DO k = 1, i
    3331           !yor! reverted j and k loops
    3332           DO il = 1, ncum
    3333 !yor!        IF (i<=inb(il) .AND. j<=(inb(il)+1)) THEN ! the second condition implies the first !
    3334              IF (j<=(inb(il)+1)) THEN 
    3335                 amp1(il) = amp1(il) + ment(il, k, j)
    3336              END IF
    3337           END DO
    3338        END DO
     3304    DO k = 1, i
     3305      DO j = i + 1, nl + 1
     3306        DO il = 1, ncum
     3307          IF (i<=inb(il) .AND. j<=(inb(il)+1)) THEN
     3308            amp1(il) = amp1(il) + ment(il, k, j)
     3309          END IF
     3310        END DO
     3311      END DO
    33393312    END DO
    33403313
     
    33423315      DO j = i, nl + 1 ! newvecto: nl au lieu nl+1?
    33433316        DO il = 1, ncum
    3344 !yor!        IF (i<=inb(il) .AND. j<=inb(il)) THEN ! the second condition implies the 1st !
    3345              IF (j<=inb(il)) THEN   
     3317          IF (i<=inb(il) .AND. j<=inb(il)) THEN
    33463318            ad(il) = ad(il) + ment(il, j, k)
    33473319          END IF
     
    37993771    END DO
    38003772  END DO
    3801   DO j = 1, nl !yor! inverted i and j loops
    3802      DO i = 1, nl
     3773  DO i = 1, nl
     3774    DO j = 1, nl
    38033775      DO il = 1, ncum
    38043776        IF (iflag(il)<=1) THEN
     
    38713843  END DO
    38723844
    3873 !yor! commented original
    3874 !  DO i = 1, nl
    3875 !    DO k = i, nl
    3876 !      DO n = 1, i - 1
    3877 !        DO il = 1, ncum
    3878 !          IF (i>=icb(il) .AND. i<=inb(il) .AND. k<=inb(il)) THEN
    3879 !            up1(il, k, i) = up1(il, k, i) + ment(il, n, k)
    3880 !            dn1(il, k, i) = dn1(il, k, i) - ment(il, k, n)
    3881 !          END IF
    3882 !        END DO
    3883 !      END DO
    3884 !    END DO
    3885 !  END DO
    3886 !yor! replaced with
    38873845  DO i = 1, nl
    38883846    DO k = i, nl
    38893847      DO n = 1, i - 1
    38903848        DO il = 1, ncum
    3891           IF (i>=icb(il) .AND. k<=inb(il)) THEN ! yor ! as i always <= k
    3892              up1(il, k, i) = up1(il, k, i) + ment(il, n, k)
     3849          IF (i>=icb(il) .AND. i<=inb(il) .AND. k<=inb(il)) THEN
     3850            up1(il, k, i) = up1(il, k, i) + ment(il, n, k)
     3851            dn1(il, k, i) = dn1(il, k, i) - ment(il, k, n)
    38933852          END IF
    38943853        END DO
     
    38963855    END DO
    38973856  END DO
    3898   DO i = 1, nl
    3899     DO n = 1, i - 1
    3900       DO k = i, nl
    3901         DO il = 1, ncum
    3902           IF (i>=icb(il) .AND. k<=inb(il)) THEN ! yor !  i always <= k
    3903              dn1(il, k, i) = dn1(il, k, i) - ment(il, k, n)
    3904           END IF
    3905         END DO
    3906       END DO
    3907     END DO
    3908   END DO
    3909 !yor! end replace
    39103857
    39113858  DO i = 1, nl
Note: See TracChangeset for help on using the changeset viewer.