NAG recommends that you read the following minimum reference material which can be found in the documentation, together with this note, before calling any library routine:
(a) Introduction to the NAG Fortran SMP Library
(b) Essential Introduction to the NAG Fortran Library
(c) The appropriate Chapter Introduction
(d) The appropriate Routine Document
Assuming that libnagsmp.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 SMP Library in the following manner:
(a) Set the environment variable OMP_NUM_THREADS to the number of available processors, e.g.
(for Korn and Bourne shell - ksh, bsh) set OMP_NUM_THREADS=N export OMP_NUM_THREADS (for C shell - csh) setenv OMP_NUM_THREADS Nwhere N is the number of available processors.
(b) Compile and link with the Engineering and Scientific Subroutine Library (ESSL), e.g
xlf_r -q64 -qsmp=omp -qnosave -o driver.exe driver.f -lnagsmp -lesslsmpwhere driver.f is your application program.
nagexample c06eafwill copy the example program and its data into the files c06eafe.f and c06eafe.d in the current directory and process them to produce the example program results.
The example programs supplied to a site in machine-readable form have been modified as necessary so that they are suitable for immediate execution. In some instances they may differ from the example program supplied in the documentation. The distributed example programs should be used in preference wherever possible.
real - DOUBLE PRECISION (REAL*8) basic precision - double precision complex - COMPLEX*16 additional precision - quadruple precision (REAL*16) machine precision - the machine precision, see the value returned by X02AJF in Section 3
Thus a parameter described as real should be declared as DOUBLE PRECISION in your program. If a routine accumulates an inner product in additional precision, it is using software to simulate quadruple precision.
In some routine documents additional bold italicised terms are used in the published example programs and they must be interpreted as follows:
real as an intrinsic function name - DBLE imag - DIMAG cmplx - DCMPLX conjg - DCONJG e in constants, e.g. 1.0e-4 - D, e.g. 1.0D-4 e in formats, e.g. e12.4 - D, e.g. D12.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.
The typeset examples use the single precision form of the LAPACK name. To
convert this name to its double precision form, change the first character
either from S to D or C to Z as appropriate.
For example:
sgetrf refers to the LAPACK routine name - DGETRF cpotrs - ZPOTRS
See Section 4 for additional documentation available from NAG.
DASUM DAXPY DAXPYI DCOPY DDOT DDOTI DGBMV DGEMM DGEMV DGER DGTHR DGTHRZ DNRM2 DROT DROTG DSBMV DSCAL DSCTR DSPMV DSPR DSPR2 DSWAP DSYMM DSYMV DSYR DSYR2 DSYR2K DSYRK DTBMV DTBSV DTPMV DTPSV DTRMM DTRMV DTRSM DTRSV DZASUM DZNRM2 IDAMAX IZAMAX ZAXPY ZAXPYI ZCOPY ZDOTC ZDOTCI ZDOTU ZDOTUI ZDSCAL ZGBMV ZGEMM ZGEMV ZGERC ZGERU ZGTHR ZGTHRZ ZHBMV ZHEMM ZHEMV ZHER ZHER2 ZHER2K ZHERK ZHPMV ZHPR ZHPR2 ZSCAL ZSCTR ZSWAP ZSYMM ZSYR2K ZSYRK ZTBMV ZTBSV ZTPMV ZTPSV ZTRMM ZTRMV ZTRSM ZTRSV
The default mechanism contains 273 generators. When OpenMP parallelism is requested by setting the environment variable OMP_NUM_THREADS to a value greater than 1, generators are used to generate independently portions of a sequence of random numbers. The generator assigned to each portion cannot be predetermined; therefore reproducibility of results should not be expected when using these routines in parallel. If reproducibility of random sequences is required, then the standard serial mechanism should be selected using G05ZAF.
S07AAF F(1) = 1.0D+13 F(2) = 1.0D-14 S10AAF E(1) = 18.50 S10ABF E(1) = 708.0 S10ACF E(1) = 708.0 S13AAF x(hi) = 708.3 S13ACF x(hi) = 1.0D+16 S13ADF x(hi) = 1.0D+17 S14AAF IFAIL = 1 if X > 170.0 IFAIL = 2 if X < -170.0 IFAIL = 3 if abs(X) < 2.23D-308 S14ABF IFAIL = 2 if X > 2.55D+305 S15ADF x(hi) = 26.6 x(low) = -6.25 S15AEF x(hi) = 6.25 S17ACF IFAIL = 1 if X > 1.0D+16 S17ADF IFAIL = 1 if X > 1.0D+16 IFAIL = 3 if 0.0 < X <= 2.23D-308 S17AEF IFAIL = 1 if abs(X) > 1.0D+16 S17AFF IFAIL = 1 if abs(X) > 1.0D+16 S17AGF IFAIL = 1 if X > 103.8 IFAIL = 2 if X < -5.6D+10 S17AHF IFAIL = 1 if X > 104.1 IFAIL = 2 if X < -5.6D+10 S17AJF IFAIL = 1 if X > 104.1 IFAIL = 2 if X < -1.8D+9 S17AKF IFAIL = 1 if X > 104.1 IFAIL = 2 if X < -1.8D+9 S17DCF IFAIL = 2 if abs (Z) < 3.93D-305 IFAIL = 4 if abs (Z) or FNU+N-1 > 3.27D+4 IFAIL = 5 if abs (Z) or FNU+N-1 > 1.07D+9 S17DEF IFAIL = 2 if imag (Z) > 700.0 IFAIL = 3 if abs (Z) or FNU+N-1 > 3.27D+4 IFAIL = 4 if abs (Z) or FNU+N-1 > 1.07D+9 S17DGF IFAIL = 3 if abs (Z) > 1.02D+3 IFAIL = 4 if abs (Z) > 1.04D+6 S17DHF IFAIL = 3 if abs (Z) > 1.02D+3 IFAIL = 4 if abs (Z) > 1.04D+6 S17DLF IFAIL = 2 if abs (Z) < 3.93D-305 IFAIL = 4 if abs (Z) or FNU+N-1 > 3.27D+4 IFAIL = 5 if abs (Z) or FNU+N-1 > 1.07D+9 S18ADF IFAIL = 2 if 0.0 < X <= 2.23D-308 S18AEF IFAIL = 1 if abs(X) > 711.6 S18AFF IFAIL = 1 if abs(X) > 711.6 S18CDF IFAIL = 2 if 0.0 < X <= 2.23D-308 S18DCF IFAIL = 2 if abs (Z) < 3.93D-305 IFAIL = 4 if abs (Z) or FNU+N-1 > 3.27D+4 IFAIL = 5 if abs (Z) or FNU+N-1 > 1.07D+9 S18DEF IFAIL = 2 if real (Z) > 700.0 IFAIL = 3 if abs (Z) or FNU+N-1 > 3.27D+4 IFAIL = 4 if abs (Z) or FNU+N-1 > 1.07D+9 S19AAF IFAIL = 1 if abs(x) >= 49.50 S19ABF IFAIL = 1 if abs(x) >= 49.50 S19ACF IFAIL = 1 if X > 997.26 S19ADF IFAIL = 1 if X > 997.26 S21BCF IFAIL = 3 if an argument < 1.579D-205 IFAIL = 4 if an argument >= 3.774D+202 S21BDF IFAIL = 3 if an argument < 2.820D-103 IFAIL = 4 if an argument >= 1.404D+102
X01AAF (PI) = 3.1415926535897932 X01ABF (GAMMA) = 0.5772156649015329
The basic parameters of the model
X02BHF = 2 X02BJF = 53 X02BKF = -1021 X02BLF = 1024 X02DJF = .TRUE.Derived parameters of the floating-point arithmetic
X02AJF = Z'3CA0000000000001' ( 1.11022302462516D-16 ) X02AKF = Z'0010000000000000' ( 2.22507385850721D-308 ) X02ALF = Z'7FEFFFFFFFFFFFFF' ( 1.79769313486231D+308 ) X02AMF = Z'0010000000000000' ( 2.22507385850721D-308 ) X02ANF = Z'0010000000000000' ( 2.22507385850721D-308 )Parameters of other aspects of the computing environment
X02AHF = Z'4690000000000000' ( 8.11296384146067D+31 ) X02BBF = 2147483647 X02BEF = 15 X02DAF = .FALSE.
This implementation does not support opening a file for appending, so X04ACF will return IFAIL = 4 if called with MODE = 2.
On-line documentation is also provided, in PDF form, 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 FSIB420DB).
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