Changeset 2458


Ignore:
Timestamp:
Mar 9, 2016, 10:27:25 AM (8 years ago)
Author:
jyg
Message:

Read the shedding coefficient coef_peel (used when
iflag_mix_adiab=1) from file cv_param.data
(default=0.25).

Location:
LMDZ5/trunk/libf/phylmd
Files:
4 edited

Legend:

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

    r2420 r2458  
    7575    elcrit = 0.0003
    7676    tlcrit = -55.0
     77! CR+JYG: shedding coefficient (used when iflag_mix_adiab=1)
     78    coef_peel = 0.25
    7779! IM lu dans physiq.def via conf_phys.F90     epmax  = 0.993
    7880
     
    121123    READ (99, *, END=9998) tau_stop
    122124    READ (99, *, END=9998) ok_intermittent
     125    READ (99, *, END=9998) coef_peel
    1231269998 CONTINUE
    124127    CLOSE (99)
     
    19511954! ori      do 400 k=1,nlp
    19521955! 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 :
    19531970  DO j = 1, nl
    1954     DO k = 1, nl
    1955       DO i = 1, ncum
    1956         qent(i, k, j) = rr(i, j)
    1957         uent(i, k, j) = u(i, j)
    1958         vent(i, k, j) = v(i, j)
    1959         elij(i, k, j) = 0.0
    1960 !ym            ment(i,k,j)=0.0
    1961 !ym            sij(i,k,j)=0.0
    1962       END DO
    1963     END DO
    1964   END DO
     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.
    19651978
    19661979!ym
     
    22762289! MAF: renormalisation de MENT
    22772290  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
    22782301  DO jm = 1, nl
    2279     DO im = 1, nl
    2280       DO il = 1, ncum
    2281         zm(il, im) = zm(il, im) + (1.-sij(il,im,jm))*ment(il, im, jm)
    2282       END DO
    2283     END DO
    2284   END DO
     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!!
    22852309
    22862310  DO jm = 1, nl
     
    22942318  END DO
    22952319
    2296   DO jm = 1, nl
    2297     DO im = 1, nl
    2298       DO il = 1, ncum
    2299         qents(il, im, jm) = qent(il, im, jm)
    2300         ments(il, im, jm) = ment(il, im, jm)
    2301       END DO
    2302     END DO
    2303   END DO
     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)
    23042333
    23052334  RETURN
     
    32983327    END DO
    32993328
    3300     DO k = 1, i
    3301       DO j = i + 1, nl + 1
    3302         DO il = 1, ncum
    3303           IF (i<=inb(il) .AND. j<=(inb(il)+1)) THEN
    3304             amp1(il) = amp1(il) + ment(il, k, j)
    3305           END IF
    3306         END DO
    3307       END DO
     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
    33083339    END DO
    33093340
     
    33113342      DO j = i, nl + 1 ! newvecto: nl au lieu nl+1?
    33123343        DO il = 1, ncum
    3313           IF (i<=inb(il) .AND. j<=inb(il)) THEN
     3344!yor!        IF (i<=inb(il) .AND. j<=inb(il)) THEN ! the second condition implies the 1st !
     3345             IF (j<=inb(il)) THEN   
    33143346            ad(il) = ad(il) + ment(il, j, k)
    33153347          END IF
     
    37673799    END DO
    37683800  END DO
    3769   DO i = 1, nl
    3770     DO j = 1, nl
     3801  DO j = 1, nl !yor! inverted i and j loops
     3802     DO i = 1, nl
    37713803      DO il = 1, ncum
    37723804        IF (iflag(il)<=1) THEN
     
    38393871  END DO
    38403872
     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
    38413887  DO i = 1, nl
    38423888    DO k = i, nl
    38433889      DO n = 1, i - 1
    38443890        DO il = 1, ncum
    3845           IF (i>=icb(il) .AND. i<=inb(il) .AND. k<=inb(il)) THEN
    3846             up1(il, k, i) = up1(il, k, i) + ment(il, n, k)
    3847             dn1(il, k, i) = dn1(il, k, i) - ment(il, k, n)
     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)
    38483893          END IF
    38493894        END DO
     
    38513896    END DO
    38523897  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
    38533910
    38543911  DO i = 1, nl
  • LMDZ5/trunk/libf/phylmd/cv3p1_closure.F90

    r2420 r2458  
    8282  REAL mad(nloc, nd), me(nloc, nd), betalim(nloc, nd), beta_coef(nloc, nd)
    8383  REAL med(nloc, nd), md(nloc,nd)
    84   REAL coef_peel
    85   PARAMETER (coef_peel=0.25)
     84!jyg<
     85! coef_peel is now in the common cv3_param
     86!!  REAL coef_peel
     87!!  PARAMETER (coef_peel=0.25)
     88!>jyg
    8689
    8790  REAL sigmax
  • LMDZ5/trunk/libf/phylmd/cv3p2_closure.F90

    r2420 r2458  
    8989  REAL, DIMENSION (nloc, nd)                         :: mad, me, betalim, beta_coef
    9090  REAL, DIMENSION (nloc, nd)                         :: med, md
    91   REAL                                               :: coef_peel
    92   PARAMETER (coef_peel=0.25)
     91!jyg<
     92! coef_peel is now in the common cv3_param
     93!!  REAL                                               :: coef_peel
     94!!  PARAMETER (coef_peel=0.25)
     95!>jyg
    9396
    9497  REAL                                               :: sigmax
  • LMDZ5/trunk/libf/phylmd/cv3param.h

    r2398 r2458  
    1414      real pbcrit, ptcrit
    1515      real elcrit, tlcrit
     16      real coef_peel
    1617      real omtrain
    1718      real dtovsh, dpbase, dttrig
     
    2526                      ,pbcrit, ptcrit &
    2627                      ,elcrit, tlcrit &
     28                      ,coef_peel &
    2729                      ,omtrain &
    2830                      ,dtovsh, dpbase, dttrig &
Note: See TracChangeset for help on using the changeset viewer.