362# 26 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
364# 26 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
366# 26 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
368# 26 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
370# 26 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
372# 26 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
374# 26 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
376# 26 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
378# 26 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
380# 26 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
382# 26 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
384# 26 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
386# 26 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
388# 26 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
390# 26 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
392# 26 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
394# 26 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
396 type(
scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
397 integer,
intent(in) :: bc_dir, bc_loc
398 integer,
intent(in) :: k, l
402 if (bc_dir == 1)
then
403 if (bc_loc == -1)
then
406 q_prim_vf(i)%sf(-j, k, l) = q_prim_vf(i)%sf(0, k, l)
409 if (chemistry .and.
present(q_t_sf))
then
411 q_t_sf%sf(-j, k, l) = q_t_sf%sf(0, k, l)
417 q_prim_vf(i)%sf(m + j, k, l) = q_prim_vf(i)%sf(m, k, l)
420 if (chemistry .and.
present(q_t_sf))
then
422 q_t_sf%sf(m + j, k, l) = q_t_sf%sf(m, k, l)
426 else if (bc_dir == 2)
then
427 if (bc_loc == -1)
then
430 q_prim_vf(i)%sf(k, -j, l) = q_prim_vf(i)%sf(k, 0, l)
434 if (chemistry .and.
present(q_t_sf))
then
436 q_t_sf%sf(k, -j, l) = q_t_sf%sf(k, 0, l)
442 q_prim_vf(i)%sf(k, n + j, l) = q_prim_vf(i)%sf(k, n, l)
445 if (chemistry .and.
present(q_t_sf))
then
447 q_t_sf%sf(k, n + j, l) = q_t_sf%sf(k, n, l)
451 else if (bc_dir == 3)
then
452 if (bc_loc == -1)
then
455 q_prim_vf(i)%sf(k, l, -j) = q_prim_vf(i)%sf(k, l, 0)
458 if (chemistry .and.
present(q_t_sf))
then
460 q_t_sf%sf(k, l, -j) = q_t_sf%sf(k, l, 0)
466 q_prim_vf(i)%sf(k, l, p + j) = q_prim_vf(i)%sf(k, l, p)
469 if (chemistry .and.
present(q_t_sf))
then
471 q_t_sf%sf(k, l, p + j) = q_t_sf%sf(k, l, p)
480 subroutine s_symmetry(q_prim_vf, bc_dir, bc_loc, k, l, pb_in, mv_in, q_T_sf)
483# 113 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
485# 113 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
487# 113 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
489# 113 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
491# 113 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
493# 113 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
495# 113 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
497 type(
scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
498 real(stp),
optional,
dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:,1:),
intent(inout) :: pb_in, mv_in
499 integer,
intent(in) :: bc_dir, bc_loc
500 integer,
intent(in) :: k, l
504 if (bc_dir == 1)
then
505 if (bc_loc == -1)
then
507 do i = 1, eqn_idx%cont%end
508 q_prim_vf(i)%sf(-j, k, l) = q_prim_vf(i)%sf(j - 1, k, l)
511 q_prim_vf(eqn_idx%mom%beg)%sf(-j, k, l) = -q_prim_vf(eqn_idx%mom%beg)%sf(j - 1, k, l)
513 do i = eqn_idx%mom%beg + 1, sys_size
514 q_prim_vf(i)%sf(-j, k, l) = q_prim_vf(i)%sf(j - 1, k, l)
517 if (chemistry .and.
present(q_t_sf))
then
518 q_t_sf%sf(-j, k, l) = q_t_sf%sf(j - 1, k, l)
522 do i = 1, shear_bc_flip_num
523 q_prim_vf(shear_bc_flip_indices(1, i))%sf(-j, k, l) = -q_prim_vf(shear_bc_flip_indices(1, &
524 & i))%sf(j - 1, k, l)
528 if (hyperelasticity)
then
529 q_prim_vf(eqn_idx%xi%beg)%sf(-j, k, l) = -q_prim_vf(eqn_idx%xi%beg)%sf(j - 1, k, l)
533 if (qbmm .and. .not. polytropic .and.
present(pb_in) .and.
present(mv_in))
then
537 pb_in(-j, k, l, q, i) = pb_in(j - 1, k, l, q, i)
538 mv_in(-j, k, l, q, i) = mv_in(j - 1, k, l, q, i)
545 do i = 1, eqn_idx%cont%end
546 q_prim_vf(i)%sf(m + j, k, l) = q_prim_vf(i)%sf(m - (j - 1), k, l)
549 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)
551 do i = eqn_idx%mom%beg + 1, sys_size
552 q_prim_vf(i)%sf(m + j, k, l) = q_prim_vf(i)%sf(m - (j - 1), k, l)
555 if (chemistry .and.
present(q_t_sf))
then
556 q_t_sf%sf(m + j, k, l) = q_t_sf%sf(m - (j - 1), k, l)
560 do i = 1, shear_bc_flip_num
561 q_prim_vf(shear_bc_flip_indices(1, i))%sf(m + j, k, l) = -q_prim_vf(shear_bc_flip_indices(1, &
562 & i))%sf(m - (j - 1), k, l)
566 if (hyperelasticity)
then
567 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)
570 if (qbmm .and. .not. polytropic .and.
present(pb_in) .and.
present(mv_in))
then
574 pb_in(m + j, k, l, q, i) = pb_in(m - (j - 1), k, l, q, i)
575 mv_in(m + j, k, l, q, i) = mv_in(m - (j - 1), k, l, q, i)
581 else if (bc_dir == 2)
then
582 if (bc_loc == -1)
then
584 do i = 1, eqn_idx%mom%beg
585 q_prim_vf(i)%sf(k, -j, l) = q_prim_vf(i)%sf(k, j - 1, l)
588 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)
590 do i = eqn_idx%mom%beg + 2, sys_size
591 q_prim_vf(i)%sf(k, -j, l) = q_prim_vf(i)%sf(k, j - 1, l)
594 if (chemistry .and.
present(q_t_sf))
then
595 q_t_sf%sf(k, -j, l) = q_t_sf%sf(k, j - 1, l)
599 do i = 1, shear_bc_flip_num
600 q_prim_vf(shear_bc_flip_indices(2, i))%sf(k, -j, l) = -q_prim_vf(shear_bc_flip_indices(2, i))%sf(k, &
605 if (hyperelasticity)
then
606 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)
610 if (qbmm .and. .not. polytropic .and.
present(pb_in) .and.
present(mv_in))
then
614 pb_in(k, -j, l, q, i) = pb_in(k, j - 1, l, q, i)
615 mv_in(k, -j, l, q, i) = mv_in(k, j - 1, l, q, i)
622 do i = 1, eqn_idx%mom%beg
623 q_prim_vf(i)%sf(k, n + j, l) = q_prim_vf(i)%sf(k, n - (j - 1), l)
626 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)
628 do i = eqn_idx%mom%beg + 2, sys_size
629 q_prim_vf(i)%sf(k, n + j, l) = q_prim_vf(i)%sf(k, n - (j - 1), l)
632 if (chemistry .and.
present(q_t_sf))
then
633 q_t_sf%sf(k, n + j, l) = q_t_sf%sf(k, n - (j - 1), l)
637 do i = 1, shear_bc_flip_num
638 q_prim_vf(shear_bc_flip_indices(2, i))%sf(k, n + j, l) = -q_prim_vf(shear_bc_flip_indices(2, &
639 & i))%sf(k, n - (j - 1), l)
643 if (hyperelasticity)
then
644 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)
648 if (qbmm .and. .not. polytropic .and.
present(pb_in) .and.
present(mv_in))
then
652 pb_in(k, n + j, l, q, i) = pb_in(k, n - (j - 1), l, q, i)
653 mv_in(k, n + j, l, q, i) = mv_in(k, n - (j - 1), l, q, i)
659 else if (bc_dir == 3)
then
660 if (bc_loc == -1)
then
662 do i = 1, eqn_idx%mom%beg + 1
663 q_prim_vf(i)%sf(k, l, -j) = q_prim_vf(i)%sf(k, l, j - 1)
666 q_prim_vf(eqn_idx%mom%end)%sf(k, l, -j) = -q_prim_vf(eqn_idx%mom%end)%sf(k, l, j - 1)
668 do i = eqn_idx%E, sys_size
669 q_prim_vf(i)%sf(k, l, -j) = q_prim_vf(i)%sf(k, l, j - 1)
672 if (chemistry .and.
present(q_t_sf))
then
673 q_t_sf%sf(k, l, -j) = q_t_sf%sf(k, l, j - 1)
677 do i = 1, shear_bc_flip_num
678 q_prim_vf(shear_bc_flip_indices(3, i))%sf(k, l, -j) = -q_prim_vf(shear_bc_flip_indices(3, i))%sf(k, &
683 if (hyperelasticity)
then
684 q_prim_vf(eqn_idx%xi%end)%sf(k, l, -j) = -q_prim_vf(eqn_idx%xi%end)%sf(k, l, j - 1)
688 if (qbmm .and. .not. polytropic .and.
present(pb_in) .and.
present(mv_in))
then
692 pb_in(k, l, -j, q, i) = pb_in(k, l, j - 1, q, i)
693 mv_in(k, l, -j, q, i) = mv_in(k, l, j - 1, q, i)
700 do i = 1, eqn_idx%mom%beg + 1
701 q_prim_vf(i)%sf(k, l, p + j) = q_prim_vf(i)%sf(k, l, p - (j - 1))
704 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))
706 do i = eqn_idx%E, sys_size
707 q_prim_vf(i)%sf(k, l, p + j) = q_prim_vf(i)%sf(k, l, p - (j - 1))
710 if (chemistry .and.
present(q_t_sf))
then
711 q_t_sf%sf(k, l, p + j) = q_t_sf%sf(k, l, p - (j - 1))
715 do i = 1, shear_bc_flip_num
716 q_prim_vf(shear_bc_flip_indices(3, i))%sf(k, l, p + j) = -q_prim_vf(shear_bc_flip_indices(3, &
717 & i))%sf(k, l, p - (j - 1))
721 if (hyperelasticity)
then
722 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))
726 if (qbmm .and. .not. polytropic .and.
present(pb_in) .and.
present(mv_in))
then
730 pb_in(k, l, p + j, q, i) = pb_in(k, l, p - (j - 1), q, i)
731 mv_in(k, l, p + j, q, i) = mv_in(k, l, p - (j - 1), q, i)
742 subroutine s_periodic(q_prim_vf, bc_dir, bc_loc, k, l, pb_in, mv_in, q_T_sf)
745# 361 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
747# 361 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
749# 361 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
751# 361 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
753# 361 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
755# 361 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
757# 361 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
759 type(
scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
760 real(stp),
optional,
dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:,1:),
intent(inout) :: pb_in, mv_in
761 integer,
intent(in) :: bc_dir, bc_loc
762 integer,
intent(in) :: k, l
766 if (bc_dir == 1)
then
767 if (bc_loc == -1)
then
770 q_prim_vf(i)%sf(-j, k, l) = q_prim_vf(i)%sf(m - (j - 1), k, l)
774 if (chemistry .and.
present(q_t_sf))
then
776 q_t_sf%sf(-j, k, l) = q_t_sf%sf(m - (j - 1), k, l)
780 if (qbmm .and. .not. polytropic .and.
present(pb_in) .and.
present(mv_in))
then
784 pb_in(-j, k, l, q, i) = pb_in(m - (j - 1), k, l, q, i)
785 mv_in(-j, k, l, q, i) = mv_in(m - (j - 1), k, l, q, i)
793 q_prim_vf(i)%sf(m + j, k, l) = q_prim_vf(i)%sf(j - 1, k, l)
797 if (chemistry .and.
present(q_t_sf))
then
799 q_t_sf%sf(m + j, k, l) = q_t_sf%sf(j - 1, k, l)
803 if (qbmm .and. .not. polytropic .and.
present(pb_in) .and.
present(mv_in))
then
807 pb_in(m + j, k, l, q, i) = pb_in(j - 1, k, l, q, i)
808 mv_in(m + j, k, l, q, i) = mv_in(j - 1, k, l, q, i)
814 else if (bc_dir == 2)
then
815 if (bc_loc == -1)
then
818 q_prim_vf(i)%sf(k, -j, l) = q_prim_vf(i)%sf(k, n - (j - 1), l)
822 if (chemistry .and.
present(q_t_sf))
then
824 q_t_sf%sf(k, -j, l) = q_t_sf%sf(k, n - (j - 1), l)
828 if (qbmm .and. .not. polytropic .and.
present(pb_in) .and.
present(mv_in))
then
832 pb_in(k, -j, l, q, i) = pb_in(k, n - (j - 1), l, q, i)
833 mv_in(k, -j, l, q, i) = mv_in(k, n - (j - 1), l, q, i)
841 q_prim_vf(i)%sf(k, n + j, l) = q_prim_vf(i)%sf(k, j - 1, l)
845 if (chemistry .and.
present(q_t_sf))
then
847 q_t_sf%sf(k, n + j, l) = q_t_sf%sf(k, j - 1, l)
851 if (qbmm .and. .not. polytropic .and.
present(pb_in) .and.
present(mv_in))
then
855 pb_in(k, n + j, l, q, i) = pb_in(k, (j - 1), l, q, i)
856 mv_in(k, n + j, l, q, i) = mv_in(k, (j - 1), l, q, i)
862 else if (bc_dir == 3)
then
863 if (bc_loc == -1)
then
866 q_prim_vf(i)%sf(k, l, -j) = q_prim_vf(i)%sf(k, l, p - (j - 1))
870 if (chemistry .and.
present(q_t_sf))
then
872 q_t_sf%sf(k, l, -j) = q_t_sf%sf(k, l, p - (j - 1))
876 if (qbmm .and. .not. polytropic .and.
present(pb_in) .and.
present(mv_in))
then
880 pb_in(k, l, -j, q, i) = pb_in(k, l, p - (j - 1), q, i)
881 mv_in(k, l, -j, q, i) = mv_in(k, l, p - (j - 1), q, i)
889 q_prim_vf(i)%sf(k, l, p + j) = q_prim_vf(i)%sf(k, l, j - 1)
893 if (chemistry .and.
present(q_t_sf))
then
895 q_t_sf%sf(k, l, p + j) = q_t_sf%sf(k, l, j - 1)
899 if (qbmm .and. .not. polytropic .and.
present(pb_in) .and.
present(mv_in))
then
903 pb_in(k, l, p + j, q, i) = pb_in(k, l, j - 1, q, i)
904 mv_in(k, l, p + j, q, i) = mv_in(k, l, j - 1, q, i)
915 subroutine s_axis(q_prim_vf, pb_in, mv_in, k, l)
918# 520 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
920# 520 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
922# 520 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
924# 520 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
926# 520 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
928# 520 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
930# 520 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
932 type(
scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
933 real(stp),
dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:,1:),
optional,
intent(inout) :: pb_in, mv_in
934 integer,
intent(in) :: k, l
939 do i = 1, eqn_idx%mom%beg
940 q_prim_vf(i)%sf(k, -j, l) = q_prim_vf(i)%sf(k, j - 1, l + ((p + 1)/2))
943 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))
945 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))
947 do i = eqn_idx%E, sys_size
948 q_prim_vf(i)%sf(k, -j, l) = q_prim_vf(i)%sf(k, j - 1, l + ((p + 1)/2))
951 do i = 1, eqn_idx%mom%beg
952 q_prim_vf(i)%sf(k, -j, l) = q_prim_vf(i)%sf(k, j - 1, l - ((p + 1)/2))
955 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))
957 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))
959 do i = eqn_idx%E, sys_size
960 q_prim_vf(i)%sf(k, -j, l) = q_prim_vf(i)%sf(k, j - 1, l - ((p + 1)/2))
965 if (qbmm .and. .not. polytropic .and.
present(pb_in) .and.
present(mv_in))
then
970 pb_in(k, -j, l, q, i) = pb_in(k, j - 1, l + ((p + 1)/2), q, i)
971 mv_in(k, -j, l, q, i) = mv_in(k, j - 1, l + ((p + 1)/2), q, i)
973 pb_in(k, -j, l, q, i) = pb_in(k, j - 1, l - ((p + 1)/2), q, i)
974 mv_in(k, -j, l, q, i) = mv_in(k, j - 1, l - ((p + 1)/2), q, i)
987# 575 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
989# 575 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
991# 575 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
993# 575 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
995# 575 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
997# 575 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
999# 575 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1001# 575 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1003# 575 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1005# 575 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1007# 575 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1009# 575 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1011# 575 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1013# 575 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1015# 575 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1017# 575 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1019# 575 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1021 type(
scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
1022 integer,
intent(in) :: bc_dir, bc_loc
1023 integer,
intent(in) :: k, l
1027 if (bc_dir == 1)
then
1028 if (bc_loc == -1)
then
1031 if (i == eqn_idx%mom%beg)
then
1032 q_prim_vf(i)%sf(-j, k, l) = -q_prim_vf(i)%sf(j - 1, k, l) + 2._wp*
bc_x%vb1
1034 q_prim_vf(i)%sf(-j, k, l) = q_prim_vf(i)%sf(0, k, l)
1039 if (chemistry .and.
present(q_t_sf))
then
1040 if (
bc_x%isothermal_in)
then
1042 q_t_sf%sf(-j, k, l) = 2._wp*
bc_x%Twall_in - q_t_sf%sf(j - 1, k, l)
1046 q_t_sf%sf(-j, k, l) = q_t_sf%sf(0, k, l)
1053 if (i == eqn_idx%mom%beg)
then
1054 q_prim_vf(i)%sf(m + j, k, l) = -q_prim_vf(i)%sf(m - (j - 1), k, l) + 2._wp*
bc_x%ve1
1056 q_prim_vf(i)%sf(m + j, k, l) = q_prim_vf(i)%sf(m, k, l)
1061 if (chemistry .and.
present(q_t_sf))
then
1062 if (
bc_x%isothermal_out)
then
1064 q_t_sf%sf(m + j, k, l) = 2._wp*
bc_x%Twall_out - q_t_sf%sf(m - (j - 1), k, l)
1068 q_t_sf%sf(m + j, k, l) = q_t_sf%sf(m, k, l)
1073 else if (bc_dir == 2)
then
1074 if (bc_loc == -1)
then
1077 if (i == eqn_idx%mom%beg + 1)
then
1078 q_prim_vf(i)%sf(k, -j, l) = -q_prim_vf(i)%sf(k, j - 1, l) + 2._wp*
bc_y%vb2
1080 q_prim_vf(i)%sf(k, -j, l) = q_prim_vf(i)%sf(k, 0, l)
1085 if (chemistry .and.
present(q_t_sf))
then
1086 if (
bc_y%isothermal_in)
then
1088 q_t_sf%sf(k, -j, l) = 2._wp*
bc_y%Twall_in - q_t_sf%sf(k, j - 1, l)
1092 q_t_sf%sf(k, -j, l) = q_t_sf%sf(k, 0, l)
1099 if (i == eqn_idx%mom%beg + 1)
then
1100 q_prim_vf(i)%sf(k, n + j, l) = -q_prim_vf(i)%sf(k, n - (j - 1), l) + 2._wp*
bc_y%ve2
1102 q_prim_vf(i)%sf(k, n + j, l) = q_prim_vf(i)%sf(k, n, l)
1107 if (chemistry .and.
present(q_t_sf))
then
1108 if (
bc_y%isothermal_out)
then
1110 q_t_sf%sf(k, n + j, l) = 2._wp*
bc_y%Twall_out - q_t_sf%sf(k, n - (j - 1), l)
1114 q_t_sf%sf(k, n + j, l) = q_t_sf%sf(k, n, l)
1119 else if (bc_dir == 3)
then
1120 if (bc_loc == -1)
then
1123 if (i == eqn_idx%mom%end)
then
1124 q_prim_vf(i)%sf(k, l, -j) = -q_prim_vf(i)%sf(k, l, j - 1) + 2._wp*
bc_z%vb3
1126 q_prim_vf(i)%sf(k, l, -j) = q_prim_vf(i)%sf(k, l, 0)
1131 if (chemistry .and.
present(q_t_sf))
then
1132 if (
bc_z%isothermal_in)
then
1134 q_t_sf%sf(k, l, -j) = 2._wp*
bc_z%Twall_in - q_t_sf%sf(k, l, j - 1)
1138 q_t_sf%sf(k, l, -j) = q_t_sf%sf(k, l, 0)
1145 if (i == eqn_idx%mom%end)
then
1146 q_prim_vf(i)%sf(k, l, p + j) = -q_prim_vf(i)%sf(k, l, p - (j - 1)) + 2._wp*
bc_z%ve3
1148 q_prim_vf(i)%sf(k, l, p + j) = q_prim_vf(i)%sf(k, l, p)
1153 if (chemistry .and.
present(q_t_sf))
then
1154 if (
bc_z%isothermal_out)
then
1156 q_t_sf%sf(k, l, p + j) = 2._wp*
bc_z%Twall_out - q_t_sf%sf(k, l, p - (j - 1))
1160 q_t_sf%sf(k, l, p + j) = q_t_sf%sf(k, l, p)
1173# 727 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1175# 727 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1177# 727 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1179# 727 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1181# 727 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1183# 727 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1185# 727 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1187# 727 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1189# 727 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1191# 727 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1193# 727 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1195# 727 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1197# 727 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1199# 727 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1201# 727 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1203# 727 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1205# 727 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1208 type(
scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
1209 integer,
intent(in) :: bc_dir, bc_loc
1210 integer,
intent(in) :: k, l
1214 if (bc_dir == 1)
then
1215 if (bc_loc == -1)
then
1218 if (i == eqn_idx%mom%beg)
then
1219 q_prim_vf(i)%sf(-j, k, l) = -q_prim_vf(i)%sf(j - 1, k, l) + 2._wp*
bc_x%vb1
1220 else if (i == eqn_idx%mom%beg + 1 .and. num_dims > 1)
then
1221 q_prim_vf(i)%sf(-j, k, l) = -q_prim_vf(i)%sf(j - 1, k, l) + 2._wp*
bc_x%vb2
1222 else if (i == eqn_idx%mom%beg + 2 .and. num_dims > 2)
then
1223 q_prim_vf(i)%sf(-j, k, l) = -q_prim_vf(i)%sf(j - 1, k, l) + 2._wp*
bc_x%vb3
1225 q_prim_vf(i)%sf(-j, k, l) = q_prim_vf(i)%sf(0, k, l)
1230 if (chemistry .and.
present(q_t_sf))
then
1231 if (
bc_x%isothermal_in)
then
1233 q_t_sf%sf(-j, k, l) = 2._wp*
bc_x%Twall_in - q_t_sf%sf(j - 1, k, l)
1237 q_t_sf%sf(-j, k, l) = q_t_sf%sf(0, k, l)
1244 if (i == eqn_idx%mom%beg)
then
1245 q_prim_vf(i)%sf(m + j, k, l) = -q_prim_vf(i)%sf(m - (j - 1), k, l) + 2._wp*
bc_x%ve1
1246 else if (i == eqn_idx%mom%beg + 1 .and. num_dims > 1)
then
1247 q_prim_vf(i)%sf(m + j, k, l) = -q_prim_vf(i)%sf(m - (j - 1), k, l) + 2._wp*
bc_x%ve2
1248 else if (i == eqn_idx%mom%beg + 2 .and. num_dims > 2)
then
1249 q_prim_vf(i)%sf(m + j, k, l) = -q_prim_vf(i)%sf(m - (j - 1), k, l) + 2._wp*
bc_x%ve3
1251 q_prim_vf(i)%sf(m + j, k, l) = q_prim_vf(i)%sf(m, k, l)
1256 if (chemistry .and.
present(q_t_sf))
then
1257 if (
bc_x%isothermal_out)
then
1259 q_t_sf%sf(m + j, k, l) = 2._wp*
bc_x%Twall_out - q_t_sf%sf(m - (j - 1), k, l)
1263 q_t_sf%sf(m + j, k, l) = q_t_sf%sf(m, k, l)
1268 else if (bc_dir == 2)
then
1269 if (bc_loc == -1)
then
1272 if (i == eqn_idx%mom%beg)
then
1273 q_prim_vf(i)%sf(k, -j, l) = -q_prim_vf(i)%sf(k, j - 1, l) + 2._wp*
bc_y%vb1
1274 else if (i == eqn_idx%mom%beg + 1 .and. num_dims > 1)
then
1275 q_prim_vf(i)%sf(k, -j, l) = -q_prim_vf(i)%sf(k, j - 1, l) + 2._wp*
bc_y%vb2
1276 else if (i == eqn_idx%mom%beg + 2 .and. num_dims > 2)
then
1277 q_prim_vf(i)%sf(k, -j, l) = -q_prim_vf(i)%sf(k, j - 1, l) + 2._wp*
bc_y%vb3
1279 q_prim_vf(i)%sf(k, -j, l) = q_prim_vf(i)%sf(k, 0, l)
1283 if (chemistry .and.
present(q_t_sf))
then
1284 if (
bc_y%isothermal_in)
then
1286 q_t_sf%sf(k, -j, l) = 2._wp*
bc_y%Twall_in - q_t_sf%sf(k, j - 1, l)
1290 q_t_sf%sf(k, -j, l) = q_t_sf%sf(k, 0, l)
1297 if (i == eqn_idx%mom%beg)
then
1298 q_prim_vf(i)%sf(k, n + j, l) = -q_prim_vf(i)%sf(k, n - (j - 1), l) + 2._wp*
bc_y%ve1
1299 else if (i == eqn_idx%mom%beg + 1 .and. num_dims > 1)
then
1300 q_prim_vf(i)%sf(k, n + j, l) = -q_prim_vf(i)%sf(k, n - (j - 1), l) + 2._wp*
bc_y%ve2
1301 else if (i == eqn_idx%mom%beg + 2 .and. num_dims > 2)
then
1302 q_prim_vf(i)%sf(k, n + j, l) = -q_prim_vf(i)%sf(k, n - (j - 1), l) + 2._wp*
bc_y%ve3
1304 q_prim_vf(i)%sf(k, n + j, l) = q_prim_vf(i)%sf(k, n, l)
1308 if (chemistry .and.
present(q_t_sf))
then
1309 if (
bc_y%isothermal_out)
then
1311 q_t_sf%sf(k, n + j, l) = 2._wp*
bc_y%Twall_out - q_t_sf%sf(k, n - (j - 1), l)
1315 q_t_sf%sf(k, n + j, l) = q_t_sf%sf(k, n, l)
1320 else if (bc_dir == 3)
then
1321 if (bc_loc == -1)
then
1324 if (i == eqn_idx%mom%beg)
then
1325 q_prim_vf(i)%sf(k, l, -j) = -q_prim_vf(i)%sf(k, l, j - 1) + 2._wp*
bc_z%vb1
1326 else if (i == eqn_idx%mom%beg + 1 .and. num_dims > 1)
then
1327 q_prim_vf(i)%sf(k, l, -j) = -q_prim_vf(i)%sf(k, l, j - 1) + 2._wp*
bc_z%vb2
1328 else if (i == eqn_idx%mom%beg + 2 .and. num_dims > 2)
then
1329 q_prim_vf(i)%sf(k, l, -j) = -q_prim_vf(i)%sf(k, l, j - 1) + 2._wp*
bc_z%vb3
1331 q_prim_vf(i)%sf(k, l, -j) = q_prim_vf(i)%sf(k, l, 0)
1335 if (chemistry .and.
present(q_t_sf))
then
1336 if (
bc_z%isothermal_in)
then
1338 q_t_sf%sf(k, l, -j) = 2._wp*
bc_z%Twall_in - q_t_sf%sf(k, l, j - 1)
1342 q_t_sf%sf(k, l, -j) = q_t_sf%sf(k, l, 0)
1349 if (i == eqn_idx%mom%beg)
then
1350 q_prim_vf(i)%sf(k, l, p + j) = -q_prim_vf(i)%sf(k, l, p - (j - 1)) + 2._wp*
bc_z%ve1
1351 else if (i == eqn_idx%mom%beg + 1 .and. num_dims > 1)
then
1352 q_prim_vf(i)%sf(k, l, p + j) = -q_prim_vf(i)%sf(k, l, p - (j - 1)) + 2._wp*
bc_z%ve2
1353 else if (i == eqn_idx%mom%beg + 2 .and. num_dims > 2)
then
1354 q_prim_vf(i)%sf(k, l, p + j) = -q_prim_vf(i)%sf(k, l, p - (j - 1)) + 2._wp*
bc_z%ve3
1356 q_prim_vf(i)%sf(k, l, p + j) = q_prim_vf(i)%sf(k, l, p)
1360 if (chemistry .and.
present(q_t_sf))
then
1361 if (
bc_z%isothermal_out)
then
1363 q_t_sf%sf(k, l, p + j) = 2._wp*
bc_z%Twall_out - q_t_sf%sf(k, l, p - (j - 1))
1367 q_t_sf%sf(k, l, p + j) = q_t_sf%sf(k, l, p)
1508# 994 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1510# 994 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1512# 994 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1514# 994 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1516# 994 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1518# 994 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1520# 994 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1522 real(stp),
optional,
dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:,1:),
intent(inout) :: pb_in, mv_in
1523 integer,
intent(in) :: bc_dir, bc_loc
1524 integer,
intent(in) :: k, l
1527 if (bc_dir == 1)
then
1528 if (bc_loc == -1)
then
1532 pb_in(-j, k, l, q, i) = pb_in(0, k, l, q, i)
1533 mv_in(-j, k, l, q, i) = mv_in(0, k, l, q, i)
1541 pb_in(m + j, k, l, q, i) = pb_in(m, k, l, q, i)
1542 mv_in(m + j, k, l, q, i) = mv_in(m, k, l, q, i)
1547 else if (bc_dir == 2)
then
1548 if (bc_loc == -1)
then
1552 pb_in(k, -j, l, q, i) = pb_in(k, 0, l, q, i)
1553 mv_in(k, -j, l, q, i) = mv_in(k, 0, l, q, i)
1561 pb_in(k, n + j, l, q, i) = pb_in(k, n, l, q, i)
1562 mv_in(k, n + j, l, q, i) = mv_in(k, n, l, q, i)
1567 else if (bc_dir == 3)
then
1568 if (bc_loc == -1)
then
1572 pb_in(k, l, -j, q, i) = pb_in(k, l, 0, q, i)
1573 mv_in(k, l, -j, q, i) = mv_in(k, l, 0, q, i)
1581 pb_in(k, l, p + j, q, i) = pb_in(k, l, p, q, i)
1582 mv_in(k, l, p + j, q, i) = mv_in(k, l, p, q, i)
1684# 1122 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1686# 1122 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1688# 1122 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1690# 1122 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1692# 1122 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1694# 1122 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1696# 1122 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1698# 1122 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1700# 1122 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1702# 1122 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1704# 1122 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1706# 1122 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1708# 1122 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1710# 1122 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1712# 1122 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1714# 1122 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1716# 1122 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
1718 type(
scalar_field),
dimension(num_dims + 1),
intent(inout) :: c_divs
1719 integer,
intent(in) :: bc_dir, bc_loc
1720 integer,
intent(in) :: k, l
1723 if (bc_dir == 1)
then
1724 if (bc_loc == -1)
then
1725 do i = 1, num_dims + 1
1727 if (i == bc_dir)
then
1728 c_divs(i)%sf(-j, k, l) = -c_divs(i)%sf(j - 1, k, l)
1730 c_divs(i)%sf(-j, k, l) = c_divs(i)%sf(j - 1, k, l)
1735 do i = 1, num_dims + 1
1737 if (i == bc_dir)
then
1738 c_divs(i)%sf(m + j, k, l) = -c_divs(i)%sf(m - (j - 1), k, l)
1740 c_divs(i)%sf(m + j, k, l) = c_divs(i)%sf(m - (j - 1), k, l)
1745 else if (bc_dir == 2)
then
1746 if (bc_loc == -1)
then
1747 do i = 1, num_dims + 1
1749 if (i == bc_dir)
then
1750 c_divs(i)%sf(k, -j, l) = -c_divs(i)%sf(k, j - 1, l)
1752 c_divs(i)%sf(k, -j, l) = c_divs(i)%sf(k, j - 1, l)
1757 do i = 1, num_dims + 1
1759 if (i == bc_dir)
then
1760 c_divs(i)%sf(k, n + j, l) = -c_divs(i)%sf(k, n - (j - 1), l)
1762 c_divs(i)%sf(k, n + j, l) = c_divs(i)%sf(k, n - (j - 1), l)
1767 else if (bc_dir == 3)
then
1768 if (bc_loc == -1)
then
1769 do i = 1, num_dims + 1
1771 if (i == bc_dir)
then
1772 c_divs(i)%sf(k, l, -j) = -c_divs(i)%sf(k, l, j - 1)
1774 c_divs(i)%sf(k, l, -j) = c_divs(i)%sf(k, l, j - 1)
1779 do i = 1, num_dims + 1
1781 if (i == bc_dir)
then
1782 c_divs(i)%sf(k, l, p + j) = -c_divs(i)%sf(k, l, p - (j - 1))
1784 c_divs(i)%sf(k, l, p + j) = c_divs(i)%sf(k, l, p - (j - 1))
2116# 1384 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2118# 1384 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2120# 1384 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2122# 1384 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2124# 1384 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2126# 1384 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2128# 1384 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2130# 1384 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2132# 1384 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2134# 1384 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2136# 1384 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2138# 1384 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2140# 1384 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2142# 1384 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2144# 1384 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2146# 1384 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2148# 1384 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2150 type(
scalar_field),
dimension(num_dims + 1),
intent(inout) :: q_beta
2151 type(
scalar_field),
dimension(num_dims + 1),
intent(inout) :: kahan_comp
2152 integer,
intent(in) :: bc_dir, bc_loc
2153 integer,
intent(in) :: k, l
2154 integer,
intent(in) :: nvar
2156 real(wp) :: y_kahan, t_kahan
2158 if (bc_dir == 1)
then
2159 if (bc_loc == -1)
then
2163 y_kahan = real(q_beta(
beta_vars(i))%sf(m + j + 1, k, l), &
2164 & kind=wp) + kahan_comp(
beta_vars(i))%sf(m + j + 1, k, l) - kahan_comp(
beta_vars(i))%sf(j, &
2166 t_kahan = real(q_beta(
beta_vars(i))%sf(j, k, l), kind=wp) + y_kahan
2167 kahan_comp(
beta_vars(i))%sf(j, k, l) = (t_kahan - q_beta(
beta_vars(i))%sf(j, k, l)) - y_kahan
2168 q_beta(
beta_vars(i))%sf(j, k, l) = t_kahan
2179 else if (bc_dir == 2)
then
2180 if (bc_loc == -1)
then
2183 y_kahan = real(q_beta(
beta_vars(i))%sf(k, n + j + 1, l), kind=wp) + kahan_comp(
beta_vars(i))%sf(k, &
2184 & n + j + 1, l) - kahan_comp(
beta_vars(i))%sf(k, j, l)
2185 t_kahan = real(q_beta(
beta_vars(i))%sf(k, j, l), kind=wp) + y_kahan
2186 kahan_comp(
beta_vars(i))%sf(k, j, l) = (t_kahan - q_beta(
beta_vars(i))%sf(k, j, l)) - y_kahan
2187 q_beta(
beta_vars(i))%sf(k, j, l) = t_kahan
2198 else if (bc_dir == 3)
then
2199 if (bc_loc == -1)
then
2202 y_kahan = real(q_beta(
beta_vars(i))%sf(k, l, p + j + 1), kind=wp) + kahan_comp(
beta_vars(i))%sf(k, l, &
2203 & p + j + 1) - kahan_comp(
beta_vars(i))%sf(k, l, j)
2204 t_kahan = real(q_beta(
beta_vars(i))%sf(k, l, j), kind=wp) + y_kahan
2205 kahan_comp(
beta_vars(i))%sf(k, l, j) = (t_kahan - q_beta(
beta_vars(i))%sf(k, l, j)) - y_kahan
2206 q_beta(
beta_vars(i))%sf(k, l, j) = t_kahan
2313# 1513 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2315# 1513 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2317# 1513 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2319# 1513 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2321# 1513 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2323# 1513 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2325# 1513 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2327# 1513 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2329# 1513 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2331# 1513 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2333# 1513 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2335# 1513 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2337# 1513 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2339# 1513 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2341# 1513 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2343# 1513 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2345# 1513 "/home/runner/work/MFC/MFC/src/common/m_boundary_primitives.fpp"
2347 type(
scalar_field),
dimension(num_dims + 1),
intent(inout) :: q_beta
2348 type(
scalar_field),
dimension(num_dims + 1),
intent(inout) :: kahan_comp
2349 integer,
intent(in) :: bc_dir, bc_loc
2350 integer,
intent(in) :: k, l
2351 integer,
intent(in) :: nvar
2353 real(wp) :: y_kahan, t_kahan
2358 if (bc_dir == 1)
then
2359 if (bc_loc == -1)
then
2362 y_kahan = real(q_beta(
beta_vars(i))%sf(-j, k, l), kind=wp) + kahan_comp(
beta_vars(i))%sf(-j, k, &
2363 & l) - kahan_comp(
beta_vars(i))%sf(j - 1, k, l)
2364 t_kahan = real(q_beta(
beta_vars(i))%sf(j - 1, k, l), kind=wp) + y_kahan
2365 kahan_comp(
beta_vars(i))%sf(j - 1, k, l) = (t_kahan - q_beta(
beta_vars(i))%sf(j - 1, k, l)) - y_kahan
2366 q_beta(
beta_vars(i))%sf(j - 1, k, l) = t_kahan
2376 y_kahan = real(q_beta(
beta_vars(i))%sf(m + j, k, l), kind=wp) + kahan_comp(
beta_vars(i))%sf(m + j, k, &
2377 & l) - kahan_comp(
beta_vars(i))%sf(m - (j - 1), k, l)
2378 t_kahan = real(q_beta(
beta_vars(i))%sf(m - (j - 1), k, l), kind=wp) + y_kahan
2379 kahan_comp(
beta_vars(i))%sf(m - (j - 1), k, l) = (t_kahan - q_beta(
beta_vars(i))%sf(m - (j - 1), k, &
2381 q_beta(
beta_vars(i))%sf(m - (j - 1), k, l) = t_kahan
2385 kahan_comp(
beta_vars(i))%sf(m + j, k, l) = kahan_comp(
beta_vars(i))%sf(m - (j - 1), k, l)
2389 else if (bc_dir == 2)
then
2390 if (bc_loc == -1)
then
2393 y_kahan = real(q_beta(
beta_vars(i))%sf(k, -j, l), kind=wp) + kahan_comp(
beta_vars(i))%sf(k, -j, &
2394 & l) - kahan_comp(
beta_vars(i))%sf(k, j - 1, l)
2395 t_kahan = real(q_beta(
beta_vars(i))%sf(k, j - 1, l), kind=wp) + y_kahan
2396 kahan_comp(
beta_vars(i))%sf(k, j - 1, l) = (t_kahan - q_beta(
beta_vars(i))%sf(k, j - 1, l)) - y_kahan
2397 q_beta(
beta_vars(i))%sf(k, j - 1, l) = t_kahan
2407 y_kahan = real(q_beta(
beta_vars(i))%sf(k, n + j, l), kind=wp) + kahan_comp(
beta_vars(i))%sf(k, n + j, &
2408 & l) - kahan_comp(
beta_vars(i))%sf(k, n - (j - 1), l)
2409 t_kahan = real(q_beta(
beta_vars(i))%sf(k, n - (j - 1), l), kind=wp) + y_kahan
2410 kahan_comp(
beta_vars(i))%sf(k, n - (j - 1), l) = (t_kahan - q_beta(
beta_vars(i))%sf(k, n - (j - 1), &
2412 q_beta(
beta_vars(i))%sf(k, n - (j - 1), l) = t_kahan
2416 kahan_comp(
beta_vars(i))%sf(k, n + j, l) = kahan_comp(
beta_vars(i))%sf(k, n - (j - 1), l)
2420 else if (bc_dir == 3)
then
2421 if (bc_loc == -1)
then
2424 y_kahan = real(q_beta(
beta_vars(i))%sf(k, l, -j), kind=wp) + kahan_comp(
beta_vars(i))%sf(k, l, &
2425 & -j) - kahan_comp(
beta_vars(i))%sf(k, l, j - 1)
2426 t_kahan = real(q_beta(
beta_vars(i))%sf(k, l, j - 1), kind=wp) + y_kahan
2427 kahan_comp(
beta_vars(i))%sf(k, l, j - 1) = (t_kahan - q_beta(
beta_vars(i))%sf(k, l, j - 1)) - y_kahan
2428 q_beta(
beta_vars(i))%sf(k, l, j - 1) = t_kahan
2438 y_kahan = real(q_beta(
beta_vars(i))%sf(k, l, p + j), kind=wp) + kahan_comp(
beta_vars(i))%sf(k, l, &
2439 & p + j) - kahan_comp(
beta_vars(i))%sf(k, l, p - (j - 1))
2440 t_kahan = real(q_beta(
beta_vars(i))%sf(k, l, p - (j - 1)), kind=wp) + y_kahan
2441 kahan_comp(
beta_vars(i))%sf(k, l, p - (j - 1)) = (t_kahan - q_beta(
beta_vars(i))%sf(k, l, &
2442 & p - (j - 1))) - y_kahan
2443 q_beta(
beta_vars(i))%sf(k, l, p - (j - 1)) = t_kahan
2447 kahan_comp(
beta_vars(i))%sf(k, l, p + j) = kahan_comp(
beta_vars(i))%sf(k, l, p - (j - 1))