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

Fortran Compiler for Abaqus

Ivo
Beginner
14,576 Views

Hi, I need a compiler for running Fortran Subroutines in Abaqus. I am using Abaqus 2018. In my understanding I should go for Intel Parallel Studio XE. Does the newest version work with Abaqus 2018?

Thanks

0 Kudos
1 Solution
Steve_Lionel
Black Belt Retired Employee
12,872 Views

We get a lot of questions about Abaqus and Fortran, where users request years-old versions because that's what the Abaqus documentation mentions.  There's no inherent reason to think that the now-current version of the compiler won't work with Abaqus. We keep telling people that and I have yet to see someone come back and say it didn't work. At most you may have to change a setup script Abaqus uses to locate the Intel compiler.

Use the current version from the Intel oneAPI HPC Toolkit and write back here with descriptions of any issues you encounter.

View solution in original post

54 Replies
JohnNichols
Valued Contributor II
3,133 Views

Unfortunately Abaqus is not available for students as a download until at least February. 

I am now teaching a grad structures class - so I will get them to use it with Fortran when I can get a download and see if we can solve this blasted problem as I am sick of reading about it. 

This is the problem with very large software co's - unresponsive - this is why the Steve's of the world are so important.  Back channel is always more important than front channel 

JMN

Greg_T_
Valued Contributor I
3,120 Views

If it helps for teaching finite element analysis, another FEA solver besides Abaqus that I use is "Warp3D" developed at the University of Illinois.  Warp3D is open source (no license) and both the executable (Windows and Linux) and Fortran source code are available for download from:

http://www.warp3d.net/

Warp3D is a command line FEA solver, so you'll need a way to create the mesh and post process.  The web page and user's manual gives some options for that too.  Creating a small mesh manually wouldn't be too much work, and good be a good introduction to the topic.

Regards,
Greg T.

Kamalendu
New Contributor I
3,112 Views
JohnNichols
Valued Contributor II
3,082 Views

There are a couple of good FEA solvers in Fortran. Strand7 is not bad, but it costs, but it has been a while since they updated it. 

The problem with FEM frontends is they are equivalent to hand drawing -- it is much better if you can write a FEM model creator that works from the absolute minimum information to define a structure in a simple text file.  You can then generate a model for the main program.  I have a simple program that will generate a mesh for a large bridge using the following text file. The input file for the FEM program in proper form is 2.27 million lines - 229 MB and takes 250 seconds to generate.   

Perry Creek Conduit
**DR
3
**TH
0.1
**NX
10
**DX
0.1
**NY
10
**DY
0.1
**NZ
10
**DZ
0.1
**GT
10
**SP
40
**CO
4
**SY
259
**PI
2
**PX
9
**PZ
24
**PY
290
**BE
4
**BR
1
**BS
24
**BY
16
**BO
3
**BT
100
**SL
7
**CL
1 1 1
2 1 131
3 60 1
4 60 131
5 1 65
6 60 65
**WC
2
**WL
1 1 3 1 
2 2 4 1
**RF
0
**RC
0

 

Behrooz2
Beginner
2,006 Views

Hi Kamalendu,

Have you fixed the issue? I have the same problem here. I have a set of umat and inp files that was working on the previous version of parallel studio, but it is not working with oneAPI. 

I am getting this warning "warning LNK4210: .CRT section exists; there may be unhandled static initializers or terminators" 

I am using Abaqus 2019 and VS 2019. 

 

Thanks

Steve_Lionel
Black Belt Retired Employee
1,998 Views

You're probably missing a MSVC library in your linking - this is not a Fortran issue. See c++ - .crt section? What does this warning mean? - Stack Overflow

Behrooz2
Beginner
1,993 Views

Steve, thanks for your response. I can run Abaqus with some Fortran subroutine UMAT but not for some other UMATs! So, I think the problem shouldn't be about linking. Am I right?

Steve_Lionel
Black Belt Retired Employee
1,978 Views

I don't know Abaqus - just telling you what the error message means. It may have something to do with the UMAT source you are using.

Ivo
Beginner
2,935 Views

Hi, I am trying the combination oneAPI & Visual Studio 2019 for Abaqus2018. If I run a test with "abaqus verify -user_std" I get this error: LINK : fatal error LNK1181: cannot open input file 'user32.lib'

I've attached an image of the command window and of the log file.

Does anyone know what the problem might be?

 

Thanks

 

 

Kamalendu
New Contributor I
2,910 Views

@Ivo 

 

From what I can think of, it is due to the version of VS. Check below.

Capture.JPG

Also, do follow the latest conversations here: 

https://community.intel.com/t5/Registration-Download-Licensing/How-to-link-ABAQUS-with-Intel-One-API...

Steve_Lionel
Black Belt Retired Employee
2,893 Views

user32.lib is part of the Windows SDK, which is installed as part of Microsoft Visual C++ but is not itself an MSVC library. The path to the Windows SDK should have been added to the LIB environment variable by the compiler's setvars.bat. An example of the path that should be there is C:\Program Files (x86)\Windows Kits\10\Lib\10.0.18362.0\um\x64 (This is the 64-bit path for the specific version of the SDK I have installed, yours may be different.)

 
Ivo
Beginner
2,807 Views

@Steve_Lionel, thank you that helped. I am now able to user routines, such us DLOAD, DFLUX etc. However I ran into another problem when trying to use an additional subroutine/module (interpolation of values on mesh) that used to work with Parallel Studio. Since it used to work the module itself should be ok. The analysis stops and gives me the error:

Abaqus Error: The executable standard.exe aborted with system error code 1073741511.

@Kamalendu suggested that might have to do with the version of VS. I use VS 2017 with Abaqus 2018, the module worked with older versions, so I don't think that is the issue.

Kamalendu
New Contributor I
2,810 Views

@Steve_Lionel Yes, of course! I don't know why I said that. you're right. Thanks!

@Ivo Check my earlier comment. 

Ivo
Beginner
2,745 Views

@Kamalendu I tried VS 2017 and VS2019, both have no trouble to compile a standard DFLUX routine, but give me the error below if I want to also the module for the interpolation on the mesh. In the command window it states that the routines are compiled and successfully linked but after it gives me an error with the Code 1073741511.

 

Intel(R) Fortran Intel(R) 64 Compiler Classic for applications running on Intel(R) 64, Version 2021.1 Build 20201112_000000
Copyright (C) 1985-2020 Intel Corporation.  All rights reserved.

End Compiling Abaqus/Standard User Subroutines
Begin Linking Abaqus/Standard User Subroutines
   Creating library standardU.lib and object standardU.exp
End Linking Abaqus/Standard User Subroutines
2/11/2021 9:50:27 AM
Begin Analysis Input File Processor
2/11/2021 9:50:27 AM
Run pre.exe
2/11/2021 9:50:29 AM
End Analysis Input File Processor
Begin Abaqus/Standard Analysis
2/11/2021 9:50:29 AM
Run standard.exe
2/11/2021 9:50:29 AM
Abaqus Error: The executable standard.exe
aborted with system error code 1073741511.
Please check the .dat, .msg, and .sta files for error messages if the files
exist.  If there are no error messages and you cannot resolve the problem,
please run the command "abaqus job=support information=support" to report and
save your system information.  Use the same command to run Abaqus that you
used when the problem occurred.  Please contact your local Abaqus support
office and send them the input file, the file support.log which you just
created, the executable name, and the error code.
Begin Convert MFS to SFS
2/11/2021 9:50:32 AM
Run SMASimUtility.exe
2/11/2021 9:50:32 AM
End Convert MFS to SFS
Abaqus/Analysis exited with errors

Greg_T_
Valued Contributor I
2,723 Views

@Ivo  You can write debugging output from the DFLUX user subroutine to the *.msg Abaqus message file.  Getting that output could help identify if the DFLUX routine is called, and how much progress is made in the subroutine before the error.  In the Abaqus user's manual it gives the file unit number = 7 to write to the *.msg file.  In your DFLUX subroutine add "write(7,*) ..." statements to output progress and variable values.  After running Abaqus check the *.msg file for that output.

Another suggestion is to test the DFLUX subroutine from a small program rather than with Abaqus.  Create a main program to initialize the variables passed to DFLUX and call the subroutine to confirm its calculations and return values are correct.  If possible, call DFLUX inside a do loop to run through a large set of inputs to test DFLUX.

If more debugging output or testing doesn't reveal a problem, then contacting Abaqus support may be necessary.

Regards, Greg T.

Ivo
Beginner
2,710 Views

@Greg_T_ the standard DFLUX routine runs with no issue. The problem is that I use an additional module (to find nearest neighbour, for mapping values on mesh, it is a separate .for file that I include) that used to run with parallel studio. Here it creates the above mentioned error. It does not create a msg file either.

JohnNichols
Valued Contributor II
2,685 Views
setlocal
set ABA_COMMAND=%~nx0
set ABA_COMMAND_FULL=%~f0
rem @call ifortvars.bat intel64 vs2019
IF NOT DEFINED VS_VARS_SET call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\VC\Auxiliary\Build\vcvars64.bat"
set VS_VARS_SET=1
IF NOT DEFINED VC_VARS_SET call "C:\Program Files (x86)\Intel\oneAPI\setvars.bat" intel64 vs2019
set VC_VARS_SET=1
"c:\SIMULIA\CAE\2020SE\win_b64\code\bin\SMALauncherSE.exe" %*

it appears that Abaqus student is tolerably easy to set up.  All of the necessary programs need to be installed and then you need to edit the appropriate batch file in the directory 

C:\SIMULIA\Commands\abq*.bat       

the * will be something like 2020se

 

if you run an Abaqus verify command it will check and tell you if there are errors. 

 

 

JohnNichols
Valued Contributor II
2,684 Views

If you want to send a sample I can have a look at it as I now have abaqus se on my computer. 

Greg_T_
Valued Contributor I
2,686 Views

@Ivo  Good to hear that the standard DFLUX routine runs correctly with Abaqus so the Fortran setup is working.  For the DFLUX routine that uses another module or additional code in another *.f source file, I believe you can append the DFLUX.f source file with all the additional code, so that the single DFLUX.f source file contains all the needed references: the dflux subroutine plus the module.  Have you tried putting the extra source code for the module at the bottom of the DFLUX.f source file?  I feel that would be worth trying, since the Abaqus command line will compile the specified user subroutine, but may be missing the other source files.

Regards, Greg T.

Ivo
Beginner
2,645 Views

@Greg_T_ yes, I've already tried that, but it gives me the same error. The module I am trying to use is something similar to this. https://github.com/jmhodges/kdtree2/blob/master/src-f90/kdtree2.f90. 

I used it to map values on my mesh. Maybe there are some libraries missing? I remember that it used to work with parallel studio. It would just be good to know if it works with parallel studio or if I would end up with the same problem after purchasing it...

Reply