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/lib64/mips4, 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 Silicon Graphics Scientific Library (SCSL), multi-processor version, e.g.
f77 -64 -mips4 -r10000 -mp -o driver.exe driver.f -lnagsmp -lscs_mpwhere driver.f is your application program.
In some circumstances you may receive a warning from the link editor concerning SCSL not being used for linking (WARNING 84). These warnings can be ignored or can be suppressed using the compiler option -Wl,-woff,84.
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.
sgetrf refers to the LAPACK routine name - DGETRF cpotrs - ZPOTRS
See Section 4 for additional documentation available from NAG.
DBDSQR DGEBRD DGEQRF DGETRF DGETRS DOPGTR DORGTR DORMQR DPOTRF DPOTRS DSTEQR DSYTRD ZBDSQR ZGEBRD ZGEQRF ZGETRF ZGETRS ZHETRD ZORGQR ZPOTRF ZPOTRS ZUNGQR ZUNGTR ZUNMQR ZUPGTR ZSTEQR
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) = 5.6D+14 S13ADF x(hi) = 5.6D+14 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 > 5.6D+14 S17ADF IFAIL = 1 if X > 5.6D+14 IFAIL = 3 if 0.0 < X <= 2.23D-308 S17AEF IFAIL = 1 if abs(X) > 5.6D+14 S17AFF IFAIL = 1 if abs(X) > 5.6D+14 S17AGF IFAIL = 1 if X > 103.8 IFAIL = 2 if X < -8.9D+9 S17AHF IFAIL = 1 if X > 104.1 IFAIL = 2 if X < -8.9D+9 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'0020000000000000' ( 4.45014771701441D-308 )Parameters of other aspects of the computing environment
X02AHF = Z'4300000000000000' ( 5.62949953421312D+14 ) X02BBF = 2147483647 X02BEF = 15 X02DAF = .FALSE.
On-line documentation is also provided, in PDF form, with this implementation.
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 FSSG620DA).
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
http://www.nag.com/ (in North America)
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: email@example.com Tel: +44 (0)1865 511245 Tel: +44 (0)1865 311744 Fax: +44 (0)1865 310139 Fax: +44 (0)1865 311755 NAG Inc 1400 Opus Place, Suite 200 Downers Grove IL 60515-5702 NAG Inc Response Center USA email: firstname.lastname@example.org Tel: +1 630 971 2337 Tel: +1 630 971 2345 Fax: +1 630 971 2706 Fax: +1 630 971 2346 NAG GmbH Schleissheimerstrasse 5 85748 Garching Deutschland email: email@example.com Tel: +49 (0)89 320 7395 Fax: +49 (0)89 320 7396 Nihon NAG KK Yaesu Nagaoka Building No. 6 1-9-8 Minato Chuo-ku Tokyo Japan email: firstname.lastname@example.org Tel: +81 (0)3 5542 6311 Fax: +81 (0)3 5542 6312