User login

Navigation

You are here

Illegal floating point operation

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

Comments

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.

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!

 

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 

 

Thanks Biswajit...it was the print statements that helped me resolve not only this issue but the general debugging of my entire code...I know this acknowledgement of my gratitude for your help comes quite late....but it still comes through:)

Dear sir, Biswajit 

it seems to me, you are one of the good guys in Abacus. i ll be very thankful if you could give me little time of yours. my problem is that am using Johnson-Cook material model, i get the parameters from experimental date, used them successfuly for quasi-static tensile test '0.002/s' but when i increas the strain rate to dynamic rage 'crush' it give me exccessive distorion err, although i tried to use displacement or velocity as boundary condition for loading!!! but it keep giving the same err. what do you think??

your advice and kind response is highly appreciated

 

yours 

 

Dear SamTF,

I'm afraid I've never done large deformation dynamics in Abaqus.  All I can suggest is to start off by using explicit dynamics, linear hexahedral elements, and a small time step.  If you continue to get excessive deformation you will have to adaptively remesh.  I'm not sure whether Abaqus can do adaptive remeshing of hex elements - in which case you'll have to use tets (quadratic for accuracy).

-- Biswajit

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........).hd movies

Haimin Yao's picture

Overflow of some function like exp() will cause this problem as well.

[Abq Fortran USr interface] illegal FPO - power operation

Dear All,

Here is another interesting example of illegal FPO.

That`s the story....


I got an illegal floating point operation executing an application (Abaqus) using a Fortran subroutine.

Debugging my code I wrote in my subroutine

<cite>

   BB = -0.2447862
   AA = 0.6734121
   write (*,*) "BB,AA = ", BB,AA
   write (*,*) "-0.2447862**0.6734121 =
  * ",-0.2447862**0.6734121    
   write (*,*) "BB**AA = ", BB**AA

</cite>

and I got

<cite>
 BB, AA =  -0.244786270668933       0.673412181089838     
 -0.2447862**0.6734121 =  -0.3876160    
</cite>

and then illegal FPO message.

I thought my operation was mathematically legal, supported and representable by specific format. [see http://en.wikipedia.org/wiki/Floating_point#Dealing_with_exceptional_cases ] So why did that happen?

Well, thanks to http://www.tek-tips.com/viewthread.cfm?qid=1572020&page=1,

I realized i was trying to raise a negative number to a fractional power which results in a complex. So my operation wasn`t supported by specific format.

Regards,
alorenzom

Subscribe to Comments for "Illegal floating point operation"

Recent comments

More comments

Syndicate

Subscribe to Syndicate