SpecGrid Functions

void load_specgrid(const char *specgrid_file_name, SpecGrid *specgrid, Stat *stat)

Create a new SpecGrid by loading data from a specgrid file.

Parameters
  • specgrid_file_name – Name of the specgrid file.

  • specgrid – Returned grid.

  • stat – Returned status code.

void unload_specgrid(SpecGrid specgrid)

Unload a specgrid grid, freeing up memory.

Parameters
  • specgrid – Grid to unload.

void get_specgrid_rank(SpecGrid specgrid, int *rank)

Get the rank (dimension) of the grid.

Parameters
  • specgrid – Grid object.

  • rank – Returned rank.

void get_specgrid_lam_min(SpecGrid specgrid, double *lam_min)

Get the minimum wavelength of the grid.

Parameters
  • specgrid – Grid object.

  • lam_min – Returned minimum wavelength.

void get_specgrid_lam_max(SpecGrid specgrid, double *lam_max)

Get the maximum wavelength of the grid.

Parameters
  • specgrid – Grid object.

  • lam_max – Returned maximum wavelength.

void get_specgrid_cache_lam_min(SpecGrid specgrid, double *cache_lam_min)

Get the minimum wavelength of the grid cache.

Parameters
  • specgrid – Grid object.

  • cache_lam_min – Returned minimum wavelength.

void get_specgrid_cache_lam_max(SpecGrid specgrid, double *cache_lam_max)

Get the maximum wavelength of the grid cache.

Parameters
  • specgrid – Grid object.

  • cache_lam_max – Returned maximum wavelength.

void get_specgrid_cache_count(SpecGrid specgrid, int *cache_count)

Get the number of nodes currently held in the grid cache.

Parameters
  • specgrid – Grid object.

  • cache_count – Returned number of nodes.

void get_specgrid_cache_limit(SpecGrid specgrid, int *cache_limit)

Get the maximum number of nodes to hold in the grid cache.

Parameters
  • specgrid – Grid object.

  • cache_limit – Returned maximum number of nodes.

void get_specgrid_axis_x_min(SpecGrid specgrid, int i, double *x_min)

Get the minimum value of the i’th grid axis.

Parameters
  • specgrid – Grid object.

  • i – Axis index (beginning at 0).

  • x_min – Returned minimum value.

void get_specgrid_axis_x_max(SpecGrid specgrid, int i, double *x_max)

Get the maximum value of the i’th grid axis.

Parameters
  • specgrid – Grid object.

  • i – Axis index (beginning at 0).

  • x_max – Returned maximum value.

void get_specgrid_axis_label(SpecGrid specgrid, int i, char *label)

Get the label of the i’th grid axis.

Parameters
  • photgrid – Grid object.

  • i – Index of the label (beginning at 0).

  • axis_label – Buffer to store axis label buffer (at least 17 bytes, to accomodate label plus null terminator).

void set_specgrid_cache_lam_min(SpecGrid specgrid, double cache_lam_min, Stat *stat)

Set the minimum wavelength of the grid cache.

Parameters
  • specgrid – Grid object.

  • cache_lam_min – Minimum wavelength.

  • stat – Returned status code (set to NULL if not required).

void set_specgrid_cache_lam_max(SpecGrid specgrid, double cache_lam_max, Stat *stat)

Set the maximum wavelength of the grid cache.

Parameters
  • specgrid – Grid object.

  • cache_lam_max – Maximum wavelength.

  • stat – Returned status code (set to NULL if not required).

void set_specgrid_cache_limit(SpecGrid specgrid, int cache_limit, Stat *stat)

Set the maximum number of notes to hold in the grid cache. Set to 0 to disable caching.

Parameters
  • specgrid – Grid object.

  • cache_limit – Maximum number of nodes.

  • stat – Returned status code (set to NULL if not required).

void interp_specgrid_intensity(SpecGrid specgrid, double x_vec[], double mu, int n, double lam[], double I[], Stat *stat, bool deriv_vec[])

Interpolate the spectroscopic intensity.

Parameters
  • specgrid – Grid object.

  • x_vec – Atmospheric parameter values.

  • mu – Cosine of angle of emergence relative to surface normal.

  • n – Number of points in wavelength abscissa.

  • lam[n] – Wavelength abscissa (Å).

  • I[n-1] – Returned spectroscopic intensity (erg/cm^2/s/Å/sr) in bins delineated by lam

  • stat – Returned status code (set to NULL if not required).

  • deriv_vec – Derivative flags (set to NULL if not required).

void interp_specgrid_E_moment(SpecGrid specgrid, double x_vec[], int k, int n, double lam[], double E[], Stat *stat, bool deriv_vec[])

Interpolate the spectroscopic intensity E-moment.

Parameters
  • specgrid – Grid object.

  • x_vec – Atmospheric parameter values.

  • k – Degree of moment.

  • n – Number of points in wavelength abscissa.

  • lam[n] – Wavelength abscissa (Å).

  • D[n-1] – Returned spectroscopic intensity E-moment (erg/cm^2/s/Å) in bins delineated by lam

  • stat – Returned status code (set to NULL if not required).

  • deriv_vec – Derivative flags (set to NULL if not required).

void interp_specgrid_D_moment(SpecGrid specgrid, double x_vec[], int l, int n, double lam[], double D[], Stat *stat, bool deriv_vec[])

Interpolate the spectroscopic intensity D-moment.

Parameters
  • specgrid – Grid object.

  • x_vec – Atmospheric parameter values.

  • l – Harmonic degree of moment.

  • n – Number of points in wavelength abscissa.

  • lam[n] – Wavelength abscissa (Å).

  • D[n-1] – Returned spectroscopic intensity D-moment (erg/cm^2/s/Å) in bins delineated by lam

  • stat – Returned status code (set to NULL if not required).

  • deriv_vec – Derivative flags (set to NULL if not required).

void interp_specgrid_flux(SpecGrid specgrid, double x_vec[], int n, double lam[], double F[], Stat *stat, bool deriv_vec[])

Interpolate the spectroscopic flux.

Parameters
  • specgrid – Grid object.

  • x_vec – Atmospheric parameter values.

  • n – Number of points in wavelength abscissa.

  • lam[n] – Wavelength abscissa (Å).

  • F[n-1] – Returned spectroscopic flux (erg/cm^2/s/Å) in bins delineated by lam

  • stat – Returned status code (set to NULL if not required).

  • deriv_vec – Derivative flags (set to NULL if not required).