Ignore:
Timestamp:
Jun 16, 2025, 4:18:19 PM (3 weeks ago)
Author:
yann meurdesoif
Message:

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

YM

File:
1 edited

Legend:

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

    r5703 r5706  
    614614
    615615! Compute icbmax.
    616 
     616 
     617  !ym do not do that, independance between column !
    617618  icbmax = 2
    618619  DO i = 1, len
     
    700701
    701702! Re-compute icbsmax (icbsmax2):                          !convect3
    702 !                                                         !convect3
    703   icbsmax2 = 2                                            !convect3
    704   DO i = 1, len                                           !convect3
    705     icbsmax2 = max(icbsmax2, icbs(i))                     !convect3
    706   END DO                                                  !convect3
     703!
     704!ym column independant, do not use reduction                                                         !convect3
     705!ym  icbsmax2 = 2                                            !convect3
     706!ym  DO i = 1, len                                           !convect3
     707!ym    icbsmax2 = max(icbsmax2, icbs(i))                     !convect3
     708!ym  END DO                                                  !convect3
    707709
    708710! initialization outputs:
    709711
    710   DO k = 1, icbsmax2                                      ! convect3
     712!ym  DO k = 1, icbsmax2                                      ! convect3
     713  DO k = 1, nd                                      ! convect3
    711714    DO i = 1, len                                         ! convect3
    712       tp(i, k) = 0.0                                      ! convect3
    713       tvp(i, k) = 0.0                                     ! convect3
    714       clw(i, k) = 0.0                                     ! convect3
     715      IF (k<=MAX(2,icbs(i))) THEN
     716        tp(i, k) = 0.0                                      ! convect3
     717        tvp(i, k) = 0.0                                     ! convect3
     718        clw(i, k) = 0.0                                     ! convect3
     719      ENDIF
    715720    END DO                                                ! convect3
    716721  END DO                                                  ! convect3
     
    718723! tp and tvp below cloud base:
    719724
    720   DO k = minorig, icbsmax2 - 1
     725!ym  DO k = minorig, icbsmax2 - 1
     726  DO k = minorig, nd
    721727    DO i = 1, len
    722       tp(i, k) = tnk(i) - (gz(i,k)-gznk(i))*cpinv(i)
    723       tvp(i, k) = tp(i, k)*(1.+qnk(i)/eps-qnk(i))        !whole thing (convect3)
     728      IF (k<=MAX(2,icbs(i))-1) THEN
     729        tp(i, k) = tnk(i) - (gz(i,k)-gznk(i))*cpinv(i)
     730        tvp(i, k) = tp(i, k)*(1.+qnk(i)/eps-qnk(i))        !whole thing (convect3)
     731      ENDIF
    724732    END DO
    725733  END DO
Note: See TracChangeset for help on using the changeset viewer.