2290 subroutine s_cbc(q_prim_vf, flux_vf, flux_src_vf, cbc_dir_norm, cbc_loc_norm, ix, iy, iz)
2292 type(scalar_field),
dimension(sys_size),
intent(in) :: q_prim_vf
2293 type(scalar_field),
dimension(sys_size),
intent(inout) :: flux_vf, flux_src_vf
2294 integer,
intent(in) :: cbc_dir_norm, cbc_loc_norm
2295 type(int_bounds_info),
intent(in) :: ix, iy, iz
2297 real(wp) :: dpres_dt
2298 real(wp) :: dgamma_dt
2299 real(wp) :: dpi_inf_dt
2301 real(wp) :: dpres_ds
2303# 483 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2304 real(wp),
dimension(sys_size) ::
l
2305# 485 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2306# 494 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2307 real(wp),
dimension(num_fluids) :: alpha_rho, dalpha_rho_ds, mf
2308 real(wp),
dimension(num_vels) :: vel, dvel_ds
2309 real(wp),
dimension(num_fluids) :: adv_local, dadv_ds
2310 real(wp),
dimension(num_fluids) :: dadv_dt
2311 real(wp),
dimension(num_dims) :: dvel_dt
2312 real(wp),
dimension(num_fluids) :: dalpha_rho_dt
2313 real(wp),
dimension(num_species) :: ys, h_k, dys_dt, dys_ds, xs, gamma_i, cp_i
2314# 502 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2315 real(wp),
dimension(2) :: re_cbc
2316 real(wp),
dimension(3) :: lambda
2326 real(wp) :: t, sum_enthalpies
2327 real(wp) :: cv, cp, e_mix, mw, r_gas
2328 real(wp) :: vel_k_sum, vel_dv_dt_sum
2329 integer :: i,
j,
k, r
2337# 523 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2338#if defined(MFC_OpenACC)
2339# 523 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2341# 523 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2342#elif defined(MFC_OpenMP)
2343# 523 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2345# 523 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2352# 530 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2353 if (
cbc_dir == 1 .and. recon_type == weno_type)
then
2355 if (weno_order == 3 .or. dummy)
then
2357 &
is3, idwbuff(2)%beg, idwbuff(3)%beg)
2360# 536 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2362# 536 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2363#if defined(MFC_OpenACC)
2364# 536 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2366# 536 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2367#elif defined(MFC_OpenMP)
2368# 536 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2370# 536 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2372# 536 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2374# 536 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2376# 536 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2387# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2388#if defined(MFC_OpenACC)
2389# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2391# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2392#elif defined(MFC_OpenMP)
2393# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2395# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2397# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2401# 547 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2403# 547 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2404#if defined(MFC_OpenACC)
2405# 547 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2407# 547 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2408#elif defined(MFC_OpenMP)
2409# 547 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2411# 547 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2413# 547 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2415# 547 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2417# 547 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2419 do i = eqn_idx%adv%beg, eqn_idx%adv%end
2428# 556 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2429#if defined(MFC_OpenACC)
2430# 556 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2432# 556 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2433#elif defined(MFC_OpenMP)
2434# 556 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2436# 556 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2438# 556 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2443 if (weno_order == 5 .or. dummy)
then
2445 &
is3, idwbuff(2)%beg, idwbuff(3)%beg)
2448# 564 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2450# 564 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2451#if defined(MFC_OpenACC)
2452# 564 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2454# 564 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2455#elif defined(MFC_OpenMP)
2456# 564 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2458# 564 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2460# 564 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2462# 564 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2464# 564 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2480# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2481#if defined(MFC_OpenACC)
2482# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2484# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2485#elif defined(MFC_OpenMP)
2486# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2488# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2490# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2494# 580 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2496# 580 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2497#if defined(MFC_OpenACC)
2498# 580 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2500# 580 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2501#elif defined(MFC_OpenMP)
2502# 580 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2504# 580 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2506# 580 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2508# 580 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2510# 580 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2512 do i = eqn_idx%adv%beg, eqn_idx%adv%end
2527# 595 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2528#if defined(MFC_OpenACC)
2529# 595 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2531# 595 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2532#elif defined(MFC_OpenMP)
2533# 595 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2535# 595 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2537# 595 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2543# 599 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2545# 599 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2546#if defined(MFC_OpenACC)
2547# 599 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2549# 599 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2550#elif defined(MFC_OpenMP)
2551# 599 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2553# 599 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2555# 599 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2557# 599 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2559# 599 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2561# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2566# 607 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2567#if defined(MFC_OpenACC)
2568# 607 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2570# 607 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2571#elif defined(MFC_OpenMP)
2572# 607 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2574# 607 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2576 do i = 1, eqn_idx%cont%end
2581# 612 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2582#if defined(MFC_OpenACC)
2583# 612 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2585# 612 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2586#elif defined(MFC_OpenMP)
2587# 612 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2589# 612 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2597# 618 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2598#if defined(MFC_OpenACC)
2599# 618 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2601# 618 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2602#elif defined(MFC_OpenMP)
2603# 618 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2605# 618 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2608 vel_k_sum = vel_k_sum + vel(i)**2._wp
2614# 625 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2615#if defined(MFC_OpenACC)
2616# 625 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2618# 625 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2619#elif defined(MFC_OpenMP)
2620# 625 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2622# 625 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2624 do i = 1, eqn_idx%adv%end - eqn_idx%E
2628 call s_convert_species_to_mixture_variables_acc(rho, gamma, pi_inf, qv, adv_local, alpha_rho, re_cbc)
2631# 632 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2632#if defined(MFC_OpenACC)
2633# 632 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2635# 632 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2636#elif defined(MFC_OpenMP)
2637# 632 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2639# 632 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2641 do i = 1, eqn_idx%cont%end
2642 mf(i) = alpha_rho(i)/rho
2647# 638 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2648#if defined(MFC_OpenACC)
2649# 638 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2651# 638 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2652#elif defined(MFC_OpenMP)
2653# 638 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2655# 638 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2657 do i = eqn_idx%species%beg, eqn_idx%species%end
2661 call get_mixture_molecular_weight(ys, mw)
2662 r_gas = gas_constant/mw
2664 call get_mixture_specific_heat_cp_mass(t, ys, cp)
2665 call get_mixture_energy_mass(t, ys, e_mix)
2666 e = rho*e_mix + 5.e-1_wp*rho*vel_k_sum
2667 if (chem_params%gamma_method == 1)
then
2669 call get_mole_fractions(mw, ys, xs)
2670 call get_species_specific_heats_r(t, cp_i)
2671 gamma_i = cp_i/(cp_i - 1.0_wp)
2672 gamma = sum(xs(:)/(gamma_i(:) - 1.0_wp))
2673 else if (chem_params%gamma_method == 2)
then
2675 call get_mixture_specific_heat_cv_mass(t, ys, cv)
2676 gamma = 1.0_wp/(cp/cv - 1.0_wp)
2679 e = gamma*pres + pi_inf + 5.e-1_wp*rho*vel_k_sum
2685 call s_compute_speed_of_sound(pres, rho, gamma, pi_inf, h, adv_local, vel_k_sum, 0._wp, c, qv)
2690# 671 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2691#if defined(MFC_OpenACC)
2692# 671 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2694# 671 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2695#elif defined(MFC_OpenMP)
2696# 671 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2698# 671 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2700 do i = 1, eqn_idx%cont%end
2701 dalpha_rho_ds(i) = 0._wp
2705# 676 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2706#if defined(MFC_OpenACC)
2707# 676 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2709# 676 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2710#elif defined(MFC_OpenMP)
2711# 676 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2713# 676 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2721# 682 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2722#if defined(MFC_OpenACC)
2723# 682 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2725# 682 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2726#elif defined(MFC_OpenMP)
2727# 682 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2729# 682 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2731 do i = 1, eqn_idx%adv%end - eqn_idx%E
2737# 688 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2738#if defined(MFC_OpenACC)
2739# 688 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2741# 688 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2742#elif defined(MFC_OpenMP)
2743# 688 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2745# 688 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2747 do i = 1, num_species
2753# 694 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2754#if defined(MFC_OpenACC)
2755# 694 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2757# 694 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2758#elif defined(MFC_OpenMP)
2759# 694 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2761# 694 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2765# 696 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2766#if defined(MFC_OpenACC)
2767# 696 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2769# 696 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2770#elif defined(MFC_OpenMP)
2771# 696 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2773# 696 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2775 do i = 1, eqn_idx%cont%end
2779# 700 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2780#if defined(MFC_OpenACC)
2781# 700 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2783# 700 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2784#elif defined(MFC_OpenMP)
2785# 700 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2787# 700 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2796# 707 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2797#if defined(MFC_OpenACC)
2798# 707 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2800# 707 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2801#elif defined(MFC_OpenMP)
2802# 707 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2804# 707 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2806 do i = 1, eqn_idx%adv%end - eqn_idx%E
2812# 713 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2813#if defined(MFC_OpenACC)
2814# 713 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2816# 713 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2817#elif defined(MFC_OpenMP)
2818# 713 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2820# 713 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2822 do i = 1, num_species
2830 lambda(1) = vel(dir_idx(1)) - c
2831 lambda(2) = vel(dir_idx(1))
2832 lambda(3) = vel(dir_idx(1)) + c
2834 ma = vel(dir_idx(1))/c
2836 if ((
cbc_loc == -1 .and. bc_x%beg == bc_char_slip_wall) &
2837 & .or. (
cbc_loc == 1 .and. bc_x%end == bc_char_slip_wall))
then
2838 call s_compute_slip_wall_l(lambda,
l, rho, c, dpres_ds, dvel_ds)
2839 else if ((
cbc_loc == -1 .and. bc_x%beg == bc_char_nr_sub_buffer) &
2840 & .or. (
cbc_loc == 1 .and. bc_x%end == bc_char_nr_sub_buffer))
then
2841 call s_compute_nonreflecting_subsonic_buffer_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
2842 & dvel_ds, dadv_ds, dys_ds)
2843 else if ((
cbc_loc == -1 .and. bc_x%beg == bc_char_nr_sub_inflow) &
2844 & .or. (
cbc_loc == 1 .and. bc_x%end == bc_char_nr_sub_inflow))
then
2845 call s_compute_nonreflecting_subsonic_inflow_l(lambda,
l, rho, c, dpres_ds, dvel_ds)
2847 if (bc_x%grcbc_in)
then
2849# 740 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2850#if defined(MFC_OpenACC)
2851# 740 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2853# 740 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2854#elif defined(MFC_OpenMP)
2855# 740 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2857# 740 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2859 do i = 2, eqn_idx%mom%beg
2860 l(i) = c**3._wp*ma*(alpha_rho(i - 1) -
alpha_rho_in(i - 1, &
2864 l(eqn_idx%mom%beg + 1) = c*ma*(vel(dir_idx(2)) -
vel_in(1, &
2867 l(eqn_idx%mom%beg + 2) = c*ma*(vel(dir_idx(3)) -
vel_in(1, &
2872# 753 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2873#if defined(MFC_OpenACC)
2874# 753 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2876# 753 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2877#elif defined(MFC_OpenMP)
2878# 753 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2880# 753 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2882 do i = eqn_idx%E, eqn_idx%adv%end - 1
2883 l(i) = c*ma*(adv_local(i + 1 - eqn_idx%E) -
alpha_in(i + 1 - eqn_idx%E, &
2886 l(eqn_idx%adv%end) = rho*c**2._wp*(1._wp + ma)*(vel(dir_idx(1)) +
vel_in(1, &
2887 & dir_idx(1))*sign(1, &
2890 else if ((
cbc_loc == -1 .and. bc_x%beg == bc_char_nr_sub_outflow) &
2891 & .or. (
cbc_loc == 1 .and. bc_x%end == bc_char_nr_sub_outflow))
then
2892 call s_compute_nonreflecting_subsonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
2893 & dvel_ds, dadv_ds, dys_ds)
2895 if (bc_x%grcbc_out)
then
2899 if (bc_x%grcbc_vel_out)
then
2900 l(eqn_idx%adv%end) =
l(eqn_idx%adv%end) + rho*c**2._wp*(1._wp - ma)*(vel(dir_idx(1)) &
2904 else if ((
cbc_loc == -1 .and. bc_x%beg == bc_char_ff_sub_outflow) &
2905 & .or. (
cbc_loc == 1 .and. bc_x%end == bc_char_ff_sub_outflow))
then
2906 call s_compute_force_free_subsonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, &
2908 else if ((
cbc_loc == -1 .and. bc_x%beg == bc_char_cp_sub_outflow) &
2909 & .or. (
cbc_loc == 1 .and. bc_x%end == bc_char_cp_sub_outflow))
then
2910 call s_compute_constant_pressure_subsonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
2912 else if ((
cbc_loc == -1 .and. bc_x%beg == bc_char_sup_inflow) &
2913 & .or. (
cbc_loc == 1 .and. bc_x%end == bc_char_sup_inflow))
then
2914 call s_compute_supersonic_inflow_l(
l)
2915 else if ((
cbc_loc == -1 .and. bc_x%beg == bc_char_sup_outflow) &
2916 & .or. (
cbc_loc == 1 .and. bc_x%end == bc_char_sup_outflow))
then
2917 call s_compute_supersonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, dadv_ds, &
2923 dpres_dt = -5.e-1_wp*(
l(eqn_idx%adv%end) +
l(1)) + rho*c*c*vel(dir_idx(1))/y_cc(n)
2925 dpres_dt = -5.e-1_wp*(
l(eqn_idx%adv%end) +
l(1))
2929# 800 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2930#if defined(MFC_OpenACC)
2931# 800 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2933# 800 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2934#elif defined(MFC_OpenMP)
2935# 800 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2937# 800 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2939 do i = 1, eqn_idx%cont%end
2940 dalpha_rho_dt(i) = -(
l(i + 1) - mf(i)*dpres_dt)/(c*c)
2944# 805 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2945#if defined(MFC_OpenACC)
2946# 805 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2948# 805 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2949#elif defined(MFC_OpenMP)
2950# 805 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2952# 805 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2955 dvel_dt(dir_idx(i)) = dir_flg(dir_idx(i))*(
l(1) -
l(eqn_idx%adv%end))/(2._wp*rho*c) &
2956 & + (dir_flg(dir_idx(i)) - 1._wp)*
l(eqn_idx%mom%beg + i - 1)
2959 vel_dv_dt_sum = 0._wp
2961# 812 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2962#if defined(MFC_OpenACC)
2963# 812 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2965# 812 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2966#elif defined(MFC_OpenMP)
2967# 812 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2969# 812 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2972 vel_dv_dt_sum = vel_dv_dt_sum + vel(i)*dvel_dt(i)
2977# 818 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2978#if defined(MFC_OpenACC)
2979# 818 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2981# 818 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2982#elif defined(MFC_OpenMP)
2983# 818 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2985# 818 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2987 do i = 1, num_species
2988 dys_dt(i) = -1._wp*
l(eqn_idx%species%beg + i - 1)
2995# 826 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2996#if defined(MFC_OpenACC)
2997# 826 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
2999# 826 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3000#elif defined(MFC_OpenMP)
3001# 826 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3003# 826 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3005 do i = 1, eqn_idx%adv%end - eqn_idx%E
3006 dadv_dt(i) = -
l(eqn_idx%mom%end + i)
3010# 831 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3011#if defined(MFC_OpenACC)
3012# 831 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3014# 831 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3015#elif defined(MFC_OpenMP)
3016# 831 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3018# 831 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3020 do i = 1, eqn_idx%adv%end - eqn_idx%E
3021 dadv_dt(i) = -
l(eqn_idx%mom%end + i)
3025 drho_dt = 0._wp; dgamma_dt = 0._wp; dpi_inf_dt = 0._wp; dqv_dt = 0._wp
3027 if (model_eqns == 1)
then
3028 drho_dt = dalpha_rho_dt(1)
3029 dgamma_dt = dadv_dt(1)
3030# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3031 dpi_inf_dt = dadv_dt(2)
3032# 845 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3035# 846 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3036#if defined(MFC_OpenACC)
3037# 846 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3039# 846 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3040#elif defined(MFC_OpenMP)
3041# 846 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3043# 846 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3045 do i = 1, num_fluids
3046 drho_dt = drho_dt + dalpha_rho_dt(i)
3047 dgamma_dt = dgamma_dt + dadv_dt(i)*gammas(i)
3048 dpi_inf_dt = dpi_inf_dt + dadv_dt(i)*pi_infs(i)
3049 dqv_dt = dqv_dt + dalpha_rho_dt(i)*qvs(i)
3055# 856 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3056#if defined(MFC_OpenACC)
3057# 856 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3059# 856 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3060#elif defined(MFC_OpenMP)
3061# 856 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3063# 856 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3065 do i = 1, eqn_idx%cont%end
3070# 861 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3071#if defined(MFC_OpenACC)
3072# 861 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3074# 861 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3075#elif defined(MFC_OpenMP)
3076# 861 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3078# 861 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3080 do i = eqn_idx%mom%beg, eqn_idx%mom%end
3082 & i) +
ds(0)*(vel(i - eqn_idx%cont%end)*drho_dt + rho*dvel_dt(i - eqn_idx%cont%end))
3088 call get_species_enthalpies_rt(t, h_k)
3089 sum_enthalpies = 0._wp
3091# 872 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3092#if defined(MFC_OpenACC)
3093# 872 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3095# 872 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3096#elif defined(MFC_OpenMP)
3097# 872 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3099# 872 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3101 do i = 1, num_species
3102# 879 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3103 h_k(i) = h_k(i)*gas_constant/molecular_weights(i)*t
3104 sum_enthalpies = sum_enthalpies + (rho*h_k(i) - pres*mw/molecular_weights(i)*cp/r_gas)*dys_dt(i)
3105# 882 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3108 & eqn_idx%E) +
ds(0)*((e/rho + pres/rho)*drho_dt + rho*vel_dv_dt_sum + cp*t*
l(2) &
3109 & /(c*c) + sum_enthalpies)
3111# 886 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3112#if defined(MFC_OpenACC)
3113# 886 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3115# 886 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3116#elif defined(MFC_OpenMP)
3117# 886 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3119# 886 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3121 do i = 1, num_species
3123 & eqn_idx%species%beg + i - 1) +
ds(0)*(drho_dt*ys(i) + rho*dys_dt(i))
3127 & eqn_idx%E) +
ds(0)*(pres*dgamma_dt + gamma*dpres_dt + dpi_inf_dt + dqv_dt &
3128 & + rho*vel_dv_dt_sum + 5.e-1_wp*drho_dt*vel_k_sum)
3131 if (riemann_solver == 1)
then
3133# 898 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3134#if defined(MFC_OpenACC)
3135# 898 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3137# 898 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3138#elif defined(MFC_OpenMP)
3139# 898 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3141# 898 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3143 do i = eqn_idx%adv%beg, eqn_idx%adv%end
3148# 903 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3149#if defined(MFC_OpenACC)
3150# 903 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3152# 903 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3153#elif defined(MFC_OpenMP)
3154# 903 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3156# 903 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3158 do i = eqn_idx%adv%beg, eqn_idx%adv%end
3159 flux_src_rsx_vf_l(-1,
k, r, i) = 1._wp/max(abs(vel(dir_idx(1))), sgm_eps)*sign(1._wp, &
3162 & i) +
ds(0)*dadv_dt(i - eqn_idx%E))
3166# 911 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3167#if defined(MFC_OpenACC)
3168# 911 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3170# 911 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3171#elif defined(MFC_OpenMP)
3172# 911 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3174# 911 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3176 do i = eqn_idx%adv%beg, eqn_idx%adv%end
3181# 916 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3182#if defined(MFC_OpenACC)
3183# 916 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3185# 916 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3186#elif defined(MFC_OpenMP)
3187# 916 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3189# 916 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3191 do i = eqn_idx%adv%beg, eqn_idx%adv%end
3199# 924 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3200#if defined(MFC_OpenACC)
3201# 924 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3203# 924 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3204#elif defined(MFC_OpenMP)
3205# 924 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3207# 924 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3209# 924 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3212# 530 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3213 if (
cbc_dir == 2 .and. recon_type == weno_type)
then
3215 if (weno_order == 3 .or. dummy)
then
3217 &
is3, idwbuff(2)%beg, idwbuff(3)%beg)
3220# 536 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3222# 536 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3223#if defined(MFC_OpenACC)
3224# 536 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3226# 536 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3227#elif defined(MFC_OpenMP)
3228# 536 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3230# 536 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3232# 536 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3234# 536 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3236# 536 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3247# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3248#if defined(MFC_OpenACC)
3249# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3251# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3252#elif defined(MFC_OpenMP)
3253# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3255# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3257# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3261# 547 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3263# 547 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3264#if defined(MFC_OpenACC)
3265# 547 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3267# 547 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3268#elif defined(MFC_OpenMP)
3269# 547 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3271# 547 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3273# 547 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3275# 547 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3277# 547 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3279 do i = eqn_idx%adv%beg, eqn_idx%adv%end
3288# 556 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3289#if defined(MFC_OpenACC)
3290# 556 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3292# 556 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3293#elif defined(MFC_OpenMP)
3294# 556 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3296# 556 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3298# 556 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3303 if (weno_order == 5 .or. dummy)
then
3305 &
is3, idwbuff(2)%beg, idwbuff(3)%beg)
3308# 564 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3310# 564 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3311#if defined(MFC_OpenACC)
3312# 564 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3314# 564 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3315#elif defined(MFC_OpenMP)
3316# 564 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3318# 564 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3320# 564 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3322# 564 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3324# 564 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3340# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3341#if defined(MFC_OpenACC)
3342# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3344# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3345#elif defined(MFC_OpenMP)
3346# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3348# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3350# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3354# 580 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3356# 580 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3357#if defined(MFC_OpenACC)
3358# 580 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3360# 580 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3361#elif defined(MFC_OpenMP)
3362# 580 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3364# 580 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3366# 580 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3368# 580 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3370# 580 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3372 do i = eqn_idx%adv%beg, eqn_idx%adv%end
3387# 595 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3388#if defined(MFC_OpenACC)
3389# 595 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3391# 595 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3392#elif defined(MFC_OpenMP)
3393# 595 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3395# 595 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3397# 595 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3403# 599 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3405# 599 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3406#if defined(MFC_OpenACC)
3407# 599 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3409# 599 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3410#elif defined(MFC_OpenMP)
3411# 599 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3413# 599 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3415# 599 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3417# 599 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3419# 599 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3421# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3426# 607 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3427#if defined(MFC_OpenACC)
3428# 607 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3430# 607 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3431#elif defined(MFC_OpenMP)
3432# 607 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3434# 607 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3436 do i = 1, eqn_idx%cont%end
3441# 612 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3442#if defined(MFC_OpenACC)
3443# 612 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3445# 612 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3446#elif defined(MFC_OpenMP)
3447# 612 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3449# 612 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3457# 618 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3458#if defined(MFC_OpenACC)
3459# 618 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3461# 618 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3462#elif defined(MFC_OpenMP)
3463# 618 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3465# 618 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3468 vel_k_sum = vel_k_sum + vel(i)**2._wp
3474# 625 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3475#if defined(MFC_OpenACC)
3476# 625 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3478# 625 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3479#elif defined(MFC_OpenMP)
3480# 625 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3482# 625 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3484 do i = 1, eqn_idx%adv%end - eqn_idx%E
3488 call s_convert_species_to_mixture_variables_acc(rho, gamma, pi_inf, qv, adv_local, alpha_rho, re_cbc)
3491# 632 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3492#if defined(MFC_OpenACC)
3493# 632 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3495# 632 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3496#elif defined(MFC_OpenMP)
3497# 632 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3499# 632 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3501 do i = 1, eqn_idx%cont%end
3502 mf(i) = alpha_rho(i)/rho
3507# 638 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3508#if defined(MFC_OpenACC)
3509# 638 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3511# 638 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3512#elif defined(MFC_OpenMP)
3513# 638 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3515# 638 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3517 do i = eqn_idx%species%beg, eqn_idx%species%end
3521 call get_mixture_molecular_weight(ys, mw)
3522 r_gas = gas_constant/mw
3524 call get_mixture_specific_heat_cp_mass(t, ys, cp)
3525 call get_mixture_energy_mass(t, ys, e_mix)
3526 e = rho*e_mix + 5.e-1_wp*rho*vel_k_sum
3527 if (chem_params%gamma_method == 1)
then
3529 call get_mole_fractions(mw, ys, xs)
3530 call get_species_specific_heats_r(t, cp_i)
3531 gamma_i = cp_i/(cp_i - 1.0_wp)
3532 gamma = sum(xs(:)/(gamma_i(:) - 1.0_wp))
3533 else if (chem_params%gamma_method == 2)
then
3535 call get_mixture_specific_heat_cv_mass(t, ys, cv)
3536 gamma = 1.0_wp/(cp/cv - 1.0_wp)
3539 e = gamma*pres + pi_inf + 5.e-1_wp*rho*vel_k_sum
3545 call s_compute_speed_of_sound(pres, rho, gamma, pi_inf, h, adv_local, vel_k_sum, 0._wp, c, qv)
3550# 671 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3551#if defined(MFC_OpenACC)
3552# 671 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3554# 671 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3555#elif defined(MFC_OpenMP)
3556# 671 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3558# 671 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3560 do i = 1, eqn_idx%cont%end
3561 dalpha_rho_ds(i) = 0._wp
3565# 676 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3566#if defined(MFC_OpenACC)
3567# 676 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3569# 676 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3570#elif defined(MFC_OpenMP)
3571# 676 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3573# 676 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3581# 682 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3582#if defined(MFC_OpenACC)
3583# 682 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3585# 682 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3586#elif defined(MFC_OpenMP)
3587# 682 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3589# 682 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3591 do i = 1, eqn_idx%adv%end - eqn_idx%E
3597# 688 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3598#if defined(MFC_OpenACC)
3599# 688 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3601# 688 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3602#elif defined(MFC_OpenMP)
3603# 688 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3605# 688 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3607 do i = 1, num_species
3613# 694 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3614#if defined(MFC_OpenACC)
3615# 694 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3617# 694 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3618#elif defined(MFC_OpenMP)
3619# 694 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3621# 694 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3625# 696 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3626#if defined(MFC_OpenACC)
3627# 696 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3629# 696 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3630#elif defined(MFC_OpenMP)
3631# 696 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3633# 696 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3635 do i = 1, eqn_idx%cont%end
3639# 700 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3640#if defined(MFC_OpenACC)
3641# 700 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3643# 700 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3644#elif defined(MFC_OpenMP)
3645# 700 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3647# 700 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3656# 707 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3657#if defined(MFC_OpenACC)
3658# 707 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3660# 707 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3661#elif defined(MFC_OpenMP)
3662# 707 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3664# 707 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3666 do i = 1, eqn_idx%adv%end - eqn_idx%E
3672# 713 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3673#if defined(MFC_OpenACC)
3674# 713 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3676# 713 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3677#elif defined(MFC_OpenMP)
3678# 713 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3680# 713 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3682 do i = 1, num_species
3690 lambda(1) = vel(dir_idx(1)) - c
3691 lambda(2) = vel(dir_idx(1))
3692 lambda(3) = vel(dir_idx(1)) + c
3694 ma = vel(dir_idx(1))/c
3696 if ((
cbc_loc == -1 .and. bc_y%beg == bc_char_slip_wall) &
3697 & .or. (
cbc_loc == 1 .and. bc_y%end == bc_char_slip_wall))
then
3698 call s_compute_slip_wall_l(lambda,
l, rho, c, dpres_ds, dvel_ds)
3699 else if ((
cbc_loc == -1 .and. bc_y%beg == bc_char_nr_sub_buffer) &
3700 & .or. (
cbc_loc == 1 .and. bc_y%end == bc_char_nr_sub_buffer))
then
3701 call s_compute_nonreflecting_subsonic_buffer_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
3702 & dvel_ds, dadv_ds, dys_ds)
3703 else if ((
cbc_loc == -1 .and. bc_y%beg == bc_char_nr_sub_inflow) &
3704 & .or. (
cbc_loc == 1 .and. bc_y%end == bc_char_nr_sub_inflow))
then
3705 call s_compute_nonreflecting_subsonic_inflow_l(lambda,
l, rho, c, dpres_ds, dvel_ds)
3707 if (bc_y%grcbc_in)
then
3709# 740 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3710#if defined(MFC_OpenACC)
3711# 740 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3713# 740 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3714#elif defined(MFC_OpenMP)
3715# 740 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3717# 740 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3719 do i = 2, eqn_idx%mom%beg
3720 l(i) = c**3._wp*ma*(alpha_rho(i - 1) -
alpha_rho_in(i - 1, &
3724 l(eqn_idx%mom%beg + 1) = c*ma*(vel(dir_idx(2)) -
vel_in(2, &
3727 l(eqn_idx%mom%beg + 2) = c*ma*(vel(dir_idx(3)) -
vel_in(2, &
3732# 753 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3733#if defined(MFC_OpenACC)
3734# 753 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3736# 753 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3737#elif defined(MFC_OpenMP)
3738# 753 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3740# 753 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3742 do i = eqn_idx%E, eqn_idx%adv%end - 1
3743 l(i) = c*ma*(adv_local(i + 1 - eqn_idx%E) -
alpha_in(i + 1 - eqn_idx%E, &
3746 l(eqn_idx%adv%end) = rho*c**2._wp*(1._wp + ma)*(vel(dir_idx(1)) +
vel_in(2, &
3747 & dir_idx(1))*sign(1, &
3750 else if ((
cbc_loc == -1 .and. bc_y%beg == bc_char_nr_sub_outflow) &
3751 & .or. (
cbc_loc == 1 .and. bc_y%end == bc_char_nr_sub_outflow))
then
3752 call s_compute_nonreflecting_subsonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
3753 & dvel_ds, dadv_ds, dys_ds)
3755 if (bc_y%grcbc_out)
then
3759 if (bc_y%grcbc_vel_out)
then
3760 l(eqn_idx%adv%end) =
l(eqn_idx%adv%end) + rho*c**2._wp*(1._wp - ma)*(vel(dir_idx(1)) &
3764 else if ((
cbc_loc == -1 .and. bc_y%beg == bc_char_ff_sub_outflow) &
3765 & .or. (
cbc_loc == 1 .and. bc_y%end == bc_char_ff_sub_outflow))
then
3766 call s_compute_force_free_subsonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, &
3768 else if ((
cbc_loc == -1 .and. bc_y%beg == bc_char_cp_sub_outflow) &
3769 & .or. (
cbc_loc == 1 .and. bc_y%end == bc_char_cp_sub_outflow))
then
3770 call s_compute_constant_pressure_subsonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
3772 else if ((
cbc_loc == -1 .and. bc_y%beg == bc_char_sup_inflow) &
3773 & .or. (
cbc_loc == 1 .and. bc_y%end == bc_char_sup_inflow))
then
3774 call s_compute_supersonic_inflow_l(
l)
3775 else if ((
cbc_loc == -1 .and. bc_y%beg == bc_char_sup_outflow) &
3776 & .or. (
cbc_loc == 1 .and. bc_y%end == bc_char_sup_outflow))
then
3777 call s_compute_supersonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, dadv_ds, &
3783 dpres_dt = -5.e-1_wp*(
l(eqn_idx%adv%end) +
l(1)) + rho*c*c*vel(dir_idx(1))/y_cc(n)
3785 dpres_dt = -5.e-1_wp*(
l(eqn_idx%adv%end) +
l(1))
3789# 800 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3790#if defined(MFC_OpenACC)
3791# 800 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3793# 800 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3794#elif defined(MFC_OpenMP)
3795# 800 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3797# 800 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3799 do i = 1, eqn_idx%cont%end
3800 dalpha_rho_dt(i) = -(
l(i + 1) - mf(i)*dpres_dt)/(c*c)
3804# 805 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3805#if defined(MFC_OpenACC)
3806# 805 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3808# 805 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3809#elif defined(MFC_OpenMP)
3810# 805 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3812# 805 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3815 dvel_dt(dir_idx(i)) = dir_flg(dir_idx(i))*(
l(1) -
l(eqn_idx%adv%end))/(2._wp*rho*c) &
3816 & + (dir_flg(dir_idx(i)) - 1._wp)*
l(eqn_idx%mom%beg + i - 1)
3819 vel_dv_dt_sum = 0._wp
3821# 812 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3822#if defined(MFC_OpenACC)
3823# 812 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3825# 812 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3826#elif defined(MFC_OpenMP)
3827# 812 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3829# 812 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3832 vel_dv_dt_sum = vel_dv_dt_sum + vel(i)*dvel_dt(i)
3837# 818 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3838#if defined(MFC_OpenACC)
3839# 818 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3841# 818 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3842#elif defined(MFC_OpenMP)
3843# 818 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3845# 818 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3847 do i = 1, num_species
3848 dys_dt(i) = -1._wp*
l(eqn_idx%species%beg + i - 1)
3855# 826 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3856#if defined(MFC_OpenACC)
3857# 826 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3859# 826 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3860#elif defined(MFC_OpenMP)
3861# 826 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3863# 826 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3865 do i = 1, eqn_idx%adv%end - eqn_idx%E
3866 dadv_dt(i) = -
l(eqn_idx%mom%end + i)
3870# 831 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3871#if defined(MFC_OpenACC)
3872# 831 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3874# 831 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3875#elif defined(MFC_OpenMP)
3876# 831 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3878# 831 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3880 do i = 1, eqn_idx%adv%end - eqn_idx%E
3881 dadv_dt(i) = -
l(eqn_idx%mom%end + i)
3885 drho_dt = 0._wp; dgamma_dt = 0._wp; dpi_inf_dt = 0._wp; dqv_dt = 0._wp
3887 if (model_eqns == 1)
then
3888 drho_dt = dalpha_rho_dt(1)
3889 dgamma_dt = dadv_dt(1)
3890# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3891 dpi_inf_dt = dadv_dt(2)
3892# 845 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3895# 846 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3896#if defined(MFC_OpenACC)
3897# 846 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3899# 846 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3900#elif defined(MFC_OpenMP)
3901# 846 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3903# 846 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3905 do i = 1, num_fluids
3906 drho_dt = drho_dt + dalpha_rho_dt(i)
3907 dgamma_dt = dgamma_dt + dadv_dt(i)*gammas(i)
3908 dpi_inf_dt = dpi_inf_dt + dadv_dt(i)*pi_infs(i)
3909 dqv_dt = dqv_dt + dalpha_rho_dt(i)*qvs(i)
3915# 856 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3916#if defined(MFC_OpenACC)
3917# 856 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3919# 856 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3920#elif defined(MFC_OpenMP)
3921# 856 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3923# 856 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3925 do i = 1, eqn_idx%cont%end
3930# 861 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3931#if defined(MFC_OpenACC)
3932# 861 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3934# 861 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3935#elif defined(MFC_OpenMP)
3936# 861 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3938# 861 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3940 do i = eqn_idx%mom%beg, eqn_idx%mom%end
3942 & i) +
ds(0)*(vel(i - eqn_idx%cont%end)*drho_dt + rho*dvel_dt(i - eqn_idx%cont%end))
3948 call get_species_enthalpies_rt(t, h_k)
3949 sum_enthalpies = 0._wp
3951# 872 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3952#if defined(MFC_OpenACC)
3953# 872 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3955# 872 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3956#elif defined(MFC_OpenMP)
3957# 872 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3959# 872 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3961 do i = 1, num_species
3962# 879 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3963 h_k(i) = h_k(i)*gas_constant/molecular_weights(i)*t
3964 sum_enthalpies = sum_enthalpies + (rho*h_k(i) - pres*mw/molecular_weights(i)*cp/r_gas)*dys_dt(i)
3965# 882 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3968 & eqn_idx%E) +
ds(0)*((e/rho + pres/rho)*drho_dt + rho*vel_dv_dt_sum + cp*t*
l(2) &
3969 & /(c*c) + sum_enthalpies)
3971# 886 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3972#if defined(MFC_OpenACC)
3973# 886 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3975# 886 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3976#elif defined(MFC_OpenMP)
3977# 886 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3979# 886 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3981 do i = 1, num_species
3983 & eqn_idx%species%beg + i - 1) +
ds(0)*(drho_dt*ys(i) + rho*dys_dt(i))
3987 & eqn_idx%E) +
ds(0)*(pres*dgamma_dt + gamma*dpres_dt + dpi_inf_dt + dqv_dt &
3988 & + rho*vel_dv_dt_sum + 5.e-1_wp*drho_dt*vel_k_sum)
3991 if (riemann_solver == 1)
then
3993# 898 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3994#if defined(MFC_OpenACC)
3995# 898 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3997# 898 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
3998#elif defined(MFC_OpenMP)
3999# 898 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4001# 898 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4003 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4008# 903 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4009#if defined(MFC_OpenACC)
4010# 903 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4012# 903 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4013#elif defined(MFC_OpenMP)
4014# 903 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4016# 903 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4018 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4019 flux_src_rsy_vf_l(-1,
k, r, i) = 1._wp/max(abs(vel(dir_idx(1))), sgm_eps)*sign(1._wp, &
4022 & i) +
ds(0)*dadv_dt(i - eqn_idx%E))
4026# 911 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4027#if defined(MFC_OpenACC)
4028# 911 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4030# 911 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4031#elif defined(MFC_OpenMP)
4032# 911 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4034# 911 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4036 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4041# 916 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4042#if defined(MFC_OpenACC)
4043# 916 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4045# 916 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4046#elif defined(MFC_OpenMP)
4047# 916 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4049# 916 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4051 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4059# 924 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4060#if defined(MFC_OpenACC)
4061# 924 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4063# 924 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4064#elif defined(MFC_OpenMP)
4065# 924 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4067# 924 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4069# 924 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4072# 530 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4073 if (
cbc_dir == 3 .and. recon_type == weno_type)
then
4075 if (weno_order == 3 .or. dummy)
then
4077 &
is3, idwbuff(2)%beg, idwbuff(3)%beg)
4080# 536 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4082# 536 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4083#if defined(MFC_OpenACC)
4084# 536 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4086# 536 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4087#elif defined(MFC_OpenMP)
4088# 536 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4090# 536 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4092# 536 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4094# 536 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4096# 536 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4107# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4108#if defined(MFC_OpenACC)
4109# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4111# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4112#elif defined(MFC_OpenMP)
4113# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4115# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4117# 545 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4121# 547 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4123# 547 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4124#if defined(MFC_OpenACC)
4125# 547 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4127# 547 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4128#elif defined(MFC_OpenMP)
4129# 547 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4131# 547 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4133# 547 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4135# 547 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4137# 547 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4139 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4148# 556 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4149#if defined(MFC_OpenACC)
4150# 556 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4152# 556 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4153#elif defined(MFC_OpenMP)
4154# 556 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4156# 556 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4158# 556 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4163 if (weno_order == 5 .or. dummy)
then
4165 &
is3, idwbuff(2)%beg, idwbuff(3)%beg)
4168# 564 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4170# 564 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4171#if defined(MFC_OpenACC)
4172# 564 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4174# 564 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4175#elif defined(MFC_OpenMP)
4176# 564 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4178# 564 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4180# 564 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4182# 564 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4184# 564 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4200# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4201#if defined(MFC_OpenACC)
4202# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4204# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4205#elif defined(MFC_OpenMP)
4206# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4208# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4210# 578 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4214# 580 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4216# 580 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4217#if defined(MFC_OpenACC)
4218# 580 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4220# 580 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4221#elif defined(MFC_OpenMP)
4222# 580 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4224# 580 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4226# 580 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4228# 580 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4230# 580 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4232 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4247# 595 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4248#if defined(MFC_OpenACC)
4249# 595 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4251# 595 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4252#elif defined(MFC_OpenMP)
4253# 595 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4255# 595 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4257# 595 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4263# 599 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4265# 599 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4266#if defined(MFC_OpenACC)
4267# 599 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4269# 599 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4270#elif defined(MFC_OpenMP)
4271# 599 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4273# 599 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4275# 599 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4277# 599 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4279# 599 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4281# 604 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4286# 607 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4287#if defined(MFC_OpenACC)
4288# 607 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4290# 607 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4291#elif defined(MFC_OpenMP)
4292# 607 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4294# 607 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4296 do i = 1, eqn_idx%cont%end
4301# 612 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4302#if defined(MFC_OpenACC)
4303# 612 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4305# 612 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4306#elif defined(MFC_OpenMP)
4307# 612 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4309# 612 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4317# 618 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4318#if defined(MFC_OpenACC)
4319# 618 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4321# 618 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4322#elif defined(MFC_OpenMP)
4323# 618 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4325# 618 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4328 vel_k_sum = vel_k_sum + vel(i)**2._wp
4334# 625 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4335#if defined(MFC_OpenACC)
4336# 625 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4338# 625 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4339#elif defined(MFC_OpenMP)
4340# 625 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4342# 625 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4344 do i = 1, eqn_idx%adv%end - eqn_idx%E
4348 call s_convert_species_to_mixture_variables_acc(rho, gamma, pi_inf, qv, adv_local, alpha_rho, re_cbc)
4351# 632 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4352#if defined(MFC_OpenACC)
4353# 632 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4355# 632 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4356#elif defined(MFC_OpenMP)
4357# 632 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4359# 632 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4361 do i = 1, eqn_idx%cont%end
4362 mf(i) = alpha_rho(i)/rho
4367# 638 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4368#if defined(MFC_OpenACC)
4369# 638 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4371# 638 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4372#elif defined(MFC_OpenMP)
4373# 638 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4375# 638 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4377 do i = eqn_idx%species%beg, eqn_idx%species%end
4381 call get_mixture_molecular_weight(ys, mw)
4382 r_gas = gas_constant/mw
4384 call get_mixture_specific_heat_cp_mass(t, ys, cp)
4385 call get_mixture_energy_mass(t, ys, e_mix)
4386 e = rho*e_mix + 5.e-1_wp*rho*vel_k_sum
4387 if (chem_params%gamma_method == 1)
then
4389 call get_mole_fractions(mw, ys, xs)
4390 call get_species_specific_heats_r(t, cp_i)
4391 gamma_i = cp_i/(cp_i - 1.0_wp)
4392 gamma = sum(xs(:)/(gamma_i(:) - 1.0_wp))
4393 else if (chem_params%gamma_method == 2)
then
4395 call get_mixture_specific_heat_cv_mass(t, ys, cv)
4396 gamma = 1.0_wp/(cp/cv - 1.0_wp)
4399 e = gamma*pres + pi_inf + 5.e-1_wp*rho*vel_k_sum
4405 call s_compute_speed_of_sound(pres, rho, gamma, pi_inf, h, adv_local, vel_k_sum, 0._wp, c, qv)
4410# 671 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4411#if defined(MFC_OpenACC)
4412# 671 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4414# 671 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4415#elif defined(MFC_OpenMP)
4416# 671 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4418# 671 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4420 do i = 1, eqn_idx%cont%end
4421 dalpha_rho_ds(i) = 0._wp
4425# 676 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4426#if defined(MFC_OpenACC)
4427# 676 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4429# 676 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4430#elif defined(MFC_OpenMP)
4431# 676 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4433# 676 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4441# 682 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4442#if defined(MFC_OpenACC)
4443# 682 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4445# 682 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4446#elif defined(MFC_OpenMP)
4447# 682 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4449# 682 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4451 do i = 1, eqn_idx%adv%end - eqn_idx%E
4457# 688 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4458#if defined(MFC_OpenACC)
4459# 688 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4461# 688 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4462#elif defined(MFC_OpenMP)
4463# 688 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4465# 688 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4467 do i = 1, num_species
4473# 694 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4474#if defined(MFC_OpenACC)
4475# 694 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4477# 694 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4478#elif defined(MFC_OpenMP)
4479# 694 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4481# 694 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4485# 696 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4486#if defined(MFC_OpenACC)
4487# 696 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4489# 696 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4490#elif defined(MFC_OpenMP)
4491# 696 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4493# 696 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4495 do i = 1, eqn_idx%cont%end
4499# 700 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4500#if defined(MFC_OpenACC)
4501# 700 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4503# 700 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4504#elif defined(MFC_OpenMP)
4505# 700 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4507# 700 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4516# 707 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4517#if defined(MFC_OpenACC)
4518# 707 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4520# 707 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4521#elif defined(MFC_OpenMP)
4522# 707 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4524# 707 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4526 do i = 1, eqn_idx%adv%end - eqn_idx%E
4532# 713 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4533#if defined(MFC_OpenACC)
4534# 713 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4536# 713 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4537#elif defined(MFC_OpenMP)
4538# 713 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4540# 713 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4542 do i = 1, num_species
4550 lambda(1) = vel(dir_idx(1)) - c
4551 lambda(2) = vel(dir_idx(1))
4552 lambda(3) = vel(dir_idx(1)) + c
4554 ma = vel(dir_idx(1))/c
4556 if ((
cbc_loc == -1 .and. bc_z%beg == bc_char_slip_wall) &
4557 & .or. (
cbc_loc == 1 .and. bc_z%end == bc_char_slip_wall))
then
4558 call s_compute_slip_wall_l(lambda,
l, rho, c, dpres_ds, dvel_ds)
4559 else if ((
cbc_loc == -1 .and. bc_z%beg == bc_char_nr_sub_buffer) &
4560 & .or. (
cbc_loc == 1 .and. bc_z%end == bc_char_nr_sub_buffer))
then
4561 call s_compute_nonreflecting_subsonic_buffer_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
4562 & dvel_ds, dadv_ds, dys_ds)
4563 else if ((
cbc_loc == -1 .and. bc_z%beg == bc_char_nr_sub_inflow) &
4564 & .or. (
cbc_loc == 1 .and. bc_z%end == bc_char_nr_sub_inflow))
then
4565 call s_compute_nonreflecting_subsonic_inflow_l(lambda,
l, rho, c, dpres_ds, dvel_ds)
4567 if (bc_z%grcbc_in)
then
4569# 740 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4570#if defined(MFC_OpenACC)
4571# 740 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4573# 740 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4574#elif defined(MFC_OpenMP)
4575# 740 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4577# 740 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4579 do i = 2, eqn_idx%mom%beg
4580 l(i) = c**3._wp*ma*(alpha_rho(i - 1) -
alpha_rho_in(i - 1, &
4584 l(eqn_idx%mom%beg + 1) = c*ma*(vel(dir_idx(2)) -
vel_in(3, &
4587 l(eqn_idx%mom%beg + 2) = c*ma*(vel(dir_idx(3)) -
vel_in(3, &
4592# 753 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4593#if defined(MFC_OpenACC)
4594# 753 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4596# 753 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4597#elif defined(MFC_OpenMP)
4598# 753 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4600# 753 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4602 do i = eqn_idx%E, eqn_idx%adv%end - 1
4603 l(i) = c*ma*(adv_local(i + 1 - eqn_idx%E) -
alpha_in(i + 1 - eqn_idx%E, &
4606 l(eqn_idx%adv%end) = rho*c**2._wp*(1._wp + ma)*(vel(dir_idx(1)) +
vel_in(3, &
4607 & dir_idx(1))*sign(1, &
4610 else if ((
cbc_loc == -1 .and. bc_z%beg == bc_char_nr_sub_outflow) &
4611 & .or. (
cbc_loc == 1 .and. bc_z%end == bc_char_nr_sub_outflow))
then
4612 call s_compute_nonreflecting_subsonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
4613 & dvel_ds, dadv_ds, dys_ds)
4615 if (bc_z%grcbc_out)
then
4619 if (bc_z%grcbc_vel_out)
then
4620 l(eqn_idx%adv%end) =
l(eqn_idx%adv%end) + rho*c**2._wp*(1._wp - ma)*(vel(dir_idx(1)) &
4624 else if ((
cbc_loc == -1 .and. bc_z%beg == bc_char_ff_sub_outflow) &
4625 & .or. (
cbc_loc == 1 .and. bc_z%end == bc_char_ff_sub_outflow))
then
4626 call s_compute_force_free_subsonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, &
4628 else if ((
cbc_loc == -1 .and. bc_z%beg == bc_char_cp_sub_outflow) &
4629 & .or. (
cbc_loc == 1 .and. bc_z%end == bc_char_cp_sub_outflow))
then
4630 call s_compute_constant_pressure_subsonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, &
4632 else if ((
cbc_loc == -1 .and. bc_z%beg == bc_char_sup_inflow) &
4633 & .or. (
cbc_loc == 1 .and. bc_z%end == bc_char_sup_inflow))
then
4634 call s_compute_supersonic_inflow_l(
l)
4635 else if ((
cbc_loc == -1 .and. bc_z%beg == bc_char_sup_outflow) &
4636 & .or. (
cbc_loc == 1 .and. bc_z%end == bc_char_sup_outflow))
then
4637 call s_compute_supersonic_outflow_l(lambda,
l, rho, c, mf, dalpha_rho_ds, dpres_ds, dvel_ds, dadv_ds, &
4643 dpres_dt = -5.e-1_wp*(
l(eqn_idx%adv%end) +
l(1)) + rho*c*c*vel(dir_idx(1))/y_cc(n)
4645 dpres_dt = -5.e-1_wp*(
l(eqn_idx%adv%end) +
l(1))
4649# 800 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4650#if defined(MFC_OpenACC)
4651# 800 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4653# 800 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4654#elif defined(MFC_OpenMP)
4655# 800 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4657# 800 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4659 do i = 1, eqn_idx%cont%end
4660 dalpha_rho_dt(i) = -(
l(i + 1) - mf(i)*dpres_dt)/(c*c)
4664# 805 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4665#if defined(MFC_OpenACC)
4666# 805 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4668# 805 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4669#elif defined(MFC_OpenMP)
4670# 805 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4672# 805 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4675 dvel_dt(dir_idx(i)) = dir_flg(dir_idx(i))*(
l(1) -
l(eqn_idx%adv%end))/(2._wp*rho*c) &
4676 & + (dir_flg(dir_idx(i)) - 1._wp)*
l(eqn_idx%mom%beg + i - 1)
4679 vel_dv_dt_sum = 0._wp
4681# 812 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4682#if defined(MFC_OpenACC)
4683# 812 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4685# 812 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4686#elif defined(MFC_OpenMP)
4687# 812 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4689# 812 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4692 vel_dv_dt_sum = vel_dv_dt_sum + vel(i)*dvel_dt(i)
4697# 818 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4698#if defined(MFC_OpenACC)
4699# 818 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4701# 818 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4702#elif defined(MFC_OpenMP)
4703# 818 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4705# 818 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4707 do i = 1, num_species
4708 dys_dt(i) = -1._wp*
l(eqn_idx%species%beg + i - 1)
4715# 826 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4716#if defined(MFC_OpenACC)
4717# 826 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4719# 826 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4720#elif defined(MFC_OpenMP)
4721# 826 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4723# 826 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4725 do i = 1, eqn_idx%adv%end - eqn_idx%E
4726 dadv_dt(i) = -
l(eqn_idx%mom%end + i)
4730# 831 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4731#if defined(MFC_OpenACC)
4732# 831 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4734# 831 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4735#elif defined(MFC_OpenMP)
4736# 831 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4738# 831 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4740 do i = 1, eqn_idx%adv%end - eqn_idx%E
4741 dadv_dt(i) = -
l(eqn_idx%mom%end + i)
4745 drho_dt = 0._wp; dgamma_dt = 0._wp; dpi_inf_dt = 0._wp; dqv_dt = 0._wp
4747 if (model_eqns == 1)
then
4748 drho_dt = dalpha_rho_dt(1)
4749 dgamma_dt = dadv_dt(1)
4750# 843 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4751 dpi_inf_dt = dadv_dt(2)
4752# 845 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4755# 846 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4756#if defined(MFC_OpenACC)
4757# 846 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4759# 846 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4760#elif defined(MFC_OpenMP)
4761# 846 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4763# 846 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4765 do i = 1, num_fluids
4766 drho_dt = drho_dt + dalpha_rho_dt(i)
4767 dgamma_dt = dgamma_dt + dadv_dt(i)*gammas(i)
4768 dpi_inf_dt = dpi_inf_dt + dadv_dt(i)*pi_infs(i)
4769 dqv_dt = dqv_dt + dalpha_rho_dt(i)*qvs(i)
4775# 856 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4776#if defined(MFC_OpenACC)
4777# 856 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4779# 856 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4780#elif defined(MFC_OpenMP)
4781# 856 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4783# 856 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4785 do i = 1, eqn_idx%cont%end
4790# 861 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4791#if defined(MFC_OpenACC)
4792# 861 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4794# 861 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4795#elif defined(MFC_OpenMP)
4796# 861 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4798# 861 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4800 do i = eqn_idx%mom%beg, eqn_idx%mom%end
4802 & i) +
ds(0)*(vel(i - eqn_idx%cont%end)*drho_dt + rho*dvel_dt(i - eqn_idx%cont%end))
4808 call get_species_enthalpies_rt(t, h_k)
4809 sum_enthalpies = 0._wp
4811# 872 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4812#if defined(MFC_OpenACC)
4813# 872 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4815# 872 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4816#elif defined(MFC_OpenMP)
4817# 872 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4819# 872 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4821 do i = 1, num_species
4822# 879 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4823 h_k(i) = h_k(i)*gas_constant/molecular_weights(i)*t
4824 sum_enthalpies = sum_enthalpies + (rho*h_k(i) - pres*mw/molecular_weights(i)*cp/r_gas)*dys_dt(i)
4825# 882 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4828 & eqn_idx%E) +
ds(0)*((e/rho + pres/rho)*drho_dt + rho*vel_dv_dt_sum + cp*t*
l(2) &
4829 & /(c*c) + sum_enthalpies)
4831# 886 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4832#if defined(MFC_OpenACC)
4833# 886 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4835# 886 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4836#elif defined(MFC_OpenMP)
4837# 886 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4839# 886 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4841 do i = 1, num_species
4843 & eqn_idx%species%beg + i - 1) +
ds(0)*(drho_dt*ys(i) + rho*dys_dt(i))
4847 & eqn_idx%E) +
ds(0)*(pres*dgamma_dt + gamma*dpres_dt + dpi_inf_dt + dqv_dt &
4848 & + rho*vel_dv_dt_sum + 5.e-1_wp*drho_dt*vel_k_sum)
4851 if (riemann_solver == 1)
then
4853# 898 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4854#if defined(MFC_OpenACC)
4855# 898 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4857# 898 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4858#elif defined(MFC_OpenMP)
4859# 898 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4861# 898 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4863 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4868# 903 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4869#if defined(MFC_OpenACC)
4870# 903 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4872# 903 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4873#elif defined(MFC_OpenMP)
4874# 903 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4876# 903 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4878 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4879 flux_src_rsz_vf_l(-1,
k, r, i) = 1._wp/max(abs(vel(dir_idx(1))), sgm_eps)*sign(1._wp, &
4882 & i) +
ds(0)*dadv_dt(i - eqn_idx%E))
4886# 911 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4887#if defined(MFC_OpenACC)
4888# 911 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4890# 911 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4891#elif defined(MFC_OpenMP)
4892# 911 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4894# 911 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4896 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4901# 916 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4902#if defined(MFC_OpenACC)
4903# 916 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4905# 916 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4906#elif defined(MFC_OpenMP)
4907# 916 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4909# 916 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4911 do i = eqn_idx%adv%beg, eqn_idx%adv%end
4919# 924 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4920#if defined(MFC_OpenACC)
4921# 924 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4923# 924 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4924#elif defined(MFC_OpenMP)
4925# 924 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4927# 924 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4929# 924 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"
4932# 927 "/home/runner/work/MFC/MFC/src/simulation/m_cbc.fpp"