[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: g77 problems



Dr P. Caleb Dhanasekaran wrote:
> 
> Hi all`,
> 
> I have installed RedHat 5.1 on my Alpha  UX4,600Mhz PC. I have
> upgraded the compilers egcs.1.0.3 and g77-1.0.3 downloading the
> rpm files.
> 
> My FORTRAN program works fine using fort77 but fails due to
> Floating Exception when I use  g77 compiler.  I have been debugging
> this  program and when I insert  a write(*,*) statement
> in one of the subroutines the programs executes fine. I used
> xxgdb to debug the program and it showed problem in cosine  function
> (libm).
> 
> Could anybody tell me what causes this type of Floating Exception
> problem using g77 on Alpha?  Is there any fix to this? This program works
> fine on IBM Aix 4.1, HP, Silcon Graphics systems, and g77 on Intel
> platform.`

Alpha's are VERY strict with respect to arguments of FP operations.
You cannot use un-normalized numbers! One normally gets those
by indexing in an array incorrectly or used an un-initialized
stack variable. If you run your code under gdb, and look at the 
arguments to the FP operation, you most likely will find a 
non-FP number. Now, if you REALLY intended to do this, you can 
use the flag '-mieee', I believe, to have SW trap and handle these 
sorts of problems. No guarantees that it will work but others 
have reported success with it.

The correct thing to do is to fix the code though. I have never
seen code nor written code where it was intended to cause this
sort of argument to be used. (I've done FORTRAN for a long
time)

One other thing. There is an off chance you hit an edge problem
in the cos() function but I thought the safe code was being 
used in RH5.1. Some older libm.a routines had edge problems.


Wes



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index] []