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

Backwards compatibility for the MPI to get Abaqus to work with Fortran compiler?

Ronen_Y_
Beginner
1,501 Views

Hey everyone. I'm currently bumping into some issues right now, and I feel like this might be a good place to ask.

First off, here's my setup

  • Windows 10 x64
  • Abaqus 6.14-2 with MPI version 3.0.2369
  • Visual Studio Community 2015 (C++ SDK is the only selected option)
  • Intel Parallel Studio XE Cluster 2016 (Fortran compiler was selected)
  • Installed in this order

Now, I noticed that the MPI version that was installed with the intel studio was 5.1, where the version abaqus 6.14 expects to use is 3.0.2369. I have a hunch that this might be causing my issues. So how I know I have a problem: When I attempt to perform the command "abaqus verify -user_std", the abaqus system checks all of the links to make sure an analysis may be performed. I receive the following errors when I try to do this:

  • explicitU_static.lib(SMASpxU_XP_IF.obj) : error LNK2019: unresolved external symbol __imp__putenv referenced in function "void __cdecl SMABasOmniSetSSELevel(void)" (?SMABasOmniSetSSELevel@@YAXXZ)
  • explicitU_static.lib(SMASpxU_XP_IF.obj) : error LNK2019: unresolved external symbol __imp_printf referenced in function "void __cdecl SMABasOmniSetSSELevel(void)" (?SMABasOmniSetSSELevel@@YAXXZ)
  • explicitU_static.lib(SMASpxU_XP_IF.obj) : error LNK2019: unresolved external symbol __imp_getenv referenced in function "void __cdecl SMABasOmniSetSSELevel(void)" (?SMABasOmniSetSSELevel@@YAXXZ)
  • explicitU_static.lib(vwave.obj) : error LNK2019: unresolved external symbol memmove referenced in function vwave
  • explicitU_static.lib(vusdfld.obj) : error LNK2001: unresolved external symbol memmove

More LNK2001 errors follow, I won't post all of them. Ultimately, this is the issue at hand. Now, I read in the documentation here that if I have (create?) a system environment variable I_MPI_COMPATIBILITY with a value of 4, it'll backtrack to work with previous MPI standards. So, I created the variable (it didn't previously exist), then set it to 4, ran the test (no luck), set it to 3, ran the test (again, no luck). Is there any way I can get this to work without going back and installing Intel Studio 2012?

0 Kudos
1 Solution
JohnNichols
Valued Contributor III
1,499 Views

just had the same problem - use VS 2013 -- it is not along install time not more than 4 hours

 

View solution in original post

0 Kudos
6 Replies
Steven_L_Intel1
Employee
1,501 Views

None of these are MPI related - they're all Microsoft C/C++ library functions. Microsoft made breaking changes in the C run-time-library in VS2015 that requires recompiling C/C++ sources with the newer compiler. See https://msdn.microsoft.com/en-us/library/bb531344.aspx#BK_CRT

Needless to say, Fortran isn't involved either.

0 Kudos
JohnNichols
Valued Contributor III
1,500 Views

just had the same problem - use VS 2013 -- it is not along install time not more than 4 hours

 

0 Kudos
Ronen_Y_
Beginner
1,501 Views

Steve Lionel (Intel) wrote:

None of these are MPI related - they're all Microsoft C/C++ library functions. Microsoft made breaking changes in the C run-time-library in VS2015 that requires recompiling C/C++ sources with the newer compiler. See https://msdn.microsoft.com/en-us/library/bb531344.aspx#BK_CRT

Needless to say, Fortran isn't involved either.

So, since I don't have access to (or rather, don't know how to dig my way into the Abaqus files to find what I'd be looking for), is there a simple fix? Or will I have to just install a different version of VS?

John Nichols wrote:

just had the same problem - use VS 2013 -- it is not along install time not more than 4 hours

Four hours? That's insane. I just finished installing VS2013 and Intel XE Cluster 2016 (barely an hour). AND I GOT THE MAGICAL 'PASS' FROM ABAQUS, HOLY MOTHER OF GOD THANK YOU

0 Kudos
Imran_K_
Beginner
1,501 Views

Hi,

I am trying to link a Fortran subroutine with ABAQUS. As mentioned by others, I am also facing the same errors:

End Compiling Abaqus/Standard User Subroutines
Begin Linking Abaqus/Standard User Subroutines
   Creating library standardU.lib and object standardU.exp
libirc.lib(fastmemcpy.obj) : error LNK2019: unresolved external symbol memcpy referenced in function _intel_fast_memcpy.A
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(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(umat_sst.obj) : error LNK2019: unresolved external symbol memmove referenced in function umat_sst
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(ufluidpipefriction.obj) : error LNK2001: unresolved external symbol memmove
standardU.dll : fatal error LNK1120: 5 unresolved externals

Is there any way to fix this issue other than reverting back to Visual Studio 2013? I am new in this area so please provide some comments/suggestions.

Thanks

0 Kudos
mecej4
Honored Contributor III
1,501 Views

The problem is that the script is trying to link against two incompatible libraries: (i) an Abaqus library that depends on one version of the VC runtime and (ii) your installed VC, which is a different version. Ask Abaqus which version of VC to use, install and use the libraries accompanying that VC.

0 Kudos
TimP
Honored Contributor III
1,501 Views

If your Abaqus recommends specific versions of Visual Studio and ifort, those recommendations should carry more weight than what we can say here.

You must make sure that your VS2015 installation hasn't been broken by the fragmentary upgrades pushed by Microsoft. You will probably need to perform a repair using the VS install menu.  If your VS dates back to a version earlier than 2015.1, you would likely need to remove it and start over with a currently supported version.  Needless to say, this will take even longer than installing VS2013.

As only VS2015.2 or .3 can be installed now, you must use ifort 2016 update 3, up to now.  Earlier versions (and later versions of ifort 2015) will break the INCLUDE and LIB paths of VS2015.2 and later.  If you are using VS2015 in spite of contrary recommendations from Abaqus, you may need to compare the INCLUDE and LIB paths seen in the Visual Studio developer cmd window with those set up under ifort.
 

0 Kudos
Reply