NAG C Library, Mark 8

CLDLL084ZL, License Managed

Windows XP/Vista DLL, Microsoft C/C++

Installer's Note


1. Introduction

This Installer's Note is essential reading for whoever is responsible for the installation of this implementation of the NAG C Library. It is available together with the Users' Note (un.html) on the distribution medium.

Your attention is drawn to the terms and conditions of the Software License regarding the use of NAG software. Any request to use this software other than on the licensed computer must be referred to NAG, as should requests for information about the availability of other implementations.

2. Implementation Provided

2.1. Applicability

This implementation is a compiled, tested, ready-to-use version of the NAG C Library that is considered suitable for operation on the computer systems detailed below:

hardware:          32 bit Intel x86 systems and compatible
operating system:  Windows XP/2003/Vista
C compiler:        Microsoft Visual C++ .NET 2005 (Release 8.0)

There are some restrictions on I/O when these DLLs are used with a C compiler other than Microsoft Visual C++ .NET Release 8.0; please see below.

This DLL implementation is suitable for use from many environments including Visual Basic and Excel. Please see for the latest information.

2.2. Derivation

This implementation was produced at NAG Ltd., Oxford on the computing system detailed below:

hardware:          Dell Pentium 4 workstation
operating system:  Windows XP sp2
C compiler:        Microsoft Visual C/C++ Version 6.0

The DLL files in this implementation were created using the Microsoft Visual C++ .NET Release 8.0 linker and C run time libraries on a Windows XP system. Hence these DLLs are linked with MSVCR80.DLL. The manifest file is compiled into the DLLs creating a dependency on version '8.0.50608.0' of the C run time library. The redistributable versions of these Microsoft Visual C++ .NET Release 8.0 run time libraries are included in this product in the bin folder.

The libraries in this distribution have been tested on Windows XP with

Please note that with this DLL version of the library, if you are not using Release 8.0 (Version 14.00.50727.42) of the Microsoft Visual C++ compiler, mixing output from your C code with output from NAG C Library functions, e.g. x04 chapter functions, may result in output files where results appear in the wrong order. This is apparent when running the NAG Example Programs, e.g. c06pfce.c, where titles written by the C example code appear after the matrices printed by the NAG C Library. This is caused by having two different C run time libraries linked to the executable, using buffered output which is flushed independently by each run time library. Similarly, code that relies on reading the same input file from C code and also via a NAG C Library function will not work as the current file pointer will not be shared by the two run time libraries. This may be seen in the failure of the NAG C Library Example Program e04nrce.c, which reads data for the C example and options for the NAG C Library function from the same file.

A more detailed description of this problem may be found on the NAG web site at

These problems are not found in the static implementation of the NAG C Library (CLW3208DAL).

The entire NAG C Library, Mark 8, was compiled with compiler optimization /O2 except one internal routine that was compiled with /Od.

This library has been tested using the Basic Linear Algebra Subprograms (BLAS) and linear algebra routines (LAPACK) provided by NAG (see the Chapter Introductions for f06, f07, f08 and f16 in the NAG C Library Manual).

The library has also been tested with MKL Version 8.0. The MKL Version 8.0 libraries are supplied as a part of this product (see contents).

The LAPACK functions DBDSQR, DORMQR, ZBDSQR, ZHPEVD and ZUNMQR in MKL are not used; instead the NAG functions of the same name are called.

3. Distribution Medium

The software is ordinarily distributed on CD-ROM; it can also be downloaded from any of the NAG Web sites (see NAG Websites).

3.1. Contents

The following summarises the folder/file organization of the implementation materials as they will be installed. By default, the NAG C Library materials will be installed under C:\Program Files\NAG\CL08\.
                    |- in.html  (Installer's Note (this document))
                    |- un.html  (Users' Note)
            |- doc -|- cldll08_use.html  (Information on using the DLLs
            |       |                     from different environments)
            |       |
            |       |- lic_agr.txt  (License agreement)
            |         |- nagc_example*.bat  (Batch files to compile and
            |         |                      run NAG example programs)
            |- batch -|
            |         |- envvars.bat  (Batch file to set environment
            |                          variables for the NAG C Library)
            |       |- CLDLL084Z_nag.dll  (DLL including
            |       |                      NAG BLAS/LAPACK)
            |       |
            |       |- CLDLL084Z_mkl.dll  (DLL requiring
            |       |                      MKL BLAS/LAPACK)
            |- bin -|
            |       |- *.dll  (Other runtime DLLs)
            |       |
            |       |- *.manifest  (Manifest files created by VC++ 8.0)
            |       |
cldll084zl -|       |- *  (Other support files)
            |            |- source --|- ??????e.c  (Example files for
            |- examples -|- data ----|- ??????e.d   each C Library
            |            |- results -|- ??????e.r   function)
            |- include -|- *.h  (Header files)
            |       |- CLDLL084Z_nag.lib  (DLL import library
            |       |                      including NAG BLAS/LAPACK)
            |       |
            |- lib -|- CLDLL084Z_mkl.lib  (DLL import library
            |       |                      requiring MKL BLAS/LAPACK)
            |       |
            |       |- CLDLL084Z_???_bc.lib  (DLL import libraries for
            |                                 use with Borland C++)
            |- MKL_ia32_8.0 -|- *  (Intel Math Kernel Library)
            |- diagnostics -|- NAG_C_DLL_info.exe  (Program to check
            |                                       DLL accessibility)
            |- projects -|- *  (VB skeletons and examples of calling
            |                   the DLLs from VB6, VB.NET, Excel, VC++,
            |                   Borland C++ Builder, Delphi, C# and
            |                   Java)
            |           |- bin -|- *  (Folders of binaries for
            |           |              supported platforms)
            |           |
            |- license -|- README.txt  (Contents list for bin folder)
                        |- doc -|- *  (End User Guide)

CLDLL084Z_nag.lib is a DLL import library that includes NAG BLAS/LAPACK. CLDLL084Z_mkl.lib is a DLL import library that does not include BLAS/LAPACK. Both libraries have been compiled with the /MD option to link with the multi-threaded DLL C run time library. This option must be used when compiling applications to be linked with either of these libraries to ensure linking to the correct C run time libraries. CLDLL084Z_nag_bc.lib and CLDLL084Z_mkl_bc.lib are the corresponding import libraries for use with the Borland C++ compiler.

The following shows the folder/file organization of the Library Manual materials as they will be installed. By default, manual is installed beneath the folder C:\Program Files\NAG\CL08\.

manual -|- examples -|- replaced    -|- *.c
        |            |- baseresults -|- *.r
        |            |- source      -|- *.c
        |            |- data        -|- *.d
        |- html -|- mark8.html                (main HTML index)
        |        |
        |        |- [A00-X04] -|- *conts.html (chapter contents)
        |        |
        |        |- genint  -|- cl_*.html (general introductory material
        |        |                         and online help document)
        |        |
        |        |- indexes -|- gams -|- cl_gams.html (GAMS index)
        |        |           |        |- cl*.html     (GAMS files)
        |        |           |
        |        |           |- kwic -|- cl_kwic.html (KWIC index)
        |        |                    |- cl*.html     (KWIC files)
        |        |
        |        |- styles  -|- libdoc.css   (main CSS stylesheet)
        |- pdf -|- frontmatter -|- mark8.pdf  (NAG copyright and main
                |                              pdf page)
                |- [A00-X04] -|- *conts.pdf (chapter contents)
                |             |- *intro.pdf (chapter introduction)
                |             |- *c.pdf     (routine documents)
                |- genint  -|- *.pdf   (general introductory material
                |                       and online help document)
                |- indexes -|- *.pdf   (bookmarked file containing links
                |                       to cl_kwic.html and cl_gams.html)
                |- INUNs   -|- *.pdf   (implementation specific note)

3.2. File Sizes

The files require approximately the following disk space:
libraries:                               20.8 MB
MKL:                                     71.3 MB
batch files:                               16 KB
include files:                            0.8 MB
example program material:                10.5 MB
projects:                                14.0 MB
Library Manual:                         141.2 MB
implementation specific documentation:     76 KB
diagnostic material                        40 KB
licensing materials                       5.5 MB

4. Installation

4.1. Installation of Library Software and Manual

4.1.1. Library Installation

You must have Administrator privileges to install this software.

If you have the Library materials on CD, insert the CD into your CD drive to display the NAG CD browser. Click on the Install ... button and follow the instructions to install the Library and/or the manual. If the CD does not autorun, run

to run the browser, or run e:\setup.exe to run the Library installation directly, where e is the drive letter for your CD drive.

If you have downloaded the Library materials from our website, run the self-extracting executable to start the Library installation. The Library Manual materials are available as a separate download.

After installation, you should ensure that the software described in Section 3.1 is present and accessible.

If your machine has more than one processor, then it is recommended that you set the environment variable OMP_NUM_THREADS to the number of available processors, e.g.

This will enable the Intel MKL BLAS to make use of the extra processor(s) and will thus speed up the computation of many of the Library procedures.

The installation procedure will create a shortcut which starts a Command Prompt with the required local environment variables. The default location of this shortcut is in the Start Menu under

  Start|All Programs|NAG|CL08|NAG C Library DLLs
      (CLDLL084ZL). Command Prompt

The local environment variable NAG_CLDLL084ZL is needed by the batch files nagc_example.bat and nagc_example_mkl.bat (see Section 3.1. of the Users' Note (un.html)).

The installation procedure also creates a shortcut on the Start Menu to the Users' Note, which by default is located under

  Start|All Programs|NAG|CL08|NAG C Library DLLs
      (CLDLL084ZL). Users' Note

Further information on calling the NAG C Library DLLs from different environments may be accessed via the shortcut to the document Using the NAG C Library Windows DLLs, which by default is located under

  Start|All Programs|NAG|CL08|NAG C Library DLLs
      (CLDLL084ZL). Usage Information

There is also a shortcut to the diagnostic program NAG_C_DLL_info.exe under

  Start|All Programs|NAG|CL08|NAG C Library DLLs
      (CLDLL084ZL). Check Accessibility
(see Section 4.3.3).

This software is provided with an uninstallation facility via

  Control Panel|Add or Remove Programs
on Windows XP, or via
  Control Panel|Programs and Features|Uninstall or change a program
on Windows Vista.

Alternatively you could run the setup program again and select the Remove option.

If it is planned to use Microsoft Visual Studio to build programs that use the NAG C Library, each user should set the appropriate options. For a C++ project, start Visual Studio and from the "Tools" menu, select "Options" and expand the "Projects and Solutions" section and click the "VC++ Directories" entry. Using the "Show directories for" menu,

More detailed advice on using Visual Studio may be found in the document Using the NAG C Library Windows DLLs.

The above instructions are specific to Visual C++ projects under Microsoft Visual Studio 2005; if a different version of Visual Studio is being used, or a different programming language, the procedure will differ slightly.

4.1.2. Library Manual Installation

It is not necessary to install the Library Manual. Users may access it directly on the distribution CD, or it may be installed on a different workstation or server, or viewed from the NAG website (

If you have the Library materials on CD, insert the CD into your CD drive to display the NAG CD browser. Click on the Install ... button and follow the instructions to install the Library and/or the manual. If the CD does not autorun, run

to run the browser, or run e:\setup_cl08_manual.exe to run the Library manual installation directly, where e is the drive letter for your CD drive.

If you have downloaded the Library Manual materials from our website, run the self-extracting executable to start the Library Manual installation.

The installation will create a shortcut to the main index file for the manual. The default location of this shortcut is in the Start Menu under

  Start|All Programs|NAG|CL08|NAG C Library Manual

Free copies of Adobe Acrobat Reader can be downloaded from Please check this site for availability of a reader for your platform.

4.1.3. License Management

The use of this product is controlled by the Kusari license management system. This release of the Library uses version 2.2 of Kusari.

In order to enable the software, NAG will issue you with a license key. The license key is a simple text file containing details of the software that will be enabled. For evaluation purposes a trial license may be used. To get a trial license contact the NAG Response Centre. Before obtaining a full license you need to know the Kusari hostid of the system on which you intend to use this product and how to do this is described below.

The easiest way to request a license key is to use the 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 cldll084zl\license\doc folder). The GUI license key request and key installation program
The recommended way to request a license key is to use the 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 Response Centre. In the case of a full key, the message contains the Kusari hostid.

Once you have your license key, the same GUI can be used to install the key in the registry.

You can execute this GUI from

  Start|All Programs|NAG|CL08|NAG C Library DLLs
      (CLDLL084ZL). Request or install license key
This GUI can also be run from the installation procedure. Command line license 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 Response Centre with your details, your organisation details and your NAG Site Reference (if known).

The 'khostid' command may be found in the cldll084zl\bin folder. Command line installation of the license 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 cldll084zl\bin folder. First put the license key in a file, say license.dat. If you have administrator privilege you can install the key for all users,
  klreg CLDLL084Z license.dat
Otherwise the key can be installed for the current user,
  klreg /current_user CLDLL084Z license.dat Installing the license key in a file
You are recommended to install the license key in the registry as described above. If this is not suitable an alternative method is to put the license 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 license file.

The environment variable may be set from the Control Panel. USB key licenses
Simply insert the USB key in any spare USB socket on the machine on which you wish to run this product. Testing the license
The a00acc example program may be used to check the license is properly installed.

4.2. Release to Users

The Users' Note (doc\un.html) should be checked and amended as necessary (particularly Sections 3.1, 3.3 and 5). Advice on accessing the library can be checked by running a few example programs following that advice; a suitable sample would be d01ajc, g05lfc and f07adc. The installation can also be tested using the batch files nagc_example*.bat. The Users' Note should then be made available to users directly, or be absorbed into local access information.

The following material should also be made accessible to users:

documentation files:

The manual folder contains the online documentation (if installed).

Using the NAG C Library Windows DLLs document:


compiled libraries and their dependencies:

include files:
example program material:
example projects illustrating usage from various environments, and skeleton files for use with Visual Basic
batch file to set environment variables:
program to check DLL accessibility:
licensing materials:

Note that the example material has been adapted, if necessary, from that published in the NAG C Library Manual, so that programs are suitable for execution with this implementation with no further changes (but see Section 4.3.1 for comments about possible differences in results obtained). Making the example material directly available to users provides them with easily adaptable templates for their own problems.

4.3. Further Information

For best performance we recommend that you should use the variant of the NAG C Library which is based on the supplied MKL library i.e. CLDLL084Z_mkl.dll. However if you use a version of the MKL library different from the version used in creating this implementation and you have problems when calling a NAG routine, we suggest that you use the self-contained library CLDLL084Z_nag.dll. The corresponding import libraries for CLDLL084Z_mkl.dll and CLDLL084Z_nag.dll are CLDLL084Z_mkl.lib and CLDLL084Z_nag.lib respectively.

4.3.1. Example Programs

The example results distributed were generated at Mark 8, using Microsoft Visual C++ Release 8.0 (Visual Studio 2005). These example results may not be exactly reproducible if the example programs are run in a slightly different environment (for example, a different C compiler, a different compiler library, or a different set of BLAS or LAPACK routines). The results which are most sensitive to such differences are: eigenvectors (which may differ by a scalar multiple, often -1, but sometimes complex); numbers of iterations and function evaluations; and residuals and other "small" quantities of the same order as the machine precision.

4.3.2. Maintenance Level

The maintenance level of the library can be determined by compiling and executing the example that calls a00aac or you could call the batch file nagc_example with the argument a00aac. See Users' Note, Example Programs . This example prints out details of the implementation, including title and product code, compiler and precision used, mark and maintenance level.

Alternatively, run the diagnostic program NAG_C_DLL_info.exe which itself calls a00aac (see Section 4.3.3).

4.3.3. Accessibility Check

The diagnostic program NAG_C_DLL_info.exe, which by default is located in C:\Program Files\NAG\CL08\cldll084zl\diagnostics, may be used to check whether the DLLs CLDLL084Z_nag.dll and CLDLL084Z_mkl.dll are accessible from the current environment. If this program is started from Windows Explorer or from the
  Start|All Programs|NAG|CL08|NAG C Library DLLs
      (CLDLL084ZL). Check Accessibility
shortcut on the Start Menu, 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 of the Users' Note for more information on environment variables.)

For each of the DLLs that it loads successfully, NAG_C_DLL_info.exe will print the location of the DLL, and pop up a message box showing the implementation details as provided by a call to the routine a00aac. It also calls a00acc to check the availability of a valid license key if required by the implementation and reports if this is not found; "Status OK" indicates that a valid key was either found or not required.

5. Documentation

Online documentation is bundled with this implementation. Please see Section 4. See Section 3.1 for online help files in HTML and PDF formats.

6. Support from NAG

(a) Contact with NAG

Queries concerning this document or the implementation generally should be directed initially to your local Advisory Service. If you have difficulty in making contact locally, you can contact NAG directly at one of the addresses given in the Appendix. Users subscribing to the support service are encouraged to contact one of the NAG Response Centres (see below).

(b) NAG Response Centres

The NAG Response Centres are available for general enquiries from all users and also for technical queries from sites with an annually licensed product or support service.

The Response Centres are open during office hours, but contact is possible by fax, email and phone (answering machine) at all times.

When contacting a Response Centre, it helps us deal with your enquiry quickly if you can quote your NAG site reference and NAG product code (in this case CLDLL084ZL).

(c) NAG Websites

The NAG websites provide information about implementation availability, descriptions of products, downloadable software, product documentation and technical reports. The NAG websites can be accessed at the following URLs:, or

(d) NAG Electronic Newsletter

If you would like to be kept up to date with news from NAG then please register to receive our free electronic newsletter, which will alert you to special offers, announcements about new products or product/service enhancements, customer stories and NAG's event diary. You can register via one of our websites, or by contacting us at

(e) Product Registration

To ensure that you receive information on updates and other relevant announcements, please register this product with us. For NAG Library products this may be accomplished by filling in the online registration form at

7. User Feedback

Many factors influence the way that NAG's products and services evolve, and your ideas are invaluable in helping us to ensure that we meet your needs. If you would like to contribute to this process, we would be delighted to receive your comments. Please contact any of the NAG Response Centres (shown below).

Appendix - Contact Addresses

Wilkinson House
Jordan Hill Road
OXFORD  OX2 8DR                         NAG Ltd Response Centre
United Kingdom                          email:

Tel: +44 (0)1865 511245                 Tel: +44 (0)1865 311744
Fax: +44 (0)1865 310139                 Fax: +44 (0)1865 310139

1431 Opus Place, Suite 220
Downers Grove
IL 60515-1362                           NAG Inc Response Center
USA                                     email:

Tel: +1 630 971 2337                    Tel: +1 630 971 2337
Fax: +1 630 971 2706                    Fax: +1 630 971 2706

Nihon NAG KK
Hatchobori Frontier Building 2F

Tel: +81 (0)3 5542 6311
Fax: +81 (0)3 5542 6312