I am building a fortran DLL that I need to deliver to others. I would like to not require that the person receiving it have the intel libraries. Is there a compiler option so that I can statically link the libraries? (libmmd.dll and libifcoremd.dll)
Note: I am building the DLL using visual studio 2013 professional with the 2016 intel compiler
For some reason I do not have permission to edit my post
Try setting under project settings Fortran > Libraries > Runtime Library to Multithreaded. From a command-line use: /libs:static /threads
Fortran 16.0 UG has advice/instructions on static linking for multithreaded apps with libiforemd.lib, https://software.intel.com/en-us/node/581357.
You may have an issue if your application uses components of IVF that are only distributed as DLL (OpenMP, MPI, ???).
Yes - OpenMP and coarray support is DLL-only.
I'll also caution that there could be issues if the calling program built using Intel Fortran and linked to the DLL libraries (which is the default). In my view, building a Fortran DLL against the static libraries is safe only when you know the caller isn't going to be Fortran.