Missing DLL problem

GEMPACK Release 11.4 (January 2016) and later exploit thread-level parallelism to speed up execution. GEMPACK 11.4 programs generated using the Intel Fortran compiler require (for the thread-level parallelism) access to an Intel library file, libiomp5md.dll.

Note that the libiomp5md.dll files are NOT required by programs compiled with GFortran, or by programs supplied with or created by GEMPACK Release 11.3 or earlier.

GEMPACK 11.4 Fortran programs compiled with the Intel compiler need to be able to find libiomp5md.dll in the same folder as the EXE, or on the Windows PATH. These programs may include:

  1. Some command-line programs supplied with the Executable-Image version of GEMPACK.
  2. Some pre-built command-line programs supplied with the Source-Code version of GEMPACK.
  3. Programs created at install time (by BuildGP) for the Source-Code version of GEMPACK if the user chose the Intel compiler.
  4. Model-specific TABLO-generated programs generated using the Source-Code version of GEMPACK together with the Intel compiler.

Two versions of libiomp5md.dll are needed; one for 32-bit and one for 64-bit programs (they have the same name but different locations). Fortunately, if you install Intel Fortran, both versions are placed on the PATH, typically in the folders
C:\Program Files (x86)\Common Files\Intel\Shared Libraries\redist\ia32\compiler\libiomp5md.dll
and
C:\Program Files (x86)\Common Files\Intel\Shared Libraries\redist\intel64\compiler\libiomp5md.dll.
If you install GEMPACK Release 11.4 or later, the DLLs are placed on the PATH, typically in the folders C:\GP and C:\GP\dll64.

In each case both 32-bit and 64-bit versions of libiomp5md.dll are available on the PATH to programs that require them. It seems not to matter which version is first on the PATH.

If libiomp5md.dll cannot be found

A problem arises if a GEMPACK 11.4 (or later) program generated using the Intel Fortran compiler is launched, and NO libiomp5md.dll file can be located,either in the same folder as the EXE, or on the Windows PATH. In that case, the following message appears.

Missing DLL message 1

Note that
  the name of the offending program appears at top left of the message window, and
  you can type Ctrl-C to copy the message to the clipboard (and then maybe send it to GEMPACK support).

A different error is caused if a 32-bit GEMPACK 11.4 Intel-generated program is launched, and only a 64-bit libiomp5md.dll file can be located. In that case, the following message appears.

Missing DLL message 2

The above message may also appear if a 64-bit GEMPACK 11.4 Intel-generated program is launched, and only a 32-bit libiomp5md.dll file can be located.

Problem most likely if you received a TABLO-generated EXE from someone else

The missing DLL problem is most likely to appear when an EXE file produced with the Intel compiler and GEMPACK 11.4 (or later) is used by someone else who has installed neither of these. This might happen to people who have been sent a TABLO-generated EXE by someone else.

Remedies

For people who have no GEMPACK installed, the simplest solution may be to install the free Trial Version of GEMPACK, which will place the libiomp5md.dll files on your PATH (even after the temporary licence expires).

If you already have GEMPACK (prior to 11.4), you could install the gpompex.exe package into your GEMPACK folder to place the libiomp5md.dll files on your PATH.

Avoiding the problem

If you use GEMPACK 11.4 (or later) with Intel Fortran and intend to distribute TABLO-generated EXE files (for example, in RunDynam archives or in RunGTAP version zips) to other people who might not have installed Intel Fortran or GEMPACK 11.4, you should be aware of the 'missing DLL' possibility. One approach would be to instead use GFortran (EXE files compiled with GFortran do not need libiomp5md.dll).

Diagnostic tools

The Flavour program shipped with GEMPACK 11.4 can be used to tell

In addition, other GEMPACK 11.4 Windows programs have a Help/About/Diagnostics feature that generates a report; the 2nd-last section of this report tells which PATH folders contain libiomp5md.dll.

Note about Intel Fortran 10.1 with GEMPACK 11.4 (and later)

The above combination is not officially supported by GEMPACK. However, users of GEMPACK 11.4/Intel Fortran 10.1 who wish to distribute Tablo-generated programs to others, should also distribute libguide40.dll (32-bit or 64-bit to match the GP installation). For example (your compiler version 10.1.034 may vary)


See also
GEMPACK Release 11.4
Distributing GEMPACK programs to others