Line data Source code
1 : ! ***********************************************************************
2 : !
3 : ! Copyright (C) 2014-2019 The MESA Team
4 : !
5 : ! This program is free software: you can redistribute it and/or modify
6 : ! it under the terms of the GNU Lesser General Public License
7 : ! as published by the Free Software Foundation,
8 : ! either version 3 of the License, or (at your option) any later version.
9 : !
10 : ! This program is distributed in the hope that it will be useful,
11 : ! but WITHOUT ANY WARRANTY; without even the implied warranty of
12 : ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13 : ! See the GNU Lesser General Public License for more details.
14 : !
15 : ! You should have received a copy of the GNU Lesser General Public License
16 : ! along with this program. If not, see <https://www.gnu.org/licenses/>.
17 : !
18 : ! ***********************************************************************
19 :
20 : module star_history_def
21 :
22 : use star_def
23 : use utils_lib, only: StrLowCase
24 :
25 : implicit none
26 : ! history column options
27 :
28 : integer, parameter :: h_model_number = 1
29 : integer, parameter :: h_log_star_age = h_model_number + 1
30 : integer, parameter :: h_star_age = h_log_star_age + 1
31 : integer, parameter :: h_log_star_mass = h_star_age + 1
32 : integer, parameter :: h_star_mass = h_log_star_mass + 1
33 : integer, parameter :: h_delta_mass = h_star_mass + 1
34 : integer, parameter :: h_log_xmstar = h_delta_mass + 1
35 : integer, parameter :: h_star_mdot = h_log_xmstar + 1
36 : integer, parameter :: h_log_abs_mdot = h_star_mdot + 1
37 : integer, parameter :: h_time_step = h_log_abs_mdot + 1
38 : integer, parameter :: h_e_thermal = h_time_step + 1
39 : integer, parameter :: h_species = h_e_thermal + 1
40 : integer, parameter :: h_tau_factor = h_species + 1
41 : integer, parameter :: h_log_tau_center = h_tau_factor + 1
42 : integer, parameter :: h_tau_surface = h_log_tau_center + 1
43 : integer, parameter :: h_num_zones = h_tau_surface + 1
44 :
45 : integer, parameter :: h_star_age_sec = h_num_zones + 1
46 : integer, parameter :: h_star_age_min = h_star_age_sec + 1
47 : integer, parameter :: h_star_age_hr = h_star_age_min + 1
48 : integer, parameter :: h_day = h_star_age_hr + 1
49 : integer, parameter :: h_star_age_day = h_day + 1
50 : integer, parameter :: h_star_age_yr = h_star_age_day + 1
51 : integer, parameter :: h_log_star_age_sec = h_star_age_yr + 1
52 : integer, parameter :: h_time_step_sec = h_log_star_age_sec + 1
53 : integer, parameter :: h_log_dt_sec = h_time_step_sec + 1
54 : integer, parameter :: h_time_step_days = h_log_dt_sec + 1
55 : integer, parameter :: h_log_dt_days = h_time_step_days + 1
56 :
57 : integer, parameter :: h_m_center_gm = h_log_dt_days + 1
58 : integer, parameter :: h_r_center_km = h_m_center_gm + 1
59 : integer, parameter :: h_r_center_cm = h_r_center_km + 1
60 : integer, parameter :: h_m_center = h_r_center_cm + 1
61 : integer, parameter :: h_r_center = h_m_center + 1
62 : integer, parameter :: h_L_center = h_r_center + 1
63 : integer, parameter :: h_log_L_center_ergs_s = h_L_center + 1
64 : integer, parameter :: h_log_L_center = h_log_L_center_ergs_s + 1
65 : integer, parameter :: h_infall_div_cs = h_log_L_center + 1
66 : integer, parameter :: h_v_center_kms = h_infall_div_cs + 1
67 : integer, parameter :: h_v_center = h_v_center_kms + 1
68 :
69 : integer, parameter :: h_dlnR_dlnM = h_v_center + 1
70 : integer, parameter :: h_mdot_timescale = h_dlnR_dlnM + 1
71 : integer, parameter :: h_kh_div_mdot_timescales = h_mdot_timescale + 1
72 :
73 : integer, parameter :: h_star_gravitational_mass = h_kh_div_mdot_timescales + 1
74 : integer, parameter :: h_star_mass_grav_div_mass = h_star_gravitational_mass + 1
75 :
76 : integer, parameter :: h_conv_mx1_top = h_star_mass_grav_div_mass + 1
77 : integer, parameter :: h_conv_mx1_bot = h_conv_mx1_top + 1
78 : integer, parameter :: h_conv_mx2_top = h_conv_mx1_bot + 1
79 : integer, parameter :: h_conv_mx2_bot = h_conv_mx2_top + 1
80 : integer, parameter :: h_mx1_top = h_conv_mx2_bot + 1
81 : integer, parameter :: h_mx1_bot = h_mx1_top + 1
82 : integer, parameter :: h_mx2_top = h_mx1_bot + 1
83 : integer, parameter :: h_mx2_bot = h_mx2_top + 1
84 :
85 : integer, parameter :: h_conv_mx1_top_r = h_mx2_bot + 1
86 : integer, parameter :: h_conv_mx1_bot_r = h_conv_mx1_top_r + 1
87 : integer, parameter :: h_conv_mx2_top_r = h_conv_mx1_bot_r + 1
88 : integer, parameter :: h_conv_mx2_bot_r = h_conv_mx2_top_r + 1
89 : integer, parameter :: h_mx1_top_r = h_conv_mx2_bot_r + 1
90 : integer, parameter :: h_mx1_bot_r = h_mx1_top_r + 1
91 : integer, parameter :: h_mx2_top_r = h_mx1_bot_r + 1
92 : integer, parameter :: h_mx2_bot_r = h_mx2_top_r + 1
93 :
94 : integer, parameter :: h_mix_relr_regions = h_mx2_bot_r + 1
95 : integer, parameter :: h_mixing_regions = h_mix_relr_regions + 1
96 : integer, parameter :: h_epsnuc_M_1 = h_mixing_regions + 1
97 : integer, parameter :: h_epsnuc_M_2 = h_epsnuc_M_1 + 1
98 : integer, parameter :: h_epsnuc_M_3 = h_epsnuc_M_2 + 1
99 : integer, parameter :: h_epsnuc_M_4 = h_epsnuc_M_3 + 1
100 : integer, parameter :: h_epsnuc_M_5 = h_epsnuc_M_4 + 1
101 : integer, parameter :: h_epsnuc_M_6 = h_epsnuc_M_5 + 1
102 : integer, parameter :: h_epsnuc_M_7 = h_epsnuc_M_6 + 1
103 : integer, parameter :: h_epsnuc_M_8 = h_epsnuc_M_7 + 1
104 : integer, parameter :: h_burning_regions = h_epsnuc_M_8 + 1
105 : integer, parameter :: h_burn_relr_regions = h_burning_regions + 1
106 :
107 : integer, parameter :: h_power_h_burn = h_burn_relr_regions + 1
108 : integer, parameter :: h_power_he_burn = h_power_h_burn + 1
109 :
110 : integer, parameter :: h_h_rich_layer_mass = h_power_he_burn + 1
111 : integer, parameter :: h_he_rich_layer_mass = h_h_rich_layer_mass + 1
112 : integer, parameter :: h_co_rich_layer_mass = h_he_rich_layer_mass + 1
113 :
114 : integer, parameter :: h_he_core_mass = h_co_rich_layer_mass + 1
115 : integer, parameter :: h_he_core_radius = h_he_core_mass + 1
116 : integer, parameter :: h_he_core_lgT = h_he_core_radius + 1
117 : integer, parameter :: h_he_core_lgRho = h_he_core_lgT + 1
118 : integer, parameter :: h_he_core_L = h_he_core_lgRho + 1
119 : integer, parameter :: h_he_core_v = h_he_core_L + 1
120 : integer, parameter :: h_he_core_omega = h_he_core_v + 1
121 : integer, parameter :: h_he_core_omega_div_omega_crit = h_he_core_omega + 1
122 : integer, parameter :: h_he_core_k = h_he_core_omega_div_omega_crit + 1
123 :
124 : integer, parameter :: h_co_core_mass = h_he_core_k + 1
125 : integer, parameter :: h_co_core_radius = h_co_core_mass + 1
126 : integer, parameter :: h_co_core_lgT = h_co_core_radius + 1
127 : integer, parameter :: h_co_core_lgRho = h_co_core_lgT + 1
128 : integer, parameter :: h_co_core_L = h_co_core_lgRho + 1
129 : integer, parameter :: h_co_core_v = h_co_core_L + 1
130 : integer, parameter :: h_co_core_omega = h_co_core_v + 1
131 : integer, parameter :: h_co_core_omega_div_omega_crit = h_co_core_omega + 1
132 : integer, parameter :: h_co_core_k = h_co_core_omega_div_omega_crit + 1
133 :
134 : integer, parameter :: h_one_core_mass = h_co_core_k + 1
135 : integer, parameter :: h_one_core_radius = h_one_core_mass + 1
136 : integer, parameter :: h_one_core_lgT = h_one_core_radius + 1
137 : integer, parameter :: h_one_core_lgRho = h_one_core_lgT + 1
138 : integer, parameter :: h_one_core_L = h_one_core_lgRho + 1
139 : integer, parameter :: h_one_core_v = h_one_core_L + 1
140 : integer, parameter :: h_one_core_omega = h_one_core_v + 1
141 : integer, parameter :: h_one_core_omega_div_omega_crit = h_one_core_omega + 1
142 : integer, parameter :: h_one_core_k = h_one_core_omega_div_omega_crit + 1
143 :
144 : integer, parameter :: h_fe_core_mass = h_one_core_k + 1
145 : integer, parameter :: h_fe_core_radius = h_fe_core_mass + 1
146 : integer, parameter :: h_fe_core_lgT = h_fe_core_radius + 1
147 : integer, parameter :: h_fe_core_lgRho = h_fe_core_lgT + 1
148 : integer, parameter :: h_fe_core_L = h_fe_core_lgRho + 1
149 : integer, parameter :: h_fe_core_v = h_fe_core_L + 1
150 : integer, parameter :: h_fe_core_omega = h_fe_core_v + 1
151 : integer, parameter :: h_fe_core_omega_div_omega_crit = h_fe_core_omega + 1
152 : integer, parameter :: h_fe_core_k = h_fe_core_omega_div_omega_crit + 1
153 :
154 : integer, parameter :: h_neutron_rich_core_mass = h_fe_core_k + 1
155 : integer, parameter :: h_neutron_rich_core_radius = h_neutron_rich_core_mass + 1
156 : integer, parameter :: h_neutron_rich_core_lgT = h_neutron_rich_core_radius + 1
157 : integer, parameter :: h_neutron_rich_core_lgRho = h_neutron_rich_core_lgT + 1
158 : integer, parameter :: h_neutron_rich_core_L = h_neutron_rich_core_lgRho + 1
159 : integer, parameter :: h_neutron_rich_core_v = h_neutron_rich_core_L + 1
160 : integer, parameter :: h_neutron_rich_core_omega = h_neutron_rich_core_v + 1
161 : integer, parameter :: h_neutron_rich_core_omega_div_omega_crit = h_neutron_rich_core_omega + 1
162 : integer, parameter :: h_neutron_rich_core_k = h_neutron_rich_core_omega_div_omega_crit + 1
163 :
164 : integer, parameter :: h_log_max_T = h_neutron_rich_core_k + 1
165 : integer, parameter :: h_log_cntr_dr_cm = h_log_max_T + 1
166 : integer, parameter :: h_log_cntr_T = h_log_cntr_dr_cm + 1
167 : integer, parameter :: h_log_center_T = h_log_cntr_T + 1
168 : integer, parameter :: h_log_cntr_Rho = h_log_center_T + 1
169 : integer, parameter :: h_log_center_Rho = h_log_cntr_Rho + 1
170 : integer, parameter :: h_log_cntr_P = h_log_center_Rho + 1
171 : integer, parameter :: h_log_center_P = h_log_cntr_P + 1
172 :
173 : integer, parameter :: h_max_T = h_log_center_P + 1
174 : integer, parameter :: h_center_T = h_max_T + 1
175 : integer, parameter :: h_center_Rho = h_center_T + 1
176 : integer, parameter :: h_center_P = h_center_Rho + 1
177 :
178 : integer, parameter :: h_log_mesh_adjust_IE_conservation = h_center_P + 1
179 : integer, parameter :: h_log_mesh_adjust_PE_conservation = h_log_mesh_adjust_IE_conservation + 1
180 : integer, parameter :: h_log_mesh_adjust_KE_conservation = h_log_mesh_adjust_PE_conservation + 1
181 :
182 : integer, parameter :: h_avg_abs_v_div_cs = h_log_mesh_adjust_KE_conservation + 1
183 : integer, parameter :: h_log_avg_abs_v_div_cs = h_avg_abs_v_div_cs + 1
184 : integer, parameter :: h_max_abs_v_div_cs = h_log_avg_abs_v_div_cs + 1
185 : integer, parameter :: h_log_max_abs_v_div_cs = h_max_abs_v_div_cs + 1
186 :
187 : integer, parameter :: h_avg_abs_v = h_log_max_abs_v_div_cs + 1
188 : integer, parameter :: h_log_avg_abs_v = h_avg_abs_v + 1
189 : integer, parameter :: h_max_abs_v = h_log_avg_abs_v + 1
190 : integer, parameter :: h_log_max_abs_v = h_max_abs_v + 1
191 :
192 : integer, parameter :: h_total_internal_energy_after_adjust_mass = h_log_max_abs_v + 1
193 : integer, parameter :: h_total_gravitational_energy_after_adjust_mass = &
194 : h_total_internal_energy_after_adjust_mass + 1
195 : integer, parameter :: h_total_turbulent_energy_after_adjust_mass = &
196 : h_total_gravitational_energy_after_adjust_mass + 1
197 : integer, parameter :: h_total_radial_kinetic_energy_after_adjust_mass = &
198 : h_total_turbulent_energy_after_adjust_mass + 1
199 : integer, parameter :: h_total_rotational_kinetic_energy_after_adjust_mass = &
200 : h_total_radial_kinetic_energy_after_adjust_mass + 1
201 : integer, parameter :: h_total_energy_after_adjust_mass = &
202 : h_total_rotational_kinetic_energy_after_adjust_mass + 1
203 :
204 : integer, parameter :: h_total_internal_energy = h_total_energy_after_adjust_mass + 1
205 : integer, parameter :: h_total_gravitational_energy = h_total_internal_energy + 1
206 : integer, parameter :: h_total_turbulent_energy = h_total_gravitational_energy + 1
207 : integer, parameter :: h_total_radial_kinetic_energy = h_total_turbulent_energy + 1
208 : integer, parameter :: h_total_rotational_kinetic_energy = h_total_radial_kinetic_energy + 1
209 : integer, parameter :: h_total_energy_foe = h_total_rotational_kinetic_energy + 1
210 : integer, parameter :: h_total_energy = h_total_energy_foe + 1
211 :
212 : integer, parameter :: h_log_total_internal_energy = h_total_energy + 1
213 : integer, parameter :: h_log_total_gravitational_energy = h_log_total_internal_energy + 1
214 : integer, parameter :: h_log_total_turbulent_energy = h_log_total_gravitational_energy + 1
215 : integer, parameter :: h_log_total_radial_kinetic_energy = h_log_total_turbulent_energy + 1
216 : integer, parameter :: h_log_total_rotational_kinetic_energy = h_log_total_radial_kinetic_energy + 1
217 : integer, parameter :: h_log_total_energy = h_log_total_rotational_kinetic_energy + 1
218 :
219 : integer, parameter :: h_total_IE_div_IE_plus_KE = h_log_total_energy + 1
220 :
221 : integer, parameter :: h_total_entropy = h_total_IE_div_IE_plus_KE + 1
222 :
223 : integer, parameter :: h_virial_thm_P_avg = h_total_entropy + 1
224 : integer, parameter :: h_virial_thm_rel_err = h_virial_thm_P_avg + 1
225 : integer, parameter :: h_total_eps_grav = h_virial_thm_rel_err + 1
226 : integer, parameter :: h_work_outward_at_surface = h_total_eps_grav + 1
227 : integer, parameter :: h_work_inward_at_center = h_work_outward_at_surface + 1
228 : integer, parameter :: h_total_nuclear_heating = h_work_inward_at_center + 1
229 : integer, parameter :: h_total_non_nuc_neu_cooling = h_total_nuclear_heating + 1
230 : integer, parameter :: h_total_WD_sedimentation_heating = h_total_non_nuc_neu_cooling + 1
231 : integer, parameter :: h_total_irradiation_heating = h_total_WD_sedimentation_heating + 1
232 : integer, parameter :: h_total_extra_heating = h_total_irradiation_heating + 1
233 :
234 : integer, parameter :: h_total_energy_sources_and_sinks = h_total_extra_heating + 1
235 : integer, parameter :: h_log_rel_error_in_energy_conservation = h_total_energy_sources_and_sinks + 1
236 : integer, parameter :: h_rel_error_in_energy_conservation = h_log_rel_error_in_energy_conservation + 1
237 : integer, parameter :: h_error_in_energy_conservation = h_rel_error_in_energy_conservation + 1
238 :
239 : integer, parameter :: h_cumulative_energy_error = h_error_in_energy_conservation + 1
240 : integer, parameter :: h_rel_cumulative_energy_error = h_cumulative_energy_error + 1
241 : integer, parameter :: h_abs_rel_E_err = h_rel_cumulative_energy_error + 1
242 : integer, parameter :: h_log_rel_E_err = h_abs_rel_E_err + 1
243 : integer, parameter :: h_tot_E_equ_err = h_log_rel_E_err + 1
244 : integer, parameter :: h_tot_E_err = h_tot_E_equ_err + 1
245 : integer, parameter :: h_rel_E_err = h_tot_E_err + 1
246 : integer, parameter :: h_rel_run_E_err = h_rel_E_err + 1
247 : integer, parameter :: h_log_rel_run_E_err = h_rel_run_E_err + 1
248 : integer, parameter :: h_log_rel_cumulative_energy_error = h_log_rel_run_E_err + 1
249 :
250 : integer, parameter :: h_u_surf_km_s = h_log_rel_cumulative_energy_error + 1
251 : integer, parameter :: h_u_surf = h_u_surf_km_s + 1
252 : integer, parameter :: h_u_div_csound_max = h_u_surf + 1
253 : integer, parameter :: h_u_div_csound_surf = h_u_div_csound_max + 1
254 :
255 : integer, parameter :: h_center_zbar = h_u_div_csound_surf + 1
256 : integer, parameter :: h_center_abar = h_center_zbar + 1
257 : integer, parameter :: h_center_mu = h_center_abar + 1
258 : integer, parameter :: h_center_ye = h_center_mu + 1
259 : integer, parameter :: h_max_entropy = h_center_ye + 1
260 : integer, parameter :: h_center_entropy = h_max_entropy + 1
261 : integer, parameter :: h_v_div_vesc = h_center_entropy + 1
262 : integer, parameter :: h_v_surf_div_escape_v = h_v_div_vesc + 1
263 : integer, parameter :: h_v_surf_km_s = h_v_surf_div_escape_v + 1
264 : integer, parameter :: h_v_surf = h_v_surf_km_s + 1
265 : integer, parameter :: h_v_surf_div_v_kh = h_v_surf + 1
266 : integer, parameter :: h_v_div_csound_max = h_v_surf_div_v_kh + 1
267 : integer, parameter :: h_v_div_csound_surf = h_v_div_csound_max + 1
268 : integer, parameter :: h_log_dt = h_v_div_csound_surf + 1
269 : integer, parameter :: h_log_LH = h_log_dt + 1
270 : integer, parameter :: h_log_LHe = h_log_LH + 1
271 : integer, parameter :: h_power_photo = h_log_LHe + 1
272 : integer, parameter :: h_Lnuc_photo = h_power_photo + 1
273 :
274 : integer, parameter :: h_Lsurf_m = h_Lnuc_photo + 1
275 : integer, parameter :: h_luminosity_ergs_s = h_Lsurf_m + 1
276 : integer, parameter :: h_log_L_ergs_s = h_luminosity_ergs_s + 1
277 : integer, parameter :: h_luminosity = h_log_L_ergs_s + 1
278 : integer, parameter :: h_log_L = h_luminosity + 1
279 :
280 : integer, parameter :: h_power_z_burn = h_log_L + 1
281 : integer, parameter :: h_log_LZ = h_power_z_burn + 1
282 :
283 : integer, parameter :: h_log_Lneu_nuc = h_log_LZ + 1
284 : integer, parameter :: h_log_Lneu_nonnuc = h_log_Lneu_nuc + 1
285 : integer, parameter :: h_log_Lneu = h_log_Lneu_nonnuc + 1
286 : integer, parameter :: h_log_R_cm = h_log_Lneu + 1
287 : integer, parameter :: h_radius_cm = h_log_R_cm + 1
288 : integer, parameter :: h_radius = h_radius_cm + 1
289 : integer, parameter :: h_log_R = h_radius + 1
290 : integer, parameter :: h_log_Teff = h_log_R + 1
291 : integer, parameter :: h_Teff = h_log_Teff + 1
292 : integer, parameter :: h_effective_T = h_Teff + 1
293 : integer, parameter :: h_gravity = h_effective_T + 1
294 : integer, parameter :: h_log_g = h_gravity + 1
295 : integer, parameter :: h_log_L_div_Ledd = h_log_g + 1
296 : integer, parameter :: h_lum_div_Ledd = h_log_L_div_Ledd + 1
297 : integer, parameter :: h_max_L_rad_div_Ledd_div_phi_Joss = h_lum_div_Ledd + 1
298 : integer, parameter :: h_max_L_rad_div_Ledd = h_max_L_rad_div_Ledd_div_phi_Joss + 1
299 :
300 : integer, parameter :: h_gamma1_min = h_max_L_rad_div_Ledd + 1
301 : integer, parameter :: h_logT_max = h_gamma1_min + 1
302 : integer, parameter :: h_logQ_max = h_logT_max + 1
303 : integer, parameter :: h_logQ_min = h_logQ_max + 1
304 :
305 : integer, parameter :: h_avg_skipped_setvars_per_step = h_logQ_min + 1
306 : integer, parameter :: h_avg_setvars_per_step = h_avg_skipped_setvars_per_step + 1
307 : integer, parameter :: h_avg_solver_setvars_per_step = h_avg_setvars_per_step + 1
308 :
309 : integer, parameter :: h_num_retries = h_avg_solver_setvars_per_step + 1
310 : integer, parameter :: h_h1_czb_mass = h_num_retries + 1
311 : integer, parameter :: h_surf_c12_minus_o16 = h_h1_czb_mass + 1
312 : integer, parameter :: h_surf_num_c12_div_num_o16 = h_surf_c12_minus_o16 + 1
313 :
314 : integer, parameter :: h_min_Pgas_div_P = h_surf_num_c12_div_num_o16 + 1
315 : integer, parameter :: h_log_center_eps_nuc = h_min_Pgas_div_P + 1
316 : integer, parameter :: h_d_center_eps_nuc_dlnT = h_log_center_eps_nuc + 1
317 : integer, parameter :: h_d_center_eps_nuc_dlnd = h_d_center_eps_nuc_dlnT + 1
318 :
319 : integer, parameter :: h_center_eps_nuc = h_d_center_eps_nuc_dlnd + 1
320 : integer, parameter :: h_center_non_nuc_neu = h_center_eps_nuc + 1
321 :
322 : integer, parameter :: h_center_eps_grav = h_center_non_nuc_neu + 1
323 : integer, parameter :: h_center_degeneracy = h_center_eps_grav + 1
324 : integer, parameter :: h_center_gamma = h_center_degeneracy + 1
325 :
326 : integer, parameter :: h_envelope_mass = h_center_gamma + 1
327 : integer, parameter :: h_envelope_fraction_left = h_envelope_mass + 1
328 :
329 : integer, parameter :: h_dynamic_timescale = h_envelope_fraction_left + 1
330 : integer, parameter :: h_kh_timescale = h_dynamic_timescale + 1
331 : integer, parameter :: h_nuc_timescale = h_kh_timescale + 1
332 : integer, parameter :: h_tau_QHSE_yrs = h_nuc_timescale + 1
333 : integer, parameter :: h_max_tau_conv = h_tau_QHSE_yrs + 1
334 : integer, parameter :: h_min_tau_conv = h_max_tau_conv + 1
335 : integer, parameter :: h_log_max_tau_conv = h_min_tau_conv + 1
336 : integer, parameter :: h_log_min_tau_conv = h_log_max_tau_conv + 1
337 : integer, parameter :: h_dt_div_max_tau_conv = h_log_min_tau_conv + 1
338 : integer, parameter :: h_dt_div_min_tau_conv = h_dt_div_max_tau_conv + 1
339 : integer, parameter :: h_log_abs_Lgrav = h_dt_div_min_tau_conv + 1
340 : integer, parameter :: h_eps_grav_integral = h_log_abs_Lgrav + 1
341 : integer, parameter :: h_log_extra_L = h_eps_grav_integral + 1
342 : integer, parameter :: h_extra_L = h_log_extra_L + 1
343 : integer, parameter :: h_log_power_nuc_burn = h_extra_L + 1
344 : integer, parameter :: h_power_nuc_burn = h_log_power_nuc_burn + 1
345 : integer, parameter :: h_log_Lnuc_ergs_s = h_power_nuc_burn + 1
346 : integer, parameter :: h_log_Lnuc = h_log_Lnuc_ergs_s + 1
347 : integer, parameter :: h_Lnuc = h_log_Lnuc + 1
348 : integer, parameter :: h_mass_ext_to_max_eps_nuc = h_Lnuc + 1
349 : integer, parameter :: h_mass_loc_of_max_eps_nuc = h_mass_ext_to_max_eps_nuc + 1
350 :
351 : integer, parameter :: h_diffusion_time_H_He_bdy = h_mass_loc_of_max_eps_nuc + 1
352 : integer, parameter :: h_temperature_H_He_bdy = h_diffusion_time_H_He_bdy + 1
353 :
354 : integer, parameter :: h_total_ni_co_56 = h_temperature_H_He_bdy + 1
355 :
356 : integer, parameter :: h_shock_velocity = h_total_ni_co_56 + 1
357 : integer, parameter :: h_shock_csound = h_shock_velocity + 1
358 : integer, parameter :: h_shock_v_div_cs = h_shock_csound + 1
359 : integer, parameter :: h_shock_lgT = h_shock_v_div_cs + 1
360 : integer, parameter :: h_shock_lgRho = h_shock_lgT + 1
361 : integer, parameter :: h_shock_lgP = h_shock_lgRho + 1
362 : integer, parameter :: h_shock_q = h_shock_lgP + 1
363 : integer, parameter :: h_shock_tau = h_shock_q + 1
364 : integer, parameter :: h_shock_mass_gm = h_shock_tau + 1
365 : integer, parameter :: h_shock_radius_cm = h_shock_mass_gm + 1
366 : integer, parameter :: h_shock_mass = h_shock_radius_cm + 1
367 : integer, parameter :: h_shock_radius = h_shock_mass + 1
368 : integer, parameter :: h_shock_gamma1 = h_shock_radius + 1
369 : integer, parameter :: h_shock_entropy = h_shock_gamma1 + 1
370 : integer, parameter :: h_shock_pre_lgRho = h_shock_entropy + 1
371 : integer, parameter :: h_shock_k = h_shock_pre_lgRho + 1
372 :
373 : integer, parameter :: h_max_conv_vel_div_csound = h_shock_k + 1
374 : integer, parameter :: h_max_gradT_div_grada = h_max_conv_vel_div_csound + 1
375 : integer, parameter :: h_max_gradT_sub_grada = h_max_gradT_div_grada + 1
376 : integer, parameter :: h_min_log_mlt_Gamma = h_max_gradT_sub_grada + 1
377 :
378 : integer, parameter :: h_dt_cell_collapse = h_min_log_mlt_Gamma + 1
379 : integer, parameter :: h_dt_div_dt_cell_collapse = h_dt_cell_collapse + 1
380 :
381 : integer, parameter :: h_min_dr_div_cs_k = h_dt_div_dt_cell_collapse + 1
382 : integer, parameter :: h_min_dr_div_cs = h_min_dr_div_cs_k + 1
383 : integer, parameter :: h_log_min_dr_div_cs = h_min_dr_div_cs + 1
384 : integer, parameter :: h_min_dr_div_cs_yr = h_log_min_dr_div_cs + 1
385 : integer, parameter :: h_log_min_dr_div_cs_yr = h_min_dr_div_cs_yr + 1
386 : integer, parameter :: h_dt_div_min_dr_div_cs = h_log_min_dr_div_cs_yr + 1
387 : integer, parameter :: h_log_dt_div_min_dr_div_cs = h_dt_div_min_dr_div_cs + 1
388 :
389 : integer, parameter :: h_surface_optical_depth = h_log_dt_div_min_dr_div_cs + 1
390 : integer, parameter :: h_log_surf_optical_depth = h_surface_optical_depth + 1
391 :
392 : integer, parameter :: h_log_surf_cell_opacity = h_log_surf_optical_depth + 1
393 : integer, parameter :: h_log_surf_cell_density = h_log_surf_cell_opacity + 1
394 : integer, parameter :: h_surface_cell_temperature = h_log_surf_cell_density + 1
395 : integer, parameter :: h_log_surf_cell_temperature = h_surface_cell_temperature + 1
396 : integer, parameter :: h_log_surf_cell_P = h_log_surf_cell_temperature + 1
397 : integer, parameter :: h_log_surf_cell_pressure = h_log_surf_cell_P + 1
398 : integer, parameter :: h_log_surf_cell_z = h_log_surf_cell_pressure + 1
399 : integer, parameter :: h_surface_cell_entropy = h_log_surf_cell_z + 1
400 :
401 : integer, parameter :: h_gradT_excess_min_beta = h_surface_cell_entropy + 1
402 : integer, parameter :: h_gradT_excess_max_lambda = h_gradT_excess_min_beta + 1
403 : integer, parameter :: h_gradT_excess_alpha = h_gradT_excess_max_lambda + 1
404 :
405 : integer, parameter :: h_log_Ledd = h_gradT_excess_alpha + 1
406 : integer, parameter :: h_compactness = h_log_Ledd + 1
407 : integer, parameter :: h_compactness_parameter = h_compactness + 1
408 : integer, parameter :: h_mu4 = h_compactness_parameter + 1
409 : integer, parameter :: h_m4 = h_mu4 + 1
410 : integer, parameter :: h_max_infall_speed = h_m4 + 1
411 : integer, parameter :: h_non_fe_core_rebound = h_max_infall_speed + 1
412 : integer, parameter :: h_non_fe_core_infall = h_non_fe_core_rebound + 1
413 : integer, parameter :: h_fe_core_infall = h_non_fe_core_infall + 1
414 :
415 : integer, parameter :: h_cz_bot_mass = h_fe_core_infall + 1
416 : integer, parameter :: h_cz_mass = h_cz_bot_mass + 1
417 : integer, parameter :: h_cz_log_xmsun = h_cz_mass + 1
418 : integer, parameter :: h_cz_xm = h_cz_log_xmsun + 1
419 : integer, parameter :: h_cz_log_xmass = h_cz_xm + 1
420 : integer, parameter :: h_cz_logT = h_cz_log_xmass + 1
421 : integer, parameter :: h_cz_logRho = h_cz_logT + 1
422 : integer, parameter :: h_cz_logP = h_cz_logRho + 1
423 : integer, parameter :: h_cz_log_column_depth = h_cz_logP + 1
424 : integer, parameter :: h_cz_log_radial_depth = h_cz_log_column_depth + 1
425 : integer, parameter :: h_cz_bot_radius = h_cz_log_radial_depth + 1
426 : integer, parameter :: h_cz_csound = h_cz_bot_radius + 1
427 : integer, parameter :: h_cz_scale_height = h_cz_csound + 1
428 : integer, parameter :: h_cz_grav = h_cz_scale_height + 1
429 : integer, parameter :: h_cz_log_eps_nuc = h_cz_grav + 1
430 : integer, parameter :: h_cz_t_heat = h_cz_log_eps_nuc + 1
431 : integer, parameter :: h_cz_eta = h_cz_t_heat + 1
432 :
433 : integer, parameter :: h_cz_log_tau = h_cz_eta + 1
434 : integer, parameter :: h_cz_opacity = h_cz_log_tau + 1
435 : integer, parameter :: h_cz_luminosity = h_cz_opacity + 1
436 : integer, parameter :: h_cz_zone = h_cz_luminosity + 1
437 : integer, parameter :: h_cz_omega = h_cz_zone + 1
438 : integer, parameter :: h_cz_omega_div_omega_crit = h_cz_omega + 1
439 :
440 : integer, parameter :: h_cz_top_mass = h_cz_omega_div_omega_crit + 1
441 : integer, parameter :: h_cz_top_log_xmsun = h_cz_top_mass + 1
442 : integer, parameter :: h_cz_top_xm = h_cz_top_log_xmsun + 1
443 : integer, parameter :: h_cz_top_log_xmass = h_cz_top_xm + 1
444 : integer, parameter :: h_cz_top_logT = h_cz_top_log_xmass + 1
445 : integer, parameter :: h_cz_top_logRho = h_cz_top_logT + 1
446 : integer, parameter :: h_cz_top_logP = h_cz_top_logRho + 1
447 : integer, parameter :: h_cz_top_log_column_depth = h_cz_top_logP + 1
448 : integer, parameter :: h_cz_top_log_radial_depth = h_cz_top_log_column_depth + 1
449 : integer, parameter :: h_cz_top_radius = h_cz_top_log_radial_depth + 1
450 : integer, parameter :: h_cz_top_csound = h_cz_top_radius + 1
451 : integer, parameter :: h_cz_top_scale_height = h_cz_top_csound + 1
452 : integer, parameter :: h_cz_top_grav = h_cz_top_scale_height + 1
453 : integer, parameter :: h_cz_top_log_eps_nuc = h_cz_top_grav + 1
454 : integer, parameter :: h_cz_top_t_heat = h_cz_top_log_eps_nuc + 1
455 : integer, parameter :: h_cz_top_eta = h_cz_top_t_heat + 1
456 :
457 : integer, parameter :: h_cz_top_log_tau = h_cz_top_eta + 1
458 : integer, parameter :: h_cz_top_opacity = h_cz_top_log_tau + 1
459 : integer, parameter :: h_cz_top_luminosity = h_cz_top_opacity + 1
460 : integer, parameter :: h_cz_top_zone = h_cz_top_luminosity + 1
461 : integer, parameter :: h_cz_top_omega = h_cz_top_zone + 1
462 : integer, parameter :: h_cz_top_omega_div_omega_crit = h_cz_top_omega + 1
463 :
464 : integer, parameter :: h_kh_mdot_limit = h_cz_top_omega_div_omega_crit + 1
465 : integer, parameter :: h_rotational_mdot_boost = h_kh_mdot_limit + 1
466 : integer, parameter :: h_log_rotational_mdot_boost = h_rotational_mdot_boost + 1
467 :
468 : integer, parameter :: h_i_rot_total = h_log_rotational_mdot_boost + 1
469 : integer, parameter :: h_surf_avg_j_rot = h_i_rot_total + 1
470 : integer, parameter :: h_surf_avg_omega = h_surf_avg_j_rot + 1
471 : integer, parameter :: h_surf_avg_omega_crit = h_surf_avg_omega + 1
472 : integer, parameter :: h_surf_avg_omega_div_omega_crit = h_surf_avg_omega_crit + 1
473 :
474 : integer, parameter :: h_surf_avg_v_rot = h_surf_avg_omega_div_omega_crit + 1
475 : integer, parameter :: h_surf_avg_v_crit = h_surf_avg_v_rot + 1
476 : integer, parameter :: h_surf_avg_v_div_v_crit = h_surf_avg_v_crit + 1
477 :
478 : integer, parameter :: h_v_wind_Km_per_s = h_surf_avg_v_div_v_crit + 1
479 : integer, parameter :: h_surf_escape_v = h_v_wind_Km_per_s + 1
480 :
481 : integer, parameter :: h_surf_avg_logT = h_surf_escape_v + 1
482 : integer, parameter :: h_surf_avg_logRho = h_surf_avg_logT + 1
483 : integer, parameter :: h_surf_avg_opacity = h_surf_avg_logRho + 1
484 : integer, parameter :: h_surf_avg_Lrad_div_Ledd = h_surf_avg_opacity + 1
485 :
486 : integer, parameter :: h_center_omega = h_surf_avg_Lrad_div_Ledd + 1
487 : integer, parameter :: h_surf_r_equatorial_div_r_polar = h_center_omega + 1
488 : integer, parameter :: h_surf_r_equatorial_div_r = h_surf_r_equatorial_div_r_polar + 1
489 : integer, parameter :: h_surf_r_polar_div_r = h_surf_r_equatorial_div_r + 1
490 : integer, parameter :: h_center_omega_div_omega_crit = h_surf_r_polar_div_r + 1
491 :
492 : integer, parameter :: h_total_angular_momentum = h_center_omega_div_omega_crit + 1
493 : integer, parameter :: h_log_total_angular_momentum = h_total_angular_momentum + 1
494 :
495 : integer, parameter :: h_min_t_eddy = h_log_total_angular_momentum + 1
496 : integer, parameter :: h_elapsed_time = h_min_t_eddy + 1
497 :
498 : integer, parameter :: h_num_hydro_merges = h_elapsed_time + 1
499 : integer, parameter :: h_num_hydro_splits = h_num_hydro_merges + 1
500 :
501 : integer, parameter :: h_RSP_DeltaR = h_num_hydro_splits + 1
502 : integer, parameter :: h_RSP_DeltaMag = h_RSP_DeltaR + 1
503 : integer, parameter :: h_RSP_GREKM = h_RSP_DeltaMag + 1
504 :
505 : integer, parameter :: h_rsp_phase = h_RSP_GREKM + 1
506 : integer, parameter :: h_rsp_period_in_days = h_rsp_phase + 1
507 : integer, parameter :: h_rsp_num_periods = h_rsp_period_in_days + 1
508 :
509 : integer, parameter :: h_total_num_solver_iterations = h_rsp_num_periods + 1
510 : integer, parameter :: h_total_num_solver_calls_made = h_total_num_solver_iterations + 1
511 : integer, parameter :: h_total_num_solver_calls_converged = h_total_num_solver_calls_made + 1
512 : integer, parameter :: h_total_num_solver_calls_failed = h_total_num_solver_calls_converged + 1
513 :
514 : integer, parameter :: h_total_num_solver_relax_iterations = h_total_num_solver_calls_failed + 1
515 : integer, parameter :: h_total_num_solver_relax_calls_made = h_total_num_solver_relax_iterations + 1
516 : integer, parameter :: h_total_num_solver_relax_calls_converged = h_total_num_solver_relax_calls_made + 1
517 : integer, parameter :: h_total_num_solver_relax_calls_failed = h_total_num_solver_relax_calls_converged + 1
518 :
519 : integer, parameter :: h_total_step_attempts = h_total_num_solver_relax_calls_failed + 1
520 : integer, parameter :: h_total_step_retries = h_total_step_attempts + 1
521 : integer, parameter :: h_total_step_redos = h_total_step_retries + 1
522 : integer, parameter :: h_total_steps_taken = h_total_step_redos + 1
523 : integer, parameter :: h_total_steps_finished = h_total_steps_taken + 1
524 :
525 : integer, parameter :: h_total_relax_step_attempts = h_total_steps_finished + 1
526 : integer, parameter :: h_total_relax_step_retries = h_total_relax_step_attempts + 1
527 : integer, parameter :: h_total_relax_step_redos = h_total_relax_step_retries + 1
528 : integer, parameter :: h_total_relax_steps_taken = h_total_relax_step_redos + 1
529 : integer, parameter :: h_total_relax_steps_finished = h_total_relax_steps_taken + 1
530 :
531 : integer, parameter :: h_avg_num_solver_iters = h_total_relax_steps_finished + 1
532 : integer, parameter :: h_num_solver_iterations = h_avg_num_solver_iters + 1
533 : integer, parameter :: h_num_iters = h_num_solver_iterations + 1
534 :
535 : integer, parameter :: h_photosphere_cell_density = h_num_iters + 1
536 : integer, parameter :: h_photosphere_cell_log_density = h_photosphere_cell_density + 1
537 :
538 : integer, parameter :: h_photosphere_cell_log_opacity = h_photosphere_cell_log_density + 1
539 : integer, parameter :: h_photosphere_cell_opacity = h_photosphere_cell_log_opacity + 1
540 :
541 : integer, parameter :: h_photosphere_cell_log_free_e = h_photosphere_cell_opacity + 1
542 : integer, parameter :: h_photosphere_cell_free_e = h_photosphere_cell_log_free_e + 1
543 :
544 : integer, parameter :: h_photosphere_cell_k = h_photosphere_cell_free_e + 1
545 : integer, parameter :: h_photosphere_cell_log_T = h_photosphere_cell_k + 1
546 : integer, parameter :: h_photosphere_cell_T = h_photosphere_cell_log_T + 1
547 : integer, parameter :: h_photosphere_black_body_T = h_photosphere_cell_T + 1
548 : integer, parameter :: h_photosphere_xm = h_photosphere_black_body_T + 1
549 : integer, parameter :: h_photosphere_logg = h_photosphere_xm + 1
550 : integer, parameter :: h_photosphere_T = h_photosphere_logg + 1
551 : integer, parameter :: h_photosphere_m = h_photosphere_T + 1
552 : integer, parameter :: h_photosphere_log_L = h_photosphere_m + 1
553 : integer, parameter :: h_photosphere_L = h_photosphere_log_L + 1
554 : integer, parameter :: h_log_one_div_yphot = h_photosphere_L + 1
555 : integer, parameter :: h_one_div_yphot = h_log_one_div_yphot + 1
556 : integer, parameter :: h_photosphere_column_density = h_one_div_yphot + 1
557 : integer, parameter :: h_photosphere_log_column_density = h_photosphere_column_density + 1
558 : integer, parameter :: h_photosphere_opacity = h_photosphere_log_column_density + 1
559 : integer, parameter :: h_photosphere_csound = h_photosphere_opacity + 1
560 : integer, parameter :: h_photosphere_v_div_cs = h_photosphere_csound + 1
561 : integer, parameter :: h_v_phot_km_s = h_photosphere_v_div_cs + 1
562 : integer, parameter :: h_photosphere_v_km_s = h_v_phot_km_s + 1
563 : integer, parameter :: h_photosphere_log_r = h_photosphere_v_km_s + 1
564 : integer, parameter :: h_photosphere_r = h_photosphere_log_r + 1
565 :
566 : integer, parameter :: h_min_opacity = h_photosphere_r + 1
567 : integer, parameter :: h_log_min_opacity = h_min_opacity + 1
568 :
569 : integer, parameter :: h_delta_nu = h_log_min_opacity + 1
570 : integer, parameter :: h_delta_Pg = h_delta_nu + 1
571 : integer, parameter :: h_nu_max = h_delta_Pg + 1
572 : integer, parameter :: h_acoustic_radius = h_nu_max + 1
573 : integer, parameter :: h_acoustic_cutoff = h_acoustic_radius + 1
574 : integer, parameter :: h_gs_per_delta_nu = h_acoustic_cutoff + 1
575 : integer, parameter :: h_ng_for_nu_max = h_gs_per_delta_nu + 1
576 : integer, parameter :: h_log_delta_Pg = h_ng_for_nu_max + 1
577 : integer, parameter :: h_nu_max_3_4th_div_delta_nu = h_log_delta_Pg + 1
578 :
579 : integer, parameter :: h_int_k_r_dr_nu_max_Sl1 = h_nu_max_3_4th_div_delta_nu + 1
580 : integer, parameter :: h_int_k_r_dr_2pt0_nu_max_Sl1 = h_int_k_r_dr_nu_max_Sl1 + 1
581 : integer, parameter :: h_int_k_r_dr_0pt5_nu_max_Sl1 = h_int_k_r_dr_2pt0_nu_max_Sl1 + 1
582 :
583 : integer, parameter :: h_int_k_r_dr_nu_max_Sl2 = h_int_k_r_dr_0pt5_nu_max_Sl1 + 1
584 : integer, parameter :: h_int_k_r_dr_2pt0_nu_max_Sl2 = h_int_k_r_dr_nu_max_Sl2 + 1
585 : integer, parameter :: h_int_k_r_dr_0pt5_nu_max_Sl2 = h_int_k_r_dr_2pt0_nu_max_Sl2 + 1
586 :
587 : integer, parameter :: h_int_k_r_dr_nu_max_Sl3 = h_int_k_r_dr_0pt5_nu_max_Sl2 + 1
588 : integer, parameter :: h_int_k_r_dr_2pt0_nu_max_Sl3 = h_int_k_r_dr_nu_max_Sl3 + 1
589 : integer, parameter :: h_int_k_r_dr_0pt5_nu_max_Sl3 = h_int_k_r_dr_2pt0_nu_max_Sl3 + 1
590 :
591 : integer, parameter :: h_log_Lnuc_sub_log_L = h_int_k_r_dr_0pt5_nu_max_Sl3 + 1
592 : integer, parameter :: h_cz_top_zone_logdq = h_log_Lnuc_sub_log_L + 1
593 :
594 : integer, parameter :: h_mass_semiconv_core = h_cz_top_zone_logdq + 1
595 : integer, parameter :: h_mass_conv_core = h_mass_semiconv_core + 1
596 :
597 : integer, parameter :: h_k_below_const_q = h_mass_conv_core + 1
598 : integer, parameter :: h_q_below_const_q = h_k_below_const_q + 1
599 : integer, parameter :: h_logxq_below_const_q = h_q_below_const_q + 1
600 :
601 : integer, parameter :: h_k_const_mass = h_logxq_below_const_q + 1
602 : integer, parameter :: h_q_const_mass = h_k_const_mass + 1
603 : integer, parameter :: h_logxq_const_mass = h_q_const_mass + 1
604 :
605 : integer, parameter :: h_k_below_just_added = h_logxq_const_mass + 1
606 : integer, parameter :: h_q_below_just_added = h_k_below_just_added + 1
607 : integer, parameter :: h_logxq_below_just_added = h_q_below_just_added + 1
608 :
609 : integer, parameter :: h_k_for_test_CpT_absMdot_div_L = h_logxq_below_just_added + 1
610 : integer, parameter :: h_q_for_test_CpT_absMdot_div_L = h_k_for_test_CpT_absMdot_div_L + 1
611 : integer, parameter :: h_logxq_for_test_CpT_absMdot_div_L = h_q_for_test_CpT_absMdot_div_L + 1
612 :
613 : integer, parameter :: h_tot_E = h_logxq_for_test_CpT_absMdot_div_L + 1
614 : integer, parameter :: h_log_tot_E = h_tot_E + 1
615 : integer, parameter :: h_tot_KE = h_log_tot_E + 1
616 : integer, parameter :: h_log_tot_KE = h_tot_KE + 1
617 : integer, parameter :: h_tot_IE = h_log_tot_KE + 1
618 : integer, parameter :: h_log_tot_IE = h_tot_IE + 1
619 : integer, parameter :: h_tot_PE = h_log_tot_IE + 1
620 : integer, parameter :: h_log_tot_PE = h_tot_PE + 1
621 :
622 : integer, parameter :: h_tot_Et = h_log_tot_PE + 1
623 : integer, parameter :: h_log_tot_Et = h_tot_Et + 1
624 :
625 : integer, parameter :: h_tot_IE_div_IE_plus_KE = h_log_tot_Et + 1
626 :
627 : integer, parameter :: h_burn_solver_maxsteps = h_tot_IE_div_IE_plus_KE + 1
628 : integer, parameter :: h_rotation_solver_steps = h_burn_solver_maxsteps + 1
629 : integer, parameter :: h_diffusion_solver_steps = h_rotation_solver_steps + 1
630 : integer, parameter :: h_diffusion_solver_iters = h_diffusion_solver_steps + 1
631 : integer, parameter :: h_grav_dark_L_polar = h_diffusion_solver_iters + 1
632 : integer, parameter :: h_grav_dark_Teff_polar = h_grav_dark_L_polar + 1
633 : integer, parameter :: h_grav_dark_L_equatorial = h_grav_dark_Teff_polar + 1
634 : integer, parameter :: h_grav_dark_Teff_equatorial = h_grav_dark_L_equatorial + 1
635 :
636 : integer, parameter :: h_apsidal_constant_k2 = h_grav_dark_Teff_equatorial + 1
637 :
638 : integer, parameter :: h_phase_of_evolution = h_apsidal_constant_k2 + 1
639 :
640 : integer, parameter :: h_lg_Lnuc_tot = h_phase_of_evolution + 1
641 : integer, parameter :: h_H_rich = h_lg_Lnuc_tot + 1
642 : integer, parameter :: h_N_cntr = h_H_rich + 1
643 : integer, parameter :: h_lg_Lneu = h_N_cntr + 1
644 : integer, parameter :: h_He_core = h_lg_Lneu + 1
645 : integer, parameter :: h_O_cntr = h_He_core + 1
646 : integer, parameter :: h_lg_Lphoto = h_O_cntr + 1
647 : integer, parameter :: h_CO_core = h_lg_Lphoto + 1
648 : integer, parameter :: h_Fe_core = h_CO_core + 1
649 : integer, parameter :: h_Ne_cntr = h_Fe_core + 1
650 : integer, parameter :: h_Mass = h_Ne_cntr + 1
651 : integer, parameter :: h_H_cntr = h_Mass + 1
652 : integer, parameter :: h_Si_cntr = h_H_cntr + 1
653 : integer, parameter :: h_lg_Mdot = h_Si_cntr + 1
654 : integer, parameter :: h_He_cntr = h_lg_Mdot + 1
655 : integer, parameter :: h_eta_cntr = h_He_cntr + 1
656 : integer, parameter :: h_gam_cntr = h_eta_cntr + 1
657 : integer, parameter :: h_remnant_M = h_gam_cntr + 1
658 : integer, parameter :: h_ejecta_M = h_remnant_M + 1
659 : integer, parameter :: h_v_div_cs = h_ejecta_M + 1
660 : integer, parameter :: h_zones = h_v_div_cs + 1
661 : integer, parameter :: h_lg_Dsurf = h_zones + 1
662 : integer, parameter :: h_C_cntr = h_lg_Dsurf + 1
663 : integer, parameter :: h_TDC_num_cells = h_C_cntr + 1
664 : integer, parameter :: h_retries = h_TDC_num_cells + 1
665 :
666 : integer, parameter :: h_col_id_max = h_retries
667 :
668 : character (len=maxlen_history_column_name) :: history_column_name(h_col_id_max)
669 : type (integer_dict), pointer :: history_column_names_dict
670 :
671 :
672 : contains
673 :
674 :
675 1 : subroutine history_column_names_init(ierr)
676 : use utils_lib, only: integer_dict_define
677 : integer, intent(out) :: ierr
678 :
679 : integer :: i, cnt
680 1 : ierr = 0
681 1 : cnt = 0
682 541 : history_column_name(:) = ''
683 :
684 1 : history_column_name(h_model_number) = 'model_number'
685 1 : history_column_name(h_log_star_age) = 'log_star_age'
686 1 : history_column_name(h_star_age) = 'star_age'
687 1 : history_column_name(h_log_star_age_sec) = 'log_star_age_sec'
688 1 : history_column_name(h_star_age_sec) = 'star_age_sec'
689 1 : history_column_name(h_star_age_min) = 'star_age_min'
690 1 : history_column_name(h_star_age_hr) = 'star_age_hr'
691 1 : history_column_name(h_star_age_day) = 'star_age_day'
692 1 : history_column_name(h_star_age_yr) = 'star_age_yr'
693 1 : history_column_name(h_day) = 'day'
694 :
695 1 : history_column_name(h_star_mass) = 'star_mass'
696 1 : history_column_name(h_log_star_mass) = 'log_star_mass'
697 1 : history_column_name(h_log_xmstar) = 'log_xmstar'
698 1 : history_column_name(h_delta_mass) = 'delta_mass'
699 1 : history_column_name(h_star_mdot) = 'star_mdot'
700 1 : history_column_name(h_log_abs_mdot) = 'log_abs_mdot'
701 1 : history_column_name(h_time_step) = 'time_step'
702 1 : history_column_name(h_time_step_sec) = 'time_step_sec'
703 1 : history_column_name(h_e_thermal) = 'e_thermal'
704 1 : history_column_name(h_num_zones) = 'num_zones'
705 1 : history_column_name(h_log_tau_center) = 'log_tau_center'
706 1 : history_column_name(h_tau_factor) = 'tau_factor'
707 1 : history_column_name(h_tau_surface) = 'tau_surface'
708 1 : history_column_name(h_species) = 'species'
709 :
710 1 : history_column_name(h_m_center_gm) = 'm_center_gm'
711 1 : history_column_name(h_r_center_cm) = 'r_center_cm'
712 1 : history_column_name(h_r_center_km) = 'r_center_km'
713 1 : history_column_name(h_m_center) = 'm_center'
714 1 : history_column_name(h_r_center) = 'r_center'
715 1 : history_column_name(h_L_center) = 'L_center'
716 1 : history_column_name(h_log_L_center_ergs_s) = 'log_L_center_ergs_s'
717 1 : history_column_name(h_log_L_center) = 'log_L_center'
718 1 : history_column_name(h_infall_div_cs) = 'infall_div_cs'
719 1 : history_column_name(h_v_center) = 'v_center'
720 1 : history_column_name(h_v_center_kms) = 'v_center_kms'
721 :
722 1 : history_column_name(h_mdot_timescale) = 'mdot_timescale'
723 1 : history_column_name(h_kh_div_mdot_timescales) = 'kh_div_mdot_timescales'
724 :
725 1 : history_column_name(h_star_gravitational_mass) = 'star_gravitational_mass'
726 1 : history_column_name(h_star_mass_grav_div_mass) = 'star_mass_grav_div_mass'
727 :
728 1 : history_column_name(h_conv_mx1_top) = 'conv_mx1_top'
729 1 : history_column_name(h_conv_mx1_bot) = 'conv_mx1_bot'
730 1 : history_column_name(h_conv_mx2_top) = 'conv_mx2_top'
731 1 : history_column_name(h_conv_mx2_bot) = 'conv_mx2_bot'
732 1 : history_column_name(h_mx1_top) = 'mx1_top'
733 1 : history_column_name(h_mx1_bot) = 'mx1_bot'
734 1 : history_column_name(h_mx2_top) = 'mx2_top'
735 1 : history_column_name(h_mx2_bot) = 'mx2_bot'
736 :
737 1 : history_column_name(h_conv_mx1_top_r) = 'conv_mx1_top_r'
738 1 : history_column_name(h_conv_mx1_bot_r) = 'conv_mx1_bot_r'
739 1 : history_column_name(h_conv_mx2_top_r) = 'conv_mx2_top_r'
740 1 : history_column_name(h_conv_mx2_bot_r) = 'conv_mx2_bot_r'
741 1 : history_column_name(h_mx1_top_r) = 'mx1_top_r'
742 1 : history_column_name(h_mx1_bot_r) = 'mx1_bot_r'
743 1 : history_column_name(h_mx2_top_r) = 'mx2_top_r'
744 1 : history_column_name(h_mx2_bot_r) = 'mx2_bot_r'
745 :
746 1 : history_column_name(h_mix_relr_regions) = 'mix_relr_regions'
747 1 : history_column_name(h_mixing_regions) = 'mixing_regions'
748 :
749 1 : history_column_name(h_epsnuc_M_1) = 'epsnuc_M_1'
750 1 : history_column_name(h_epsnuc_M_2) = 'epsnuc_M_2'
751 1 : history_column_name(h_epsnuc_M_3) = 'epsnuc_M_3'
752 1 : history_column_name(h_epsnuc_M_4) = 'epsnuc_M_4'
753 1 : history_column_name(h_epsnuc_M_5) = 'epsnuc_M_5'
754 1 : history_column_name(h_epsnuc_M_6) = 'epsnuc_M_6'
755 1 : history_column_name(h_epsnuc_M_7) = 'epsnuc_M_7'
756 1 : history_column_name(h_epsnuc_M_8) = 'epsnuc_M_8'
757 1 : history_column_name(h_burning_regions) = 'burning_regions'
758 1 : history_column_name(h_burn_relr_regions) = 'burn_relr_regions'
759 :
760 1 : history_column_name(h_log_cntr_dr_cm) = 'log_cntr_dr_cm'
761 1 : history_column_name(h_log_max_T) = 'log_max_T'
762 1 : history_column_name(h_log_cntr_T) = 'log_cntr_T'
763 1 : history_column_name(h_log_center_T) = 'log_center_T'
764 1 : history_column_name(h_log_cntr_Rho) = 'log_cntr_Rho'
765 1 : history_column_name(h_log_center_Rho) = 'log_center_Rho'
766 1 : history_column_name(h_log_cntr_P) = 'log_cntr_P'
767 1 : history_column_name(h_log_center_P) = 'log_center_P'
768 :
769 1 : history_column_name(h_max_T) = 'max_T'
770 1 : history_column_name(h_center_T) = 'center_T'
771 1 : history_column_name(h_center_Rho) = 'center_Rho'
772 1 : history_column_name(h_center_P) = 'center_P'
773 :
774 1 : history_column_name(h_center_zbar) = 'center_zbar'
775 1 : history_column_name(h_center_abar) = 'center_abar'
776 1 : history_column_name(h_center_mu) = 'center_mu'
777 1 : history_column_name(h_center_ye) = 'center_ye'
778 1 : history_column_name(h_center_entropy) = 'center_entropy'
779 1 : history_column_name(h_max_entropy) = 'max_entropy'
780 1 : history_column_name(h_max_infall_speed) = 'max_infall_speed'
781 1 : history_column_name(h_fe_core_infall) = 'fe_core_infall'
782 1 : history_column_name(h_non_fe_core_infall) = 'non_fe_core_infall'
783 1 : history_column_name(h_non_fe_core_rebound) = 'non_fe_core_rebound'
784 1 : history_column_name(h_compactness) = 'compactness'
785 1 : history_column_name(h_compactness_parameter) = 'compactness_parameter'
786 1 : history_column_name(h_m4) = 'm4'
787 1 : history_column_name(h_mu4) = 'mu4'
788 1 : history_column_name(h_v_div_vesc) = 'v_div_vesc'
789 1 : history_column_name(h_v_surf_div_escape_v) = 'v_surf_div_escape_v'
790 1 : history_column_name(h_v_surf_km_s) = 'v_surf_km_s'
791 1 : history_column_name(h_v_surf) = 'v_surf'
792 1 : history_column_name(h_v_surf_div_v_kh) = 'v_surf_div_v_kh'
793 1 : history_column_name(h_v_div_csound_max) = 'v_div_csound_max'
794 1 : history_column_name(h_v_div_csound_surf) = 'v_div_csound_surf'
795 1 : history_column_name(h_log_dt) = 'log_dt'
796 1 : history_column_name(h_log_dt_sec) = 'log_dt_sec'
797 1 : history_column_name(h_time_step_days) = 'time_step_days'
798 1 : history_column_name(h_log_dt_days) = 'log_dt_days'
799 :
800 :
801 1 : history_column_name(h_power_h_burn) = 'power_h_burn'
802 1 : history_column_name(h_log_LH) = 'log_LH'
803 :
804 1 : history_column_name(h_power_he_burn) = 'power_he_burn'
805 1 : history_column_name(h_log_LHe) = 'log_LHe'
806 :
807 1 : history_column_name(h_power_photo) = 'power_photo'
808 1 : history_column_name(h_Lnuc_photo) = 'Lnuc_photo'
809 :
810 1 : history_column_name(h_power_z_burn) = 'power_z_burn'
811 1 : history_column_name(h_log_LZ) = 'log_LZ'
812 :
813 1 : history_column_name(h_luminosity) = 'luminosity'
814 1 : history_column_name(h_Lsurf_m) = 'Lsurf_m'
815 1 : history_column_name(h_log_L) = 'log_L'
816 1 : history_column_name(h_luminosity_ergs_s) = 'luminosity_ergs_s'
817 1 : history_column_name(h_log_L_ergs_s) = 'log_L_ergs_s'
818 :
819 1 : history_column_name(h_log_mesh_adjust_IE_conservation) = 'log_mesh_adjust_IE_conservation'
820 1 : history_column_name(h_log_mesh_adjust_PE_conservation) = 'log_mesh_adjust_PE_conservation'
821 1 : history_column_name(h_log_mesh_adjust_KE_conservation) = 'log_mesh_adjust_KE_conservation'
822 :
823 1 : history_column_name(h_avg_abs_v_div_cs) = 'avg_abs_v_div_cs'
824 1 : history_column_name(h_log_avg_abs_v_div_cs) = 'log_avg_abs_v_div_cs'
825 1 : history_column_name(h_max_abs_v_div_cs) = 'max_abs_v_div_cs'
826 1 : history_column_name(h_log_max_abs_v_div_cs) = 'log_max_abs_v_div_cs'
827 :
828 1 : history_column_name(h_avg_abs_v) = 'avg_abs_v'
829 1 : history_column_name(h_log_avg_abs_v) = 'log_avg_abs_v'
830 1 : history_column_name(h_max_abs_v) = 'max_abs_v'
831 1 : history_column_name(h_log_max_abs_v) = 'log_max_abs_v'
832 :
833 1 : history_column_name(h_total_internal_energy_after_adjust_mass) = 'total_internal_energy_after_adjust_mass'
834 : history_column_name(h_total_gravitational_energy_after_adjust_mass) = &
835 1 : 'total_gravitational_energy_after_adjust_mass'
836 : history_column_name(h_total_radial_kinetic_energy_after_adjust_mass) = &
837 1 : 'total_radial_kinetic_energy_after_adjust_mass'
838 : history_column_name(h_total_rotational_kinetic_energy_after_adjust_mass) = &
839 1 : 'total_rotational_kinetic_energy_after_adjust_mass'
840 1 : history_column_name(h_total_turbulent_energy_after_adjust_mass) = 'total_turbulent_energy_after_adjust_mass'
841 1 : history_column_name(h_total_energy_after_adjust_mass) = 'total_energy_after_adjust_mass'
842 :
843 1 : history_column_name(h_total_internal_energy) = 'total_internal_energy'
844 1 : history_column_name(h_total_gravitational_energy) = 'total_gravitational_energy'
845 1 : history_column_name(h_total_radial_kinetic_energy) = 'total_radial_kinetic_energy'
846 1 : history_column_name(h_total_rotational_kinetic_energy) = 'total_rotational_kinetic_energy'
847 1 : history_column_name(h_total_turbulent_energy) = 'total_turbulent_energy'
848 1 : history_column_name(h_total_energy_foe) = 'total_energy_foe'
849 1 : history_column_name(h_total_energy) = 'total_energy'
850 :
851 1 : history_column_name(h_log_total_internal_energy) = 'log_total_internal_energy'
852 1 : history_column_name(h_log_total_gravitational_energy) = 'log_total_gravitational_energy'
853 1 : history_column_name(h_log_total_radial_kinetic_energy) = 'log_total_radial_kinetic_energy'
854 1 : history_column_name(h_log_total_rotational_kinetic_energy) = 'log_total_rotational_kinetic_energy'
855 1 : history_column_name(h_log_total_turbulent_energy) = 'log_total_turbulent_energy'
856 1 : history_column_name(h_log_total_energy) = 'log_total_energy'
857 1 : history_column_name(h_total_entropy) = 'total_entropy'
858 1 : history_column_name(h_total_IE_div_IE_plus_KE) = 'total_IE_div_IE_plus_KE'
859 :
860 1 : history_column_name(h_virial_thm_P_avg) = 'virial_thm_P_avg'
861 1 : history_column_name(h_virial_thm_rel_err) = 'virial_thm_rel_err'
862 1 : history_column_name(h_total_eps_grav) = 'total_eps_grav'
863 1 : history_column_name(h_work_outward_at_surface) = 'work_outward_at_surface'
864 1 : history_column_name(h_work_inward_at_center) = 'work_inward_at_center'
865 1 : history_column_name(h_total_nuclear_heating) = 'total_nuclear_heating'
866 1 : history_column_name(h_total_non_nuc_neu_cooling) = 'total_non_nuc_neu_cooling'
867 1 : history_column_name(h_total_irradiation_heating) = 'total_irradiation_heating'
868 1 : history_column_name(h_total_WD_sedimentation_heating) = 'total_WD_sedimentation_heating'
869 1 : history_column_name(h_total_extra_heating) = 'total_extra_heating'
870 :
871 1 : history_column_name(h_total_energy_sources_and_sinks) = 'total_energy_sources_and_sinks'
872 1 : history_column_name(h_error_in_energy_conservation) = 'error_in_energy_conservation'
873 1 : history_column_name(h_rel_error_in_energy_conservation) = 'rel_error_in_energy_conservation'
874 1 : history_column_name(h_log_rel_error_in_energy_conservation) = 'log_rel_error_in_energy_conservation'
875 :
876 1 : history_column_name(h_cumulative_energy_error) = 'cumulative_energy_error'
877 1 : history_column_name(h_rel_cumulative_energy_error) = 'rel_cumulative_energy_error'
878 :
879 1 : history_column_name(h_abs_rel_E_err) = 'abs_rel_E_err'
880 1 : history_column_name(h_log_rel_E_err) = 'log_rel_E_err'
881 :
882 1 : history_column_name(h_tot_E_equ_err) = 'tot_E_equ_err'
883 1 : history_column_name(h_tot_E_err) = 'tot_E_err'
884 1 : history_column_name(h_rel_E_err) = 'rel_E_err'
885 :
886 1 : history_column_name(h_rel_run_E_err) = 'rel_run_E_err'
887 1 : history_column_name(h_log_rel_run_E_err) = 'log_rel_run_E_err'
888 1 : history_column_name(h_log_rel_cumulative_energy_error) = 'log_rel_cumulative_energy_error'
889 :
890 1 : history_column_name(h_u_surf_km_s) = 'u_surf_km_s'
891 1 : history_column_name(h_u_surf) = 'u_surf'
892 1 : history_column_name(h_u_div_csound_max) = 'u_div_csound_max'
893 1 : history_column_name(h_u_div_csound_surf) = 'u_div_csound_surf'
894 :
895 1 : history_column_name(h_log_Lneu_nuc) = 'log_Lneu_nuc'
896 1 : history_column_name(h_log_Lneu_nonnuc) = 'log_Lneu_nonnuc'
897 : history_column_name(h_log_Lneu) = 'log_Lneu'
898 1 : history_column_name(h_log_R) = 'log_R'
899 1 : history_column_name(h_radius) = 'radius'
900 1 : history_column_name(h_log_R_cm) = 'log_R_cm'
901 1 : history_column_name(h_radius_cm) = 'radius_cm'
902 1 : history_column_name(h_Teff) = 'Teff'
903 1 : history_column_name(h_log_Teff) = 'log_Teff'
904 1 : history_column_name(h_effective_T) = 'effective_T'
905 :
906 1 : history_column_name(h_gravity) = 'gravity'
907 1 : history_column_name(h_log_g) = 'log_g'
908 1 : history_column_name(h_log_L_div_Ledd) = 'log_L_div_Ledd'
909 1 : history_column_name(h_lum_div_Ledd) = 'lum_div_Ledd'
910 1 : history_column_name(h_max_L_rad_div_Ledd_div_phi_Joss) = 'max_L_rad_div_Ledd_div_phi_Joss'
911 1 : history_column_name(h_max_L_rad_div_Ledd) = 'max_L_rad_div_Ledd'
912 1 : history_column_name(h_log_Ledd) = 'log_Ledd'
913 :
914 1 : history_column_name(h_gradT_excess_alpha) = 'gradT_excess_alpha'
915 1 : history_column_name(h_gradT_excess_min_beta) = 'gradT_excess_min_beta'
916 1 : history_column_name(h_gradT_excess_max_lambda) = 'gradT_excess_max_lambda'
917 :
918 1 : history_column_name(h_gamma1_min) = 'gamma1_min'
919 1 : history_column_name(h_logT_max) = 'logT_max'
920 1 : history_column_name(h_logQ_max) = 'logQ_max'
921 1 : history_column_name(h_logQ_min) = 'logQ_min'
922 :
923 1 : history_column_name(h_num_hydro_merges) = 'num_hydro_merges'
924 1 : history_column_name(h_num_hydro_splits) = 'num_hydro_splits'
925 :
926 1 : history_column_name(h_RSP_DeltaR) = 'rsp_DeltaR'
927 1 : history_column_name(h_RSP_DeltaMag) = 'rsp_DeltaMag'
928 1 : history_column_name(h_RSP_GREKM) = 'rsp_GREKM'
929 :
930 1 : history_column_name(h_rsp_phase) = 'rsp_phase'
931 1 : history_column_name(h_rsp_period_in_days) = 'rsp_period_in_days'
932 1 : history_column_name(h_rsp_num_periods) = 'rsp_num_periods'
933 :
934 : history_column_name(h_total_num_solver_iterations) = 'total_num_solver_iterations'
935 1 : history_column_name(h_total_num_solver_calls_made) = 'total_num_solver_calls_made'
936 1 : history_column_name(h_total_num_solver_calls_converged) = 'total_num_solver_calls_converged'
937 1 : history_column_name(h_total_num_solver_calls_failed) = 'total_num_solver_calls_failed'
938 :
939 1 : history_column_name(h_total_num_solver_relax_iterations) = 'total_num_solver_relax_iterations'
940 1 : history_column_name(h_total_num_solver_relax_calls_made) = 'total_num_solver_relax_calls_made'
941 1 : history_column_name(h_total_num_solver_relax_calls_converged) = 'total_num_solver_relax_calls_converged'
942 1 : history_column_name(h_total_num_solver_relax_calls_failed) = 'total_num_solver_relax_calls_failed'
943 :
944 :
945 1 : history_column_name(h_total_step_attempts) = 'total_step_attempts'
946 1 : history_column_name(h_total_step_retries) = 'total_step_retries'
947 1 : history_column_name(h_total_step_redos) = 'total_step_redos'
948 1 : history_column_name(h_total_steps_taken) = 'total_steps_taken'
949 1 : history_column_name(h_total_steps_finished) = 'total_steps_finished'
950 :
951 1 : history_column_name(h_total_relax_step_attempts) = 'total_relax_step_attempts'
952 1 : history_column_name(h_total_relax_step_retries) = 'total_relax_step_retries'
953 1 : history_column_name(h_total_relax_step_redos) = 'total_relax_step_redos'
954 1 : history_column_name(h_total_relax_steps_taken) = 'total_relax_steps_taken'
955 1 : history_column_name(h_total_relax_steps_finished) = 'total_relax_steps_finished'
956 :
957 1 : history_column_name(h_avg_num_solver_iters) = 'avg_num_solver_iters'
958 1 : history_column_name(h_num_solver_iterations) = 'num_solver_iterations'
959 1 : history_column_name(h_num_iters) = 'num_iters'
960 :
961 1 : history_column_name(h_avg_skipped_setvars_per_step) = 'avg_skipped_setvars_per_step'
962 1 : history_column_name(h_avg_setvars_per_step) = 'avg_setvars_per_step'
963 1 : history_column_name(h_avg_solver_setvars_per_step) = 'avg_solver_setvars_per_step'
964 :
965 1 : history_column_name(h_num_retries) = 'num_retries'
966 :
967 1 : history_column_name(h_total_num_solver_iterations) = 'total_num_solver_iterations'
968 :
969 :
970 1 : history_column_name(h_h1_czb_mass) = 'h1_czb_mass'
971 1 : history_column_name(h_surf_c12_minus_o16) = 'surf_c12_minus_o16'
972 1 : history_column_name(h_surf_num_c12_div_num_o16) = 'surf_num_c12_div_num_o16'
973 :
974 1 : history_column_name(h_min_Pgas_div_P) = 'min_Pgas_div_P'
975 1 : history_column_name(h_center_degeneracy) = 'center_degeneracy'
976 1 : history_column_name(h_center_eps_grav) = 'center_eps_grav'
977 1 : history_column_name(h_center_non_nuc_neu) = 'center_non_nuc_neu'
978 1 : history_column_name(h_log_center_eps_nuc) = 'log_center_eps_nuc'
979 1 : history_column_name(h_d_center_eps_nuc_dlnT) = 'd_center_eps_nuc_dlnT'
980 1 : history_column_name(h_d_center_eps_nuc_dlnd) = 'd_center_eps_nuc_dlnd'
981 1 : history_column_name(h_center_eps_nuc) = 'center_eps_nuc'
982 1 : history_column_name(h_center_gamma) = 'center_gamma'
983 :
984 1 : history_column_name(h_h_rich_layer_mass) = 'h_rich_layer_mass'
985 1 : history_column_name(h_he_rich_layer_mass) = 'he_rich_layer_mass'
986 1 : history_column_name(h_co_rich_layer_mass) = 'co_rich_layer_mass'
987 :
988 1 : history_column_name(h_he_core_mass) = 'he_core_mass'
989 1 : history_column_name(h_he_core_radius) = 'he_core_radius'
990 1 : history_column_name(h_he_core_lgT) = 'he_core_lgT'
991 1 : history_column_name(h_he_core_lgRho) = 'he_core_lgRho'
992 1 : history_column_name(h_he_core_L) = 'he_core_L'
993 1 : history_column_name(h_he_core_v) = 'he_core_v'
994 1 : history_column_name(h_he_core_omega) = 'he_core_omega'
995 1 : history_column_name(h_he_core_omega_div_omega_crit) = 'he_core_omega_div_omega_crit'
996 1 : history_column_name(h_he_core_k) = 'he_core_k'
997 :
998 1 : history_column_name(h_co_core_mass) = 'co_core_mass'
999 1 : history_column_name(h_co_core_radius) = 'co_core_radius'
1000 1 : history_column_name(h_co_core_lgT) = 'co_core_lgT'
1001 1 : history_column_name(h_co_core_lgRho) = 'co_core_lgRho'
1002 1 : history_column_name(h_co_core_L) = 'co_core_L'
1003 1 : history_column_name(h_co_core_v) = 'co_core_v'
1004 1 : history_column_name(h_co_core_omega) = 'co_core_omega'
1005 1 : history_column_name(h_co_core_omega_div_omega_crit) = 'co_core_omega_div_omega_crit'
1006 1 : history_column_name(h_co_core_k) = 'co_core_k'
1007 :
1008 1 : history_column_name(h_one_core_mass) = 'one_core_mass'
1009 1 : history_column_name(h_one_core_radius) = 'one_core_radius'
1010 1 : history_column_name(h_one_core_lgT) = 'one_core_lgT'
1011 1 : history_column_name(h_one_core_lgRho) = 'one_core_lgRho'
1012 1 : history_column_name(h_one_core_L) = 'one_core_L'
1013 1 : history_column_name(h_one_core_v) = 'one_core_v'
1014 1 : history_column_name(h_one_core_omega) = 'one_core_omega'
1015 1 : history_column_name(h_one_core_omega_div_omega_crit) = 'one_core_omega_div_omega_crit'
1016 1 : history_column_name(h_one_core_k) = 'one_core_k'
1017 :
1018 1 : history_column_name(h_fe_core_mass) = 'fe_core_mass'
1019 1 : history_column_name(h_fe_core_radius) = 'fe_core_radius'
1020 1 : history_column_name(h_fe_core_lgT) = 'fe_core_lgT'
1021 1 : history_column_name(h_fe_core_lgRho) = 'fe_core_lgRho'
1022 1 : history_column_name(h_fe_core_L) = 'fe_core_L'
1023 1 : history_column_name(h_fe_core_v) = 'fe_core_v'
1024 1 : history_column_name(h_fe_core_omega) = 'fe_core_omega'
1025 1 : history_column_name(h_fe_core_omega_div_omega_crit) = 'fe_core_omega_div_omega_crit'
1026 1 : history_column_name(h_fe_core_k) = 'fe_core_k'
1027 :
1028 1 : history_column_name(h_neutron_rich_core_mass) = 'neutron_rich_core_mass'
1029 1 : history_column_name(h_neutron_rich_core_radius) = 'neutron_rich_core_radius'
1030 1 : history_column_name(h_neutron_rich_core_lgT) = 'neutron_rich_core_lgT'
1031 1 : history_column_name(h_neutron_rich_core_lgRho) = 'neutron_rich_core_lgRho'
1032 1 : history_column_name(h_neutron_rich_core_L) = 'neutron_rich_core_L'
1033 1 : history_column_name(h_neutron_rich_core_v) = 'neutron_rich_core_v'
1034 1 : history_column_name(h_neutron_rich_core_omega) = 'neutron_rich_core_omega'
1035 1 : history_column_name(h_neutron_rich_core_omega_div_omega_crit) = 'neutron_rich_core_omega_div_omega_crit'
1036 1 : history_column_name(h_neutron_rich_core_k) = 'neutron_rich_core_k'
1037 :
1038 1 : history_column_name(h_envelope_mass) = 'envelope_mass'
1039 1 : history_column_name(h_envelope_fraction_left) = 'envelope_fraction_left'
1040 :
1041 1 : history_column_name(h_dynamic_timescale) = 'dynamic_timescale'
1042 1 : history_column_name(h_dlnR_dlnM) = 'dlnR_dlnM'
1043 1 : history_column_name(h_kh_timescale) = 'kh_timescale'
1044 1 : history_column_name(h_nuc_timescale) = 'nuc_timescale'
1045 1 : history_column_name(h_dt_div_min_tau_conv) = 'dt_div_min_tau_conv'
1046 1 : history_column_name(h_dt_div_max_tau_conv) = 'dt_div_max_tau_conv'
1047 1 : history_column_name(h_max_tau_conv) = 'max_tau_conv'
1048 1 : history_column_name(h_min_tau_conv) = 'min_tau_conv'
1049 1 : history_column_name(h_log_max_tau_conv) = 'log_max_tau_conv'
1050 1 : history_column_name(h_log_min_tau_conv) = 'log_min_tau_conv'
1051 1 : history_column_name(h_tau_QHSE_yrs) = 'tau_QHSE_yrs'
1052 1 : history_column_name(h_log_abs_Lgrav) = 'log_abs_Lgrav'
1053 1 : history_column_name(h_eps_grav_integral) = 'eps_grav_integral'
1054 1 : history_column_name(h_extra_L) = 'extra_L'
1055 1 : history_column_name(h_log_extra_L) = 'log_extra_L'
1056 1 : history_column_name(h_log_power_nuc_burn) = 'log_power_nuc_burn'
1057 1 : history_column_name(h_power_nuc_burn) = 'power_nuc_burn'
1058 1 : history_column_name(h_log_Lnuc_ergs_s) = 'log_Lnuc_ergs_s'
1059 1 : history_column_name(h_log_Lnuc) = 'log_Lnuc'
1060 1 : history_column_name(h_Lnuc) = 'Lnuc'
1061 1 : history_column_name(h_log_Lneu) = 'log_Lneu'
1062 1 : history_column_name(h_mass_loc_of_max_eps_nuc) = 'mass_loc_of_max_eps_nuc'
1063 1 : history_column_name(h_mass_ext_to_max_eps_nuc) = 'mass_ext_to_max_eps_nuc'
1064 :
1065 1 : history_column_name(h_diffusion_time_H_He_bdy) = 'diffusion_time_H_He_bdy'
1066 1 : history_column_name(h_temperature_H_He_bdy) = 'temperature_H_He_bdy'
1067 :
1068 1 : history_column_name(h_total_ni_co_56) = 'total_ni_co_56'
1069 :
1070 1 : history_column_name(h_shock_velocity) = 'shock_velocity'
1071 1 : history_column_name(h_shock_csound) = 'shock_csound'
1072 1 : history_column_name(h_shock_v_div_cs) = 'shock_v_div_cs'
1073 1 : history_column_name(h_shock_lgT) = 'shock_lgT'
1074 1 : history_column_name(h_shock_lgRho) = 'shock_lgRho'
1075 1 : history_column_name(h_shock_lgP) = 'shock_lgP'
1076 1 : history_column_name(h_shock_q) = 'shock_q'
1077 1 : history_column_name(h_shock_tau) = 'shock_tau'
1078 1 : history_column_name(h_shock_mass) = 'shock_mass'
1079 1 : history_column_name(h_shock_radius) = 'shock_radius'
1080 1 : history_column_name(h_shock_mass_gm) = 'shock_mass_gm'
1081 1 : history_column_name(h_shock_radius_cm) = 'shock_radius_cm'
1082 1 : history_column_name(h_shock_gamma1) = 'shock_gamma1'
1083 1 : history_column_name(h_shock_entropy) = 'shock_entropy'
1084 1 : history_column_name(h_shock_pre_lgRho) = 'shock_pre_lgRho'
1085 1 : history_column_name(h_shock_k) = 'shock_k'
1086 :
1087 1 : history_column_name(h_log_surf_optical_depth) = 'log_surf_optical_depth'
1088 1 : history_column_name(h_surface_optical_depth) = 'surface_optical_depth'
1089 :
1090 1 : history_column_name(h_log_surf_cell_opacity) = 'log_surf_cell_opacity'
1091 1 : history_column_name(h_log_surf_cell_density) = 'log_surf_cell_density'
1092 1 : history_column_name(h_surface_cell_temperature) = 'surface_cell_temperature'
1093 1 : history_column_name(h_log_surf_cell_temperature) = 'log_surf_cell_temperature'
1094 1 : history_column_name(h_log_surf_cell_pressure) = 'log_surf_cell_pressure'
1095 1 : history_column_name(h_log_surf_cell_P) = 'log_surf_cell_P'
1096 1 : history_column_name(h_log_surf_cell_z) = 'log_surf_cell_z'
1097 1 : history_column_name(h_surface_cell_entropy) = 'surface_cell_entropy'
1098 :
1099 1 : history_column_name(h_max_conv_vel_div_csound) = 'max_conv_vel_div_csound'
1100 1 : history_column_name(h_max_gradT_div_grada) = 'max_gradT_div_grada'
1101 1 : history_column_name(h_max_gradT_sub_grada) = 'max_gradT_sub_grada'
1102 1 : history_column_name(h_min_log_mlt_Gamma) = 'min_log_mlt_Gamma'
1103 :
1104 1 : history_column_name(h_dt_cell_collapse) = 'dt_cell_collapse'
1105 1 : history_column_name(h_dt_div_dt_cell_collapse) = 'dt_div_dt_cell_collapse'
1106 :
1107 1 : history_column_name(h_min_dr_div_cs_k) = 'min_dr_div_cs_k'
1108 1 : history_column_name(h_min_dr_div_cs) = 'min_dr_div_cs'
1109 1 : history_column_name(h_log_min_dr_div_cs) = 'log_min_dr_div_cs'
1110 1 : history_column_name(h_min_dr_div_cs_yr) = 'min_dr_div_cs_yr'
1111 1 : history_column_name(h_log_min_dr_div_cs_yr) = 'log_min_dr_div_cs_yr'
1112 1 : history_column_name(h_dt_div_min_dr_div_cs) = 'dt_div_min_dr_div_cs'
1113 1 : history_column_name(h_log_dt_div_min_dr_div_cs) = 'log_dt_div_min_dr_div_cs'
1114 :
1115 1 : history_column_name(h_cz_bot_mass) = 'cz_bot_mass'
1116 1 : history_column_name(h_cz_mass) = 'cz_mass'
1117 1 : history_column_name(h_cz_log_xmsun) = 'cz_log_xmsun'
1118 1 : history_column_name(h_cz_log_xmass) = 'cz_log_xmass'
1119 1 : history_column_name(h_cz_xm) = 'cz_xm'
1120 1 : history_column_name(h_cz_logT) = 'cz_logT'
1121 1 : history_column_name(h_cz_logRho) = 'cz_logRho'
1122 1 : history_column_name(h_cz_logP) = 'cz_logP'
1123 1 : history_column_name(h_cz_log_column_depth) = 'cz_log_column_depth'
1124 1 : history_column_name(h_cz_log_radial_depth) = 'cz_log_radial_depth'
1125 :
1126 1 : history_column_name(h_cz_log_tau) = 'cz_log_tau'
1127 1 : history_column_name(h_cz_opacity) = 'cz_opacity'
1128 1 : history_column_name(h_cz_eta) = 'cz_eta'
1129 1 : history_column_name(h_cz_log_eps_nuc) = 'cz_log_eps_nuc'
1130 1 : history_column_name(h_cz_t_heat) = 'cz_t_heat'
1131 1 : history_column_name(h_cz_csound) = 'cz_csound'
1132 1 : history_column_name(h_cz_scale_height) = 'cz_scale_height'
1133 1 : history_column_name(h_cz_grav) = 'cz_grav'
1134 1 : history_column_name(h_cz_luminosity) = 'cz_luminosity'
1135 1 : history_column_name(h_cz_bot_radius) = 'cz_bot_radius'
1136 1 : history_column_name(h_cz_zone) = 'cz_zone'
1137 1 : history_column_name(h_cz_omega) = 'cz_omega'
1138 1 : history_column_name(h_cz_omega_div_omega_crit) = 'cz_omega_div_omega_crit'
1139 :
1140 1 : history_column_name(h_cz_top_mass) = 'cz_top_mass'
1141 1 : history_column_name(h_cz_top_log_xmsun) = 'cz_top_log_xmsun'
1142 1 : history_column_name(h_cz_top_log_xmass) = 'cz_top_log_xmass'
1143 1 : history_column_name(h_cz_top_xm) = 'cz_top_xm'
1144 1 : history_column_name(h_cz_top_logT) = 'cz_top_logT'
1145 1 : history_column_name(h_cz_top_logRho) = 'cz_top_logRho'
1146 1 : history_column_name(h_cz_top_logP) = 'cz_top_logP'
1147 1 : history_column_name(h_cz_top_log_column_depth) = 'cz_top_log_column_depth'
1148 1 : history_column_name(h_cz_top_log_radial_depth) = 'cz_top_log_radial_depth'
1149 :
1150 1 : history_column_name(h_cz_top_log_tau) = 'cz_top_log_tau'
1151 1 : history_column_name(h_cz_top_opacity) = 'cz_top_opacity'
1152 1 : history_column_name(h_cz_top_eta) = 'cz_top_eta'
1153 1 : history_column_name(h_cz_top_log_eps_nuc) = 'cz_top_log_eps_nuc'
1154 1 : history_column_name(h_cz_top_t_heat) = 'cz_top_t_heat'
1155 1 : history_column_name(h_cz_top_csound) = 'cz_top_csound'
1156 1 : history_column_name(h_cz_top_scale_height) = 'cz_top_scale_height'
1157 1 : history_column_name(h_cz_top_grav) = 'cz_top_grav'
1158 1 : history_column_name(h_cz_top_luminosity) = 'cz_top_luminosity'
1159 1 : history_column_name(h_cz_top_radius) = 'cz_top_radius'
1160 1 : history_column_name(h_cz_top_zone) = 'cz_top_zone'
1161 1 : history_column_name(h_cz_top_omega) = 'cz_top_omega'
1162 1 : history_column_name(h_cz_top_omega_div_omega_crit) = 'cz_top_omega_div_omega_crit'
1163 :
1164 1 : history_column_name(h_kh_mdot_limit) = 'kh_mdot_limit'
1165 1 : history_column_name(h_rotational_mdot_boost) = 'rotational_mdot_boost'
1166 1 : history_column_name(h_log_rotational_mdot_boost) = 'log_rotational_mdot_boost'
1167 :
1168 1 : history_column_name(h_i_rot_total) = 'i_rot_total'
1169 1 : history_column_name(h_surf_avg_j_rot) = 'surf_avg_j_rot'
1170 1 : history_column_name(h_surf_avg_omega) = 'surf_avg_omega'
1171 1 : history_column_name(h_surf_avg_omega_crit) = 'surf_avg_omega_crit'
1172 1 : history_column_name(h_surf_avg_omega_div_omega_crit) = 'surf_avg_omega_div_omega_crit'
1173 :
1174 1 : history_column_name(h_surf_avg_v_rot) = 'surf_avg_v_rot'
1175 1 : history_column_name(h_surf_avg_v_crit) = 'surf_avg_v_crit'
1176 1 : history_column_name(h_surf_avg_v_div_v_crit) = 'surf_avg_v_div_v_crit'
1177 :
1178 1 : history_column_name(h_surf_avg_logT) = 'surf_avg_logT'
1179 1 : history_column_name(h_surf_avg_logRho) = 'surf_avg_logRho'
1180 1 : history_column_name(h_surf_avg_opacity) = 'surf_avg_opacity'
1181 1 : history_column_name(h_surf_avg_Lrad_div_Ledd) = 'surf_avg_Lrad_div_Ledd'
1182 :
1183 1 : history_column_name(h_surf_escape_v) = 'surf_escape_v'
1184 1 : history_column_name(h_v_wind_Km_per_s) = 'v_wind_Km_per_s'
1185 :
1186 1 : history_column_name(h_center_omega) = 'center_omega'
1187 1 : history_column_name(h_center_omega_div_omega_crit) = 'center_omega_div_omega_crit'
1188 :
1189 1 : history_column_name(h_surf_r_equatorial_div_r_polar) = 'surf_r_equatorial_div_r_polar'
1190 1 : history_column_name(h_surf_r_equatorial_div_r) = 'surf_r_equatorial_div_r'
1191 1 : history_column_name(h_surf_r_polar_div_r) = 'surf_r_polar_div_r'
1192 :
1193 1 : history_column_name(h_total_angular_momentum) = 'total_angular_momentum'
1194 1 : history_column_name(h_log_total_angular_momentum) = 'log_total_angular_momentum'
1195 :
1196 1 : history_column_name(h_min_t_eddy) = 'min_t_eddy'
1197 1 : history_column_name(h_elapsed_time) = 'elapsed_time'
1198 :
1199 1 : history_column_name(h_photosphere_cell_log_density) = 'photosphere_cell_log_density'
1200 1 : history_column_name(h_photosphere_cell_density) = 'photosphere_cell_density'
1201 :
1202 1 : history_column_name(h_photosphere_cell_log_opacity) = 'photosphere_cell_log_opacity'
1203 1 : history_column_name(h_photosphere_cell_opacity) = 'photosphere_cell_opacity'
1204 :
1205 1 : history_column_name(h_photosphere_cell_log_free_e) = 'photosphere_cell_log_free_e'
1206 1 : history_column_name(h_photosphere_cell_free_e) = 'photosphere_cell_free_e'
1207 :
1208 1 : history_column_name(h_photosphere_cell_k) = 'photosphere_cell_k'
1209 1 : history_column_name(h_photosphere_cell_log_T) = 'photosphere_cell_log_T'
1210 1 : history_column_name(h_photosphere_cell_T) = 'photosphere_cell_T'
1211 1 : history_column_name(h_photosphere_black_body_T) = 'photosphere_black_body_T'
1212 1 : history_column_name(h_photosphere_T) = 'photosphere_T'
1213 1 : history_column_name(h_photosphere_logg) = 'photosphere_logg'
1214 1 : history_column_name(h_photosphere_m) = 'photosphere_m'
1215 1 : history_column_name(h_photosphere_xm) = 'photosphere_xm'
1216 1 : history_column_name(h_photosphere_L) = 'photosphere_L'
1217 1 : history_column_name(h_photosphere_r) = 'photosphere_r'
1218 1 : history_column_name(h_photosphere_log_L) = 'photosphere_log_L'
1219 1 : history_column_name(h_photosphere_log_r) = 'photosphere_log_r'
1220 1 : history_column_name(h_photosphere_v_km_s) = 'photosphere_v_km_s'
1221 1 : history_column_name(h_v_phot_km_s) = 'v_phot_km_s'
1222 1 : history_column_name(h_one_div_yphot) = 'one_div_yphot'
1223 1 : history_column_name(h_log_one_div_yphot) = 'log_one_div_yphot'
1224 1 : history_column_name(h_photosphere_column_density) = 'photosphere_column_density'
1225 1 : history_column_name(h_photosphere_log_column_density) = 'photosphere_log_column_density'
1226 1 : history_column_name(h_photosphere_opacity) = 'photosphere_opacity'
1227 1 : history_column_name(h_photosphere_csound) = 'photosphere_csound'
1228 1 : history_column_name(h_photosphere_v_div_cs) = 'photosphere_v_div_cs'
1229 :
1230 1 : history_column_name(h_min_opacity) = 'min_opacity'
1231 1 : history_column_name(h_log_min_opacity) = 'log_min_opacity'
1232 :
1233 1 : history_column_name(h_delta_nu) = 'delta_nu'
1234 1 : history_column_name(h_delta_Pg) = 'delta_Pg'
1235 1 : history_column_name(h_log_delta_Pg) = 'log_delta_Pg'
1236 1 : history_column_name(h_nu_max_3_4th_div_delta_nu) = 'nu_max_3_4th_div_delta_nu'
1237 :
1238 1 : history_column_name(h_nu_max) = 'nu_max'
1239 1 : history_column_name(h_acoustic_cutoff) = 'acoustic_cutoff'
1240 1 : history_column_name(h_acoustic_radius) = 'acoustic_radius'
1241 1 : history_column_name(h_gs_per_delta_nu) = 'gs_per_delta_nu'
1242 1 : history_column_name(h_ng_for_nu_max) = 'ng_for_nu_max'
1243 :
1244 1 : history_column_name(h_int_k_r_dr_nu_max_Sl1) = 'int_k_r_dr_nu_max_Sl1'
1245 1 : history_column_name(h_int_k_r_dr_2pt0_nu_max_Sl1) = 'int_k_r_dr_2pt0_nu_max_Sl1'
1246 1 : history_column_name(h_int_k_r_dr_0pt5_nu_max_Sl1) = 'int_k_r_dr_0pt5_nu_max_Sl1'
1247 :
1248 1 : history_column_name(h_int_k_r_dr_nu_max_Sl2) = 'int_k_r_dr_nu_max_Sl2'
1249 1 : history_column_name(h_int_k_r_dr_2pt0_nu_max_Sl2) = 'int_k_r_dr_2pt0_nu_max_Sl2'
1250 1 : history_column_name(h_int_k_r_dr_0pt5_nu_max_Sl2) = 'int_k_r_dr_0pt5_nu_max_Sl2'
1251 :
1252 1 : history_column_name(h_int_k_r_dr_nu_max_Sl3) = 'int_k_r_dr_nu_max_Sl3'
1253 1 : history_column_name(h_int_k_r_dr_2pt0_nu_max_Sl3) = 'int_k_r_dr_2pt0_nu_max_Sl3'
1254 1 : history_column_name(h_int_k_r_dr_0pt5_nu_max_Sl3) = 'int_k_r_dr_0pt5_nu_max_Sl3'
1255 :
1256 1 : history_column_name(h_mass_conv_core) = 'mass_conv_core'
1257 1 : history_column_name(h_mass_semiconv_core) = 'mass_semiconv_core'
1258 :
1259 1 : history_column_name(h_cz_top_zone_logdq) = 'cz_top_zone_logdq'
1260 1 : history_column_name(h_log_Lnuc_sub_log_L) = 'log_Lnuc_sub_log_L'
1261 :
1262 1 : history_column_name(h_k_below_const_q) = 'k_below_const_q'
1263 1 : history_column_name(h_q_below_const_q) = 'q_below_const_q'
1264 1 : history_column_name(h_logxq_below_const_q) = 'logxq_below_const_q'
1265 :
1266 1 : history_column_name(h_k_const_mass) = 'k_const_mass'
1267 1 : history_column_name(h_q_const_mass) = 'q_const_mass'
1268 1 : history_column_name(h_logxq_const_mass) = 'logxq_const_mass'
1269 :
1270 1 : history_column_name(h_k_below_just_added) = 'k_below_just_added'
1271 1 : history_column_name(h_q_below_just_added) = 'q_below_just_added'
1272 1 : history_column_name(h_logxq_below_just_added) = 'logxq_below_just_added'
1273 :
1274 1 : history_column_name(h_k_for_test_CpT_absMdot_div_L) = 'k_for_test_CpT_absMdot_div_L'
1275 1 : history_column_name(h_q_for_test_CpT_absMdot_div_L) = 'q_for_test_CpT_absMdot_div_L'
1276 1 : history_column_name(h_logxq_for_test_CpT_absMdot_div_L) = 'logxq_for_test_CpT_absMdot_div_L'
1277 :
1278 1 : history_column_name(h_burn_solver_maxsteps) = 'burn_solver_maxsteps'
1279 1 : history_column_name(h_rotation_solver_steps) = 'rotation_solver_steps'
1280 1 : history_column_name(h_diffusion_solver_steps) = 'diffusion_solver_steps'
1281 1 : history_column_name(h_diffusion_solver_iters) = 'diffusion_solver_iters'
1282 :
1283 1 : history_column_name(h_tot_E) = 'tot_E'
1284 1 : history_column_name(h_log_tot_E) = 'log_tot_E'
1285 :
1286 1 : history_column_name(h_tot_KE) = 'tot_KE'
1287 1 : history_column_name(h_log_tot_KE) = 'log_tot_KE'
1288 :
1289 1 : history_column_name(h_tot_PE) = 'tot_PE'
1290 1 : history_column_name(h_log_tot_PE) = 'log_tot_PE'
1291 :
1292 1 : history_column_name(h_tot_IE) = 'tot_IE'
1293 1 : history_column_name(h_log_tot_IE) = 'log_tot_IE'
1294 :
1295 1 : history_column_name(h_tot_Et) = 'tot_Et'
1296 1 : history_column_name(h_log_tot_Et) = 'log_tot_Et'
1297 :
1298 1 : history_column_name(h_tot_IE_div_IE_plus_KE) = 'tot_IE_div_IE_plus_KE'
1299 :
1300 1 : history_column_name(h_grav_dark_L_polar) = 'grav_dark_L_polar'
1301 1 : history_column_name(h_grav_dark_Teff_polar) = 'grav_dark_Teff_polar'
1302 :
1303 1 : history_column_name(h_grav_dark_L_equatorial) = 'grav_dark_L_equatorial'
1304 1 : history_column_name(h_grav_dark_Teff_equatorial) = 'grav_dark_Teff_equatorial'
1305 :
1306 1 : history_column_name(h_apsidal_constant_k2) = 'apsidal_constant_k2'
1307 :
1308 1 : history_column_name(h_phase_of_evolution) = 'phase_of_evolution'
1309 :
1310 : ! items corresponding to names on terminal output lines
1311 1 : history_column_name(h_lg_Lnuc_tot) = 'lg_Lnuc_tot'
1312 1 : history_column_name(h_H_rich) = 'H_rich'
1313 1 : history_column_name(h_N_cntr) = 'N_cntr'
1314 1 : history_column_name(h_lg_Lneu) = 'lg_Lneu'
1315 1 : history_column_name(h_He_core) = 'He_core'
1316 1 : history_column_name(h_O_cntr) = 'O_cntr'
1317 1 : history_column_name(h_lg_Lphoto) = 'lg_Lphoto'
1318 1 : history_column_name(h_CO_core) = 'CO_core'
1319 1 : history_column_name(h_Fe_core) = 'Fe_core'
1320 1 : history_column_name(h_Ne_cntr) = 'Ne_cntr'
1321 1 : history_column_name(h_Mass) = 'Mass'
1322 1 : history_column_name(h_H_cntr) = 'H_cntr'
1323 1 : history_column_name(h_Si_cntr) = 'Si_cntr'
1324 1 : history_column_name(h_lg_Mdot) = 'lg_Mdot'
1325 1 : history_column_name(h_He_cntr) = 'He_cntr'
1326 1 : history_column_name(h_eta_cntr) = 'eta_cntr'
1327 1 : history_column_name(h_gam_cntr) = 'gam_cntr'
1328 1 : history_column_name(h_v_div_cs) = 'v_div_cs'
1329 1 : history_column_name(h_remnant_M) = 'remnant_M'
1330 1 : history_column_name(h_ejecta_M) = 'ejecta_M'
1331 1 : history_column_name(h_zones) = 'zones'
1332 1 : history_column_name(h_lg_Dsurf) = 'lg_Dsurf'
1333 1 : history_column_name(h_C_cntr) = 'C_cntr'
1334 1 : history_column_name(h_retries) = 'retries'
1335 1 : history_column_name(h_TDC_num_cells) = 'TDC_num_cells'
1336 :
1337 1 : cnt = 0
1338 541 : do i=1,h_col_id_max
1339 541 : if (len_trim(history_column_name(i)) == 0) then
1340 0 : write(*,*) 'missing name for log column id', i
1341 0 : if (i > 1) write(*,*) 'following ' // trim(history_column_name(max(1,i-1))) ! bp: get rid of bogus compiler warning
1342 0 : write(*,'(A)')
1343 0 : cnt = cnt+1
1344 : end if
1345 : !write(*,'(a)') ' ! ' // trim(history_column_name(i))
1346 : end do
1347 : !stop
1348 :
1349 1 : if (cnt > 0) then
1350 0 : ierr = -1
1351 0 : return
1352 : end if
1353 :
1354 1 : nullify(history_column_names_dict)
1355 541 : do i=1,h_col_id_max
1356 540 : call integer_dict_define(history_column_names_dict, StrLowCase(history_column_name(i)), i, ierr)
1357 541 : if (ierr /= 0) then
1358 0 : write(*,*) 'FATAL ERROR: history_column_names_init failed in integer_dict_define'
1359 0 : return
1360 : end if
1361 : end do
1362 :
1363 : end subroutine history_column_names_init
1364 :
1365 :
1366 1 : subroutine history_column_names_shutdown()
1367 : use utils_lib, only: integer_dict_free
1368 1 : if (ASSOCIATED(history_column_names_dict)) call integer_dict_free(history_column_names_dict)
1369 1 : end subroutine history_column_names_shutdown
1370 :
1371 :
1372 60 : integer function do_get_history_id(cname)
1373 : use utils_lib
1374 : character (len=*), intent(in) :: cname
1375 : ! returns id for the log column if there is a matching name
1376 : ! returns 0 otherwise.
1377 : integer :: ierr, value
1378 60 : call integer_dict_lookup(history_column_names_dict, StrLowCase(cname), value, ierr)
1379 60 : if (ierr /= 0) value = 0
1380 60 : do_get_history_id = value
1381 60 : end function do_get_history_id
1382 :
1383 : end module star_history_def
|