source: SH_SHM/trunk/util/statinf.c @ 96

Revision 96, 5.0 KB checked in by marcus, 14 years ago (diff)

r77 | svn | 2009-02-06 11:37:33 +0100 (Fr, 06 Feb 2009) | 1 line

statinf now reads parameter file

Line 
1
2/* file statinf.c
3 *      =========
4 *
5 * version 4, 21-Nov-2005
6 *
7 * Output station info in various formats
8 * K. Stammler, 13-Feb-2003
9 */
10
11
12/*
13 *
14 *  SeismicHandler, seismic analysis software
15 *  Copyright (C) 1996,  Klaus Stammler, Federal Institute for Geosciences
16 *                                       and Natural Resources (BGR), Germany
17 *
18 *  This program is free software; you can redistribute it and/or modify
19 *  it under the terms of the GNU General Public License as published by
20 *  the Free Software Foundation; either version 2 of the License, or
21 *  (at your option) any later version.
22 *
23 *  This program is distributed in the hope that it will be useful,
24 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
25 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
26 *  GNU General Public License for more details.
27 *
28 *  You should have received a copy of the GNU General Public License
29 *  along with this program; if not, write to the Free Software
30 *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
31 *
32 */
33
34
35#include <stdio.h>
36#include <string.h>
37#include <math.h>
38#include "basecnst.h"
39#ifdef BC_INC_STDLIB
40#include BC_INC_STDLIB
41#endif
42#include "sysbase.h"
43#include "cpar.h"
44#include "glusrdef.h"
45#include "globalparams.h"
46
47
48int main( int argc, char *argv[] )
49{
50        /* local variables */
51        char     station[cBcLineLth+1];       /* station name */
52        char     *inputs;                     /* pointer to environment */
53        char     str[cBcLineLth+1];           /* scratch string */
54        int      i;                           /* counter */
55        int      slth;                        /* string length */
56        GLT_STATINF   statinf;                /* station info */
57        STATLOC  tmp;                         /* scratch */
58        TSyStatus     status;                 /* return status */
59        int      lat_deg, lat_min, lon_deg, lon_min;  /* location values */
60        float    lat_sec, lon_sec;                    /* location values */
61        char     lat_sign, lon_sign;          /* signs */
62        float    elev;                        /* elevation */
63
64        /* executable code */
65
66        pa_init( argc, argv );
67        if  (pa_pnumber() != 1)  {
68                fprintf( stderr,
69                        "Usage: %s <station>\n", pa_progname() );
70                return 1;
71        } /*endif*/
72
73    GpReadParfile();
74
75        strcpy( station, pa_pvalue(1) );
76        slth = strlen( station );
77        for  (i=0; i<slth; i++)  station[i] = Cap( station[i] );
78
79        inputs = (char *)getenv( "SH_INPUTS" );
80        if  (inputs == NULL)  {
81                fprintf( stderr, "%s: environment SH_INPUTS not set\n", pa_progname() );
82                return 1;
83        } /*endif*/
84        /* station location file */
85    /*
86        strcpy( str, inputs );
87        strcat( str, "/" );
88        strcat( str, "STATINF.DAT" );
89        gl_locfile_name( str );
90    */
91
92        status = cBcNoError;
93        gl_statinf( station, &statinf, &status );
94        if  (SySevere(&status))  {
95                fprintf( stderr, "%s: problem %d on station %s\n", pa_progname(), status,
96                        station );
97                return 1;
98        } /*endif*/
99
100        if  (gl_valid_number(statinf.elevation))  {
101                elev = statinf.elevation;
102        } else {
103                elev = 0.0;
104        } /*endif*/
105
106        if  (pa_qspecified("-hyposat"))  {
107
108                tmp = statinf.lat;
109                lat_sign = (tmp < 0 ? 'S' : 'N');
110                tmp = fabs( tmp );
111                lat_deg = (int)(tmp);
112                tmp -= (STATLOC)lat_deg;
113                tmp *= 60.0;
114                lat_min = (int)(tmp);
115                tmp -= (STATLOC)lat_min;
116                lat_sec = (float)(tmp*60);
117
118                tmp = statinf.lon;
119                lon_sign = (tmp < 0 ? 'W' : 'E');
120                tmp = fabs( tmp );
121                lon_deg = (int)(tmp);
122                tmp -= (STATLOC)lon_deg;
123                tmp *= 60.0;
124                lon_min = (int)(tmp);
125                tmp -= (STATLOC)lon_min;
126                lon_sec = (float)(tmp*60);
127
128                printf( "%-5s %02d%02d%04.1f%c%3d%02d%04.1f%c %6.1f%s\n", station,
129                        lat_deg, lat_min, lat_sec, lat_sign,
130                        lon_deg, lon_min, lon_sec, lon_sign, elev, statinf.name );
131
132        } else if  (pa_qspecified("-hypo71"))  {
133
134                tmp = statinf.lat;
135                lat_sign = (tmp < 0 ? 'S' : 'N');
136                tmp = fabs( tmp );
137                lat_deg = (int)(tmp);
138                tmp -= (STATLOC)lat_deg;
139                lat_sec = tmp * 60.0;
140
141                tmp = statinf.lon;
142                lon_sign = (tmp < 0 ? 'W' : 'E');
143                tmp = fabs( tmp );
144                lon_deg = (int)(tmp);
145                tmp -= (STATLOC)lon_deg;
146                lon_sec = tmp * 60.0;
147
148                printf( "%-6s%02d%5.2f%c%03d%5.2f%c%4.0f  0.00\n", station,
149                        lat_deg, lat_sec, lat_sign,
150                        lon_deg, lon_sec, lon_sign, elev );
151
152        } else if  (pa_qspecified("-hypocenter"))  {
153
154                tmp = statinf.lat;
155                lat_sign = (tmp < 0 ? 'S' : 'N');
156                tmp = fabs( tmp );
157                lat_deg = (int)(tmp);
158                tmp -= (STATLOC)lat_deg;
159                lat_sec = tmp * 60.0;
160
161                tmp = statinf.lon;
162                lon_sign = (tmp < 0 ? 'W' : 'E');
163                tmp = fabs( tmp );
164                lon_deg = (int)(tmp);
165                tmp -= (STATLOC)lon_deg;
166                lon_sec = tmp * 60.0;
167
168                printf( "  %-4s%02d%5.2f%c%03d%5.2f%c%4.0f  0.00   0.\n", station,
169                        lat_deg, lat_sec, lat_sign,
170                        lon_deg, lon_sec, lon_sign, elev );
171
172        } else if  (pa_qspecified("-gemini"))  {
173
174                printf( "      03 %4s      GR         %8.4f     %8.4f      %5.1f   %s\n",
175                        station, statinf.lat, statinf.lon, statinf.elevation, statinf.name );
176
177        } else {
178
179                printf( "%s %10.7lf %10.7lf", station, statinf.lat, statinf.lon );
180                if  (gl_valid_number(statinf.elevation))
181                        printf( "  elev: %6.1f", statinf.elevation );
182                printf( "\n" );
183
184        } /*endif*/
185
186} /* end of main */
Note: See TracBrowser for help on using the repository browser.