NAG Fortran Library, Mark 23

FLMI623DCL - License Managed

Intel-based Mac, Mac OS X 64, Intel Fortran, Double Precision (ILP64)

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 GNU 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 GNU compiler, gfortran. The information below has been tested using gfortran version 4.6.0 on a Mac running Mac OS X 10.7.0 (Snow Leopard), and all NAG example programs were found to run correctly. It may or may not work for other versions of the operating system or compiler.

    Differences to take into account when using gfortran

    There are several things to bear in mind:

    Modified modules and example programs

    A set of NAG Library modules which have been modified to account for the considerations above is available as a compressed tar file. The file also contains an entire set of NAG Library example programs modified where necessary to match the declarations in the module files, with appropriate handling of LOGICAL, COMPLEX and CHARACTER arguments. It is suggested that you use these example programs as templates for your own calls to the NAG Library.

    The tar file contains the following directory structure:

      postrelease -|- nag_interface_blocks_gfortran (.f90 module files)
                   |
                   |- examples -|- source_gfortran  (modified example programs)
    
    Note that the data files used by the example programs do not need to change - the ones distributed with the library are fine for use with gfortran.

    Compiling the NAG Library modules for use with gfortran

    To compile the interface blocks, go into directory nag_interface_blocks_gfortran and use commands like these (N.B. compilation order is important):
      gfortran -fdefault-integer-8 -c nag_precisions.f90
      gfortran -fdefault-integer-8 -c nag_blas_consts.f90
      gfortran -fdefault-integer-8 -c nag_a_ib.f90
      gfortran -fdefault-integer-8 -c nag_c_ib.f90
      gfortran -fdefault-integer-8 -c nag_d_ib.f90
      gfortran -fdefault-integer-8 -c nag_e_ib.f90
      gfortran -fdefault-integer-8 -c nag_f_ib.f90
      gfortran -fdefault-integer-8 -c nag_g_ib.f90
      gfortran -fdefault-integer-8 -c nag_h_ib.f90
      gfortran -fdefault-integer-8 -c nag_m_ib.f90
      gfortran -fdefault-integer-8 -c nag_p_ib.f90
      gfortran -fdefault-integer-8 -c nag_s_ib.f90
      gfortran -fdefault-integer-8 -c nag_x_ib.f90
      gfortran -fdefault-integer-8 -c nag_long_names.f90
      gfortran -fdefault-integer-8 -c nag_library.f90
    

    Accessing the NAG Library from gfortran

    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_gfortran.

    To use the NAG Fortran Library and the supplied MKL libraries, you may link in the following manner:

       gfortran -fdefault-integer-8 driver.f \
           -I[INSTALL_DIR]/nag_interface_blocks_gfortran \
           [INSTALL_DIR]/lib/libnag_mkl.a \
           [INSTALL_DIR]/mkl_intel64/libmkl_intel_ilp64.a \
           -L[INSTALL_DIR]/mkl_intel64 -lmkl_intel_thread -lmkl_core \
           [INSTALL_DIR]/rtl/libsvml.a [INSTALL_DIR]/rtl/libimf.a \
           [INSTALL_DIR]/rtl/libifcoremt.a [INSTALL_DIR]/rtl/libirc.a \
           -lpthread -framework IOKit -framework CoreFoundation
    
    where driver.f is your application program;
    or
       gfortran -fdefault-integer-8 driver.f \
           -I[INSTALL_DIR]/nag_interface_blocks_gfortran \
           [INSTALL_DIR]/lib/libnag_mkl.dylib -L[INSTALL_DIR]/mkl_intel64 \
           -lmkl_intel_ilp64 -lmkl_intel_thread -lmkl_core \
           -L[INSTALL_DIR]/rtl -liomp5 -lsvml -limf -lifcoremt -lirc \
           -lpthread -framework IOKit -framework CoreFoundation
    
    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:

       gfortran -fdefault-integer-8 driver.f \
           -I[INSTALL_DIR]/nag_interface_blocks_gfortran \
           [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 \
           -framework IOKit -framework CoreFoundation
    
    or
       gfortran -fdefault-integer-8 driver.f \
           -I[INSTALL_DIR]/nag_interface_blocks_gfortran \
           [INSTALL_DIR]/lib/libnag_nag.dylib \
           -L[INSTALL_DIR]/rtl -lsvml -limf -lifcoremt -lirc \
           -framework IOKit -framework CoreFoundation
    
    if the shareable library is required.

    If your application has been linked with the shareable NAG and MKL libraries then the environment variable DYLD_LIBRARY_PATH must be set (or extended) to allow run time linkage.

    In the C shell, type:

       setenv DYLD_LIBRARY_PATH \
           [INSTALL_DIR]/lib:[INSTALL_DIR]/mkl_intel64:[INSTALL_DIR]/rtl
    
    to set DYLD_LIBRARY_PATH, or
       setenv DYLD_LIBRARY_PATH \
           [INSTALL_DIR]/lib:[INSTALL_DIR]/mkl_intel64:[INSTALL_DIR]/rtl:\
           ${DYLD_LIBRARY_PATH}
    
    to extend DYLD_LIBRARY_PATH if you already have it set.

    In the Bourne shell, type:

       DYLD_LIBRARY_PATH=[INSTALL_DIR]/lib:[INSTALL_DIR]/mkl_intel64:\
           [INSTALL_DIR]/rtl
       export DYLD_LIBRARY_PATH
    
    to set DYLD_LIBRARY_PATH, or
       DYLD_LIBRARY_PATH=[INSTALL_DIR]/lib:[INSTALL_DIR]/mkl_intel64:\
           [INSTALL_DIR]/rtl:${DYLD_LIBRARY_PATH}
       export DYLD_LIBRARY_PATH
    
    to extend DYLD_LIBRARY_PATH if you already have it set.