47 if (argc != 3 && argc != 7)
48 ERRMSG(
"Missing or invalid command-line arguments.\n\n"
49 "Usage: planck <t> <nu>\n"
50 " or: planck <t0> <t1> <dt> <nu0> <nu1> <dnu>\n\n"
51 "Use -h for full help.");
57 const double t = atof(argv[1]);
58 const double nu = atof(argv[2]);
61 printf(
"%.10g\n",
PLANCK(t, nu));
68 const double t0 = atof(argv[1]);
69 const double t1 = atof(argv[2]);
70 const double dt = atof(argv[3]);
71 const double nu0 = atof(argv[4]);
72 const double nu1 = atof(argv[5]);
73 const double dnu = atof(argv[6]);
76 printf(
"# $1 = brightness temperature [K]\n"
77 "# $2 = wavenumber [cm^-1]\n"
78 "# $3 = radiance [W/(m^2 sr cm^-1)]\n");
81 for (
double t = t0; t <= t1; t += dt) {
83 for (
double nu = nu0; nu <= nu1; nu += dnu)
84 printf(
"%.10g %.4f %.10g\n", t, nu,
PLANCK(t, nu));
95 printf(
"\nJURASSIC Planck-function converter.\n\n");
96 printf(
"Convert brightness temperature to radiance for a single value\n");
97 printf(
"or a tabulated temperature and wavenumber range.\n\n");
99 printf(
" planck <t> <nu>\n");
100 printf(
" planck <t0> <t1> <dt> <nu0> <nu1> <dnu>\n\n");
101 printf(
"Arguments:\n");
102 printf(
" <t> Brightness temperature [K].\n");
103 printf(
" <nu> Wavenumber [cm^-1].\n");
104 printf(
" <t0> First temperature value for table output.\n");
105 printf(
" <t1> Last temperature value for table output.\n");
106 printf(
" <dt> Temperature increment for table output.\n");
107 printf(
" <nu0> First wavenumber for table output.\n");
108 printf(
" <nu1> Last wavenumber for table output.\n");
109 printf(
" <dnu> Wavenumber increment for table output.\n\n");
111 printf(
" Writes results to standard output.\n\n");
112 printf(
"Further information:\n");
113 printf(
" Manual: https://slcs-jsc.github.io/jurassic/\n");
JURASSIC library declarations.
#define ERRMSG(...)
Print an error message with contextual information and terminate the program.
#define USAGE
Print usage information on -h or --help.
#define PLANCK(T, nu)
Compute spectral radiance using Planck’s law.
int main(int argc, char *argv[])