1 | |
---|
2 | SH Software Documentation |
---|
3 | ========================= |
---|
4 | |
---|
5 | |
---|
6 | K. Stammler, 4-AUG-1991 |
---|
7 | |
---|
8 | |
---|
9 | All modules of SH are written in ANSI C. The main part of SH |
---|
10 | is machine independent. Machine dependent parts of SH are: |
---|
11 | |
---|
12 | i) the interface to the operating system |
---|
13 | |
---|
14 | ii) the graphics interface (depends on the implemented |
---|
15 | graphic software) |
---|
16 | |
---|
17 | |
---|
18 | Every C function of SH and every global constant has a module-specific |
---|
19 | (from where it is exported) prefix of two or three characters. |
---|
20 | This enables the reader to find the exporting module of each |
---|
21 | function very quickly. Now follows a list of all available SH modules |
---|
22 | including the function prefix and a short description of the content. |
---|
23 | |
---|
24 | |
---|
25 | |
---|
26 | The main part of SH (machine independent, except BASECNST.H) |
---|
27 | ------------------------------------------------------------ |
---|
28 | |
---|
29 | module pre- |
---|
30 | name fix content |
---|
31 | --------- ---- ------- |
---|
32 | |
---|
33 | CMDARGS.C ca_ access to OS command line parameters |
---|
34 | CMDPARSE.C cp_ parsing of SH command lines |
---|
35 | ERRMSG.C err_ error message manager |
---|
36 | FFTFILTR.C ff_ FFT filters and applications (Hilbert-Trafo, Minimum delay wavelets) |
---|
37 | MATRIXHD.C mx_ basic functions on 3x3 matrices |
---|
38 | NUMRES.C nr_ routines from numerical recipes |
---|
39 | POLFILTR.C pf_ polarisation filtering |
---|
40 | QFILEIO.C qf_ Q-file input/output |
---|
41 | QFINTRFC.C qi_ Q-file info entry interface to SH |
---|
42 | RECFILTR.C rf_ recursive filters |
---|
43 | SEISMHAN.C NONE main module (identifying command verbs, error detection & handling) |
---|
44 | SHCORR.C sc_ cross correlation routines |
---|
45 | SHCURSOR.C cr_ graphic cursor selection, trace markers |
---|
46 | SHDATABA.C db_ read & write access to trace header information |
---|
47 | SHDSPMGR.C dm_ display manager (trace positioning, labels, axes, ...) |
---|
48 | SHHELP.C hl_ help utility (read access to help files) |
---|
49 | SHLIB.C sl_ subroutine pool (lower level) |
---|
50 | SHMATH.C mt_ mathematical routines |
---|
51 | SHMENU0.C mn0_ menu routines |
---|
52 | SHMENU1.C mn1_ menu routines |
---|
53 | SHMENU2.C mn2_ menu routines |
---|
54 | SHMENU3.C mn3_ menu routines |
---|
55 | SHMENU4.C mn4_ menu routines |
---|
56 | SHMENUIO.C mni_ menu routines (trace input/output) |
---|
57 | SHMENUX.C mnx_ menu routines |
---|
58 | SHMIDLEV.C ml_ subroutine pool (upper level) |
---|
59 | SHPM.C pm_ particle motion diagrams |
---|
60 | SHSYMBOL.C ss_ local and global variables, parameters of command procedures |
---|
61 | SHTRANSL.C tr_ translation of expressions |
---|
62 | STATLOC.C gl_ read & write access to station description file |
---|
63 | TIMECONV.C tc_ time conversions (absolute, numerical, text string) |
---|
64 | TRAVTIME.C tt_ travel time computations |
---|
65 | USRINPW.C ui_ input/output routines (window and file I/O) |
---|
66 | UTILITY.C ut_ some utilities |
---|
67 | CAUSRDEF.H prototypes of module CMDARGS.C |
---|
68 | CPERRORS.H CPE_ error codes of mo |
---|
69 | CPUSRDEF.H CPC_ prototypes of module CMDPARSE.C |
---|
70 | DFQENTRY.H QEC_ predefined and default info entry numbers |
---|
71 | ERUSRDEF.H prototypes of module ERRMSG.C |
---|
72 | FCTXCR.H prototypes of module SHCURSOR.C |
---|
73 | FCTXDM.H prototypes of module SHDSPMGR.C |
---|
74 | FCTXHL.H prototypes of module SHHELP.C |
---|
75 | FCTXML.H prototypes of module SHMIDLEV.C |
---|
76 | FCTXMN0.H prototypes of module SHMENU0.C |
---|
77 | FCTXMN1.H prototypes of module SHMENU1.C |
---|
78 | FCTXMN2.H prototypes of module SHMENU2.C |
---|
79 | FCTXMN3.H prototypes of module SHMENU3.C |
---|
80 | FCTXMN4.H prototypes of module SHMENU4.C |
---|
81 | FCTXMNI.H prototypes of module SHMENUIO.C |
---|
82 | FCTXMNX.H prototypes of module SHMENUX.C |
---|
83 | FCTXMT.H prototypes of module SHMATH.C |
---|
84 | FCTXPM.H prototypes of module SHPM.C |
---|
85 | FCTXSL.H prototypes of module SHLIB.C |
---|
86 | FFUSRDEF.H prototypes of module FFTFILTR.C |
---|
87 | FLERRORS.H error codes of modules FFTFILTR.C and RECFILTR.C |
---|
88 | GLUSRDEF.H GLE_ prototypes and error codes of module STATLOC.C |
---|
89 | INFOIDX.H E*_ all about trace headers & info entries, prototypes of module SHDATABA.C |
---|
90 | MXUSRDEF.H MXC_ prototypes of module MATRIXHD.C |
---|
91 | NUMRES.H prototypes of module NUMRES.C |
---|
92 | PFUSRDEF.H prototypes of module POLFILTR.C |
---|
93 | QFERRORS.H QFE_ error codes of module QFILEIO.C |
---|
94 | QFUSRDEF.H prototypes of module QFILEIO.C |
---|
95 | QIERRORS.H QIE_ error codes of module QFINTRFC.C |
---|
96 | QIUSRDEF.H prototypes of module QFINTRFC.C |
---|
97 | RFUSRDEF.H prototypes of module RECFILTR.C |
---|
98 | SCERRORS.H SCE_ error codes of module SHCORR.C |
---|
99 | SCUSRDEF.H prototypes of module SHCORR.C |
---|
100 | SHCONST.H SHC_ global SH constants |
---|
101 | SHERRORS.H SHE_ SH error codes |
---|
102 | SHFRGN.H sh_ interface to foreign format readers (READF command) |
---|
103 | SHVARS.H shv_,shd_ global variables of SH |
---|
104 | SSERRORS.H SSE_ error codes of module SHSYMBOL.C |
---|
105 | SSUSRDEF.H prototypes of module SHSYMBOL.C |
---|
106 | TCERRORS.H TCE_ error codes of module TIMECONV.C |
---|
107 | TCUSRDEF.H prototypes of module TIMECONV.C |
---|
108 | TRERRORS.H TRE_ error codes of module SHTRANSL.C |
---|
109 | TRUSRDEF.H prototypes of module SHTRANSL.C |
---|
110 | TTERRORS.H TTE_ error codes of module TRAVTIME.C |
---|
111 | TTUSRDEF.H prototypes of module TRAVTIME.C |
---|
112 | UIERRORS.H UIE_ error codes of module USRINPW.C |
---|
113 | UIUSRDEF.H prototypes of module USRINPW.C |
---|
114 | UTERRORS.H UTE_ error codes of module UTILITY.C |
---|
115 | UTUSRDEF.H prototypes of module UTILITY.C |
---|
116 | |
---|
117 | |
---|
118 | A special include file defines some important global constants (which |
---|
119 | shouldn't be changed), the paths to important include files (which |
---|
120 | should be adjusted to the actual environment) and global preprocessor |
---|
121 | flags (which should be adjusted as well). |
---|
122 | |
---|
123 | BASECNST.H BC_ basic constants, paths to include files, preprocessor flags |
---|
124 | |
---|
125 | include file definitions in BASECNST.H: |
---|
126 | BC_SYSBASE points to the include file SYSBASE.H |
---|
127 | BC_SYERRORS points to the include file SYERRORS.H |
---|
128 | BC_GCUSRDEF points to the include file GCUSRDEF.H |
---|
129 | BC_SHDIRS points to the include file SHDIRS.H |
---|
130 | BC_FOREIGN points to the include file SHFRGN.H |
---|
131 | (to be changed for own implentations) |
---|
132 | |
---|
133 | preprocessor flags in BASECNST.H |
---|
134 | BC_VAX should be defined only if SH is compiled on a VAX |
---|
135 | BC_GRFVAX should be defined only on the machines in the SZGRF, Erlangen |
---|
136 | BC_SUN should be defines only if SH is compiled on a SUN |
---|
137 | BC_ATARI should be defines only if SH is compiled on an ATARI |
---|
138 | BC_MAINARGS should be defined if SH takes OS parameters |
---|
139 | BC_STDLIB_EX should be defined if the include file <stdlib.h> is available |
---|
140 | |
---|
141 | |
---|
142 | |
---|
143 | Interface to the operating system |
---|
144 | --------------------------------- |
---|
145 | |
---|
146 | SYSCALL.C sy_ calls to system services |
---|
147 | SYSBASE.H SYC_ system constants, prototypes of module SYSCALL.C |
---|
148 | |
---|
149 | These files are machine dependent and must be completely rewritten if |
---|
150 | SH is to be installed on a new type of computer. |
---|
151 | |
---|
152 | |
---|
153 | |
---|
154 | Graphic interface |
---|
155 | ----------------- |
---|
156 | |
---|
157 | If the graphic modules are ported from one computer type to another, |
---|
158 | it is currently necessary to do some small changes in the source code. |
---|
159 | That means that there exist currently three different sets of graphic |
---|
160 | modules (for the VAX, the SUN and the ATARI implementation). For the |
---|
161 | next version of SH it is planned to combine these sets to a general |
---|
162 | graphics interface which is machine independent. |
---|
163 | |
---|
164 | The VAX version of the graphics interface consists of the files: |
---|
165 | |
---|
166 | GRAPHCH.C gc_ channel dispatcher (uppermost level of graphic routines) |
---|
167 | GCUSRDEF.H prototypes of module GRAPHCH.C |
---|
168 | GCERRORS.H GCE_ error code of module GRAPHCH.C |
---|
169 | MEMFILE.C mf_ memory channel (storage of graphic vectors in memory) |
---|
170 | MFUSRDEF.H prototypes of module MEMFILE.C |
---|
171 | MFERRORS.H MFE_ error codes of module MEMFILE.C |
---|
172 | CCCH.C cc_ Calcomp channel (calls to Calcomp library creating PFL files) |
---|
173 | CCUSRDEF.H prototypes of module CCCH.C |
---|
174 | CCERRORS.H CCE_ error codes of module CCCH.C |
---|
175 | TKCH.C tk_ Tektronix channel (via Calcomp screen library) |
---|
176 | TKUSRDEF.H prototypes of module TKCH.C |
---|
177 | TKERRORS.H TKE_ error codes of module TKCH.C |
---|
178 | VWCH.C vw_ VWS (UIS) channel, (calls to VAX UIS library) |
---|
179 | VWUSRDEF.H prototypes of module VWCH.C |
---|
180 | VWERRORS.H VWE_ error codes of module VWCH.C |
---|
181 | XWCH.C xw_ X-Window interface |
---|
182 | XWUSRDEF.H prototypes of module XWCH.C |
---|
183 | XWERRORS.H XWE_ errors codes of module XWCH.C |
---|
184 | PSCH.C ps_ PostScript interface |
---|
185 | PSUSRDEF.H prototypes of module PSCH.C |
---|
186 | PSERRORS.H PSE_ error codes of module PSCH.C |
---|
187 | |
---|
188 | |
---|
189 | |
---|
190 | Foreign format readers |
---|
191 | ---------------------- |
---|
192 | |
---|
193 | There is a standard interface defined calling read routines of foreign |
---|
194 | data formats. The (empty) prototypes are defined in file SHFRGN.H. |
---|
195 | If you want to implement your own format reader, you have to write |
---|
196 | the C implementation and a corresponding new header file SHFRGN.H |
---|
197 | which fits the given interface. An example is given in the files: |
---|
198 | |
---|
199 | SHFRGN.C sh_ implementation of foreign reader (here dispatcher to different foreign formats) |
---|
200 | SHFRGN.H prototypes of module SHFRGN.C (this interface is given) |
---|
201 | SH_NEIC.C sh_neic_ read for ASCII files created by program sonic1 on PC |
---|
202 | SH_NEIC.H prototypes of module SH_NEIC.C |
---|
203 | FRGNTEST.C sh_test_ implementation of a second foreign format (artificial and rather stupid) |
---|
204 | FRGNTEST.H prototypes of module FRGNTEST.C |
---|