- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi there,
I'm facing a very serious problem about how to use subroutines functionally now, so if you guys are so kind, please give some help and I really appreciate this!
Here is the deal, my software combo is VS2012+ABAQUS6.13+Intel Fortran2013 SP1, OS is WIN7-64bit, and I'm trying to do the research about RVE problems. The attachments are the codes and input files what I'm using now, and also including the picture of showing the error.
As you can see from the fortran codes, if I separate them into two parts: subroutine(including UMAT, DISP, URDFIL and UEXTERNALDB) and user subroutine(including CMKirchhoff, IdentityTensor, NodeCurrent, NodeInitial, NodesCoords, ReadKM, ReadRVEvolume, RVEvolume, StressM and StressTensors), the prompt will show "subroutine.obj: error lnk2019 unresolved external symbol ***(which is the names of the user subroutines), this symbol is referenced in function ***(umat.R or urdfil and so on)". However, if I add these user subroutines into the subroutine code file, there will be other problems. So this make me confused.
Anyway, I'm wondering that if anyone can help me get out of this annoying issue? many thx!
BTW: All the codes and input files are included in the UMAT.rar showing in the attachment (because the forum can not allow me to upload .inp file...)
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
also, I'm sure that it is not the problem about linking abaqus and fortran, because I've done the abaqus verification and all things are pass. Meanwhile, I've downloaded the UMAT example from the abaqus document website, and it does work!
Abaqus Product Install Verification...
Mon Mar 2 17:38:37 2015
Making F:\Temp\verify. All verification files will reside in this directory.
-----------------------------------------------------------------------------
Abaqus/Standard
...PASS
Continuing...
-----------------------------------------------------------------------------
Abaqus/Standard with user subroutines
...PASS
Continuing...
-----------------------------------------------------------------------------
Abaqus/Explicit (single precision)
...PASS
Continuing...
-----------------------------------------------------------------------------
Abaqus/Explicit (double precision)
...PASS
Continuing...
-----------------------------------------------------------------------------
Abaqus/Explicit with user subroutines (single precision)
...PASS
Continuing...
-----------------------------------------------------------------------------
Abaqus/Explicit with user subroutines (double precision)
...PASS
Continuing...
-----------------------------------------------------------------------------
Abaqus/Viewer
...PASS
Continuing...
-----------------------------------------------------------------------------
Abaqus/CAE
...PASS
Continuing...
-----------------------------------------------------------------------------
Geometry Translator for CATIA V4
...PASS
Continuing...
-----------------------------------------------------------------------------
Geometry Translator for CATIA V5
...PASS
Continuing...
-----------------------------------------------------------------------------
Direct Geometry Import for CATIA V5
...PASS
Continuing...
-----------------------------------------------------------------------------
Geometry Translator for Parasolid
...PASS
Continuing...
-----------------------------------------------------------------------------
Geometry Translator for Pro/ENGINEER
...PASS
Continuing...
-----------------------------------------------------------------------------
Geometry Translator for SolidWorks
...PASS
Continuing...
-----------------------------------------------------------------------------
Abaqus/AMS
...PASS
Continuing...
-----------------------------------------------------------------------------
Abaqus Interface for MSC.ADAMS
...PASS
Continuing...
-----------------------------------------------------------------------------
Abaqus/Standard parametric studies
...PASS
Continuing...
-----------------------------------------------------------------------------
Abaqus/Explicit parametric studies
...PASS
Continuing...
-----------------------------------------------------------------------------
Abaqus/Design
...PASS
Continuing...
-----------------------------------------------------------------------------
Abaqus Interface for Moldflow
...PASS
Continuing...
-----------------------------------------------------------------------------
Abaqus make utility with Fortran
...PASS
Continuing...
-----------------------------------------------------------------------------
Abaqus make utility with C++
...PASS
Continuing...
-----------------------------------------------------------------------------
Abaqus make utility with object code
...PASS
Continuing...
-----------------------------------------------------------------------------
Abaqus scripting interface
...PASS
Continuing...
-----------------------------------------------------------------------------
Abaqus analyses using parallelization
Running thread-based parallel with 2 cpu(s)
Abaqus/Explicit domain-level parallel
...PASS
Abaqus/Standard direct solver
...PASS
Continuing...
-----------------------------------------------------------------------------
Abaqus/Foundation
...PASS
Continuing...
-----------------------------------------------------------------------------
Abaqus noGUI (CAE/Viewer)
...PASS
Continuing...
-----------------------------------------------------------------------------
Abaqus/CFD
...PASS
Continuing...
-----------------------------------------------------------------------------
Abaqus/CAE Topology Optimization Module
...PASS
Continuing...
-----------------------------------------------------------------------------
Clean-up...
Verification directory F:\Temp\verify has been deleted.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- This forum is for Intel Fortran users, and by extension general Fortran users and potential customers. This is not an Abaqus forum, although there are a few forum members familiar with Abaqus (I am not one).
- The language of this forum is English, with various degrees of mangling tolerated. Your error messages are in mixed English and Chinese.
- You provided the error log as an image file, because of which the Chinese text in the error messages cannot be copied as Unicode text and pasted into an automatic Chinese-English translation engine.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you mecej4, I apologize for the inconvenience. The error sentences which include the Chinese are as follows:
"subroutine.obj: error lnk2019 unresolved external symbol ***(which is the names of the user subroutines), this symbol is referenced in function ***(umat.R or urdfil and so on)"
there are 11 error messages, and all of them are the same type, which are shown as above. So the main problem I concern is this, and maybe there are something wrong in my Fortran codes?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Linfeng,
There may be some useful information to a similar Abaqus user subroutine question in a recent article: https://software.intel.com/en-us/forums/topic/542812
Since the Abaqus installer verification passed for user subroutines and you report that the downloaded UMAT example runs, you could try making small changes to the UMAT example, such as some small changes to the mesh or material values, and rerun to see if a modified case still runs. Likewise, start with a simple mesh that uses just one user subroutine to see if you can get that to run. Often DLOAD is one of the easier user subroutines to use to apply a distributed load like a pressure to the mesh.
Check that the path to the folder where the Abaqus input file and user subroutine are located does not have a blank space somewhere in the path or file name. I have seen the space in the file path cause a problem when Abaqus tries to compile and link to the user subroutine. For example, try running the downloaded UMAT example and your model in a folder with a simple path like: C:\analysis
Also check the call statement arguments to the Fortran user subroutines as sometimes the arguments change or new arguments are added with newer versions of Abaqus. I have had a few cases where I try to use an existing user subroutine that worked in a previous version of Abaqus, but then fails in a newer version, which just needed the arguments updated.
If none of this helps resolve the user subroutine problem, you could search the on-line Abaqus knowledge base at the DS website. I believe the knowledge base web page is: https://www.3ds.com/support/knowledge-base/
Or contact your local Simulia support office to get help configuring your system to run the user subroutines.
Regards,
Greg
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Greg,
Thank u for your advice, and I'll try that again today. If anything new happens, I'll post it on this forum post.
Best regards and many thanks,
Linfeng

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page