## Inlist Options¶

Note

The simplest approach is often to find a similar existing option and follow the pattern revealed by searching for the occurrences of that option in the source code.

This guide applies to star-related options (star_job, controls, and pgstar).

First, add an entry of the relevant type in the appropriate .inc file in star_data/private.

• star_job : star_job_controls.inc
• controls : star_controls.inc
• pgstar : pgstar_controls.inc

Next, add an entry with the default option value and some documentation (see Format for MESA defaults files) into the appropriate *.defaults file in star/defaults.

• star_job : star_job.defaults
• controls : controls.defaults
• pgstar : pgstar.defaults

Finally, update the appropriate *_io.f90 files in star/private, which are responsible for reading/writing the Fortran namelists.

• star_job : star_job_ctrls_io.f90
• controls : ctrls_io.f90
• pgstar : pgstar_ctrls_io.f90

This will require several edits.

• Add your option to the namelist declaration near the start of that file.
• Add code transferring your option from the value read by the namelist to the star_info structure in the store_* routine.
• For the case of star_job and controls, add code transferring your option from the star_info structure to the namelist value in the set_*_for_writing routine. This is what is used to enable the options save_star_job_namelist and save_controls_namelist.

## History/Profile Output¶

Note

The simplest approach is often to find a similar existing output and follow the pattern revealed by searching for the occurrences of that quantity in the source tree.

First, update star/private/star_history_def.f90. Here, you need to define the integer parameter of the form h_my_new_column internally used to identify the column. Later in the file, assign the name it will be given via an assignment like history_column_name(h_my_new_column) = 'my_new_column'.

Next, update star/private/history.f90 to add a new case in the switch statement, case(h_my_new_column). The code in this case should set the variable val to the desired output value.

Finally, add the new column to star/defaults/history_columns.list along with a short comment about what this column means. It should likely be commented out (off by default).

First, update star/private/star_profile_def.f90. Here, you need to define the integer parameter of the form p_my_new_column internally used to identify the column. Later in the file, assign the name it will be given via an assignment like profile_column_name(p_my_new_column) = 'my_new_column'.
Next, update star/private/profile_getval.f90 to add a new case in the switch statement, case(p_my_new_column). The code in this case should set the variable val to the desired output value corresponding to cell k.
Finally, add the new column to star/defaults/profile_columns.list along with a short comment about what this column means. It should likely be commented out (off by default).