2289 subroutine s_cbc(q_prim_vf, flux_vf, flux_src_vf, cbc_dir_norm, cbc_loc_norm, ix, iy, iz)
2291 type(scalar_field),
dimension(sys_size),
intent(in) :: q_prim_vf
2292 type(scalar_field),
dimension(sys_size),
intent(inout) :: flux_vf, flux_src_vf
2293 integer,
intent(in) :: cbc_dir_norm, cbc_loc_norm
2294 type(int_bounds_info),
intent(in) :: ix, iy, iz
2296 real(wp) :: dpres_dt
2297 real(wp) :: dgamma_dt
2298 real(wp) :: dpi_inf_dt
2300 real(wp) :: dpres_ds
2302# 480 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2303 real(wp),
dimension(sys_size) ::
l
2304# 482 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2305# 491 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2306 real(wp),
dimension(num_fluids) :: alpha_rho, dalpha_rho_ds, mf
2307 real(wp),
dimension(num_vels) :: vel, dvel_ds
2308 real(wp),
dimension(num_fluids) :: adv_local, dadv_ds
2309 real(wp),
dimension(num_fluids) :: dadv_dt
2310 real(wp),
dimension(num_dims) :: dvel_dt
2311 real(wp),
dimension(num_fluids) :: dalpha_rho_dt
2312 real(wp),
dimension(num_species) :: ys, h_k, dys_dt, dys_ds, xs, gamma_i, cp_i
2313# 499 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2314 real(wp),
dimension(2) :: re_cbc
2315 real(wp),
dimension(3) :: lambda
2325 real(wp) :: t, sum_enthalpies
2326 real(wp) :: cv, cp, e_mix, mw, r_gas
2327 real(wp) :: vel_k_sum, vel_dv_dt_sum
2328 integer :: i,
j,
k, r
2336# 520 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2337#if defined(MFC_OpenACC)
2338# 520 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2340# 520 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2341#elif defined(MFC_OpenMP)
2342# 520 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2344# 520 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2351# 527 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2352 if (
cbc_dir == 1 .and. recon_type == weno_type)
then
2354 if (weno_order == 3)
then
2356 &
is3, idwbuff(2)%beg, idwbuff(3)%beg)
2359# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2361# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2362#if defined(MFC_OpenACC)
2363# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2365# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2366#elif defined(MFC_OpenMP)
2367# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2369# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2371# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2373# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2375# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2386# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2387#if defined(MFC_OpenACC)
2388# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2390# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2391#elif defined(MFC_OpenMP)
2392# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2394# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2396# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2400# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2402# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2403#if defined(MFC_OpenACC)
2404# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2406# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2407#elif defined(MFC_OpenMP)
2408# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2410# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2412# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2414# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2416# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2418 do i = eqn_idx%adv%beg, eqn_idx%adv%end
2427# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2428#if defined(MFC_OpenACC)
2429# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2431# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2432#elif defined(MFC_OpenMP)
2433# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2435# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2437# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2442 if (weno_order == 5)
then
2444 &
is3, idwbuff(2)%beg, idwbuff(3)%beg)
2447# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2449# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2450#if defined(MFC_OpenACC)
2451# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2453# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2454#elif defined(MFC_OpenMP)
2455# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2457# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2459# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2461# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2463# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2479# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2480#if defined(MFC_OpenACC)
2481# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2483# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2484#elif defined(MFC_OpenMP)
2485# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2487# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2489# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2493# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2495# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2496#if defined(MFC_OpenACC)
2497# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2499# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2500#elif defined(MFC_OpenMP)
2501# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2503# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2505# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2507# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2509# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2511 do i = eqn_idx%adv%beg, eqn_idx%adv%end
2526# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2527#if defined(MFC_OpenACC)
2528# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2530# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2531#elif defined(MFC_OpenMP)
2532# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2534# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2536# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2542# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2544# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2545#if defined(MFC_OpenACC)
2546# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2548# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2549#elif defined(MFC_OpenMP)
2550# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2552# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2554# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2556# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2558# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2560# 601 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2565# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2566#if defined(MFC_OpenACC)
2567# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2569# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2570#elif defined(MFC_OpenMP)
2571# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2573# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2575 do i = 1, eqn_idx%cont%end
2580# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2581#if defined(MFC_OpenACC)
2582# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2584# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2585#elif defined(MFC_OpenMP)
2586# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2588# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2596# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2597#if defined(MFC_OpenACC)
2598# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2600# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2601#elif defined(MFC_OpenMP)
2602# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2604# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2607 vel_k_sum = vel_k_sum + vel(i)**2._wp
2613# 622 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2614#if defined(MFC_OpenACC)
2615# 622 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2617# 622 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2618#elif defined(MFC_OpenMP)
2619# 622 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2621# 622 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2623 do i = 1, eqn_idx%adv%end - eqn_idx%E
2627 call s_convert_species_to_mixture_variables_acc(rho, gamma, pi_inf, qv, adv_local, alpha_rho, re_cbc)
2630# 629 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2631#if defined(MFC_OpenACC)
2632# 629 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2634# 629 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2635#elif defined(MFC_OpenMP)
2636# 629 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2638# 629 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2640 do i = 1, eqn_idx%cont%end
2641 mf(i) = alpha_rho(i)/rho
2646# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2647#if defined(MFC_OpenACC)
2648# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2650# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2651#elif defined(MFC_OpenMP)
2652# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2654# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2656 do i = eqn_idx%species%beg, eqn_idx%species%end
2660 call get_mixture_molecular_weight(ys, mw)
2661 r_gas = gas_constant/mw
2663 call get_mixture_specific_heat_cp_mass(t, ys, cp)
2664 call get_mixture_energy_mass(t, ys, e_mix)
2665 e = rho*e_mix + 5.e-1_wp*rho*vel_k_sum
2666 if (chem_params%gamma_method == 1)
then
2668 call get_mole_fractions(mw, ys, xs)
2669 call get_species_specific_heats_r(t, cp_i)
2670 gamma_i = cp_i/(cp_i - 1.0_wp)
2671 gamma = sum(xs(:)/(gamma_i(:) - 1.0_wp))
2672 else if (chem_params%gamma_method == 2)
then
2674 call get_mixture_specific_heat_cv_mass(t, ys, cv)
2675 gamma = 1.0_wp/(cp/cv - 1.0_wp)
2678 e = gamma*pres + pi_inf + 5.e-1_wp*rho*vel_k_sum
2684 call s_compute_speed_of_sound(pres, rho, gamma, pi_inf, h, adv_local, vel_k_sum, 0._wp, c, qv)
2689# 668 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2690#if defined(MFC_OpenACC)
2691# 668 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2693# 668 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2694#elif defined(MFC_OpenMP)
2695# 668 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2697# 668 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2699 do i = 1, eqn_idx%cont%end
2700 dalpha_rho_ds(i) = 0._wp
2704# 673 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2705#if defined(MFC_OpenACC)
2706# 673 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2708# 673 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2709#elif defined(MFC_OpenMP)
2710# 673 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2712# 673 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2720# 679 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2721#if defined(MFC_OpenACC)
2722# 679 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2724# 679 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2725#elif defined(MFC_OpenMP)
2726# 679 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2728# 679 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2730 do i = 1, eqn_idx%adv%end - eqn_idx%E
2736# 685 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2737#if defined(MFC_OpenACC)
2738# 685 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2740# 685 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2741#elif defined(MFC_OpenMP)
2742# 685 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2744# 685 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2746 do i = 1, num_species
2752# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2753#if defined(MFC_OpenACC)
2754# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2756# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2757#elif defined(MFC_OpenMP)
2758# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2760# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2764# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2765#if defined(MFC_OpenACC)
2766# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2768# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2769#elif defined(MFC_OpenMP)
2770# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2772# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2774 do i = 1, eqn_idx%cont%end
2778# 697 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2779#if defined(MFC_OpenACC)
2780# 697 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2782# 697 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2783#elif defined(MFC_OpenMP)
2784# 697 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2786# 697 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2795# 704 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2796#if defined(MFC_OpenACC)
2797# 704 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2799# 704 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2800#elif defined(MFC_OpenMP)
2801# 704 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2803# 704 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2805 do i = 1, eqn_idx%adv%end - eqn_idx%E
2811# 710 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2812#if defined(MFC_OpenACC)
2813# 710 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2815# 710 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2816#elif defined(MFC_OpenMP)
2817# 710 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2819# 710 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2821 do i = 1, num_species
2829 lambda(1) = vel(dir_idx(1)) - c
2830 lambda(2) = vel(dir_idx(1))
2831 lambda(3) = vel(dir_idx(1)) + c
2833 ma = vel(dir_idx(1))/c
2835 if ((
cbc_loc == -1 .and. bc_x%beg == bc_char_slip_wall) .or. (
cbc_loc == 1 &
2836 & .and. bc_x%end == bc_char_slip_wall))
then
2837 call s_compute_slip_wall_l(lambda,
l, rho, c, dpres_ds, dvel_ds)
2838 else if ((
cbc_loc == -1 .and. bc_x%beg == bc_char_nr_sub_buffer) .or. (
cbc_loc == 1 &
2839 & .and. bc_x%end == bc_char_nr_sub_buffer))
then
2840 call s_compute_nonreflecting_subsonic_buffer_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
2841 & dvel_ds, dadv_ds, dys_ds)
2842 else if ((
cbc_loc == -1 .and. bc_x%beg == bc_char_nr_sub_inflow) .or. (
cbc_loc == 1 &
2843 & .and. bc_x%end == bc_char_nr_sub_inflow))
then
2844 call s_compute_nonreflecting_subsonic_inflow_l(lambda,
l, rho, c, dpres_ds, dvel_ds)
2846 if (bc_x%grcbc_in)
then
2848# 737 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2849#if defined(MFC_OpenACC)
2850# 737 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2852# 737 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2853#elif defined(MFC_OpenMP)
2854# 737 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2856# 737 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2858 do i = 2, eqn_idx%mom%beg
2859 l(i) = c**3._wp*ma*(alpha_rho(i - 1) -
alpha_rho_in(i - 1, &
2863 l(eqn_idx%mom%beg + 1) = c*ma*(vel(dir_idx(2)) -
vel_in(1, &
2866 l(eqn_idx%mom%beg + 2) = c*ma*(vel(dir_idx(3)) -
vel_in(1, &
2871# 750 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2872#if defined(MFC_OpenACC)
2873# 750 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2875# 750 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2876#elif defined(MFC_OpenMP)
2877# 750 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2879# 750 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2881 do i = eqn_idx%E, eqn_idx%adv%end - 1
2882 l(i) = c*ma*(adv_local(i + 1 - eqn_idx%E) -
alpha_in(i + 1 - eqn_idx%E, &
2885 l(eqn_idx%adv%end) = rho*c**2._wp*(1._wp + ma)*(vel(dir_idx(1)) +
vel_in(1, &
2886 & dir_idx(1))*sign(1, &
2889 else if ((
cbc_loc == -1 .and. bc_x%beg == bc_char_nr_sub_outflow) .or. (
cbc_loc == 1 &
2890 & .and. bc_x%end == bc_char_nr_sub_outflow))
then
2891 call s_compute_nonreflecting_subsonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
2892 & dvel_ds, dadv_ds, dys_ds)
2894 if (bc_x%grcbc_out)
then
2898 if (bc_x%grcbc_vel_out)
then
2899 l(eqn_idx%adv%end) =
l(eqn_idx%adv%end) + rho*c**2._wp*(1._wp - ma)*(vel(dir_idx(1)) &
2903 else if ((
cbc_loc == -1 .and. bc_x%beg == bc_char_ff_sub_outflow) .or. (
cbc_loc == 1 &
2904 & .and. bc_x%end == bc_char_ff_sub_outflow))
then
2905 call s_compute_force_free_subsonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, &
2907 else if ((
cbc_loc == -1 .and. bc_x%beg == bc_char_cp_sub_outflow) .or. (
cbc_loc == 1 &
2908 & .and. bc_x%end == bc_char_cp_sub_outflow))
then
2909 call s_compute_constant_pressure_subsonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
2911 else if ((
cbc_loc == -1 .and. bc_x%beg == bc_char_sup_inflow) .or. (
cbc_loc == 1 &
2912 & .and. bc_x%end == bc_char_sup_inflow))
then
2913 call s_compute_supersonic_inflow_l(
l)
2914 else if ((
cbc_loc == -1 .and. bc_x%beg == bc_char_sup_outflow) .or. (
cbc_loc == 1 &
2915 & .and. bc_x%end == bc_char_sup_outflow))
then
2916 call s_compute_supersonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, dadv_ds, &
2922 dpres_dt = -5.e-1_wp*(
l(eqn_idx%adv%end) +
l(1)) + rho*c*c*vel(dir_idx(1))/y_cc(n)
2924 dpres_dt = -5.e-1_wp*(
l(eqn_idx%adv%end) +
l(1))
2928# 797 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2929#if defined(MFC_OpenACC)
2930# 797 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2932# 797 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2933#elif defined(MFC_OpenMP)
2934# 797 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2936# 797 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2938 do i = 1, eqn_idx%cont%end
2939 dalpha_rho_dt(i) = -(
l(i + 1) - mf(i)*dpres_dt)/(c*c)
2943# 802 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2944#if defined(MFC_OpenACC)
2945# 802 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2947# 802 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2948#elif defined(MFC_OpenMP)
2949# 802 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2951# 802 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2954 dvel_dt(dir_idx(i)) = dir_flg(dir_idx(i))*(
l(1) -
l(eqn_idx%adv%end))/(2._wp*rho*c) &
2955 & + (dir_flg(dir_idx(i)) - 1._wp)*
l(eqn_idx%mom%beg + i - 1)
2958 vel_dv_dt_sum = 0._wp
2960# 809 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2961#if defined(MFC_OpenACC)
2962# 809 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2964# 809 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2965#elif defined(MFC_OpenMP)
2966# 809 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2968# 809 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2971 vel_dv_dt_sum = vel_dv_dt_sum + vel(i)*dvel_dt(i)
2976# 815 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2977#if defined(MFC_OpenACC)
2978# 815 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2980# 815 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2981#elif defined(MFC_OpenMP)
2982# 815 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2984# 815 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2986 do i = 1, num_species
2987 dys_dt(i) = -1._wp*
l(eqn_idx%species%beg + i - 1)
2994# 823 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2995#if defined(MFC_OpenACC)
2996# 823 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2998# 823 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2999#elif defined(MFC_OpenMP)
3000# 823 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3002# 823 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3004 do i = 1, eqn_idx%adv%end - eqn_idx%E
3005 dadv_dt(i) = -
l(eqn_idx%mom%end + i)
3009# 828 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3010#if defined(MFC_OpenACC)
3011# 828 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3013# 828 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3014#elif defined(MFC_OpenMP)
3015# 828 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3017# 828 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3019 do i = 1, eqn_idx%adv%end - eqn_idx%E
3020 dadv_dt(i) = -
l(eqn_idx%mom%end + i)
3024 drho_dt = 0._wp; dgamma_dt = 0._wp; dpi_inf_dt = 0._wp; dqv_dt = 0._wp
3026 if (model_eqns == model_eqns_gamma_law)
then
3027 drho_dt = dalpha_rho_dt(1)
3028 dgamma_dt = dadv_dt(1)
3029# 840 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3030 dpi_inf_dt = dadv_dt(2)
3031# 842 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3034# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3035#if defined(MFC_OpenACC)
3036# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3038# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3039#elif defined(MFC_OpenMP)
3040# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3042# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3044 do i = 1, num_fluids
3045 drho_dt = drho_dt + dalpha_rho_dt(i)
3046 dgamma_dt = dgamma_dt + dadv_dt(i)*gammas(i)
3047 dpi_inf_dt = dpi_inf_dt + dadv_dt(i)*pi_infs(i)
3048 dqv_dt = dqv_dt + dalpha_rho_dt(i)*qvs(i)
3054# 853 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3055#if defined(MFC_OpenACC)
3056# 853 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3058# 853 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3059#elif defined(MFC_OpenMP)
3060# 853 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3062# 853 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3064 do i = 1, eqn_idx%cont%end
3069# 858 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3070#if defined(MFC_OpenACC)
3071# 858 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3073# 858 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3074#elif defined(MFC_OpenMP)
3075# 858 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3077# 858 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3079 do i = eqn_idx%mom%beg, eqn_idx%mom%end
3081 & i) +
ds(0)*(vel(i - eqn_idx%cont%end)*drho_dt + rho*dvel_dt(i - eqn_idx%cont%end))
3087 call get_species_enthalpies_rt(t, h_k)
3088 sum_enthalpies = 0._wp
3090# 869 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3091#if defined(MFC_OpenACC)
3092# 869 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3094# 869 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3095#elif defined(MFC_OpenMP)
3096# 869 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3098# 869 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3100 do i = 1, num_species
3101 h_k(i) = h_k(i)*gas_constant/molecular_weights(i)*t
3102 sum_enthalpies = sum_enthalpies + (rho*h_k(i) - pres*mw/molecular_weights(i)*cp/r_gas)*dys_dt(i)
3105 & eqn_idx%E) +
ds(0)*((e/rho + pres/rho)*drho_dt + rho*vel_dv_dt_sum + cp*t*
l(2) &
3106 & /(c*c) + sum_enthalpies)
3108# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3109#if defined(MFC_OpenACC)
3110# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3112# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3113#elif defined(MFC_OpenMP)
3114# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3116# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3118 do i = 1, num_species
3120 & eqn_idx%species%beg + i - 1) +
ds(0)*(drho_dt*ys(i) + rho*dys_dt(i))
3124 & eqn_idx%E) +
ds(0)*(pres*dgamma_dt + gamma*dpres_dt + dpi_inf_dt + dqv_dt &
3125 & + rho*vel_dv_dt_sum + 5.e-1_wp*drho_dt*vel_k_sum)
3128 if (riemann_solver == riemann_solver_hll)
then
3130# 889 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3131#if defined(MFC_OpenACC)
3132# 889 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3134# 889 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3135#elif defined(MFC_OpenMP)
3136# 889 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3138# 889 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3140 do i = eqn_idx%adv%beg, eqn_idx%adv%end
3145# 894 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3146#if defined(MFC_OpenACC)
3147# 894 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3149# 894 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3150#elif defined(MFC_OpenMP)
3151# 894 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3153# 894 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3155 do i = eqn_idx%adv%beg, eqn_idx%adv%end
3156 flux_src_rsx_vf_l(-1,
k, r, i) = 1._wp/max(abs(vel(dir_idx(1))), sgm_eps)*sign(1._wp, &
3159 & i) +
ds(0)*dadv_dt(i - eqn_idx%E))
3163# 902 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3164#if defined(MFC_OpenACC)
3165# 902 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3167# 902 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3168#elif defined(MFC_OpenMP)
3169# 902 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3171# 902 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3173 do i = eqn_idx%adv%beg, eqn_idx%adv%end
3178# 907 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3179#if defined(MFC_OpenACC)
3180# 907 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3182# 907 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3183#elif defined(MFC_OpenMP)
3184# 907 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3186# 907 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3188 do i = eqn_idx%adv%beg, eqn_idx%adv%end
3196# 915 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3197#if defined(MFC_OpenACC)
3198# 915 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3200# 915 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3201#elif defined(MFC_OpenMP)
3202# 915 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3204# 915 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3206# 915 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3209# 527 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3210 if (
cbc_dir == 2 .and. recon_type == weno_type)
then
3212 if (weno_order == 3)
then
3214 &
is3, idwbuff(2)%beg, idwbuff(3)%beg)
3217# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3219# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3220#if defined(MFC_OpenACC)
3221# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3223# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3224#elif defined(MFC_OpenMP)
3225# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3227# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3229# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3231# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3233# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3244# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3245#if defined(MFC_OpenACC)
3246# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3248# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3249#elif defined(MFC_OpenMP)
3250# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3252# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3254# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3258# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3260# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3261#if defined(MFC_OpenACC)
3262# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3264# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3265#elif defined(MFC_OpenMP)
3266# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3268# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3270# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3272# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3274# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3276 do i = eqn_idx%adv%beg, eqn_idx%adv%end
3285# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3286#if defined(MFC_OpenACC)
3287# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3289# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3290#elif defined(MFC_OpenMP)
3291# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3293# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3295# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3300 if (weno_order == 5)
then
3302 &
is3, idwbuff(2)%beg, idwbuff(3)%beg)
3305# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3307# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3308#if defined(MFC_OpenACC)
3309# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3311# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3312#elif defined(MFC_OpenMP)
3313# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3315# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3317# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3319# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3321# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3337# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3338#if defined(MFC_OpenACC)
3339# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3341# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3342#elif defined(MFC_OpenMP)
3343# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3345# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3347# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3351# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3353# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3354#if defined(MFC_OpenACC)
3355# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3357# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3358#elif defined(MFC_OpenMP)
3359# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3361# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3363# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3365# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3367# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3369 do i = eqn_idx%adv%beg, eqn_idx%adv%end
3384# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3385#if defined(MFC_OpenACC)
3386# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3388# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3389#elif defined(MFC_OpenMP)
3390# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3392# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3394# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3400# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3402# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3403#if defined(MFC_OpenACC)
3404# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3406# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3407#elif defined(MFC_OpenMP)
3408# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3410# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3412# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3414# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3416# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3418# 601 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3423# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3424#if defined(MFC_OpenACC)
3425# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3427# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3428#elif defined(MFC_OpenMP)
3429# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3431# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3433 do i = 1, eqn_idx%cont%end
3438# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3439#if defined(MFC_OpenACC)
3440# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3442# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3443#elif defined(MFC_OpenMP)
3444# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3446# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3454# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3455#if defined(MFC_OpenACC)
3456# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3458# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3459#elif defined(MFC_OpenMP)
3460# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3462# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3465 vel_k_sum = vel_k_sum + vel(i)**2._wp
3471# 622 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3472#if defined(MFC_OpenACC)
3473# 622 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3475# 622 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3476#elif defined(MFC_OpenMP)
3477# 622 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3479# 622 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3481 do i = 1, eqn_idx%adv%end - eqn_idx%E
3485 call s_convert_species_to_mixture_variables_acc(rho, gamma, pi_inf, qv, adv_local, alpha_rho, re_cbc)
3488# 629 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3489#if defined(MFC_OpenACC)
3490# 629 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3492# 629 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3493#elif defined(MFC_OpenMP)
3494# 629 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3496# 629 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3498 do i = 1, eqn_idx%cont%end
3499 mf(i) = alpha_rho(i)/rho
3504# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3505#if defined(MFC_OpenACC)
3506# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3508# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3509#elif defined(MFC_OpenMP)
3510# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3512# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3514 do i = eqn_idx%species%beg, eqn_idx%species%end
3518 call get_mixture_molecular_weight(ys, mw)
3519 r_gas = gas_constant/mw
3521 call get_mixture_specific_heat_cp_mass(t, ys, cp)
3522 call get_mixture_energy_mass(t, ys, e_mix)
3523 e = rho*e_mix + 5.e-1_wp*rho*vel_k_sum
3524 if (chem_params%gamma_method == 1)
then
3526 call get_mole_fractions(mw, ys, xs)
3527 call get_species_specific_heats_r(t, cp_i)
3528 gamma_i = cp_i/(cp_i - 1.0_wp)
3529 gamma = sum(xs(:)/(gamma_i(:) - 1.0_wp))
3530 else if (chem_params%gamma_method == 2)
then
3532 call get_mixture_specific_heat_cv_mass(t, ys, cv)
3533 gamma = 1.0_wp/(cp/cv - 1.0_wp)
3536 e = gamma*pres + pi_inf + 5.e-1_wp*rho*vel_k_sum
3542 call s_compute_speed_of_sound(pres, rho, gamma, pi_inf, h, adv_local, vel_k_sum, 0._wp, c, qv)
3547# 668 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3548#if defined(MFC_OpenACC)
3549# 668 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3551# 668 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3552#elif defined(MFC_OpenMP)
3553# 668 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3555# 668 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3557 do i = 1, eqn_idx%cont%end
3558 dalpha_rho_ds(i) = 0._wp
3562# 673 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3563#if defined(MFC_OpenACC)
3564# 673 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3566# 673 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3567#elif defined(MFC_OpenMP)
3568# 673 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3570# 673 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3578# 679 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3579#if defined(MFC_OpenACC)
3580# 679 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3582# 679 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3583#elif defined(MFC_OpenMP)
3584# 679 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3586# 679 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3588 do i = 1, eqn_idx%adv%end - eqn_idx%E
3594# 685 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3595#if defined(MFC_OpenACC)
3596# 685 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3598# 685 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3599#elif defined(MFC_OpenMP)
3600# 685 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3602# 685 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3604 do i = 1, num_species
3610# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3611#if defined(MFC_OpenACC)
3612# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3614# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3615#elif defined(MFC_OpenMP)
3616# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3618# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3622# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3623#if defined(MFC_OpenACC)
3624# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3626# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3627#elif defined(MFC_OpenMP)
3628# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3630# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3632 do i = 1, eqn_idx%cont%end
3636# 697 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3637#if defined(MFC_OpenACC)
3638# 697 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3640# 697 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3641#elif defined(MFC_OpenMP)
3642# 697 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3644# 697 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3653# 704 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3654#if defined(MFC_OpenACC)
3655# 704 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3657# 704 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3658#elif defined(MFC_OpenMP)
3659# 704 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3661# 704 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3663 do i = 1, eqn_idx%adv%end - eqn_idx%E
3669# 710 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3670#if defined(MFC_OpenACC)
3671# 710 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3673# 710 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3674#elif defined(MFC_OpenMP)
3675# 710 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3677# 710 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3679 do i = 1, num_species
3687 lambda(1) = vel(dir_idx(1)) - c
3688 lambda(2) = vel(dir_idx(1))
3689 lambda(3) = vel(dir_idx(1)) + c
3691 ma = vel(dir_idx(1))/c
3693 if ((
cbc_loc == -1 .and. bc_y%beg == bc_char_slip_wall) .or. (
cbc_loc == 1 &
3694 & .and. bc_y%end == bc_char_slip_wall))
then
3695 call s_compute_slip_wall_l(lambda,
l, rho, c, dpres_ds, dvel_ds)
3696 else if ((
cbc_loc == -1 .and. bc_y%beg == bc_char_nr_sub_buffer) .or. (
cbc_loc == 1 &
3697 & .and. bc_y%end == bc_char_nr_sub_buffer))
then
3698 call s_compute_nonreflecting_subsonic_buffer_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
3699 & dvel_ds, dadv_ds, dys_ds)
3700 else if ((
cbc_loc == -1 .and. bc_y%beg == bc_char_nr_sub_inflow) .or. (
cbc_loc == 1 &
3701 & .and. bc_y%end == bc_char_nr_sub_inflow))
then
3702 call s_compute_nonreflecting_subsonic_inflow_l(lambda,
l, rho, c, dpres_ds, dvel_ds)
3704 if (bc_y%grcbc_in)
then
3706# 737 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3707#if defined(MFC_OpenACC)
3708# 737 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3710# 737 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3711#elif defined(MFC_OpenMP)
3712# 737 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3714# 737 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3716 do i = 2, eqn_idx%mom%beg
3717 l(i) = c**3._wp*ma*(alpha_rho(i - 1) -
alpha_rho_in(i - 1, &
3721 l(eqn_idx%mom%beg + 1) = c*ma*(vel(dir_idx(2)) -
vel_in(2, &
3724 l(eqn_idx%mom%beg + 2) = c*ma*(vel(dir_idx(3)) -
vel_in(2, &
3729# 750 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3730#if defined(MFC_OpenACC)
3731# 750 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3733# 750 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3734#elif defined(MFC_OpenMP)
3735# 750 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3737# 750 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3739 do i = eqn_idx%E, eqn_idx%adv%end - 1
3740 l(i) = c*ma*(adv_local(i + 1 - eqn_idx%E) -
alpha_in(i + 1 - eqn_idx%E, &
3743 l(eqn_idx%adv%end) = rho*c**2._wp*(1._wp + ma)*(vel(dir_idx(1)) +
vel_in(2, &
3744 & dir_idx(1))*sign(1, &
3747 else if ((
cbc_loc == -1 .and. bc_y%beg == bc_char_nr_sub_outflow) .or. (
cbc_loc == 1 &
3748 & .and. bc_y%end == bc_char_nr_sub_outflow))
then
3749 call s_compute_nonreflecting_subsonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
3750 & dvel_ds, dadv_ds, dys_ds)
3752 if (bc_y%grcbc_out)
then
3756 if (bc_y%grcbc_vel_out)
then
3757 l(eqn_idx%adv%end) =
l(eqn_idx%adv%end) + rho*c**2._wp*(1._wp - ma)*(vel(dir_idx(1)) &
3761 else if ((
cbc_loc == -1 .and. bc_y%beg == bc_char_ff_sub_outflow) .or. (
cbc_loc == 1 &
3762 & .and. bc_y%end == bc_char_ff_sub_outflow))
then
3763 call s_compute_force_free_subsonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, &
3765 else if ((
cbc_loc == -1 .and. bc_y%beg == bc_char_cp_sub_outflow) .or. (
cbc_loc == 1 &
3766 & .and. bc_y%end == bc_char_cp_sub_outflow))
then
3767 call s_compute_constant_pressure_subsonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
3769 else if ((
cbc_loc == -1 .and. bc_y%beg == bc_char_sup_inflow) .or. (
cbc_loc == 1 &
3770 & .and. bc_y%end == bc_char_sup_inflow))
then
3771 call s_compute_supersonic_inflow_l(
l)
3772 else if ((
cbc_loc == -1 .and. bc_y%beg == bc_char_sup_outflow) .or. (
cbc_loc == 1 &
3773 & .and. bc_y%end == bc_char_sup_outflow))
then
3774 call s_compute_supersonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, dadv_ds, &
3780 dpres_dt = -5.e-1_wp*(
l(eqn_idx%adv%end) +
l(1)) + rho*c*c*vel(dir_idx(1))/y_cc(n)
3782 dpres_dt = -5.e-1_wp*(
l(eqn_idx%adv%end) +
l(1))
3786# 797 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3787#if defined(MFC_OpenACC)
3788# 797 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3790# 797 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3791#elif defined(MFC_OpenMP)
3792# 797 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3794# 797 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3796 do i = 1, eqn_idx%cont%end
3797 dalpha_rho_dt(i) = -(
l(i + 1) - mf(i)*dpres_dt)/(c*c)
3801# 802 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3802#if defined(MFC_OpenACC)
3803# 802 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3805# 802 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3806#elif defined(MFC_OpenMP)
3807# 802 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3809# 802 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3812 dvel_dt(dir_idx(i)) = dir_flg(dir_idx(i))*(
l(1) -
l(eqn_idx%adv%end))/(2._wp*rho*c) &
3813 & + (dir_flg(dir_idx(i)) - 1._wp)*
l(eqn_idx%mom%beg + i - 1)
3816 vel_dv_dt_sum = 0._wp
3818# 809 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3819#if defined(MFC_OpenACC)
3820# 809 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3822# 809 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3823#elif defined(MFC_OpenMP)
3824# 809 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3826# 809 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3829 vel_dv_dt_sum = vel_dv_dt_sum + vel(i)*dvel_dt(i)
3834# 815 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3835#if defined(MFC_OpenACC)
3836# 815 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3838# 815 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3839#elif defined(MFC_OpenMP)
3840# 815 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3842# 815 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3844 do i = 1, num_species
3845 dys_dt(i) = -1._wp*
l(eqn_idx%species%beg + i - 1)
3852# 823 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3853#if defined(MFC_OpenACC)
3854# 823 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3856# 823 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3857#elif defined(MFC_OpenMP)
3858# 823 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3860# 823 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3862 do i = 1, eqn_idx%adv%end - eqn_idx%E
3863 dadv_dt(i) = -
l(eqn_idx%mom%end + i)
3867# 828 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3868#if defined(MFC_OpenACC)
3869# 828 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3871# 828 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3872#elif defined(MFC_OpenMP)
3873# 828 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3875# 828 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3877 do i = 1, eqn_idx%adv%end - eqn_idx%E
3878 dadv_dt(i) = -
l(eqn_idx%mom%end + i)
3882 drho_dt = 0._wp; dgamma_dt = 0._wp; dpi_inf_dt = 0._wp; dqv_dt = 0._wp
3884 if (model_eqns == model_eqns_gamma_law)
then
3885 drho_dt = dalpha_rho_dt(1)
3886 dgamma_dt = dadv_dt(1)
3887# 840 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3888 dpi_inf_dt = dadv_dt(2)
3889# 842 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3892# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3893#if defined(MFC_OpenACC)
3894# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3896# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3897#elif defined(MFC_OpenMP)
3898# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3900# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3902 do i = 1, num_fluids
3903 drho_dt = drho_dt + dalpha_rho_dt(i)
3904 dgamma_dt = dgamma_dt + dadv_dt(i)*gammas(i)
3905 dpi_inf_dt = dpi_inf_dt + dadv_dt(i)*pi_infs(i)
3906 dqv_dt = dqv_dt + dalpha_rho_dt(i)*qvs(i)
3912# 853 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3913#if defined(MFC_OpenACC)
3914# 853 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3916# 853 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3917#elif defined(MFC_OpenMP)
3918# 853 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3920# 853 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3922 do i = 1, eqn_idx%cont%end
3927# 858 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3928#if defined(MFC_OpenACC)
3929# 858 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3931# 858 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3932#elif defined(MFC_OpenMP)
3933# 858 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3935# 858 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3937 do i = eqn_idx%mom%beg, eqn_idx%mom%end
3939 & i) +
ds(0)*(vel(i - eqn_idx%cont%end)*drho_dt + rho*dvel_dt(i - eqn_idx%cont%end))
3945 call get_species_enthalpies_rt(t, h_k)
3946 sum_enthalpies = 0._wp
3948# 869 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3949#if defined(MFC_OpenACC)
3950# 869 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3952# 869 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3953#elif defined(MFC_OpenMP)
3954# 869 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3956# 869 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3958 do i = 1, num_species
3959 h_k(i) = h_k(i)*gas_constant/molecular_weights(i)*t
3960 sum_enthalpies = sum_enthalpies + (rho*h_k(i) - pres*mw/molecular_weights(i)*cp/r_gas)*dys_dt(i)
3963 & eqn_idx%E) +
ds(0)*((e/rho + pres/rho)*drho_dt + rho*vel_dv_dt_sum + cp*t*
l(2) &
3964 & /(c*c) + sum_enthalpies)
3966# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3967#if defined(MFC_OpenACC)
3968# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3970# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3971#elif defined(MFC_OpenMP)
3972# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3974# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3976 do i = 1, num_species
3978 & eqn_idx%species%beg + i - 1) +
ds(0)*(drho_dt*ys(i) + rho*dys_dt(i))
3982 & eqn_idx%E) +
ds(0)*(pres*dgamma_dt + gamma*dpres_dt + dpi_inf_dt + dqv_dt &
3983 & + rho*vel_dv_dt_sum + 5.e-1_wp*drho_dt*vel_k_sum)
3986 if (riemann_solver == riemann_solver_hll)
then
3988# 889 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3989#if defined(MFC_OpenACC)
3990# 889 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3992# 889 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3993#elif defined(MFC_OpenMP)
3994# 889 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3996# 889 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3998 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4003# 894 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4004#if defined(MFC_OpenACC)
4005# 894 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4007# 894 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4008#elif defined(MFC_OpenMP)
4009# 894 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4011# 894 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4013 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4014 flux_src_rsy_vf_l(-1,
k, r, i) = 1._wp/max(abs(vel(dir_idx(1))), sgm_eps)*sign(1._wp, &
4017 & i) +
ds(0)*dadv_dt(i - eqn_idx%E))
4021# 902 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4022#if defined(MFC_OpenACC)
4023# 902 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4025# 902 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4026#elif defined(MFC_OpenMP)
4027# 902 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4029# 902 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4031 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4036# 907 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4037#if defined(MFC_OpenACC)
4038# 907 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4040# 907 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4041#elif defined(MFC_OpenMP)
4042# 907 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4044# 907 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4046 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4054# 915 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4055#if defined(MFC_OpenACC)
4056# 915 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4058# 915 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4059#elif defined(MFC_OpenMP)
4060# 915 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4062# 915 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4064# 915 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4067# 527 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4068 if (
cbc_dir == 3 .and. recon_type == weno_type)
then
4070 if (weno_order == 3)
then
4072 &
is3, idwbuff(2)%beg, idwbuff(3)%beg)
4075# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4077# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4078#if defined(MFC_OpenACC)
4079# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4081# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4082#elif defined(MFC_OpenMP)
4083# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4085# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4087# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4089# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4091# 533 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4102# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4103#if defined(MFC_OpenACC)
4104# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4106# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4107#elif defined(MFC_OpenMP)
4108# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4110# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4112# 542 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4116# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4118# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4119#if defined(MFC_OpenACC)
4120# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4122# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4123#elif defined(MFC_OpenMP)
4124# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4126# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4128# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4130# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4132# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4134 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4143# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4144#if defined(MFC_OpenACC)
4145# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4147# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4148#elif defined(MFC_OpenMP)
4149# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4151# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4153# 553 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4158 if (weno_order == 5)
then
4160 &
is3, idwbuff(2)%beg, idwbuff(3)%beg)
4163# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4165# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4166#if defined(MFC_OpenACC)
4167# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4169# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4170#elif defined(MFC_OpenMP)
4171# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4173# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4175# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4177# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4179# 561 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4195# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4196#if defined(MFC_OpenACC)
4197# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4199# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4200#elif defined(MFC_OpenMP)
4201# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4203# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4205# 575 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4209# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4211# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4212#if defined(MFC_OpenACC)
4213# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4215# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4216#elif defined(MFC_OpenMP)
4217# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4219# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4221# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4223# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4225# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4227 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4242# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4243#if defined(MFC_OpenACC)
4244# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4246# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4247#elif defined(MFC_OpenMP)
4248# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4250# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4252# 592 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4258# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4260# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4261#if defined(MFC_OpenACC)
4262# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4264# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4265#elif defined(MFC_OpenMP)
4266# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4268# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4270# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4272# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4274# 596 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4276# 601 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4281# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4282#if defined(MFC_OpenACC)
4283# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4285# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4286#elif defined(MFC_OpenMP)
4287# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4289# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4291 do i = 1, eqn_idx%cont%end
4296# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4297#if defined(MFC_OpenACC)
4298# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4300# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4301#elif defined(MFC_OpenMP)
4302# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4304# 609 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4312# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4313#if defined(MFC_OpenACC)
4314# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4316# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4317#elif defined(MFC_OpenMP)
4318# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4320# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4323 vel_k_sum = vel_k_sum + vel(i)**2._wp
4329# 622 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4330#if defined(MFC_OpenACC)
4331# 622 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4333# 622 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4334#elif defined(MFC_OpenMP)
4335# 622 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4337# 622 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4339 do i = 1, eqn_idx%adv%end - eqn_idx%E
4343 call s_convert_species_to_mixture_variables_acc(rho, gamma, pi_inf, qv, adv_local, alpha_rho, re_cbc)
4346# 629 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4347#if defined(MFC_OpenACC)
4348# 629 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4350# 629 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4351#elif defined(MFC_OpenMP)
4352# 629 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4354# 629 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4356 do i = 1, eqn_idx%cont%end
4357 mf(i) = alpha_rho(i)/rho
4362# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4363#if defined(MFC_OpenACC)
4364# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4366# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4367#elif defined(MFC_OpenMP)
4368# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4370# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4372 do i = eqn_idx%species%beg, eqn_idx%species%end
4376 call get_mixture_molecular_weight(ys, mw)
4377 r_gas = gas_constant/mw
4379 call get_mixture_specific_heat_cp_mass(t, ys, cp)
4380 call get_mixture_energy_mass(t, ys, e_mix)
4381 e = rho*e_mix + 5.e-1_wp*rho*vel_k_sum
4382 if (chem_params%gamma_method == 1)
then
4384 call get_mole_fractions(mw, ys, xs)
4385 call get_species_specific_heats_r(t, cp_i)
4386 gamma_i = cp_i/(cp_i - 1.0_wp)
4387 gamma = sum(xs(:)/(gamma_i(:) - 1.0_wp))
4388 else if (chem_params%gamma_method == 2)
then
4390 call get_mixture_specific_heat_cv_mass(t, ys, cv)
4391 gamma = 1.0_wp/(cp/cv - 1.0_wp)
4394 e = gamma*pres + pi_inf + 5.e-1_wp*rho*vel_k_sum
4400 call s_compute_speed_of_sound(pres, rho, gamma, pi_inf, h, adv_local, vel_k_sum, 0._wp, c, qv)
4405# 668 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4406#if defined(MFC_OpenACC)
4407# 668 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4409# 668 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4410#elif defined(MFC_OpenMP)
4411# 668 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4413# 668 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4415 do i = 1, eqn_idx%cont%end
4416 dalpha_rho_ds(i) = 0._wp
4420# 673 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4421#if defined(MFC_OpenACC)
4422# 673 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4424# 673 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4425#elif defined(MFC_OpenMP)
4426# 673 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4428# 673 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4436# 679 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4437#if defined(MFC_OpenACC)
4438# 679 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4440# 679 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4441#elif defined(MFC_OpenMP)
4442# 679 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4444# 679 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4446 do i = 1, eqn_idx%adv%end - eqn_idx%E
4452# 685 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4453#if defined(MFC_OpenACC)
4454# 685 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4456# 685 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4457#elif defined(MFC_OpenMP)
4458# 685 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4460# 685 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4462 do i = 1, num_species
4468# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4469#if defined(MFC_OpenACC)
4470# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4472# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4473#elif defined(MFC_OpenMP)
4474# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4476# 691 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4480# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4481#if defined(MFC_OpenACC)
4482# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4484# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4485#elif defined(MFC_OpenMP)
4486# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4488# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4490 do i = 1, eqn_idx%cont%end
4494# 697 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4495#if defined(MFC_OpenACC)
4496# 697 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4498# 697 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4499#elif defined(MFC_OpenMP)
4500# 697 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4502# 697 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4511# 704 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4512#if defined(MFC_OpenACC)
4513# 704 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4515# 704 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4516#elif defined(MFC_OpenMP)
4517# 704 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4519# 704 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4521 do i = 1, eqn_idx%adv%end - eqn_idx%E
4527# 710 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4528#if defined(MFC_OpenACC)
4529# 710 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4531# 710 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4532#elif defined(MFC_OpenMP)
4533# 710 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4535# 710 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4537 do i = 1, num_species
4545 lambda(1) = vel(dir_idx(1)) - c
4546 lambda(2) = vel(dir_idx(1))
4547 lambda(3) = vel(dir_idx(1)) + c
4549 ma = vel(dir_idx(1))/c
4551 if ((
cbc_loc == -1 .and. bc_z%beg == bc_char_slip_wall) .or. (
cbc_loc == 1 &
4552 & .and. bc_z%end == bc_char_slip_wall))
then
4553 call s_compute_slip_wall_l(lambda,
l, rho, c, dpres_ds, dvel_ds)
4554 else if ((
cbc_loc == -1 .and. bc_z%beg == bc_char_nr_sub_buffer) .or. (
cbc_loc == 1 &
4555 & .and. bc_z%end == bc_char_nr_sub_buffer))
then
4556 call s_compute_nonreflecting_subsonic_buffer_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
4557 & dvel_ds, dadv_ds, dys_ds)
4558 else if ((
cbc_loc == -1 .and. bc_z%beg == bc_char_nr_sub_inflow) .or. (
cbc_loc == 1 &
4559 & .and. bc_z%end == bc_char_nr_sub_inflow))
then
4560 call s_compute_nonreflecting_subsonic_inflow_l(lambda,
l, rho, c, dpres_ds, dvel_ds)
4562 if (bc_z%grcbc_in)
then
4564# 737 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4565#if defined(MFC_OpenACC)
4566# 737 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4568# 737 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4569#elif defined(MFC_OpenMP)
4570# 737 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4572# 737 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4574 do i = 2, eqn_idx%mom%beg
4575 l(i) = c**3._wp*ma*(alpha_rho(i - 1) -
alpha_rho_in(i - 1, &
4579 l(eqn_idx%mom%beg + 1) = c*ma*(vel(dir_idx(2)) -
vel_in(3, &
4582 l(eqn_idx%mom%beg + 2) = c*ma*(vel(dir_idx(3)) -
vel_in(3, &
4587# 750 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4588#if defined(MFC_OpenACC)
4589# 750 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4591# 750 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4592#elif defined(MFC_OpenMP)
4593# 750 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4595# 750 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4597 do i = eqn_idx%E, eqn_idx%adv%end - 1
4598 l(i) = c*ma*(adv_local(i + 1 - eqn_idx%E) -
alpha_in(i + 1 - eqn_idx%E, &
4601 l(eqn_idx%adv%end) = rho*c**2._wp*(1._wp + ma)*(vel(dir_idx(1)) +
vel_in(3, &
4602 & dir_idx(1))*sign(1, &
4605 else if ((
cbc_loc == -1 .and. bc_z%beg == bc_char_nr_sub_outflow) .or. (
cbc_loc == 1 &
4606 & .and. bc_z%end == bc_char_nr_sub_outflow))
then
4607 call s_compute_nonreflecting_subsonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
4608 & dvel_ds, dadv_ds, dys_ds)
4610 if (bc_z%grcbc_out)
then
4614 if (bc_z%grcbc_vel_out)
then
4615 l(eqn_idx%adv%end) =
l(eqn_idx%adv%end) + rho*c**2._wp*(1._wp - ma)*(vel(dir_idx(1)) &
4619 else if ((
cbc_loc == -1 .and. bc_z%beg == bc_char_ff_sub_outflow) .or. (
cbc_loc == 1 &
4620 & .and. bc_z%end == bc_char_ff_sub_outflow))
then
4621 call s_compute_force_free_subsonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, &
4623 else if ((
cbc_loc == -1 .and. bc_z%beg == bc_char_cp_sub_outflow) .or. (
cbc_loc == 1 &
4624 & .and. bc_z%end == bc_char_cp_sub_outflow))
then
4625 call s_compute_constant_pressure_subsonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
4627 else if ((
cbc_loc == -1 .and. bc_z%beg == bc_char_sup_inflow) .or. (
cbc_loc == 1 &
4628 & .and. bc_z%end == bc_char_sup_inflow))
then
4629 call s_compute_supersonic_inflow_l(
l)
4630 else if ((
cbc_loc == -1 .and. bc_z%beg == bc_char_sup_outflow) .or. (
cbc_loc == 1 &
4631 & .and. bc_z%end == bc_char_sup_outflow))
then
4632 call s_compute_supersonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, dadv_ds, &
4638 dpres_dt = -5.e-1_wp*(
l(eqn_idx%adv%end) +
l(1)) + rho*c*c*vel(dir_idx(1))/y_cc(n)
4640 dpres_dt = -5.e-1_wp*(
l(eqn_idx%adv%end) +
l(1))
4644# 797 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4645#if defined(MFC_OpenACC)
4646# 797 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4648# 797 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4649#elif defined(MFC_OpenMP)
4650# 797 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4652# 797 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4654 do i = 1, eqn_idx%cont%end
4655 dalpha_rho_dt(i) = -(
l(i + 1) - mf(i)*dpres_dt)/(c*c)
4659# 802 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4660#if defined(MFC_OpenACC)
4661# 802 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4663# 802 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4664#elif defined(MFC_OpenMP)
4665# 802 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4667# 802 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4670 dvel_dt(dir_idx(i)) = dir_flg(dir_idx(i))*(
l(1) -
l(eqn_idx%adv%end))/(2._wp*rho*c) &
4671 & + (dir_flg(dir_idx(i)) - 1._wp)*
l(eqn_idx%mom%beg + i - 1)
4674 vel_dv_dt_sum = 0._wp
4676# 809 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4677#if defined(MFC_OpenACC)
4678# 809 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4680# 809 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4681#elif defined(MFC_OpenMP)
4682# 809 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4684# 809 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4687 vel_dv_dt_sum = vel_dv_dt_sum + vel(i)*dvel_dt(i)
4692# 815 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4693#if defined(MFC_OpenACC)
4694# 815 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4696# 815 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4697#elif defined(MFC_OpenMP)
4698# 815 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4700# 815 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4702 do i = 1, num_species
4703 dys_dt(i) = -1._wp*
l(eqn_idx%species%beg + i - 1)
4710# 823 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4711#if defined(MFC_OpenACC)
4712# 823 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4714# 823 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4715#elif defined(MFC_OpenMP)
4716# 823 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4718# 823 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4720 do i = 1, eqn_idx%adv%end - eqn_idx%E
4721 dadv_dt(i) = -
l(eqn_idx%mom%end + i)
4725# 828 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4726#if defined(MFC_OpenACC)
4727# 828 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4729# 828 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4730#elif defined(MFC_OpenMP)
4731# 828 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4733# 828 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4735 do i = 1, eqn_idx%adv%end - eqn_idx%E
4736 dadv_dt(i) = -
l(eqn_idx%mom%end + i)
4740 drho_dt = 0._wp; dgamma_dt = 0._wp; dpi_inf_dt = 0._wp; dqv_dt = 0._wp
4742 if (model_eqns == model_eqns_gamma_law)
then
4743 drho_dt = dalpha_rho_dt(1)
4744 dgamma_dt = dadv_dt(1)
4745# 840 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4746 dpi_inf_dt = dadv_dt(2)
4747# 842 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4750# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4751#if defined(MFC_OpenACC)
4752# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4754# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4755#elif defined(MFC_OpenMP)
4756# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4758# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4760 do i = 1, num_fluids
4761 drho_dt = drho_dt + dalpha_rho_dt(i)
4762 dgamma_dt = dgamma_dt + dadv_dt(i)*gammas(i)
4763 dpi_inf_dt = dpi_inf_dt + dadv_dt(i)*pi_infs(i)
4764 dqv_dt = dqv_dt + dalpha_rho_dt(i)*qvs(i)
4770# 853 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4771#if defined(MFC_OpenACC)
4772# 853 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4774# 853 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4775#elif defined(MFC_OpenMP)
4776# 853 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4778# 853 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4780 do i = 1, eqn_idx%cont%end
4785# 858 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4786#if defined(MFC_OpenACC)
4787# 858 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4789# 858 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4790#elif defined(MFC_OpenMP)
4791# 858 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4793# 858 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4795 do i = eqn_idx%mom%beg, eqn_idx%mom%end
4797 & i) +
ds(0)*(vel(i - eqn_idx%cont%end)*drho_dt + rho*dvel_dt(i - eqn_idx%cont%end))
4803 call get_species_enthalpies_rt(t, h_k)
4804 sum_enthalpies = 0._wp
4806# 869 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4807#if defined(MFC_OpenACC)
4808# 869 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4810# 869 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4811#elif defined(MFC_OpenMP)
4812# 869 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4814# 869 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4816 do i = 1, num_species
4817 h_k(i) = h_k(i)*gas_constant/molecular_weights(i)*t
4818 sum_enthalpies = sum_enthalpies + (rho*h_k(i) - pres*mw/molecular_weights(i)*cp/r_gas)*dys_dt(i)
4821 & eqn_idx%E) +
ds(0)*((e/rho + pres/rho)*drho_dt + rho*vel_dv_dt_sum + cp*t*
l(2) &
4822 & /(c*c) + sum_enthalpies)
4824# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4825#if defined(MFC_OpenACC)
4826# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4828# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4829#elif defined(MFC_OpenMP)
4830# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4832# 877 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4834 do i = 1, num_species
4836 & eqn_idx%species%beg + i - 1) +
ds(0)*(drho_dt*ys(i) + rho*dys_dt(i))
4840 & eqn_idx%E) +
ds(0)*(pres*dgamma_dt + gamma*dpres_dt + dpi_inf_dt + dqv_dt &
4841 & + rho*vel_dv_dt_sum + 5.e-1_wp*drho_dt*vel_k_sum)
4844 if (riemann_solver == riemann_solver_hll)
then
4846# 889 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4847#if defined(MFC_OpenACC)
4848# 889 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4850# 889 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4851#elif defined(MFC_OpenMP)
4852# 889 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4854# 889 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4856 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4861# 894 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4862#if defined(MFC_OpenACC)
4863# 894 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4865# 894 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4866#elif defined(MFC_OpenMP)
4867# 894 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4869# 894 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4871 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4872 flux_src_rsz_vf_l(-1,
k, r, i) = 1._wp/max(abs(vel(dir_idx(1))), sgm_eps)*sign(1._wp, &
4875 & i) +
ds(0)*dadv_dt(i - eqn_idx%E))
4879# 902 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4880#if defined(MFC_OpenACC)
4881# 902 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4883# 902 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4884#elif defined(MFC_OpenMP)
4885# 902 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4887# 902 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4889 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4894# 907 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4895#if defined(MFC_OpenACC)
4896# 907 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4898# 907 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4899#elif defined(MFC_OpenMP)
4900# 907 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4902# 907 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4904 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4912# 915 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4913#if defined(MFC_OpenACC)
4914# 915 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4916# 915 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4917#elif defined(MFC_OpenMP)
4918# 915 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4920# 915 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4922# 915 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4925# 918 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"