Skip to content

Commit

Permalink
Merge pull request ecmwf-ifs#9 from dmitrypek/dmitry-overlap-changes
Browse files Browse the repository at this point in the history
Fixed a bug. No longer getting segfaults, but the norms are incorrect.
  • Loading branch information
samhatfield authored Aug 19, 2024
2 parents 031151b + 6f12987 commit 7a34e29
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 11 deletions.
13 changes: 8 additions & 5 deletions src/trans/cpu/internal/overlap_types_mod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ FUNCTION BATCH_CONSTRUCTOR(KBLK, KF_GP, KF_SCALARS_G, KF_UV_G, KVSETUV, KVSETSC,
ISEND=THIS%NSEND(INS)
CALL PE2SET(ISEND,ISETA,ISETB,ISETW,ISETV)
IFLD = 0
DO JFLD=1,KF_GP
DO JFLD=1,THIS%NF_GP
IF(THIS%NVSET(JFLD) == ISETV .OR. THIS%NVSET(JFLD) == -1 ) THEN
IFLD = IFLD+1
ENDIF
Expand All @@ -195,8 +195,8 @@ SUBROUTINE START_COMM(THIS, PGP, IREQ_RECV,PGTF,PCOMBUFS,PCOMBUFR)
REAL(KIND=JPRB) :: PCOMBUFR(:,:),PCOMBUFS(:,:)

CALL TRGTOL_COMM_SEND(PGTF(THIS%IOFFGTF:THIS%IOFFGTF+THIS%NF_FS-1,:), &
& PCOMBUFS(THIS%MYOFFSEND:THIS%MYOFFSEND+THIS%NSENDCOUNT,:), &
& PCOMBUFR(THIS%MYOFFRECV:THIS%MYOFFRECV+THIS%NRECVCOUNT,:), &
& PCOMBUFS(THIS%MYOFFSEND:THIS%MYOFFSEND+THIS%NSENDCOUNT-1,:), &
& PCOMBUFR(THIS%MYOFFRECV:THIS%MYOFFRECV+THIS%NRECVCOUNT-1,:), &
& THIS%NF_FS, THIS%NF_GP, THIS%NF_SCALARS_G, THIS%NVSET, THIS%NSENDCOUNT, &
& THIS%NRECVCOUNT, THIS%NNSEND, THIS%NNRECV, THIS%NSENDTOT, &
& THIS%NRECVTOT, THIS%NSEND, THIS%NRECV, THIS%NINDEX, THIS%NNDOFF, &
Expand Down Expand Up @@ -235,11 +235,14 @@ SUBROUTINE FINISH_COMM(THIS, PGTF, IREQ_RECV, PCOMBUFR, PSPVOR, PSPDIV, PSPSCALA
REAL(KIND=JPRB), OPTIONAL, INTENT(INOUT) :: PSPSCALAR(:,:)
REAL(KIND=JPRB), INTENT(INOUT) :: PCOMBUFR(:,:)

print *,'myoffrecv=',this%myoffrecv
print *,'irecv_fld_end=',this%irecv_fld_end

CALL TRGTOL_COMM_RECV(PGTF(THIS%IOFFGTF:THIS%IOFFGTF+THIS%NF_FS-1,:), &
& PCOMBUFR(THIS%MYOFFRECV:THIS%MYOFFRECV+THIS%NRECVCOUNT,:), &
& PCOMBUFR(THIS%MYOFFRECV:THIS%MYOFFRECV+THIS%NRECVCOUNT-1,:), &
& THIS%IRECV_FLD_END, &
& THIS%NF_FS, THIS%NRECVCOUNT, THIS%NNRECV, THIS%NRECVTOT, THIS%NRECV, &
& THIS%NINDEX, THIS%NNDOFF, THIS%MYOFFRECV, IREQ_RECV)
& THIS%NINDEX, THIS%NNDOFF, IREQ_RECV)
CALL FTDIR_CTL_COMP(PGTF(THIS%IOFFGTF:THIS%IOFFGTF+THIS%NF_FS-1,:), THIS%NF_FS)
CALL LTDIR_CTL(THIS%NF_FS, THIS%NF_UV, THIS%NF_SCALARS, PSPVOR=PSPVOR, PSPDIV=PSPDIV, &
& PSPSCALAR=PSPSCALAR, KFLDPTRUV=THIS%NPTRSPUV, KFLDPTRSC=THIS%NPTRSPSC)
Expand Down
12 changes: 6 additions & 6 deletions src/trans/cpu/internal/trgtol_mod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -696,7 +696,7 @@ SUBROUTINE TRGTOL_COMM_SEND(PGLAT,PCOMBUFS,PCOMBUFR,KF_FS,KF_GP,KF_SCALARS_G,KVS
END SUBROUTINE TRGTOL_COMM_SEND

SUBROUTINE TRGTOL_COMM_RECV(PGLAT, PCOMBUFR, IRECV_FLD_END,KF_FS, KRECVCOUNT, KNRECV, KRECVTOT, &
& KRECV, KINDEX, KNDOFF, MYOFFRECV, KREQ_RECV)
& KRECV, KINDEX, KNDOFF, KREQ_RECV)

USE PARKIND1, ONLY: JPRB, JPIM
USE TPM_DISTR, ONLY: D, NPROC
Expand All @@ -713,7 +713,7 @@ SUBROUTINE TRGTOL_COMM_RECV(PGLAT, PCOMBUFR, IRECV_FLD_END,KF_FS, KRECVCOUNT, KN
INTEGER(KIND=JPIM), INTENT(IN) :: KINDEX(D%NLENGTF)
INTEGER(KIND=JPIM), INTENT(IN) :: KNDOFF(NPROC)
INTEGER(KIND=JPIM), INTENT(IN) :: IRECV_FLD_END(KNRECV)
INTEGER(KIND=JPIM), INTENT(IN) :: MYOFFRECV
!INTEGER(KIND=JPIM), INTENT(IN) :: MYOFFRECV
INTEGER(KIND=JPIM), INTENT(INOUT) :: KREQ_RECV(:)

INTEGER(KIND=JPIM) :: JNR, INR, IRECV, ILEN, JL, II, JFLD
Expand All @@ -723,16 +723,16 @@ SUBROUTINE TRGTOL_COMM_RECV(PGLAT, PCOMBUFR, IRECV_FLD_END,KF_FS, KRECVCOUNT, KN
DO JNR = 1, KNRECV
IRECV = KRECV(JNR)
ILEN = KRECVTOT(IRECV) / KF_FS
! IRECV_FLD_START = PCOMBUFR(-1,JNR)
! IRECV_FLD_START = PCOMBUFR(-1,JNR)
! IRECV_FLD_END = PCOMBUFR(0,JNR)
!$OMP PARALLEL DO SCHEDULE(STATIC) PRIVATE(JL,II,JFLD)
! !$OMP PARALLEL DO SCHEDULE(STATIC) PRIVATE(JL,II,JFLD)
DO JL = 1, ILEN
II = KINDEX(KNDOFF(IRECV)+JL)
DO JFLD = 1, IRECV_FLD_END(JNR)
PGLAT(JFLD,II) = PCOMBUFR(JL+MYOFFRECV+(JFLD-1)*ILEN,JNR)
PGLAT(JFLD,II) = PCOMBUFR(JL+(JFLD-1)*ILEN,JNR)
ENDDO
ENDDO
!$OMP END PARALLEL DO
! !$OMP END PARALLEL DO
ENDDO

END SUBROUTINE TRGTOL_COMM_RECV
Expand Down

0 comments on commit 7a34e29

Please sign in to comment.