NAG Library, Mark 30.3
NLW6I303EL - Licence Managed
Microsoft Windows x64, 64-bit, Intel Classic C/C++ or Microsoft C/C++ or Intel Classic Fortran, 32-bit integers, VS2019
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-bit systems and compatible (including AMD)
operating system:  Microsoft Windows
Fortran compiler:  Intel Classic Fortran Compiler
version 2021.4.0 and compatible C compiler: Intel Classic C Compiler
version 2021.4.0 and compatible Microsoft 64-bit C/C++ Compiler Version 19.00 and compatible vendor Library: Intel MKL version 2021.0.4 and compatible nAG dco/c++: version >= 3.6
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 CPU @ 3.20GHz
operating system:  Windows 10 Enterprise LTSC 2019
Fortran compiler:  Intel(R) Fortran Compiler 2021.4.0
C compiler:        Intel(R) C++ Compiler 2021.4.0
                   Microsoft Visual Studio 2019 tools
vendor Library:    Intel MKL version 2021.0.4
nAG dco/c++:       version 4.4.0
Fortran compiler options:  -O3 -QaxCORE-AVX2,AVX -Qfma- -fp:precise -Qfp-speculation:safe -auto
C compiler options:        -O3 -QaxCORE-AVX2,AVX -Qfma- -fp:precise -Qfp-speculation:safe
For details of any other systems on which this implementation has been tested, please see the Supplementary Information page on our website.

2.3 Supplementary Information

Please check the following URL:
https://support.nag.com/doc/inun/nl30/w6i3el/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 folder and file organization of the implementation materials after installation.
nlw6i303el ─┬─ doc ─────────┬─ in.html               (Installer's Note - this document)
            │               ├─ un.html               (Users' Note)
            |               ├─ styles ─ *            (CSS and JavaScript support files)
            │               ├─ nag_tsandcs.*         (nAG Software Licence Ts & Cs)
            │               └─ alt_c_interfaces.html (Advice on calling FL interface from C/C++)
            │
            ├─ batch ───────┬─ nag_example_*.bat  (batch files to compile and run
            │               │                      nAG example programs)
            │               └─ envvars.bat        (batch file to set environment
            │                                      variables for the nAG Library)
            │
            ├─ bin ──┬─ NLW6I303E_nag.dll           (DLL including nAG BLAS/LAPACK)
            │        ├─ NLW6I303E_30.x.x_nag.dll    (a renamed copy of the above DLL
            │        │                               including full version number)
            │        │
            │        ├─ NLW6I303E_mkl.dll           (DLL requiring MKL BLAS/LAPACK)
            │        ├─ NLW6I303E_30.x.x_mkl.dll    (a renamed copy of the above DLL
            │        │                               including full version number)
            │        │
            │        ├─ *.pdb   (debugging symbols for the above libraries)
            │        │
            │        └─ (plus other support files)
            │
            ├─ lib ──┬─ NLW6I303E_nag.lib           (DLL import library
            │        │                               including nAG BLAS/LAPACK)
            │        ├─ NLW6I303E_30.x.x_nag.lib    (a renamed copy of the above
            │        │                               library including full version number)
            │        │
            │        ├─ NLW6I303E_mkl.lib           (DLL import library
            │        │                               requiring MKL BLAS/LAPACK)
            │        ├─ NLW6I303E_30.x.x_mkl.lib    (a renamed copy of the above
            │        │                               library including full version number)
            │        │
            │        ├─ nag_nag_MT.lib              (static library including
            │        │                               nAG BLAS/LAPACK compiled with /MT)
            │        ├─ nag_mkl_MT.lib              (static library requiring
            │        │                               MKL BLAS/LAPACK compiled with /MT)
            │        │
            │        ├─ nag_nag_MD.lib              (static library including
            │        │                               nAG BLAS/LAPACK compiled with /MD)
            │        ├─ nag_mkl_MD.lib              (static library requiring
            │        │                               MKL BLAS/LAPACK compiled with /MD)
            │        │
            │        ├─ nag_nag_ad_MT.lib           (static companion AD library
            │        │                               compiled with /MT)
            │        ├─ nag_nag_ad_MD.lib           (static companion AD library
            │        │                               compiled with /MD)
            │        ├─ nag_mkl_ad_MT.lib           (static companion AD library
            │        │                               compiled with /MT)
            │        ├─ nag_mkl_ad_MD.lib           (static companion AD library
            │        │                               compiled with /MD)
            │        ├─ libnag_dcof_MT.lib (dcof interface layer, compiled with /MT)
            │        ├─ libnag_dcof_MD.lib (dcof interface layer, compiled with /MD)
            │
            ├─ include ─┬─ *.h   (C and C++ include files for nAG Library
            │           └─ *.hpp  routines)
            │
            ├─ nag_interface_blocks ─ *        (interface blocks for Intel Fortran compiler
            │                                   nAG Library routines)
            │
            ├─ nag_interface_blocks_nagfor ─ * (interface blocks for nAG Fortran compiler
            │                                   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
            │
            ├─ diagnostics ─┬─ NAG_Library_DLL_info.exe           (diagnostic program)
            │               │
            │               └─ NAG_Library_DLL_info_NLW6I303EL.c  (source of the above)
            │
            ├─ c_headers ───┬─ c_examples ─── *.c   (Example programs (subset)
            │               │                        for alternative C interface
            │               ├─ cpp_examples ─ *.cpp  to FL interface routines)
            │               │
            │               └─ data ───────── *.d
            │
            ├─ 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)
Only for Fortran users: libnag_dcof_MT.lib and libnag_dcof_MD.lib each contain 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 from Fortran. When using the NAG AD Library from C++ with dco/c++, this additional library is not required.
The following shows the organization of the Library Manual materials.
nagdoc_30.3 ─┬─ 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 Installation

4.1.1 Library Installation

Assuming you have downloaded the Library materials from our website, run the self-extracting executable (nlw6i303el_setup.exe) to start the Library installation.
By default, the Library materials are installed in
  C:\Program Files\NAG\NL30\nlw6i303el
or the equivalent for your locale.
The installation procedure will also create several shortcuts, which are described in this document or in the Users' Note. The default location of these shortcuts is under nAG Library (NLW6I303EL) in the Start Menu or via All apps from the Start screen (depending on your version of Windows).
The environment variable NAG_NLW6I303EL is needed by the batch files nag_example_*.bat (see Section 3.3 of the Users' Note). This is set in the registry as part of the installation procedure. Optionally, the PATH, LIB and INCLUDE environment variables may also be updated during installation.
This software is provided with an uninstallation facility via the Windows Control Panel.
The Library Manual may be viewed from the NAG website (https://support.nag.com/numeric/nl/nagdoc_30.3/) or for offline use from the zip (https://support.nag.com/numeric/nl/nagdoc_30.3/nagdoc_30.3.zip).

4.1.2 Silent Installation

This product may be installed in silent (unattended) mode by running
  nlw6i303el_setup.exe /silent
or
  nlw6i303el_setup.exe /verysilent
from a Command Prompt. With the first version, the user sees a progress bar on the screen as the installation occurs, whereas with the second, nothing is displayed. The files will be installed to the default location and the PATH, LIB and INCLUDE environment variables will be modified. The default installation location may be overridden by using the /dir switch, e.g. /dir="C:\my folder". To prevent the environment variables being updated, the /type=noenv option may be used.

4.1.3 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.
The easiest way to request a licence key is to use the Kusari Installer GUI described in the next section. Once you have a key, the same GUI can be used to install it.
The information below covers the most common requirements. For more complex licensing situations, please see the Kusari documentation (the files k-using-win.pdf and k-install-win.pdf in the nlw6i303el\license\doc folder). See also the Kusari Frequently Asked Questions.

4.1.3.1 The Kusari Installer licence key request and key installation program

The recommended way to request a licence key is to use the Kusari Installer GUI program provided. This will help you to build a standard message requesting either a trial key or a full key which can be pasted into an email to the NAG Technical Support Service. This message will include the Kusari hostid.
To request a licence key, run the Kusari Installer program, which may be accessed at the end of the installation procedure or via the Start Menu or All apps shortcut nAG NLW6I303EL Licence, Request or Install. Click on the Request New Licence button to bring up the New Licence Request form. Fill in your details and click on Generate Licence Request, then paste the generated information into your email client and send it to the NAG address given at the top of the generated information.
The NAG support team will send you the Kusari licence key by email.
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 Kusari Installer program may be used to install the key in the Windows Registry. Paste the key into the edit box on the main Kusari Installer dialog and then click on the Install Licence Key button to install it.

4.1.3.2 Command line licence key request

If for any reason it is impractical to use the GUI, the command line program khostid may be run instead. The output of this command should be sent to the NAG Technical Support Service with your details, your organisation details and your NAG customer reference number (if known).
The khostid command may be found in the nlw6i303el\bin folder.

4.1.3.3 Command line installation of the licence key in the registry

If not using the GUI, the klreg program may be executed from a Command Prompt to install a key in the registry. This program may be found in the nlw6i303el\bin folder. First put the licence key in a file, say licence.dat. If you have administrator privileges you can install the key for all users,
  klreg NLW6I30XE licence.dat
Otherwise the key can be installed for the current user,
  klreg /current_user NLW6I30XE licence.dat

4.1.3.4 Installing the licence key in a file

You are recommended to install the licence key in the registry as described above. If this is not suitable an alternative method is to put the licence key into a file accessible from the machine for which the software is licensed and set the environment variable NAG_KUSARI_FILE to the full pathname of the licence file.
The environment variable may be set from the Control Panel.

4.1.3.5 USB key licences

Simply insert the USB key in any spare USB socket on the machine on which you wish to run this product.

4.1.3.6 Testing the licence

The a00acc or a00acf example program may be used to check the licence is properly installed or the diagnostic program NAG_Library_DLL_info.exe can be used to check both accessibility and licensing (see Section 4.2.2).

4.1.3.7 Troubleshooting licence problems

The klcheck program can be used to check whether a valid licence file is available. From a Command Prompt window with the environment from which you will be calling the NAG Library, run
  "C:\Program Files\NAG\NL30\nlw6i303el\license\bin\w64\klcheck" NLW6I30XE
(assuming the NAG Library has been installed in the default location). This will check for a licence in various special locations, as well as in the registry and in any files or from any licence servers specified in the NAG_KUSARI_FILE environment variable, and print some diagnostic information. If a valid licence is found, it will say where it has found the licence. If a valid licence is not found, an error message will be printed.

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 batch files nag_example_*.bat (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.

4.2.2 Accessibility Check

The diagnostic program NAG_Library_DLL_info.exe, which by default is located in C:\Program Files\NAG\NL30\nlw6i303el\diagnostics, may be used to check whether the DLLs NLW6I303E_nag.dll and NLW6I303E_mkl.dll are accessible from the current environment. If this program is started from Windows Explorer or from the Check nAG NLW6I303EL DLL Accessibility shortcut via the Start Menu or All apps, the DLLs will be found if the global PATH environment variable has been set to include their location. If it is run from a Command Prompt window, then the environment local to that window will prevail. (See Section 3.1.1 of the Users' Note for more information on environment variables.)
For each of the DLLs that it loads successfully, NAG_Library_DLL_info.exe will print the location of the DLL, and the implementation details as provided by calls to the routines a00aac and a00aaf. It also calls a00acc to check the availability of a valid licence key and reports if this is not found; "Status OK" indicates that a valid key was either found or not required.
Note: the diagnostic program executable may not be compatible with all versions of Microsoft Windows (in particular, Microsoft Windows XP), and you may get a "not a valid application" error when you try to run it. In that case, you may simply recompile the diagnostic program yourself from the source code provided in the same directory as the executable, using either a Microsoft or an Intel C compiler.

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.