1000 type(scalar_field),
dimension(1:),
intent(inout) :: q_comm
1001 real(stp),
optional,
dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:,1:),
intent(inout) :: pb_in, mv_in
1002 integer,
intent(in) :: mpi_dir, pbc_loc, nVar
1003 integer :: i, j, k, l, r, q
1004 integer :: buffer_counts(1:3), buffer_count
1005 type(int_bounds_info) :: boundary_conditions(1:3)
1006 integer :: beg_end(1:2), grid_dims(1:3)
1007 integer :: dst_proc, src_proc, recv_tag, send_tag
1008 logical :: beg_end_geq_0, qbmm_comm, chem_diff_comm
1009 integer :: pack_offset, unpack_offset
1010 type(scalar_field),
optional,
intent(inout) :: q_T_sf
1015 call nvtxstartrange(
"RHS-COMM-PACKBUF")
1018 chem_diff_comm = .false.
1020 if (
present(pb_in) .and.
present(mv_in) .and. qbmm .and. .not. polytropic)
then
1022 v_size = nvar + 2*nb*nnode
1023 buffer_counts = (/buff_size*
v_size*(n + 1)*(p + 1), buff_size*
v_size*(m + 2*buff_size + 1)*(p + 1), &
1024 & buff_size*
v_size*(m + 2*buff_size + 1)*(n + 2*buff_size + 1)/)
1029 chem_diff_comm = .true.
1031 buffer_counts = (/buff_size*
v_size*(n + 1)*(p + 1), buff_size*
v_size*(m + 2*buff_size + 1)*(p + 1), &
1032 & buff_size*
v_size*(m + 2*buff_size + 1)*(n + 2*buff_size + 1)/)
1035 buffer_counts = (/buff_size*
v_size*(n + 1)*(p + 1), buff_size*
v_size*(m + 2*buff_size + 1)*(p + 1), &
1036 & buff_size*
v_size*(m + 2*buff_size + 1)*(n + 2*buff_size + 1)/)
1040# 590 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1041#if defined(MFC_OpenACC)
1042# 590 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1044# 590 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1045#elif defined(MFC_OpenMP)
1046# 590 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1048# 590 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1051 buffer_count = buffer_counts(mpi_dir)
1052 boundary_conditions = (/bc_x, bc_y, bc_z/)
1053 beg_end = (/boundary_conditions(mpi_dir)%beg, boundary_conditions(mpi_dir)%end/)
1054 beg_end_geq_0 = beg_end(max(pbc_loc, 0) - pbc_loc + 1) >= 0
1060 send_tag = f_logical_to_int(.not. f_xor(beg_end_geq_0, pbc_loc == 1))
1061 recv_tag = f_logical_to_int(pbc_loc == 1)
1063 dst_proc = beg_end(1 + f_logical_to_int(f_xor(pbc_loc == 1, beg_end_geq_0)))
1064 src_proc = beg_end(1 + f_logical_to_int(pbc_loc == 1))
1066 grid_dims = (/m, n, p/)
1069 if (f_xor(pbc_loc == 1, beg_end_geq_0))
then
1070 pack_offset = grid_dims(mpi_dir) - buff_size + 1
1074 if (pbc_loc == 1)
then
1075 unpack_offset = grid_dims(mpi_dir) + buff_size + 1
1079# 621 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1080 if (mpi_dir == 1)
then
1081# 623 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1083# 623 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1085# 623 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1086#if defined(MFC_OpenACC)
1087# 623 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1089# 623 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1090#elif defined(MFC_OpenMP)
1091# 623 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1093# 623 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1095# 623 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1097# 623 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1099# 623 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1103 do j = 0, buff_size - 1
1105 r = (i - 1) +
v_size*(j + buff_size*(k + (n + 1)*l))
1106 buff_send(r) = real(q_comm(i)%sf(j + pack_offset, k, l), kind=wp)
1112# 634 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1113#if defined(MFC_OpenACC)
1114# 634 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1116# 634 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1117#elif defined(MFC_OpenMP)
1118# 634 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1120# 634 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1122# 634 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1125 if (chem_diff_comm)
then
1127# 637 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1129# 637 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1130#if defined(MFC_OpenACC)
1131# 637 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1133# 637 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1134#elif defined(MFC_OpenMP)
1135# 637 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1137# 637 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1139# 637 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1141# 637 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1143# 637 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1147 do j = 0, buff_size - 1
1148 r = nvar +
v_size*(j + buff_size*(k + (n + 1)*l))
1149 buff_send(r) = real(q_t_sf%sf(j + pack_offset, k, l), kind=wp)
1154# 646 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1155#if defined(MFC_OpenACC)
1156# 646 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1158# 646 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1159#elif defined(MFC_OpenMP)
1160# 646 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1162# 646 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1164# 646 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1170# 650 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1172# 650 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1173#if defined(MFC_OpenACC)
1174# 650 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1176# 650 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1177#elif defined(MFC_OpenMP)
1178# 650 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1180# 650 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1182# 650 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1184# 650 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1186# 650 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1190 do j = 0, buff_size - 1
1191 do i = nvar + 1, nvar + nnode
1193 r = (i - 1) + (q - 1)*nnode +
v_size*(j + buff_size*(k + (n + 1)*l))
1194 buff_send(r) = real(pb_in(j + pack_offset, k, l, i - nvar, q), kind=wp)
1201# 663 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1202#if defined(MFC_OpenACC)
1203# 663 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1205# 663 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1206#elif defined(MFC_OpenMP)
1207# 663 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1209# 663 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1211# 663 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1215# 665 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1217# 665 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1218#if defined(MFC_OpenACC)
1219# 665 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1221# 665 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1222#elif defined(MFC_OpenMP)
1223# 665 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1225# 665 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1227# 665 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1229# 665 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1231# 665 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1235 do j = 0, buff_size - 1
1236 do i = nvar + 1, nvar + nnode
1238 r = (i - 1) + (q - 1)*nnode + nb*nnode +
v_size*(j + buff_size*(k + (n + 1)*l))
1239 buff_send(r) = real(mv_in(j + pack_offset, k, l, i - nvar, q), kind=wp)
1246# 678 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1247#if defined(MFC_OpenACC)
1248# 678 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1250# 678 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1251#elif defined(MFC_OpenMP)
1252# 678 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1254# 678 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1256# 678 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1259# 803 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1261# 621 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1262 if (mpi_dir == 2)
then
1263# 681 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1265# 681 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1267# 681 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1268#if defined(MFC_OpenACC)
1269# 681 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1271# 681 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1272#elif defined(MFC_OpenMP)
1273# 681 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1275# 681 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1277# 681 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1279# 681 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1281# 681 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1285 do k = 0, buff_size - 1
1286 do j = -buff_size, m + buff_size
1287 r = (i - 1) +
v_size*((j + buff_size) + (m + 2*buff_size + 1)*(k + buff_size*l))
1288 buff_send(r) = real(q_comm(i)%sf(j, k + pack_offset, l), kind=wp)
1294# 692 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1295#if defined(MFC_OpenACC)
1296# 692 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1298# 692 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1299#elif defined(MFC_OpenMP)
1300# 692 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1302# 692 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1304# 692 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1307 if (chem_diff_comm)
then
1309# 695 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1311# 695 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1312#if defined(MFC_OpenACC)
1313# 695 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1315# 695 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1316#elif defined(MFC_OpenMP)
1317# 695 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1319# 695 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1321# 695 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1323# 695 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1325# 695 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1328 do k = 0, buff_size - 1
1329 do j = -buff_size, m + buff_size
1330 r = nvar +
v_size*((j + buff_size) + (m + 2*buff_size + 1)*(k + buff_size*l))
1331 buff_send(r) = real(q_t_sf%sf(j, k + pack_offset, l), kind=wp)
1336# 704 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1337#if defined(MFC_OpenACC)
1338# 704 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1340# 704 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1341#elif defined(MFC_OpenMP)
1342# 704 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1344# 704 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1346# 704 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1352# 708 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1354# 708 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1355#if defined(MFC_OpenACC)
1356# 708 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1358# 708 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1359#elif defined(MFC_OpenMP)
1360# 708 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1362# 708 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1364# 708 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1366# 708 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1368# 708 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1370 do i = nvar + 1, nvar + nnode
1372 do k = 0, buff_size - 1
1373 do j = -buff_size, m + buff_size
1375 r = (i - 1) + (q - 1)*nnode +
v_size*((j + buff_size) + (m + 2*buff_size + 1)*(k &
1377 buff_send(r) = real(pb_in(j, k + pack_offset, l, i - nvar, q), kind=wp)
1384# 722 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1385#if defined(MFC_OpenACC)
1386# 722 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1388# 722 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1389#elif defined(MFC_OpenMP)
1390# 722 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1392# 722 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1394# 722 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1398# 724 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1400# 724 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1401#if defined(MFC_OpenACC)
1402# 724 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1404# 724 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1405#elif defined(MFC_OpenMP)
1406# 724 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1408# 724 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1410# 724 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1412# 724 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1414# 724 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1416 do i = nvar + 1, nvar + nnode
1418 do k = 0, buff_size - 1
1419 do j = -buff_size, m + buff_size
1421 r = (i - 1) + (q - 1)*nnode + nb*nnode +
v_size*((j + buff_size) + (m + 2*buff_size &
1422 & + 1)*(k + buff_size*l))
1423 buff_send(r) = real(mv_in(j, k + pack_offset, l, i - nvar, q), kind=wp)
1430# 738 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1431#if defined(MFC_OpenACC)
1432# 738 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1434# 738 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1435#elif defined(MFC_OpenMP)
1436# 738 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1438# 738 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1440# 738 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1443# 803 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1445# 621 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1446 if (mpi_dir == 3)
then
1447# 741 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1449# 741 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1451# 741 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1452#if defined(MFC_OpenACC)
1453# 741 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1455# 741 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1456#elif defined(MFC_OpenMP)
1457# 741 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1459# 741 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1461# 741 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1463# 741 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1465# 741 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1468 do l = 0, buff_size - 1
1469 do k = -buff_size, n + buff_size
1470 do j = -buff_size, m + buff_size
1471 r = (i - 1) +
v_size*((j + buff_size) + (m + 2*buff_size + 1)*((k + buff_size) + (n &
1472 & + 2*buff_size + 1)*l))
1473 buff_send(r) = real(q_comm(i)%sf(j, k, l + pack_offset), kind=wp)
1479# 753 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1480#if defined(MFC_OpenACC)
1481# 753 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1483# 753 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1484#elif defined(MFC_OpenMP)
1485# 753 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1487# 753 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1489# 753 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1492 if (chem_diff_comm)
then
1494# 756 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1496# 756 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1497#if defined(MFC_OpenACC)
1498# 756 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1500# 756 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1501#elif defined(MFC_OpenMP)
1502# 756 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1504# 756 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1506# 756 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1508# 756 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1510# 756 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1512 do l = 0, buff_size - 1
1513 do k = -buff_size, n + buff_size
1514 do j = -buff_size, m + buff_size
1515 r = nvar +
v_size*((j + buff_size) + (m + 2*buff_size + 1)*((k + buff_size) + (n &
1516 & + 2*buff_size + 1)*l))
1517 buff_send(r) = real(q_t_sf%sf(j, k, l + pack_offset), kind=wp)
1522# 766 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1523#if defined(MFC_OpenACC)
1524# 766 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1526# 766 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1527#elif defined(MFC_OpenMP)
1528# 766 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1530# 766 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1532# 766 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1538# 770 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1540# 770 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1541#if defined(MFC_OpenACC)
1542# 770 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1544# 770 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1545#elif defined(MFC_OpenMP)
1546# 770 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1548# 770 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1550# 770 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1552# 770 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1554# 770 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1556 do i = nvar + 1, nvar + nnode
1557 do l = 0, buff_size - 1
1558 do k = -buff_size, n + buff_size
1559 do j = -buff_size, m + buff_size
1561 r = (i - 1) + (q - 1)*nnode +
v_size*((j + buff_size) + (m + 2*buff_size + 1)*((k &
1562 & + buff_size) + (n + 2*buff_size + 1)*l))
1563 buff_send(r) = real(pb_in(j, k, l + pack_offset, i - nvar, q), kind=wp)
1570# 784 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1571#if defined(MFC_OpenACC)
1572# 784 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1574# 784 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1575#elif defined(MFC_OpenMP)
1576# 784 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1578# 784 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1580# 784 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1584# 786 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1586# 786 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1587#if defined(MFC_OpenACC)
1588# 786 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1590# 786 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1591#elif defined(MFC_OpenMP)
1592# 786 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1594# 786 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1596# 786 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1598# 786 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1600# 786 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1602 do i = nvar + 1, nvar + nnode
1603 do l = 0, buff_size - 1
1604 do k = -buff_size, n + buff_size
1605 do j = -buff_size, m + buff_size
1607 r = (i - 1) + (q - 1)*nnode + nb*nnode +
v_size*((j + buff_size) + (m + 2*buff_size &
1608 & + 1)*((k + buff_size) + (n + 2*buff_size + 1)*l))
1609 buff_send(r) = real(mv_in(j, k, l + pack_offset, i - nvar, q), kind=wp)
1616# 800 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1617#if defined(MFC_OpenACC)
1618# 800 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1620# 800 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1621#elif defined(MFC_OpenMP)
1622# 800 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1624# 800 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1626# 800 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1629# 803 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1631# 805 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1635# 809 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1637# 821 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1638 call nvtxstartrange(
"RHS-COMM-DEV2HOST")
1640# 822 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1641#if defined(MFC_OpenACC)
1642# 822 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1644# 822 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1645#elif defined(MFC_OpenMP)
1646# 822 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1648# 822 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1651 call nvtxstartrange(
"RHS-COMM-SENDRECV-NO-RMDA")
1653 call mpi_sendrecv(
buff_send, buffer_count, mpi_p, dst_proc, send_tag,
buff_recv, buffer_count, mpi_p, &
1654 & src_proc, recv_tag, mpi_comm_world, mpi_status_ignore, ierr)
1658 call nvtxstartrange(
"RHS-COMM-HOST2DEV")
1660# 832 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1661#if defined(MFC_OpenACC)
1662# 832 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1664# 832 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1665#elif defined(MFC_OpenMP)
1666# 832 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1668# 832 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1671# 835 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1673# 809 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1675# 811 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1677# 811 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1678#if defined(MFC_OpenACC)
1679# 811 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1681# 811 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1682 call nvtxstartrange(
"RHS-COMM-SENDRECV-RDMA")
1683# 811 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1685# 811 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1686 call mpi_sendrecv(
buff_send, buffer_count, mpi_p, dst_proc, send_tag,
buff_recv, buffer_count, mpi_p, &
1687# 811 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1688 & src_proc, recv_tag, mpi_comm_world, mpi_status_ignore, ierr)
1689# 811 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1691# 811 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1693# 811 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1695# 811 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1696#elif defined(MFC_OpenMP)
1697# 811 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1699# 811 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1700 call nvtxstartrange(
"RHS-COMM-SENDRECV-RDMA")
1701# 811 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1703# 811 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1704 call mpi_sendrecv(
buff_send, buffer_count, mpi_p, dst_proc, send_tag,
buff_recv, buffer_count, mpi_p, &
1705# 811 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1706 & src_proc, recv_tag, mpi_comm_world, mpi_status_ignore, ierr)
1707# 811 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1709# 811 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1711# 811 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1713# 811 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1715# 811 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1716 call nvtxstartrange(
"RHS-COMM-SENDRECV-RDMA")
1717# 811 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1719# 811 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1720 call mpi_sendrecv(
buff_send, buffer_count, mpi_p, dst_proc, send_tag,
buff_recv, buffer_count, mpi_p, &
1721# 811 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1722 & src_proc, recv_tag, mpi_comm_world, mpi_status_ignore, ierr)
1723# 811 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1725# 811 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1727# 811 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1729# 819 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1731# 819 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1732#if defined(MFC_OpenACC)
1733# 819 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1735# 819 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1736#elif defined(MFC_OpenMP)
1737# 819 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1739# 819 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1741# 835 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1743# 837 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1746 call nvtxstartrange(
"RHS-COMM-UNPACKBUF")
1747# 841 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1748 if (mpi_dir == 1)
then
1749# 843 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1751# 843 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1753# 843 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1754#if defined(MFC_OpenACC)
1755# 843 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1757# 843 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1758#elif defined(MFC_OpenMP)
1759# 843 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1761# 843 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1763# 843 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1765# 843 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1767# 843 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1771 do j = -buff_size, -1
1773 r = (i - 1) +
v_size*(j + buff_size*((k + 1) + (n + 1)*l))
1774 q_comm(i)%sf(j + unpack_offset, k, l) = real(
buff_recv(r), kind=stp)
1775#if defined(__INTEL_COMPILER)
1776 if (ieee_is_nan(q_comm(i)%sf(j + unpack_offset, k, l)))
then
1777 print *,
"Error", j, k, l, i
1786# 860 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1787#if defined(MFC_OpenACC)
1788# 860 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1790# 860 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1791#elif defined(MFC_OpenMP)
1792# 860 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1794# 860 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1796# 860 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1799 if (chem_diff_comm)
then
1801# 863 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1803# 863 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1804#if defined(MFC_OpenACC)
1805# 863 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1807# 863 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1808#elif defined(MFC_OpenMP)
1809# 863 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1811# 863 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1813# 863 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1815# 863 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1817# 863 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1821 do j = -buff_size, -1
1822 r = nvar +
v_size*(j + buff_size*((k + 1) + (n + 1)*l))
1823 q_t_sf%sf(j + unpack_offset, k, l) = real(
buff_recv(r), kind=stp)
1824#if defined(__INTEL_COMPILER)
1825 if (ieee_is_nan(q_t_sf%sf(j + unpack_offset, k, l)))
then
1826 print *,
"Error", j, k, l
1834# 878 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1835#if defined(MFC_OpenACC)
1836# 878 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1838# 878 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1839#elif defined(MFC_OpenMP)
1840# 878 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1842# 878 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1844# 878 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1850# 882 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1852# 882 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1853#if defined(MFC_OpenACC)
1854# 882 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1856# 882 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1857#elif defined(MFC_OpenMP)
1858# 882 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1860# 882 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1862# 882 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1864# 882 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1866# 882 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1870 do j = -buff_size, -1
1871 do i = nvar + 1, nvar + nnode
1873 r = (i - 1) + (q - 1)*nnode +
v_size*(j + buff_size*((k + 1) + (n + 1)*l))
1874 pb_in(j + unpack_offset, k, l, i - nvar, q) = real(
buff_recv(r), kind=stp)
1881# 895 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1882#if defined(MFC_OpenACC)
1883# 895 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1885# 895 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1886#elif defined(MFC_OpenMP)
1887# 895 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1889# 895 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1891# 895 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1895# 897 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1897# 897 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1898#if defined(MFC_OpenACC)
1899# 897 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1901# 897 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1902#elif defined(MFC_OpenMP)
1903# 897 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1905# 897 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1907# 897 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1909# 897 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1911# 897 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1915 do j = -buff_size, -1
1916 do i = nvar + 1, nvar + nnode
1918 r = (i - 1) + (q - 1)*nnode + nb*nnode +
v_size*(j + buff_size*((k + 1) + (n + 1)*l))
1919 mv_in(j + unpack_offset, k, l, i - nvar, q) = real(
buff_recv(r), kind=stp)
1926# 910 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1927#if defined(MFC_OpenACC)
1928# 910 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1930# 910 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1931#elif defined(MFC_OpenMP)
1932# 910 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1934# 910 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1936# 910 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1939# 1059 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1941# 841 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1942 if (mpi_dir == 2)
then
1943# 913 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1945# 913 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1947# 913 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1948#if defined(MFC_OpenACC)
1949# 913 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1951# 913 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1952#elif defined(MFC_OpenMP)
1953# 913 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1955# 913 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1957# 913 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1959# 913 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1961# 913 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1965 do k = -buff_size, -1
1966 do j = -buff_size, m + buff_size
1967 r = (i - 1) +
v_size*((j + buff_size) + (m + 2*buff_size + 1)*((k + buff_size) + buff_size*l))
1968 q_comm(i)%sf(j, k + unpack_offset, l) = real(
buff_recv(r), kind=stp)
1969#if defined(__INTEL_COMPILER)
1970 if (ieee_is_nan(q_comm(i)%sf(j, k + unpack_offset, l)))
then
1971 print *,
"Error", j, k, l, i
1980# 930 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1981#if defined(MFC_OpenACC)
1982# 930 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1984# 930 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1985#elif defined(MFC_OpenMP)
1986# 930 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1988# 930 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1990# 930 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1993 if (chem_diff_comm)
then
1995# 933 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1997# 933 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
1998#if defined(MFC_OpenACC)
1999# 933 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2001# 933 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2002#elif defined(MFC_OpenMP)
2003# 933 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2005# 933 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2007# 933 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2009# 933 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2011# 933 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2014 do k = -buff_size, -1
2015 do j = -buff_size, m + buff_size
2016 r = nvar +
v_size*((j + buff_size) + (m + 2*buff_size + 1)*((k + buff_size) + buff_size*l))
2017 q_t_sf%sf(j, k + unpack_offset, l) = real(
buff_recv(r), kind=stp)
2018#if defined(__INTEL_COMPILER)
2019 if (ieee_is_nan(q_t_sf%sf(j, k + unpack_offset, l)))
then
2020 print *,
"Error", j, k, l
2028# 948 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2029#if defined(MFC_OpenACC)
2030# 948 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2032# 948 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2033#elif defined(MFC_OpenMP)
2034# 948 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2036# 948 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2038# 948 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2044# 952 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2046# 952 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2047#if defined(MFC_OpenACC)
2048# 952 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2050# 952 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2051#elif defined(MFC_OpenMP)
2052# 952 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2054# 952 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2056# 952 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2058# 952 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2060# 952 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2062 do i = nvar + 1, nvar + nnode
2064 do k = -buff_size, -1
2065 do j = -buff_size, m + buff_size
2067 r = (i - 1) + (q - 1)*nnode +
v_size*((j + buff_size) + (m + 2*buff_size + 1)*((k &
2068 & + buff_size) + buff_size*l))
2069 pb_in(j, k + unpack_offset, l, i - nvar, q) = real(
buff_recv(r), kind=stp)
2076# 966 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2077#if defined(MFC_OpenACC)
2078# 966 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2080# 966 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2081#elif defined(MFC_OpenMP)
2082# 966 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2084# 966 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2086# 966 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2090# 968 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2092# 968 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2093#if defined(MFC_OpenACC)
2094# 968 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2096# 968 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2097#elif defined(MFC_OpenMP)
2098# 968 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2100# 968 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2102# 968 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2104# 968 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2106# 968 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2108 do i = nvar + 1, nvar + nnode
2110 do k = -buff_size, -1
2111 do j = -buff_size, m + buff_size
2113 r = (i - 1) + (q - 1)*nnode + nb*nnode +
v_size*((j + buff_size) + (m + 2*buff_size &
2114 & + 1)*((k + buff_size) + buff_size*l))
2115 mv_in(j, k + unpack_offset, l, i - nvar, q) = real(
buff_recv(r), kind=stp)
2122# 982 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2123#if defined(MFC_OpenACC)
2124# 982 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2126# 982 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2127#elif defined(MFC_OpenMP)
2128# 982 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2130# 982 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2132# 982 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2135# 1059 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2137# 841 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2138 if (mpi_dir == 3)
then
2139# 985 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2141# 985 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2143# 985 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2144#if defined(MFC_OpenACC)
2145# 985 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2147# 985 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2148#elif defined(MFC_OpenMP)
2149# 985 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2151# 985 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2153# 985 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2155# 985 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2157# 985 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2160 do l = -buff_size, -1
2161 do k = -buff_size, n + buff_size
2162 do j = -buff_size, m + buff_size
2163 r = (i - 1) +
v_size*((j + buff_size) + (m + 2*buff_size + 1)*((k + buff_size) + (n &
2164 & + 2*buff_size + 1)*(l + buff_size)))
2165 q_comm(i)%sf(j, k, l + unpack_offset) = real(
buff_recv(r), kind=stp)
2166#if defined(__INTEL_COMPILER)
2167 if (ieee_is_nan(q_comm(i)%sf(j, k, l + unpack_offset)))
then
2168 print *,
"Error", j, k, l, i
2177# 1003 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2178#if defined(MFC_OpenACC)
2179# 1003 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2181# 1003 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2182#elif defined(MFC_OpenMP)
2183# 1003 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2185# 1003 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2187# 1003 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2190 if (chem_diff_comm)
then
2192# 1006 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2194# 1006 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2195#if defined(MFC_OpenACC)
2196# 1006 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2198# 1006 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2199#elif defined(MFC_OpenMP)
2200# 1006 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2202# 1006 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2204# 1006 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2206# 1006 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2208# 1006 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2210 do l = -buff_size, -1
2211 do k = -buff_size, n + buff_size
2212 do j = -buff_size, m + buff_size
2213 r = nvar +
v_size*((j + buff_size) + (m + 2*buff_size + 1)*((k + buff_size) + (n &
2214 & + 2*buff_size + 1)*(l + buff_size)))
2215 q_t_sf%sf(j, k, l + unpack_offset) = real(
buff_recv(r), kind=stp)
2216#if defined(__INTEL_COMPILER)
2217 if (ieee_is_nan(q_t_sf%sf(j, k, l + unpack_offset)))
then
2218 print *,
"Error", j, k, l
2226# 1022 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2227#if defined(MFC_OpenACC)
2228# 1022 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2230# 1022 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2231#elif defined(MFC_OpenMP)
2232# 1022 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2234# 1022 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2236# 1022 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2242# 1026 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2244# 1026 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2245#if defined(MFC_OpenACC)
2246# 1026 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2248# 1026 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2249#elif defined(MFC_OpenMP)
2250# 1026 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2252# 1026 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2254# 1026 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2256# 1026 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2258# 1026 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2260 do i = nvar + 1, nvar + nnode
2261 do l = -buff_size, -1
2262 do k = -buff_size, n + buff_size
2263 do j = -buff_size, m + buff_size
2265 r = (i - 1) + (q - 1)*nnode +
v_size*((j + buff_size) + (m + 2*buff_size + 1)*((k &
2266 & + buff_size) + (n + 2*buff_size + 1)*(l + buff_size)))
2267 pb_in(j, k, l + unpack_offset, i - nvar, q) = real(
buff_recv(r), kind=stp)
2274# 1040 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2275#if defined(MFC_OpenACC)
2276# 1040 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2278# 1040 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2279#elif defined(MFC_OpenMP)
2280# 1040 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2282# 1040 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2284# 1040 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2288# 1042 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2290# 1042 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2291#if defined(MFC_OpenACC)
2292# 1042 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2294# 1042 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2295#elif defined(MFC_OpenMP)
2296# 1042 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2298# 1042 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2300# 1042 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2302# 1042 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2304# 1042 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2306 do i = nvar + 1, nvar + nnode
2307 do l = -buff_size, -1
2308 do k = -buff_size, n + buff_size
2309 do j = -buff_size, m + buff_size
2311 r = (i - 1) + (q - 1)*nnode + nb*nnode +
v_size*((j + buff_size) + (m + 2*buff_size &
2312 & + 1)*((k + buff_size) + (n + 2*buff_size + 1)*(l + buff_size)))
2313 mv_in(j, k, l + unpack_offset, i - nvar, q) = real(
buff_recv(r), kind=stp)
2320# 1056 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2321#if defined(MFC_OpenACC)
2322# 1056 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2324# 1056 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2325#elif defined(MFC_OpenMP)
2326# 1056 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2328# 1056 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2330# 1056 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2333# 1059 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2335# 1061 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2348 type(scalar_field),
dimension(1:),
intent(inout) :: q_comm
2349 type(scalar_field),
dimension(1:),
intent(inout) :: kahan_comp
2350 integer,
intent(in) :: mpi_dir, pbc_loc, nVar
2351 integer :: i, j, k, l, r, q
2353 integer :: buffer_counts(1:3), buffer_count
2354 type(int_bounds_info) :: boundary_conditions(1:3)
2355 integer :: beg_end(1:2), grid_dims(1:3)
2356 integer :: dst_proc, src_proc, recv_tag, send_tag
2357 logical :: replace_buff
2358 integer :: pack_offset, unpack_offset
2359 real(wp) :: y_kahan, t_kahan
2364 call nvtxstartrange(
"BETA-COMM-PACKBUF")
2371 comm_coords(2)%beg = merge(-mapcells - 1, 0, n > 0)
2372 comm_coords(2)%end = merge(n + mapcells + 1, n, n > 0)
2373 comm_coords(3)%beg = merge(-mapcells - 1, 0, p > 0)
2374 comm_coords(3)%end = merge(p + mapcells + 1, p, p > 0)
2383 lb_size = 2*(mapcells + 1)
2388# 1112 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2389#if defined(MFC_OpenACC)
2390# 1112 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2392# 1112 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2393#elif defined(MFC_OpenMP)
2394# 1112 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2396# 1112 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2399 buffer_count = buffer_counts(mpi_dir)
2400 boundary_conditions = (/bc_x, bc_y, bc_z/)
2401 beg_end = (/boundary_conditions(mpi_dir)%beg, boundary_conditions(mpi_dir)%end/)
2402 grid_dims = (/m, n, p/)
2404 if (pbc_loc == -1)
then
2406 pack_offset = grid_dims(mpi_dir) + 1
2408 dst_proc = merge(beg_end(2), mpi_proc_null, beg_end(2) >= 0)
2409 src_proc = merge(beg_end(1), mpi_proc_null, beg_end(1) >= 0)
2412 replace_buff = .false.
2416 unpack_offset = grid_dims(mpi_dir) + 1
2417 dst_proc = merge(beg_end(1), mpi_proc_null, beg_end(1) >= 0)
2418 src_proc = merge(beg_end(2), mpi_proc_null, beg_end(2) >= 0)
2421 replace_buff = .true.
2425# 1141 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2426 if (mpi_dir == 1)
then
2427# 1143 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2429# 1143 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2431# 1143 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2432#if defined(MFC_OpenACC)
2433# 1143 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2435# 1143 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2436#elif defined(MFC_OpenMP)
2437# 1143 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2439# 1143 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2441# 1143 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2443# 1143 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2445# 1143 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2449 do j = -mapcells - 1, mapcells
2454 & kind=wp) - real(kahan_comp(
beta_vars(i))%sf(j + pack_offset, k, l), kind=wp)
2460# 1156 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2461#if defined(MFC_OpenACC)
2462# 1156 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2464# 1156 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2465#elif defined(MFC_OpenMP)
2466# 1156 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2468# 1156 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2470# 1156 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2472# 1188 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2474# 1141 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2475 if (mpi_dir == 2)
then
2476# 1158 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2478# 1158 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2480# 1158 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2481#if defined(MFC_OpenACC)
2482# 1158 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2484# 1158 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2485#elif defined(MFC_OpenMP)
2486# 1158 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2488# 1158 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2490# 1158 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2492# 1158 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2494# 1158 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2498 do k = -mapcells - 1, mapcells
2503 & kind=wp) - real(kahan_comp(
beta_vars(i))%sf(j, k + pack_offset, l), kind=wp)
2509# 1171 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2510#if defined(MFC_OpenACC)
2511# 1171 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2513# 1171 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2514#elif defined(MFC_OpenMP)
2515# 1171 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2517# 1171 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2519# 1171 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2521# 1188 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2523# 1141 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2524 if (mpi_dir == 3)
then
2525# 1173 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2527# 1173 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2529# 1173 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2530#if defined(MFC_OpenACC)
2531# 1173 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2533# 1173 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2534#elif defined(MFC_OpenMP)
2535# 1173 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2537# 1173 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2539# 1173 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2541# 1173 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2543# 1173 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2546 do l = -mapcells - 1, mapcells
2552 & kind=wp) - real(kahan_comp(
beta_vars(i))%sf(j, k, l + pack_offset), kind=wp)
2558# 1186 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2559#if defined(MFC_OpenACC)
2560# 1186 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2562# 1186 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2563#elif defined(MFC_OpenMP)
2564# 1186 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2566# 1186 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2568# 1186 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2570# 1188 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2572# 1190 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2576# 1194 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2578# 1206 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2579 call nvtxstartrange(
"BETA-COMM-DEV2HOST")
2581# 1207 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2582#if defined(MFC_OpenACC)
2583# 1207 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2585# 1207 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2586#elif defined(MFC_OpenMP)
2587# 1207 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2589# 1207 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2592 call nvtxstartrange(
"BETA-COMM-SENDRECV-NO-RMDA")
2594 call mpi_sendrecv(
buff_send, buffer_count, mpi_p, dst_proc, send_tag,
buff_recv, buffer_count, mpi_p, &
2595 & src_proc, recv_tag, mpi_comm_world, mpi_status_ignore, ierr)
2599 call nvtxstartrange(
"BETA-COMM-HOST2DEV")
2601# 1217 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2602#if defined(MFC_OpenACC)
2603# 1217 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2605# 1217 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2606#elif defined(MFC_OpenMP)
2607# 1217 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2609# 1217 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2612# 1220 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2614# 1194 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2616# 1196 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2618# 1196 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2619#if defined(MFC_OpenACC)
2620# 1196 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2622# 1196 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2623 call nvtxstartrange(
"BETA-COMM-SENDRECV-RDMA")
2624# 1196 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2626# 1196 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2627 call mpi_sendrecv(
buff_send, buffer_count, mpi_p, dst_proc, send_tag,
buff_recv, buffer_count, mpi_p, &
2628# 1196 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2629 & src_proc, recv_tag, mpi_comm_world, mpi_status_ignore, ierr)
2630# 1196 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2632# 1196 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2634# 1196 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2636# 1196 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2637#elif defined(MFC_OpenMP)
2638# 1196 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2640# 1196 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2641 call nvtxstartrange(
"BETA-COMM-SENDRECV-RDMA")
2642# 1196 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2644# 1196 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2645 call mpi_sendrecv(
buff_send, buffer_count, mpi_p, dst_proc, send_tag,
buff_recv, buffer_count, mpi_p, &
2646# 1196 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2647 & src_proc, recv_tag, mpi_comm_world, mpi_status_ignore, ierr)
2648# 1196 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2650# 1196 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2652# 1196 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2654# 1196 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2656# 1196 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2657 call nvtxstartrange(
"BETA-COMM-SENDRECV-RDMA")
2658# 1196 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2660# 1196 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2661 call mpi_sendrecv(
buff_send, buffer_count, mpi_p, dst_proc, send_tag,
buff_recv, buffer_count, mpi_p, &
2662# 1196 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2663 & src_proc, recv_tag, mpi_comm_world, mpi_status_ignore, ierr)
2664# 1196 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2666# 1196 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2668# 1196 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2670# 1204 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2672# 1204 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2673#if defined(MFC_OpenACC)
2674# 1204 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2676# 1204 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2677#elif defined(MFC_OpenMP)
2678# 1204 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2680# 1204 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2682# 1220 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2684# 1222 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2687 call nvtxstartrange(
"BETA-COMM-UNPACKBUF")
2688 if (src_proc /= mpi_proc_null)
then
2689# 1227 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2690 if (mpi_dir == 1)
then
2691# 1229 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2693# 1229 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2695# 1229 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2696#if defined(MFC_OpenACC)
2697# 1229 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2699# 1229 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2700#elif defined(MFC_OpenMP)
2701# 1229 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2703# 1229 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2705# 1229 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2707# 1229 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2709# 1229 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2711# 1229 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2715 do j = -mapcells - 1, mapcells
2719 if (replace_buff)
then
2721 kahan_comp(
beta_vars(i))%sf(j + unpack_offset, k, &
2722 & l) = real(q_comm(
beta_vars(i))%sf(j + unpack_offset, k, l), &
2725 y_kahan =
buff_recv(r) - real(kahan_comp(
beta_vars(i))%sf(j + unpack_offset, k, l), &
2727 t_kahan = real(q_comm(
beta_vars(i))%sf(j + unpack_offset, k, l), kind=wp) + y_kahan
2728 kahan_comp(
beta_vars(i))%sf(j + unpack_offset, k, &
2729 & l) = (t_kahan - q_comm(
beta_vars(i))%sf(j + unpack_offset, k, l)) - y_kahan
2730 q_comm(
beta_vars(i))%sf(j + unpack_offset, k, l) = t_kahan
2737# 1253 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2738#if defined(MFC_OpenACC)
2739# 1253 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2741# 1253 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2742#elif defined(MFC_OpenMP)
2743# 1253 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2745# 1253 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2747# 1253 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2749# 1308 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2751# 1227 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2752 if (mpi_dir == 2)
then
2753# 1255 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2755# 1255 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2757# 1255 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2758#if defined(MFC_OpenACC)
2759# 1255 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2761# 1255 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2762#elif defined(MFC_OpenMP)
2763# 1255 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2765# 1255 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2767# 1255 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2769# 1255 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2771# 1255 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2773# 1255 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2777 do k = -mapcells - 1, mapcells
2781 if (replace_buff)
then
2783 kahan_comp(
beta_vars(i))%sf(j, k + unpack_offset, &
2784 & l) = real(q_comm(
beta_vars(i))%sf(j, k + unpack_offset, l), &
2787 y_kahan =
buff_recv(r) - real(kahan_comp(
beta_vars(i))%sf(j, k + unpack_offset, l), &
2789 t_kahan = real(q_comm(
beta_vars(i))%sf(j, k + unpack_offset, l), kind=wp) + y_kahan
2790 kahan_comp(
beta_vars(i))%sf(j, k + unpack_offset, &
2791 & l) = (t_kahan - q_comm(
beta_vars(i))%sf(j, k + unpack_offset, l)) - y_kahan
2792 q_comm(
beta_vars(i))%sf(j, k + unpack_offset, l) = t_kahan
2799# 1279 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2800#if defined(MFC_OpenACC)
2801# 1279 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2803# 1279 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2804#elif defined(MFC_OpenMP)
2805# 1279 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2807# 1279 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2809# 1279 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2811# 1308 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2813# 1227 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2814 if (mpi_dir == 3)
then
2815# 1281 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2817# 1281 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2819# 1281 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2820#if defined(MFC_OpenACC)
2821# 1281 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2823# 1281 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2824#elif defined(MFC_OpenMP)
2825# 1281 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2827# 1281 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2829# 1281 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2831# 1281 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2833# 1281 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2835# 1281 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2838 do l = -mapcells - 1, mapcells
2843 if (replace_buff)
then
2846 & l + unpack_offset) = real(q_comm(
beta_vars(i))%sf(j, k, &
2847 & l + unpack_offset), kind=wp) -
buff_recv(r)
2849 y_kahan =
buff_recv(r) - real(kahan_comp(
beta_vars(i))%sf(j, k, l + unpack_offset), &
2851 t_kahan = real(q_comm(
beta_vars(i))%sf(j, k, l + unpack_offset), kind=wp) + y_kahan
2853 & l + unpack_offset) = (t_kahan - q_comm(
beta_vars(i))%sf(j, k, &
2854 & l + unpack_offset)) - y_kahan
2855 q_comm(
beta_vars(i))%sf(j, k, l + unpack_offset) = t_kahan
2862# 1306 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2863#if defined(MFC_OpenACC)
2864# 1306 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2866# 1306 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2867#elif defined(MFC_OpenMP)
2868# 1306 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2870# 1306 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2872# 1306 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2874# 1308 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2876# 1310 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
2888 logical,
intent(in) :: write_silo_ghost_offsets
2889 logical,
intent(in) :: adjust_local_domains
2890 type(int_bounds_info),
dimension(3),
intent(inout),
optional :: output_offsets
2891 type(bounds_info),
dimension(3),
intent(inout),
optional :: local_domains
2895 real(wp) :: tmp_num_procs_x, tmp_num_procs_y, tmp_num_procs_z
2897 integer :: MPI_COMM_CART
2898 integer :: rem_cells
2899 integer :: rem_cells_by_dim(3)
2900 integer :: recon_order
2905 integer,
dimension(1:num_dims) :: neighbor_coords
2907 rem_cells_by_dim = 0
2910 nidx(1)%beg = 0; nidx(1)%end = 0
2911 nidx(2)%beg = 0; nidx(2)%end = 0
2912 nidx(3)%beg = 0; nidx(3)%end = 0
2914 if (recon_type == recon_type_weno)
then
2915 recon_order = weno_order
2917 recon_order = muscl_order
2920 if (num_procs == 1 .and. parallel_io)
then
2928 recon_order = igr_order
2938 num_procs_z = num_procs
2942 tmp_num_procs_y = num_procs_y
2943 tmp_num_procs_z = num_procs_z
2944 fct_min = 10._wp*abs((n + 1)/tmp_num_procs_y - (p + 1)/tmp_num_procs_z)
2948 if (mod(num_procs, i) == 0 .and. (n + 1)/i >= num_stcls_min*recon_order)
then
2950 tmp_num_procs_z = num_procs/i
2952 if (fct_min >= abs((n + 1)/tmp_num_procs_y - (p + 1)/tmp_num_procs_z) .and. (p + 1) &
2953 & /tmp_num_procs_z >= num_stcls_min*recon_order)
then
2955 num_procs_z = num_procs/i
2956 fct_min = abs((n + 1)/tmp_num_procs_y - (p + 1)/tmp_num_procs_z)
2962 if (cyl_coord .and. p > 0)
then
2967 num_procs_y = num_procs
2972 tmp_num_procs_x = num_procs_x
2973 tmp_num_procs_y = num_procs_y
2974 tmp_num_procs_z = num_procs_z
2975 fct_min = 10._wp*abs((m + 1)/tmp_num_procs_x - (n + 1)/tmp_num_procs_y)
2979 if (mod(num_procs, i) == 0 .and. (m + 1)/i >= num_stcls_min*recon_order)
then
2981 tmp_num_procs_y = num_procs/i
2983 if (fct_min >= abs((m + 1)/tmp_num_procs_x - (n + 1)/tmp_num_procs_y) .and. (n + 1) &
2984 & /tmp_num_procs_y >= num_stcls_min*recon_order)
then
2986 num_procs_y = num_procs/i
2987 fct_min = abs((m + 1)/tmp_num_procs_x - (n + 1)/tmp_num_procs_y)
2996 num_procs_z = num_procs
3000 tmp_num_procs_x = num_procs_x
3001 tmp_num_procs_y = num_procs_y
3002 tmp_num_procs_z = num_procs_z
3003 fct_min = 10._wp*abs((m + 1)/tmp_num_procs_x - (n + 1)/tmp_num_procs_y) + 10._wp*abs((n + 1) &
3004 & /tmp_num_procs_y - (p + 1)/tmp_num_procs_z)
3008 if (mod(num_procs, i) == 0 .and. (m + 1)/i >= num_stcls_min*recon_order)
then
3009 do j = 1, num_procs/i
3010 if (mod(num_procs/i, j) == 0 .and. (n + 1)/j >= num_stcls_min*recon_order)
then
3013 tmp_num_procs_z = num_procs/(i*j)
3015 if (fct_min >= abs((m + 1)/tmp_num_procs_x - (n + 1)/tmp_num_procs_y) + abs((n + 1) &
3016 & /tmp_num_procs_y - (p + 1)/tmp_num_procs_z) .and. (p + 1) &
3017 & /tmp_num_procs_z >= num_stcls_min*recon_order)
then
3020 num_procs_z = num_procs/(i*j)
3021 fct_min = abs((m + 1)/tmp_num_procs_x - (n + 1)/tmp_num_procs_y) + abs((n + 1) &
3022 & /tmp_num_procs_y - (p + 1)/tmp_num_procs_z)
3034 if (proc_rank == 0 .and. ierr == -1)
then
3035 call s_mpi_abort(
'Unsupported combination of values ' //
'of num_procs, m, n, p and ' &
3036 & //
'weno/muscl/igr_order. Exiting.')
3040 call mpi_cart_create(mpi_comm_world, 3, (/num_procs_x, num_procs_y, num_procs_z/), (/.true., .true., .true./), &
3041 & .false., mpi_comm_cart, ierr)
3044 call mpi_cart_coords(mpi_comm_cart, proc_rank, 3, proc_coords, ierr)
3049 rem_cells = mod(p + 1, num_procs_z)
3050 rem_cells_by_dim(3) = rem_cells
3053 p = (p + 1)/num_procs_z - 1
3057 if (proc_coords(3) == i - 1)
then
3063 if (proc_coords(3) > 0 .or. (bc_z%beg == bc_periodic .and. num_procs_z > 1))
then
3064 proc_coords(3) = proc_coords(3) - 1
3065 call mpi_cart_rank(mpi_comm_cart, proc_coords, bc_z%beg, ierr)
3066 proc_coords(3) = proc_coords(3) + 1
3071 if (proc_coords(3) < num_procs_z - 1 .or. (bc_z%end == bc_periodic .and. num_procs_z > 1))
then
3072 proc_coords(3) = proc_coords(3) + 1
3073 call mpi_cart_rank(mpi_comm_cart, proc_coords, bc_z%end, ierr)
3074 proc_coords(3) = proc_coords(3) - 1
3079 if (parallel_io)
then
3080 if (proc_coords(3) < rem_cells)
then
3081 start_idx(3) = (p + 1)*proc_coords(3)
3083 start_idx(3) = (p + 1)*proc_coords(3) + rem_cells
3091 num_procs_y = num_procs
3095 tmp_num_procs_x = num_procs_x
3096 tmp_num_procs_y = num_procs_y
3097 fct_min = 10._wp*abs((m + 1)/tmp_num_procs_x - (n + 1)/tmp_num_procs_y)
3101 if (mod(num_procs, i) == 0 .and. (m + 1)/i >= num_stcls_min*recon_order)
then
3103 tmp_num_procs_y = num_procs/i
3105 if (fct_min >= abs((m + 1)/tmp_num_procs_x - (n + 1)/tmp_num_procs_y) .and. (n + 1) &
3106 & /tmp_num_procs_y >= num_stcls_min*recon_order)
then
3108 num_procs_y = num_procs/i
3109 fct_min = abs((m + 1)/tmp_num_procs_x - (n + 1)/tmp_num_procs_y)
3117 if (proc_rank == 0 .and. ierr == -1)
then
3118 call s_mpi_abort(
'Unsupported combination of values ' //
'of num_procs, m, n and ' &
3119 & //
'weno/muscl/igr_order. Exiting.')
3123 call mpi_cart_create(mpi_comm_world, 2, (/num_procs_x, num_procs_y/), (/.true., .true./), .false., mpi_comm_cart, &
3127 call mpi_cart_coords(mpi_comm_cart, proc_rank, 2, proc_coords, ierr)
3133 rem_cells = mod(n + 1, num_procs_y)
3134 rem_cells_by_dim(2) = rem_cells
3137 n = (n + 1)/num_procs_y - 1
3141 if (proc_coords(2) == i - 1)
then
3147 if (proc_coords(2) > 0 .or. (bc_y%beg == bc_periodic .and. num_procs_y > 1))
then
3148 proc_coords(2) = proc_coords(2) - 1
3149 call mpi_cart_rank(mpi_comm_cart, proc_coords, bc_y%beg, ierr)
3150 proc_coords(2) = proc_coords(2) + 1
3155 if (proc_coords(2) < num_procs_y - 1 .or. (bc_y%end == bc_periodic .and. num_procs_y > 1))
then
3156 proc_coords(2) = proc_coords(2) + 1
3157 call mpi_cart_rank(mpi_comm_cart, proc_coords, bc_y%end, ierr)
3158 proc_coords(2) = proc_coords(2) - 1
3163 if (parallel_io)
then
3164 if (proc_coords(2) < rem_cells)
then
3165 start_idx(2) = (n + 1)*proc_coords(2)
3167 start_idx(2) = (n + 1)*proc_coords(2) + rem_cells
3174 num_procs_x = num_procs
3177 call mpi_cart_create(mpi_comm_world, 1, (/num_procs_x/), (/.true./), .false., mpi_comm_cart, ierr)
3180 call mpi_cart_coords(mpi_comm_cart, proc_rank, 1, proc_coords, ierr)
3186 rem_cells = mod(m + 1, num_procs_x)
3187 rem_cells_by_dim(1) = rem_cells
3190 m = (m + 1)/num_procs_x - 1
3194 if (proc_coords(1) == i - 1)
then
3199 call s_update_cell_bounds(cells_bounds, m, n, p)
3202 if (proc_coords(1) > 0 .or. (bc_x%beg == bc_periodic .and. num_procs_x > 1))
then
3203 proc_coords(1) = proc_coords(1) - 1
3204 call mpi_cart_rank(mpi_comm_cart, proc_coords, bc_x%beg, ierr)
3205 proc_coords(1) = proc_coords(1) + 1
3210 if (proc_coords(1) < num_procs_x - 1 .or. (bc_x%end == bc_periodic .and. num_procs_x > 1))
then
3211 proc_coords(1) = proc_coords(1) + 1
3212 call mpi_cart_rank(mpi_comm_cart, proc_coords, bc_x%end, ierr)
3213 proc_coords(1) = proc_coords(1) - 1
3218 if (parallel_io)
then
3219 if (proc_coords(1) < rem_cells)
then
3220 start_idx(1) = (m + 1)*proc_coords(1)
3222 start_idx(1) = (m + 1)*proc_coords(1) + rem_cells
3227 & n_glb, p_glb/), write_silo_ghost_offsets, &
3228 & adjust_local_domains .and. (.not. parallel_io), output_offsets, local_domains)
3231# 1663 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
3233# 1663 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
3234 use iso_fortran_env,
only: output_unit
3235# 1663 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
3237# 1663 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
3238 print *,
'm_mpi_common.fpp:1663: ',
'@:ALLOCATE(neighbor_ranks(nidx(1)%beg:nidx(1)%end, nidx(2)%beg:nidx(2)%end, nidx(3)%beg:nidx(3)%end))'
3239# 1663 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
3241# 1663 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
3242 call flush (output_unit)
3243# 1663 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
3245# 1663 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
3247# 1663 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
3248 allocate (neighbor_ranks(nidx(1)%beg:nidx(1)%end, nidx(2)%beg:nidx(2)%end, nidx(3)%beg:nidx(3)%end))
3249# 1663 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
3251# 1663 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
3253# 1663 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
3254#if defined(MFC_OpenACC)
3255# 1663 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
3257# 1663 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
3258#elif defined(MFC_OpenMP)
3259# 1663 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
3261# 1663 "/home/runner/work/MFC/MFC/src/common/m_mpi_common.fpp"
3263 do k = nidx(3)%beg, nidx(3)%end
3264 do j = nidx(2)%beg, nidx(2)%end
3265 do i = nidx(1)%beg, nidx(1)%end
3266 if (abs(i) + abs(
j) + abs(
k) > 0)
then
3267 neighbor_coords(1) = proc_coords(1) + i
3268 if (num_dims > 1) neighbor_coords(2) = proc_coords(2) +
j
3269 if (num_dims > 2) neighbor_coords(3) = proc_coords(3) +
k
3270 call mpi_cart_rank(mpi_comm_cart, neighbor_coords, neighbor_ranks(i,
j,
k), ierr)