33#define CHECK(x) ((x)!=-9999 ? (x) : GSL_NAN)
43 static airs_ret_gran_t airs_ret_gran;
49 ERRMSG(
"Give parameters: <airs_l2_file> <layer> <airs.tab>");
52 const int lay = atoi(argv[2]);
55 printf(
"Read AIRS Level-2 data file: %s\n", argv[1]);
56 airs_ret_rdr(argv[1], &airs_ret_gran);
59 printf(
"Write ASCII file: %s\n", argv[3]);
60 if (!(out = fopen(argv[3],
"w")))
61 ERRMSG(
"Cannot create file!");
65 "# $1 = time (seconds since 01-JAN-2000, 00:00 UTC)\n"
66 "# $2 = altitude [km]\n"
67 "# $3 = longitude [deg]\n"
68 "# $4 = latitude [deg]\n"
69 "# $5 = pressure [hPa]\n"
70 "# $6 = temperature [K]\n"
71 "# $7 = H2O mass mixing ratio\n"
72 "# $8 = O3 volume mixing ratio\n"
73 "# $9 = CH4 volume mixing ratio\n"
74 "# $10 = CO volume mixing ratio\n");
77 for (
int track = 0; track < AIRS_RET_GEOTRACK; track++) {
79 for (
int xtrack = 0; xtrack < AIRS_RET_GEOXTRACK; xtrack++)
80 fprintf(out,
"%.2f %g %g %g %g %g %g %g %g %g\n",
81 airs_ret_gran.Time[track][xtrack] - 220838400,
82 CHECK(airs_ret_gran.GP_Height[track][xtrack][lay]) / 1000,
83 CHECK(airs_ret_gran.Longitude[track][xtrack]),
84 CHECK(airs_ret_gran.Latitude[track][xtrack]),
85 CHECK(airs_ret_gran.pressStd[lay]),
86 CHECK(airs_ret_gran.TAirStd[track][xtrack][lay]),
87 CHECK(airs_ret_gran.H2OMMRStd[track][xtrack][lay]),
88 CHECK(airs_ret_gran.O3VMRStd[track][xtrack][lay]),
89 CHECK(airs_ret_gran.COVMRLevStd[track][xtrack][lay]),
90 CHECK(airs_ret_gran.CH4VMRLevStd[track][xtrack][lay]));
#define ERRMSG(...)
Print error message and quit program.
AIRS Code Collection library declarations.
int main(int argc, char *argv[])