Compiler and System Requirements

To use compiled subroutines, you need to supply your own appropriate compilers and linkers. Typically, you write your user subroutine in C/C++ or Fortran, compile it, and create a Dynamically Linked Library (DLL) or Shared Object (SO).

Both Fortran and C/C++ routines are directly supported in the creation of a custom DLL/SO. In other words, you do not have to write Fortran-to-C wrapper routines. For C/C++ routines, you do need to include the following header file:


The compiler requirements to build MotionSolve C++ and Fortran user subroutine DLLs/SOs are:

Windows 64:
  • C/C++: Microsoft Visual Studio 2015
  • Fortran: Intel Fortran Compiler 2017.4
Linux 64:
  • C/C++: Intel Compiler (ICC) 2017.7
  • Fortran: Intel Compiler (IFORT) 2017.7
Note: This information is only provided for reference. For building user subroutines, it is recommended to link against the “asutility” library (or use the UserSub Build Tool). By doing so, you do not have to comply with the compilers defined above and can use any version of compiler.

For more information about supported compilers and linkers, and for a list of system requirements, please refer to the Altair Simulation Installation Guide.

See Also

Solver-Neutral Routines

User Subroutine Guidelines