NAG recommends that you read the following minimum reference material before calling any library routine:
(a) Essential Introduction
(b) Chapter Introduction
(c) Routine Document
(d) Implementation-specific Users' Note
Items (a), (b) and (c) are included in the NAG Fortran Library Manual; items (a) and (b) are also included in the NAG Fortran Library Introductory Guide; item (d) is this document which is provided in HTML form. Item (a) is also supplied in plain text form.
Assuming that libnag.a has been installed in a directory in the search path of the linker, such as /usr/lib, then you may link to the NAG Fortran Library in the following manner:
f77 -dalign driver.f -lnagwhere driver.f is your application program. If libnag.so.19 has been installed, then you may link in the same manner, or, if you are developing a multi-threaded application, you should also include the -mt flag:
f77 -dalign -mt driver.f -lnagAlternatively, if either libnag-spl.a or libnag-spl.so.19 has been installed, you may link to the NAG Fortran Library in the following manner:
f77 -dalign driver.f -lnag-spl -xlic_lib=sunperfIn the case of libnag-spl.so.19, if you are developing a multi-threaded application you should again include the -mt flag:
f77 -dalign -mt driver.f -lnag-spl -xlic_lib=sunperfN.B. The -dalign flag MUST be used when compiling programs that are to be linked to the NAG Fortran Library.
nagexample c06eaewill copy the example program and its data into the files c06eaee.f and c06eaee.d in the current directory and process them to produce the example program results.
In the NAG Fortran Library Manual, routine documents that have been typeset since Mark 12 present the example programs in a generalised form, using bold italicised terms as described in Section 3.3.
In other routine documents, the example programs are in single precision. All printed example programs show routine names ending in F not E (see Section 3.6).
The example programs supplied to a site in machine-readable form have been modified as necessary so that they are suitable for immediate execution. Note that all the distributed example programs have been revised and do not correspond exactly with the programs published in the manual, unless the documents have been recently typeset. The distributed example programs should be used in preference wherever possible.
real - REAL (REAL*4) basic precision - single precision complex - COMPLEX (COMPLEX*8) additional precision - double precision (REAL*8) machine precision - the machine precision, see the value returned by X02AJE in Section 4
Thus a parameter described as real should be declared as REAL in your program. If a routine accumulates an inner product in additional precision, it is using double precision.
In routine documents that have been newly typeset since Mark 12 additional bold italicised terms are used in the published example programs and they must be interpreted as follows:
real as an intrinsic function name - REAL imag - AIMAG cmplx - CMPLX conjg - CONJG e in constants, e.g. 1.0e-4 - E, e.g. 1.0E-4 e in formats, e.g. e12.4 - E, e.g. E12.4
All references to routines in Chapter F07 - Linear Equations (LAPACK) and
Chapter F08 - Least-squares and Eigenvalue Problems (LAPACK) use the LAPACK
name, not the NAG F07/F08 name. The LAPACK name is precision dependent, and
hence the name appears in a bold italicised typeface.
For example:
sgetrf refers to the LAPACK routine name - SGETRF cpotrs - CPOTRS
See Section 5 for additional documentation available from NAG.
A02AAF denotes the double precision version A02AAE denotes the single precision version
The names of auxiliary routines have also been modified by interchanging the first three and the last three characters, e.g. C02AFZ has been changed to AFZC02.
In the NAG Fortran Library Manual all library routine names end in F. Therefore, when using the manual in conjunction with this single precision implementation, all such names must be understood to refer to the single precision versions with names ending in E. Some routines in the Library require users to specify particular auxiliary routines. Again, when using this implementation it is necessary to specify the amended names.
The names of COMMON blocks have also been modified, e.g. AC02AF is renamed AFC02A. This is unlikely to affect the user.
D02GBE In the example program the value of TOL has to be set to 1.0E-02 in to obtain a solution D02MVE In the example program the value of ATOL(1) has to be set to 5.0E-04 in order to obtain a solution D02PWE In the example program the value of TOL has to be set to 1.0E-03 for the first solution and to 1.0E-04 for the second solution in order to obtain solutions which demonstrate increasing accuracy with smaller values of TOL. D02PZE In the example program the value of TOL has to be set to 1.0E-05 in order to obtain a solution. D02TKE In the example program the value of TOL has been set to 1.0E-02 in order to obtain a solution. Users are recommended to use a double precision implementation. D02TVE In the example program the value of TOL has been set to 1.0E-03 in order to obtain a solution. Users are recommended to use a double precision implementation.
D03EEE In the example program the value of ACC has been set to 1.0E-05 in order to obtain a solution.
H02CEE H02CFEThese routines may fail to solve problems using this single precision implementation. The use of a double precision implementation is recommended for these routines.
S07AAE F(1) = 1.0E+5 F(2) = 1.0E-6 S10AAE E(1) = 9.2500E+0 S10ABE E(1) = 8.700E+1 S10ACE E(1) = 8.700E+1 S13AAE x(hi) = 8.733E+1 S13ACE x(hi) = 1.0E+8 S13ADE x(hi) = 1.0E+9 S14AAE IFAIL = 1 if X > 3.30E+1 IFAIL = 2 if X < -3.30E+1 IFAIL = 3 if abs(X) < 1.18E-38 S14ABE IFAIL = 2 if X > 4.08E+36 S15ADE x(hi) = 9.34E+0 x(low) = -4.50E+0 S15AEE x(hi) = 5.00E+0 S17ACE IFAIL = 1 if X > 1.0E+7 S17ADE IFAIL = 1 if X > 1.0E+7 IFAIL = 3 if 0.0D+00 < X <= 1.18E-38 S17AEE IFAIL = 1 if abs(X) > 1.0E+7 S17AFE IFAIL = 1 if abs(X) > 1.0E+7 S17AGE IFAIL = 1 if X > 2.538E+1 IFAIL = 2 if X < -8.5E+4 S17AHE IFAIL = 1 if X > 2.579E+1 IFAIL = 2 if X < -8.5E+4 S17AJE IFAIL = 1 if X > 2.570E+1 IFAIL = 2 if X < -1.8E+4 S17AKE IFAIL = 1 if X > 2.579E+1 IFAIL = 2 if X < -1.8E+4 S17DCE IFAIL = 2 if abs (Z) < 2.32E-35 IFAIL = 4 if abs (Z) or FNU+N-1 > 2.89E+3 IFAIL = 5 if abs (Z) or FNU+N-1 > 8.38E+6 S17DEE IFAIL = 2 if imag (Z) > 7.97E+1 IFAIL = 3 if abs (Z) or FNU+N-1 > 2.89E+3 IFAIL = 4 if abs (Z) or FNU+N-1 > 8.38E+6 S17DGE IFAIL = 3 if abs (Z) > 2.03E+2 IFAIL = 4 if abs (Z) > 4.12E+4 S17DHE IFAIL = 3 if abs (Z) > 2.03E+2 IFAIL = 4 if abs (Z) > 4.12E+4 S17DLE IFAIL = 2 if abs (Z) < 2.32E-35 IFAIL = 4 if abs (Z) or FNU+N-1 > 2.89E+3 IFAIL = 5 if abs (Z) or FNU+N-1 > 8.38E+6 S18ADE IFAIL = 2 if 0.0D+00 < X <= 1.18E-38 S18AEE IFAIL = 1 if abs(X) > 8.958E+1 S18AFE IFAIL = 1 if abs(X) > 8.958E+1 S18CDE IFAIL = 2 if 0.0D+00 < X <= 1.18E-38 S18DCE IFAIL = 2 if abs (Z) < 2.32E-35 IFAIL = 4 if abs (Z) or FNU+N-1 > 2.89E+3 IFAIL = 5 if abs (Z) or FNU+N-1 > 8.38E+6 S18DEE IFAIL = 2 if real (Z) > 7.97E+1 IFAIL = 3 if abs (Z) or FNU+N-1 > 2.89E+3 IFAIL = 4 if abs (Z) or FNU+N-1 > 8.38E+6 S19AAE IFAIL = 1 if abs(x) >= 1.87500E+1 S19ABE IFAIL = 1 if abs(x) >= 1.87500E+1 S19ACE IFAIL = 1 if X > 1.2044E+2 S19ADE IFAIL = 1 if X > 1.2044E+2 S21BCE IFAIL = 3 if an argument < 1.034E-25 IFAIL = 4 if an argument >= 5.337E+23 S21BDE IFAIL = 3 if an argument < 2.275E-13 IFAIL = 4 if an argument >= 1.741E+12
X01AAE (PI) = 3.1415926535897932 X01ABE (GAMMA) = 0.5772156649015329
The basic parameters of the model
X02BHE = 2 X02BJE = 24 X02BKE = -125 X02BLE = 128 X02DJE = .TRUE.Derived parameters of the floating-point arithmetic
X02AJE = Z'33800001' ( 5.96046E-8 ) X02AKE = Z'00800000' ( 1.17549E-38 ) X02ALE = Z'7F7FFFFF' ( 3.40282E+38 ) X02AME = Z'00800000' ( 1.17549E-38 ) X02ANE = Z'00800000' ( 1.17549E-38 )Parameters of other aspects of the computing environment
X02AHE = Z'7F000000' ( 1.70141E+38 ) X02BBE = 2147483647 X02BEE = 6 X02DAE = .FALSE.
This implementation does not support opening a file for appending, so X04ACE will return IFAIL = 4 if called with MODE = 2.
On-line documentation is bundled with this implementation. Please see the Readme file on the distribution medium for further information.
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 please quote your NAG site reference and NAG product code (in this case FLSOL19SA).
The NAG websites are an information service providing items of interest to users and prospective users of NAG products and services. The information is reviewed and updated regularly and includes implementation availability, descriptions of products, downloadable software, product documentation and technical reports. The NAG websites can be accessed at
or
http://www.nag.com/ (in North America)
or
http://www.nag-j.co.jp/ (in Japan)
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