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

Problems about UMAT in ABAQUS when using Fortran

LINFENG_S_
Beginner
2,809 Views

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

0 Kudos
6 Replies
LINFENG_S_
Beginner
2,809 Views

sorry, I forgot the picture of the error, here it is

0 Kudos
LINFENG_S_
Beginner
2,809 Views

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.

0 Kudos
mecej4
Honored Contributor III
2,809 Views
  • 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.

 

0 Kudos
LINFENG_S_
Beginner
2,809 Views

 

    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?

0 Kudos
Greg_T_
Valued Contributor I
2,809 Views

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

0 Kudos
LINFENG_S_
Beginner
2,809 Views

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

0 Kudos
Reply