NAG Fortran Library, Mark 23

FLL6I23DCL - License Managed

Linux 64 (Intel 64 / AMD64), Intel Fortran, Double Precision

Post Release Information

This implementation is applicable to computer systems described in section 2.1 of the Installer's Note (see Installer's Note, Applicability).

Any additional information related to this implementation, that came to light after the release of this product, will be described below.

  1. Additional Systems / Compilers Tested

    This implementation has been successfully tested using the following:
  2. Using the NAG Library with the Lahey Fortran compiler

    The NAG libraries supplied with this implementation were built using the Intel Fortran compiler, but with care it is possible to call them from the Lahey Fortran compiler, lf95. The information below has been tested using Lahey lf95 version L8.10b, and all NAG example programs were found to run correctly. It may or may not work for other versions of the compiler.

    Differences to take into account when using the Lahey compiler lf95

    Compiling the NAG Library modules for use with Lahey lf95

    To compile the interface blocks, copy the .f90 module files from directory nag_interface_blocks in your NAG Library installation directory (default /opt/NAG/fll6i23dcl) to another directory, named nag_interface_blocks_lahey. Then in the new directory use commands like these to compile the modules (N.B. compilation order is important):
      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
    

    Accessing the NAG Library from Lahey lf95

    In this section we use the same notation [INSTALL_DIR] to describe the installed location of the NAG Library material as used in the Users' Note. We further assume that the modules compiled for gfortran as described above are in directory [INSTALL_DIR]/nag_interface_blocks_lahey.

    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;
    or
      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_intel64
    
    to 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_PATH
    
    to 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.

    Modified example program scripts

    A set of nag_example scripts which have been modified to account for the considerations above is available as a compressed tar file. The file contains the following scripts:
      compile_nag_modules_for_lahey
      nag_example_lahey
      nag_example_mkl_lahey
      nag_example_shar_lahey
      nag_example_shar_mkl_lahey
    
    The 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.