There are no other files named nag.lbr in the archive.

E/ subLBR.1)4`G*A02-INDEX;)4`C05-INDEX;B)4`D05-INDEX}P)4`G01-INDEXM")4`&D02-INDEXoT)4`D03-INDEX2D:)4`D04-INDEX6~2)4`E01-INDEX71)4`E02-INDEX9O9)4` F01-INDEX@y)4`#F02-INDEXRp)4`%G05-INDEX]q )4`(F03-INDEXfq?)4`%M01-INDEXi1S)4`)F05-INDEXq1)4`&G02-INDEXq5 ()4`'G04-INDEX{])4`'G13-INDEX|v)4`(G08-INDEXv

)4`(X03-INDEXO)4`,H-INDEXRJ)4`)J06-INDEX%kxWJ06AAF#K%kxXJ06ABFn%kxXJ06ACFG%kxYJ06ADFG %kxYJ06AEFQE%kxZJ06AFF%kxZJ06AGF"

%kx[J06AHF.%kx\J06AJF4-u%kx]J06BAF;" %kx^J06CAFE!

%kx^J06CBFQ>%kxfJ06CCF`E8%kxfJ06CDFk~%kxgJ06EAF~<%kxhJ06EBFP

%kxiJ06FAFX[%kxjJ06GAF3%kxtJ06GDFb:(

%kxvJ06GEF FC%kxwJ06GFF "N%kxxJ06GZF>Xf%kxyJ06HAFG> f%kxzJ06HBFQ$_%kx|J06WAFi1%kx|J06WBFm4d%kx}J06WCFu!%kx~J06WDFz:"%kyJ06WZF]%kyJ06XAFz%kyJ06XBF ~%kyJ06XDF!%kyJ06XEF'%kyJ06XFF5q%kyJ06XGF &8%kyJ06XHF$_~%kyJ06YAF(]&%ky J06YBF-/%ky J06YCF12O%ky

J06YDF6U%ky

J06YGF:Wt%kyJ06YJFG %kyJ06YKFL w%kyJ06YLFS#%kyJ06YMFZ:%kyJ06ZAF^Y^%kyJ06ZBFc7%%kyJ06ZCFf\ %kyJ06ZDFkfX%kyS-INDEXXp?})4`*P01-INDEXv<#)4`)C02-INDEXDEXvQ)4`X01-INDEXw1)4`*X02-INDEXwG9)4`+X04-INDEX{7)4`,SUMMARY-INDEX{8H)4H|C06-INDEX,)4`D01-INDEX-X)4`E04-INDEX)4`"F04-INDEX" A02ABF Modulus of a complex number A02ACF Quotient of two complex numbers C05ADF Zero of continuous function of one variable, in a given interval, Bus & Dekker algorithm C05AGF Zero of continuous function of one variable, from a given starting value, searching for interval and Bus & Dekker algorithm C05AJF Zero of continuous function of one variable, from a given starting value, continuation method C05AVF Zero of continuous function of one variable, search for interval containing zero (reverse communication) C05AXF Zero of continuous function of one variable, from a given starting value, continuation method (reverse communication) C05AZF Zero of continuous function of one variable, in a given interval, Bus & Dekker algorithm (reverse communication) C05NBF Solution of a system of non-linear equations (easy-to-use), using function values only C05NCF Solution of a system of non-linear equations (comprehensive), using function values only C05PBF Solution of a system of non-linear equations (easy-to-use), using first derivatives C05PCF Solution of a system of non-linear equations (comprehensive), using first derivatives C05ZAF Check user's routine for calculating first derivatives D05AAF Linear non-singular Fredholm integral equation, 2nd kind, split kernel D05ABF Linear non-singular Fredholm integral equation, 2nd kind, smooth kernel G01AAF Simple descriptive statistics, 1 variable, from raw data G01ABF Simple descriptive statistics, 2 variables, from raw data G01ADF Simple descriptive statistics, 1 variable, from frequency table G01AEF Frequency table from raw data G01AFF Two-way contingency table analysis G01AGF Lineprinter scatterplot of 2 variables G01AHF Lineprinter scatterplot of 1 variable against Normal scores G01AJF Lineprinter histogram of 1 variable G01BAF Student's t-distribution G01BBF F (variance ratio) distribution G01BCF Chi-square distribution G01BDF Beta distribution of 1st kind G01CAF Inverse Student's t-distribution G01CBF Inverse F (variance ratio) distribution G01CCF Inverse Chi-square distribution G01CDF Inverse Beta distribution of 1st kind G01CEF Inverse Normal distribution G01DAF Calculation of Normal scores D02AGF System of ordinary differential equations, boundary value problem, shooting and matching technique, general parameters to be determined, allowing interior matching-point D02BAF System of ordinary differential equations, initial value problem, Runge-Kutta-Merson method, (simple driver), over a range D02BBF System of ordinary differential equations, initial value problem, Runge-Kutta-Merson method, (simple driver), over a range with intermediate output D02BDF System of ordinary differential equations, initial value problem, Runge-Kutta-Merson method, (simple driver), over a range with global error estimate and stiffness check D02BGF System of ordinary differential equations, initial value problem, Runge-Kutta-Merson method, (simple driver), until a component of the solution attains a given value D02BHF System of ordinary differential equations, initial value problem, Runge-Kutta-Merson method, (simple driver), until a function of the solution is zero D02CAF System of ordinary differential equations, initial value problem, variable-order variable-step Adams method, (simple driver), over a range D02CBF System of ordinary differential equations, initial value problem, variable-order variable-step Adams method, (simple driver), over a range with intermediate output D02CGF System of ordinary differential equations, initial value problem, variable-order variable-step Adams method, (simple driver), until a component of the solution attains a given value D02CHF System of ordinary differential equations, initial value problem, variable-order variable-step Adams method, (simple driver), until a function of the solution is zero D02EAF System of ordinary differential equations, initial value problem, variable-order variable-step Gear method for stiff systems, (simple driver), over a range D02EBF System of ordinary differential equations, initial value problem, variable-order variable-step Gear method for stiff systems, (simple driver), over a range with intermediate output D02EGF System of ordinary differential equations, initial value problem, variable-order variable-step Gear method for stiff systems, (simple driver), until a component of the solution attains a given value D02EHF System of ordinary differential equations, initial value problem, variable-order variable-step Gear method for stiff systems, (simple driver), until a function of the solution is zero D02GAF System of ordinary differential equations, boundary value problem, finite difference technique with deferred correction, Pereyra's method, simple non-linear problem D02GBF System of ordinary differential equations, boundary value problem, finite difference technique with deferred correction, Pereyra's method, general linear problem D02HAF System of ordinary differential equations, boundary value problem, shooting and matching technique, boundary values to be determined D02HBF System of ordinary differential equations, boundary value problem, shooting and matching technique, general parameters to be determined D02JAF System of ordinary differential equations, boundary value problem, collocation and least-squares, single N-th order linear equation D02JBF System of ordinary differential equations, boundary value problem, collocation and least-squares, system of 1st order linear equations D02KAF Second-order Sturm-Liouville problems, regular system, finite range, eigenvalue only D02KDF Second-order Sturm-Liouville problems, regular/singular system, finite/infinite range, eigenvalue only D02KEF Second-order Sturm-Liouville problems, regular/singular system, finite/infinite range, eigenvalue and eigenfunction D02PAF System of ordinary differential equations, initial value problem, integrating over a range, (facilities for error-control and interrupts), Runge-Kutta-Merson method D02QAF System of ordinary differential equations, initial value problem, integrating over a range, (facilities for error-control and interrupts), variable-order variable step Adams method D02QBF System of ordinary differential equations, initial value problem, integrating over a range, (facilities for error-control and interrupts), variable-order variable step Gear method for stiff systems D02RAF System of ordinary differential equations, boundary value problem, finite difference technique with deferred correction, Pereyra's method, general non-linear problem, with continuation facility D02SAF System of ordinary differential equations, boundary value problem, shooting and matching technique, general parameters to be determined, subject to extra algebraic equations D02TGF System of ordinary differential equations, boundary value problem, collocation and least-squares, system of N-th order linear equations D02XAF System of ordinary differential equations, initial value problem, interpolation of solution produced by D02PAF, all components D02XBF System of ordinary differential equations, initial value problem, interpolation of solution produced by D02PAF, one component D02XGF System of ordinary differential equations, initial value problem, interpolation of solution produced by D02QAF or D02QBF, all components D02XHF System of ordinary differential equations, initial value problem, interpolation of solution produced by D02QAF or D02QBF, one component D02YAF System of ordinary differential equations, initial value problem, Runge-Kutta-Merson method for integration over one step D03EAF Partial differential equations, elliptic, Laplace's equation in 2-D for an arbitrary domain D03EBF Partial differential equations, elliptic, Solution of finite difference equations by Strongly Implicit Procedure, for 5-point 2-D molecule, iterate to convergence D03ECF Partial differential equations, elliptic, Solution of finite difference equations by Strongly Implicit Procedure, for 7-point 3-D molecule, iterate to convergence D03MAF Triangulation of a plane region D03PAF Partial differential equations, parabolic, one space variable, method of lines, single equation D03PBF Partial differential equations, parabolic, one space variable, method of lines, simple system D03PGF Partial differential equations, parabolic, one space variable, method of lines, general system D03UAF Partial differential equations, elliptic, Solution of finite difference equations by Strongly Implicit Procedure, for 5-point 2-D molecule, one iteration D03UBF Partial differential equations, elliptic, Solution of finite difference equations by Strongly Implicit Procedure, for 7-point 3-D molecule, one iteration D04AAF Numerical differentiation of a function of one real variable, derivatives up to order 14 E01AAF Interpolated values, one variable, data at unequally spaced points, Aitken's technique E01ABF Interpolated values, one variable, data at equally spaced points, Everett's formula E01ACF Interpolated values, two variables, data on rectangular grid, fitting bicubic spline E01AEF Interpolating functions, polynomial interpolant, data may include derivative values E01BAF Interpolating functions, cubic spline interpolant E01RAF Interpolating functions, rational interpolant E01RBF Interpolated values, evaluate rational interpolant computed by E01RAF E02ACF Minimax curve fit by polynomials E02ADF Least-squares curve fit by polynomials, arbitrary data points E02AEF Evaluation of fitted functions, polynomial in one variable, from Chebyshev series form (simplified parameter list) E02AFF Least-squares curve fit by polynomials, special data points (including interpolation) E02AGF Least-squares curve fit by polynomials, arbitrary data points, values and derivatives may be constrained E02AHF Derivative of fitted polynomial in Chebyshev series form E02AJF Integral of fitted polynomial in Chebyshev series form E02AKF Evaluation of fitted functions, polynomial in one variable, from Chebyshev series form E02BAF Least-squares curve fit by cubic splines (including interpolation) E02BBF Evaluation of fitted functions, cubic spline as E02BAF, function only E02BCF Evaluation of fitted functions, cubic spline as E02BAF, function and derivatives E02BDF Evaluation of fitted functions, cubic spline as E02BAF, definite integral E02CAF Least-squares surface fit by polynomials, for data on lines E02CBF Evaluation of fitted functions, polynomial in 2 variables as E02CAF E02DAF Least-squares surface fit by bicubic splines E02DBF Evaluation of fitted functions, bicubic spline as E02DAF E02GAF L(1)-approximation by general linear function E02GBF L(1)-approximation by general linear function subject to linear inequality constraints E02GCF L(infinity)-approximation by general linear function E02RAF Pade-approximants E02RBF Evaluation of fitted functions, rational function as E02RAF E02ZAF Sort 2-D data into panels for fitting or evaluating bicubic splines F01AAF Real matrix, approximate inverse F01ABF Real symmetric positive-definite matrix, accurate inverse (simplified parameter list) F01ACF Real symmetric positive-definite matrix, accurate inverse F01ADF Real symmetric positive-definite matrix, approximate inverse F01AEF Reduction to standard form, generalised real symmetric eigenproblem, Ax=kBx with B positive-definite F01AFF Backtransformation of eigenvectors from those of reduced forms, real symmetric eigenproblem Ax=kBx or ABx=kx, after reduction to standard F01AGF Reduction by similarity transformations, real symmetric matrix to tridiagonal form, full storage F01AHF Backtransformation of eigenvectors from those of reduced forms, real symmetric matrix, after reduction to tridiagonal, full storage F01AJF Reduction by similarity transformations, real symmetric matrix to tridiagonal form, full storage, accumulating product of transformations F01AKF Reduction by similarity transformations, real matrix to upper Hessenberg form F01ALF Backtransformation of eigenvectors from those of reduced forms, real matrix, after reduction to upper Hessenberg F01AMF Reduction by similarity transformations, complex matrix to upper Hessenberg form F01ANF Backtransformation of eigenvectors from those of reduced forms, complex matrix, after reduction to upper Hessenberg F01APF Reduction by similarity transformations, accumulation of product of transformations generated by F01AKF F01ATF Balancing by diagonal similarity transformations, real matrix F01AUF Backtransformation of eigenvectors from those of reduced forms, real matrix, after balancing F01AVF Balancing by diagonal similarity transformations, complex matrix F01AWF Backtransformation of eigenvectors from those of reduced forms, complex matrix, after balancing F01AXF QR-factorisation, real m x n matrix (m>=n) with column pivoting F01AYF Reduction by similarity transformations, real symmetric matrix to tridiagonal form, packed storage F01AZF Backtransformation of eigenvectors from those of reduced forms, real symmetric matrix, after reduction to tridiagonal, packed storage F01BCF Reduction by similarity transformations, complex Hermitian matrix to real tridiagonal form F01BDF Reduction to standard form, generalised real symmetric eigenproblem, ABx=kx or BAx=kx with B positive-definite F01BEF Backtransformation of eigenvectors from those of reduced forms, real symmetric eigenproblem BAx=kx, after reduction to standard F01BLF Pseudo-inverse and rank of a real m x n matrix (m>=n) F01BNF LLH-factorisation, complex Hermitian positive-definite matrix F01BPF Complex Hermitian positive-definite matrix, inverse F01BQF LDLT-factorisation of A+E, with A symmetric and E diagonal, packed storage F01BRF LU-factorisation, real sparse matrix F01BSF LU-factorisation, real sparse matrix with same sparsity pattern as a matrix previously factorised by F01BRF F01BTF LU-factorisation, real matrix F01BUF ULDLTUT-factorisation, real symmetric positive-definite band matrix F01BVF Reduction to standard form, generalised real symmetric eigenproblem, Ax=kBx with A and B band matrices and B positive-definite F01BWF Reduction by similarity transformations, real symmetric band matrix to tridiagonal form F01BXF LLT-factorisation, real symmetric positive-definite matrix F01CAF Null matrix initialisation F01CBF Unit matrix initialisation F01CDF Matrix addition F01CEF Matrix subtraction F01CFF Partial matrix copy F01CGF Partial matrix addition F01CHF Partial matrix subtraction F01CKF Matrix multiplication F01CLF Matrix multiplication by transpose F01CMF Matrix copy F01CNF Copy vector to row of matrix F01CPF Vector copy F01CQF Null vector initialisation F01CRF Matrix transposition F01CSF Multiply vector by symmetric matrix (packed storage) F01DAF Scalar product added to initial value, real vectors, basic precision arithmetic F01DBF Scalar product added to initial value, real vectors, additional precision arithmetic F01DCF Scalar product, added to initial value, complex vectors, basic precision arithmetic F01DDF Scalar product, added to initial value, complex vectors, additional precision arithmetic F01DEF Scalar product of two real vectors F01LBF LU-factorisation, real band matrix F01LZF Reduction by similarity transformations, real matrix to bidiagonal form F01MCF LDLT-factorisation, real symmetric positive-definite variable-bandwidth matrix F01QAF QR-factorisation, real m x n matrix (m>=n) F01QBF RQ-factorisation, real m x n matrix (m<=n) F02AAF Real symmetric matrix, (black box), all eigenvalues F02ABF Real symmetric matrix, (black box), all eigenvalues and eigenvectors F02ADF Generalised real symmetric eigenproblem Ax=kBx with B positive-definite, (black box), all eigenvalues F02AEF Generalised real symmetric eigenproblem Ax=kBx with B positive-definite, (black box), all eigenvalues and eigenvectors F02AFF Real matrix, (black box), all eigenvalues F02AGF Real matrix, (black box), all eigenvalues and eigenvectors F02AJF Complex matrix, (black box), all eigenvalues F02AKF Complex matrix, (black box), all eigenvalues and eigenvectors F02AMF Real symmetric matrix, all eigenvalues and eigenvectors, after reduction to tridiagonal form by F01AJF, QL algorithm F02ANF Complex upper Hessenberg matrix, all eigenvalues, LR algorithm F02APF Real upper Hessenberg matrix, all eigenvalues, QR algorithm F02AQF Real matrix, all eigenvalues and eigenvectors, after reduction to upper Hessenberg form by F01AKF & F01APF, QR algorithm F02ARF Complex matrix, all eigenvalues and eigenvectors, after reduction to upper Hessenberg form by F01AMF, LR algorithm F02AVF Real symmetric tridiagonal matrix, all eigenvalues, QL algorithm F02AWF Complex Hermitian matrix, (black box), all eigenvalues F02AXF Complex Hermitian matrix, (black box), all eigenvalues and eigenvectors F02AYF Complex Hermitian matrix, all eigenvalues and eigenvectors, after reduction to real tridiagonal form by F01BCF, QL algorithm F02BBF Real symmetric matrix, (black box), selected eigenvalues and eigenvectors F02BCF Real matrix, (black box), selected eigenvalues and eigenvectors F02BDF Complex matrix, (black box), selected eigenvalues and eigenvectors F02BEF Real symmetric tridiagonal matrix, selected eigenvalues and eigenvectors, bisection and inverse iteration F02BFF Real symmetric tridiagonal matrix, selected eigenvalues, bisection F02BJF Generalised eigenproblem Ax=kBx, QZ algorithm, real matrices, (black box), all eigenvalues and (optionally) eigenvectors F02BKF Real upper Hessenberg matrix, selected eigenvectors, inverse iteration F02BLF Complex upper Hessenberg matrix, selected eigenvectors, inverse iteration F02GJF Generalised eigenproblem Ax=kBx, QZ algorithm, complex matrices, (black box), all eigenvalues and (optionally) eigenvectors F02SDF Generalised real eigenproblem Ax=kBx, with A and B band matrices, eigenvector by inverse iteration F02SZF Singular value decomposition of a real bidiagonal matrix F02WAF Singular value decomposition of a real m x n matrix, singular values and right singular vectors, (m>=n) F02WBF Singular value decomposition of a real m x n matrix, singular values and right singular vectors, (m<=n) F02WCF Singular value decomposition of a real m x n matrix, singular values and left and right singular vectors F02WDF Singular value decomposition of a real m x n matrix, singular values and (optionally) right singular vectors, optionally or conditionally following QU-factorisation (m>=n) G05CAF Pseudo-random real numbers, uniform distribution over (0.0,1.0) G05CBF Initialise random number generating routines, to give a repeatable sequence G05CCF Initialise random number generating routines, to give non-repeatable sequence G05CFF Save state of random number generating routines G05CGF Restore state of random number generating routines G05DAF Pseudo-random real numbers, uniform distribution over (A,B) G05DBF Pseudo-random real numbers, exponential distribution G05DCF Pseudo-random real numbers, logistic distribution G05DDF Pseudo-random real numbers, Normal distribution (A,B) G05DEF Pseudo-random real numbers, lognormal distribution G05DFF Pseudo-random real numbers, Cauchy distribution G05DGF Pseudo-random real numbers, Gamma distribution (G,H) G05DHF Pseudo-random real numbers, Chi-square distribution G05DJF Pseudo-random real numbers, Student's t-distribution G05DKF Pseudo-random real numbers, Snedecor's F-distribution G05DLF Pseudo-random real numbers, Beta distribution of the 1st kind G05DMF Pseudo-random real numbers, Beta distribution of the 2nd kind G05DPF Pseudo-random real numbers, Weibull distribution G05DYF Pseudo-random integer from uniform distribution G05DZF Pseudo-random logical value G05EAF Set up reference vector for multivariate Normal distribution G05EBF Set up reference vector for generating pseudo-random integers, uniform distribution G05ECF Set up reference vector for generating pseudo-random integers, Poisson distribution G05EDF Set up reference vector for generating pseudo-random integers, binomial distribution G05EEF Set up reference vector for generating pseudo-random integers, negative binomial distribution G05EFF Set up reference vector for generating pseudo-random integers, hypergeometric distribution G05EGF Set up reference vector for univariate ARMA time-series model G05EHF Pseudo-random permutation of an integer vector G05EJF Pseudo-random sample from an integer vector G05EWF Generate next term from ARMA time-series using G05EGF vector G05EXF Set up reference vector from supplied cumulative distribution function or probability distribution function G05EYF Pseudo-random integer from reference vector G05EZF Pseudo-random multivariate Normal vector from reference vector F03AAF Determinant, (black box), real matrix F03ABF Determinant, (black box), real symmetric positive-definite matrix F03ACF Determinant, (black box), real symmetric positive-definite band matrix F03ADF Determinant, (black box), complex matrix F03AEF LLT-factorisation and determinant, real symmetric positive-definite matrix F03AFF LU-factorisation and determinant, real matrix F03AGF LLT-factorisation and determinant, real symmetric positive-definite band matrix F03AHF LU-factorisation and determinant, complex matrix F03AMF Determinant of a complex Hermitian positive-definite matrix, after factorisation by F01BNF M01AAF Leaving vector unchanged provide an index to its sorted order, real numbers, ascending order M01ABF Leaving vector unchanged provide an index to its sorted order, real numbers, descending order M01ACF Leaving vector unchanged provide an index to its sorted order, integers, ascending order M01ADF Leaving vector unchanged provide an index to its sorted order, integers, descending order M01AEF Sort the rows of a matrix on keys in an index column, real numbers, ascending order M01AFF Sort the rows of a matrix on keys in an index column, real numbers, descending order M01AGF Sort the rows of a matrix on keys in an index column, integers, ascending order M01AHF Sort the rows of a matrix on keys in an index column, integers, descending order M01AJF Sort a vector and provide an index to the original order, real numbers, ascending order M01AKF Sort a vector and provide an index to the original order, real numbers, descending order M01ALF Sort a vector and provide an index to the original order, integers, ascending order M01AMF Sort a vector and provide an index to the original order, integers, descending order M01ANF Sort a vector, Singleton's implementation of Quicksort, real numbers, ascending order M01APF Sort a vector, Singleton's implementation of Quicksort, real numbers, descending order M01AQF Sort a vector, Singleton's implementation of Quicksort, integers, ascending order M01ARF Sort a vector, Singleton's implementation of Quicksort, integers, descending order M01BAF Sort a vector, Singleton's implementation of Quicksort, character data, reverse alphanumeric order M01BBF Sort a vector, Singleton's implementation of Quicksort, character data, alphanumeric order M01BCF Sort the columns of a matrix on keys in an index row, character data, reverse alphanumeric order M01BDF Sort the columns of a matrix on keys in an index row, character data, alphanumeric order F05AAF Schmidt orthogonalisation of N vectors of order M F05ABF Approximate 2-norm of a vector G02BAF Pearson product-moment correlation coefficients, all variables, no missing values G02BBF Pearson product-moment correlation coefficients, all variables, casewise treatment of missing values G02BCF Pearson product-moment correlation coefficients, all variables, pairwise treatment of missing values G02BDF "Correlation-like" coefficients (about zero), all variables, no missing values G02BEF "Correlation-like" coefficients (about zero), all variables, casewise treatment of missing values G02BFF "Correlation-like" coefficients (about zero), all variables, pairwise treatment of missing values G02BGF Pearson product-moment correlation coefficients, subset of variables, no missing values G02BHF Pearson product-moment correlation coefficients, subset of variables, casewise treatment of missing values G02BJF Pearson product-moment correlation coefficients, subset of variables, pairwise treatment of missing values G02BKF "Correlation-like" coefficients (about zero), subset of variables, no missing values G02BLF "Correlation-like" coefficients (about zero), subset of variables, casewise treatment of missing values G02BMF "Correlation-like" coefficients (about zero), subset of variables, pairwise treatment of missing values G02BNF Kendall/Spearman non-parametric rank correlation coefficients, no missing values, overwriting input data G02BPF Kendall/Spearman non-parametric rank correlation coefficients, casewise treatment of missing values, overwriting input data G02BQF Kendall/Spearman non-parametric rank correlation coefficients, no missing values, preserving input data G02BRF Kendall/Spearman non-parametric rank correlation coefficients, casewise treatment of missing values, preserving input data G02BSF Kendall/Spearman non-parametric rank correlation coefficients, pairwise treatment of missing values G02CAF Simple linear regression with constant term, no missing values G02CBF Simple linear regression without constant term, no missing values G02CCF Simple linear regression with constant term, missing values G02CDF Simple linear regression without constant term, missing values G02CEF Service routines for multiple linear regression, select elements from vectors and matrices G02CFF Service routines for multiple linear regression, re-order elements of vectors and matrices G02CGF Multiple linear regression, from correlation coefficients, with constant term G02CHF Multiple linear regression, from "correlation-like" coefficients, without constant term G02CJF Multiple linear regression, from original data, several dependent variables G04ADF Three-way analysis of variance, Latin square design G04AEF One-way analysis of variance, subgroups of unequal size G04AFF Two-way analysis of variance, cross-classification, subgroups of equal size G04AGF Two-way analysis of variance, hierarchial classification, subgroups of unequal size G13AAF Univariate series, seasonal and non-seasonal differencing G13ABF Univariate series, sample autocorrelation function G13ACF Univariate series, partial autocorrelations from autocorrelations G13ADF Univariate series, preliminary estimation of ARMA model G13AEF Univariate series, estimation of seasonal ARIMA model (comprehensive) G13AFF Univariate series, estimation of seasonal ARIMA model (easy-to-use) G13AGF Univariate series, update state set for forecasting G13AHF Univariate series, forecasting from state set G13AJF Univariate series, state set and forecasts from fully specified seasonal ARIMA model G13BAF Bivariate series, filtering a time series by an ARIMA model G13BCF Bivariate series, cross correlations G13CAF Univariate series, smoothed sample spectrum using rectangular, Bartlett, Tukey or Parzen lag window G13CBF Univariate series, smoothed sample spectrum using spectral smoothing by the trapezium frequency (Daniell) window G13CCF Bivariate series, smoothed sample cross spectrum using rectangular, Bartlett, Tukey or Parzen lag window G13CDF Bivariate series, smoothed sample cross spectrum using spectral smoothing by the trapezium frequency (Daniell) window G13CEF Bivariate series, cross amplitude spectrum, squared coherency, bounds for univariate and bivariate (cross) spectra G13CFF Bivariate series, gain, phase, bounds for univariate and bivariate (cross) spectra G13CGF Bivariate series, noise spectrum, bounds, impulse response function and its standard error G08AAF Sign test on two paired samples G08ABF Wilcoxon matched pairs signed ranks test on two paired samples G08ACF Median test on two samples of unequal size G08ADF Mann-Whitney U-test on two samples of unequal size G08AEF Friedman two-way analysis of variance on k matched samples G08AFF Kruskal-Wallis one-way analysis of variance on k samples of unequal size G08BAF Mood's and David's tests on two samples of unequal size G08CAF Kolmogorov-Smirnov one-sample distribution test G08DAF Kendall's coefficient of concordance X03AAF Real innerproduct added to initial value, basic/additional precision X03ABF Complex innerproduct added to initial value, basic/additional precision H01ABF Linear programming, simplex algorithm, one iteration H01ADF Linear programming, revised simplex method H01AFF Find feasible point or vertex satisfying linear constraints H01BAF Linear programming, numerically stable form of simplex method H02AAF Quadratic programming, Beale's method H02BAF Integer linear programming, Gomory's method with Wilson's cuts H03ABF Transportation problem J06 J06AAF Pair of axes for the current data region, automatic annotation J06ABF Pair of axes for the current data region, user-specifiable annotation J06ACF Grid for the current data region, automatic annotation J06ADF Grid for the current data region, user-specifiable annotation J06AEF Scaled border for the current data region, automatic annotation J06AFF Scaled border for the current data region, user-specifiable annotation J06AGF Single axis under user control J06AHF Plot title, centred at the top of the current data region J06AJF Axis title, centred at the side or bottom of the current data region J06BAF Plot data points with optional straight lines and markers J06CAF Plot single-valued curve through data points J06CBF Plot single-valued curve through data points, called point-wise J06CCF Plot possibly multi-valued curve through data points J06CDF Plot possibly multi-valued curve through data points, called point-wise J06EAF Plot user-supplied function over specified range J06EBF Plot user-supplied function over specified range, called point-wise J06FAF Plot cubic spline in an interval, from its B-spline representation J06GAF Contour map, (easy-to-use), data on regular rectangular grid J06GBF Contour map, (comprehensive), data on regular rectangular grid J06GCF Contour map, (easy-to-use), data on irregular rectangular grid J06GDF Contour map, (comprehensive), data on irregular rectangular grid J06GEF Contour map, (easy-to-use), user-supplied function J06GFF Contour map, (comprehensive), user-supplied function J06GZF Key to contour plot J06HAF Isometric surface view, data on regular rectangular grid, easy-to-use J06HBF Isometric surface view, data on regular rectangular grid, comprehensive J06AAF ROUTINE J06AAF NAG GRAPHICAL SUPPLEMENT ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked //...// may be implementation dependent. A. Purpose ========== //J06AAF// draws a pair of annotated axes to fit the current data region. B. Specification ================ SUBROUTINE //J06AAF// C. Parameters ============= None. D. Error Indicators and Warnings ================================ None. ------ END OF J06AAF GRAPHICAL SUPPLEMENT SUMMARY - MARK 1 NOVEMBER 1981 ------ J06ABF ROUTINE J06ABF NAG GRAPHICAL SUPPLEMENT ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked //...// may be implementation dependent. A. Purpose ========== //J06ABF// draws a pair of annotated axes to fit the current data region. The tick mark interval on each axis may be specified by the user or calculated automatically. B. Specification ================ SUBROUTINE //J06ABF// (DX, DY) C //real// DX, DY C. Parameters ============= DX - //real//. On entry, DX must specify the X axis tick mark interval size in user co-ordinates. Unchanged on exit. DY - //real//. On entry, DY must specify the Y axis tick mark interval size in user co-ordinates. Unchanged on exit. D. Error Indicators and Warnings ================================ None. ------ END OF J06ABF GRAPHICAL SUPPLEMENT SUMMARY - MARK 1 NOVEMBER 1981 ------ J06ACF ROUTINE J06ACF NAG GRAPHICAL SUPPLEMENT ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked //...// may be implementation dependent. A. Purpose ========== //J06ACF// draws a grid (or graticule) to fit the current data region. B. Specification ================ SUBROUTINE //J06ACF// C. Parameters ============= None. D. Error Indicators and Warnings ================================ None. ------ END OF J06ACF GRAPHICAL SUPPLEMENT SUMMARY - MARK 1 NOVEMBER 1981 ------ J06ADF ROUTINE J06ADF NAG GRAPHICAL SUPPLEMENT ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked //...// may be implementation dependent. A. Purpose ========== //J06ADF// draws a grid (or graticule) to fit the current data region. The grid line interval for each axis may be specified by the user or calculated automatically. B. Specification ================ SUBROUTINE //J06ADF// (DX, DY) C //real// DX, DY C. Parameters ============= DX - //real//. On entry, DX must specify the X axis grid line interval in user co-ordinates. Unchanged on exit. DY - //real//. On entry, DY must specify the Y axis grid line interval in user co-ordinates. Unchanged on exit. D. Error Indicators and Warnings ================================ None. ------ END OF J06ADF GRAPHICAL SUPPLEMENT SUMMARY - MARK 1 NOVEMBER 1981 ------ J06AEF ROUTINE J06AEF NAG GRAPHICAL SUPPLEMENT ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked //...// may be implementation dependent. A. Purpose ========== //J06AEF// draws a scaled border to fit the current data region. B. Specification ================ SUBROUTINE //J06AEF// C. Parameters ============= None. D. Error Indicators and Warnings ================================ None. ------ END OF J06AEF GRAPHICAL SUPPLEMENT SUMMARY - MARK 1 NOVEMBER 1981 ------ J06AFF ROUTINE J06AFF NAG GRAPHICAL SUPPLEMENT ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked //...// may be implementation dependent. A. Purpose ========== //J06AFF// draws a scaled border to fit the current data region. The tick mark intervals may be specified by the user or calculated automatically. B. Specification ================ SUBROUTINE //J06AFF// (DX, DY) C //real// DX, DY C. Parameters ============= DX - //real//. On entry, DX must specify the X axis tick mark interval in user co-ordinates. Unchanged on exit. DY - //real//. On entry, DY must specify the Y axis tick mark interval in user co-ordinates. Unchanged on exit. D. Error Indicators and Warnings ================================ None. ------ END OF J06AFF GRAPHICAL SUPPLEMENT SUMMARY - MARK 1 NOVEMBER 1981 ------ J06AGF ROUTINE J06AGF NAG GRAPHICAL SUPPLEMENT ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked //...// may be implementation dependent. A. Purpose ========== //J06AGF// draws a single axis with user control over range, annotation and positioning. B. Specification ================ SUBROUTINE //J06AGF// (IAXIS, AMIN, AMAX, 1 MAXINT, DINT, ILABS, THRU, LABTM, 2 NFORM, NDIM) C INTEGER IAXIS, MAXINT, ILABS, C 1 LABTM(NDIM), NFORM, NDIM C //real// AMIN, AMAX, DINT, THRU C. Parameters ============= IAXIS - INTEGER. On entry, IAXIS must specify the axis to be drawn. If IAXIS.LE.1, the X axis will be drawn. If IAXIS.GT.1, the Y axis will be drawn. Unchanged on exit. AMIN - //real//. AMAX - //real//. On entry, AMIN and AMAX must specify the range of the axis in user co-ordinates. If AMIN = AMAX the call is ignored. Unchanged on exit. MAXINT - INTEGER. On entry, MAXINT must specify the maximum number of tick mark intervals required. If MAXINT.LT.1, then the interval size DINT is used. Unchanged on exit. DINT - //real//. On entry, DINT must specify the required interval size (if MAXINT.LT.1). If DINT.LE.0.0 then an automatically calculated interval size is used. If MAXINT.GE.1, DINT is not referenced. Unchanged on exit. ILABS - INTEGER. On entry, ILABS must specify the tick mark annotation option required:- -2 user-supplied labels centred between tick marks -1 user-supplied labels centred on tick marks 0 full automatic annotation 1 tick marks only 2 no annotation or tick marks If, on entry, ILABS is out of range, then ILABS = 1 is assumed. Unchanged on exit. THRU - //real//. On entry, THRU must specify the point on the other axis through which this axis will be drawn. Unchanged on exit. LABTM - INTEGER array of DIMENSION (NDIM). Before entry, LABTM must contain the user-supplied tick mark labels, for use if ILABS = -1 or -2. If ILABS.GE.0, a dummy array of at least one element must be supplied, but is not referenced. Unchanged on exit. NFORM - INTEGER. On entry, NFORM must specify the format of the labels in LABTM, if any. The labels will be assumed to be held in Aw format, with w = NFORM. 1.LE.NFORM.LE.20. If NFORM.GT.20, then NFORM = 20 is assumed. If ILABS.LT.0 and NFORM.LT.1 then ILABS = 1 is assumed. Unchanged on exit. NDIM - INTEGER. On entry, NDIM must specify the dimension of the array LABTM. NDIM.GE.1. Unchanged on exit. D. Error Indicators and Warnings ================================ None. ------ END OF J06AGF GRAPHICAL SUPPLEMENT SUMMARY - MARK 1 NOVEMBER 1981 ------ J06AHF ROUTINE J06AHF NAG GRAPHICAL SUPPLEMENT ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked //...// may be implementation dependent. A. Purpose ========== //J06AHF// draws a centred title of up to 80 characters at the top of the data region. B. Specification ================ SUBROUTINE //J06AHF// (ITITLE, NCHARS) C INTEGER ITITLE(NCHARS), NCHARS C. Parameters ============= ITITLE - INTEGER array of DIMENSION (NCHARS). Before entry, ITITLE must contain the title to be output. The title must be stored with //nchar// characters to each word. The value of //nchar// can be found in the appropriate NAG Library implementation document, in the section on Chapter M01. Note that although only the first NCHARS/n (where n = //nchar// elements of ITITLE are used, ITITLE must be declared to be of length NCHARS. Alternatively, a Hollerith string of length NCHARS may be supplied. The contents of ITITLE are unchanged on exit. NCHARS - INTEGER. On entry, NCHARS must specify the number of characters in the title (which is equal to the dimension of the array ITITLE, if used). 1.LE.NCHARS.LE.80. Unchanged on exit. D. Error Indicators and Warnings ================================ None. ------ END OF J06AHF GRAPHICAL SUPPLEMENT SUMMARY - MARK 1 NOVEMBER 1981 ------ J06AJF ROUTINE J06AJF NAG GRAPHICAL SUPPLEMENT ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked //...// may be implementation dependent. A. Purpose ========== //J06AJF// draws an axis title of up to 30 characters in length. B. Specification ================ SUBROUTINE //J06AJF// (IAXIS, ITITLE, NCHARS) C INTEGER IAXIS, ITITLE(NCHARS), NCHARS C. Parameters ============= IAXIS - INTEGER. On entry, IAXIS must specify the axis to be titled. If IAXIS.LE.1, the X axis will be titled. If IAXIS.GT.1, the Y axis will be titled. Unchanged on exit. ITITLE - INTEGER array of DIMENSION (NCHARS). Before entry, ITITLE must contain the title to be output. The title must be stored with //nchar// characters to each word. The value of //nchar// can be found in the appropriate NAG Library implementation document, in the section on Chapter M01. Note that although only the first NCHARS/n (where n = //nchar)// elements of ITITLE are used, ITITLE must be declared to be of length NCHARS. Alternatively, a Hollerith string of length NCHARS may be supplied. The contents of ITITLE are unchanged on exit. NCHARS - INTEGER. On entry, NCHARS must specify the number of characters in the title (which is equal to the dimension of the array ITITLE, if used). 1.LE.NCHARS.LE.30. Unchanged on exit. D. Error Indicators and Warnings ================================ None. ------ END OF J06AJF GRAPHICAL SUPPLEMENT SUMMARY - MARK 1 NOVEMBER 1981 ------ J06BAF ROUTINE J06BAF NAG GRAPHICAL SUPPLEMENT ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked //...// may be implementation dependent. A. Purpose ========== //J06BAF// plots a series of data points, optionally connecting the points with straight lines, and optionally marking each point with a chosen symbol. B. Specification ================ SUBROUTINE //J06BAF// (X, Y, N, ITYPE, KSYM, 1 IFAIL) C INTEGER N, ITYPE, KSYM, IFAIL C //real// X(N), Y(N) C. Parameters ============= X - //real// array of DIMENSION at least (N). On entry, X(i) must contain x(i), the X co-ordinate of the i(th) data point to be plotted. Unchanged on exit. Y - //real// array of DIMENSION at least (N). On entry, Y(i) must contain y(i), the Y co-ordinate of the i(th) data point to be plotted. Unchanged on exit. N - INTEGER. On entry, N must specify the number of data points to be plotted. N.GE.1. Unchanged on exit. ITYPE - INTEGER. On entry, ITYPE must specify the option required - 0 - symbols only are plotted 1 - lines only 2 - both lines and symbols -1 - as for ITYPE = 1, but in addition a line is drawn from (X(N),Y(N)) to (X(1),Y(1)) to close the polygon -2 - as for ITYPE = 2, but again the polygon is closed. If ITYPE is out of range, then the value 1 is assumed. Unchanged on exit. KSYM - INTEGER. On entry, KSYM must specify the plotting symbol to be used to mark the data points. (1.LE.KSYM.LE.9). The symbols available with each version of the NAG Graphical Interface are reproduced in the Appendix to the Essential Introduction to the Supplement Manual. Unchanged on exit. IFAIL - INTEGER. Before entry, IFAIL must be assigned a value. For users not familiar with this parameter (described in Chapter P01 of the NAG FORTRAN Library Manual or the NAG On-line Information Supplement) the recommended value is 0. Unless the routine detects an error (see next section), IFAIL contains 0 on exit. D. Error Indicators and Warnings ================================ Errors detected by the routine:- IFAIL = 1 N.LT.1. No data points. ------ END OF J06BAF GRAPHICAL SUPPLEMENT SUMMARY - MARK 1 NOVEMBER 1981 ------ J06CAF ROUTINE J06CAF NAG GRAPHICAL SUPPLEMENT ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked //...// may be implementation dependent. A. Purpose ========== //J06CAF// draws a smooth single-valued curve through a set of data points. B. Specification ================ SUBROUTINE //J06CAF// (AX, AY, N, METHOD, 1 IFAIL) C INTEGER N, METHOD, IFAIL C //real// AX(N), AY(N) C. Parameters ============= AX - //real// array of DIMENSION at least (N). AY - //real// array of DIMENSION at least (N). Before entry, AX(i), AY(i) must contain the X co-ordinate and Y co-ordinate of the data point (x(i),y(i)) for i = 1,2,...,n. The values AX(1),AX(2),...,AX(N) must be either non-decreasing, or non-increasing. Unchanged on exit. N - INTEGER. On entry, N must specify the number of data points. N.GE.2. Unchanged on exit. METHOD - INTEGER. On entry, METHOD must specify the choice of method used to estimate the slopes of the curve at data points. METHOD = 1 - Piecewise monotonic method METHOD = 2 - Cubic Bessel method Generally speaking, METHOD = 1 gives a rather tight-fitting curve, METHOD = 2 a somewhat looser curve (see plots from example program). METHOD = 2 is recommended as an initial try. Unchanged on exit. IFAIL - INTEGER. For this routine, the normal use of IFAIL is extended to control the printing of error messages as well as specifying hard or soft failure (see Chapter P01 of the NAG FORTRAN Library Manual or NAG On-line Information Supplement). Before entry, IFAIL must be set to a value with the decimal expansion ba, where each of the decimal digits b, a must have the value 0 or 1. a = 0 specifies hard failure, otherwise soft failure. b = 0 suppresses error messages, otherwise error messages will be printed (see next section). The recommended value for inexperienced users is 10 (i.e. hard failure with error messages printed). Unless the routine detects an error (see next section), IFAIL contains 0 on exit. D. Error Indicators and Warnings ================================ Errors detected by the routine:- For each error, the routine outputs an explanatory error message on the current error message unit (see NAG FORTRAN Library routine //X04AAF//), unless suppressed by the value of IFAIL on entry. IFAIL = 1 On entry, N.LT.2 or METHOD.NE.1 or 2. IFAIL = 2 X co-ordinates of data points not monotonic. AX(I), I = 1,2,...,N, must satisfy either AX(1).LE.AX(2).LE.....LE.AX(N) or AX(1).GE.AX(2).GE.....GE.AX(N). In both cases no curve is drawn. ------ END OF J06CAF GRAPHICAL SUPPLEMENT SUMMARY - MARK 1 NOVEMBER 1981 ------ J06CBF ROUTINE J06CBF NAG GRAPHICAL SUPPLEMENT ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked //...// may be implementation dependent. A. Purpose ========== //J06CBF// draws a smooth single-valued curve through a set of data points, the routine being called once for each point. B. Specification ================ SUBROUTINE //J06CBF// (X, Y, IXCODE, G, 1 IGCODE, TOLX, STORE, IFAIL) C INTEGER IXCODE, IGCODE, IFAIL C //real// X, Y, G, TOLX, STORE(15) C. Parameters ============= X - //real//. Y - //real//. On entry, X,Y must contain the X and Y co-ordinates of the next data point on the curve. The successive X co-ordinates must be either non-decreasing or non-increasing. Unchanged on exit. IXCODE - INTEGER. On entry, IXCODE must specify the type of point (X,Y) supplied and selects the method of drawing required, as follows:- IXCODE = 1 means that (X,Y) is the first point and that the piecewise monotonic method is to be used. IXCODE = 2 means that (X,Y) is the first point and that the cubic Bessel method is to be used. IXCODE = 0 means that (X,Y) is an intermediate point. IXCODE = 9 means that (X,Y) is the last point. Unchanged on exit. G - //real//. On entry, if IGCODE = 1, G must specify to the slope of the curve at (X,Y) as supplied by the user. Unchanged on exit. IGCODE - INTEGER. On entry, IGCODE must be set to 0 if the slope at (X,Y) is to be estimated by the routine, and to 1 if supplied by the user in G. Unchanged on exit. TOLX - //real//. On entry, TOLX must be set to the smallest difference in successive X co-ordinates to be regarded as significant. Any point whose X co-ordinate differs by less than TOLX from that of its predecessor will be ignored. Unchanged on exit. STORE - //real// array of DIMENSION at least (15). Used as workspace. The contents of STORE must not be altered between calls to the routine. IFAIL - INTEGER. For this routine, the normal use of IFAIL is extended to control the printing of error messages as well as specifying hard or soft failure (see Chapter P01 of the NAG FORTRAN Library manual or NAG On-line Information Supplement). Before entry, IFAIL must be set to a value with the decimal expansion ba, where each of the decimal digits b, a must have the value 0 or 1. a = 0 specifies hard failure, otherwise soft failure. b = 0 suppresses error messages, otherwise error messages will be printed (see next section). The recommended value for inexperienced users is 10 (i.e. hard failure with error messages printed). Unless the routine detects an error (see next section), IFAIL contains 0 on exit. D. Error Indicators and Warnings ================================ Errors detected by the routine:- For each error, the routine outputs an explanatory error message on the current error message unit (see NAG FORTRAN Library routine //X04AAF//), unless suppressed by the value of IFAIL on entry. IFAIL = 1 Illegal value of IXCODE or IGCODE on entry, see section C. IFAIL = 2 X co-ordinates of data points not monotonic. Successive X co-ordinates must be either non-decreasing or non-increasing. In these cases no curve section is drawn. ------ END OF J06CBF GRAPHICAL SUPPLEMENT SUMMARY - MARK 1 NOVEMBER 1981 ------ J06CCF ROUTINE J06CCF NAG GRAPHICAL SUPPLEMENT ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked //...// may be implementation dependent. A. Purpose ========== //J06CCF// draws a smooth, possibly multi-valued, curve through a set of data points. The curve may be open or closed. B. Specification ================ SUBROUTINE //J06CCF// (AX, AY, N, METHOD, 1 IFAIL) C INTEGER N, METHOD, IFAIL C //real// AX(N), AY(N) C. Parameters ============= AX - //real// array of DIMENSION at least (N). AY - //real// array of DIMENSION at least (N). Before entry, AX(i),AY(i) must contain the X and Y co-ordinates of the (i)th data point, (x(i),y(i)), for i = 1,2,...,N. Unchanged on exit. N - INTEGER. Before entry, N must specify the number of data points. N.GE.2. Unchanged on exit. METHOD - INTEGER. On entry, METHOD must specify the choice of curve drawing method, and whether the curve is open or closed. METHOD = 1 - Butland's method, open curve. METHOD = 2 - McConalogue's method, open curve. METHOD = -1 - Butland's method, closed curve. METHOD = -2 - McConalogue's method, closed curve. McConalogue's method is recommended in the first instance - see the Graphical Supplement routine document. Unchanged on exit. IFAIL - INTEGER. For this routine, the normal use of IFAIL is extended to control the printing of error messages as well as specifying hard or soft failure (see Chapter P01 of the NAG FORTRAN Library Manual or NAG On-line Information Supplement). Before entry, IFAIL must be set to a value with the decimal expansion ba, where each of the decimal digits b, a must have the value 0 or 1. a = 0 specifies hard failure, otherwise soft failure. b = 0 suppresses error messages, otherwise error messages will be printed (see next section). The recommended value for inexperienced users is 10 (i.e. hard failure with error messages printed). Unless the routine detects an error (see next section), IFAIL contains 0 on exit. D. Error Indicators and Warnings ================================ Errors detected by the routine:- For each error, the routine outputs an explanatory error message on the current error message unit (see NAG FORTRAN Library routine //X04AAF//), unless suppressed by the value of IFAIL on entry. IFAIL = 1 Error in input parameters: either N.LT.2 or METHOD not equal to 1,2,-1 or -2. In these cases no curve is drawn. ------ END OF J06CCF GRAPHICAL SUPPLEMENT SUMMARY - MARK 1 NOVEMBER 1981 ------ J06CDF ROUTINE J06CDF NAG GRAPHICAL SUPPLEMENT ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked //...// may be implementation dependent. A. Purpose ========== //J06CDF// draws a smooth, possibly multivalued, curve through a set of data points, the routine being called once for each point. The curve may be open or closed. B. Specification ================ SUBROUTINE //J06CDF// (X, Y, IXCODE, GX, GY, 1 IGCODE, TOLX, TOLY, STORE, IFAIL) C INTEGER IXCODE, IGCODE, IFAIL C //real// X, Y, GX, GY, TOLX, TOLY, STORE(28) C. Parameters ============= X - //real//. Y - //real//. On entry, X, Y must contain the X and Y co-ordinates of the next data point on the curve. Unchanged on exit. IXCODE - INTEGER. On entry, IXCODE must specify the type of point (X,Y) supplied and selects the method of drawing required, as follows:- IXCODE = 1 means that (X,Y) is the first point and that Butland's method is to be used to draw an open curve. IXCODE = -1 as IXCODE = 1 except that the curve is to be closed. IXCODE = 2 means that (X,Y) is the first point and that McConalogue's method is to be used to draw an open curve. IXCODE = -2 as IXCODE = 2 except that the curve is to be closed. IXCODE = 0 means that (X,Y) is an intermediate point. IXCODE = 9 means that (X,Y) is the last point. Unchanged on exit. GX - //real//. GY - //real//. On entry, if IGCODE = 1, GX, GY must contain information about the slope of the curve at (X,Y). The curve will be drawn so that its slope at (X,Y) is GY/GX. For McConalogue's method, only the ratio of GY to GX is used; multiplying GY and GX by the same factor does not alter the shape of the curve. In particular, users will usually find it most convenient to set GX,GY to the direction cosines of the curve at (X,Y). For Butland's method, the individual values of GY and GX affect the shape of the curve; GX and GY must specify the derivatives dx(t)/dt and of the curve (x(t),y(t)) with respect to the parameter t. The parameter interval between points is 1 (i.e. t has the value 0 at the first point, 1 at the second point, and so on). Unchanged on exit. IGCODE - INTEGER. On entry, IGCODE must be set to 0 if the slope at (X,Y) is to be estimated by the routine, and to 1 if the slope at (X,Y) is to be specified by the user in GX,GY. Unchanged on exit. TOLX - //real//. TOLY - //real//. On entry, TOLX,TOLY must be set to the smallest differences in the X and Y co-ordinates of successive points to be regarded as significant. Any point whose co-ordinates differ by less than TOLX and TOLY from its predecessor will be ignored. Unchanged on exit. STORE - //real// array of DIMENSION at least (28). Used as workspace. The contents of STORE must not be altered between calls of the routine. IFAIL - INTEGER. For this routine, the normal use of IFAIL is extended to control the printing of error messages as well as specifying hard or soft failure (see Chapter P01 of the NAG FORTRAN Library Manual or NAG On-line Information Supplement). Before entry, IFAIL must be set to a value with the decimal expansion ba, where each of the decimal digits b, a must have the value 0 or 1. a = 0 specifies hard failure, otherwise soft failure. b = 0 suppresses error messages, otherwise error messages will be printed (see next section). The recommended value for inexperienced users is 10 (i.e. hard failure with error messages printed). Unless the routine detects an error (see next section), IFAIL contains 0 on exit. D. Error Indicators and Warnings ================================ Errors detected by the routine:- For each error, the routine outputs an explanatory error message on the current error message unit (see NAG FORTRAN Library routine //X04AAF//), unless suppressed by the value of IFAIL on entry. IFAIL = 1 Illegal value of IXCODE or IGCODE on entry (see Section C). In this case no curve section is drawn. ------ END OF J06CDF GRAPHICAL SUPPLEMENT SUMMARY - MARK 1 NOVEMBER 1981 ------ J06EAF ROUTINE J06EAF NAG GRAPHICAL SUPPLEMENT ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked //...// may be implementation dependent. A. Purpose ========== //J06EAF// draws a user-supplied function over a specified range. B. Specification ================ SUBROUTINE //J06EAF// (FUNCT, X1, X2) C //real// FUNCT, X1, X2 C EXTERNAL FUNCT C. Parameters ============= FUNCT - //real// FUNCTION, supplied by the user. FUNCT is the function which is to be drawn. Its specification is:- //real// FUNCTION FUNCT(X) C //real// X X - //real//. On entry, X specifies the point at which the function is to be evaluated. X must not be changed by FUNCT. FUNCT must be declared as EXTERNAL in the (sub)program from which //J06EAF// is called. X1 - //real//. X2 - //real//. On entry, X1 and X2 must specify the endpoints of the range over which the function is to be drawn. Either parameter may have the greater value. Unchanged on exit. D. Error Indicators and Warnings ================================ None. ------ END OF J06EAF GRAPHICAL SUPPLEMENT SUMMARY - MARK 1 NOVEMBER 1981 ------ J06EBF ROUTINE J06EBF NAG GRAPHICAL SUPPLEMENT ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked //...// may be implementation dependent. A. Purpose ========== //J06EBF// draws a series of straight line segments approximating to a series of data points, being called once for each point (X,Y). The routine may be used to draw a function where the user wishes to determine which values of the function to compute. B. Specification ================ SUBROUTINE //J06EBF// (X, Y, ICODE, STORE, 1 IFAIL) C INTEGER ICODE, IFAIL C //real// X, Y, STORE(9) C. Parameters ============= X - //real//. On entry, X must specify the X co-ordinate of the next data point. The series of values of X in successive calls to //J06EBF// need not be monotonic. Unchanged on exit. Y - //real//. On entry, Y must specify the Y co-ordinate of the next data point. Unchanged on exit. ICODE - INTEGER. On entry, ICODE must specify information about the point (X,Y). ICODE 1 first data point of a line 9 last data point of a line 0 any other data point The user must ensure that the values of ICODE in successive calls of //J06EBF// are in sequences in which the first value is 1, the last is 9 and all others are 0. Unchanged on exit. STORE - //real// array of DIMENSION at least (9). Used as workspace. The contents of STORE must not be changed between calls to //J06EBF//. IFAIL - INTEGER. For this routine, the normal use of IFAIL is extended to control the printing of error messages as well as specifying hard or soft failure (see Chapter P01 of the NAG FORTRAN Library Manual or the NAG On-line Information Supplement). Before entry, IFAIL must be set to a value with the decimal expansion ba, where each of the decimal digits b, a must have the value 0 or 1. a = 0 specifies hard failure, otherwise soft failure. b = 0 suppresses error messages, otherwise error messages will be printed (see next section). The recommended value for inexperienced users is 10 (i.e. hard failure with error messages printed). Unless the routine detects an error (see next section), IFAIL contains 0 on exit. D. Error Indicators and Warnings ================================ Errors detected by the routine:- For each error, the routine outputs an explanatory error message on the current error message unit (see NAG FORTRAN Library routine //X04AAF//), unless suppressed by the value of IFAIL on entry. IFAIL = 1 Illegal value of ICODE on entry - see Section C. No curve section will be drawn. ------ END OF J06EBF GRAPHICAL SUPPLEMENT SUMMARY - MARK 1 NOVEMBER 1981 ------ J06FAF ROUTINE J06FAF NAG GRAPHICAL SUPPLEMENT ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked //...// may be implementation dependent. A. Purpose ========== //J06FAF// plots a cubic spline function in a given interval from its B-spline representation. It is typically used in conjunction with the NAG FORTRAN Library routine //E02BAF//. B. Specification ================ SUBROUTINE //J06FAF// (NCAP7, K, C, X1, X2, 1 KMARK, IFAIL) C INTEGER NCAP7, KMARK, IFAIL C //real// K(NCAP7), C(NCAP7), X1, X2 C. Parameters ============= NCAP7 - INTEGER. On entry, NCAP7 must specify NCAP + 7, where NCAP is the number of intervals of the spline. Unchanged on exit. K - //real// array of DIMENSION at least (NCAP7). Before entry, K(J) must be set to the value of the J(th) member of the complete set of knots, for J = 1,2,...,NCAP7. The K(J) must be in non-decreasing order with K(NCAP+4) greater than K(4). Unchanged on exit. C - //real// array of DIMENSION at least (NCAP7). Before entry, C(J) must be set to the value of the J(th) B-spline coefficient, for J = 1,2,...,NCAP+3. The remaining elements of the array are unused. Unchanged on exit. X1 - //real//. X2 - //real//. On entry, X1 must specify the lower bound and X2 the upper bound of the interval in which the cubic spline is to be plotted. Unchanged on exit. KMARK - INTEGER. On entry, KMARK must specify the marker to be used to indicate the knots. 0.LE.KMARK.LE.9. If KMARK = 0, no markers are drawn. The symbols available with each version of the NAG Graphical Interface are reproduced in the Appendix to the Essential Introduction to the Supplement Manual. Unchanged on exit. IFAIL - INTEGER. For this routine, the normal use of IFAIL is extended to control the printing of error messages as well as specifying hard or soft failure (see Chapter P01 of the NAG FORTRAN Library Manual or the NAG On-line Information Supplement). Before entry, IFAIL must be set to a value with the decimal expansion ba, where each of the decimal digits b, a must have the value 0 or 1. a = 0 specifies hard failure, otherwise soft failure. b = 0 suppresses error messages, otherwise error messages will be printed (see next section). The recommended value for inexperienced users is 10 (i.e. hard failure with error messages printed). Unless the routine detects an error (see next section), IFAIL contains 0 on exit. D. Error Indicators and Warnings ================================ Errors detected by the routine:- For each error, the routine outputs an explanatory error message on the current error message unit (see NAG Library routine //X04AAF//), unless suppressed by the value of IFAIL on entry. IFAIL = 1 NCAP7.LT.8, i.e. the number of intervals not positive. IFAIL = 2 Either K(4).GE.K(NCAP+4), i.e. the range over which S(X) is defined is null or negative in length, or `X1,X2! is an invalid interval, i.e. X1.GE.X2, or X1.LT.K(4), or X2.GT.K(NCAP+4). See section 3 of the Graphical Supplement routine document. IFAIL = 3 The knots are not in non-decreasing order. In these cases, no curve is drawn. ------ END OF J06FAF GRAPHICAL SUPPLEMENT SUMMARY - MARK 1 NOVEMBER 1981 ------ J06GAF ROUTINE J06GAF NAG GRAPHICAL SUPPLEMENT ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked //...// may be implementation dependent. A. Purpose ========== //J06GAF// draws a contour map of a surface defined by M*N surface heights at the nodes of a regular, rectangular mesh having equal spacing in X and equal spacing in Y. The map is drawn to fill the current data region. B. Specification ================ SUBROUTINE //J06GAF// (SURFCE, M, N, NCHTS, 1 CHTS, ICH, UNUSED, IFAIL) C INTEGER M, N, NCHTS, ICH, IFAIL C LOGICAL UNUSED(M,N) C //real// SURFCE(M,N), CHTS(NCHTS) C. Parameters ============= SURFCE - //real// array of DIMENSION (M,p), where p.GE.N. Before entry, SURFCE should contain the surface heights of the grid points arranged so that the first dimension increases as X goes from XMIN to XMAX, and the second dimension increases as Y goes from YMIN to YMAX, where XMIN, XMAX, YMIN, YMAX are the limits of the user's current data region. Unchanged on exit. M - INTEGER. N - INTEGER. On entry, M,N must specify the number of surface heights in the X and Y directions respectively. M.GE.3, N.GE.3. Unchanged on exit. NCHTS - INTEGER. On entry, NCHTS must specify the number of contours to be drawn. NCHTS.GE.1 unless ICH = 2, in which case NCHTS .GE.2. Unchanged on exit. CHTS - //real// array of DIMENSION at least (NCHTS). See ICH. ICH - INTEGER. On entry, ICH must specify the method used to determine contour heights - (i) ICH = 0 - The heights in SURFCE are scanned to find the maximum and minimum. The range is divided into NCHTS equal divisions, and a contour height is defined at the mid-point of each division. On exit, CHTS(I), I = 1,...,NCHTS contain the calculated contour heights. (ii) ICH = 1 - The contour heights are supplied by the user. On entry, CHTS(I), I = 1,...,NCHTS should contain the supplied heights; the values in CHTS are unchanged on exit. (iii) ICH = 2 - The range of contour heights is specified by the user. On entry, CHTS(1) and CHTS(2) should contain the extremes of the range. A further (NCHTS-2) contours are defined equally spaced within the range. On exit, CHTS(I), I = 1,...,NCHTS contains the calculated heights. ICH is unchanged on exit. UNUSED - LOGICAL array of DIMENSION (M,N). Used as working space. IFAIL - INTEGER. Before entry, IFAIL must be assigned a value. For users not familiar with this parameter (described in Chapter P01 of the NAG FORTRAN Library Manual or the NAG On-line Information Supplement) the recommended value is 0. Unless the routine detects an error (see next section), IFAIL contains 0 on exit. D. Error Indicators and Warnings ================================ Errors detected by the routine:- IFAIL = 1 On entry, M.LT.3 or N.LT.3 or NCHTS.LT.1 or ICH.LT.0 or ICH.GT.2 or ICH = 2 and NCHTS.LT.2. ------ END OF J06GAF GRAPHICAL SUPPLEMENT SUMMARY - MARK 1 NOVEMBER 1981 ------ J06GBF ROUTINE J06GBF NAG GRAPHICAL SUPPLEMENT ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked //...// may be implementation dependent. A. Purpose ========== //J06GBF// draws a contour map of a surface defined by heights at the nodes of a regular, rectangular mesh. The map is drawn to fill the current data region. A set of options is available for annotation, highlighting, straight line or curved contours, and choice of contouring algorithms. B. Specification ================ SUBROUTINE //J06GBF// (SURFCE, MDIM, MA, MB, 1 NA, NB, NCHTS, CHTS, ICH, CONDRA, 2 ILAB, IHIGH, LINDRA, IGRID, UNUSED, 3 IFAIL) C INTEGER MDIM, MA, MB, NA, NB, NCHTS, ICH, C 1 ILAB, IHIGH, IGRID, IFAIL C LOGICAL UNUSED(MDIM,NB) C //real// SURFCE(MDIM,NB), CHTS(NCHTS) C EXTERNAL CONDRA, LINDRA C. Parameters ============= SURFCE - //real// array of DIMENSION (MDIM,p), where p.GE.NB. Before entry, the portion of the array SURFCE, SURFCE(I,J), I = MA,...,MB, J = NA,...,NB, should contain the surface heights to be contoured. These should be arranged so that SURFCE(MA,NA) contains the height at the bottom left-hand corner of the data region (XMIN,YMIN), and so that the first dimension of SURFCE increases as X goes from XMIN to XMAX, and the second dimension increases as Y goes from YMIN to YMAX, where (XMIN,XMAX,YMIN,YMAX) are the limits of the current data region. Unchanged on exit. MDIM - INTEGER. On entry, MDIM must specify the first dimension of the array SURFCE, as declared in the calling (sub)program. MDIM.GE.3. Unchanged on exit. MA - INTEGER. MB - INTEGER. NA - INTEGER. NB - INTEGER. On entry, MA, MB, NA, NB must specify the portion of the array SURFCE to be contoured, namely SURFCE(I,J), I = MA,...,MB, J = NA,...,NB. 1.LE.MA.LE.MB - 2. MB.LE.MDIM. 1.LE.NA.LE.NB - 2. Unchanged on exit. NCHTS - INTEGER. On entry, NCHTS must specify the number of contours to be drawn. NCHTS.GE.1 unless ICH = 2, in which case NCHTS .GE.2. Unchanged on exit. CHTS - //real// array of DIMENSION at least (NCHTS). See ICH. ICH - INTEGER. On entry, ICH must specify the method used to determine contour heights - (i) ICH = 0 - The heights in SURFCE are scanned to find the maximum and minimum. The range is divided into NCHTS equal divisions, and a contour height is defined at the mid-point of each division. On exit, CHTS(I), I = 1,...,NCHTS contain the calculated contour heights. (ii) ICH = 1 - The contour heights are supplied by the user. On entry, CHTS(I), I = 1,...,NCHTS should contain the supplied heights; the values in CHTS are unchanged on exit. (iii) ICH = 2 - The range of contour heights is specified by the user. On entry, CHTS(1) and CHTS(2) should contain the extremes of the range. A further (NCHTS-2) contours are defined equally spaced within the range. On exit, CHTS(I), I = 1,...,NCHTS contains the calculated heights. Unchanged on exit. CONDRA - SUBROUTINE, supplied by the NAG Graphical Supplement. This parameter enables the user to select the contouring method. Two routines are provided - (i) J06GBZ - Inverse linear interpolation is used to calculate the intersections of the contour lines with the mesh. (ii) J06GBY - The surface height at the centre of each rectangle is approximated by the average of the heights at the corners, effectively producing a triangular mesh. Inverse linear interpolation is again used to calculate where the contours cut the mesh lines and diagonals. Method (i) is faster but within certain rectangles there may be ambiguity as to which way the contour line should turn. This is resolved by adopting the convention of "high ground on the right". Method (ii) requires greater computation time, but the triangular mesh resolves any ambiguity. J06GBZ or J06GBY must be declared as EXTERNAL in the (sub)program from which //J06GBF// is called. **N.B.** In implementations where both single and double precision versions of the Graphical Supplement are available, these routines are called GBZJ06 and GBVJ06 in the alternative precision version, see local documentation. ILAB - INTEGER. On entry, ILAB must specify the frequency of contour heights that are labelled. If ILAB = 0, no contours are labelled. Otherwise contours of height CHTS(1) and every subsequent ILAB(th) height are labelled. A contour of height CHTS(I) is labelled with the index I, rather than the actual height CHTS(I). The subroutine //J06GZF// can be used to draw a reference table of the index I and the associated contour height. The size of the contour annotation is set within //J06GBF//, but may be scaled by the user through a call to the NAG Graphical Interface routine //J06XGF// (see the Essential Introduction to the Supplement Manual). In particular, users should note that the shape of characters will be distorted if the contour map is very non-square and in this situation a call to //J06XGF// will usually improve the appearance of the annotation considerably. The size of the labelling also affects the frequency of the labelling along any one contour line. Contours are not labelled if the subroutine estimates that there is insufficient room. ILAB.GE.0. Unchanged on exit. IHIGH - INTEGER. On entry, IHIGH must specify the frequency of contour heights to be highlighted. If IHIGH = 0, no contours are highlighted. Otherwise contours of height CHTS(1) and every subsequent IHIGH(th) height are highlighted. For highlighting, //J06GBF// selects pen number 2 to draw any contour to be highlighted, and pen number 1 otherwise. The selection of a pen involves the setting of a particular colour, linetype and text font within //J06GBF// - for full details on highlighting see the Essential Introduction to the NAG Supplement Manual. The default settings of the pens ensure that pen numbers 1 and 2 can be distinguished on most graphical output devices; the user can "program" the pen appearances via the NAG Graphical Interface routine //J06XDF//. If highlighting is selected, pen number 1 is in force on exit from //J06GBF//. Note however that if IHIGH = 0 no pen selection is made within //J06GBF//; thus settings of colour, linetype and text font are as on entry to //J06GBF//. IHIGH.GE.0. Unchanged on exit. LINDRA - SUBROUTINE, supplied by the NAG Graphical Supplement. This parameter specifies whether successive points on a contour are to be joined by (i) J06GBU - straight lines (ii) J06GBV - a smooth curve using Butland's method (iii) J06GBW - a smooth curve using McConalogue's method The fastest option is J06GBU, but some users may prefer the smoother contours generated by J06GBV or J06GBW (bearing in mind that the curve drawn between points will necessarily reflect the properties of the curve drawing method rather than the surface to be contoured). A tighter fitting curve will be generated by J06GBV than J06GBW, and so crossing contours are less likely. Note however that J06GBW is a rotation-independent curve drawing method, unlike J06GBV. For full details see routine document //J06CCF// or //J06CDF//. J06GBU or J06GBV or J06GBW must be declared as EXTERNAL in the (sub)program from which //J06GBF// is called. **N.B.** In implementations where both single and double precision versions of the Graphical Supplement are available, these routines are called GBUJ06, GBVJ06 and GBWJ06 in the alternative precision version, see local documentation. IGRID - INTEGER. On entry, IGRID must specify the type of border or grid to be drawn. If IGRID = 0 no border or grid is drawn. If IGRID = 1 a border only is drawn; if IGRID = 2 the mesh lines are drawn. Unchanged on exit. UNUSED - LOGICAL array of DIMENSION (MDIM,q), where q.GE.NB. Used as working space. IFAIL - INTEGER. Before entry, IFAIL must be assigned a value. For users not familiar with this parameter (described in Chapter P01 of the NAG FORTRAN Library Manual or the NAG On-line Information Supplement) the recommended value is 0. Unless the routine detects an error (see next section), IFAIL contains 0 on exit. D. Error Indicators and Warnings ================================ Errors detected by the routine:- IFAIL = 1 On entry, ICH.LT.0 or ICH.GT.2 or ILAB.LT.0 or IHIGH.LT.0 or IGRID.LT.0 or IGRID.GT.2 or ICH = 2 and NCHTS.LT.2. IFAIL = 2 On entry, MDIM.LT.MB or MA.LT.1 or MB - MA.LT.2 or NA.LT.1 or NB - NA.LT.2 or NCHTS.LT.1. ------ END OF J06GBF GRAPHICAL SUPPLEMENT SUMMARY - MARK 1 NOVEMBER 1981 ------ J06GCF ROUTINE J06GCF NAG GRAPHICAL SUPPLEMENT ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked //...// may be implementation dependent. A. Purpose ========== //J06GCF// draws a contour map of a surface defined by M.MU.N surface heights at the nodes of an irregular, rectangular mesh having unequal spacing in X and unequal spacing in Y. B. Specification ================ SUBROUTINE //J06GCF// (SURFCE, XPTS, YPTS, M, 1 N, NCHTS, CHTS, ICH, UNUSED, IFAIL) C INTEGER M, N, NCHTS, ICH, IFAIL C LOGICAL UNUSED(M,N) C //real// SURFCE(M,N), XPTS(M), YPTS(N), C 1 CHTS(NCHTS) C. Parameters ============= SURFCE - //real// array of DIMENSION (M,p), where p.GE.N. Before entry, SURFCE should contain the surface heights of the grid points arranged so that the first dimension increases as X goes from XPTS(1) to XPTS(M), and the second dimension increases as Y goes from YPTS(1) to YPTS(N). Unchanged on exit. XPTS - //real// array of DIMENSION at least (M). Before entry, XPTS(I), I = 1,...,M, must contain the X co-ordinates of the vertical mesh lines. Unchanged on exit. YPTS - //real// array of DIMENSION at least (N). Before entry, YPTS(J), J = 1,...,N, must contain the Y co-ordinates of the horizontal mesh lines. Unchanged on exit. M - INTEGER. N - INTEGER. On entry, M, N must specify the number of surface heights in the X and Y directions respectively. M.GE.3. N.GE.3. Unchanged on exit. NCHTS - INTEGER. On entry, NCHTS must specify the number of contours to be drawn. NCHTS.GE.1 unless ICH = 2, in which case NCHTS .GE.2. Unchanged on exit. CHTS - //real// array of DIMENSION at least (NCHTS). See ICH. ICH - INTEGER. On entry, ICH must specify the method used to determine contour heights - (i) ICH = 0 - The heights in SURFCE are scanned to find the maximum and minimum. The range is divided into NCHTS equal divisions, and a contour height is defined at the mid-point of each division. On exit, CHTS(I), I = 1,...,NCHTS contain the calculated contour heights. (ii) ICH = 1 - The contour heights are supplied by the user. On entry, CHTS(I), I = 1,...,NCHTS must contain the supplied heights; the values in CHTS are unchanged on exit. (iii) ICH = 2 - The range of contour heights is specified by the user. On entry, CHTS(1) and CHTS(2) must contain the extremes of the range. A further (NCHTS-2) contours are defined equally spaced within the range. On exit, CHTS(I), I = 1,...,NCHTS contains the calculated heights. Unchanged on exit. UNUSED - LOGICAL array of DIMENSION (M,q), where q.GE.N. Used as working space. IFAIL - INTEGER. Before entry, IFAIL must be assigned a value. For users not familiar with this parameter (described in Chapter P01 of the NAG FORTRAN Library Manual or the NAG On-line Information Supplement) the recommended value is 0. Unless the routine detects an error (see next section), IFAIL contains 0 on exit. D. Error Indicators and Warnings ================================ Errors detected by the routine:- IFAIL = 1 On entry, M.LT.3 or N.LT.3 or NCHTS.LT.1 or ICH.LT.0 or ICH.GT.2 or ICH = 2 and NCHTS.LT.2. ------ END OF J06GCF GRAPHICAL SUPPLEMENT SUMMARY - MARK 1 NOVEMBER 1981 ------ J06GDF ROUTINE J06GDF NAG GRAPHICAL SUPPLEMENT ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked //...// may be implementation dependent. A. Purpose ========== //J06GDF// draws a contour map of a surface defined by heights at the nodes of an irregular, rectangular mesh. A set of options is available for annotation, highlighting, straight line or curved contours, and choice of contouring algorithms. B. Specification ================ SUBROUTINE //J06GDF// (SURFCE, XPTS, YPTS, 1 MDIM, MA, MB, NA, NB, NCHTS, CHTS, 2 ICH, CONDRA, ILAB, IHIGH, LINDRA, 3 IGRID, UNUSED, IFAIL) C INTEGER MDIM, MA, MB, NA, NB, NCHTS, ICH, C 1 ILAB, IHIGH, IGRID, IFAIL C LOGICAL UNUSED(MDIM,NB) C //real// SURFCE(MDIM,NB), XPTS(MB), YPTS(NB), C 1 CHTS(NCHTS) C EXTERNAL CONDRA, LINDRA C. Parameters ============= SURFCE - //real// array of DIMENSION (MDIM,p), where p.GE.NB. Before entry, the portion of the array SURFCE, SURFCE(I,J), I = MA,...,MB, J = NA,...,NB, should contain the surface heights to be contoured. These should be arranged so that SURFCE(MA,NA) contains the height at the bottom left-hand corner of the mesh (XPTS(MA),YPTS(NA)), and so that the first dimension of SURFCE increases as X goes from XPTS(MA) to XPTS(MB), and the second dimension increases as Y goes from YPTS(NA) to YPTS(NB). Unchanged on exit. XPTS - //real// array of DIMENSION at least (MB). Before entry, XPTS(I), I = MA,...,MB, must contain the X co-ordinates of the vertical mesh lines. Unchanged on exit. YPTS - //real// array of DIMENSION at least (NB). Before entry, YPTS(I), I = NA,...,NB, must contain the Y co-ordinates of the horizontal mesh lines. Unchanged on exit. MDIM - INTEGER. On entry, MDIM must specify the first dimension of the array SURFCE, as declared in the calling (sub)program. MDIM.GE.3. Unchanged on exit. MA - INTEGER. MB - INTEGER. NA - INTEGER. NB - INTEGER. On entry, MA, MB, NA, NB must specify the portion of the array SURFCE to be contoured, namely SURFCE(I,J), I = MA,...,MB, J = NA,...,NB. 1.LE.MA.LE.MB - 2. MB.LE.MDIM. 1.LE.NA.LE.NB - 2. Unchanged on exit. NCHTS - INTEGER. On entry, NCHTS must specify the number of contours to be drawn. NCHTS.GE.1 unless ICH = 2, in which case NCHTS .GE.2. Unchanged on exit. CHTS - //real// array of DIMENSION at least (NCHTS). See ICH. ICH - INTEGER. On entry, ICH must specify the method used to determine contour heights - (i) ICH = 0 - The heights in SURFCE are scanned to find the maximum and minimum. The range is divided into NCHTS equal divisions, and a contour height is defined at the mid-point of each division. On exit, CHTS(I), I = 1,...,NCHTS contain the calculated contour heights. (ii) ICH = 1 - The contour heights are supplied by the user. On entry, CHTS(I), I = 1,...,NCHTS should contain the supplied heights; the values in CHTS are unchanged on exit. (iii) ICH = 2 - The range of contour heights is specified by the user. On entry, CHTS(1) and CHTS(2) should contain the extremes of the range. A further NCHTS - 2 contours are defined equally spaced within the range. On exit, CHTS(I), I = 1,...,NCHTS contains the calculated heights. Unchanged on exit. CONDRA - SUBROUTINE, supplied by the NAG Graphical Supplement. This parameter enables the user to select the contouring method. Two routines are provided - (i) J06GBZ - Inverse linear interpolation is used to calculate the intersections of the contour lines with the mesh. (ii) J06GBY - The surface height at the centre of each rectangle is approximated by the average of the height at the corners, effectively producing a triangular mesh. Inverse linear interpolation is again used to calculate where the contours cut the mesh lines and diagonals. Method (i) is faster but within certain rectangles there may be ambiguity as to which way the contour line should turn. This is resolved by adopting the convention of "high ground on the right". Method (ii) requires greater computation time, but the triangular mesh resolves any ambiguity. J06GBZ or J06GBY must be declared as EXTERNAL in the (sub)program from which //J06GDF// is called. **N.B.** In implementations where both double and single precision versions of the Graphical Supplement are available, these routines are called GBZJ06 and GBYJ06 in the alternative precision version, see local documentation. ILAB - INTEGER. On entry, ILAB must specify the frequency of contour heights that are labelled. If ILAB = 0, no contours are labelled. Otherwise contours of height CHTS(1) and every subsequent ILAB(th) height are labelled. A contour of height CHTS(I) is labelled with the index I, rather than the actual height CHTS(I). The subroutine //J06GZF// can be used to draw a reference table of the index I and the associated contour height. The size of the contour annotation is set within //J06GDF//, but may be scaled by the user through a call to the NAG Graphical Interface routine //J06XGF// (see the Essential Introduction to the Supplement Manual). In particular, users should note that the shape of characters will be distorted if the contour map is very non-square and in this situation a call of //J06XGF// will usually improve the appearance of the annotation considerably. The size of the labelling also affects the frequency of the labelling along any one contour line. Contours are not labelled if the subroutine estimates that there is insufficient room. Unchanged on exit. IHIGH - INTEGER. On entry, IHIGH must specify the frequency of contour heights to be highlighted. If IHIGH = 0, no contours are highlighted. Otherwise contours of height CHTS(1) and every subsequent IHIGH(th) height are highlighted. For highlighting, //J06GDF// selects pen number 2 to draw any contour to be highlighted, and pen number 1 otherwise. The selection of a pen involves the setting of a particular colour, linetype and text font within //J06GDF// - for full details on highlighting see the Essential Introduction to the Supplement Manual. The default setting of the pens ensure that pen numbers 1 and 2 can be distinguished on most graphical output devices; the user can "program" the pen appearances via the NAG Graphical Interface routine //J06XDF//. If highlighting is selected, pen number 1 is in force on exit from //J06GDF//. Note however, that if IHIGH = 0 no pen selection whatsoever is made within //J06GDF//; thus settings of colour, linetype and text font are as on entry to //J06GDF//. IHIGH.GE.0. Unchanged on exit. LINDRA - SUBROUTINE, supplied by the NAG Graphical Supplement. This parameter enables the user to specify whether successive points on a contour are to be joined by (i) J06GBU - straight lines (ii) J06GBV - a smooth curve using Butland's method (iii) J06GBW - a smooth curve using McConalogue's method The fastest option is J06GBU, but some users may prefer the smoother contours generated by J06GBV or J06GBW (bearing in mind that the curve drawn between points will necessarily reflect the properties of the curve drawing method rather than the surface to be contoured). A tighter fitting curve will be generated by J06GBV than J06GBW, and so crossing contours are less likely. Note however, that J06GBW is a rotation-independent curve drawing method, unlike J06GBV. For full details see routine document //J06CCF// or //J06CDF//. J06GBU, J06GBV or J06GBW must be declared as EXTERNAL in the (sub)program from which //J06GDF// is called. **N.B.** Implementations where both single and double precisions of the Graphical Supplement are available, these routines are called GBUJ06, GBVJ06 and GBWJ06 in the alternative precision version, see local documentation. IGRID - INTEGER. On entry, IGRID must specify the type of border or grid to be drawn. If IGRID = 0 no border or grid is drawn. If IGRID = 1 a border only is drawn; if IGRID = 2 the mesh lines are drawn. Unchanged on exit. UNUSED - LOGICAL array of DIMENSION (MDIM,q), where q.GE.NB. Used as working space. IFAIL - INTEGER. Before entry, IFAIL must be assigned a value. For users not familiar with this parameter (described in Chapter P01 of the NAG FORTRAN Library Manual or the NAG On-line Information Supplement) the recommended value is 0. Unless the routine detects an error (see next section), IFAIL contains 0 on exit. D. Error Indicators and Warnings ================================ Errors detected by the routine:- IFAIL = 1 On entry, ICH.LT.0 or ICH.GT.2 or ILAB.LT.0 or IHIGH.LT.0 or IGRID.LT.0 or IGRID.GT.2 or ICH = 2 and NCHTS.LT.2. IFAIL = 2 On entry, MDIM.LT.MB or MA.LT.1 or MB - MA.LT.2 or NA.LT.1 or NB - NA.LT.2 or NCHTS.LT.1. ------ END OF J06GDF GRAPHICAL SUPPLEMENT SUMMARY - MARK 1 NOVEMBER 1981 ------ J06GEF ROUTINE J06GEF NAG GRAPHICAL SUPPLEMENT ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked //...// may be implementation dependent. A. Purpose ========== //J06GEF// draws a contour map of a user-supplied function of two variables. B. Specification ================ SUBROUTINE //J06GEF// (HEIGHT, NV, NH, NCHTS, 1 CHTS, ICH, IFAIL) C INTEGER NV, NH, NCHTS, ICH, IFAIL C //real// CHTS(NCHTS) C EXTERNAL HEIGHT C. Parameters ============= HEIGHT - SUBROUTINE, supplied by the user. HEIGHT must calculate the surface height at a point (X,Y), and store it in Z. The specification is:- SUBROUTINE HEIGHT(X,Y,Z) //real// X,Y,Z X - //real//. Y - //real//. On entry, X,Y contain the X and Y co-ordinates of the point whose height is to be calculated. The values of X and Y must not be changed in HEIGHT. Z - //real//. On exit, Z must contain the calculated surface height at (X,Y). Note that the contour is traced just outside the data region (before being clipped to the edge) and so HEIGHT must be able to accept values of X,Y which lie outside the data region. HEIGHT must be declared as EXTERNAL in the calling (sub)program. NV - INTEGER. NH - INTEGER. On entry, NV and NH must specify the number of equispaced vertical and horizontal mesh lines covering the data region that are used to detect the existence of a contour line. NV.GE.2. NH.GE.2. NV*NH.LE.150. Unchanged on exit. Note: NV and NH should be sufficiently large to form a mesh fine enough to detect all required contours. If the restriction NV*NH.LE.150 is too severe, use //J06GFF//. NCHTS - INTEGER. On entry, NCHTS must specify the number of contours to be drawn. Unchanged on exit. CHTS - //real// array of DIMENSION at least (NCHTS). See ICH. ICH - INTEGER. On entry, ICH must specify the method used to determine contour heights: (i) ICH = 0 - The heights at the nodes of the tracking mesh are scanned to find the maximum and minimum. The range is divided into NCHTS equal divisions, and a contour height is defined at the mid-point of each division. On exit, CHTS(I), I = 1,...,NCHTS contain the calculated contour heights. (ii) ICH = 1 - The contour heights are supplied by the user. On entry, CHTS(I), I = 1,...,NCHTS should contain the supplied heights; the values in CHTS are unchanged on exit. (iii) ICH = 2 - The range of contour heights is specified by the user. On entry, CHTS(1) and CHTS(2) should contain the extremes of the range. A further (NCHTS-2) contours are defined equally spaced within the range. On exit, CHTS(I), I = 1,...,NCHTS contains the calculated heights. ICH is unchanged on exit. IFAIL - INTEGER. Before entry, IFAIL must be assigned a value. For users not familiar with this parameter (described in Chapter P01 of the NAG FORTRAN Library Manual or the NAG On-line Information Supplement) the recommended value is 0. Unless the routine detects an error (see next section), IFAIL contains 0 on exit. D. Error Indicators and Warnings ================================ Errors detected by the routine:- IFAIL = 1 On entry, ICH.LT.0 or ICH.GT.2 or ICH = 2 and NCHTS.LT.2 or NCHTS.LT.1. IFAIL = 2 On entry, NV.LT.2 or NH.LT.2 or NV*NH.GT.150. IFAIL = 3 The tracking step length has been halved five times without being able to detect the next point on the contour - indicating very sharp curvature. Possible remedies are to alter slightly the value of the contour height at which this occurs, make the tracking mesh finer, or use //J06GFF// where the size of the tracking step can be specified by the user. ------ END OF J06GEF GRAPHICAL SUPPLEMENT SUMMARY - MARK 1 NOVEMBER 1981 ------ J06GFF ROUTINE J06GFF NAG GRAPHICAL SUPPLEMENT ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked //...// may be implementation dependent. A. Purpose ========== //J06GFF// draws a contour map of a user-supplied function of two variables. A set of options is available for annotation, highlighting and control of step-size. B. Specification ================ SUBROUTINE //J06GFF// (HEIGHT, NV, NH, D, 1 NCHTS, CHTS, ICH, ILAB, IHIGH, IGRID, 2 LWS, NLWS, WS, NWS, IFAIL) C INTEGER NV, NH, NCHTS, ICH, ILAB, IHIGH, C 1 IGRID, NLWS, NWS, IFAIL C LOGICAL LWS(NLWS) C //real// D, CHTS(NCHTS), WS(NWS) C EXTERNAL HEIGHT C. Parameters ============= HEIGHT - SUBROUTINE, supplied by the user. HEIGHT must calculate the surface height at a point (X,Y) and store it in Z. The specification is: SUBROUTINE HEIGHT(X,Y,Z) //real// X,Y,Z X - //real//. Y - //real//. On entry, X,Y contain the X and Y co-ordinates of the point whose height is to be calculated. The values of X and Y must not be changed in HEIGHT. Z - //real//. On exit, Z must contain the calculated surface height at (X,Y). Note that the contour is traced just outside the data region (before being clipped to the edge) and so HEIGHT must be able to accept values of X,Y which lie slightly outside the data region. HEIGHT must be declared as EXTERNAL in the calling (sub)program. NV - INTEGER. NH - INTEGER. On entry, NV and NH must specify the number of equispaced vertical and horizontal mesh lines covering the data region that are used to detect the existence of a contour line. NV and NH should be sufficiently large to form a mesh fine enough to detect all required contours. NV.GE.2. NH.GE.2. Unchanged on exit. D - //real//. On entry, D must specify the basic step-size expressed as a fraction of the interval between successive tracking mesh lines i.e. the basic step-size is the vector D*(HV,HH) where HV and HH are the separations of the vertical and horizontal lines of the tracking mesh. D must not exceed 0.5 - a suitable value to try initially is 0.1, the value used in //J06GEF//. The smaller the value of D, the smoother the contours, but the execution time is increased. Unchanged on exit. NCHTS - INTEGER. On entry, NCHTS must specify the number of contours to be drawn. Unchanged on exit. CHTS - //real// array of DIMENSION at least (NCHTS). See ICH. ICH - INTEGER. On entry, ICH must specify the method used to determine contour heights: (i) ICH = 0 - The heights at the nodes of the tracking mesh are scanned to find the maximum and minimum. The range is divided into NCHTS equal divisions and a contour height is defined at the midpoint of each division. On exit, CHTS(I), I = 1,...,NCHTS contain the calculated contour heights. (ii) ICH = 1 - The contour heights are supplied by the user. On entry, CHTS(I), I = 1,...,NCHTS should contain the supplied heights; the values in CHTS are unchanged on exit. (iii) ICH = 2 - The range of contour heights is specified by the user. On entry, CHTS(1) and CHTS(2) should contain the extremes of the range. A further NCHTS - 2 contours are defined equally spaced within the range. On exit, CHTS(I), I = 1,...,NCHTS contains the calculated heights. ICH is unchanged on exit. ILAB - INTEGER. On entry, ILAB must specify the frequency with which contour heights are to be labelled. If ILAB = 0, no contours are labelled. Otherwise, contours of height CHTS(1) and every subsequent ILAB(th) height are labelled. A contour of height CHTS(I) is labelled with the index I, rather than the actual height CHTS(I). The subroutine //J06GZF// can be used to draw a reference table of the index I and the associated contour height. The size of the contour annotation is set within //J06GFF//, but may be scaled by the user through a call to the NAG Graphical Interface routine //J06XGF// (see the Essential Introduction to the NAG Supplement Manual). In particular users should note that the shape of characters will be distorted if the contour map is very non-square and in this situation a call to //J06XGF// will usually improve the appearance of the annotation considerably. The size of the labelling also affects the frequency of the labelling along any one contour line. Contours are not labelled if the subroutine estimates that there is insufficient room. Unchanged on exit. IHIGH - INTEGER. On entry, IHIGH must specify the frequency with which contour heights are to be highlighted. If IHIGH = 0, no contours are highlighted. Otherwise contours of height CHTS(1) and every subsequent IHIGH(th) height are highlighted. For highlighting, //J06GFF// selects pen number 2 to draw any contour to be highlighted, and pen number 1 otherwise. The selection of a pen involves the setting of a particular colour, linetype and text font within //J06GFF// - for full details on highlighting see the Essential Introduction to the NAG Supplement Manual. The default settings of the pens ensure that pen numbers 1 and 2 can be distinguished on most graphical output devices; the user can @L0program@L1 the pen appearance via the NAG Graphical Interface routine //J06XDF//. If highlighting is selected, pen number 1 is in force on exit from //J06GFF//. Note however that if IHIGH = 0 no pen selection whatsoever is made within //J06GFF//; thus settings of colour, linetype and text font are as on entry to //J06GFF//. Unchanged on exit. IGRID - INTEGER. On entry, IGRID must specify the type of border or grid to be drawn. If IGRID = 0 no border or grid is drawn. If IGRID = 1 a border only is drawn; if IGRID = 2 the lines of the tracking mesh are drawn. Unchanged on exit. LWS - LOGICAL array of DIMENSION at least (NLWS). Used as working space. NLWS - INTEGER. On entry, NLWS must specify the dimension of the array LWS. NLWS.GE.3*NV*NH. Unchanged on exit. WS - //real// array of DIMENSION at least (NWS). Used as working space. NWS - INTEGER. On entry, NWS must specify the dimension of the array WS. NWS.GE.NV*NH. Unchanged on exit. IFAIL - INTEGER. Before entry, IFAIL must be assigned a value. For users not familiar with this parameter (described in Chapter P01 of the NAG FORTRAN Library Manual or the NAG On-line Information Supplement) the recommended value is 0. Unless the routine detects an error (see next section), IFAIL contains 0 on exit. D. Error Indicators and Warnings ================================ Errors detected by the routine:- IFAIL = 1 On entry, ICH.LT.0, or ICH.GT.2, or ILAB.LT.0, or IHIGH.LT.0, or IGRID.LT.0, or IGRID.GT.2, or D.LE.0.0, or D.GT.0.5, or ICH = 2 and NCHTS.LT.2. IFAIL = 2 On entry, NV.LT.2, or NH.LT.2, or NCHTS.LT.1. IFAIL = 3 On entry, NLWS.LT.3*NV*NH, or NWS.LT.NV*NH. IFAIL = 4 The routine has halved the tracking step length five times but has failed to locate the next point on the contour. This would indicate a very sharp curvature on the contour. It may be possible to overcome this by using a different value of D, the tracking step size factor, or by slightly changing the value of the contour height at which the problem occurs. Intuitively a smaller value of D should be tried, but occasionally a larger value overcomes the difficulty. Also it is sometimes the case that changing the values of NV and NH may overcome the difficulty as this can change the starting point of closed contours. ------ END OF J06GFF GRAPHICAL SUPPLEMENT SUMMARY - MARK 1 NOVEMBER 1981 ------ J06GZF ROUTINE J06GZF NAG GRAPHICAL SUPPLEMENT ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked //...// may be implementation dependent. A. Purpose ========== //J06GZF// draws a table of contour heights. B. Specification ================ SUBROUTINE //J06GZF// (CHTS, NCHTS, IFORM, 1 NWIDTH, NDP) C INTEGER NCHTS, IFORM, NWIDTH, NDP C //real// CHTS(NCHTS) C. Parameters ============= CHTS - //real// array of DIMENSION at least (NCHTS). Before entry, CHTS(I), I = 1,...,NCHTS must contain the contour heights to be included in the table. Unchanged on exit. NCHTS - INTEGER. On entry, NCHTS must specify the number of contour heights to be listed. NCHTS.GE.1. Unchanged on exit. IFORM - INTEGER. On entry, IFORM must specify the output format for the contour heights IFORM = 1 - FORTRAN floating point format IFORM = 2 - FORTRAN fixed point format If IFORM.NE.1 or 2, the contour heights will not be drawn, although the frame of the table and the contour indices will be drawn. Unchanged on exit. NWIDTH - INTEGER. NDP - INTEGER. On entry, NWIDTH and NDP must specify the output format details for the contour heights. If IFORM = 1, the heights are output in FORTRAN floating point format with NDP decimal places, in a field of width NWIDTH characters. If IFORM = 2, the heights are output in FORTRAN fixed point format with NDP decimal places, in a field of width NWIDTH characters. For floating point format, 1.LE.NWIDTH.LE.20, NWIDTH.GE.NDP + 7, NDP.GT.0. For fixed point format, 1.LE.NWIDTH.LE.20, NWIDTH.GT.NDP + 1, NDP.GE.0. If these restrictions are violated, no contour heights may be printed, or NWIDTH asterisks may be produced. Unchanged on exit. D. Error Indicators and Warnings ================================ None. ------ END OF J06GZF GRAPHICAL SUPPLEMENT SUMMARY - MARK 1 NOVEMBER 1981 ------ J06HAF ROUTINE J06HAF NAG GRAPHICAL SUPPLEMENT ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked //...// may be implementation dependent. A. Purpose ========== //J06HAF// draws an isometric projection of a single-valued three-dimensional surface Z(X,Y) defined at points on a regular rectangular grid. WARNING: When using this routine the data region should be set equal to the viewport to avoid distortion (see section 3 of the Graphical Supplement routine document). B. Specification ================ SUBROUTINE //J06HAF// (HTS, M, N, IROT, IFAIL) C INTEGER M, N, IROT, IFAIL C //real// HTS(M,N) C. Parameters ============= HTS - //real// array of DIMENSION (M,p), where p.GE.N. Before entry, HTS must contain the surface heights evaluated on a regular rectangular grid of M*N mesh points. The elements of the array HTS(I,J) should be assigned so that I increases as X increases, and J increases as Y increases. Unchanged on exit. M - INTEGER. N - INTEGER. On entry, M,N must specify the number of data points in the X and Y direction respectively. 2.LE.M.LE.50, 2.LE.N.LE.50. Unchanged on exit. IROT - INTEGER. On entry, IROT must specify the integer multiple of 90 degrees through which the surface is to be rotated. For a rotation of zero degrees (IROT=0), the surface is viewed from the corner HTS(M,N). The surface is rotated clockwise about the Z axis by 90*IROT degrees. 0.LE.IROT .LE.3. Unchanged on exit. IFAIL - INTEGER. Before entry, IFAIL must be assigned a value. For users not familiar with this parameter (described in Chapter P01 of the NAG FORTRAN Library Manual or the NAG On-line Information Supplement) the recommended value is 0. Unless the routine detects an error (see next section), IFAIL contains 0 on exit. D. Error Indicators and Warnings ================================ Errors detected by this routine:- IFAIL = 1 On entry, M.LT.2 or N.LT.2. IFAIL = 2 On entry, IROT.LT.0 or IROT.GT.3. IFAIL = 3 On entry, M.GT.50 or N.GT.50. ------ END OF J06HAF GRAPHICAL SUPPLEMENT SUMMARY - MARK 1 NOVEMBER 1981 ------ J06HBF ROUTINE J06HBF NAG GRAPHICAL SUPPLEMENT ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked //...// may be implementation dependent. A. Purpose ========== //J06HBF// draws an isometric projection of a single-valued three-dimensional surface Z(X,Y) defined at points on a regular rectangular grid. Options are available for adjusting the height/width ratio of the surface, drawing upper and/or lower profiles, and drawing sections parallel to either or both axes. WARNING: When using this routine the data region should be set equal to the viewport to avoid distortion (see section 3 of the Graphical Supplement routine document). B. Specification ================ SUBROUTINE //J06HBF// (HTS, M, N, MDIM, HF, 1 IROT, SOLID, IBASE, ZBASE, JSECT, 2 ZMIN, ZMAX, RWS, NRWS, IFAIL) C INTEGER M, N, MDIM, IROT, IBASE, JSECT, C 1 NRWS, IFAIL C LOGICAL SOLID C //real// HTS(MDIM,N), HF, ZBASE, ZMIN, ZMAX, C 1 RWS(NRWS) C. Parameters ============= HTS - //real// array of DIMENSION (MDIM,p) where p.GE.N. Before entry, HTS must contain the surface heights evaluated on a regular rectangular grid of M*N mesh points. The elements of the array HTS(I,J) should be assigned so that I increases as X increases, and J increases as Y increases. Unchanged on exit. M - INTEGER. N - INTEGER. On entry, M, N must specify the number of data points in the X and Y directions. M.GE.2. N.GE.2. Unchanged on exit. MDIM - INTEGER. On entry, MDIM must specify the first dimension of the array HTS as declared in the calling (sub)program. MDIM .GE.M. Unchanged on exit. HF - //real//. On entry, HF must specify the height factor used to determine the vertical scale of the plotted surface. This value allows the user to vary the relationship between the height representation of the surface and the X-Y extent. To be precise, the size of the base as measured along the X axis in units of Z is taken as HF*(ZMAX-ZMIN). A suitable value for HF is 2.0; a larger value results in a flatter surface, whereas a smaller value results in a steeper surface. Unchanged on exit. IROT - INTEGER. On entry, IROT must specify the integer multiple of 90 degrees through which the surface is to be rotated. For IROT = 0, the surface is viewed from the corner HTS(M,N). The surface is rotated clockwise about the Z axis through 90 * IROT degrees. 0.LE.IROT.LE.3. Unchanged on exit. SOLID - LOGICAL. On entry, SOLID should be set .TRUE. if only the upper surface is to be drawn. SOLID should be set .FALSE. if the surface is a thin plate and both the lower and upper surfaces are to be drawn. Unchanged on exit. IBASE - INTEGER. On entry, IBASE must specify the type of base to be drawn: IBASE = 0 - no base is drawn IBASE = -1 - base drawn through ZMIN IBASE = +1 - base drawn through ZBASE. (A base can only be drawn if SOLID is set .TRUE.). Unchanged on exit. ZBASE - //real//. On entry, ZBASE must specify the height through which the base is to be drawn if IBASE = 1. No checking is performed to verify that the value of ZBASE is reasonable. On exit, ZBASE contains the height at which the base was drawn (or ZMIN if no base drawn). JSECT - INTEGER. On entry, JSECT must specify the method to be used for drawing the surface: JSECT = -1 - sections taken parallel to Y axis JSECT = +1 - sections taken parallel to X axis JSECT = 0 - sections taken parallel to both axes. Unchanged on exit. ZMIN - //real//. ZMAX - //real//. On entry, ZMIN and ZMAX must specify the minimum and maximum heights to be used in determining the vertical scale of the surface plot. If on entry ZMIN is set equal to ZMAX, the subroutine will scan the array HTS and assign the minimum and maximum values to ZMIN and ZMAX - this is the usual case. However the user can set values in ZMIN and ZMAX; this can be useful for plotting a number of surfaces to the same vertical scale. For ZMIN not equal to ZMAX on entry, the values are unchanged on exit; otherwise they are assigned the appropriate minimum and maximum values from the array HTS. RWS - //real// array of DIMENSION at least (NRWS). Used as working space. NRWS - INTEGER. On entry, NRWS must specify the dimension of RWS. NRWS.GE.5*max(M,N). IFAIL - INTEGER. Before entry, IFAIL must be assigned a value. For users not familiar with this parameter (described in Chapter P01 of the NAG FORTRAN Library Manual or the NAG On-line Information Supplement) the recommended value is 0. Unless the routine detects an error (see next section), IFAIL contains 0 on exit. D. Error Indicators and Warnings ================================ Errors detected by this routine:- IFAIL = 1 On entry, M.LT.2 or N.LT.2 or MDIM.LT.M. IFAIL = 2 On entry, HF.LE.0.0. IFAIL = 3 On entry, inconsistent values of IBASE and SOLID are supplied. Occurs if SOLID = .FALSE. and IBASE.NE.0, or if IBASE.LT.-1 or IBASE.GT.1. IFAIL = 4 On entry, IROT.LT.0 or IROT.GT.3. IFAIL = 5 On entry, ZMIN.GT.ZMAX. IFAIL = 6 On entry, NRWS.LT.5*max(M,N). ------ END OF J06HBF GRAPHICAL SUPPLEMENT SUMMARY - MARK 1 NOVEMBER 1981 ------ J06WAF ROUTINE J06WAF NAG GRAPHICAL INTERFACE ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked // ... // may be implementation dependent. A. Purpose ========== //J06WAF// performs two functions: (i) it carries out all necessary initialisations for the NAG graphical system; (ii) it establishes a mapping of the initial data region onto the default viewport. B. Specification ================ SUBROUTINE //J06WAF// C. Parameters ============= None. D. Further Comments =================== Either //J06WAF// or //J06XAF// must be the first NAG Graphical Supplement routine called. In an overlayed or segmented program, these routines should be placed in the main overlay or root segment. For an example of the use of this routine, see the Interface Test Program in the Graphical Supplement Manual. ------ END OF J06WAF GRAPHICAL INTERFACE SUMMARY - MARK 1 NOVEMBER 1981 ------ J06WBF ROUTINE J06WBF NAG GRAPHICAL INTERFACE ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked // ... // may be implementation dependent. A. Purpose ========== //J06WBF// performs two functions: (i) it declares the current data region; (ii) it establishes a mapping of this data region onto the current viewport, with the option of a margin around the plot. B. Specification ================ SUBROUTINE //J06WBF// (XMIN, XMAX, YMIN, YMAX, 1 MARGIN) C INTEGER MARGIN C //real// XMIN, XMAX, YMIN, YMAX C. Parameters ============= XMIN - //real//. XMAX - //real//. YMIN - //real//. YMAX - //real//. On entry, XMIN, XMAX, YMIN, YMAX must specify the limits of the user's data region; the point (XMIN,YMIN) indicates the lower left-hand corner, and (XMAX,YMAX) the upper right-hand corner. Unchanged on exit. MARGIN - INTEGER. On entry, MARGIN must specify whether a margin is to be left around the data region. If MARGIN = 0, no margin is left; if MARGIN = 1 a margin is included equivalent to 10% of the height of the data region of the plot, and 5% at the top, and to 10% of the width of the data region at the left of the plot, and 5% at the right. Unchanged on exit. D. Further Comments =================== If XMIN = XMAX, or YMIN = YMAX, the call of //J06WBF// is ignored and a warning message is output to the error message channel (see //X04AAF//). If MARGIN.NE.0 or 1, the effect is the same as MARGIN = 0, and no warning is given. For an example of the use of this routine, see the Interface Test Program in the Graphical Supplement Manual. ------ END OF J06WBF GRAPHICAL INTERFACE SUMMARY - MARK 1 NOVEMBER 1981 ------ J06WCF ROUTINE J06WCF NAG GRAPHICAL INTERFACE ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked // ... // may be implementation dependent. A. Purpose ========== //J06WCF// sets the current viewport on the plotting surface and establishes a mapping of the current data region onto this viewport. B. Specification ================ SUBROUTINE //J06WCF// (P1, P2, Q1, Q2) C //real// P1, P2, Q1, Q2 C. Parameters ============= P1 - //real//. P2 - //real//. Q1 - //real//. Q2 - //real//. On entry, P1, P2, Q1, Q2 must specify the limits of the new viewport in normalised device co-ordinates (see Essential Introduction to the Graphical Supplement Manual for details). Unchanged on exit. D. Further Comments =================== If P1.LT.0.0, P1.GE.P2, Q1.LT.0.0, or Q1.GE.Q2, the call of //J06WCF// is ignored, and a warning message is output to the error message channel (see //X04AAF//). For an example of the use of this routine, see the Interface Test Program in the Graphical Supplement Manual. ------ END OF J06WCF GRAPHICAL INTERFACE SUMMARY - MARK 1 NOVEMBER 1981 ------ J06WDF ROUTINE J06WDF NAG GRAPHICAL INTERFACE ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked // ... // may be implementation dependent. A. Purpose ========== //J06WDF// selects a new frame: on a plotter fresh paper is taken, on a display the screen is cleared. (It is an alternative to making a direct call to the underlying package for new frame selection.) B. Specification ================ SUBROUTINE //J06WDF// C. Parameters ============= None. D. Further Comments =================== This routine is intended as an alternative to a direct call to the frame advance routine in the underlying package, and simply increases the portability of programs which use the NAG Graphical Supplement. Note that many graphical packages offer two frame advance routines for use with interactive displays: one routine clears the screen after receiving a user prompt, the other clears the screen immediately. It is intended that, where such a choice is available, //J06WDF// calls the former. (If an immediate clear is required, the user should make a direct call to the alternative frame advance routine in the underlying package.) For an example of the use of this routine, see the Interface Test Program in the Graphical Supplement Manual. ------ END OF J06WDF GRAPHICAL INTERFACE SUMMARY - MARK 1 NOVEMBER 1981 ------ J06WZF ROUTINE J06WZF NAG GRAPHICAL INTERFACE ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked // ... // may be implementation dependent. A. Purpose ========== //J06WZF// terminates graphical output to the currently selected device. (It is an alternative to making a direct call to the underlying package for termination.) B. Specification ================ SUBROUTINE //J06WZF// C. Parameters ============= None. D. Further Comments =================== This routine is intended as an alternative to a direct call to the termination routine in the underlying package, and simply increases the portability of programs which use the NAG Graphical Supplement. For an example of the use of this routine, see the Interface Test Program in the Graphical Supplement Manual. ------ END OF J06WZF GRAPHICAL INTERFACE SUMMARY - MARK 1 NOVEMBER 1981 ------ J06XAF ROUTINE J06XAF NAG GRAPHICAL INTERFACE ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked // ... // may be implementation dependent. A. Purpose ========== //J06XAF// initialises the NAG graphical system. It is called automatically by //J06WAF//, but if the user sets up a mapping using direct calls to the underlying package, then //J06XAF// must be the first NAG graphical routine called. B. Specification ================ SUBROUTINE //J06XAF// C. Parameters ============= None. D. Further Comments =================== Either //J06WAF// or //J06XAF// must be the first NAG Graphical Supplement routine called. In an overlayed or segmented program, these routines should be placed in the main overlay or root segment. Note that //J06XAF// does not exist in the NAG Lineprinter Interface; //J06WAF// must be used. In the Lineprinter Interface, //J06WAF// sets the default tolerance factor for straight line approximation of curves to 200. This default may be reset by a call to //J06XEF// (pen attributes, character qualities and character and marker scaling factors have no equivalent in the Lineprinter Interface, and calls to routines which set them will have no effect). ------ END OF J06XAF GRAPHICAL INTERFACE SUMMARY - MARK 1 NOVEMBER 1981 ------ J06XBF ROUTINE J06XBF NAG GRAPHICAL INTERFACE ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked // ... // may be implementation dependent. A. Purpose ========== //J06XBF// indicates the user's data region to the NAG graphical system. It is called automatically by //J06WBF//, but if the user sets up a mapping using direct calls to the underlying package, then //J06XBF// should be called to pass the data region information to the NAG system. B. Specification ================ SUBROUTINE //J06XBF// (XMIN, XMAX, YMIN, YMAX) C //real// XMIN, XMAX, YMIN, YMAX C. Parameters ============= XMIN - //real//. XMAX - //real//. YMIN - //real//. YMAX - //real//. On entry, XMIN, XMAX, YMIN, YMAX must specify the limits of the user's data region: the point (XMIN,YMIN) must indicate the lower left-hand corner point, and (XMAX,YMAX) the upper right-hand corner point. Unchanged on exit. D. Further Comments =================== This routine has no graphical function; the user must specify the required mapping onto the plotting surface in appropriate calls to the underlying graphics package. Note that //J06XBF// does not exist in the NAG Lineprinter Interface; //J06WBF// must be used. ------ END OF J06XBF GRAPHICAL INTERFACE SUMMARY - MARK 1 NOVEMBER 1981 ------ J06XDF ROUTINE J06XDF NAG GRAPHICAL INTERFACE ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked // ... // may be implementation dependent. A. Purpose ========== //J06XDF// defines attributes of colour, linestyle and text font for a particular "pen"; it is used in conjunction with NAG Graphical Supplement routines which offer a highlighting option. B. Specification ================ SUBROUTINE //J06XDF// (IPEN, ICOL, ILSTYL, 1 IFONT) C INTEGER IPEN, ICOL, ILSTYL, IFONT C. Parameters ============= IPEN - INTEGER. On entry, IPEN must specify the particular pen being defined (1.LE.IPEN.LE.4). Unchanged on exit. ICOL - INTEGER. ILSTYL - INTEGER. IFONT - INTEGER. On entry, ICOL, ILSTYL, IFONT must specify the colour, linestyle and text font values respectively of pen number IPEN. Unchanged on exit. D. Further Comments =================== If IPEN.LT.1 or IPEN.GT.4, or any of ICOL, ILSTYL or IFONT is outside the range defined for the particular implementation of the Interface, the call to //J06XDF// is ignored and a warning message is output to the error message channel (see //X04AAF//). For an example of the use of this routine, see the Interface Test Program in the Graphical Supplement Manual. ------ END OF J06XDF GRAPHICAL INTERFACE SUMMARY - MARK 1 NOVEMBER 1981 ------ J06XEF ROUTINE J06XEF NAG GRAPHICAL INTERFACE ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked // ... // may be implementation dependent. A. Purpose ========== //J06XEF// sets the tolerance factor used in the straight line approximation of curves. B. Specification ================ SUBROUTINE //J06XEF// (ITOLF) C INTEGER ITOLF C. Parameters ============= ITOLF - INTEGER. On entry, ITOLF must specify the required tolerance factor. Unchanged on exit. D. Further Comments =================== If ITOLF.LE.0, the call to //J06XEF// is ignored, and a warning message is output to the error message channel (see //X04AAF//). For an example of the use of this routine, see the Interface Test Program in the Graphical Supplement Manual. ------ END OF J06XEF GRAPHICAL INTERFACE SUMMARY - MARK 1 NOVEMBER 1981 ------ J06XFF ROUTINE J06XFF NAG GRAPHICAL INTERFACE ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked // ... // may be implementation dependent. A. Purpose ========== //J06XFF// selects character and marker quality; medium and high qualities are available. B. Specification ================ SUBROUTINE //J06XFF// (IQUAL) C INTEGER IQUAL C. Parameters ============= IQUAL - INTEGER. On entry, IQUAL must specify the required character quality. IQUAL = 1 selects medium quality; IQUAL = 2 selects high quality. By default, ITOLF is set to 2000 (except in the Lineprinter Interface where it is set to 200). Unchanged on exit. D. Further Comments =================== If IQUAL.LT.1 or IQUAL.GT.2, the call to //J06XFF// is ignored, and a warning message is output to the error message channel (see //X04AAF//). For an example of the use of this routine, see the Interface Test Program in the Graphical Supplement Manual. ------ END OF J06XFF GRAPHICAL INTERFACE SUMMARY - MARK 1 NOVEMBER 1981 ------ J06XGF ROUTINE J06XGF NAG GRAPHICAL INTERFACE ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked // ... // may be implementation dependent. A. Purpose ========== //J06XGF// sets character size scaling factors. B. Specification ================ SUBROUTINE //J06XGF// (CSCW, CSCH) C //real// CSCW, CSCH C. Parameters ============= CSCW - //real//. CSCH - //real//. On entry, CSCW, CSCH must specify scale factors for the width and height of all characters drawn by NAG Graphical Supplement routines. Unchanged on exit. D. Further Comments =================== If CSCW.LE.0.0 or CSCH.LE.0.0, the call to //J06XGF// is ignored, and a warning message is output to the error message channel (see //X04AAF//). For an example of the use of this routine, see the Interface Test Program in the Graphical Supplement Manual. ------ END OF J06XGF GRAPHICAL INTERFACE SUMMARY - MARK 1 NOVEMBER 1981 ------ J06XHF ROUTINE J06XHF NAG GRAPHICAL INTERFACE ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked // ... // may be implementation dependent. A. Purpose ========== //J06XHF// sets the marker size scaling factor. B. Specification ================ SUBROUTINE //J06XHF// (AMSC) C //real// AMSC C. Parameters ============= AMSC - //real//. On entry, AMSC must specify a scale factor for the size of all markers drawn. Unchanged on exit. D. Further Comments =================== If AMSC.LE.0.0, the call to //J06XHF// is ignored, and a warning message is output to the error message channel (see //X04AAF//). For an example of the use of this routine, see the Interface Text Program in the Graphical Supplement Manual. ------ END OF J06XHF GRAPHICAL INTERFACE SUMMARY - MARK 1 NOVEMBER 1981 ------ J06YAF ROUTINE J06YAF NAG GRAPHICAL INTERFACE ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement. Terms marked // ... // may be implementation dependent. This routine may be called directly by users, but its specification may change at Mark 2 to reflect moves towards standardisation of graphical interfaces. A. Purpose ========== //J06YAF// moves the pen to the position (X,Y) in user co-ordinates. No line is drawn. B. Specification ================ SUBROUTINE //J06YAF// (X, Y) C //real// X, Y C. Parameters ============= X - //real//. Y - //real//. On entry, X, Y must specify the X and Y co-ordinates of the new pen position. Unchanged on exit. D. Further Comments =================== For an example of the use of this routine, see the Interface Test Program in the Graphical Supplement Manual. ------ END OF J06YAF GRAPHICAL INTERFACE SUMMARY - MARK 1 NOVEMBER 1981 ------ J06YBF ROUTINE J06YBF NAG GRAPHICAL INTERFACE ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked // ... // may be implementation dependent. This routine may be called directly by users, but its specification may change at Mark 2 to reflect moves towards standardisation of graphical interfaces. A. Purpose ========== //J06YBF// increments the pen position by an amount (DX,DY) in user co-ordinates. No line is drawn. B. Specification ================ SUBROUTINE //J06YBF// (DX, DY) C //real// DX, DY C. Parameters ============= DX - //real//. DY - //real//. On entry, DX, DY must specify the pen position increments. Unchanged on exit. D. Further Comments =================== For an example of the use of this routine, see the Interface Test Program in the Graphical Supplement Manual. ------ END OF J06YBF GRAPHICAL INTERFACE SUMMARY - MARK 1 NOVEMBER 1981 ------ J06YCF ROUTINE J06YCF NAG GRAPHICAL INTERFACE ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked // ... // may be implementation dependent. This routine may be called directly by users, but its specification may change at Mark 2 to reflect moves towards standardisation of graphical interfaces. A. Purpose ========== //J06YCF// draws a line from the current pen position to the position (X,Y) in user co-ordinates. The pen position is updated to (X,Y). B. Specification ================ SUBROUTINE //J06YCF// (X, Y) C //real// X, Y C. Parameters ============= X - //real//. Y - //real//. On entry, X,Y must specify the X and Y co-ordinates of the point to which the line is to be drawn. Unchanged on exit. D. Further Comments =================== For an example of the use of this routine, see the Interface Test Program in the Graphical Supplement Manual. ------ END OF J06YCF GRAPHICAL INTERFACE SUMMARY - MARK 1 NOVEMBER 1981 ------ J06YDF ROUTINE J06YDF NAG GRAPHICAL INTERFACE ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked // ... // may be implementation dependent. This routine may be called directly by users, but its specification may change at Mark 2 to reflect moves towards standardisation of graphical interfaces. A. Purpose ========== //J06YDF// draws a line from the current pen position, advancing by an increment (DX,DY) in user co-ordinates. The current pen position is incremented by (DX,DY). B. Specification ================ SUBROUTINE //J06YDF// (DX, DY) C //real// DX, DY C. Parameters ============= DX - //real//. DY - //real//. On entry, DX, DY must specify the X and Y increments of the line to be drawn. Unchanged on exit. D. Further Comments =================== For an example of the use of this routine, see the Interface Test Program in the Graphical Supplement Manual. ------ END OF J06YDF GRAPHICAL INTERFACE SUMMARY - MARK 1 NOVEMBER 1981 ------ J06YGF ROUTINE J06YGF NAG GRAPHICAL INTERFACE ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked // ... // may be implementation dependent. This routine may be called directly by users, but its specification may change at Mark 2 to reflect moves towards standardisation of graphical interfaces. A. Purpose ========== //J06YGF// draws a marker, centred at the current pen position. The current pen position itself is unchanged. B. Specification ================ SUBROUTINE //J06YGF// (IMARK) C INTEGER IMARK C. Parameters ============= IMARK - INTEGER. On entry, IMARK must specify the particular marker required. 1.LE.IMARK.LE.9. Unchanged on exit. The appearance of each symbol may be Interface-dependent, implementation-dependent and hardware device-dependent. A simple test program to generate them all is probably the easiest way of determining their precise appearance. For those Interface versions supported by NAG, approximate symbol shapes are given in the Appendix to the Essential Introduction. D. Further Comments =================== If IMARK.LT.1 or IMARK.GT.9, marker number 1 is selected. If it proves impossible to draw a particular marker in a certain implementation, an alternative symbol will be used. For an example of the use of this routine, see the Interface Test Program in the Graphical Supplement Manual. ------ END OF J06YGF GRAPHICAL INTERFACE SUMMARY - MARK 1 NOVEMBER 1981 ------ J06YHF ROUTINE J06YHF NAG GRAPHICAL INTERFACE ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked // ... // may be implementation dependent. This routine may be called directly by users, but its specification may change at Mark 2 to reflect moves towards standardisation of graphical interfaces. A. Purpose ========== //J06YHF// draws a sequence of N characters stored in A1 format in the array ICHAR, starting at the current pen position. On exit, the current pen position follows the last character drawn. B. Specification ================ SUBROUTINE //J06YHF// (ICHAR, N) C INTEGER ICHAR(N), N C. Parameters ============= ICHAR - INTEGER array of DIMENSION at least (N). On entry, ICHAR(I), I = 1,...,N, must contain the N characters to be drawn, stored in A1 format. The available character set is ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789 -+*/=(),. and blank. Unchanged on exit. D. Further Comments =================== For an example of the use of this routine, see the Interface Test Program in the Graphical Supplement Manual. ------ END OF J06YHF GRAPHICAL INTERFACE SUMMARY - MARK 1 NOVEMBER 1981 ------ J06YJF ROUTINE J06YJF NAG GRAPHICAL INTERFACE ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked // ... // may be implementation dependent. This routine may be called directly by users, but its specification may change at Mark 2 to reflect moves towards standardisation of graphical interfaces. A. Purpose ========== //J06YJF// sets the size of markers. B. Specification ================ SUBROUTINE //J06YJF// (SIZE) C //real// SIZE C. Parameters ============= SIZE - //real//. On entry, SIZE must specify the width of markers in X axis units. Unchanged on exit. D. Further Comments =================== //J06YJF// is called by Supplement routines to set marker size. The actual size drawn is scaled by a factor which is set to 1.0 at initialisation, but which may be altered by the user through a call to //J06XHF//. If SIZE.LE.0.0, the call to //J06YJF// is ignored. For an example of the use of this routine, see the Interface Test Program in the Graphical Supplement Manual. ------ END OF J06YJF GRAPHICAL INTERFACE SUMMARY - MARK 1 NOVEMBER 1981 ------ J06YKF ROUTINE J06YKF NAG GRAPHICAL INTERFACE ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked // ... // may be implementation dependent. This routine may be called directly by users, but its specification may change at Mark 2 to reflect moves towards standardisation of grahical interfaces. A. Purpose ========== //J06YKF// sets the width and height of characters. B. Specification ================ SUBROUTINE //J06YKF// (WIDTH, HEIGHT) C //real// WIDTH, HEIGHT C. Parameters ============= WIDTH - //real//. On entry, WIDTH must specify the width of characters in X axis units. Unchanged on exit. HEIGHT - //real//. On entry, HEIGHT must specify the height of characters in Y axis units. Unchanged on exit. D. Further Comments =================== //J06YKF// is called by Supplement routines to set character size. The actual size drawn is scaled by width and height factors, which are set to 1.0 at initialisation but which may be altered by the user through a call to //J06XGF//. Note that the fitting of a character within a character box may depend on the character quality selected see section 3 of the //J06YHF// routine document in the Graphical Supplement Manual. If WIDTH.LE.0.0 or HEIGHT.LE.0.0, the call to //J06YKF// is ignored. For an example of the use of this routine, see the Interface Test Program in the Graphical Supplement Manual. ------ END OF J06YKF GRAPHICAL INTERFACE SUMMARY - MARK 1 NOVEMBER 1981 ------ J06YLF ROUTINE J06YLF NAG GRAPHICAL INTERFACE ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked // ... // may be implementation dependent. This routine may be called directly by users, but its specification may change at Mark 2 to reflect moves towards standardisation of graphical interfaces. A. Purpose ========== //J06YLF// sets the spacing between characters. B. Specification ================ SUBROUTINE //J06YLF// (DX, DY) C //real// DX, DY C. Parameters ============= DX - //real//. DY - //real//. On entry, DX, DY must specify the movement of the current pen position in the X and Y directions, after a character is drawn. Unchanged on exit. D. Further Comments =================== //J06YLF// is called by Supplement routines to set character spacing. When the routines are executed, the actual spacing is scaled by any width and height factors set by the user in a call to //J06XGF//, i.e. the same scale factors as are applied to character size are also applied to character spacing. Note also that a positive increment in the X direction is taken as a left-to-right increment on the plotting surface, and a positive increment in the Y direction as a bottom-to-top increment - this is to accommodate situations where the user specifies his data region limits the "wrong way round", i.e. XMIN.GT.XMAX, or YMIN.GT.YMAX, or both. For an example of the use of this routine, see the Interface Test Program in the Graphical Supplement Manual. ------ END OF J06YLF GRAPHICAL INTERFACE SUMMARY - MARK 1 NOVEMBER 1981 ------ J06YMF ROUTINE J06YMF NAG GRAPHICAL INTERFACE ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked // ... // may be implementation dependent. This routine may be called directly by users, but its specification may change at Mark 2 to reflect moves towards standardisation of graphical interfaces. A. Purpose ========== //J06YMF// selects a particular pen. B. Specification ================ SUBROUTINE //J06YMF// (IPEN) C INTEGER IPEN C. Parameters ============= IPEN - INTEGER. On entry, IPEN must specify the particular pen number required. Unchanged on exit. D. Further Comments =================== If IPEN.LT.1 or IPEN.GT.4, pen number 1 is selected. For an example of the use of this routine, see the Interface Test Program in the Graphical Supplement Manual. ------ END OF J06YMF GRAPHICAL INTERFACE SUMMARY - MARK 1 NOVEMBER 1981 ------ J06ZAF ROUTINE J06ZAF NAG GRAPHICAL INTERFACE ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked // ... // may be implementation dependent. A. Purpose ========== //J06ZAF// draws a text string. B. Specification ================ SUBROUTINE //J06ZAF// (ICHARS, NCHARS) C INTEGER ICHARS(NCHARS), NCHARS C. Parameters ============= ICHARS - INTEGER array of DIMENSION at least (NCHARS), or Hollerith constant of length NCHARS. On entry, ICHARS must contain the text to be output. If ICHARS is an INTEGER array, the characters must be stored in An format, where n is the number of characters which can be stored in one integer location. Unchanged on exit. NCHARS - INTEGER. On entry, NCHARS must specify the number of characters to be drawn. NCHARS.LE.80. If NCHARS.GT.80, only the first 80 characters will be drawn. Unchanged on exit. D. Further Comments =================== None. ------ END OF J06ZAF GRAPHICAL INTERFACE SUMMARY - MARK 1 NOVEMBER 1981 ------ J06ZBF ROUTINE J06ZBF NAG GRAPHICAL INTERFACE ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked // ... // may be implementation dependent. A. Purpose ========== //J06ZBF// draws an integer in FORTRAN integer format. B. Specification ================ SUBROUTINE //J06ZBF// (NUM, NWIDTH) C INTEGER NUM, NWIDTH C. Parameters ============= NUM - INTEGER. On entry, NUM must contain the integer to be drawn. Unchanged on exit. NWIDTH - INTEGER. On entry, NWIDTH must specify the format for NUM. Unchanged on exit. D. Further Comments =================== None. ------ END OF J06ZBF GRAPHICAL INTERFACE SUMMARY - MARK 1 NOVEMBER 1981 ------ J06ZCF ROUTINE J06ZCF NAG GRAPHICAL INTERFACE ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked // ... // may be implementation dependent. A. Purpose ========== //J06ZCF// draws a //real// number in FORTRAN floating point format. B. Specification ================ SUBROUTINE //J06ZCF// (FNUM, NWIDTH, NDP) C INTEGER NWIDTH, NDP C //real// FNUM C. Parameters ============= FNUM - //real//. On entry, FNUM must contain the number to be drawn. Unchanged on exit. NWIDTH - INTEGER. NDP - INTEGER. On entry, NWIDTH, NDP must specify the format for FNUM. If NWIDTH.GT.0, FNUM is drawn right-justified in a field of total width NWIDTH character positions, with NDP figures after the decimal point. 8.LE.NWIDTH.LE.20 1.LE.NDP.LE.NWIDTH-7. If NWIDTH.LE.0, FNUM is drawn left-justified with NDP figures after the decimal point. 1.LE.NDP.LE.13. In each case, one place is received for the sign. Unchanged on exit. D. Further Comments =================== None. ------ END OF J06ZCF GRAPHICAL INTERFACE SUMMARY - MARK 1 NOVEMBER 1981 ------ J06ZDF ROUTINE J06ZDF NAG GRAPHICAL INTERFACE ROUTINE SUMMARY ====== IMPORTANT: For a complete specification of the use of this routine see the NAG Graphical Supplement Manual. Terms marked // ... // may be implementation dependent. A. Purpose ========== //J06ZDF// draws a //real// number in FORTRAN fixed point format. B. Specification ================ SUBROUTINE //J06ZDF// (FNUM, NWIDTH, NDP) C INTEGER NWIDTH, NDP C //real// FNUM C. Parameters ============= FNUM - //real//. On entry, FNUM must contain the real number to be drawn. Unchanged on exit. NWIDTH - INTEGER. NDP - INTEGER. On entry, NWIDTH, NDP specify the format for FNUM. NWIDTH must specify the total width of the field, and NDP must specify the number of figures after the decimal point. If NWIDTH.GT.0, FNUM is drawn right-justified and 2.LE.NWIDTH.LE.20, 0.LE.NDP.LE.NWIDTH-2. If NWIDTH.GE.0, 0.LE.NDP.LE.18. Unchanged on exit. D. Further Comments =================== None. ------ END OF J06ZDF GRAPHICAL INTERFACE SUMMARY - MARK 1 NOVEMBER 1981 ------ S07AAF Tan(x) S09AAF Arcsin(x) S09ABF Arccos(x) S10AAF Tanh(x) S10ABF Sinh(x) S10ACF Cosh(x) S11AAF Arctanh(x) S11ABF Arcsinh(x) S11ACF Arccosh(x) S13AAF Exponential integral, E1(x) S13ACF Cosine integral, Ci(x) S13ADF Sine integral, Si(x) S14AAF Gamma function S14ABF Log Gamma function S15ABF Cumulative normal distribution function, P(x) S15ACF Complement of cumulative normal distribution function, Q(x) S15ADF Complement of error function, erfc(x) S15AEF Error function, erf(x) S15AFF Dawson's integral S17ACF Bessel functions, Y0(x) S17ADF Bessel functions, Y1(x) S17AEF Bessel functions, J0(x) S17AFF Bessel functions, J1(x) S17AGF Airy functions, Ai(x) S17AHF Airy functions, Bi(x) S17AJF Airy functions, Ai'(x) S17AKF Airy functions, Bi'(x) S18ACF Modified Bessel functions, K0(x) S18ADF Modified Bessel functions, K1(x) S18AEF Modified Bessel functions, I0(x) S18AFF Modified Bessel functions, I1(x) S18CCF Modified Bessel functions, exp(x)*K0(x) S18CDF Modified Bessel functions, exp(x)*K1(x) S18CEF Modified Bessel functions, exp(-abs(x))*I0(x) S18CFF Modified Bessel functions, exp(-abs(x))*I1(x) S20ACF Fresnel integrals, S(x) S20ADF Fresnel integrals, C(x) S21BAF Elliptic integrals, degenerate symmetrised integral of 1st kind, Rc(x,y) S21BBF Elliptic integrals, symmetrised integral of 1st kind, Rf(x,y,z) S21BCF Elliptic integrals, symmetrised integral of 2nd kind, Rd(x,y,z) S21BDF Elliptic integrals, symmetrised integral of 3rd kind, Rj(x,y,z,r) P01AAF Return value of error indicator/terminate with error message C02ADF All zeros of polynomial, Grant and Hitchins' method, complex coefficients C02AEF All zeros of polynomial, Grant and Hitchins' method, real coefficients X01AAF Pi X01ABF Euler's constant, Gamma X02AAF Smallest possible e such that 1.0+e > 1.0 X02ABF Smallest representable positive real number X02ACF Largest representable positive real number X02ADF Ratio of X02ABF to X02AAF X02AEF Largest negative permissible argument for EXP X02AFF Largest positive permissible argument for EXP X02AGF Smallest representable positive real number with reciprocal also representable X02AHF Largest permissible argument for SIN and COS X02BAF Base of floating-point arithmetic X02BBF Largest representable integer X02BCF Largest positive integer power to which 2.0 can be raised without overflow X02BDF Largest negative integer power to which 2.0 can be raised without underflow X02BEF Maximum number of decimal digits that can be represented X02CAF Estimate of active-set size (for paged virtual store machines) X02DAF Switch for taking precautions to avoid underflow X04AAF Return or set unit number for error messages X04ABF Return or set unit number for advisory messages SUMMARY NAG FORTRAN MARK 10 LIBRARY CONCISE SUMMARY N.B. This summary does not include routines which have been scheduled for withdrawal at Mark 11. A02 complex arithmetic C02 zeros of polynomials C05 roots of one or more transendental equations C06 summation of series D01 quadrature D02 ordinary differential equations D03 partial differential equations D04 numerical differentiation D05 integral equations E01 interpolation E02 curve and surface fitting E04 minimizing or maximizing a function F01 matrix operations, including inversion F02 eigenvalues and eigenvectors F03 determinants F04 simultaneous linear equations F05 orthogonalisation G01 simple calculations on statistical data G02 correlation and regression analysis G04 analysis of variance G05 random number generators G08 nonparametric statistics G13 time series analysis H operations research J06 NAG mark 1 graphical supplement M01 sorting P01 error trapping S approximations of special functions X01 mathematical constants X02 machine constants X03 innerproducts X04 input/output utilities C06ACF Circular convolution of two real vectors of period 2**M C06ADF Discrete Fourier transform, F.F.T. algorithm, complex data values within a multi-variable transform C06BAF Acceleration of convergence of a sequence, by epsilon algorithm C06DBF Sum of a Chebyshev series C06EAF Discrete Fourier transform, F.F.T. algorithm, no extra workspace, real data values C06EBF Discrete Fourier transform, F.F.T. algorithm, no extra workspace, complex data values (Hermitian sequence) C06ECF Discrete Fourier transform, F.F.T. algorithm, no extra workspace, complex data values (general sequence) C06FAF Discrete Fourier transform, F.F.T. algorithm, extra workspace for greater speed, real data values C06FBF Discrete Fourier transform, F.F.T. algorithm, extra workspace for greater speed, complex data values (Hermitian sequence) C06FCF Discrete Fourier transform, F.F.T. algorithm, extra workspace for greater speed, complex data values (general sequence) C06GBF Complex conjugate of complex data values, Hermitian sequence C06GCF Complex conjugate of complex data values, general sequence D01AHF Quadrature for one-dimensional integrals, adaptive integration of a function over a finite interval, strategy due to Patterson, suitable for well-behaved integrands D01AJF Quadrature for one-dimensional integrals, adaptive integration of a function over a finite interval, strategy due to Piessens & de Doncker, allowing for badly-behaved integrands D01AKF Quadrature for one-dimensional integrals, adaptive integration of a function over a finite interval, method suitable for oscillating functions D01ALF Quadrature for one-dimensional integrals, adaptive integration of a function over a finite interval, allowing for singularities at user-specified points D01AMF Quadrature for one-dimensional integrals, adaptive integration of a function over an infinite or semi-infinite interval D01ANF Quadrature for one-dimensional integrals, adaptive integration of a function over a finite interval, weight function cos(wx) or sin(wx) D01APF Quadrature for one-dimensional integrals, adaptive integration of a function over a finite interval, weight function with end-point singularities of algebraico-logarithmic type D01AQF Quadrature for one-dimensional integrals, adaptive integration of a function over a finite interval, weight function 1/(x-c) (Hilbert transform) D01ARF Quadrature for one-dimensional integrals, adaptive integration of a function over a finite interval, with provision for indefinite integrals also D01BAF Quadrature for one-dimensional integrals, Gaussian rule-evaluation D01BBF Weights and abscissae for Gaussian quadrature rules, restricted choice of rule, using pre-computed weights and abscissae D01BCF Weights and abscissae for Gaussian quadrature rules, more general choice of rule, calculating the weights and abscissae D01BDF Quadrature for one-dimensional integrals, non-adaptive integration over a finite interval D01DAF Quadrature for two-dimensional integrals over a finite region D01FBF Quadrature for multi-dimensional integrals, over a hyper-rectangle, Gaussian rule-evaluation D01FCF Quadrature for multi-dimensional integrals, over a hyper-rectangle, adaptive method D01FDF Quadrature for multi-dimensional integrals, over a general product region, Sag-Szekeres method (also over n-sphere) D01GAF Quadrature for one-dimensional integrals, integration of a function defined by data values only D01GBF Quadrature for multi-dimensional integrals, over a hyper-rectangle, Monte-Carlo method D01GCF Quadrature for multi-dimensional integrals, over a general product region, number-theoretic method D01GYF Korobov optimal coefficients for use in D01GCF, when number of points is prime D01GZF Korobov optimal coefficients for use in D01GCF, when number of points is a product of 2 primes D01JAF Quadrature for multi-dimensional integrals, over an n-sphere (n<=4), allowing for badly behaved integrands D01PAF Quadrature for multi-dimensional integrals, over an n-simplex E04ABF Minimum, function of one variable using function values only E04BBF Minimum, function of one variable, using first derivative E04CCF Unconstrained minimum, function of several variables, (comprehensive), using function values only, simplex algorithm E04CGF Unconstrained minimum, function of several variables, (easy-to-use), using function values only, quasi-Newton algorithm E04DBF Unconstrained minimum, function of several variables, (comprehensive), using first derivatives, conjugate direction algorithm E04DEF Unconstrained minimum, function of several variables, (easy-to-use), using first derivatives, quasi-Newton algorithm E04DFF Unconstrained minimum, function of several variables, (easy-to-use), using first derivatives, modified Newton algorithm E04EBF Unconstrained minimum, function of several variables, (easy-to-use), using first and second derivatives, modified Newton algorithm E04FCF Unconstrained minimum, function of several variables, sum of squares, (comprehensive), using function values only, combined Gauss-Newton and modified Newton algorithm E04FDF Unconstrained minimum, function of several variables, sum of squares, (easy-to-use), using function values only, combined Gauss-Newton and modified Newton algorithm E04GBF Unconstrained minimum, function of several variables, sum of squares, (comprehensive), using first derivatives, combined Gauss-Newton and quasi-Newton algorithm E04GCF Unconstrained minimum, function of several variables, sum of squares, (easy-to-use), using first derivatives, combined Gauss-Newton and quasi-Newton algorithm E04GDF Unconstrained minimum, function of several variables, sum of squares, (comprehensive), using first derivatives, combined Gauss-Newton and modified Newton algorithm E04GEF Unconstrained minimum, function of several variables, sum of squares, (easy-to-use), using first derivatives, combined Gauss-Newton and modified Newton algorithm E04HBF Finite-difference intervals for estimating first derivatives E04HCF Check user's routine calculating first derivatives of function E04HDF Check user's routine calculating second derivatives of function E04HEF Unconstrained minimum, function of several variables, sum of squares, (comprehensive), using second derivatives, combined Gauss-Newton and modified Newton algorithm E04HFF Unconstrained minimum, function of several variables, sum of squares, (easy-to-use), using second derivatives, combined Gauss-Newton and modified Newton algorithm E04JAF Minimum, function of several variables, simple bounds, (easy-to-use), using function values only, quasi-Newton algorithm E04JBF Minimum, function of several variables, simple bounds, (comprehensive), using function values only, quasi-Newton algorithm E04KAF Minimum, function of several variables, simple bounds, (easy-to-use), using first derivatives, quasi-Newton algorithm E04KBF Minimum, function of several variables, simple bounds, (comprehensive), using first derivatives, quasi-Newton algorithm E04KCF Minimum, function of several variables, simple bounds, (easy-to-use), using first derivatives, modified Newton algorithm E04KDF Minimum, function of several variables, simple bounds, (comprehensive), using first derivatives, modified Newton algorithm E04LAF Minimum, function of several variables, simple bounds, (easy-to-use), using first and second derivatives, modified Newton algorithm E04LBF Minimum, function of several variables, simple bounds, (comprehensive), using first and second derivatives, modified Newton algorithm E04UAF Minimum, function of several variables, general non-linear constraints, using function and constraint values only, sequential augmented Lagrangian quasi-Newton method E04VAF Minimum, function of several variables, general non-linear constraints, using first derivatives, sequential augmented Lagrangian quasi-Newton method E04VBF Minimum, function of several variables, general non-linear constraints, using first derivatives, sequential augmented Lagrangian modified Newton method E04WAF Minimum, function of several variables, general non-linear constraints, using first and second derivatives, sequential augmented Lagrangian modified Newton method E04YAF Check user's routine calculating Jacobian of first derivatives E04YBF Check user's routine calculating second derivative term in Hessian matrix of sum of squares E04ZAF Check user's routines calculating first derivatives of function and constraints E04ZBF Check user's routines calculating second derivatives of function and constraints F04AAF Simultaneous linear equations, (black box), real matrix, approximate solution, multiple right hand sides F04ABF Simultaneous linear equations, (black box), real symmetric positive-definite matrix, accurate solution, multiple right hand sides F04ACF Simultaneous linear equations, (black box), real symmetric positive-definite band matrix, approximate solution, multiple right hand sides F04ADF Simultaneous linear equations, (black box), complex matrix, approximate solution, multiple right hand sides F04AEF Simultaneous linear equations, (black box), real matrix, accurate solution, multiple right hand sides F04AFF Simultaneous linear equations, (coefficient matrix already factorised), real symmetric positive definite matrix, accurate solution F04AGF Simultaneous linear equations, (coefficient matrix already factorised), real symmetric positive-definite matrix, approximate solution (factorisation by F03AEF) F04AHF Simultaneous linear equations, (coefficient matrix already factorised), real matrix, accurate solution F04AJF Simultaneous linear equations, (coefficient matrix already factorised), real matrix, approximate solution (factorisation by F03AFF) F04AKF Simultaneous linear equations, (coefficient matrix already factorised), complex matrix, approximate solution F04ALF Simultaneous linear equations, (coefficient matrix already factorised), real symmetric positive-definite band matrix, approximate solution F04AMF Least-squares, m real equations in n unknowns, rank =n, m>=n, accurate solution (black box) F04ANF Least-squares, m real equations in n unknowns, rank =n, m>=n, approximate solution (after factorisation by F01AXF) F04AQF Simultaneous linear equations, (coefficient matrix already factorised), real symmetric positive-definite matrix, approximate solution (factorisation by F01BQF) F04ARF Simultaneous linear equations, (black box), real matrix, approximate solution, one right hand side F04ASF Simultaneous linear equations, (black box), real symmetric positive-definite matrix, accurate solution, one right hand side F04ATF Simultaneous linear equations, (black box), real matrix, accurate solution, one right hand side F04AWF Simultaneous linear equations, (coefficient matrix already factorised), complex Hermitian positive-definite matrix, approximate solution F04AXF Simultaneous linear equations, (coefficient matrix already factorised), real sparse matrix, approximate solution F04AYF Simultaneous linear equations, (coefficient matrix already factorised), real matrix, approximate solution (factorisation by F01BTF) F04AZF Simultaneous linear equations, (coefficient matrix already factorised), real symmetric positive-definite matrix, approximate solution (factorisation by F01BXF) F04JAF Least-squares, m real equations in n unknowns, rank<=n, m>=n, minimal least-squares solution F04JDF Least-squares, m real equations in n unknowns, rank<=n, m<=n, minimal least-squares solution F04JGF Least-squares, m real equations in n unknowns, rank<=n, m>=n, least-squares solution if rank=n, otherwise minimal least-squares solution F04LDF Simultaneous linear equations, (coefficient matrix already factorised), real band matrix, approximate solution F04MCF Simultaneous linear equations, (coefficient matrix already factorised), real symmetric positive-definite variable-bandwidth matrix, approximate solution