NAG fl90, Release 4

FNL6I04DCL - License Managed

EM64T, Linux 64, Intel Fortran, Double Precision

Users' Note



Contents


1. Introduction

This document is essential reading for every user of the NAG fl90 implementation specified in the title. It provides implementation-specific detail that augments the information provided in the NAG fl90 Manual. Wherever that manual refers to the "Users' Note for your implementation", you should consult this note.

NAG recommends that you read the following minimum reference material before calling any library procedure:

(a) Essential Introduction
(b) Chapter Introduction
(c) Procedure Document
(d) Implementation-specific Users' Note

Items (a), (b) and (c) are included in the NAG fl90 Manual; item (d) is this document which is provided in HTML form.

2. Availability of Procedures

All procedures listed in the chapter contents documents of the NAG fl90 Manual, Release 4 are available in this implementation. At Release 4, 43 new primary ("user-callable") generic procedures have been introduced. Please consult the Release 4 News document in the fl90 Manual for lists of these procedures and for a list of procedures scheduled for withdrawal at future Releases. Your suggestions for new algorithms for future releases of the Library are welcomed (see Section 7).

3. General Information

3.1. Accessing the Library

This section shows two ways of accessing the library depending on the location of the compiled libraries.

3.1.1. Libraries NOT in the linker search path

In this section we assume that the library has been installed in the directory [INSTALL_DIR].

By default [INSTALL_DIR] (see Installer's Note (in.html)) is /opt/NAG/fnl6i04dcl or /usr/local/NAG/fnl6i04dcl depending on your system; however it could have been changed by the installer. To identify [INSTALL_DIR] for this installation:

To use the the NAG fl90 Library and the supplied MKL libraries, you may link in the following manner:
  ifort -I[INSTALL_DIR]/nagfl90_modules driver.f90 \
           [INSTALL_DIR]/lib/libnagfl90_mkl.a \
          -L[INSTALL_DIR]/mkl_em64t  -lmkl_lapack -lmkl_em64t -lguide -lpthread
where driver.f90 is your application program;

or

  ifort -I[INSTALL_DIR]/nagfl90_modules driver.f90 \
            [INSTALL_DIR]/lib/libnagfl90_mkl.so \
          -L[INSTALL_DIR]/mkl_em64t  -lmkl_lapack64 -lmkl_def -lguide -lpthread
if the shareable library is required.

However, if you prefer to link to a version of the NAG fl90 library which does not require the use of the MKL library, you may wish to use the self-contained libraries as follows:

  ifort -I[INSTALL_DIR]/nagfl90_modules driver.f90 \
            [INSTALL_DIR]/lib/libnagfl90_nag.a
or
  ifort -I[INSTALL_DIR]/nagfl90_modules driver.f90 \
            [INSTALL_DIR]/lib/libnagfl90_nag.so
if the shareable library is required.

Please note that in all the above compiler invocations -Ipathname is not needed if it is included in the configuration file you are using (for more details see the compiler documentation).

Please note that using a self-contained library may result in some degradation in the performance of your application.

If your application has been linked with one of the NAG shareable libraries 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_em64t
to set LD_LIBRARY_PATH, or
   setenv LD_LIBRARY_PATH [INSTALL_DIR]/lib:[INSTALL_DIR]/mkl_em64t:${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_em64t
   export LD_LIBRARY_PATH
to set LD_LIBRARY_PATH, or
   LD_LIBRARY_PATH=[INSTALL_DIR]/lib:[INSTALL_DIR]/mkl_em64t:${LD_LIBRARY_PATH}
   export LD_LIBRARY_PATH
to extend LD_LIBRARY_PATH if you already have it set.

Please note that [INSTALL_DIR]/mkl_em64t is needed as part of the environment variable LD_LIBRARY_PATH only if you are using the MKL libraries.

3.1.2. Libraries in the linker search path

In this section we assume that the compiled libraries and the supplied MKL libraries are pointed at by symbolic links from a directory in the search path of the linker, such as /usr/lib.

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

  ifort -I[INSTALL_DIR]/nagfl90_modules driver.f90 \
            -lnagfl90_mkl -lmkl_lapack64 -lmkl_def -lguide -lpthread
To use the static library libnagfl90_mkl.a you need the -Bstatic compiler flag to switch static binding on and the -Bdynamic compiler flag to switch dynamic binding on for the other libraries:
  ifort -I[INSTALL_DIR]/nagfl90_modules driver.f90 \
    -Bstatic -lnagfl90_mkl -lmkl_lapack -lmkl_em64t -lguide -Bdynamic -lpthread

However, if you prefer to link to a version of the NAG library which does not require the use of the MKL library, you may wish to use the self-contained libraries as follows:

  ifort -I[INSTALL_DIR]/nagfl90_modules driver.f90 -lnagfl90_nag
This will usually link to the shareable library in preference to the static library if both the libraries are at the same location.

To use the static library libnagfl90_nag.a you need the -Bstatic loader flag to switch static binding on:

  ifort -I[INSTALL_DIR]/nagfl90_modules driver.f90 \
            -Bstatic -lnagfl90_nag -Bdynamic
In this case the -Bdynamic is needed so that the compiler can use its shareable libraries which results in smaller executable codes.

Please note that in all the above compiler invocations -Ipathname is not needed if it is included in the configuration file you are using (for more details see the compiler documentation).

Please note that using a self-contained library may result in some degradation in the performance of your application.

If your application has been linked with one of the NAG shareable libraries 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_em64t
to set LD_LIBRARY_PATH, or
   setenv LD_LIBRARY_PATH [INSTALL_DIR]/lib:[INSTALL_DIR]/mkl_em64t:${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_em64t
   export LD_LIBRARY_PATH
to set LD_LIBRARY_PATH, or
   LD_LIBRARY_PATH=[INSTALL_DIR]/lib:[INSTALL_DIR]/mkl_em64t:${LD_LIBRARY_PATH}
   export LD_LIBRARY_PATH
to extend LD_LIBRARY_PATH if you already have it set.

Please note that [INSTALL_DIR]/mkl_em64t is needed as part of the environment variable LD_LIBRARY_PATH only if you are using the MKL libraries.

3.2. Example Programs

The directory [INSTALL_DIR]/scripts contains four scripts nagfl90_example_mkl, nagfl90_example_shar_mkl, nagfl90_example and nagfl90_example_shar.

The example programs are most easily accessed by one of the commands

Each command will provide you with a copy of an example program (and its data, if any), compile the program and link it with the appropriate libraries (showing you the compile command so that you can recompile your own version of the program). Finally, the executable program will be run, presenting its output to stdout.

The example program concerned is specified by the argument to the command, e.g.

nagfl90_example nag_nlp_ex01
will copy the example program and its data into the files nag_nlp_ex01.f90 and nag_nlp_ex01.dat in the current directory and process them to produce the example program results (using the compiled library libnagfl90_nag.a).

The example programs are supplied in machine-readable form. They are suitable for immediate usage. Note that the distributed example programs are those used in this implementation and may not correspond exactly with the programs published in the manual. The distributed example programs should be used in preference wherever possible.

The distributed example results are those obtained with the NAG self-contained static library libnagfl90_nag.a, (using the NAG BLAS and LAPACK routines). Running the examples with the MKL may give slightly different results.

4. Procedure-specific Information

Any further information which applies to one or more procedures in this implementation is listed below.

(a) Special Functions

Special functions will give error messages if called with illegal or unsafe arguments. General details are given in the NAG fl90 Manual, but parameter limits which are implementation-specific are given below:
 nag_gamma      error%code  = 201 if x > 1.70E+2
                error%code  = 202 if abs(x) < 2.23E-308
                error%code  = 203 if x < -1.70E+2
 nag_log_gamma  error%code  = 201 if x > 2.55E+305

 nag_erfc       x(hi)  = 2.66E+1
                x(low) = -6.25E+0
 nag_erf        x(hi)  = 6.25E+0

 nag_bessel_y0  error%code  = 201 if x > 1.0E+16
 nag_bessel_y1  error%code  = 202 if x > 1.0E+16
                error%code  = 201 if 0.0 < x <= 2.23E-308
 nag_bessel_y   error%code  = 201 if abs(z) < 3.93E-305
                error%code  = 202 if abs(z) or NU+N-1 > 1.07E+9
                error%code  = 203 if abs(z) or NU+N-1 > 3.27E+4
 nag_bessel_j0  error%code  = 201 if abs(x) > 1.0E+16
 nag_bessel_j1  error%code  = 201 if abs(x) > 1.0E+16
 nag_bessel_j   error%code  = 201 if imag(z) > 7.00E+2
                error%code  = 202 if abs(z) or NU+N-1 > 1.07E+9
                error%code  = 203 if abs(z) or NU+N-1 > 3.27E+4
 nag_bessel_k1  error%code  = 201 if 0.0 < x <= 2.23E-308
 nag_bessel_k   error%code  = 201 if abs(z) < 3.93E-305
                error%code  = 202 if abs(z) or NU+N-1 > 1.07E+9
                error%code  = 203 if abs(z) or NU+N-1 > 3.27E+4
 nag_bessel_i0  error%code  = 201 if abs(x) > 7.116E+2
 nag_bessel_i1  error%code  = 201 if abs(x) > 7.116E+2
 nag_bessel_i   error%code  = 201 if real(z) > 7.00E+2
                error%code  = 202 if abs(z) or NU+N-1 > 1.07E+9
                error%code  = 203 if abs(z) or NU+N-1 > 3.27E+4

 nag_ell_rd     error%code  = 201 if an argument < 1.579E-205
                error%code  = 202 if an argument < 3.774E+202
 nag_ell_rj     error%code  = 201 if an argument < 2.820E-103
                error%code  = 202 if an argument < 1.404E+102

 nag_airy_ai    error%code  = 201 if z is REAL and z > 1.038E+2
                error%code  = 202 if z is REAL and z < -1.8E+9
                error%code  = 203 if abs(z) > 1.02E+3
                error%code  = 204 if abs(z) > 1.04E+6
 nag_airy_bi    error%code  = 201 if z is REAL and z > 1.041E+2
                error%code  = 202 if z is REAL and z < -1.8E+9
                error%code  = 203 if abs(z) > 1.02E+3
                error%code  = 204 if abs(z) > 1.04E+6

 nag_kelvin_ber error%code  = 201 if abs(x) > 49.50     
 nag_kelvin_bei error%code  = 201 if abs(x) > 49.50     
 nag_kelvin_ker error%code  = 201 if x > 9.9726E+2
 nag_kelvin_kei error%code  = 201 if x > 9.9726E+2

5. Documentation

A full online version of the NAG fl90 Library Manual is supplied in the form of Portable Document Format (PDF) files, with an HTML index, in the nagdoc_fn04 directory.

A main index file has been provided (nagdoc_fn04/fn/html/library_contents/c00s08_libcon_fn04.html) which contains a fully linked contents document pointing to all the available PDF (and where available HTML) files. Use your HTML browser to navigate from here.

In addition the following are provided:

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 FNL6I04DCL).

(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:

http://www.nag.co.uk/, http://www.nag.com/ or http://www.nag-j.co.jp/

(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 nagnews@nag.co.uk.

(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 http://www.nag.co.uk/numeric/Library_Registration.asp.

7. User Feedback

Many factors influence the way 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 your local NAG Response Centre (shown below).

Appendix - Contact Addresses

NAG Ltd
Wilkinson House
Jordan Hill Road
OXFORD  OX2 8DR                         NAG Ltd Response Centre
United Kingdom                          email: support@nag.co.uk

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

NAG Inc
1431 Opus Place, Suite 220
Downers Grove
IL 60515-1362                           NAG Inc Response Center
USA                                     email: infodesk@nag.com

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

Nihon NAG KK
Hatchobori Frontier Building 2F
4-9-9
Hatchobori
Chuo-ku
Tokyo
104-0032
Japan
email: help@nag-j.co.jp

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