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