Any additional information related to this implementation, that came to light after the release of this product, will be described below.
Intel Xeon CPU E5405 @ 2.00GHz
Linux 2.6.27.41 (glibc-2.9-3)
Intel Fortran Composer XE 2011 update 6, (2011.6.233),
Version 12.1.0.233 Build 20110811
AMD Opteron Processor 6174 @ 2.20GHz
Linux 2.6.34.7 (glibc-2.11.2)
Intel Fortran Composer XE 2011 update 7, (2011.7.256),
Version 12.1.1.256 Build 20111011
lf95 -c nag_precisions.f90 lf95 -c nag_blas_consts.f90 lf95 -c nag_a_ib.f90 lf95 -c nag_c_ib.f90 lf95 -c nag_d_ib.f90 lf95 -c nag_e_ib.f90 lf95 -c nag_f_ib.f90 lf95 -c nag_g_ib.f90 lf95 -c nag_h_ib.f90 lf95 -c nag_m_ib.f90 lf95 -c nag_p_ib.f90 lf95 -c nag_s_ib.f90 lf95 -c nag_x_ib.f90 lf95 -c nag_long_names.f90 lf95 -c nag_library.f90
To use the NAG Fortran Library and the supplied MKL libraries, you may link in the following manner:
lf95 driver.f -I[INSTALL_DIR]/nag_interface_blocks_lahey \
[INSTALL_DIR]/lib/libnag_mkl.a -Wl,--start-group \
[INSTALL_DIR]/mkl_intel64/libmkl_core.a \
[INSTALL_DIR]/mkl_intel64/libmkl_intel_lp64.a \
[INSTALL_DIR]/mkl_intel64/libmkl_intel_thread.a \
-Wl,--end-group \
[INSTALL_DIR]/rtl/libsvml.a \
[INSTALL_DIR]/rtl/libimf.a \
[INSTALL_DIR]/rtl/libifcoremt.a \
[INSTALL_DIR]/rtl/libirc.a \
[INSTALL_DIR]/rtl/libiomp5.a \
-lpthread -ldl
where driver.f is your application program;
lf95 driver.f -I[INSTALL_DIR]/nag_interface_blocks_lahey \
[INSTALL_DIR]/lib/libnag_mkl.so \
-L[INSTALL_DIR]/mkl_intel64 \
-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core \
-L[INSTALL_DIR]/rtl -lsvml -limf -lifcoremt -lirc -liomp5 -lpthread -ldl
if the shareable library is required.
However, if you prefer to link to a version of the NAG Library which does not require the use
of MKL you may wish to use the self-contained libraries as follows:
lf95 driver.f -I[INSTALL_DIR]/nag_interface_blocks_lahey \
[INSTALL_DIR]/lib/libnag_nag.a [INSTALL_DIR]/rtl/libsvml.a [INSTALL_DIR]/rtl/libimf.a \
[INSTALL_DIR]/rtl/libifcoremt.a [INSTALL_DIR]/rtl/libirc.a
or
lf95 driver.f -I[INSTALL_DIR]/nag_interface_blocks_lahey \
[INSTALL_DIR]/lib/libnag_nag.so \
-L[INSTALL_DIR]/rtl -lsvml -limf -lifcoremt -lirc
if the shareable library is required.
If your application has been linked with the shareable NAG and MKL libraries then the environment variable LD_LIBRARY_PATH must be set (or extended) to allow run time linkage.
In the C shell, type:
setenv LD_LIBRARY_PATH [INSTALL_DIR]/lib:[INSTALL_DIR]/mkl_intel64to set LD_LIBRARY_PATH, or
setenv LD_LIBRARY_PATH [INSTALL_DIR]/lib:[INSTALL_DIR]/mkl_intel64:${LD_LIBRARY_PATH}
to extend LD_LIBRARY_PATH if you already have it set.
In the Bourne shell, type:
LD_LIBRARY_PATH=[INSTALL_DIR]/lib:[INSTALL_DIR]/mkl_intel64:[INSTALL_DIR]/rtl export LD_LIBRARY_PATHto set LD_LIBRARY_PATH, or
LD_LIBRARY_PATH=[INSTALL_DIR]/lib:[INSTALL_DIR]/mkl_intel64:[INSTALL_DIR]/rtl:${LD_LIBRARY_PATH}
export LD_LIBRARY_PATH
to extend LD_LIBRARY_PATH if you already have it set.
compile_nag_modules_for_lahey nag_example_lahey nag_example_mkl_lahey nag_example_shar_lahey nag_example_shar_mkl_laheyThe first one may be used to compile the NAG Library module files once they have been copied to a new directory nag_interface_blocks_lahey as described earlier.
The nag_example scripts are equivalents of the usual scripts but modified to use the Lahey lf95 compiler in accordance with the instructions above.