734 type(scalar_field),
dimension(:),
intent(in) :: v_vf
736 real(wp) :: nr_x, nr_y, nr_z, nmag, nmax, ac
737 type(int_bounds_info),
dimension(3) :: id_norm
740# 214 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
742# 214 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
743#if defined(MFC_OpenACC)
744# 214 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
746# 214 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
747#elif defined(MFC_OpenMP)
748# 214 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
750# 214 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
752# 214 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
754# 214 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
756# 214 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
758# 215 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
759 do l = idwbuff(3)%beg, idwbuff(3)%end
760 do k = idwbuff(2)%beg, idwbuff(2)%end
761 do j = idwbuff(1)%beg, idwbuff(1)%end
770# 225 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
771#if defined(MFC_OpenACC)
772# 225 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
774# 225 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
775#elif defined(MFC_OpenMP)
776# 225 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
778# 225 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
780# 225 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
782# 226 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
784 id_norm(1)%beg = idwbuff(1)%beg + 1; id_norm(1)%end = idwbuff(1)%end - 1
785 id_norm(2)%beg = 0; id_norm(2)%end = 0
786 id_norm(3)%beg = 0; id_norm(3)%end = 0
788 id_norm(2)%beg = idwbuff(2)%beg + 1; id_norm(2)%end = idwbuff(2)%end - 1
791 id_norm(3)%beg = idwbuff(3)%beg + 1; id_norm(3)%end = idwbuff(3)%end - 1
796# 238 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
798# 238 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
799#if defined(MFC_OpenACC)
800# 238 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
802# 238 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
803#elif defined(MFC_OpenMP)
804# 238 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
806# 238 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
808# 238 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
810# 238 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
812# 238 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
814# 238 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
816# 239 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
817 do l = id_norm(3)%beg, id_norm(3)%end
818 do k = id_norm(2)%beg, id_norm(2)%end
819 do j = id_norm(1)%beg, id_norm(1)%end
820 ac = v_vf(eqn_idx%adv%beg)%sf(
j,
k,
l)
822 if (ac >= ic_eps .and. ac <= 1._wp - ic_eps)
then
823 nr_x = (v_vf(eqn_idx%adv%beg)%sf(
j + 1,
k,
l) - v_vf(eqn_idx%adv%beg)%sf(
j - 1,
k, &
824 &
l))*(x_cb(
j) - x_cb(
j - 1))/(x_cc(
j + 1) - x_cc(
j - 1))
828 nr_y = (v_vf(eqn_idx%adv%beg)%sf(
j,
k + 1,
l) - v_vf(eqn_idx%adv%beg)%sf(
j,
k - 1, &
829 &
l))*(y_cb(
k) - y_cb(
k - 1))/(y_cc(
k + 1) - y_cc(
k - 1))
834 nr_z = (v_vf(eqn_idx%adv%beg)%sf(
j,
k,
l + 1) - v_vf(eqn_idx%adv%beg)%sf(
j,
k, &
835 &
l - 1))*(z_cb(
l) - z_cb(
l - 1))/(z_cc(
l + 1) - z_cc(
l - 1))
838 nmag = sqrt(nr_x*nr_x + nr_y*nr_y + nr_z*nr_z)
840 if (nmag > verysmall)
then
846 nmax = max(abs(nr_x), abs(nr_y), abs(nr_z))
847 if (abs(nr_x) < mthinc_align_tol*nmax) nr_x = 0._wp
848 if (abs(nr_y) < mthinc_align_tol*nmax) nr_y = 0._wp
849 if (abs(nr_z) < mthinc_align_tol*nmax) nr_z = 0._wp
850 nmag = sqrt(nr_x*nr_x + nr_y*nr_y + nr_z*nr_z)
851 if (nmag > verysmall)
then
868# 289 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
869#if defined(MFC_OpenACC)
870# 289 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
872# 289 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
873#elif defined(MFC_OpenMP)
874# 289 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
876# 289 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
878# 289 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
880# 290 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
888 real(wp),
dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:),
intent(in) :: v_rs_ws
889 real(wp),
dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:),
intent(inout) :: vl_rs_vf_x, vr_rs_vf_x
890 integer,
intent(in) :: recon_dir
891 type(int_bounds_info),
intent(in) :: is1_d, is2_d, is3_d
893 real(wp) :: acl, acr, ac, athinc, qmin, qmax, a, b, c
894 real(wp) :: sgn, moncon, beta_eff
895 real(wp) :: nh1, nh2, nh3, d_local, rho1, rho2
896 real(wp) :: rho_b, rho_e
898# 311 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
899# 312 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
900# 313 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
901 if (recon_dir == 1)
then
902# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
904# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
906# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
907#if defined(MFC_OpenACC)
908# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
910# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
911#elif defined(MFC_OpenMP)
912# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
914# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
916# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
918# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
920# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
922# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
924# 316 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
925 do l = is3_d%beg, is3_d%end
926# 317 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
927 do k = is2_d%beg, is2_d%end
928# 318 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
929 do j = is1_d%beg, is1_d%end
930# 319 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
931 acl = v_rs_ws(
j - 1,
k,
l, eqn_idx%adv%beg)
932# 320 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
933 ac = v_rs_ws(
j,
k,
l, eqn_idx%adv%beg)
934# 321 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
935 acr = v_rs_ws(
j + 1,
k,
l, eqn_idx%adv%beg)
936# 322 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
938 if (ac >= ic_eps .and. ac <= 1._wp - ic_eps)
then
939 if (int_comp == int_comp_mthinc .and. n > 0)
then
948 if (nh1*nh1 + nh2*nh2 + nh3*nh3 > 5e-1_wp)
then
949 rho1 = v_rs_ws(
j,
k,
l, eqn_idx%cont%beg)/ac
950# 335 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
951 rho2 = v_rs_ws(
j,
k,
l, eqn_idx%cont%end)/(1._wp - ac)
952# 336 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
956# 339 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
958 if (athinc < ic_eps) athinc = ic_eps
959 if (athinc > 1._wp - ic_eps) athinc = 1._wp - ic_eps
960 vl_rs_vf_x(
j,
k,
l, eqn_idx%cont%beg) = rho1*athinc
961 vl_rs_vf_x(
j,
k,
l, eqn_idx%cont%end) = rho2*(1._wp - athinc)
962 vl_rs_vf_x(
j,
k,
l, eqn_idx%adv%beg) = athinc
963 vl_rs_vf_x(
j,
k,
l, eqn_idx%adv%end) = 1._wp - athinc
967# 349 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
969 if (athinc < ic_eps) athinc = ic_eps
970 if (athinc > 1._wp - ic_eps) athinc = 1._wp - ic_eps
971 vr_rs_vf_x(
j,
k,
l, eqn_idx%cont%beg) = rho1*athinc
972 vr_rs_vf_x(
j,
k,
l, eqn_idx%cont%end) = rho2*(1._wp - athinc)
973 vr_rs_vf_x(
j,
k,
l, eqn_idx%adv%beg) = athinc
974 vr_rs_vf_x(
j,
k,
l, eqn_idx%adv%end) = 1._wp - athinc
977 moncon = (acr - ac)*(ac - acl)
979 if (moncon > moncon_cutoff)
then
980 if (acr - acl > 0._wp)
then
989 qmax = max(acr, acl) - qmin
991 c = (ac - qmin + sgm_eps)/(qmax + sgm_eps)
992 b = exp(sgn*beta_eff*(2._wp*c - 1._wp))
993 a = (b/cosh(beta_eff) - 1._wp)/tanh(beta_eff)
995 rho_b = v_rs_ws(
j,
k,
l, eqn_idx%cont%beg)/ac
996# 377 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
997 rho_e = v_rs_ws(
j,
k,
l, eqn_idx%cont%end)/(1._wp - ac)
998# 378 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1001 athinc = qmin + 5e-1_wp*qmax*(1._wp + sgn*a)
1002 if (athinc < ic_eps) athinc = ic_eps
1003 if (athinc > 1._wp - ic_eps) athinc = 1._wp - ic_eps
1004 vl_rs_vf_x(
j,
k,
l, eqn_idx%cont%beg) = rho_b*athinc
1005 vl_rs_vf_x(
j,
k,
l, eqn_idx%cont%end) = rho_e*(1._wp - athinc)
1006 vl_rs_vf_x(
j,
k,
l, eqn_idx%adv%beg) = athinc
1007 vl_rs_vf_x(
j,
k,
l, eqn_idx%adv%end) = 1._wp - athinc
1010 athinc = qmin + 5e-1_wp*qmax*(1._wp + sgn*(tanh(beta_eff) + a)/(1._wp + a*tanh(beta_eff)))
1011 if (athinc < ic_eps) athinc = ic_eps
1012 if (athinc > 1._wp - ic_eps) athinc = 1._wp - ic_eps
1013 vr_rs_vf_x(
j,
k,
l, eqn_idx%cont%beg) = rho_b*athinc
1014 vr_rs_vf_x(
j,
k,
l, eqn_idx%cont%end) = rho_e*(1._wp - athinc)
1015 vr_rs_vf_x(
j,
k,
l, eqn_idx%adv%beg) = athinc
1016 vr_rs_vf_x(
j,
k,
l, eqn_idx%adv%end) = 1._wp - athinc
1024# 402 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1025#if defined(MFC_OpenACC)
1026# 402 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1028# 402 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1029#elif defined(MFC_OpenMP)
1030# 402 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1032# 402 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1034# 402 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1036# 403 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1038# 311 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1039# 312 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1040# 313 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1041 if (recon_dir == 2)
then
1042# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1044# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1046# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1047#if defined(MFC_OpenACC)
1048# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1050# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1051#elif defined(MFC_OpenMP)
1052# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1054# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1056# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1058# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1060# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1062# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1064# 316 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1065 do l = is3_d%beg, is3_d%end
1066# 317 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1067 do k = is1_d%beg, is1_d%end
1068# 318 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1069 do j = is2_d%beg, is2_d%end
1070# 319 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1071 acl = v_rs_ws(
j,
k - 1,
l, eqn_idx%adv%beg)
1072# 320 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1073 ac = v_rs_ws(
j,
k,
l, eqn_idx%adv%beg)
1074# 321 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1075 acr = v_rs_ws(
j,
k + 1,
l, eqn_idx%adv%beg)
1076# 322 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1078 if (ac >= ic_eps .and. ac <= 1._wp - ic_eps)
then
1079 if (int_comp == int_comp_mthinc .and. n > 0)
then
1088 if (nh1*nh1 + nh2*nh2 + nh3*nh3 > 5e-1_wp)
then
1089 rho1 = v_rs_ws(
j,
k,
l, eqn_idx%cont%beg)/ac
1090# 335 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1091 rho2 = v_rs_ws(
j,
k,
l, eqn_idx%cont%end)/(1._wp - ac)
1092# 336 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1096# 339 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1098 if (athinc < ic_eps) athinc = ic_eps
1099 if (athinc > 1._wp - ic_eps) athinc = 1._wp - ic_eps
1100 vl_rs_vf_x(
j,
k,
l, eqn_idx%cont%beg) = rho1*athinc
1101 vl_rs_vf_x(
j,
k,
l, eqn_idx%cont%end) = rho2*(1._wp - athinc)
1102 vl_rs_vf_x(
j,
k,
l, eqn_idx%adv%beg) = athinc
1103 vl_rs_vf_x(
j,
k,
l, eqn_idx%adv%end) = 1._wp - athinc
1107# 349 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1109 if (athinc < ic_eps) athinc = ic_eps
1110 if (athinc > 1._wp - ic_eps) athinc = 1._wp - ic_eps
1111 vr_rs_vf_x(
j,
k,
l, eqn_idx%cont%beg) = rho1*athinc
1112 vr_rs_vf_x(
j,
k,
l, eqn_idx%cont%end) = rho2*(1._wp - athinc)
1113 vr_rs_vf_x(
j,
k,
l, eqn_idx%adv%beg) = athinc
1114 vr_rs_vf_x(
j,
k,
l, eqn_idx%adv%end) = 1._wp - athinc
1117 moncon = (acr - ac)*(ac - acl)
1119 if (moncon > moncon_cutoff)
then
1120 if (acr - acl > 0._wp)
then
1128 qmin = min(acr, acl)
1129 qmax = max(acr, acl) - qmin
1131 c = (ac - qmin + sgm_eps)/(qmax + sgm_eps)
1132 b = exp(sgn*beta_eff*(2._wp*c - 1._wp))
1133 a = (b/cosh(beta_eff) - 1._wp)/tanh(beta_eff)
1135 rho_b = v_rs_ws(
j,
k,
l, eqn_idx%cont%beg)/ac
1136# 377 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1137 rho_e = v_rs_ws(
j,
k,
l, eqn_idx%cont%end)/(1._wp - ac)
1138# 378 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1141 athinc = qmin + 5e-1_wp*qmax*(1._wp + sgn*a)
1142 if (athinc < ic_eps) athinc = ic_eps
1143 if (athinc > 1._wp - ic_eps) athinc = 1._wp - ic_eps
1144 vl_rs_vf_x(
j,
k,
l, eqn_idx%cont%beg) = rho_b*athinc
1145 vl_rs_vf_x(
j,
k,
l, eqn_idx%cont%end) = rho_e*(1._wp - athinc)
1146 vl_rs_vf_x(
j,
k,
l, eqn_idx%adv%beg) = athinc
1147 vl_rs_vf_x(
j,
k,
l, eqn_idx%adv%end) = 1._wp - athinc
1150 athinc = qmin + 5e-1_wp*qmax*(1._wp + sgn*(tanh(beta_eff) + a)/(1._wp + a*tanh(beta_eff)))
1151 if (athinc < ic_eps) athinc = ic_eps
1152 if (athinc > 1._wp - ic_eps) athinc = 1._wp - ic_eps
1153 vr_rs_vf_x(
j,
k,
l, eqn_idx%cont%beg) = rho_b*athinc
1154 vr_rs_vf_x(
j,
k,
l, eqn_idx%cont%end) = rho_e*(1._wp - athinc)
1155 vr_rs_vf_x(
j,
k,
l, eqn_idx%adv%beg) = athinc
1156 vr_rs_vf_x(
j,
k,
l, eqn_idx%adv%end) = 1._wp - athinc
1164# 402 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1165#if defined(MFC_OpenACC)
1166# 402 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1168# 402 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1169#elif defined(MFC_OpenMP)
1170# 402 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1172# 402 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1174# 402 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1176# 403 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1178# 311 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1179# 312 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1180# 313 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1181 if (recon_dir == 3)
then
1182# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1184# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1186# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1187#if defined(MFC_OpenACC)
1188# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1190# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1191#elif defined(MFC_OpenMP)
1192# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1194# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1196# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1198# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1200# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1202# 314 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1204# 316 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1205 do l = is1_d%beg, is1_d%end
1206# 317 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1207 do k = is2_d%beg, is2_d%end
1208# 318 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1209 do j = is3_d%beg, is3_d%end
1210# 319 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1211 acl = v_rs_ws(
j,
k,
l - 1, eqn_idx%adv%beg)
1212# 320 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1213 ac = v_rs_ws(
j,
k,
l, eqn_idx%adv%beg)
1214# 321 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1215 acr = v_rs_ws(
j,
k,
l + 1, eqn_idx%adv%beg)
1216# 322 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1218 if (ac >= ic_eps .and. ac <= 1._wp - ic_eps)
then
1219 if (int_comp == int_comp_mthinc .and. n > 0)
then
1228 if (nh1*nh1 + nh2*nh2 + nh3*nh3 > 5e-1_wp)
then
1229 rho1 = v_rs_ws(
j,
k,
l, eqn_idx%cont%beg)/ac
1230# 335 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1231 rho2 = v_rs_ws(
j,
k,
l, eqn_idx%cont%end)/(1._wp - ac)
1232# 336 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1236# 339 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1238 if (athinc < ic_eps) athinc = ic_eps
1239 if (athinc > 1._wp - ic_eps) athinc = 1._wp - ic_eps
1240 vl_rs_vf_x(
j,
k,
l, eqn_idx%cont%beg) = rho1*athinc
1241 vl_rs_vf_x(
j,
k,
l, eqn_idx%cont%end) = rho2*(1._wp - athinc)
1242 vl_rs_vf_x(
j,
k,
l, eqn_idx%adv%beg) = athinc
1243 vl_rs_vf_x(
j,
k,
l, eqn_idx%adv%end) = 1._wp - athinc
1247# 349 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1249 if (athinc < ic_eps) athinc = ic_eps
1250 if (athinc > 1._wp - ic_eps) athinc = 1._wp - ic_eps
1251 vr_rs_vf_x(
j,
k,
l, eqn_idx%cont%beg) = rho1*athinc
1252 vr_rs_vf_x(
j,
k,
l, eqn_idx%cont%end) = rho2*(1._wp - athinc)
1253 vr_rs_vf_x(
j,
k,
l, eqn_idx%adv%beg) = athinc
1254 vr_rs_vf_x(
j,
k,
l, eqn_idx%adv%end) = 1._wp - athinc
1257 moncon = (acr - ac)*(ac - acl)
1259 if (moncon > moncon_cutoff)
then
1260 if (acr - acl > 0._wp)
then
1268 qmin = min(acr, acl)
1269 qmax = max(acr, acl) - qmin
1271 c = (ac - qmin + sgm_eps)/(qmax + sgm_eps)
1272 b = exp(sgn*beta_eff*(2._wp*c - 1._wp))
1273 a = (b/cosh(beta_eff) - 1._wp)/tanh(beta_eff)
1275 rho_b = v_rs_ws(
j,
k,
l, eqn_idx%cont%beg)/ac
1276# 377 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1277 rho_e = v_rs_ws(
j,
k,
l, eqn_idx%cont%end)/(1._wp - ac)
1278# 378 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1281 athinc = qmin + 5e-1_wp*qmax*(1._wp + sgn*a)
1282 if (athinc < ic_eps) athinc = ic_eps
1283 if (athinc > 1._wp - ic_eps) athinc = 1._wp - ic_eps
1284 vl_rs_vf_x(
j,
k,
l, eqn_idx%cont%beg) = rho_b*athinc
1285 vl_rs_vf_x(
j,
k,
l, eqn_idx%cont%end) = rho_e*(1._wp - athinc)
1286 vl_rs_vf_x(
j,
k,
l, eqn_idx%adv%beg) = athinc
1287 vl_rs_vf_x(
j,
k,
l, eqn_idx%adv%end) = 1._wp - athinc
1290 athinc = qmin + 5e-1_wp*qmax*(1._wp + sgn*(tanh(beta_eff) + a)/(1._wp + a*tanh(beta_eff)))
1291 if (athinc < ic_eps) athinc = ic_eps
1292 if (athinc > 1._wp - ic_eps) athinc = 1._wp - ic_eps
1293 vr_rs_vf_x(
j,
k,
l, eqn_idx%cont%beg) = rho_b*athinc
1294 vr_rs_vf_x(
j,
k,
l, eqn_idx%cont%end) = rho_e*(1._wp - athinc)
1295 vr_rs_vf_x(
j,
k,
l, eqn_idx%adv%beg) = athinc
1296 vr_rs_vf_x(
j,
k,
l, eqn_idx%adv%end) = 1._wp - athinc
1304# 402 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1305#if defined(MFC_OpenACC)
1306# 402 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1308# 402 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1309#elif defined(MFC_OpenMP)
1310# 402 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1312# 402 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1314# 402 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1316# 403 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"
1318# 405 "/home/runner/work/MFC/MFC/src/simulation/m_thinc.fpp"