Ignore:
Timestamp:
Jun 13, 2025, 9:45:10 PM (4 weeks ago)
Author:
yann meurdesoif
Message:

Convection GPU porting : suppress potential dependency between columns, may change results (cv_undilute1)

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/cv_routines.f90

    r5701 r5704  
    250250
    251251  ! Compute icbmax.
    252 
    253   icbmax = 2
    254   DO i = 1, len
    255     icbmax = max(icbmax, icb(i))
    256   END DO
     252  !ym do not do that, independance between column
     253  !ym icbmax = 2
     254  !ym DO i = 1, len
     255  !ym  icbmax = max(icbmax, icb(i))
     256  !ym END DO
    257257
    258258  RETURN
     
    261261SUBROUTINE cv_undilute1(len, nd, t, q, qs, gz, p, nk, icb, icbmax, tp, tvp, &
    262262    clw)
    263   USE lmdz_cv_ini, ONLY : cl,clmcpv,cpd,cpv,eps,epsi,lv0,minorig,rrv,t0
     263  USE lmdz_cv_ini, ONLY : cl,clmcpv,cpd,cpv,eps,epsi,lv0,minorig,rrv,t0,nl
    264264
    265265  IMPLICIT NONE
     
    306306  ! ***   Calculate lifted parcel quantities below cloud base   ***
    307307
    308   DO k = minorig, icbmax - 1
     308  !ym bad dependance between column => icbmax computed in cv_feed
     309!ym  DO k = minorig, icbmax - 1
     310  DO k = minorig, nd
    309311    DO i = 1, len
    310       tp(i, k) = tnk(i) - (gz(i,k)-gznk(i))/cpp(i)
    311       tvp(i, k) = tp(i, k)*(1.+qnk(i)*epsi)
     312      IF (k <= MAX(2,icb(i))-1) THEN
     313        tp(i, k) = tnk(i) - (gz(i,k)-gznk(i))/cpp(i)
     314        tvp(i, k) = tp(i, k)*(1.+qnk(i)*epsi)
     315      ENDIF
    312316    END DO
    313317  END DO
     
    359363    tvp(i, icb(i)) = tp(i, icb(i))*(1.+rg*epsi)
    360364  END DO
    361 
    362   DO k = minorig, icbmax
     365 
     366  !ym bad dependance between column => ibmax computed in cv_feed
     367!ym  DO k = minorig, icbmax
     368  DO k = minorig, nd
    363369    DO i = 1, len
    364       tvp(i, k) = tvp(i, k) - tp(i, k)*qnk(i)
     370      IF (k <= MAX(2,icb(i))) THEN
     371        tvp(i, k) = tvp(i, k) - tp(i, k)*qnk(i)
     372      ENDIF
    365373    END DO
    366374  END DO
Note: See TracChangeset for help on using the changeset viewer.