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