/* STARTUP PROCEDURE FOR UNIX FORTRAN PROGRAMS */ #include #include "signal1.h" #ifndef KR_headers #undef VOID #include #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(); extern int MAIN__(); #else extern void f_init(void); extern int MAIN__(void); #endif #ifdef __cplusplus } #endif #ifdef KR_headers main(argc, argv) int argc; char **argv; #else main(int argc, char **argv) #endif { f_setarg(argc, argv); f_setsig(); 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. */ }