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_profile_def
21 :
22 : use star_def
23 : use utils_lib, only: StrLowCase
24 :
25 : implicit none
26 :
27 : ! profile column options
28 :
29 : ! abundances -- names from chem_Name array in chem_def
30 : ! nuclear reaction eps - names from reaction_Name array in rates_def
31 : ! nuclear reaction category eps - names from category_name array in net_def
32 : ! items specified in another file - include 'filename'
33 : ! star_data items from the following list
34 :
35 : integer, parameter :: p_zone = 1
36 : integer, parameter :: p_k = p_zone + 1
37 : integer, parameter :: p_log_Lrad_div_Ledd = p_k + 1
38 : integer, parameter :: p_log_Lconv_div_L = p_log_Lrad_div_Ledd + 1
39 : integer, parameter :: p_log_Lrad_div_L = p_log_Lconv_div_L + 1
40 : integer, parameter :: p_log_Lconv = p_log_Lrad_div_L + 1
41 : integer, parameter :: p_log_Lrad = p_log_Lconv + 1
42 : integer, parameter :: p_lum_conv_MLT = p_log_Lrad + 1
43 : integer, parameter :: p_lum_conv = p_lum_conv_MLT + 1
44 : integer, parameter :: p_lum_conv_div_lum_Edd = p_lum_conv + 1
45 : integer, parameter :: p_lum_rad_div_L_Edd = p_lum_conv_div_lum_Edd + 1
46 : integer, parameter :: p_lum_rad_div_L = p_lum_rad_div_L_Edd + 1
47 :
48 : integer, parameter :: p_lum_conv_div_L = p_lum_rad_div_L + 1
49 : integer, parameter :: p_lum_conv_div_lum_rad = p_lum_conv_div_L + 1
50 : integer, parameter :: p_lum_plus_lum_adv = p_lum_conv_div_lum_rad + 1
51 : integer, parameter :: p_lum_adv = p_lum_plus_lum_adv + 1
52 : integer, parameter :: p_lum_rad = p_lum_adv + 1
53 : integer, parameter :: p_log_abs_lum_erg_s = p_lum_rad + 1
54 : integer, parameter :: p_lum_erg_s = p_log_abs_lum_erg_s + 1
55 : integer, parameter :: p_L = p_lum_erg_s + 1
56 : integer, parameter :: p_luminosity = p_L + 1
57 : integer, parameter :: p_log_g = p_luminosity + 1
58 : integer, parameter :: p_grav = p_log_g + 1
59 : integer, parameter :: p_r_div_g = p_grav + 1
60 : integer, parameter :: p_g_div_r = p_r_div_g + 1
61 : integer, parameter :: p_eps_nuc_plus_nuc_neu = p_g_div_r + 1
62 :
63 : integer, parameter :: p_eps_nuc_minus_non_nuc_neu = p_eps_nuc_plus_nuc_neu + 1
64 : integer, parameter :: p_net_nuclear_energy = p_eps_nuc_minus_non_nuc_neu + 1
65 : integer, parameter :: p_net_energy = p_net_nuclear_energy + 1
66 : integer, parameter :: p_logL = p_net_energy + 1
67 : integer, parameter :: p_log_Ledd = p_logL + 1
68 : integer, parameter :: p_log_L_div_Ledd = p_log_Ledd + 1
69 : integer, parameter :: p_lum_div_Ledd = p_log_L_div_Ledd + 1
70 : integer, parameter :: p_signed_log_power = p_lum_div_Ledd + 1
71 : integer, parameter :: p_v_kms = p_signed_log_power + 1
72 : integer, parameter :: p_vel_km_per_s = p_v_kms + 1
73 : integer, parameter :: p_log_abs_v = p_vel_km_per_s + 1
74 : integer, parameter :: p_superad_reduction_factor = p_log_abs_v + 1
75 : integer, parameter :: p_gradT_excess_effect = p_superad_reduction_factor + 1
76 : integer, parameter :: p_log_diff_grads = p_gradT_excess_effect + 1
77 : integer, parameter :: p_diff_grads = p_log_diff_grads + 1
78 :
79 : integer, parameter :: p_v = p_diff_grads + 1
80 : integer, parameter :: p_velocity = p_v + 1
81 : integer, parameter :: p_rmid = p_velocity + 1
82 : integer, parameter :: p_logR_cm = p_rmid + 1
83 : integer, parameter :: p_radius_km = p_logR_cm + 1
84 : integer, parameter :: p_radius_cm = p_radius_km + 1
85 : integer, parameter :: p_radius = p_radius_cm + 1
86 : integer, parameter :: p_logR = p_radius + 1
87 : integer, parameter :: p_log_q = p_logR + 1
88 : integer, parameter :: p_q = p_log_q + 1
89 : integer, parameter :: p_log_dq = p_q + 1
90 : integer, parameter :: p_dq = p_log_dq + 1
91 :
92 : integer, parameter :: p_pgas_div_p = p_dq + 1
93 : integer, parameter :: p_pgas_div_ptotal = p_pgas_div_p + 1
94 :
95 : integer, parameter :: p_prad_div_pgas = p_pgas_div_ptotal + 1
96 : integer, parameter :: p_prad_div_pgas_div_L_div_Ledd = p_prad_div_pgas + 1
97 :
98 : integer, parameter :: p_log_dmbar_m_div_r = p_prad_div_pgas_div_L_div_Ledd + 1
99 : integer, parameter :: p_dmbar_m_div_r = p_log_dmbar_m_div_r + 1
100 : integer, parameter :: p_m_div_r = p_dmbar_m_div_r + 1
101 : integer, parameter :: p_mass_grams = p_m_div_r + 1
102 : integer, parameter :: p_log_mass = p_mass_grams + 1
103 : integer, parameter :: p_mass = p_log_mass + 1
104 : integer, parameter :: p_mmid = p_mass + 1
105 :
106 : integer, parameter :: p_dm = p_mmid + 1
107 : integer, parameter :: p_dm_bar = p_dm + 1
108 :
109 : integer, parameter :: p_m_grav = p_dm_bar + 1
110 : integer, parameter :: p_mass_correction_factor = p_m_grav + 1
111 : integer, parameter :: p_m_grav_div_m_baryonic = p_mass_correction_factor + 1
112 :
113 : integer, parameter :: p_xr = p_m_grav_div_m_baryonic + 1
114 : integer, parameter :: p_xr_cm = p_xr + 1
115 : integer, parameter :: p_xr_div_R = p_xr_cm + 1
116 : integer, parameter :: p_log_xr = p_xr_div_R + 1
117 : integer, parameter :: p_log_xr_cm = p_log_xr + 1
118 : integer, parameter :: p_log_xr_div_R = p_log_xr_cm + 1
119 :
120 : integer, parameter :: p_xm = p_log_xr_div_R + 1
121 : integer, parameter :: p_xq = p_xm + 1
122 : integer, parameter :: p_logxq = p_xq + 1
123 : integer, parameter :: p_logxm = p_logxq + 1
124 :
125 : integer, parameter :: p_log_radial_depth = p_logxm + 1
126 : integer, parameter :: p_log_column_depth = p_log_radial_depth + 1
127 : integer, parameter :: p_dRstar_div_dr =p_log_column_depth + 1
128 : integer, parameter :: p_dr_div_R =p_dRstar_div_dr + 1
129 :
130 : integer, parameter :: p_log_dr_div_R = p_dr_div_R + 1
131 : integer, parameter :: p_r_div_R = p_log_dr_div_R + 1
132 : integer, parameter :: p_log_dr = p_r_div_R + 1
133 : integer, parameter :: p_log_dr_div_rmid = p_log_dr + 1
134 : integer, parameter :: p_dr_div_rmid = p_log_dr_div_rmid + 1
135 : integer, parameter :: p_dlogR = p_dr_div_rmid + 1
136 :
137 : integer, parameter :: p_cell_internal_energy_fraction_start = p_dlogR + 1
138 : integer, parameter :: p_cell_internal_energy_fraction = p_cell_internal_energy_fraction_start + 1
139 :
140 : integer, parameter :: p_log_rel_E_err = p_cell_internal_energy_fraction + 1
141 : integer, parameter :: p_ergs_error_integral = p_log_rel_E_err + 1
142 : integer, parameter :: p_ergs_rel_error_integral = p_ergs_error_integral + 1
143 : integer, parameter :: p_ergs_error = p_ergs_rel_error_integral + 1
144 :
145 : integer, parameter :: p_t_rad = p_ergs_error + 1
146 : integer, parameter :: p_log_t_rad = p_t_rad + 1
147 : integer, parameter :: p_log_dt_cs_div_dr = p_log_t_rad + 1
148 : integer, parameter :: p_dt_cs_div_dr = p_log_dt_cs_div_dr + 1
149 : integer, parameter :: p_dr_div_cs = p_dt_cs_div_dr + 1
150 : integer, parameter :: p_log_dr_div_cs = p_dr_div_cs + 1
151 : integer, parameter :: p_dr_div_cs_yr = p_log_dr_div_cs + 1
152 : integer, parameter :: p_log_dr_div_cs_yr = p_dr_div_cs_yr + 1
153 :
154 : integer, parameter :: p_cell_collapse_time = p_log_dr_div_cs_yr + 1
155 : integer, parameter :: p_log_cell_collapse_time = p_cell_collapse_time + 1
156 :
157 : integer, parameter :: p_log_acoustic_depth = p_log_cell_collapse_time + 1
158 : integer, parameter :: p_log_acoustic_radius = p_log_acoustic_depth + 1
159 : integer, parameter :: p_acoustic_depth = p_log_acoustic_radius + 1
160 : integer, parameter :: p_acoustic_radius = p_acoustic_depth + 1
161 : integer, parameter :: p_acoustic_r_div_R_phot = p_acoustic_radius + 1
162 :
163 : integer, parameter :: p_x = p_acoustic_r_div_R_phot + 1
164 : integer, parameter :: p_log_x = p_x + 1
165 : integer, parameter :: p_y = p_log_x + 1
166 : integer, parameter :: p_log_y = p_y + 1
167 : integer, parameter :: p_z = p_log_y + 1
168 : integer, parameter :: p_log_z = p_z + 1
169 :
170 : integer, parameter :: p_compression_gradient = p_log_z + 1
171 : integer, parameter :: p_logdq = p_compression_gradient + 1
172 : integer, parameter :: p_dq_ratio = p_logdq + 1
173 : integer, parameter :: p_tau_eff = p_dq_ratio + 1
174 : integer, parameter :: p_tau_eff_div_tau = p_tau_eff + 1
175 : integer, parameter :: p_xtau = p_tau_eff_div_tau + 1
176 : integer, parameter :: p_tau = p_xtau + 1
177 : integer, parameter :: p_kap_frac_lowT = p_tau + 1
178 : integer, parameter :: p_kap_frac_highT = p_kap_frac_lowT + 1
179 : integer, parameter :: p_kap_frac_Type2 = p_kap_frac_highT + 1
180 : integer, parameter :: p_kap_frac_Compton = p_kap_frac_Type2 + 1
181 : integer, parameter :: p_kap_frac_op_mono = p_kap_frac_Compton + 1
182 : integer, parameter :: p_extra_opacity_factor = p_kap_frac_op_mono + 1
183 : integer, parameter :: p_log_kap_times_factor = p_extra_opacity_factor + 1
184 : integer, parameter :: p_log_kap = p_log_kap_times_factor + 1
185 : integer, parameter :: p_log_opacity = p_log_kap + 1
186 : integer, parameter :: p_energy = p_log_opacity + 1
187 : integer, parameter :: p_logM = p_energy + 1
188 : integer, parameter :: p_logtau_sub_xlogtau = p_logM + 1
189 : integer, parameter :: p_xlogtau = p_logtau_sub_xlogtau + 1
190 : integer, parameter :: p_logtau = p_xlogtau + 1
191 : integer, parameter :: p_temperature = p_logtau + 1
192 : integer, parameter :: p_logT_face = p_temperature + 1
193 : integer, parameter :: p_logT_bb = p_logT_face + 1
194 : integer, parameter :: p_logT_face_div_logT_bb = p_logT_bb + 1
195 : integer, parameter :: p_logT = p_logT_face_div_logT_bb + 1
196 : integer, parameter :: p_density = p_logT + 1
197 : integer, parameter :: p_rho = p_density + 1
198 : integer, parameter :: p_logRho = p_rho + 1
199 : integer, parameter :: p_pgas = p_logRho+ 1
200 : integer, parameter :: p_logPgas = p_pgas + 1
201 : integer, parameter :: p_prad = p_logPgas + 1
202 : integer, parameter :: p_pressure = p_prad + 1
203 : integer, parameter :: p_logP = p_pressure + 1
204 : integer, parameter :: p_logE = p_logP + 1
205 : integer, parameter :: p_grada = p_logE + 1
206 : integer, parameter :: p_dE_dRho = p_grada + 1
207 : integer, parameter :: p_Cv = p_dE_dRho + 1
208 : integer, parameter :: p_Cp = p_Cv + 1
209 : integer, parameter :: p_thermal_time_to_surface = p_Cp + 1
210 : integer, parameter :: p_log_thermal_time_to_surface = p_thermal_time_to_surface + 1
211 : integer, parameter :: p_log_CpT = p_log_thermal_time_to_surface + 1
212 : integer, parameter :: p_log_CpT_absMdot_div_L = p_log_CpT + 1
213 : integer, parameter :: p_logS = p_log_CpT_absMdot_div_L + 1
214 : integer, parameter :: p_logS_per_baryon = p_logS + 1
215 : integer, parameter :: p_gamma1 = p_logS_per_baryon + 1
216 : integer, parameter :: p_gamma3 = p_gamma1 + 1
217 : integer, parameter :: p_eta = p_gamma3 + 1
218 : integer, parameter :: p_gam = p_eta + 1
219 : integer, parameter :: p_mu = p_gam + 1
220 :
221 : integer, parameter :: p_eos_frac_OPAL_SCVH = p_mu + 1
222 : integer, parameter :: p_eos_frac_HELM = p_eos_frac_OPAL_SCVH + 1
223 : integer, parameter :: p_eos_frac_Skye = p_eos_frac_HELM + 1
224 : integer, parameter :: p_eos_frac_PC = p_eos_frac_Skye + 1
225 : integer, parameter :: p_eos_frac_FreeEOS = p_eos_frac_PC + 1
226 : integer, parameter :: p_eos_frac_CMS = p_eos_frac_FreeEOS + 1
227 : integer, parameter :: p_eos_frac_ideal = p_eos_frac_CMS + 1
228 :
229 : integer, parameter :: p_log_rho_times_r3 = p_eos_frac_ideal + 1
230 : integer, parameter :: p_rho_times_r3 = p_log_rho_times_r3 + 1
231 : integer, parameter :: p_v_times_t_div_r = p_rho_times_r3 + 1
232 : integer, parameter :: p_v_div_r = p_v_times_t_div_r + 1
233 :
234 : integer, parameter :: p_log_c_div_tau = p_v_div_r + 1
235 : integer, parameter :: p_log_v_escape = p_log_c_div_tau + 1
236 : integer, parameter :: p_v_div_vesc = p_log_v_escape + 1
237 : integer, parameter :: p_v_div_v_escape = p_v_div_vesc + 1
238 : integer, parameter :: p_v_div_cs = p_v_div_v_escape + 1
239 : integer, parameter :: p_v_div_csound = p_v_div_cs + 1
240 : integer, parameter :: p_csound_face = p_v_div_csound + 1
241 : integer, parameter :: p_log_csound = p_csound_face + 1
242 : integer, parameter :: p_csound = p_log_csound + 1
243 : integer, parameter :: p_scale_height = p_csound + 1
244 : integer, parameter :: p_omega = p_scale_height + 1
245 :
246 : integer, parameter :: p_log_omega = p_omega + 1
247 : integer, parameter :: p_log_j_rot = p_log_omega + 1
248 :
249 : integer, parameter :: p_log_J_inside = p_log_j_rot + 1
250 : integer, parameter :: p_log_J_div_M53 = p_log_J_inside + 1
251 : integer, parameter :: p_log_abs_dlnR_domega = p_log_J_div_M53 + 1
252 : integer, parameter :: p_log_abs_shear = p_log_abs_dlnR_domega + 1
253 : integer, parameter :: p_shear = p_log_abs_shear + 1
254 : integer, parameter :: p_i_rot = p_shear + 1
255 : integer, parameter :: p_j_rot = p_i_rot + 1
256 : integer, parameter :: p_v_rot = p_j_rot + 1
257 : integer, parameter :: p_fp_rot = p_v_rot + 1
258 :
259 :
260 : integer, parameter :: p_ft_rot = p_fp_rot + 1
261 : integer, parameter :: p_ft_rot_div_fp_rot = p_ft_rot + 1
262 : integer, parameter :: p_w_div_w_crit_roche = p_ft_rot_div_fp_rot + 1
263 : integer, parameter :: p_w_div_w_crit_roche2 = p_w_div_w_crit_roche + 1
264 : integer, parameter :: p_log_am_nu_rot = p_w_div_w_crit_roche2 + 1
265 : integer, parameter :: p_log_am_nu_non_rot = p_log_am_nu_rot + 1
266 : integer, parameter :: p_log_am_nu = p_log_am_nu_non_rot + 1
267 :
268 : integer, parameter :: p_eps_phase_separation = p_log_am_nu + 1
269 : integer, parameter :: p_eps_WD_sedimentation = p_eps_phase_separation + 1
270 : integer, parameter :: p_log_eps_WD_sedimentation = p_eps_WD_sedimentation + 1
271 :
272 : integer, parameter :: p_eps_diffusion = p_log_eps_WD_sedimentation + 1
273 : integer, parameter :: p_log_eps_diffusion = p_eps_diffusion + 1
274 :
275 : integer, parameter :: p_log_e_field = p_log_eps_diffusion + 1
276 : integer, parameter :: p_e_field = p_log_e_field + 1
277 : integer, parameter :: p_log_g_field_element_diffusion = p_e_field + 1
278 : integer, parameter :: p_g_field_element_diffusion = p_log_g_field_element_diffusion + 1
279 :
280 : integer, parameter :: p_log_eE_div_mg_element_diffusion = p_g_field_element_diffusion + 1
281 : integer, parameter :: p_eE_div_mg_element_diffusion = p_log_eE_div_mg_element_diffusion + 1
282 :
283 : integer, parameter :: p_r_polar = p_eE_div_mg_element_diffusion + 1
284 : integer, parameter :: p_log_r_polar = p_r_polar + 1
285 : integer, parameter :: p_r_equatorial = p_log_r_polar + 1
286 : integer, parameter :: p_log_r_equatorial = p_r_equatorial + 1
287 : integer, parameter :: p_r_e_div_r_p = p_log_r_equatorial + 1
288 :
289 : integer, parameter :: p_omega_crit = p_r_e_div_r_p + 1
290 : integer, parameter :: p_omega_div_omega_crit = p_omega_crit + 1
291 :
292 : integer, parameter :: p_am_log_sig = p_omega_div_omega_crit + 1
293 : integer, parameter :: p_am_log_sig_omega = p_am_log_sig + 1
294 : integer, parameter :: p_am_log_sig_j = p_am_log_sig_omega + 1
295 :
296 : integer, parameter :: p_am_log_nu_omega = p_am_log_sig_j + 1
297 : integer, parameter :: p_am_log_nu_j = p_am_log_nu_omega + 1
298 : integer, parameter :: p_am_log_nu_rot = p_am_log_nu_j + 1
299 : integer, parameter :: p_am_log_nu_non_rot = p_am_log_nu_rot + 1
300 :
301 : integer, parameter :: p_richardson_number = p_am_log_nu_non_rot + 1
302 : integer, parameter :: p_am_domega_dlnR = p_richardson_number + 1
303 : integer, parameter :: p_am_log_D_visc = p_am_domega_dlnR + 1
304 : integer, parameter :: p_am_log_D_DSI = p_am_log_D_visc + 1
305 : integer, parameter :: p_am_log_D_SH = p_am_log_D_DSI + 1
306 : integer, parameter :: p_am_log_D_SSI = p_am_log_D_SH + 1
307 : integer, parameter :: p_am_log_D_ES = p_am_log_D_SSI + 1
308 : integer, parameter :: p_am_log_D_GSF = p_am_log_D_ES + 1
309 : integer, parameter :: p_am_log_D_ST = p_am_log_D_GSF + 1
310 : integer, parameter :: p_am_log_nu_ST = p_am_log_D_ST + 1
311 :
312 : integer, parameter :: p_dynamo_log_B_r = p_am_log_nu_ST + 1
313 : integer, parameter :: p_dynamo_log_B_phi = p_dynamo_log_B_r + 1
314 : integer, parameter :: p_grada_face = p_dynamo_log_B_phi + 1
315 :
316 : integer, parameter :: p_gradr_div_grada = p_grada_face + 1
317 : integer, parameter :: p_gradr_sub_grada = p_gradr_div_grada + 1
318 : integer, parameter :: p_entropy = p_gradr_sub_grada + 1
319 : integer, parameter :: p_free_e = p_entropy + 1
320 : integer, parameter :: p_logfree_e = p_free_e + 1
321 : integer, parameter :: p_chiRho = p_logfree_e + 1
322 : integer, parameter :: p_chiT = p_chiRho + 1
323 : integer, parameter :: p_chiRho_for_partials = p_chiT + 1
324 : integer, parameter :: p_chiT_for_partials = p_chiRho_for_partials + 1
325 : integer, parameter :: p_rel_diff_chiRho_for_partials = p_chiT_for_partials + 1
326 : integer, parameter :: p_rel_diff_chiT_for_partials = p_rel_diff_chiRho_for_partials + 1
327 : integer, parameter :: p_QQ = p_rel_diff_chiT_for_partials + 1
328 :
329 : integer, parameter :: p_eos_phase = p_QQ + 1
330 : integer, parameter :: p_latent_ddlnT = p_eos_phase + 1
331 : integer, parameter :: p_latent_ddlnRho = p_latent_ddlnT + 1
332 :
333 : integer, parameter :: p_x_mass_fraction_H = p_latent_ddlnRho + 1
334 : integer, parameter :: p_y_mass_fraction_He = p_x_mass_fraction_H + 1
335 : integer, parameter :: p_z_mass_fraction_metals = p_y_mass_fraction_He + 1
336 :
337 : integer, parameter :: p_abar = p_z_mass_fraction_metals + 1
338 : integer, parameter :: p_zbar = p_abar + 1
339 : integer, parameter :: p_z2bar = p_zbar + 1
340 : integer, parameter :: p_ye = p_z2bar + 1
341 :
342 : integer, parameter :: p_dkap_dlnrho_face = p_ye + 1
343 : integer, parameter :: p_dkap_dlnT_face = p_dkap_dlnrho_face + 1
344 : integer, parameter :: p_opacity = p_dkap_dlnt_face + 1
345 :
346 : integer, parameter :: p_deps_dlnd_face = p_opacity + 1
347 : integer, parameter :: p_deps_dlnT_face = p_deps_dlnd_face + 1
348 : integer, parameter :: p_d_epsnuc_dlnd = p_deps_dlnT_face + 1
349 : integer, parameter :: p_d_lnepsnuc_dlnd = p_d_epsnuc_dlnd + 1
350 : integer, parameter :: p_d_lnepsnuc_dlnT = p_d_lnepsnuc_dlnd + 1
351 : integer, parameter :: p_d_epsnuc_dlnT = p_d_lnepsnuc_dlnT + 1
352 : integer, parameter :: p_eps_nuc_start = p_d_epsnuc_dlnT + 1
353 : integer, parameter :: p_signed_log_eps_nuc = p_eps_nuc_start + 1
354 :
355 :
356 : integer, parameter :: p_log_abs_eps_nuc = p_signed_log_eps_nuc + 1
357 : integer, parameter :: p_eps_nuc = p_log_abs_eps_nuc + 1
358 :
359 : integer, parameter :: p_eps_nuc_neu_total = p_eps_nuc + 1
360 : integer, parameter :: p_non_nuc_neu = p_eps_nuc_neu_total + 1
361 :
362 : integer, parameter :: p_nonnucneu_plas = p_non_nuc_neu + 1
363 : integer, parameter :: p_nonnucneu_brem = p_nonnucneu_plas + 1
364 : integer, parameter :: p_nonnucneu_phot = p_nonnucneu_brem + 1
365 : integer, parameter :: p_nonnucneu_pair = p_nonnucneu_phot + 1
366 : integer, parameter :: p_nonnucneu_reco = p_nonnucneu_pair + 1
367 : integer, parameter :: p_log_irradiation_heat = p_nonnucneu_reco + 1
368 : integer, parameter :: p_alpha_mlt = p_log_irradiation_heat + 1
369 : integer, parameter :: p_cgrav_factor = p_alpha_mlt + 1
370 : integer, parameter :: p_log_extra_L = p_cgrav_factor + 1
371 : integer, parameter :: p_extra_L = p_log_extra_L + 1
372 : integer, parameter :: p_extra_jdot = p_extra_L + 1
373 : integer, parameter :: p_extra_omegadot = p_extra_jdot + 1
374 : integer, parameter :: p_extra_grav = p_extra_omegadot + 1
375 : integer, parameter :: p_extra_heat = p_extra_grav + 1
376 : integer, parameter :: p_div_v = p_extra_heat + 1
377 : integer, parameter :: p_d_v_div_r_dm = p_div_v + 1
378 : integer, parameter :: p_d_v_div_r_dr = p_d_v_div_r_dm + 1
379 :
380 : integer, parameter :: p_dvdt_grav = p_d_v_div_r_dr + 1
381 : integer, parameter :: p_dvdt_dPdm = p_dvdt_grav + 1
382 : integer, parameter :: p_du = p_dvdt_dPdm + 1
383 : integer, parameter :: p_P_face = p_du + 1
384 :
385 : integer, parameter :: p_log_P_face = p_P_face + 1
386 :
387 : integer, parameter :: p_dlnP_dlnR = p_log_P_face + 1
388 : integer, parameter :: p_dlnRho_dlnR = p_dlnP_dlnR + 1
389 :
390 : integer, parameter :: p_gradP_div_rho = p_dlnRho_dlnR + 1
391 : integer, parameter :: p_dPdr_div_grav = p_gradP_div_rho + 1
392 : integer, parameter :: p_env_eps_grav = p_dPdr_div_grav + 1
393 :
394 : integer, parameter :: p_log_abs_eps_grav_dm_div_L = p_env_eps_grav + 1
395 : integer, parameter :: p_eps_grav_composition_term = p_log_abs_eps_grav_dm_div_L + 1
396 :
397 : integer, parameter :: p_eps_grav_plus_eps_mdot = p_eps_grav_composition_term + 1
398 : integer, parameter :: p_ergs_eps_grav_plus_eps_mdot = p_eps_grav_plus_eps_mdot + 1
399 :
400 : integer, parameter :: p_ergs_mdot = p_ergs_eps_grav_plus_eps_mdot + 1
401 : integer, parameter :: p_eps_mdot = p_ergs_mdot + 1
402 :
403 : integer, parameter :: p_dm_eps_grav = p_eps_mdot + 1
404 :
405 : integer, parameter :: p_log_xm_div_delta_m = p_dm_eps_grav + 1
406 : integer, parameter :: p_xm_div_delta_m = p_log_xm_div_delta_m + 1
407 : integer, parameter :: p_eps_grav = p_xm_div_delta_m + 1
408 : integer, parameter :: p_signed_log_eps_grav = p_eps_grav + 1
409 : integer, parameter :: p_log_conv_L_div_L = p_signed_log_eps_grav + 1
410 : integer, parameter :: p_conv_L_div_L = p_log_conv_L_div_L + 1
411 : integer, parameter :: p_mlt_Zeta = p_conv_L_div_L + 1
412 : integer, parameter :: p_mlt_Gamma = p_mlt_Zeta + 1
413 : integer, parameter :: p_mlt_mixing_length = p_mlt_Gamma + 1
414 : integer, parameter :: p_mlt_Pturb = p_mlt_mixing_length + 1
415 : integer, parameter :: p_mlt_mixing_type = p_mlt_Pturb + 1
416 :
417 : integer, parameter :: p_grada_sub_gradT = p_mlt_mixing_type + 1
418 : integer, parameter :: p_gradT_sub_a = p_grada_sub_gradT + 1
419 : integer, parameter :: p_gradT_div_grada = p_gradT_sub_a + 1
420 :
421 : integer, parameter :: p_gradT_rel_err = p_gradT_div_grada + 1
422 : integer, parameter :: p_gradr_sub_gradT = p_gradT_rel_err + 1
423 : integer, parameter :: p_gradT_sub_gradr = p_gradr_sub_gradT + 1
424 : integer, parameter :: p_gradT_div_gradr = p_gradT_sub_gradr + 1
425 : integer, parameter :: p_log_gradT_div_gradr = p_gradT_div_gradr + 1
426 :
427 : integer, parameter :: p_log_mlt_Gamma = p_log_gradT_div_gradr + 1
428 : integer, parameter :: p_log_mlt_vc = p_log_mlt_Gamma + 1
429 : integer, parameter :: p_conv_vel_div_mlt_vc = p_log_mlt_vc + 1
430 : integer, parameter :: p_mlt_vc = p_conv_vel_div_mlt_vc + 1
431 : integer, parameter :: p_mlt_D = p_mlt_vc + 1
432 : integer, parameter :: p_mlt_gradT = p_mlt_D + 1
433 : integer, parameter :: p_mlt_log_abs_Y = p_mlt_gradT + 1
434 : integer, parameter :: p_tdc_num_iters = p_mlt_log_abs_Y + 1
435 : integer, parameter :: p_mlt_Y_face = p_tdc_num_iters + 1
436 : integer, parameter :: p_dvc_dt_TDC_div_g = p_mlt_Y_face + 1
437 :
438 : integer, parameter :: p_delta_r = p_dvc_dt_TDC_div_g + 1
439 : integer, parameter :: p_delta_L = p_delta_r + 1
440 : integer, parameter :: p_delta_cell_vol = p_delta_L + 1
441 : integer, parameter :: p_delta_entropy = p_delta_cell_vol + 1
442 : integer, parameter :: p_delta_T = p_delta_entropy + 1
443 : integer, parameter :: p_delta_rho = p_delta_T + 1
444 : integer, parameter :: p_delta_eps_nuc = p_delta_rho + 1
445 : integer, parameter :: p_delta_mu = p_delta_eps_nuc + 1
446 : integer, parameter :: p_log_D_conv = p_delta_mu + 1
447 :
448 : integer, parameter :: p_log_D_leftover = p_log_D_conv + 1
449 : integer, parameter :: p_log_D_semi = p_log_D_leftover + 1
450 : integer, parameter :: p_log_D_anon = p_log_D_semi + 1
451 : integer, parameter :: p_log_D_ovr = p_log_D_anon + 1
452 : integer, parameter :: p_log_D_thrm = p_log_D_ovr + 1
453 : integer, parameter :: p_log_D_rayleigh_taylor = p_log_D_thrm + 1
454 : integer, parameter :: p_log_D_minimum = p_log_D_rayleigh_taylor + 1
455 : integer, parameter :: p_log_D_omega = p_log_D_minimum + 1
456 :
457 : integer, parameter :: p_log_D_mix_rotation = p_log_D_omega + 1
458 : integer, parameter :: p_log_D_mix_non_rotation = p_log_D_mix_rotation + 1
459 : integer, parameter :: p_log_D_mix = p_log_D_mix_non_rotation + 1
460 : integer, parameter :: p_conv_vel = p_log_D_mix + 1
461 : integer, parameter :: p_dt_times_conv_vel_div_mixing_length = p_conv_vel + 1
462 : integer, parameter :: p_log_dt_times_conv_vel_div_mixing_length = p_dt_times_conv_vel_div_mixing_length + 1
463 :
464 : integer, parameter :: p_log_lambda_RTI_div_Hrho = p_log_dt_times_conv_vel_div_mixing_length + 1
465 : integer, parameter :: p_lambda_RTI = p_log_lambda_RTI_div_Hrho + 1
466 : integer, parameter :: p_dPdr_info = p_lambda_RTI + 1
467 : integer, parameter :: p_dRhodr_info = p_dPdr_info + 1
468 :
469 : integer, parameter :: p_source_plus_alpha_RTI = p_dRhodr_info + 1
470 : integer, parameter :: p_log_source_RTI = p_source_plus_alpha_RTI + 1
471 : integer, parameter :: p_log_source_plus_alpha_RTI = p_log_source_RTI + 1
472 : integer, parameter :: p_source_minus_alpha_RTI = p_log_source_plus_alpha_RTI + 1
473 : integer, parameter :: p_log_source_minus_alpha_RTI = p_source_minus_alpha_RTI + 1
474 :
475 : integer, parameter :: p_dudt_RTI = p_log_source_minus_alpha_RTI + 1
476 : integer, parameter :: p_dedt_RTI = p_dudt_RTI + 1
477 : integer, parameter :: p_eta_RTI = p_dedt_RTI + 1
478 : integer, parameter :: p_log_eta_RTI = p_eta_RTI + 1
479 :
480 : integer, parameter :: p_boost_for_eta_RTI = p_log_eta_RTI + 1
481 : integer, parameter :: p_log_boost_for_eta_RTI = p_boost_for_eta_RTI + 1
482 :
483 : integer, parameter :: p_alpha_RTI = p_log_boost_for_eta_RTI + 1
484 : integer, parameter :: p_log_alpha_RTI = p_alpha_RTI + 1
485 : integer, parameter :: p_log_etamid_RTI = p_log_alpha_RTI + 1
486 : integer, parameter :: p_log_sig_RTI = p_log_etamid_RTI + 1
487 : integer, parameter :: p_log_sigmid_RTI = p_log_sig_RTI + 1
488 :
489 : integer, parameter :: p_burn_avg_epsnuc = p_log_sigmid_RTI + 1
490 : integer, parameter :: p_log_burn_avg_epsnuc = p_burn_avg_epsnuc + 1
491 : integer, parameter :: p_burn_num_iters = p_log_burn_avg_epsnuc + 1
492 :
493 : integer, parameter :: p_log_sig_raw_mix = p_burn_num_iters + 1
494 : integer, parameter :: p_log_sig_mix = p_log_sig_raw_mix + 1
495 : integer, parameter :: p_log_conv_vel = p_log_sig_mix + 1
496 : integer, parameter :: p_conv_vel_div_L_vel = p_log_conv_vel + 1
497 : integer, parameter :: p_conv_vel_div_csound = p_conv_vel_div_L_vel + 1
498 : integer, parameter :: p_mix_type = p_conv_vel_div_csound + 1
499 : integer, parameter :: p_mixing_type = p_mix_type + 1
500 :
501 : integer, parameter :: p_log_mlt_D_mix = p_mixing_type + 1
502 : integer, parameter :: p_log_Cp_T_div_t_sound = p_log_mlt_D_mix + 1
503 : integer, parameter :: p_log_t_thermal = p_log_Cp_T_div_t_sound + 1
504 : integer, parameter :: p_log_t_sound = p_log_t_thermal + 1
505 : integer, parameter :: p_pressure_scale_height_cm = p_log_t_sound + 1
506 : integer, parameter :: p_pressure_scale_height = p_pressure_scale_height_cm + 1
507 :
508 : integer, parameter :: p_gradT_sub_grada = p_pressure_scale_height + 1
509 : integer, parameter :: p_gradT = p_gradT_sub_grada + 1
510 : integer, parameter :: p_gradr = p_gradT + 1
511 : integer, parameter :: p_cno_div_z = p_gradr + 1
512 :
513 : integer, parameter :: p_dE = p_cno_div_z + 1
514 : integer, parameter :: p_dr = p_dE + 1
515 : integer, parameter :: p_dv = p_dr + 1
516 :
517 : integer, parameter :: p_dr_ratio = p_dv + 1
518 : integer, parameter :: p_dt_dv_div_dr = p_dr_ratio + 1
519 :
520 : integer, parameter :: p_dlog_h1_dlogP = p_dt_dv_div_dr + 1
521 : integer, parameter :: p_dlog_he3_dlogP = p_dlog_h1_dlogP + 1
522 : integer, parameter :: p_dlog_he4_dlogP = p_dlog_he3_dlogP + 1
523 : integer, parameter :: p_dlog_c12_dlogP = p_dlog_he4_dlogP + 1
524 : integer, parameter :: p_dlog_c13_dlogP = p_dlog_c12_dlogP + 1
525 : integer, parameter :: p_dlog_n14_dlogP = p_dlog_c13_dlogP + 1
526 : integer, parameter :: p_dlog_o16_dlogP = p_dlog_n14_dlogP + 1
527 : integer, parameter :: p_dlog_ne20_dlogP = p_dlog_o16_dlogP + 1
528 : integer, parameter :: p_dlog_mg24_dlogP = p_dlog_ne20_dlogP + 1
529 : integer, parameter :: p_dlog_si28_dlogP = p_dlog_mg24_dlogP + 1
530 :
531 : integer, parameter :: p_dlog_pp_dlogP = p_dlog_si28_dlogP + 1
532 : integer, parameter :: p_dlog_cno_dlogP = p_dlog_pp_dlogP + 1
533 : integer, parameter :: p_dlog_3alf_dlogP = p_dlog_cno_dlogP + 1
534 :
535 : integer, parameter :: p_dlog_burn_c_dlogP = p_dlog_3alf_dlogP + 1
536 : integer, parameter :: p_dlog_burn_n_dlogP = p_dlog_burn_c_dlogP + 1
537 : integer, parameter :: p_dlog_burn_o_dlogP = p_dlog_burn_n_dlogP + 1
538 :
539 : integer, parameter :: p_dlog_burn_ne_dlogP = p_dlog_burn_o_dlogP + 1
540 : integer, parameter :: p_dlog_burn_na_dlogP = p_dlog_burn_ne_dlogP + 1
541 : integer, parameter :: p_dlog_burn_mg_dlogP = p_dlog_burn_na_dlogP + 1
542 :
543 : integer, parameter :: p_dlog_cc_dlogP = p_dlog_burn_mg_dlogP + 1
544 : integer, parameter :: p_dlog_co_dlogP = p_dlog_cc_dlogP + 1
545 : integer, parameter :: p_dlog_oo_dlogP = p_dlog_co_dlogP + 1
546 :
547 : integer, parameter :: p_dlog_burn_si_dlogP = p_dlog_oo_dlogP + 1
548 : integer, parameter :: p_dlog_burn_s_dlogP = p_dlog_burn_si_dlogP + 1
549 : integer, parameter :: p_dlog_burn_ar_dlogP = p_dlog_burn_s_dlogP + 1
550 : integer, parameter :: p_dlog_burn_ca_dlogP = p_dlog_burn_ar_dlogP + 1
551 : integer, parameter :: p_dlog_burn_ti_dlogP = p_dlog_burn_ca_dlogP + 1
552 : integer, parameter :: p_dlog_burn_cr_dlogP = p_dlog_burn_ti_dlogP + 1
553 : integer, parameter :: p_dlog_burn_fe_dlogP = p_dlog_burn_cr_dlogP + 1
554 :
555 : integer, parameter :: p_dlog_pnhe4_dlogP = p_dlog_burn_fe_dlogP + 1
556 : integer, parameter :: p_dlog_photo_dlogP = p_dlog_pnhe4_dlogP + 1
557 : integer, parameter :: p_dlog_other_dlogP = p_dlog_photo_dlogP + 1
558 :
559 : integer, parameter :: p_dlnX_dr = p_dlog_other_dlogP + 1
560 : integer, parameter :: p_dlnY_dr = p_dlnX_dr + 1
561 : integer, parameter :: p_dlnRho_dr = p_dlnY_dr + 1
562 :
563 : integer, parameter :: p_logR_kap = p_dlnRho_dr + 1
564 : integer, parameter :: p_logW = p_logR_kap + 1
565 : integer, parameter :: p_logV = p_logW + 1
566 : integer, parameter :: p_logQ = p_logV + 1
567 : integer, parameter :: p_log_mdot_cs = p_logQ + 1
568 : integer, parameter :: p_log_mdot_v = p_log_mdot_cs + 1
569 : integer, parameter :: p_log_L_div_CpTMdot = p_log_mdot_v + 1
570 : integer, parameter :: p_cs_at_cell_bdy = p_log_L_div_CpTMdot + 1
571 :
572 : integer, parameter :: p_total_energy_sign = p_cs_at_cell_bdy + 1
573 : integer, parameter :: p_total_energy = p_total_energy_sign + 1
574 :
575 : integer, parameter :: p_Ptrb = p_total_energy + 1
576 : integer, parameter :: p_log_Ptrb = p_Ptrb + 1
577 : integer, parameter :: p_log_w = p_log_Ptrb + 1
578 : integer, parameter :: p_w = p_log_w + 1
579 : integer, parameter :: p_etrb = p_w + 1
580 : integer, parameter :: p_log_etrb = p_etrb + 1
581 : integer, parameter :: p_Pvsc = p_log_etrb + 1
582 : integer, parameter :: p_Hp_face = p_Pvsc + 1
583 : integer, parameter :: p_Y_face = p_Hp_face + 1
584 : integer, parameter :: p_PII_face = p_Y_face + 1
585 : integer, parameter :: p_Chi = p_PII_face + 1
586 : integer, parameter :: p_COUPL = p_Chi + 1
587 : integer, parameter :: p_SOURCE = p_COUPL + 1
588 : integer, parameter :: p_DAMP = p_SOURCE + 1
589 : integer, parameter :: p_DAMPR = p_DAMP + 1
590 : integer, parameter :: p_Eq = p_DAMPR + 1
591 : integer, parameter :: p_Uq = p_Eq + 1
592 : integer, parameter :: p_Lr = p_Uq + 1
593 : integer, parameter :: p_Lr_div_L = p_Lr + 1
594 : integer, parameter :: p_Lc = p_Lr_div_L + 1
595 : integer, parameter :: p_Lc_div_L = p_Lc + 1
596 : integer, parameter :: p_Lt = p_Lc_div_L + 1
597 : integer, parameter :: p_Lt_div_L = p_Lt + 1
598 :
599 : integer, parameter :: p_rsp_log_erad = p_Lt_div_L + 1
600 : integer, parameter :: p_rsp_erad = p_rsp_log_erad + 1
601 : integer, parameter :: p_rsp_logEt = p_rsp_erad + 1
602 : integer, parameter :: p_rsp_Et = p_rsp_logEt + 1
603 : integer, parameter :: p_rsp_Pt = p_rsp_Et + 1
604 : integer, parameter :: p_rsp_Lr = p_rsp_Pt + 1
605 : integer, parameter :: p_rsp_Lc = p_rsp_Lr + 1
606 : integer, parameter :: p_rsp_Lt = p_rsp_Lc + 1
607 : integer, parameter :: p_rsp_Eq = p_rsp_Lt + 1
608 : integer, parameter :: p_rsp_Uq = p_rsp_Eq + 1
609 : integer, parameter :: p_rsp_src_snk = p_rsp_Uq + 1
610 : integer, parameter :: p_rsp_src = p_rsp_src_snk + 1
611 : integer, parameter :: p_rsp_sink = p_rsp_src + 1
612 : integer, parameter :: p_rsp_damp = p_rsp_sink + 1
613 : integer, parameter :: p_rsp_dampR = p_rsp_damp + 1
614 : integer, parameter :: p_rsp_Hp_face = p_rsp_dampR + 1
615 : integer, parameter :: p_rsp_Y_face = p_rsp_Hp_face + 1
616 : integer, parameter :: p_rsp_log_heat_exchange_timescale = p_rsp_Y_face + 1
617 : integer, parameter :: p_rsp_log_dt_div_heat_exchange_timescale = p_rsp_log_heat_exchange_timescale + 1
618 : integer, parameter :: p_rsp_heat_exchange_timescale = p_rsp_log_dt_div_heat_exchange_timescale + 1
619 : integer, parameter :: p_rsp_Pvsc = p_rsp_heat_exchange_timescale + 1
620 : integer, parameter :: p_rsp_Chi = p_rsp_Pvsc + 1
621 : integer, parameter :: p_rsp_gradT = p_rsp_Chi + 1
622 : integer, parameter :: p_rsp_Lr_div_L = p_rsp_gradT + 1
623 : integer, parameter :: p_rsp_Lc_div_L = p_rsp_Lr_div_L + 1
624 : integer, parameter :: p_rsp_Lt_div_L = p_rsp_Lc_div_L + 1
625 :
626 : integer, parameter :: p_d_u_div_rmid_start = p_rsp_Lt_div_L + 1
627 : integer, parameter :: p_d_u_div_rmid = p_d_u_div_rmid_start + 1
628 :
629 : integer, parameter :: p_cell_ie_div_star_ie = p_d_u_div_rmid + 1
630 : integer, parameter :: p_log_cell_specific_IE = p_cell_ie_div_star_ie + 1
631 : integer, parameter :: p_log_cell_ie_div_star_ie = p_log_cell_specific_IE + 1
632 :
633 : integer, parameter :: p_cell_specific_PE = p_log_cell_ie_div_star_ie + 1
634 : integer, parameter :: p_cell_specific_IE = p_cell_specific_PE + 1
635 : integer, parameter :: p_cell_specific_KE = p_cell_specific_IE + 1
636 : integer, parameter :: p_cell_IE_div_IE_plus_KE = p_cell_specific_KE + 1
637 : integer, parameter :: p_cell_KE_div_IE_plus_KE = p_cell_IE_div_IE_plus_KE + 1
638 :
639 : integer, parameter :: p_grada_sub_gradr = p_cell_KE_div_IE_plus_KE + 1
640 : integer, parameter :: p_gradL_sub_gradr = p_grada_sub_gradr + 1
641 : integer, parameter :: p_gradL = p_gradL_sub_gradr + 1
642 : integer, parameter :: p_sch_stable = p_gradL + 1
643 : integer, parameter :: p_ledoux_stable = p_sch_stable + 1
644 : integer, parameter :: p_grad_density = p_ledoux_stable + 1
645 : integer, parameter :: p_grad_temperature = p_grad_density + 1
646 :
647 : integer, parameter :: p_dominant_isoA_for_thermohaline = p_grad_temperature + 1
648 :
649 : integer, parameter :: p_dominant_isoZ_for_thermohaline = p_dominant_isoA_for_thermohaline + 1
650 : integer, parameter :: p_gradL_composition_term = p_dominant_isoZ_for_thermohaline + 1
651 : integer, parameter :: p_log_brunt_nonB = p_gradL_composition_term + 1
652 :
653 : integer, parameter :: p_log_brunt_B = p_log_brunt_nonB + 1
654 : integer, parameter :: p_brunt_nonB = p_log_brunt_B + 1
655 : integer, parameter :: p_brunt_B = p_brunt_nonB + 1
656 : integer, parameter :: p_lamb_S2 = p_brunt_B + 1
657 : integer, parameter :: p_lamb_S = p_lamb_S2 + 1
658 : integer, parameter :: p_lamb_Sl1 = p_lamb_S + 1
659 : integer, parameter :: p_lamb_Sl2 = p_lamb_Sl1 + 1
660 : integer, parameter :: p_lamb_Sl3 = p_lamb_Sl2 + 1
661 : integer, parameter :: p_lamb_Sl10 = p_lamb_Sl3 + 1
662 : integer, parameter :: p_sign_brunt_N2 = p_lamb_Sl10 + 1
663 : integer, parameter :: p_brunt_A_div_x2 = p_sign_brunt_N2 + 1
664 : integer, parameter :: p_brunt_A = p_brunt_A_div_x2 + 1
665 :
666 : integer, parameter :: p_brunt_N2 = p_brunt_A + 1
667 : integer, parameter :: p_brunt_N2_structure_term = p_brunt_N2 + 1
668 : integer, parameter :: p_brunt_N2_composition_term = p_brunt_N2_structure_term + 1
669 : integer, parameter :: p_log_brunt_N2_structure_term = p_brunt_N2_composition_term + 1
670 : integer, parameter :: p_log_brunt_N2_composition_term = p_log_brunt_N2_structure_term + 1
671 : integer, parameter :: p_log_brunt_N2_dimensionless = p_log_brunt_N2_composition_term + 1
672 : integer, parameter :: p_brunt_N2_dimensionless = p_log_brunt_N2_dimensionless + 1
673 : integer, parameter :: p_brunt_N_dimensionless = p_brunt_N2_dimensionless + 1
674 : integer, parameter :: p_brunt_N = p_brunt_N_dimensionless + 1
675 : integer, parameter :: p_brunt_frequency = p_brunt_N + 1
676 : integer, parameter :: p_log_brunt_N2 = p_brunt_frequency + 1
677 : integer, parameter :: p_log_brunt_N = p_log_brunt_N2 + 1
678 : integer, parameter :: p_brunt_N_div_r_integral = p_log_brunt_N + 1
679 : integer, parameter :: p_brunt_nu = p_brunt_N_div_r_integral + 1
680 : integer, parameter :: p_log_brunt_nu = p_brunt_nu + 1
681 : integer, parameter :: p_log_lamb_Sl1 = p_log_brunt_nu + 1
682 : integer, parameter :: p_log_lamb_Sl2 = p_log_lamb_Sl1 + 1
683 : integer, parameter :: p_log_lamb_Sl3 = p_log_lamb_Sl2 + 1
684 : integer, parameter :: p_log_lamb_Sl10 = p_log_lamb_Sl3 + 1
685 : integer, parameter :: p_brunt_N2_sub_omega2 = p_log_lamb_Sl10 + 1
686 : integer, parameter :: p_sl2_sub_omega2 = p_brunt_N2_sub_omega2 + 1
687 : integer, parameter :: p_k_r_integral = p_sl2_sub_omega2 + 1
688 :
689 : integer, parameter :: p_log_dt_div_tau_conv = p_k_r_integral + 1
690 : integer, parameter :: p_dt_div_tau_conv = p_log_dt_div_tau_conv + 1
691 : integer, parameter :: p_tau_conv = p_dt_div_tau_conv + 1
692 : integer, parameter :: p_tau_qhse = p_tau_conv + 1
693 : integer, parameter :: p_tau_epsnuc = p_tau_qhse + 1
694 : integer, parameter :: p_tau_cool = p_tau_epsnuc + 1
695 :
696 : integer, parameter :: p_max_abs_xa_corr = p_tau_cool + 1
697 : integer, parameter :: p_log_zFe = p_max_abs_xa_corr + 1
698 : integer, parameter :: p_zFe = p_log_zFe + 1
699 : integer, parameter :: p_u = p_zFe + 1
700 : integer, parameter :: p_u_face = p_u + 1
701 : integer, parameter :: p_dPdr_dRhodr_info = p_u_face + 1
702 : integer, parameter :: p_RTI_du_diffusion_kick = p_dPdr_dRhodr_info + 1
703 : integer, parameter :: p_log_du_kick_div_du = p_RTI_du_diffusion_kick + 1
704 :
705 : integer, parameter :: p_Frad_div_cUrad = p_log_du_kick_div_du + 1
706 : integer, parameter :: p_lum_rad_div_L_Edd_sub_fourPrad_div_PchiT = p_Frad_div_cUrad + 1
707 :
708 : integer, parameter :: p_flux_limit_R = p_lum_rad_div_L_Edd_sub_fourPrad_div_PchiT + 1
709 : integer, parameter :: p_flux_limit_lambda = p_flux_limit_R + 1
710 :
711 : integer, parameter :: p_col_id_max = p_flux_limit_lambda
712 :
713 : character (len=maxlen_profile_column_name) :: profile_column_name(p_col_id_max)
714 : type (integer_dict), pointer :: profile_column_names_dict
715 :
716 :
717 : contains
718 :
719 :
720 1 : subroutine profile_column_names_init(ierr)
721 : use utils_lib, only: integer_dict_define
722 : integer, intent(out) :: ierr
723 : integer :: i, cnt
724 :
725 1 : ierr = 0
726 :
727 1 : cnt = 0
728 580 : profile_column_name(:) = ''
729 :
730 1 : profile_column_name(p_zone) = 'zone'
731 1 : profile_column_name(p_k) = 'k'
732 1 : profile_column_name(p_L) = 'L'
733 1 : profile_column_name(p_luminosity) = 'luminosity'
734 1 : profile_column_name(p_lum_erg_s) = 'lum_erg_s'
735 1 : profile_column_name(p_log_abs_lum_erg_s) = 'log_abs_lum_erg_s'
736 1 : profile_column_name(p_log_Lrad_div_Ledd) = 'log_Lrad_div_Ledd'
737 1 : profile_column_name(p_log_Lrad_div_L) = 'log_Lrad_div_L'
738 1 : profile_column_name(p_lum_plus_lum_adv) = 'lum_plus_lum_adv'
739 1 : profile_column_name(p_lum_adv) = 'lum_adv'
740 1 : profile_column_name(p_lum_rad) = 'lum_rad'
741 1 : profile_column_name(p_lum_conv) = 'lum_conv'
742 1 : profile_column_name(p_lum_conv_MLT) = 'lum_conv_MLT'
743 :
744 1 : profile_column_name(p_lum_conv_div_lum_Edd) = 'lum_conv_div_lum_Edd'
745 1 : profile_column_name(p_lum_rad_div_L_Edd) = 'lum_rad_div_L_Edd'
746 : profile_column_name(p_lum_rad_div_L) = 'lum_rad_div_L'
747 1 : profile_column_name(p_lum_conv_div_L) = 'lum_conv_div_L'
748 1 : profile_column_name(p_lum_conv_div_lum_rad) = 'lum_conv_div_lum_rad'
749 1 : profile_column_name(p_log_Lrad) = 'log_Lrad'
750 1 : profile_column_name(p_log_Lconv) = 'log_Lconv'
751 1 : profile_column_name(p_log_Lconv_div_L) = 'log_Lconv_div_L'
752 1 : profile_column_name(p_lum_rad_div_L) = 'lum_rad_div_L'
753 :
754 1 : profile_column_name(p_grav) = 'grav'
755 1 : profile_column_name(p_log_g) = 'log_g'
756 1 : profile_column_name(p_r_div_g) = 'r_div_g'
757 1 : profile_column_name(p_g_div_r) = 'g_div_r'
758 1 : profile_column_name(p_net_nuclear_energy) = 'net_nuclear_energy'
759 :
760 1 : profile_column_name(p_eps_nuc_plus_nuc_neu) = 'eps_nuc_plus_nuc_neu'
761 1 : profile_column_name(p_eps_nuc_minus_non_nuc_neu) = 'eps_nuc_minus_non_nuc_neu'
762 1 : profile_column_name(p_net_energy) = 'net_energy'
763 1 : profile_column_name(p_logL) = 'logL'
764 1 : profile_column_name(p_log_Ledd) = 'log_Ledd'
765 1 : profile_column_name(p_lum_div_Ledd) = 'lum_div_Ledd'
766 1 : profile_column_name(p_log_L_div_Ledd) = 'log_L_div_Ledd'
767 1 : profile_column_name(p_signed_log_power) = 'signed_log_power'
768 1 : profile_column_name(p_log_abs_v) = 'log_abs_v'
769 1 : profile_column_name(p_log_diff_grads) = 'log_diff_grads'
770 1 : profile_column_name(p_diff_grads) = 'diff_grads'
771 1 : profile_column_name(p_gradT_excess_effect) = 'gradT_excess_effect'
772 1 : profile_column_name(p_superad_reduction_factor) = 'superad_reduction_factor'
773 :
774 1 : profile_column_name(p_v) = 'v'
775 1 : profile_column_name(p_velocity) = 'velocity'
776 1 : profile_column_name(p_v_kms) = 'v_kms'
777 1 : profile_column_name(p_vel_km_per_s) = 'vel_km_per_s'
778 1 : profile_column_name(p_radius_km) = 'radius_km'
779 1 : profile_column_name(p_radius_cm) = 'radius_cm'
780 1 : profile_column_name(p_radius) = 'radius'
781 1 : profile_column_name(p_rmid) = 'rmid'
782 1 : profile_column_name(p_logR_cm) = 'logR_cm'
783 1 : profile_column_name(p_logR) = 'logR'
784 1 : profile_column_name(p_log_q) = 'log_q'
785 1 : profile_column_name(p_q) = 'q'
786 1 : profile_column_name(p_dq) = 'dq'
787 1 : profile_column_name(p_log_dq) = 'log_dq'
788 1 : profile_column_name(p_logtau_sub_xlogtau) = 'logtau_sub_xlogtau'
789 1 : profile_column_name(p_xlogtau) = 'xlogtau'
790 1 : profile_column_name(p_logtau) = 'logtau'
791 1 : profile_column_name(p_pgas_div_p) = 'pgas_div_p'
792 1 : profile_column_name(p_pgas_div_ptotal) = 'pgas_div_ptotal'
793 :
794 1 : profile_column_name(p_prad_div_pgas) = 'prad_div_pgas'
795 1 : profile_column_name(p_prad_div_pgas_div_L_div_Ledd) = 'prad_div_pgas_div_L_div_Ledd'
796 :
797 1 : profile_column_name(p_m_div_r) = 'm_div_r'
798 1 : profile_column_name(p_dmbar_m_div_r) = 'dmbar_m_div_r'
799 1 : profile_column_name(p_log_dmbar_m_div_r) = 'log_dmbar_m_div_r'
800 :
801 1 : profile_column_name(p_log_mass) = 'log_mass'
802 1 : profile_column_name(p_mass) = 'mass'
803 1 : profile_column_name(p_mass_grams) = 'mass_grams'
804 1 : profile_column_name(p_mmid) = 'mmid'
805 :
806 1 : profile_column_name(p_dm) = 'dm'
807 1 : profile_column_name(p_dm_bar) = 'dm_bar'
808 :
809 1 : profile_column_name(p_xr) = 'xr'
810 1 : profile_column_name(p_xr_cm) = 'xr_cm'
811 1 : profile_column_name(p_xr_div_R) = 'xr_div_R'
812 1 : profile_column_name(p_log_xr) = 'log_xr'
813 1 : profile_column_name(p_log_xr_cm) = 'log_xr_cm'
814 1 : profile_column_name(p_log_xr_div_R) = 'log_xr_div_R'
815 :
816 1 : profile_column_name(p_m_grav) = 'm_grav'
817 1 : profile_column_name(p_mass_correction_factor) = 'mass_correction_factor'
818 1 : profile_column_name(p_m_grav_div_m_baryonic) = 'm_grav_div_m_baryonic'
819 :
820 1 : profile_column_name(p_log_x) = 'log_x'
821 1 : profile_column_name(p_x) = 'x'
822 1 : profile_column_name(p_log_y) = 'log_y'
823 1 : profile_column_name(p_y) = 'y'
824 1 : profile_column_name(p_log_z) = 'log_z'
825 1 : profile_column_name(p_z) = 'z'
826 :
827 1 : profile_column_name(p_xm) = 'xm'
828 1 : profile_column_name(p_xq) = 'xq'
829 1 : profile_column_name(p_logxm) = 'logxm'
830 1 : profile_column_name(p_logxq) = 'logxq'
831 1 : profile_column_name(p_logdq) = 'logdq'
832 :
833 1 : profile_column_name(p_log_radial_depth) = 'log_radial_depth'
834 1 : profile_column_name(p_log_column_depth) = 'log_column_depth'
835 1 : profile_column_name(p_dRstar_div_dr) = 'dRstar_div_dr'
836 1 : profile_column_name(p_dr_div_R) = 'dr_div_R'
837 1 : profile_column_name(p_log_dr_div_R) = 'log_dr_div_R'
838 1 : profile_column_name(p_r_div_R) = 'r_div_R'
839 1 : profile_column_name(p_dr_div_rmid) = 'dr_div_rmid'
840 1 : profile_column_name(p_log_dr_div_rmid) = 'log_dr_div_rmid'
841 1 : profile_column_name(p_log_dr) = 'log_dr'
842 1 : profile_column_name(p_dlogR) = 'dlogR'
843 :
844 1 : profile_column_name(p_cell_internal_energy_fraction_start) = 'cell_internal_energy_fraction_start'
845 1 : profile_column_name(p_cell_internal_energy_fraction) = 'cell_internal_energy_fraction'
846 1 : profile_column_name(p_ergs_error) = 'ergs_error'
847 1 : profile_column_name(p_log_rel_E_err) = 'log_rel_E_err'
848 1 : profile_column_name(p_ergs_error_integral) = 'ergs_error_integral'
849 1 : profile_column_name(p_ergs_rel_error_integral) = 'ergs_rel_error_integral'
850 :
851 1 : profile_column_name(p_t_rad) = 't_rad'
852 1 : profile_column_name(p_log_t_rad) = 'log_t_rad'
853 :
854 1 : profile_column_name(p_log_dt_cs_div_dr) = 'log_dt_cs_div_dr'
855 1 : profile_column_name(p_dt_cs_div_dr) = 'dt_cs_div_dr'
856 1 : profile_column_name(p_dr_div_cs) = 'dr_div_cs'
857 1 : profile_column_name(p_log_dr_div_cs) = 'log_dr_div_cs'
858 1 : profile_column_name(p_dr_div_cs_yr) = 'dr_div_cs_yr'
859 1 : profile_column_name(p_log_dr_div_cs_yr) = 'log_dr_div_cs_yr'
860 :
861 1 : profile_column_name(p_cell_collapse_time) = 'cell_collapse_time'
862 1 : profile_column_name(p_log_cell_collapse_time) = 'log_cell_collapse_time'
863 :
864 1 : profile_column_name(p_log_acoustic_depth) = 'log_acoustic_depth'
865 1 : profile_column_name(p_log_acoustic_radius) = 'log_acoustic_radius'
866 1 : profile_column_name(p_acoustic_depth) = 'acoustic_depth'
867 1 : profile_column_name(p_acoustic_radius) = 'acoustic_radius'
868 1 : profile_column_name(p_acoustic_r_div_R_phot) = 'acoustic_r_div_R_phot'
869 :
870 1 : profile_column_name(p_compression_gradient) = 'compression_gradient'
871 1 : profile_column_name(p_dq_ratio) = 'dq_ratio'
872 1 : profile_column_name(p_tau_eff) = 'tau_eff'
873 1 : profile_column_name(p_tau_eff_div_tau) = 'tau_eff_div_tau'
874 1 : profile_column_name(p_xtau) = 'xtau'
875 1 : profile_column_name(p_tau) = 'tau'
876 1 : profile_column_name(p_extra_opacity_factor) = 'extra_opacity_factor'
877 1 : profile_column_name(p_log_kap_times_factor) = 'log_kap_times_factor'
878 1 : profile_column_name(p_log_kap) = 'log_kap'
879 1 : profile_column_name(p_log_opacity) = 'log_opacity'
880 1 : profile_column_name(p_kap_frac_lowT) = 'kap_frac_lowT'
881 1 : profile_column_name(p_kap_frac_highT) = 'kap_frac_highT'
882 1 : profile_column_name(p_kap_frac_Type2) = 'kap_frac_Type2'
883 1 : profile_column_name(p_kap_frac_Compton) = 'kap_frac_Compton'
884 1 : profile_column_name(p_kap_frac_op_mono) = 'kap_frac_op_mono'
885 1 : profile_column_name(p_energy) = 'energy'
886 1 : profile_column_name(p_logM) = 'logM'
887 1 : profile_column_name(p_temperature) = 'temperature'
888 1 : profile_column_name(p_logT_face) = 'logT_face'
889 1 : profile_column_name(p_logT_bb) = 'logT_bb'
890 1 : profile_column_name(p_logT_face_div_logT_bb) = 'logT_face_div_logT_bb'
891 1 : profile_column_name(p_logT) = 'logT'
892 :
893 :
894 1 : profile_column_name(p_rho) = 'rho'
895 1 : profile_column_name(p_density) = 'density'
896 1 : profile_column_name(p_logRho) = 'logRho'
897 1 : profile_column_name(p_pgas) = 'pgas'
898 1 : profile_column_name(p_logPgas) = 'logPgas'
899 1 : profile_column_name(p_prad) = 'prad'
900 1 : profile_column_name(p_pressure) = 'pressure'
901 1 : profile_column_name(p_logP) = 'logP'
902 1 : profile_column_name(p_logE) = 'logE'
903 1 : profile_column_name(p_grada) = 'grada'
904 1 : profile_column_name(p_dE_dRho) = 'dE_dRho'
905 1 : profile_column_name(p_Cv) = 'cv'
906 1 : profile_column_name(p_thermal_time_to_surface) = 'thermal_time_to_surface'
907 1 : profile_column_name(p_log_thermal_time_to_surface) = 'log_thermal_time_to_surface'
908 1 : profile_column_name(p_Cp) = 'cp'
909 1 : profile_column_name(p_log_CpT) = 'log_CpT'
910 1 : profile_column_name(p_log_CpT_absMdot_div_L) = 'log_CpT_absMdot_div_L'
911 1 : profile_column_name(p_logS) = 'logS'
912 1 : profile_column_name(p_logS_per_baryon) = 'logS_per_baryon'
913 1 : profile_column_name(p_gamma1) = 'gamma1'
914 1 : profile_column_name(p_gamma3) = 'gamma3'
915 1 : profile_column_name(p_eta) = 'eta'
916 1 : profile_column_name(p_gam) = 'gam'
917 1 : profile_column_name(p_mu) = 'mu'
918 :
919 1 : profile_column_name(p_eos_frac_OPAL_SCVH) = 'eos_frac_OPAL_SCVH'
920 1 : profile_column_name(p_eos_frac_HELM) = 'eos_frac_HELM'
921 1 : profile_column_name(p_eos_frac_Skye) = 'eos_frac_Skye'
922 1 : profile_column_name(p_eos_frac_PC) = 'eos_frac_PC'
923 1 : profile_column_name(p_eos_frac_FreeEOS) = 'eos_frac_FreeEOS'
924 1 : profile_column_name(p_eos_frac_CMS) = 'eos_frac_CMS'
925 1 : profile_column_name(p_eos_frac_ideal) = 'eos_frac_ideal'
926 :
927 1 : profile_column_name(p_log_rho_times_r3) = 'log_rho_times_r3'
928 1 : profile_column_name(p_rho_times_r3) = 'rho_times_r3'
929 1 : profile_column_name(p_v_times_t_div_r) = 'v_times_t_div_r'
930 1 : profile_column_name(p_v_div_r) = 'v_div_r'
931 :
932 1 : profile_column_name(p_log_c_div_tau) = 'log_c_div_tau'
933 1 : profile_column_name(p_log_v_escape) = 'log_v_escape'
934 1 : profile_column_name(p_v_div_v_escape) = 'v_div_v_escape'
935 1 : profile_column_name(p_v_div_vesc) = 'v_div_vesc'
936 1 : profile_column_name(p_v_div_cs) = 'v_div_cs'
937 1 : profile_column_name(p_v_div_csound) = 'v_div_csound'
938 1 : profile_column_name(p_log_csound) = 'log_csound'
939 1 : profile_column_name(p_csound) = 'csound'
940 1 : profile_column_name(p_csound_face) = 'csound_face'
941 :
942 1 : profile_column_name(p_omega) = 'omega'
943 1 : profile_column_name(p_log_omega) = 'log_omega'
944 1 : profile_column_name(p_log_j_rot) = 'log_j_rot'
945 1 : profile_column_name(p_log_J_div_M53) = 'log_J_div_M53'
946 1 : profile_column_name(p_log_J_inside) = 'log_J_inside'
947 1 : profile_column_name(p_shear) = 'shear'
948 1 : profile_column_name(p_log_abs_shear) = 'log_abs_shear'
949 1 : profile_column_name(p_log_abs_dlnR_domega) = 'log_abs_dlnR_domega'
950 1 : profile_column_name(p_i_rot) = 'i_rot'
951 1 : profile_column_name(p_j_rot) = 'j_rot'
952 1 : profile_column_name(p_v_rot) = 'v_rot'
953 1 : profile_column_name(p_fp_rot) = 'fp_rot'
954 1 : profile_column_name(p_ft_rot) = 'ft_rot'
955 1 : profile_column_name(p_ft_rot_div_fp_rot) = 'ft_rot_div_fp_rot'
956 1 : profile_column_name(p_w_div_w_crit_roche) = 'w_div_w_crit_roche'
957 1 : profile_column_name(p_w_div_w_crit_roche2) = 'w_div_w_crit_roche2'
958 1 : profile_column_name(p_log_am_nu_rot) = 'log_am_nu_rot'
959 1 : profile_column_name(p_log_am_nu_non_rot) = 'log_am_nu_non_rot'
960 1 : profile_column_name(p_log_am_nu) = 'log_am_nu'
961 :
962 1 : profile_column_name(p_eps_phase_separation) = 'eps_phase_separation'
963 1 : profile_column_name(p_eps_WD_sedimentation) = 'eps_WD_sedimentation'
964 1 : profile_column_name(p_log_eps_WD_sedimentation) = 'log_eps_WD_sedimentation'
965 :
966 1 : profile_column_name(p_eps_diffusion) = 'eps_diffusion'
967 1 : profile_column_name(p_log_eps_diffusion) = 'log_eps_diffusion'
968 :
969 1 : profile_column_name(p_log_e_field) = 'log_e_field'
970 1 : profile_column_name(p_e_field) = 'e_field'
971 1 : profile_column_name(p_log_g_field_element_diffusion) = 'log_g_field_element_diffusion'
972 1 : profile_column_name(p_g_field_element_diffusion) = 'g_field_element_diffusion'
973 1 : profile_column_name(p_log_eE_div_mg_element_diffusion) = 'log_eE_div_mg_element_diffusion'
974 1 : profile_column_name(p_eE_div_mg_element_diffusion) = 'eE_div_mg_element_diffusion'
975 :
976 1 : profile_column_name(p_r_polar) = 'r_polar'
977 1 : profile_column_name(p_log_r_polar) = 'log_r_polar'
978 1 : profile_column_name(p_r_equatorial) = 'r_equatorial'
979 1 : profile_column_name(p_log_r_equatorial) = 'log_r_equatorial'
980 1 : profile_column_name(p_r_e_div_r_p) = 'r_e_div_r_p'
981 1 : profile_column_name(p_omega_crit) = 'omega_crit'
982 1 : profile_column_name(p_omega_div_omega_crit) = 'omega_div_omega_crit'
983 :
984 1 : profile_column_name(p_am_log_sig) = 'am_log_sig'
985 1 : profile_column_name(p_am_log_sig_omega) = 'am_log_sig_omega'
986 1 : profile_column_name(p_am_log_sig_j) = 'am_log_sig_j'
987 :
988 1 : profile_column_name(p_am_log_nu_omega) = 'am_log_nu_omega'
989 1 : profile_column_name(p_am_log_nu_j) = 'am_log_nu_j'
990 1 : profile_column_name(p_am_log_nu_rot) = 'am_log_nu_rot'
991 1 : profile_column_name(p_am_log_nu_non_rot) = 'am_log_nu_non_rot'
992 :
993 1 : profile_column_name(p_am_domega_dlnR) = 'am_domega_dlnR'
994 1 : profile_column_name(p_richardson_number) = 'richardson_number'
995 1 : profile_column_name(p_am_log_D_visc) = 'am_log_D_visc'
996 1 : profile_column_name(p_am_log_D_DSI) = 'am_log_D_DSI'
997 1 : profile_column_name(p_am_log_D_SH) = 'am_log_D_SH'
998 1 : profile_column_name(p_am_log_D_SSI) = 'am_log_D_SSI'
999 1 : profile_column_name(p_am_log_D_ES) = 'am_log_D_ES'
1000 1 : profile_column_name(p_am_log_D_GSF) = 'am_log_D_GSF'
1001 1 : profile_column_name(p_am_log_D_ST) = 'am_log_D_ST'
1002 1 : profile_column_name(p_am_log_nu_ST) = 'am_log_nu_ST'
1003 :
1004 1 : profile_column_name(p_dynamo_log_B_r) = 'dynamo_log_B_r'
1005 1 : profile_column_name(p_dynamo_log_B_phi) = 'dynamo_log_B_phi'
1006 :
1007 1 : profile_column_name(p_grada_face) = 'grada_face'
1008 1 : profile_column_name(p_gradr_div_grada) = 'gradr_div_grada'
1009 1 : profile_column_name(p_gradr_sub_grada) = 'gradr_sub_grada'
1010 1 : profile_column_name(p_scale_height) = 'scale_height'
1011 :
1012 1 : profile_column_name(p_entropy) = 'entropy'
1013 1 : profile_column_name(p_free_e) = 'free_e'
1014 1 : profile_column_name(p_logfree_e) = 'logfree_e'
1015 1 : profile_column_name(p_chiRho) = 'chiRho'
1016 1 : profile_column_name(p_chiT) = 'chiT'
1017 1 : profile_column_name(p_QQ) = 'QQ'
1018 :
1019 1 : profile_column_name(p_eos_phase) = 'eos_phase'
1020 1 : profile_column_name(p_latent_ddlnT) = 'latent_ddlnT'
1021 1 : profile_column_name(p_latent_ddlnRho) = 'latent_ddlnRho'
1022 :
1023 1 : profile_column_name(p_chiRho_for_partials) = 'chiRho_for_partials'
1024 1 : profile_column_name(p_chiT_for_partials) = 'chiT_for_partials'
1025 1 : profile_column_name(p_rel_diff_chiRho_for_partials) = 'rel_diff_chiRho_for_partials'
1026 1 : profile_column_name(p_rel_diff_chiT_for_partials) = 'rel_diff_chiT_for_partials'
1027 :
1028 1 : profile_column_name(p_x_mass_fraction_H) = 'x_mass_fraction_H'
1029 1 : profile_column_name(p_y_mass_fraction_He) = 'y_mass_fraction_He'
1030 1 : profile_column_name(p_z_mass_fraction_metals) = 'z_mass_fraction_metals'
1031 :
1032 1 : profile_column_name(p_abar) = 'abar'
1033 1 : profile_column_name(p_zbar) = 'zbar'
1034 1 : profile_column_name(p_z2bar) = 'z2bar'
1035 1 : profile_column_name(p_ye) = 'ye'
1036 1 : profile_column_name(p_opacity) = 'opacity'
1037 1 : profile_column_name(p_dkap_dlnrho_face) = 'dkap_dlnrho_face'
1038 1 : profile_column_name(p_dkap_dlnT_face) = 'dkap_dlnT_face'
1039 :
1040 1 : profile_column_name(p_eps_nuc_start) = 'eps_nuc_start'
1041 1 : profile_column_name(p_eps_nuc) = 'eps_nuc'
1042 1 : profile_column_name(p_signed_log_eps_nuc) = 'signed_log_eps_nuc'
1043 1 : profile_column_name(p_log_abs_eps_nuc) = 'log_abs_eps_nuc'
1044 :
1045 1 : profile_column_name(p_d_epsnuc_dlnd) = 'd_epsnuc_dlnd'
1046 1 : profile_column_name(p_d_epsnuc_dlnT) = 'd_epsnuc_dlnT'
1047 1 : profile_column_name(p_d_lnepsnuc_dlnd) = 'd_lnepsnuc_dlnd'
1048 1 : profile_column_name(p_d_lnepsnuc_dlnT) = 'd_lnepsnuc_dlnT'
1049 1 : profile_column_name(p_deps_dlnd_face) = 'deps_dlnd_face'
1050 1 : profile_column_name(p_deps_dlnT_face) = 'deps_dlnT_face'
1051 1 : profile_column_name(p_eps_nuc_neu_total) = 'eps_nuc_neu_total'
1052 :
1053 1 : profile_column_name(p_non_nuc_neu) = 'non_nuc_neu'
1054 1 : profile_column_name(p_nonnucneu_plas) = 'nonnucneu_plas'
1055 1 : profile_column_name(p_nonnucneu_brem) = 'nonnucneu_brem'
1056 1 : profile_column_name(p_nonnucneu_phot) = 'nonnucneu_phot'
1057 1 : profile_column_name(p_nonnucneu_pair) = 'nonnucneu_pair'
1058 1 : profile_column_name(p_nonnucneu_reco) = 'nonnucneu_reco'
1059 :
1060 1 : profile_column_name(p_log_irradiation_heat) = 'log_irradiation_heat'
1061 1 : profile_column_name(p_extra_L) = 'extra_L'
1062 1 : profile_column_name(p_log_extra_L) = 'log_extra_L'
1063 1 : profile_column_name(p_extra_jdot) = 'extra_jdot'
1064 1 : profile_column_name(p_extra_omegadot) = 'extra_omegadot'
1065 1 : profile_column_name(p_extra_grav) = 'extra_grav'
1066 1 : profile_column_name(p_extra_heat) = 'extra_heat'
1067 1 : profile_column_name(p_alpha_mlt) = 'alpha_mlt'
1068 1 : profile_column_name(p_cgrav_factor) = 'cgrav_factor'
1069 1 : profile_column_name(p_div_v) = 'div_v'
1070 :
1071 1 : profile_column_name(p_d_v_div_r_dm) = 'd_v_div_r_dm'
1072 1 : profile_column_name(p_d_v_div_r_dr) = 'd_v_div_r_dr'
1073 1 : profile_column_name(p_dvdt_grav) = 'dvdt_grav'
1074 1 : profile_column_name(p_dvdt_dPdm) = 'dvdt_dPdm'
1075 1 : profile_column_name(p_du) = 'du'
1076 1 : profile_column_name(p_P_face) = 'P_face'
1077 1 : profile_column_name(p_log_P_face) = 'log_P_face'
1078 :
1079 1 : profile_column_name(p_dlnP_dlnR) = 'dlnP_dlnR'
1080 1 : profile_column_name(p_dlnRho_dlnR) = 'dlnRho_dlnR'
1081 1 : profile_column_name(p_gradP_div_rho) = 'gradP_div_rho'
1082 1 : profile_column_name(p_dPdr_div_grav) = 'dPdr_div_grav'
1083 :
1084 1 : profile_column_name(p_log_abs_eps_grav_dm_div_L) = 'log_abs_eps_grav_dm_div_L'
1085 1 : profile_column_name(p_eps_grav_composition_term) = 'eps_grav_composition_term'
1086 1 : profile_column_name(p_dm_eps_grav) = 'dm_eps_grav'
1087 :
1088 1 : profile_column_name(p_eps_grav_plus_eps_mdot) = 'eps_grav_plus_eps_mdot'
1089 1 : profile_column_name(p_ergs_eps_grav_plus_eps_mdot) = 'ergs_eps_grav_plus_eps_mdot'
1090 1 : profile_column_name(p_ergs_mdot) = 'ergs_mdot'
1091 1 : profile_column_name(p_eps_mdot) = 'eps_mdot'
1092 :
1093 1 : profile_column_name(p_log_xm_div_delta_m) = 'log_xm_div_delta_m'
1094 1 : profile_column_name(p_xm_div_delta_m) = 'xm_div_delta_m'
1095 1 : profile_column_name(p_eps_grav) = 'eps_grav'
1096 1 : profile_column_name(p_env_eps_grav) = 'env_eps_grav'
1097 1 : profile_column_name(p_signed_log_eps_grav) = 'signed_log_eps_grav'
1098 1 : profile_column_name(p_mlt_mixing_length) = 'mlt_mixing_length'
1099 1 : profile_column_name(p_log_conv_L_div_L) = 'log_conv_L_div_L'
1100 1 : profile_column_name(p_conv_L_div_L) = 'conv_L_div_L'
1101 1 : profile_column_name(p_mlt_Zeta) = 'mlt_Zeta'
1102 1 : profile_column_name(p_mlt_Gamma) = 'mlt_Gamma'
1103 1 : profile_column_name(p_mlt_Pturb) = 'mlt_Pturb'
1104 1 : profile_column_name(p_mlt_mixing_type) = 'mlt_mixing_type'
1105 :
1106 1 : profile_column_name(p_grada_sub_gradT) = 'grada_sub_gradT'
1107 1 : profile_column_name(p_gradT_sub_grada) = 'gradT_sub_grada'
1108 :
1109 1 : profile_column_name(p_gradT_sub_a) = 'gradT_sub_a'
1110 1 : profile_column_name(p_gradT_div_grada) = 'gradT_div_grada'
1111 :
1112 1 : profile_column_name(p_gradT_rel_err) = 'gradT_rel_err'
1113 1 : profile_column_name(p_gradr_sub_gradT) = 'gradr_sub_gradT'
1114 1 : profile_column_name(p_gradT_sub_gradr) = 'gradT_sub_gradr'
1115 1 : profile_column_name(p_gradT_div_gradr) = 'gradT_div_gradr'
1116 1 : profile_column_name(p_log_gradT_div_gradr) = 'log_gradT_div_gradr'
1117 :
1118 1 : profile_column_name(p_log_mlt_Gamma) = 'log_mlt_Gamma'
1119 1 : profile_column_name(p_log_mlt_vc) = 'log_mlt_vc'
1120 1 : profile_column_name(p_conv_vel_div_mlt_vc) = 'conv_vel_div_mlt_vc'
1121 1 : profile_column_name(p_mlt_vc) = 'mlt_vc'
1122 1 : profile_column_name(p_mlt_D) = 'mlt_D'
1123 1 : profile_column_name(p_mlt_gradT) = 'mlt_gradT'
1124 1 : profile_column_name(p_mlt_Y_face) = 'mlt_Y_face'
1125 1 : profile_column_name(p_mlt_log_abs_Y) = 'mlt_log_abs_Y'
1126 1 : profile_column_name(p_tdc_num_iters) = 'tdc_num_iters'
1127 1 : profile_column_name(p_dvc_dt_TDC_div_g) = 'dvc_dt_TDC_div_g'
1128 :
1129 1 : profile_column_name(p_delta_r) = 'delta_r'
1130 1 : profile_column_name(p_delta_L) = 'delta_L'
1131 1 : profile_column_name(p_delta_cell_vol) = 'delta_cell_vol'
1132 1 : profile_column_name(p_delta_entropy) = 'delta_entropy'
1133 1 : profile_column_name(p_delta_T) = 'delta_T'
1134 1 : profile_column_name(p_delta_rho) = 'delta_rho'
1135 1 : profile_column_name(p_delta_eps_nuc) = 'delta_eps_nuc'
1136 1 : profile_column_name(p_delta_mu) = 'delta_mu'
1137 1 : profile_column_name(p_log_D_conv) = 'log_D_conv'
1138 1 : profile_column_name(p_log_D_leftover) = 'log_D_leftover'
1139 1 : profile_column_name(p_log_D_semi) = 'log_D_semi'
1140 1 : profile_column_name(p_log_D_ovr) = 'log_D_ovr'
1141 1 : profile_column_name(p_log_D_anon) = 'log_D_anon'
1142 1 : profile_column_name(p_log_D_thrm) = 'log_D_thrm'
1143 1 : profile_column_name(p_log_D_rayleigh_taylor) = 'log_D_rayleigh_taylor'
1144 1 : profile_column_name(p_log_D_minimum) = 'log_D_minimum'
1145 1 : profile_column_name(p_log_D_mix_non_rotation) = 'log_D_mix_non_rotation'
1146 1 : profile_column_name(p_log_D_mix_rotation) = 'log_D_mix_rotation'
1147 1 : profile_column_name(p_log_D_omega) = 'log_D_omega'
1148 :
1149 1 : profile_column_name(p_log_lambda_RTI_div_Hrho) = 'log_lambda_RTI_div_Hrho'
1150 1 : profile_column_name(p_lambda_RTI) = 'lambda_RTI'
1151 1 : profile_column_name(p_dPdr_info) = 'dPdr_info'
1152 1 : profile_column_name(p_dRhodr_info) = 'dRhodr_info'
1153 :
1154 1 : profile_column_name(p_source_plus_alpha_RTI) = 'source_plus_alpha_RTI'
1155 1 : profile_column_name(p_source_minus_alpha_RTI) = 'source_minus_alpha_RTI'
1156 1 : profile_column_name(p_log_source_RTI) = 'log_source_RTI'
1157 1 : profile_column_name(p_log_source_plus_alpha_RTI) = 'log_source_plus_alpha_RTI'
1158 1 : profile_column_name(p_log_source_minus_alpha_RTI) = 'log_source_minus_alpha_RTI'
1159 :
1160 1 : profile_column_name(p_dudt_RTI) = 'dudt_RTI'
1161 1 : profile_column_name(p_dedt_RTI) = 'dedt_RTI'
1162 :
1163 1 : profile_column_name(p_eta_RTI) = 'eta_RTI'
1164 1 : profile_column_name(p_log_eta_RTI) = 'log_eta_RTI'
1165 1 : profile_column_name(p_boost_for_eta_RTI) = 'boost_for_eta_RTI'
1166 1 : profile_column_name(p_log_boost_for_eta_RTI) = 'log_boost_for_eta_RTI'
1167 :
1168 1 : profile_column_name(p_alpha_RTI) = 'alpha_RTI'
1169 1 : profile_column_name(p_log_alpha_RTI) = 'log_alpha_RTI'
1170 1 : profile_column_name(p_log_etamid_RTI) = 'log_etamid_RTI'
1171 1 : profile_column_name(p_log_sig_RTI) = 'log_sig_RTI'
1172 1 : profile_column_name(p_log_sigmid_RTI) = 'log_sigmid_RTI'
1173 :
1174 1 : profile_column_name(p_log_D_mix) = 'log_D_mix'
1175 1 : profile_column_name(p_log_sig_raw_mix) = 'log_sig_raw_mix'
1176 1 : profile_column_name(p_log_sig_mix) = 'log_sig_mix'
1177 :
1178 1 : profile_column_name(p_burn_avg_epsnuc) = 'burn_avg_epsnuc'
1179 1 : profile_column_name(p_log_burn_avg_epsnuc) = 'log_burn_avg_epsnuc'
1180 1 : profile_column_name(p_burn_num_iters) = 'burn_num_iters'
1181 :
1182 1 : profile_column_name(p_dt_times_conv_vel_div_mixing_length) = 'dt_times_conv_vel_div_mixing_length'
1183 1 : profile_column_name(p_log_dt_times_conv_vel_div_mixing_length) = 'log_dt_times_conv_vel_div_mixing_length'
1184 1 : profile_column_name(p_conv_vel) = 'conv_vel'
1185 1 : profile_column_name(p_log_conv_vel) = 'log_conv_vel'
1186 1 : profile_column_name(p_conv_vel_div_csound) = 'conv_vel_div_csound'
1187 1 : profile_column_name(p_conv_vel_div_L_vel) = 'conv_vel_div_L_vel'
1188 :
1189 1 : profile_column_name(p_mix_type) = 'mix_type'
1190 1 : profile_column_name(p_mixing_type) = 'mixing_type'
1191 1 : profile_column_name(p_log_mlt_D_mix) = 'log_mlt_D_mix'
1192 1 : profile_column_name(p_log_Cp_T_div_t_sound) = 'log_cp_T_div_t_sound'
1193 1 : profile_column_name(p_log_t_thermal) = 'log_t_thermal'
1194 1 : profile_column_name(p_log_t_sound) = 'log_t_sound'
1195 1 : profile_column_name(p_pressure_scale_height_cm) = 'pressure_scale_height_cm'
1196 1 : profile_column_name(p_pressure_scale_height) = 'pressure_scale_height'
1197 :
1198 1 : profile_column_name(p_gradT) = 'gradT'
1199 1 : profile_column_name(p_gradr) = 'gradr'
1200 :
1201 1 : profile_column_name(p_cno_div_z) = 'cno_div_z'
1202 :
1203 1 : profile_column_name(p_dE) = 'dE'
1204 1 : profile_column_name(p_dr) = 'dr'
1205 1 : profile_column_name(p_dv) = 'dv'
1206 1 : profile_column_name(p_dr_ratio) = 'dr_ratio'
1207 1 : profile_column_name(p_dt_dv_div_dr) = 'dt_dv_div_dr'
1208 :
1209 1 : profile_column_name(p_dlog_h1_dlogP) = 'dlog_h1_dlogP'
1210 1 : profile_column_name(p_dlog_he3_dlogP) = 'dlog_he3_dlogP'
1211 1 : profile_column_name(p_dlog_he4_dlogP) = 'dlog_he4_dlogP'
1212 1 : profile_column_name(p_dlog_c12_dlogP) = 'dlog_c12_dlogP'
1213 1 : profile_column_name(p_dlog_c13_dlogP) = 'dlog_c13_dlogP'
1214 1 : profile_column_name(p_dlog_n14_dlogP) = 'dlog_n14_dlogP'
1215 1 : profile_column_name(p_dlog_o16_dlogP) = 'dlog_o16_dlogP'
1216 1 : profile_column_name(p_dlog_ne20_dlogP) = 'dlog_ne20_dlogP'
1217 1 : profile_column_name(p_dlog_mg24_dlogP) = 'dlog_mg24_dlogP'
1218 1 : profile_column_name(p_dlog_si28_dlogP) = 'dlog_si28_dlogP'
1219 :
1220 1 : profile_column_name(p_dlog_pp_dlogP) = 'dlog_pp_dlogP'
1221 1 : profile_column_name(p_dlog_cno_dlogP) = 'dlog_cno_dlogP'
1222 1 : profile_column_name(p_dlog_3alf_dlogP) = 'dlog_3alf_dlogP'
1223 :
1224 1 : profile_column_name(p_dlog_burn_c_dlogP) = 'dlog_burn_c_dlogP'
1225 1 : profile_column_name(p_dlog_burn_n_dlogP) = 'dlog_burn_n_dlogP'
1226 1 : profile_column_name(p_dlog_burn_o_dlogP) = 'dlog_burn_o_dlogP'
1227 :
1228 1 : profile_column_name(p_dlog_burn_ne_dlogP) = 'dlog_burn_ne_dlogP'
1229 1 : profile_column_name(p_dlog_burn_na_dlogP) = 'dlog_burn_na_dlogP'
1230 1 : profile_column_name(p_dlog_burn_mg_dlogP) = 'dlog_burn_mg_dlogP'
1231 :
1232 1 : profile_column_name(p_dlog_cc_dlogP) = 'dlog_cc_dlogP'
1233 1 : profile_column_name(p_dlog_co_dlogP) = 'dlog_co_dlogP'
1234 1 : profile_column_name(p_dlog_oo_dlogP) = 'dlog_oo_dlogP'
1235 :
1236 1 : profile_column_name(p_dlog_burn_si_dlogP) = 'dlog_burn_si_dlogP'
1237 1 : profile_column_name(p_dlog_burn_s_dlogP) = 'dlog_burn_s_dlogP'
1238 1 : profile_column_name(p_dlog_burn_ar_dlogP) = 'dlog_burn_ar_dlogP'
1239 1 : profile_column_name(p_dlog_burn_ca_dlogP) = 'dlog_burn_ca_dlogP'
1240 1 : profile_column_name(p_dlog_burn_ti_dlogP) = 'dlog_burn_ti_dlogP'
1241 1 : profile_column_name(p_dlog_burn_cr_dlogP) = 'dlog_burn_cr_dlogP'
1242 1 : profile_column_name(p_dlog_burn_fe_dlogP) = 'dlog_burn_fe_dlogP'
1243 :
1244 1 : profile_column_name(p_dlog_pnhe4_dlogP) = 'dlog_pnhe4_dlogP'
1245 1 : profile_column_name(p_dlog_photo_dlogP) = 'dlog_photo_dlogP'
1246 1 : profile_column_name(p_dlog_other_dlogP) = 'dlog_other_dlogP'
1247 :
1248 1 : profile_column_name(p_total_energy_sign) = 'total_energy_sign'
1249 1 : profile_column_name(p_total_energy) = 'total_energy'
1250 :
1251 1 : profile_column_name(p_Ptrb) = 'Ptrb'
1252 1 : profile_column_name(p_log_Ptrb) = 'log_Ptrb'
1253 1 : profile_column_name(p_w) = 'w'
1254 1 : profile_column_name(p_log_w) = 'log_w'
1255 1 : profile_column_name(p_etrb) = 'etrb'
1256 1 : profile_column_name(p_log_etrb) = 'log_etrb'
1257 1 : profile_column_name(p_Pvsc) = 'Pvsc'
1258 1 : profile_column_name(p_Hp_face) = 'Hp_face'
1259 1 : profile_column_name(p_Y_face) = 'Y_face'
1260 1 : profile_column_name(p_PII_face) = 'PII_face'
1261 1 : profile_column_name(p_Chi) = 'Chi'
1262 1 : profile_column_name(p_COUPL) = 'COUPL'
1263 1 : profile_column_name(p_SOURCE) = 'SOURCE'
1264 1 : profile_column_name(p_DAMP) = 'DAMP'
1265 1 : profile_column_name(p_DAMPR) = 'DAMPR'
1266 1 : profile_column_name(p_Eq) = 'Eq'
1267 1 : profile_column_name(p_Uq) = 'Uq'
1268 1 : profile_column_name(p_Lr) = 'Lr'
1269 1 : profile_column_name(p_Lr_div_L) = 'Lr_div_L'
1270 1 : profile_column_name(p_Lc) = 'Lc'
1271 1 : profile_column_name(p_Lc_div_L) = 'Lc_div_L'
1272 1 : profile_column_name(p_Lt) = 'Lt'
1273 1 : profile_column_name(p_Lt_div_L) = 'Lt_div_L'
1274 :
1275 1 : profile_column_name(p_rsp_Et) = 'rsp_Et'
1276 1 : profile_column_name(p_rsp_logEt) = 'rsp_logEt'
1277 1 : profile_column_name(p_rsp_erad) = 'rsp_erad'
1278 1 : profile_column_name(p_rsp_log_erad) = 'rsp_log_erad'
1279 1 : profile_column_name(p_rsp_Pt) = 'rsp_Pt'
1280 1 : profile_column_name(p_rsp_Lr) = 'rsp_Lr'
1281 1 : profile_column_name(p_rsp_Lc) = 'rsp_Lc'
1282 1 : profile_column_name(p_rsp_Lt) = 'rsp_Lt'
1283 1 : profile_column_name(p_rsp_Eq) = 'rsp_Eq'
1284 1 : profile_column_name(p_rsp_Uq) = 'rsp_Uq'
1285 1 : profile_column_name(p_rsp_src) = 'rsp_src'
1286 1 : profile_column_name(p_rsp_sink) = 'rsp_sink'
1287 1 : profile_column_name(p_rsp_damp) = 'rsp_damp'
1288 1 : profile_column_name(p_rsp_src_snk) = 'rsp_src_snk'
1289 1 : profile_column_name(p_rsp_dampR) = 'rsp_dampR'
1290 1 : profile_column_name(p_rsp_Y_face) = 'rsp_Y_face'
1291 1 : profile_column_name(p_rsp_Hp_face) = 'rsp_Hp_face'
1292 1 : profile_column_name(p_rsp_Chi) = 'rsp_Chi'
1293 1 : profile_column_name(p_rsp_heat_exchange_timescale) = 'rsp_heat_exchange_timescale'
1294 1 : profile_column_name(p_rsp_log_dt_div_heat_exchange_timescale) = 'rsp_log_dt_div_heat_exchange_timescale'
1295 1 : profile_column_name(p_rsp_log_heat_exchange_timescale) = 'rsp_log_heat_exchange_timescale'
1296 1 : profile_column_name(p_rsp_Pvsc) = 'rsp_Pvsc'
1297 1 : profile_column_name(p_rsp_gradT) = 'rsp_gradT'
1298 1 : profile_column_name(p_rsp_Lr_div_L) = 'rsp_Lr_div_L'
1299 1 : profile_column_name(p_rsp_Lc_div_L) = 'rsp_Lc_div_L'
1300 1 : profile_column_name(p_rsp_Lt_div_L) = 'rsp_Lt_div_L'
1301 :
1302 1 : profile_column_name(p_d_u_div_rmid) = 'd_u_div_rmid'
1303 1 : profile_column_name(p_d_u_div_rmid_start) = 'd_u_div_rmid_start'
1304 :
1305 1 : profile_column_name(p_cell_specific_IE) = 'cell_specific_IE'
1306 1 : profile_column_name(p_cell_ie_div_star_ie) = 'cell_ie_div_star_ie'
1307 1 : profile_column_name(p_log_cell_specific_IE) = 'log_cell_specific_IE'
1308 1 : profile_column_name(p_log_cell_ie_div_star_ie) = 'log_cell_ie_div_star_ie'
1309 :
1310 1 : profile_column_name(p_cell_specific_PE) = 'cell_specific_PE'
1311 1 : profile_column_name(p_cell_specific_KE) = 'cell_specific_KE'
1312 1 : profile_column_name(p_cell_IE_div_IE_plus_KE) = 'cell_IE_div_IE_plus_KE'
1313 1 : profile_column_name(p_cell_KE_div_IE_plus_KE) = 'cell_KE_div_IE_plus_KE'
1314 :
1315 1 : profile_column_name(p_log_L_div_CpTMdot) = 'log_L_div_CpTMdot'
1316 1 : profile_column_name(p_log_mdot_cs) = 'log_mdot_cs'
1317 1 : profile_column_name(p_log_mdot_v) = 'log_mdot_v'
1318 1 : profile_column_name(p_cs_at_cell_bdy) = 'cs_at_cell_bdy'
1319 1 : profile_column_name(p_grad_density) = 'grad_density'
1320 1 : profile_column_name(p_grad_temperature) = 'grad_temperature'
1321 :
1322 1 : profile_column_name(p_gradL) = 'gradL'
1323 1 : profile_column_name(p_grada_sub_gradr) = 'grada_sub_gradr'
1324 1 : profile_column_name(p_gradL_sub_gradr) = 'gradL_sub_gradr'
1325 1 : profile_column_name(p_sch_stable) = 'sch_stable'
1326 1 : profile_column_name(p_ledoux_stable) = 'ledoux_stable'
1327 :
1328 1 : profile_column_name(p_dominant_isoA_for_thermohaline) = 'dominant_isoA_for_thermohaline'
1329 1 : profile_column_name(p_dominant_isoZ_for_thermohaline) = 'dominant_isoZ_for_thermohaline'
1330 1 : profile_column_name(p_gradL_composition_term) = 'gradL_composition_term'
1331 :
1332 1 : profile_column_name(p_log_brunt_B) = 'log_brunt_B'
1333 1 : profile_column_name(p_log_brunt_nonB) = 'log_brunt_nonB'
1334 1 : profile_column_name(p_brunt_B) = 'brunt_B'
1335 1 : profile_column_name(p_brunt_nonB) = 'brunt_nonB'
1336 :
1337 1 : profile_column_name(p_brunt_N2) = 'brunt_N2'
1338 1 : profile_column_name(p_brunt_N2_structure_term) = 'brunt_N2_structure_term'
1339 1 : profile_column_name(p_brunt_N2_composition_term) = 'brunt_N2_composition_term'
1340 1 : profile_column_name(p_log_brunt_N2_structure_term) = 'log_brunt_N2_structure_term'
1341 1 : profile_column_name(p_log_brunt_N2_composition_term) = 'log_brunt_N2_composition_term'
1342 :
1343 1 : profile_column_name(p_brunt_A_div_x2) = 'brunt_A_div_x2'
1344 1 : profile_column_name(p_brunt_A) = 'brunt_A'
1345 1 : profile_column_name(p_log_brunt_N2_dimensionless) = 'log_brunt_N2_dimensionless'
1346 1 : profile_column_name(p_brunt_N2_dimensionless) = 'brunt_N2_dimensionless'
1347 1 : profile_column_name(p_brunt_N_dimensionless) = 'brunt_N_dimensionless'
1348 1 : profile_column_name(p_brunt_N) = 'brunt_N'
1349 1 : profile_column_name(p_brunt_frequency) = 'brunt_frequency'
1350 1 : profile_column_name(p_brunt_nu) = 'brunt_nu'
1351 1 : profile_column_name(p_log_brunt_N) = 'log_brunt_N'
1352 1 : profile_column_name(p_log_brunt_N2) = 'log_brunt_N2'
1353 1 : profile_column_name(p_sign_brunt_N2) = 'sign_brunt_N2'
1354 1 : profile_column_name(p_lamb_S2) = 'lamb_S2'
1355 1 : profile_column_name(p_lamb_S) = 'lamb_S'
1356 1 : profile_column_name(p_lamb_Sl1) = 'lamb_Sl1'
1357 1 : profile_column_name(p_lamb_Sl2) = 'lamb_Sl2'
1358 1 : profile_column_name(p_lamb_Sl3) = 'lamb_Sl3'
1359 1 : profile_column_name(p_lamb_Sl10) = 'lamb_Sl10'
1360 1 : profile_column_name(p_brunt_N_div_r_integral) = 'brunt_N_div_r_integral'
1361 1 : profile_column_name(p_brunt_N2_sub_omega2) = 'brunt_N2_sub_omega2'
1362 1 : profile_column_name(p_sl2_sub_omega2) = 'sl2_sub_omega2'
1363 1 : profile_column_name(p_k_r_integral) = 'k_r_integral'
1364 :
1365 1 : profile_column_name(p_log_brunt_nu) = 'log_brunt_nu'
1366 1 : profile_column_name(p_log_lamb_Sl1) = 'log_lamb_Sl1'
1367 1 : profile_column_name(p_log_lamb_Sl2) = 'log_lamb_Sl2'
1368 1 : profile_column_name(p_log_lamb_Sl3) = 'log_lamb_Sl3'
1369 1 : profile_column_name(p_log_lamb_Sl10) = 'log_lamb_Sl10'
1370 :
1371 1 : profile_column_name(p_logR_kap) = 'logR_kap'
1372 1 : profile_column_name(p_logW) = 'logW'
1373 1 : profile_column_name(p_logQ) = 'logQ'
1374 1 : profile_column_name(p_logV) = 'logV'
1375 :
1376 1 : profile_column_name(p_dlnX_dr) = 'dlnX_dr'
1377 1 : profile_column_name(p_dlnY_dr) = 'dlnY_dr'
1378 1 : profile_column_name(p_dlnRho_dr) = 'dlnRho_dr'
1379 :
1380 1 : profile_column_name(p_log_zFe) = 'log_zFe'
1381 1 : profile_column_name(p_zFe) = 'zFe'
1382 1 : profile_column_name(p_u) = 'u'
1383 1 : profile_column_name(p_u_face) = 'u_face'
1384 1 : profile_column_name(p_dPdr_dRhodr_info) = 'dPdr_dRhodr_info'
1385 1 : profile_column_name(p_RTI_du_diffusion_kick) = 'RTI_du_diffusion_kick'
1386 1 : profile_column_name(p_log_du_kick_div_du) = 'log_du_kick_div_du'
1387 1 : profile_column_name(p_max_abs_xa_corr) = 'max_abs_xa_corr'
1388 :
1389 1 : profile_column_name(p_log_dt_div_tau_conv) = 'log_dt_div_tau_conv'
1390 1 : profile_column_name(p_dt_div_tau_conv) = 'dt_div_tau_conv'
1391 1 : profile_column_name(p_tau_conv) = 'tau_conv'
1392 1 : profile_column_name(p_tau_qhse) = 'tau_qhse'
1393 1 : profile_column_name(p_tau_epsnuc) = 'tau_epsnuc'
1394 1 : profile_column_name(p_tau_cool) = 'tau_cool'
1395 :
1396 1 : profile_column_name(p_Frad_div_cUrad) = 'Frad_div_cUrad'
1397 1 : profile_column_name(p_lum_rad_div_L_Edd_sub_fourPrad_div_PchiT) = 'lum_rad_div_L_Edd_sub_fourPrad_div_PchiT'
1398 :
1399 1 : profile_column_name(p_flux_limit_R) = 'flux_limit_R'
1400 1 : profile_column_name(p_flux_limit_lambda) = 'flux_limit_lambda'
1401 :
1402 1 : cnt = 0
1403 580 : do i=1,p_col_id_max
1404 580 : if (len_trim(profile_column_name(i)) == 0) then
1405 0 : write(*,*) 'missing name for profile column id', i
1406 0 : if (i > 1) write(*,*) 'following ' // trim(profile_column_name(max(1,i-1))) ! bp: get rid of bogus compiler warning
1407 0 : write(*,'(A)')
1408 0 : cnt = cnt+1
1409 : end if
1410 : end do
1411 :
1412 1 : if (cnt > 0) then
1413 0 : ierr = -1
1414 0 : return
1415 : end if
1416 :
1417 1 : nullify(profile_column_names_dict)
1418 580 : do i=1,p_col_id_max
1419 579 : call integer_dict_define(profile_column_names_dict, StrLowCase(profile_column_name(i)), i, ierr)
1420 580 : if (ierr /= 0) then
1421 0 : write(*,*) 'FATAL ERROR: profile_column_names_init failed in integer_dict_define'
1422 0 : return
1423 : end if
1424 : end do
1425 :
1426 : end subroutine profile_column_names_init
1427 :
1428 :
1429 1 : subroutine profile_column_names_shutdown()
1430 : use utils_lib, only: integer_dict_free
1431 1 : if (ASSOCIATED(profile_column_names_dict)) call integer_dict_free(profile_column_names_dict)
1432 1 : end subroutine profile_column_names_shutdown
1433 :
1434 :
1435 12 : integer function do_get_profile_id(cname)
1436 : use utils_lib, only: integer_dict_lookup
1437 : character (len=*), intent(in) :: cname
1438 : ! returns id for the profile column if there is a matching name
1439 : ! returns 0 otherwise.
1440 : integer :: ierr, value
1441 12 : call integer_dict_lookup(profile_column_names_dict, StrLowCase(cname), value, ierr)
1442 12 : if (ierr /= 0) value = 0
1443 12 : do_get_profile_id = value
1444 12 : end function do_get_profile_id
1445 :
1446 : end module star_profile_def
|