Skip to content

Commit ab470da

Browse files
committed
seems to be working
1 parent 5315551 commit ab470da

File tree

1 file changed

+40
-27
lines changed

1 file changed

+40
-27
lines changed

src/framework/mpas_halo.F

Lines changed: 40 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -788,19 +788,6 @@ subroutine mpas_halo_exch_group_full_halo_exch(domain, groupName, iErr)
788788
end if
789789
end do
790790

791-
do i = 1, group % nFields
792-
if (group % fields(i) % fieldType == MPAS_HALO_REAL) then
793-
select case (group % fields(i) % nDims)
794-
case (1)
795-
!$acc exit data delete(group % fields(i) % r1arr(:))
796-
case (2)
797-
!$acc exit data delete(group % fields(i) % r2arr(:,:))
798-
case (3)
799-
!$acc exit data delete(group % fields(i) % r3arr(:,:,:))
800-
end select
801-
end if
802-
end do
803-
804791
!
805792
! Initiate non-blocking sends to all neighbors
806793
!
@@ -872,9 +859,9 @@ subroutine mpas_halo_exch_group_full_halo_exch(domain, groupName, iErr)
872859
!
873860
! Unpack recv buffer from all neighbors for current field
874861
!
875-
!$acc update host(group % recvBuf(:))
876-
!$acc wait
877-
!!$acc kernels default(present)
862+
!!$acc update host(group % recvBuf(:))
863+
!!$acc wait
864+
!$acc kernels default(present)
878865
do iHalo = 1, nHalos
879866
do j = 1, maxNRecvList
880867
if (j <= nRecvLists(iHalo,iEndp)) then
@@ -884,7 +871,7 @@ subroutine mpas_halo_exch_group_full_halo_exch(domain, groupName, iErr)
884871
end if
885872
end do
886873
end do
887-
!!$acc end kernels
874+
!$acc end kernels
888875
!!$acc exit data copyout(group % fields(i) % r1arr(:))
889876

890877
!
@@ -894,9 +881,9 @@ subroutine mpas_halo_exch_group_full_halo_exch(domain, groupName, iErr)
894881
!
895882
! Unpack recv buffer from all neighbors for current field
896883
!
897-
!$acc update host(group % recvBuf(:))
898-
!$acc wait
899-
!!$acc kernels default(present)
884+
!!$acc update host(group % recvBuf(:))
885+
!!$acc wait
886+
!$acc kernels default(present)
900887
do iHalo = 1, nHalos
901888
do j = 1, maxNRecvList
902889
do i1 = 1, dim1
@@ -908,7 +895,7 @@ subroutine mpas_halo_exch_group_full_halo_exch(domain, groupName, iErr)
908895
end do
909896
end do
910897
end do
911-
!!$acc end kernels
898+
!$acc end kernels
912899
!!$acc exit data copyout(group % fields(i) % r2arr(:,:))
913900

914901
!
@@ -918,9 +905,9 @@ subroutine mpas_halo_exch_group_full_halo_exch(domain, groupName, iErr)
918905
!
919906
! Unpack recv buffer from all neighbors for current field
920907
!
921-
!$acc update host(group % recvBuf(:))
922-
!$acc wait
923-
!!$acc kernels default(present)
908+
!!$acc update host(group % recvBuf(:))
909+
!!$acc wait
910+
!$acc kernels default(present)
924911
do iHalo = 1, nHalos
925912
do j = 1, maxNRecvList
926913
do i2 = 1, dim2
@@ -935,17 +922,43 @@ subroutine mpas_halo_exch_group_full_halo_exch(domain, groupName, iErr)
935922
end do
936923
end do
937924
end do
938-
!!$acc end kernels
925+
!$acc end kernels
939926
!!$acc exit data copyout(group % fields(i) % r3arr(:,:,:))
940927

941928
end select
942929
end if
943930
end do
944931
end do
945932

933+
do i = 1, group % nFields
934+
if (group % fields(i) % fieldType == MPAS_HALO_REAL) then
935+
select case (group % fields(i) % nDims)
936+
case (1)
937+
!$acc update self(group % fields(i) % r1arr(:))
938+
case (2)
939+
!$acc update self(group % fields(i) % r2arr(:,:))
940+
case (3)
941+
!$acc update self(group % fields(i) % r3arr(:,:,:))
942+
end select
943+
end if
944+
end do
945+
946+
do i = 1, group % nFields
947+
if (group % fields(i) % fieldType == MPAS_HALO_REAL) then
948+
select case (group % fields(i) % nDims)
949+
case (1)
950+
!$acc exit data delete(group % fields(i) % r1arr(:))
951+
case (2)
952+
!$acc exit data delete(group % fields(i) % r2arr(:,:))
953+
case (3)
954+
!$acc exit data delete(group % fields(i) % r3arr(:,:,:))
955+
end select
956+
end if
957+
end do
958+
946959
! For the present(group % recvBuf(:), group % sendBuf(:))
947960
!$acc end data
948-
961+
! !$acc wait
949962
! do i = 1, group % nFields
950963
! if (group % fields(i) % fieldType == MPAS_HALO_REAL) then
951964
! select case (group % fields(i) % nDims)
@@ -958,7 +971,7 @@ subroutine mpas_halo_exch_group_full_halo_exch(domain, groupName, iErr)
958971
! end select
959972
! end if
960973
! end do
961-
974+
! !$acc wait
962975

963976
!
964977
! Nullify array pointers - not necessary for correctness, but helpful when debugging

0 commit comments

Comments
 (0)