2309 subroutine s_cbc(q_prim_vf, flux_vf, flux_src_vf, cbc_dir_norm, cbc_loc_norm, ix, iy, iz)
2311 type(scalar_field),
dimension(sys_size),
intent(in) :: q_prim_vf
2312 type(scalar_field),
dimension(sys_size),
intent(inout) :: flux_vf, flux_src_vf
2313 integer,
intent(in) :: cbc_dir_norm, cbc_loc_norm
2314 type(int_bounds_info),
intent(in) :: ix, iy, iz
2316 real(wp) :: dpres_dt
2317 real(wp) :: dgamma_dt
2318 real(wp) :: dpi_inf_dt
2320 real(wp) :: dpres_ds
2323# 483 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2324 real(wp),
dimension(sys_size) ::
l
2325# 485 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2326# 494 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2327 real(wp),
dimension(num_fluids) :: alpha_rho, dalpha_rho_ds, mf
2328 real(wp),
dimension(num_vels) :: vel, dvel_ds
2329 real(wp),
dimension(num_fluids) :: adv_local, dadv_ds
2330 real(wp),
dimension(num_fluids) :: dadv_dt
2331 real(wp),
dimension(num_dims) :: dvel_dt
2332 real(wp),
dimension(num_fluids) :: dalpha_rho_dt
2333 real(wp),
dimension(num_species) :: ys, h_k, dys_dt, dys_ds, xs, gamma_i, cp_i
2334# 502 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2335 real(wp),
dimension(2) :: re_cbc
2336 real(wp),
dimension(3) :: lambda
2345 real(wp) :: t, sum_enthalpies
2346 real(wp) :: cv, cp, e_mix, mw, r_gas
2347 real(wp) :: vel_k_sum, vel_dv_dt_sum
2348 integer :: i,
j,
k, r
2356# 522 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2357#if defined(MFC_OpenACC)
2358# 522 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2360# 522 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2361#elif defined(MFC_OpenMP)
2362# 522 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2364# 522 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2371# 529 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2372 if (
cbc_dir == 1 .and. recon_type == recon_type_weno)
then
2374 if (weno_order == 3)
then
2376 &
is3, idwbuff(2)%beg, idwbuff(3)%beg, dir_idx, dir_flg, hll_u_interface)
2379# 535 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2381# 535 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2382#if defined(MFC_OpenACC)
2383# 535 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2385# 535 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2386#elif defined(MFC_OpenMP)
2387# 535 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2389# 535 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2391# 535 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2393# 535 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2395# 535 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2406# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2407#if defined(MFC_OpenACC)
2408# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2410# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2411#elif defined(MFC_OpenMP)
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"
2420# 546 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2422# 546 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2423#if defined(MFC_OpenACC)
2424# 546 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2426# 546 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2427#elif defined(MFC_OpenMP)
2428# 546 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2430# 546 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2432# 546 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2434# 546 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2436# 546 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2438 do i = eqn_idx%adv%beg, eqn_idx%adv%end
2447# 555 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2448#if defined(MFC_OpenACC)
2449# 555 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2451# 555 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2452#elif defined(MFC_OpenMP)
2453# 555 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2455# 555 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2457# 555 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2462 if (weno_order == 5)
then
2464 &
is3, idwbuff(2)%beg, idwbuff(3)%beg, dir_idx, dir_flg, hll_u_interface)
2467# 563 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2469# 563 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2470#if defined(MFC_OpenACC)
2471# 563 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2473# 563 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2474#elif defined(MFC_OpenMP)
2475# 563 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2477# 563 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2479# 563 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2481# 563 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2483# 563 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2499# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2500#if defined(MFC_OpenACC)
2501# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2503# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2504#elif defined(MFC_OpenMP)
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"
2513# 579 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2515# 579 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2516#if defined(MFC_OpenACC)
2517# 579 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2519# 579 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2520#elif defined(MFC_OpenMP)
2521# 579 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2523# 579 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2525# 579 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2527# 579 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2529# 579 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2531 do i = eqn_idx%adv%beg, eqn_idx%adv%end
2546# 594 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2547#if defined(MFC_OpenACC)
2548# 594 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2550# 594 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2551#elif defined(MFC_OpenMP)
2552# 594 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2554# 594 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2556# 594 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2562# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2564# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2565#if defined(MFC_OpenACC)
2566# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2568# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2570# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2572# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2573#elif defined(MFC_OpenMP)
2574# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2576# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2578# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2580# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2582# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2584# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2586# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2588# 603 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2593 ramp = f_vel_ramp(bc_x%vel_in_ramp, bc_x%vel_in_t0, bc_x%vel_in_frac0, mytime)
2597# 610 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2598#if defined(MFC_OpenACC)
2599# 610 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2601# 610 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2602#elif defined(MFC_OpenMP)
2603# 610 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2605# 610 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2607 do i = 1, eqn_idx%cont%end
2612# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2613#if defined(MFC_OpenACC)
2614# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2616# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2617#elif defined(MFC_OpenMP)
2618# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2620# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2628# 621 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2629#if defined(MFC_OpenACC)
2630# 621 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2632# 621 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2633#elif defined(MFC_OpenMP)
2634# 621 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2636# 621 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2639 vel_k_sum = vel_k_sum + vel(i)**2._wp
2645# 628 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2646#if defined(MFC_OpenACC)
2647# 628 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2649# 628 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2650#elif defined(MFC_OpenMP)
2651# 628 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2653# 628 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2655 do i = 1, eqn_idx%adv%end - eqn_idx%E
2659 call s_convert_species_to_mixture_variables_kernel(rho, gamma, pi_inf, qv, adv_local, alpha_rho, re_cbc)
2662# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2663#if defined(MFC_OpenACC)
2664# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2666# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2667#elif defined(MFC_OpenMP)
2668# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2670# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2672 do i = 1, eqn_idx%cont%end
2673 mf(i) = alpha_rho(i)/rho
2678# 641 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2679#if defined(MFC_OpenACC)
2680# 641 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2682# 641 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2683#elif defined(MFC_OpenMP)
2684# 641 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2686# 641 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2688 do i = eqn_idx%species%beg, eqn_idx%species%end
2692 call get_mixture_molecular_weight(ys, mw)
2693 r_gas = gas_constant/mw
2695 call get_mixture_specific_heat_cp_mass(t, ys, cp)
2696 call get_mixture_energy_mass(t, ys, e_mix)
2697 e = rho*e_mix + 5.e-1_wp*rho*vel_k_sum
2698 if (chem_params%gamma_method == 1)
then
2700 call get_mole_fractions(mw, ys, xs)
2701 call get_species_specific_heats_r(t, cp_i)
2702 gamma_i(1:num_species) = cp_i(1:num_species)/(cp_i(1:num_species) - 1.0_wp)
2703 gamma = sum(xs(1:num_species)/(gamma_i(1:num_species) - 1.0_wp))
2704 else if (chem_params%gamma_method == 2)
then
2706 call get_mixture_specific_heat_cv_mass(t, ys, cv)
2707 gamma = 1.0_wp/(cp/cv - 1.0_wp)
2712 call s_compute_speed_of_sound(pres, rho, gamma, pi_inf, adv_local, c, alpha_rho)
2717# 670 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2718#if defined(MFC_OpenACC)
2719# 670 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2721# 670 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2722#elif defined(MFC_OpenMP)
2723# 670 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2725# 670 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2727 do i = 1, eqn_idx%cont%end
2728 dalpha_rho_ds(i) = 0._wp
2732# 675 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2733#if defined(MFC_OpenACC)
2734# 675 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2736# 675 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2737#elif defined(MFC_OpenMP)
2738# 675 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2740# 675 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2748# 681 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2749#if defined(MFC_OpenACC)
2750# 681 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2752# 681 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2753#elif defined(MFC_OpenMP)
2754# 681 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2756# 681 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2758 do i = 1, eqn_idx%adv%end - eqn_idx%E
2764# 687 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2765#if defined(MFC_OpenACC)
2766# 687 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2768# 687 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2769#elif defined(MFC_OpenMP)
2770# 687 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2772# 687 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2774 do i = 1, num_species
2780# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2781#if defined(MFC_OpenACC)
2782# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2784# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2785#elif defined(MFC_OpenMP)
2786# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2788# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2792# 695 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2793#if defined(MFC_OpenACC)
2794# 695 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2796# 695 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2797#elif defined(MFC_OpenMP)
2798# 695 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2800# 695 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2802 do i = 1, eqn_idx%cont%end
2806# 699 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2807#if defined(MFC_OpenACC)
2808# 699 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2810# 699 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2811#elif defined(MFC_OpenMP)
2812# 699 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2814# 699 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2823# 706 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2824#if defined(MFC_OpenACC)
2825# 706 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2827# 706 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2828#elif defined(MFC_OpenMP)
2829# 706 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2831# 706 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2833 do i = 1, eqn_idx%adv%end - eqn_idx%E
2839# 712 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2840#if defined(MFC_OpenACC)
2841# 712 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2843# 712 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2844#elif defined(MFC_OpenMP)
2845# 712 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2847# 712 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2849 do i = 1, num_species
2857 lambda(1) = vel(dir_idx(1)) - c
2858 lambda(2) = vel(dir_idx(1))
2859 lambda(3) = vel(dir_idx(1)) + c
2861 ma = vel(dir_idx(1))/c
2863 if ((
cbc_loc == -1 .and. bc_x%beg == bc_char_slip_wall) .or. (
cbc_loc == 1 &
2864 & .and. bc_x%end == bc_char_slip_wall))
then
2865 call s_compute_slip_wall_l(lambda,
l, rho, c, dpres_ds, dvel_ds)
2866 else if ((
cbc_loc == -1 .and. bc_x%beg == bc_char_nr_sub_buffer) .or. (
cbc_loc == 1 &
2867 & .and. bc_x%end == bc_char_nr_sub_buffer))
then
2868 call s_compute_nonreflecting_subsonic_buffer_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
2869 & dvel_ds, dadv_ds, dys_ds)
2870 else if ((
cbc_loc == -1 .and. bc_x%beg == bc_char_nr_sub_inflow) .or. (
cbc_loc == 1 &
2871 & .and. bc_x%end == bc_char_nr_sub_inflow))
then
2872 call s_compute_nonreflecting_subsonic_inflow_l(lambda,
l, rho, c, dpres_ds, dvel_ds)
2874 if (bc_x%grcbc_in)
then
2876# 739 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2877#if defined(MFC_OpenACC)
2878# 739 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2880# 739 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2881#elif defined(MFC_OpenMP)
2882# 739 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2884# 739 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2886 do i = 2, eqn_idx%mom%beg
2887 l(i) = c**3._wp*ma*(alpha_rho(i - 1) -
alpha_rho_in(i - 1, &
2891 l(eqn_idx%mom%beg + 1) = c*ma*(vel(dir_idx(2)) - ramp*
vel_in(1, &
2894 l(eqn_idx%mom%beg + 2) = c*ma*(vel(dir_idx(3)) - ramp*
vel_in(1, &
2899# 752 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2900#if defined(MFC_OpenACC)
2901# 752 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2903# 752 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2904#elif defined(MFC_OpenMP)
2905# 752 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2907# 752 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2909 do i = eqn_idx%E, eqn_idx%adv%end - 1
2910 l(i) = c*ma*(adv_local(i + 1 - eqn_idx%E) -
alpha_in(i + 1 - eqn_idx%E, &
2913 l(eqn_idx%adv%end) = rho*c**2._wp*(1._wp + ma)*(vel(dir_idx(1)) + ramp*
vel_in(1, &
2914 & dir_idx(1))*sign(1, &
2917 else if ((
cbc_loc == -1 .and. bc_x%beg == bc_char_nr_sub_outflow) .or. (
cbc_loc == 1 &
2918 & .and. bc_x%end == bc_char_nr_sub_outflow))
then
2919 call s_compute_nonreflecting_subsonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
2920 & dvel_ds, dadv_ds, dys_ds)
2922 if (bc_x%grcbc_out)
then
2926 if (bc_x%grcbc_vel_out)
then
2927 l(eqn_idx%adv%end) =
l(eqn_idx%adv%end) + rho*c**2._wp*(1._wp - ma)*(vel(dir_idx(1)) &
2931 else if ((
cbc_loc == -1 .and. bc_x%beg == bc_char_ff_sub_outflow) .or. (
cbc_loc == 1 &
2932 & .and. bc_x%end == bc_char_ff_sub_outflow))
then
2933 call s_compute_force_free_subsonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, &
2935 else if ((
cbc_loc == -1 .and. bc_x%beg == bc_char_cp_sub_outflow) .or. (
cbc_loc == 1 &
2936 & .and. bc_x%end == bc_char_cp_sub_outflow))
then
2937 call s_compute_constant_pressure_subsonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
2939 else if ((
cbc_loc == -1 .and. bc_x%beg == bc_char_sup_inflow) .or. (
cbc_loc == 1 &
2940 & .and. bc_x%end == bc_char_sup_inflow))
then
2941 call s_compute_supersonic_inflow_l(
l)
2942 else if ((
cbc_loc == -1 .and. bc_x%beg == bc_char_sup_outflow) .or. (
cbc_loc == 1 &
2943 & .and. bc_x%end == bc_char_sup_outflow))
then
2944 call s_compute_supersonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, dadv_ds, &
2950 dpres_dt = -5.e-1_wp*(
l(eqn_idx%adv%end) +
l(1)) + rho*c*c*vel(dir_idx(1))/y_cc(n)
2952 dpres_dt = -5.e-1_wp*(
l(eqn_idx%adv%end) +
l(1))
2956# 799 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2957#if defined(MFC_OpenACC)
2958# 799 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2960# 799 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2961#elif defined(MFC_OpenMP)
2962# 799 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2964# 799 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2966 do i = 1, eqn_idx%cont%end
2967 dalpha_rho_dt(i) = -(
l(i + 1) - mf(i)*dpres_dt)/(c*c)
2971# 804 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2972#if defined(MFC_OpenACC)
2973# 804 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2975# 804 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2976#elif defined(MFC_OpenMP)
2977# 804 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2979# 804 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2982 dvel_dt(dir_idx(i)) = dir_flg(dir_idx(i))*(
l(1) -
l(eqn_idx%adv%end))/(2._wp*rho*c) &
2983 & + (dir_flg(dir_idx(i)) - 1._wp)*
l(eqn_idx%mom%beg + i - 1)
2986 vel_dv_dt_sum = 0._wp
2988# 811 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2989#if defined(MFC_OpenACC)
2990# 811 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2992# 811 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2993#elif defined(MFC_OpenMP)
2994# 811 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2996# 811 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2999 vel_dv_dt_sum = vel_dv_dt_sum + vel(i)*dvel_dt(i)
3004# 817 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3005#if defined(MFC_OpenACC)
3006# 817 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3008# 817 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3009#elif defined(MFC_OpenMP)
3010# 817 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3012# 817 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3014 do i = 1, num_species
3015 dys_dt(i) = -1._wp*
l(eqn_idx%species%beg + i - 1)
3022# 825 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3023#if defined(MFC_OpenACC)
3024# 825 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3026# 825 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3027#elif defined(MFC_OpenMP)
3028# 825 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3030# 825 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3032 do i = 1, eqn_idx%adv%end - eqn_idx%E
3033 dadv_dt(i) = -
l(eqn_idx%mom%end + i)
3037# 830 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3038#if defined(MFC_OpenACC)
3039# 830 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3041# 830 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3042#elif defined(MFC_OpenMP)
3043# 830 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3045# 830 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3047 do i = 1, eqn_idx%adv%end - eqn_idx%E
3048 dadv_dt(i) = -
l(eqn_idx%mom%end + i)
3052 drho_dt = 0._wp; dgamma_dt = 0._wp; dpi_inf_dt = 0._wp; dqv_dt = 0._wp
3054 if (model_eqns == model_eqns_gamma_law)
then
3055 drho_dt = dalpha_rho_dt(1)
3056 dgamma_dt = dadv_dt(1)
3057# 842 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3058 dpi_inf_dt = dadv_dt(2)
3059# 844 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3061 call s_compute_mixture_coefficients_dt(dalpha_rho_dt, dadv_dt, alpha_rho, adv_local, drho_dt, &
3062 & dgamma_dt, dpi_inf_dt, dqv_dt)
3067# 850 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3068#if defined(MFC_OpenACC)
3069# 850 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3071# 850 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3072#elif defined(MFC_OpenMP)
3073# 850 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3075# 850 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3077 do i = 1, eqn_idx%cont%end
3082# 855 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3083#if defined(MFC_OpenACC)
3084# 855 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3086# 855 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3087#elif defined(MFC_OpenMP)
3088# 855 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3090# 855 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3092 do i = eqn_idx%mom%beg, eqn_idx%mom%end
3094 & i) +
ds(0)*(vel(i - eqn_idx%cont%end)*drho_dt + rho*dvel_dt(i - eqn_idx%cont%end))
3100 call get_species_enthalpies_rt(t, h_k)
3101 sum_enthalpies = 0._wp
3103# 866 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3104#if defined(MFC_OpenACC)
3105# 866 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3107# 866 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3108#elif defined(MFC_OpenMP)
3109# 866 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3111# 866 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3113 do i = 1, num_species
3114 h_k(i) = h_k(i)*gas_constant/molecular_weights(i)*t
3115 sum_enthalpies = sum_enthalpies + (rho*h_k(i) - pres*mw/molecular_weights(i)*cp/r_gas)*dys_dt(i)
3118 & eqn_idx%E) +
ds(0)*((e/rho + pres/rho)*drho_dt + rho*vel_dv_dt_sum + cp*t*
l(2) &
3119 & /(c*c) + sum_enthalpies)
3121# 874 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3122#if defined(MFC_OpenACC)
3123# 874 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3125# 874 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3126#elif defined(MFC_OpenMP)
3127# 874 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3129# 874 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3131 do i = 1, num_species
3133 & eqn_idx%species%beg + i - 1) +
ds(0)*(drho_dt*ys(i) + rho*dys_dt(i))
3137 & eqn_idx%E) +
ds(0)*(pres*dgamma_dt + gamma*dpres_dt + dpi_inf_dt + dqv_dt &
3138 & + rho*vel_dv_dt_sum + 5.e-1_wp*drho_dt*vel_k_sum)
3143 if (riemann_solver == riemann_solver_hll .and. .not. hll_u_interface)
then
3145# 888 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3146#if defined(MFC_OpenACC)
3147# 888 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3149# 888 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3150#elif defined(MFC_OpenMP)
3151# 888 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3153# 888 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3155 do i = eqn_idx%adv%beg, eqn_idx%adv%end
3160# 893 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3161#if defined(MFC_OpenACC)
3162# 893 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3164# 893 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3165#elif defined(MFC_OpenMP)
3166# 893 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3168# 893 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3170 do i = eqn_idx%adv%beg, eqn_idx%adv%end
3171 flux_src_rsx_vf_l(-1,
k, r, i) = 1._wp/max(abs(vel(dir_idx(1))), sgm_eps)*sign(1._wp, &
3174 & i) +
ds(0)*dadv_dt(i - eqn_idx%E))
3178# 901 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3179#if defined(MFC_OpenACC)
3180# 901 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3182# 901 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3183#elif defined(MFC_OpenMP)
3184# 901 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3186# 901 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3188 do i = eqn_idx%adv%beg, eqn_idx%adv%end
3193# 906 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3194#if defined(MFC_OpenACC)
3195# 906 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3197# 906 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3198#elif defined(MFC_OpenMP)
3199# 906 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3201# 906 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3203 do i = eqn_idx%adv%beg, eqn_idx%adv%end
3211# 914 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3212#if defined(MFC_OpenACC)
3213# 914 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3215# 914 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3216#elif defined(MFC_OpenMP)
3217# 914 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3219# 914 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3221# 914 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3224# 529 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3225 if (
cbc_dir == 2 .and. recon_type == recon_type_weno)
then
3227 if (weno_order == 3)
then
3229 &
is3, idwbuff(2)%beg, idwbuff(3)%beg, dir_idx, dir_flg, hll_u_interface)
3232# 535 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3234# 535 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3235#if defined(MFC_OpenACC)
3236# 535 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3238# 535 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3239#elif defined(MFC_OpenMP)
3240# 535 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3242# 535 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3244# 535 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3246# 535 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3248# 535 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3259# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3260#if defined(MFC_OpenACC)
3261# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3263# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3264#elif defined(MFC_OpenMP)
3265# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3267# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3269# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3273# 546 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3275# 546 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3276#if defined(MFC_OpenACC)
3277# 546 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3279# 546 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3280#elif defined(MFC_OpenMP)
3281# 546 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3283# 546 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3285# 546 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3287# 546 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3289# 546 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3291 do i = eqn_idx%adv%beg, eqn_idx%adv%end
3300# 555 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3301#if defined(MFC_OpenACC)
3302# 555 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3304# 555 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3305#elif defined(MFC_OpenMP)
3306# 555 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3308# 555 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3310# 555 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3315 if (weno_order == 5)
then
3317 &
is3, idwbuff(2)%beg, idwbuff(3)%beg, dir_idx, dir_flg, hll_u_interface)
3320# 563 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3322# 563 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3323#if defined(MFC_OpenACC)
3324# 563 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3326# 563 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3327#elif defined(MFC_OpenMP)
3328# 563 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3330# 563 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3332# 563 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3334# 563 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3336# 563 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3352# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3353#if defined(MFC_OpenACC)
3354# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3356# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3357#elif defined(MFC_OpenMP)
3358# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3360# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3362# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3366# 579 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3368# 579 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3369#if defined(MFC_OpenACC)
3370# 579 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3372# 579 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3373#elif defined(MFC_OpenMP)
3374# 579 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3376# 579 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3378# 579 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3380# 579 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3382# 579 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3384 do i = eqn_idx%adv%beg, eqn_idx%adv%end
3399# 594 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3400#if defined(MFC_OpenACC)
3401# 594 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3403# 594 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3404#elif defined(MFC_OpenMP)
3405# 594 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3407# 594 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3409# 594 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3415# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3417# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3418#if defined(MFC_OpenACC)
3419# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3421# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3423# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3425# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3426#elif defined(MFC_OpenMP)
3427# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3429# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3431# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3433# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3435# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3437# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3439# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3441# 603 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3446 ramp = f_vel_ramp(bc_y%vel_in_ramp, bc_y%vel_in_t0, bc_y%vel_in_frac0, mytime)
3450# 610 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3451#if defined(MFC_OpenACC)
3452# 610 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3454# 610 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3455#elif defined(MFC_OpenMP)
3456# 610 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3458# 610 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3460 do i = 1, eqn_idx%cont%end
3465# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3466#if defined(MFC_OpenACC)
3467# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3469# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3470#elif defined(MFC_OpenMP)
3471# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3473# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3481# 621 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3482#if defined(MFC_OpenACC)
3483# 621 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3485# 621 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3486#elif defined(MFC_OpenMP)
3487# 621 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3489# 621 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3492 vel_k_sum = vel_k_sum + vel(i)**2._wp
3498# 628 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3499#if defined(MFC_OpenACC)
3500# 628 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3502# 628 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3503#elif defined(MFC_OpenMP)
3504# 628 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3506# 628 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3508 do i = 1, eqn_idx%adv%end - eqn_idx%E
3512 call s_convert_species_to_mixture_variables_kernel(rho, gamma, pi_inf, qv, adv_local, alpha_rho, re_cbc)
3515# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3516#if defined(MFC_OpenACC)
3517# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3519# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3520#elif defined(MFC_OpenMP)
3521# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3523# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3525 do i = 1, eqn_idx%cont%end
3526 mf(i) = alpha_rho(i)/rho
3531# 641 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3532#if defined(MFC_OpenACC)
3533# 641 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3535# 641 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3536#elif defined(MFC_OpenMP)
3537# 641 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3539# 641 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3541 do i = eqn_idx%species%beg, eqn_idx%species%end
3545 call get_mixture_molecular_weight(ys, mw)
3546 r_gas = gas_constant/mw
3548 call get_mixture_specific_heat_cp_mass(t, ys, cp)
3549 call get_mixture_energy_mass(t, ys, e_mix)
3550 e = rho*e_mix + 5.e-1_wp*rho*vel_k_sum
3551 if (chem_params%gamma_method == 1)
then
3553 call get_mole_fractions(mw, ys, xs)
3554 call get_species_specific_heats_r(t, cp_i)
3555 gamma_i(1:num_species) = cp_i(1:num_species)/(cp_i(1:num_species) - 1.0_wp)
3556 gamma = sum(xs(1:num_species)/(gamma_i(1:num_species) - 1.0_wp))
3557 else if (chem_params%gamma_method == 2)
then
3559 call get_mixture_specific_heat_cv_mass(t, ys, cv)
3560 gamma = 1.0_wp/(cp/cv - 1.0_wp)
3565 call s_compute_speed_of_sound(pres, rho, gamma, pi_inf, adv_local, c, alpha_rho)
3570# 670 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3571#if defined(MFC_OpenACC)
3572# 670 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3574# 670 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3575#elif defined(MFC_OpenMP)
3576# 670 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3578# 670 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3580 do i = 1, eqn_idx%cont%end
3581 dalpha_rho_ds(i) = 0._wp
3585# 675 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3586#if defined(MFC_OpenACC)
3587# 675 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3589# 675 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3590#elif defined(MFC_OpenMP)
3591# 675 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3593# 675 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3601# 681 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3602#if defined(MFC_OpenACC)
3603# 681 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3605# 681 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3606#elif defined(MFC_OpenMP)
3607# 681 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3609# 681 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3611 do i = 1, eqn_idx%adv%end - eqn_idx%E
3617# 687 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3618#if defined(MFC_OpenACC)
3619# 687 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3621# 687 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3622#elif defined(MFC_OpenMP)
3623# 687 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3625# 687 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3627 do i = 1, num_species
3633# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3634#if defined(MFC_OpenACC)
3635# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3637# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3638#elif defined(MFC_OpenMP)
3639# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3641# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3645# 695 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3646#if defined(MFC_OpenACC)
3647# 695 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3649# 695 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3650#elif defined(MFC_OpenMP)
3651# 695 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3653# 695 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3655 do i = 1, eqn_idx%cont%end
3659# 699 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3660#if defined(MFC_OpenACC)
3661# 699 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3663# 699 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3664#elif defined(MFC_OpenMP)
3665# 699 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3667# 699 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3676# 706 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3677#if defined(MFC_OpenACC)
3678# 706 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3680# 706 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3681#elif defined(MFC_OpenMP)
3682# 706 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3684# 706 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3686 do i = 1, eqn_idx%adv%end - eqn_idx%E
3692# 712 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3693#if defined(MFC_OpenACC)
3694# 712 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3696# 712 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3697#elif defined(MFC_OpenMP)
3698# 712 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3700# 712 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3702 do i = 1, num_species
3710 lambda(1) = vel(dir_idx(1)) - c
3711 lambda(2) = vel(dir_idx(1))
3712 lambda(3) = vel(dir_idx(1)) + c
3714 ma = vel(dir_idx(1))/c
3716 if ((
cbc_loc == -1 .and. bc_y%beg == bc_char_slip_wall) .or. (
cbc_loc == 1 &
3717 & .and. bc_y%end == bc_char_slip_wall))
then
3718 call s_compute_slip_wall_l(lambda,
l, rho, c, dpres_ds, dvel_ds)
3719 else if ((
cbc_loc == -1 .and. bc_y%beg == bc_char_nr_sub_buffer) .or. (
cbc_loc == 1 &
3720 & .and. bc_y%end == bc_char_nr_sub_buffer))
then
3721 call s_compute_nonreflecting_subsonic_buffer_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
3722 & dvel_ds, dadv_ds, dys_ds)
3723 else if ((
cbc_loc == -1 .and. bc_y%beg == bc_char_nr_sub_inflow) .or. (
cbc_loc == 1 &
3724 & .and. bc_y%end == bc_char_nr_sub_inflow))
then
3725 call s_compute_nonreflecting_subsonic_inflow_l(lambda,
l, rho, c, dpres_ds, dvel_ds)
3727 if (bc_y%grcbc_in)
then
3729# 739 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3730#if defined(MFC_OpenACC)
3731# 739 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3733# 739 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3734#elif defined(MFC_OpenMP)
3735# 739 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3737# 739 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3739 do i = 2, eqn_idx%mom%beg
3740 l(i) = c**3._wp*ma*(alpha_rho(i - 1) -
alpha_rho_in(i - 1, &
3744 l(eqn_idx%mom%beg + 1) = c*ma*(vel(dir_idx(2)) - ramp*
vel_in(2, &
3747 l(eqn_idx%mom%beg + 2) = c*ma*(vel(dir_idx(3)) - ramp*
vel_in(2, &
3752# 752 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3753#if defined(MFC_OpenACC)
3754# 752 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3756# 752 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3757#elif defined(MFC_OpenMP)
3758# 752 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3760# 752 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3762 do i = eqn_idx%E, eqn_idx%adv%end - 1
3763 l(i) = c*ma*(adv_local(i + 1 - eqn_idx%E) -
alpha_in(i + 1 - eqn_idx%E, &
3766 l(eqn_idx%adv%end) = rho*c**2._wp*(1._wp + ma)*(vel(dir_idx(1)) + ramp*
vel_in(2, &
3767 & dir_idx(1))*sign(1, &
3770 else if ((
cbc_loc == -1 .and. bc_y%beg == bc_char_nr_sub_outflow) .or. (
cbc_loc == 1 &
3771 & .and. bc_y%end == bc_char_nr_sub_outflow))
then
3772 call s_compute_nonreflecting_subsonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
3773 & dvel_ds, dadv_ds, dys_ds)
3775 if (bc_y%grcbc_out)
then
3779 if (bc_y%grcbc_vel_out)
then
3780 l(eqn_idx%adv%end) =
l(eqn_idx%adv%end) + rho*c**2._wp*(1._wp - ma)*(vel(dir_idx(1)) &
3784 else if ((
cbc_loc == -1 .and. bc_y%beg == bc_char_ff_sub_outflow) .or. (
cbc_loc == 1 &
3785 & .and. bc_y%end == bc_char_ff_sub_outflow))
then
3786 call s_compute_force_free_subsonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, &
3788 else if ((
cbc_loc == -1 .and. bc_y%beg == bc_char_cp_sub_outflow) .or. (
cbc_loc == 1 &
3789 & .and. bc_y%end == bc_char_cp_sub_outflow))
then
3790 call s_compute_constant_pressure_subsonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
3792 else if ((
cbc_loc == -1 .and. bc_y%beg == bc_char_sup_inflow) .or. (
cbc_loc == 1 &
3793 & .and. bc_y%end == bc_char_sup_inflow))
then
3794 call s_compute_supersonic_inflow_l(
l)
3795 else if ((
cbc_loc == -1 .and. bc_y%beg == bc_char_sup_outflow) .or. (
cbc_loc == 1 &
3796 & .and. bc_y%end == bc_char_sup_outflow))
then
3797 call s_compute_supersonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, dadv_ds, &
3803 dpres_dt = -5.e-1_wp*(
l(eqn_idx%adv%end) +
l(1)) + rho*c*c*vel(dir_idx(1))/y_cc(n)
3805 dpres_dt = -5.e-1_wp*(
l(eqn_idx%adv%end) +
l(1))
3809# 799 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3810#if defined(MFC_OpenACC)
3811# 799 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3813# 799 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3814#elif defined(MFC_OpenMP)
3815# 799 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3817# 799 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3819 do i = 1, eqn_idx%cont%end
3820 dalpha_rho_dt(i) = -(
l(i + 1) - mf(i)*dpres_dt)/(c*c)
3824# 804 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3825#if defined(MFC_OpenACC)
3826# 804 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3828# 804 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3829#elif defined(MFC_OpenMP)
3830# 804 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3832# 804 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3835 dvel_dt(dir_idx(i)) = dir_flg(dir_idx(i))*(
l(1) -
l(eqn_idx%adv%end))/(2._wp*rho*c) &
3836 & + (dir_flg(dir_idx(i)) - 1._wp)*
l(eqn_idx%mom%beg + i - 1)
3839 vel_dv_dt_sum = 0._wp
3841# 811 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3842#if defined(MFC_OpenACC)
3843# 811 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3845# 811 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3846#elif defined(MFC_OpenMP)
3847# 811 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3849# 811 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3852 vel_dv_dt_sum = vel_dv_dt_sum + vel(i)*dvel_dt(i)
3857# 817 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3858#if defined(MFC_OpenACC)
3859# 817 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3861# 817 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3862#elif defined(MFC_OpenMP)
3863# 817 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3865# 817 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3867 do i = 1, num_species
3868 dys_dt(i) = -1._wp*
l(eqn_idx%species%beg + i - 1)
3875# 825 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3876#if defined(MFC_OpenACC)
3877# 825 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3879# 825 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3880#elif defined(MFC_OpenMP)
3881# 825 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3883# 825 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3885 do i = 1, eqn_idx%adv%end - eqn_idx%E
3886 dadv_dt(i) = -
l(eqn_idx%mom%end + i)
3890# 830 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3891#if defined(MFC_OpenACC)
3892# 830 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3894# 830 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3895#elif defined(MFC_OpenMP)
3896# 830 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3898# 830 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3900 do i = 1, eqn_idx%adv%end - eqn_idx%E
3901 dadv_dt(i) = -
l(eqn_idx%mom%end + i)
3905 drho_dt = 0._wp; dgamma_dt = 0._wp; dpi_inf_dt = 0._wp; dqv_dt = 0._wp
3907 if (model_eqns == model_eqns_gamma_law)
then
3908 drho_dt = dalpha_rho_dt(1)
3909 dgamma_dt = dadv_dt(1)
3910# 842 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3911 dpi_inf_dt = dadv_dt(2)
3912# 844 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3914 call s_compute_mixture_coefficients_dt(dalpha_rho_dt, dadv_dt, alpha_rho, adv_local, drho_dt, &
3915 & dgamma_dt, dpi_inf_dt, dqv_dt)
3920# 850 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3921#if defined(MFC_OpenACC)
3922# 850 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3924# 850 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3925#elif defined(MFC_OpenMP)
3926# 850 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3928# 850 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3930 do i = 1, eqn_idx%cont%end
3935# 855 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3936#if defined(MFC_OpenACC)
3937# 855 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3939# 855 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3940#elif defined(MFC_OpenMP)
3941# 855 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3943# 855 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3945 do i = eqn_idx%mom%beg, eqn_idx%mom%end
3947 & i) +
ds(0)*(vel(i - eqn_idx%cont%end)*drho_dt + rho*dvel_dt(i - eqn_idx%cont%end))
3953 call get_species_enthalpies_rt(t, h_k)
3954 sum_enthalpies = 0._wp
3956# 866 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3957#if defined(MFC_OpenACC)
3958# 866 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3960# 866 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3961#elif defined(MFC_OpenMP)
3962# 866 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3964# 866 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3966 do i = 1, num_species
3967 h_k(i) = h_k(i)*gas_constant/molecular_weights(i)*t
3968 sum_enthalpies = sum_enthalpies + (rho*h_k(i) - pres*mw/molecular_weights(i)*cp/r_gas)*dys_dt(i)
3971 & eqn_idx%E) +
ds(0)*((e/rho + pres/rho)*drho_dt + rho*vel_dv_dt_sum + cp*t*
l(2) &
3972 & /(c*c) + sum_enthalpies)
3974# 874 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3975#if defined(MFC_OpenACC)
3976# 874 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3978# 874 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3979#elif defined(MFC_OpenMP)
3980# 874 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3982# 874 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3984 do i = 1, num_species
3986 & eqn_idx%species%beg + i - 1) +
ds(0)*(drho_dt*ys(i) + rho*dys_dt(i))
3990 & eqn_idx%E) +
ds(0)*(pres*dgamma_dt + gamma*dpres_dt + dpi_inf_dt + dqv_dt &
3991 & + rho*vel_dv_dt_sum + 5.e-1_wp*drho_dt*vel_k_sum)
3996 if (riemann_solver == riemann_solver_hll .and. .not. hll_u_interface)
then
3998# 888 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3999#if defined(MFC_OpenACC)
4000# 888 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4002# 888 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4003#elif defined(MFC_OpenMP)
4004# 888 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4006# 888 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4008 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4013# 893 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4014#if defined(MFC_OpenACC)
4015# 893 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4017# 893 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4018#elif defined(MFC_OpenMP)
4019# 893 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4021# 893 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4023 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4024 flux_src_rsy_vf_l(-1,
k, r, i) = 1._wp/max(abs(vel(dir_idx(1))), sgm_eps)*sign(1._wp, &
4027 & i) +
ds(0)*dadv_dt(i - eqn_idx%E))
4031# 901 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4032#if defined(MFC_OpenACC)
4033# 901 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4035# 901 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4036#elif defined(MFC_OpenMP)
4037# 901 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4039# 901 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4041 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4046# 906 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4047#if defined(MFC_OpenACC)
4048# 906 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4050# 906 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4051#elif defined(MFC_OpenMP)
4052# 906 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4054# 906 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4056 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4064# 914 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4065#if defined(MFC_OpenACC)
4066# 914 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4068# 914 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4069#elif defined(MFC_OpenMP)
4070# 914 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4072# 914 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4074# 914 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4077# 529 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4078 if (
cbc_dir == 3 .and. recon_type == recon_type_weno)
then
4080 if (weno_order == 3)
then
4082 &
is3, idwbuff(2)%beg, idwbuff(3)%beg, dir_idx, dir_flg, hll_u_interface)
4085# 535 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4087# 535 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4088#if defined(MFC_OpenACC)
4089# 535 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4091# 535 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4092#elif defined(MFC_OpenMP)
4093# 535 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4095# 535 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4097# 535 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4099# 535 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4101# 535 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4112# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4113#if defined(MFC_OpenACC)
4114# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4116# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4117#elif defined(MFC_OpenMP)
4118# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4120# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4122# 544 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4126# 546 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4128# 546 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4129#if defined(MFC_OpenACC)
4130# 546 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4132# 546 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4133#elif defined(MFC_OpenMP)
4134# 546 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4136# 546 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4138# 546 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4140# 546 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4142# 546 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4144 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4153# 555 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4154#if defined(MFC_OpenACC)
4155# 555 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4157# 555 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4158#elif defined(MFC_OpenMP)
4159# 555 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4161# 555 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4163# 555 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4168 if (weno_order == 5)
then
4170 &
is3, idwbuff(2)%beg, idwbuff(3)%beg, dir_idx, dir_flg, hll_u_interface)
4173# 563 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4175# 563 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4176#if defined(MFC_OpenACC)
4177# 563 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4179# 563 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4180#elif defined(MFC_OpenMP)
4181# 563 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4183# 563 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4185# 563 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4187# 563 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4189# 563 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4205# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4206#if defined(MFC_OpenACC)
4207# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4209# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4210#elif defined(MFC_OpenMP)
4211# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4213# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4215# 577 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4219# 579 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4221# 579 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4222#if defined(MFC_OpenACC)
4223# 579 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4225# 579 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4226#elif defined(MFC_OpenMP)
4227# 579 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4229# 579 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4231# 579 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4233# 579 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4235# 579 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4237 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4252# 594 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4253#if defined(MFC_OpenACC)
4254# 594 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4256# 594 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4257#elif defined(MFC_OpenMP)
4258# 594 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4260# 594 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4262# 594 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4268# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4270# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4271#if defined(MFC_OpenACC)
4272# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4274# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4276# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4278# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4279#elif defined(MFC_OpenMP)
4280# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4282# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4284# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4286# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4288# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4290# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4292# 598 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4294# 603 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4299 ramp = f_vel_ramp(bc_z%vel_in_ramp, bc_z%vel_in_t0, bc_z%vel_in_frac0, mytime)
4303# 610 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4304#if defined(MFC_OpenACC)
4305# 610 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4307# 610 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4308#elif defined(MFC_OpenMP)
4309# 610 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4311# 610 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4313 do i = 1, eqn_idx%cont%end
4318# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4319#if defined(MFC_OpenACC)
4320# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4322# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4323#elif defined(MFC_OpenMP)
4324# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4326# 615 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4334# 621 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4335#if defined(MFC_OpenACC)
4336# 621 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4338# 621 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4339#elif defined(MFC_OpenMP)
4340# 621 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4342# 621 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4345 vel_k_sum = vel_k_sum + vel(i)**2._wp
4351# 628 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4352#if defined(MFC_OpenACC)
4353# 628 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4355# 628 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4356#elif defined(MFC_OpenMP)
4357# 628 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4359# 628 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4361 do i = 1, eqn_idx%adv%end - eqn_idx%E
4365 call s_convert_species_to_mixture_variables_kernel(rho, gamma, pi_inf, qv, adv_local, alpha_rho, re_cbc)
4368# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4369#if defined(MFC_OpenACC)
4370# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4372# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4373#elif defined(MFC_OpenMP)
4374# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4376# 635 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4378 do i = 1, eqn_idx%cont%end
4379 mf(i) = alpha_rho(i)/rho
4384# 641 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4385#if defined(MFC_OpenACC)
4386# 641 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4388# 641 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4389#elif defined(MFC_OpenMP)
4390# 641 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4392# 641 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4394 do i = eqn_idx%species%beg, eqn_idx%species%end
4398 call get_mixture_molecular_weight(ys, mw)
4399 r_gas = gas_constant/mw
4401 call get_mixture_specific_heat_cp_mass(t, ys, cp)
4402 call get_mixture_energy_mass(t, ys, e_mix)
4403 e = rho*e_mix + 5.e-1_wp*rho*vel_k_sum
4404 if (chem_params%gamma_method == 1)
then
4406 call get_mole_fractions(mw, ys, xs)
4407 call get_species_specific_heats_r(t, cp_i)
4408 gamma_i(1:num_species) = cp_i(1:num_species)/(cp_i(1:num_species) - 1.0_wp)
4409 gamma = sum(xs(1:num_species)/(gamma_i(1:num_species) - 1.0_wp))
4410 else if (chem_params%gamma_method == 2)
then
4412 call get_mixture_specific_heat_cv_mass(t, ys, cv)
4413 gamma = 1.0_wp/(cp/cv - 1.0_wp)
4418 call s_compute_speed_of_sound(pres, rho, gamma, pi_inf, adv_local, c, alpha_rho)
4423# 670 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4424#if defined(MFC_OpenACC)
4425# 670 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4427# 670 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4428#elif defined(MFC_OpenMP)
4429# 670 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4431# 670 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4433 do i = 1, eqn_idx%cont%end
4434 dalpha_rho_ds(i) = 0._wp
4438# 675 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4439#if defined(MFC_OpenACC)
4440# 675 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4442# 675 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4443#elif defined(MFC_OpenMP)
4444# 675 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4446# 675 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4454# 681 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4455#if defined(MFC_OpenACC)
4456# 681 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4458# 681 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4459#elif defined(MFC_OpenMP)
4460# 681 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4462# 681 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4464 do i = 1, eqn_idx%adv%end - eqn_idx%E
4470# 687 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4471#if defined(MFC_OpenACC)
4472# 687 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4474# 687 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4475#elif defined(MFC_OpenMP)
4476# 687 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4478# 687 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4480 do i = 1, num_species
4486# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4487#if defined(MFC_OpenACC)
4488# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4490# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4491#elif defined(MFC_OpenMP)
4492# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4494# 693 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4498# 695 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4499#if defined(MFC_OpenACC)
4500# 695 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4502# 695 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4503#elif defined(MFC_OpenMP)
4504# 695 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4506# 695 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4508 do i = 1, eqn_idx%cont%end
4512# 699 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4513#if defined(MFC_OpenACC)
4514# 699 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4516# 699 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4517#elif defined(MFC_OpenMP)
4518# 699 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4520# 699 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4529# 706 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4530#if defined(MFC_OpenACC)
4531# 706 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4533# 706 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4534#elif defined(MFC_OpenMP)
4535# 706 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4537# 706 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4539 do i = 1, eqn_idx%adv%end - eqn_idx%E
4545# 712 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4546#if defined(MFC_OpenACC)
4547# 712 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4549# 712 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4550#elif defined(MFC_OpenMP)
4551# 712 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4553# 712 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4555 do i = 1, num_species
4563 lambda(1) = vel(dir_idx(1)) - c
4564 lambda(2) = vel(dir_idx(1))
4565 lambda(3) = vel(dir_idx(1)) + c
4567 ma = vel(dir_idx(1))/c
4569 if ((
cbc_loc == -1 .and. bc_z%beg == bc_char_slip_wall) .or. (
cbc_loc == 1 &
4570 & .and. bc_z%end == bc_char_slip_wall))
then
4571 call s_compute_slip_wall_l(lambda,
l, rho, c, dpres_ds, dvel_ds)
4572 else if ((
cbc_loc == -1 .and. bc_z%beg == bc_char_nr_sub_buffer) .or. (
cbc_loc == 1 &
4573 & .and. bc_z%end == bc_char_nr_sub_buffer))
then
4574 call s_compute_nonreflecting_subsonic_buffer_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
4575 & dvel_ds, dadv_ds, dys_ds)
4576 else if ((
cbc_loc == -1 .and. bc_z%beg == bc_char_nr_sub_inflow) .or. (
cbc_loc == 1 &
4577 & .and. bc_z%end == bc_char_nr_sub_inflow))
then
4578 call s_compute_nonreflecting_subsonic_inflow_l(lambda,
l, rho, c, dpres_ds, dvel_ds)
4580 if (bc_z%grcbc_in)
then
4582# 739 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4583#if defined(MFC_OpenACC)
4584# 739 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4586# 739 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4587#elif defined(MFC_OpenMP)
4588# 739 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4590# 739 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4592 do i = 2, eqn_idx%mom%beg
4593 l(i) = c**3._wp*ma*(alpha_rho(i - 1) -
alpha_rho_in(i - 1, &
4597 l(eqn_idx%mom%beg + 1) = c*ma*(vel(dir_idx(2)) - ramp*
vel_in(3, &
4600 l(eqn_idx%mom%beg + 2) = c*ma*(vel(dir_idx(3)) - ramp*
vel_in(3, &
4605# 752 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4606#if defined(MFC_OpenACC)
4607# 752 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4609# 752 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4610#elif defined(MFC_OpenMP)
4611# 752 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4613# 752 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4615 do i = eqn_idx%E, eqn_idx%adv%end - 1
4616 l(i) = c*ma*(adv_local(i + 1 - eqn_idx%E) -
alpha_in(i + 1 - eqn_idx%E, &
4619 l(eqn_idx%adv%end) = rho*c**2._wp*(1._wp + ma)*(vel(dir_idx(1)) + ramp*
vel_in(3, &
4620 & dir_idx(1))*sign(1, &
4623 else if ((
cbc_loc == -1 .and. bc_z%beg == bc_char_nr_sub_outflow) .or. (
cbc_loc == 1 &
4624 & .and. bc_z%end == bc_char_nr_sub_outflow))
then
4625 call s_compute_nonreflecting_subsonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
4626 & dvel_ds, dadv_ds, dys_ds)
4628 if (bc_z%grcbc_out)
then
4632 if (bc_z%grcbc_vel_out)
then
4633 l(eqn_idx%adv%end) =
l(eqn_idx%adv%end) + rho*c**2._wp*(1._wp - ma)*(vel(dir_idx(1)) &
4637 else if ((
cbc_loc == -1 .and. bc_z%beg == bc_char_ff_sub_outflow) .or. (
cbc_loc == 1 &
4638 & .and. bc_z%end == bc_char_ff_sub_outflow))
then
4639 call s_compute_force_free_subsonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, &
4641 else if ((
cbc_loc == -1 .and. bc_z%beg == bc_char_cp_sub_outflow) .or. (
cbc_loc == 1 &
4642 & .and. bc_z%end == bc_char_cp_sub_outflow))
then
4643 call s_compute_constant_pressure_subsonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
4645 else if ((
cbc_loc == -1 .and. bc_z%beg == bc_char_sup_inflow) .or. (
cbc_loc == 1 &
4646 & .and. bc_z%end == bc_char_sup_inflow))
then
4647 call s_compute_supersonic_inflow_l(
l)
4648 else if ((
cbc_loc == -1 .and. bc_z%beg == bc_char_sup_outflow) .or. (
cbc_loc == 1 &
4649 & .and. bc_z%end == bc_char_sup_outflow))
then
4650 call s_compute_supersonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, dadv_ds, &
4656 dpres_dt = -5.e-1_wp*(
l(eqn_idx%adv%end) +
l(1)) + rho*c*c*vel(dir_idx(1))/y_cc(n)
4658 dpres_dt = -5.e-1_wp*(
l(eqn_idx%adv%end) +
l(1))
4662# 799 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4663#if defined(MFC_OpenACC)
4664# 799 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4666# 799 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4667#elif defined(MFC_OpenMP)
4668# 799 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4670# 799 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4672 do i = 1, eqn_idx%cont%end
4673 dalpha_rho_dt(i) = -(
l(i + 1) - mf(i)*dpres_dt)/(c*c)
4677# 804 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4678#if defined(MFC_OpenACC)
4679# 804 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4681# 804 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4682#elif defined(MFC_OpenMP)
4683# 804 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4685# 804 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4688 dvel_dt(dir_idx(i)) = dir_flg(dir_idx(i))*(
l(1) -
l(eqn_idx%adv%end))/(2._wp*rho*c) &
4689 & + (dir_flg(dir_idx(i)) - 1._wp)*
l(eqn_idx%mom%beg + i - 1)
4692 vel_dv_dt_sum = 0._wp
4694# 811 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4695#if defined(MFC_OpenACC)
4696# 811 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4698# 811 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4699#elif defined(MFC_OpenMP)
4700# 811 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4702# 811 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4705 vel_dv_dt_sum = vel_dv_dt_sum + vel(i)*dvel_dt(i)
4710# 817 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4711#if defined(MFC_OpenACC)
4712# 817 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4714# 817 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4715#elif defined(MFC_OpenMP)
4716# 817 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4718# 817 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4720 do i = 1, num_species
4721 dys_dt(i) = -1._wp*
l(eqn_idx%species%beg + i - 1)
4728# 825 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4729#if defined(MFC_OpenACC)
4730# 825 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4732# 825 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4733#elif defined(MFC_OpenMP)
4734# 825 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4736# 825 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4738 do i = 1, eqn_idx%adv%end - eqn_idx%E
4739 dadv_dt(i) = -
l(eqn_idx%mom%end + i)
4743# 830 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4744#if defined(MFC_OpenACC)
4745# 830 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4747# 830 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4748#elif defined(MFC_OpenMP)
4749# 830 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4751# 830 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4753 do i = 1, eqn_idx%adv%end - eqn_idx%E
4754 dadv_dt(i) = -
l(eqn_idx%mom%end + i)
4758 drho_dt = 0._wp; dgamma_dt = 0._wp; dpi_inf_dt = 0._wp; dqv_dt = 0._wp
4760 if (model_eqns == model_eqns_gamma_law)
then
4761 drho_dt = dalpha_rho_dt(1)
4762 dgamma_dt = dadv_dt(1)
4763# 842 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4764 dpi_inf_dt = dadv_dt(2)
4765# 844 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4767 call s_compute_mixture_coefficients_dt(dalpha_rho_dt, dadv_dt, alpha_rho, adv_local, drho_dt, &
4768 & dgamma_dt, dpi_inf_dt, dqv_dt)
4773# 850 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4774#if defined(MFC_OpenACC)
4775# 850 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4777# 850 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4778#elif defined(MFC_OpenMP)
4779# 850 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4781# 850 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4783 do i = 1, eqn_idx%cont%end
4788# 855 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4789#if defined(MFC_OpenACC)
4790# 855 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4792# 855 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4793#elif defined(MFC_OpenMP)
4794# 855 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4796# 855 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4798 do i = eqn_idx%mom%beg, eqn_idx%mom%end
4800 & i) +
ds(0)*(vel(i - eqn_idx%cont%end)*drho_dt + rho*dvel_dt(i - eqn_idx%cont%end))
4806 call get_species_enthalpies_rt(t, h_k)
4807 sum_enthalpies = 0._wp
4809# 866 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4810#if defined(MFC_OpenACC)
4811# 866 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4813# 866 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4814#elif defined(MFC_OpenMP)
4815# 866 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4817# 866 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4819 do i = 1, num_species
4820 h_k(i) = h_k(i)*gas_constant/molecular_weights(i)*t
4821 sum_enthalpies = sum_enthalpies + (rho*h_k(i) - pres*mw/molecular_weights(i)*cp/r_gas)*dys_dt(i)
4824 & eqn_idx%E) +
ds(0)*((e/rho + pres/rho)*drho_dt + rho*vel_dv_dt_sum + cp*t*
l(2) &
4825 & /(c*c) + sum_enthalpies)
4827# 874 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4828#if defined(MFC_OpenACC)
4829# 874 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4831# 874 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4832#elif defined(MFC_OpenMP)
4833# 874 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4835# 874 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4837 do i = 1, num_species
4839 & eqn_idx%species%beg + i - 1) +
ds(0)*(drho_dt*ys(i) + rho*dys_dt(i))
4843 & eqn_idx%E) +
ds(0)*(pres*dgamma_dt + gamma*dpres_dt + dpi_inf_dt + dqv_dt &
4844 & + rho*vel_dv_dt_sum + 5.e-1_wp*drho_dt*vel_k_sum)
4849 if (riemann_solver == riemann_solver_hll .and. .not. hll_u_interface)
then
4851# 888 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4852#if defined(MFC_OpenACC)
4853# 888 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4855# 888 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4856#elif defined(MFC_OpenMP)
4857# 888 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4859# 888 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4861 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4866# 893 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4867#if defined(MFC_OpenACC)
4868# 893 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4870# 893 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4871#elif defined(MFC_OpenMP)
4872# 893 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4874# 893 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4876 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4877 flux_src_rsz_vf_l(-1,
k, r, i) = 1._wp/max(abs(vel(dir_idx(1))), sgm_eps)*sign(1._wp, &
4880 & i) +
ds(0)*dadv_dt(i - eqn_idx%E))
4884# 901 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4885#if defined(MFC_OpenACC)
4886# 901 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4888# 901 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4889#elif defined(MFC_OpenMP)
4890# 901 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4892# 901 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4894 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4899# 906 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4900#if defined(MFC_OpenACC)
4901# 906 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4903# 906 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4904#elif defined(MFC_OpenMP)
4905# 906 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4907# 906 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4909 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4917# 914 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4918#if defined(MFC_OpenACC)
4919# 914 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4921# 914 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4922#elif defined(MFC_OpenMP)
4923# 914 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4925# 914 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4927# 914 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4930# 917 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"