529 subroutine s_muscl(v_vf, vL_rs_vf_x, vL_rs_vf_y, vL_rs_vf_z, vR_rs_vf_x, vR_rs_vf_y, vR_rs_vf_z, muscl_dir, is1_muscl_d, &
531 & is2_muscl_d, is3_muscl_d)
533 type(scalar_field),
dimension(1:),
intent(in) :: v_vf
534 real(wp),
dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:),
intent(inout) :: vl_rs_vf_x, vl_rs_vf_y, &
535 & vL_rs_vf_z, vR_rs_vf_x, vR_rs_vf_y, vR_rs_vf_z
536 integer,
intent(in) :: muscl_dir
537 type(int_bounds_info),
intent(in) :: is1_muscl_d, is2_muscl_d, is3_muscl_d
538 integer ::
j,
k,
l, i
539 real(wp) :: slopel, sloper, slope
546# 110 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
547#if defined(MFC_OpenACC)
548# 110 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
550# 110 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
551#elif defined(MFC_OpenMP)
552# 110 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
554# 110 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
557 if (muscl_order /= 1 .or. dummy)
then
561 if (muscl_order == 1 .or. dummy)
then
562 if (muscl_dir == 1)
then
564# 118 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
566# 118 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
567#if defined(MFC_OpenACC)
568# 118 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
570# 118 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
571#elif defined(MFC_OpenMP)
572# 118 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
574# 118 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
576# 118 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
578# 118 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
580# 118 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
582 do i = 1, ubound(v_vf, 1)
586 vl_rs_vf_x(
j,
k,
l, i) = v_vf(i)%sf(
j,
k,
l)
587 vr_rs_vf_x(
j,
k,
l, i) = v_vf(i)%sf(
j,
k,
l)
593# 129 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
594#if defined(MFC_OpenACC)
595# 129 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
597# 129 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
598#elif defined(MFC_OpenMP)
599# 129 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
601# 129 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
603# 129 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
605 else if (muscl_dir == 2)
then
607# 131 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
609# 131 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
610#if defined(MFC_OpenACC)
611# 131 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
613# 131 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
614#elif defined(MFC_OpenMP)
615# 131 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
617# 131 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
619# 131 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
621# 131 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
623# 131 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
625 do i = 1, ubound(v_vf, 1)
629 vl_rs_vf_y(
j,
k,
l, i) = v_vf(i)%sf(
k,
j,
l)
630 vr_rs_vf_y(
j,
k,
l, i) = v_vf(i)%sf(
k,
j,
l)
636# 142 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
637#if defined(MFC_OpenACC)
638# 142 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
640# 142 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
641#elif defined(MFC_OpenMP)
642# 142 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
644# 142 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
646# 142 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
648 else if (muscl_dir == 3)
then
650# 144 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
652# 144 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
653#if defined(MFC_OpenACC)
654# 144 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
656# 144 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
657#elif defined(MFC_OpenMP)
658# 144 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
660# 144 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
662# 144 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
664# 144 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
666# 144 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
668 do i = 1, ubound(v_vf, 1)
672 vl_rs_vf_z(
j,
k,
l, i) = v_vf(i)%sf(
l,
k,
j)
673 vr_rs_vf_z(
j,
k,
l, i) = v_vf(i)%sf(
l,
k,
j)
679# 155 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
680#if defined(MFC_OpenACC)
681# 155 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
683# 155 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
684#elif defined(MFC_OpenMP)
685# 155 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
687# 155 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
689# 155 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
694 if (muscl_order == 2 .or. dummy)
then
696# 162 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
697 if (muscl_dir == 1)
then
699# 163 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
701# 163 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
702#if defined(MFC_OpenACC)
703# 163 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
705# 163 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
706#elif defined(MFC_OpenMP)
707# 163 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
709# 163 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
711# 163 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
713# 163 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
715# 163 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
725 if (muscl_lim == 1)
then
726 if (slopel*sloper > 1e-9_wp)
then
727 slope = min(abs(slopel), abs(sloper))
729 if (slopel < 0._wp) slope = -slope
730 else if (muscl_lim == 2)
then
731 if (slopel*sloper > 1e-9_wp)
then
732 slope = min(2._wp*abs(slopel), 2._wp*abs(sloper))
733 slope = min(slope, 5e-1_wp*(abs(slopel) + abs(sloper)))
735 if (slopel < 0._wp) slope = -slope
736 else if (muscl_lim == 3)
then
737 if (abs(slopel) > 1e-6_wp .and. abs(sloper) > 1e-6_wp .and. abs(slopel + sloper) &
738 & > 1e-6_wp .and. slopel*sloper > 1e-6_wp)
then
739 slope = ((slopel + sloper)*slopel*sloper)/(slopel**2._wp + sloper**2._wp)
741 else if (muscl_lim == 4)
then
742 if (abs(slopel + sloper) > 1.e-6_wp .and. slopel*sloper > 1.e-6_wp)
then
743 slope = 2._wp*slopel*sloper/(slopel + sloper)
745 else if (muscl_lim == 5)
then
746 if (slopel*sloper > 1e-6_wp)
then
747 slope = -1._wp*min(-min(2._wp*abs(slopel), abs(sloper)), -min(abs(slopel), &
748 & 2._wp*abs(sloper)))
762# 208 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
763#if defined(MFC_OpenACC)
764# 208 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
766# 208 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
767#elif defined(MFC_OpenMP)
768# 208 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
770# 208 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
772# 208 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
775# 162 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
776 if (muscl_dir == 2)
then
778# 163 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
780# 163 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
781#if defined(MFC_OpenACC)
782# 163 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
784# 163 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
785#elif defined(MFC_OpenMP)
786# 163 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
788# 163 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
790# 163 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
792# 163 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
794# 163 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
804 if (muscl_lim == 1)
then
805 if (slopel*sloper > 1e-9_wp)
then
806 slope = min(abs(slopel), abs(sloper))
808 if (slopel < 0._wp) slope = -slope
809 else if (muscl_lim == 2)
then
810 if (slopel*sloper > 1e-9_wp)
then
811 slope = min(2._wp*abs(slopel), 2._wp*abs(sloper))
812 slope = min(slope, 5e-1_wp*(abs(slopel) + abs(sloper)))
814 if (slopel < 0._wp) slope = -slope
815 else if (muscl_lim == 3)
then
816 if (abs(slopel) > 1e-6_wp .and. abs(sloper) > 1e-6_wp .and. abs(slopel + sloper) &
817 & > 1e-6_wp .and. slopel*sloper > 1e-6_wp)
then
818 slope = ((slopel + sloper)*slopel*sloper)/(slopel**2._wp + sloper**2._wp)
820 else if (muscl_lim == 4)
then
821 if (abs(slopel + sloper) > 1.e-6_wp .and. slopel*sloper > 1.e-6_wp)
then
822 slope = 2._wp*slopel*sloper/(slopel + sloper)
824 else if (muscl_lim == 5)
then
825 if (slopel*sloper > 1e-6_wp)
then
826 slope = -1._wp*min(-min(2._wp*abs(slopel), abs(sloper)), -min(abs(slopel), &
827 & 2._wp*abs(sloper)))
841# 208 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
842#if defined(MFC_OpenACC)
843# 208 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
845# 208 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
846#elif defined(MFC_OpenMP)
847# 208 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
849# 208 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
851# 208 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
854# 162 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
855 if (muscl_dir == 3)
then
857# 163 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
859# 163 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
860#if defined(MFC_OpenACC)
861# 163 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
863# 163 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
864#elif defined(MFC_OpenMP)
865# 163 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
867# 163 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
869# 163 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
871# 163 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
873# 163 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
883 if (muscl_lim == 1)
then
884 if (slopel*sloper > 1e-9_wp)
then
885 slope = min(abs(slopel), abs(sloper))
887 if (slopel < 0._wp) slope = -slope
888 else if (muscl_lim == 2)
then
889 if (slopel*sloper > 1e-9_wp)
then
890 slope = min(2._wp*abs(slopel), 2._wp*abs(sloper))
891 slope = min(slope, 5e-1_wp*(abs(slopel) + abs(sloper)))
893 if (slopel < 0._wp) slope = -slope
894 else if (muscl_lim == 3)
then
895 if (abs(slopel) > 1e-6_wp .and. abs(sloper) > 1e-6_wp .and. abs(slopel + sloper) &
896 & > 1e-6_wp .and. slopel*sloper > 1e-6_wp)
then
897 slope = ((slopel + sloper)*slopel*sloper)/(slopel**2._wp + sloper**2._wp)
899 else if (muscl_lim == 4)
then
900 if (abs(slopel + sloper) > 1.e-6_wp .and. slopel*sloper > 1.e-6_wp)
then
901 slope = 2._wp*slopel*sloper/(slopel + sloper)
903 else if (muscl_lim == 5)
then
904 if (slopel*sloper > 1e-6_wp)
then
905 slope = -1._wp*min(-min(2._wp*abs(slopel), abs(sloper)), -min(abs(slopel), &
906 & 2._wp*abs(sloper)))
920# 208 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
921#if defined(MFC_OpenACC)
922# 208 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
924# 208 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
925#elif defined(MFC_OpenMP)
926# 208 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
928# 208 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
930# 208 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
933# 211 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
937 call s_interface_compression(vl_rs_vf_x, vl_rs_vf_y, vl_rs_vf_z, vr_rs_vf_x, vr_rs_vf_y, vr_rs_vf_z, muscl_dir, &
938 & is1_muscl_d, is2_muscl_d, is3_muscl_d)
946 & is1_muscl_d, is2_muscl_d, is3_muscl_d)
948 real(wp),
dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:),
intent(inout) :: vl_rs_vf_x, vl_rs_vf_y, &
949 & vL_rs_vf_z, vR_rs_vf_x, vR_rs_vf_y, vR_rs_vf_z
950 integer,
intent(in) :: muscl_dir
951 type(int_bounds_info),
intent(in) :: is1_muscl_d, is2_muscl_d, is3_muscl_d
953 real(wp) :: acl, acr, ac, athinc, qmin, qmax, a, b, c, sign, moncon
955# 233 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
956 if (muscl_dir == 1)
then
958# 234 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
960# 234 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
961#if defined(MFC_OpenACC)
962# 234 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
964# 234 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
965#elif defined(MFC_OpenMP)
966# 234 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
968# 234 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
970# 234 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
972# 234 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
974# 234 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
983 moncon = (acr - ac)*(ac - acl)
985 if (ac >= ic_eps .and. ac <= 1._wp - ic_eps .and. moncon > moncon_cutoff)
then
987 if (acr - acl > 0._wp)
then
994 qmax = max(acr, acl) - qmin
996 c = (ac - qmin + sgm_eps)/(qmax + sgm_eps)
997 b = exp(sign*ic_beta*(2._wp*c - 1._wp))
998 a = (b/cosh(ic_beta) - 1._wp)/tanh(ic_beta)
1001 athinc = qmin + 5e-1_wp*qmax*(1._wp + sign*a)
1002 if (athinc < ic_eps) athinc = ic_eps
1003 if (athinc > 1 - ic_eps) athinc = 1 - ic_eps
1004 vl_rs_vf_x(
j,
k,
l, contxb) = vl_rs_vf_x(
j,
k,
l, contxb)/vl_rs_vf_x(
j,
k, &
1006 vl_rs_vf_x(
j,
k,
l, contxe) = vl_rs_vf_x(
j,
k,
l, &
1007 & contxe)/(1._wp - vl_rs_vf_x(
j,
k,
l, advxb))*(1._wp - athinc)
1008 vl_rs_vf_x(
j,
k,
l, advxb) = athinc
1009 vl_rs_vf_x(
j,
k,
l, advxe) = 1 - athinc
1012 athinc = qmin + 5e-1_wp*qmax*(1._wp + sign*(tanh(ic_beta) + a)/(1._wp + a*tanh(ic_beta)))
1013 if (athinc < ic_eps) athinc = ic_eps
1014 if (athinc > 1 - ic_eps) athinc = 1 - ic_eps
1015 vr_rs_vf_x(
j,
k,
l, contxb) = vl_rs_vf_x(
j,
k,
l, contxb)/vl_rs_vf_x(
j,
k, &
1017 vr_rs_vf_x(
j,
k,
l, contxe) = vl_rs_vf_x(
j,
k,
l, &
1018 & contxe)/(1._wp - vl_rs_vf_x(
j,
k,
l, advxb))*(1._wp - athinc)
1019 vr_rs_vf_x(
j,
k,
l, advxb) = athinc
1020 vr_rs_vf_x(
j,
k,
l, advxe) = 1 - athinc
1026# 284 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1027#if defined(MFC_OpenACC)
1028# 284 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1030# 284 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1031#elif defined(MFC_OpenMP)
1032# 284 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1034# 284 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1036# 284 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1039# 233 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1040 if (muscl_dir == 2)
then
1042# 234 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1044# 234 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1045#if defined(MFC_OpenACC)
1046# 234 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1048# 234 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1049#elif defined(MFC_OpenMP)
1050# 234 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1052# 234 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1054# 234 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1056# 234 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1058# 234 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1067 moncon = (acr - ac)*(ac - acl)
1069 if (ac >= ic_eps .and. ac <= 1._wp - ic_eps .and. moncon > moncon_cutoff)
then
1071 if (acr - acl > 0._wp)
then
1077 qmin = min(acr, acl)
1078 qmax = max(acr, acl) - qmin
1080 c = (ac - qmin + sgm_eps)/(qmax + sgm_eps)
1081 b = exp(sign*ic_beta*(2._wp*c - 1._wp))
1082 a = (b/cosh(ic_beta) - 1._wp)/tanh(ic_beta)
1085 athinc = qmin + 5e-1_wp*qmax*(1._wp + sign*a)
1086 if (athinc < ic_eps) athinc = ic_eps
1087 if (athinc > 1 - ic_eps) athinc = 1 - ic_eps
1088 vl_rs_vf_y(
j,
k,
l, contxb) = vl_rs_vf_y(
j,
k,
l, contxb)/vl_rs_vf_y(
j,
k, &
1090 vl_rs_vf_y(
j,
k,
l, contxe) = vl_rs_vf_y(
j,
k,
l, &
1091 & contxe)/(1._wp - vl_rs_vf_y(
j,
k,
l, advxb))*(1._wp - athinc)
1092 vl_rs_vf_y(
j,
k,
l, advxb) = athinc
1093 vl_rs_vf_y(
j,
k,
l, advxe) = 1 - athinc
1096 athinc = qmin + 5e-1_wp*qmax*(1._wp + sign*(tanh(ic_beta) + a)/(1._wp + a*tanh(ic_beta)))
1097 if (athinc < ic_eps) athinc = ic_eps
1098 if (athinc > 1 - ic_eps) athinc = 1 - ic_eps
1099 vr_rs_vf_y(
j,
k,
l, contxb) = vl_rs_vf_y(
j,
k,
l, contxb)/vl_rs_vf_y(
j,
k, &
1101 vr_rs_vf_y(
j,
k,
l, contxe) = vl_rs_vf_y(
j,
k,
l, &
1102 & contxe)/(1._wp - vl_rs_vf_y(
j,
k,
l, advxb))*(1._wp - athinc)
1103 vr_rs_vf_y(
j,
k,
l, advxb) = athinc
1104 vr_rs_vf_y(
j,
k,
l, advxe) = 1 - athinc
1110# 284 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1111#if defined(MFC_OpenACC)
1112# 284 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1114# 284 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1115#elif defined(MFC_OpenMP)
1116# 284 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1118# 284 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1120# 284 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1123# 233 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1124 if (muscl_dir == 3)
then
1126# 234 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1128# 234 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1129#if defined(MFC_OpenACC)
1130# 234 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1132# 234 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1133#elif defined(MFC_OpenMP)
1134# 234 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1136# 234 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1138# 234 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1140# 234 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1142# 234 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1151 moncon = (acr - ac)*(ac - acl)
1153 if (ac >= ic_eps .and. ac <= 1._wp - ic_eps .and. moncon > moncon_cutoff)
then
1155 if (acr - acl > 0._wp)
then
1161 qmin = min(acr, acl)
1162 qmax = max(acr, acl) - qmin
1164 c = (ac - qmin + sgm_eps)/(qmax + sgm_eps)
1165 b = exp(sign*ic_beta*(2._wp*c - 1._wp))
1166 a = (b/cosh(ic_beta) - 1._wp)/tanh(ic_beta)
1169 athinc = qmin + 5e-1_wp*qmax*(1._wp + sign*a)
1170 if (athinc < ic_eps) athinc = ic_eps
1171 if (athinc > 1 - ic_eps) athinc = 1 - ic_eps
1172 vl_rs_vf_z(
j,
k,
l, contxb) = vl_rs_vf_z(
j,
k,
l, contxb)/vl_rs_vf_z(
j,
k, &
1174 vl_rs_vf_z(
j,
k,
l, contxe) = vl_rs_vf_z(
j,
k,
l, &
1175 & contxe)/(1._wp - vl_rs_vf_z(
j,
k,
l, advxb))*(1._wp - athinc)
1176 vl_rs_vf_z(
j,
k,
l, advxb) = athinc
1177 vl_rs_vf_z(
j,
k,
l, advxe) = 1 - athinc
1180 athinc = qmin + 5e-1_wp*qmax*(1._wp + sign*(tanh(ic_beta) + a)/(1._wp + a*tanh(ic_beta)))
1181 if (athinc < ic_eps) athinc = ic_eps
1182 if (athinc > 1 - ic_eps) athinc = 1 - ic_eps
1183 vr_rs_vf_z(
j,
k,
l, contxb) = vl_rs_vf_z(
j,
k,
l, contxb)/vl_rs_vf_z(
j,
k, &
1185 vr_rs_vf_z(
j,
k,
l, contxe) = vl_rs_vf_z(
j,
k,
l, &
1186 & contxe)/(1._wp - vl_rs_vf_z(
j,
k,
l, advxb))*(1._wp - athinc)
1187 vr_rs_vf_z(
j,
k,
l, advxb) = athinc
1188 vr_rs_vf_z(
j,
k,
l, advxe) = 1 - athinc
1194# 284 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1195#if defined(MFC_OpenACC)
1196# 284 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1198# 284 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1199#elif defined(MFC_OpenMP)
1200# 284 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1202# 284 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1204# 284 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
1207# 287 "/home/runner/work/MFC/MFC/src/simulation/m_muscl.fpp"
subroutine, public s_interface_compression(vl_rs_vf_x, vl_rs_vf_y, vl_rs_vf_z, vr_rs_vf_x, vr_rs_vf_y, vr_rs_vf_z, muscl_dir, is1_muscl_d, is2_muscl_d, is3_muscl_d)
Apply THINC interface-compression to sharpen volume-fraction reconstructions at material interfaces.
subroutine, public s_muscl(v_vf, vl_rs_vf_x, vl_rs_vf_y, vl_rs_vf_z, vr_rs_vf_x, vr_rs_vf_y, vr_rs_vf_z, muscl_dir, is1_muscl_d, is2_muscl_d, is3_muscl_d)
Perform MUSCL reconstruction of left and right cell-boundary values from cell-averaged variables.