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
34,494 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
Honored Contributor III
32,788 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

58 Replies
JohnNichols
Valued Contributor III
9,164 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

0 Kudos
Greg_T_
Valued Contributor I
9,151 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.

0 Kudos
Kamalendu
New Contributor I
9,142 Views
0 Kudos
JohnNichols
Valued Contributor III
9,112 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

 

0 Kudos
Behrooz2
Beginner
8,039 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

0 Kudos
Steve_Lionel
Honored Contributor III
8,031 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

0 Kudos
Behrooz2
Beginner
8,026 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?

0 Kudos
Steve_Lionel
Honored Contributor III
8,011 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.

0 Kudos
I_Putu_Widiantara
5,482 Views

Hello Sir Mecej4,

 

Thank you for your concern regarding this matter. I would like to discuss with you regarding modification in Abaqus scripts.  Please tell me what information that you will need and I will be happy to provide you. May I have your email so that we can communicate better? Thank you again Sir

 

Best regards

0 Kudos
Ivo
Beginner
8,966 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

 

 

0 Kudos
Kamalendu
New Contributor I
8,941 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-toolkits-to-run-FORTRAN/td-p/1244548/page/3

0 Kudos
Steve_Lionel
Honored Contributor III
8,924 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.)

 
0 Kudos
Ivo
Beginner
8,837 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.

0 Kudos
Kamalendu
New Contributor I
8,841 Views

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

@Ivo Check my earlier comment. 

0 Kudos
Ivo
Beginner
8,778 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

0 Kudos
Greg_T_
Valued Contributor I
8,755 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.

0 Kudos
Ivo
Beginner
8,742 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.

0 Kudos
JohnNichols
Valued Contributor III
8,717 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. 

 

 

0 Kudos
JohnNichols
Valued Contributor III
8,716 Views

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

0 Kudos
Greg_T_
Valued Contributor I
8,718 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.

0 Kudos
Reply