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

Generated by: LCOV version 2.0-1