00001 /* 00002 * THIS FILE IS UNDER RCS - DO NOT MODIFY UNLESS YOU HAVE 00003 * CHECKED IT OUT USING THE COMMAND CHECKOUT. 00004 * 00005 * $Id: earthworm__defs_8h-source.html 2161 2006-05-19 16:55:03Z paulf $ 00006 * 00007 * Revision history: 00008 * $Log$ 00008 * Revision 1.1 2006/05/19 16:55:01 paulf 00008 * first inclusion 00008 * 00009 * Revision 1.2 2001/07/14 06:44:45 davidk 00010 * added definition for EW_WARNING. 00011 * 00012 * Revision 1.1 2001/04/06 21:03:30 davidk 00013 * Initial revision 00014 * 00015 * 00016 ************************************************************/ 00017 00018 #ifndef EARTHWORM_DEFS_H 00019 # define EARTHWORM_DEFS_H 00020 00021 /* Define unique port numbers for interprocess communications 00022 ************************************************************/ 00023 #define WAVE_SERVER_PORT 16022 /* for requesting/receiving trace data */ 00024 00025 00026 /* Define error words (2-bytes; >9999) global to earthworm modules 00027 Values 0-9999 are available for private error definitions within modules 00028 **************************************************************************/ 00029 #define ERR_LAPPED 10000 /* data loss; overwritten in transport ring */ 00030 #define ERR_SEQGAP 10001 /* data loss; sequence gap in msgs received */ 00031 #define ERR_OVERFLOW 10002 /* data transfer failed; allocated space at */ 00032 /* target address exceeded */ 00033 #define ERR_UNTRACKED 10003 /* transport.h tracking limit exceeded */ 00034 00035 00036 /* Define global error codes 00037 ****************************/ 00038 #define EW_SUCCESS 1 00039 #define EW_FAILURE 0 00040 #define EW_WARNING 2 00041 00042 #define TRUE 1 00043 #define FALSE 0 00044 00045 /* Define other global values 00046 ****************************/ 00047 #define TM_YEAR_CORR 1900 00050 /* Set limits on certain things 00051 ******************************/ 00052 00053 /* 00054 * Limits on the number of phases: we want to limit the number 00055 * of phases used in hypoinvese solutions to 250. 00056 * Our DB can handle much larger events, so we have the second 00057 * set of constants to accomodate the database 00058 */ 00059 #define MAX_PHS_PER_EQ 250 /* set the maximum #phases to include */ 00060 /* when processing an earthquake */ 00061 /* with hypoinverse */ 00062 #define MAX_BYTES_PER_EQ (450+225*(MAX_PHS_PER_EQ)) 00063 /* generous maximum size of a Hypoinverse */ 00064 /* archive message based on Fred Klein's */ 00065 /* "shadow.doc" file dated March 12, 1997 */ 00066 #define MAX_TRIG_BYTES MAX_BYTES_PER_EQ 00067 00068 00069 #define DB_MAX_PHS_PER_EQ 1000 /* max # phases for any event in the DB */ 00070 #define DB_MAX_BYTES_PER_EQ (450+225*(DB_MAX_PHS_PER_EQ)) 00071 #define DB_MAX_TRIG_BYTES DB_MAX_BYTES_PER_EQ 00072 00073 00074 #define AUTHOR_FIELD_SIZE 50 /* Used in trigger message. Alex 6/16/98 */ 00075 #define EVENTID_SIZE 50 /* Used in trigger message. Alex 1/19/00 */ 00076 00077 #define MAX_SUBNET_LEN 10 /* Used in carlsubtrig. Carol 3/21/01 */ 00078 00079 #define MAX_DIR_LEN 150 /* Max path length for directories, etc */ 00080 00081 #define MAX_EMAIL_MSG_SIZE 32000 00082 #define MAX_MSG_PREFIX_SIZE 256 00083 00084 /* Hardcode lengths of module, installation, type, and ring strings */ 00085 #define MAX_MOD_STR 32 /* max length of module names */ 00086 #define MAX_INST_STR 32 /* max length of installation ids */ 00087 #define MAX_RING_STR 32 /* max length of ring names */ 00088 #define MAX_TYPE_STR 32 /* max length of message types */ 00089 00090 00091 00092 /* GLOBAL MAGNITUDE DEFINITIONS */ 00093 00094 #define MAG_NULL -1 00095 00096 /* Mag type integers and corresponding character string names 00097 *************************************************************/ 00098 /* 00099 * This is the official table of magnitude numbers and names. The 00100 * mag message contains both the number and the name. The name is 00101 * included for human readability purposes. The number is what counts. 00102 * For safety purposes, 0 is not a legal name. 00103 * 00104 * IMPORTANT: Since the database uses the number to determine 00105 * magnitude types, it is essential to keep constant the order of 00106 * the magnitudes in the MagNames array, as well as the mappings 00107 * between strings and numbers. Any new mappings should be appended 00108 * to the end. Whenever a new mag type is added to the array, the 00109 * corresponding update should be made to the DB population script 00110 * SCHEMA_DIR/src/core_schema/sql_scripts/ewdb_population_scripts.sql. 00111 * 00112 */ 00113 00114 #define MAGTYPE_UNDEFINED 0 00115 #define MAGTYPE_LOCAL_PEAK2PEAK 1 00116 #define MAGTYPE_MOMENT 2 00117 #define MAGTYPE_BODYWAVE 3 00118 #define MAGTYPE_SURFACEWAVE 4 00119 #define MAGTYPE_SCALAR_MOMENT 5 00120 #define MAGTYPE_DURATION 6 00121 #define MAGTYPE_LOCAL_ZERO2PEAK 7 00122 #define MAGTYPE_MBLG 8 00123 00124 #define MAGTYPE_COUNT 9 /* one higher that last item in prev list */ 00125 00126 static char* MagNames[MAGTYPE_COUNT] = 00127 { 00128 "??" /* 0 */ 00129 , "ML" /* 1 -- "Utah" method for computing Mls */ 00130 , "Mw" /* 2 */ 00131 , "Mb" /* 3 */ 00132 , "Ms" /* 4 */ 00133 , "Mwp" /* 5 -- from IDPP */ 00134 , "Md" /* 6 */ 00135 , "ML" /* 7 -- "Richter" method for computing Mls */ 00136 , "mblg" /* 8 */ 00137 }; 00138 00139 /* For backwards compatibility */ 00140 00141 #define N_MAG_NAMES MAGTYPE_COUNT 00142 00143 00144 00145 /* GLOBAL AMPLITUDE DEFINITIONS */ 00146 00147 typedef short AMPLITUDE_TYPE; 00148 00149 #define AMPTYPE_NONE 0 /* invalid or unknown ('?') */ 00150 #define AMPTYPE_ML 1 00151 #define AMPTYPE_MB 2 00152 #define AMPTYPE_MBLG 3 00153 #define AMPTYPE_MWP 4 /* from idpp */ 00154 #define AMPTYPE_MS 5 00155 00156 #define AMPTYPE_COUNT (AMPLITUDE_TYPE)6 /* count of valid types */ 00157 00158 00159 static const char * AMPLITUDE_NAMES[AMPTYPE_COUNT] = 00160 { 00161 "?" 00162 , "ML" 00163 , "mb" 00164 , "mblg" 00165 , "Mwp" 00166 , "MS" 00167 }; 00168 00169 #endif /* EARTHWORM_DEFS_H */ 00170