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

Fortran subroutine

Seifeddine_E_
Beginner
711 Views

Greetings to all,

I'm a Msc student,

I have a fortran subroutine to compute the non linear behavior of a material, however it must be changed a little in order to be compatible with the UMAT.  but i don't have enough knowledge in fortran programing

Can anyone help me with this.

The subroutine file is attached.

Thank you 

0 Kudos
4 Replies
Arjen_Markus
Honored Contributor I
711 Views

First of all, since you are a student, I would think it is your task to at least put in some effort to learn the language. It is not all that difficult. Your question now boils down to: please do my homework for me. I am sure you do not mean it like that, but that is how I read it.

Even if learning Fortran is not part of your study, you give us very little to even suggest what you should do. So, at the very least:

  • Explain what UMAT is
  • Why the code as you attached it does not work - compile errors perhaps? Then post them.

Oh, and show what you have tried sofar - it helps if you show that you put in some effort at least.

0 Kudos
mecej4
Honored Contributor III
711 Views

If 'UMAT' is intended to signify that you want to build a DLL that is callable by the Abaqus FEA program, you need to convert the source code from a program into a subroutine. The arguments of the subroutine have to conform to an Abaqus-specified protocol as to number, sequence and type.

0 Kudos
TimP
Honored Contributor III
711 Views

Evidently, there are several commercial applications which offer a user material function capability, each with their own instructions and sample source code.  More than one student has sat down with a Fortran tutorial (there are good ones on line as well as in textbooks) to figure out what the sample code does and what changes are needed to accomplish their assigned task.

0 Kudos
Greg_T_
Valued Contributor I
711 Views

Hi Seifeddine,

The Fortran file you attached contains a main program, so I'd say the first change to make is to separate it into two parts: a main program that calls a subroutine.  The main program and subroutine can be in two separate *.f90 or .for files.  Open a new Fortran console program project in Visual Studio and add both files to build the project and get an executable to run for testing.

I am assuming that the UMAT is a user-defined material calculation that would be used in an FEA solver.  Depending on which FEA solver you are using: Abaqus, ANSYS, Warp3D, Nastran, etc. there should be a user's manual that you can refer to for the specific argument list for the UMAT subroutine.  For example, in Abaqus the  user subroutine manual lists and describes the variables to call each user subroutine, which includes UMAT.  I would recommend using the specific FEA solver subroutine declaration to separate your current main program file.  That way your main program can call and test the UMAT subroutine before trying to add it to the FEA solver.

Regards,
Greg

0 Kudos
Reply