41 {
42
45
46
48
49
50 if (argc < 3)
51 ERRMSG(
"Missing or invalid command-line arguments.\n\n"
52 "Usage: limb <ctl> <obs> [KEY VALUE ...]\n\n"
53 "Use -h for full help.");
54
55
57 const double obsz =
scan_ctl(argc, argv,
"OBSZ", -1,
"780", NULL);
58 const double t0 =
scan_ctl(argc, argv,
"T0", -1,
"0", NULL);
59 const double t1 =
scan_ctl(argc, argv,
"T1", -1,
"0", NULL);
60 const double dt =
scan_ctl(argc, argv,
"DT", -1,
"1", NULL);
61 const double z0 =
scan_ctl(argc, argv,
"Z0", -1,
"3", NULL);
62 const double z1 =
scan_ctl(argc, argv,
"Z1", -1,
"68", NULL);
63 const double dz =
scan_ctl(argc, argv,
"DZ", -1,
"1", NULL);
64
65
66 for (double t = t0; t <= t1; t += dt)
67 for (double z = z0; z <= z1; z += dz) {
71 obs.
vplat[obs.
nr] = 180 / M_PI * acos((
RE + z) / (
RE + obsz));
74 }
75
76
78
79 return EXIT_SUCCESS;
80}
void read_ctl(int argc, char *argv[], ctl_t *ctl)
Read model control parameters from command-line and configuration input.
void write_obs(const char *dirname, const char *filename, const ctl_t *ctl, const obs_t *obs, int profile)
Write observation data to an output file in ASCII or binary format.
double scan_ctl(int argc, char *argv[], const char *varname, const int arridx, const char *defvalue, char *value)
Scan control file or command-line arguments for a configuration variable.
#define RE
Mean radius of Earth [km].
#define ERRMSG(...)
Print an error message with contextual information and terminate the program.
#define USAGE
Print usage information on -h or --help.
#define NR
Maximum number of ray paths.
Observation geometry and radiance data.
double vpz[NR]
View point altitude [km].
double vplat[NR]
View point latitude [deg].
double obsz[NR]
Observer altitude [km].
double time[NR]
Time (seconds since 2000-01-01T00:00Z).
int nr
Number of ray paths.