- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi everyone.
I would to link the Fortran compiler to Abaqus, to be able to make use of user subroutines. However, after following multipe guides on the internet I still have an error.
I added these 3 lines to the abaqus.bat and abq6141.bat :
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Nick,
Since the error message you provided indicates an issue with the UMAT subroutine argument list, I recommend first checking the documentation. For the version of Abaqus you are using, take a look in the Abaqus documentation manuals in the "Abaqus User Subroutines Reference Guide", section 1.1.44 UMAT. The information includes the UMAT call statement and the argument list for the version of Abaqus you are using. You can double check your UMAT against those arguments. Look for the same number of arguments, the same variables names, and the same variable types. Some of the arguments are short arrays, so check that the dimensions of those arrays are correct.
I believe that the Abaqus validation for user subroutines may be calling just one user subroutine, perhaps DLOAD, to check linking with Abaqus. The automatic validation may not be enough to check the UMAT subroutine.
UMAT can be one of the more challenging user subroutines to use. Have you tried other, easier to use user subroutines in Abaqus? DLOAD can be a good one to start with since the code in DLOAD could be simple to apply a traction load to a simple mesh.
Have you tried running Abaqus from the Intel Fortran command window? I have good success opening the command window from:
Start -> Intel Parallel Studio XE 2018 -> Compiler ... Intel 64 ...
Then running my Abaqus job from that window to link to a user subroutine.
Another recommendation is to create a main program that can call your user subroutine to pass inputs and get the outputs to check that the UMAT by itself is working as expected. This will help confirm that you can compile and link and run a test case. That may help narrow the possibilities of what isn't working with Abaqus. Have you been able to do this test case?
A previous post may be helpful too:
https://software.intel.com/en-us/forums/intel-visual-fortran-compiler-for-windows/topic/599132
Maybe some of this information will help you discover more details about what isn't working for your Abaqus plus UMAT analysis. Let us know what you find since it may help others in the future.
Regards, Greg
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The message suggests that you haven't adjusted a procedure call to the requirements of your Abaqus library version. This doesn't look to be a problem which could be dealt with here. Even for Abaqus support, it may be difficult to deal with obsolete versions.
Your source code uses the non-standard dimension (1) which became obsolete 40 years ago, so there is a possibility of a current compiler mis-interpreting.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Nick,
Since the error message you provided indicates an issue with the UMAT subroutine argument list, I recommend first checking the documentation. For the version of Abaqus you are using, take a look in the Abaqus documentation manuals in the "Abaqus User Subroutines Reference Guide", section 1.1.44 UMAT. The information includes the UMAT call statement and the argument list for the version of Abaqus you are using. You can double check your UMAT against those arguments. Look for the same number of arguments, the same variables names, and the same variable types. Some of the arguments are short arrays, so check that the dimensions of those arrays are correct.
I believe that the Abaqus validation for user subroutines may be calling just one user subroutine, perhaps DLOAD, to check linking with Abaqus. The automatic validation may not be enough to check the UMAT subroutine.
UMAT can be one of the more challenging user subroutines to use. Have you tried other, easier to use user subroutines in Abaqus? DLOAD can be a good one to start with since the code in DLOAD could be simple to apply a traction load to a simple mesh.
Have you tried running Abaqus from the Intel Fortran command window? I have good success opening the command window from:
Start -> Intel Parallel Studio XE 2018 -> Compiler ... Intel 64 ...
Then running my Abaqus job from that window to link to a user subroutine.
Another recommendation is to create a main program that can call your user subroutine to pass inputs and get the outputs to check that the UMAT by itself is working as expected. This will help confirm that you can compile and link and run a test case. That may help narrow the possibilities of what isn't working with Abaqus. Have you been able to do this test case?
A previous post may be helpful too:
https://software.intel.com/en-us/forums/intel-visual-fortran-compiler-for-windows/topic/599132
Maybe some of this information will help you discover more details about what isn't working for your Abaqus plus UMAT analysis. Let us know what you find since it may help others in the future.
Regards, Greg
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Nick, you should realize that there is no recognizable problem with the code for the majority of forum members here, who do not use Abaqus (Greg T. is a notable exception).
The subroutine UMAT has a large number of arguments that go unused. The subroutine updates the array STRESS, using some values in the array PROPS and the input array DDSTRAN. The code can be compiled and a DLL built that exports the symbol UMAT.
So, what does Abaqus attempt to do when it builds the DLL? We do not know, unless we can see the batch file that Abaqus uses for doing that task. You should ask the Abaqus vendor, or turning echoing on in the batch file. The bland "Problem during linking" is useless without more information: what were the linker inputs and options, and what was the linker error message?
It's as if one went to the doctor's, had lots of tests done, and then was told merely "you may be sick".
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Make sure you use correct versions of Intel fortran compiler with visual studio and Abaqus. Multiple combinations are possible but for me the following worked:
- Visual studio 2010
- Visual Fortran compiler 2015
- Abaqus 6.14-1
- The order of installation of the software is important. I recommend first installing visual studio. Then if you install the Fortran compiler, you can already see if it works well with your visual studio. If you have the wrong version, it says during installation that it can not find visual studio. In this case, make sure to download other versions that work well together.
- Paste the 3 lines in abaqus.bat and abq6141.bat as seen above. This turorial from GrabCad is pretty clear: https://grabcad.com/tutorials/linking-abaqus-and-fortran
- Run the abaqus vertification (type abaqus vertification in start). If it says PASS for user subroutines the compiler is linked correctly.
- If you still have some errors after obtaining a PASS, the problem is likely either a compile error (maybe you missed a comma), or your definition for your subroutine is for an other version of abaqus. Then first try a simple DLOAD case as Greg proposed. Make sure you obtain the template for this from the correct version of the Abaqus maual.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Nick,
I am suffering from a problem about the linking of abaqus with fortran. The versions I used are i) Abaqus 6.14-2 ii) Intel parallel studio 2016 iii) visual studio 2010. When I try to run a subroutine it always shows the compilation error. I think there is a problem in linking because when the verification is going on it shows error for i) Abaqus/Standard with user subroutine ii) Abaqus/Explicit with user subroutines (Single Precision) iii) Abaqus/Explicit with user subroutines (Double Precision) iv) Abaqus make utility with fortran v) Abaqus make utility with C++. In all the above cases it shows that "Abaqus did not complete successfully".
I am in hurry and in great problem too about my M tech project. I will be highly obliged to you if you kindly help me promptly.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
hi nick,
I have followed your steps yet it is not working . Please help.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi everybody,
Please help me. When I am trying to run abaqus program after linking it properly it shows error for user subroutine both in single and double precision. What should I do right now.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
What error what are the error messages? If it is a compile error a copy of the source code and the messages would help someone help you.....
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
mecej4 wrote:It's as if one went to the doctor's, had lots of tests done, and then was told merely "you may be sick".
having a significnat number of Doctors in the family, I can say that often they are in the dark about the exact cause and have a guess.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ghosh D. wrote:Hi everybody,
Please help me. When I am trying to run abaqus program after linking it properly it shows error for user subroutine both in single and double precision. What should I do right now.
If you are running this at a University then I suggest you find the Civil Engineering Dept and find the person who does this all the time.
If you are a student at a University and this is an assignment then you should go and see your Professor.
If you are a graduate student then you need to read the manuals, this is not a forum that can help grad students in learning.
If you are in a company and are starting this by yourself, find the nearest major University and make an appointment with a structures expert who has Abaqus experience and go see that person. Most professors will give you a hearing. if you are at a major company find the expert.
Whilst Fortran is common and Abacus is common - using them together is mainly civil engineers and they are not really people who freqeunt this forum.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello everybody,
I am very much sorry for not dictating my problem in detail. The versions I am using right now are i) Abaqus 6.14-2
ii) Intel parallel studio 2015
iii) visual studio 2010.
- Visual studio 2010 is a trial version and other two are downloaded from different sites but not the student version.
- The process that I have followed are
- Installed visual studio followed by parallel studio and abaqus
- Then I have pasted the following paths in the path of environment variables C:\Program Files (x86)\Intel\Composer XE 2013\bin C:\Program Files (x86)\Intel\Composer XE 2013\bin\intel64
- After that I pasted the path @call ifortvars.bat intel64 vs2010 in abaqus6142.bat
then when I run the fllowing windows are showing that I attach.
please help
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page