next up previous contents
Next: Appendix F Using The XSPEC Models Library In Other Programs Up: Appendices Previous: Appendix E Associated programs

 Using The XSPEC Models Library In Other Programs

 

For those who wish to incorporate the standard XSPEC model functions library into their own programs, XSPEC provides a set of functions that can be called from external C, C++, or Fortran programs, and can access some of the model functions’ internal data.  The C++ functions are listed in the file FunctionUtility.h in the XSFunctions library directory.  For C and Fortran access, equivalent wrapper functions are listed in xsFortran.h.  The wrapper functions have C-style function declarations, and are also made available to Fortran calling routines via the CERN <cfortan.h> interface. 

Interface Routines

The currently provided C/Fortran wrapper functions are (see xsFortran.h for the function signatures):

FNINIT

Initializes data directory locations needed by the models.  See below for a fuller description.

 

FGABND

Get an element abundance.

 

FGCHAT

Get current chatter level setting for model functions’ output verbosity.

 

FPCHAT

Set the chatter level.  Default is 10, higher chatter levels produce more output.

FGDATD

Get the model .dat files path.

 

FPDATD

Set the model .dat files path.

 

FGMODF

Get the model ion data path.

 

FGMSTR

Get a model string value (see XSPEC xset command).

 

FPMSTR

Set a model string value.

 

FPSLFL

Load values of a “file” solar abundance table (see abund command).

 

FGSOLR

Get the solar abundance table setting.

 

FPSOLR

Set the solar abundance table.

 

FGXSCT

Get the cross section table setting.

 

FPXSCT

Set the cross section table.

 

csmgh0

Get the cosmology H0 setting (see the cosmo command).

 

csmph0

Set H0.

 

csmgl0

Get Λ0.

 

csmpl0

Set Λ0.

 

csmgq0

Get q0.

 

csmpq0

Put q0.

 

fzsq

Computes the luminosity distance, (c/H0)*fzsq.  The function is valid for small values of q0*z for the case of no cosmological constant and uses the approximation of Pen (1999 ApJS 120, 49) for the case of a cosmological constant and a flat Universe.  The function is not valid for non-zero cosmological constant if the Universe is not flat.

 

 

Initializing the Models Library

The external program should always call the FNINIT routine prior to any other call into the models library.  This initializes the locations of the various data files needed by the models, and also sets the abundance and cross-section tables.  Unless the user has overridden the model ion data directory location with the XSPEC_MDATA_DIR environment variable, the initial settings are:

Model ion data location

$HEADAS/../spectral/modelIonData

Abundance and cross-section .dat files location

$HEADAS/../spectral/manager

Solar abundance table

angr

Photoelectric cross-section table

bcmc

 

Building with the Models Library

The XSFunctions library depends on two lower-level XSPEC libraries, XS and XSUtil, and also the cfitsio library.  A Makefile for a small Fortran program linking with the models library therefore may look like this on Linux:

myprog : myprog.o

            g77 -g myprog.o -o myprog \

                        -L/path/to/headas/installed/location/lib \

                        -lXSFunctions -lXSUtil -lXS -lcfitsio_3.01

myprog.o: myprog.f

            g77 -g -c myprog.f


 

next up previous contents
Next: Appendix F Using The XSPEC Models Library In Other Programs Up: Appendices Previous: Appendix E Associated programs