LCOV - code coverage report
Current view: top level - star/private - star_job_ctrls_io.f90 (source / functions) Coverage Total Hit
Test: coverage.info Lines: 48.7 % 1037 505
Test Date: 2025-05-08 18:23:42 Functions: 55.6 % 9 5

            Line data    Source code
       1              : ! ***********************************************************************
       2              : !
       3              : !   Copyright (C) 2013  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_job_ctrls_io
      21              : 
      22              :       use const_def, only: dp
      23              :       use star_private_def
      24              :       use rates_def, only: maxlen_reaction_Name
      25              : 
      26              :       implicit none
      27              : 
      28              :       include 'star_job_controls.inc'
      29              :       include 'star_job_controls_dev.inc'
      30              : 
      31              :       namelist /star_job/ &
      32              :          mesa_dir, &
      33              :          eosDT_cache_dir, &
      34              :          ionization_cache_dir, &
      35              :          kap_cache_dir, &
      36              :          rates_cache_dir, &
      37              :          pause_before_terminate, &
      38              :          profile_columns_file, &
      39              :          history_columns_file, &
      40              :          show_log_description_at_start, &
      41              :          list_net_reactions, &
      42              :          show_net_reactions_info, &
      43              :          show_net_species_info, &
      44              :          first_model_for_timing, &
      45              :          steps_before_start_timing, &
      46              :          show_eqns_and_vars_names, &
      47              :          pgstar_flag, &
      48              :          disable_pgstar_during_relax_flag, &
      49              :          clear_initial_pgstar_history, &
      50              :          clear_pgstar_history, &
      51              :          save_pgstar_files_when_terminate, &
      52              :          save_photo_when_terminate, &
      53              :          load_saved_photo, &
      54              :          saved_photo_name, &
      55              :          save_photo_filename, &
      56              :          save_photo_number, &
      57              :          write_profile_when_terminate, &
      58              :          show_retry_counts_when_terminate, &
      59              :          show_timestep_limit_counts_when_terminate, &
      60              :          filename_for_profile_when_terminate, &
      61              :          create_pre_main_sequence_model, &
      62              :          pre_ms_relax_to_start_radiative_core, &
      63              :          pre_ms_relax_num_steps, &
      64              :          pre_ms_min_steps_before_check_radiative_core, &
      65              :          pre_ms_check_radiative_core_start, &
      66              :          pre_ms_check_radiative_core_stop, &
      67              :          pre_ms_check_radiative_core_Lnuc_div_L_limit, &
      68              :          pre_ms_check_radiative_core_min_mass, &
      69              :          pre_ms_T_c, &
      70              :          pre_ms_guess_rho_c, &
      71              :          pre_ms_d_log10_P, &
      72              :          pre_ms_logT_surf_limit, &
      73              :          pre_ms_logP_surf_limit, &
      74              :          create_initial_model, &
      75              :          initial_model_relax_num_steps, &
      76              :          radius_in_cm_for_create_initial_model, &
      77              :          mass_in_gm_for_create_initial_model, &
      78              :          center_logP_1st_try_for_create_initial_model, &
      79              :          entropy_1st_try_for_create_initial_model, &
      80              :          abs_e01_tolerance_for_create_initial_model, &
      81              :          abs_e02_tolerance_for_create_initial_model, &
      82              :          max_tries_for_create_initial_model, &
      83              :          initial_model_eps, &
      84              :          save_star_job_namelist, &
      85              :          star_job_namelist_name, &
      86              :          echo_at_start, &
      87              :          echo_at_end, &
      88              :          load_saved_model, &
      89              :          load_model_filename, &
      90              :          create_merger_model, &
      91              :          saved_model_for_merger_1, &
      92              :          saved_model_for_merger_2, &
      93              :          set_max_dt_to_frac_lifetime, &
      94              :          max_frac_of_lifetime_per_step, &
      95              :          astero_just_call_my_extras_check_model, &
      96              :          relax_mass, &
      97              :          relax_initial_mass, &
      98              :          new_mass, &
      99              :          lg_max_abs_mdot, &
     100              :          relax_mass_to_remove_H_env, &
     101              :          relax_initial_mass_to_remove_H_env, &
     102              :          extra_mass_retained_by_remove_H_env, &
     103              :          relax_mass_scale, &
     104              :          relax_initial_mass_scale, &
     105              :          dlgm_per_step, &
     106              : 
     107              :          relax_M_center_dt, &
     108              :          change_mass_years_for_dt, &
     109              :          relax_M_center, &
     110              :          relax_initial_M_center, &
     111              :          relax_core, &
     112              :          relax_initial_core, &
     113              :          new_core_mass, &
     114              :          dlg_core_mass_per_step, &
     115              :          relax_core_years_for_dt, &
     116              :          core_avg_rho, &
     117              :          core_avg_eps, &
     118              : 
     119              :          relax_R_center, &
     120              :          relax_initial_R_center, &
     121              :          new_R_center, &
     122              :          dlgR_per_step, &
     123              :          relax_R_center_dt, &
     124              : 
     125              :          set_v_center, &
     126              :          set_initial_v_center, &
     127              :          relax_v_center, &
     128              :          relax_initial_v_center, &
     129              :          new_v_center, &
     130              :          dv_per_step, &
     131              :          relax_v_center_dt, &
     132              : 
     133              :          zero_alpha_RTI, &
     134              :          zero_initial_alpha_RTI, &
     135              : 
     136              :          set_L_center, &
     137              :          set_initial_L_center, &
     138              :          relax_L_center, &
     139              :          relax_initial_L_center, &
     140              :          new_L_center, &
     141              :          dlgL_per_step, &
     142              :          relax_L_center_dt, &
     143              : 
     144              :          remove_center_at_cell_k, &
     145              :          remove_center_by_temperature, &
     146              :          remove_center_by_mass_fraction_q, &
     147              :          remove_center_by_delta_mass_gm, &
     148              :          remove_center_by_delta_mass_Msun, &
     149              :          remove_center_by_mass_gm, &
     150              :          remove_center_by_mass_Msun, &
     151              :          remove_center_by_radius_cm, &
     152              :          remove_center_by_radius_Rsun, &
     153              :          remove_center_by_he4, &
     154              :          remove_center_by_c12_o16, &
     155              :          remove_center_by_si28, &
     156              :          remove_center_to_reduce_co56_ni56, &
     157              :          remove_center_by_ye, &
     158              :          remove_center_by_entropy, &
     159              :          remove_center_by_infall_kms, &
     160              :          remove_center_at_inner_max_abs_v, &
     161              :          remove_fe_core, &
     162              :          remove_fallback_at_each_step, &
     163              :          fallback_check_total_energy, &
     164              :          remove_fallback_speed_limit, &
     165              :          remove_center_set_zero_v_center, &
     166              :          retain_fallback_at_each_step, &
     167              :          limit_center_logP_at_each_step, &
     168              :          remove_center_adjust_L_center, &
     169              :          remove_center_logRho_limit, &
     170              : 
     171              :          remove_initial_center_at_cell_k, &
     172              :          remove_initial_center_by_temperature, &
     173              :          remove_initial_center_by_mass_fraction_q, &
     174              :          remove_initial_center_by_delta_mass_gm, &
     175              :          remove_initial_center_by_delta_mass_Msun, &
     176              :          remove_initial_center_by_mass_gm, &
     177              :          remove_initial_center_by_mass_Msun, &
     178              :          remove_initial_center_by_radius_cm, &
     179              :          remove_initial_center_by_radius_Rsun, &
     180              :          remove_initial_center_by_he4, &
     181              :          remove_initial_center_by_c12_o16, &
     182              :          remove_initial_center_by_si28, &
     183              :          remove_initial_center_to_reduce_co56_ni56, &
     184              :          remove_initial_center_by_ye, &
     185              :          remove_initial_center_by_entropy, &
     186              :          remove_initial_center_by_infall_kms, &
     187              :          remove_initial_center_at_inner_max_abs_v, &
     188              :          remove_initial_fe_core, &
     189              : 
     190              :          zero_initial_inner_v_by_mass_Msun, &
     191              :          zero_inner_v_by_mass_Msun, &
     192              : 
     193              :          remove_surface_at_cell_k, &
     194              :          remove_surface_at_he_core_boundary, &
     195              :          remove_surface_by_optical_depth, &
     196              :          remove_surface_by_density, &
     197              :          remove_surface_by_pressure, &
     198              :          remove_surface_by_mass_fraction_q, &
     199              :          remove_surface_by_mass_gm, &
     200              :          remove_surface_by_radius_cm, &
     201              :          remove_surface_by_mass_Msun, &
     202              :          remove_surface_by_radius_Rsun, &
     203              :          remove_surface_by_v_surf_km_s, &
     204              :          remove_surface_by_v_surf_div_cs, &
     205              :          remove_surface_by_v_surf_div_v_escape, &
     206              :          min_q_for_remove_surface_by_v_surf_div_v_escape, &
     207              :          max_q_for_remove_surface_by_v_surf_div_v_escape, &
     208              : 
     209              :          remove_surface_do_jrot, &
     210              :          remove_surface_do_entropy, &
     211              :          remove_surface_turn_off_energy_sources_and_sinks, &
     212              :          remove_surface_by_relax_to_star_cut, &
     213              : 
     214              :          remove_initial_surface_at_cell_k, &
     215              :          remove_initial_surface_at_he_core_boundary, &
     216              :          remove_initial_surface_by_optical_depth, &
     217              :          remove_initial_surface_by_density, &
     218              :          remove_initial_surface_by_pressure, &
     219              :          remove_initial_surface_by_mass_fraction_q, &
     220              :          remove_initial_surface_by_mass_gm, &
     221              :          remove_initial_surface_by_radius_cm, &
     222              :          remove_initial_surface_by_mass_Msun, &
     223              :          remove_initial_surface_by_radius_Rsun, &
     224              :          remove_initial_surface_by_v_surf_km_s, &
     225              :          remove_initial_surface_by_v_surf_div_cs, &
     226              :          remove_initial_surface_by_v_surf_div_v_escape, &
     227              : 
     228              :          report_mass_not_fe56, &
     229              :          relax_dxdt_nuc_factor, &
     230              :          relax_initial_dxdt_nuc_factor, &
     231              :          new_dxdt_nuc_factor, &
     232              :          dxdt_nuc_factor_multiplier, &
     233              :          relax_eps_nuc_factor, &
     234              :          relax_initial_eps_nuc_factor, &
     235              :          new_eps_nuc_factor, &
     236              :          eps_nuc_factor_multiplier, &
     237              :          relax_opacity_max, &
     238              :          relax_initial_opacity_max, &
     239              :          new_opacity_max, &
     240              :          opacity_max_multiplier, &
     241              :          relax_max_surf_dq, &
     242              :          relax_initial_max_surf_dq, &
     243              :          new_max_surf_dq, &
     244              :          max_surf_dq_multiplier, &
     245              : 
     246              :          relax_tau_factor, &
     247              :          relax_initial_tau_factor, &
     248              :          set_tau_factor, &
     249              :          set_initial_tau_factor, &
     250              :          relax_to_this_tau_factor, &
     251              :          set_to_this_tau_factor, &
     252              :          dlogtau_factor, &
     253              :          set_tau_factor_after_core_He_burn, &
     254              :          set_tau_factor_after_core_C_burn, &
     255              :          relax_tau_factor_after_core_He_burn, &
     256              :          relax_tau_factor_after_core_C_burn, &
     257              : 
     258              :          relax_to_this_opacity_factor, &
     259              :          d_opacity_factor, &
     260              :          relax_opacity_factor, &
     261              :          relax_initial_opacity_factor, &
     262              : 
     263              :          adjust_tau_factor_to_surf_density, &
     264              :          base_for_adjust_tau_factor_to_surf_density, &
     265              : 
     266              :          relax_Tsurf_factor, &
     267              :          relax_initial_Tsurf_factor, &
     268              :          set_Tsurf_factor, &
     269              :          set_initial_Tsurf_factor, &
     270              :          relax_to_this_Tsurf_factor, &
     271              :          set_to_this_Tsurf_factor, &
     272              :          dlogTsurf_factor, &
     273              : 
     274              :          relax_irradiation, &
     275              :          relax_initial_irradiation, &
     276              :          set_irradiation, &
     277              :          set_initial_irradiation, &
     278              :          relax_irradiation_min_steps, &
     279              :          relax_to_this_irrad_flux, &
     280              :          set_to_this_irrad_flux, &
     281              :          irrad_col_depth, &
     282              :          relax_irradiation_max_yrs_dt, &
     283              :          relax_mass_change, &
     284              :          relax_initial_mass_change, &
     285              :          relax_mass_change_min_steps, &
     286              :          relax_mass_change_max_yrs_dt, &
     287              :          relax_mass_change_init_mdot, &
     288              :          relax_mass_change_final_mdot, &
     289              : 
     290              :          change_RTI_flag, &
     291              :          change_initial_RTI_flag, &
     292              :          new_RTI_flag, &
     293              : 
     294              :          change_RSP_flag, &
     295              :          change_initial_RSP_flag, &
     296              :          new_RSP_flag, &
     297              : 
     298              :          change_RSP2_flag, &
     299              :          change_initial_RSP2_flag, &
     300              :          change_RSP2_flag_at_model_number, &
     301              :          new_RSP2_flag, &
     302              :          create_RSP2_model, &
     303              : 
     304              :          change_w_div_wc_flag, &
     305              :          change_initial_w_div_wc_flag, &
     306              :          new_w_div_wc_flag, &
     307              : 
     308              :          change_j_rot_flag, &
     309              :          change_initial_j_rot_flag, &
     310              :          new_j_rot_flag, &
     311              : 
     312              :          create_RSP_model, &
     313              : 
     314              :          change_v_flag, &
     315              :          change_initial_v_flag, &
     316              :          new_v_flag, &
     317              : 
     318              :          change_D_omega_flag, &
     319              :          change_initial_D_omega_flag, &
     320              :          new_D_omega_flag, &
     321              : 
     322              :          change_am_nu_rot_flag, &
     323              :          change_initial_am_nu_rot_flag, &
     324              :          new_am_nu_rot_flag, &
     325              : 
     326              :          use_D_omega_for_am_nu_rot, &
     327              : 
     328              :          change_u_flag, &
     329              :          change_initial_u_flag, &
     330              :          new_u_flag, &
     331              : 
     332              :          change_reconstruction_flag, &
     333              :          change_initial_reconstruction_flag, &
     334              :          new_reconstruction_flag, &
     335              : 
     336              :          center_ye_limit_for_v_flag, &
     337              :          change_rotation_flag, &
     338              :          change_initial_rotation_flag, &
     339              :          new_rotation_flag, &
     340              :          use_w_div_wc_flag_with_rotation, &
     341              :          use_j_rot_flag_with_rotation, &
     342              : 
     343              : 
     344              :          set_omega, &
     345              :          set_initial_omega, &
     346              :          set_omega_step_limit, &
     347              :          set_near_zams_omega_steps, &
     348              :          new_omega, &
     349              :          set_omega_div_omega_crit, &
     350              :          set_initial_omega_div_omega_crit, &
     351              :          set_omega_div_omega_crit_step_limit, &
     352              :          set_near_zams_omega_div_omega_crit_steps, &
     353              :          new_omega_div_omega_crit, &
     354              :          set_surface_rotation_v, &
     355              :          set_initial_surface_rotation_v, &
     356              :          set_surf_rotation_v_step_limit, &
     357              :          set_near_zams_surface_rotation_v_steps, &
     358              :          new_surface_rotation_v, &
     359              :          relax_omega, &
     360              :          relax_initial_omega, &
     361              :          near_zams_relax_omega, &
     362              :          relax_omega_div_omega_crit, &
     363              :          relax_initial_omega_div_omega_crit, &
     364              :          near_zams_relax_omega_div_omega_crit, &
     365              :          relax_surface_rotation_v, &
     366              :          relax_initial_surface_rotation_v, &
     367              :          near_zams_relax_initial_surface_rotation_v, &
     368              :          num_steps_to_relax_rotation, &
     369              :          relax_omega_max_yrs_dt,&
     370              :          set_uniform_initial_composition, &
     371              :          initial_h1, &
     372              :          initial_h2, &
     373              :          initial_he3, &
     374              :          initial_he4, &
     375              :          initial_zfracs, &
     376              :          dump_missing_metals_into_heaviest, &
     377              :          relax_initial_composition, &
     378              :          relax_initial_to_xaccrete, &
     379              :          relax_composition_filename, &
     380              :          num_steps_to_relax_composition, &
     381              :          timescale_for_relax_composition, &
     382              :          relax_initial_angular_momentum, &
     383              :          max_steps_to_relax_angular_momentum, &
     384              :          timescale_for_relax_angular_momentum, &
     385              :          max_dt_for_relax_angular_momentum, &
     386              :          relax_angular_momentum_constant_omega_center, &
     387              :          num_timescales_for_relax_angular_momentum, &
     388              :          relax_angular_momentum_filename, &
     389              :          relax_initial_entropy, &
     390              :          max_steps_to_relax_entropy, &
     391              :          timescale_for_relax_entropy, &
     392              :          max_dt_for_relax_entropy, &
     393              :          num_timescales_for_relax_entropy, &
     394              :          relax_entropy_filename, &
     395              :          get_entropy_for_relax_from_eos, &
     396              :          report_cell_for_xm, &
     397              :          set_to_xa_for_accretion, &
     398              :          set_initial_to_xa_for_accretion, &
     399              :          set_nzlo, &
     400              :          set_nzhi, &
     401              :          change_Y, &
     402              :          change_initial_Y, &
     403              :          relax_Y, &
     404              :          relax_initial_Y, &
     405              :          relax_Y_minq, &
     406              :          relax_Y_maxq, &
     407              :          new_Y, &
     408              :          change_Z, &
     409              :          change_initial_Z, &
     410              :          relax_Z, &
     411              :          relax_initial_Z, &
     412              :          relax_Z_minq, &
     413              :          relax_Z_maxq, &
     414              :          new_Z, &
     415              :          steps_to_take_before_terminate, &
     416              :          stop_if_this_file_exists, &
     417              :          set_initial_age, &
     418              :          initial_age, &
     419              :          set_initial_model_number, &
     420              :          initial_model_number, &
     421              :          set_initial_number_retries, &
     422              :          initial_number_retries, &
     423              :          set_initial_dt, &
     424              :          limit_initial_dt, &
     425              :          years_for_initial_dt, &
     426              :          seconds_for_initial_dt, &
     427              : 
     428              :          set_initial_cumulative_energy_error, &
     429              :          set_cumulative_energy_error, &
     430              :          set_cumulative_energy_error_at_step, &
     431              :          set_cumulative_energy_error_each_step_if_age_less_than, &
     432              :          set_cumulative_energy_error_each_relax, &
     433              :          new_cumulative_energy_error, &
     434              : 
     435              :          change_net, &
     436              :          change_initial_net, &
     437              :          new_net_name, &
     438              :          change_small_net, &
     439              :          change_initial_small_net, &
     440              :          new_small_net_name, &
     441              : 
     442              :          h_he_net, &
     443              :          co_net, &
     444              :          adv_net, &
     445              :          adjust_abundances_for_new_isos, &
     446              :          set_uniform_xa_from_file, &
     447              :          set_uniform_initial_xa_from_file, &
     448              :          file_for_uniform_xa, &
     449              : 
     450              :          mix_section, mix_initial_section, &
     451              :          mix_section_nzlo, mix_section_nzhi, &
     452              : 
     453              :          T9_weaklib_full_off, &
     454              :          T9_weaklib_full_on, &
     455              :          weaklib_blend_hi_Z, &
     456              :          T9_weaklib_full_off_hi_Z, &
     457              :          T9_weaklib_full_on_hi_Z, &
     458              : 
     459              :          use_suzuki_weak_rates, &
     460              :          use_3a_fl87, &
     461              : 
     462              :          use_special_weak_rates, &
     463              :          special_weak_states_file, &
     464              :          special_weak_transitions_file, &
     465              :          ion_coulomb_corrections, &
     466              :          electron_coulomb_corrections, &
     467              : 
     468              :          mix_envelope_down_to_T, &
     469              :          mix_initial_envelope_down_to_T, &
     470              :          auto_extend_net, &
     471              : 
     472              :          enable_adaptive_network, &
     473              :          min_x_for_keep, &
     474              :          min_x_for_n, &
     475              :          min_x_for_add, &
     476              :          max_Z_for_add, &
     477              :          max_N_for_add, &
     478              :          max_A_for_add, &
     479              : 
     480              :          save_model_number, &
     481              :          save_model_filename, &
     482              :          save_model_when_terminate, &
     483              :          required_termination_code_string, &
     484              :          profile_starting_model, &
     485              :          profile_model_number, &
     486              :          report_retries, &
     487              : 
     488              :          net_reaction_filename, &
     489              :          jina_reaclib_filename, &
     490              :          jina_reaclib_min_T9, &
     491              :          rate_tables_dir, &
     492              :          rate_cache_suffix, &
     493              :          read_extra_star_job_inlist, &
     494              :          extra_star_job_inlist_name, &
     495              :          set_abundance_nzlo, &
     496              :          set_abundance_nzhi, &
     497              :          set_abundance, &
     498              :          set_initial_abundance, &
     499              :          chem_name, &
     500              :          new_frac, &
     501              :          set_abundance_nzlo, set_abundance_nzhi, &
     502              :          replace_element, &
     503              :          replace_initial_element, &
     504              :          chem_name1, &
     505              :          chem_name2, &
     506              :          replace_element_nzlo, replace_element_nzhi, &
     507              :          do_special_test, &
     508              : 
     509              :          save_pulse_data_for_model_number, &
     510              :          save_pulse_data_when_terminate, &
     511              :          save_pulse_data_filename, &
     512              : 
     513              :          chem_isotopes_filename, &
     514              :          ionization_file_prefix, &
     515              :          ionization_Z1_suffix, &
     516              :          extras_lipar, &
     517              :          extras_lrpar, &
     518              :          extras_lcpar, &
     519              :          extras_llpar, &
     520              :          extras_ipar, &
     521              :          extras_rpar, &
     522              :          extras_cpar, &
     523              :          extras_lpar, &
     524              :          num_special_rate_factors, &
     525              :          special_rate_factor, &
     526              :          filename_of_special_rate, &
     527              :          reaction_for_special_factor,&
     528              :          color_num_files,&
     529              :          color_file_names,&
     530              :          color_num_colors,&
     531              :          warn_run_star_extras, &
     532              : 
     533              :          report_garbage_collection, &
     534              :          num_steps_for_garbage_collection
     535              : 
     536              :       contains
     537              : 
     538              : 
     539            1 :       subroutine do_read_star_job(s, filename, ierr)
     540              :          use star_private_def
     541              :          use utils_lib
     542              :          type (star_info), pointer :: s
     543              :          character(*), intent(in) :: filename
     544              :          integer, intent(out) :: ierr
     545              :          character (len=strlen) :: star_job_namelist_name
     546              :          star_job_namelist_name = ''
     547            1 :          ierr = 0
     548            1 :          call set_default_star_job_controls
     549            1 :          call read_star_job_file(s, filename, 1, ierr)
     550            1 :          call check_star_job_controls(s, ierr)
     551            1 :       end subroutine do_read_star_job
     552              : 
     553              : 
     554            1 :       recursive subroutine read_star_job_file(s, filename, level, ierr)
     555            1 :          use star_private_def
     556              :          use utils_lib
     557              :          character(*), intent(in) :: filename
     558              :          type (star_info), pointer :: s
     559              :          integer, intent(in) :: level
     560              :          integer, intent(out) :: ierr
     561              :          logical, dimension(max_extra_inlists) :: read_extra
     562              :          character (len=strlen), dimension(max_extra_inlists) :: extra
     563              :          integer :: unit, i
     564              : 
     565            1 :          ierr = 0
     566              : 
     567            1 :          if (level >= 10) then
     568            0 :             write(*,*) 'ERROR: too many levels of nested extra star_job inlist files'
     569            0 :             ierr = -1
     570            0 :             return
     571              :          end if
     572              : 
     573            1 :          if (len_trim(filename) > 0) then
     574            1 :             open(newunit=unit, file=trim(filename), action='read', delim='quote', status='old', iostat=ierr)
     575            1 :             if (ierr /= 0) then
     576            0 :                write(*, *) 'Failed to open control namelist file "'//trim(filename)//'"'
     577            0 :                return
     578              :             end if
     579            1 :             read(unit, nml=star_job, iostat=ierr)
     580            1 :             close(unit)
     581            1 :             if (ierr /= 0) then
     582            0 :                write(*, *)
     583            0 :                write(*, *)
     584            0 :                write(*, *)
     585            0 :                write(*, *)
     586              :                write(*, '(a)') &
     587            0 :                   'Failed while trying to read control namelist file: ' // trim(filename)
     588              :                write(*, '(a)') &
     589            0 :                   'Perhaps the following runtime error message will help you find the problem.'
     590            0 :                write(*, *)
     591            0 :                open(newunit=unit, file=trim(filename), action='read', delim='quote', status='old', iostat=ierr)
     592            0 :                read(unit, nml=star_job)
     593            0 :                close(unit)
     594            0 :                return
     595              :             end if
     596              :          end if
     597              : 
     598            1 :          call store_star_job_controls(s, ierr)
     599              : 
     600              :          ! recursive calls to read other inlists
     601            6 :          do i=1, max_extra_inlists
     602            5 :             read_extra(i) = read_extra_star_job_inlist(i)
     603            5 :             read_extra_star_job_inlist(i) = .false.
     604            5 :             extra(i) = extra_star_job_inlist_name(i)
     605            5 :             extra_star_job_inlist_name(i) = 'undefined'
     606              : 
     607            6 :             if (read_extra(i)) then
     608            0 :                call read_star_job_file(s, extra(i), level+1, ierr)
     609            0 :                if (ierr /= 0) return
     610              :             end if
     611              :          end do
     612              : 
     613              : 
     614            1 :       end subroutine read_star_job_file
     615              : 
     616              : 
     617            1 :       subroutine store_star_job_controls(s, ierr)
     618            1 :          use star_private_def
     619              :          type (star_info), pointer :: s
     620              :          integer, intent(out) :: ierr
     621              : 
     622            1 :          ierr = 0
     623              : 
     624            1 :          s% job% mesa_dir = mesa_dir
     625            1 :          s% job% eosDT_cache_dir = eosDT_cache_dir
     626            1 :          s% job% ionization_cache_dir = ionization_cache_dir
     627            1 :          s% job% kap_cache_dir = kap_cache_dir
     628            1 :          s% job% rates_cache_dir = rates_cache_dir
     629            1 :          s% job% pause_before_terminate = pause_before_terminate
     630            1 :          s% job% profile_columns_file = profile_columns_file
     631            1 :          s% job% history_columns_file = history_columns_file
     632            1 :          s% job% show_log_description_at_start = show_log_description_at_start
     633            1 :          s% job% list_net_reactions = list_net_reactions
     634            1 :          s% job% show_net_reactions_info = show_net_reactions_info
     635            1 :          s% job% show_net_species_info = show_net_species_info
     636            1 :          s% job% first_model_for_timing = first_model_for_timing
     637            1 :          s% job% steps_before_start_timing = steps_before_start_timing
     638            1 :          s% job% show_eqns_and_vars_names = show_eqns_and_vars_names
     639            1 :          s% job% pgstar_flag = pgstar_flag
     640            1 :          s% job% disable_pgstar_during_relax_flag = disable_pgstar_during_relax_flag
     641            1 :          s% job% clear_initial_pgstar_history = clear_initial_pgstar_history
     642            1 :          s% job% clear_pgstar_history = clear_pgstar_history
     643            1 :          s% job% save_pgstar_files_when_terminate = save_pgstar_files_when_terminate
     644            1 :          s% job% save_photo_when_terminate = save_photo_when_terminate
     645            1 :          s% job% load_saved_photo = load_saved_photo
     646            1 :          s% job% saved_photo_name = saved_photo_name
     647            1 :          s% job% save_photo_filename = save_photo_filename
     648            1 :          s% job% save_photo_number = save_photo_number
     649            1 :          s% job% write_profile_when_terminate = write_profile_when_terminate
     650            1 :          s% job% show_retry_counts_when_terminate = show_retry_counts_when_terminate
     651            1 :          s% job% show_timestep_limit_counts_when_terminate = show_timestep_limit_counts_when_terminate
     652            1 :          s% job% filename_for_profile_when_terminate = filename_for_profile_when_terminate
     653            1 :          s% job% create_pre_main_sequence_model = create_pre_main_sequence_model
     654            1 :          s% job% pre_ms_relax_to_start_radiative_core = pre_ms_relax_to_start_radiative_core
     655            1 :          s% job% pre_ms_relax_num_steps = pre_ms_relax_num_steps
     656            1 :          s% job% pre_ms_min_steps_before_check_radiative_core = pre_ms_min_steps_before_check_radiative_core
     657            1 :          s% job% pre_ms_check_radiative_core_start = pre_ms_check_radiative_core_start
     658            1 :          s% job% pre_ms_check_radiative_core_stop = pre_ms_check_radiative_core_stop
     659            1 :          s% job% pre_ms_check_radiative_core_Lnuc_div_L_limit = pre_ms_check_radiative_core_Lnuc_div_L_limit
     660            1 :          s% job% pre_ms_check_radiative_core_min_mass = pre_ms_check_radiative_core_min_mass
     661            1 :          s% job% pre_ms_T_c = pre_ms_T_c
     662            1 :          s% job% pre_ms_guess_rho_c = pre_ms_guess_rho_c
     663            1 :          s% job% pre_ms_d_log10_P = pre_ms_d_log10_P
     664            1 :          s% job% pre_ms_logT_surf_limit = pre_ms_logT_surf_limit
     665            1 :          s% job% pre_ms_logP_surf_limit = pre_ms_logP_surf_limit
     666            1 :          s% job% create_initial_model = create_initial_model
     667            1 :          s% job% initial_model_relax_num_steps = initial_model_relax_num_steps
     668            1 :          s% job% radius_in_cm_for_create_initial_model = radius_in_cm_for_create_initial_model
     669            1 :          s% job% mass_in_gm_for_create_initial_model = mass_in_gm_for_create_initial_model
     670              : 
     671            1 :          s% job% center_logP_1st_try_for_create_initial_model = center_logP_1st_try_for_create_initial_model
     672            1 :          s% job% entropy_1st_try_for_create_initial_model = entropy_1st_try_for_create_initial_model
     673            1 :          s% job% abs_e01_tolerance_for_create_initial_model = abs_e01_tolerance_for_create_initial_model
     674            1 :          s% job% abs_e02_tolerance_for_create_initial_model = abs_e02_tolerance_for_create_initial_model
     675            1 :          s% job% max_tries_for_create_initial_model = max_tries_for_create_initial_model
     676              : 
     677            1 :          s% job% initial_model_eps = initial_model_eps
     678            1 :          s% job% save_star_job_namelist = save_star_job_namelist
     679            1 :          s% job% star_job_namelist_name = star_job_namelist_name
     680            1 :          s% job% echo_at_start = echo_at_start
     681            1 :          s% job% echo_at_end = echo_at_end
     682            1 :          s% job% load_saved_model = load_saved_model
     683            1 :          s% job% load_model_filename = load_model_filename
     684            1 :          s% job% create_merger_model = create_merger_model
     685            1 :          s% job% saved_model_for_merger_1 = saved_model_for_merger_1
     686            1 :          s% job% saved_model_for_merger_2 = saved_model_for_merger_2
     687            1 :          s% job% set_max_dt_to_frac_lifetime = set_max_dt_to_frac_lifetime
     688            1 :          s% job% max_frac_of_lifetime_per_step = max_frac_of_lifetime_per_step
     689            1 :          s% job% astero_just_call_my_extras_check_model = astero_just_call_my_extras_check_model
     690            1 :          s% job% relax_mass = relax_mass
     691            1 :          s% job% relax_initial_mass = relax_initial_mass
     692            1 :          s% job% new_mass = new_mass
     693            1 :          s% job% lg_max_abs_mdot = lg_max_abs_mdot
     694            1 :          s% job% relax_mass_to_remove_H_env = relax_mass_to_remove_H_env
     695            1 :          s% job% relax_initial_mass_to_remove_H_env = relax_initial_mass_to_remove_H_env
     696            1 :          s% job% extra_mass_retained_by_remove_H_env = extra_mass_retained_by_remove_H_env
     697            1 :          s% job% relax_mass_scale = relax_mass_scale
     698            1 :          s% job% relax_initial_mass_scale = relax_initial_mass_scale
     699            1 :          s% job% dlgm_per_step = dlgm_per_step
     700              : 
     701            1 :          s% job% relax_M_center_dt = relax_M_center_dt
     702            1 :          s% job% change_mass_years_for_dt = change_mass_years_for_dt
     703            1 :          s% job% relax_M_center = relax_M_center
     704            1 :          s% job% relax_initial_M_center = relax_initial_M_center
     705            1 :          s% job% relax_core = relax_core
     706            1 :          s% job% relax_initial_core = relax_initial_core
     707            1 :          s% job% new_core_mass = new_core_mass
     708            1 :          s% job% dlg_core_mass_per_step = dlg_core_mass_per_step
     709            1 :          s% job% relax_core_years_for_dt = relax_core_years_for_dt
     710            1 :          s% job% core_avg_rho = core_avg_rho
     711            1 :          s% job% core_avg_eps = core_avg_eps
     712              : 
     713            1 :          s% job% relax_R_center = relax_R_center
     714            1 :          s% job% relax_initial_R_center = relax_initial_R_center
     715            1 :          s% job% new_R_center = new_R_center
     716            1 :          s% job% dlgR_per_step = dlgR_per_step
     717            1 :          s% job% relax_R_center_dt = relax_R_center_dt
     718              : 
     719            1 :          s% job% set_v_center = set_v_center
     720            1 :          s% job% set_initial_v_center = set_initial_v_center
     721              : 
     722            1 :          s% job% relax_v_center = relax_v_center
     723            1 :          s% job% relax_initial_v_center = relax_initial_v_center
     724            1 :          s% job% new_v_center = new_v_center
     725            1 :          s% job% dv_per_step = dv_per_step
     726            1 :          s% job% relax_v_center_dt = relax_v_center_dt
     727              : 
     728            1 :          s% job% zero_alpha_RTI = zero_alpha_RTI
     729            1 :          s% job% zero_initial_alpha_RTI = zero_initial_alpha_RTI
     730              : 
     731            1 :          s% job% set_L_center = set_L_center
     732            1 :          s% job% set_initial_L_center = set_initial_L_center
     733            1 :          s% job% relax_L_center = relax_L_center
     734            1 :          s% job% relax_initial_L_center = relax_initial_L_center
     735            1 :          s% job% new_L_center = new_L_center
     736            1 :          s% job% dlgL_per_step = dlgL_per_step
     737            1 :          s% job% relax_L_center_dt = relax_L_center_dt
     738              : 
     739            1 :          s% job% remove_initial_center_at_cell_k = remove_initial_center_at_cell_k
     740            1 :          s% job% remove_initial_center_by_temperature = remove_initial_center_by_temperature
     741            1 :          s% job% remove_initial_center_by_mass_fraction_q = remove_initial_center_by_mass_fraction_q
     742            1 :          s% job% remove_initial_center_by_mass_gm = remove_initial_center_by_mass_gm
     743            1 :          s% job% remove_initial_center_by_delta_mass_Msun = remove_initial_center_by_delta_mass_Msun
     744            1 :          s% job% remove_initial_center_by_delta_mass_gm = remove_initial_center_by_delta_mass_gm
     745            1 :          s% job% remove_initial_center_by_mass_Msun = remove_initial_center_by_mass_Msun
     746            1 :          s% job% remove_initial_center_by_radius_cm = remove_initial_center_by_radius_cm
     747            1 :          s% job% remove_initial_center_by_radius_Rsun = remove_initial_center_by_radius_Rsun
     748            1 :          s% job% remove_initial_center_by_he4 = remove_initial_center_by_he4
     749            1 :          s% job% remove_initial_center_by_c12_o16 = remove_initial_center_by_c12_o16
     750            1 :          s% job% remove_initial_center_by_si28 = remove_initial_center_by_si28
     751            1 :          s% job% remove_initial_center_to_reduce_co56_ni56 = remove_initial_center_to_reduce_co56_ni56
     752            1 :          s% job% remove_initial_center_by_ye = remove_initial_center_by_ye
     753            1 :          s% job% remove_initial_center_by_entropy = remove_initial_center_by_entropy
     754            1 :          s% job% remove_initial_center_by_infall_kms = remove_initial_center_by_infall_kms
     755            1 :          s% job% remove_initial_center_at_inner_max_abs_v = remove_initial_center_at_inner_max_abs_v
     756            1 :          s% job% remove_initial_fe_core = remove_initial_fe_core
     757              : 
     758            1 :          s% job% remove_center_at_cell_k = remove_center_at_cell_k
     759            1 :          s% job% remove_center_by_temperature = remove_center_by_temperature
     760            1 :          s% job% remove_center_by_mass_fraction_q = remove_center_by_mass_fraction_q
     761            1 :          s% job% remove_center_by_delta_mass_gm = remove_center_by_delta_mass_gm
     762            1 :          s% job% remove_center_by_delta_mass_Msun = remove_center_by_delta_mass_Msun
     763            1 :          s% job% remove_center_by_mass_gm = remove_center_by_mass_gm
     764            1 :          s% job% remove_center_by_mass_Msun = remove_center_by_mass_Msun
     765            1 :          s% job% remove_center_by_radius_cm = remove_center_by_radius_cm
     766            1 :          s% job% remove_center_by_radius_Rsun = remove_center_by_radius_Rsun
     767            1 :          s% job% remove_center_by_he4 = remove_center_by_he4
     768            1 :          s% job% remove_center_by_c12_o16 = remove_center_by_c12_o16
     769            1 :          s% job% remove_center_by_si28 = remove_center_by_si28
     770            1 :          s% job% remove_center_to_reduce_co56_ni56 = remove_center_to_reduce_co56_ni56
     771            1 :          s% job% remove_center_by_ye = remove_center_by_ye
     772            1 :          s% job% remove_center_by_entropy = remove_center_by_entropy
     773            1 :          s% job% remove_center_by_infall_kms = remove_center_by_infall_kms
     774            1 :          s% job% remove_center_at_inner_max_abs_v = remove_center_at_inner_max_abs_v
     775            1 :          s% job% remove_fe_core = remove_fe_core
     776            1 :          s% job% remove_fallback_at_each_step = remove_fallback_at_each_step
     777            1 :          s% job% fallback_check_total_energy = fallback_check_total_energy
     778            1 :          s% job% remove_fallback_speed_limit = remove_fallback_speed_limit
     779            1 :          s% job% remove_center_set_zero_v_center = remove_center_set_zero_v_center
     780            1 :          s% job% retain_fallback_at_each_step = retain_fallback_at_each_step
     781            1 :          s% job% limit_center_logP_at_each_step = limit_center_logP_at_each_step
     782            1 :          s% job% remove_center_adjust_L_center = remove_center_adjust_L_center
     783            1 :          s% job% remove_center_logRho_limit = remove_center_logRho_limit
     784              : 
     785            1 :          s% job% zero_initial_inner_v_by_mass_Msun = zero_initial_inner_v_by_mass_Msun
     786            1 :          s% job% zero_inner_v_by_mass_Msun = zero_inner_v_by_mass_Msun
     787              : 
     788            1 :          s% job% remove_initial_surface_at_cell_k = remove_initial_surface_at_cell_k
     789            1 :          s% job% remove_initial_surface_at_he_core_boundary = remove_initial_surface_at_he_core_boundary
     790            1 :          s% job% remove_initial_surface_by_optical_depth = remove_initial_surface_by_optical_depth
     791            1 :          s% job% remove_initial_surface_by_density = remove_initial_surface_by_density
     792            1 :          s% job% remove_initial_surface_by_pressure = remove_initial_surface_by_pressure
     793            1 :          s% job% remove_initial_surface_by_mass_fraction_q = remove_initial_surface_by_mass_fraction_q
     794            1 :          s% job% remove_initial_surface_by_mass_gm = remove_initial_surface_by_mass_gm
     795            1 :          s% job% remove_initial_surface_by_radius_cm = remove_initial_surface_by_radius_cm
     796            1 :          s% job% remove_initial_surface_by_mass_Msun = remove_initial_surface_by_mass_Msun
     797            1 :          s% job% remove_initial_surface_by_radius_Rsun = remove_initial_surface_by_radius_Rsun
     798            1 :          s% job% remove_initial_surface_by_v_surf_km_s = remove_initial_surface_by_v_surf_km_s
     799            1 :          s% job% remove_initial_surface_by_v_surf_div_cs = remove_initial_surface_by_v_surf_div_cs
     800            1 :          s% job% remove_initial_surface_by_v_surf_div_v_escape = remove_initial_surface_by_v_surf_div_v_escape
     801              : 
     802            1 :          s% job% remove_surface_at_cell_k = remove_surface_at_cell_k
     803            1 :          s% job% remove_surface_at_he_core_boundary = remove_surface_at_he_core_boundary
     804            1 :          s% job% remove_surface_by_optical_depth = remove_surface_by_optical_depth
     805            1 :          s% job% remove_surface_by_density = remove_surface_by_density
     806            1 :          s% job% remove_surface_by_pressure = remove_surface_by_pressure
     807            1 :          s% job% remove_surface_by_mass_fraction_q = remove_surface_by_mass_fraction_q
     808            1 :          s% job% remove_surface_by_mass_gm = remove_surface_by_mass_gm
     809            1 :          s% job% remove_surface_by_radius_cm = remove_surface_by_radius_cm
     810            1 :          s% job% remove_surface_by_mass_Msun = remove_surface_by_mass_Msun
     811            1 :          s% job% remove_surface_by_radius_Rsun = remove_surface_by_radius_Rsun
     812            1 :          s% job% remove_surface_by_v_surf_km_s = remove_surface_by_v_surf_km_s
     813            1 :          s% job% remove_surface_by_v_surf_div_cs = remove_surface_by_v_surf_div_cs
     814            1 :          s% job% remove_surface_by_v_surf_div_v_escape = remove_surface_by_v_surf_div_v_escape
     815            1 :          s% job% min_q_for_remove_surface_by_v_surf_div_v_escape = min_q_for_remove_surface_by_v_surf_div_v_escape
     816            1 :          s% job% max_q_for_remove_surface_by_v_surf_div_v_escape = max_q_for_remove_surface_by_v_surf_div_v_escape
     817              : 
     818            1 :          s% job% remove_surface_do_jrot = remove_surface_do_jrot
     819            1 :          s% job% remove_surface_do_entropy = remove_surface_do_entropy
     820            1 :          s% job% remove_surface_turn_off_energy_sources_and_sinks = remove_surface_turn_off_energy_sources_and_sinks
     821            1 :          s% job% remove_surface_by_relax_to_star_cut = remove_surface_by_relax_to_star_cut
     822              : 
     823            1 :          s% job% report_mass_not_fe56 = report_mass_not_fe56
     824            1 :          s% job% relax_dxdt_nuc_factor = relax_dxdt_nuc_factor
     825            1 :          s% job% relax_initial_dxdt_nuc_factor = relax_initial_dxdt_nuc_factor
     826            1 :          s% job% new_dxdt_nuc_factor = new_dxdt_nuc_factor
     827            1 :          s% job% dxdt_nuc_factor_multiplier = dxdt_nuc_factor_multiplier
     828            1 :          s% job% relax_eps_nuc_factor = relax_eps_nuc_factor
     829            1 :          s% job% relax_initial_eps_nuc_factor = relax_initial_eps_nuc_factor
     830            1 :          s% job% new_eps_nuc_factor = new_eps_nuc_factor
     831            1 :          s% job% eps_nuc_factor_multiplier = eps_nuc_factor_multiplier
     832            1 :          s% job% relax_opacity_max = relax_opacity_max
     833            1 :          s% job% relax_initial_opacity_max = relax_initial_opacity_max
     834            1 :          s% job% new_opacity_max = new_opacity_max
     835            1 :          s% job% opacity_max_multiplier = opacity_max_multiplier
     836            1 :          s% job% relax_max_surf_dq = relax_max_surf_dq
     837            1 :          s% job% relax_initial_max_surf_dq = relax_initial_max_surf_dq
     838            1 :          s% job% new_max_surf_dq = new_max_surf_dq
     839            1 :          s% job% max_surf_dq_multiplier = max_surf_dq_multiplier
     840              : 
     841            1 :          s% job% relax_tau_factor = relax_tau_factor
     842            1 :          s% job% relax_initial_tau_factor = relax_initial_tau_factor
     843            1 :          s% job% set_tau_factor = set_tau_factor
     844            1 :          s% job% set_initial_tau_factor = set_initial_tau_factor
     845            1 :          s% job% relax_to_this_tau_factor = relax_to_this_tau_factor
     846            1 :          s% job% set_to_this_tau_factor = set_to_this_tau_factor
     847            1 :          s% job% dlogtau_factor = dlogtau_factor
     848            1 :          s% job% set_tau_factor_after_core_He_burn = set_tau_factor_after_core_He_burn
     849            1 :          s% job% set_tau_factor_after_core_C_burn = set_tau_factor_after_core_C_burn
     850            1 :          s% job% relax_tau_factor_after_core_He_burn = relax_tau_factor_after_core_He_burn
     851            1 :          s% job% relax_tau_factor_after_core_C_burn = relax_tau_factor_after_core_C_burn
     852              : 
     853            1 :          s% job% adjust_tau_factor_to_surf_density = adjust_tau_factor_to_surf_density
     854            1 :          s% job% base_for_adjust_tau_factor_to_surf_density = base_for_adjust_tau_factor_to_surf_density
     855              : 
     856            1 :          s% job% relax_to_this_opacity_factor = relax_to_this_opacity_factor
     857            1 :          s% job% d_opacity_factor = d_opacity_factor
     858            1 :          s% job% relax_opacity_factor = relax_opacity_factor
     859            1 :          s% job% relax_initial_opacity_factor = relax_initial_opacity_factor
     860              : 
     861            1 :          s% job% relax_Tsurf_factor = relax_Tsurf_factor
     862            1 :          s% job% relax_initial_Tsurf_factor = relax_initial_Tsurf_factor
     863            1 :          s% job% set_Tsurf_factor = set_Tsurf_factor
     864            1 :          s% job% set_initial_Tsurf_factor = set_initial_Tsurf_factor
     865            1 :          s% job% relax_to_this_Tsurf_factor = relax_to_this_Tsurf_factor
     866            1 :          s% job% set_to_this_Tsurf_factor = set_to_this_Tsurf_factor
     867            1 :          s% job% dlogTsurf_factor = dlogTsurf_factor
     868              : 
     869            1 :          s% job% relax_irradiation = relax_irradiation
     870            1 :          s% job% relax_initial_irradiation = relax_initial_irradiation
     871            1 :          s% job% set_irradiation = set_irradiation
     872            1 :          s% job% set_initial_irradiation = set_initial_irradiation
     873            1 :          s% job% relax_irradiation_min_steps = relax_irradiation_min_steps
     874            1 :          s% job% relax_to_this_irrad_flux = relax_to_this_irrad_flux
     875            1 :          s% job% set_to_this_irrad_flux = set_to_this_irrad_flux
     876            1 :          s% job% irrad_col_depth = irrad_col_depth
     877            1 :          s% job% relax_irradiation_max_yrs_dt = relax_irradiation_max_yrs_dt
     878            1 :          s% job% relax_mass_change = relax_mass_change
     879            1 :          s% job% relax_initial_mass_change = relax_initial_mass_change
     880            1 :          s% job% relax_mass_change_min_steps = relax_mass_change_min_steps
     881            1 :          s% job% relax_mass_change_max_yrs_dt = relax_mass_change_max_yrs_dt
     882            1 :          s% job% relax_mass_change_init_mdot = relax_mass_change_init_mdot
     883            1 :          s% job% relax_mass_change_final_mdot = relax_mass_change_final_mdot
     884            1 :          s% job% change_RTI_flag = change_RTI_flag
     885            1 :          s% job% change_initial_RTI_flag = change_initial_RTI_flag
     886            1 :          s% job% new_RTI_flag = new_RTI_flag
     887            1 :          s% job% change_RSP_flag = change_RSP_flag
     888            1 :          s% job% change_initial_RSP_flag = change_initial_RSP_flag
     889            1 :          s% job% new_RSP_flag = new_RSP_flag
     890            1 :          s% job% change_RSP2_flag = change_RSP2_flag
     891            1 :          s% job% change_initial_RSP2_flag = change_initial_RSP2_flag
     892            1 :          s% job% change_RSP2_flag_at_model_number = change_RSP2_flag_at_model_number
     893            1 :          s% job% new_RSP2_flag = new_RSP2_flag
     894            1 :          s% job% create_RSP2_model = create_RSP2_model
     895            1 :          s% job% change_w_div_wc_flag = change_w_div_wc_flag
     896            1 :          s% job% change_initial_w_div_wc_flag = change_initial_w_div_wc_flag
     897            1 :          s% job% new_w_div_wc_flag = new_w_div_wc_flag
     898            1 :          s% job% change_j_rot_flag = change_j_rot_flag
     899            1 :          s% job% change_initial_j_rot_flag = change_initial_j_rot_flag
     900            1 :          s% job% new_j_rot_flag = new_j_rot_flag
     901              : 
     902            1 :          s% job% create_RSP_model = create_RSP_model
     903              : 
     904            1 :          s% job% change_v_flag = change_v_flag
     905            1 :          s% job% change_initial_v_flag = change_initial_v_flag
     906            1 :          s% job% new_v_flag = new_v_flag
     907            1 :          s% job% change_D_omega_flag = change_D_omega_flag
     908            1 :          s% job% change_initial_D_omega_flag = change_initial_D_omega_flag
     909            1 :          s% job% new_D_omega_flag = new_D_omega_flag
     910            1 :          s% job% change_am_nu_rot_flag = change_am_nu_rot_flag
     911            1 :          s% job% change_initial_am_nu_rot_flag = change_initial_am_nu_rot_flag
     912            1 :          s% job% new_am_nu_rot_flag = new_am_nu_rot_flag
     913            1 :          s% job% use_D_omega_for_am_nu_rot = use_D_omega_for_am_nu_rot
     914              : 
     915            1 :          s% job% change_u_flag = change_u_flag
     916            1 :          s% job% change_initial_u_flag = change_initial_u_flag
     917            1 :          s% job% new_u_flag = new_u_flag
     918              : 
     919            1 :          s% job% change_reconstruction_flag = change_reconstruction_flag
     920            1 :          s% job% change_initial_reconstruction_flag = change_initial_reconstruction_flag
     921            1 :          s% job% new_reconstruction_flag = new_reconstruction_flag
     922              : 
     923            1 :          s% job% center_ye_limit_for_v_flag = center_ye_limit_for_v_flag
     924            1 :          s% job% change_rotation_flag = change_rotation_flag
     925            1 :          s% job% change_initial_rotation_flag = change_initial_rotation_flag
     926            1 :          s% job% new_rotation_flag = new_rotation_flag
     927            1 :          s% job% use_w_div_wc_flag_with_rotation = use_w_div_wc_flag_with_rotation
     928            1 :          s% job% use_j_rot_flag_with_rotation = use_j_rot_flag_with_rotation
     929            1 :          s% job% set_omega = set_omega
     930            1 :          s% job% set_initial_omega = set_initial_omega
     931            1 :          s% job% set_omega_step_limit = set_omega_step_limit
     932            1 :          s% job% set_near_zams_omega_steps = set_near_zams_omega_steps
     933            1 :          s% job% new_omega = new_omega
     934            1 :          s% job% set_omega_div_omega_crit = set_omega_div_omega_crit
     935            1 :          s% job% set_initial_omega_div_omega_crit = set_initial_omega_div_omega_crit
     936            1 :          s% job% set_omega_div_omega_crit_step_limit = set_omega_div_omega_crit_step_limit
     937            1 :          s% job% set_near_zams_omega_div_omega_crit_steps = set_near_zams_omega_div_omega_crit_steps
     938            1 :          s% job% new_omega_div_omega_crit = new_omega_div_omega_crit
     939            1 :          s% job% set_surface_rotation_v = set_surface_rotation_v
     940            1 :          s% job% set_initial_surface_rotation_v = set_initial_surface_rotation_v
     941            1 :          s% job% set_surf_rotation_v_step_limit = set_surf_rotation_v_step_limit
     942            1 :          s% job% set_near_zams_surface_rotation_v_steps = set_near_zams_surface_rotation_v_steps
     943            1 :          s% job% new_surface_rotation_v = new_surface_rotation_v
     944            1 :          s% job% relax_omega = relax_omega
     945            1 :          s% job% relax_initial_omega = relax_initial_omega
     946            1 :          s% job% near_zams_relax_omega = near_zams_relax_omega
     947            1 :          s% job% relax_omega_div_omega_crit = relax_omega_div_omega_crit
     948            1 :          s% job% relax_initial_omega_div_omega_crit = relax_initial_omega_div_omega_crit
     949            1 :          s% job% near_zams_relax_omega_div_omega_crit = near_zams_relax_omega_div_omega_crit
     950            1 :          s% job% relax_surface_rotation_v = relax_surface_rotation_v
     951            1 :          s% job% relax_initial_surface_rotation_v = relax_initial_surface_rotation_v
     952            1 :          s% job% near_zams_relax_initial_surface_rotation_v = near_zams_relax_initial_surface_rotation_v
     953            1 :          s% job% num_steps_to_relax_rotation = num_steps_to_relax_rotation
     954            1 :          s% job% relax_omega_max_yrs_dt = relax_omega_max_yrs_dt
     955            1 :          s% job% set_uniform_initial_composition = set_uniform_initial_composition
     956            1 :          s% job% initial_h1 = initial_h1
     957            1 :          s% job% initial_h2 = initial_h2
     958            1 :          s% job% initial_he3 = initial_he3
     959            1 :          s% job% initial_he4 = initial_he4
     960            1 :          s% job% initial_zfracs = initial_zfracs
     961            1 :          s% job% dump_missing_metals_into_heaviest = dump_missing_metals_into_heaviest
     962            1 :          s% job% relax_initial_composition = relax_initial_composition
     963            1 :          s% job% relax_initial_to_xaccrete = relax_initial_to_xaccrete
     964            1 :          s% job% relax_composition_filename = relax_composition_filename
     965            1 :          s% job% num_steps_to_relax_composition = num_steps_to_relax_composition
     966            1 :          s% job% timescale_for_relax_composition = timescale_for_relax_composition
     967            1 :          s% job% relax_initial_angular_momentum = relax_initial_angular_momentum
     968            1 :          s% job% max_steps_to_relax_angular_momentum = max_steps_to_relax_angular_momentum
     969            1 :          s% job% timescale_for_relax_angular_momentum = timescale_for_relax_angular_momentum
     970            1 :          s% job% max_dt_for_relax_angular_momentum = max_dt_for_relax_angular_momentum
     971            1 :          s% job% num_timescales_for_relax_angular_momentum = num_timescales_for_relax_angular_momentum
     972            1 :          s% job% relax_angular_momentum_filename = relax_angular_momentum_filename
     973            1 :          s% job% relax_angular_momentum_constant_omega_center = relax_angular_momentum_constant_omega_center
     974            1 :          s% job% relax_initial_entropy = relax_initial_entropy
     975            1 :          s% job% max_steps_to_relax_entropy = max_steps_to_relax_entropy
     976            1 :          s% job% timescale_for_relax_entropy = timescale_for_relax_entropy
     977            1 :          s% job% max_dt_for_relax_entropy = max_dt_for_relax_entropy
     978            1 :          s% job% num_timescales_for_relax_entropy = num_timescales_for_relax_entropy
     979            1 :          s% job% relax_entropy_filename = relax_entropy_filename
     980            1 :          s% job% get_entropy_for_relax_from_eos = get_entropy_for_relax_from_eos
     981            1 :          s% job% report_cell_for_xm = report_cell_for_xm
     982            1 :          s% job% set_to_xa_for_accretion = set_to_xa_for_accretion
     983            1 :          s% job% set_initial_to_xa_for_accretion = set_initial_to_xa_for_accretion
     984            1 :          s% job% set_nzlo = set_nzlo
     985            1 :          s% job% set_nzhi = set_nzhi
     986            1 :          s% job% change_Y = change_Y
     987            1 :          s% job% change_initial_Y = change_initial_Y
     988            1 :          s% job% relax_Y = relax_Y
     989            1 :          s% job% relax_initial_Y = relax_initial_Y
     990            1 :          s% job% relax_Y_minq = relax_Y_minq
     991            1 :          s% job% relax_Y_maxq = relax_Y_maxq
     992            1 :          s% job% new_Y = new_Y
     993            1 :          s% job% change_Z = change_Z
     994            1 :          s% job% change_initial_Z = change_initial_Z
     995            1 :          s% job% relax_Z = relax_Z
     996            1 :          s% job% relax_initial_Z = relax_initial_Z
     997            1 :          s% job% relax_Z_minq = relax_Z_minq
     998            1 :          s% job% relax_Z_maxq = relax_Z_maxq
     999            1 :          s% job% new_Z = new_Z
    1000            1 :          s% job% steps_to_take_before_terminate = steps_to_take_before_terminate
    1001            1 :          s% job% stop_if_this_file_exists = stop_if_this_file_exists
    1002            1 :          s% job% set_initial_age = set_initial_age
    1003            1 :          s% job% initial_age = initial_age
    1004            1 :          s% job% set_initial_model_number = set_initial_model_number
    1005            1 :          s% job% initial_model_number = initial_model_number
    1006            1 :          s% job% set_initial_number_retries = set_initial_number_retries
    1007            1 :          s% job% initial_number_retries = initial_number_retries
    1008            1 :          s% job% set_initial_dt = set_initial_dt
    1009            1 :          s% job% limit_initial_dt = limit_initial_dt
    1010            1 :          s% job% years_for_initial_dt = years_for_initial_dt
    1011            1 :          s% job% seconds_for_initial_dt = seconds_for_initial_dt
    1012              : 
    1013            1 :          s% job% set_initial_cumulative_energy_error = set_initial_cumulative_energy_error
    1014            1 :          s% job% set_cumulative_energy_error = set_cumulative_energy_error
    1015            1 :          s% job% set_cumulative_energy_error_at_step = set_cumulative_energy_error_at_step
    1016            1 :          s% job% set_cumulative_energy_error_each_step_if_age_less_than = set_cumulative_energy_error_each_step_if_age_less_than
    1017            1 :          s% job% new_cumulative_energy_error = new_cumulative_energy_error
    1018            1 :          s% job% set_cumulative_energy_error_each_relax = set_cumulative_energy_error_each_relax
    1019              : 
    1020            1 :          s% job% change_net = change_net
    1021            1 :          s% job% change_initial_net = change_initial_net
    1022            1 :          s% job% new_net_name = new_net_name
    1023            1 :          s% job% change_small_net = change_small_net
    1024            1 :          s% job% change_initial_small_net = change_initial_small_net
    1025            1 :          s% job% new_small_net_name = new_small_net_name
    1026              : 
    1027            1 :          s% job% h_he_net = h_he_net
    1028            1 :          s% job% co_net = co_net
    1029            1 :          s% job% adv_net = adv_net
    1030            1 :          s% job% adjust_abundances_for_new_isos = adjust_abundances_for_new_isos
    1031            1 :          s% job% set_uniform_xa_from_file = set_uniform_xa_from_file
    1032            1 :          s% job% set_uniform_initial_xa_from_file = set_uniform_initial_xa_from_file
    1033            1 :          s% job% file_for_uniform_xa = file_for_uniform_xa
    1034              : 
    1035            1 :          s% job% mix_section = mix_section
    1036            1 :          s% job% mix_initial_section = mix_initial_section
    1037            1 :          s% job% mix_section_nzlo = mix_section_nzlo
    1038            1 :          s% job% mix_section_nzhi = mix_section_nzhi
    1039              : 
    1040            1 :          s% job% T9_weaklib_full_off = T9_weaklib_full_off
    1041            1 :          s% job% T9_weaklib_full_on = T9_weaklib_full_on
    1042            1 :          s% job% weaklib_blend_hi_Z = weaklib_blend_hi_Z
    1043            1 :          s% job% T9_weaklib_full_off_hi_Z = T9_weaklib_full_off_hi_Z
    1044            1 :          s% job% T9_weaklib_full_on_hi_Z = T9_weaklib_full_on_hi_Z
    1045              : 
    1046            1 :          s% job% use_suzuki_weak_rates = use_suzuki_weak_rates
    1047            1 :          s% job% use_3a_fl87 = use_3a_fl87
    1048              : 
    1049            1 :          s% job% use_special_weak_rates = use_special_weak_rates
    1050            1 :          s% job% special_weak_states_file = special_weak_states_file
    1051            1 :          s% job% special_weak_transitions_file = special_weak_transitions_file
    1052            1 :          s% job% ion_coulomb_corrections = ion_coulomb_corrections
    1053            1 :          s% job% electron_coulomb_corrections = electron_coulomb_corrections
    1054              : 
    1055            1 :          s% job% mix_envelope_down_to_T = mix_envelope_down_to_T
    1056            1 :          s% job% mix_initial_envelope_down_to_T = mix_initial_envelope_down_to_T
    1057            1 :          s% job% auto_extend_net = auto_extend_net
    1058              : 
    1059            1 :          s% job% enable_adaptive_network = enable_adaptive_network
    1060            1 :          s% job% min_x_for_keep = min_x_for_keep
    1061            1 :          s% job% min_x_for_n = min_x_for_n
    1062            1 :          s% job% min_x_for_add = min_x_for_add
    1063            1 :          s% job% max_Z_for_add = max_Z_for_add
    1064            1 :          s% job% max_N_for_add = max_N_for_add
    1065            1 :          s% job% max_A_for_add = max_A_for_add
    1066              : 
    1067            1 :          s% job% save_model_number = save_model_number
    1068            1 :          s% job% save_model_filename = save_model_filename
    1069            1 :          s% job% save_model_when_terminate = save_model_when_terminate
    1070           10 :          s% job% required_termination_code_string = required_termination_code_string
    1071            1 :          s% job% profile_starting_model = profile_starting_model
    1072            1 :          s% job% profile_model_number = profile_model_number
    1073            1 :          s% job% report_retries = report_retries
    1074              : 
    1075            1 :          s% job% net_reaction_filename = net_reaction_filename
    1076            1 :          s% job% jina_reaclib_filename = jina_reaclib_filename
    1077            1 :          s% job% jina_reaclib_min_T9 = jina_reaclib_min_T9
    1078            1 :          s% job% rate_tables_dir = rate_tables_dir
    1079            1 :          s% job% rate_cache_suffix = rate_cache_suffix
    1080            6 :          s% job% read_extra_star_job_inlist = read_extra_star_job_inlist
    1081            6 :          s% job% extra_star_job_inlist_name = extra_star_job_inlist_name
    1082            1 :          s% job% set_abundance_nzlo = set_abundance_nzlo
    1083            1 :          s% job% set_abundance_nzhi = set_abundance_nzhi
    1084            1 :          s% job% set_abundance = set_abundance
    1085            1 :          s% job% set_initial_abundance = set_initial_abundance
    1086            1 :          s% job% chem_name = chem_name
    1087            1 :          s% job% new_frac = new_frac
    1088            1 :          s% job% set_abundance_nzlo = set_abundance_nzlo
    1089            1 :          s% job% set_abundance_nzhi = set_abundance_nzhi
    1090            1 :          s% job% replace_element = replace_element
    1091            1 :          s% job% replace_initial_element = replace_initial_element
    1092            1 :          s% job% chem_name1 = chem_name1
    1093            1 :          s% job% chem_name2 = chem_name2
    1094            1 :          s% job% replace_element_nzlo = replace_element_nzlo
    1095            1 :          s% job% replace_element_nzhi = replace_element_nzhi
    1096            1 :          s% job% do_special_test = do_special_test
    1097              : 
    1098            1 :          s% job% save_pulse_data_for_model_number = save_pulse_data_for_model_number
    1099            1 :          s% job% save_pulse_data_when_terminate = save_pulse_data_when_terminate
    1100            1 :          s% job% save_pulse_data_filename = save_pulse_data_filename
    1101              : 
    1102            1 :          s% job% chem_isotopes_filename = chem_isotopes_filename
    1103            1 :          s% job% ionization_file_prefix = ionization_file_prefix
    1104            1 :          s% job% ionization_Z1_suffix = ionization_Z1_suffix
    1105            1 :          s% job% extras_lipar = extras_lipar
    1106            1 :          s% job% extras_lrpar = extras_lrpar
    1107            1 :          s% job% extras_lcpar = extras_lcpar
    1108            1 :          s% job% extras_llpar = extras_llpar
    1109           21 :          s% job% extras_ipar = extras_ipar
    1110           21 :          s% job% extras_rpar = extras_rpar
    1111           21 :          s% job% extras_cpar = extras_cpar
    1112           21 :          s% job% extras_lpar = extras_lpar
    1113            1 :          s% job% num_special_rate_factors = num_special_rate_factors
    1114          501 :          s% job% special_rate_factor = special_rate_factor
    1115          501 :          s% job% filename_of_special_rate = filename_of_special_rate
    1116          501 :          s% job% reaction_for_special_factor = reaction_for_special_factor
    1117            1 :          s% job% color_num_files = color_num_files
    1118           11 :          s% job% color_file_names = color_file_names
    1119           21 :          s% job% color_num_colors = color_num_colors
    1120              : 
    1121            1 :          s% job% warn_run_star_extras = warn_run_star_extras
    1122            1 :          s% job% report_garbage_collection = report_garbage_collection
    1123            1 :          s% job% num_steps_for_garbage_collection = num_steps_for_garbage_collection
    1124              : 
    1125            1 :       end subroutine store_star_job_controls
    1126              : 
    1127              : 
    1128            1 :       subroutine set_default_star_job_controls
    1129           10 :          required_termination_code_string(:) = ''
    1130            1 :          extras_ipar(:) = 0
    1131            1 :          extras_rpar(:) = 0
    1132           21 :          extras_cpar(:) = ''
    1133            1 :          extras_lpar(:) = .false.
    1134          501 :          special_rate_factor(:) = 1d0
    1135          501 :          filename_of_special_rate(:) = ''
    1136          501 :          reaction_for_special_factor(:) = ''
    1137            1 :          color_num_colors(:) = 0
    1138           11 :          color_file_names(:) = ''
    1139              :          include 'star_job.defaults'
    1140              :          include 'star_job_dev.defaults'
    1141            1 :       end subroutine set_default_star_job_controls
    1142              : 
    1143              : 
    1144            1 :       subroutine check_star_job_controls(s, ierr)
    1145              :          type (star_info), pointer :: s
    1146              :          integer, intent(out) :: ierr
    1147              : 
    1148            1 :          ierr = 0
    1149              : 
    1150            1 :          if (s% job% write_profile_when_terminate) then
    1151            0 :             if (len_trim(s% job% filename_for_profile_when_terminate) == 0) then
    1152            0 :                write(*,*) "when write_profile_when_terminate = .true.,"
    1153            0 :                write(*,*) "filename_for_profile_when_terminate must be non empty"
    1154            0 :                ierr = -1
    1155            0 :                return
    1156              :             end if
    1157              :          end if
    1158              : 
    1159            1 :          if (s% job% save_model_when_terminate) then
    1160            0 :             if (len_trim(s% job% save_model_filename) == 0) then
    1161            0 :                write(*,*) "when save_model_when_terminate = .true.,"
    1162            0 :                write(*,*) "filename_for_profile_when_terminate must be non empty"
    1163            0 :                ierr = -1
    1164            0 :                return
    1165              :             end if
    1166              :          end if
    1167              : 
    1168              :       end subroutine check_star_job_controls
    1169              : 
    1170              : 
    1171            0 :       subroutine set_star_job_controls_for_writing(s, ierr)
    1172              :          type (star_info), pointer :: s
    1173              :          integer, intent(out) :: ierr
    1174              : 
    1175            0 :          ierr = 0
    1176              : 
    1177            0 :          mesa_dir = s% job% mesa_dir
    1178            0 :          eosDT_cache_dir = s% job% eosDT_cache_dir
    1179            0 :          ionization_cache_dir = s% job% ionization_cache_dir
    1180            0 :          kap_cache_dir = s% job% kap_cache_dir
    1181            0 :          rates_cache_dir = s% job% rates_cache_dir
    1182            0 :          pause_before_terminate = s% job% pause_before_terminate
    1183            0 :          profile_columns_file = s% job% profile_columns_file
    1184            0 :          history_columns_file = s% job% history_columns_file
    1185            0 :          show_log_description_at_start = s% job% show_log_description_at_start
    1186            0 :          list_net_reactions = s% job% list_net_reactions
    1187            0 :          show_net_reactions_info = s% job% show_net_reactions_info
    1188            0 :          show_net_species_info = s% job% show_net_species_info
    1189            0 :          first_model_for_timing = s% job% first_model_for_timing
    1190            0 :          steps_before_start_timing = s% job% steps_before_start_timing
    1191            0 :          show_eqns_and_vars_names = s% job% show_eqns_and_vars_names
    1192            0 :          pgstar_flag = s% job% pgstar_flag
    1193            0 :          disable_pgstar_during_relax_flag = s% job% disable_pgstar_during_relax_flag
    1194            0 :          clear_initial_pgstar_history = s% job% clear_initial_pgstar_history
    1195            0 :          clear_pgstar_history = s% job% clear_pgstar_history
    1196            0 :          save_pgstar_files_when_terminate = s% job% save_pgstar_files_when_terminate
    1197            0 :          save_photo_when_terminate = s% job% save_photo_when_terminate
    1198            0 :          load_saved_photo = s% job% load_saved_photo
    1199            0 :          saved_photo_name = s% job% saved_photo_name
    1200            0 :          save_photo_filename = s% job% save_photo_filename
    1201            0 :          save_photo_number = s% job% save_photo_number
    1202            0 :          write_profile_when_terminate = s% job% write_profile_when_terminate
    1203            0 :          show_retry_counts_when_terminate = s% job% show_retry_counts_when_terminate
    1204            0 :          show_timestep_limit_counts_when_terminate = s% job% show_timestep_limit_counts_when_terminate
    1205            0 :          filename_for_profile_when_terminate = s% job% filename_for_profile_when_terminate
    1206            0 :          create_pre_main_sequence_model = s% job% create_pre_main_sequence_model
    1207            0 :          pre_ms_relax_to_start_radiative_core = s% job% pre_ms_relax_to_start_radiative_core
    1208            0 :          pre_ms_relax_num_steps = s% job% pre_ms_relax_num_steps
    1209            0 :          pre_ms_min_steps_before_check_radiative_core = s% job% pre_ms_min_steps_before_check_radiative_core
    1210            0 :          pre_ms_check_radiative_core_start = s% job% pre_ms_check_radiative_core_start
    1211            0 :          pre_ms_check_radiative_core_stop = s% job% pre_ms_check_radiative_core_stop
    1212            0 :          pre_ms_check_radiative_core_Lnuc_div_L_limit = s% job% pre_ms_check_radiative_core_Lnuc_div_L_limit
    1213            0 :          pre_ms_check_radiative_core_min_mass = s% job% pre_ms_check_radiative_core_min_mass
    1214            0 :          pre_ms_T_c = s% job% pre_ms_T_c
    1215            0 :          pre_ms_guess_rho_c = s% job% pre_ms_guess_rho_c
    1216            0 :          pre_ms_d_log10_P = s% job% pre_ms_d_log10_P
    1217            0 :          pre_ms_logT_surf_limit = s% job% pre_ms_logT_surf_limit
    1218            0 :          pre_ms_logP_surf_limit = s% job% pre_ms_logP_surf_limit
    1219            0 :          create_initial_model = s% job% create_initial_model
    1220            0 :          initial_model_relax_num_steps = s% job% initial_model_relax_num_steps
    1221            0 :          radius_in_cm_for_create_initial_model = s% job% radius_in_cm_for_create_initial_model
    1222            0 :          mass_in_gm_for_create_initial_model = s% job% mass_in_gm_for_create_initial_model
    1223              : 
    1224            0 :          center_logP_1st_try_for_create_initial_model = s% job% center_logP_1st_try_for_create_initial_model
    1225            0 :          entropy_1st_try_for_create_initial_model = s% job% entropy_1st_try_for_create_initial_model
    1226            0 :          abs_e01_tolerance_for_create_initial_model = s% job% abs_e01_tolerance_for_create_initial_model
    1227            0 :          abs_e02_tolerance_for_create_initial_model = s% job% abs_e02_tolerance_for_create_initial_model
    1228            0 :          max_tries_for_create_initial_model = s% job% max_tries_for_create_initial_model
    1229              : 
    1230            0 :          initial_model_eps = s% job% initial_model_eps
    1231            0 :          save_star_job_namelist = s% job% save_star_job_namelist
    1232            0 :          star_job_namelist_name = s% job% star_job_namelist_name
    1233            0 :          echo_at_start = s% job% echo_at_start
    1234            0 :          echo_at_end = s% job% echo_at_end
    1235            0 :          load_saved_model = s% job% load_saved_model
    1236            0 :          load_model_filename = s% job% load_model_filename
    1237            0 :          create_merger_model = s% job% create_merger_model
    1238            0 :          saved_model_for_merger_1 = s% job% saved_model_for_merger_1
    1239            0 :          saved_model_for_merger_2 = s% job% saved_model_for_merger_2
    1240            0 :          set_max_dt_to_frac_lifetime = s% job% set_max_dt_to_frac_lifetime
    1241            0 :          max_frac_of_lifetime_per_step = s% job% max_frac_of_lifetime_per_step
    1242            0 :          astero_just_call_my_extras_check_model = s% job% astero_just_call_my_extras_check_model
    1243            0 :          relax_mass = s% job% relax_mass
    1244            0 :          relax_initial_mass = s% job% relax_initial_mass
    1245            0 :          new_mass = s% job% new_mass
    1246            0 :          lg_max_abs_mdot = s% job% lg_max_abs_mdot
    1247            0 :          relax_mass_to_remove_H_env = s% job% relax_mass_to_remove_H_env
    1248            0 :          relax_initial_mass_to_remove_H_env = s% job% relax_initial_mass_to_remove_H_env
    1249            0 :          extra_mass_retained_by_remove_H_env = s% job% extra_mass_retained_by_remove_H_env
    1250            0 :          relax_mass_scale = s% job% relax_mass_scale
    1251            0 :          relax_initial_mass_scale = s% job% relax_initial_mass_scale
    1252            0 :          dlgm_per_step = s% job% dlgm_per_step
    1253              : 
    1254            0 :          relax_M_center_dt = s% job% relax_M_center_dt
    1255            0 :          change_mass_years_for_dt = s% job% change_mass_years_for_dt
    1256            0 :          relax_M_center = s% job% relax_M_center
    1257            0 :          relax_initial_M_center = s% job% relax_initial_M_center
    1258            0 :          relax_core = s% job% relax_core
    1259            0 :          relax_initial_core = s% job% relax_initial_core
    1260            0 :          new_core_mass = s% job% new_core_mass
    1261            0 :          dlg_core_mass_per_step = s% job% dlg_core_mass_per_step
    1262            0 :          relax_core_years_for_dt = s% job% relax_core_years_for_dt
    1263            0 :          core_avg_rho = s% job% core_avg_rho
    1264            0 :          core_avg_eps = s% job% core_avg_eps
    1265              : 
    1266            0 :          relax_R_center = s% job% relax_R_center
    1267            0 :          relax_initial_R_center = s% job% relax_initial_R_center
    1268            0 :          new_R_center = s% job% new_R_center
    1269            0 :          dlgR_per_step = s% job% dlgR_per_step
    1270            0 :          relax_R_center_dt = s% job% relax_R_center_dt
    1271              : 
    1272            0 :          set_v_center = s% job% set_v_center
    1273            0 :          set_initial_v_center = s% job% set_initial_v_center
    1274              : 
    1275            0 :          relax_v_center = s% job% relax_v_center
    1276            0 :          relax_initial_v_center = s% job% relax_initial_v_center
    1277            0 :          new_v_center = s% job% new_v_center
    1278            0 :          dv_per_step = s% job% dv_per_step
    1279            0 :          relax_v_center_dt = s% job% relax_v_center_dt
    1280              : 
    1281            0 :          zero_alpha_RTI = s% job% zero_alpha_RTI
    1282            0 :          zero_initial_alpha_RTI = s% job% zero_initial_alpha_RTI
    1283              : 
    1284            0 :          set_L_center = s% job% set_L_center
    1285            0 :          set_initial_L_center = s% job% set_initial_L_center
    1286            0 :          relax_L_center = s% job% relax_L_center
    1287            0 :          relax_initial_L_center = s% job% relax_initial_L_center
    1288            0 :          new_L_center = s% job% new_L_center
    1289            0 :          dlgL_per_step = s% job% dlgL_per_step
    1290            0 :          relax_L_center_dt = s% job% relax_L_center_dt
    1291              : 
    1292            0 :          remove_center_at_cell_k = s% job% remove_center_at_cell_k
    1293            0 :          remove_center_by_temperature = s% job% remove_center_by_temperature
    1294            0 :          remove_center_by_mass_fraction_q = s% job% remove_center_by_mass_fraction_q
    1295            0 :          remove_center_by_delta_mass_gm = s% job% remove_center_by_delta_mass_gm
    1296            0 :          remove_center_by_delta_mass_Msun = s% job% remove_center_by_delta_mass_Msun
    1297            0 :          remove_center_by_mass_gm = s% job% remove_center_by_mass_gm
    1298            0 :          remove_center_by_mass_Msun = s% job% remove_center_by_mass_Msun
    1299            0 :          remove_center_by_radius_Rsun = s% job% remove_center_by_radius_Rsun
    1300            0 :          remove_center_by_radius_cm = s% job% remove_center_by_radius_cm
    1301            0 :          remove_center_by_he4 = s% job% remove_center_by_he4
    1302            0 :          remove_center_by_c12_o16 = s% job% remove_center_by_c12_o16
    1303            0 :          remove_center_by_si28 = s% job% remove_center_by_si28
    1304            0 :          remove_center_to_reduce_co56_ni56 = s% job% remove_center_to_reduce_co56_ni56
    1305            0 :          remove_center_by_ye = s% job% remove_center_by_ye
    1306            0 :          remove_center_by_entropy = s% job% remove_center_by_entropy
    1307            0 :          remove_center_by_infall_kms = s% job% remove_center_by_infall_kms
    1308            0 :          remove_center_at_inner_max_abs_v = s% job% remove_center_at_inner_max_abs_v
    1309            0 :          remove_fe_core = s% job% remove_fe_core
    1310            0 :          remove_fallback_at_each_step = s% job% remove_fallback_at_each_step
    1311            0 :          fallback_check_total_energy = s% job% fallback_check_total_energy
    1312            0 :          remove_fallback_speed_limit = s% job% remove_fallback_speed_limit
    1313            0 :          remove_center_set_zero_v_center = s% job% remove_center_set_zero_v_center
    1314            0 :          limit_center_logP_at_each_step = s% job% limit_center_logP_at_each_step
    1315            0 :          remove_center_adjust_L_center = s% job% remove_center_adjust_L_center
    1316            0 :          remove_center_logRho_limit = s% job% remove_center_logRho_limit
    1317              : 
    1318            0 :          remove_initial_center_at_cell_k = s% job% remove_initial_center_at_cell_k
    1319            0 :          remove_initial_center_by_temperature = s% job% remove_initial_center_by_temperature
    1320            0 :          remove_initial_center_by_mass_fraction_q = s% job% remove_initial_center_by_mass_fraction_q
    1321            0 :          remove_initial_center_by_delta_mass_gm = s% job% remove_initial_center_by_delta_mass_gm
    1322            0 :          remove_initial_center_by_delta_mass_Msun = s% job% remove_initial_center_by_delta_mass_Msun
    1323            0 :          remove_initial_center_by_mass_gm = s% job% remove_initial_center_by_mass_gm
    1324            0 :          remove_initial_center_by_mass_Msun = s% job% remove_initial_center_by_mass_Msun
    1325            0 :          remove_initial_center_by_radius_Rsun = s% job% remove_initial_center_by_radius_Rsun
    1326            0 :          remove_initial_center_by_radius_cm = s% job% remove_initial_center_by_radius_cm
    1327            0 :          remove_initial_center_by_he4 = s% job% remove_initial_center_by_he4
    1328            0 :          remove_initial_center_by_c12_o16 = s% job% remove_initial_center_by_c12_o16
    1329            0 :          remove_initial_center_by_si28 = s% job% remove_initial_center_by_si28
    1330            0 :          remove_initial_center_to_reduce_co56_ni56 = s% job% remove_initial_center_to_reduce_co56_ni56
    1331            0 :          remove_initial_center_by_ye = s% job% remove_initial_center_by_ye
    1332            0 :          remove_initial_center_by_entropy = s% job% remove_initial_center_by_entropy
    1333            0 :          remove_initial_center_by_infall_kms = s% job% remove_initial_center_by_infall_kms
    1334            0 :          remove_initial_center_at_inner_max_abs_v = s% job% remove_initial_center_at_inner_max_abs_v
    1335            0 :          remove_initial_fe_core = s% job% remove_initial_fe_core
    1336              : 
    1337            0 :          zero_initial_inner_v_by_mass_Msun = s% job% zero_initial_inner_v_by_mass_Msun
    1338            0 :          zero_inner_v_by_mass_Msun = s% job% zero_inner_v_by_mass_Msun
    1339              : 
    1340            0 :          remove_surface_at_cell_k = s% job% remove_surface_at_cell_k
    1341            0 :          remove_surface_at_he_core_boundary = s% job% remove_surface_at_he_core_boundary
    1342            0 :          remove_surface_by_optical_depth = s% job% remove_surface_by_optical_depth
    1343            0 :          remove_surface_by_density = s% job% remove_surface_by_density
    1344            0 :          remove_surface_by_pressure = s% job% remove_surface_by_pressure
    1345            0 :          remove_surface_by_mass_fraction_q = s% job% remove_surface_by_mass_fraction_q
    1346            0 :          remove_surface_by_mass_gm = s% job% remove_surface_by_mass_gm
    1347            0 :          remove_surface_by_radius_cm = s% job% remove_surface_by_radius_cm
    1348            0 :          remove_surface_by_mass_Msun = s% job% remove_surface_by_mass_Msun
    1349            0 :          remove_surface_by_radius_Rsun = s% job% remove_surface_by_radius_Rsun
    1350            0 :          remove_surface_by_v_surf_km_s = s% job% remove_surface_by_v_surf_km_s
    1351            0 :          remove_surface_by_v_surf_div_cs = s% job% remove_surface_by_v_surf_div_cs
    1352            0 :          remove_surface_by_v_surf_div_v_escape = s% job% remove_surface_by_v_surf_div_v_escape
    1353            0 :          min_q_for_remove_surface_by_v_surf_div_v_escape = s% job% min_q_for_remove_surface_by_v_surf_div_v_escape
    1354            0 :          max_q_for_remove_surface_by_v_surf_div_v_escape = s% job% max_q_for_remove_surface_by_v_surf_div_v_escape
    1355              : 
    1356            0 :          remove_surface_do_jrot = s% job% remove_surface_do_jrot
    1357            0 :          remove_surface_do_entropy = s% job% remove_surface_do_entropy
    1358            0 :          remove_surface_turn_off_energy_sources_and_sinks = s% job% remove_surface_turn_off_energy_sources_and_sinks
    1359            0 :          remove_surface_by_relax_to_star_cut = s% job% remove_surface_by_relax_to_star_cut
    1360              : 
    1361            0 :          remove_initial_surface_at_cell_k = s% job% remove_initial_surface_at_cell_k
    1362            0 :          remove_initial_surface_at_he_core_boundary = s% job% remove_initial_surface_at_he_core_boundary
    1363            0 :          remove_initial_surface_by_optical_depth = s% job% remove_initial_surface_by_optical_depth
    1364            0 :          remove_initial_surface_by_density = s% job% remove_initial_surface_by_density
    1365            0 :          remove_initial_surface_by_pressure = s% job% remove_initial_surface_by_pressure
    1366            0 :          remove_initial_surface_by_mass_fraction_q = s% job% remove_initial_surface_by_mass_fraction_q
    1367            0 :          remove_initial_surface_by_mass_gm = s% job% remove_initial_surface_by_mass_gm
    1368            0 :          remove_initial_surface_by_radius_cm = s% job% remove_initial_surface_by_radius_cm
    1369            0 :          remove_initial_surface_by_mass_Msun = s% job% remove_initial_surface_by_mass_Msun
    1370            0 :          remove_initial_surface_by_radius_Rsun = s% job% remove_initial_surface_by_radius_Rsun
    1371            0 :          remove_initial_surface_by_v_surf_km_s = s% job% remove_initial_surface_by_v_surf_km_s
    1372            0 :          remove_initial_surface_by_v_surf_div_cs = s% job% remove_initial_surface_by_v_surf_div_cs
    1373            0 :          remove_initial_surface_by_v_surf_div_v_escape = s% job% remove_initial_surface_by_v_surf_div_v_escape
    1374              : 
    1375            0 :          report_mass_not_fe56 = s% job% report_mass_not_fe56
    1376            0 :          relax_dxdt_nuc_factor = s% job% relax_dxdt_nuc_factor
    1377            0 :          relax_initial_dxdt_nuc_factor = s% job% relax_initial_dxdt_nuc_factor
    1378            0 :          new_dxdt_nuc_factor = s% job% new_dxdt_nuc_factor
    1379            0 :          dxdt_nuc_factor_multiplier = s% job% dxdt_nuc_factor_multiplier
    1380            0 :          relax_eps_nuc_factor = s% job% relax_eps_nuc_factor
    1381            0 :          relax_initial_eps_nuc_factor = s% job% relax_initial_eps_nuc_factor
    1382            0 :          new_eps_nuc_factor = s% job% new_eps_nuc_factor
    1383            0 :          eps_nuc_factor_multiplier = s% job% eps_nuc_factor_multiplier
    1384            0 :          relax_opacity_max = s% job% relax_opacity_max
    1385            0 :          relax_initial_opacity_max = s% job% relax_initial_opacity_max
    1386            0 :          new_opacity_max = s% job% new_opacity_max
    1387            0 :          opacity_max_multiplier = s% job% opacity_max_multiplier
    1388            0 :          relax_max_surf_dq = s% job% relax_max_surf_dq
    1389            0 :          relax_initial_max_surf_dq = s% job% relax_initial_max_surf_dq
    1390            0 :          new_max_surf_dq = s% job% new_max_surf_dq
    1391            0 :          max_surf_dq_multiplier = s% job% max_surf_dq_multiplier
    1392              : 
    1393            0 :          relax_tau_factor = s% job% relax_tau_factor
    1394            0 :          relax_initial_tau_factor = s% job% relax_initial_tau_factor
    1395            0 :          set_tau_factor = s% job% set_tau_factor
    1396            0 :          set_initial_tau_factor = s% job% set_initial_tau_factor
    1397            0 :          relax_to_this_tau_factor = s% job% relax_to_this_tau_factor
    1398            0 :          set_to_this_tau_factor = s% job% set_to_this_tau_factor
    1399            0 :          dlogtau_factor = s% job% dlogtau_factor
    1400            0 :          set_tau_factor_after_core_He_burn = s% job% set_tau_factor_after_core_He_burn
    1401            0 :          set_tau_factor_after_core_C_burn = s% job% set_tau_factor_after_core_C_burn
    1402            0 :          relax_tau_factor_after_core_He_burn = s% job% relax_tau_factor_after_core_He_burn
    1403            0 :          relax_tau_factor_after_core_C_burn = s% job% relax_tau_factor_after_core_C_burn
    1404              : 
    1405            0 :          adjust_tau_factor_to_surf_density = s% job% adjust_tau_factor_to_surf_density
    1406            0 :          base_for_adjust_tau_factor_to_surf_density = s% job% base_for_adjust_tau_factor_to_surf_density
    1407              : 
    1408            0 :          relax_to_this_opacity_factor = s% job% relax_to_this_opacity_factor
    1409            0 :          d_opacity_factor = s% job% d_opacity_factor
    1410            0 :          relax_opacity_factor = s% job% relax_opacity_factor
    1411            0 :          relax_initial_opacity_factor = s% job% relax_initial_opacity_factor
    1412              : 
    1413            0 :          relax_Tsurf_factor = s% job% relax_Tsurf_factor
    1414            0 :          relax_initial_Tsurf_factor = s% job% relax_initial_Tsurf_factor
    1415            0 :          set_Tsurf_factor = s% job% set_Tsurf_factor
    1416            0 :          set_initial_Tsurf_factor = s% job% set_initial_Tsurf_factor
    1417            0 :          relax_to_this_Tsurf_factor = s% job% relax_to_this_Tsurf_factor
    1418            0 :          set_to_this_Tsurf_factor = s% job% set_to_this_Tsurf_factor
    1419            0 :          dlogTsurf_factor = s% job% dlogTsurf_factor
    1420              : 
    1421            0 :          relax_irradiation = s% job% relax_irradiation
    1422            0 :          relax_initial_irradiation = s% job% relax_initial_irradiation
    1423            0 :          set_irradiation = s% job% set_irradiation
    1424            0 :          set_initial_irradiation = s% job% set_initial_irradiation
    1425            0 :          relax_irradiation_min_steps = s% job% relax_irradiation_min_steps
    1426            0 :          relax_to_this_irrad_flux = s% job% relax_to_this_irrad_flux
    1427            0 :          set_to_this_irrad_flux = s% job% set_to_this_irrad_flux
    1428            0 :          irrad_col_depth = s% job% irrad_col_depth
    1429            0 :          relax_irradiation_max_yrs_dt = s% job% relax_irradiation_max_yrs_dt
    1430            0 :          relax_mass_change = s% job% relax_mass_change
    1431            0 :          relax_initial_mass_change = s% job% relax_initial_mass_change
    1432            0 :          relax_mass_change_min_steps = s% job% relax_mass_change_min_steps
    1433            0 :          relax_mass_change_max_yrs_dt = s% job% relax_mass_change_max_yrs_dt
    1434            0 :          relax_mass_change_init_mdot = s% job% relax_mass_change_init_mdot
    1435            0 :          relax_mass_change_final_mdot = s% job% relax_mass_change_final_mdot
    1436            0 :          change_RTI_flag = s% job% change_RTI_flag
    1437            0 :          change_initial_RTI_flag = s% job% change_initial_RTI_flag
    1438            0 :          new_RTI_flag = s% job% new_RTI_flag
    1439            0 :          change_RSP_flag = s% job% change_RSP_flag
    1440            0 :          change_initial_RSP_flag = s% job% change_initial_RSP_flag
    1441            0 :          new_RSP_flag = s% job% new_RSP_flag
    1442            0 :          change_RSP2_flag = s% job% change_RSP2_flag
    1443            0 :          change_initial_RSP2_flag = s% job% change_initial_RSP2_flag
    1444            0 :          change_RSP2_flag_at_model_number = s% job% change_RSP2_flag_at_model_number
    1445            0 :          new_RSP2_flag = s% job% new_RSP2_flag
    1446            0 :          create_RSP2_model = s% job% create_RSP2_model
    1447            0 :          change_w_div_wc_flag = s% job% change_w_div_wc_flag
    1448            0 :          change_initial_w_div_wc_flag = s% job% change_initial_w_div_wc_flag
    1449            0 :          new_w_div_wc_flag = s% job% new_w_div_wc_flag
    1450            0 :          change_j_rot_flag = s% job% change_j_rot_flag
    1451            0 :          change_initial_j_rot_flag = s% job% change_initial_j_rot_flag
    1452            0 :          new_j_rot_flag = s% job% new_j_rot_flag
    1453              : 
    1454            0 :          create_RSP_model = s% job% create_RSP_model
    1455            0 :          change_v_flag = s% job% change_v_flag
    1456            0 :          change_initial_v_flag = s% job% change_initial_v_flag
    1457            0 :          new_v_flag = s% job% new_v_flag
    1458            0 :          change_D_omega_flag = s% job% change_D_omega_flag
    1459            0 :          change_initial_D_omega_flag = s% job% change_initial_D_omega_flag
    1460            0 :          new_D_omega_flag = s% job% new_D_omega_flag
    1461            0 :          change_am_nu_rot_flag = s% job% change_am_nu_rot_flag
    1462            0 :          change_initial_am_nu_rot_flag = s% job% change_initial_am_nu_rot_flag
    1463            0 :          new_am_nu_rot_flag = s% job% new_am_nu_rot_flag
    1464            0 :          use_D_omega_for_am_nu_rot = s% job% use_D_omega_for_am_nu_rot
    1465              : 
    1466            0 :          change_u_flag = s% job% change_u_flag
    1467            0 :          change_initial_u_flag = s% job% change_initial_u_flag
    1468            0 :          new_u_flag = s% job% new_u_flag
    1469              : 
    1470            0 :          change_reconstruction_flag = s% job% change_reconstruction_flag
    1471            0 :          change_initial_reconstruction_flag = s% job% change_initial_reconstruction_flag
    1472            0 :          new_reconstruction_flag = s% job% new_reconstruction_flag
    1473              : 
    1474            0 :          center_ye_limit_for_v_flag = s% job% center_ye_limit_for_v_flag
    1475            0 :          change_rotation_flag = s% job% change_rotation_flag
    1476            0 :          change_initial_rotation_flag = s% job% change_initial_rotation_flag
    1477            0 :          new_rotation_flag = s% job% new_rotation_flag
    1478            0 :          use_w_div_wc_flag_with_rotation = s% job% use_w_div_wc_flag_with_rotation
    1479            0 :          use_j_rot_flag_with_rotation = s% job% use_j_rot_flag_with_rotation
    1480            0 :          set_omega = s% job% set_omega
    1481            0 :          set_initial_omega = s% job% set_initial_omega
    1482            0 :          set_omega_step_limit = s% job% set_omega_step_limit
    1483            0 :          set_near_zams_omega_steps = s% job% set_near_zams_omega_steps
    1484            0 :          new_omega = s% job% new_omega
    1485            0 :          set_omega_div_omega_crit = s% job% set_omega_div_omega_crit
    1486            0 :          set_initial_omega_div_omega_crit = s% job% set_initial_omega_div_omega_crit
    1487            0 :          set_omega_div_omega_crit_step_limit = s% job% set_omega_div_omega_crit_step_limit
    1488            0 :          set_near_zams_omega_div_omega_crit_steps = s% job% set_near_zams_omega_div_omega_crit_steps
    1489            0 :          new_omega_div_omega_crit = s% job% new_omega_div_omega_crit
    1490            0 :          set_surface_rotation_v = s% job% set_surface_rotation_v
    1491            0 :          set_initial_surface_rotation_v = s% job% set_initial_surface_rotation_v
    1492            0 :          set_surf_rotation_v_step_limit = s% job% set_surf_rotation_v_step_limit
    1493            0 :          set_near_zams_surface_rotation_v_steps = s% job% set_near_zams_surface_rotation_v_steps
    1494            0 :          new_surface_rotation_v = s% job% new_surface_rotation_v
    1495            0 :          relax_omega = s% job% relax_omega
    1496            0 :          relax_initial_omega = s% job% relax_initial_omega
    1497            0 :          near_zams_relax_omega = s% job% near_zams_relax_omega
    1498            0 :          relax_omega_div_omega_crit = s% job% relax_omega_div_omega_crit
    1499            0 :          relax_initial_omega_div_omega_crit = s% job% relax_initial_omega_div_omega_crit
    1500            0 :          near_zams_relax_omega_div_omega_crit = s% job% near_zams_relax_omega_div_omega_crit
    1501            0 :          relax_surface_rotation_v = s% job% relax_surface_rotation_v
    1502            0 :          relax_initial_surface_rotation_v = s% job% relax_initial_surface_rotation_v
    1503            0 :          near_zams_relax_initial_surface_rotation_v = s% job% near_zams_relax_initial_surface_rotation_v
    1504            0 :          num_steps_to_relax_rotation = s% job% num_steps_to_relax_rotation
    1505            0 :          relax_omega_max_yrs_dt = s% job% relax_omega_max_yrs_dt
    1506            0 :          set_uniform_initial_composition = s% job% set_uniform_initial_composition
    1507            0 :          initial_h1 = s% job% initial_h1
    1508            0 :          initial_h2 = s% job% initial_h2
    1509            0 :          initial_he3 = s% job% initial_he3
    1510            0 :          initial_he4 = s% job% initial_he4
    1511            0 :          initial_zfracs = s% job% initial_zfracs
    1512            0 :          dump_missing_metals_into_heaviest = s% job% dump_missing_metals_into_heaviest
    1513            0 :          relax_initial_composition = s% job% relax_initial_composition
    1514            0 :          relax_initial_to_xaccrete = s% job% relax_initial_to_xaccrete
    1515            0 :          relax_composition_filename = s% job% relax_composition_filename
    1516            0 :          num_steps_to_relax_composition = s% job% num_steps_to_relax_composition
    1517            0 :          timescale_for_relax_composition = s% job% timescale_for_relax_composition
    1518            0 :          relax_initial_angular_momentum = s% job% relax_initial_angular_momentum
    1519            0 :          max_steps_to_relax_angular_momentum = s% job% max_steps_to_relax_angular_momentum
    1520            0 :          timescale_for_relax_angular_momentum = s% job% timescale_for_relax_angular_momentum
    1521            0 :          max_dt_for_relax_angular_momentum = s% job% max_dt_for_relax_angular_momentum
    1522            0 :          num_timescales_for_relax_angular_momentum = s% job% num_timescales_for_relax_angular_momentum
    1523            0 :          relax_angular_momentum_filename = s% job% relax_angular_momentum_filename
    1524            0 :          relax_angular_momentum_constant_omega_center = s% job% relax_angular_momentum_constant_omega_center
    1525            0 :          relax_initial_entropy = s% job% relax_initial_entropy
    1526            0 :          max_steps_to_relax_entropy = s% job% max_steps_to_relax_entropy
    1527            0 :          timescale_for_relax_entropy = s% job% timescale_for_relax_entropy
    1528            0 :          max_dt_for_relax_entropy = s% job% max_dt_for_relax_entropy
    1529            0 :          num_timescales_for_relax_entropy = s% job% num_timescales_for_relax_entropy
    1530            0 :          relax_entropy_filename = s% job% relax_entropy_filename
    1531            0 :          get_entropy_for_relax_from_eos = s% job% get_entropy_for_relax_from_eos
    1532            0 :          report_cell_for_xm = s% job% report_cell_for_xm
    1533            0 :          set_to_xa_for_accretion = s% job% set_to_xa_for_accretion
    1534            0 :          set_initial_to_xa_for_accretion = s% job% set_initial_to_xa_for_accretion
    1535            0 :          set_nzlo = s% job% set_nzlo
    1536            0 :          set_nzhi = s% job% set_nzhi
    1537            0 :          change_Y = s% job% change_Y
    1538            0 :          change_initial_Y = s% job% change_initial_Y
    1539            0 :          relax_Y = s% job% relax_Y
    1540            0 :          relax_initial_Y = s% job% relax_initial_Y
    1541            0 :          relax_Y_minq = s% job% relax_Y_minq
    1542            0 :          relax_Y_maxq = s% job% relax_Y_maxq
    1543            0 :          new_Y = s% job% new_Y
    1544            0 :          change_Z = s% job% change_Z
    1545            0 :          change_initial_Z = s% job% change_initial_Z
    1546            0 :          relax_Z = s% job% relax_Z
    1547            0 :          relax_initial_Z = s% job% relax_initial_Z
    1548            0 :          relax_Z_minq = s% job% relax_Z_minq
    1549            0 :          relax_Z_maxq = s% job% relax_Z_maxq
    1550            0 :          new_Z = s% job% new_Z
    1551            0 :          steps_to_take_before_terminate = s% job% steps_to_take_before_terminate
    1552            0 :          stop_if_this_file_exists = s% job% stop_if_this_file_exists
    1553            0 :          set_initial_age = s% job% set_initial_age
    1554            0 :          initial_age = s% job% initial_age
    1555            0 :          set_initial_model_number = s% job% set_initial_model_number
    1556            0 :          initial_model_number = s% job% initial_model_number
    1557            0 :          set_initial_number_retries = s% job% set_initial_number_retries
    1558            0 :          initial_number_retries = s% job% initial_number_retries
    1559            0 :          set_initial_dt = s% job% set_initial_dt
    1560            0 :          limit_initial_dt = s% job% limit_initial_dt
    1561            0 :          years_for_initial_dt = s% job% years_for_initial_dt
    1562            0 :          seconds_for_initial_dt = s% job% seconds_for_initial_dt
    1563              : 
    1564            0 :          set_initial_cumulative_energy_error = s% job% set_initial_cumulative_energy_error
    1565            0 :          set_cumulative_energy_error = s% job% set_cumulative_energy_error
    1566            0 :          set_cumulative_energy_error_at_step = s% job% set_cumulative_energy_error_at_step
    1567            0 :          set_cumulative_energy_error_each_step_if_age_less_than = s% job% set_cumulative_energy_error_each_step_if_age_less_than
    1568            0 :          new_cumulative_energy_error = s% job% new_cumulative_energy_error
    1569            0 :          set_cumulative_energy_error_each_relax = s% job% set_cumulative_energy_error_each_relax
    1570              : 
    1571            0 :          change_net = s% job% change_net
    1572            0 :          change_initial_net = s% job% change_initial_net
    1573            0 :          new_net_name = s% job% new_net_name
    1574            0 :          change_small_net = s% job% change_small_net
    1575            0 :          change_initial_small_net = s% job% change_initial_small_net
    1576            0 :          new_small_net_name = s% job% new_small_net_name
    1577              : 
    1578            0 :          h_he_net = s% job% h_he_net
    1579            0 :          co_net = s% job% co_net
    1580            0 :          adv_net = s% job% adv_net
    1581            0 :          adjust_abundances_for_new_isos = s% job% adjust_abundances_for_new_isos
    1582            0 :          set_uniform_xa_from_file = s% job% set_uniform_xa_from_file
    1583            0 :          set_uniform_initial_xa_from_file = s% job% set_uniform_initial_xa_from_file
    1584            0 :          file_for_uniform_xa = s% job% file_for_uniform_xa
    1585              : 
    1586            0 :          mix_section = s% job% mix_section
    1587            0 :          mix_initial_section = s% job% mix_initial_section
    1588            0 :          mix_section_nzlo = s% job% mix_section_nzlo
    1589            0 :          mix_section_nzhi = s% job% mix_section_nzhi
    1590              : 
    1591            0 :          T9_weaklib_full_off = s% job% T9_weaklib_full_off
    1592            0 :          T9_weaklib_full_on = s% job% T9_weaklib_full_on
    1593            0 :          weaklib_blend_hi_Z = s% job% weaklib_blend_hi_Z
    1594            0 :          T9_weaklib_full_off_hi_Z = s% job% T9_weaklib_full_off_hi_Z
    1595            0 :          T9_weaklib_full_on_hi_Z = s% job% T9_weaklib_full_on_hi_Z
    1596              : 
    1597            0 :          use_suzuki_weak_rates = s% job% use_suzuki_weak_rates
    1598            0 :          use_3a_fl87 = s% job% use_3a_fl87
    1599              : 
    1600            0 :          use_special_weak_rates = s% job% use_special_weak_rates
    1601            0 :          special_weak_states_file = s% job% special_weak_states_file
    1602            0 :          special_weak_transitions_file = s% job% special_weak_transitions_file
    1603            0 :          ion_coulomb_corrections = s% job% ion_coulomb_corrections
    1604            0 :          electron_coulomb_corrections = s% job% electron_coulomb_corrections
    1605              : 
    1606            0 :          mix_envelope_down_to_T = s% job% mix_envelope_down_to_T
    1607            0 :          mix_initial_envelope_down_to_T = s% job% mix_initial_envelope_down_to_T
    1608            0 :          auto_extend_net = s% job% auto_extend_net
    1609              : 
    1610            0 :          enable_adaptive_network = s% job% enable_adaptive_network
    1611            0 :          min_x_for_keep = s% job% min_x_for_keep
    1612            0 :          min_x_for_n = s% job% min_x_for_n
    1613            0 :          min_x_for_add = s% job% min_x_for_add
    1614            0 :          max_Z_for_add = s% job% max_Z_for_add
    1615            0 :          max_N_for_add = s% job% max_N_for_add
    1616            0 :          max_A_for_add = s% job% max_A_for_add
    1617              : 
    1618            0 :          save_model_number = s% job% save_model_number
    1619            0 :          save_model_filename = s% job% save_model_filename
    1620            0 :          save_model_when_terminate = s% job% save_model_when_terminate
    1621            0 :          required_termination_code_string = s% job% required_termination_code_string
    1622            0 :          profile_starting_model = s% job% profile_starting_model
    1623            0 :          profile_model_number = s% job% profile_model_number
    1624            0 :          report_retries = s% job% report_retries
    1625              : 
    1626            0 :          net_reaction_filename = s% job% net_reaction_filename
    1627            0 :          jina_reaclib_filename = s% job% jina_reaclib_filename
    1628            0 :          jina_reaclib_min_T9 = s% job% jina_reaclib_min_T9
    1629            0 :          rate_tables_dir = s% job% rate_tables_dir
    1630            0 :          rate_cache_suffix = s% job% rate_cache_suffix
    1631            0 :          read_extra_star_job_inlist = s% job% read_extra_star_job_inlist
    1632            0 :          extra_star_job_inlist_name = s% job% extra_star_job_inlist_name
    1633            0 :          set_abundance_nzlo = s% job% set_abundance_nzlo
    1634            0 :          set_abundance_nzhi = s% job% set_abundance_nzhi
    1635            0 :          set_abundance = s% job% set_abundance
    1636            0 :          set_initial_abundance = s% job% set_initial_abundance
    1637            0 :          chem_name = s% job% chem_name
    1638            0 :          new_frac = s% job% new_frac
    1639              :          set_abundance_nzlo = s% job% set_abundance_nzlo
    1640              :          set_abundance_nzhi = s% job% set_abundance_nzhi
    1641            0 :          replace_element = s% job% replace_element
    1642            0 :          replace_initial_element = s% job% replace_initial_element
    1643            0 :          chem_name1 = s% job% chem_name1
    1644            0 :          chem_name2 = s% job% chem_name2
    1645            0 :          replace_element_nzlo = s% job% replace_element_nzlo
    1646            0 :          replace_element_nzhi = s% job% replace_element_nzhi
    1647            0 :          do_special_test = s% job% do_special_test
    1648              : 
    1649            0 :          save_pulse_data_for_model_number = s% job% save_pulse_data_for_model_number
    1650            0 :          save_pulse_data_when_terminate = s% job% save_pulse_data_when_terminate
    1651            0 :          save_pulse_data_filename = s% job% save_pulse_data_filename
    1652              : 
    1653            0 :          chem_isotopes_filename = s% job% chem_isotopes_filename
    1654            0 :          ionization_file_prefix = s% job% ionization_file_prefix
    1655            0 :          ionization_Z1_suffix = s% job% ionization_Z1_suffix
    1656            0 :          extras_lipar = s% job% extras_lipar
    1657            0 :          extras_lrpar = s% job% extras_lrpar
    1658            0 :          extras_lcpar = s% job% extras_lcpar
    1659            0 :          extras_llpar = s% job% extras_llpar
    1660            0 :          extras_ipar = s% job% extras_ipar
    1661            0 :          extras_rpar = s% job% extras_rpar
    1662            0 :          extras_cpar = s% job% extras_cpar
    1663            0 :          extras_lpar = s% job% extras_lpar
    1664            0 :          num_special_rate_factors = s% job% num_special_rate_factors
    1665            0 :          special_rate_factor = s% job% special_rate_factor
    1666            0 :          filename_of_special_rate = s% job% filename_of_special_rate
    1667              : 
    1668            0 :          reaction_for_special_factor = s% job% reaction_for_special_factor
    1669            0 :          color_num_files = s% job% color_num_files
    1670            0 :          color_file_names = s% job% color_file_names
    1671            0 :          color_num_colors = s% job% color_num_colors
    1672              : 
    1673            0 :          warn_run_star_extras = s% job% warn_run_star_extras
    1674            0 :          report_garbage_collection = s% job% report_garbage_collection
    1675            0 :          num_steps_for_garbage_collection = s% job% num_steps_for_garbage_collection
    1676              : 
    1677            0 :       end subroutine set_star_job_controls_for_writing
    1678              : 
    1679              : 
    1680            0 :       subroutine do_write_star_job(s, filename, ierr)
    1681              :          type (star_info), pointer :: s
    1682              :          character(*), intent(in) :: filename
    1683              :          integer, intent(out) :: ierr
    1684              :          integer :: io
    1685              :          ierr = 0
    1686            0 :          call set_star_job_controls_for_writing(s, ierr)
    1687            0 :          if (ierr /= 0) then
    1688            0 :             write(*,*) 'failed to set_star_job_controls_for_writing "' // trim(filename)//'"'
    1689            0 :             return
    1690              :          end if
    1691            0 :          open(newunit=io, file=trim(filename), action='write', status='replace', iostat=ierr)
    1692            0 :          if (ierr /= 0) then
    1693            0 :             write(*,*) 'failed to open "' // trim(filename)//'"'
    1694            0 :             return
    1695              :          end if
    1696            0 :          write(io, nml=star_job, iostat=ierr)
    1697            0 :          if (ierr /= 0) then
    1698            0 :             write(*,*) 'failed to write "' // trim(filename)//'"'
    1699            0 :             return
    1700              :          end if
    1701            0 :          write(*,*) 'write star_job namelist values to "' // trim(filename)//'"'
    1702            0 :          close(io)
    1703              :       end subroutine do_write_star_job
    1704              : 
    1705              : 
    1706            0 :       subroutine get_star_job(s, name, val, ierr)
    1707              :          use utils_lib, only: StrUpCase
    1708              :          type (star_info), pointer :: s
    1709              :          character(len=*),intent(in) :: name
    1710              :          character(len=*), intent(out) :: val
    1711              :          integer, intent(out) :: ierr
    1712              : 
    1713            0 :          character(len(name)+1) :: upper_name
    1714              :          character(len=512) :: str
    1715              :          integer :: iounit,iostat,ind,i
    1716              : 
    1717              :          ierr = 0
    1718              : 
    1719              :          ! First save current controls
    1720            0 :          call set_star_job_controls_for_writing(s, ierr)
    1721            0 :          if(ierr/=0) return
    1722              : 
    1723              :          ! Write namelist to temporay file
    1724            0 :          open(newunit=iounit,status='scratch')
    1725            0 :          write(iounit,nml=star_job)
    1726            0 :          rewind(iounit)
    1727              : 
    1728              :          ! Namelists get written in captials
    1729            0 :          upper_name = trim(StrUpCase(name))//'='
    1730            0 :          val = ''
    1731              :          ! Search for name inside namelist
    1732              :          do
    1733            0 :             read(iounit,'(A)',iostat=iostat) str
    1734            0 :             ind = index(trim(str),trim(upper_name))
    1735            0 :             if( ind /= 0 ) then
    1736            0 :                val = str(ind+len_trim(upper_name):len_trim(str)-1)  ! Remove final comma and starting =
    1737            0 :                do i=1,len(val)
    1738            0 :                   if(val(i:i)=='"') val(i:i) = ' '
    1739              :                end do
    1740              :                exit
    1741              :             end if
    1742            0 :             if(is_iostat_end(iostat)) exit
    1743              :          end do
    1744              : 
    1745            0 :          if(len_trim(val) == 0 .and. ind==0 ) ierr = -1
    1746              : 
    1747            0 :          close(iounit)
    1748              : 
    1749            0 :       end subroutine get_star_job
    1750              : 
    1751            0 :       subroutine set_star_job(s, name, val, ierr)
    1752              :          type (star_info), pointer :: s
    1753              :          character(len=*), intent(in) :: name, val
    1754            0 :          character(len=len(name)+len(val)+12) :: tmp
    1755              :          integer, intent(out) :: ierr
    1756              : 
    1757              :          ierr = 0
    1758              : 
    1759              :          ! First save current star_job
    1760            0 :          call set_star_job_controls_for_writing(s, ierr)
    1761            0 :          if(ierr/=0) return
    1762              : 
    1763            0 :          tmp=''
    1764            0 :          tmp = '&star_job '//trim(name)//'='//trim(val)//'/'
    1765              : 
    1766              :          ! Load into namelist
    1767            0 :          read(tmp, nml=star_job)
    1768              : 
    1769              :          ! Add to star
    1770            0 :          call store_star_job_controls(s, ierr)
    1771            0 :          if(ierr/=0) return
    1772              : 
    1773              :       end subroutine set_star_job
    1774              : 
    1775              : 
    1776              :       end module star_job_ctrls_io
        

Generated by: LCOV version 2.0-1