675 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
676 real(stp),
optional,
dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:, 1:),
intent(inout) :: pb_in, mv_in
677 type(integer_field),
dimension(1:num_dims, 1:2),
intent(in) :: bc_type
682 if (bc_x%beg >= 0)
then
683 call s_mpi_sendrecv_variables_buffers(q_prim_vf, 1, -1, sys_size, pb_in, mv_in)
686# 101 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
688# 101 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
689#if defined(MFC_OpenACC)
690# 101 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
692# 101 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
693#elif defined(MFC_OpenMP)
694# 101 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
696# 101 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
698# 101 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
700# 101 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
702# 101 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
704# 101 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
708 select case (int(bc_type(1, 1)%sf(0,
k,
l)))
709 case (bc_char_sup_outflow:bc_ghost_extrap)
717 case (bc_no_slip_wall)
723 if (qbmm .and. (.not. polytropic) .and. &
724 (bc_type(1, 1)%sf(0,
k,
l) <= bc_ghost_extrap))
then
730# 125 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
732# 125 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
733#if defined(MFC_OpenACC)
734# 125 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
736# 125 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
737#elif defined(MFC_OpenMP)
738# 125 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
740# 125 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
742# 125 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
744# 125 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
746# 125 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
750 if (bc_x%end >= 0)
then
751 call s_mpi_sendrecv_variables_buffers(q_prim_vf, 1, 1, sys_size, pb_in, mv_in)
754# 131 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
756# 131 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
757#if defined(MFC_OpenACC)
758# 131 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
760# 131 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
761#elif defined(MFC_OpenMP)
762# 131 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
764# 131 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
766# 131 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
768# 131 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
770# 131 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
772# 131 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
776 select case (int(bc_type(1, 2)%sf(0,
k,
l)))
777 case (bc_char_sup_outflow:bc_ghost_extrap)
785 case (bc_no_slip_wall)
791 if (qbmm .and. (.not. polytropic) .and. &
792 (bc_type(1, 2)%sf(0,
k,
l) <= bc_ghost_extrap))
then
798# 155 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
800# 155 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
801#if defined(MFC_OpenACC)
802# 155 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
804# 155 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
805#elif defined(MFC_OpenMP)
806# 155 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
808# 155 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
810# 155 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
812# 155 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
814# 155 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
822# 163 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
824 if (bc_y%beg >= 0)
then
825 call s_mpi_sendrecv_variables_buffers(q_prim_vf, 2, -1, sys_size, pb_in, mv_in)
828# 167 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
830# 167 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
831#if defined(MFC_OpenACC)
832# 167 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
834# 167 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
835#elif defined(MFC_OpenMP)
836# 167 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
838# 167 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
840# 167 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
842# 167 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
844# 167 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
846# 167 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
849 do k = -buff_size, m + buff_size
850 select case (int(bc_type(2, 1)%sf(
k, 0,
l)))
851 case (bc_char_sup_outflow:bc_ghost_extrap)
854 call s_axis(q_prim_vf, pb_in, mv_in,
k,
l)
861 case (bc_no_slip_wall)
867 if (qbmm .and. (.not. polytropic) .and. &
868 (bc_type(2, 1)%sf(
k, 0,
l) <= bc_ghost_extrap) .and. &
869 (bc_type(2, 1)%sf(
k, 0,
l) /= bc_axis))
then
875# 194 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
877# 194 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
878#if defined(MFC_OpenACC)
879# 194 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
881# 194 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
882#elif defined(MFC_OpenMP)
883# 194 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
885# 194 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
887# 194 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
889# 194 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
891# 194 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
895 if (bc_y%end >= 0)
then
896 call s_mpi_sendrecv_variables_buffers(q_prim_vf, 2, 1, sys_size, pb_in, mv_in)
899# 200 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
901# 200 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
902#if defined(MFC_OpenACC)
903# 200 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
905# 200 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
906#elif defined(MFC_OpenMP)
907# 200 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
909# 200 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
911# 200 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
913# 200 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
915# 200 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
917# 200 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
920 do k = -buff_size, m + buff_size
921 select case (int(bc_type(2, 2)%sf(
k, 0,
l)))
922 case (bc_char_sup_outflow:bc_ghost_extrap)
930 case (bc_no_slip_wall)
936 if (qbmm .and. (.not. polytropic) .and. &
937 (bc_type(2, 2)%sf(
k, 0,
l) <= bc_ghost_extrap))
then
943# 224 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
945# 224 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
946#if defined(MFC_OpenACC)
947# 224 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
949# 224 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
950#elif defined(MFC_OpenMP)
951# 224 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
953# 224 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
955# 224 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
957# 224 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
959# 224 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
963# 228 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
969# 234 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
971 if (bc_z%beg >= 0)
then
972 call s_mpi_sendrecv_variables_buffers(q_prim_vf, 3, -1, sys_size, pb_in, mv_in)
975# 238 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
977# 238 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
978#if defined(MFC_OpenACC)
979# 238 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
981# 238 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
982#elif defined(MFC_OpenMP)
983# 238 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
985# 238 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
987# 238 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
989# 238 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
991# 238 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
993# 238 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
995 do l = -buff_size, n + buff_size
996 do k = -buff_size, m + buff_size
997 select case (int(bc_type(3, 1)%sf(
k,
l, 0)))
998 case (bc_char_sup_outflow:bc_ghost_extrap)
1000 case (bc_reflective)
1006 case (bc_no_slip_wall)
1012 if (qbmm .and. (.not. polytropic) .and. &
1013 (bc_type(3, 1)%sf(
k,
l, 0) <= bc_ghost_extrap))
then
1019# 262 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1021# 262 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1022#if defined(MFC_OpenACC)
1023# 262 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1025# 262 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1026#elif defined(MFC_OpenMP)
1027# 262 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1029# 262 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1031# 262 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1033# 262 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1035# 262 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1039 if (bc_z%end >= 0)
then
1040 call s_mpi_sendrecv_variables_buffers(q_prim_vf, 3, 1, sys_size, pb_in, mv_in)
1043# 268 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1045# 268 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1046#if defined(MFC_OpenACC)
1047# 268 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1049# 268 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1050#elif defined(MFC_OpenMP)
1051# 268 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1053# 268 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1055# 268 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1057# 268 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1059# 268 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1061# 268 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1063 do l = -buff_size, n + buff_size
1064 do k = -buff_size, m + buff_size
1065 select case (int(bc_type(3, 2)%sf(
k,
l, 0)))
1066 case (bc_char_sup_outflow:bc_ghost_extrap)
1068 case (bc_reflective)
1074 case (bc_no_slip_wall)
1080 if (qbmm .and. (.not. polytropic) .and. &
1081 (bc_type(3, 2)%sf(
k,
l, 0) <= bc_ghost_extrap))
then
1087# 292 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1089# 292 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1090#if defined(MFC_OpenACC)
1091# 292 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1093# 292 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1094#elif defined(MFC_OpenMP)
1095# 292 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1097# 292 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1099# 292 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1101# 292 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1103# 292 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1106# 295 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1192 subroutine s_symmetry(q_prim_vf, bc_dir, bc_loc, k, l, pb_in, mv_in)
1194# 363 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1196# 363 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1198# 363 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1200# 363 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1202# 363 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1204# 363 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1206# 363 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1208 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
1209 real(stp),
optional,
dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:, 1:),
intent(inout) :: pb_in, mv_in
1210 integer,
intent(in) :: bc_dir, bc_loc
1211 integer,
intent(in) :: k, l
1215 if (bc_dir == 1)
then
1216 if (bc_loc == -1)
then
1219 q_prim_vf(i)%sf(-j, k, l) = &
1220 q_prim_vf(i)%sf(j - 1, k, l)
1223 q_prim_vf(momxb)%sf(-j, k, l) = &
1224 -q_prim_vf(momxb)%sf(j - 1, k, l)
1226 do i = momxb + 1, sys_size
1227 q_prim_vf(i)%sf(-j, k, l) = &
1228 q_prim_vf(i)%sf(j - 1, k, l)
1231 if (elasticity)
then
1232 do i = 1, shear_bc_flip_num
1233 q_prim_vf(shear_bc_flip_indices(1, i))%sf(-j, k, l) = &
1234 -q_prim_vf(shear_bc_flip_indices(1, i))%sf(j - 1, k, l)
1238 if (hyperelasticity)
then
1239 q_prim_vf(xibeg)%sf(-j, k, l) = &
1240 -q_prim_vf(xibeg)%sf(j - 1, k, l)
1245 if (qbmm .and. .not. polytropic)
then
1249 pb_in(-j, k, l, q, i) = &
1250 pb_in(j - 1, k, l, q, i)
1251 mv_in(-j, k, l, q, i) = &
1252 mv_in(j - 1, k, l, q, i)
1260 q_prim_vf(i)%sf(m + j, k, l) = &
1261 q_prim_vf(i)%sf(m - (j - 1), k, l)
1264 q_prim_vf(momxb)%sf(m + j, k, l) = &
1265 -q_prim_vf(momxb)%sf(m - (j - 1), k, l)
1267 do i = momxb + 1, sys_size
1268 q_prim_vf(i)%sf(m + j, k, l) = &
1269 q_prim_vf(i)%sf(m - (j - 1), k, l)
1272 if (elasticity)
then
1273 do i = 1, shear_bc_flip_num
1274 q_prim_vf(shear_bc_flip_indices(1, i))%sf(m + j, k, l) = &
1275 -q_prim_vf(shear_bc_flip_indices(1, i))%sf(m - (j - 1), k, l)
1279 if (hyperelasticity)
then
1280 q_prim_vf(xibeg)%sf(m + j, k, l) = &
1281 -q_prim_vf(xibeg)%sf(m - (j - 1), k, l)
1284 if (qbmm .and. .not. polytropic)
then
1289 pb_in(m + j, k, l, q, i) = &
1290 pb_in(m - (j - 1), k, l, q, i)
1291 mv_in(m + j, k, l, q, i) = &
1292 mv_in(m - (j - 1), k, l, q, i)
1298 elseif (bc_dir == 2)
then
1299 if (bc_loc == -1)
then
1302 q_prim_vf(i)%sf(k, -j, l) = &
1303 q_prim_vf(i)%sf(k, j - 1, l)
1306 q_prim_vf(momxb + 1)%sf(k, -j, l) = &
1307 -q_prim_vf(momxb + 1)%sf(k, j - 1, l)
1309 do i = momxb + 2, sys_size
1310 q_prim_vf(i)%sf(k, -j, l) = &
1311 q_prim_vf(i)%sf(k, j - 1, l)
1314 if (elasticity)
then
1315 do i = 1, shear_bc_flip_num
1316 q_prim_vf(shear_bc_flip_indices(2, i))%sf(k, -j, l) = &
1317 -q_prim_vf(shear_bc_flip_indices(2, i))%sf(k, j - 1, l)
1321 if (hyperelasticity)
then
1322 q_prim_vf(xibeg + 1)%sf(k, -j, l) = &
1323 -q_prim_vf(xibeg + 1)%sf(k, j - 1, l)
1327 if (qbmm .and. .not. polytropic)
then
1331 pb_in(k, -j, l, q, i) = &
1332 pb_in(k, j - 1, l, q, i)
1333 mv_in(k, -j, l, q, i) = &
1334 mv_in(k, j - 1, l, q, i)
1342 q_prim_vf(i)%sf(k, n + j, l) = &
1343 q_prim_vf(i)%sf(k, n - (j - 1), l)
1346 q_prim_vf(momxb + 1)%sf(k, n + j, l) = &
1347 -q_prim_vf(momxb + 1)%sf(k, n - (j - 1), l)
1349 do i = momxb + 2, sys_size
1350 q_prim_vf(i)%sf(k, n + j, l) = &
1351 q_prim_vf(i)%sf(k, n - (j - 1), l)
1354 if (elasticity)
then
1355 do i = 1, shear_bc_flip_num
1356 q_prim_vf(shear_bc_flip_indices(2, i))%sf(k, n + j, l) = &
1357 -q_prim_vf(shear_bc_flip_indices(2, i))%sf(k, n - (j - 1), l)
1361 if (hyperelasticity)
then
1362 q_prim_vf(xibeg + 1)%sf(k, n + j, l) = &
1363 -q_prim_vf(xibeg + 1)%sf(k, n - (j - 1), l)
1367 if (qbmm .and. .not. polytropic)
then
1371 pb_in(k, n + j, l, q, i) = &
1372 pb_in(k, n - (j - 1), l, q, i)
1373 mv_in(k, n + j, l, q, i) = &
1374 mv_in(k, n - (j - 1), l, q, i)
1380 elseif (bc_dir == 3)
then
1381 if (bc_loc == -1)
then
1384 q_prim_vf(i)%sf(k, l, -j) = &
1385 q_prim_vf(i)%sf(k, l, j - 1)
1388 q_prim_vf(momxe)%sf(k, l, -j) = &
1389 -q_prim_vf(momxe)%sf(k, l, j - 1)
1391 do i = e_idx, sys_size
1392 q_prim_vf(i)%sf(k, l, -j) = &
1393 q_prim_vf(i)%sf(k, l, j - 1)
1396 if (elasticity)
then
1397 do i = 1, shear_bc_flip_num
1398 q_prim_vf(shear_bc_flip_indices(3, i))%sf(k, l, -j) = &
1399 -q_prim_vf(shear_bc_flip_indices(3, i))%sf(k, l, j - 1)
1403 if (hyperelasticity)
then
1404 q_prim_vf(xiend)%sf(k, l, -j) = &
1405 -q_prim_vf(xiend)%sf(k, l, j - 1)
1409 if (qbmm .and. .not. polytropic)
then
1413 pb_in(k, l, -j, q, i) = &
1414 pb_in(k, l, j - 1, q, i)
1415 mv_in(k, l, -j, q, i) = &
1416 mv_in(k, l, j - 1, q, i)
1424 q_prim_vf(i)%sf(k, l, p + j) = &
1425 q_prim_vf(i)%sf(k, l, p - (j - 1))
1428 q_prim_vf(momxe)%sf(k, l, p + j) = &
1429 -q_prim_vf(momxe)%sf(k, l, p - (j - 1))
1431 do i = e_idx, sys_size
1432 q_prim_vf(i)%sf(k, l, p + j) = &
1433 q_prim_vf(i)%sf(k, l, p - (j - 1))
1436 if (elasticity)
then
1437 do i = 1, shear_bc_flip_num
1438 q_prim_vf(shear_bc_flip_indices(3, i))%sf(k, l, p + j) = &
1439 -q_prim_vf(shear_bc_flip_indices(3, i))%sf(k, l, p - (j - 1))
1443 if (hyperelasticity)
then
1444 q_prim_vf(xiend)%sf(k, l, p + j) = &
1445 -q_prim_vf(xiend)%sf(k, l, p - (j - 1))
1449 if (qbmm .and. .not. polytropic)
then
1453 pb_in(k, l, p + j, q, i) = &
1454 pb_in(k, l, p - (j - 1), q, i)
1455 mv_in(k, l, p + j, q, i) = &
1456 mv_in(k, l, p - (j - 1), q, i)
1467 subroutine s_periodic(q_prim_vf, bc_dir, bc_loc, k, l, pb_in, mv_in)
1469# 624 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1471# 624 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1473# 624 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1475# 624 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1477# 624 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1479# 624 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1481# 624 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1483 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
1484 real(stp),
optional,
dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:, 1:),
intent(inout) :: pb_in, mv_in
1485 integer,
intent(in) :: bc_dir, bc_loc
1486 integer,
intent(in) :: k, l
1490 if (bc_dir == 1)
then
1491 if (bc_loc == -1)
then
1494 q_prim_vf(i)%sf(-j, k, l) = &
1495 q_prim_vf(i)%sf(m - (j - 1), k, l)
1499 if (qbmm .and. .not. polytropic)
then
1503 pb_in(-j, k, l, q, i) = &
1504 pb_in(m - (j - 1), k, l, q, i)
1505 mv_in(-j, k, l, q, i) = &
1506 mv_in(m - (j - 1), k, l, q, i)
1514 q_prim_vf(i)%sf(m + j, k, l) = &
1515 q_prim_vf(i)%sf(j - 1, k, l)
1519 if (qbmm .and. .not. polytropic)
then
1523 pb_in(m + j, k, l, q, i) = &
1524 pb_in(j - 1, k, l, q, i)
1525 mv_in(m + j, k, l, q, i) = &
1526 mv_in(j - 1, k, l, q, i)
1532 elseif (bc_dir == 2)
then
1533 if (bc_loc == -1)
then
1536 q_prim_vf(i)%sf(k, -j, l) = &
1537 q_prim_vf(i)%sf(k, n - (j - 1), l)
1541 if (qbmm .and. .not. polytropic)
then
1545 pb_in(k, -j, l, q, i) = &
1546 pb_in(k, n - (j - 1), l, q, i)
1547 mv_in(k, -j, l, q, i) = &
1548 mv_in(k, n - (j - 1), l, q, i)
1556 q_prim_vf(i)%sf(k, n + j, l) = &
1557 q_prim_vf(i)%sf(k, j - 1, l)
1561 if (qbmm .and. .not. polytropic)
then
1565 pb_in(k, n + j, l, q, i) = &
1566 pb_in(k, (j - 1), l, q, i)
1567 mv_in(k, n + j, l, q, i) = &
1568 mv_in(k, (j - 1), l, q, i)
1574 elseif (bc_dir == 3)
then
1575 if (bc_loc == -1)
then
1578 q_prim_vf(i)%sf(k, l, -j) = &
1579 q_prim_vf(i)%sf(k, l, p - (j - 1))
1583 if (qbmm .and. .not. polytropic)
then
1587 pb_in(k, l, -j, q, i) = &
1588 pb_in(k, l, p - (j - 1), q, i)
1589 mv_in(k, l, -j, q, i) = &
1590 mv_in(k, l, p - (j - 1), q, i)
1598 q_prim_vf(i)%sf(k, l, p + j) = &
1599 q_prim_vf(i)%sf(k, l, j - 1)
1603 if (qbmm .and. .not. polytropic)
then
1607 pb_in(k, l, p + j, q, i) = &
1608 pb_in(k, l, j - 1, q, i)
1609 mv_in(k, l, p + j, q, i) = &
1610 mv_in(k, l, j - 1, q, i)
1621 subroutine s_axis(q_prim_vf, pb_in, mv_in, k, l)
1623# 764 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1625# 764 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1627# 764 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1629# 764 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1631# 764 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1633# 764 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1635# 764 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1637 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
1638 real(stp),
dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:, 1:),
intent(inout) :: pb_in, mv_in
1639 integer,
intent(in) :: k, l
1644 if (z_cc(l) < pi)
then
1646 q_prim_vf(i)%sf(k, -j, l) = &
1647 q_prim_vf(i)%sf(k, j - 1, l + ((p + 1)/2))
1650 q_prim_vf(momxb + 1)%sf(k, -j, l) = &
1651 -q_prim_vf(momxb + 1)%sf(k, j - 1, l + ((p + 1)/2))
1653 q_prim_vf(momxe)%sf(k, -j, l) = &
1654 -q_prim_vf(momxe)%sf(k, j - 1, l + ((p + 1)/2))
1656 do i = e_idx, sys_size
1657 q_prim_vf(i)%sf(k, -j, l) = &
1658 q_prim_vf(i)%sf(k, j - 1, l + ((p + 1)/2))
1662 q_prim_vf(i)%sf(k, -j, l) = &
1663 q_prim_vf(i)%sf(k, j - 1, l - ((p + 1)/2))
1666 q_prim_vf(momxb + 1)%sf(k, -j, l) = &
1667 -q_prim_vf(momxb + 1)%sf(k, j - 1, l - ((p + 1)/2))
1669 q_prim_vf(momxe)%sf(k, -j, l) = &
1670 -q_prim_vf(momxe)%sf(k, j - 1, l - ((p + 1)/2))
1672 do i = e_idx, sys_size
1673 q_prim_vf(i)%sf(k, -j, l) = &
1674 q_prim_vf(i)%sf(k, j - 1, l - ((p + 1)/2))
1679 if (qbmm .and. .not. polytropic)
then
1683 pb_in(k, -j, l, q, i) = &
1684 pb_in(k, j - 1, l - ((p + 1)/2), q, i)
1685 mv_in(k, -j, l, q, i) = &
1686 mv_in(k, j - 1, l - ((p + 1)/2), q, i)
1697# 824 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1699# 824 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1701# 824 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1703# 824 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1705# 824 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1707# 824 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1709# 824 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1711# 824 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1713# 824 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1715# 826 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1716 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
1717 integer,
intent(in) :: bc_dir, bc_loc
1718 integer,
intent(in) :: k, l
1722 if (bc_dir == 1)
then
1723 if (bc_loc == -1)
then
1726 if (i == momxb)
then
1727 q_prim_vf(i)%sf(-j, k, l) = &
1728 -q_prim_vf(i)%sf(j - 1, k, l) + 2._wp*bc_x%vb1
1730 q_prim_vf(i)%sf(-j, k, l) = &
1731 q_prim_vf(i)%sf(0, k, l)
1738 if (i == momxb)
then
1739 q_prim_vf(i)%sf(m + j, k, l) = &
1740 -q_prim_vf(i)%sf(m - (j - 1), k, l) + 2._wp*bc_x%ve1
1742 q_prim_vf(i)%sf(m + j, k, l) = &
1743 q_prim_vf(i)%sf(m, k, l)
1748 elseif (bc_dir == 2)
then
1749 if (bc_loc == -1)
then
1752 if (i == momxb + 1)
then
1753 q_prim_vf(i)%sf(k, -j, l) = &
1754 -q_prim_vf(i)%sf(k, j - 1, l) + 2._wp*bc_y%vb2
1756 q_prim_vf(i)%sf(k, -j, l) = &
1757 q_prim_vf(i)%sf(k, 0, l)
1764 if (i == momxb + 1)
then
1765 q_prim_vf(i)%sf(k, n + j, l) = &
1766 -q_prim_vf(i)%sf(k, n - (j - 1), l) + 2._wp*bc_y%ve2
1768 q_prim_vf(i)%sf(k, n + j, l) = &
1769 q_prim_vf(i)%sf(k, n, l)
1774 elseif (bc_dir == 3)
then
1775 if (bc_loc == -1)
then
1778 if (i == momxe)
then
1779 q_prim_vf(i)%sf(k, l, -j) = &
1780 -q_prim_vf(i)%sf(k, l, j - 1) + 2._wp*bc_z%vb3
1782 q_prim_vf(i)%sf(k, l, -j) = &
1783 q_prim_vf(i)%sf(k, l, 0)
1790 if (i == momxe)
then
1791 q_prim_vf(i)%sf(k, l, p + j) = &
1792 -q_prim_vf(i)%sf(k, l, p - (j - 1)) + 2._wp*bc_z%ve3
1794 q_prim_vf(i)%sf(k, l, p + j) = &
1795 q_prim_vf(i)%sf(k, l, p)
1807# 916 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1809# 916 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1811# 916 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1813# 916 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1815# 916 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1817# 916 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1819# 916 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1821# 916 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1823# 916 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1825# 918 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1827 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
1828 integer,
intent(in) :: bc_dir, bc_loc
1829 integer,
intent(in) :: k, l
1833 if (bc_dir == 1)
then
1834 if (bc_loc == -1)
then
1837 if (i == momxb)
then
1838 q_prim_vf(i)%sf(-j, k, l) = &
1839 -q_prim_vf(i)%sf(j - 1, k, l) + 2._wp*bc_x%vb1
1840 elseif (i == momxb + 1 .and. num_dims > 1)
then
1841 q_prim_vf(i)%sf(-j, k, l) = &
1842 -q_prim_vf(i)%sf(j - 1, k, l) + 2._wp*bc_x%vb2
1843 elseif (i == momxb + 2 .and. num_dims > 2)
then
1844 q_prim_vf(i)%sf(-j, k, l) = &
1845 -q_prim_vf(i)%sf(j - 1, k, l) + 2._wp*bc_x%vb3
1847 q_prim_vf(i)%sf(-j, k, l) = &
1848 q_prim_vf(i)%sf(0, k, l)
1855 if (i == momxb)
then
1856 q_prim_vf(i)%sf(m + j, k, l) = &
1857 -q_prim_vf(i)%sf(m - (j - 1), k, l) + 2._wp*bc_x%ve1
1858 elseif (i == momxb + 1 .and. num_dims > 1)
then
1859 q_prim_vf(i)%sf(m + j, k, l) = &
1860 -q_prim_vf(i)%sf(m - (j - 1), k, l) + 2._wp*bc_x%ve2
1861 elseif (i == momxb + 2 .and. num_dims > 2)
then
1862 q_prim_vf(i)%sf(m + j, k, l) = &
1863 -q_prim_vf(i)%sf(m - (j - 1), k, l) + 2._wp*bc_x%ve3
1865 q_prim_vf(i)%sf(m + j, k, l) = &
1866 q_prim_vf(i)%sf(m, k, l)
1871 elseif (bc_dir == 2)
then
1872 if (bc_loc == -1)
then
1875 if (i == momxb)
then
1876 q_prim_vf(i)%sf(k, -j, l) = &
1877 -q_prim_vf(i)%sf(k, j - 1, l) + 2._wp*bc_y%vb1
1878 elseif (i == momxb + 1 .and. num_dims > 1)
then
1879 q_prim_vf(i)%sf(k, -j, l) = &
1880 -q_prim_vf(i)%sf(k, j - 1, l) + 2._wp*bc_y%vb2
1881 elseif (i == momxb + 2 .and. num_dims > 2)
then
1882 q_prim_vf(i)%sf(k, -j, l) = &
1883 -q_prim_vf(i)%sf(k, j - 1, l) + 2._wp*bc_y%vb3
1885 q_prim_vf(i)%sf(k, -j, l) = &
1886 q_prim_vf(i)%sf(k, 0, l)
1893 if (i == momxb)
then
1894 q_prim_vf(i)%sf(k, n + j, l) = &
1895 -q_prim_vf(i)%sf(k, n - (j - 1), l) + 2._wp*bc_y%ve1
1896 elseif (i == momxb + 1 .and. num_dims > 1)
then
1897 q_prim_vf(i)%sf(k, n + j, l) = &
1898 -q_prim_vf(i)%sf(k, n - (j - 1), l) + 2._wp*bc_y%ve2
1899 elseif (i == momxb + 2 .and. num_dims > 2)
then
1900 q_prim_vf(i)%sf(k, n + j, l) = &
1901 -q_prim_vf(i)%sf(k, n - (j - 1), l) + 2._wp*bc_y%ve3
1903 q_prim_vf(i)%sf(k, n + j, l) = &
1904 q_prim_vf(i)%sf(k, n, l)
1909 elseif (bc_dir == 3)
then
1910 if (bc_loc == -1)
then
1913 if (i == momxb)
then
1914 q_prim_vf(i)%sf(k, l, -j) = &
1915 -q_prim_vf(i)%sf(k, l, j - 1) + 2._wp*bc_z%vb1
1916 elseif (i == momxb + 1 .and. num_dims > 1)
then
1917 q_prim_vf(i)%sf(k, l, -j) = &
1918 -q_prim_vf(i)%sf(k, l, j - 1) + 2._wp*bc_z%vb2
1919 elseif (i == momxb + 2 .and. num_dims > 2)
then
1920 q_prim_vf(i)%sf(k, l, -j) = &
1921 -q_prim_vf(i)%sf(k, l, j - 1) + 2._wp*bc_z%vb3
1923 q_prim_vf(i)%sf(k, l, -j) = &
1924 q_prim_vf(i)%sf(k, l, 0)
1931 if (i == momxb)
then
1932 q_prim_vf(i)%sf(k, l, p + j) = &
1933 -q_prim_vf(i)%sf(k, l, p - (j - 1)) + 2._wp*bc_z%ve1
1934 elseif (i == momxb + 1 .and. num_dims > 1)
then
1935 q_prim_vf(i)%sf(k, l, p + j) = &
1936 -q_prim_vf(i)%sf(k, l, p - (j - 1)) + 2._wp*bc_z%ve2
1937 elseif (i == momxb + 2 .and. num_dims > 2)
then
1938 q_prim_vf(i)%sf(k, l, p + j) = &
1939 -q_prim_vf(i)%sf(k, l, p - (j - 1)) + 2._wp*bc_z%ve3
1941 q_prim_vf(i)%sf(k, l, p + j) = &
1942 q_prim_vf(i)%sf(k, l, p)
2042# 1115 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2044# 1115 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2046# 1115 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2048# 1115 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2050# 1115 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2052# 1115 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2054# 1115 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2056 real(stp),
optional,
dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:, 1:),
intent(inout) :: pb_in, mv_in
2057 integer,
intent(in) :: bc_dir, bc_loc
2058 integer,
intent(in) :: k, l
2062 if (bc_dir == 1)
then
2063 if (bc_loc == -1)
then
2067 pb_in(-j, k, l, q, i) = pb_in(0, k, l, q, i)
2068 mv_in(-j, k, l, q, i) = mv_in(0, k, l, q, i)
2076 pb_in(m + j, k, l, q, i) = pb_in(m, k, l, q, i)
2077 mv_in(m + j, k, l, q, i) = mv_in(m, k, l, q, i)
2082 elseif (bc_dir == 2)
then
2083 if (bc_loc == -1)
then
2087 pb_in(k, -j, l, q, i) = pb_in(k, 0, l, q, i)
2088 mv_in(k, -j, l, q, i) = mv_in(k, 0, l, q, i)
2096 pb_in(k, n + j, l, q, i) = pb_in(k, n, l, q, i)
2097 mv_in(k, n + j, l, q, i) = mv_in(k, n, l, q, i)
2102 elseif (bc_dir == 3)
then
2103 if (bc_loc == -1)
then
2107 pb_in(k, l, -j, q, i) = pb_in(k, l, 0, q, i)
2108 mv_in(k, l, -j, q, i) = mv_in(k, l, 0, q, i)
2116 pb_in(k, l, p + j, q, i) = pb_in(k, l, p, q, i)
2117 mv_in(k, l, p + j, q, i) = mv_in(k, l, p, q, i)
2567# 1380 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2569# 1380 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2571# 1380 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2573# 1380 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2575# 1380 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2577# 1380 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2579# 1380 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2581# 1380 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2583# 1380 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2585# 1382 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2586 type(scalar_field),
dimension(num_dims + 1),
intent(inout) :: c_divs
2587 integer,
intent(in) :: bc_dir, bc_loc
2588 integer,
intent(in) :: k, l
2592 if (bc_dir == 1)
then
2593 if (bc_loc == -1)
then
2594 do i = 1, num_dims + 1
2596 if (i == bc_dir)
then
2597 c_divs(i)%sf(-j, k, l) = -c_divs(i)%sf(j - 1, k, l)
2599 c_divs(i)%sf(-j, k, l) = c_divs(i)%sf(j - 1, k, l)
2604 do i = 1, num_dims + 1
2606 if (i == bc_dir)
then
2607 c_divs(i)%sf(m + j, k, l) = -c_divs(i)%sf(m - (j - 1), k, l)
2609 c_divs(i)%sf(m + j, k, l) = c_divs(i)%sf(m - (j - 1), k, l)
2614 elseif (bc_dir == 2)
then
2615 if (bc_loc == -1)
then
2616 do i = 1, num_dims + 1
2618 if (i == bc_dir)
then
2619 c_divs(i)%sf(k, -j, l) = -c_divs(i)%sf(k, j - 1, l)
2621 c_divs(i)%sf(k, -j, l) = c_divs(i)%sf(k, j - 1, l)
2626 do i = 1, num_dims + 1
2628 if (i == bc_dir)
then
2629 c_divs(i)%sf(k, n + j, l) = -c_divs(i)%sf(k, n - (j - 1), l)
2631 c_divs(i)%sf(k, n + j, l) = c_divs(i)%sf(k, n - (j - 1), l)
2636 elseif (bc_dir == 3)
then
2637 if (bc_loc == -1)
then
2638 do i = 1, num_dims + 1
2640 if (i == bc_dir)
then
2641 c_divs(i)%sf(k, l, -j) = -c_divs(i)%sf(k, l, j - 1)
2643 c_divs(i)%sf(k, l, -j) = c_divs(i)%sf(k, l, j - 1)
2648 do i = 1, num_dims + 1
2650 if (i == bc_dir)
then
2651 c_divs(i)%sf(k, l, p + j) = -c_divs(i)%sf(k, l, p - (j - 1))
2653 c_divs(i)%sf(k, l, p + j) = c_divs(i)%sf(k, l, p - (j - 1))
3544#ifdef MFC_SIMULATION
3546 type(int_bounds_info) :: offset_x, offset_y, offset_z
3547 offset_x%beg = buff_size; offset_x%end = buff_size
3548 offset_y%beg = buff_size; offset_y%end = buff_size
3549 offset_z%beg = buff_size; offset_z%end = buff_size
3552#ifndef MFC_PRE_PROCESS
3556 if (bc_x%beg >= 0)
then
3557 call s_mpi_sendrecv_grid_variables_buffers(1, -1)
3558 elseif (bc_x%beg <= bc_ghost_extrap)
then
3562 elseif (bc_x%beg == bc_reflective)
then
3566 elseif (bc_x%beg == bc_periodic)
then
3568 dx(-i) = dx(m - (i - 1))
3573 do i = 1, offset_x%beg
3574 x_cb(-1 - i) = x_cb(-i) - dx(-i)
3578 x_cc(-i) = x_cc(1 - i) - (dx(1 - i) + dx(-i))/2._wp
3582 if (bc_x%end >= 0)
then
3583 call s_mpi_sendrecv_grid_variables_buffers(1, 1)
3584 elseif (bc_x%end <= bc_ghost_extrap)
then
3588 elseif (bc_x%end == bc_reflective)
then
3590 dx(m + i) = dx(m - (i - 1))
3592 elseif (bc_x%end == bc_periodic)
then
3594 dx(m + i) = dx(i - 1)
3599 do i = 1, offset_x%end
3600 x_cb(m + i) = x_cb(m + (i - 1)) + dx(m + i)
3604 x_cc(m + i) = x_cc(m + (i - 1)) + (dx(m + (i - 1)) + dx(m + i))/2._wp
3613 elseif (bc_y%beg >= 0)
then
3614 call s_mpi_sendrecv_grid_variables_buffers(2, -1)
3615 elseif (bc_y%beg <= bc_ghost_extrap .and. bc_y%beg /= bc_axis)
then
3619 elseif (bc_y%beg == bc_reflective .or. bc_y%beg == bc_axis)
then
3623 elseif (bc_y%beg == bc_periodic)
then
3625 dy(-i) = dy(n - (i - 1))
3630 do i = 1, offset_y%beg
3631 y_cb(-1 - i) = y_cb(-i) - dy(-i)
3635 y_cc(-i) = y_cc(1 - i) - (dy(1 - i) + dy(-i))/2._wp
3639 if (bc_y%end >= 0)
then
3640 call s_mpi_sendrecv_grid_variables_buffers(2, 1)
3641 elseif (bc_y%end <= bc_ghost_extrap)
then
3645 elseif (bc_y%end == bc_reflective)
then
3647 dy(n + i) = dy(n - (i - 1))
3649 elseif (bc_y%end == bc_periodic)
then
3651 dy(n + i) = dy(i - 1)
3656 do i = 1, offset_y%end
3657 y_cb(n + i) = y_cb(n + (i - 1)) + dy(n + i)
3661 y_cc(n + i) = y_cc(n + (i - 1)) + (dy(n + (i - 1)) + dy(n + i))/2._wp
3670 elseif (bc_z%beg >= 0)
then
3671 call s_mpi_sendrecv_grid_variables_buffers(3, -1)
3672 elseif (bc_z%beg <= bc_ghost_extrap)
then
3676 elseif (bc_z%beg == bc_reflective)
then
3680 elseif (bc_z%beg == bc_periodic)
then
3682 dz(-i) = dz(p - (i - 1))
3687 do i = 1, offset_z%beg
3688 z_cb(-1 - i) = z_cb(-i) - dz(-i)
3692 z_cc(-i) = z_cc(1 - i) - (dz(1 - i) + dz(-i))/2._wp
3696 if (bc_z%end >= 0)
then
3697 call s_mpi_sendrecv_grid_variables_buffers(3, 1)
3698 elseif (bc_z%end <= bc_ghost_extrap)
then
3702 elseif (bc_z%end == bc_reflective)
then
3704 dz(p + i) = dz(p - (i - 1))
3706 elseif (bc_z%end == bc_periodic)
then
3708 dz(p + i) = dz(i - 1)
3713 do i = 1, offset_z%end
3714 z_cb(p + i) = z_cb(p + (i - 1)) + dz(p + i)
3718 z_cc(p + i) = z_cc(p + (i - 1)) + (dz(p + (i - 1)) + dz(p + i))/2._wp