LCOV - code coverage report
Current view: top level - star/private - star_history_def.f90 (source / functions) Coverage Total Hit
Test: coverage.info Lines: 98.6 % 568 560
Test Date: 2026-05-14 09:58:24 Functions: 100.0 % 3 3

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

Generated by: LCOV version 2.0-1