686 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
687 real(stp),
optional,
dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:,1:),
intent(inout) :: pb_in, mv_in
688 type(integer_field),
dimension(1:num_dims,1:2),
intent(in) :: bc_type
690 type(scalar_field),
optional,
intent(inout) :: q_t_sf
694 if (bc_x%beg >= 0)
then
695 call s_mpi_sendrecv_variables_buffers(q_prim_vf, 1, -1, sys_size, pb_in, mv_in, q_t_sf)
698# 90 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
700# 90 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
701#if defined(MFC_OpenACC)
702# 90 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
704# 90 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
705#elif defined(MFC_OpenMP)
706# 90 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
708# 90 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
710# 90 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
712# 90 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
714# 90 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
718 select case (int(bc_type(1, 1)%sf(0,
k,
l)))
719 case (bc_char_sup_outflow:bc_ghost_extrap)
722 call s_symmetry(q_prim_vf, 1, -1,
k,
l, pb_in, mv_in, q_t_sf)
724 call s_periodic(q_prim_vf, 1, -1,
k,
l, pb_in, mv_in, q_t_sf)
727 case (bc_no_slip_wall)
733 if (qbmm .and. (.not. polytropic) .and.
present(pb_in) .and.
present(mv_in) .and. (bc_type(1, 1)%sf(0,
k, &
734 &
l) <= bc_ghost_extrap))
then
740# 114 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
741#if defined(MFC_OpenACC)
742# 114 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
744# 114 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
745#elif defined(MFC_OpenMP)
746# 114 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
748# 114 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
750# 114 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
754 if (bc_x%end >= 0)
then
755 call s_mpi_sendrecv_variables_buffers(q_prim_vf, 1, 1, sys_size, pb_in, mv_in, q_t_sf)
758# 120 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
760# 120 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
761#if defined(MFC_OpenACC)
762# 120 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
764# 120 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
765#elif defined(MFC_OpenMP)
766# 120 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
768# 120 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
770# 120 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
772# 120 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
774# 120 "/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)
782 call s_symmetry(q_prim_vf, 1, 1,
k,
l, pb_in, mv_in, q_t_sf)
784 call s_periodic(q_prim_vf, 1, 1,
k,
l, pb_in, mv_in, q_t_sf)
787 case (bc_no_slip_wall)
793 if (qbmm .and. (.not. polytropic) .and.
present(pb_in) .and.
present(mv_in) .and. (bc_type(1, 2)%sf(0,
k, &
794 &
l) <= bc_ghost_extrap))
then
800# 144 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
801#if defined(MFC_OpenACC)
802# 144 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
804# 144 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
805#elif defined(MFC_OpenMP)
806# 144 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
808# 144 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
810# 144 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
818# 152 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
819 if (bc_y%beg >= 0)
then
820 call s_mpi_sendrecv_variables_buffers(q_prim_vf, 2, -1, sys_size, pb_in, mv_in, q_t_sf)
823# 155 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
825# 155 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
826#if defined(MFC_OpenACC)
827# 155 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
829# 155 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
830#elif defined(MFC_OpenMP)
831# 155 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
833# 155 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
835# 155 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
837# 155 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
839# 155 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
842 do k = -buff_size, m + buff_size
843 select case (int(bc_type(2, 1)%sf(
k, 0,
l)))
844 case (bc_char_sup_outflow:bc_ghost_extrap)
847 call s_axis(q_prim_vf, pb_in, mv_in,
k,
l)
849 call s_symmetry(q_prim_vf, 2, -1,
k,
l, pb_in, mv_in, q_t_sf)
851 call s_periodic(q_prim_vf, 2, -1,
k,
l, pb_in, mv_in, q_t_sf)
854 case (bc_no_slip_wall)
860 if (qbmm .and. (.not. polytropic) .and.
present(pb_in) .and.
present(mv_in) .and. (bc_type(2, 1)%sf(
k, 0, &
861 &
l) <= bc_ghost_extrap) .and. (bc_type(2, 1)%sf(
k, 0,
l) /= bc_axis))
then
867# 181 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
868#if defined(MFC_OpenACC)
869# 181 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
871# 181 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
872#elif defined(MFC_OpenMP)
873# 181 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
875# 181 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
877# 181 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
881 if (bc_y%end >= 0)
then
882 call s_mpi_sendrecv_variables_buffers(q_prim_vf, 2, 1, sys_size, pb_in, mv_in, q_t_sf)
885# 187 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
887# 187 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
888#if defined(MFC_OpenACC)
889# 187 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
891# 187 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
892#elif defined(MFC_OpenMP)
893# 187 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
895# 187 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
897# 187 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
899# 187 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
901# 187 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
904 do k = -buff_size, m + buff_size
905 select case (int(bc_type(2, 2)%sf(
k, 0,
l)))
906 case (bc_char_sup_outflow:bc_ghost_extrap)
909 call s_symmetry(q_prim_vf, 2, 1,
k,
l, pb_in, mv_in, q_t_sf)
911 call s_periodic(q_prim_vf, 2, 1,
k,
l, pb_in, mv_in, q_t_sf)
914 case (bc_no_slip_wall)
920 if (qbmm .and. (.not. polytropic) .and.
present(pb_in) .and.
present(mv_in) .and. (bc_type(2, 2)%sf(
k, 0, &
921 &
l) <= bc_ghost_extrap))
then
927# 211 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
928#if defined(MFC_OpenACC)
929# 211 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
931# 211 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
932#elif defined(MFC_OpenMP)
933# 211 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
935# 211 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
937# 211 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
940# 214 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
946# 220 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
947 if (bc_z%beg >= 0)
then
948 call s_mpi_sendrecv_variables_buffers(q_prim_vf, 3, -1, sys_size, pb_in, mv_in, q_t_sf)
951# 223 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
953# 223 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
954#if defined(MFC_OpenACC)
955# 223 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
957# 223 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
958#elif defined(MFC_OpenMP)
959# 223 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
961# 223 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
963# 223 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
965# 223 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
967# 223 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
969 do l = -buff_size, n + buff_size
970 do k = -buff_size, m + buff_size
971 select case (int(bc_type(3, 1)%sf(
k,
l, 0)))
972 case (bc_char_sup_outflow:bc_ghost_extrap)
975 call s_symmetry(q_prim_vf, 3, -1,
k,
l, pb_in, mv_in, q_t_sf)
977 call s_periodic(q_prim_vf, 3, -1,
k,
l, pb_in, mv_in, q_t_sf)
980 case (bc_no_slip_wall)
986 if (qbmm .and. (.not. polytropic) .and.
present(pb_in) .and.
present(mv_in) .and. (bc_type(3, 1)%sf(
k,
l, &
987 & 0) <= bc_ghost_extrap))
then
993# 247 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
994#if defined(MFC_OpenACC)
995# 247 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
997# 247 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
998#elif defined(MFC_OpenMP)
999# 247 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1001# 247 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1003# 247 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1007 if (bc_z%end >= 0)
then
1008 call s_mpi_sendrecv_variables_buffers(q_prim_vf, 3, 1, sys_size, pb_in, mv_in, q_t_sf)
1011# 253 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1013# 253 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1014#if defined(MFC_OpenACC)
1015# 253 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1017# 253 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1018#elif defined(MFC_OpenMP)
1019# 253 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1021# 253 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1023# 253 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1025# 253 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1027# 253 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1029 do l = -buff_size, n + buff_size
1030 do k = -buff_size, m + buff_size
1031 select case (int(bc_type(3, 2)%sf(
k,
l, 0)))
1032 case (bc_char_sup_outflow:bc_ghost_extrap)
1034 case (bc_reflective)
1035 call s_symmetry(q_prim_vf, 3, 1,
k,
l, pb_in, mv_in, q_t_sf)
1037 call s_periodic(q_prim_vf, 3, 1,
k,
l, pb_in, mv_in, q_t_sf)
1040 case (bc_no_slip_wall)
1046 if (qbmm .and. (.not. polytropic) .and.
present(pb_in) .and.
present(mv_in) .and. (bc_type(3, 2)%sf(
k,
l, &
1047 & 0) <= bc_ghost_extrap))
then
1053# 277 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1054#if defined(MFC_OpenACC)
1055# 277 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1057# 277 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1058#elif defined(MFC_OpenMP)
1059# 277 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1061# 277 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1063# 277 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1066# 280 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1074# 286 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1076# 286 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1078# 286 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1080# 286 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1082# 286 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1084# 286 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1086# 286 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1088# 286 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1090# 286 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1092# 286 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1094# 286 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1096# 286 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1098# 286 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1100# 286 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1102# 286 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1104# 286 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1106# 286 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1108 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
1109 integer,
intent(in) :: bc_dir, bc_loc
1110 integer,
intent(in) :: k, l
1112 type(scalar_field),
optional,
intent(inout) :: q_T_sf
1114 if (bc_dir == 1)
then
1115 if (bc_loc == -1)
then
1118 q_prim_vf(i)%sf(-j, k, l) = q_prim_vf(i)%sf(0, k, l)
1121 if (chemistry .and.
present(q_t_sf))
then
1123 q_t_sf%sf(-j, k, l) = q_t_sf%sf(0, k, l)
1129 q_prim_vf(i)%sf(m + j, k, l) = q_prim_vf(i)%sf(m, k, l)
1132 if (chemistry .and.
present(q_t_sf))
then
1134 q_t_sf%sf(m + j, k, l) = q_t_sf%sf(m, k, l)
1138 else if (bc_dir == 2)
then
1139 if (bc_loc == -1)
then
1142 q_prim_vf(i)%sf(k, -j, l) = q_prim_vf(i)%sf(k, 0, l)
1146 if (chemistry .and.
present(q_t_sf))
then
1148 q_t_sf%sf(k, -j, l) = q_t_sf%sf(k, 0, l)
1154 q_prim_vf(i)%sf(k, n + j, l) = q_prim_vf(i)%sf(k, n, l)
1157 if (chemistry .and.
present(q_t_sf))
then
1159 q_t_sf%sf(k, n + j, l) = q_t_sf%sf(k, n, l)
1163 else if (bc_dir == 3)
then
1164 if (bc_loc == -1)
then
1167 q_prim_vf(i)%sf(k, l, -j) = q_prim_vf(i)%sf(k, l, 0)
1170 if (chemistry .and.
present(q_t_sf))
then
1172 q_t_sf%sf(k, l, -j) = q_t_sf%sf(k, l, 0)
1178 q_prim_vf(i)%sf(k, l, p + j) = q_prim_vf(i)%sf(k, l, p)
1181 if (chemistry .and.
present(q_t_sf))
then
1183 q_t_sf%sf(k, l, p + j) = q_t_sf%sf(k, l, p)
1192 subroutine s_symmetry(q_prim_vf, bc_dir, bc_loc, k, l, pb_in, mv_in, q_T_sf)
1195# 373 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1197# 373 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1199# 373 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1201# 373 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1203# 373 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1205# 373 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1207# 373 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1209 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
1210 real(stp),
optional,
dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:,1:),
intent(inout) :: pb_in, mv_in
1211 integer,
intent(in) :: bc_dir, bc_loc
1212 integer,
intent(in) :: k, l
1214 type(scalar_field),
optional,
intent(inout) :: q_T_sf
1216 if (bc_dir == 1)
then
1217 if (bc_loc == -1)
then
1219 do i = 1, eqn_idx%cont%end
1220 q_prim_vf(i)%sf(-j, k, l) = q_prim_vf(i)%sf(j - 1, k, l)
1223 q_prim_vf(eqn_idx%mom%beg)%sf(-j, k, l) = -q_prim_vf(eqn_idx%mom%beg)%sf(j - 1, k, l)
1225 do i = eqn_idx%mom%beg + 1, sys_size
1226 q_prim_vf(i)%sf(-j, k, l) = q_prim_vf(i)%sf(j - 1, k, l)
1229 if (chemistry .and.
present(q_t_sf))
then
1230 q_t_sf%sf(-j, k, l) = q_t_sf%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) = -q_prim_vf(shear_bc_flip_indices(1, &
1236 & i))%sf(j - 1, k, l)
1240 if (hyperelasticity)
then
1241 q_prim_vf(eqn_idx%xi%beg)%sf(-j, k, l) = -q_prim_vf(eqn_idx%xi%beg)%sf(j - 1, k, l)
1245 if (qbmm .and. .not. polytropic .and.
present(pb_in) .and.
present(mv_in))
then
1249 pb_in(-j, k, l, q, i) = pb_in(j - 1, k, l, q, i)
1250 mv_in(-j, k, l, q, i) = mv_in(j - 1, k, l, q, i)
1257 do i = 1, eqn_idx%cont%end
1258 q_prim_vf(i)%sf(m + j, k, l) = q_prim_vf(i)%sf(m - (j - 1), k, l)
1261 q_prim_vf(eqn_idx%mom%beg)%sf(m + j, k, l) = -q_prim_vf(eqn_idx%mom%beg)%sf(m - (j - 1), k, l)
1263 do i = eqn_idx%mom%beg + 1, sys_size
1264 q_prim_vf(i)%sf(m + j, k, l) = q_prim_vf(i)%sf(m - (j - 1), k, l)
1267 if (chemistry .and.
present(q_t_sf))
then
1268 q_t_sf%sf(m + j, k, l) = q_t_sf%sf(m - (j - 1), k, l)
1271 if (elasticity)
then
1272 do i = 1, shear_bc_flip_num
1273 q_prim_vf(shear_bc_flip_indices(1, i))%sf(m + j, k, l) = -q_prim_vf(shear_bc_flip_indices(1, &
1274 & i))%sf(m - (j - 1), k, l)
1278 if (hyperelasticity)
then
1279 q_prim_vf(eqn_idx%xi%beg)%sf(m + j, k, l) = -q_prim_vf(eqn_idx%xi%beg)%sf(m - (j - 1), k, l)
1282 if (qbmm .and. .not. polytropic .and.
present(pb_in) .and.
present(mv_in))
then
1286 pb_in(m + j, k, l, q, i) = pb_in(m - (j - 1), k, l, q, i)
1287 mv_in(m + j, k, l, q, i) = mv_in(m - (j - 1), k, l, q, i)
1293 else if (bc_dir == 2)
then
1294 if (bc_loc == -1)
then
1296 do i = 1, eqn_idx%mom%beg
1297 q_prim_vf(i)%sf(k, -j, l) = q_prim_vf(i)%sf(k, j - 1, l)
1300 q_prim_vf(eqn_idx%mom%beg + 1)%sf(k, -j, l) = -q_prim_vf(eqn_idx%mom%beg + 1)%sf(k, j - 1, l)
1302 do i = eqn_idx%mom%beg + 2, sys_size
1303 q_prim_vf(i)%sf(k, -j, l) = q_prim_vf(i)%sf(k, j - 1, l)
1306 if (chemistry .and.
present(q_t_sf))
then
1307 q_t_sf%sf(k, -j, l) = q_t_sf%sf(k, j - 1, l)
1310 if (elasticity)
then
1311 do i = 1, shear_bc_flip_num
1312 q_prim_vf(shear_bc_flip_indices(2, i))%sf(k, -j, l) = -q_prim_vf(shear_bc_flip_indices(2, i))%sf(k, &
1317 if (hyperelasticity)
then
1318 q_prim_vf(eqn_idx%xi%beg + 1)%sf(k, -j, l) = -q_prim_vf(eqn_idx%xi%beg + 1)%sf(k, j - 1, l)
1322 if (qbmm .and. .not. polytropic .and.
present(pb_in) .and.
present(mv_in))
then
1326 pb_in(k, -j, l, q, i) = pb_in(k, j - 1, l, q, i)
1327 mv_in(k, -j, l, q, i) = mv_in(k, j - 1, l, q, i)
1334 do i = 1, eqn_idx%mom%beg
1335 q_prim_vf(i)%sf(k, n + j, l) = q_prim_vf(i)%sf(k, n - (j - 1), l)
1338 q_prim_vf(eqn_idx%mom%beg + 1)%sf(k, n + j, l) = -q_prim_vf(eqn_idx%mom%beg + 1)%sf(k, n - (j - 1), l)
1340 do i = eqn_idx%mom%beg + 2, sys_size
1341 q_prim_vf(i)%sf(k, n + j, l) = q_prim_vf(i)%sf(k, n - (j - 1), l)
1344 if (chemistry .and.
present(q_t_sf))
then
1345 q_t_sf%sf(k, n + j, l) = q_t_sf%sf(k, n - (j - 1), l)
1348 if (elasticity)
then
1349 do i = 1, shear_bc_flip_num
1350 q_prim_vf(shear_bc_flip_indices(2, i))%sf(k, n + j, l) = -q_prim_vf(shear_bc_flip_indices(2, &
1351 & i))%sf(k, n - (j - 1), l)
1355 if (hyperelasticity)
then
1356 q_prim_vf(eqn_idx%xi%beg + 1)%sf(k, n + j, l) = -q_prim_vf(eqn_idx%xi%beg + 1)%sf(k, n - (j - 1), l)
1360 if (qbmm .and. .not. polytropic .and.
present(pb_in) .and.
present(mv_in))
then
1364 pb_in(k, n + j, l, q, i) = pb_in(k, n - (j - 1), l, q, i)
1365 mv_in(k, n + j, l, q, i) = mv_in(k, n - (j - 1), l, q, i)
1371 else if (bc_dir == 3)
then
1372 if (bc_loc == -1)
then
1374 do i = 1, eqn_idx%mom%beg + 1
1375 q_prim_vf(i)%sf(k, l, -j) = q_prim_vf(i)%sf(k, l, j - 1)
1378 q_prim_vf(eqn_idx%mom%end)%sf(k, l, -j) = -q_prim_vf(eqn_idx%mom%end)%sf(k, l, j - 1)
1380 do i = eqn_idx%E, sys_size
1381 q_prim_vf(i)%sf(k, l, -j) = q_prim_vf(i)%sf(k, l, j - 1)
1384 if (chemistry .and.
present(q_t_sf))
then
1385 q_t_sf%sf(k, l, -j) = q_t_sf%sf(k, l, j - 1)
1388 if (elasticity)
then
1389 do i = 1, shear_bc_flip_num
1390 q_prim_vf(shear_bc_flip_indices(3, i))%sf(k, l, -j) = -q_prim_vf(shear_bc_flip_indices(3, i))%sf(k, &
1395 if (hyperelasticity)
then
1396 q_prim_vf(eqn_idx%xi%end)%sf(k, l, -j) = -q_prim_vf(eqn_idx%xi%end)%sf(k, l, j - 1)
1400 if (qbmm .and. .not. polytropic .and.
present(pb_in) .and.
present(mv_in))
then
1404 pb_in(k, l, -j, q, i) = pb_in(k, l, j - 1, q, i)
1405 mv_in(k, l, -j, q, i) = mv_in(k, l, j - 1, q, i)
1412 do i = 1, eqn_idx%mom%beg + 1
1413 q_prim_vf(i)%sf(k, l, p + j) = q_prim_vf(i)%sf(k, l, p - (j - 1))
1416 q_prim_vf(eqn_idx%mom%end)%sf(k, l, p + j) = -q_prim_vf(eqn_idx%mom%end)%sf(k, l, p - (j - 1))
1418 do i = eqn_idx%E, sys_size
1419 q_prim_vf(i)%sf(k, l, p + j) = q_prim_vf(i)%sf(k, l, p - (j - 1))
1422 if (chemistry .and.
present(q_t_sf))
then
1423 q_t_sf%sf(k, l, p + j) = q_t_sf%sf(k, l, p - (j - 1))
1426 if (elasticity)
then
1427 do i = 1, shear_bc_flip_num
1428 q_prim_vf(shear_bc_flip_indices(3, i))%sf(k, l, p + j) = -q_prim_vf(shear_bc_flip_indices(3, &
1429 & i))%sf(k, l, p - (j - 1))
1433 if (hyperelasticity)
then
1434 q_prim_vf(eqn_idx%xi%end)%sf(k, l, p + j) = -q_prim_vf(eqn_idx%xi%end)%sf(k, l, p - (j - 1))
1438 if (qbmm .and. .not. polytropic .and.
present(pb_in) .and.
present(mv_in))
then
1442 pb_in(k, l, p + j, q, i) = pb_in(k, l, p - (j - 1), q, i)
1443 mv_in(k, l, p + j, q, i) = mv_in(k, l, p - (j - 1), q, i)
1454 subroutine s_periodic(q_prim_vf, bc_dir, bc_loc, k, l, pb_in, mv_in, q_T_sf)
1457# 621 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1459# 621 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1461# 621 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1463# 621 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1465# 621 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1467# 621 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1469# 621 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1471 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
1472 real(stp),
optional,
dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:,1:),
intent(inout) :: pb_in, mv_in
1473 integer,
intent(in) :: bc_dir, bc_loc
1474 integer,
intent(in) :: k, l
1476 type(scalar_field),
optional,
intent(inout) :: q_T_sf
1478 if (bc_dir == 1)
then
1479 if (bc_loc == -1)
then
1482 q_prim_vf(i)%sf(-j, k, l) = q_prim_vf(i)%sf(m - (j - 1), k, l)
1486 if (chemistry .and.
present(q_t_sf))
then
1488 q_t_sf%sf(-j, k, l) = q_t_sf%sf(m - (j - 1), k, l)
1492 if (qbmm .and. .not. polytropic .and.
present(pb_in) .and.
present(mv_in))
then
1496 pb_in(-j, k, l, q, i) = pb_in(m - (j - 1), k, l, q, i)
1497 mv_in(-j, k, l, q, i) = mv_in(m - (j - 1), k, l, q, i)
1505 q_prim_vf(i)%sf(m + j, k, l) = q_prim_vf(i)%sf(j - 1, k, l)
1509 if (chemistry .and.
present(q_t_sf))
then
1511 q_t_sf%sf(m + j, k, l) = q_t_sf%sf(j - 1, k, l)
1515 if (qbmm .and. .not. polytropic .and.
present(pb_in) .and.
present(mv_in))
then
1519 pb_in(m + j, k, l, q, i) = pb_in(j - 1, k, l, q, i)
1520 mv_in(m + j, k, l, q, i) = mv_in(j - 1, k, l, q, i)
1526 else if (bc_dir == 2)
then
1527 if (bc_loc == -1)
then
1530 q_prim_vf(i)%sf(k, -j, l) = q_prim_vf(i)%sf(k, n - (j - 1), l)
1534 if (chemistry .and.
present(q_t_sf))
then
1536 q_t_sf%sf(k, -j, l) = q_t_sf%sf(k, n - (j - 1), l)
1540 if (qbmm .and. .not. polytropic .and.
present(pb_in) .and.
present(mv_in))
then
1544 pb_in(k, -j, l, q, i) = pb_in(k, n - (j - 1), l, q, i)
1545 mv_in(k, -j, l, q, i) = mv_in(k, n - (j - 1), l, q, i)
1553 q_prim_vf(i)%sf(k, n + j, l) = q_prim_vf(i)%sf(k, j - 1, l)
1557 if (chemistry .and.
present(q_t_sf))
then
1559 q_t_sf%sf(k, n + j, l) = q_t_sf%sf(k, j - 1, l)
1563 if (qbmm .and. .not. polytropic .and.
present(pb_in) .and.
present(mv_in))
then
1567 pb_in(k, n + j, l, q, i) = pb_in(k, (j - 1), l, q, i)
1568 mv_in(k, n + j, l, q, i) = mv_in(k, (j - 1), l, q, i)
1574 else if (bc_dir == 3)
then
1575 if (bc_loc == -1)
then
1578 q_prim_vf(i)%sf(k, l, -j) = q_prim_vf(i)%sf(k, l, p - (j - 1))
1582 if (chemistry .and.
present(q_t_sf))
then
1584 q_t_sf%sf(k, l, -j) = q_t_sf%sf(k, l, p - (j - 1))
1588 if (qbmm .and. .not. polytropic .and.
present(pb_in) .and.
present(mv_in))
then
1592 pb_in(k, l, -j, q, i) = pb_in(k, l, p - (j - 1), q, i)
1593 mv_in(k, l, -j, q, i) = mv_in(k, l, p - (j - 1), q, i)
1601 q_prim_vf(i)%sf(k, l, p + j) = q_prim_vf(i)%sf(k, l, j - 1)
1605 if (chemistry .and.
present(q_t_sf))
then
1607 q_t_sf%sf(k, l, p + j) = q_t_sf%sf(k, l, j - 1)
1611 if (qbmm .and. .not. polytropic .and.
present(pb_in) .and.
present(mv_in))
then
1615 pb_in(k, l, p + j, q, i) = pb_in(k, l, j - 1, q, i)
1616 mv_in(k, l, p + j, q, i) = mv_in(k, l, j - 1, q, i)
1627 subroutine s_axis(q_prim_vf, pb_in, mv_in, k, l)
1630# 780 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1632# 780 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1634# 780 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1636# 780 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1638# 780 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1640# 780 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1642# 780 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1644 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
1645 real(stp),
dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:,1:),
optional,
intent(inout) :: pb_in, mv_in
1646 integer,
intent(in) :: k, l
1650 if (z_cc(l) < pi)
then
1651 do i = 1, eqn_idx%mom%beg
1652 q_prim_vf(i)%sf(k, -j, l) = q_prim_vf(i)%sf(k, j - 1, l + ((p + 1)/2))
1655 q_prim_vf(eqn_idx%mom%beg + 1)%sf(k, -j, l) = -q_prim_vf(eqn_idx%mom%beg + 1)%sf(k, j - 1, l + ((p + 1)/2))
1657 q_prim_vf(eqn_idx%mom%end)%sf(k, -j, l) = -q_prim_vf(eqn_idx%mom%end)%sf(k, j - 1, l + ((p + 1)/2))
1659 do i = eqn_idx%E, sys_size
1660 q_prim_vf(i)%sf(k, -j, l) = q_prim_vf(i)%sf(k, j - 1, l + ((p + 1)/2))
1663 do i = 1, eqn_idx%mom%beg
1664 q_prim_vf(i)%sf(k, -j, l) = q_prim_vf(i)%sf(k, j - 1, l - ((p + 1)/2))
1667 q_prim_vf(eqn_idx%mom%beg + 1)%sf(k, -j, l) = -q_prim_vf(eqn_idx%mom%beg + 1)%sf(k, j - 1, l - ((p + 1)/2))
1669 q_prim_vf(eqn_idx%mom%end)%sf(k, -j, l) = -q_prim_vf(eqn_idx%mom%end)%sf(k, j - 1, l - ((p + 1)/2))
1671 do i = eqn_idx%E, sys_size
1672 q_prim_vf(i)%sf(k, -j, l) = q_prim_vf(i)%sf(k, j - 1, l - ((p + 1)/2))
1677 if (qbmm .and. .not. polytropic .and.
present(pb_in) .and.
present(mv_in))
then
1681 if (z_cc(l) < pi)
then
1682 pb_in(k, -j, l, q, i) = pb_in(k, j - 1, l + ((p + 1)/2), q, i)
1683 mv_in(k, -j, l, q, i) = mv_in(k, j - 1, l + ((p + 1)/2), q, i)
1685 pb_in(k, -j, l, q, i) = pb_in(k, j - 1, l - ((p + 1)/2), q, i)
1686 mv_in(k, -j, l, q, i) = mv_in(k, j - 1, l - ((p + 1)/2), q, i)
1699# 835 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1701# 835 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1703# 835 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1705# 835 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1707# 835 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1709# 835 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1711# 835 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1713# 835 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1715# 835 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1717# 835 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1719# 835 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1721# 835 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1723# 835 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1725# 835 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1727# 835 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1729# 835 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1731# 835 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1733 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
1734 integer,
intent(in) :: bc_dir, bc_loc
1735 integer,
intent(in) :: k, l
1737 type(scalar_field),
optional,
intent(inout) :: q_T_sf
1739 if (bc_dir == 1)
then
1740 if (bc_loc == -1)
then
1743 if (i == eqn_idx%mom%beg)
then
1744 q_prim_vf(i)%sf(-j, k, l) = -q_prim_vf(i)%sf(j - 1, k, l) + 2._wp*bc_x%vb1
1746 q_prim_vf(i)%sf(-j, k, l) = q_prim_vf(i)%sf(0, k, l)
1751 if (chemistry .and.
present(q_t_sf))
then
1752 if (bc_x%isothermal_in)
then
1754 q_t_sf%sf(-j, k, l) = 2._wp*bc_x%Twall_in - q_t_sf%sf(j - 1, k, l)
1758 q_t_sf%sf(-j, k, l) = q_t_sf%sf(0, k, l)
1765 if (i == eqn_idx%mom%beg)
then
1766 q_prim_vf(i)%sf(m + j, k, l) = -q_prim_vf(i)%sf(m - (j - 1), k, l) + 2._wp*bc_x%ve1
1768 q_prim_vf(i)%sf(m + j, k, l) = q_prim_vf(i)%sf(m, k, l)
1773 if (chemistry .and.
present(q_t_sf))
then
1774 if (bc_x%isothermal_out)
then
1776 q_t_sf%sf(m + j, k, l) = 2._wp*bc_x%Twall_out - q_t_sf%sf(m - (j - 1), k, l)
1780 q_t_sf%sf(m + j, k, l) = q_t_sf%sf(m, k, l)
1785 else if (bc_dir == 2)
then
1786 if (bc_loc == -1)
then
1789 if (i == eqn_idx%mom%beg + 1)
then
1790 q_prim_vf(i)%sf(k, -j, l) = -q_prim_vf(i)%sf(k, j - 1, l) + 2._wp*bc_y%vb2
1792 q_prim_vf(i)%sf(k, -j, l) = q_prim_vf(i)%sf(k, 0, l)
1797 if (chemistry .and.
present(q_t_sf))
then
1798 if (bc_y%isothermal_in)
then
1800 q_t_sf%sf(k, -j, l) = 2._wp*bc_y%Twall_in - q_t_sf%sf(k, j - 1, l)
1804 q_t_sf%sf(k, -j, l) = q_t_sf%sf(k, 0, l)
1811 if (i == eqn_idx%mom%beg + 1)
then
1812 q_prim_vf(i)%sf(k, n + j, l) = -q_prim_vf(i)%sf(k, n - (j - 1), l) + 2._wp*bc_y%ve2
1814 q_prim_vf(i)%sf(k, n + j, l) = q_prim_vf(i)%sf(k, n, l)
1819 if (chemistry .and.
present(q_t_sf))
then
1820 if (bc_y%isothermal_out)
then
1822 q_t_sf%sf(k, n + j, l) = 2._wp*bc_y%Twall_out - q_t_sf%sf(k, n - (j - 1), l)
1826 q_t_sf%sf(k, n + j, l) = q_t_sf%sf(k, n, l)
1831 else if (bc_dir == 3)
then
1832 if (bc_loc == -1)
then
1835 if (i == eqn_idx%mom%end)
then
1836 q_prim_vf(i)%sf(k, l, -j) = -q_prim_vf(i)%sf(k, l, j - 1) + 2._wp*bc_z%vb3
1838 q_prim_vf(i)%sf(k, l, -j) = q_prim_vf(i)%sf(k, l, 0)
1843 if (chemistry .and.
present(q_t_sf))
then
1844 if (bc_z%isothermal_in)
then
1846 q_t_sf%sf(k, l, -j) = 2._wp*bc_z%Twall_in - q_t_sf%sf(k, l, j - 1)
1850 q_t_sf%sf(k, l, -j) = q_t_sf%sf(k, l, 0)
1857 if (i == eqn_idx%mom%end)
then
1858 q_prim_vf(i)%sf(k, l, p + j) = -q_prim_vf(i)%sf(k, l, p - (j - 1)) + 2._wp*bc_z%ve3
1860 q_prim_vf(i)%sf(k, l, p + j) = q_prim_vf(i)%sf(k, l, p)
1865 if (chemistry .and.
present(q_t_sf))
then
1866 if (bc_z%isothermal_out)
then
1868 q_t_sf%sf(k, l, p + j) = 2._wp*bc_z%Twall_out - q_t_sf%sf(k, l, p - (j - 1))
1872 q_t_sf%sf(k, l, p + j) = q_t_sf%sf(k, l, p)
1885# 987 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1887# 987 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1889# 987 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1891# 987 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1893# 987 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1895# 987 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1897# 987 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1899# 987 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1901# 987 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1903# 987 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1905# 987 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1907# 987 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1909# 987 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1911# 987 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1913# 987 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1915# 987 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1917# 987 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
1920 type(scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
1921 integer,
intent(in) :: bc_dir, bc_loc
1922 integer,
intent(in) :: k, l
1924 type(scalar_field),
optional,
intent(inout) :: q_T_sf
1926 if (bc_dir == 1)
then
1927 if (bc_loc == -1)
then
1930 if (i == eqn_idx%mom%beg)
then
1931 q_prim_vf(i)%sf(-j, k, l) = -q_prim_vf(i)%sf(j - 1, k, l) + 2._wp*bc_x%vb1
1932 else if (i == eqn_idx%mom%beg + 1 .and. num_dims > 1)
then
1933 q_prim_vf(i)%sf(-j, k, l) = -q_prim_vf(i)%sf(j - 1, k, l) + 2._wp*bc_x%vb2
1934 else if (i == eqn_idx%mom%beg + 2 .and. num_dims > 2)
then
1935 q_prim_vf(i)%sf(-j, k, l) = -q_prim_vf(i)%sf(j - 1, k, l) + 2._wp*bc_x%vb3
1937 q_prim_vf(i)%sf(-j, k, l) = q_prim_vf(i)%sf(0, k, l)
1942 if (chemistry .and.
present(q_t_sf))
then
1943 if (bc_x%isothermal_in)
then
1945 q_t_sf%sf(-j, k, l) = 2._wp*bc_x%Twall_in - q_t_sf%sf(j - 1, k, l)
1949 q_t_sf%sf(-j, k, l) = q_t_sf%sf(0, k, l)
1956 if (i == eqn_idx%mom%beg)
then
1957 q_prim_vf(i)%sf(m + j, k, l) = -q_prim_vf(i)%sf(m - (j - 1), k, l) + 2._wp*bc_x%ve1
1958 else if (i == eqn_idx%mom%beg + 1 .and. num_dims > 1)
then
1959 q_prim_vf(i)%sf(m + j, k, l) = -q_prim_vf(i)%sf(m - (j - 1), k, l) + 2._wp*bc_x%ve2
1960 else if (i == eqn_idx%mom%beg + 2 .and. num_dims > 2)
then
1961 q_prim_vf(i)%sf(m + j, k, l) = -q_prim_vf(i)%sf(m - (j - 1), k, l) + 2._wp*bc_x%ve3
1963 q_prim_vf(i)%sf(m + j, k, l) = q_prim_vf(i)%sf(m, k, l)
1968 if (chemistry .and.
present(q_t_sf))
then
1969 if (bc_x%isothermal_out)
then
1971 q_t_sf%sf(m + j, k, l) = 2._wp*bc_x%Twall_out - q_t_sf%sf(m - (j - 1), k, l)
1975 q_t_sf%sf(m + j, k, l) = q_t_sf%sf(m, k, l)
1980 else if (bc_dir == 2)
then
1981 if (bc_loc == -1)
then
1984 if (i == eqn_idx%mom%beg)
then
1985 q_prim_vf(i)%sf(k, -j, l) = -q_prim_vf(i)%sf(k, j - 1, l) + 2._wp*bc_y%vb1
1986 else if (i == eqn_idx%mom%beg + 1 .and. num_dims > 1)
then
1987 q_prim_vf(i)%sf(k, -j, l) = -q_prim_vf(i)%sf(k, j - 1, l) + 2._wp*bc_y%vb2
1988 else if (i == eqn_idx%mom%beg + 2 .and. num_dims > 2)
then
1989 q_prim_vf(i)%sf(k, -j, l) = -q_prim_vf(i)%sf(k, j - 1, l) + 2._wp*bc_y%vb3
1991 q_prim_vf(i)%sf(k, -j, l) = q_prim_vf(i)%sf(k, 0, l)
1995 if (chemistry .and.
present(q_t_sf))
then
1996 if (bc_y%isothermal_in)
then
1998 q_t_sf%sf(k, -j, l) = 2._wp*bc_y%Twall_in - q_t_sf%sf(k, j - 1, l)
2002 q_t_sf%sf(k, -j, l) = q_t_sf%sf(k, 0, l)
2009 if (i == eqn_idx%mom%beg)
then
2010 q_prim_vf(i)%sf(k, n + j, l) = -q_prim_vf(i)%sf(k, n - (j - 1), l) + 2._wp*bc_y%ve1
2011 else if (i == eqn_idx%mom%beg + 1 .and. num_dims > 1)
then
2012 q_prim_vf(i)%sf(k, n + j, l) = -q_prim_vf(i)%sf(k, n - (j - 1), l) + 2._wp*bc_y%ve2
2013 else if (i == eqn_idx%mom%beg + 2 .and. num_dims > 2)
then
2014 q_prim_vf(i)%sf(k, n + j, l) = -q_prim_vf(i)%sf(k, n - (j - 1), l) + 2._wp*bc_y%ve3
2016 q_prim_vf(i)%sf(k, n + j, l) = q_prim_vf(i)%sf(k, n, l)
2020 if (chemistry .and.
present(q_t_sf))
then
2021 if (bc_y%isothermal_out)
then
2023 q_t_sf%sf(k, n + j, l) = 2._wp*bc_y%Twall_out - q_t_sf%sf(k, n - (j - 1), l)
2027 q_t_sf%sf(k, n + j, l) = q_t_sf%sf(k, n, l)
2032 else if (bc_dir == 3)
then
2033 if (bc_loc == -1)
then
2036 if (i == eqn_idx%mom%beg)
then
2037 q_prim_vf(i)%sf(k, l, -j) = -q_prim_vf(i)%sf(k, l, j - 1) + 2._wp*bc_z%vb1
2038 else if (i == eqn_idx%mom%beg + 1 .and. num_dims > 1)
then
2039 q_prim_vf(i)%sf(k, l, -j) = -q_prim_vf(i)%sf(k, l, j - 1) + 2._wp*bc_z%vb2
2040 else if (i == eqn_idx%mom%beg + 2 .and. num_dims > 2)
then
2041 q_prim_vf(i)%sf(k, l, -j) = -q_prim_vf(i)%sf(k, l, j - 1) + 2._wp*bc_z%vb3
2043 q_prim_vf(i)%sf(k, l, -j) = q_prim_vf(i)%sf(k, l, 0)
2047 if (chemistry .and.
present(q_t_sf))
then
2048 if (bc_z%isothermal_in)
then
2050 q_t_sf%sf(k, l, -j) = 2._wp*bc_z%Twall_in - q_t_sf%sf(k, l, j - 1)
2054 q_t_sf%sf(k, l, -j) = q_t_sf%sf(k, l, 0)
2061 if (i == eqn_idx%mom%beg)
then
2062 q_prim_vf(i)%sf(k, l, p + j) = -q_prim_vf(i)%sf(k, l, p - (j - 1)) + 2._wp*bc_z%ve1
2063 else if (i == eqn_idx%mom%beg + 1 .and. num_dims > 1)
then
2064 q_prim_vf(i)%sf(k, l, p + j) = -q_prim_vf(i)%sf(k, l, p - (j - 1)) + 2._wp*bc_z%ve2
2065 else if (i == eqn_idx%mom%beg + 2 .and. num_dims > 2)
then
2066 q_prim_vf(i)%sf(k, l, p + j) = -q_prim_vf(i)%sf(k, l, p - (j - 1)) + 2._wp*bc_z%ve3
2068 q_prim_vf(i)%sf(k, l, p + j) = q_prim_vf(i)%sf(k, l, p)
2072 if (chemistry .and.
present(q_t_sf))
then
2073 if (bc_z%isothermal_out)
then
2075 q_t_sf%sf(k, l, p + j) = 2._wp*bc_z%Twall_out - q_t_sf%sf(k, l, p - (j - 1))
2079 q_t_sf%sf(k, l, p + j) = q_t_sf%sf(k, l, p)
2220# 1254 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2222# 1254 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2224# 1254 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2226# 1254 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2228# 1254 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2230# 1254 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2232# 1254 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2234 real(stp),
optional,
dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:,1:),
intent(inout) :: pb_in, mv_in
2235 integer,
intent(in) :: bc_dir, bc_loc
2236 integer,
intent(in) :: k, l
2239 if (bc_dir == 1)
then
2240 if (bc_loc == -1)
then
2244 pb_in(-j, k, l, q, i) = pb_in(0, k, l, q, i)
2245 mv_in(-j, k, l, q, i) = mv_in(0, k, l, q, i)
2253 pb_in(m + j, k, l, q, i) = pb_in(m, k, l, q, i)
2254 mv_in(m + j, k, l, q, i) = mv_in(m, k, l, q, i)
2259 else if (bc_dir == 2)
then
2260 if (bc_loc == -1)
then
2264 pb_in(k, -j, l, q, i) = pb_in(k, 0, l, q, i)
2265 mv_in(k, -j, l, q, i) = mv_in(k, 0, l, q, i)
2273 pb_in(k, n + j, l, q, i) = pb_in(k, n, l, q, i)
2274 mv_in(k, n + j, l, q, i) = mv_in(k, n, l, q, i)
2279 else if (bc_dir == 3)
then
2280 if (bc_loc == -1)
then
2284 pb_in(k, l, -j, q, i) = pb_in(k, l, 0, q, i)
2285 mv_in(k, l, -j, q, i) = mv_in(k, l, 0, q, i)
2293 pb_in(k, l, p + j, q, i) = pb_in(k, l, p, q, i)
2294 mv_in(k, l, p + j, q, i) = mv_in(k, l, p, q, i)
2712# 1518 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2714# 1518 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2716# 1518 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2718# 1518 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2720# 1518 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2722# 1518 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2724# 1518 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2726# 1518 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2728# 1518 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2730# 1518 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2732# 1518 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2734# 1518 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2736# 1518 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2738# 1518 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2740# 1518 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2742# 1518 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2744# 1518 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
2746 type(scalar_field),
dimension(num_dims + 1),
intent(inout) :: c_divs
2747 integer,
intent(in) :: bc_dir, bc_loc
2748 integer,
intent(in) :: k, l
2751 if (bc_dir == 1)
then
2752 if (bc_loc == -1)
then
2753 do i = 1, num_dims + 1
2755 if (i == bc_dir)
then
2756 c_divs(i)%sf(-j, k, l) = -c_divs(i)%sf(j - 1, k, l)
2758 c_divs(i)%sf(-j, k, l) = c_divs(i)%sf(j - 1, k, l)
2763 do i = 1, num_dims + 1
2765 if (i == bc_dir)
then
2766 c_divs(i)%sf(m + j, k, l) = -c_divs(i)%sf(m - (j - 1), k, l)
2768 c_divs(i)%sf(m + j, k, l) = c_divs(i)%sf(m - (j - 1), k, l)
2773 else if (bc_dir == 2)
then
2774 if (bc_loc == -1)
then
2775 do i = 1, num_dims + 1
2777 if (i == bc_dir)
then
2778 c_divs(i)%sf(k, -j, l) = -c_divs(i)%sf(k, j - 1, l)
2780 c_divs(i)%sf(k, -j, l) = c_divs(i)%sf(k, j - 1, l)
2785 do i = 1, num_dims + 1
2787 if (i == bc_dir)
then
2788 c_divs(i)%sf(k, n + j, l) = -c_divs(i)%sf(k, n - (j - 1), l)
2790 c_divs(i)%sf(k, n + j, l) = c_divs(i)%sf(k, n - (j - 1), l)
2795 else if (bc_dir == 3)
then
2796 if (bc_loc == -1)
then
2797 do i = 1, num_dims + 1
2799 if (i == bc_dir)
then
2800 c_divs(i)%sf(k, l, -j) = -c_divs(i)%sf(k, l, j - 1)
2802 c_divs(i)%sf(k, l, -j) = c_divs(i)%sf(k, l, j - 1)
2807 do i = 1, num_dims + 1
2809 if (i == bc_dir)
then
2810 c_divs(i)%sf(k, l, p + j) = -c_divs(i)%sf(k, l, p - (j - 1))
2812 c_divs(i)%sf(k, l, p + j) = c_divs(i)%sf(k, l, p - (j - 1))
3542 type(scalar_field),
dimension(sys_size),
intent(in) :: q_prim_vf
3544 type(scalar_field),
intent(in),
optional :: q_T_sf
3549 bc_buffers(1, 1)%sf(i, j, k) = q_prim_vf(i)%sf(0, j, k)
3550 bc_buffers(1, 2)%sf(i, j, k) = q_prim_vf(i)%sf(m, j, k)
3552 if (chemistry .and.
present(q_t_sf))
then
3553 bc_buffers(1, 1)%sf(sys_size + 1, j, k) = q_t_sf%sf(0, j, k)
3554 bc_buffers(1, 2)%sf(sys_size + 1, j, k) = q_t_sf%sf(m, j, k)
3559# 2079 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
3564 bc_buffers(2, 1)%sf(i, j, k) = q_prim_vf(j)%sf(i, 0, k)
3565 bc_buffers(2, 2)%sf(i, j, k) = q_prim_vf(j)%sf(i, n, k)
3568 if (chemistry .and.
present(q_t_sf))
then
3570 bc_buffers(2, 1)%sf(i, sys_size + 1, k) = q_t_sf%sf(i, 0, k)
3571 bc_buffers(2, 2)%sf(i, sys_size + 1, k) = q_t_sf%sf(i, n, k)
3576# 2096 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
3581 bc_buffers(3, 1)%sf(i, j, k) = q_prim_vf(k)%sf(i, j, 0)
3582 bc_buffers(3, 2)%sf(i, j, k) = q_prim_vf(k)%sf(i, j, p)
3586 if (chemistry .and.
present(q_t_sf))
then
3589 bc_buffers(3, 1)%sf(i, j, sys_size + 1) = q_t_sf%sf(i, j, 0)
3590 bc_buffers(3, 2)%sf(i, j, sys_size + 1) = q_t_sf%sf(i, j, p)
3595# 2115 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
3597# 2117 "/home/runner/work/MFC/MFC/src/common/m_boundary_common.fpp"
3663#ifdef MFC_SIMULATION
3665 type(int_bounds_info) :: offset_x, offset_y, offset_z
3667 offset_x%beg = buff_size; offset_x%end = buff_size
3668 offset_y%beg = buff_size; offset_y%end = buff_size
3669 offset_z%beg = buff_size; offset_z%end = buff_size
3672#ifndef MFC_PRE_PROCESS
3676 if (bc_x%beg >= 0)
then
3677 call s_mpi_sendrecv_grid_variables_buffers(1, -1)
3678 else if (bc_x%beg <= bc_ghost_extrap)
then
3682 else if (bc_x%beg == bc_reflective)
then
3686 else if (bc_x%beg == bc_periodic)
then
3688 dx(-i) = dx(m - (i - 1))
3693 do i = 1, offset_x%beg
3694 x_cb(-1 - i) = x_cb(-i) - dx(-i)
3698 x_cc(-i) = x_cc(1 - i) - (dx(1 - i) + dx(-i))/2._wp
3702 if (bc_x%end >= 0)
then
3703 call s_mpi_sendrecv_grid_variables_buffers(1, 1)
3704 else if (bc_x%end <= bc_ghost_extrap)
then
3708 else if (bc_x%end == bc_reflective)
then
3710 dx(m + i) = dx(m - (i - 1))
3712 else if (bc_x%end == bc_periodic)
then
3714 dx(m + i) = dx(i - 1)
3719 do i = 1, offset_x%end
3720 x_cb(m + i) = x_cb(m + (i - 1)) + dx(m + i)
3724 x_cc(m + i) = x_cc(m + (i - 1)) + (dx(m + (i - 1)) + dx(m + i))/2._wp
3732 else if (bc_y%beg >= 0)
then
3733 call s_mpi_sendrecv_grid_variables_buffers(2, -1)
3734 else if (bc_y%beg <= bc_ghost_extrap .and. bc_y%beg /= bc_axis)
then
3738 else if (bc_y%beg == bc_reflective .or. bc_y%beg == bc_axis)
then
3742 else if (bc_y%beg == bc_periodic)
then
3744 dy(-i) = dy(n - (i - 1))
3749 do i = 1, offset_y%beg
3750 y_cb(-1 - i) = y_cb(-i) - dy(-i)
3754 y_cc(-i) = y_cc(1 - i) - (dy(1 - i) + dy(-i))/2._wp
3758 if (bc_y%end >= 0)
then
3759 call s_mpi_sendrecv_grid_variables_buffers(2, 1)
3760 else if (bc_y%end <= bc_ghost_extrap)
then
3764 else if (bc_y%end == bc_reflective)
then
3766 dy(n + i) = dy(n - (i - 1))
3768 else if (bc_y%end == bc_periodic)
then
3770 dy(n + i) = dy(i - 1)
3775 do i = 1, offset_y%end
3776 y_cb(n + i) = y_cb(n + (i - 1)) + dy(n + i)
3780 y_cc(n + i) = y_cc(n + (i - 1)) + (dy(n + (i - 1)) + dy(n + i))/2._wp
3788 else if (bc_z%beg >= 0)
then
3789 call s_mpi_sendrecv_grid_variables_buffers(3, -1)
3790 else if (bc_z%beg <= bc_ghost_extrap)
then
3794 else if (bc_z%beg == bc_reflective)
then
3798 else if (bc_z%beg == bc_periodic)
then
3800 dz(-i) = dz(p - (i - 1))
3805 do i = 1, offset_z%beg
3806 z_cb(-1 - i) = z_cb(-i) - dz(-i)
3810 z_cc(-i) = z_cc(1 - i) - (dz(1 - i) + dz(-i))/2._wp
3814 if (bc_z%end >= 0)
then
3815 call s_mpi_sendrecv_grid_variables_buffers(3, 1)
3816 else if (bc_z%end <= bc_ghost_extrap)
then
3820 else if (bc_z%end == bc_reflective)
then
3822 dz(p + i) = dz(p - (i - 1))
3824 else if (bc_z%end == bc_periodic)
then
3826 dz(p + i) = dz(i - 1)
3831 do i = 1, offset_z%end
3832 z_cb(p + i) = z_cb(p + (i - 1)) + dz(p + i)
3836 z_cc(p + i) = z_cc(p + (i - 1)) + (dz(p + (i - 1)) + dz(p + i))/2._wp