NAG Library, Mark 27.2
NLL6I272NL - Licence Managed
Linux, 64-bit, C++98, Intel C/C++ or Intel Fortran
Installer's Note

1 Introduction

This document provides implementation-specific information relating to the installation of the NAG Library specified in the title.
By installing this software you agree to NAG's Terms and Conditions. Please note that these Terms and Conditions are subject to change without notice. The NAG Software Licence Terms and Conditions and details of revisions are available from NAG Terms and Conditions.

2 Implementation Provided

2.1 Applicability

This implementation is a compiled, tested, ready-to-use version of the NAG Library that is considered suitable for operation on the computer systems detailed below:
hardware:          Intel 64 systems and compatible (including AMD64)
operating system:  Linux 3.10.0-1127.19.1.el7.x86_64
(GNU C Library (libc) 2.17) and compatible Fortran compiler: Intel Fortran Compiler
version 19.1.3.304 and compatible C compiler: Intel C Compiler
version 19.1.3.304 and compatible vendor Library: Intel MKL version 2020.0.4 and compatible NAG dco/c++: version 3.4.4
The NAG AD Library is included in this implementation.
The definitions and sizes of the C Integer and Pointer types used in this implementation are shown in Section 3.5 of the Users' Note.

2.2 Derivation and Additional Test Platforms

This implementation was produced at NAG Ltd., Oxford, on the computing system detailed below:
hardware:          Intel(R) Core(TM) i7-8700 
operating system:  Linux 3.10.0-1127.19.1.el7.x86_64
(CentOS Linux 7 (Core))
with GNU C Library (libc) 2.17 and
GNU C++ Library (libstdc++) 3.4.19 Fortran compiler: Intel Fortran Compiler
version 19.1.3.304 20200925_000000 C compiler: Intel C Compiler
version 19.1.3.304 20200925_000000 vendor Library: Intel MKL version 2020.0.4 NAG dco/c++: version 3.4.4 Fortran compiler options: -O3 -axCORE-AVX2,AVX -no-fma -fp-model precise -fp-speculation=safe -auto -fPIC -threads -fexceptions (with -i8 for 64-bit integers) C compiler options: -O3 -axCORE-AVX2,AVX -no-fma -fp-model precise -fp-speculation=safe -fPIC -m64 -fexceptions
This implementation includes libraries (and associated files) for use with both 32-bit integers (denoted by lp64) and 64-bit integers (denoted by ilp64).
The flags listed above were chosen to be conservative in terms of performance optimization to prioritize consistency of numerical results. However key computational kernels in the NAG Library have been compiled and tested with higher levels of optimization.
For details of any other systems on which this implementation has been tested, please see the Supplementary Information page on our website.
Please see the Intel website for further information about MKL (https://software.intel.com/content/www/us/en/develop/tools/math-kernel-library.html).

2.3 Supplementary Information

Please check the following URL:
https://www.nag.com/doc/inun/nl27/l6i2nl/supplementary.html
for details of any new information related to the applicability or usage of this implementation. Details of any other systems on which it has been tested may also be found on this page.

3 Distribution

The software is available to download from any of the NAG websites (see Section 6 for contact details).

3.1 Contents

The following shows the directory and file organization of the implementation materials after installation.
nll6i272nl ─┬─ doc ─────────┬─ in.html               (Installer's Note - this document)
            │               ├─ un.html               (Users' Note)
            |               ├─ styles ─ *            (CSS and JavaScript support files)
            │               ├─ nag_tsandcs.txt       (NAG Software Licence Ts & Cs)
            │               └─ alt_c_interfaces.html (Advice on calling FL interface from C/C++)
            │
            ├─ lp64 ────────┐              (Files for 32-bit integer libraries)
            │               │
            │               ├─ lib ─────┬─ libnag_nag.a          (static self-contained library
            │               │           │                         including NAG BLAS/LAPACK)
            │               │           ├─ libnag_nag.so.27.2    (shareable self-contained library
            │               │           │                         including NAG BLAS/LAPACK)
            │               │           ├─ libnag_nag.so         (symbolic link pointing at
            │               │           │                         libnag_nag.so.27.2)
            │               │           ├─ libnag_mkl.a          (static library requiring
            │               │           │                         MKL BLAS/LAPACK)
            │               │           ├─ libnag_mkl.so.27.2    (shareable library requiring
            │               │           │                         MKL BLAS/LAPACK)
            │               │           ├─ libnag_mkl.so         (symbolic link pointing at
            │               │           │                         libnag_mkl.so.27.2)
            │               │           ├─ libnag_nag_ad.a       (static companion AD library)
            │               │           ├─ libnag_nag_ad.so.27.2 (shareable companion AD library)
            │               │           ├─ libnag_nag_ad.so      (symbolic link pointing at
            │               │           │                         libnag_nag_ad.so.27.2)
            │               │           ├─ libnag_mkl_ad.a       (static companion AD library)
            │               │           ├─ libnag_mkl_ad.so.27.2 (shareable companion AD library)
            │               │           ├─ libnag_mkl_ad.so      (symbolic link pointing at
            │               │           │                         libnag_mkl_ad.so.27.2)
            │               │           ├─ blob ── libnag_dcof.a (dcof interface layer,
            │               │           │                         static library only,
            │               │           │                         'blob' tape memory model)
            │               │           └─ chunk ─ libnag_dcof.a (dcof interface layer,
            │               │                                     static library only,
            │               │                                     'chunk' tape memory model)
            │               │
            │               ├─ include ─┬─ *.h   (C and C++ include files for NAG Library
            │               │           └─ *.hpp  routines)
            │               │
            │               └─ nag_interface_blocks ─ * (Fortran interface blocks for
            │                                            NAG Library routines)
            │
            ├─ ilp64 ───────┐              (Files for 64-bit integer libraries)
            │               │
            │               ├─ lib ─────┬─ libnag_nag.a          (static self-contained library
            │               │           │                         including NAG BLAS/LAPACK)
            │               │           ├─ libnag_nag.so.27.2    (shareable self-contained library
            │               │           │                         including NAG BLAS/LAPACK)
            │               │           ├─ libnag_nag.so         (symbolic link pointing at
            │               │           │                         libnag_nag.so.27.2)
            │               │           ├─ libnag_mkl.a          (static library requiring
            │               │           │                         MKL BLAS/LAPACK)
            │               │           ├─ libnag_mkl.so.27.2    (shareable library requiring
            │               │           │                         MKL BLAS/LAPACK)
            │               │           ├─ libnag_mkl.so         (symbolic link pointing at
            │               │           │                         libnag_mkl.so.27.2)
            │               │           ├─ libnag_nag_ad.a       (static companion AD library)
            │               │           ├─ libnag_nag_ad.so.27.2 (shareable companion AD library)
            │               │           ├─ libnag_nag_ad.so      (symbolic link pointing at
            │               │           │                         libnag_nag_ad.so.27.2)
            │               │           ├─ libnag_mkl_ad.a       (static companion AD library)
            │               │           ├─ libnag_mkl_ad.so.27.2 (shareable companion AD library)
            │               │           ├─ libnag_mkl_ad.so      (symbolic link pointing at
            │               │           │                         libnag_mkl_ad.so.27.2)
            │               │           ├─ blob ── libnag_dcof.a (dcof interface layer,
            │               │           │                         static library only,
            │               │           │                         'blob' tape memory model)
            │               │           └─ chunk ─ libnag_dcof.a (dcof interface layer,
            │               │                                     static library only,
            │               │                                     'chunk' tape memory model)
            │               │
            │               ├─ include ─┬─ *.h   (C and C++ include files for NAG Library
            │               │           └─ *.hpp  routines)
            │               │
            │               └─ nag_interface_blocks ─ * (Fortran interface blocks for
            │                                            NAG Library routines)
            │
            ├─ c_examples ──┬─ source ──── *.c     (Example programs for CL interface routines)
            │               │
            │               ├─ data ────┬─ *.d
            │               │           └─ *.opt
            │               │
            │               └─ results ─── *.r
            │
            ├─ f_examples ──┬─ source ──── *.f90   (Example programs for FL interface routines)
            │               │
            │               ├─ data ────┬─ *.d
            │               │           └─ *.opt
            │               │
            │               └─ results ─── *.r
            │
            ├─ ad_examples ─┬─ source ──┬─ *.cpp   (Example programs for AD routines)  
            │               │           └─ *.f90
            │               │
            │               ├─ data ────┬─ *.d
            │               │           └─ *.opt
            │               │
            │               └─ results ─── *.r
            │
            ├─ c_headers ───┬─ c_examples ─── *.c   (Example programs (subset)
            │               │                        for alternative C interface
            │               ├─ cpp_examples ─ *.cpp  to FL interface routines)
            │               │
            │               └─ data ───────── *.d
            │
            ├─ scripts ─────┬─ nag_example          (script to compile and run
            │               │                        NAG example programs)
            │               │
            │               ├─ nagvars.{sh,csh}     (scripts to set environment variables
            │               │                        to location of NAG libraries, etc.)
            │               │
            │               └─ nag_recompile_mods   (script to recompile
            │                                        Fortran interface blocks)
            │
            ├─ mkl ─────────── * (Intel Math Kernel Library)
            │
            ├─ rtl ─────────── * (Intel compiler run-time libraries)
            │
            └─ license ─────┬─ bin ─ *  (directories of licence management
                            │            binaries for supported platforms)
                            ├─ README.txt
                            │
                            └─ doc ─ *  (licence management documentation)
libnag_dcof.a contains a dcof interface layer through which calls are made to contained components of NAG dco/c++, a separate AD software product for computing sensitivities of C++ codes. This has been provided as a separate library to accommodate using the NAG AD Library with different versions of dco/c++. Different versions of the dcof library can be provided for such cases. Please contact NAG if you require this (see Section 6 for contact details).
The following shows the directory and file organization of the Library Manual materials after installation.
nagdoc_27.2 ─┬─ index.html
             │
             ├─ nlhtml   (Generic Documentation of the NAG Library)
             ├─ flhtml   (Documentation of FL Interfaces)
             ├─ clhtml   (Documentation of CL Interfaces)
             ├─ adhtml   (Documentation of AD Library)
             │
             ├─ figures  (Figures)
             │
             ├─ styles   (CSS and JavaScript used by the documentation)
             │
             └─ examples ─┬─ baseresults  (HTML display of example results)
                          ├─ source       (HTML display of example sources)
                          └─ data         (HTML display of example data files)
Details of the software are given in the Users' Note (un.html).

4 Installation

4.1 Library Software and Manual Installation

Assuming you have downloaded the Library materials from our website as a tar gzip file (nll6i272nl.tgz), cd to the directory where the file is located and extract the installation materials using the following command:
  tar xvzf nll6i272nl.tgz
This will extract the files install.sh, nl27.tgz, nag_tsandcs.txt, in.html and un.html and the directory styles.
If you have downloaded the Library Manual as a tar gzip file (mk27-2_doc.tgz), move the file into the same location as the Library materials. You can then install the materials from the download directory by executing the shell script install.sh in a command window as:
  ./install.sh
By default, the materials will be installed under $HOME/NAG/, or if the directory $HOME does not exist, under /opt/NAG/. However, you may choose a different location. In this document we refer to the directory $HOME/NAG/nll6i272nl or /opt/NAG/nll6i272nl as [INSTALL_DIR]. This convention is also used in the Users' Note.
The install script can install the Library Manual in the same location as the NAG Library material or at some other location of your choice. Alternatively, the Library Manual may be viewed from the NAG website (https://www.nag.com/numeric/nl/nagdoc_27.2/).

4.1.1 Silent Installation

It is also possible to run install.sh in unattended or silent modes. The installer takes command line switches for this purpose:

4.1.2 Licence Management

The use of this product is controlled by the Kusari licence management system. This release of the Library uses version 2.2-88 of Kusari.
In order to enable the software, NAG will issue you with a licence key as follows. The licence key is contained in a text file consisting of details of the software that will be enabled. For evaluation purposes a trial licence may be used. Before obtaining a full licence you need to know the Kusari hostid of the system on which you intend to use this product. How to do this is described below.
To request a licence key, run the program khostid located in the license/bin/linux_x64 subdirectory of the software distribution. This utility must be run from a command prompt. Return the information that it displays, together with the product code (in this case NLL6I272NL), by email to NAG. Alternatively, direct the output from this utility to a file and send both the file and the product code to NAG.
A short term (demonstration or trial) licence key contains one or more lines like the following:
<PRODUCT_CODE> TRIAL <EXPIRY_DATE> "EMnxidA3oeoj0F1Yvi5ibxPjB7"
Specifically, it has a line containing the word TRIAL. Longer term licence keys must be locked to a specific computer, i.e. they will enable the software on one computer only. These licence keys typically include the word NODE or FULL instead of the word TRIAL above and may contain extra fields.
Once you have obtained one of the above licence keys, the easiest way to install it is to store the text in a file,
  $HOME/nag.key
or
  /opt/NAG/nag.key
or
  /usr/local/NAG/nag.key
The licence software in this implementation automatically looks for these particular files and reads the first one found, so no further action is necessary. Alternatively, store the licence in a file with a name and location of your choice, say,
  [INSTALL_DIR]/licence.lic
The location of the licence file, if it is not one of the default places listed above, must be made known to the NAG application by setting the environment variable NAG_KUSARI_FILE to the full pathname of the file before the application is invoked.
For example, in the C shell, type:
  setenv NAG_KUSARI_FILE [INSTALL_DIR]/licence.lic
or in the Bourne shell, type:
  NAG_KUSARI_FILE=[INSTALL_DIR]/licence.lic
  export NAG_KUSARI_FILE
Further details about Kusari and how it may be configured to suit your local circumstances (e.g. how to install the licence key on a server) are included in the Kusari Licence Management documentation in the license/doc/ subdirectory of the software distribution. See also the Kusari Frequently Asked Questions.

4.2 Further Information

4.2.1 Checking the Installation

Access to the Library materials can be checked by running a few example programs following the advice given in Section 3.1 of the Users' Note; a suitable sample would be d01rkf, e04uca, f07adf, d01rjc, f07adc and g05sjc. The installation can also be tested using the script nag_example (see Section 3.3 of the Users' Note). You may also wish to check the AD routines; a suitable example would be s01ba_a1w_hcpp.

5 Support from NAG

Please see
NAG Technical Support Service
for information about the NAG Technical Support Service, including details of the NAG Technical Support Service contact points. We would also be delighted to receive your feedback on NAG's products and services.

6 Contact Addresses

Please see
Worldwide Contact Information
for worldwide contact details for the Numerical Algorithms Group.