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"
1194 subroutine s_symmetry(q_prim_vf, bc_dir, bc_loc, k, l, pb_in, mv_in)
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# 363 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1210 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
1211 real(stp),
optional,
dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:, 1:),
intent(inout) :: pb_in, mv_in
1212 integer,
intent(in) :: bc_dir, bc_loc
1213 integer,
intent(in) :: k, l
1217 if (bc_dir == 1)
then
1218 if (bc_loc == -1)
then
1221 q_prim_vf(i)%sf(-j, k, l) = &
1222 q_prim_vf(i)%sf(j - 1, k, l)
1225 q_prim_vf(momxb)%sf(-j, k, l) = &
1226 -q_prim_vf(momxb)%sf(j - 1, k, l)
1228 do i = momxb + 1, sys_size
1229 q_prim_vf(i)%sf(-j, k, l) = &
1230 q_prim_vf(i)%sf(j - 1, k, l)
1233 if (elasticity)
then
1234 do i = 1, shear_bc_flip_num
1235 q_prim_vf(shear_bc_flip_indices(1, i))%sf(-j, k, l) = &
1236 -q_prim_vf(shear_bc_flip_indices(1, i))%sf(j - 1, k, l)
1240 if (hyperelasticity)
then
1241 q_prim_vf(xibeg)%sf(-j, k, l) = &
1242 -q_prim_vf(xibeg)%sf(j - 1, k, l)
1247 if (qbmm .and. .not. polytropic)
then
1251 pb_in(-j, k, l, q, i) = &
1252 pb_in(j - 1, k, l, q, i)
1253 mv_in(-j, k, l, q, i) = &
1254 mv_in(j - 1, k, l, q, i)
1262 q_prim_vf(i)%sf(m + j, k, l) = &
1263 q_prim_vf(i)%sf(m - (j - 1), k, l)
1266 q_prim_vf(momxb)%sf(m + j, k, l) = &
1267 -q_prim_vf(momxb)%sf(m - (j - 1), k, l)
1269 do i = momxb + 1, sys_size
1270 q_prim_vf(i)%sf(m + j, k, l) = &
1271 q_prim_vf(i)%sf(m - (j - 1), k, l)
1274 if (elasticity)
then
1275 do i = 1, shear_bc_flip_num
1276 q_prim_vf(shear_bc_flip_indices(1, i))%sf(m + j, k, l) = &
1277 -q_prim_vf(shear_bc_flip_indices(1, i))%sf(m - (j - 1), k, l)
1281 if (hyperelasticity)
then
1282 q_prim_vf(xibeg)%sf(m + j, k, l) = &
1283 -q_prim_vf(xibeg)%sf(m - (j - 1), k, l)
1286 if (qbmm .and. .not. polytropic)
then
1291 pb_in(m + j, k, l, q, i) = &
1292 pb_in(m - (j - 1), k, l, q, i)
1293 mv_in(m + j, k, l, q, i) = &
1294 mv_in(m - (j - 1), k, l, q, i)
1300 elseif (bc_dir == 2)
then
1301 if (bc_loc == -1)
then
1304 q_prim_vf(i)%sf(k, -j, l) = &
1305 q_prim_vf(i)%sf(k, j - 1, l)
1308 q_prim_vf(momxb + 1)%sf(k, -j, l) = &
1309 -q_prim_vf(momxb + 1)%sf(k, j - 1, l)
1311 do i = momxb + 2, sys_size
1312 q_prim_vf(i)%sf(k, -j, l) = &
1313 q_prim_vf(i)%sf(k, j - 1, l)
1316 if (elasticity)
then
1317 do i = 1, shear_bc_flip_num
1318 q_prim_vf(shear_bc_flip_indices(2, i))%sf(k, -j, l) = &
1319 -q_prim_vf(shear_bc_flip_indices(2, i))%sf(k, j - 1, l)
1323 if (hyperelasticity)
then
1324 q_prim_vf(xibeg + 1)%sf(k, -j, l) = &
1325 -q_prim_vf(xibeg + 1)%sf(k, j - 1, l)
1329 if (qbmm .and. .not. polytropic)
then
1333 pb_in(k, -j, l, q, i) = &
1334 pb_in(k, j - 1, l, q, i)
1335 mv_in(k, -j, l, q, i) = &
1336 mv_in(k, j - 1, l, q, i)
1344 q_prim_vf(i)%sf(k, n + j, l) = &
1345 q_prim_vf(i)%sf(k, n - (j - 1), l)
1348 q_prim_vf(momxb + 1)%sf(k, n + j, l) = &
1349 -q_prim_vf(momxb + 1)%sf(k, n - (j - 1), l)
1351 do i = momxb + 2, sys_size
1352 q_prim_vf(i)%sf(k, n + j, l) = &
1353 q_prim_vf(i)%sf(k, n - (j - 1), l)
1356 if (elasticity)
then
1357 do i = 1, shear_bc_flip_num
1358 q_prim_vf(shear_bc_flip_indices(2, i))%sf(k, n + j, l) = &
1359 -q_prim_vf(shear_bc_flip_indices(2, i))%sf(k, n - (j - 1), l)
1363 if (hyperelasticity)
then
1364 q_prim_vf(xibeg + 1)%sf(k, n + j, l) = &
1365 -q_prim_vf(xibeg + 1)%sf(k, n - (j - 1), l)
1369 if (qbmm .and. .not. polytropic)
then
1373 pb_in(k, n + j, l, q, i) = &
1374 pb_in(k, n - (j - 1), l, q, i)
1375 mv_in(k, n + j, l, q, i) = &
1376 mv_in(k, n - (j - 1), l, q, i)
1382 elseif (bc_dir == 3)
then
1383 if (bc_loc == -1)
then
1386 q_prim_vf(i)%sf(k, l, -j) = &
1387 q_prim_vf(i)%sf(k, l, j - 1)
1390 q_prim_vf(momxe)%sf(k, l, -j) = &
1391 -q_prim_vf(momxe)%sf(k, l, j - 1)
1393 do i = e_idx, sys_size
1394 q_prim_vf(i)%sf(k, l, -j) = &
1395 q_prim_vf(i)%sf(k, l, j - 1)
1398 if (elasticity)
then
1399 do i = 1, shear_bc_flip_num
1400 q_prim_vf(shear_bc_flip_indices(3, i))%sf(k, l, -j) = &
1401 -q_prim_vf(shear_bc_flip_indices(3, i))%sf(k, l, j - 1)
1405 if (hyperelasticity)
then
1406 q_prim_vf(xiend)%sf(k, l, -j) = &
1407 -q_prim_vf(xiend)%sf(k, l, j - 1)
1411 if (qbmm .and. .not. polytropic)
then
1415 pb_in(k, l, -j, q, i) = &
1416 pb_in(k, l, j - 1, q, i)
1417 mv_in(k, l, -j, q, i) = &
1418 mv_in(k, l, j - 1, q, i)
1426 q_prim_vf(i)%sf(k, l, p + j) = &
1427 q_prim_vf(i)%sf(k, l, p - (j - 1))
1430 q_prim_vf(momxe)%sf(k, l, p + j) = &
1431 -q_prim_vf(momxe)%sf(k, l, p - (j - 1))
1433 do i = e_idx, sys_size
1434 q_prim_vf(i)%sf(k, l, p + j) = &
1435 q_prim_vf(i)%sf(k, l, p - (j - 1))
1438 if (elasticity)
then
1439 do i = 1, shear_bc_flip_num
1440 q_prim_vf(shear_bc_flip_indices(3, i))%sf(k, l, p + j) = &
1441 -q_prim_vf(shear_bc_flip_indices(3, i))%sf(k, l, p - (j - 1))
1445 if (hyperelasticity)
then
1446 q_prim_vf(xiend)%sf(k, l, p + j) = &
1447 -q_prim_vf(xiend)%sf(k, l, p - (j - 1))
1451 if (qbmm .and. .not. polytropic)
then
1455 pb_in(k, l, p + j, q, i) = &
1456 pb_in(k, l, p - (j - 1), q, i)
1457 mv_in(k, l, p + j, q, i) = &
1458 mv_in(k, l, p - (j - 1), q, i)
1469 subroutine s_periodic(q_prim_vf, bc_dir, bc_loc, k, l, pb_in, mv_in)
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# 624 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1485 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
1486 real(stp),
optional,
dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:, 1:),
intent(inout) :: pb_in, mv_in
1487 integer,
intent(in) :: bc_dir, bc_loc
1488 integer,
intent(in) :: k, l
1492 if (bc_dir == 1)
then
1493 if (bc_loc == -1)
then
1496 q_prim_vf(i)%sf(-j, k, l) = &
1497 q_prim_vf(i)%sf(m - (j - 1), k, l)
1501 if (qbmm .and. .not. polytropic)
then
1505 pb_in(-j, k, l, q, i) = &
1506 pb_in(m - (j - 1), k, l, q, i)
1507 mv_in(-j, k, l, q, i) = &
1508 mv_in(m - (j - 1), k, l, q, i)
1516 q_prim_vf(i)%sf(m + j, k, l) = &
1517 q_prim_vf(i)%sf(j - 1, k, l)
1521 if (qbmm .and. .not. polytropic)
then
1525 pb_in(m + j, k, l, q, i) = &
1526 pb_in(j - 1, k, l, q, i)
1527 mv_in(m + j, k, l, q, i) = &
1528 mv_in(j - 1, k, l, q, i)
1534 elseif (bc_dir == 2)
then
1535 if (bc_loc == -1)
then
1538 q_prim_vf(i)%sf(k, -j, l) = &
1539 q_prim_vf(i)%sf(k, n - (j - 1), l)
1543 if (qbmm .and. .not. polytropic)
then
1547 pb_in(k, -j, l, q, i) = &
1548 pb_in(k, n - (j - 1), l, q, i)
1549 mv_in(k, -j, l, q, i) = &
1550 mv_in(k, n - (j - 1), l, q, i)
1558 q_prim_vf(i)%sf(k, n + j, l) = &
1559 q_prim_vf(i)%sf(k, j - 1, l)
1563 if (qbmm .and. .not. polytropic)
then
1567 pb_in(k, n + j, l, q, i) = &
1568 pb_in(k, (j - 1), l, q, i)
1569 mv_in(k, n + j, l, q, i) = &
1570 mv_in(k, (j - 1), l, q, i)
1576 elseif (bc_dir == 3)
then
1577 if (bc_loc == -1)
then
1580 q_prim_vf(i)%sf(k, l, -j) = &
1581 q_prim_vf(i)%sf(k, l, p - (j - 1))
1585 if (qbmm .and. .not. polytropic)
then
1589 pb_in(k, l, -j, q, i) = &
1590 pb_in(k, l, p - (j - 1), q, i)
1591 mv_in(k, l, -j, q, i) = &
1592 mv_in(k, l, p - (j - 1), q, i)
1600 q_prim_vf(i)%sf(k, l, p + j) = &
1601 q_prim_vf(i)%sf(k, l, j - 1)
1605 if (qbmm .and. .not. polytropic)
then
1609 pb_in(k, l, p + j, q, i) = &
1610 pb_in(k, l, j - 1, q, i)
1611 mv_in(k, l, p + j, q, i) = &
1612 mv_in(k, l, j - 1, q, i)
1623 subroutine s_axis(q_prim_vf, pb_in, mv_in, k, l)
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# 764 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1639 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
1640 real(stp),
dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:, 1:),
intent(inout) :: pb_in, mv_in
1641 integer,
intent(in) :: k, l
1646 if (z_cc(l) < pi)
then
1648 q_prim_vf(i)%sf(k, -j, l) = &
1649 q_prim_vf(i)%sf(k, j - 1, l + ((p + 1)/2))
1652 q_prim_vf(momxb + 1)%sf(k, -j, l) = &
1653 -q_prim_vf(momxb + 1)%sf(k, j - 1, l + ((p + 1)/2))
1655 q_prim_vf(momxe)%sf(k, -j, l) = &
1656 -q_prim_vf(momxe)%sf(k, j - 1, l + ((p + 1)/2))
1658 do i = e_idx, sys_size
1659 q_prim_vf(i)%sf(k, -j, l) = &
1660 q_prim_vf(i)%sf(k, j - 1, l + ((p + 1)/2))
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))
1681 if (qbmm .and. .not. polytropic)
then
1685 pb_in(k, -j, l, q, i) = &
1686 pb_in(k, j - 1, l - ((p + 1)/2), q, i)
1687 mv_in(k, -j, l, q, i) = &
1688 mv_in(k, j - 1, l - ((p + 1)/2), q, i)
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# 824 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1717# 826 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1718 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
1719 integer,
intent(in) :: bc_dir, bc_loc
1720 integer,
intent(in) :: k, l
1724 if (bc_dir == 1)
then
1725 if (bc_loc == -1)
then
1728 if (i == momxb)
then
1729 q_prim_vf(i)%sf(-j, k, l) = &
1730 -q_prim_vf(i)%sf(j - 1, k, l) + 2._wp*bc_x%vb1
1732 q_prim_vf(i)%sf(-j, k, l) = &
1733 q_prim_vf(i)%sf(0, k, l)
1740 if (i == momxb)
then
1741 q_prim_vf(i)%sf(m + j, k, l) = &
1742 -q_prim_vf(i)%sf(m - (j - 1), k, l) + 2._wp*bc_x%ve1
1744 q_prim_vf(i)%sf(m + j, k, l) = &
1745 q_prim_vf(i)%sf(m, k, l)
1750 elseif (bc_dir == 2)
then
1751 if (bc_loc == -1)
then
1754 if (i == momxb + 1)
then
1755 q_prim_vf(i)%sf(k, -j, l) = &
1756 -q_prim_vf(i)%sf(k, j - 1, l) + 2._wp*bc_y%vb2
1758 q_prim_vf(i)%sf(k, -j, l) = &
1759 q_prim_vf(i)%sf(k, 0, l)
1766 if (i == momxb + 1)
then
1767 q_prim_vf(i)%sf(k, n + j, l) = &
1768 -q_prim_vf(i)%sf(k, n - (j - 1), l) + 2._wp*bc_y%ve2
1770 q_prim_vf(i)%sf(k, n + j, l) = &
1771 q_prim_vf(i)%sf(k, n, l)
1776 elseif (bc_dir == 3)
then
1777 if (bc_loc == -1)
then
1780 if (i == momxe)
then
1781 q_prim_vf(i)%sf(k, l, -j) = &
1782 -q_prim_vf(i)%sf(k, l, j - 1) + 2._wp*bc_z%vb3
1784 q_prim_vf(i)%sf(k, l, -j) = &
1785 q_prim_vf(i)%sf(k, l, 0)
1792 if (i == momxe)
then
1793 q_prim_vf(i)%sf(k, l, p + j) = &
1794 -q_prim_vf(i)%sf(k, l, p - (j - 1)) + 2._wp*bc_z%ve3
1796 q_prim_vf(i)%sf(k, l, p + j) = &
1797 q_prim_vf(i)%sf(k, l, p)
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# 916 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1827# 918 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1829 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
1830 integer,
intent(in) :: bc_dir, bc_loc
1831 integer,
intent(in) :: k, l
1835 if (bc_dir == 1)
then
1836 if (bc_loc == -1)
then
1839 if (i == momxb)
then
1840 q_prim_vf(i)%sf(-j, k, l) = &
1841 -q_prim_vf(i)%sf(j - 1, k, l) + 2._wp*bc_x%vb1
1842 elseif (i == momxb + 1 .and. num_dims > 1)
then
1843 q_prim_vf(i)%sf(-j, k, l) = &
1844 -q_prim_vf(i)%sf(j - 1, k, l) + 2._wp*bc_x%vb2
1845 elseif (i == momxb + 2 .and. num_dims > 2)
then
1846 q_prim_vf(i)%sf(-j, k, l) = &
1847 -q_prim_vf(i)%sf(j - 1, k, l) + 2._wp*bc_x%vb3
1849 q_prim_vf(i)%sf(-j, k, l) = &
1850 q_prim_vf(i)%sf(0, k, l)
1857 if (i == momxb)
then
1858 q_prim_vf(i)%sf(m + j, k, l) = &
1859 -q_prim_vf(i)%sf(m - (j - 1), k, l) + 2._wp*bc_x%ve1
1860 elseif (i == momxb + 1 .and. num_dims > 1)
then
1861 q_prim_vf(i)%sf(m + j, k, l) = &
1862 -q_prim_vf(i)%sf(m - (j - 1), k, l) + 2._wp*bc_x%ve2
1863 elseif (i == momxb + 2 .and. num_dims > 2)
then
1864 q_prim_vf(i)%sf(m + j, k, l) = &
1865 -q_prim_vf(i)%sf(m - (j - 1), k, l) + 2._wp*bc_x%ve3
1867 q_prim_vf(i)%sf(m + j, k, l) = &
1868 q_prim_vf(i)%sf(m, k, l)
1873 elseif (bc_dir == 2)
then
1874 if (bc_loc == -1)
then
1877 if (i == momxb)
then
1878 q_prim_vf(i)%sf(k, -j, l) = &
1879 -q_prim_vf(i)%sf(k, j - 1, l) + 2._wp*bc_y%vb1
1880 elseif (i == momxb + 1 .and. num_dims > 1)
then
1881 q_prim_vf(i)%sf(k, -j, l) = &
1882 -q_prim_vf(i)%sf(k, j - 1, l) + 2._wp*bc_y%vb2
1883 elseif (i == momxb + 2 .and. num_dims > 2)
then
1884 q_prim_vf(i)%sf(k, -j, l) = &
1885 -q_prim_vf(i)%sf(k, j - 1, l) + 2._wp*bc_y%vb3
1887 q_prim_vf(i)%sf(k, -j, l) = &
1888 q_prim_vf(i)%sf(k, 0, l)
1895 if (i == momxb)
then
1896 q_prim_vf(i)%sf(k, n + j, l) = &
1897 -q_prim_vf(i)%sf(k, n - (j - 1), l) + 2._wp*bc_y%ve1
1898 elseif (i == momxb + 1 .and. num_dims > 1)
then
1899 q_prim_vf(i)%sf(k, n + j, l) = &
1900 -q_prim_vf(i)%sf(k, n - (j - 1), l) + 2._wp*bc_y%ve2
1901 elseif (i == momxb + 2 .and. num_dims > 2)
then
1902 q_prim_vf(i)%sf(k, n + j, l) = &
1903 -q_prim_vf(i)%sf(k, n - (j - 1), l) + 2._wp*bc_y%ve3
1905 q_prim_vf(i)%sf(k, n + j, l) = &
1906 q_prim_vf(i)%sf(k, n, l)
1911 elseif (bc_dir == 3)
then
1912 if (bc_loc == -1)
then
1915 if (i == momxb)
then
1916 q_prim_vf(i)%sf(k, l, -j) = &
1917 -q_prim_vf(i)%sf(k, l, j - 1) + 2._wp*bc_z%vb1
1918 elseif (i == momxb + 1 .and. num_dims > 1)
then
1919 q_prim_vf(i)%sf(k, l, -j) = &
1920 -q_prim_vf(i)%sf(k, l, j - 1) + 2._wp*bc_z%vb2
1921 elseif (i == momxb + 2 .and. num_dims > 2)
then
1922 q_prim_vf(i)%sf(k, l, -j) = &
1923 -q_prim_vf(i)%sf(k, l, j - 1) + 2._wp*bc_z%vb3
1925 q_prim_vf(i)%sf(k, l, -j) = &
1926 q_prim_vf(i)%sf(k, l, 0)
1933 if (i == momxb)
then
1934 q_prim_vf(i)%sf(k, l, p + j) = &
1935 -q_prim_vf(i)%sf(k, l, p - (j - 1)) + 2._wp*bc_z%ve1
1936 elseif (i == momxb + 1 .and. num_dims > 1)
then
1937 q_prim_vf(i)%sf(k, l, p + j) = &
1938 -q_prim_vf(i)%sf(k, l, p - (j - 1)) + 2._wp*bc_z%ve2
1939 elseif (i == momxb + 2 .and. num_dims > 2)
then
1940 q_prim_vf(i)%sf(k, l, p + j) = &
1941 -q_prim_vf(i)%sf(k, l, p - (j - 1)) + 2._wp*bc_z%ve3
1943 q_prim_vf(i)%sf(k, l, p + j) = &
1944 q_prim_vf(i)%sf(k, l, p)
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# 1115 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2058 real(stp),
optional,
dimension(idwbuff(1)%beg:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:, 1:),
intent(inout) :: pb_in, mv_in
2059 integer,
intent(in) :: bc_dir, bc_loc
2060 integer,
intent(in) :: k, l
2064 if (bc_dir == 1)
then
2065 if (bc_loc == -1)
then
2069 pb_in(-j, k, l, q, i) = pb_in(0, k, l, q, i)
2070 mv_in(-j, k, l, q, i) = mv_in(0, k, l, q, i)
2078 pb_in(m + j, k, l, q, i) = pb_in(m, k, l, q, i)
2079 mv_in(m + j, k, l, q, i) = mv_in(m, k, l, q, i)
2084 elseif (bc_dir == 2)
then
2085 if (bc_loc == -1)
then
2089 pb_in(k, -j, l, q, i) = pb_in(k, 0, l, q, i)
2090 mv_in(k, -j, l, q, i) = mv_in(k, 0, l, q, i)
2098 pb_in(k, n + j, l, q, i) = pb_in(k, n, l, q, i)
2099 mv_in(k, n + j, l, q, i) = mv_in(k, n, l, q, i)
2104 elseif (bc_dir == 3)
then
2105 if (bc_loc == -1)
then
2109 pb_in(k, l, -j, q, i) = pb_in(k, l, 0, q, i)
2110 mv_in(k, l, -j, q, i) = mv_in(k, l, 0, q, i)
2118 pb_in(k, l, p + j, q, i) = pb_in(k, l, p, q, i)
2119 mv_in(k, l, p + j, q, i) = mv_in(k, l, p, q, i)
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# 1380 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2587# 1382 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2588 type(scalar_field),
dimension(num_dims + 1),
intent(inout) :: c_divs
2589 integer,
intent(in) :: bc_dir, bc_loc
2590 integer,
intent(in) :: k, l
2594 if (bc_dir == 1)
then
2595 if (bc_loc == -1)
then
2596 do i = 1, num_dims + 1
2598 if (i == bc_dir)
then
2599 c_divs(i)%sf(-j, k, l) = -c_divs(i)%sf(j - 1, k, l)
2601 c_divs(i)%sf(-j, k, l) = c_divs(i)%sf(j - 1, k, l)
2606 do i = 1, num_dims + 1
2608 if (i == bc_dir)
then
2609 c_divs(i)%sf(m + j, k, l) = -c_divs(i)%sf(m - (j - 1), k, l)
2611 c_divs(i)%sf(m + j, k, l) = c_divs(i)%sf(m - (j - 1), k, l)
2616 elseif (bc_dir == 2)
then
2617 if (bc_loc == -1)
then
2618 do i = 1, num_dims + 1
2620 if (i == bc_dir)
then
2621 c_divs(i)%sf(k, -j, l) = -c_divs(i)%sf(k, j - 1, l)
2623 c_divs(i)%sf(k, -j, l) = c_divs(i)%sf(k, j - 1, l)
2628 do i = 1, num_dims + 1
2630 if (i == bc_dir)
then
2631 c_divs(i)%sf(k, n + j, l) = -c_divs(i)%sf(k, n - (j - 1), l)
2633 c_divs(i)%sf(k, n + j, l) = c_divs(i)%sf(k, n - (j - 1), l)
2638 elseif (bc_dir == 3)
then
2639 if (bc_loc == -1)
then
2640 do i = 1, num_dims + 1
2642 if (i == bc_dir)
then
2643 c_divs(i)%sf(k, l, -j) = -c_divs(i)%sf(k, l, j - 1)
2645 c_divs(i)%sf(k, l, -j) = c_divs(i)%sf(k, l, j - 1)
2650 do i = 1, num_dims + 1
2652 if (i == bc_dir)
then
2653 c_divs(i)%sf(k, l, p + j) = -c_divs(i)%sf(k, l, p - (j - 1))
2655 c_divs(i)%sf(k, l, p + j) = c_divs(i)%sf(k, l, p - (j - 1))
3546#ifdef MFC_SIMULATION
3548 type(int_bounds_info) :: offset_x, offset_y, offset_z
3549 offset_x%beg = buff_size; offset_x%end = buff_size
3550 offset_y%beg = buff_size; offset_y%end = buff_size
3551 offset_z%beg = buff_size; offset_z%end = buff_size
3554#ifndef MFC_PRE_PROCESS
3558 if (bc_x%beg >= 0)
then
3559 call s_mpi_sendrecv_grid_variables_buffers(1, -1)
3560 elseif (bc_x%beg <= bc_ghost_extrap)
then
3564 elseif (bc_x%beg == bc_reflective)
then
3568 elseif (bc_x%beg == bc_periodic)
then
3570 dx(-i) = dx(m - (i - 1))
3575 do i = 1, offset_x%beg
3576 x_cb(-1 - i) = x_cb(-i) - dx(-i)
3580 x_cc(-i) = x_cc(1 - i) - (dx(1 - i) + dx(-i))/2._wp
3584 if (bc_x%end >= 0)
then
3585 call s_mpi_sendrecv_grid_variables_buffers(1, 1)
3586 elseif (bc_x%end <= bc_ghost_extrap)
then
3590 elseif (bc_x%end == bc_reflective)
then
3592 dx(m + i) = dx(m - (i - 1))
3594 elseif (bc_x%end == bc_periodic)
then
3596 dx(m + i) = dx(i - 1)
3601 do i = 1, offset_x%end
3602 x_cb(m + i) = x_cb(m + (i - 1)) + dx(m + i)
3606 x_cc(m + i) = x_cc(m + (i - 1)) + (dx(m + (i - 1)) + dx(m + i))/2._wp
3615 elseif (bc_y%beg >= 0)
then
3616 call s_mpi_sendrecv_grid_variables_buffers(2, -1)
3617 elseif (bc_y%beg <= bc_ghost_extrap .and. bc_y%beg /= bc_axis)
then
3621 elseif (bc_y%beg == bc_reflective .or. bc_y%beg == bc_axis)
then
3625 elseif (bc_y%beg == bc_periodic)
then
3627 dy(-i) = dy(n - (i - 1))
3632 do i = 1, offset_y%beg
3633 y_cb(-1 - i) = y_cb(-i) - dy(-i)
3637 y_cc(-i) = y_cc(1 - i) - (dy(1 - i) + dy(-i))/2._wp
3641 if (bc_y%end >= 0)
then
3642 call s_mpi_sendrecv_grid_variables_buffers(2, 1)
3643 elseif (bc_y%end <= bc_ghost_extrap)
then
3647 elseif (bc_y%end == bc_reflective)
then
3649 dy(n + i) = dy(n - (i - 1))
3651 elseif (bc_y%end == bc_periodic)
then
3653 dy(n + i) = dy(i - 1)
3658 do i = 1, offset_y%end
3659 y_cb(n + i) = y_cb(n + (i - 1)) + dy(n + i)
3663 y_cc(n + i) = y_cc(n + (i - 1)) + (dy(n + (i - 1)) + dy(n + i))/2._wp
3672 elseif (bc_z%beg >= 0)
then
3673 call s_mpi_sendrecv_grid_variables_buffers(3, -1)
3674 elseif (bc_z%beg <= bc_ghost_extrap)
then
3678 elseif (bc_z%beg == bc_reflective)
then
3682 elseif (bc_z%beg == bc_periodic)
then
3684 dz(-i) = dz(p - (i - 1))
3689 do i = 1, offset_z%beg
3690 z_cb(-1 - i) = z_cb(-i) - dz(-i)
3694 z_cc(-i) = z_cc(1 - i) - (dz(1 - i) + dz(-i))/2._wp
3698 if (bc_z%end >= 0)
then
3699 call s_mpi_sendrecv_grid_variables_buffers(3, 1)
3700 elseif (bc_z%end <= bc_ghost_extrap)
then
3704 elseif (bc_z%end == bc_reflective)
then
3706 dz(p + i) = dz(p - (i - 1))
3708 elseif (bc_z%end == bc_periodic)
then
3710 dz(p + i) = dz(i - 1)
3715 do i = 1, offset_z%end
3716 z_cb(p + i) = z_cb(p + (i - 1)) + dz(p + i)
3720 z_cc(p + i) = z_cc(p + (i - 1)) + (dz(p + (i - 1)) + dz(p + i))/2._wp