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