Content of the package (2020, July the 1st): =========================================== READme.txt : this file srcp/ (source codes, fortran90) svp_codes.f : all subroutines needed to compute SVP radiative accelerations (g_rad) svp_standalone.f : Standalone demo code. Contains the main program and subroutines needed to mimic implementation in stellar evolution codes. mod_svp.f : module MOD_SVP (contains "SUBROUTINE initialize_SVP", "SUBROUTINE g_rad_SVP", INCLUDEs "svp_codes.f") mod_donvar.f : modules MOD_DONNEES (contains "SUBROUTINE ctes_94") and MOD_VARIABLES datai_SVP_v1/ (data used by svp_codes.f) abund_ref.dat : abundances used to compute the SVP parameters (do not change!) [in number/(total number of nucleus)] SVP_tables/ : SVP parameters for stellar masses from 1 to 10 solar mass fused_levels/ : atomic energy levels of ions (fused levels, see Sec. 5 of Alecian & LeBlanc 2020) data_standalone/ (data used by the demo program svp_standalone.f) CESTAM_models/ : models for the demo program isotopes.dat : liste of isotopes as needed for CESTAM_models fgrp* : compilation script (gfortran f90/f95), produces the exec code "svp_standalone.out" How to use this package (Unix based system): =========================================== 1/ Untar svp_standalone.tar.gz 2/ go into the directory svp_standalone 3/ execute "sh fgrp" 4/ execute "svp_standalone.out" that asks for the desired mass. Important note: g_rad of unidentified elements are set equal to -(local_gravity) ("unidentified" means "not in SVP tables"). This is a default setting that can be modified in svp_codes.f (there is a detailed comment section in the source code to decide the option). Setting g_rad equal to -(local_gravity) ensures that an element for which the radiative acceleration is unknown, atomic diffusion due to external forces is inhibited (better than to let gravity acting alone). main output files: ----------------- svp_standalone.job : general report of the run ctrlg_rad.dat : radiative accelerations (TAB delmited results) title of columns : logt [log(temperature(K)) of layers] lgrXX [log(g_rad) of element XX] dXX [derivative of g_rad with respect to XX abundance] chiXX [abundance of XX in the considered model divided by the one in abund_ref.dat; if one isotope is present, chiXX=1. means "same as in abund_ref.dat"] secondary output file: --------------------- lect_osc.job : the model used by svp_standalone in user friendly format (same model as the one read in CESTAM_models/) Comments: ============================ To implement the SVP method into an existing program for stellar modelling when radiative accelerations are needed, it should be enough to rely on the way it is done in the main program svp_standalone.f. The meaning of the variables that have to be provided to the routines are commented in the source codes. Note that, there should be a first call (and only one) to initialize_SVP() (according to the star mass) at the first step of diffusion calculation. In stellar evolution code, that step should correspond to the arrival on the ZAMS. After initialization, the subroutine g_rad_SVP(...) has to be called at each time step and for each layer. The output of this call is an array containing the radiative accelerations for all the identified elements, and their derivatives with respect to the abundances (some numerical codes computing atomic diffusion need these last ones). Note that a default setting (see the 4th item of the section "How to use this package") is g_rad of unidentified elements are set equal to -(local_gravity). It means that radiative acceleration and gravity cancel each other for these elements, preventing them from diffusing due to external force. Generally, it is better to prevent elements from diffusing when radiative acceleration is unknown than to let gravity to act alone. However, this could be an undesired option for some elements, for instance for helium that is not present in SVP tables. Indeed, even if in some case the radiative acceleration of He may be non-negligible, it may be more realistic to assume that it is zero and let He to diffuse due to gravity. In the present version of the package, it belongs to the user to force the output acceleration for some elements to be different than the standard output. It is easy to do that just after the call g_rad_SVP(), provided that it is done for the right index of the array. Future releases of SVP tables: ============================= The data needed to compute SVP radiative accelerations are gathered in the subdirectory "datai_SVP_v1" . It is expected that these data could be updated, for instance when new elements are added to the tables, or if SVP parameters, or atomic data are updated. In that case a new subdirectory will be proposed for download. This new subdirectory should have a new name (for instance: datai_SVP_v2). It will be enough first to install this new subdirectory at the same location as for the previous one, and second, to change the content of the "version_svp" character variable to the new name (that is the argument to be input for the call of "initialize_SVP" subroutine), and recompile.