677 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
678 real(stp),
optional,
dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:, 1:),
intent(inout) :: pb_in, mv_in
679 type(integer_field),
dimension(1:num_dims, 1:2),
intent(in) :: bc_type
684 if (bc_x%beg >= 0)
then
685 call s_mpi_sendrecv_variables_buffers(q_prim_vf, 1, -1, sys_size, pb_in, mv_in)
688# 101 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
690# 101 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
691#if defined(MFC_OpenACC)
692# 101 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
694# 101 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
695#elif defined(MFC_OpenMP)
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"
706# 101 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
710 select case (int(bc_type(1, 1)%sf(0,
k,
l)))
711 case (bc_char_sup_outflow:bc_ghost_extrap)
719 case (bc_no_slip_wall)
725 if (qbmm .and. (.not. polytropic) .and. &
726 (bc_type(1, 1)%sf(0,
k,
l) <= bc_ghost_extrap))
then
732# 125 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
734# 125 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
735#if defined(MFC_OpenACC)
736# 125 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
738# 125 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
739#elif defined(MFC_OpenMP)
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"
748# 125 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
752 if (bc_x%end >= 0)
then
753 call s_mpi_sendrecv_variables_buffers(q_prim_vf, 1, 1, sys_size, pb_in, mv_in)
756# 131 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
758# 131 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
759#if defined(MFC_OpenACC)
760# 131 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
762# 131 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
763#elif defined(MFC_OpenMP)
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"
774# 131 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
778 select case (int(bc_type(1, 2)%sf(0,
k,
l)))
779 case (bc_char_sup_outflow:bc_ghost_extrap)
787 case (bc_no_slip_wall)
793 if (qbmm .and. (.not. polytropic) .and. &
794 (bc_type(1, 2)%sf(0,
k,
l) <= bc_ghost_extrap))
then
800# 155 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
802# 155 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
803#if defined(MFC_OpenACC)
804# 155 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
806# 155 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
807#elif defined(MFC_OpenMP)
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"
816# 155 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
824# 163 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
826 if (bc_y%beg >= 0)
then
827 call s_mpi_sendrecv_variables_buffers(q_prim_vf, 2, -1, sys_size, pb_in, mv_in)
830# 167 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
832# 167 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
833#if defined(MFC_OpenACC)
834# 167 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
836# 167 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
837#elif defined(MFC_OpenMP)
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"
848# 167 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
851 do k = -buff_size, m + buff_size
852 select case (int(bc_type(2, 1)%sf(
k, 0,
l)))
853 case (bc_char_sup_outflow:bc_ghost_extrap)
856 call s_axis(q_prim_vf, pb_in, mv_in,
k,
l)
863 case (bc_no_slip_wall)
869 if (qbmm .and. (.not. polytropic) .and. &
870 (bc_type(2, 1)%sf(
k, 0,
l) <= bc_ghost_extrap) .and. &
871 (bc_type(2, 1)%sf(
k, 0,
l) /= bc_axis))
then
877# 194 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
879# 194 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
880#if defined(MFC_OpenACC)
881# 194 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
883# 194 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
884#elif defined(MFC_OpenMP)
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"
893# 194 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
897 if (bc_y%end >= 0)
then
898 call s_mpi_sendrecv_variables_buffers(q_prim_vf, 2, 1, sys_size, pb_in, mv_in)
901# 200 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
903# 200 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
904#if defined(MFC_OpenACC)
905# 200 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
907# 200 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
908#elif defined(MFC_OpenMP)
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"
919# 200 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
922 do k = -buff_size, m + buff_size
923 select case (int(bc_type(2, 2)%sf(
k, 0,
l)))
924 case (bc_char_sup_outflow:bc_ghost_extrap)
932 case (bc_no_slip_wall)
938 if (qbmm .and. (.not. polytropic) .and. &
939 (bc_type(2, 2)%sf(
k, 0,
l) <= bc_ghost_extrap))
then
945# 224 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
947# 224 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
948#if defined(MFC_OpenACC)
949# 224 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
951# 224 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
952#elif defined(MFC_OpenMP)
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"
961# 224 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
965# 228 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
971# 234 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
973 if (bc_z%beg >= 0)
then
974 call s_mpi_sendrecv_variables_buffers(q_prim_vf, 3, -1, sys_size, pb_in, mv_in)
977# 238 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
979# 238 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
980#if defined(MFC_OpenACC)
981# 238 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
983# 238 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
984#elif defined(MFC_OpenMP)
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# 238 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
997 do l = -buff_size, n + buff_size
998 do k = -buff_size, m + buff_size
999 select case (int(bc_type(3, 1)%sf(
k,
l, 0)))
1000 case (bc_char_sup_outflow:bc_ghost_extrap)
1002 case (bc_reflective)
1008 case (bc_no_slip_wall)
1014 if (qbmm .and. (.not. polytropic) .and. &
1015 (bc_type(3, 1)%sf(
k,
l, 0) <= bc_ghost_extrap))
then
1021# 262 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1023# 262 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1024#if defined(MFC_OpenACC)
1025# 262 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1027# 262 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1028#elif defined(MFC_OpenMP)
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"
1037# 262 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1041 if (bc_z%end >= 0)
then
1042 call s_mpi_sendrecv_variables_buffers(q_prim_vf, 3, 1, sys_size, pb_in, mv_in)
1045# 268 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1047# 268 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1048#if defined(MFC_OpenACC)
1049# 268 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1051# 268 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1052#elif defined(MFC_OpenMP)
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# 268 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1065 do l = -buff_size, n + buff_size
1066 do k = -buff_size, m + buff_size
1067 select case (int(bc_type(3, 2)%sf(
k,
l, 0)))
1068 case (bc_char_sup_outflow:bc_ghost_extrap)
1070 case (bc_reflective)
1076 case (bc_no_slip_wall)
1082 if (qbmm .and. (.not. polytropic) .and. &
1083 (bc_type(3, 2)%sf(
k,
l, 0) <= bc_ghost_extrap))
then
1089# 292 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1091# 292 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1092#if defined(MFC_OpenACC)
1093# 292 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1095# 292 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1096#elif defined(MFC_OpenMP)
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"
1105# 292 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1108# 295 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1210 subroutine s_symmetry(q_prim_vf, bc_dir, bc_loc, k, l, pb_in, mv_in)
1212# 363 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1214# 363 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1216# 363 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1218# 363 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1220# 363 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1222# 363 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1224# 363 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1226 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
1227 real(stp),
optional,
dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:, 1:),
intent(inout) :: pb_in, mv_in
1228 integer,
intent(in) :: bc_dir, bc_loc
1229 integer,
intent(in) :: k, l
1233 if (bc_dir == 1)
then
1234 if (bc_loc == -1)
then
1237 q_prim_vf(i)%sf(-j, k, l) = &
1238 q_prim_vf(i)%sf(j - 1, k, l)
1241 q_prim_vf(momxb)%sf(-j, k, l) = &
1242 -q_prim_vf(momxb)%sf(j - 1, k, l)
1244 do i = momxb + 1, sys_size
1245 q_prim_vf(i)%sf(-j, k, l) = &
1246 q_prim_vf(i)%sf(j - 1, k, l)
1249 if (elasticity)
then
1250 do i = 1, shear_bc_flip_num
1251 q_prim_vf(shear_bc_flip_indices(1, i))%sf(-j, k, l) = &
1252 -q_prim_vf(shear_bc_flip_indices(1, i))%sf(j - 1, k, l)
1256 if (hyperelasticity)
then
1257 q_prim_vf(xibeg)%sf(-j, k, l) = &
1258 -q_prim_vf(xibeg)%sf(j - 1, k, l)
1263 if (qbmm .and. .not. polytropic)
then
1267 pb_in(-j, k, l, q, i) = &
1268 pb_in(j - 1, k, l, q, i)
1269 mv_in(-j, k, l, q, i) = &
1270 mv_in(j - 1, k, l, q, i)
1278 q_prim_vf(i)%sf(m + j, k, l) = &
1279 q_prim_vf(i)%sf(m - (j - 1), k, l)
1282 q_prim_vf(momxb)%sf(m + j, k, l) = &
1283 -q_prim_vf(momxb)%sf(m - (j - 1), k, l)
1285 do i = momxb + 1, sys_size
1286 q_prim_vf(i)%sf(m + j, k, l) = &
1287 q_prim_vf(i)%sf(m - (j - 1), k, l)
1290 if (elasticity)
then
1291 do i = 1, shear_bc_flip_num
1292 q_prim_vf(shear_bc_flip_indices(1, i))%sf(m + j, k, l) = &
1293 -q_prim_vf(shear_bc_flip_indices(1, i))%sf(m - (j - 1), k, l)
1297 if (hyperelasticity)
then
1298 q_prim_vf(xibeg)%sf(m + j, k, l) = &
1299 -q_prim_vf(xibeg)%sf(m - (j - 1), k, l)
1302 if (qbmm .and. .not. polytropic)
then
1307 pb_in(m + j, k, l, q, i) = &
1308 pb_in(m - (j - 1), k, l, q, i)
1309 mv_in(m + j, k, l, q, i) = &
1310 mv_in(m - (j - 1), k, l, q, i)
1316 elseif (bc_dir == 2)
then
1317 if (bc_loc == -1)
then
1320 q_prim_vf(i)%sf(k, -j, l) = &
1321 q_prim_vf(i)%sf(k, j - 1, l)
1324 q_prim_vf(momxb + 1)%sf(k, -j, l) = &
1325 -q_prim_vf(momxb + 1)%sf(k, j - 1, l)
1327 do i = momxb + 2, sys_size
1328 q_prim_vf(i)%sf(k, -j, l) = &
1329 q_prim_vf(i)%sf(k, j - 1, l)
1332 if (elasticity)
then
1333 do i = 1, shear_bc_flip_num
1334 q_prim_vf(shear_bc_flip_indices(2, i))%sf(k, -j, l) = &
1335 -q_prim_vf(shear_bc_flip_indices(2, i))%sf(k, j - 1, l)
1339 if (hyperelasticity)
then
1340 q_prim_vf(xibeg + 1)%sf(k, -j, l) = &
1341 -q_prim_vf(xibeg + 1)%sf(k, j - 1, l)
1345 if (qbmm .and. .not. polytropic)
then
1349 pb_in(k, -j, l, q, i) = &
1350 pb_in(k, j - 1, l, q, i)
1351 mv_in(k, -j, l, q, i) = &
1352 mv_in(k, j - 1, l, q, i)
1360 q_prim_vf(i)%sf(k, n + j, l) = &
1361 q_prim_vf(i)%sf(k, n - (j - 1), l)
1364 q_prim_vf(momxb + 1)%sf(k, n + j, l) = &
1365 -q_prim_vf(momxb + 1)%sf(k, n - (j - 1), l)
1367 do i = momxb + 2, sys_size
1368 q_prim_vf(i)%sf(k, n + j, l) = &
1369 q_prim_vf(i)%sf(k, n - (j - 1), l)
1372 if (elasticity)
then
1373 do i = 1, shear_bc_flip_num
1374 q_prim_vf(shear_bc_flip_indices(2, i))%sf(k, n + j, l) = &
1375 -q_prim_vf(shear_bc_flip_indices(2, i))%sf(k, n - (j - 1), l)
1379 if (hyperelasticity)
then
1380 q_prim_vf(xibeg + 1)%sf(k, n + j, l) = &
1381 -q_prim_vf(xibeg + 1)%sf(k, n - (j - 1), l)
1385 if (qbmm .and. .not. polytropic)
then
1389 pb_in(k, n + j, l, q, i) = &
1390 pb_in(k, n - (j - 1), l, q, i)
1391 mv_in(k, n + j, l, q, i) = &
1392 mv_in(k, n - (j - 1), l, q, i)
1398 elseif (bc_dir == 3)
then
1399 if (bc_loc == -1)
then
1402 q_prim_vf(i)%sf(k, l, -j) = &
1403 q_prim_vf(i)%sf(k, l, j - 1)
1406 q_prim_vf(momxe)%sf(k, l, -j) = &
1407 -q_prim_vf(momxe)%sf(k, l, j - 1)
1409 do i = e_idx, sys_size
1410 q_prim_vf(i)%sf(k, l, -j) = &
1411 q_prim_vf(i)%sf(k, l, j - 1)
1414 if (elasticity)
then
1415 do i = 1, shear_bc_flip_num
1416 q_prim_vf(shear_bc_flip_indices(3, i))%sf(k, l, -j) = &
1417 -q_prim_vf(shear_bc_flip_indices(3, i))%sf(k, l, j - 1)
1421 if (hyperelasticity)
then
1422 q_prim_vf(xiend)%sf(k, l, -j) = &
1423 -q_prim_vf(xiend)%sf(k, l, j - 1)
1427 if (qbmm .and. .not. polytropic)
then
1431 pb_in(k, l, -j, q, i) = &
1432 pb_in(k, l, j - 1, q, i)
1433 mv_in(k, l, -j, q, i) = &
1434 mv_in(k, l, j - 1, q, i)
1442 q_prim_vf(i)%sf(k, l, p + j) = &
1443 q_prim_vf(i)%sf(k, l, p - (j - 1))
1446 q_prim_vf(momxe)%sf(k, l, p + j) = &
1447 -q_prim_vf(momxe)%sf(k, l, p - (j - 1))
1449 do i = e_idx, sys_size
1450 q_prim_vf(i)%sf(k, l, p + j) = &
1451 q_prim_vf(i)%sf(k, l, p - (j - 1))
1454 if (elasticity)
then
1455 do i = 1, shear_bc_flip_num
1456 q_prim_vf(shear_bc_flip_indices(3, i))%sf(k, l, p + j) = &
1457 -q_prim_vf(shear_bc_flip_indices(3, i))%sf(k, l, p - (j - 1))
1461 if (hyperelasticity)
then
1462 q_prim_vf(xiend)%sf(k, l, p + j) = &
1463 -q_prim_vf(xiend)%sf(k, l, p - (j - 1))
1467 if (qbmm .and. .not. polytropic)
then
1471 pb_in(k, l, p + j, q, i) = &
1472 pb_in(k, l, p - (j - 1), q, i)
1473 mv_in(k, l, p + j, q, i) = &
1474 mv_in(k, l, p - (j - 1), q, i)
1485 subroutine s_periodic(q_prim_vf, bc_dir, bc_loc, k, l, pb_in, mv_in)
1487# 624 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1489# 624 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1491# 624 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1493# 624 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1495# 624 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1497# 624 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1499# 624 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1501 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
1502 real(stp),
optional,
dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:, 1:),
intent(inout) :: pb_in, mv_in
1503 integer,
intent(in) :: bc_dir, bc_loc
1504 integer,
intent(in) :: k, l
1508 if (bc_dir == 1)
then
1509 if (bc_loc == -1)
then
1512 q_prim_vf(i)%sf(-j, k, l) = &
1513 q_prim_vf(i)%sf(m - (j - 1), k, l)
1517 if (qbmm .and. .not. polytropic)
then
1521 pb_in(-j, k, l, q, i) = &
1522 pb_in(m - (j - 1), k, l, q, i)
1523 mv_in(-j, k, l, q, i) = &
1524 mv_in(m - (j - 1), k, l, q, i)
1532 q_prim_vf(i)%sf(m + j, k, l) = &
1533 q_prim_vf(i)%sf(j - 1, k, l)
1537 if (qbmm .and. .not. polytropic)
then
1541 pb_in(m + j, k, l, q, i) = &
1542 pb_in(j - 1, k, l, q, i)
1543 mv_in(m + j, k, l, q, i) = &
1544 mv_in(j - 1, k, l, q, i)
1550 elseif (bc_dir == 2)
then
1551 if (bc_loc == -1)
then
1554 q_prim_vf(i)%sf(k, -j, l) = &
1555 q_prim_vf(i)%sf(k, n - (j - 1), l)
1559 if (qbmm .and. .not. polytropic)
then
1563 pb_in(k, -j, l, q, i) = &
1564 pb_in(k, n - (j - 1), l, q, i)
1565 mv_in(k, -j, l, q, i) = &
1566 mv_in(k, n - (j - 1), l, q, i)
1574 q_prim_vf(i)%sf(k, n + j, l) = &
1575 q_prim_vf(i)%sf(k, j - 1, l)
1579 if (qbmm .and. .not. polytropic)
then
1583 pb_in(k, n + j, l, q, i) = &
1584 pb_in(k, (j - 1), l, q, i)
1585 mv_in(k, n + j, l, q, i) = &
1586 mv_in(k, (j - 1), l, q, i)
1592 elseif (bc_dir == 3)
then
1593 if (bc_loc == -1)
then
1596 q_prim_vf(i)%sf(k, l, -j) = &
1597 q_prim_vf(i)%sf(k, l, p - (j - 1))
1601 if (qbmm .and. .not. polytropic)
then
1605 pb_in(k, l, -j, q, i) = &
1606 pb_in(k, l, p - (j - 1), q, i)
1607 mv_in(k, l, -j, q, i) = &
1608 mv_in(k, l, p - (j - 1), q, i)
1616 q_prim_vf(i)%sf(k, l, p + j) = &
1617 q_prim_vf(i)%sf(k, l, j - 1)
1621 if (qbmm .and. .not. polytropic)
then
1625 pb_in(k, l, p + j, q, i) = &
1626 pb_in(k, l, j - 1, q, i)
1627 mv_in(k, l, p + j, q, i) = &
1628 mv_in(k, l, j - 1, q, i)
1639 subroutine s_axis(q_prim_vf, pb_in, mv_in, k, l)
1641# 764 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1643# 764 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1645# 764 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1647# 764 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1649# 764 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1651# 764 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1653# 764 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1655 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
1656 real(stp),
dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:, 1:),
intent(inout) :: pb_in, mv_in
1657 integer,
intent(in) :: k, l
1662 if (z_cc(l) < pi)
then
1664 q_prim_vf(i)%sf(k, -j, l) = &
1665 q_prim_vf(i)%sf(k, j - 1, l + ((p + 1)/2))
1668 q_prim_vf(momxb + 1)%sf(k, -j, l) = &
1669 -q_prim_vf(momxb + 1)%sf(k, j - 1, l + ((p + 1)/2))
1671 q_prim_vf(momxe)%sf(k, -j, l) = &
1672 -q_prim_vf(momxe)%sf(k, j - 1, l + ((p + 1)/2))
1674 do i = e_idx, sys_size
1675 q_prim_vf(i)%sf(k, -j, l) = &
1676 q_prim_vf(i)%sf(k, j - 1, l + ((p + 1)/2))
1680 q_prim_vf(i)%sf(k, -j, l) = &
1681 q_prim_vf(i)%sf(k, j - 1, l - ((p + 1)/2))
1684 q_prim_vf(momxb + 1)%sf(k, -j, l) = &
1685 -q_prim_vf(momxb + 1)%sf(k, j - 1, l - ((p + 1)/2))
1687 q_prim_vf(momxe)%sf(k, -j, l) = &
1688 -q_prim_vf(momxe)%sf(k, j - 1, l - ((p + 1)/2))
1690 do i = e_idx, sys_size
1691 q_prim_vf(i)%sf(k, -j, l) = &
1692 q_prim_vf(i)%sf(k, j - 1, l - ((p + 1)/2))
1697 if (qbmm .and. .not. polytropic)
then
1701 pb_in(k, -j, l, q, i) = &
1702 pb_in(k, j - 1, l - ((p + 1)/2), q, i)
1703 mv_in(k, -j, l, q, i) = &
1704 mv_in(k, j - 1, l - ((p + 1)/2), q, i)
1715# 824 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1717# 824 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1719# 824 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1721# 824 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1723# 824 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1725# 824 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1727# 824 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1729# 824 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1731# 824 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1733# 824 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1735# 824 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1737# 824 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1739# 824 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1741# 824 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1743# 824 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1745# 824 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1747# 824 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1749# 826 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1750 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
1751 integer,
intent(in) :: bc_dir, bc_loc
1752 integer,
intent(in) :: k, l
1756 if (bc_dir == 1)
then
1757 if (bc_loc == -1)
then
1760 if (i == momxb)
then
1761 q_prim_vf(i)%sf(-j, k, l) = &
1762 -q_prim_vf(i)%sf(j - 1, k, l) + 2._wp*bc_x%vb1
1764 q_prim_vf(i)%sf(-j, k, l) = &
1765 q_prim_vf(i)%sf(0, k, l)
1772 if (i == momxb)
then
1773 q_prim_vf(i)%sf(m + j, k, l) = &
1774 -q_prim_vf(i)%sf(m - (j - 1), k, l) + 2._wp*bc_x%ve1
1776 q_prim_vf(i)%sf(m + j, k, l) = &
1777 q_prim_vf(i)%sf(m, k, l)
1782 elseif (bc_dir == 2)
then
1783 if (bc_loc == -1)
then
1786 if (i == momxb + 1)
then
1787 q_prim_vf(i)%sf(k, -j, l) = &
1788 -q_prim_vf(i)%sf(k, j - 1, l) + 2._wp*bc_y%vb2
1790 q_prim_vf(i)%sf(k, -j, l) = &
1791 q_prim_vf(i)%sf(k, 0, l)
1798 if (i == momxb + 1)
then
1799 q_prim_vf(i)%sf(k, n + j, l) = &
1800 -q_prim_vf(i)%sf(k, n - (j - 1), l) + 2._wp*bc_y%ve2
1802 q_prim_vf(i)%sf(k, n + j, l) = &
1803 q_prim_vf(i)%sf(k, n, l)
1808 elseif (bc_dir == 3)
then
1809 if (bc_loc == -1)
then
1812 if (i == momxe)
then
1813 q_prim_vf(i)%sf(k, l, -j) = &
1814 -q_prim_vf(i)%sf(k, l, j - 1) + 2._wp*bc_z%vb3
1816 q_prim_vf(i)%sf(k, l, -j) = &
1817 q_prim_vf(i)%sf(k, l, 0)
1824 if (i == momxe)
then
1825 q_prim_vf(i)%sf(k, l, p + j) = &
1826 -q_prim_vf(i)%sf(k, l, p - (j - 1)) + 2._wp*bc_z%ve3
1828 q_prim_vf(i)%sf(k, l, p + j) = &
1829 q_prim_vf(i)%sf(k, l, p)
1841# 916 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1843# 916 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1845# 916 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1847# 916 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1849# 916 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1851# 916 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1853# 916 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1855# 916 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1857# 916 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1859# 916 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1861# 916 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1863# 916 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1865# 916 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1867# 916 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1869# 916 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1871# 916 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1873# 916 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1875# 918 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1877 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
1878 integer,
intent(in) :: bc_dir, bc_loc
1879 integer,
intent(in) :: k, l
1883 if (bc_dir == 1)
then
1884 if (bc_loc == -1)
then
1887 if (i == momxb)
then
1888 q_prim_vf(i)%sf(-j, k, l) = &
1889 -q_prim_vf(i)%sf(j - 1, k, l) + 2._wp*bc_x%vb1
1890 elseif (i == momxb + 1 .and. num_dims > 1)
then
1891 q_prim_vf(i)%sf(-j, k, l) = &
1892 -q_prim_vf(i)%sf(j - 1, k, l) + 2._wp*bc_x%vb2
1893 elseif (i == momxb + 2 .and. num_dims > 2)
then
1894 q_prim_vf(i)%sf(-j, k, l) = &
1895 -q_prim_vf(i)%sf(j - 1, k, l) + 2._wp*bc_x%vb3
1897 q_prim_vf(i)%sf(-j, k, l) = &
1898 q_prim_vf(i)%sf(0, k, l)
1905 if (i == momxb)
then
1906 q_prim_vf(i)%sf(m + j, k, l) = &
1907 -q_prim_vf(i)%sf(m - (j - 1), k, l) + 2._wp*bc_x%ve1
1908 elseif (i == momxb + 1 .and. num_dims > 1)
then
1909 q_prim_vf(i)%sf(m + j, k, l) = &
1910 -q_prim_vf(i)%sf(m - (j - 1), k, l) + 2._wp*bc_x%ve2
1911 elseif (i == momxb + 2 .and. num_dims > 2)
then
1912 q_prim_vf(i)%sf(m + j, k, l) = &
1913 -q_prim_vf(i)%sf(m - (j - 1), k, l) + 2._wp*bc_x%ve3
1915 q_prim_vf(i)%sf(m + j, k, l) = &
1916 q_prim_vf(i)%sf(m, k, l)
1921 elseif (bc_dir == 2)
then
1922 if (bc_loc == -1)
then
1925 if (i == momxb)
then
1926 q_prim_vf(i)%sf(k, -j, l) = &
1927 -q_prim_vf(i)%sf(k, j - 1, l) + 2._wp*bc_y%vb1
1928 elseif (i == momxb + 1 .and. num_dims > 1)
then
1929 q_prim_vf(i)%sf(k, -j, l) = &
1930 -q_prim_vf(i)%sf(k, j - 1, l) + 2._wp*bc_y%vb2
1931 elseif (i == momxb + 2 .and. num_dims > 2)
then
1932 q_prim_vf(i)%sf(k, -j, l) = &
1933 -q_prim_vf(i)%sf(k, j - 1, l) + 2._wp*bc_y%vb3
1935 q_prim_vf(i)%sf(k, -j, l) = &
1936 q_prim_vf(i)%sf(k, 0, l)
1943 if (i == momxb)
then
1944 q_prim_vf(i)%sf(k, n + j, l) = &
1945 -q_prim_vf(i)%sf(k, n - (j - 1), l) + 2._wp*bc_y%ve1
1946 elseif (i == momxb + 1 .and. num_dims > 1)
then
1947 q_prim_vf(i)%sf(k, n + j, l) = &
1948 -q_prim_vf(i)%sf(k, n - (j - 1), l) + 2._wp*bc_y%ve2
1949 elseif (i == momxb + 2 .and. num_dims > 2)
then
1950 q_prim_vf(i)%sf(k, n + j, l) = &
1951 -q_prim_vf(i)%sf(k, n - (j - 1), l) + 2._wp*bc_y%ve3
1953 q_prim_vf(i)%sf(k, n + j, l) = &
1954 q_prim_vf(i)%sf(k, n, l)
1959 elseif (bc_dir == 3)
then
1960 if (bc_loc == -1)
then
1963 if (i == momxb)
then
1964 q_prim_vf(i)%sf(k, l, -j) = &
1965 -q_prim_vf(i)%sf(k, l, j - 1) + 2._wp*bc_z%vb1
1966 elseif (i == momxb + 1 .and. num_dims > 1)
then
1967 q_prim_vf(i)%sf(k, l, -j) = &
1968 -q_prim_vf(i)%sf(k, l, j - 1) + 2._wp*bc_z%vb2
1969 elseif (i == momxb + 2 .and. num_dims > 2)
then
1970 q_prim_vf(i)%sf(k, l, -j) = &
1971 -q_prim_vf(i)%sf(k, l, j - 1) + 2._wp*bc_z%vb3
1973 q_prim_vf(i)%sf(k, l, -j) = &
1974 q_prim_vf(i)%sf(k, l, 0)
1981 if (i == momxb)
then
1982 q_prim_vf(i)%sf(k, l, p + j) = &
1983 -q_prim_vf(i)%sf(k, l, p - (j - 1)) + 2._wp*bc_z%ve1
1984 elseif (i == momxb + 1 .and. num_dims > 1)
then
1985 q_prim_vf(i)%sf(k, l, p + j) = &
1986 -q_prim_vf(i)%sf(k, l, p - (j - 1)) + 2._wp*bc_z%ve2
1987 elseif (i == momxb + 2 .and. num_dims > 2)
then
1988 q_prim_vf(i)%sf(k, l, p + j) = &
1989 -q_prim_vf(i)%sf(k, l, p - (j - 1)) + 2._wp*bc_z%ve3
1991 q_prim_vf(i)%sf(k, l, p + j) = &
1992 q_prim_vf(i)%sf(k, l, p)
2108# 1115 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2110# 1115 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2112# 1115 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2114# 1115 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2116# 1115 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2118# 1115 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2120# 1115 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2122 real(stp),
optional,
dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:, 1:),
intent(inout) :: pb_in, mv_in
2123 integer,
intent(in) :: bc_dir, bc_loc
2124 integer,
intent(in) :: k, l
2128 if (bc_dir == 1)
then
2129 if (bc_loc == -1)
then
2133 pb_in(-j, k, l, q, i) = pb_in(0, k, l, q, i)
2134 mv_in(-j, k, l, q, i) = mv_in(0, k, l, q, i)
2142 pb_in(m + j, k, l, q, i) = pb_in(m, k, l, q, i)
2143 mv_in(m + j, k, l, q, i) = mv_in(m, k, l, q, i)
2148 elseif (bc_dir == 2)
then
2149 if (bc_loc == -1)
then
2153 pb_in(k, -j, l, q, i) = pb_in(k, 0, l, q, i)
2154 mv_in(k, -j, l, q, i) = mv_in(k, 0, l, q, i)
2162 pb_in(k, n + j, l, q, i) = pb_in(k, n, l, q, i)
2163 mv_in(k, n + j, l, q, i) = mv_in(k, n, l, q, i)
2168 elseif (bc_dir == 3)
then
2169 if (bc_loc == -1)
then
2173 pb_in(k, l, -j, q, i) = pb_in(k, l, 0, q, i)
2174 mv_in(k, l, -j, q, i) = mv_in(k, l, 0, q, i)
2182 pb_in(k, l, p + j, q, i) = pb_in(k, l, p, q, i)
2183 mv_in(k, l, p + j, q, i) = mv_in(k, l, p, q, i)
2649# 1380 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2651# 1380 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2653# 1380 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2655# 1380 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2657# 1380 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2659# 1380 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2661# 1380 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2663# 1380 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2665# 1380 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2667# 1380 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2669# 1380 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2671# 1380 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2673# 1380 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2675# 1380 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2677# 1380 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2679# 1380 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2681# 1380 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2683# 1382 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2684 type(scalar_field),
dimension(num_dims + 1),
intent(inout) :: c_divs
2685 integer,
intent(in) :: bc_dir, bc_loc
2686 integer,
intent(in) :: k, l
2690 if (bc_dir == 1)
then
2691 if (bc_loc == -1)
then
2692 do i = 1, num_dims + 1
2694 if (i == bc_dir)
then
2695 c_divs(i)%sf(-j, k, l) = -c_divs(i)%sf(j - 1, k, l)
2697 c_divs(i)%sf(-j, k, l) = c_divs(i)%sf(j - 1, k, l)
2702 do i = 1, num_dims + 1
2704 if (i == bc_dir)
then
2705 c_divs(i)%sf(m + j, k, l) = -c_divs(i)%sf(m - (j - 1), k, l)
2707 c_divs(i)%sf(m + j, k, l) = c_divs(i)%sf(m - (j - 1), k, l)
2712 elseif (bc_dir == 2)
then
2713 if (bc_loc == -1)
then
2714 do i = 1, num_dims + 1
2716 if (i == bc_dir)
then
2717 c_divs(i)%sf(k, -j, l) = -c_divs(i)%sf(k, j - 1, l)
2719 c_divs(i)%sf(k, -j, l) = c_divs(i)%sf(k, j - 1, l)
2724 do i = 1, num_dims + 1
2726 if (i == bc_dir)
then
2727 c_divs(i)%sf(k, n + j, l) = -c_divs(i)%sf(k, n - (j - 1), l)
2729 c_divs(i)%sf(k, n + j, l) = c_divs(i)%sf(k, n - (j - 1), l)
2734 elseif (bc_dir == 3)
then
2735 if (bc_loc == -1)
then
2736 do i = 1, num_dims + 1
2738 if (i == bc_dir)
then
2739 c_divs(i)%sf(k, l, -j) = -c_divs(i)%sf(k, l, j - 1)
2741 c_divs(i)%sf(k, l, -j) = c_divs(i)%sf(k, l, j - 1)
2746 do i = 1, num_dims + 1
2748 if (i == bc_dir)
then
2749 c_divs(i)%sf(k, l, p + j) = -c_divs(i)%sf(k, l, p - (j - 1))
2751 c_divs(i)%sf(k, l, p + j) = c_divs(i)%sf(k, l, p - (j - 1))
3658#ifdef MFC_SIMULATION
3660 type(int_bounds_info) :: offset_x, offset_y, offset_z
3661 offset_x%beg = buff_size; offset_x%end = buff_size
3662 offset_y%beg = buff_size; offset_y%end = buff_size
3663 offset_z%beg = buff_size; offset_z%end = buff_size
3666#ifndef MFC_PRE_PROCESS
3670 if (bc_x%beg >= 0)
then
3671 call s_mpi_sendrecv_grid_variables_buffers(1, -1)
3672 elseif (bc_x%beg <= bc_ghost_extrap)
then
3676 elseif (bc_x%beg == bc_reflective)
then
3680 elseif (bc_x%beg == bc_periodic)
then
3682 dx(-i) = dx(m - (i - 1))
3687 do i = 1, offset_x%beg
3688 x_cb(-1 - i) = x_cb(-i) - dx(-i)
3692 x_cc(-i) = x_cc(1 - i) - (dx(1 - i) + dx(-i))/2._wp
3696 if (bc_x%end >= 0)
then
3697 call s_mpi_sendrecv_grid_variables_buffers(1, 1)
3698 elseif (bc_x%end <= bc_ghost_extrap)
then
3702 elseif (bc_x%end == bc_reflective)
then
3704 dx(m + i) = dx(m - (i - 1))
3706 elseif (bc_x%end == bc_periodic)
then
3708 dx(m + i) = dx(i - 1)
3713 do i = 1, offset_x%end
3714 x_cb(m + i) = x_cb(m + (i - 1)) + dx(m + i)
3718 x_cc(m + i) = x_cc(m + (i - 1)) + (dx(m + (i - 1)) + dx(m + i))/2._wp
3727 elseif (bc_y%beg >= 0)
then
3728 call s_mpi_sendrecv_grid_variables_buffers(2, -1)
3729 elseif (bc_y%beg <= bc_ghost_extrap .and. bc_y%beg /= bc_axis)
then
3733 elseif (bc_y%beg == bc_reflective .or. bc_y%beg == bc_axis)
then
3737 elseif (bc_y%beg == bc_periodic)
then
3739 dy(-i) = dy(n - (i - 1))
3744 do i = 1, offset_y%beg
3745 y_cb(-1 - i) = y_cb(-i) - dy(-i)
3749 y_cc(-i) = y_cc(1 - i) - (dy(1 - i) + dy(-i))/2._wp
3753 if (bc_y%end >= 0)
then
3754 call s_mpi_sendrecv_grid_variables_buffers(2, 1)
3755 elseif (bc_y%end <= bc_ghost_extrap)
then
3759 elseif (bc_y%end == bc_reflective)
then
3761 dy(n + i) = dy(n - (i - 1))
3763 elseif (bc_y%end == bc_periodic)
then
3765 dy(n + i) = dy(i - 1)
3770 do i = 1, offset_y%end
3771 y_cb(n + i) = y_cb(n + (i - 1)) + dy(n + i)
3775 y_cc(n + i) = y_cc(n + (i - 1)) + (dy(n + (i - 1)) + dy(n + i))/2._wp
3784 elseif (bc_z%beg >= 0)
then
3785 call s_mpi_sendrecv_grid_variables_buffers(3, -1)
3786 elseif (bc_z%beg <= bc_ghost_extrap)
then
3790 elseif (bc_z%beg == bc_reflective)
then
3794 elseif (bc_z%beg == bc_periodic)
then
3796 dz(-i) = dz(p - (i - 1))
3801 do i = 1, offset_z%beg
3802 z_cb(-1 - i) = z_cb(-i) - dz(-i)
3806 z_cc(-i) = z_cc(1 - i) - (dz(1 - i) + dz(-i))/2._wp
3810 if (bc_z%end >= 0)
then
3811 call s_mpi_sendrecv_grid_variables_buffers(3, 1)
3812 elseif (bc_z%end <= bc_ghost_extrap)
then
3816 elseif (bc_z%end == bc_reflective)
then
3818 dz(p + i) = dz(p - (i - 1))
3820 elseif (bc_z%end == bc_periodic)
then
3822 dz(p + i) = dz(i - 1)
3827 do i = 1, offset_z%end
3828 z_cb(p + i) = z_cb(p + (i - 1)) + dz(p + i)
3832 z_cc(p + i) = z_cc(p + (i - 1)) + (dz(p + (i - 1)) + dz(p + i))/2._wp