Skip to content

Commit c8d412f

Browse files
committed
Bound the chemistry species arrays to num_species in the Riemann solvers
Under the USING_AMD guard these arrays are declared with a literal extent of 10, so a bare (:) is a ten-element slice where the operands have num_species. Most sites fail to compile; Gamma_iL = Cp_iL/(Cp_iL - 1) and its right-state twin do not, and read the uninitialised tail instead.
1 parent 7526b4c commit c8d412f

3 files changed

Lines changed: 24 additions & 24 deletions

File tree

src/simulation/m_riemann_solver_hll.fpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -213,8 +213,8 @@ contains
213213

214214
call get_mixture_molecular_weight(Ys_L, MW_L)
215215
call get_mixture_molecular_weight(Ys_R, MW_R)
216-
Xs_L(:) = Ys_L(:)*MW_L/molecular_weights(:)
217-
Xs_R(:) = Ys_R(:)*MW_R/molecular_weights(:)
216+
Xs_L(1:num_species) = Ys_L(1:num_species)*MW_L/molecular_weights(:)
217+
Xs_R(1:num_species) = Ys_R(1:num_species)*MW_R/molecular_weights(:)
218218

219219
R_gas_L = gas_constant/MW_L
220220
R_gas_R = gas_constant/MW_R
@@ -226,11 +226,11 @@ contains
226226

227227
if (chem_params%gamma_method == 1) then
228228
! gamma_method = 1: Ref. Section 2.3.1 Formulation of doi:10.7907/ZKW8-ES97.
229-
Gamma_iL = Cp_iL/(Cp_iL - 1.0_wp)
230-
Gamma_iR = Cp_iR/(Cp_iR - 1.0_wp)
229+
Gamma_iL(1:num_species) = Cp_iL(1:num_species)/(Cp_iL(1:num_species) - 1.0_wp)
230+
Gamma_iR(1:num_species) = Cp_iR(1:num_species)/(Cp_iR(1:num_species) - 1.0_wp)
231231

232-
gamma_L = sum(Xs_L(:)/(Gamma_iL(:) - 1.0_wp))
233-
gamma_R = sum(Xs_R(:)/(Gamma_iR(:) - 1.0_wp))
232+
gamma_L = sum(Xs_L(1:num_species)/(Gamma_iL(1:num_species) - 1.0_wp))
233+
gamma_R = sum(Xs_R(1:num_species)/(Gamma_iR(1:num_species) - 1.0_wp))
234234
else if (chem_params%gamma_method == 2) then
235235
! gamma_method = 2: c_p / c_v where c_p, c_v are specific heats.
236236
call get_mixture_specific_heat_cp_mass(T_L, Ys_L, Cp_L)
@@ -322,11 +322,11 @@ contains
322322
call s_compute_average_state(rho_L, rho_R, vel_L, vel_R, H_L, H_R, gamma_L, gamma_R, qv_L, qv_R, &
323323
& rho_avg, vel_avg_rms, H_avg, gamma_avg, qv_avg)
324324
if (chemistry .and. avg_state == avg_state_roe) then
325-
R_species = gas_constant/molecular_weights
325+
R_species(1:num_species) = gas_constant/molecular_weights
326326
call get_species_enthalpies_rt(T_L, h_iL)
327327
call get_species_enthalpies_rt(T_R, h_iR)
328-
h_iL = h_iL*R_species*T_L
329-
h_iR = h_iR*R_species*T_R
328+
h_iL(1:num_species) = h_iL(1:num_species)*R_species(1:num_species)*T_L
329+
h_iR(1:num_species) = h_iR(1:num_species)*R_species(1:num_species)*T_R
330330
call s_compute_chemistry_average_state(rho_L, rho_R, T_L, T_R, Ys_L, Ys_R, R_species, h_iL, &
331331
& h_iR, Cp_iL, Cp_iR, vel_avg_rms, gamma_avg, &
332332
& c_sum_Yi_Phi)

src/simulation/m_riemann_solver_hllc.fpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -972,8 +972,8 @@ contains
972972
call get_mixture_molecular_weight(Ys_L, MW_L)
973973
call get_mixture_molecular_weight(Ys_R, MW_R)
974974
975-
Xs_L(:) = Ys_L(:)*MW_L/molecular_weights(:)
976-
Xs_R(:) = Ys_R(:)*MW_R/molecular_weights(:)
975+
Xs_L(1:num_species) = Ys_L(1:num_species)*MW_L/molecular_weights(:)
976+
Xs_R(1:num_species) = Ys_R(1:num_species)*MW_R/molecular_weights(:)
977977
978978
R_gas_L = gas_constant/MW_L
979979
R_gas_R = gas_constant/MW_R
@@ -986,11 +986,11 @@ contains
986986
987987
if (chem_params%gamma_method == 1) then
988988
!> gamma_method = 1: Ref. Section 2.3.1 Formulation of doi:10.7907/ZKW8-ES97.
989-
Gamma_iL = Cp_iL/(Cp_iL - 1.0_wp)
990-
Gamma_iR = Cp_iR/(Cp_iR - 1.0_wp)
989+
Gamma_iL(1:num_species) = Cp_iL(1:num_species)/(Cp_iL(1:num_species) - 1.0_wp)
990+
Gamma_iR(1:num_species) = Cp_iR(1:num_species)/(Cp_iR(1:num_species) - 1.0_wp)
991991
992-
gamma_L = sum(Xs_L(:)/(Gamma_iL(:) - 1.0_wp))
993-
gamma_R = sum(Xs_R(:)/(Gamma_iR(:) - 1.0_wp))
992+
gamma_L = sum(Xs_L(1:num_species)/(Gamma_iL(1:num_species) - 1.0_wp))
993+
gamma_R = sum(Xs_R(1:num_species)/(Gamma_iR(1:num_species) - 1.0_wp))
994994
else if (chem_params%gamma_method == 2) then
995995
!> gamma_method = 2: c_p / c_v where c_p, c_v are specific heats.
996996
call get_mixture_specific_heat_cp_mass(T_L, Ys_L, Cp_L)
@@ -1047,11 +1047,11 @@ contains
10471047
call s_compute_average_state(rho_L, rho_R, vel_L, vel_R, H_L, H_R, gamma_L, gamma_R, &
10481048
& qv_L, qv_R, rho_avg, vel_avg_rms, H_avg, gamma_avg, qv_avg)
10491049
if (chemistry .and. avg_state == avg_state_roe) then
1050-
R_species = gas_constant/molecular_weights
1050+
R_species(1:num_species) = gas_constant/molecular_weights
10511051
call get_species_enthalpies_rt(T_L, h_iL)
10521052
call get_species_enthalpies_rt(T_R, h_iR)
1053-
h_iL = h_iL*R_species*T_L
1054-
h_iR = h_iR*R_species*T_R
1053+
h_iL(1:num_species) = h_iL(1:num_species)*R_species(1:num_species)*T_L
1054+
h_iR(1:num_species) = h_iR(1:num_species)*R_species(1:num_species)*T_R
10551055
call s_compute_chemistry_average_state(rho_L, rho_R, T_L, T_R, Ys_L, Ys_R, R_species, &
10561056
& h_iL, h_iR, Cp_iL, Cp_iR, vel_avg_rms, &
10571057
& gamma_avg, c_sum_Yi_Phi)

src/simulation/m_riemann_solver_lf.fpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -170,8 +170,8 @@ contains
170170
call get_mixture_molecular_weight(Ys_L, MW_L)
171171
call get_mixture_molecular_weight(Ys_R, MW_R)
172172

173-
Xs_L(:) = Ys_L(:)*MW_L/molecular_weights(:)
174-
Xs_R(:) = Ys_R(:)*MW_R/molecular_weights(:)
173+
Xs_L(1:num_species) = Ys_L(1:num_species)*MW_L/molecular_weights(:)
174+
Xs_R(1:num_species) = Ys_R(1:num_species)*MW_R/molecular_weights(:)
175175

176176
R_gas_L = gas_constant/MW_L
177177
R_gas_R = gas_constant/MW_R
@@ -183,11 +183,11 @@ contains
183183

184184
if (chem_params%gamma_method == 1) then
185185
! gamma_method = 1: Ref. Section 2.3.1 Formulation of doi:10.7907/ZKW8-ES97.
186-
Gamma_iL = Cp_iL/(Cp_iL - 1.0_wp)
187-
Gamma_iR = Cp_iR/(Cp_iR - 1.0_wp)
186+
Gamma_iL(1:num_species) = Cp_iL(1:num_species)/(Cp_iL(1:num_species) - 1.0_wp)
187+
Gamma_iR(1:num_species) = Cp_iR(1:num_species)/(Cp_iR(1:num_species) - 1.0_wp)
188188

189-
gamma_L = sum(Xs_L(:)/(Gamma_iL(:) - 1.0_wp))
190-
gamma_R = sum(Xs_R(:)/(Gamma_iR(:) - 1.0_wp))
189+
gamma_L = sum(Xs_L(1:num_species)/(Gamma_iL(1:num_species) - 1.0_wp))
190+
gamma_R = sum(Xs_R(1:num_species)/(Gamma_iR(1:num_species) - 1.0_wp))
191191
else if (chem_params%gamma_method == 2) then
192192
! gamma_method = 2: c_p / c_v where c_p, c_v are specific heats.
193193
call get_mixture_specific_heat_cp_mass(T_L, Ys_L, Cp_L)

0 commit comments

Comments
 (0)