1 | C--HYP IS THE VAX/SUN VERSION OF THE LOCATION PROGRAM HYPOINVERSE. THE PROGRAM |
---|
2 | C IS DESIGNED TO BE FAST, FILE ORIENTED AND COMMAND DRIVEN. |
---|
3 | |
---|
4 | C--WRITTEN BY FRED KLEIN. SEE GREETING IN HYBDA.FOR FOR VERSION # |
---|
5 | |
---|
6 | C++++++++++++++++ LIST OF REQUIRED SUBROUTINES +++++++++++++++++ |
---|
7 | C--SUBROUTINES MARKED WITH * REQUIRE THE COMMON BLOCK INCLUDE FILE 'common.inc' |
---|
8 | C 'common.inc' INCLUDES THE FILE 'integer.for' WHERE ARRAYS ARE DECLARED |
---|
9 | C INTEGER*2 AND LOGICAL*2. *4 VARIABLES MAY BE USED IF NECESSARY. |
---|
10 | C--SUBROUTINES MARKED WITH & HAVE DIFFERENT VERSIONS ON THE SUN, OS2 AND VAX. |
---|
11 | C--USE *.FOR ON ALL SYSTEMS IF IT IS THE ONLY FILE THAT EXISTS. |
---|
12 | C--USE *.F ON SUN AND *.FOR ON THE VAX IF BOTH EXIST. |
---|
13 | C--USE *.OS2 ON OS2 IF IT EXISTS, OTHERWISE *.F THEN *.FOR IN THAT ORDER. |
---|
14 | C--USE integer.os2 INSTEAD OF integer.for ON OS2. |
---|
15 | C HYP * MAIN PROGRAM. |
---|
16 | C HYBDA * BLOCK DATA INITIALIZATION OF COMMON. |
---|
17 | C HYBEG &* INITIALIZATION OF OTHER VARIABLES. |
---|
18 | C HYCMD * GETS AND PROCESSES COMMANDS. |
---|
19 | C HYSTA * READS IN STATIONS. |
---|
20 | C HYDEL * READS IN STATION DELAYS (FOR MULTIPLE MODELS). |
---|
21 | C HYATE * READS IN STATION ATTENUATION HISTORY. |
---|
22 | C HYCAL * READS IN STATION CALIBRATION FACTOR HISTORY. |
---|
23 | C HYFMC * READS IN STATION FMAG CORRECTIONS. |
---|
24 | C HYXMC * READS IN STATION XMAG CORRECTIONS. |
---|
25 | C HYCRH * READS IN HOMOGENOUS LAYER CRUSTAL MODELS. |
---|
26 | C HYCRT * READS IN TRAVEL-TIME-TABLE CRUSTAL MODELS. |
---|
27 | C HYSTL * OUTPUTS STATIONS, CRUST & PARAMETERS TO PRINT FILE. |
---|
28 | C HYOPEN * OPENS FILES FOR LOCATION RUN. |
---|
29 | C HYINIT * INITIALIZES SOME VARIABLES FOR LOCATION RUN. |
---|
30 | C HYPHS * READS IN PHASE DATA FOR ONE EVENT. |
---|
31 | C HYCIN &* INPUTS PHASE DATA FROM CUSP MEM FILES (ALTERNATE TO HYPHS) |
---|
32 | C HYCOUT &* OUTPUTS RESULTS TO THE CUSP MEM FILE |
---|
33 | C (HYCIN & HYCOUT ARE NOT USED IN UNIX/SUN VERSION) |
---|
34 | C HYTRL * SETS TRIAL HYPOCENTER. |
---|
35 | C HYLOC * LOCATES ONE EVENT. |
---|
36 | C HYSOL * PERFORMS INVERSION FOR ONE ITERATION. |
---|
37 | C HYSVD & CANNED SINGLE-VALUE-DECOMPOSITION ROUTINE. |
---|
38 | C (SEE NOTES IN HYSVD.F AND FPE-TRAPS COMMENT FOR SPECIAL SUN MODS) |
---|
39 | C HYTRA * MANAGE CRUST MODEL CHOICE & AVERAGING. |
---|
40 | C HYTRH * CALC TRAVEL TIMES AND DERIVS FOR HOMO LAYER MODEL. |
---|
41 | C HYTRT * CALC TRAVEL TIMES AND DERIVS FROM TRAV-TIME TABLE. |
---|
42 | C HYMAG * COMPUTES ALL MAGNITUDES. |
---|
43 | C HYMAGP * COMPUTES P AMPLITUDE MAGNITUDES. |
---|
44 | C HYPREF * SELECTS THE PREFERRED MAGNITUDE FROM ALL AVAILABLE. |
---|
45 | C HYREP * REPORTS A LOCATION ON THE TERMINAL. |
---|
46 | C HYSOU * TABULATES MOST COMMON DATA SOURCE CODES |
---|
47 | C HYLST * OUTPUTS DATA BY STATION TO PRINT & ARCHIVE FILES. |
---|
48 | C HYSUM * OUTPUTS SUMMARY RECORD (FINAL LOCATION). |
---|
49 | C HYINP FOR INTERACTIVE ENTRY OF PHASE DATA. |
---|
50 | C HYPRO * INTERACTIVELY PROCESSES A SERIES OF EVENTS. |
---|
51 | C MEDWT COMPUTES THE WEIGHTED MEDIAN OF A SERIES OF MAGNITUDES. |
---|
52 | C HYDELT & DELETES FILES IN INTERACTIVE PROCESSING |
---|
53 | C HYEDTI & RUNS AN EDTIOR WITHIN A PROCESS |
---|
54 | C HYTIME & GETS CURRENT SYSTEM TIME FOR LABELING PRINT FILE |
---|
55 | C UTMCAL COMPUTES STATION DISTANCES ON A UTM GRID |
---|
56 | |
---|
57 | C--GENERAL PURPOSE SUBROUTINES |
---|
58 | C KLAS ASSIGNS A NAME AND NUMBER TO AN EVENT BASED ON LOCATION. |
---|
59 | C KLASS (NET 1), BOX2 (NET2), BOX3 (NET3), KSIC - USED BY KLAS. |
---|
60 | C UPSTR CONVERTS A STRING TO UPPER CASE. |
---|
61 | C JASK INTERACTIVE PROMPT & ENTRY OF AN INTEGER. |
---|
62 | C ASKC INTERACTIVE PROMPT AND ENTRY OF A STRING. |
---|
63 | C ASKR INTERACTIVE PROMPT AND ENTRY OF A REAL VALUE. |
---|
64 | C LASK INTERACTIVE PROMPT AND ENTRY OF A LOGICAL VALUE. |
---|
65 | C LENG DETERMINES THE NON-BLANK LENGTH OF A STRING. |
---|
66 | C DAYJL RETURNS PERPETUAL JULIAN DAY FOR A DATE. |
---|
67 | C JDATE RETURNS DATE FOR A PERPETUAL JULIAN DAY. |
---|
68 | C OPENR & OPENS A FILE FOR READING. |
---|
69 | C OPENW & OPENS A FILE FOR WRITING. |
---|
70 | C ERRSET & VAX SYSTEM SUBROUTINE ONLY: CONTROLS ERROR MESSAGES ON OVERFLOWS. |
---|
71 | C (A DUMMY ERRSET.F IS SUPPLIED WITH THE UNIX VERSION) |
---|
72 | C SPAWN & SPAWNS AN OPERATING SYSTEM COMMAND. |
---|
73 | C READQ & READS AN ASCII RECORD AND RETURNS ITS LENGTH. |
---|
74 | C GETENV & ON UNIX, RETURNS ENVIRONMENT VAR W/NAME OF INI COMMAND FILE |
---|
75 | C (A DUMMY GETENV.VAX IS SUPPLIED FOR VAX & OS2 VERSIONS) |
---|
76 | |
---|
77 | C--CUSP SUBROUTINES |
---|
78 | C MEM_DUMP READS A CUSP MEM FILE AND PUTS DATA INTO STRUCTURES |
---|
79 | C OPHASE PARSES REMARK, WEIGHT & FIRST MOT FROM PHASE DESCRIPTOR |
---|
80 | C MEM_EQ_UPDATE PUTS HYPOCENTER & STA INFO INTO CUSP MEMORY (& MEM FILE) |
---|
81 | |
---|
82 | C--DIFFERENCES BETWEEN THE VAX AND SUN/UNIX VERSIONS: |
---|
83 | C--WHERE THEY DIFFER, THE SUBROUTINE SOURCE CODE FILES THAT END IN .F ARE |
---|
84 | C FOR SUN; THOSE ENDING IN .FOR ARE FOR VAX. FILES FOR WHICH THERE IS |
---|
85 | C ONLY A .FOR VERSION WILL COMPILE ON EITHER MACHINE. |
---|
86 | C--ROUTINES WITH DIFFERENT VERSIONS ARE HYBEG, HYDELT, HYEDIT, HYTIME, |
---|
87 | C SPAWN, INIT_EVENT, HYCIN, OPENR AND OPENW. |
---|
88 | C--HYBEG INITIALIZES FILENAMES AND DEVICES THAT ARE SYSTEM SPECIFIC. |
---|
89 | |
---|
90 | C--THE FOLLOWING "NON-ANSI" FORTRAN FEATURES ARE USED (THESE WERE FLAGGED |
---|
91 | C BY SUN'S FORTRAN COMPILER WHEN THE -ansi COMMAND FLAG WAS USED): |
---|
92 | C OPTIONAL INTEGER*2 AND LOGICAL*2 VARIABLES IN COMMON (SEE INTEGER.FOR) |
---|
93 | C INCLUDE STATEMENT |
---|
94 | C DO ... END DO STATEMENTS |
---|
95 | C ! TO BEGIN END OF LINE COMMENTS ('common.' FILE ONLY) |
---|
96 | C SUBROUTINE NAMES (HYPOINV) LONGER THAN 6 CHARACTERS |
---|
97 | C LIST-DIRECTED FORMATTING FROM AN INTERNAL STRING |
---|
98 | C CHARACTER*(*) IN CONCATENATION |
---|
99 | |
---|
100 | C--FPE (FLOATING POINT EXCEPTION) TRAPS. |
---|
101 | C THE SUN VERSION, WHEN PRESENTED WITH UNDERDETERMINED EARTHQUAKES WITH FEW |
---|
102 | C READINGS, WOULD SOMETIMES ATTEMPT A ZERO / ZERO OPERATION IN HYSVD. THE |
---|
103 | C SOLUTION PROGRAMMED INTO HYSVD.F WAS TO TEST THE DIVIDEND AND DIVISOR |
---|
104 | C BEFORE DIVISION AND TO RETURN A ZERO QUOTIENT IF BOTH WERE 0. THE VAX DOES |
---|
105 | C THIS AUTOMATICALLY. 0/0 ON THE SUN YIELDS AN IEEE NaN (NOT A NUMBER) WHICH |
---|
106 | C CONTAMINATES ALL SUCCEEDING VARIABLES THAT DEPEND ON THIS NUMBER. WHEN |
---|
107 | C EVENTUALLY USED AS A SUBSCRIPT, THE PROGRAM HANGS UNTIL STOPPED WITH ^C. |
---|
108 | C--HERE ARE SUGGESTIONS TO TRAP FPE'S THAT WERE USED TO DETECT THIS 0/0 FPE. |
---|
109 | C ON THE SUN, COMPILE f77 WITH THE -g OPTION TO STORE LINE NUMBERS IN THE |
---|
110 | C SOURCE CODE. SUN DOES NOT PERMIT COMPILING THE MAIN PROGRAM WITH BOTH -g |
---|
111 | C AND A COMMON BLOCK, SO USE A DUMMY MAIN PROGRAM HYPMAIN.F: |
---|
112 | C CALL TRAPFPE |
---|
113 | C CALL HYPM |
---|
114 | C END |
---|
115 | C--THE TRAPFPE SUBROUTINE ENABLES A IEEE HANDLER WHICH IS CALLED WHEN AN FPE |
---|
116 | C EXCEPTION OCCURS (0/0, OVERFLOW, ETC). THE HANDLER PRINTS THE HEX ADDRESS OF |
---|
117 | C THE CODE GENERATING THE EXCEPTION, THEN USE THE dbx DEBUGGER TO FIND THE |
---|
118 | C SOURCE CODE LINE NUMBER. ALTERNATIVELY, USE THE dbxtool WITH CODE COMPILED |
---|
119 | C WITH THE -g OPTION, AND GIVE THE dbx COMMAND |
---|
120 | c catch FPE |
---|
121 | C dbxenv case insensitive ALLOWS EXAMINING HI VARIABLES WITH dbxtool. |
---|
122 | C--SEE SUN'S DEBUGGING TOOLS AND FORTRAN NUMERICAL COMPUTATION DOCUMENTATION |
---|
123 | C FOR MORE INFO. |
---|
124 | |
---|
125 | C--REMOVAL OF UNNEEDED SUBROUTINES AND DATA TO SAVE MEMORY SPACE: |
---|
126 | C--IF CUSP DATA WILL NOT BE USED (JCP 6 OR 7): |
---|
127 | C ELIMINATE THE CALLS TO INIT_EVENT AND HYCIN FROM HYP. ALSO ELIMINATE THE |
---|
128 | C SUBROUTINES CALLED BY HYCIN (SUCH AS GET_* & THE CUSP LIBRARY). |
---|
129 | C THE COMMAND FID WILL NOT THEN BE NEEDED. ALSO ELIMINATE THE VARIABLES |
---|
130 | C IRES, LCUSP & FORID FROM COMMON. |
---|
131 | C--IF SHADOW PHASE FORMATS WILL NOT BE USED (JCP 4 & 5): |
---|
132 | C ELIMINATE THE VARIABLES KSHAD, KLSHA, LENSHA, SHADO, LSHA1 & SHAD1 |
---|
133 | C FROM COMMON, AND REFERENCES TO THEM IN HYPHS AND HYLST. |
---|
134 | C--THE NUMBER OF STATIONS ARE CONTROLED BY THE COMMON PARAMETERS |
---|
135 | C MAXSTA > MAXPHS > MMAX. THESE CAN BE MADE SMALLER FOR SMALL NETWORKS. |
---|
136 | |
---|
137 | C--VERY PARTIAL VERSION HISTORY |
---|
138 | C |
---|
139 | C 1978 VERSION 0.x (Eclipse computer, simple & compact) |
---|
140 | C 1985 VERSION 0.x (VAX and pro-350 computer, compact) |
---|
141 | C 1989 VERSION 0.x (multiple crust models) |
---|
142 | C 2002 VERSION 1.0 (Full documentation, completely Y2000 capable) |
---|
143 | C 2/2007 VERSION 1.1 (Can fix origin time, many other changes) |
---|
144 | C 5/2007 VERSION 1.11 (Can fix origin time, greeting) |
---|
145 | C 12/2007 VERSION 1.2 (Can fix origin time; g77 compiler) |
---|
146 | |
---|
147 | C++++++++++++++++ I/O DEVICE NUMBERS USED ++++++++++++++++++++++ |
---|
148 | C 5 TERMINAL INPUT. |
---|
149 | C 6 TERMINAL OUTPUT. |
---|
150 | C 7 ARCHIVE OUTPUT FILE. |
---|
151 | C 8,9,10,11 INPUT COMMAND FILES. |
---|
152 | C 12 SUMMARY OUTPUT FILE. |
---|
153 | C 13 STATION DATA FILES (ATTEN, DELAY, FMAG & XMAG CORRECTIONS). |
---|
154 | C 14 CRUST, STATION & PHASE INPUT FILES. |
---|
155 | C 15 PRINT OUTPUT FILE. |
---|
156 | C 16 MAGNITUDE DATA OUTPUT FILE. |
---|
157 | C 17 EVENT LIST FILE FOR INTERACTIVE PROCESSING |
---|
158 | |
---|
159 | INCLUDE 'common.inc' |
---|
160 | CHARACTER XMON(12)*3,CC*1 |
---|
161 | DATA XMON/'JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP', |
---|
162 | 2 'OCT','NOV','DEC'/ |
---|
163 | |
---|
164 | C--DONT GIVE ERROR MESSAGES WHEN DATA OVERFLOW OUTPUT FIELDS |
---|
165 | CALL ERRSET (63,.TRUE.,.FALSE.,.FALSE.,.FALSE.) |
---|
166 | C--DONT GIVE ERROR MESSAGES WHEN INTEGERS OVERFLOW (BUSTED EVENTS THAT ARE |
---|
167 | C KICKED OUTSIDE THE NETWORK) |
---|
168 | CALL ERRSET (70,.TRUE.,.FALSE.,.FALSE.,.FALSE.) |
---|
169 | C--INITIALIZE FLAG TO SUCCESS |
---|
170 | IRES=1 |
---|
171 | |
---|
172 | C--SEND A MESSAGE TO THE TERMINAL. THIS ALSO ASSIGNS UNIT 5 TO TERMINAL |
---|
173 | WRITE (6,1000) |
---|
174 | 1000 FORMAT (' HYPOINVERSE 2000 STARTING') |
---|
175 | WRITE (6,'(A)') GREETING |
---|
176 | |
---|
177 | C--INITIALIZE VARIABLES NOT INITIALIZED IN BLOCK DATA |
---|
178 | CALL HYBEG |
---|
179 | |
---|
180 | C--OPEN AND BEGIN READING THE OPTIONAL STARTUP COMMAND FILE HYPINST |
---|
181 | INP=5 |
---|
182 | CALL OPENR (8,INFILE(1),'F',IOS) |
---|
183 | IF (IOS.NE.0) GOTO 5 |
---|
184 | INP=8 |
---|
185 | |
---|
186 | C--GO GET A COMMAND AND EXECUTE IT. RETURN HERE IF CALLING A SUBROUTINE. |
---|
187 | 5 CALL HYCMD |
---|
188 | |
---|
189 | C--ISTAT DIRECTS WHICH SUBROUTINE OR SECTION TO INVOKE. |
---|
190 | C ISTAT IS ONLY ASSIGNED A VALUE BY HYCMD. |
---|
191 | C 1 CRH READ LAYER CRUST MODEL |
---|
192 | C 2 CRT READ GRADIENT TRAVEL TIME TABLE |
---|
193 | C 3 STA READ STATION FILE |
---|
194 | C 4 INP INPUT PHASE DATA INTERACTIVELY |
---|
195 | C 5 BUG READ A PHASE FILE ONLY TO CHECK FOR ERRORS |
---|
196 | C 7 LOC LOCATE A PHASE FILE |
---|
197 | C 8 STO STOP HYPOINVERSE, OR RETURN TO MASTER CALLING PROGRAM |
---|
198 | |
---|
199 | GOTO (10,12,14,74,78,5,84,13), ISTAT |
---|
200 | GOTO 5 |
---|
201 | |
---|
202 | C--<CRH> READ A HOMOGENEOUS LAYER CRUSTAL MODEL |
---|
203 | 10 CALL HYCRH |
---|
204 | CLOSE (14) |
---|
205 | GOTO 5 |
---|
206 | |
---|
207 | C--<CRT> READ A LINEAR GRADIENT CRUSTAL MODEL |
---|
208 | 12 CALL HYCRT |
---|
209 | CLOSE (14) |
---|
210 | GOTO 5 |
---|
211 | |
---|
212 | C--<STO> STOP THE PROGRAM |
---|
213 | 13 IF (SUBMOD) THEN |
---|
214 | CONTINUE |
---|
215 | ELSE |
---|
216 | STOP |
---|
217 | END IF |
---|
218 | |
---|
219 | C--<STA> READ STATION FILE |
---|
220 | 14 CALL HYSTA |
---|
221 | CLOSE (14) |
---|
222 | GOTO 5 |
---|
223 | |
---|
224 | C--<INP> ENTER PHASE DATA MANUALLY INTO A CONDENSED FORMAT FILE. |
---|
225 | 74 CALL HYINP |
---|
226 | GOTO 5 |
---|
227 | |
---|
228 | C--<BUG> READ PHASE FILE ONLY TO CHECK FOR ERRORS |
---|
229 | C--OPEN PRINT OUTPUT FILE |
---|
230 | 78 LPRT=.TRUE. |
---|
231 | IF (PRTFIL(1:4).EQ.' ') PRTFIL=TERMIN |
---|
232 | IF (LAPP(1)) THEN |
---|
233 | CALL OPENW (15,PRTFIL,'F',IOS,'A') |
---|
234 | ELSE |
---|
235 | CALL OPENW (15,PRTFIL,'F',IOS,'S') |
---|
236 | END IF |
---|
237 | |
---|
238 | C--OPEN PHASE FILE |
---|
239 | CALL OPENR (15,PHSFIL,'F',IOS) |
---|
240 | IF (IOS.NE.0) THEN |
---|
241 | WRITE (6,1008) |
---|
242 | 1008 FORMAT (' *** ERROR - PHASE FILE NOT FOUND') |
---|
243 | CLOSE (15) |
---|
244 | IRES=-61 |
---|
245 | GOTO 5 |
---|
246 | END IF |
---|
247 | |
---|
248 | C--LOOP TO READ EVENTS |
---|
249 | 80 CALL HYPHS |
---|
250 | IF (KEND.EQ.0) GOTO 80 |
---|
251 | CLOSE (15) |
---|
252 | CLOSE (14) |
---|
253 | GOTO 5 |
---|
254 | |
---|
255 | C++++++++++++++++++++ EARTHQUAKE LOCATION SECTION ++++++++++++++++++ |
---|
256 | |
---|
257 | C--<LOC>ATE ALL EARTHQUAKES IN THE SPECIFIED FILE, USING PRESENT PARAMETERS |
---|
258 | C--INITIALIZE SOME VARIABLES |
---|
259 | 84 CALL HYINIT |
---|
260 | C--OPEN FILES |
---|
261 | CALL HYOPEN |
---|
262 | |
---|
263 | C--STOP NOW IF THERE IS NO PHASE FILE |
---|
264 | IF (ISTAT2.EQ.0) GOTO 5 |
---|
265 | C--LIST AVAILABLE STATIONS & MODELS IN PRINT FILE |
---|
266 | CALL HYSTL |
---|
267 | |
---|
268 | LCUSP=JCP.EQ.6 .OR. JCP.EQ.7 |
---|
269 | C--READ IN PHASE DATA FOR ONE EVENT |
---|
270 | 50 IF (LCUSP) THEN |
---|
271 | CALL HYCIN |
---|
272 | ELSE |
---|
273 | CALL HYPHS |
---|
274 | END IF |
---|
275 | |
---|
276 | C--KEND IS SET BY HYPHS DEPENDING ON END-OF-FILE STATUS |
---|
277 | C =-1 END OF FILE, STOP RIGHT AWAY |
---|
278 | C = 0 LOCATE THIS EVENT, THEN READ ANOTHER |
---|
279 | C = 1 END OF FILE, LOCATE THIS EVENT THEN STOP |
---|
280 | C--CLOSE FILES & QUIT IF END OF FILE OCCURRED IN PHASE FILE |
---|
281 | IF (KEND.LT.0) GOTO 70 |
---|
282 | |
---|
283 | C--SET THE TRIAL HYPOCENTER |
---|
284 | CALL HYTRL |
---|
285 | |
---|
286 | C--PRINT THE EVENT DATE AND TIME AS HEADING |
---|
287 | IF (LPRT .AND. KPRINT.GT.0) THEN |
---|
288 | IF (LEJCT) THEN |
---|
289 | CC='1' |
---|
290 | ELSE |
---|
291 | CC=' ' |
---|
292 | WRITE (15,'(1X,21(''####''))') |
---|
293 | END IF |
---|
294 | |
---|
295 | WRITE (15,1005) CC,KDAY,XMON(KMONTH), |
---|
296 | 2 KYEAR2,KHOUR,KMIN,INUM,IDNO |
---|
297 | 1005 FORMAT (A1,I3,1X,A3,I5,',',I3,':',I2.2,' SEQUENCE NO.', |
---|
298 | 2 I5,', ID NO.',I10) |
---|
299 | END IF |
---|
300 | |
---|
301 | C--LOCATE THE EVENT |
---|
302 | CALL HYLOC |
---|
303 | |
---|
304 | C--ASSIGN A 3-LETTER CODE AND NAME BASED ON LOCATION |
---|
305 | C I IS THE REGION NUMBER, PRESENTLY UNUSED |
---|
306 | IF (NET.GT.0) I=KLAS (NET,CLAT,-CLON,Z1,REMK,FULNAM) |
---|
307 | |
---|
308 | C--CALCULATE THE EARTHQUAKE'S MAGNITUDE |
---|
309 | CALL HYMAG |
---|
310 | |
---|
311 | C--CALCULATE THE EARTHQUAKE'S P AMPLITUDE MAGNITUDE |
---|
312 | CALL HYMAGP |
---|
313 | |
---|
314 | C--SELECT PREFERRED MAGNITUDE |
---|
315 | CALL HYPREF |
---|
316 | |
---|
317 | C--TABULATE DATA SOURCE CODES |
---|
318 | CALL HYSOU |
---|
319 | |
---|
320 | C--GENERATE PRINTED AND ARCHIVE OUTPUT |
---|
321 | CALL HYLST |
---|
322 | |
---|
323 | C--ABORT THE LOOP IF THERE ARE NOT ENOUGH READINGS |
---|
324 | IF (NWR.LT.MINSTA) THEN |
---|
325 | WRITE (6,1002) NWR,KYEAR2,KMONTH,KDAY,KHOUR,KMIN |
---|
326 | IF (LPRT) WRITE (15,1002) NWR,KYEAR,KMONTH,KDAY,KHOUR,KMIN |
---|
327 | 1002 FORMAT (' *** ABANDON EVENT WITH ONLY',I2,' READINGS:',I4,4I3) |
---|
328 | IRES=-51 |
---|
329 | GOTO 50 !FOR HYP (MAIN PROGRAM) ONLY |
---|
330 | END IF |
---|
331 | |
---|
332 | C--WRITE RESULTS TO CUSP MEM FILE |
---|
333 | C--JCPO CONTROLS TO WHAT EXTENT RESULTS ARE WRITTEN OUT TO CUSP |
---|
334 | C =0 NOTHING WRITTEN ANYWHERE |
---|
335 | C =1 STRUTURES UPDATED |
---|
336 | C =2 ABOVE PLUS SHARED MEMORY UPDATED |
---|
337 | C =3 ABOVE PLUS MEM FILE RE-WRITTEN |
---|
338 | IF (LCUSP .AND. JCPO.GT.0) CALL HYCOUT |
---|
339 | |
---|
340 | C--OUTPUT SUMMARY DATA USING UNIT NUMBER FOR SUMMARY FILE |
---|
341 | IF (LSUM) CALL HYSUM (12) |
---|
342 | |
---|
343 | C--OUTPUT A MESSAGE ON THE CONSOLE FOR EACH EVENT |
---|
344 | IF (LREP) CALL HYREP |
---|
345 | |
---|
346 | C--END OF LOCATION LOOP |
---|
347 | IF (KEND.EQ.0) GOTO 50 |
---|
348 | |
---|
349 | C--CLOSE FILES THEN GET ANOTHER COMMAND |
---|
350 | 70 CLOSE (12) |
---|
351 | CLOSE (7) |
---|
352 | CLOSE (15) |
---|
353 | CLOSE (14) |
---|
354 | CLOSE (16) |
---|
355 | GOTO 5 |
---|
356 | |
---|
357 | END |
---|