Skip to content

Commit b93dfa7

Browse files
authored
Fix mv read loop hardcoding 4 instead of nnode (#1190)
1 parent d8c479f commit b93dfa7

5 files changed

Lines changed: 52 additions & 40 deletions

File tree

src/common/m_mpi_common.fpp

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ contains
5858
! the largest buffer in the computational domain.
5959

6060
if (qbmm .and. .not. polytropic) then
61-
v_size = sys_size + 2*nb*4
61+
v_size = sys_size + 2*nb*nnode
6262
else
6363
v_size = sys_size
6464
end if
@@ -190,7 +190,7 @@ contains
190190

191191
#ifndef MFC_POST_PROCESS
192192
if (qbmm .and. .not. polytropic) then
193-
do i = sys_size + 1, sys_size + 2*nb*4
193+
do i = sys_size + 1, sys_size + 2*nb*nnode
194194
call MPI_TYPE_CREATE_SUBARRAY(num_dims, sizes_glb, sizes_loc, start_idx, &
195195
MPI_ORDER_FORTRAN, mpi_p, MPI_IO_DATA%view(i), ierr)
196196
call MPI_TYPE_COMMIT(MPI_IO_DATA%view(i), ierr)
@@ -675,7 +675,7 @@ contains
675675

676676
if (present(pb_in) .and. present(mv_in) .and. qbmm .and. .not. polytropic) then
677677
qbmm_comm = .true.
678-
v_size = nVar + 2*nb*4
678+
v_size = nVar + 2*nb*nnode
679679
buffer_counts = (/ &
680680
buff_size*v_size*(n + 1)*(p + 1), &
681681
buff_size*v_size*(m + 2*buff_size + 1)*(p + 1), &
@@ -744,9 +744,9 @@ contains
744744
do l = 0, p
745745
do k = 0, n
746746
do j = 0, buff_size - 1
747-
do i = nVar + 1, nVar + 4
747+
do i = nVar + 1, nVar + nnode
748748
do q = 1, nb
749-
r = (i - 1) + (q - 1)*4 + v_size* &
749+
r = (i - 1) + (q - 1)*nnode + v_size* &
750750
(j + buff_size*(k + (n + 1)*l))
751751
buff_send(r) = real(pb_in(j + pack_offset, k, l, i - nVar, q), kind=wp)
752752
end do
@@ -760,9 +760,9 @@ contains
760760
do l = 0, p
761761
do k = 0, n
762762
do j = 0, buff_size - 1
763-
do i = nVar + 1, nVar + 4
763+
do i = nVar + 1, nVar + nnode
764764
do q = 1, nb
765-
r = (i - 1) + (q - 1)*4 + nb*4 + v_size* &
765+
r = (i - 1) + (q - 1)*nnode + nb*nnode + v_size* &
766766
(j + buff_size*(k + (n + 1)*l))
767767
buff_send(r) = real(mv_in(j + pack_offset, k, l, i - nVar, q), kind=wp)
768768
end do
@@ -790,12 +790,12 @@ contains
790790

791791
if (qbmm_comm) then
792792
$:GPU_PARALLEL_LOOP(collapse=5,private='[r]')
793-
do i = nVar + 1, nVar + 4
793+
do i = nVar + 1, nVar + nnode
794794
do l = 0, p
795795
do k = 0, buff_size - 1
796796
do j = -buff_size, m + buff_size
797797
do q = 1, nb
798-
r = (i - 1) + (q - 1)*4 + v_size* &
798+
r = (i - 1) + (q - 1)*nnode + v_size* &
799799
((j + buff_size) + (m + 2*buff_size + 1)* &
800800
(k + buff_size*l))
801801
buff_send(r) = real(pb_in(j, k + pack_offset, l, i - nVar, q), kind=wp)
@@ -807,12 +807,12 @@ contains
807807
$:END_GPU_PARALLEL_LOOP()
808808

809809
$:GPU_PARALLEL_LOOP(collapse=5,private='[r]')
810-
do i = nVar + 1, nVar + 4
810+
do i = nVar + 1, nVar + nnode
811811
do l = 0, p
812812
do k = 0, buff_size - 1
813813
do j = -buff_size, m + buff_size
814814
do q = 1, nb
815-
r = (i - 1) + (q - 1)*4 + nb*4 + v_size* &
815+
r = (i - 1) + (q - 1)*nnode + nb*nnode + v_size* &
816816
((j + buff_size) + (m + 2*buff_size + 1)* &
817817
(k + buff_size*l))
818818
buff_send(r) = real(mv_in(j, k + pack_offset, l, i - nVar, q), kind=wp)
@@ -841,12 +841,12 @@ contains
841841

842842
if (qbmm_comm) then
843843
$:GPU_PARALLEL_LOOP(collapse=5,private='[r]')
844-
do i = nVar + 1, nVar + 4
844+
do i = nVar + 1, nVar + nnode
845845
do l = 0, buff_size - 1
846846
do k = -buff_size, n + buff_size
847847
do j = -buff_size, m + buff_size
848848
do q = 1, nb
849-
r = (i - 1) + (q - 1)*4 + v_size* &
849+
r = (i - 1) + (q - 1)*nnode + v_size* &
850850
((j + buff_size) + (m + 2*buff_size + 1)* &
851851
((k + buff_size) + (n + 2*buff_size + 1)*l))
852852
buff_send(r) = real(pb_in(j, k, l + pack_offset, i - nVar, q), kind=wp)
@@ -858,12 +858,12 @@ contains
858858
$:END_GPU_PARALLEL_LOOP()
859859

860860
$:GPU_PARALLEL_LOOP(collapse=5,private='[r]')
861-
do i = nVar + 1, nVar + 4
861+
do i = nVar + 1, nVar + nnode
862862
do l = 0, buff_size - 1
863863
do k = -buff_size, n + buff_size
864864
do j = -buff_size, m + buff_size
865865
do q = 1, nb
866-
r = (i - 1) + (q - 1)*4 + nb*4 + v_size* &
866+
r = (i - 1) + (q - 1)*nnode + nb*nnode + v_size* &
867867
((j + buff_size) + (m + 2*buff_size + 1)* &
868868
((k + buff_size) + (n + 2*buff_size + 1)*l))
869869
buff_send(r) = real(mv_in(j, k, l + pack_offset, i - nVar, q), kind=wp)
@@ -952,9 +952,9 @@ contains
952952
do l = 0, p
953953
do k = 0, n
954954
do j = -buff_size, -1
955-
do i = nVar + 1, nVar + 4
955+
do i = nVar + 1, nVar + nnode
956956
do q = 1, nb
957-
r = (i - 1) + (q - 1)*4 + v_size* &
957+
r = (i - 1) + (q - 1)*nnode + v_size* &
958958
(j + buff_size*((k + 1) + (n + 1)*l))
959959
pb_in(j + unpack_offset, k, l, i - nVar, q) = real(buff_recv(r), kind=stp)
960960
end do
@@ -968,9 +968,9 @@ contains
968968
do l = 0, p
969969
do k = 0, n
970970
do j = -buff_size, -1
971-
do i = nVar + 1, nVar + 4
971+
do i = nVar + 1, nVar + nnode
972972
do q = 1, nb
973-
r = (i - 1) + (q - 1)*4 + nb*4 + v_size* &
973+
r = (i - 1) + (q - 1)*nnode + nb*nnode + v_size* &
974974
(j + buff_size*((k + 1) + (n + 1)*l))
975975
mv_in(j + unpack_offset, k, l, i - nVar, q) = real(buff_recv(r), kind=stp)
976976
end do
@@ -1004,12 +1004,12 @@ contains
10041004

10051005
if (qbmm_comm) then
10061006
$:GPU_PARALLEL_LOOP(collapse=5,private='[r]')
1007-
do i = nVar + 1, nVar + 4
1007+
do i = nVar + 1, nVar + nnode
10081008
do l = 0, p
10091009
do k = -buff_size, -1
10101010
do j = -buff_size, m + buff_size
10111011
do q = 1, nb
1012-
r = (i - 1) + (q - 1)*4 + v_size* &
1012+
r = (i - 1) + (q - 1)*nnode + v_size* &
10131013
((j + buff_size) + (m + 2*buff_size + 1)* &
10141014
((k + buff_size) + buff_size*l))
10151015
pb_in(j, k + unpack_offset, l, i - nVar, q) = real(buff_recv(r), kind=stp)
@@ -1021,12 +1021,12 @@ contains
10211021
$:END_GPU_PARALLEL_LOOP()
10221022

10231023
$:GPU_PARALLEL_LOOP(collapse=5,private='[r]')
1024-
do i = nVar + 1, nVar + 4
1024+
do i = nVar + 1, nVar + nnode
10251025
do l = 0, p
10261026
do k = -buff_size, -1
10271027
do j = -buff_size, m + buff_size
10281028
do q = 1, nb
1029-
r = (i - 1) + (q - 1)*4 + nb*4 + v_size* &
1029+
r = (i - 1) + (q - 1)*nnode + nb*nnode + v_size* &
10301030
((j + buff_size) + (m + 2*buff_size + 1)* &
10311031
((k + buff_size) + buff_size*l))
10321032
mv_in(j, k + unpack_offset, l, i - nVar, q) = real(buff_recv(r), kind=stp)
@@ -1063,12 +1063,12 @@ contains
10631063

10641064
if (qbmm_comm) then
10651065
$:GPU_PARALLEL_LOOP(collapse=5,private='[r]')
1066-
do i = nVar + 1, nVar + 4
1066+
do i = nVar + 1, nVar + nnode
10671067
do l = -buff_size, -1
10681068
do k = -buff_size, n + buff_size
10691069
do j = -buff_size, m + buff_size
10701070
do q = 1, nb
1071-
r = (i - 1) + (q - 1)*4 + v_size* &
1071+
r = (i - 1) + (q - 1)*nnode + v_size* &
10721072
((j + buff_size) + (m + 2*buff_size + 1)* &
10731073
((k + buff_size) + (n + 2*buff_size + 1)* &
10741074
(l + buff_size)))
@@ -1081,12 +1081,12 @@ contains
10811081
$:END_GPU_PARALLEL_LOOP()
10821082

10831083
$:GPU_PARALLEL_LOOP(collapse=5,private='[r]')
1084-
do i = nVar + 1, nVar + 4
1084+
do i = nVar + 1, nVar + nnode
10851085
do l = -buff_size, -1
10861086
do k = -buff_size, n + buff_size
10871087
do j = -buff_size, m + buff_size
10881088
do q = 1, nb
1089-
r = (i - 1) + (q - 1)*4 + nb*4 + v_size* &
1089+
r = (i - 1) + (q - 1)*nnode + nb*nnode + v_size* &
10901090
((j + buff_size) + (m + 2*buff_size + 1)* &
10911091
((k + buff_size) + (n + 2*buff_size + 1)* &
10921092
(l + buff_size)))

src/post_process/m_global_parameters.fpp

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -858,8 +858,14 @@ contains
858858
chemxe = species_idx%end
859859

860860
#ifdef MFC_MPI
861-
allocate (MPI_IO_DATA%view(1:sys_size))
862-
allocate (MPI_IO_DATA%var(1:sys_size))
861+
if (qbmm .and. .not. polytropic) then
862+
allocate (MPI_IO_DATA%view(1:sys_size + 2*nb*nnode))
863+
allocate (MPI_IO_DATA%var(1:sys_size + 2*nb*nnode))
864+
else
865+
allocate (MPI_IO_DATA%view(1:sys_size))
866+
allocate (MPI_IO_DATA%var(1:sys_size))
867+
end if
868+
863869
do i = 1, sys_size
864870
if (down_sample) then
865871
allocate (MPI_IO_DATA%var(i)%sf(-1:m + 1, -1:n + 1, -1:p + 1))
@@ -868,6 +874,12 @@ contains
868874
end if
869875
MPI_IO_DATA%var(i)%sf => null()
870876
end do
877+
if (qbmm .and. .not. polytropic) then
878+
do i = sys_size + 1, sys_size + 2*nb*nnode
879+
allocate (MPI_IO_DATA%var(i)%sf(0:m, 0:n, 0:p))
880+
MPI_IO_DATA%var(i)%sf => null()
881+
end do
882+
end if
871883

872884
if (ib) allocate (MPI_IO_IB_DATA%var%sf(0:m, 0:n, 0:p))
873885
#endif

src/pre_process/m_global_parameters.fpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -570,7 +570,7 @@ contains
570570
patch_ib(i)%model_spc = num_ray
571571
patch_ib(i)%model_threshold = ray_tracing_threshold
572572

573-
! Variables to handle moving imersed boundaries, defaulting to no movement
573+
! Variables to handle moving immersed boundaries, defaulting to no movement
574574
patch_ib(i)%moving_ibm = 0
575575
patch_ib(i)%vel(:) = 0._wp
576576
patch_ib(i)%angles(:) = 0._wp
@@ -930,8 +930,8 @@ contains
930930
#ifdef MFC_MPI
931931

932932
if (qbmm .and. .not. polytropic) then
933-
allocate (MPI_IO_DATA%view(1:sys_size + 2*nb*4))
934-
allocate (MPI_IO_DATA%var(1:sys_size + 2*nb*4))
933+
allocate (MPI_IO_DATA%view(1:sys_size + 2*nb*nnode))
934+
allocate (MPI_IO_DATA%var(1:sys_size + 2*nb*nnode))
935935
else
936936
allocate (MPI_IO_DATA%view(1:sys_size))
937937
allocate (MPI_IO_DATA%var(1:sys_size))
@@ -944,7 +944,7 @@ contains
944944
end do
945945
end if
946946
if (qbmm .and. .not. polytropic) then
947-
do i = sys_size + 1, sys_size + 2*nb*4
947+
do i = sys_size + 1, sys_size + 2*nb*nnode
948948
allocate (MPI_IO_DATA%var(i)%sf(0:m, 0:n, 0:p))
949949
MPI_IO_DATA%var(i)%sf => null()
950950
end do

src/pre_process/m_start_up.fpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -478,10 +478,10 @@ contains
478478
end do
479479
480480
do i = 1, nb
481-
do r = 1, 4
481+
do r = 1, nnode
482482
! Checking whether data file associated with variable position
483483
! of the currently manipulated bubble variable exists
484-
write (file_num, '(I0)') sys_size + r + (i - 1)*4
484+
write (file_num, '(I0)') sys_size + r + (i - 1)*nnode
485485
file_loc = trim(t_step_dir)//'/mv'// &
486486
trim(file_num)//'.dat'
487487
inquire (FILE=trim(file_loc), EXIST=file_check)
@@ -681,7 +681,7 @@ contains
681681
end do
682682
683683
if (qbmm .and. .not. polytropic) then
684-
do i = sys_size + 1, sys_size + 2*nb*4
684+
do i = sys_size + 1, sys_size + 2*nb*nnode
685685
var_MOK = int(i, MPI_OFFSET_KIND)
686686
687687
! Initial displacement to skip at beginning of file

src/simulation/m_global_parameters.fpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -880,7 +880,7 @@ contains
880880
patch_ib(i)%model_spc = num_ray
881881
patch_ib(i)%model_threshold = ray_tracing_threshold
882882
883-
! Variables to handle moving imersed boundaries, defaulting to no movement
883+
! Variables to handle moving immersed boundaries, defaulting to no movement
884884
patch_ib(i)%moving_ibm = 0
885885
patch_ib(i)%vel(:) = 0._wp
886886
patch_ib(i)%angles(:) = 0._wp
@@ -1216,8 +1216,8 @@ contains
12161216
end if
12171217
12181218
if (bubbles_euler .and. qbmm .and. .not. polytropic) then
1219-
allocate (MPI_IO_DATA%view(1:sys_size + 2*nb*4))
1220-
allocate (MPI_IO_DATA%var(1:sys_size + 2*nb*4))
1219+
allocate (MPI_IO_DATA%view(1:sys_size + 2*nb*nnode))
1220+
allocate (MPI_IO_DATA%var(1:sys_size + 2*nb*nnode))
12211221
elseif (bubbles_lagrange) then
12221222
allocate (MPI_IO_DATA%view(1:sys_size + 1))
12231223
allocate (MPI_IO_DATA%var(1:sys_size + 1))
@@ -1233,7 +1233,7 @@ contains
12331233
end do
12341234
end if
12351235
if (bubbles_euler .and. qbmm .and. .not. polytropic) then
1236-
do i = sys_size + 1, sys_size + 2*nb*4
1236+
do i = sys_size + 1, sys_size + 2*nb*nnode
12371237
allocate (MPI_IO_DATA%var(i)%sf(0:m, 0:n, 0:p))
12381238
MPI_IO_DATA%var(i)%sf => null()
12391239
end do

0 commit comments

Comments
 (0)