30 {
31
33
34 FILE *out;
35
36 double z;
37
38 int ids, iz;
39
40
42
43
44 if (argc < 4)
45 ERRMSG("Give parameters: <ctl> <gps.nc> <map.tab>");
46
47
48 z = scan_ctl(argc, argv, "Z", -1, "20", NULL);
49
50
52
53
54 printf("Write map data: %s\n", argv[3]);
55 if (!(out = fopen(argv[3], "w")))
56 ERRMSG("Cannot create file!");
57
58
59 fprintf(out,
60 "# $1 = time [sec]\n"
61 "# $2 = altitude [km]\n"
62 "# $3 = longitude [deg]\n"
63 "# $4 = latitude [deg]\n"
64 "# $5 = pressure [hPa]\n"
65 "# $6 = temperature [K]\n"
66 "# $7 = water vapor vmr [ppm]\n"
67 "# $8 = temperature perturbation [K]\n"
68 "# $9 = tropopause height [km]\n\n");
69
70
71 for (ids = 0; ids < gps->
nds; ids++)
72 for (iz = 0; iz < gps->
nz[ids]; iz++)
73 if (fabs(gps->
z[ids][iz] - z) < 0.01) {
74 fprintf(out, "%.2f %g %g %g %g %g %g %g %g\n",
75 gps->
time[ids], gps->
z[ids][iz], gps->
lon[ids][iz],
76 gps->
lat[ids][iz], gps->
p[ids][iz], gps->
t[ids][iz],
77 gps->
wv[ids][iz], gps->
pt[ids][iz], gps->
th[ids]);
78 break;
79 }
80
81
82 fclose(out);
83
84
85 free(gps);
86
87 return EXIT_SUCCESS;
88}
void read_gps(char *filename, gps_t *gps)
Read GPS-RO data file.
double time[NDS]
Time (seconds since 2000-01-01T00:00Z).
double pt[NDS][NZ]
Temperature perturbation [K].
double t[NDS][NZ]
Temperature [K].
double wv[NDS][NZ]
Water vapor volume mixing ratio [ppm].
int nz[NDS]
Number of altitudes per profile.
double lon[NDS][NZ]
Longitude [deg].
int nds
Number of profiles.
double p[NDS][NZ]
Pressure [hPa].
double th[NDS]
Tropopause height [km].
double z[NDS][NZ]
Altitude [km].
double lat[NDS][NZ]
Latitude [deg].