- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I would like to trace the run time error when using the fortran subroutine UMAT with ABAQUS. I am getting occasional overflow...but I would like to trace it. I tried to compile UMAT with /traceback option. When I linked this with ABAQUS, I did not see any print when the overflow happened.
Any help is greatly appriciated. All I want is to get a detailed print when these run time errors happen.
Thanks.
I would like to trace the run time error when using the fortran subroutine UMAT with ABAQUS. I am getting occasional overflow...but I would like to trace it. I tried to compile UMAT with /traceback option. When I linked this with ABAQUS, I did not see any print when the overflow happened.
Any help is greatly appriciated. All I want is to get a detailed print when these run time errors happen.
Thanks.
Link Copied
4 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi
When I encounter runtime errors I write intermediate results to unit number 6 or 7 (i.e. the .dat or .msg files) in order to track down the error.
J_Clausen
When I encounter runtime errors I write intermediate results to unit number 6 or 7 (i.e. the .dat or .msg files) in order to track down the error.
J_Clausen
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have already added write statements at several possible locations...but still no luck...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Perhaps using the IEEE_Exceptions module may help. See my post here (http://software.intel.com/en-us/forums/showthread.php?t=76037), for example.
Abhi
Abhi
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
You need to unmask overflow exceptions. Then /traceback should give you a traceback from the first exception. The simplest way to do this is with /fpe0. ( or go to floating point / floating-point exception handling in the IDE). However, this also unmasksdivide-by-zero and floating invalid [such as asin(2.) or sqrt(-1.)] exceptions. The previous respondent is correct that you could do this more specifically by using the functions in the IEEE_EXCEPTIONS module of Fortran 2003. There's also an older RTL routine called FOR_SET_FPE.
For additional information, see the Fortran Compiler User Guide, under Sample Programs and Traceback Information, Using Traceback... and the /fpe and /traceback switches.
You need to unmask overflow exceptions. Then /traceback should give you a traceback from the first exception. The simplest way to do this is with /fpe0. ( or go to floating point / floating-point exception handling in the IDE). However, this also unmasksdivide-by-zero and floating invalid [such as asin(2.) or sqrt(-1.)] exceptions. The previous respondent is correct that you could do this more specifically by using the functions in the IEEE_EXCEPTIONS module of Fortran 2003. There's also an older RTL routine called FOR_SET_FPE.
For additional information, see the Fortran Compiler User Guide, under Sample Programs and Traceback Information, Using Traceback... and the /fpe and /traceback switches.
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page