Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
29244 Discussions

error with fortran code(R6031) AND signal 11 when its integrated with abaqus

sbhatta
Beginner
2,869 Views
I am using a fortran based subroutine for finite element analysis, using abaqus. I am using fortran compiler 11.1 (intel visual studio)
I have six analysis steps in abaqus, and this problem always occurs at the sixth step, no matter if I run it on a 32 bit/ 64 bit PC.


runtime error R6031
- Attempt to initialize the CRT more than once.
This indicates a bug in your application.
7/22/2009 11:28:26 AM


I re-ran the same file on Unix based super computing system and I get the same problem, at the beginning of 6th step, no errors in .msg file or .dat file.(Whicha re abaqus files)
But now the error in log file is :
aborted with system error "Illegal memory reference" (signal 11).
0 Kudos
10 Replies
Greg_T_
Valued Contributor I
2,869 Views
Quoting - sbhatta
I am using a fortran based subroutine for finite element analysis, using abaqus. I am using fortran compiler 11.1

Hello,

Perhaps some additional debugging output would help track down the problem in the Abaqus user subroutine. When diagnosing problems in Abaqus Fortran user subroutines, it has been helpful to me to write information from the user subroutine to the *.msg or *.dat Abaqus files. In the Abaqus analysis user's manual section 3.6.1 "Fortran unit numbers", there is a list of the file unit numbers for each Abaqus file. For example, file unit 7 is written to the message *.msg file. I've used this file unit to write debugging information like variable values to the .msg file as the Abaqus analysis is running. Perhaps that would help track down the error in your analysis step 6.

It can also be helpful to write a main program to test the user subroutine. For example, write a program that will simulate the input values being sent to the user subroutine, especially for the multiple steps. This testing could give the same or similar error, and would be easier to debug. A similar step is to run a very small and simple FEA model that uses the user subroutine as a way to test and debug the error.

Occasionally, the user subroutine call statement gets changed. It is worth checking the Abaqus user subroutines reference manual to see if the variables in the call statement have changed. That can sometimes cause unusual errors.

The Abaqus release notes do state that the Intel Fortran compiler version 10.1 is supported. I would think that the 11.1 Fortran should work too, but if you contact Abaqus technical support they may suggest using version 10.1.

Which user subroutine are you using? What type of FEA model is running?

Regards,
Greg
0 Kudos
sbhatta
Beginner
2,869 Views
Quoting - sbhatta


Hello Greg,

Thanks a lot for your suggestion. I am trying to simulate abrasive wear on a polymeric surface using (based on archard's law) UMESHMOTION subroutine. Basically using adaptive meshing, moving the mesh by a certain amount in each step and scaling the wear in subsequent steps as I need to simulate upto 10 million wear cycles.
I tried writing out the outputs , and tried to analyze the problem, by setting a limit to the amount by which the mesh moves in each step.
But would be really great if you can see my fortran code,as I am verynew to fortran and I suspect some fundamental error. I wont mind sharing it with you
0 Kudos
Greg_T_
Valued Contributor I
2,869 Views
Quoting - sbhatta
I am using a fortran based subroutine for finite element analysis, using abaqus. I am using fortran compiler 11.1 (intel visual studio)
I have six analysis steps in abaqus, and this problem always occurs at the sixth step, no matter if I run it on a 32 bit/ 64 bit PC.


runtime error R6031
- Attempt to initialize the CRT more than once.
This indicates a bug in your application.
7/22/2009 11:28:26 AM


I re-ran the same file on Unix based super computing system and I get the same problem, at the beginning of 6th step, no errors in .msg file or .dat file.(Whicha re abaqus files)
But now the error in log file is :
aborted with system error "Illegal memory reference" (signal 11).

0 Kudos
Greg_T_
Valued Contributor I
2,869 Views
Hello,

Perhaps if you post your source code to the forum everyone can take a look to see if some detail jumps out as a problem. I think it is acceptable to post your code to the forum.

It sounds like a run-time error, which could be more difficult to diagnose. Did you get any useful information from writing values from your subroutine to the Abaqus message (.msg) file?

Regards,
Greg

0 Kudos
sbhatta
Beginner
2,869 Views
Quoting - greg_thorwald



Thanks Greg. Yes I wrote the output, and I thought maybe my mesh was moving more than it was required to move, thinking it could be a numerical error. So, I ran a parametric study, by changing a variable so that the mesh moves around 5-10 times lesser , but it dint help either.
I remeshed my model, and re-ran it, but it still dint help.

I am pasting my fortran code, below as I think the problem is with the subroutine not with the abaqus .inp file.





0 Kudos
sbhatta
Beginner
2,869 Views
Quoting - sbhatta
HI Greg,

Though I pasted the code, I had to remove it coz of intellectual property reasons, so I can send the code rather to your email id, than posting it on public domain. As it would be illegal to do so as its a part of my dissertation work.

Thanks Greg. Yes I wrote the output, and I thought maybe my mesh was moving more than it was required to move, thinking it could be a numerical error. So, I ran a parametric study, by changing a variable so that the mesh moves around 5-10 times lesser , but it dint help either.
I remeshed my model, and re-ran it, but it still dint help.

I am pasting my fortran code, below as I think the problem is with the subroutine not with the abaqus .inp file.






0 Kudos
Greg_T_
Valued Contributor I
2,869 Views
Quoting - sbhatta
Quoting - sbhatta
Though I pasted the code, I had to remove it coz of intellectual property reasons, so I can send the code rather to your email id, than posting it on public domain. As it would be illegal to do so as its a part of my dissertation work.


Hello,

Since you cannot post the source code due to IP limitations, I can offer just general advice. When working on Abaqus user subroutines it has been helpful to start simple and work toward more complexity. For example, if it is possible to model a behavior that is already available from an Abaqus command then you can compare the results from using the user subroutine to a standard analysis. A simple example would be a vessel with internal pressure, which can be applied directly in the input file, but also applied using a simple user subroutine. That way you can at least verify that the Fortran user subroutine is function for a few simple cases. Perhaps that will help you find the problem in the more complicated case of your analysis.

Regards,
Greg
0 Kudos
sbhatta
Beginner
2,869 Views
Quoting - greg_thorwald
I found the error, it was basically because of a smaller array size, so the output was exceeding the memory allocation.
Hello,

Since you cannot post the source code due to IP limitations, I can offer just general advice. When working on Abaqus user subroutines it has been helpful to start simple and work toward more complexity. For example, if it is possible to model a behavior that is already available from an Abaqus command then you can compare the results from using the user subroutine to a standard analysis. A simple example would be a vessel with internal pressure, which can be applied directly in the input file, but also applied using a simple user subroutine. That way you can at least verify that the Fortran user subroutine is function for a few simple cases. Perhaps that will help you find the problem in the more complicated case of your analysis.

Regards,
Greg

0 Kudos
sbhatta
Beginner
2,869 Views
Quoting - sbhatta
Thanks for all your help Greg. I really appreciate it.


0 Kudos
zabavip
Beginner
2,869 Views
Hello sbhatta,

I am trying to simulate wear based on Archard's law with UMESHMOTION subroutine. If it possible, could you send me your file cae and file with UMESHMOTION subroutine? I was builded a model and used the ALE Adaptive Mesh Domain and Constraint, but I am trying write the subrutine. Could you help me. I would be greatfuly if you do this for me.

My e-mail address is: zabavip@gmail.com


Best regards
Pawel (zabavip)
0 Kudos
Reply