Note: this document is essential reading for any prospective user of the Library.
The Library and its Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Structure of the Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Structure of the Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Marks of the Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Implementations of the Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Precision of the Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Library Identification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fortran Language Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using the Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Programming Advice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
Input/output in the Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using the Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Specification of Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.1 Classification of parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.2 Constraints and suggested values . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Implementation-dependent Information . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example Programs and Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Summary for New Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Pre-Mark 14 Routine Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Support from NAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Background to NAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
The NAG Fortran Library is a comprehensive collection of Fortran routines for the solution of numericaland statistical problems. The word ‘routine’ is used to denote ‘subroutine’ or ‘function’.
The Library is divided into chapters, each devoted to a branch of numerical analysis or statistics. Eachchapter has a three-character name and a title, e.g.,
Exceptionally, two one-character names. (The chapters and their namesare based on the ACM modified SHARE
All documented routines in the Library have six-character names, beginning with the characters of thechapter name, e.g.,
Note that the second and third characters are digits, not letters; e.g., 0 is the digit zero, not the letter O. The last letter of each routine name almost always appears as ‘F’ in the documentation, but may bechanged to ‘E’ in some single precision have some routines whose last letter is ‘A’ rather than ‘F’ (‘B’ in some single precision implementations). An ‘A’ version is always paired with an ‘F’ routine, the ‘A’ version being safe to use in a multithreadedenvironment, but otherwise having identical functionality to the ‘F’ version.
Support Routines) contains all the Basic Linear Algebra Subprograms,BLAS, with NAG-style names as well as The names in brackets are the equivalent single and double precision BLAS names respectively. and Eigenvalue Problems(LAPACK)) contain routines derived from the LAPACK project.
these alternate names can be found in the relevant Chapter Introductions.
In order to take full advantage of machine-specific versions of BLAS and LAPACK routines provided bysome computer hardware vendors, you are encouraged to use the BLAS and LAPACK names (e.g.,SROTG=DROTG and SGETRF=DGETRF) rather than the corresponding NAG-style names (e.g., F06AAFand F07ADF) wherever possible in your programs.
The NAG Fortran Library Manual is the principal printed form of documentation for the NAG FortranLibrary. It has the same chapter structure as the Library: each chapter of routines in the Library has acorresponding chapter (of the same name) in the Manual.
The chapters occur in alphanumeric order.
General introductory documents are placed in Volume 1 of the Manual.
Each chapter consists of the following documents:
Chapter Contents, e.g., Contents – D01;
Chapter Introduction, e.g., Introduction – D01;
Routine Documents, one for each documented routine in the chapter.
A routine document has the same name as the routine which it describes. Within each chapter, routinedocuments occur in alphanumeric order.
For those chapters that have both ‘A’ and ‘F’ versions of a
routine, the routine descriptions are combined into one routine document. Exceptionally, some chaptersnot have individual routine documents; instead, all the routines aredescribed together in the Chapter Introduction. Another neithera Chapter Introduction nor any routine documents. It does however contain a user-callable support routinethat identifies which version of the Library is available at
In addition to the full printed Manual, NAG also produces a printed Introductory Guide, which containsall the introductory material from the Manual, together with all the Chapter Contents and ChapterIntroductions.
NAG also provides machine-based documentation. Currently NAG provides online documentation in theform of unlinked PDF files accompanied by an HTML index. Introductory material is provided in bothin HTML only.
anticipated that future releases will provide HTML files (taking advantage of technology that is currentlybeing developed, e.g., MathML) for the full manual and fully linked PDF files for all but the Keywords inversion of the online documentation is accessible via theNAG Web
Periodically a new Mark of the NAG Fortran Library is released: new routines are added, corrections and/or improvements are made to existing routines; occasionally routines are withdrawn if they have beensuperseded by improved routines.
At each Mark, the documentation of the Library is updated. You must make sure that your documentationhas been updated to the same Mark as the Library software that you are using.
Marks are numbered, e.g., 17, 18, 19. The current Mark is 20.
The NAG Fortran Library is available on many different computer systems. For each distinct system, animplementation of the Library is prepared by NAG, e.g., the Sun Solaris implementation.
implementation is distributed to sites as a tested compiled library.
An implementation is usually specific to a range of machines (e.g., the Compaq OpenVMS range); it mayalso be specific to a particular operating system, Fortran compiler, or compiler option (such as scalar orvector mode or thread safe).
Essentially the same facilities are provided in all implementations of the Library, but, because ofdifferences in arithmetic behaviour and in the compilation system, routines cannot be expected to giveidentical results on different systems, especially for sensitive numerical problems.
The documentation supports all implementations of the Library, with the help of a few simple conventions,and a small amount of implementation-dependent information, which is published in a separate Users’Note for each
The NAG Fortran Library is developed in both single precision and double precision versions. REALvariables and arrays in the single precision version are replaced by DOUBLE PRECISION variables andarrays in the double precision version.
On most systems only one precision of the Library is available; the precision chosen is that which isconsidered most suitable in general for numerical computation (double precision on most systems).
On some systems both precisions are provided: in this case, the double precision routines have namesending in ‘F’ (or ‘A’) (as in the documentation), and the single precision routines have names ending in ‘E’(or ‘B’). Thus in Compaq OpenVMS implementations:
D01AJE is the corresponding routine in the single precision implementation.
Whatever the precision, INTEGER variables (and elements of arrays) always occupy one numeric storageunit, that is the Library is not implemented using non-standard INTEGER*2.
You must know which implementation, which precision and which Mark of the Library you are usingor intend to use. To find out which implementation, precision and Mark of the Library is available at yoursite, you can run a program which calls the NAG Library routine A00AAF (or A00AAE in most single
precision implementations). This routine has no parameters; it simply outputs text to the NAG Libraryadvisory of the output is:
*** Start of NAG Library implementation details ***Implementation title: Sun(SPARC) Solaris
*** End of NAG Library implementation details ***
(The product code can be ignored, except possibly when communicating with
All routines in the Library conform to the ISO Fortran the use of adouble precision complex data type (usually COMPLEX*16) in some routines in Fortran 77 compileddouble precision implementations of the Library – there is no provision for this data type in the old ANSI
Many of the routines in the Library were originally written to conform to the earlier Fortran 66 standardsequences may contain a few parameters which are not strictly necessaryin Fortran 77.
A NAG Fortran Library routine cannot be guaranteed to return meaningful results irrespective of the datasupplied to it. Care and thought must be exercised in:
(b) programming the use of library routines;
(c) assessing the significance of the results.
The Foreword to the Manual provides some further discussion of points (a) and (c); the remainder ofwith (b).
The NAG Fortran Library and its documentation are designed on the assumption that you know how towrite a calling program in Fortran.
When programming a call to a routine, read the routine document carefully, especially the description ofthe Parameters. This states clearly which parameters must have values assigned to them on entry to theroutine, and which return useful values guidance.
The most common types of programming error in using the Library are:
incorrect parameters in a call to a Library routine;
calling a double precision implementation of the Library from a single precision program, or vice-versa.
Therefore if a call to a Library routine results in an unexpected error message from the system (or possiblyfrom within the Library), check the following:
Has the NAG routine been called with the correct number of parameters?
Do the parameters all have the correct type?
Have all array parameters been dimensioned correctly?
Is your program in the same precision as the NAG Library routines to which your program isbeing linked?
Have NAG routine names been modified – if necessary – as
Avoid the use of NAG-type names for your own program units or COMMON blocks: in general, do notuse names which contain a three-character NAG chapter name embedded in them; they may clash with thenames of an auxiliary routine or COMMON block used by the NAG Library.
NAG Fortran Library routines may detect various kinds of error, failure or warning conditions.
conditions are handled in a systematic way by the Library. They fall roughly into three classes:
an invalid value of a parameter on entry to a routine;
(ii) a numerical failure during computation (e.g., approximate singularity of a matrix, failure of an
(iii) a warning that, although the computation has been completed, the results cannot be guaranteed to be
All three classes are handled in the same way by the Library, and are all referred to here simply as ‘errors’.
The error-handling mechanism uses the parameter IFAIL, which occurs as the last parameter in the callingsequence of most NAG Library routines. IFAIL serves two purposes:
it allows users to specify what action a Library routine should take if it detects an error;
(ii) it reports the outcome of a call to a Library routine, either ‘success’ (IFAIL ¼ 0) or ‘failure’
(IFAIL 6¼ 0, with different values indicating different reasons for the failure, as explained in Section 6of the routine documents).
For the first purpose IFAIL must be assigned a value before calling the routine; since IFAIL is reset by theroutine, it must be passed as a variable, not as an integer constant. Allowed values on entry are:
IFAIL ¼ 0: an error message is output, and execution is terminated (‘hard failure’);
IFAIL ¼ þ1: execution continues without any error message;
IFAIL ¼ À1: an error message is output, and execution continues.
The settings IFAIL ¼ Æ1 are referred to as ‘soft failure’.
The safest choice is to set IFAIL to 0, but this is not always convenient: some routines return useful resultseven though a failure (in some cases merely a warning) is indicated. However, if IFAIL is set to Æ1 onentry, it is essential for the program to test its value on exit from the routine, and to take appropriateaction.
The specification of IFAIL in Section 5 of a routine document suggests a suitable setting of IFAIL for thatroutine.
use the usual error handling mechanism; in order to preservecomplete compatibility with LAPACK software, they have a diagnostic output parameter INFO which neednot be set before entry. See the relevant Chapter Introduction for further details.
Some message if an illegal input parameter is detected, thenterminate
Most NAG Library routines perform no output to an external file, except possibly to output an errormessage. All error messages are written to a logical error message unit. This unit number (which is setby default to 6 in most implementations) can be changed by calling the
Some NAG Library routines may optionally output their final results, or intermediate results to monitor thecourse of computation.
In general, output other than error messages is written to a logical advisory
This unit number (which is also set by default to 6 in most implementations) can be
changed by calling the it is logically distinct from the error messageunit, in practice the two unit numbers may be the same. A number to be specified directly as an option.
All output from the Library is formatted.
There are only a few Library routines which perform input from an external file. These examples occur inunit number of the external file is a parameter to the routine, and all input isformatted.
You must ensure that the relevant Fortran unit numbers are associated with the desired external files, eitherby an OPEN statement in your calling program, or by operating system commands.
In addition to those Library routines which are documented and are intended to be called by users, theLibrary also contains many auxiliary routines. Details of all the auxiliary routines which are called directlyor indirectly by any documented NAG Library routine are supplied to sites in machine-readable form withthe Library software.
In general, you need not be concerned with them at all, although you may be made aware of theirexistence if, for example, you examine a memory map of an executable program which calls NAGroutines. The only exception is that when calling some NAG Library routines you may be required orallowed to supply the name of an auxiliary routine from the NAG Library as an external procedureparameter. The routine documents give the necessary details. In such cases, you only need to supply thename of the routine; you never need to know details of its parameter list.
NAG auxiliary routines have names which are similar to the name of the documented routine(s) to whichthey are related, but with last letter ‘Z’, ‘Y’, and so on, e.g.,
In a single precision implementation in which the names of documented routines end in ‘E’, the names ofauxiliary routines have their first three and last three characters interchanged, e.g.,
BAZD01 is an auxiliary routine (corresponding to D01BAZ) called by D01BAE.
A few chapters contain auxiliary routines whose names are obtained by adding 50 to the second and thirdcharacters of the chapter name.
Some implementations of the Library facilitate the use of threads; that is, you can call routines from theLibrary from within a multithreaded application.
Fully thread safe libraries are provided for several
platforms — for more information please contact your local Response detailed guidance on using the Library in a multithreaded context. Youmay also need to refer to the Users’ Note for details of whether your implementation of the Library hasbeen compiled in a manner that facilitates the use of threads.
In general the NAG Fortran Library can be called from other computer languages (such as C and VisualBasic) provided that appropriate mappings exist between their data types.
NAG has produced C Header Files which comprise of a set of header files indicating the match between Cand Fortran data types for various compilers, documentation and examples.
The Dynamic Link Library (DLL) version can be called in a straightforward manner from Visual Basic,Visual Basic for Applications (Excel), Delphi, C and C++. Guidance on this is provided as part of theNAG Fortran Library DLLs. Further details can be found on the NAG Web sites.
The Manual is designed to serve the following functions:
to give background information about different areas of numerical and statistical computation;
to advise on the choice of the most suitable NAG Library routine or routines to solve a particularproblem;
to give all the information needed to call a NAG Library routine correctly from a Fortran program,and to assess the results.
At the beginning of the Manual are some general introductory documents which provide some backgroundand additional routines in the Library, by chapter)may help you to find the chapter, and possibly the routine, which you need to solve your problem. Onlinedocumentation provides you routines classified according to the GAMS scheme).
Having found a likely chapter or routine, you should read the corresponding Chapter Introduction, whichgives background information about that area of numerical computation, and recommendations on thechoice of a routine, including indexes, tables or decision trees.
When you have chosen a routine, you must consult the routine document. Each routine document isessentially self-contained (it may, however, contain references to related documents).
description of the method, detailed specifications of each parameter, explanations of each error exit,remarks on accuracy, and (in most cases) an example program to illustrate the use of the routine.
Note that at Mark 17 a new typesetting scheme was used to generate documentation.
Manual which contains pre-Mark 17 routine documents, you will find that it contains older documentswhich differ in appearance, although the structure is the same.
Note also that at Mark 14 some changes were made to the style and appearance of routine documents. Ifyou have a Manual which contains pre-Mark 14 routine documents, you will find that it contains olderdocuments which differ in style, although they contain essentially the the new-style routine
All routine documents have the same structure, consisting of nine numbered sections:
Section 5 of each routine document contains the specification of the parameters, in the order of theirappearance in the parameter list.
Parameters are classified as follows.
Input: you must assign values to these parameters on or before entry to the routine, and these values areunchanged on exit from the routine.
Output: you need not assign values to these parameters on or before entry to the routine; the routine mayassign values to them.
Input/Output: you must assign values to these parameters on or before entry to the routine, and the routinemay then change these values.
Workspace: array parameters which are used as workspace by the routine. You must supply arrays of thecorrect type and dimension. In general, you need not be concerned with their contents.
External Procedure: a subroutine or function which must be supplied (e.g., to evaluate an integrand or toprint intermediate output). Usually it must be supplied as part of your calling program, in which case itsspecification includes full details of its parameter list and specifications of its parameters (all enclosed in abox). Its parameters are classified in the same way as those of the Library routine, but because you mustwrite the procedure rather than call it, the significance of the classification is different.
Input: values may be supplied on entry, which your procedure must not change.
Output: you may or must assign values to these parameters before exit from your procedure.
Input/Output: values may be supplied on entry, and you may or must assign values to them beforeexit from your procedure.
Occasionally, as can be supplied from the NAG Library, and thenyou only need to know its name.
User Workspace: array parameters which are passed by the Library routine to an external procedureparameter. They are not used by the routine, but you may use them to pass information between yourcalling program and the external procedure.
Dummy: a simple variable which is not used by the routine. A variable or constant of the correct type mustbe supplied, but its value need not be set. (A dummy parameter is usually a parameter which was requiredby an earlier version of the routine and is retained in the parameter list for compatibility.)
The word ‘Constraint:’ or ‘Constraints:’ in the specification of an Input parameter introduces a statementof the range of valid values for that parameter, e.g.,
If the routine is called with an invalid value for the parameter (e.g., N ¼ 0), the routine will usually take anerror exit, returning a non-zero value of
In newer routine documents, constraints on parameters of type CHARACTER only list upper casealphabetic characters, e.g.,
Constraint: STRING ¼ ’A’ or ’B’.
In practice, all routines with CHARACTER parameters will permit the use of lower case characters.
The phrase ‘Suggested Value:’ introduces a suggestion for a reasonable initial setting for an Inputparameter (e.g., accuracy or maximum number of iterations) in case you are unsure what value to use; youshould be prepared to use a different setting if the suggested value turns out to be unsuitable for yourproblem.
Most array parameters have dimensions which depend on the size of the problem. In Fortran terminologythey have ‘adjustable dimensions’: the dimensions occurring in their declarations are integer variableswhich are also parameters of the Library routine.
For example, a Library routine might have the specification:
SUBROUTINE <name> (M, N, A, B, LDB)INTEGER
For a one-dimensional array parameter, such as A in this example, the specification would begin
You must ensure that the dimension of the array, as declared in your calling (sub)program, is at least aslarge as the value you supply for N. It may be larger, but the routine uses only the first N elements.
For a two-dimensional array parameter, such as B in the example, the specification might be
and the parameter LDB might be described as follows:
On entry: the first dimension of the array B as declared in the (sub)program from which <name> iscalled.
You must supply the first dimension of the array B, as declared in your calling (sub)program, through theparameter LDB, even though the number of rows actually used by the routine is determined by theparameter M. You must ensure that the first dimension of the array is at least as large as the value yousupply for M. The extra parameter LDB is needed because Fortran does not allow information about thedimensions of array parameters to be passed automatically to a routine.
You must also ensure that the second dimension of the array, as declared in your calling (sub)program, isat least as large as the value you supply for N. It may be larger, but the routine uses only the first Ncolumns.
A program to call the hypothetical routine used as an example in this section might include the statements:
INTEGER AA(100), BB(100,50)LDB = 100. . . M = 80N = 20CALL <name>(M,N,AA,BB,LDB)
Fortran 77 requires that the dimensions which occur in array declarations must be greater than zero. ManyNAG routines are designed so that they can be called with a parameter like N in the above example set to0 (in which case they would usually exit immediately without doing anything). If so, the declarations inthe Library routine would use the ‘assumed size’ array dimension, and would be given as
However, the original declaration of an array in your calling program must always have constantdimensions, greater than or equal to 1.
Consult an expert or a textbook on Fortran if you have difficulty in calling NAG routines with arrayparameters.
In order to support all implementations of the Library, the Manual has adopted a convention of using bolditalics to distinguish terms which have different interpretations in different implementations.
The most important bold italicised terms are the following; their interpretation depends on whether theimplementation is in single precision or double precision.
means COMPLEX or COMPLEX*16 (or equivalent)
means single precision or double precision
means double precision or quadruple precision
Another important bold italicised term is machine precision, which denotes the relative precision to whichreal floating-point numbers are stored in the computer, e.g., in an implementation with approximately 16decimal digits of precision, machine precision has a value of approximately 10À16.
The precise value of machine precision is given by return the values of other implementation-dependent constants, such as the overflow threshold, or thelargest
The bold italicised term block size the block size used byblock algorithms in these chapters. You only need to be aware of its value when it affects the amount ofworkspace to be supplied – see the parameters WORK and LWORK of the relevant routine documents andthe Chapter Introduction.
For each implementation of the Library, a separate Users’ Note is published. This is a short document,revised at each Mark.
At most installations it is available in machine-readable form.
necessary additional information which applies specifically to that implementation, in particular:
the interpretation of bold italicised terms;
alternate routine names are available for BLAS and LAPACKderived routines, the alternate name appears in bold italics, for example, sgetrf, which should beinterpreted as either SGETRF (in single precision) or DGETRF (in double precision) in the case ofF07ADF, which handles real matrices. Similarly, F07ARF for complex matrices uses cgetrf, which shouldbe interpreted as either CGETRF (in single precision) or ZGETRF (in double precision).
The example program in Section 9 of each routine document illustrates a simple call of the routine. Theprograms are designed so that they can fairly easily be modified, and so serve as the basis for a simpleprogram to solve your problem.
Bold italicised terms are used in the printed text of the example program to denote precision-dependentfeatures in the code. The correct Fortran code must therefore be substituted before the program can be run. In addition to the terms real and complex, which were terms areused in the example programs:
Note that in some implementations the intrinsic function real with a complex argument must be interpretedas DREAL rather than DBLE.
precision-dependent LAPACK routine names, as mentioned
For each implementation of the Library, NAG distributes the example programs in machine-readable form,with all necessary modifications already applied. Many sites make the programs accessible to you in thisform. They may also be obtained directly from the NAG Web site.
Note that the results from running the example programs may not be identical in all implementations, andmay not agree exactly with the results which are printed in the Manual and which were obtained from adouble precision implementation (with approximately 16 digits of precision).
The Users’ Note for your implementation will mention any special changes which need to be made to theexample programs, and any significant differences in the results.
If you are unfamiliar with the this Library and are thinking of using a (sub)program from it, please followthese instructions: (a) read the whole of the Essential Introduction;
(b) consult the Library Contents list to select an appropriate chapter or (sub)program;
(c) or search through the Keywords in Context Index, GAMS Index or via an online search facility;
(d) read the relevant Chapter Introduction;
(e) choose a (sub)program, and read the (sub)program document. If the (sub)program does not after all
meet your needs, return to step (b), (c) or (d);
read the Users’ Note for your implementation;
(g) consult local documentation, which should be provided by your local support staff, about access to the
(h) obtain an online copy of the example program for the particular (sub)program of interest and
You should now be in a position to include a call to the (sub)program in a program, and to attempt tocompile and run it. You may of course need to refer back to the relevant documentation in the case ofdifficulties, for advice on assessment of results, and so on.
As you become familiar with the Library, some of steps (a) to (h) can be omitted, but it is always essentialto:
be familiar with the Chapter Introduction;
be aware of the Users’ Note for your implementation.
You need only read this section if you have an updated Manual which contains pre-Mark 14 documents.
You will find that older routine documents appear in a somewhat different style, or even several styles ifyour Manual dates back to Mark 7, say. The following are the most important differences between theearlier styles and the new style introduced at Mark 14.
Before Mark 12, routine documents had 13 sections: the extra sections have either been dropped ormerged with the present Section 8 (Further Comments).
In Section 5, parameters were not classified as Input, Output and so on; the phrase ‘Unchanged onexit’ was used to indicate an input parameter.
The example programs were revised at Mark 12 and again at Mark 14, to take advantage of featuresof Fortran 77: the programs printed in older documents do not correspond exactly with those whichare now distributed to sites in machine-readable form or available on the NAG Web site.
Before Mark 12, the printed example programs did not use bold italicised terms; they were writtenin standard single precision Fortran.
Before Mark 9, the printed example results were generated on an ICL 1906A (with approximately11 digits of precision), and between Marks 9 and 12 they were generated on an ICL 2900 (withapproximately 16 digits of precision).
Before Mark 13, documents referred to ‘the appropriate implementation document’; this means thesame as ‘the Users’ Note for your implementation’.
Queries concerning this library should be directed initially to your local Advisory Service. If you havedifficulty in making contact locally, you can contact NAG directly.
The NAG Response Centres are available for general enquiries from all users and also for technical queriesfrom users with Support.
The Response Centres are open during office hours, but contact is possible by fax, email and telephone(answering machine) at all times. Please see the User’s Note or the NAG web sites for contact details.
When contacting one of our Response Centres it helps us to deal with you query quickly if you can quoteyour NAG user reference and NAG product code.
The NAG web site is an information service providing items of interest to users and prospective users ofNAG products and services.
The information is regularly updated and reviewed, and includes
implementation availability, descriptions of products, down-loadable software and technical reports. NAGweb sites can be accessed at
Various aspects of the design and development of the NAG Library, and NAG’s technical policies andorg
Ford B (1982) Transportable numerical software Lecture Notes in Computer Science 142 128–140Springer-Verlag
Ford B, Bentley J, Du Croz J J and Hague S J (1979) The NAG Library ‘machine’ Softw. Pract. Exper. 9(1) 65–72
Ford B and Pool J C T (1984) The evolving NAG Library service Sources and Development ofMathematical Software (ed W Cowell) 375–397 Prentice-Hall
Hague S J, Nugent S M and Ford B (1982) Computer-based documentation for the NAG Library LectureNotes in Computer Science 142 91–127 Springer-Verlag
ACM (1960–1976) Collected algorithms from ACM index by subject to algorithms
ANSI (1966) USA standard Fortran Publication X3.9 American National Standards Institute
ANSI (1978) American National Standard Fortran Publication X3.9 American National Standards Institute
ISO (1997) ISO Fortran 95 programming language (ISO/IEC 1539-1:1997)

Advice on Replacement Calls for Withdrawn/Superseded Routines

C05 - Roots of One or More Transcendental Equations

D02 - Ordinary Differential Equations

D03 - Partial Differential Equations

E04 - Minimizing or Maximizing a Function

F02 - Eigenvalues and Eigenvectors

F04 - Simultaneous Linear Equations

F06 - Linear Algebra Support Routines

F08 - Least-squares and Eigenvalue Problems (LAPACK)

Recurrent Pregnancy Loss William H. Kutteh, M.D., Ph.D., H.C.L.D. Kutteh Fertility Associates of Memphis, PLLC Pregnancy Loss Miscarriage is the loss of a pregnancy before 20 weeks. It occurs in 20 percent of all first pregnancies. When it recurs, it is known as recurrent pregnancy loss (RPL). It is estimated that three to five percent of all couples desiring pregnancy will suffer RP

Past Recipients for the Zumberge Individual/Interdisciplinary Awards 2012 Interdisciplinary Awards Yigal Arens, Information Sciences Institute, Viterbi School of Engineering Geoffrey Cowan, Center on Communication Leadership & Policy, Annenberg School for Communication & Journalism Mark Latonero, Center on Communication Leadership & Policy, Annenberg School for Communication &a