Illegal floating point operation

gautambalaram's picture

Can anyone shed some light on this particular error?

ABAQUS Error: The executable /app2/6.6-1/exec/standard.exe

aborted with system error "Illegal floating point operation" (signal 8).

Is there a possible reason for this error as I have gone through my code many times and dont find any suspicious statements that could lead to this error.  

This occured when I was running my analysis with a USDFLD and MPC subroutine


gautambalaram's picture

Illegal Floating point operation

It is quite unfortunate that I was unable to milk this vast resources in imechanica in spite of the commendable know-how this forum possesses. But I am quite glad to mention that I found the reason for the problem and am also presenting a possible solution for the same so that other people like me will not have to waste time and effort in realizing the issue.

 The Illegal Floating Point operation error is generally encountered while compiling the user-subroutine which as you all know is in FORTRAN. Hence, in my case, I had defined my critical equavelent plastic strain as a function of the stress triaxiality ratio (hyd. stress over von-mises stress). Hence, it is quite obvious that the von-mises will be zero in the initial increments. Thus, Fortran encounters a division by zero. This results in an illegal floating point operation error. Hence, it is important that a special additional line is to be added to handle a zero value (IF MISES.EQ.0 THEN........).

 Other mathematical indeterminacy could lead to this error as well like 0 raised to 0 or 0/0, etc...

Hope this helps fellow students new to Abaqus subroutines and Fortran.


yanyabin's picture

Hi, gautambalaram! Thank

Hi,gautambalaram! Thank you very much for your kind explanation about this problem. I just meet it and spend a lot of time to find a reason for it. However, it seems that I meet a more complex problem. 

I have successfully utilized a user subroutine compiled by FORTRAN complete my simulation with ABAQUS in a Windows Operation System. But, if it was used in a Linux operation system, a error message was shown as:

 ABAQUS Error: The executable /usr/local/abaqus_6.5/6.5-1/exec/standard.exe aborted with system error "Illegal floating point operation" (signal 8). Please check the .dat, .msg, and .sta files for error messages if the files exist.   Therefore, could you or anybody know the reason for this error message?  Thanks a lot!

 


Biswajit Banerjee's picture

Re: Illegal floating point operations

To get a feel for what floating point operations entail check out the excellent WIkipedia article on the Floating point.  For examples of illegal operations and other details see http://en.wikipedia.org/wiki/Floating_point#Dealing_with_exceptional_cases.

 

The only way to deal with illegal floating point problems in your code is to debug the code.  The brute force way is to track down the bug with print statements.  Alternatively you can compile the code with debugging flags on and use a debugger such as ddd or gdb.

 

Find the place where the error is generated (i.e., where the exception is being thrown) and then fix it.  The difference between Windows and Linuz suggests that Linux compiler is probably doing a better job of finding problems during runtime.

 

-- Biswajit