Athena++/Atmosphere
Planetary Atmosphere Simulator
cdisort.h File Reference
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <math.h>
#include <string.h>
#include <ctype.h>
#include <limits.h>
#include <float.h>

Go to the source code of this file.

Classes

struct  disort_flag
 
struct  disort_radiant
 
struct  disort_bc
 
struct  rpv_brdf_spec
 
struct  ambrals_brdf_spec
 
struct  cam_brdf_spec
 
struct  disort_brdf
 
struct  disort_state
 
struct  disort_output
 
struct  disort_pair
 
struct  disort_triplet
 
struct  twostr_diag
 
struct  twostr_xyz
 

Macros

#define TWOSTR_NERR   22
 
#define A(i, j)   a[i-1+(j-1)*lda]
 
#define AA(j, k)   aa[j-1+(k-1)*ia]
 
#define ABD(i, j)   abd[i-1+(j-1)*lda]
 
#define ALBMED(iu)   out->albmed[iu-1]
 
#define AMB(iq, jq)   ab[iq-1+(jq-1)*(ds->nstr/2)].zero
 
#define APB(iq, jq)   ab[iq-1+(jq-1)*(ds->nstr/2)].one
 
#define B(iq)   b[iq-1]
 
#define BDR(iq, jq)   bdr[iq-1+(jq)*(ds->nstr/2)]
 
#define BEM(iq)   bem[iq-1]
 
#define CBAND(irow, ncol)   cband[irow-1+(ncol-1)*(9*(ds->nstr/2)-2)]
 
#define CC(iq, jq)   cc[iq-1+(jq-1)*ds->nstr]
 
#define CH(lc)   ch[lc-1]
 
#define CHTAU(ls)   chtau[ls]
 
#define CMU(iq)   cmu[iq-1]
 
#define CWT(iq)   cwt[iq-1]
 
#define DFDT(lu)   out->rad[lu-1].dfdt
 
#define DIAG(i)   diag[i-1].on
 
#define DTAUC(lc)   ds->dtauc[lc-1]
 
#define DTAU_C(lc)   dtau_c[lc-1]
 
#define DTAUCPR(lc)   dtaucpr[lc-1]
 
#define EMU(iu)   emu[iu-1]
 
#define EVAL(j)   eval[j-1]
 
#define EVEC(j, k)   evec[j-1+(k-1)*ievec]
 
#define EVECC(iq, jq)   evecc[iq-1+(jq-1)*ds->nstr]
 
#define EXPBEA(lc)   expbea[lc]
 
#define FLDIR(lu)   fl[lu-1].zero
 
#define FLDN(lu)   fl[lu-1].one
 
#define FLUP(lu)   out->rad[lu-1].flup
 
#define FLYR(lc)   flyr[lc-1]
 
#define GC(iq, jq, lc)   gc[iq-1+(jq-1+(lc-1)*ds->nstr)*ds->nstr]
 
#define GENSRC(maz, lc, iq)   ds->gensrc[iq-1+(lc-1+maz*ds->nlyr)*ds->nstr]
 
#define GENSRCU(maz, lc, iu)   ds->gensrcu[iu-1+(lc-1+maz*ds->nlyr)*ds->numu]
 
#define GG(lc)   gg[lc-1]
 
#define GGPRIM(lc)   ggprim[lc-1]
 
#define GL(k, lc)   gl[k+(lc-1)*(ds->nstr+1)]
 
#define GMU(k)   gmu[k-1]
 
#define GU(iu, iq, lc)   gu[iu-1+(iq-1+(lc-1)*ds->nstr)*ds->numu]
 
#define GWT(k)   gwt[k-1]
 
#define IERROR(i)   ierror[i-1]
 
#define IPVT(k)   ipvt[k-1]
 
#define KK(iq, lc)   kk[iq-1+(lc-1)*ds->nstr]
 
#define LAYRU(lu)   layru[lu-1]
 
#define LL(iq, lc)   ll[iq-1+(lc-1)*ds->nstr]
 
#define MU(i)   mu[i-1]
 
#define OMEGA(lyr)   omega[lyr-1]
 
#define OPRIM(lc)   oprim[lc-1]
 
#define PKAG(lc)   pkag[lc]
 
#define PKAGC(lc)   pkagc[lc-1]
 
#define PHASA(lc)   phasa[lc-1]
 
#define PHASE(lc)   phase[lc-1]
 
#define PHASM(lc)   phasm[lc-1]
 
#define PHAST(lc)   phast[lc-1]
 
#define PHI(j)   ds->phi[j-1]
 
#define PHIRAD(jp)   phirad[jp-1]
 
#define PMOM(k, lc)   ds->pmom[k+(lc-1)*(ds->nmom_nstr+1)]
 
#define PRNTU0(i)   prntu0[i-1]
 
#define PSI0(iq)   psi[iq-1].zero
 
#define PSI1(iq)   psi[iq-1].one
 
#define RFLDIR(lu)   out->rad[lu-1].rfldir
 
#define RFLDN(lu)   out->rad[lu-1].rfldn
 
#define RMU(iu, iq)   rmu[iu-1+(iq)*ds->numu]
 
#define RR(lc)   rr[lc-1]
 
#define SSALB(lc)   ds->ssalb[lc-1]
 
#define SUBD(i)   diag[i-1].sub
 
#define SUPERD(i)   diag[i-1].super
 
#define SX(i)   sx[i-1]
 
#define SY(i)   sy[i-1]
 
#define TAU(lc)   tau[lc]
 
#define TAUC(lc)   tauc[lc]
 
#define TAUCPR(lc)   taucpr[lc]
 
#define TEMPER(lc)   ds->temper[lc]
 
#define TRNMED(iu)   out->trnmed[iu-1]
 
#define U0C(iq, lu)   u0c[iq-1+(lu-1)*ds->nstr]
 
#define U0U(iu, lu)   out->u0u[iu-1+(lu-1)*ds->numu]
 
#define UAVG(lu)   out->rad[lu-1].uavg
 
#define UAVGDN(lu)   out->rad[lu-1].uavgdn
 
#define UAVGUP(lu)   out->rad[lu-1].uavgup
 
#define UAVGSO(lu)   out->rad[lu-1].uavgso
 
#define UMU(iu)   ds->umu[iu-1]
 
#define UTAU(lu)   ds->utau[lu-1]
 
#define UTAUPR(lu)   utaupr[lu-1]
 
#define UUM(iu, lu)   uum[iu-1+(lu-1)*ds->numu]
 
#define UU(iu, lu, j)   out->uu[iu-1+(lu-1+(j-1)*ds->ntau)*ds->numu]
 
#define OUT_UUM(iu, lu, j)   out->uum[iu-1+(lu-1+(j)*ds->ntau)*ds->numu] /* No -i behind j as mazim starts at 0, aky */
 
#define WK(iq)   wk[iq-1]
 
#define XBA(lc)   xba[lc]
 
#define XB0(iq, lc)   xb[iq-1+(lc-1)*ds->nstr].zero
 
#define XB1(iq, lc)   xb[iq-1+(lc-1)*ds->nstr].one
 
#define XB_0D(lc)   ts[lc-1].xb_0d
 
#define XB_0U(lc)   ts[lc-1].xb_0u
 
#define XB_1D(lc)   ts[lc-1].xb_1d
 
#define XB_1U(lc)   ts[lc-1].xb_1u
 
#define XP_0(lc)   ts[lc-1].xp_0
 
#define XP_1(lc)   ts[lc-1].xp_1
 
#define XR0(lc)   xr[lc-1].zero
 
#define XR1(lc)   xr[lc-1].one
 
#define YB_0D(lc)   ts[lc-1].yb_0d
 
#define YB_0U(lc)   ts[lc-1].yb_0u
 
#define YB_1D(lc)   ts[lc-1].yb_1d
 
#define YB_1U(lc)   ts[lc-1].yb_1u
 
#define YLM(l, i)   ylm[l+(i-1)*(maxmu+1)]
 
#define YLM0(iq)   ylm0[iq]
 
#define YLMC(l, iq)   ylmc[l+(iq-1)*(ds->nstr+1)]
 
#define YLMU(l, iu)   ylmu[l+(iu-1)*(ds->nstr+1)]
 
#define YP_0D(lc)   ts[lc-1].yp_0d
 
#define YP_0U(lc)   ts[lc-1].yp_0u
 
#define YP_1D(lc)   ts[lc-1].yp_1d
 
#define YP_1U(lc)   ts[lc-1].yp_1u
 
#define Z(j)   z[j-1]
 
#define Z0(iu)   zee[iu-1].zero
 
#define Z1(iq)   zee[iq-1].one
 
#define Z0U(iu, lc)   zu[iu-1+(lc-1)*ds->numu].zero
 
#define Z1U(iu, lc)   zu[iu-1+(lc-1)*ds->numu].one
 
#define ZB0U(iu, lc)   zbu[iu-1+(lc-1)*ds->numu].zero
 
#define ZB1U(iu, lc)   zbu[iu-1+(lc-1)*ds->numu].one
 
#define ZBAU(iu, lc)   zbu[iu-1+(lc-1)*ds->numu].alpha
 
#define ZB_A(lc)   ts[lc-1].zb_a
 
#define ZBEAM(iu, lc)   zbeam[iu-1+(lc-1)*ds->numu]
 
#define ZBEAMA(lc)   zbeama[lc-1]
 
#define ZBEAM0(iq, lc)   zbeamsp[iq-1+(lc-1)*ds->nstr].zero
 
#define ZBEAM1(iq, lc)   zbeamsp[iq-1+(lc-1)*ds->nstr].one
 
#define ZBS0(iq)   zbs[iq-1].zero
 
#define ZBS1(iq)   zbs[iq-1].one
 
#define ZD(j)   zd[j]
 
#define ZJ(j)   zj[j-1]
 
#define ZJG(j)   zjg[j-1]
 
#define ZJU(j)   zju[j-1]
 
#define ZGU(iu, lc)   zgu[iu-1+(lc-1)*ds->numu]
 
#define ZP_A(lc)   ts[lc-1].zp_a
 
#define ZPLK0(iq, lc)   plk[iq-1+(lc-1)*ds->nstr].zero
 
#define ZPLK1(iq, lc)   plk[iq-1+(lc-1)*ds->nstr].one
 
#define ZZ(iq, lc)   zz[iq-1+(lc-1)*ds->nstr]
 
#define ZZG(iq, lc)   zzg[iq-1+(lc-1)*ds->nstr]
 
#define MUP(it)   mu_phase[it-1]
 
#define PHASR(lc)   phasr[lc-1]
 
#define PHAS2(it, lc)   phas2[it-1+(lc-1)*nphase]
 
#define DSPHASE(it, lc)   ds->phase[it-1+(lc-1)*ds->nphase]
 
#define F_PHAS2_ABS(it)   f_phas2_abs[it-1]
 
#define MU_EQ(i, lu)   mu_eq[i-1+(lu-1)*nf]
 
#define NEG_PHAS(i, lu)   neg_phas[i-1+(lu-1)*nf]
 
#define NORM_PHAS(lu)   norm_phas[lu-1]
 
#define SDTAUC(i)   sdtauc[i-1]
 
#define SUTAU(i)   sutau[i-1]
 
#define ZOUT(i)   zout[i-1]
 
#define TAUINT(i)   tauint[i-1]
 
#define XARR(i)   xarr[i-1]
 
#define YARR(i)   yarr[i-1]
 
#define TRUE   1
 
#define FALSE   0
 
#define FIRST_IPHAS   1
 
#define ISOTROPIC   1
 
#define RAYLEIGH   2
 
#define HENYEY_GREENSTEIN   3
 
#define HAZE_GARCIA_SIEWERT   4
 
#define CLOUD_GARCIA_SIEWERT   5
 
#define LAST_IPHAS   5
 
#define GENERAL_BC   0
 
#define SPECIAL_BC   1
 
#define TOP_ILLUM   1
 
#define BOT_ILLUM   2
 
#define DS_WARNING   0
 
#define DS_ERROR   1
 
#define VERBOSE   0
 
#define QUIET   1
 
#define BRDF_NONE   0
 
#define BRDF_RPV   1 /* don't change these numbers as they are */
 
#define BRDF_CAM   2 /* used by Fortran code which of course */
 
#define BRDF_AMB   3 /* has no access to this header file */
 
#define BRDF_HAPKE   4
 
#define BRDF_CAM_NN   4
 
#define BRDF_CAM_SAL   0
 
#define BRDF_CAM_PCL   1
 
#define BRDF_CAM_U10   2
 
#define BRDF_CAM_UPHI   3
 
#define NMUG   50
 
#define M_E   2.7182818284590452354
 
#define M_LOG2E   1.4426950408889634074
 
#define M_LOG10E   0.43429448190325182765
 
#define M_LN2   0.69314718055994530942
 
#define M_LN10   2.30258509299404568402
 
#define M_PI   3.14159265358979323846
 
#define M_PI_2   1.57079632679489661923
 
#define M_PI_4   0.78539816339744830962
 
#define M_1_PI   0.31830988618379067154
 
#define M_2_PI   0.63661977236758134308
 
#define M_2_SQRTPI   1.12837916709551257390
 
#define M_SQRT2   1.41421356237309504880
 
#define M_SQRT1_2   0.70710678118654752440
 
#define DEG   (M_PI/180.)
 
#define SQR(x)
 
#define MIN(x, y)
 
#define MAX(x, y)
 
#define LIMIT_RANGE(min, x, max)
 
#define IMIN(i, j)
 
#define IMAX(i, j)
 
#define F77_SIGN(a, b)   ((b) >= 0. ? fabs(a) : -fabs(a))
 

Typedefs

typedef struct disort_state disort_state
 
typedef struct disort_output disort_output
 

Functions

void c_disort (disort_state *ds, disort_output *out)
 
double c_bidir_reflectivity (double wvnmlo, double wvnmhi, double mu, double mup, double dphi, int brdf_type, disort_brdf *brdf, int callnum)
 
double c_bidir_reflectivity_hapke (double wvnmlo, double wvnmhi, double mu, double mup, double dphi)
 
double c_bidir_reflectivity_rpv (rpv_brdf_spec *brdf, double mu1, double mu2, double phi, double badmu)
 
double c_dref (double wvnmlo, double wvnmhi, double mu, int brdf_type, disort_brdf *brdf, int callnum)
 
void c_getmom (int iphas, double gg, int nmom, double *pmom)
 
void c_asymmetric_matrix (double *aa, double *evec, double *eval, int m, int ia, int ievec, int *ier, double *wk)
 
void c_intensity_components (disort_state *ds, double *gc, double *kk, int *layru, double *ll, int lyrcut, int mazim, int ncut, int nn, double *taucpr, double *utaupr, double *zz, disort_pair *plk, double *uum)
 
void c_fluxes (disort_state *ds, disort_output *out, double *ch, double *cmu, double *cwt, double *gc, double *kk, int *layru, double *ll, int lyrcut, int ncut, int nn, int prntu0, double *taucpr, double *utaupr, disort_pair *xr, disort_pair *zbeamsp, double *zbeama, double *zz, double *zzg, disort_pair *plk, disort_pair *fl, double *u0c)
 
void c_intensity_correction (disort_state *ds, disort_output *out, double dither, double *flyr, int *layru, int lyrcut, int ncut, double *oprim, double *phasa, double *phast, double *phasm, double *phirad, double *tauc, double *taucpr, double *utaupr)
 
void c_new_intensity_correction (disort_state *ds, disort_output *out, double dither, double *flyr, int *layru, int lyrcut, int ncut, double *oprim, double *phasa, double *phast, double *phasm, double *phirad, double *tauc, double *taucpr, double *utaupr)
 
void prep_double_scat_integr (int nphase, int ntau, int nf, double *mu_phase, double *phas2, double *mu_eq, int *neg_phas, double *norm_phas)
 
double c_secondary_scat (disort_state *ds, int iu, int lu, double ctheta, double *flyr, int layru, double *tauc)
 
double c_new_secondary_scat (disort_state *ds, int iu, int lu, int it, double ctheta, double *flyr, int layru, double *tauc, int nf, double *phas2, double *mu_eq, int *neg_phas, double norm_phas)
 
double calc_phase_squared (int nphase, int lu, double ctheta, int nf, double *mu_phase, double *phas2, double *mu_eq, int *neg_phas, double norm_phas)
 
void c_disort_set (disort_state *ds, double *ch, double *chtau, double *cmu, double *cwt, int deltam, double *dtaucpr, double *expbea, double *flyr, double *gl, int *layru, int *lyrcut, int *ncut, int *nn, int *corint, double *oprim, double *tauc, double *taucpr, double *utaupr)
 
void c_set_matrix (disort_state *ds, double *bdr, double *cband, double *cmu, double *cwt, double delm0, double *dtaucpr, double *gc, double *kk, int lyrcut, int *ncol, int ncut, double *taucpr, double *wk)
 
double c_single_scat (double dither, int layru, int nlyr, double *phase, double *omega, double *tau, double umu, double umu0, double utau, double fbeam)
 
void c_solve_eigen (disort_state *ds, int lc, disort_pair *ab, double *array, double *cmu, double *cwt, double *gl, int mazim, int nn, double *ylmc, double *cc, double *evecc, double *eval, double *kk, double *gc, double *wk)
 
void c_solve0 (disort_state *ds, double *b, double *bdr, double *bem, double bplanck, double *cband, double *cmu, double *cwt, double *expbea, int *ipvt, double *ll, int lyrcut, int mazim, int ncol, int ncut, int nn, double tplanck, double *taucpr, double *z, disort_pair *zbeamsp, double *zbeama, double *zz, double *zzg, disort_pair *plk)
 
void c_surface_bidir (disort_state *ds, double delm0, double *cmu, int mazim, int nn, double *bdr, double *emu, double *bem, double *rmu, int callnum)
 
void c_interp_eigenvec (disort_state *ds, int lc, double *cwt, double *evecc, double *gl, double *gu, int mazim, int nn, double *wk, double *ylmc, double *ylmu)
 
void c_interp_source (disort_state *ds, int lc, double *cwt, double delm0, double *gl, int mazim, double *oprim, double *ylm0, double *ylmc, double *ylmu, disort_pair *psi, disort_pair *xr, disort_pair *zee, double *zj, double *zjg, double *zbeam, disort_triplet *zbu, disort_pair *zbs, double zbsa, double *zgu, disort_pair *zu)
 
void c_set_coefficients_beam_source (disort_state *ds, double *ch, double *chtau, double *cmu, double delm0, double fbeam, double *gl, int lc, int mazim, int nstr, double *taucpr, double *xba, disort_pair *xb, double *ylm0, double *ylmc, double *zj)
 
void c_interp_coefficients_beam_source (disort_state *ds, double *chtau, double delm0, double fbeam, double *gl, int lc, int mazim, int nstr, int numu, double *taucpr, disort_triplet *zbu, double *xba, double *zj, double *ylm0, double *ylmu)
 
void c_upbeam (disort_state *ds, int lc, double *array, double *cc, double *cmu, double delm0, double *gl, int *ipvt, int mazim, int nn, double *wk, double *ylm0, double *ylmc, double *zj, double *zz)
 
void c_upbeam_pseudo_spherical (disort_state *ds, int lc, double *array, double *cc, double *cmu, int *ipvt, int nn, double *wk, disort_pair *xb, double *xba, disort_pair *zbs, double *zbsa, disort_pair *zbeamsp, double *zbeama)
 
void c_upbeam_general_source (disort_state *ds, int lc, int maz, double *array, double *cc, int *ipvt, int nn, double *wk, double *zjg, double *zzg)
 
void c_upisot (disort_state *ds, int lc, double *array, double *cc, double *cmu, int *ipvt, int nn, double *oprim, double *wk, disort_pair *xr, disort_pair *zee, disort_pair *plk)
 
void c_user_intensities (disort_state *ds, double bplanck, double *cmu, double *cwt, double delm0, double *dtaucpr, double *emu, double *expbea, double *gc, double *gu, double *kk, int *layru, double *ll, int lyrcut, int mazim, int ncut, int nn, double *rmu, double *taucpr, double tplanck, double *utaupr, double *wk, disort_triplet *zbu, double *zbeam, disort_pair *zbeamsp, double *zbeama, double *zgu, disort_pair *zu, double *zz, double *zzg, disort_pair *plk, double *uum)
 
double c_xi_func (double umu1, double umu2, double tau)
 
void c_check_inputs (disort_state *ds, int scat_yes, int deltam, int corint, double *tauc, int callnum)
 
void c_legendre_poly (int nmu, int m, int maxmu, int twonm1, double *mu, double *ylm)
 
void c_print_avg_intensities (disort_state *ds, disort_output *out)
 
void c_print_inputs (disort_state *ds, double *dtaucpr, int scat_yes, int deltam, int corint, double *flyr, int lyrcut, double *oprim, double *tauc, double *taucpr)
 
void c_print_intensities (disort_state *ds, disort_output *out)
 
void c_gaussian_quadrature (int m, double *gmu, double *gwt)
 
double c_ratio (double a, double b)
 
int c_fcmp (double x1, double x2)
 
void c_self_test (int compare, int *prntu0, disort_state *ds, disort_output *out)
 
void c_albtrans (disort_state *ds, disort_output *out, disort_pair *ab, double *array, double *b, double *bdr, double *cband, double *cc, double *cmu, double *cwt, double *dtaucpr, double *eval, double *evecc, double *gl, double *gc, double *gu, int *ipvt, double *kk, double *ll, int nn, double *taucpr, double *ylmc, double *ylmu, double *z, double *wk)
 
void c_albtrans_intensity (disort_state *ds, disort_output *out, double *gu, double *kk, double *ll, int nn, double *taucpr, double *wk)
 
void c_print_albtrans (disort_state *ds, disort_output *out)
 
void c_solve1 (disort_state *ds, double *cband, int ihom, int *ipvt, int ncol, int ncut, int nn, double *b, double *ll)
 
void c_albtrans_spherical (disort_state *ds, double *cmu, double *cwt, double *gc, double *kk, double *ll, int nn, double *taucpr, double *sflup, double *sfldn)
 
void c_errmsg (char const *messag, int type)
 
int c_write_bad_var (int quiet, char const *varnam)
 
int c_write_too_small_dim (int quiet, char const *dimnam, int minval)
 
void c_sgbco (double *abd, int lda, int n, int ml, int mu, int *ipvt, double *rcond, double *z)
 
void c_sgbfa (double *abd, int lda, int n, int ml, int mu, int *ipvt, int *info)
 
void c_sgbsl (double *abd, int lda, int n, int ml, int mu, int *ipvt, double *b, int job)
 
void c_sgeco (double *a, int lda, int n, int *ipvt, double *rcond, double *z)
 
void c_sgefa (double *a, int lda, int n, int *ipvt, int *info)
 
void c_sgesl (double *a, int lda, int n, int *ipvt, double *b, int job)
 
double c_sasum (int n, double *sx)
 
void c_saxpy (int n, double sa, double *sx, double *sy)
 
double c_sdot (int n, double *sx, double *sy)
 
void c_sscal (int n, double sa, double *sx)
 
int c_isamax (int n, double *sx)
 
void c_twostr (disort_state *ds, disort_output *out, int deltam, double *gg, int *ierror, double radius)
 
double c_chapman (int lc, double taup, double *tauc, int nlyr, double *zd, double *dtau_c, double zenang, double r)
 
double c_chapman_simpler (int lc, double taup, int nlyr, double *zd, double *dtau_c, double zenang, double r)
 
void c_twostr_check_inputs (disort_state *ds, double *gg, int *ierror, double *tauc)
 
void c_twostr_fluxes (disort_state *ds, twostr_xyz *ts, double *ch, double cmu, double *kk, int *layru, double *ll, int lyrcut, int ncut, double *oprim, double *rr, double *taucpr, double *utaupr, disort_output *out, double *u0c, disort_pair *fl)
 
void c_twostr_solns (disort_state *ds, double *ch, double *chtau, double cmu, int ncut, double *oprim, double *pkag, double *pkagc, double *taucpr, double *ggprim, double *kk, double *rr, twostr_xyz *ts)
 
void c_twostr_print_inputs (disort_state *ds, int deltam, double *flyr, double *gg, int lyrcut, double *oprim, double *tauc, double *taucpr)
 
void c_twostr_set (disort_state *ds, double *bplanck, double *ch, double *chtau, double *cmu, int deltam, double *dtaucpr, double *expbea, double *flyr, double *gg, double *ggprim, int *layru, int *lyrcut, int *ncut, int *nn, double *oprim, double *pkag, double *pkagc, double radius, double *tauc, double *taucpr, double *tplanck, double *utaupr)
 
void c_twostr_solve_bc (disort_state *ds, twostr_xyz *ts, double bplanck, double *cband, double cmu, double *expbea, int lyrcut, int nn, int ncut, double tplanck, double *taucpr, double *kk, double *rr, int *ipvt, double *b, double *ll, twostr_diag *diag)
 
double c_planck_func1 (double wnumlo, double wnumhi, double t)
 
double c_planck_func2 (double wnumlo, double wnumhi, double t)
 
void c_disort_state_alloc (disort_state *ds)
 
void c_disort_state_free (disort_state *ds)
 
void c_disort_out_alloc (disort_state *ds, disort_output *out)
 
void c_disort_out_free (disort_state *ds, disort_output *out)
 
void c_twostr_state_alloc (disort_state *ds)
 
void c_twostr_state_free (disort_state *ds)
 
void c_twostr_out_alloc (disort_state *ds, disort_output *out)
 
void c_twostr_out_free (disort_state *ds, disort_output *out)
 
double * c_dbl_vector (int nl, int nh, char const *name)
 
int * c_int_vector (int nl, int nh, char const *name)
 
void print_test (disort_state *ds_calc, disort_output *calc, disort_state *ds_good, disort_output *good)
 
void c_free_dbl_vector (double *m, int nl, int nh)
 
int c_setout (float *sdtauc, int nlyr, int ntau, float *sutau, float *z, float *zout)
 
double c_inter (int npoints, int itype, double arg, float *xarr, double *yarr, double *hh)
 
int c_gaussian_quadrature_test (int nstr, float *sza, double umu0)
 
void disort_test01 (void)
 
void disort_test02 (void)
 
void disort_test03 (void)
 
void disort_test04 (void)
 
void disort_test05 (void)
 
void disort_test06 (void)
 
void disort_test07 (void)
 
void disort_test08 (void)
 
void disort_test09 (void)
 
void disort_test10 (void)
 
void disort_test11 (void)
 
void disort_test12 (void)
 
void disort_test13 (void)
 
void disort_test14 (void)
 

Macro Definition Documentation

◆ TWOSTR_NERR

#define TWOSTR_NERR   22

Definition at line 206 of file cdisort.h.

◆ A

#define A (   i,
 
)    a[i-1+(j-1)*lda]

Definition at line 242 of file cdisort.h.

◆ AA

#define AA (   j,
 
)    aa[j-1+(k-1)*ia]

Definition at line 243 of file cdisort.h.

◆ ABD

#define ABD (   i,
 
)    abd[i-1+(j-1)*lda]

Definition at line 244 of file cdisort.h.

◆ ALBMED

#define ALBMED (   iu)    out->albmed[iu-1]

Definition at line 245 of file cdisort.h.

◆ AMB

#define AMB (   iq,
  jq 
)    ab[iq-1+(jq-1)*(ds->nstr/2)].zero

Definition at line 246 of file cdisort.h.

◆ APB

#define APB (   iq,
  jq 
)    ab[iq-1+(jq-1)*(ds->nstr/2)].one

Definition at line 247 of file cdisort.h.

◆ B

#define B (   iq)    b[iq-1]

Definition at line 249 of file cdisort.h.

◆ BDR

#define BDR (   iq,
  jq 
)    bdr[iq-1+(jq)*(ds->nstr/2)]

Definition at line 250 of file cdisort.h.

◆ BEM

#define BEM (   iq)    bem[iq-1]

Definition at line 251 of file cdisort.h.

◆ CBAND

#define CBAND (   irow,
  ncol 
)    cband[irow-1+(ncol-1)*(9*(ds->nstr/2)-2)]

Definition at line 253 of file cdisort.h.

◆ CC

#define CC (   iq,
  jq 
)    cc[iq-1+(jq-1)*ds->nstr]

Definition at line 254 of file cdisort.h.

◆ CH

#define CH (   lc)    ch[lc-1]

Definition at line 255 of file cdisort.h.

◆ CHTAU

#define CHTAU (   ls)    chtau[ls]

Definition at line 256 of file cdisort.h.

◆ CMU

#define CMU (   iq)    cmu[iq-1]

Definition at line 257 of file cdisort.h.

◆ CWT

#define CWT (   iq)    cwt[iq-1]

Definition at line 258 of file cdisort.h.

◆ DFDT

#define DFDT (   lu)    out->rad[lu-1].dfdt

Definition at line 260 of file cdisort.h.

◆ DIAG

#define DIAG (   i)    diag[i-1].on

Definition at line 261 of file cdisort.h.

◆ DTAUC

#define DTAUC (   lc)    ds->dtauc[lc-1]

Definition at line 262 of file cdisort.h.

◆ DTAU_C

#define DTAU_C (   lc)    dtau_c[lc-1]

Definition at line 263 of file cdisort.h.

◆ DTAUCPR

#define DTAUCPR (   lc)    dtaucpr[lc-1]

Definition at line 264 of file cdisort.h.

◆ EMU

#define EMU (   iu)    emu[iu-1]

Definition at line 266 of file cdisort.h.

◆ EVAL

#define EVAL (   j)    eval[j-1]

Definition at line 267 of file cdisort.h.

◆ EVEC

#define EVEC (   j,
 
)    evec[j-1+(k-1)*ievec]

Definition at line 268 of file cdisort.h.

◆ EVECC

#define EVECC (   iq,
  jq 
)    evecc[iq-1+(jq-1)*ds->nstr]

Definition at line 269 of file cdisort.h.

◆ EXPBEA

#define EXPBEA (   lc)    expbea[lc]

Definition at line 270 of file cdisort.h.

◆ FLDIR

#define FLDIR (   lu)    fl[lu-1].zero

Definition at line 272 of file cdisort.h.

◆ FLDN

#define FLDN (   lu)    fl[lu-1].one

Definition at line 273 of file cdisort.h.

◆ FLUP

#define FLUP (   lu)    out->rad[lu-1].flup

Definition at line 274 of file cdisort.h.

◆ FLYR

#define FLYR (   lc)    flyr[lc-1]

Definition at line 275 of file cdisort.h.

◆ GC

#define GC (   iq,
  jq,
  lc 
)    gc[iq-1+(jq-1+(lc-1)*ds->nstr)*ds->nstr]

Definition at line 277 of file cdisort.h.

◆ GENSRC

#define GENSRC (   maz,
  lc,
  iq 
)    ds->gensrc[iq-1+(lc-1+maz*ds->nlyr)*ds->nstr]

Definition at line 278 of file cdisort.h.

◆ GENSRCU

#define GENSRCU (   maz,
  lc,
  iu 
)    ds->gensrcu[iu-1+(lc-1+maz*ds->nlyr)*ds->numu]

Definition at line 279 of file cdisort.h.

◆ GG

#define GG (   lc)    gg[lc-1]

Definition at line 280 of file cdisort.h.

◆ GGPRIM

#define GGPRIM (   lc)    ggprim[lc-1]

Definition at line 281 of file cdisort.h.

◆ GL

#define GL (   k,
  lc 
)    gl[k+(lc-1)*(ds->nstr+1)]

Definition at line 282 of file cdisort.h.

◆ GMU

#define GMU (   k)    gmu[k-1]

Definition at line 283 of file cdisort.h.

◆ GU

#define GU (   iu,
  iq,
  lc 
)    gu[iu-1+(iq-1+(lc-1)*ds->nstr)*ds->numu]

Definition at line 284 of file cdisort.h.

◆ GWT

#define GWT (   k)    gwt[k-1]

Definition at line 285 of file cdisort.h.

◆ IERROR

#define IERROR (   i)    ierror[i-1]

Definition at line 287 of file cdisort.h.

◆ IPVT

#define IPVT (   k)    ipvt[k-1]

Definition at line 288 of file cdisort.h.

◆ KK

#define KK (   iq,
  lc 
)    kk[iq-1+(lc-1)*ds->nstr]

Definition at line 290 of file cdisort.h.

◆ LAYRU

#define LAYRU (   lu)    layru[lu-1]

Definition at line 292 of file cdisort.h.

◆ LL

#define LL (   iq,
  lc 
)    ll[iq-1+(lc-1)*ds->nstr]

Definition at line 293 of file cdisort.h.

◆ MU

#define MU (   i)    mu[i-1]

Definition at line 295 of file cdisort.h.

◆ OMEGA

#define OMEGA (   lyr)    omega[lyr-1]

Definition at line 297 of file cdisort.h.

◆ OPRIM

#define OPRIM (   lc)    oprim[lc-1]

Definition at line 298 of file cdisort.h.

◆ PKAG

#define PKAG (   lc)    pkag[lc]

Definition at line 300 of file cdisort.h.

◆ PKAGC

#define PKAGC (   lc)    pkagc[lc-1]

Definition at line 301 of file cdisort.h.

◆ PHASA

#define PHASA (   lc)    phasa[lc-1]

Definition at line 302 of file cdisort.h.

◆ PHASE

#define PHASE (   lc)    phase[lc-1]

Definition at line 303 of file cdisort.h.

◆ PHASM

#define PHASM (   lc)    phasm[lc-1]

Definition at line 304 of file cdisort.h.

◆ PHAST

#define PHAST (   lc)    phast[lc-1]

Definition at line 305 of file cdisort.h.

◆ PHI

#define PHI (   j)    ds->phi[j-1]

Definition at line 306 of file cdisort.h.

◆ PHIRAD

#define PHIRAD (   jp)    phirad[jp-1]

Definition at line 307 of file cdisort.h.

◆ PMOM

#define PMOM (   k,
  lc 
)    ds->pmom[k+(lc-1)*(ds->nmom_nstr+1)]

Definition at line 308 of file cdisort.h.

◆ PRNTU0

#define PRNTU0 (   i)    prntu0[i-1]

Definition at line 309 of file cdisort.h.

◆ PSI0

#define PSI0 (   iq)    psi[iq-1].zero

Definition at line 310 of file cdisort.h.

◆ PSI1

#define PSI1 (   iq)    psi[iq-1].one

Definition at line 311 of file cdisort.h.

◆ RFLDIR

#define RFLDIR (   lu)    out->rad[lu-1].rfldir

Definition at line 313 of file cdisort.h.

◆ RFLDN

#define RFLDN (   lu)    out->rad[lu-1].rfldn

Definition at line 314 of file cdisort.h.

◆ RMU

#define RMU (   iu,
  iq 
)    rmu[iu-1+(iq)*ds->numu]

Definition at line 315 of file cdisort.h.

◆ RR

#define RR (   lc)    rr[lc-1]

Definition at line 316 of file cdisort.h.

◆ SSALB

#define SSALB (   lc)    ds->ssalb[lc-1]

Definition at line 318 of file cdisort.h.

◆ SUBD

#define SUBD (   i)    diag[i-1].sub

Definition at line 319 of file cdisort.h.

◆ SUPERD

#define SUPERD (   i)    diag[i-1].super

Definition at line 320 of file cdisort.h.

◆ SX

#define SX (   i)    sx[i-1]

Definition at line 321 of file cdisort.h.

◆ SY

#define SY (   i)    sy[i-1]

Definition at line 322 of file cdisort.h.

◆ TAU

#define TAU (   lc)    tau[lc]

Definition at line 324 of file cdisort.h.

◆ TAUC

#define TAUC (   lc)    tauc[lc]

Definition at line 325 of file cdisort.h.

◆ TAUCPR

#define TAUCPR (   lc)    taucpr[lc]

Definition at line 326 of file cdisort.h.

◆ TEMPER

#define TEMPER (   lc)    ds->temper[lc]

Definition at line 327 of file cdisort.h.

◆ TRNMED

#define TRNMED (   iu)    out->trnmed[iu-1]

Definition at line 328 of file cdisort.h.

◆ U0C

#define U0C (   iq,
  lu 
)    u0c[iq-1+(lu-1)*ds->nstr]

Definition at line 330 of file cdisort.h.

◆ U0U

#define U0U (   iu,
  lu 
)    out->u0u[iu-1+(lu-1)*ds->numu]

Definition at line 331 of file cdisort.h.

◆ UAVG

#define UAVG (   lu)    out->rad[lu-1].uavg

Definition at line 332 of file cdisort.h.

◆ UAVGDN

#define UAVGDN (   lu)    out->rad[lu-1].uavgdn

Definition at line 333 of file cdisort.h.

◆ UAVGUP

#define UAVGUP (   lu)    out->rad[lu-1].uavgup

Definition at line 334 of file cdisort.h.

◆ UAVGSO

#define UAVGSO (   lu)    out->rad[lu-1].uavgso

Definition at line 335 of file cdisort.h.

◆ UMU

#define UMU (   iu)    ds->umu[iu-1]

Definition at line 336 of file cdisort.h.

◆ UTAU

#define UTAU (   lu)    ds->utau[lu-1]

Definition at line 337 of file cdisort.h.

◆ UTAUPR

#define UTAUPR (   lu)    utaupr[lu-1]

Definition at line 338 of file cdisort.h.

◆ UUM

#define UUM (   iu,
  lu 
)    uum[iu-1+(lu-1)*ds->numu]

Definition at line 339 of file cdisort.h.

◆ UU

#define UU (   iu,
  lu,
 
)    out->uu[iu-1+(lu-1+(j-1)*ds->ntau)*ds->numu]

Definition at line 340 of file cdisort.h.

◆ OUT_UUM

#define OUT_UUM (   iu,
  lu,
 
)    out->uum[iu-1+(lu-1+(j)*ds->ntau)*ds->numu] /* No -i behind j as mazim starts at 0, aky */

Definition at line 341 of file cdisort.h.

◆ WK

#define WK (   iq)    wk[iq-1]

Definition at line 343 of file cdisort.h.

◆ XBA

#define XBA (   lc)    xba[lc]

Definition at line 345 of file cdisort.h.

◆ XB0

#define XB0 (   iq,
  lc 
)    xb[iq-1+(lc-1)*ds->nstr].zero

Definition at line 346 of file cdisort.h.

◆ XB1

#define XB1 (   iq,
  lc 
)    xb[iq-1+(lc-1)*ds->nstr].one

Definition at line 347 of file cdisort.h.

◆ XB_0D

#define XB_0D (   lc)    ts[lc-1].xb_0d

Definition at line 348 of file cdisort.h.

◆ XB_0U

#define XB_0U (   lc)    ts[lc-1].xb_0u

Definition at line 349 of file cdisort.h.

◆ XB_1D

#define XB_1D (   lc)    ts[lc-1].xb_1d

Definition at line 350 of file cdisort.h.

◆ XB_1U

#define XB_1U (   lc)    ts[lc-1].xb_1u

Definition at line 351 of file cdisort.h.

◆ XP_0

#define XP_0 (   lc)    ts[lc-1].xp_0

Definition at line 352 of file cdisort.h.

◆ XP_1

#define XP_1 (   lc)    ts[lc-1].xp_1

Definition at line 353 of file cdisort.h.

◆ XR0

#define XR0 (   lc)    xr[lc-1].zero

Definition at line 354 of file cdisort.h.

◆ XR1

#define XR1 (   lc)    xr[lc-1].one

Definition at line 355 of file cdisort.h.

◆ YB_0D

#define YB_0D (   lc)    ts[lc-1].yb_0d

Definition at line 357 of file cdisort.h.

◆ YB_0U

#define YB_0U (   lc)    ts[lc-1].yb_0u

Definition at line 358 of file cdisort.h.

◆ YB_1D

#define YB_1D (   lc)    ts[lc-1].yb_1d

Definition at line 359 of file cdisort.h.

◆ YB_1U

#define YB_1U (   lc)    ts[lc-1].yb_1u

Definition at line 360 of file cdisort.h.

◆ YLM

#define YLM (   l,
 
)    ylm[l+(i-1)*(maxmu+1)]

Definition at line 361 of file cdisort.h.

◆ YLM0

#define YLM0 (   iq)    ylm0[iq]

Definition at line 362 of file cdisort.h.

◆ YLMC

#define YLMC (   l,
  iq 
)    ylmc[l+(iq-1)*(ds->nstr+1)]

Definition at line 363 of file cdisort.h.

◆ YLMU

#define YLMU (   l,
  iu 
)    ylmu[l+(iu-1)*(ds->nstr+1)]

Definition at line 364 of file cdisort.h.

◆ YP_0D

#define YP_0D (   lc)    ts[lc-1].yp_0d

Definition at line 365 of file cdisort.h.

◆ YP_0U

#define YP_0U (   lc)    ts[lc-1].yp_0u

Definition at line 366 of file cdisort.h.

◆ YP_1D

#define YP_1D (   lc)    ts[lc-1].yp_1d

Definition at line 367 of file cdisort.h.

◆ YP_1U

#define YP_1U (   lc)    ts[lc-1].yp_1u

Definition at line 368 of file cdisort.h.

◆ Z

#define Z (   j)    z[j-1]

Definition at line 370 of file cdisort.h.

◆ Z0

#define Z0 (   iu)    zee[iu-1].zero

Definition at line 371 of file cdisort.h.

◆ Z1

#define Z1 (   iq)    zee[iq-1].one

Definition at line 372 of file cdisort.h.

◆ Z0U

#define Z0U (   iu,
  lc 
)    zu[iu-1+(lc-1)*ds->numu].zero

Definition at line 373 of file cdisort.h.

◆ Z1U

#define Z1U (   iu,
  lc 
)    zu[iu-1+(lc-1)*ds->numu].one

Definition at line 374 of file cdisort.h.

◆ ZB0U

#define ZB0U (   iu,
  lc 
)    zbu[iu-1+(lc-1)*ds->numu].zero

Definition at line 375 of file cdisort.h.

◆ ZB1U

#define ZB1U (   iu,
  lc 
)    zbu[iu-1+(lc-1)*ds->numu].one

Definition at line 376 of file cdisort.h.

◆ ZBAU

#define ZBAU (   iu,
  lc 
)    zbu[iu-1+(lc-1)*ds->numu].alpha

Definition at line 377 of file cdisort.h.

◆ ZB_A

#define ZB_A (   lc)    ts[lc-1].zb_a

Definition at line 378 of file cdisort.h.

◆ ZBEAM

#define ZBEAM (   iu,
  lc 
)    zbeam[iu-1+(lc-1)*ds->numu]

Definition at line 379 of file cdisort.h.

◆ ZBEAMA

#define ZBEAMA (   lc)    zbeama[lc-1]

Definition at line 380 of file cdisort.h.

◆ ZBEAM0

#define ZBEAM0 (   iq,
  lc 
)    zbeamsp[iq-1+(lc-1)*ds->nstr].zero

Definition at line 381 of file cdisort.h.

◆ ZBEAM1

#define ZBEAM1 (   iq,
  lc 
)    zbeamsp[iq-1+(lc-1)*ds->nstr].one

Definition at line 382 of file cdisort.h.

◆ ZBS0

#define ZBS0 (   iq)    zbs[iq-1].zero

Definition at line 383 of file cdisort.h.

◆ ZBS1

#define ZBS1 (   iq)    zbs[iq-1].one

Definition at line 384 of file cdisort.h.

◆ ZD

#define ZD (   j)    zd[j]

Definition at line 385 of file cdisort.h.

◆ ZJ

#define ZJ (   j)    zj[j-1]

Definition at line 386 of file cdisort.h.

◆ ZJG

#define ZJG (   j)    zjg[j-1]

Definition at line 387 of file cdisort.h.

◆ ZJU

#define ZJU (   j)    zju[j-1]

Definition at line 388 of file cdisort.h.

◆ ZGU

#define ZGU (   iu,
  lc 
)    zgu[iu-1+(lc-1)*ds->numu]

Definition at line 389 of file cdisort.h.

◆ ZP_A

#define ZP_A (   lc)    ts[lc-1].zp_a

Definition at line 390 of file cdisort.h.

◆ ZPLK0

#define ZPLK0 (   iq,
  lc 
)    plk[iq-1+(lc-1)*ds->nstr].zero

Definition at line 391 of file cdisort.h.

◆ ZPLK1

#define ZPLK1 (   iq,
  lc 
)    plk[iq-1+(lc-1)*ds->nstr].one

Definition at line 392 of file cdisort.h.

◆ ZZ

#define ZZ (   iq,
  lc 
)    zz[iq-1+(lc-1)*ds->nstr]

Definition at line 393 of file cdisort.h.

◆ ZZG

#define ZZG (   iq,
  lc 
)    zzg[iq-1+(lc-1)*ds->nstr]

Definition at line 394 of file cdisort.h.

◆ MUP

#define MUP (   it)    mu_phase[it-1]

Definition at line 397 of file cdisort.h.

◆ PHASR

#define PHASR (   lc)    phasr[lc-1]

Definition at line 398 of file cdisort.h.

◆ PHAS2

#define PHAS2 (   it,
  lc 
)    phas2[it-1+(lc-1)*nphase]

Definition at line 399 of file cdisort.h.

◆ DSPHASE

#define DSPHASE (   it,
  lc 
)    ds->phase[it-1+(lc-1)*ds->nphase]

Definition at line 400 of file cdisort.h.

◆ F_PHAS2_ABS

#define F_PHAS2_ABS (   it)    f_phas2_abs[it-1]

Definition at line 401 of file cdisort.h.

◆ MU_EQ

#define MU_EQ (   i,
  lu 
)    mu_eq[i-1+(lu-1)*nf]

Definition at line 402 of file cdisort.h.

◆ NEG_PHAS

#define NEG_PHAS (   i,
  lu 
)    neg_phas[i-1+(lu-1)*nf]

Definition at line 403 of file cdisort.h.

◆ NORM_PHAS

#define NORM_PHAS (   lu)    norm_phas[lu-1]

Definition at line 404 of file cdisort.h.

◆ SDTAUC

#define SDTAUC (   i)    sdtauc[i-1]

Definition at line 407 of file cdisort.h.

◆ SUTAU

#define SUTAU (   i)    sutau[i-1]

Definition at line 408 of file cdisort.h.

◆ ZOUT

#define ZOUT (   i)    zout[i-1]

Definition at line 409 of file cdisort.h.

◆ TAUINT

#define TAUINT (   i)    tauint[i-1]

Definition at line 410 of file cdisort.h.

◆ XARR

#define XARR (   i)    xarr[i-1]

Definition at line 411 of file cdisort.h.

◆ YARR

#define YARR (   i)    yarr[i-1]

Definition at line 412 of file cdisort.h.

◆ TRUE

#define TRUE   1

Definition at line 417 of file cdisort.h.

◆ FALSE

#define FALSE   0

Definition at line 418 of file cdisort.h.

◆ FIRST_IPHAS

#define FIRST_IPHAS   1

Definition at line 420 of file cdisort.h.

◆ ISOTROPIC

#define ISOTROPIC   1

Definition at line 421 of file cdisort.h.

◆ RAYLEIGH

#define RAYLEIGH   2

Definition at line 422 of file cdisort.h.

◆ HENYEY_GREENSTEIN

#define HENYEY_GREENSTEIN   3

Definition at line 423 of file cdisort.h.

◆ HAZE_GARCIA_SIEWERT

#define HAZE_GARCIA_SIEWERT   4

Definition at line 424 of file cdisort.h.

◆ CLOUD_GARCIA_SIEWERT

#define CLOUD_GARCIA_SIEWERT   5

Definition at line 425 of file cdisort.h.

◆ LAST_IPHAS

#define LAST_IPHAS   5

Definition at line 426 of file cdisort.h.

◆ GENERAL_BC

#define GENERAL_BC   0

Definition at line 428 of file cdisort.h.

◆ SPECIAL_BC

#define SPECIAL_BC   1

Definition at line 429 of file cdisort.h.

◆ TOP_ILLUM

#define TOP_ILLUM   1

Definition at line 431 of file cdisort.h.

◆ BOT_ILLUM

#define BOT_ILLUM   2

Definition at line 432 of file cdisort.h.

◆ DS_WARNING

#define DS_WARNING   0

Definition at line 434 of file cdisort.h.

◆ DS_ERROR

#define DS_ERROR   1

Definition at line 435 of file cdisort.h.

◆ VERBOSE

#define VERBOSE   0

Definition at line 437 of file cdisort.h.

◆ QUIET

#define QUIET   1

Definition at line 438 of file cdisort.h.

◆ BRDF_NONE

#define BRDF_NONE   0

Definition at line 440 of file cdisort.h.

◆ BRDF_RPV

#define BRDF_RPV   1 /* don't change these numbers as they are */

Definition at line 441 of file cdisort.h.

◆ BRDF_CAM

#define BRDF_CAM   2 /* used by Fortran code which of course */

Definition at line 442 of file cdisort.h.

◆ BRDF_AMB

#define BRDF_AMB   3 /* has no access to this header file */

Definition at line 443 of file cdisort.h.

◆ BRDF_HAPKE

#define BRDF_HAPKE   4

Definition at line 444 of file cdisort.h.

◆ BRDF_CAM_NN

#define BRDF_CAM_NN   4

Definition at line 447 of file cdisort.h.

◆ BRDF_CAM_SAL

#define BRDF_CAM_SAL   0

Definition at line 448 of file cdisort.h.

◆ BRDF_CAM_PCL

#define BRDF_CAM_PCL   1

Definition at line 449 of file cdisort.h.

◆ BRDF_CAM_U10

#define BRDF_CAM_U10   2

Definition at line 450 of file cdisort.h.

◆ BRDF_CAM_UPHI

#define BRDF_CAM_UPHI   3

Definition at line 451 of file cdisort.h.

◆ NMUG

#define NMUG   50

Definition at line 459 of file cdisort.h.

◆ M_E

#define M_E   2.7182818284590452354

Definition at line 465 of file cdisort.h.

◆ M_LOG2E

#define M_LOG2E   1.4426950408889634074

Definition at line 466 of file cdisort.h.

◆ M_LOG10E

#define M_LOG10E   0.43429448190325182765

Definition at line 467 of file cdisort.h.

◆ M_LN2

#define M_LN2   0.69314718055994530942

Definition at line 468 of file cdisort.h.

◆ M_LN10

#define M_LN10   2.30258509299404568402

Definition at line 469 of file cdisort.h.

◆ M_PI

#define M_PI   3.14159265358979323846

Definition at line 470 of file cdisort.h.

◆ M_PI_2

#define M_PI_2   1.57079632679489661923

Definition at line 471 of file cdisort.h.

◆ M_PI_4

#define M_PI_4   0.78539816339744830962

Definition at line 472 of file cdisort.h.

◆ M_1_PI

#define M_1_PI   0.31830988618379067154

Definition at line 473 of file cdisort.h.

◆ M_2_PI

#define M_2_PI   0.63661977236758134308

Definition at line 474 of file cdisort.h.

◆ M_2_SQRTPI

#define M_2_SQRTPI   1.12837916709551257390

Definition at line 475 of file cdisort.h.

◆ M_SQRT2

#define M_SQRT2   1.41421356237309504880

Definition at line 476 of file cdisort.h.

◆ M_SQRT1_2

#define M_SQRT1_2   0.70710678118654752440

Definition at line 477 of file cdisort.h.

◆ DEG

#define DEG   (M_PI/180.)

Definition at line 480 of file cdisort.h.

◆ SQR

#define SQR (   x)
Value:
({ \
const double _x = (double)(x); \
_x*_x; })

Definition at line 482 of file cdisort.h.

◆ MIN

#define MIN (   x,
 
)
Value:
({ \
const double _x = (double)(x); \
const double _y = (double)(y); \
_x < _y ? _x : _y; })

Definition at line 486 of file cdisort.h.

◆ MAX

#define MAX (   x,
 
)
Value:
({ \
const double _x = (double)(x); \
const double _y = (double)(y); \
_x > _y ? _x : _y; })

Definition at line 491 of file cdisort.h.

◆ LIMIT_RANGE

#define LIMIT_RANGE (   min,
  x,
  max 
)
Value:
({ \
const double _min = (double)(min); \
const double _x = (double)(x); \
const double _max = (double)(max); \
_x < _min ? _min : ( _x > _max ? _max : _x ); })
double min(double x1, double x2, double x3)
Definition: core.h:15
double max(double x1, double x2, double x3)
Definition: core.h:18

Definition at line 496 of file cdisort.h.

◆ IMIN

#define IMIN (   i,
 
)
Value:
({ \
const int _i = (int)(i); \
const int _j = (int)(j); \
_i < _j ? _i : _j; })

Definition at line 502 of file cdisort.h.

◆ IMAX

#define IMAX (   i,
 
)
Value:
({ \
const int _i = (int)(i); \
const int _j = (int)(j); \
_i > _j ? _i : _j; })

Definition at line 507 of file cdisort.h.

◆ F77_SIGN

#define F77_SIGN (   a,
 
)    ((b) >= 0. ? fabs(a) : -fabs(a))

Definition at line 512 of file cdisort.h.

Typedef Documentation

◆ disort_state

typedef struct disort_state disort_state

◆ disort_output

typedef struct disort_output disort_output

Function Documentation

◆ c_disort()

void c_disort ( disort_state ds,
disort_output out 
)

Definition at line 396 of file cdisort.c.

◆ c_bidir_reflectivity()

double c_bidir_reflectivity ( double  wvnmlo,
double  wvnmhi,
double  mu,
double  mup,
double  dphi,
int  brdf_type,
disort_brdf brdf,
int  callnum 
)

Definition at line 1073 of file cdisort.c.

◆ c_bidir_reflectivity_hapke()

double c_bidir_reflectivity_hapke ( double  wvnmlo,
double  wvnmhi,
double  mu,
double  mup,
double  dphi 
)

Definition at line 1281 of file cdisort.c.

◆ c_bidir_reflectivity_rpv()

double c_bidir_reflectivity_rpv ( rpv_brdf_spec brdf,
double  mu1,
double  mu2,
double  phi,
double  badmu 
)

Definition at line 1346 of file cdisort.c.

◆ c_dref()

double c_dref ( double  wvnmlo,
double  wvnmhi,
double  mu,
int  brdf_type,
disort_brdf brdf,
int  callnum 
)

Definition at line 6257 of file cdisort.c.

◆ c_getmom()

void c_getmom ( int  iphas,
double  gg,
int  nmom,
double *  pmom 
)

Definition at line 1435 of file cdisort.c.

◆ c_asymmetric_matrix()

void c_asymmetric_matrix ( double *  aa,
double *  evec,
double *  eval,
int  m,
int  ia,
int  ievec,
int *  ier,
double *  wk 
)

Definition at line 1566 of file cdisort.c.

◆ c_intensity_components()

void c_intensity_components ( disort_state ds,
double *  gc,
double *  kk,
int *  layru,
double *  ll,
int  lyrcut,
int  mazim,
int  ncut,
int  nn,
double *  taucpr,
double *  utaupr,
double *  zz,
disort_pair plk,
double *  uum 
)

Definition at line 2209 of file cdisort.c.

◆ c_fluxes()

void c_fluxes ( disort_state ds,
disort_output out,
double *  ch,
double *  cmu,
double *  cwt,
double *  gc,
double *  kk,
int *  layru,
double *  ll,
int  lyrcut,
int  ncut,
int  nn,
int  prntu0,
double *  taucpr,
double *  utaupr,
disort_pair xr,
disort_pair zbeamsp,
double *  zbeama,
double *  zz,
double *  zzg,
disort_pair plk,
disort_pair fl,
double *  u0c 
)

Definition at line 2307 of file cdisort.c.

◆ c_intensity_correction()

void c_intensity_correction ( disort_state ds,
disort_output out,
double  dither,
double *  flyr,
int *  layru,
int  lyrcut,
int  ncut,
double *  oprim,
double *  phasa,
double *  phast,
double *  phasm,
double *  phirad,
double *  tauc,
double *  taucpr,
double *  utaupr 
)

Definition at line 2532 of file cdisort.c.

◆ c_new_intensity_correction()

void c_new_intensity_correction ( disort_state ds,
disort_output out,
double  dither,
double *  flyr,
int *  layru,
int  lyrcut,
int  ncut,
double *  oprim,
double *  phasa,
double *  phast,
double *  phasm,
double *  phirad,
double *  tauc,
double *  taucpr,
double *  utaupr 
)

Definition at line 2826 of file cdisort.c.

◆ prep_double_scat_integr()

void prep_double_scat_integr ( int  nphase,
int  ntau,
int  nf,
double *  mu_phase,
double *  phas2,
double *  mu_eq,
int *  neg_phas,
double *  norm_phas 
)

Definition at line 3113 of file cdisort.c.

◆ c_secondary_scat()

double c_secondary_scat ( disort_state ds,
int  iu,
int  lu,
double  ctheta,
double *  flyr,
int  layru,
double *  tauc 
)

Definition at line 2675 of file cdisort.c.

◆ c_new_secondary_scat()

double c_new_secondary_scat ( disort_state ds,
int  iu,
int  lu,
int  it,
double  ctheta,
double *  flyr,
int  layru,
double *  tauc,
int  nf,
double *  phas2,
double *  mu_eq,
int *  neg_phas,
double  norm_phas 
)

Definition at line 3235 of file cdisort.c.

◆ calc_phase_squared()

double calc_phase_squared ( int  nphase,
int  lu,
double  ctheta,
int  nf,
double *  mu_phase,
double *  phas2,
double *  mu_eq,
int *  neg_phas,
double  norm_phas 
)

Definition at line 3334 of file cdisort.c.

◆ c_disort_set()

void c_disort_set ( disort_state ds,
double *  ch,
double *  chtau,
double *  cmu,
double *  cwt,
int  deltam,
double *  dtaucpr,
double *  expbea,
double *  flyr,
double *  gl,
int *  layru,
int *  lyrcut,
int *  ncut,
int *  nn,
int *  corint,
double *  oprim,
double *  tauc,
double *  taucpr,
double *  utaupr 
)

Definition at line 3493 of file cdisort.c.

◆ c_set_matrix()

void c_set_matrix ( disort_state ds,
double *  bdr,
double *  cband,
double *  cmu,
double *  cwt,
double  delm0,
double *  dtaucpr,
double *  gc,
double *  kk,
int  lyrcut,
int *  ncol,
int  ncut,
double *  taucpr,
double *  wk 
)

Definition at line 3778 of file cdisort.c.

◆ c_single_scat()

double c_single_scat ( double  dither,
int  layru,
int  nlyr,
double *  phase,
double *  omega,
double *  tau,
double  umu,
double  umu0,
double  utau,
double  fbeam 
)

Definition at line 3940 of file cdisort.c.

◆ c_solve_eigen()

void c_solve_eigen ( disort_state ds,
int  lc,
disort_pair ab,
double *  array,
double *  cmu,
double *  cwt,
double *  gl,
int  mazim,
int  nn,
double *  ylmc,
double *  cc,
double *  evecc,
double *  eval,
double *  kk,
double *  gc,
double *  wk 
)

Definition at line 4056 of file cdisort.c.

◆ c_solve0()

void c_solve0 ( disort_state ds,
double *  b,
double *  bdr,
double *  bem,
double  bplanck,
double *  cband,
double *  cmu,
double *  cwt,
double *  expbea,
int *  ipvt,
double *  ll,
int  lyrcut,
int  mazim,
int  ncol,
int  ncut,
int  nn,
double  tplanck,
double *  taucpr,
double *  z,
disort_pair zbeamsp,
double *  zbeama,
double *  zz,
double *  zzg,
disort_pair plk 
)

Definition at line 4233 of file cdisort.c.

◆ c_surface_bidir()

void c_surface_bidir ( disort_state ds,
double  delm0,
double *  cmu,
int  mazim,
int  nn,
double *  bdr,
double *  emu,
double *  bem,
double *  rmu,
int  callnum 
)

Definition at line 4590 of file cdisort.c.

◆ c_interp_eigenvec()

void c_interp_eigenvec ( disort_state ds,
int  lc,
double *  cwt,
double *  evecc,
double *  gl,
double *  gu,
int  mazim,
int  nn,
double *  wk,
double *  ylmc,
double *  ylmu 
)

Definition at line 4748 of file cdisort.c.

◆ c_interp_source()

void c_interp_source ( disort_state ds,
int  lc,
double *  cwt,
double  delm0,
double *  gl,
int  mazim,
double *  oprim,
double *  ylm0,
double *  ylmc,
double *  ylmu,
disort_pair psi,
disort_pair xr,
disort_pair zee,
double *  zj,
double *  zjg,
double *  zbeam,
disort_triplet zbu,
disort_pair zbs,
double  zbsa,
double *  zgu,
disort_pair zu 
)

Definition at line 4838 of file cdisort.c.

◆ c_set_coefficients_beam_source()

void c_set_coefficients_beam_source ( disort_state ds,
double *  ch,
double *  chtau,
double *  cmu,
double  delm0,
double  fbeam,
double *  gl,
int  lc,
int  mazim,
int  nstr,
double *  taucpr,
double *  xba,
disort_pair xb,
double *  ylm0,
double *  ylmc,
double *  zj 
)

Definition at line 5079 of file cdisort.c.

◆ c_interp_coefficients_beam_source()

void c_interp_coefficients_beam_source ( disort_state ds,
double *  chtau,
double  delm0,
double  fbeam,
double *  gl,
int  lc,
int  mazim,
int  nstr,
int  numu,
double *  taucpr,
disort_triplet zbu,
double *  xba,
double *  zj,
double *  ylm0,
double *  ylmu 
)

Definition at line 4997 of file cdisort.c.

◆ c_upbeam()

void c_upbeam ( disort_state ds,
int  lc,
double *  array,
double *  cc,
double *  cmu,
double  delm0,
double *  gl,
int *  ipvt,
int  mazim,
int  nn,
double *  wk,
double *  ylm0,
double *  ylmc,
double *  zj,
double *  zz 
)

Definition at line 5189 of file cdisort.c.

◆ c_upbeam_pseudo_spherical()

void c_upbeam_pseudo_spherical ( disort_state ds,
int  lc,
double *  array,
double *  cc,
double *  cmu,
int *  ipvt,
int  nn,
double *  wk,
disort_pair xb,
double *  xba,
disort_pair zbs,
double *  zbsa,
disort_pair zbeamsp,
double *  zbeama 
)

Definition at line 5286 of file cdisort.c.

◆ c_upbeam_general_source()

void c_upbeam_general_source ( disort_state ds,
int  lc,
int  maz,
double *  array,
double *  cc,
int *  ipvt,
int  nn,
double *  wk,
double *  zjg,
double *  zzg 
)

Definition at line 5420 of file cdisort.c.

◆ c_upisot()

void c_upisot ( disort_state ds,
int  lc,
double *  array,
double *  cc,
double *  cmu,
int *  ipvt,
int  nn,
double *  oprim,
double *  wk,
disort_pair xr,
disort_pair zee,
disort_pair plk 
)

Definition at line 5505 of file cdisort.c.

◆ c_user_intensities()

void c_user_intensities ( disort_state ds,
double  bplanck,
double *  cmu,
double *  cwt,
double  delm0,
double *  dtaucpr,
double *  emu,
double *  expbea,
double *  gc,
double *  gu,
double *  kk,
int *  layru,
double *  ll,
int  lyrcut,
int  mazim,
int  ncut,
int  nn,
double *  rmu,
double *  taucpr,
double  tplanck,
double *  utaupr,
double *  wk,
disort_triplet zbu,
double *  zbeam,
disort_pair zbeamsp,
double *  zbeama,
double *  zgu,
disort_pair zu,
double *  zz,
double *  zzg,
disort_pair plk,
double *  uum 
)

Definition at line 5642 of file cdisort.c.

◆ c_xi_func()

double c_xi_func ( double  umu1,
double  umu2,
double  tau 
)

Definition at line 5995 of file cdisort.c.

◆ c_check_inputs()

void c_check_inputs ( disort_state ds,
int  scat_yes,
int  deltam,
int  corint,
double *  tauc,
int  callnum 
)

Definition at line 6024 of file cdisort.c.

◆ c_legendre_poly()

void c_legendre_poly ( int  nmu,
int  m,
int  maxmu,
int  twonm1,
double *  mu,
double *  ylm 
)

Definition at line 6353 of file cdisort.c.

◆ c_print_avg_intensities()

void c_print_avg_intensities ( disort_state ds,
disort_output out 
)

Definition at line 6635 of file cdisort.c.

◆ c_print_inputs()

void c_print_inputs ( disort_state ds,
double *  dtaucpr,
int  scat_yes,
int  deltam,
int  corint,
double *  flyr,
int  lyrcut,
double *  oprim,
double *  tauc,
double *  taucpr 
)

Definition at line 6683 of file cdisort.c.

◆ c_print_intensities()

void c_print_intensities ( disort_state ds,
disort_output out 
)

Definition at line 6887 of file cdisort.c.

◆ c_gaussian_quadrature()

void c_gaussian_quadrature ( int  m,
double *  gmu,
double *  gwt 
)

Definition at line 6979 of file cdisort.c.

◆ c_ratio()

double c_ratio ( double  a,
double  b 
)

Definition at line 7098 of file cdisort.c.

◆ c_fcmp()

int c_fcmp ( double  x1,
double  x2 
)

Definition at line 7185 of file cdisort.c.

◆ c_self_test()

void c_self_test ( int  compare,
int *  prntu0,
disort_state ds,
disort_output out 
)

Definition at line 7259 of file cdisort.c.

◆ c_albtrans()

void c_albtrans ( disort_state ds,
disort_output out,
disort_pair ab,
double *  array,
double *  b,
double *  bdr,
double *  cband,
double *  cc,
double *  cmu,
double *  cwt,
double *  dtaucpr,
double *  eval,
double *  evecc,
double *  gl,
double *  gc,
double *  gu,
int *  ipvt,
double *  kk,
double *  ll,
int  nn,
double *  taucpr,
double *  ylmc,
double *  ylmu,
double *  z,
double *  wk 
)

Definition at line 7435 of file cdisort.c.

◆ c_albtrans_intensity()

void c_albtrans_intensity ( disort_state ds,
disort_output out,
double *  gu,
double *  kk,
double *  ll,
int  nn,
double *  taucpr,
double *  wk 
)

Definition at line 7660 of file cdisort.c.

◆ c_print_albtrans()

void c_print_albtrans ( disort_state ds,
disort_output out 
)

Definition at line 7752 of file cdisort.c.

◆ c_solve1()

void c_solve1 ( disort_state ds,
double *  cband,
int  ihom,
int *  ipvt,
int  ncol,
int  ncut,
int  nn,
double *  b,
double *  ll 
)

Definition at line 7808 of file cdisort.c.

◆ c_albtrans_spherical()

void c_albtrans_spherical ( disort_state ds,
double *  cmu,
double *  cwt,
double *  gc,
double *  kk,
double *  ll,
int  nn,
double *  taucpr,
double *  sflup,
double *  sfldn 
)

Definition at line 7889 of file cdisort.c.

◆ c_errmsg()

void c_errmsg ( char const *  messag,
int  type 
)

Definition at line 7949 of file cdisort.c.

◆ c_write_bad_var()

int c_write_bad_var ( int  quiet,
char const *  varnam 
)

Definition at line 7988 of file cdisort.c.

◆ c_write_too_small_dim()

int c_write_too_small_dim ( int  quiet,
char const *  dimnam,
int  minval 
)

Definition at line 8020 of file cdisort.c.

◆ c_sgbco()

void c_sgbco ( double *  abd,
int  lda,
int  n,
int  ml,
int  mu,
int *  ipvt,
double *  rcond,
double *  z 
)

Definition at line 8149 of file cdisort.c.

◆ c_sgbfa()

void c_sgbfa ( double *  abd,
int  lda,
int  n,
int  ml,
int  mu,
int *  ipvt,
int *  info 
)

Definition at line 8361 of file cdisort.c.

◆ c_sgbsl()

void c_sgbsl ( double *  abd,
int  lda,
int  n,
int  ml,
int  mu,
int *  ipvt,
double *  b,
int  job 
)

Definition at line 8494 of file cdisort.c.

◆ c_sgeco()

void c_sgeco ( double *  a,
int  lda,
int  n,
int *  ipvt,
double *  rcond,
double *  z 
)

Definition at line 8610 of file cdisort.c.

◆ c_sgefa()

void c_sgefa ( double *  a,
int  lda,
int  n,
int *  ipvt,
int *  info 
)

Definition at line 8788 of file cdisort.c.

◆ c_sgesl()

void c_sgesl ( double *  a,
int  lda,
int  n,
int *  ipvt,
double *  b,
int  job 
)

Definition at line 8890 of file cdisort.c.

◆ c_sasum()

double c_sasum ( int  n,
double *  sx 
)

Definition at line 8966 of file cdisort.c.

◆ c_saxpy()

void c_saxpy ( int  n,
double  sa,
double *  sx,
double *  sy 
)

Definition at line 9021 of file cdisort.c.

◆ c_sdot()

double c_sdot ( int  n,
double *  sx,
double *  sy 
)

Definition at line 9074 of file cdisort.c.

◆ c_sscal()

void c_sscal ( int  n,
double  sa,
double *  sx 
)

Definition at line 9128 of file cdisort.c.

◆ c_isamax()

int c_isamax ( int  n,
double *  sx 
)

Definition at line 9174 of file cdisort.c.

◆ c_twostr()

void c_twostr ( disort_state ds,
disort_output out,
int  deltam,
double *  gg,
int *  ierror,
double  radius 
)

Definition at line 9572 of file cdisort.c.

◆ c_chapman()

double c_chapman ( int  lc,
double  taup,
double *  tauc,
int  nlyr,
double *  zd,
double *  dtau_c,
double  zenang,
double  r 
)

Definition at line 9748 of file cdisort.c.

◆ c_chapman_simpler()

double c_chapman_simpler ( int  lc,
double  taup,
int  nlyr,
double *  zd,
double *  dtau_c,
double  zenang,
double  r 
)

Definition at line 9826 of file cdisort.c.

◆ c_twostr_check_inputs()

void c_twostr_check_inputs ( disort_state ds,
double *  gg,
int *  ierror,
double *  tauc 
)

Definition at line 9909 of file cdisort.c.

◆ c_twostr_fluxes()

void c_twostr_fluxes ( disort_state ds,
twostr_xyz ts,
double *  ch,
double  cmu,
double *  kk,
int *  layru,
double *  ll,
int  lyrcut,
int  ncut,
double *  oprim,
double *  rr,
double *  taucpr,
double *  utaupr,
disort_output out,
double *  u0c,
disort_pair fl 
)

Definition at line 10082 of file cdisort.c.

◆ c_twostr_solns()

void c_twostr_solns ( disort_state ds,
double *  ch,
double *  chtau,
double  cmu,
int  ncut,
double *  oprim,
double *  pkag,
double *  pkagc,
double *  taucpr,
double *  ggprim,
double *  kk,
double *  rr,
twostr_xyz ts 
)

Definition at line 10220 of file cdisort.c.

◆ c_twostr_print_inputs()

void c_twostr_print_inputs ( disort_state ds,
int  deltam,
double *  flyr,
double *  gg,
int  lyrcut,
double *  oprim,
double *  tauc,
double *  taucpr 
)

Definition at line 10479 of file cdisort.c.

◆ c_twostr_set()

void c_twostr_set ( disort_state ds,
double *  bplanck,
double *  ch,
double *  chtau,
double *  cmu,
int  deltam,
double *  dtaucpr,
double *  expbea,
double *  flyr,
double *  gg,
double *  ggprim,
int *  layru,
int *  lyrcut,
int *  ncut,
int *  nn,
double *  oprim,
double *  pkag,
double *  pkagc,
double  radius,
double *  tauc,
double *  taucpr,
double *  tplanck,
double *  utaupr 
)

Definition at line 10603 of file cdisort.c.

◆ c_twostr_solve_bc()

void c_twostr_solve_bc ( disort_state ds,
twostr_xyz ts,
double  bplanck,
double *  cband,
double  cmu,
double *  expbea,
int  lyrcut,
int  nn,
int  ncut,
double  tplanck,
double *  taucpr,
double *  kk,
double *  rr,
int *  ipvt,
double *  b,
double *  ll,
twostr_diag diag 
)

Definition at line 10819 of file cdisort.c.

◆ c_planck_func1()

double c_planck_func1 ( double  wnumlo,
double  wnumhi,
double  t 
)

Definition at line 6483 of file cdisort.c.

◆ c_planck_func2()

double c_planck_func2 ( double  wnumlo,
double  wnumhi,
double  t 
)

◆ c_disort_state_alloc()

void c_disort_state_alloc ( disort_state ds)

Definition at line 11195 of file cdisort.c.

◆ c_disort_state_free()

void c_disort_state_free ( disort_state ds)

Definition at line 11305 of file cdisort.c.

◆ c_disort_out_alloc()

void c_disort_out_alloc ( disort_state ds,
disort_output out 
)

Definition at line 11353 of file cdisort.c.

◆ c_disort_out_free()

void c_disort_out_free ( disort_state ds,
disort_output out 
)

Definition at line 11395 of file cdisort.c.

◆ c_twostr_state_alloc()

void c_twostr_state_alloc ( disort_state ds)

Definition at line 11417 of file cdisort.c.

◆ c_twostr_state_free()

void c_twostr_state_free ( disort_state ds)

Definition at line 11463 of file cdisort.c.

◆ c_twostr_out_alloc()

void c_twostr_out_alloc ( disort_state ds,
disort_output out 
)

Definition at line 11480 of file cdisort.c.

◆ c_twostr_out_free()

void c_twostr_out_free ( disort_state ds,
disort_output out 
)

Definition at line 11498 of file cdisort.c.

◆ c_dbl_vector()

double* c_dbl_vector ( int  nl,
int  nh,
char const *  name 
)

Definition at line 11516 of file cdisort.c.

◆ c_int_vector()

int* c_int_vector ( int  nl,
int  nh,
char const *  name 
)

Definition at line 11556 of file cdisort.c.

◆ print_test()

void print_test ( disort_state ds_calc,
disort_output calc,
disort_state ds_good,
disort_output good 
)

Definition at line 2873 of file disotest.c.

◆ c_free_dbl_vector()

void c_free_dbl_vector ( double *  m,
int  nl,
int  nh 
)

Definition at line 11597 of file cdisort.c.

◆ c_setout()

int c_setout ( float *  sdtauc,
int  nlyr,
int  ntau,
float *  sutau,
float *  z,
float *  zout 
)

Definition at line 11642 of file cdisort.c.

◆ c_inter()

double c_inter ( int  npoints,
int  itype,
double  arg,
float *  xarr,
double *  yarr,
double *  hh 
)

Definition at line 11721 of file cdisort.c.

◆ c_gaussian_quadrature_test()

int c_gaussian_quadrature_test ( int  nstr,
float *  sza,
double  umu0 
)

Definition at line 11780 of file cdisort.c.

◆ disort_test01()

void disort_test01 ( void  )

Definition at line 157 of file disotest.c.

◆ disort_test02()

void disort_test02 ( void  )

Definition at line 340 of file disotest.c.

◆ disort_test03()

void disort_test03 ( void  )

Definition at line 489 of file disotest.c.

◆ disort_test04()

void disort_test04 ( void  )

Definition at line 614 of file disotest.c.

◆ disort_test05()

void disort_test05 ( void  )

Definition at line 807 of file disotest.c.

◆ disort_test06()

void disort_test06 ( void  )

Definition at line 934 of file disotest.c.

◆ disort_test07()

void disort_test07 ( void  )

Definition at line 1353 of file disotest.c.

◆ disort_test08()

void disort_test08 ( void  )

Definition at line 1693 of file disotest.c.

◆ disort_test09()

void disort_test09 ( void  )

Definition at line 1840 of file disotest.c.

◆ disort_test10()

void disort_test10 ( void  )

Definition at line 2075 of file disotest.c.

◆ disort_test11()

void disort_test11 ( void  )

Definition at line 2222 of file disotest.c.

◆ disort_test12()

void disort_test12 ( void  )

Definition at line 2355 of file disotest.c.

◆ disort_test13()

void disort_test13 ( void  )

Definition at line 2493 of file disotest.c.

◆ disort_test14()

void disort_test14 ( void  )

Definition at line 2687 of file disotest.c.