oneAPI Registration, Download, Licensing and Installation
Support for Getting Started questions related to download, Installation and licensing for Intel oneAPI Toolkits and software development tools.
1260 Discussions

How to link ABAQUS with Intel One API toolkits to run FORTRAN SUBROUTINES

AsimGautam
Novice
68,474 Views

Hi

I am not able to link ABAQUS with Intel One API. I installed the INTEL ONE API Base toolkit and ONE API HPC toolkits. In the past there used to be INTEL PARALLEL STUDIO and the old fashioned way to link ABAQUS with INTEL PARALLEL STUDIO (to run the FORTRAN subroutines in ABAQUS) was by editing the ABAQUS2019.bat file located at the commands directory inside simulia folder and by calling the batch files ifortvars and mklvars but now it is not possible to link ABAQUS with ONE API as those batch files are not present inside the ONE API directory. Intel has highlighted that ONE API toolkit is the replacement of the older INTEL PARALLEL STUDIO.

Please help me to link the ABAQUS with the ONE API toolkit so that I can use it to run FORTRAN subroutines in ABAQUS. 

The procedure I followed for reference.

Installed Microsoft visual studio 

Installed one API base toolkit

Installed one API HPC toolkit

Installed ABAQUS

Now I am stuck what to do ?? Please help me out.

 

 

Labels (1)
1 Solution
SAR24
Beginner
61,072 Views

Hi @oaeres ,

Thanks for your suggestion. I've managed to link back my Abaqus to fortran compiler. 

For those who wants to try at your own risk, below are the steps I took:

(My previous setup was Abaqus 2019 + VS 2019 + Intel Parallel XE)

1) I didn't bother to uninstall parallel XE. So I leave it as is. 

2) Install OneAPI Base kit first, then install OneAPI HPC kit. Select all recommended installation.

3) Once both installation completed, edit abq2019.bat (in C:\Simulia\Commands). Need to set path for fortran compiler and mkl. Refer lines below:

SET PATH=%PATH%;C:\Program Files (x86)\Intel\oneAPI\compiler\2021.1.1\windows\bin\intel64;
call "C:\Program Files (x86)\Intel\oneAPI\compiler\2021.1.1\env\vars.bat" -arch intel64
call "C:\Program Files (x86)\Intel\oneAPI\mkl\2021.1.1\env\vars.bat" intel64

Then, save the file.

4) Now need to edit abaqus_v6.env file (in C:\Program Files\Dassault Systemes\SimulationServices\V62019X\win_b64\SMA\site) as follow:

# abaqus V6 Environment File
# This file is used to import other environment files located in the site
# directory. Custom parameters can be added here, but it is recommended to
# use the custom_v6.env file instead.

import os, driverUtils

# Utility function for loading site environment files
def importEnv(name, ldict=locals(), gdict=globals()):
from driverUtils import locateSite, locateFile
env = locateFile(locateSite(), '', name)
if env:
execfile(env, gdict, ldict)
else:
print "Cannot locate environment file: ", name

# Import parameters common to all platforms
importEnv('basic_v6.env')

# Import MPI specific parameters
importEnv('mpi_config.env')

# Import platform specific parameters such as compiler and linker settings
platform = driverUtils.getPlatform()
importEnv(driverUtils.getPlatform() + '.env')

# onCaeGraphicsStartup() function to configure graphics
# card specific settings for CAE & Viewer
importEnv('graphicsConfig.env')

# Import site specific parameters such as licensing and doc parameters
importEnv('custom_v6.env')

del importEnv, driverUtils, platform

compile_fortran += ['/names:lowercase',]

Then, save the file.

5) To double check if the link is successful, go to Abaqus Commands, and enter command below without the " " marks:

"abaqus info=system" (note here the fortran compiler is successfully linked with 2021.1.1 version)

"abaqus verify -all" (abaqus will conduct tests on all installed modules include subroutine examples)

 

Hopefully it helps to those who just got their student license on Parallel XE expired!

View solution in original post

93 Replies
Alex22
Beginner
12,866 Views

@SAR24 Could you please explain step 4? Are you setting paths again or doing something different. I also have Abaqus student version and I can't seem to link it with my DFlux subroutine I was wondering if you had any experience with this also? 

0 Kudos
Siao
Beginner
11,240 Views

Hi SAR24, I followed your instructions and got the error below, thanks for your further help.

 

Siao_0-1634523319860.png

 

0 Kudos
JWChen1
Beginner
11,163 Views

Hi, @SAR24 @AbhishekD_Intel 

I followed the posted procedures. However, when I tried to run 

call "C:\Program Files (x86)\Intel\oneAPI\compiler\2021.4.0\env\vars.bat" intel64
call "C:\Program Files (x86)\Intel\oneAPI\mkl\2021.4.0\env\vars.bat" intel64

I got this error: 

"The input line is too long. The syntax of the command is incorrect." 

at the following command in "...\mkl\2021.4.0\env\vars.bat":

set "PATH=%TMP_MKLROOT%\redist\%MKL_TARGET_ARCH%;%TMP_MKLROOT%\bin\%MKL_TARGET_ARCH%;%PATH%" 

I tried switch the order the two batch commands are called, and I got the same error at the following command in "...\compiler\2021.4.0\env\vars.bat":

set "PATH=%CMPLR_ROOT%\%INTEL_TARGET_PLATFORM%\bin;%CMPLR_ROOT%\%INTEL_TARGET_PLATFORM%\lib;%PATH%"

I wonder if this because my PATH variable is too long or is it something else? Thank you for your help.

0 Kudos
JWChen1
Beginner
11,132 Views

Update: it is indeed the problem with PATH variable. Uninstalling Intel Parallel XE and/or cleaning up the PATH variable helps. 

0 Kudos
Asma1
Beginner
12,469 Views

Still facing the same problem when verifying in Abaqus command. Error:

standardU_static.lib(SMAStsStdU_IF.obj) : error LNK2019: unresolved external symbol __imp_printf referenced in function "void __cdecl SMABasOmniSetSSELevel(void)" (?SMABasOmniSetSSELevel@@YAXXZ)
standardU_static.lib(SMAStsStdU_IF.obj) : error LNK2019: unresolved external symbol __imp_getenv referenced in function "void __cdecl SMABasOmniSetSSELevel(void)" (?SMABasOmniSetSSELevel@@YAXXZ)
standardU_static.lib(SMAStsStdU_IF.obj) : error LNK2019: unresolved external symbol __imp__putenv referenced in function "void __cdecl SMABasOmniSetSSELevel(void)" (?SMABasOmniSetSSELevel@@YAXXZ)
standardU_static.lib(ufluidpipefriction.obj) : error LNK2019: unresolved external symbol memmove referenced in function ufluidpipefriction
standardU_static.lib(umat_sst.obj) : error LNK2001: unresolved external symbol memmove
standardU_static.lib(uxfemnonlocalweight.obj) : error LNK2001: unresolved external symbol memmove
standardU_static.lib(uanisohyper_inv.obj) : error LNK2001: unresolved external symbol memmove
standardU_static.lib(uanisohyper_strain.obj) : error LNK2001: unresolved external symbol memmove
standardU_static.lib(ufluidconnectorloss.obj) : error LNK2001: unresolved external symbol memmove
standardU_static.lib(ufluidconnectorvalve.obj) : error LNK2001: unresolved external symbol memmove
standardU.dll : fatal error LNK1120: 4 unresolved externals

 Followed the document and suggested changes. Any help?

Thanks

0 Kudos
mihir21
Beginner
14,162 Views

@oaeres 

@Kamalendu  

Hey, I have done the exact same procedure for linking Abaqus with Fortran.

I am using Abaqus 2019(Research License)+Ms VS 2017+oneAPI 2021. 

Although, when I open Abaqus Command, the header which generally states Intel Compiler found, is not shown in my case(picture). However when I run abaqus system=info, it is able to find MS VS and Intel Compiler.(picture)

But when I run abaqus verify -user_std, it gives me the so called error(picture)

I have also attached the error stated in std_user.log.

What could be the problem?  I am pretty sure the steps required are done perfectly since I have done this process for like 5 times. Any help would be appreciated.

Thankyou

 

 

0 Kudos
SiangZhou
Beginner
13,725 Views

I have exactly the same situation here, using ABAQUS2017+VS2019+OneAPI. Any help would be appreciated.

0 Kudos
mihir21
Beginner
13,717 Views

I configured it somehow. In the Abaqus Command shortcut set the target to:

"C:\Program Files (x86)\Intel\oneAPI\setvars.bat" intel64 vs2017 && C:\WINDOWS\System32\cmd.exe /k

Typically the intel compiler command prompt has the "C:\Program Files (x86)\Intel\oneAPI\setvars.bat" intel64 vs2017 Target link instead of "C:\Program Files (x86)\Intel\oneAPI\compiler\latest\env\vars.bat" intel64 vs2017 

Also, add "C:\Program Files (x86)\Intel\oneAPI\setvars.bat" intel64 vs2017 in Abaqus CAE shortcut Target too. Then when you open Abaqus Command or CAE, it will open in the Intel Compiler command prompt.

Tell me if this is working for you.

0 Kudos
SiangZhou
Beginner
13,444 Views

Thank you for the quick response! 

The command load through API after I made the changes, but I could not check "abaqus info=system" or write any command lines. 

Have you by any chance solved the issue for not being able to run user subroutine?

0 Kudos
mihir21
Beginner
13,438 Views

You should be able to write the commands.
I haven't yet configured the issue regarding failure to run user subroutines. I will write here if I find a solution. I guess the problem is with the Abaqus Installation.

0 Kudos
SiangZhou
Beginner
13,424 Views

Thank you again. Here is what I get after putting a regular command line. I am getting the syntax error. Did this ever happen to you?

 

0 Kudos
mihir21
Beginner
13,417 Views
Have you added any @call commands before@echoff to abq19.bat? I had added some before @echoff, which led me to a similar error.
0 Kudos
Tianchen
Beginner
14,645 Views

Is this issure fixed now? Or how can we find a way to get the license for the old version?

0 Kudos
merlem
Beginner
14,595 Views

I sent a mail to the support, since Intel OneAPI (with both the Base and HPC Toolkit Tools) is the new tool that replaces the fromer Intel Parallel Studio XE and because it is free, there is no way to renew or have a new Student License for Intel Parallel Studio XE. There are only two options left, you can try to install the new Intel OneAPI tools and find a way to link the Fortran Compiler to Abaqus, or you can by a license for the new Intel OneAPI tools which should enable you to continue using Intel Parallel Studio XE (I do not try but that is what I understood). Regards.

mihir21
Beginner
13,395 Views

Hello,

I have linked Abaqus2019 with Fortran one API. However when I run "abaqus verify -user_std", I get a typical error saying that "include aba_param.inc required for compilation not found". As far as I know, it is installed during the installation and Abaqus is supposed to find it directly. I am using a Research License. Does anyone has any idea? and where can I find the aba_param.inc file?

0 Kudos
SiangZhou
Beginner
13,367 Views

Hi, 

I got my subroutine to work with ABAQUS2020+VS2019+API.  I mostly followed the post from SAR24 on ‎01-28-2021 10:36 PM with a few modifications since I was using ABAQUS 2020. A few notes along the way.

1. I installed both API Base ToolKit and API HPC Toolkit. I do not know whether this helped, but I have both installed when it worked.

2. When editing abaqus_v6.env file, simply adding the line: compile_fortran += ['/names:lowercase',] at every end of the file worked for me.

3. When editing the abaqus2020.bat file, I added the recommended lines after ‘setlocal’, before ‘set ABA_COMMAND=%~nx0’.

4. I did not change target property of ABAQUS Command or ABAQUS CAE, for my case, simply editing abaqus2020.bat did the trick.

I hope these might help! Also I feel like the version of VS and ABAQUS might be a large impact factor here.

0 Kudos
mihir21
Beginner
13,359 Views

Hi @SiangZhou 

If its possible for you, can you post a screenshot of your abq2020.bat file?

 

0 Kudos
SiangZhou
Beginner
13,350 Views

Yes sure, please see below.

Capture.PNG

 

0 Kudos
mihir21
Beginner
13,343 Views

Hi @SiangZhou 

Thankyou for the screenshot. I guess the problem at my side is with the Abaqus Version. Where can I download Abaqus 2020 from? I already have a research License.

0 Kudos
SiangZhou
Beginner
13,335 Views

In my case, the university webstore provides the software when I purchased the license. You might want to contact wherever you purchased the research license from. I hope you can get this resolved soon as well!

0 Kudos
Sadeep
Beginner
13,122 Views

Hi, 

I followed all the steps outlines by SARS24 and still I get an error saying "Problem during compilation". When I run "abaqus info=system" in Abaqus command, it shows the fortran compiler as Intel fortran 2021. and still the verification and any other UMAT I run ends up with an error. 

I tried the solution mentioned in https://info.simuleon.com/blog/free-fortran-compiler-on-windows-for-abaqus-material-modeling and still did not work. 

I am running Abaqus 2017. Please let me know if anyone has a solution for this. 

Sadeep

0 Kudos
Reply