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

Generated by: LCOV version 2.0-1