Path: utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!thunder.mcrcim.mcgill.edu!snorkelwacker.mit.edu!bu.edu!buast7.bu.edu From: zhang@buast7.bu.edu (Zhang Yun Fei) Newsgroups: comp.lang.fortran Subject: IEEE error handler for SUN FORTRAN Message-ID: <72937@bu.edu.bu.edu> Date: 23 Jan 91 19:44:24 GMT Sender: news@bu.edu.bu.edu Organization: Boston University Lines: 36 I have a question about the error handler of SUN FORTRAN. The question is how to locate the location where an arithmetic error occurs in a program. This is especially helpful as I am writing a computation-intensive code. On VAX/VMS machines, the code will crash when it encounter these arithmetic error and tell the user where it occures. However, on SUNs, it only shows a message at the end of the job says something like the following: > Warning: the following IEEE floating-point arithmetic exceptions > occurred in this program and were never cleared: > Inexact; Division by Zero; Invalid Operand; ..... My question is how the determine the point(s) in the code where such indicated arithmetic exceptions happened. Try to modifying the IEEE error handler (e.g. sigfpe_ieee, etc.) seems a possible approach. But it involves changes in these lower level routine, which I am reluctant to try. Is there any other option I can have to archive the some goal? (e.g., compiletion/linking options or software tools). Any suggestion are welcome. Please E-mail your resopnse to this message to zhang@buast0.bu.edu. If there are enough people interesting in these topic, I will summarize the responses on the newsgroup. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Yun Fei Zhang % E-mail: % % Astronomy Department % SPAN: east::"zhang@buast0.bu.edu" % % Boston University % BITNET: zhang@buasta % % 725 Commonwealth Ave. % INTnet: zhang@buast0.bu.edu % % Boston, MA 02215 % zhang@bu-ast.bu.edu % %--------------------------------------------------------------------------% % TEL: (617)-353-8917 % % TELEX: 95-1289 BOS UNIV BSN % % TELEFAX: (617)-353-5704 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%