Commit | Line | Data |
---|---|---|
27d66adc KT |
1 | /* STARTUP PROCEDURE FOR UNIX FORTRAN PROGRAMS */ |
2 | ||
3 | #include <stdio.h> | |
4 | #include <signal.h> | |
5 | ||
6 | int xargc; | |
7 | char **xargv; | |
8 | ||
9 | main(argc, argv, arge) | |
10 | int argc; | |
11 | char **argv; | |
12 | char **arge; | |
13 | { | |
14 | int sigfdie(), sigidie(); | |
15 | ||
16 | xargc = argc; | |
17 | xargv = argv; | |
18 | signal(SIGFPE, sigfdie); /* ignore underflow, enable overflow */ | |
19 | signal(SIGIOT, sigidie); | |
20 | MAIN__(); | |
21 | f_exit(); | |
22 | } | |
23 | ||
24 | ||
25 | static sigfdie() | |
26 | { | |
27 | sigdie("Floating Exception"); | |
28 | } | |
29 | ||
30 | ||
31 | ||
32 | static sigidie() | |
33 | { | |
34 | sigdie("IOT Trap"); | |
35 | } | |
36 | ||
37 | ||
38 | ||
39 | static sigdie(s) | |
40 | register char *s; | |
41 | { | |
42 | /* print error message, then clear buffers */ | |
43 | fflush(stderr); | |
44 | fprintf(stderr, "%s\n", s); | |
45 | f_exit(); | |
46 | fflush(stderr); | |
47 | ||
48 | /* now get a core */ | |
49 | signal(SIGIOT, 0); | |
50 | abort(); | |
51 | } |