diff --git a/src/trans/gpu/internal/ltinv_mod.F90 b/src/trans/gpu/internal/ltinv_mod.F90 index c256d894b..0126b4dba 100755 --- a/src/trans/gpu/internal/ltinv_mod.F90 +++ b/src/trans/gpu/internal/ltinv_mod.F90 @@ -65,7 +65,7 @@ FUNCTION PREPARE_LTINV(ALLOCATOR,KF_UV,KF_SCALARS,LVORGP,LDIVGP,LSCDERS) RESULT( IF (LSCDERS) & IF_READIN = IF_READIN + KF_SCALARS ! Scalars NS Derivatives - IPIA_SZ = ALIGN(2_JPIB*IF_READIN*(R%NSMAX+3)*D%NUMP*C_SIZEOF(ZPRBT_DUMMY),128) + IPIA_SZ = ALIGN(2_JPIB*IF_READIN*(R%NSMAX+4)*D%NUMP*C_SIZEOF(ZPRBT_DUMMY),128) ! In Legendre space, we then ignore vorticity/divergence, if ! they don't need to be transformed. @@ -238,10 +238,10 @@ SUBROUTINE LTINV(ALLOCATOR,HLTINV,KF_UV,KF_SCALARS,& IALLOC_POS = 1 ! PIA - IALLOC_SZ = ALIGN(2_JPIB*IF_READIN*(R%NTMAX+3)*D%NUMP*C_SIZEOF(PIA_L(1)),128) + IALLOC_SZ = ALIGN(2_JPIB*IF_READIN*(R%NSMAX+4)*D%NUMP*C_SIZEOF(PIA_L(1)),128) CALL ASSIGN_PTR(PIA_L, GET_ALLOCATION(ALLOCATOR, HLTINV%HPIA_AND_IN),& & IALLOC_POS, IALLOC_SZ) - CALL C_F_POINTER(C_LOC(PIA_L), PIA, (/ 2*IF_READIN, R%NTMAX+3, D%NUMP /)) + CALL C_F_POINTER(C_LOC(PIA_L), PIA, (/ 2*IF_READIN, R%NSMAX+4, D%NUMP /)) IALLOC_POS = IALLOC_POS + IALLOC_SZ ! ZINP diff --git a/src/trans/gpu/internal/prfi1b_mod.F90 b/src/trans/gpu/internal/prfi1b_mod.F90 index daa23b820..1a663a9ec 100755 --- a/src/trans/gpu/internal/prfi1b_mod.F90 +++ b/src/trans/gpu/internal/prfi1b_mod.F90 @@ -109,7 +109,7 @@ SUBROUTINE PRFI1B(PIA,PSPEC,KFIELDS,KDIM,KFLDPTR) #endif #endif DO KMLOC=1,D_NUMP - DO JN=0,R_NSMAX+3 + DO JN=0,R_NSMAX+4 DO JFLD=1,KFIELDS KM = D_MYMS(KMLOC) @@ -121,12 +121,12 @@ SUBROUTINE PRFI1B(PIA,PSPEC,KFIELDS,KDIM,KFLDPTR) INM = IASM0+((R_NSMAX+2-JN)-KM)*2 PIA(2*JFLD-1,JN+1,KMLOC) = PSPEC(JFLD,INM ) PIA(2*JFLD ,JN+1,KMLOC) = PSPEC(JFLD,INM+1) - ELSEIF (JN <= R_NSMAX+3-KM) THEN + ELSEIF (JN <= R_NSMAX+4-KM) THEN PIA(2*JFLD-1,JN+1,KMLOC) = 0.0_JPRB PIA(2*JFLD ,JN+1,KMLOC) = 0.0_JPRB ENDIF - ENDDO ENDDO + ENDDO ENDDO ENDIF diff --git a/src/trans/gpu/internal/spnsde_mod.F90 b/src/trans/gpu/internal/spnsde_mod.F90 index 13c28663f..0ea64d8b0 100755 --- a/src/trans/gpu/internal/spnsde_mod.F90 +++ b/src/trans/gpu/internal/spnsde_mod.F90 @@ -73,23 +73,23 @@ SUBROUTINE SPNSDE(KF_SCALARS,PEPSNM,PF,PNSD) INTEGER(KIND=JPIM) :: KM, KMLOC INTEGER(KIND=JPIM), INTENT(IN) :: KF_SCALARS -REAL(KIND=JPRBT), INTENT(IN) :: PEPSNM(1:D%NUMP,0:R%NTMAX+2) +REAL(KIND=JPRBT), INTENT(IN) :: PEPSNM(1:D%NUMP,0:R%NSMAX+2) REAL(KIND=JPRB), INTENT(IN) :: PF(:,:,:) REAL(KIND=JPRB), INTENT(OUT) :: PNSD(:,:,:) ! LOCAL INTEGER SCALARS INTEGER(KIND=JPIM) :: J, JN, JI, IR, II -ASSOCIATE(D_NUMP=>D%NUMP, R_NTMAX=>R%NTMAX, D_MYMS=>D%MYMS) +ASSOCIATE(D_NUMP=>D%NUMP, R_NSMAX=>R%NSMAX, D_MYMS=>D%MYMS) #ifdef OMPGPU !$OMP TARGET DATA & -!$OMP& MAP(PRESENT,ALLOC:R,R_NTMAX,D,D_MYMS) & +!$OMP& MAP(PRESENT,ALLOC:R,R_NSMAX,D,D_MYMS) & !$OMP& MAP(PRESENT,ALLOC:D_NUMP,PEPSNM,PF,PNSD) #endif #ifdef ACCGPU !$ACC DATA & -!$ACC& PRESENT (R,R_NTMAX, D,D_MYMS) & +!$ACC& PRESENT (R,R_NSMAX, D,D_MYMS) & !$ACC& PRESENT (D_NUMP,PEPSNM, PF, PNSD) ASYNC(1) #endif @@ -114,23 +114,23 @@ SUBROUTINE SPNSDE(KF_SCALARS,PEPSNM,PF,PNSD) #endif #endif DO KMLOC=1,D_NUMP - DO JN=0,R_NTMAX+1 + DO JN=0,R_NSMAX+1 DO J=1,KF_SCALARS IR = 2*J-1 II = IR+1 KM = D_MYMS(KMLOC) IF(KM /= 0 .AND. JN >= KM) THEN - ! (DO JN=KN,R_NTMAX+1) - JI = R_NTMAX+3-JN + ! (DO JN=KN,R_NSMAX+1) + JI = R_NSMAX+3-JN PNSD(IR,JI,KMLOC) = -(JN-1)*PEPSNM(KMLOC,JN)*PF(IR,JI+1,KMLOC)+& &(JN+2)*PEPSNM(KMLOC,JN+1)*PF(IR,JI-1,KMLOC) PNSD(II,JI,KMLOC) = -(JN-1)*PEPSNM(KMLOC,JN)*PF(II,JI+1,KMLOC)+& &(JN+2)*PEPSNM(KMLOC,JN+1)*PF(II,JI-1,KMLOC) ELSEIF(KM == 0) THEN - ! (DO JN=0,R_NTMAX+1) - JI = R_NTMAX+3-JN + ! (DO JN=0,R_NSMAX+1) + JI = R_NSMAX+3-JN PNSD(IR,JI,KMLOC) = -(JN-1)*PEPSNM(KMLOC,JN)*PF(IR,JI+1,KMLOC)+& &(JN+2)*PEPSNM(KMLOC,JN+1)*PF(IR,JI-1,KMLOC) ENDIF diff --git a/src/trans/gpu/internal/vdtuv_mod.F90 b/src/trans/gpu/internal/vdtuv_mod.F90 index da8833376..b56817098 100755 --- a/src/trans/gpu/internal/vdtuv_mod.F90 +++ b/src/trans/gpu/internal/vdtuv_mod.F90 @@ -75,7 +75,7 @@ SUBROUTINE VDTUV(KFIELD,PEPSNM,PVOR,PDIV,PU,PV) INTEGER(KIND=JPIM) :: KM, KMLOC INTEGER(KIND=JPIM), INTENT(IN) :: KFIELD -REAL(KIND=JPRBT), INTENT(IN) :: PEPSNM(1:D%NUMP,0:R%NTMAX+2) +REAL(KIND=JPRBT), INTENT(IN) :: PEPSNM(1:D%NUMP,0:R%NSMAX+2) REAL(KIND=JPRB), INTENT(INOUT) :: PVOR(:,:,:),PDIV(:,:,:) REAL(KIND=JPRB), INTENT(OUT) :: PU (:,:,:),PV (:,:,:) @@ -85,17 +85,17 @@ SUBROUTINE VDTUV(KFIELD,PEPSNM,PVOR,PDIV,PU,PV) ! LOCAL REAL SCALARS REAL(KIND=JPRBT) :: ZKM -ASSOCIATE(D_NUMP=>D%NUMP, D_MYMS=>D%MYMS, R_NTMAX=>R%NTMAX, F_RLAPIN=>F%RLAPIN) +ASSOCIATE(D_NUMP=>D%NUMP, D_MYMS=>D%MYMS, R_NSMAX=>R%NSMAX, F_RLAPIN=>F%RLAPIN) #ifdef ACCGPU !$ACC DATA & -!$ACC& PRESENT(R,R_NTMAX,D,D_MYMS,D_NUMP,F,F_RLAPIN) & +!$ACC& PRESENT(R,R_NSMAX,D,D_MYMS,D_NUMP,F,F_RLAPIN) & !$ACC& PRESENT(PEPSNM, PVOR, PDIV) & !$ACC& PRESENT(PU, PV) #endif #ifdef OMPGPU !$OMP TARGET DATA & -!$OMP& MAP(PRESENT,ALLOC:R,R_NTMAX,D,D_MYMS,D_NUMP,F,F_RLAPIN) & +!$OMP& MAP(PRESENT,ALLOC:R,R_NSMAX,D,D_MYMS,D_NUMP,F,F_RLAPIN) & !$OMP& MAP(PRESENT,ALLOC:PEPSNM, PVOR, PDIV) & !$OMP& MAP(PRESENT,ALLOC:PU, PV) #endif @@ -119,7 +119,7 @@ SUBROUTINE VDTUV(KFIELD,PEPSNM,PVOR,PDIV,PU,PV) #endif #endif DO KMLOC=1,D_NUMP - DO JN=0,R_NTMAX+1 + DO JN=0,R_NSMAX+1 DO J=1,KFIELD IR = 2*J-1 II = IR+1 @@ -127,8 +127,8 @@ SUBROUTINE VDTUV(KFIELD,PEPSNM,PVOR,PDIV,PU,PV) ZKM = REAL(KM,JPRBT) IF(KM /= 0 .AND. JN >= KM) THEN - ! (DO JN=KN,R_NTMAX) - JI = R_NTMAX+3-JN + ! (DO JN=KN,R_NSMAX) + JI = R_NSMAX+3-JN PU(IR,JI,KMLOC) = -ZKM*F_RLAPIN(JN)*PDIV(II,JI,KMLOC)+& &(JN-1)*PEPSNM(KMLOC,JN)*F_RLAPIN(JN-1)*PVOR(IR,JI+1,KMLOC)-& &(JN+2)*PEPSNM(KMLOC,JN+1)*F_RLAPIN(JN+1)*PVOR(IR,JI-1,KMLOC) @@ -143,8 +143,8 @@ SUBROUTINE VDTUV(KFIELD,PEPSNM,PVOR,PDIV,PU,PV) &(JN+2)*PEPSNM(KMLOC,JN+1)*F_RLAPIN(JN+1)*PDIV(II,JI-1,KMLOC) ELSEIF(KM == 0) THEN - ! (DO JN=0,R_NTMAX) - JI = R_NTMAX+3-JN + ! (DO JN=0,R_NSMAX) + JI = R_NSMAX+3-JN PU(IR,JI,KMLOC) = +& &(JN-1)*PEPSNM(KMLOC,JN)*F_RLAPIN(JN-1)*PVOR(IR,JI+1,KMLOC)-&