| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 | 
							- /* STARTUP PROCEDURE FOR UNIX FORTRAN PROGRAMS */
 
- #include "stdio.h"
 
- #include "signal1.h"
 
- #ifndef SIGIOT
 
- #ifdef SIGABRT
 
- #define SIGIOT SIGABRT
 
- #endif
 
- #endif
 
- #ifndef KR_headers
 
- #undef VOID
 
- #include "stdlib.h"
 
- #ifdef __cplusplus
 
- extern "C" {
 
- #endif
 
- #endif
 
- #ifndef VOID
 
- #define VOID void
 
- #endif
 
- #ifdef __cplusplus
 
- extern "C" {
 
- #endif
 
- #ifdef NO__STDC
 
- #define ONEXIT onexit
 
- extern VOID f_exit();
 
- #else
 
- #ifndef KR_headers
 
- extern void f_exit(void);
 
- #ifndef NO_ONEXIT
 
- #define ONEXIT atexit
 
- extern int atexit(void (*)(void));
 
- #endif
 
- #else
 
- #ifndef NO_ONEXIT
 
- #define ONEXIT onexit
 
- extern VOID f_exit();
 
- #endif
 
- #endif
 
- #endif
 
- #ifdef KR_headers
 
- extern VOID f_init(), sig_die();
 
- extern int MAIN__();
 
- #define Int /* int */
 
- #else
 
- extern void f_init(void), sig_die(const char*, int);
 
- extern int MAIN__(void);
 
- #define Int int
 
- #endif
 
- static VOID sigfdie(Sigarg)
 
- {
 
- Use_Sigarg;
 
- sig_die("Floating Exception", 1);
 
- }
 
- static VOID sigidie(Sigarg)
 
- {
 
- Use_Sigarg;
 
- sig_die("IOT Trap", 1);
 
- }
 
- #ifdef SIGQUIT
 
- static VOID sigqdie(Sigarg)
 
- {
 
- Use_Sigarg;
 
- sig_die("Quit signal", 1);
 
- }
 
- #endif
 
- static VOID sigindie(Sigarg)
 
- {
 
- Use_Sigarg;
 
- sig_die("Interrupt", 0);
 
- }
 
- static VOID sigtdie(Sigarg)
 
- {
 
- Use_Sigarg;
 
- sig_die("Killed", 0);
 
- }
 
- #ifdef SIGTRAP
 
- static VOID sigtrdie(Sigarg)
 
- {
 
- Use_Sigarg;
 
- sig_die("Trace trap", 1);
 
- }
 
- #endif
 
- int xargc;
 
- char **xargv;
 
- #ifdef __cplusplus
 
- 	}
 
- #endif
 
-  int
 
- #ifdef KR_headers
 
- main(argc, argv) int argc; char **argv;
 
- #else
 
- main(int argc, char **argv)
 
- #endif
 
- {
 
- xargc = argc;
 
- xargv = argv;
 
- signal1(SIGFPE, sigfdie);	/* ignore underflow, enable overflow */
 
- #ifdef SIGIOT
 
- signal1(SIGIOT, sigidie);
 
- #endif
 
- #ifdef SIGTRAP
 
- signal1(SIGTRAP, sigtrdie);
 
- #endif
 
- #ifdef SIGQUIT
 
- if(signal1(SIGQUIT,sigqdie) == SIG_IGN)
 
- 	signal1(SIGQUIT, SIG_IGN);
 
- #endif
 
- if(signal1(SIGINT, sigindie) == SIG_IGN)
 
- 	signal1(SIGINT, SIG_IGN);
 
- signal1(SIGTERM,sigtdie);
 
- #ifdef pdp11
 
- 	ldfps(01200); /* detect overflow as an exception */
 
- #endif
 
- f_init();
 
- #ifndef NO_ONEXIT
 
- ONEXIT(f_exit);
 
- #endif
 
- MAIN__();
 
- #ifdef NO_ONEXIT
 
- f_exit();
 
- #endif
 
- exit(0);	/* exit(0) rather than return(0) to bypass Cray bug */
 
- return 0;	/* For compilers that complain of missing return values; */
 
- 		/* others will complain that this is unreachable code. */
 
- }
 
- #ifdef __cplusplus
 
- }
 
- #endif
 
 
  |