source: trunk/src/seismic_processing/rayloc_ew/rayloc_ew_config.c @ 7283

Revision 7283, 11.2 KB checked in by baker, 8 months ago (diff)

fix logit() format mismatches

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1/***************************************************************************
2 *  This code is a part of rayloc_ew / USGS EarthWorm module               *
3 *                                                                         *
4 *  It is written by ISTI (Instrumental Software Technologies, Inc.)       *
5 *          as a part of a contract with CERI USGS.                        *
6 * For support contact info@isti.com                                       *
7 *   Ilya Dricker (i.dricker@isti.com)                                     *
8 *                                                   Aug 2004              *
9 ***************************************************************************/
10
11/*
12 *   THIS FILE IS UNDER RCS - DO NOT MODIFY UNLESS YOU HAVE
13 *   CHECKED IT OUT USING THE COMMAND CHECKOUT.
14 *
15 *    $Id$
16 *
17 *    Revision history:
18 *     $Log$
19 *     Revision 1.1  2004/08/05 04:15:11  friberg
20 *     First commit of rayloc_ew in EW-CENTRAL CVS
21 *
22 *     Revision 1.7  2004/08/04 19:27:54  ilya
23 *     Towards version 1.0
24 *
25 *     Revision 1.6  2004/07/29 21:32:03  ilya
26 *     New logging; tests; fixes
27 *
28 *     Revision 1.5  2004/06/25 14:22:17  ilya
29 *     Working version: no output
30 *
31 *     Revision 1.4  2004/06/24 18:34:20  ilya
32 *     Fixed numbering
33 *
34 *     Revision 1.3  2004/06/24 16:47:05  ilya
35 *     Version compiles
36 *
37 *     Revision 1.2  2004/06/24 16:15:07  ilya
38 *     Integration phase started
39 *
40 *     Revision 1.1.1.1  2004/06/22 21:12:06  ilya
41 *     initial import into CVS
42 *
43 *
44 */
45
46#include <stdio.h>
47#include <string.h>
48
49#include "earthworm.h"
50#include "kom.h"
51#include "transport.h"
52#include "rayloc_ew.h"
53
54#define ncommand 7          /* Number of commands in the config file */
55
56
57 /***********************************************************************
58  *                              GetConfig()                            *
59  *             Processes command file using kom.c functions.           *
60  *               Returns -1 if any errors are encountered.             *
61  ***********************************************************************/
62
63int rayloc_ew_GetConfig( char *config_file, GPARM *Gparm,  RAYLOC_PROC_FLAGS *flags)
64{
65   char     init[ncommand];     /* Flags, one for each command */
66   int      nmiss;              /* Number of commands that were missed */
67   int      nfiles;
68   int      i;
69
70   /* Set flags defaults */
71   memset(flags, 0, sizeof(RAYLOC_PROC_FLAGS));
72   memset(Gparm, 0, sizeof(GPARM));
73   flags->fix_depth = 1;
74   flags->use_PKP = 1;
75   flags->use_depth_ph = 1;
76   flags->use_S_ph = 1;
77   flags->Dmax1 = 180;
78   flags->Dmax2 = 180;
79   flags->Dmax3 = 180;
80   flags->Dmax4 = 180;
81   flags->Dmax5 = 180;
82
83/* Set to zero one init flag for each required command
84   ***************************************************/
85   for ( i = 0; i < ncommand; i++ )
86      init[i] = 0;
87
88/* Open the main configuration file
89   ********************************/
90   nfiles = k_open( config_file );
91   if ( nfiles == 0 )
92   {
93      logit( "pt", "rayloc_ew: Error opening configuration file <%s>\n",
94               config_file );
95      return -1;
96   }
97
98/* Process all nested configuration files
99   **************************************/
100   while ( nfiles > 0 )          /* While there are config files open */
101   {
102      while ( k_rd() )           /* Read next line from active file  */
103      {
104         int  success;
105         char *com;
106         char *str;
107
108         com = k_str();          /* Get the first token from line */
109
110         if ( !com ) continue;             /* Ignore blank lines */
111         if ( com[0] == '#' ) continue;    /* Ignore comments */
112
113/* Open another configuration file
114   *******************************/
115         if ( com[0] == '@' )
116         {
117            success = nfiles + 1;
118            nfiles  = k_open( &com[1] );
119            if ( nfiles != success )
120            {
121               logit( "pt", "pick_ew: Error opening command file <%s>.\n",
122                        &com[1] );
123               return -1;
124            }
125            continue;
126         }
127
128/* Read configuration parameters
129   *****************************/
130         else if ( k_its( "StaFile" ) )
131         {
132            if ( str = k_str() )
133           {
134              strcpy( Gparm->StaFile, str );
135              init[0] = 1;
136           }
137           else
138           {
139              logit( "pt", "rayloc_ew: Invalid station list name file <%s>. Exiting.\n", str );
140              return -1;
141           }
142         }
143
144         else if ( k_its( "WorkDir" ) )
145         {
146            if ( str = k_str() )
147            {
148               strcpy( Gparm->workDirName, str );
149               init[1] = 1;
150            }
151            else
152            {
153               logit( "pt", "rayloc_ew: Invalid work directory <%s>. Exiting.\n", str );
154               return -1;
155            }
156         }
157
158         else if ( k_its( "InRing" ) )
159         {
160            if ( str = k_str() )
161            {
162               if( (Gparm->InKey = GetKey(str)) == -1 )
163               {
164                 logit( "pt", "rayloc_ew: Invalid InRing name <%s>. Exiting.\n", str );
165                  return -1;
166               }
167            }
168            init[2] = 1;
169         }
170
171         else if ( k_its( "OutRing" ) )
172         {
173            if ( str = k_str() )
174            {
175               if ( (Gparm->OutKey = GetKey(str)) == -1 )
176               {
177                  logit( "pt", "rayloc_ew: Invalid OutRing name <%s>. Exiting.\n", str );
178                  return -1;
179               }
180            }
181            init[3] = 1;
182         }
183
184         else if ( k_its( "HeartbeatInt" ) )
185         {
186            Gparm->HeartbeatInt = k_int();
187            init[4] = 1;
188         }
189
190         else if ( k_its( "Debug" ) )
191         {
192            Gparm->Debug = k_int();
193            init[5] = 1;
194         }
195
196         else if ( k_its( "MyModId" ) )
197         {
198            if ( str = k_str() )
199            {
200               if ( GetModId(str, &Gparm->MyModId) == -1 )
201               {
202                  logit( "pt", "rayloc_ew: Invalid MyModId <%s>.\n", str );
203                  return -1;
204               }
205            }
206            init[6] = 1;
207         }
208
209         else if ( k_its( "hold_params" ) )
210            flags->hold_params = k_int();
211
212         else if ( k_its( "fix_depth" ) )
213            flags->fix_depth = k_int();
214
215         else if ( k_its( "use_PKP" ) )
216            flags->use_PKP = k_int();
217
218         else if ( k_its( "use_depth_ph" ) )
219            flags->use_depth_ph = k_int();
220
221         else if ( k_its( "use_S_ph" ) )
222            flags->use_S_ph = k_int();
223
224         else if ( k_its( "pick_weight_interval" ) )
225            flags->pick_weight_interval = k_int();
226
227         else if ( k_its( "Rmin" ) )
228            flags->Rmin = k_int();
229
230         else if ( k_its( "Rmax" ) )
231            flags->Rmax = k_int();
232
233         else if ( k_its( "D1" ) )
234            flags->D1 = k_int();
235
236         else if ( k_its( "Dmin1" ) )
237            flags->Dmin1 = k_int();
238
239         else if ( k_its( "Dmax1" ) )
240            flags->Dmax2 = k_int();
241
242         else if ( k_its( "D2" ) )
243            flags->D2 = k_int();
244
245         else if ( k_its( "Dmin2" ) )
246            flags->Dmin2 = k_int();
247
248         else if ( k_its( "Dmax2" ) )
249            flags->Dmax2 = k_int();
250
251         else if ( k_its( "D3" ) )
252            flags->D3 = k_int();
253
254         else if ( k_its( "Dmin3" ) )
255            flags->Dmin3 = k_int();
256
257         else if ( k_its( "Dmax3" ) )
258            flags->Dmax3 = k_int();
259
260         else if ( k_its( "D4" ) )
261            flags->D4 = k_int();
262
263         else if ( k_its( "Dmin4" ) )
264            flags->Dmin4 = k_int();
265
266         else if ( k_its( "Dmax4" ) )
267            flags->Dmax4 = k_int();
268
269         else if ( k_its( "D5" ) )
270            flags->D5 = k_int();
271
272         else if ( k_its( "Dmin5" ) )
273            flags->Dmin5 = k_int();
274
275         else if ( k_its( "Dmax5" ) )
276            flags->Dmax5 = k_int();
277
278/* An unknown parameter was encountered
279   ************************************/
280         else
281         {
282            logit( "pt", "rayloc_ew: <%s> unknown parameter in <%s>\n",
283                    com, config_file );
284            continue;
285         }
286
287/* See if there were any errors processing the command
288   ***************************************************/
289         if ( k_err() )
290         {
291            logit( "pt", "rayloc_ew: Bad <%s> command in <%s>.\n", com,
292                     config_file );
293            return -1;
294         }
295      }
296      nfiles = k_close();
297   }
298
299/* After all files are closed, check flags for missed commands
300   ***********************************************************/
301   nmiss = 0;
302   for ( i = 0; i < ncommand; i++ )
303      if ( !init[i] )
304         nmiss++;
305
306   if ( nmiss > 0 )
307   {
308      logit( "pt", "rayloc_ew: ERROR, no " );
309      if ( !init[0] ) logit( "pt", "<InRing> " );
310      if ( !init[1] ) logit( "pt", "<OutRing> " );
311      if ( !init[2] ) logit( "pt", "<HeartbeatInt> " );
312      if ( !init[3] ) logit( "pt", "<Debug> " );
313      if ( !init[4] ) logit( "pt", "<MyModId> " );
314      logit( "pt", "command(s) in <%s>. Exiting.\n", config_file );
315      return -1;
316   }
317   return 0;
318}
319
320
321 /***********************************************************************
322  *                              LogConfig()                            *
323  *                                                                     *
324  *                   Log the configuration parameters                  *
325  ***********************************************************************/
326
327void rayloc_ew_LogConfig( GPARM *Gparm )
328{
329   logit( "", "\n" );
330   logit( "pt", "InKey:           %6ld\n",  Gparm->InKey );
331   logit( "pt", "OutKey:          %6ld\n",  Gparm->OutKey );
332   logit( "pt", "HeartbeatInt:    %6d\n",   Gparm->HeartbeatInt );
333   logit( "pt", "MyModId:         %6u\n\n", Gparm->MyModId );
334   return;
335}
336
337      /*******************************************************
338       *                      GetEwh()                       *
339       *                                                     *
340       *      Get parameters from the earthworm.h file.      *
341       *******************************************************/
342
343int rayloc_ew_GetEwh( EWH *Ewh )
344{
345   if ( GetLocalInst( &Ewh->MyInstId ) != 0 )
346   {
347      fprintf( stderr, "pick_ew: Error getting MyInstId.\n" );
348      return -1;
349   }
350   if ( GetInst( "INST_WILDCARD", &Ewh->GetThisInstId ) != 0 )
351   {
352      fprintf( stderr, "pick_ew: Error getting GetThisInstId.\n" );
353      return -2;
354   }
355   if ( GetModId( "MOD_WILDCARD", &Ewh->GetThisModId ) != 0 )
356   {
357      fprintf( stderr, "pick_ew: Error getting GetThisModId.\n" );
358      return -3;
359   }
360   if ( GetType( "TYPE_HEARTBEAT", &Ewh->TypeHeartBeat ) != 0 )
361   {
362      fprintf( stderr, "pick_ew: Error getting TypeHeartbeat.\n" );
363      return -4;
364   }
365   if ( GetType( "TYPE_ERROR", &Ewh->TypeError ) != 0 )
366   {
367      fprintf( stderr, "pick_ew: Error getting TypeError.\n" );
368      return -5;
369   }
370   if ( GetType( "TYPE_PICK2K", &Ewh->TypePick2k ) != 0 )
371   {
372      fprintf( stderr, "pick_ew: Error getting TypePick2k.\n" );
373      return -6;
374   }
375   if ( GetType( "TYPE_CODA2K", &Ewh->TypeCoda2k ) != 0 )
376   {
377      fprintf( stderr, "pick_ew: Error getting TypeCoda2k.\n" );
378      return -7;
379   }
380   if ( GetType( "TYPE_TRACEBUF", &Ewh->TypeWaveform ) != 0 )
381   {
382      fprintf( stderr, "pick_ew: Error getting TYPE_TRACEBUF.\n" );
383      return -8;
384   }
385   return 0;
386}
Note: See TracBrowser for help on using the repository browser.