IMPORTANT: Use the default installation directory to install the Intel Fortran Compiler (any version). |
Intel Fortran Compiler versions 7.1 and 8.1 compile
the XBC
option tree and other X-Midas host primitives
written in Fortran (see X-Midas Backwards
Compatibility (XBC) for details on X-Midas
host primitives in NeXtMidas).
Because of significant changes made between Intel Fortran Compiler versions 7.1 and 8.1, different configuration options are required. Refer to the appropriate section for instructions:
Intel Fortran Compiler 7.1 (ifc
) is the default
Fortran compiler for NeXtMidas 2.0.X (and earlier). To use this compiler
with later versions of NeXtMidas, change the
native.lin.for.comp
and native.lin.for.link
build properties in $NMROOT/nxm/sys/cfg/build.props
:
Intel Fortran Compiler 7.1 | Intel Fortran Compiler 8.1 |
---|---|
native.lin.for.comp = ${ifc.comp} |
native.lin.for.comp = ${ifort.comp} |
Intel Fortran Compiler for 32-bit applications 8.1
(ifort
) is the default Fortran compiler for NeXtMidas 2.1.X
(and later). To use this compiler with earlier versions of NeXtMidas,
change the
native.lin.for.comp
and native.lin.for.link
build properties in $NMROOT/nxm/sys/cfg/build.props
:
Intel Fortran Compiler 7.1 | Intel Fortran Compiler 8.1 |
---|---|
native.lin.for.comp = ${ifc.comp} |
native.lin.for.comp = ${ifort.comp} |
Some Linux installations cannot find the ifort
shared libraries until they are manually added to the /lib
directory. The following steps verify this particular system problem:
XBC
to the NeXtMidas path
(use PATH ADD XBC
).XBC
(use BLD ALL ALL XBC
).SD360
primitive (use SD360 1e20
).
If the libraries are not found the primitive locks up and an
error message similar to this appears:
Shell.loadLibrary err: java.lang.UnsatisfiedLinkError: /home/smith/nxm210/nxm/xbc/lib/libHPrimitive_lin.so: libifcore.so.5 cannot open shared object file: No such file or directory(If this happens, use
Control-C
to kill the current
Java session.)
The following steps add the ifort
runtime
libraries to /lib
(where /opt/intel_fc_80
is the
installation directory for ifort
):
$ cd /lib $ ln -s /opt/intel_fc_80/lib/libcprts.so.5 $ ln -s /opt/intel_fc_80/lib/libcxa.so.5 $ ln -s /opt/intel_fc_80/lib/libcxaguard.so.5 $ ln -s /opt/intel_fc_80/lib/libguide.so $ ln -s /opt/intel_fc_80/lib/libguide_stats.so $ ln -s /opt/intel_fc_80/lib/libifcore.so.5 $ ln -s /opt/intel_fc_80/lib/libifcoremt.so.5 $ ln -s /opt/intel_fc_80/lib/libifport.so.5 $ ln -s /opt/intel_fc_80/lib/libimf.so $ ln -s /opt/intel_fc_80/lib/libsvml.so $ ln -s /opt/intel_fc_80/lib/libunwind.so.5
OpenMP is an API that supports multi-platform shared memory multiprocessing programming. The following configuration is an example of using OpenMP with an X-Midas Fortran primitive.
call setenvqq("KMP_HANDLE_SIGNALS=false")OR In the OS shell prior to running nmstart
setenv KMP_HANDLE_SIGNALS false
Add the -openmp
compile flag to enable to OpenMP directive(s) for the primitive.
openmp_example: cflags + -openmp openmp_cpp_example: cflags + -openmp