<!----><?xml-stylesheet type="text/xsl" href="../styles/pmathml.xsl"?>
<!-- saved from url=(0014)about:internet -->
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dsi="http://www.w3.org/1999/xlink" xmlns:m="http://www.w3.org/1998/Math/MathML" xml:space="preserve"><head><meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"/><title>Advice on Replacement Calls for Withdrawn/Superseded Routines : NAG Library, Mark 22</title><link rel="stylesheet" href="../styles/libdoc.css" type="text/css"/><script type="text/javascript">
   function showLevel(_levelId){
    var thisLevel = document.getElementById(_levelId);
    var thisplus = document.getElementById( _levelId.concat('plus'));
    var thisminus = document.getElementById( _levelId.concat('minus'));
    if(thisLevel.style.display != "block"){
     thisLevel.style.display = "block";
     thisplus.style.display = "none";
     thisminus.style.display = "inline";
     }
    else{
     thisLevel.style.display = "none";
     thisminus.style.display = "none";
     thisplus.style.display = "inline";
     }
    }
  </script></head><body><hr/><div><a class="genint" href="../../pdf/GENINT/replace.pdf">Advice on Replacement Calls for Withdrawn/Superseded Routines (PDF version)</a></div>
<div><a class="htmltoc" href="../FRONTMATTER/manconts.xml">NAG Library Manual</a></div><hr/><h1 class="libdoc">NAG Library<br/><br/>Advice on Replacement Calls for Withdrawn/Superseded Routines</h1><div class="paramtext">The following list gives the names of replacement routines for those routines that have been withdrawn or superseded. For routines that have been withdrawn or superseded since Mark 13 replacement calls are also given.</div>
<div class="paramtext">The list indicates the minimum change necessary, but many of the replacement routines have additional flexibility and you may wish to take advantage of new features. It is strongly recommended that you consult the routine documents.</div><div class="htmltoc">
<h2 class="htmltoc"><span class="htmltochead" onclick="showLevel('htmltoc');"><span class="htmltocplus" id="htmltocplus">+</span><span class="htmltocminus" id="htmltocminus">&#8722;</span></span>&#160;Contents</h2>
<div class="htmltocitem" id="htmltoc">
<div class="htmltoc">
<span class="htmltoc" onclick="showLevel('tocC02');"><span class="htmltocplus" id="tocC02plus">+</span><span class="htmltocminus" id="tocC02minus">&#8722;</span></span>
<a class="htmltoc" href="#C02"><b>C02 &#8211; Zeros of Polynomials</b></a>
<div class="htmltocitem" id="tocC02">
<div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#C02AEF"><b>C02AEF</b></a>
</div>
</div>
</div><div class="htmltoc">
<span class="htmltoc" onclick="showLevel('tocD02');"><span class="htmltocplus" id="tocD02plus">+</span><span class="htmltocminus" id="tocD02minus">&#8722;</span></span>
<a class="htmltoc" href="#D02"><b>D02 &#8211; Ordinary Differential Equations</b></a>
<div class="htmltocitem" id="tocD02">
<div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#D02BAF"><b>D02BAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#D02BBF"><b>D02BBF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#D02BDF"><b>D02BDF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#D02CAF"><b>D02CAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#D02CBF"><b>D02CBF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#D02CGF"><b>D02CGF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#D02CHF"><b>D02CHF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#D02EAF"><b>D02EAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#D02EBF"><b>D02EBF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#D02EGF"><b>D02EGF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#D02EHF"><b>D02EHF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#D02PAF"><b>D02PAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#D02QDF"><b>D02QDF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#D02QQF"><b>D02QQF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#D02XAF"><b>D02XAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#D02XBF"><b>D02XBF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#D02YAF"><b>D02YAF</b></a>
</div>
</div>
</div><div class="htmltoc">
<span class="htmltoc" onclick="showLevel('tocD03');"><span class="htmltocplus" id="tocD03plus">+</span><span class="htmltocminus" id="tocD03minus">&#8722;</span></span>
<a class="htmltoc" href="#D03"><b>D03 &#8211; Partial Differential Equations</b></a>
<div class="htmltocitem" id="tocD03">
<div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#D03PAF"><b>D03PAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#D03PBF"><b>D03PBF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#D03PGF"><b>D03PGF</b></a>
</div>
</div>
</div><div class="htmltoc">
<span class="htmltoc" onclick="showLevel('tocE01');"><span class="htmltocplus" id="tocE01plus">+</span><span class="htmltocminus" id="tocE01minus">&#8722;</span></span>
<a class="htmltoc" href="#E01"><b>E01 &#8211; Interpolation</b></a>
<div class="htmltocitem" id="tocE01">
<div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#E01ACF"><b>E01ACF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#E01SEF"><b>E01SEF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#E01SFF"><b>E01SFF</b></a>
</div>
</div>
</div><div class="htmltoc">
<span class="htmltoc" onclick="showLevel('tocE02');"><span class="htmltocplus" id="tocE02plus">+</span><span class="htmltocminus" id="tocE02minus">&#8722;</span></span>
<a class="htmltoc" href="#E02"><b>E02 &#8211; Curve and Surface Fitting</b></a>
<div class="htmltocitem" id="tocE02">
<div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#E02DBF"><b>E02DBF</b></a>
</div>
</div>
</div><div class="htmltoc">
<span class="htmltoc" onclick="showLevel('tocE04');"><span class="htmltocplus" id="tocE04plus">+</span><span class="htmltocminus" id="tocE04minus">&#8722;</span></span>
<a class="htmltoc" href="#E04"><b>E04 &#8211; Minimizing or Maximizing a Function</b></a>
<div class="htmltocitem" id="tocE04">
<div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#E04CCF"><b>E04CCF/E04CCA</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#E04FDF"><b>E04FDF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#E04GCF"><b>E04GCF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#E04GEF"><b>E04GEF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#E04HBF"><b>E04HBF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#E04HFF"><b>E04HFF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#E04JAF"><b>E04JAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#E04JBF"><b>E04JBF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#E04KAF"><b>E04KAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#E04KBF"><b>E04KBF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#E04KCF"><b>E04KCF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#E04LAF"><b>E04LAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#E04MBF"><b>E04MBF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#E04NAF"><b>E04NAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#E04UNF"><b>E04UNF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#E04UPF"><b>E04UPF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#E04VCF"><b>E04VCF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#E04VDF"><b>E04VDF</b></a>
</div>
</div>
</div><div class="htmltoc">
<span class="htmltoc" onclick="showLevel('tocF01');"><span class="htmltocplus" id="tocF01plus">+</span><span class="htmltocminus" id="tocF01minus">&#8722;</span></span>
<a class="htmltoc" href="#F01"><b>F01 &#8211; Matrix Operations, Including Inversion</b></a>
<div class="htmltocitem" id="tocF01">
<div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01AAF"><b>F01AAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01ACF"><b>F01ACF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01AEF"><b>F01AEF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01AFF"><b>F01AFF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01AGF"><b>F01AGF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01AHF"><b>F01AHF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01AJF"><b>F01AJF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01AKF"><b>F01AKF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01ALF"><b>F01ALF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01AMF"><b>F01AMF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01ANF"><b>F01ANF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01APF"><b>F01APF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01ATF"><b>F01ATF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01AUF"><b>F01AUF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01AVF"><b>F01AVF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01AWF"><b>F01AWF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01AXF"><b>F01AXF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01AYF"><b>F01AYF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01AZF"><b>F01AZF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01BCF"><b>F01BCF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01BDF"><b>F01BDF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01BEF"><b>F01BEF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01BNF"><b>F01BNF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01BPF"><b>F01BPF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01BQF"><b>F01BQF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01BTF"><b>F01BTF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01BWF"><b>F01BWF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01BXF"><b>F01BXF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01CDF"><b>F01CDF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01CEF"><b>F01CEF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01CGF"><b>F01CGF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01CHF"><b>F01CHF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01CLF"><b>F01CLF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01LBF"><b>F01LBF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01LZF"><b>F01LZF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01MAF"><b>F01MAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01NAF"><b>F01NAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01QAF"><b>F01QAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01QBF"><b>F01QBF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01QCF"><b>F01QCF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01QDF"><b>F01QDF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01QEF"><b>F01QEF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01QFF"><b>F01QFF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01RCF"><b>F01RCF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01RDF"><b>F01RDF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01REF"><b>F01REF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F01RFF"><b>F01RFF</b></a>
</div>
</div>
</div><div class="htmltoc">
<span class="htmltoc" onclick="showLevel('tocF02');"><span class="htmltocplus" id="tocF02plus">+</span><span class="htmltocminus" id="tocF02minus">&#8722;</span></span>
<a class="htmltoc" href="#F02"><b>F02 &#8211; Eigenvalues and Eigenvectors</b></a>
<div class="htmltocitem" id="tocF02">
<div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02AAF"><b>F02AAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02ABF"><b>F02ABF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02ADF"><b>F02ADF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02AEF"><b>F02AEF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02AFF"><b>F02AFF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02AGF"><b>F02AGF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02AJF"><b>F02AJF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02AKF"><b>F02AKF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02AMF"><b>F02AMF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02ANF"><b>F02ANF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02APF"><b>F02APF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02AQF"><b>F02AQF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02ARF"><b>F02ARF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02AVF"><b>F02AVF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02AWF"><b>F02AWF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02AXF"><b>F02AXF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02AYF"><b>F02AYF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02BBF"><b>F02BBF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02BCF"><b>F02BCF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02BDF"><b>F02BDF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02BEF"><b>F02BEF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02BFF"><b>F02BFF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02BJF"><b>F02BJF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02BKF"><b>F02BKF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02BLF"><b>F02BLF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02EAF"><b>F02EAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02EBF"><b>F02EBF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02FAF"><b>F02FAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02FCF"><b>F02FCF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02FDF"><b>F02FDF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02FHF"><b>F02FHF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02GAF"><b>F02GAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02GBF"><b>F02GBF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02GJF"><b>F02GJF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02HAF"><b>F02HAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02HCF"><b>F02HCF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02HDF"><b>F02HDF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02SWF"><b>F02SWF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02SXF"><b>F02SXF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02SYF"><b>F02SYF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02SZF"><b>F02SZF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02UWF"><b>F02UWF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02UXF"><b>F02UXF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02UYF"><b>F02UYF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02WAF"><b>F02WAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02WEF"><b>F02WEF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F02XEF"><b>F02XEF</b></a>
</div>
</div>
</div><div class="htmltoc">
<span class="htmltoc" onclick="showLevel('tocF03');"><span class="htmltocplus" id="tocF03plus">+</span><span class="htmltocminus" id="tocF03minus">&#8722;</span></span>
<a class="htmltoc" href="#F03"><b>F03 &#8211; Determinants</b></a>
<div class="htmltocitem" id="tocF03">
<div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F03AGF"><b>F03AGF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F03AHF"><b>F03AHF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F03AMF"><b>F03AMF</b></a>
</div>
</div>
</div><div class="htmltoc">
<span class="htmltoc" onclick="showLevel('tocF04');"><span class="htmltocplus" id="tocF04plus">+</span><span class="htmltocminus" id="tocF04minus">&#8722;</span></span>
<a class="htmltoc" href="#F04"><b>F04 &#8211; Simultaneous Linear Equations</b></a>
<div class="htmltocitem" id="tocF04">
<div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F04AAF"><b>F04AAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F04ACF"><b>F04ACF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F04ADF"><b>F04ADF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F04AKF"><b>F04AKF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F04ALF"><b>F04ALF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F04ANF"><b>F04ANF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F04AQF"><b>F04AQF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F04ARF"><b>F04ARF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F04AWF"><b>F04AWF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F04AYF"><b>F04AYF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F04AZF"><b>F04AZF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F04EAF"><b>F04EAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F04FAF"><b>F04FAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F04JAF"><b>F04JAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F04JDF"><b>F04JDF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F04JLF"><b>F04JLF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F04JMF"><b>F04JMF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F04KLF"><b>F04KLF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F04KMF"><b>F04KMF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F04LDF"><b>F04LDF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F04MAF"><b>F04MAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F04MBF"><b>F04MBF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F04NAF"><b>F04NAF</b></a>
</div>
</div>
</div><div class="htmltoc">
<span class="htmltoc" onclick="showLevel('tocF11');"><span class="htmltocplus" id="tocF11plus">+</span><span class="htmltocminus" id="tocF11minus">&#8722;</span></span>
<a class="htmltoc" href="#F11"><b>F11 &#8211; Large Scale Linear Systems</b></a>
<div class="htmltocitem" id="tocF11">
<div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F11BAF"><b>F11BAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F11BBF"><b>F11BBF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F11BCF"><b>F11BCF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F11GAF"><b>F11GAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F11GBF"><b>F11GBF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#F11GCF"><b>F11GCF</b></a>
</div>
</div>
</div><div class="htmltoc">
<span class="htmltoc" onclick="showLevel('tocG01');"><span class="htmltocplus" id="tocG01plus">+</span><span class="htmltocminus" id="tocG01minus">&#8722;</span></span>
<a class="htmltoc" href="#G01"><b>G01 &#8211; Simple Calculations on Statistical Data</b></a>
<div class="htmltocitem" id="tocG01">
<div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G01BAF"><b>G01BAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G01BBF"><b>G01BBF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G01BCF"><b>G01BCF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G01BDF"><b>G01BDF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G01CAF"><b>G01CAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G01CBF"><b>G01CBF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G01CCF"><b>G01CCF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G01CDF"><b>G01CDF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G01CEF"><b>G01CEF</b></a>
</div>
</div>
</div><div class="htmltoc">
<span class="htmltoc" onclick="showLevel('tocG02');"><span class="htmltocplus" id="tocG02plus">+</span><span class="htmltocminus" id="tocG02minus">&#8722;</span></span>
<a class="htmltoc" href="#G02"><b>G02 &#8211; Correlation and Regression Analysis</b></a>
<div class="htmltocitem" id="tocG02">
<div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G02CJF"><b>G02CJF</b></a>
</div>
</div>
</div><div class="htmltoc">
<span class="htmltoc" onclick="showLevel('tocG04');"><span class="htmltocplus" id="tocG04plus">+</span><span class="htmltocminus" id="tocG04minus">&#8722;</span></span>
<a class="htmltoc" href="#G04"><b>G04 &#8211; Analysis of Variance</b></a>
<div class="htmltocitem" id="tocG04">
<div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G04ADF"><b>G04ADF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G04AEF"><b>G04AEF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G04AFF"><b>G04AFF</b></a>
</div>
</div>
</div><div class="htmltoc">
<span class="htmltoc" onclick="showLevel('tocG05');"><span class="htmltocplus" id="tocG05plus">+</span><span class="htmltocminus" id="tocG05minus">&#8722;</span></span>
<a class="htmltoc" href="#G05"><b>G05 &#8211; Random Number Generators</b></a>
<div class="htmltocitem" id="tocG05">
<div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05CAF"><b>G05CAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05CBF"><b>G05CBF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05CCF"><b>G05CCF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05CFF"><b>G05CFF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05CGF"><b>G05CGF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05DAF"><b>G05DAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05DBF"><b>G05DBF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05DCF"><b>G05DCF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05DDF"><b>G05DDF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05DEF"><b>G05DEF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05DFF"><b>G05DFF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05DGF"><b>G05DGF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05DHF"><b>G05DHF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05DJF"><b>G05DJF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05DKF"><b>G05DKF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05DLF"><b>G05DLF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05DMF"><b>G05DMF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05DPF"><b>G05DPF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05DRF"><b>G05DRF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05DYF"><b>G05DYF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05DZF"><b>G05DZF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05EAF"><b>G05EAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05EBF"><b>G05EBF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05ECF"><b>G05ECF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05EDF"><b>G05EDF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05EEF"><b>G05EEF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05EFF"><b>G05EFF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05EGF"><b>G05EGF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05EHF"><b>G05EHF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05EJF"><b>G05EJF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05EWF"><b>G05EWF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05EXF"><b>G05EXF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05EYF"><b>G05EYF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05EZF"><b>G05EZF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05FAF"><b>G05FAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05FBF"><b>G05FBF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05FDF"><b>G05FDF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05FEF"><b>G05FEF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05FFF"><b>G05FFF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05FSF"><b>G05FSF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05GAF"><b>G05GAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05GBF"><b>G05GBF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05HDF"><b>G05HDF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05HKF"><b>G05HKF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05HLF"><b>G05HLF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05HMF"><b>G05HMF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05HNF"><b>G05HNF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05KAF"><b>G05KAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05KBF"><b>G05KBF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05KCF"><b>G05KCF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05KEF"><b>G05KEF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05LAF"><b>G05LAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05LBF"><b>G05LBF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05LCF"><b>G05LCF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05LDF"><b>G05LDF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05LEF"><b>G05LEF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05LFF"><b>G05LFF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05LGF"><b>G05LGF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05LHF"><b>G05LHF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05LJF"><b>G05LJF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05LKF"><b>G05LKF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05LLF"><b>G05LLF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05LMF"><b>G05LMF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05LNF"><b>G05LNF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05LPF"><b>G05LPF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05LQF"><b>G05LQF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05LXF"><b>G05LXF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05LYF"><b>G05LYF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05LZF"><b>G05LZF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05MAF"><b>G05MAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05MBF"><b>G05MBF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05MCF"><b>G05MCF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05MDF"><b>G05MDF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05MEF"><b>G05MEF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05MJF"><b>G05MJF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05MKF"><b>G05MKF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05MLF"><b>G05MLF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05MRF"><b>G05MRF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05MZF"><b>G05MZF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05NAF"><b>G05NAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05NBF"><b>G05NBF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05PAF"><b>G05PAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05PCF"><b>G05PCF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05QAF"><b>G05QAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05QBF"><b>G05QBF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05QDF"><b>G05QDF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05RAF"><b>G05RAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05RBF"><b>G05RBF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05YAF"><b>G05YAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05YBF"><b>G05YBF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05YCF"><b>G05YCF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05YDF"><b>G05YDF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05YEF"><b>G05YEF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05YFF"><b>G05YFF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05YGF"><b>G05YGF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05YHF"><b>G05YHF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G05ZAF"><b>G05ZAF</b></a>
</div>
</div>
</div><div class="htmltoc">
<span class="htmltoc" onclick="showLevel('tocG08');"><span class="htmltocplus" id="tocG08plus">+</span><span class="htmltocminus" id="tocG08minus">&#8722;</span></span>
<a class="htmltoc" href="#G08"><b>G08 &#8211; Nonparametric Statistics</b></a>
<div class="htmltocitem" id="tocG08">
<div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G08ABF"><b>G08ABF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G08ADF"><b>G08ADF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G08CAF"><b>G08CAF</b></a>
</div>
</div>
</div><div class="htmltoc">
<span class="htmltoc" onclick="showLevel('tocG13');"><span class="htmltocplus" id="tocG13plus">+</span><span class="htmltocminus" id="tocG13minus">&#8722;</span></span>
<a class="htmltoc" href="#G13"><b>G13 &#8211; Time Series Analysis</b></a>
<div class="htmltocitem" id="tocG13">
<div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G13DAF"><b>G13DAF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#G13DCF"><b>G13DCF</b></a>
</div>
</div>
</div><div class="htmltoc">
<span class="htmltoc" onclick="showLevel('tocH');"><span class="htmltocplus" id="tocHplus">+</span><span class="htmltocminus" id="tocHminus">&#8722;</span></span>
<a class="htmltoc" href="#H"><b>H &#8211; Operations Research</b></a>
<div class="htmltocitem" id="tocH">
<div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#H02BAF"><b>H02BAF</b></a>
</div>
</div>
</div><div class="htmltoc">
<span class="htmltoc" onclick="showLevel('tocM01');"><span class="htmltocplus" id="tocM01plus">+</span><span class="htmltocminus" id="tocM01minus">&#8722;</span></span>
<a class="htmltoc" href="#M01"><b>M01 &#8211; Sorting and Searching</b></a>
<div class="htmltocitem" id="tocM01">
<div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#M01AJF"><b>M01AJF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#M01AKF"><b>M01AKF</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#M01APF"><b>M01APF</b></a>
</div>
</div>
</div><div class="htmltoc">
<span class="htmltoc" onclick="showLevel('tocP01');"><span class="htmltocplus" id="tocP01plus">+</span><span class="htmltocminus" id="tocP01minus">&#8722;</span></span>
<a class="htmltoc" href="#P01"><b>P01 &#8211; Error Trapping</b></a>
<div class="htmltocitem" id="tocP01">
<div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#P01ABF"><b>P01ABF</b></a>
</div>
</div>
</div>
</div>
</div><h2 class="standard"><a class="sec" name="C02" id="C02"/>C02 &#8211; Zeros of Polynomials</h2><h3 class="standard"><a class="sec" name="C02AEF" id="C02AEF"/>C02AEF</h3><div class="paramtext">
Withdrawn at Mark 16.<br/>
Replaced by <a class="rout" href="../C02/c02agf.xml">C02AGF</a>.</div><pre class="verbatim">
Old: CALL C02AEF(A,N,REZ,IMZ,TOL,IFAIL)
New: CALL C02AGF(A,N-1,SCALE,Z,W,IFAIL)</pre>
<div class="paramtext">The zeros are returned in the <span class="bitalic">double precision</span> array <a class="arg" href="../C02/c02agf.xml#Z">Z</a> of dimension <m:math>
 <m:mfenced separators=""><m:mn>2</m:mn><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../C02/c02agf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>&#160;rather than in the arrays REZ and IMZ, and <a class="arg" href="../C02/c02agf.xml#W">W</a> is a <span class="bitalic">double precision</span> work array of dimension <m:math>
 <m:mfenced separators="">
  <m:mn>2</m:mn>
  <m:mo>&#215;</m:mo>
  <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../C02/c02agf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction><m:mo>+</m:mo><m:mn>1</m:mn></m:mfenced>
 </m:mfenced>
</m:math>.</div><h2 class="standard"><a class="sec" name="D02" id="D02"/>D02 &#8211; Ordinary Differential Equations</h2><h3 class="standard"><a class="sec" name="D02BAF" id="D02BAF"/>D02BAF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../D02/d02pcf.xml">D02PCF</a> and associated D02P routines.</div><pre class="verbatim">
Old: CALL D02BAF(X,XEND,N,Y,TOL,FCN,W,IFAIL)
New: DO 10 L = 1,N
       THRES(L) = TOL
  10 CONTINUE
     CALL D02PVF(N,X,Y,XEND,TOL,THRES,2,'usualtask',.FALSE.,
    +            0.0D0,W,20*N,IFAIL)
     CALL D02PCF(FCN,XEND,X,Y,YP,YMAX,W,IFAIL)</pre>
<div class="paramtext"><a class="arg" href="../D02/d02pvf.xml#THRES">THRES</a>, <a class="arg" href="../D02/d02pcf.xml#YPGOT">YP</a>, <a class="arg" href="../D02/d02pcf.xml#YMAX">YMAX</a> are <span class="bitalic">double precision</span> arrays of length <a class="arg" href="../D02/d02pvf.xml#NEQ">N</a> and the length of array <a class="arg" href="../D02/d02pcf.xml#WORK">W</a> needs extending to length <m:math><m:mn>20</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../D02/d02pvf.xml#NEQ"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:math>.</div><h3 class="standard"><a class="sec" name="D02BBF" id="D02BBF"/>D02BBF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../D02/d02pcf.xml">D02PCF</a> and associated D02P routines.</div><pre class="verbatim">
Old: CALL D02BBF(X,XEND,N,Y,TOL,IRELAB,FCN,OUTPUT,W,IFAIL)
New: CALL D02PVF(N,X,Y,XEND,TOL,THRES,2,'usualtask',.FALSE.,
    +            0.0D0,W,20*N,IFAIL)
     ... set XWANT ...
  10 CONTINUE
     CALL D02PCF(FCN,XWANT,X,Y,YP,YMAX,W,IFAIL)
     IF (XWANT.LT.XEND) THEN
       ... reset XWANT ...
       GO TO 10
     ENDIF</pre>
<div class="paramtext"><a class="arg" href="../D02/d02pvf.xml#THRES">THRES</a>, <a class="arg" href="../D02/d02pcf.xml#YPGOT">YP</a>, <a class="arg" href="../D02/d02pcf.xml#YMAX">YMAX</a> are <span class="bitalic">double precision</span> arrays of length <a class="arg" href="../D02/d02pvf.xml#NEQ">N</a> and the length of array <a class="arg" href="../D02/d02pvf.xml#WORK">W</a> needs extending to length <m:math>
 <m:mn>20</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../D02/d02pvf.xml#NEQ"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction>
</m:math>.</div><h3 class="standard"><a class="sec" name="D02BDF" id="D02BDF"/>D02BDF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../D02/d02pcf.xml">D02PCF</a> and associated D02P routines.</div><pre class="verbatim">
Old: CALL D02BDF(X,XEND,N,Y,TOL,IRELAB,FCN,STIFF,YNORM,W,
    +            IW,M,OUTPUT,IFAIL)
New: CALL D02PVF(N,X,Y,XEND,TOL,THRES,2,'usualtask',.TRUE.,
    +            0.0D0,W,32*N,IFAIL)
     ... set XWANT ...
  10 CONTINUE
     CALL D02PCF(FCN,XWANT,X,Y,YP,YMAX,IFAIL)
     IF (XWANT.LT.XEND) THEN
       ... reset XWANT ...
       GO TO 10
     ENDIF
     CALL D02PZF(RMSERR,ERRMAX,TERRMX,W,IFAIL)</pre>
<div class="paramtext"><a class="arg" href="../D02/d02pvf.xml#THRES">THRES</a>, <a class="arg" href="../D02/d02pcf.xml#YPGOT">YP</a>, <a class="arg" href="../D02/d02pcf.xml#YMAX">YMAX</a> and <a class="arg" href="../D02/d02pzf.xml#RMSERR">RMSERR</a> are <span class="bitalic">double precision</span> arrays of length <a class="arg" href="../D02/d02pvf.xml#NEQ">N</a>. <a class="arg" href="../D02/d02pcf.xml#WORK">W</a> is now a <span class="bitalic">double precision</span> one-dimensional array of length <m:math>
 <m:mn>32</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../D02/d02pvf.xml#NEQ"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction>
</m:math>.</div><h3 class="standard"><a class="sec" name="D02CAF" id="D02CAF"/>D02CAF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../D02/d02cjf.xml">D02CJF</a>.</div><pre class="verbatim">
Old: CALL D02CAF(X,XEND,N,Y,TOL,FCN,W,IFAIL)
New: CALL D02CJF(X,XEND,N,Y,FCN,TOL,'M',D02CJX,D02CJW,W,IFAIL)</pre>
<div class="paramtext">D02CJX is a subroutine provided in the NAG Fortran Library and D02CJW is a <span class="bitalic">double precision</span> function also provided.  Both must be declared as EXTERNAL.  The array <a class="arg" href="../D02/d02cjf.xml#W">W</a> needs to be 5 elements greater in length.</div><h3 class="standard"><a class="sec" name="D02CBF" id="D02CBF"/>D02CBF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../D02/d02cjf.xml">D02CJF</a>.</div><pre class="verbatim">
Old: CALL D02CBF(X,XEND,N,Y,TOL,IRELAB,FCN,OUTPUT,W,IFAIL)
New: CALL D02CJF(X,XEND,N,Y,FCN,TOL,RELABS,OUTPUT,D02CJW,W,IFAIL)</pre>
<div class="paramtext">D02CJW is a <span class="bitalic">double precision</span> function provided in the NAG Fortran Library and must be declared as EXTERNAL.  The array <a class="arg" href="../D02/d02cjf.xml#W">W</a> needs to be 5 elements greater in length.  The integer parameter IRELAB (which can take values <m:math><m:mn>0</m:mn></m:math>, <m:math><m:mn>1</m:mn></m:math>&#160;or <m:math><m:mn>2</m:mn></m:math>) is catered for by the new CHARACTER*1 argument <a class="arg" href="../D02/d02cjf.xml#RELABS">RELABS</a> (whose corresponding values are 'M', 'A' and 'R').</div><h3 class="standard"><a class="sec" name="D02CGF" id="D02CGF"/>D02CGF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../D02/d02cjf.xml">D02CJF</a>.</div><pre class="verbatim">
Old: CALL D02CGF(X,XEND,N,Y,TOL,HMAX,M,VAL,FCN,W,IFAIL)
New: CALL D02CJF(X,XEND,N,Y,FCN,TOL,'M',D02CJX,G,W,IFAIL)
     .
     .
     .
     <span class="bitalic">double precision</span> FUNCTION G(X,Y)
     <span class="bitalic">double precision</span> X,Y(*)
     G = Y(M)-VAL
     END</pre>
<div class="paramtext">D02CJX is a subroutine provided in the NAG Fortran Library and should be declared as EXTERNAL.  Note the functionality of HMAX is no longer available directly.  Checking the value of <m:math>
 <m:mi mathvariant="normal">Y</m:mi><m:mfenced separators=""><m:mi mathvariant="normal">M</m:mi></m:mfenced>
 <m:mo>-</m:mo>
 <m:mi mathvariant="normal">VAL</m:mi>
</m:math>&#160;at intervals of length HMAX can be effected by a user-supplied procedure <a class="arg" href="../D02/d02cjf.xml#OUTPUT">OUTPUT</a> in place of D02CJX in the call described above.  See the routine document for <a class="rout" href="../D02/d02cjf.xml">D02CJF</a> for more details.</div><h3 class="standard"><a class="sec" name="D02CHF" id="D02CHF"/>D02CHF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../D02/d02cjf.xml">D02CJF</a>.</div><pre class="verbatim">
Old: CALL D02CHF(X,XEND,N,Y,TOL,IRELAB,HMAX,FCN,G,W,IFAIL)
New: CALL D02CJF(X,XEND,N,Y,FCN,TOL,RELABS,D02CJX,G,W,IFAIL)</pre>
<div class="paramtext">D02CJX is a subroutine provided by the NAG Fortran Library and should be declared as EXTERNAL.  The functionality of HMAX can be provided as described under the replacement call for <a class="wdrn" href="../GENINT/replace.xml#D02CGF">D02CGF</a>.  The relationship between the parameters IRELAB and <a class="arg" href="../D02/d02cjf.xml#RELABS">RELABS</a> is described under the replacement call for <a class="wdrn" href="../GENINT/replace.xml#D02CBF">D02CBF</a>.</div><h3 class="standard"><a class="sec" name="D02EAF" id="D02EAF"/>D02EAF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../D02/d02ejf.xml">D02EJF</a>.</div><pre class="verbatim">
Old: CALL D02EAF(X,XEND,N,Y,TOL,FCN,W,IW,IFAIL)
New: CALL D02EJF(X,XEND,N,Y,FCN,TOL,'M',D02EJX,D02EJW,D02EJY,W,IW,
    +            IFAIL)</pre>
<div class="paramtext">D02EJY and D02EJX are subroutines provided in the NAG Fortran Library and D02EJW is a <span class="bitalic">double precision</span> function also provided.  All must be declared as EXTERNAL.</div><h3 class="standard"><a class="sec" name="D02EBF" id="D02EBF"/>D02EBF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../D02/d02ejf.xml">D02EJF</a>.</div><pre class="verbatim">
Old: CALL D02EBF(X,XEND,N,Y,TOL,IRELAB,FCN,MPED,PEDERV,OUTPUT,W,IW,
    +            IFAIL)
New: CALL D02EJF(X,XEND,N,Y,FCN,PEDERV,TOL,RELABS,OUTPUT,D02EJW,W,IW,
    +            IFAIL)</pre>
<div class="paramtext">D02EJW is a <span class="bitalic">double precision</span> function provided in the NAG Fortran Library and must be declared as EXTERNAL.  The integer parameter IRELAB (which can take values 0, 1 or 2) is catered for by the new CHARACTER*1 argument <a class="arg" href="../D02/d02ejf.xml#RELABS">RELABS</a> (whose corresponding values are 'M', 'A' and 'R').  If <m:math>
 <m:mi mathvariant="normal">MPED</m:mi>
 <m:mo>=</m:mo>
 <m:mn>0</m:mn>
</m:math>&#160;in the call of <a class="wdrn" href="../GENINT/replace.xml#D02EBF">D02EBF</a> then <a class="arg" href="../D02/d02ejf.xml#PEDERV">PEDERV</a> must be the routine D02EJY, which is supplied in the Library and should be declared as EXTERNAL.</div><h3 class="standard"><a class="sec" name="D02EGF" id="D02EGF"/>D02EGF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../D02/d02ejf.xml">D02EJF</a>.</div><pre class="verbatim">
Old: CALL D02EGF(X,XEND,N,Y,TOL,HMAX,M,VAL,FCN,W,IW,IFAIL)
New: CALL D02EJF(X,XEND,N,Y,FCN,D02EJY,TOL,'M',D02EJX,G,W,IW,IFAIL)
     .
     .
     .
     <span class="bitalic">double precision</span> FUNCTION G(X,Y)
     <span class="bitalic">double precision</span> X,Y(*)
     G = Y(M)-VAL
     END</pre>
<div class="paramtext">D02EJY and D02EJX are subroutines provided in the NAG Fortran Library and should be declared as EXTERNAL.  Note that the functionality of HMAX is no longer available directly.  Checking the value of <m:math>
 <m:mi mathvariant="normal">Y</m:mi><m:mfenced separators=""><m:mi mathvariant="normal">M</m:mi></m:mfenced>
 <m:mo>-</m:mo>
 <m:mi mathvariant="normal">VAL</m:mi>
</m:math>&#160;at intervals of length HMAX can be effected by a user-supplied procedure <a class="arg" href="../D02/d02ejf.xml#OUTPUT">OUTPUT</a> in place of D02EJX in the call described above.  See the routine document for <a class="rout" href="../D02/d02ejf.xml">D02EJF</a> for more details.</div><h3 class="standard"><a class="sec" name="D02EHF" id="D02EHF"/>D02EHF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../D02/d02ejf.xml">D02EJF</a>.</div><pre class="verbatim">
Old: CALL D02EHF(X,XEND,N,Y,TOL,IRELAB,HMAX,MPED,PEDERV,FCN,G,W,IFAIL)
New: CALL D02EJF(X,XEND,N,Y,FCN,PEDERV,TOL,RELABS,D02EJX,G,W,IW,IFAIL)</pre>
<div class="paramtext">D02EJX is a subroutine provided by the NAG Fortran Library and should be declared as EXTERNAL.  The functionality of HMAX can be provided as described under the replacement call for <a class="wdrn" href="../GENINT/replace.xml#D02EGF">D02EGF</a>.  The relationship between the parameters IRELAB and <a class="arg" href="../D02/d02ejf.xml#RELABS">RELABS</a> is described under the replacement call for <a class="wdrn" href="../GENINT/replace.xml#D02EBF">D02EBF</a>.  If <m:math>
 <m:mi mathvariant="normal">MPED</m:mi>
 <m:mo>=</m:mo>
 <m:mn>0</m:mn>
</m:math>&#160;in the call of <a class="wdrn" href="../GENINT/replace.xml#D02EHF">D02EHF</a> then <a class="arg" href="../D02/d02ejf.xml#PEDERV">PEDERV</a> must be the routine D02EJY, which is supplied in the Library and should be declared as EXTERNAL.</div><h3 class="standard"><a class="sec" name="D02PAF" id="D02PAF"/>D02PAF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../D02/d02pdf.xml">D02PDF</a> and associated D02P routines.</div><div class="paramtext">Existing programs should be modified to call <a class="rout" href="../D02/d02pvf.xml">D02PVF</a> and <a class="rout" href="../D02/d02pdf.xml">D02PDF</a>.  The interfaces are significantly different and therefore precise details of a replacement call cannot be given.  Please consult the appropriate routine documents.</div><h3 class="standard"><a class="sec" name="D02QDF" id="D02QDF"/>D02QDF</h3><div class="paramtext">
Withdrawn at Mark 17.<br/>
Replaced by <a class="rout" href="../D02/d02nbf.xml">D02NBF</a> or <a class="rout" href="../D02/d02ncf.xml">D02NCF</a>.</div><div class="paramtext">Existing programs should be modified to call <a class="rout" href="../D02/d02nsf.xml">D02NSF</a>, <a class="rout" href="../D02/d02nvf.xml">D02NVF</a> and <a class="rout" href="../D02/d02nbf.xml">D02NBF</a>, or <a class="rout" href="../D02/d02ntf.xml">D02NTF</a>, <a class="rout" href="../D02/d02nvf.xml">D02NVF</a> and <a class="rout" href="../D02/d02ncf.xml">D02NCF</a>.  The interfaces are significantly different and therefore precise details of a replacement call cannot be given.  Please consult the appropriate routine documents.</div><h3 class="standard"><a class="sec" name="D02QQF" id="D02QQF"/>D02QQF</h3><div class="paramtext">
Withdrawn at Mark 17.<br/>
Replaced by <a class="rout" href="../D02/d02nbf.xml">D02NBF</a> or <a class="rout" href="../D02/d02ncf.xml">D02NCF</a>.</div><h3 class="standard"><a class="sec" name="D02XAF" id="D02XAF"/>D02XAF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../D02/d02pxf.xml">D02PXF</a> and associated D02P routines.</div><div class="paramtext">Not needed except with <a class="wdrn" href="../GENINT/replace.xml#D02PAF">D02PAF</a>. The equivalent routine is <a class="rout" href="../D02/d02pxf.xml">D02PXF</a>.</div><h3 class="standard"><a class="sec" name="D02XBF" id="D02XBF"/>D02XBF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../D02/d02pxf.xml">D02PXF</a> and associated D02P routines.</div><div class="paramtext">Not needed except with <a class="wdrn" href="../GENINT/replace.xml#D02PAF">D02PAF</a>.</div><h3 class="standard"><a class="sec" name="D02YAF" id="D02YAF"/>D02YAF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../D02/d02pdf.xml">D02PDF</a> and associated D02P routines.</div><div class="paramtext">There is no precise equivalent to this routine. The closest alternative routine is <a class="rout" href="../D02/d02pdf.xml">D02PDF</a>.</div><h2 class="standard"><a class="sec" name="D03" id="D03"/>D03 &#8211; Partial Differential Equations</h2><h3 class="standard"><a class="sec" name="D03PAF" id="D03PAF"/>D03PAF</h3><div class="paramtext">
Withdrawn at Mark 17.<br/>
Replaced by <a class="rout" href="../D03/d03pcf.xml">D03PCF/D03PCA</a>.</div><div class="paramtext">Existing programs should be modified to call <a class="rout" href="../D03/d03pcf.xml">D03PCF/D03PCA</a>.  The replacement routine is designed to solve a broader class of problems.  Therefore it is not possible to give precise details of a replacement call.  Please consult the appropriate routine documents.</div><h3 class="standard"><a class="sec" name="D03PBF" id="D03PBF"/>D03PBF</h3><div class="paramtext">
Withdrawn at Mark 17.<br/>
Replaced by <a class="rout" href="../D03/d03pcf.xml">D03PCF/D03PCA</a>.</div><div class="paramtext">Existing programs should be modified to call <a class="rout" href="../D03/d03pcf.xml">D03PCF/D03PCA</a>.  The replacement routine is designed to solve a broader class of problems.  Therefore it is not possible to give precise details of a replacement call.  Please consult the appropriate routine documents.</div><h3 class="standard"><a class="sec" name="D03PGF" id="D03PGF"/>D03PGF</h3><div class="paramtext">
Withdrawn at Mark 17.<br/>
Replaced by <a class="rout" href="../D03/d03pcf.xml">D03PCF/D03PCA</a>.</div><div class="paramtext">Existing programs should be modified to call <a class="rout" href="../D03/d03pcf.xml">D03PCF/D03PCA</a>.  The replacement routine is designed to solve a broader class of problems.  Therefore it is not possible to give precise details of a replacement call.  Please consult the appropriate routine documents.</div><h2 class="standard"><a class="sec" name="E01" id="E01"/>E01 &#8211; Interpolation</h2><h3 class="standard"><a class="sec" name="E01ACF" id="E01ACF"/>E01ACF</h3><div class="paramtext">
Withdrawn at Mark 15.<br/>
Replaced by <a class="rout" href="../E01/e01daf.xml">E01DAF</a> and <a class="rout" href="../E02/e02def.xml">E02DEF</a>.</div><pre class="verbatim">
Old: CALL E01ACF(A,B,X,Y,F,VAL,VALL,IFAIL,XX,WORK,AM,D,IG1,M1,N1)
New: CALL E01DAF(N1,M1,X,Y,F,PX,PY,LAMDA,MU,C,WRK,IFAIL)
     A1(1) = A
     B1(1) = B
     M = 1
     CALL E02DEF(M,PX,PY,A1,B1,LAMDA,MU,C,FF,WRK,IWRK,IFAIL)
     VAL = FF(1)
     VALL = VAL</pre>
<div class="paramtext">where <a class="arg" href="../E02/e02def.xml#PX">PX</a>, <a class="arg" href="../E02/e02def.xml#PY">PY</a> and <a class="arg" href="../E02/e02def.xml#M">M</a> are INTEGER variables, <a class="arg" href="../E02/e02def.xml#LAMDA">LAMDA</a> is a <span class="bitalic">double precision</span> array of dimension <m:math>
 <m:mfenced separators=""> <m:maction actiontype="link" dsi:type="simple" dsi:href="../E01/e01daf.xml#MX"><m:mi mathcolor="#EE0000" mathvariant="bold">N1</m:mi></m:maction><m:mo>+</m:mo><m:mn>4</m:mn></m:mfenced>
</m:math>, <a class="arg" href="../E01/e01daf.xml#MU">MU</a> is a <span class="bitalic">double precision</span> array of dimension <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../E01/e01daf.xml#MY"><m:mi mathcolor="#EE0000" mathvariant="bold">M1</m:mi></m:maction><m:mo>+</m:mo><m:mn>4</m:mn></m:mfenced>
</m:math>, <a class="arg" href="../E01/e01daf.xml#C">C</a> is a <span class="bitalic">double precision</span> array of dimension <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../E01/e01daf.xml#MX"><m:mi mathcolor="#EE0000" mathvariant="bold">N1</m:mi></m:maction><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../E01/e01daf.xml#MY"><m:mi mathcolor="#EE0000" mathvariant="bold">M1</m:mi></m:maction></m:mfenced>
</m:math>, <a class="arg" href="../E01/e01daf.xml#WRK">WRK</a> is a <span class="bitalic">double precision</span> array of dimension <m:math>
 <m:mfenced separators="">
  <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../E01/e01daf.xml#MX"><m:mi mathcolor="#EE0000" mathvariant="bold">N1</m:mi></m:maction><m:mo>+</m:mo><m:mn>6</m:mn></m:mfenced>
  <m:mo>&#215;</m:mo>
  <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../E01/e01daf.xml#MY"><m:mi mathcolor="#EE0000" mathvariant="bold">M1</m:mi></m:maction><m:mo>+</m:mo><m:mn>6</m:mn></m:mfenced>
 </m:mfenced>
</m:math>, <a class="arg" href="../E02/e02def.xml#X">A1</a>, <a class="arg" href="../E02/e02def.xml#Y">B1</a> and <a class="arg" href="../E02/e02def.xml#FF">FF</a> are <span class="bitalic">double precision</span> arrays of dimension (<a class="arg" href="../E02/e02def.xml#M">M</a>), and <a class="arg" href="../E02/e02def.xml#IWRK">IWRK</a> is an INTEGER array of dimension (<a class="arg" href="../E01/e01daf.xml#MY">M1</a>).</div>
<div class="paramtext">The above new calls duplicate almost exactly the effect of the old call, except that the new routines produce a single interpolated value for each point, rather than the two alternative values VAL and VALL produced by the old routine.  By attempting this duplication, however, efficiency is probably being sacrificed.  In general it is preferable to evaluate the interpolating function provided by <a class="rout" href="../E01/e01daf.xml">E01DAF</a> at a set of <a class="arg" href="../E02/e02def.xml#M">M</a> points, supplied in arrays <a class="arg" href="../E02/e02def.xml#X">A1</a> and <a class="arg" href="../E02/e02def.xml#Y">B1</a>, rather than at a single point.</div>
<div class="paramtext">Note also that <a class="wdrn" href="../GENINT/replace.xml#E01ACF">E01ACF</a> uses natural splines, i.e., splines having zero second derivatives at the ends of the ranges.  This is likely to be slightly unsatisfactory, and <a class="rout" href="../E01/e01daf.xml">E01DAF</a> does not have this problem.  It does mean however that results produced by <a class="rout" href="../E01/e01daf.xml">E01DAF</a> may not be exactly the same as those produced by <a class="wdrn" href="../GENINT/replace.xml#E01ACF">E01ACF</a>.</div><h3 class="standard"><a class="sec" name="E01SEF" id="E01SEF"/>E01SEF</h3><div class="paramtext">
Withdrawn at Mark 20.<br/>
Replaced by <a class="rout" href="../E01/e01sgf.xml">E01SGF</a>.</div><pre class="verbatim">
Old: CALL E01SEF(M,X,Y,F,RNW,RNQ,NW,NQ,FNODES,MINNQ,WRK,IFAIL)
New: CALL E01SGF(M,X,Y,F,NW,NQ,IQ,LIQ,RQ,LRQ,IFAIL)</pre>
<div class="paramtext"><a class="wdrn" href="../GENINT/replace.xml#E01SEF">E01SEF</a> has been superseded by <a class="rout" href="../E01/e01sgf.xml">E01SGF</a> which gives improved accuracy, facilities for obtaining gradient values and a consistent interface with <a class="rout" href="../E01/e01tgf.xml">E01TGF</a> for interpolation of scattered data in three dimensions.</div>
<div class="paramtext">The interpolant generated by the two routines will not be identical, but similar results may be obtained by using the same values of <a class="arg" href="../E01/e01sgf.xml#NW">NW</a> and <a class="arg" href="../E01/e01sgf.xml#NQ">NQ</a>.  Details of the interpolant are passed to the evaluator through the arrays <a class="arg" href="../E01/e01sgf.xml#IQ">IQ</a> and <a class="arg" href="../E01/e01sgf.xml#RQ">RQ</a> rather than FNODES and RNW.</div><h3 class="standard"><a class="sec" name="E01SFF" id="E01SFF"/>E01SFF</h3><div class="paramtext">
Withdrawn at Mark 20.<br/>
Replaced by <a class="rout" href="../E01/e01shf.xml">E01SHF</a>.</div><pre class="verbatim">
Old: CALL E01SFF(M,X,Y,F,RNW,FNODES,PX,PY,PF,IFAIL)
New: CALL E01SHF(M,X,Y,F,IQ,LIQ,RQ,LRQ,1,PX,PY,PF,QX,QY,IFAIL)</pre>
<div class="paramtext">The two calls will not produce identical results due to differences in the generation routines <a class="wdrn" href="../GENINT/replace.xml#E01SEF">E01SEF</a> and <a class="rout" href="../E01/e01sgf.xml">E01SGF</a>.  Details of the interpolant are passed from <a class="rout" href="../E01/e01sgf.xml">E01SGF</a> through the arrays <a class="arg" href="../E01/e01shf.xml#IQ">IQ</a> and <a class="arg" href="../E01/e01shf.xml#RQ">RQ</a> rather than FNODES and RNW.</div>
<div class="paramtext"><a class="rout" href="../E01/e01shf.xml">E01SHF</a> also returns gradient values in <a class="arg" href="../E01/e01shf.xml#QX">QX</a> and <a class="arg" href="../E01/e01shf.xml#QY">QY</a> and allows evaluation at arrays of points rather than just single points.</div><h2 class="standard"><a class="sec" name="E02" id="E02"/>E02 &#8211; Curve and Surface Fitting</h2><h3 class="standard"><a class="sec" name="E02DBF" id="E02DBF"/>E02DBF</h3><div class="paramtext">
Withdrawn at Mark 16.<br/>
Replaced by <a class="rout" href="../E02/e02def.xml">E02DEF</a>.</div><pre class="verbatim">
Old: CALL E02DBF(M,PX,PY,X,Y,FF,LAMDA,MV,POINT,NPOINT,C,NC,IFAIL)
New: CALL E02DEF(M,PX,PY,X,Y,LAMDA,MU,C,FF,WRK,IWRK,IFAIL)</pre>
<div class="paramtext">where <a class="arg" href="../E02/e02def.xml#WRK">WRK</a> is a <span class="bitalic">double precision</span> array of dimension <m:math>
 <m:mfenced separators="">
  <m:maction actiontype="link" dsi:type="simple" dsi:href="../E02/e02def.xml#PY"><m:mi mathcolor="#EE0000" mathvariant="bold">PY</m:mi></m:maction><m:mo>-</m:mo><m:mn>4</m:mn>
 </m:mfenced>
</m:math>, and <a class="arg" href="../E02/e02def.xml#IWRK">IWRK</a> is an INTEGER array of dimension <m:math>
 <m:mfenced separators="">
  <m:maction actiontype="link" dsi:type="simple" dsi:href="../E02/e02def.xml#PY"><m:mi mathcolor="#EE0000" mathvariant="bold">PY</m:mi></m:maction><m:mo>-</m:mo><m:mn>4</m:mn>
 </m:mfenced>
</m:math>.</div><h2 class="standard"><a class="sec" name="E04" id="E04"/>E04 &#8211; Minimizing or Maximizing a Function</h2><h3 class="standard"><a class="sec" name="E04CCF" id="E04CCF"/>E04CCF/E04CCA</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../E04/e04cbf.xml">E04CBF</a>.</div><pre class="verbatim">
Old: CALL E04CCF(N,X,F,TOL,IW,W1,W2,W3,W4,W5,W6,FUNCT,MONIT,MAXCAL,
     *           IFAIL)
                     or
     CALL E04CCA(N,X,F,TOL,IW,W1,W2,W3,W4,W5,W6,FUNCT2,MONIT2,MAXCAL,
     *           IUSER,RUSER,IFAIL)
New: CALL E04CBF(N,X,F,TOLF,TOLX,FUNCT2,MONIT3,MAXCAL,IUSER,RUSER,
     *           IFAIL)
</pre><div class="paramtext">The new routine can be derived from the old as follows:

<pre class="verbatim">
       SUBROUTINE MONIT3(FMIN,FMAX,SIM,N,NCALL,SERROR,VRATIO,IUSER,RUSER)
       INTEGER    N, NCALL, IUSER(*)
       <span class="bitalic">double precision</span> FMIN, FMAX, SIM(N+1,N), SERROR, VRATIO, RUSER(*)
C
       CALL MONIT2(FMIN,FMAX,SIM,N,N+1,NCALL,IUSER,RUSER)
C      Add code here to monitor the values of SERROR and VRATIO, if necessary
       RETURN
       END
</pre></div><h3 class="standard"><a class="sec" name="E04FDF" id="E04FDF"/>E04FDF</h3><div class="paramtext">
Withdrawn at Mark 19.<br/>
Replaced by <a class="rout" href="../E04/e04fyf.xml">E04FYF</a>.</div><pre class="verbatim">
Old: CALL E04FDF(M,N,X,FSUMSQ,IW,LIW,W,LW,IFAIL)
New: CALL E04FYF(M,N,LSFUN,X,FSUMSQ,W,LW,IUSER,USER,IFAIL)</pre>
<div class="paramtext"><a class="arg" href="../E04/e04fyf.xml#LSFUN1">LSFUN</a> appears in the parameter list instead of the fixed-name subroutine LSFUN1 of <a class="wdrn" href="../GENINT/replace.xml#E04FDF">E04FDF</a>.  <a class="arg" href="../E04/e04fyf.xml#LSFUN1">LSFUN</a> must be declared as EXTERNAL in the calling (sub)program.  In addition it has an extra two parameters, <a class="arg" href="../E04/e04fyf.xml#IUSER">IUSER</a> and <a class="arg" href="../E04/e04fyf.xml#RUSER">USER</a>, over and above those of LSFUN1.  It may be derived from LSFUN1 as follows:
<pre class="verbatim">
      SUBROUTINE  LSFUN(M,N,XC,FVECC,IUSER,USER)
      INTEGER     M, N, IUSER(*)
      <span class="bitalic">double precision</span> XC(N), FVECC(M), USER(*)
C
      CALL LSFUN1(M,N,XC,FVECC)
C
      RETURN
      END</pre> </div>
<div class="paramtext">In general the extra parameters, <a class="arg" href="../E04/e04fyf.xml#IUSER">IUSER</a> and <a class="arg" href="../E04/e04fyf.xml#RUSER">USER</a>, should be declared in the calling program as <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04fyf.xml#IUSER"><m:mi mathcolor="#EE0000" mathvariant="bold">IUSER</m:mi></m:maction><m:mfenced separators=""><m:mn>1</m:mn></m:mfenced>
</m:math>&#160;and <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04fyf.xml#RUSER"><m:mi mathcolor="#EE0000" mathvariant="bold">USER</m:mi></m:maction><m:mfenced separators=""><m:mn>1</m:mn></m:mfenced>
</m:math>, but will not need initializing.</div><h3 class="standard"><a class="sec" name="E04GCF" id="E04GCF"/>E04GCF</h3><div class="paramtext">
Withdrawn at Mark 19.<br/>
Replaced by <a class="rout" href="../E04/e04gyf.xml">E04GYF</a>.</div><pre class="verbatim">
Old: CALL E04GCF(M,N,X,FSUMSQ,IW,LIW,W,LW,IFAIL)
New: CALL E04GYF(M,N,LSFUN,X,FSUMSQ,W,LW,IUSER,USER,IFAIL)</pre>
<div class="paramtext"><a class="arg" href="../E04/e04gyf.xml#LSFUN2">LSFUN</a> appears in the parameter list instead of the fixed-name subroutine LSFUN2 of <a class="wdrn" href="../GENINT/replace.xml#E04GCF">E04GCF</a>.  <a class="arg" href="../E04/e04gyf.xml#LSFUN2">LSFUN</a> must be declared as EXTERNAL in the calling (sub)program.  In addition it has an extra two parameters, <a class="arg" href="../E04/e04gyf.xml#IUSER">IUSER</a> and <a class="arg" href="../E04/e04gyf.xml#RUSER">USER</a>, over and above those of LSFUN2.  It may be derived from LSFUN2 as follows:
<pre class="verbatim">
      SUBROUTINE  LSFUN(M,N,XC,FVECC,FJACC,LJC,IUSER,USER)
      INTEGER     M, N, LJC, IUSER(*)
      <span class="bitalic">double precision</span> XC(N), FVECC(M), FJACC(LJC,N), USER(*)
C
      CALL LSFUN2(M,N,XC,FVECC,FJACC,LJC)
C
      RETURN
      END</pre> </div>
<div class="paramtext">In general the extra parameters, <a class="arg" href="../E04/e04gyf.xml#IUSER">IUSER</a> and <a class="arg" href="../E04/e04gyf.xml#RUSER">USER</a>, should be declared in the calling program as <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04gyf.xml#IUSER"><m:mi mathcolor="#EE0000" mathvariant="bold">IUSER</m:mi></m:maction><m:mfenced separators=""><m:mn>1</m:mn></m:mfenced>
</m:math>&#160;and <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04gyf.xml#RUSER"><m:mi mathcolor="#EE0000" mathvariant="bold">USER</m:mi></m:maction><m:mfenced separators=""><m:mn>1</m:mn></m:mfenced>
</m:math>, but will not need initializing.  If however, the array IW was used to pass information through <a class="wdrn" href="../GENINT/replace.xml#E04GCF">E04GCF</a> into LSFUN2, or get information from LSFUN2, then the array <a class="arg" href="../E04/e04gyf.xml#IUSER">IUSER</a> should be declared appropriately and used for this purpose.</div><h3 class="standard"><a class="sec" name="E04GEF" id="E04GEF"/>E04GEF</h3><div class="paramtext">
Withdrawn at Mark 19.<br/>
Replaced by <a class="rout" href="../E04/e04gzf.xml">E04GZF</a>.</div><pre class="verbatim">
Old: CALL E04GEF(M,N,X,FSUMSQ,IW,LIW,W,LW,IFAIL)
New: CALL E04GZF(M,N,LSFUN,X,FSUMSQ,W,LW,IUSER,USER,IFAIL)</pre>
<div class="paramtext"><a class="arg" href="../E04/e04gzf.xml#LSFUN2">LSFUN</a> appears in the parameter list instead of the fixed-name subroutine LSFUN2 of <a class="wdrn" href="../GENINT/replace.xml#E04GEF">E04GEF</a>.  <a class="arg" href="../E04/e04gzf.xml#LSFUN2">LSFUN</a> must be declared as EXTERNAL in the calling (sub)program.  In addition it has an extra two parameters, <a class="arg" href="../E04/e04gzf.xml#IUSER">IUSER</a> and <a class="arg" href="../E04/e04gzf.xml#RUSER">USER</a>, over and above those of LSFUN2.  It may be derived from LSFUN2 as follows:
<pre class="verbatim">
      SUBROUTINE  LSFUN(M,N,X,FVECC,FJACC,LJC,IUSER,USER)
      INTEGER     M, N, LJC, IUSER(*)
      <span class="bitalic">double precision</span> XC(N), FVECC(M), FJACC(LJC,N), USER(*)
C
      CALL LSFUN2(M,N,XC,FVECC,FJACC,LJC)
C
      RETURN
      END</pre> </div>
<div class="paramtext">In general the extra parameters, <a class="arg" href="../E04/e04gzf.xml#IUSER">IUSER</a> and <a class="arg" href="../E04/e04gzf.xml#RUSER">USER</a>, should be declared in the calling program as <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04gzf.xml#IUSER"><m:mi mathcolor="#EE0000" mathvariant="bold">IUSER</m:mi></m:maction><m:mfenced separators=""><m:mn>1</m:mn></m:mfenced>
</m:math>&#160;and <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04gzf.xml#RUSER"><m:mi mathcolor="#EE0000" mathvariant="bold">USER</m:mi></m:maction><m:mfenced separators=""><m:mn>1</m:mn></m:mfenced>
</m:math>, but will not need initializing.  If however, the array IW was used to pass information through <a class="wdrn" href="../GENINT/replace.xml#E04GEF">E04GEF</a> into LSFUN2, or get information from LSFUN2, then the array <a class="arg" href="../E04/e04gzf.xml#IUSER">IUSER</a> should be declared appropriately and used for this purpose.</div><h3 class="standard"><a class="sec" name="E04HBF" id="E04HBF"/>E04HBF</h3><div class="paramtext">
Withdrawn at Mark 16.<br/>
There is no replacement for this routine.</div><h3 class="standard"><a class="sec" name="E04HFF" id="E04HFF"/>E04HFF</h3><div class="paramtext">
Withdrawn at Mark 19.<br/>
Replaced by <a class="rout" href="../E04/e04hyf.xml">E04HYF</a>.</div><pre class="verbatim">
Old: CALL E04HFF(M,N,X,FSUMSQ,IW,LIW,W,LW,IFAIL)
New: CALL E04HYF(M,N,LSFUN,LSHES,X,FSUMSQ,W,LW,IUSER,USER,IFAIL)</pre>
<div class="paramtext"><a class="arg" href="../E04/e04hyf.xml#LSFUN2">LSFUN</a> and <a class="arg" href="../E04/e04hyf.xml#LSHES2">LSHES</a> appear in the parameter list instead of the fixed-name subroutines LSFUN2 and LSHES2 of <a class="wdrn" href="../GENINT/replace.xml#E04HFF">E04HFF</a>.  <a class="arg" href="../E04/e04hyf.xml#LSFUN2">LSFUN</a> and <a class="arg" href="../E04/e04hyf.xml#LSHES2">LSHES</a> must both be declared as EXTERNAL in the calling (sub)program.  In addition they have an extra two parameters, <a class="arg" href="../E04/e04hyf.xml#IUSER">IUSER</a> and <a class="arg" href="../E04/e04hyf.xml#RUSER">USER</a>, over and above those of LSFUN2 and LSHES2.  They may be derived from LSFUN2 and LSHES2 as follows:
<pre class="verbatim">
      SUBROUTINE  LSFUN(M,N,XC,FVECC,FJACC,LJC,IUSER,USER)
      INTEGER     M, N, LJC, IUSER(*)
      <span class="bitalic">double precision</span> XC(N), FVECC(M), FJACC(LJC,N), USER(*)
C
      CALL LSFUN2(M,N,XC,FVECC,FJACC,LJC)
C
      RETURN
      END
C
      SUBROUTINE  LSHES(M,N,FVECC,XC,B,LB,IUSER,USER)
      INTEGER     M, N, LB, IUSER(*)
      <span class="bitalic">double precision</span> FVECC(M), XC(N), B(LB), USER(*)
C
      CALL LSHES2(M,N,FVECC,XC,B,LB)
C
      RETURN
      END</pre> </div>
<div class="paramtext">In general, the extra parameters, <a class="arg" href="../E04/e04hyf.xml#IUSER">IUSER</a> and <a class="arg" href="../E04/e04hyf.xml#RUSER">USER</a>, should be declared in the calling program as <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04hyf.xml#IUSER"><m:mi mathcolor="#EE0000" mathvariant="bold">IUSER</m:mi></m:maction><m:mfenced separators=""><m:mn>1</m:mn></m:mfenced>
</m:math>&#160;and <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04hyf.xml#RUSER"><m:mi mathcolor="#EE0000" mathvariant="bold">USER</m:mi></m:maction><m:mfenced separators=""><m:mn>1</m:mn></m:mfenced>
</m:math>, but will not need initializing.  If, however, the array IW was used to pass information through <a class="wdrn" href="../GENINT/replace.xml#E04HFF">E04HFF</a> into LSFUN2 or LSHES2, or to get information from LSFUN2 or LSHES2, then the array <a class="arg" href="../E04/e04hyf.xml#IUSER">IUSER</a> should be declared appropriately and used for this purpose.</div><h3 class="standard"><a class="sec" name="E04JAF" id="E04JAF"/>E04JAF</h3><div class="paramtext">
Withdrawn at Mark 19.<br/>
Replaced by <a class="rout" href="../E04/e04jyf.xml">E04JYF</a>.</div><pre class="verbatim">
Old: CALL E04JAF(N,IBOUND,BL,BU,X,F,IW,LIW,LW,IFAIL)
New: CALL E04JYF(N,IBOUND,FUNCT,BL,BU,X,F,IW,LIW,W,LW,IUSER,USER,IFAIL)</pre>
<div class="paramtext"><a class="arg" href="../E04/e04jyf.xml#FUNCT1">FUNCT</a> appears in the parameter list instead of the fixed-name subroutine FUNCT1 of <a class="wdrn" href="../GENINT/replace.xml#E04JAF">E04JAF</a>.  <a class="arg" href="../E04/e04jyf.xml#FUNCT1">FUNCT</a> must be declared as EXTERNAL in the calling (sub)program.  In addition it has an extra two parameters, <a class="arg" href="../E04/e04jyf.xml#IUSER">IUSER</a> and <a class="arg" href="../E04/e04jyf.xml#RUSER">USER</a>, over and above those of FUNCT1.  It may be derived from FUNCT1 as follows:
<pre class="verbatim">
      SUBROUTINE  FUNCT(N,XC,FC,IUSER,USER)
      INTEGER     N, IUSER(*)
      <span class="bitalic">double precision</span> XC(N), FC, USER(*)
C
      CALL FUNCT1(N,XC,FC)
C
      RETURN
      END</pre> </div>
<div class="paramtext">The extra parameters, <a class="arg" href="../E04/e04jyf.xml#IUSER">IUSER</a> and <a class="arg" href="../E04/e04jyf.xml#RUSER">USER</a>, should be declared in the calling program as <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04jyf.xml#IUSER"><m:mi mathcolor="#EE0000" mathvariant="bold">IUSER</m:mi></m:maction><m:mfenced separators=""><m:mn>1</m:mn></m:mfenced>
</m:math>&#160;and <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04jyf.xml#RUSER"><m:mi mathcolor="#EE0000" mathvariant="bold">USER</m:mi></m:maction><m:mfenced separators=""><m:mn>1</m:mn></m:mfenced>
</m:math>, but will not need initializing.</div><h3 class="standard"><a class="sec" name="E04JBF" id="E04JBF"/>E04JBF</h3><div class="paramtext">
Withdrawn at Mark 16.<br/>
Replaced by <a class="rout" href="../E04/e04ucf.xml">E04UCF/E04UCA</a>.</div><div class="paramtext">No comparative calls are given between <a class="wdrn" href="../GENINT/replace.xml#E04JBF">E04JBF</a> and <a class="rout" href="../E04/e04ucf.xml">E04UCF/E04UCA</a> since both routines have considerable flexibility and can be called with many different options.  <a class="rout" href="../E04/e04ucf.xml">E04UCF/E04UCA</a> allows some values to be passed to it, not through the parameter list, but as &#8216;optional parameters&#8217;, supplied through calls to <a class="rout" href="../E04/e04udf.xml">E04UDF/E04UDA</a> or <a class="rout" href="../E04/e04uef.xml">E04UEF/E04UEA</a>.</div>
<div class="paramtext"><a class="rout" href="../E04/e04ucf.xml">E04UCF/E04UCA</a> is a more powerful routine than <a class="wdrn" href="../GENINT/replace.xml#E04JBF">E04JBF</a>, in that it allows for general linear and nonlinear constraints, and for some or all of the first derivatives to be supplied; however when replacing <a class="wdrn" href="../GENINT/replace.xml#E04JBF">E04JBF</a>, only the simple bound constraints are relevant, and only function values are assumed to be available.</div>
<div class="paramtext">Therefore <a class="rout" href="../E04/e04ucf.xml">E04UCF/E04UCA</a> must be called with <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#NCLIN"><m:mi mathcolor="#EE0000" mathvariant="bold">NCLIN</m:mi></m:maction>
 <m:mo>=</m:mo>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#NCNLN"><m:mi mathcolor="#EE0000" mathvariant="bold">NCNLN</m:mi></m:maction>
 <m:mo>=</m:mo>
 <m:mn>0</m:mn>
</m:math>, with dummy arrays of size (1) supplied as the arguments <a class="arg" href="../E04/e04ucf.xml#A">A</a>, <a class="arg" href="../E04/e04ucf.xml#C">C</a> and <a class="arg" href="../E04/e04ucf.xml#CJAC">CJAC</a>, and with the name of the auxiliary routine E04UDM (UDME04 in some implementations) as the argument <a class="arg" href="../E04/e04ucf.xml#CONFUN">CONFUN</a>.  The optional parameter <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#optparam_derivativelevel"><m:mi mathcolor="#800080;" mathvariant="bold">Derivative Level</m:mi></m:maction></m:math>&#160;must be set to 0.</div>
<div class="paramtext">The subroutine providing function values to <a class="rout" href="../E04/e04ucf.xml">E04UCF/E04UCA</a> is <a class="arg" href="../E04/e04ucf.xml#OBJFUN">OBJFUN</a>.  It has a different parameter list to FUNCT, but can be constructed as follows: </div>
<pre class="verbatim">
       SUBROUTINE  OBJFUN(MODE,N,X,OBJF,OBJGRD,NSTATE,IUSER,USER)
       INTEGER     MODE, N, NSTATE, IUSER(*)
       <span class="bitalic">double precision</span> X(N), OBJF, OBJGRD(N), USER(*)
       INTEGER     IFLAG,IW(1)
       <span class="bitalic">double precision</span> W(1)
C
       IFLAG = 0
       CALL FUNCT(IFLAG,N,X,OBJF,OBJGRD,IW,1,W,1)
       IF (IFLAG.LT.0) MODE = IFLAG
       RETURN
       END</pre>
<div class="paramtext">(This assumes that the arrays IW and W are not used to communicate between FUNCT and the calling program; <a class="rout" href="../E04/e04ucf.xml">E04UCF/E04UCA</a> supplies the arrays <a class="arg" href="../E04/e04ucf.xml#IUSER">IUSER</a> and <a class="arg" href="../E04/e04ucf.xml#RUSER">USER</a> specifically for this purpose.) </div>
<div class="paramtext">The functions of the parameters <a class="arg" href="../E04/e04ucf.xml#BL">BL</a> and <a class="arg" href="../E04/e04ucf.xml#BU">BU</a> are similar, but <a class="rout" href="../E04/e04ucf.xml">E04UCF/E04UCA</a> has no parameter corresponding to IBOUND; all elements of <a class="arg" href="../E04/e04ucf.xml#BL">BL</a> and <a class="arg" href="../E04/e04ucf.xml#BU">BU</a> must be set (as when <m:math>
 <m:mi mathvariant="normal">IBOUND</m:mi>
 <m:mo>=</m:mo>
 <m:mn>0</m:mn>
</m:math>&#160;in the call to <a class="wdrn" href="../GENINT/replace.xml#E04JBF">E04JBF</a>).  The optional parameter <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#optparam_infiniteboundsize"><m:mi mathcolor="#800080;" mathvariant="bold">Infinite Bound Size</m:mi></m:maction></m:math>&#160;must be set to <m:math><m:mtext>1.0D</m:mtext><m:mo>+</m:mo><m:mn>6</m:mn></m:math>&#160;if there are any infinite bounds.  The function of the parameter <a class="arg" href="../E04/e04ucf.xml#ISTATE">ISTATE</a> is similar but the specification is slightly different.  The parameters F and G are equivalent to <a class="arg" href="../E04/e04ucf.xml#OBJF">OBJF</a> and <a class="arg" href="../E04/e04ucf.xml#OBJGRD">OBJGRD</a> of <a class="rout" href="../E04/e04ucf.xml">E04UCF/E04UCA</a>.  It should also be noted that <a class="rout" href="../E04/e04ucf.xml">E04UCF/E04UCA</a> does not allow a user-supplied parameter MONIT, but intermediate output is provided by the routine, under the control of the optional parameters <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#optparam_majorprintlevel"><m:mi mathcolor="#800080;" mathvariant="bold">Major Print Level</m:mi></m:maction></m:math>&#160;and <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#optparam_minorprintlevel"><m:mi mathcolor="#800080;" mathvariant="bold">Minor Print Level</m:mi></m:maction></m:math>.</div>
<div class="paramtext">Most of the &#8216;tuning&#8217; parameters in <a class="wdrn" href="../GENINT/replace.xml#E04JBF">E04JBF</a> have their counterparts as &#8216;optional parameters&#8217; to <a class="rout" href="../E04/e04ucf.xml">E04UCF/E04UCA</a>, as indicated in the following list, but the correspondence is not exact and the specifications must be read carefully.
<table class="standard-100"><tr>
<td style="width:7.5em;" valign="baseline">IPRINT</td>
<td valign="top" style="padding-bottom:0.5em"><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#optparam_minorprintlevel"><m:mi mathcolor="#800080;" mathvariant="bold">Minor Print Level</m:mi></m:maction></m:math></td>
</tr><tr>
<td style="width:7.5em;" valign="baseline">INTYPE</td>
<td valign="top" style="padding-bottom:0.5em"><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#optparam_coldstart"><m:mi mathcolor="#800080;" mathvariant="bold">Cold Start</m:mi></m:maction></m:math>/<m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#optparam_warmstart"><m:mi mathcolor="#800080;" mathvariant="bold">Warm Start</m:mi></m:maction></m:math></td>
</tr><tr>
<td style="width:7.5em;" valign="baseline">MAXCAL</td>
<td valign="top" style="padding-bottom:0.5em"><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#optparam_minoriterationlimit"><m:mi mathcolor="#800080;" mathvariant="bold">Minor Iteration Limit</m:mi></m:maction></m:math>&#160;(note that this counts  iterations rather than function calls)</td>
</tr><tr>
<td style="width:7.5em;" valign="baseline">ETA</td>
<td valign="top" style="padding-bottom:0.5em"><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#optparam_linesearchtolerance"><m:mi mathcolor="#800080;" mathvariant="bold">Line Search Tolerance</m:mi></m:maction></m:math></td>
</tr><tr>
<td style="width:7.5em;" valign="baseline">XTOL</td>
<td valign="top" style="padding-bottom:0.5em"><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#optparam_optimalitytolerance"><m:mi mathcolor="#800080;" mathvariant="bold">Optimality Tolerance</m:mi></m:maction></m:math>&#160;(note that this specifies the accuracy in <a class="arg" href="../E04/e04ucf.xml#OBJFUN">OBJFUN</a> rather than the accuracy in <a class="arg" href="../E04/e04ucf.xml#X">X</a>)</td>
</tr><tr>
<td style="width:7.5em;" valign="baseline">STEPMX</td>
<td valign="top" style="padding-bottom:0.5em"><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#optparam_steplimit"><m:mi mathcolor="#800080;" mathvariant="bold">Step Limit</m:mi></m:maction></m:math></td>
</tr><tr>
<td style="width:7.5em;" valign="baseline">DELTA</td>
<td valign="top"><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#optparam_differenceinterval"><m:mi mathcolor="#800080;" mathvariant="bold">Difference Interval</m:mi></m:maction></m:math></td>
</tr></table> 
</div><h3 class="standard"><a class="sec" name="E04KAF" id="E04KAF"/>E04KAF</h3><div class="paramtext">
Withdrawn at Mark 19.<br/>
Replaced by <a class="rout" href="../E04/e04kyf.xml">E04KYF</a>.</div><pre class="verbatim">
Old: CALL E04KAF(N,IBOUND,BL,BU,X,F,G,IW,LIW,W,LW,IFAIL)
New: CALL E04KYF(N,IBOUND,FUNCT,BL,BU,X,F,G,IW,LIW,W,LW,IUSER,USER,IFAIL)</pre>
<div class="paramtext"><a class="arg" href="../E04/e04kyf.xml#FUNCT2">FUNCT</a> appears in the parameter list instead of the fixed-name subroutine FUNCT2 of <a class="wdrn" href="../GENINT/replace.xml#E04KAF">E04KAF</a>.  <a class="arg" href="../E04/e04kyf.xml#FUNCT2">FUNCT</a> must be declared as EXTERNAL in the calling (sub)program.  In addition it has an extra two parameters, <a class="arg" href="../E04/e04kyf.xml#IUSER">IUSER</a> and <a class="arg" href="../E04/e04kyf.xml#RUSER">USER</a>, over and above those of FUNCT2.  It may be derived from FUNCT2 as follows:
<pre class="verbatim">
      SUBROUTINE  FUNCT(N,XC,FC,GC,IUSER,USER)
      INTEGER     N, IUSER(*)
      <span class="bitalic">double precision</span> XC(N), FC, GC(N), USER(*)
C
      CALL FUNCT2(N,XC,FC,GC)
C
      RETURN
      END</pre> </div>
<div class="paramtext">The extra parameters, <a class="arg" href="../E04/e04kyf.xml#IUSER">IUSER</a> and <a class="arg" href="../E04/e04kyf.xml#RUSER">USER</a>, should be declared in the calling program as <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04kyf.xml#IUSER"><m:mi mathcolor="#EE0000" mathvariant="bold">IUSER</m:mi></m:maction><m:mfenced separators=""><m:mn>1</m:mn></m:mfenced>
</m:math>&#160;and <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04kyf.xml#RUSER"><m:mi mathcolor="#EE0000" mathvariant="bold">USER</m:mi></m:maction><m:mfenced separators=""><m:mn>1</m:mn></m:mfenced>
</m:math>, but will not need initializing.</div><h3 class="standard"><a class="sec" name="E04KBF" id="E04KBF"/>E04KBF</h3><div class="paramtext">
Withdrawn at Mark 16.<br/>
Replaced by <a class="rout" href="../E04/e04ucf.xml">E04UCF/E04UCA</a>.</div><div class="paramtext">No comparative calls are given between <a class="wdrn" href="../GENINT/replace.xml#E04KBF">E04KBF</a> and <a class="rout" href="../E04/e04ucf.xml">E04UCF/E04UCA</a> since both routines have considerable flexibility and can be called with many different options.  Most of the advice given for replacing <a class="wdrn" href="../GENINT/replace.xml#E04JBF">E04JBF</a> (see above) applies also to <a class="wdrn" href="../GENINT/replace.xml#E04KBF">E04KBF</a>, and only the differences are given here.</div>
<div class="paramtext">The optional parameter <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#optparam_derivativelevel"><m:mi mathcolor="#800080;" mathvariant="bold">Derivative Level</m:mi></m:maction></m:math>&#160;must be set to 1.</div>
<div class="paramtext">The subroutine providing both function and gradient values to <a class="rout" href="../E04/e04ucf.xml">E04UCF/E04UCA</a> is <a class="arg" href="../E04/e04ucf.xml#OBJFUN">OBJFUN</a>.  It has a different parameter list to FUNCT, but can be constructed as follows:
<pre class="verbatim">
      SUBROUTINE  OBJFUN(MODE,N,X,OBJF,OBJGRD,NSTATE,IUSER,USER)
      INTEGER     MODE, N, NSTATE, IUSER(*)
      <span class="bitalic">double precision</span> X(N), OBJF, OBJGRD(N), USER(*)
      INTEGER     IW(1)
      <span class="bitalic">double precision</span> W(1)
C
      CALL FUNCT(MODE,N,X,OBJF,OBJGRD,IW,1,W,1)
      RETURN
      END</pre> </div><h3 class="standard"><a class="sec" name="E04KCF" id="E04KCF"/>E04KCF</h3><div class="paramtext">
Withdrawn at Mark 19.<br/>
Replaced by <a class="rout" href="../E04/e04kzf.xml">E04KZF</a>.</div><pre class="verbatim">
Old: CALL E04KCF(N,IBOUND,BL,BU,X,F,G,IW,LIW,W,LW,IFAIL)
New: CALL E04KZF(N,IBOUND,FUNCT,BL,BU,X,F,G,IW,LIW,W,LW,IUSER,USER,IFAIL)</pre>
<div class="paramtext"><a class="arg" href="../E04/e04kzf.xml#FUNCT2">FUNCT</a> appears in the parameter list instead of the fixed-name subroutine FUNCT2 of <a class="wdrn" href="../GENINT/replace.xml#E04KCF">E04KCF</a>.  <a class="arg" href="../E04/e04kzf.xml#FUNCT2">FUNCT</a> must be declared as EXTERNAL in the calling (sub)program.  In addition it has an extra two parameters, <a class="arg" href="../E04/e04kzf.xml#IUSER">IUSER</a> and <a class="arg" href="../E04/e04kzf.xml#RUSER">USER</a>, over and above those of FUNCT2.  It may be derived from FUNCT2 as follows:
<pre class="verbatim">
      SUBROUTINE  FUNCT(N,XC,FC,GC,IUSER,USER)
      INTEGER     N, IUSER(*)
      <span class="bitalic">double precision</span> XC(N), FC, GC(N), USER(*)
C
      CALL FUNCT2(N,XC,FC,GC)
C
      RETURN
      END</pre> </div>
<div class="paramtext">The extra parameters, <a class="arg" href="../E04/e04kzf.xml#IUSER">IUSER</a> and <a class="arg" href="../E04/e04kzf.xml#RUSER">USER</a>, should be declared in the calling program as <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04kzf.xml#IUSER"><m:mi mathcolor="#EE0000" mathvariant="bold">IUSER</m:mi></m:maction><m:mfenced separators=""><m:mn>1</m:mn></m:mfenced>
</m:math>&#160;and <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04kzf.xml#RUSER"><m:mi mathcolor="#EE0000" mathvariant="bold">USER</m:mi></m:maction><m:mfenced separators=""><m:mn>1</m:mn></m:mfenced>
</m:math>, but will not need initializing.</div><h3 class="standard"><a class="sec" name="E04LAF" id="E04LAF"/>E04LAF</h3><div class="paramtext">
Withdrawn at Mark 19.<br/>
Replaced by <a class="rout" href="../E04/e04lyf.xml">E04LYF</a>.</div><pre class="verbatim">
Old: CALL E04LAF(N,IBOUND,BL,BU,X,F,G,IW,LIW,W,LW,IFAIL)
New: CALL E04LYF(N,IBOUND,FUNCT,HESS,BL,BU,X,F,G,IW,LIW,W,LW,IUSER,USER,
    +            IFAIL)</pre>
<div class="paramtext"><a class="arg" href="../E04/e04lyf.xml#FUNCT2">FUNCT</a> and <a class="arg" href="../E04/e04lyf.xml#HESS2">HESS</a> appear in the parameter list instead of the fixed-name subroutines FUNCT2 and HESS2 of <a class="wdrn" href="../GENINT/replace.xml#E04LAF">E04LAF</a>.  <a class="arg" href="../E04/e04lyf.xml#FUNCT2">FUNCT</a> and <a class="arg" href="../E04/e04lyf.xml#HESS2">HESS</a> must both be declared as EXTERNAL in the calling (sub)program.  In addition they have an extra two parameters, <a class="arg" href="../E04/e04lyf.xml#IUSER">IUSER</a> and <a class="arg" href="../E04/e04lyf.xml#RUSER">USER</a>, over and above those of FUNCT2 and HESS2.  They may be derived from FUNCT2 and HESS2 as follows:
<pre class="verbatim">
      SUBROUTINE  FUNCT(N,XC,FC,GC,IUSER,USER)
      INTEGER     N, IUSER(*)
      <span class="bitalic">double precision</span> XC(N), FC, GC(N), USER(*)
C
      CALL FUNCT2(N,XC,FC,GC)
C
      RETURN
      END</pre>
<pre class="verbatim">
      SUBROUTINE  HESS(N,XC,HESLC,LH,HESDC,IUSER,USER)
      INTEGER     N, LH, IUSER(*)
      <span class="bitalic">double precision</span> XC(N), HESLC(LH), HESDC(N), USER(*)
C
      CALL HESS2(N,XC,HESLC,LH,HESDC)
C
      RETURN
      END</pre> </div>
<div class="paramtext">In general, the extra parameters, <a class="arg" href="../E04/e04lyf.xml#IUSER">IUSER</a> and <a class="arg" href="../E04/e04lyf.xml#RUSER">USER</a>, should be declared in the calling program as <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04lyf.xml#IUSER"><m:mi mathcolor="#EE0000" mathvariant="bold">IUSER</m:mi></m:maction><m:mfenced separators=""><m:mn>1</m:mn></m:mfenced>
</m:math>&#160;and <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04lyf.xml#RUSER"><m:mi mathcolor="#EE0000" mathvariant="bold">USER</m:mi></m:maction><m:mfenced separators=""><m:mn>1</m:mn></m:mfenced>
</m:math>, but will not need initializing.</div><h3 class="standard"><a class="sec" name="E04MBF" id="E04MBF"/>E04MBF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../E04/e04mff.xml">E04MFF/E04MFA</a>.</div><pre class="verbatim">
Old: CALL E04MBF(ITMAX,MSGLVL,N,NCLIN,NCTOTL,NROWA,A,BL,BU,CVEC,
    +            LINOBJ,X,ISTATE,OBJLP,CLAMDA,IWORK,LIWORK,WORK,
    +            LWORK,IFAIL)
New: CALL E04MFF(N,NCLIN,A,NROWA,BL,BU,CVEC,ISTATE,X,ITER,OBJLP,
    +            AX,CLAMDA,IWORK,LIWORK,WORK,LWORK,IFAIL)</pre>
<div class="paramtext">The parameter NCTOTL is no longer required.  Values for ITMAX, MSGLVL and LINOBJ may be supplied by calling an option setting routine.</div>
<div class="paramtext"><a class="rout" href="../E04/e04mff.xml">E04MFF/E04MFA</a> contains two additional parameters as follows:
<ul class="listind"><li class="listind"><a class="arg" href="../E04/e04mff.xml#ITER">ITER</a>&#8211; INTEGER.</li><li class="listind"><m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04mff.xml#AX"><m:mi mathcolor="#EE0000" mathvariant="bold">AX</m:mi></m:maction><m:mfenced separators=""><m:mo>*</m:mo></m:mfenced>
</m:math>&#160;&#8211; <span class="bitalic">double precision</span> array of dimension at least <m:math>
 <m:mrow><m:mi>max</m:mi><m:mspace width="0.125em"/><m:mfenced separators=""><m:mn>1</m:mn><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04mff.xml#NCLIN"><m:mi mathcolor="#EE0000" mathvariant="bold">NCLIN</m:mi></m:maction></m:mfenced></m:mrow>
</m:math>.</li></ul>
</div>
<div class="paramtext">The minimum value of the parameter <a class="arg" href="../E04/e04mff.xml#LIWORK">LIWORK</a> must be increased from <m:math>
 <m:mn>2</m:mn>
 <m:mo>&#215;</m:mo>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04mff.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction>
</m:math>&#160;to <m:math>
 <m:mn>2</m:mn>
 <m:mo>&#215;</m:mo>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04mff.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction>
 <m:mo>+</m:mo>
 <m:mn>3</m:mn>
</m:math>.  The minimum value of the parameter <a class="arg" href="../E04/e04mff.xml#LWORK">LWORK</a> may also need to be changed.  See the routine documents for further information.</div><h3 class="standard"><a class="sec" name="E04NAF" id="E04NAF"/>E04NAF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../E04/e04nff.xml">E04NFF/E04NFA</a>.</div><pre class="verbatim">
Old: CALL E04NAF(ITMAX,MSGLVL,N,NCLIN,NCTOTL,NROWA,NROWH,NCOLH,
    +            BIGBND,A,BL,BU,CVEC,FEATOL,HESS,QPHESS,COLD,LP,
    +            ORTHOG,X,ISTATE,ITER,OBJ,CLAMDA,IWORK,LIWORK,
    +            WORK,LWORK,IFAIL)
New: CALL E04NFF(N,NCLIN,A,NROWA,BL,BU,CVEC,HESS,NROWH,QPHESS,
    +            ISTATE,X,ITER,OBJ,AX,CLAMDA,IWORK,LIWORK,WORK,
    +            LWORK,IFAIL)</pre>
<div class="paramtext">The specification of the subroutine <a class="arg" href="../E04/e04nff.xml#QPHESS">QPHESS</a> must also be changed as follows: 
<pre class="verbatim">
Old: SUBROUTINE  QPHESS(N,NROWH,NCOLH,JTHCOL,HESS,X,HX)
     INTEGER     N, NROWH, NCOLH, JTHCOL
     <span class="bitalic">double precision</span> HESS(NROWH,NCOLH), X(N), HX(N)
New: SUBROUTINE  QPHESS(N,JTHCOL,HESS,NROWH,X,HX)
     INTEGER     N, JTHCOL, NROWH
     <span class="bitalic">double precision</span> HESS(NROWH,*), X(N), HX(N)</pre> </div>
<div class="paramtext">The parameters NCTOTL, NCOLH and ORTHOG are no longer required.  Values for ITMAX, MSGLVL, BIGBND, FEATOL, COLD and LP may be supplied by calling an option setting routine.</div>
<div class="paramtext"><a class="rout" href="../E04/e04nff.xml">E04NFF/E04NFA</a> contains one additional parameter as follows:
<ul class="listind"><li class="listind"><m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04nff.xml#AX"><m:mi mathcolor="#EE0000" mathvariant="bold">AX</m:mi></m:maction><m:mfenced separators=""><m:mo>*</m:mo></m:mfenced>
</m:math>&#160;&#8211; <span class="bitalic">double precision</span> array of dimension at least <m:math>
 <m:mrow><m:mi>max</m:mi><m:mspace width="0.125em"/><m:mfenced separators=""><m:mn>1</m:mn><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04nff.xml#NCLIN"><m:mi mathcolor="#EE0000" mathvariant="bold">NCLIN</m:mi></m:maction></m:mfenced></m:mrow>
</m:math>.</li></ul>
</div>
<div class="paramtext">The minimum value of the parameter <a class="arg" href="../E04/e04nff.xml#LIWORK">LIWORK</a> must be increased from <m:math>
 <m:mn>2</m:mn>
 <m:mo>&#215;</m:mo>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04nff.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction>
</m:math>&#160;to <m:math>
 <m:mn>2</m:mn>
 <m:mo>&#215;</m:mo>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04nff.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction>
 <m:mo>+</m:mo>
 <m:mn>3</m:mn>
</m:math>.  The minimum value of the parameter <a class="arg" href="../E04/e04nff.xml#LWORK">LWORK</a> may also need to be changed.  See the routine documents for further information.</div><h3 class="standard"><a class="sec" name="E04UNF" id="E04UNF"/>E04UNF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../E04/e04usf.xml">E04USF/E04USA</a>.</div><pre class="verbatim">
Old: CALL E04UNF(M,N,NCLIN,NCNLN,LDA,LDCJ,LDFJ,
    +            LDR,A,BL,BU,Y,CONFUN,OBJFUN,ITER,
    +            ISTATE,C,CJAC,F,FJAC,CLAMDA,OBJF,
    +            R,X,IWORK,LIWORK,WORK,LWORK,IUSER,
    +            RUSER,IFAIL)
New: CALL E04USF(M,N,NCLIN,NCNLN,LDA,LDCJ,LDFJ,
    +            LDR,A,BL,BU,Y,CONFUN,OBJFUN,ITER,
    +            ISTATE,C,CJAC,F,FJAC,CLAMDA,OBJF,
    +            R,X,IWORK,LIWORK,WORK,LWORK,IUSER,
    +            RUSER,IFAIL)</pre>
<div class="paramtext">The specification of the subroutine <a class="arg" href="../E04/e04usf.xml#OBJFUN">OBJFUN</a> must also be changed as follows:</div>
<pre class="verbatim">
Old: SUBROUTINE  OBJFUN(MODE,M,N,LDFJ,X,F,FJAC,NSTATE,IUSER,RUSER)
     INTEGER     MODE,M,N,LDFJ,NSTATE,IUSER(*)
     <span class="bitalic">double precision</span> X(N),F(*),FJAC(LDFJ,*),RUSER(*)
New: SUBROUTINE  OBJFUN(MODE,M,N,LDFJ,NEEDFI,X,F,FJAC,NSTATE,
    +                   IUSER,RUSER)
     INTEGER     MODE,M,N,LDFJ,NEEDFI,NSTATE,IUSER(*)
     <span class="bitalic">double precision</span> X(N),F(*),FJAC(LDFJ,*),RUSER(*)
</pre><div class="paramtext">See the routine documents for further information.</div><h3 class="standard"><a class="sec" name="E04UPF" id="E04UPF"/>E04UPF</h3><div class="paramtext">
Withdrawn at Mark 19.<br/>
Replaced by <a class="rout" href="../E04/e04usf.xml">E04USF/E04USA</a>.</div><pre class="verbatim">
Old: CALL E04UPF(M,N,NCLIN,NCNLN,LDA,LDCJ,LDFJ,LDR,A,BL,BU,
    +            CONFUN,OBJFUN,ITER,ISTATE,C,CJAC,F,FJAC,
    +            CLAMDA,OBJF,R,X,IWORK,LIWORK,WORK,LWORK,
    +            IUSER,USER,IFAIL)
New: CALL E04USF(M,N,NCLIN,NCNLN,LDA,LDCJ,LDFJ,
    +            LDR,A,BL,BU,Y,CONFUN,OBJFUN,ITER,
    +            ISTATE,C,CJAC,F,FJAC,CLAMDA,OBJF,
    +            R,X,IWORK,LIWORK,WORK,LWORK,IUSER,
    +            USER,IFAIL)</pre>
<div class="paramtext"><a class="rout" href="../E04/e04usf.xml">E04USF/E04USA</a> contains one additional parameter as follows:
<ul class="listind"><li class="listind"><m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04usf.xml#Y"><m:mi mathcolor="#EE0000" mathvariant="bold">Y</m:mi></m:maction><m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04usf.xml#M"><m:mi mathcolor="#EE0000" mathvariant="bold">M</m:mi></m:maction></m:mfenced>
</m:math>&#160;&#8211; <span class="bitalic">double precision</span> array.</li></ul>
</div>
<div class="paramtext">Note that a call to <a class="wdrn" href="../GENINT/replace.xml#E04UPF">E04UPF</a> is the same as a call to <a class="rout" href="../E04/e04usf.xml">E04USF/E04USA</a> with <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04usf.xml#Y"><m:mi mathcolor="#EE0000" mathvariant="bold">Y</m:mi></m:maction><m:mfenced separators=""><m:mi>i</m:mi></m:mfenced>
 <m:mo>=</m:mo><m:mn>0.0</m:mn>
</m:math>, for <m:math>
 <m:mi>i</m:mi><m:mo>=</m:mo><m:mn>1</m:mn><m:mo>,</m:mo><m:mn>2</m:mn><m:mo>,</m:mo><m:mo>&#8230;</m:mo><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04usf.xml#M"><m:mi mathcolor="#EE0000" mathvariant="bold">M</m:mi></m:maction>
</m:math>.</div>
<div class="paramtext">The specification of the subroutine <a class="arg" href="../E04/e04usf.xml#OBJFUN">OBJFUN</a> must also be changed as follows:</div><pre class="verbatim">
Old: SUBROUTINE  OBJFUN(MODE,M,N,LDFJ,X,F,FJAC,NSTATE,IUSER,USER)
     INTEGER     MODE,M,N,LDFJ,NSTATE,IUSER(*)
     <span class="bitalic">double precision</span> X(N),F(*),FJAC(LDFJ,*),USER(*)

New: SUBROUTINE  OBJFUN(MODE,M,N,LDFJ,NEEDFI,X,F,FJAC,NSTATE,
    +                   IUSER,USER)
     INTEGER     MODE,M,N,NEEFI,NSTATE,IUSER(*)
     <span class="bitalic">double precision</span> X(N),F(*),FJAC(LDFJ,*),USER(*)</pre>
<div class="paramtext">See the routine documents for further information.</div><h3 class="standard"><a class="sec" name="E04VCF" id="E04VCF"/>E04VCF</h3><div class="paramtext">
Withdrawn at Mark 17.<br/>
Replaced by <a class="rout" href="../E04/e04ucf.xml">E04UCF/E04UCA</a>.</div><pre class="verbatim">
Old: CALL E04VCF(ITMAX,MSGLVL,N,NCLIN,NCNLN,NCTOTL,NROWA,NROWJ,
    +            NROWR,BIGBND,EPSAF,ETA,FTOL,A,BL,BU,FEATOL,
    +            CONFUN,OBJFUN,COLD,FEALIN,ORTHOG,X,ISTATE,R,ITER,
    +            C,CJAC,OBJF,OBJGRD,CLAMDA,IWORK,LIWORK,WORK,LWORK,
    +            IFAIL)
New: CALL E04UCF(N,NCLIN,NCNLN,NROWA,NROWJ,NROWR,A,BL,BU,CONFUN,
    +            OBJFUN,ITER,ISTATE,C,CJAC,CLAMDA,OBJF,OBJGRD,R,X,
    +            IWORK,LIWORK,WORK,LWORK,IUSER,USER,IFAIL)</pre>
<div class="paramtext">The specification of the subroutine <a class="arg" href="../E04/e04ucf.xml#OBJFUN">OBJFUN</a> must also be changed as follows:
<pre class="verbatim">
Old: SUBROUTINE  OBJFUN(MODE,N,X,OBJF,OBJGRD,NSTATE)
     INTEGER     MODE, N, NSTATE
     <span class="bitalic">double precision</span> X(N), OBJF, OBJGRD(N)
New: SUBROUTINE  OBJFUN(MODE,N,X,OBJF,OBJGRD,NSTATE,IUSER,USER)
     INTEGER     MODE, N, NSTATE, IUSER(*)
     <span class="bitalic">double precision</span> X(N), OBJF, OBJGRD(N), USER(*)</pre> </div>
<div class="paramtext">If <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#NCNLN"><m:mi mathcolor="#EE0000" mathvariant="bold">NCNLN</m:mi></m:maction>
 <m:mo>&gt;</m:mo>
 <m:mn>0</m:mn>
</m:math>, the specification of the subroutine <a class="arg" href="../E04/e04ucf.xml#CONFUN">CONFUN</a> must also be changed as follows:
<pre class="verbatim">
Old: SUBROUTINE  CONFUN(MODE,NCNLN,N,NROWJ,X,C,CJAC,NSTATE)
     INTEGER     MODE, NCNLN, N, NROWJ, NSTATE
     <span class="bitalic">double precision</span> X(N), C(NROWJ), CJAC(NROWJ,N)
New: SUBROUTINE  CONFUN(MODE,NCNLN,N,NROWJ,NEEDC,X,C,CJAC,NSTATE,
    +                   IUSER,USER)
     INTEGER     MODE, NCNLN, N, NROWJ, NEEDC(NCNLN), NSTATE, IUSER(*)
     <span class="bitalic">double precision</span> X(N), C(NCNLN), CJAC(NROWJ,N), USER(*)</pre> </div>
<div class="paramtext">If <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#NCNLN"><m:mi mathcolor="#EE0000" mathvariant="bold">NCNLN</m:mi></m:maction>
 <m:mo>=</m:mo>
 <m:mn>0</m:mn>
</m:math>, then the name of the dummy routine E04VDM/E54VDM  may need to be changed to E04UDM in the calling program.</div>
<div class="paramtext">The parameters NCTOTL, EPSAF, FEALIN and ORTHOG are no longer required.  Values for ITMAX, MSGLVL, BIGBND, ETA, FTOL, COLD and FEATOL may be supplied by calling an option setting routine.</div>
<div class="paramtext"><a class="rout" href="../E04/e04ucf.xml">E04UCF/E04UCA</a> contains two additional parameters as follows:
<ul class="listind"><li class="listind"><m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#IUSER"><m:mi mathcolor="#EE0000" mathvariant="bold">IUSER</m:mi></m:maction><m:mfenced separators=""><m:mo>*</m:mo></m:mfenced>
</m:math>&#160;&#8211; INTEGER array of dimension at least 1.</li><li class="listind"><m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#RUSER"><m:mi mathcolor="#EE0000" mathvariant="bold">USER</m:mi></m:maction><m:mfenced separators=""><m:mo>*</m:mo></m:mfenced>
</m:math>&#160;&#8211; <span class="bitalic">double precision</span> array of dimension at least 1.</li></ul>
</div>
<div class="paramtext">The minimum value of the parameter <a class="arg" href="../E04/e04ucf.xml#LIWORK">LIWORK</a> must be increased from <m:math>
 <m:mn>3</m:mn>
 <m:mo>&#215;</m:mo>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction>
 <m:mo>+</m:mo>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#NCLIN"><m:mi mathcolor="#EE0000" mathvariant="bold">NCLIN</m:mi></m:maction>
 <m:mo>+</m:mo>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#NCNLN"><m:mi mathcolor="#EE0000" mathvariant="bold">NCNLN</m:mi></m:maction>
</m:math>&#160;to <m:math>
 <m:mn>3</m:mn>
 <m:mo>&#215;</m:mo>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction>
 <m:mo>+</m:mo>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#NCLIN"><m:mi mathcolor="#EE0000" mathvariant="bold">NCLIN</m:mi></m:maction>
 <m:mo>+</m:mo>
 <m:mn>2</m:mn>
 <m:mo>&#215;</m:mo>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#NCNLN"><m:mi mathcolor="#EE0000" mathvariant="bold">NCNLN</m:mi></m:maction>
</m:math>.  The minimum value of the parameter <a class="arg" href="../E04/e04ucf.xml#LWORK">LWORK</a> may also need to be changed.  See the routine documents for further information.</div><h3 class="standard"><a class="sec" name="E04VDF" id="E04VDF"/>E04VDF</h3><div class="paramtext">
Withdrawn at Mark 17.<br/>
Replaced by <a class="rout" href="../E04/e04ucf.xml">E04UCF/E04UCA</a>.</div><pre class="verbatim">
Old: IFAIL = 110
     CALL E04VDF(ITMAX,MSGLVL,N,NCLIN,NCNLN,NCTOTL,NROWA,NROWJ,
    +            CTOL,FTOL,A,BL,BU,CONFUN,OBJFUN,X,ISTATE,C,CJAC,
    +            CJAC,OBJF,OBJGRD,CLAMDA,IWORK,LIWORK,WORK,LWORK,
    +            IFAIL)
New: IFAIL = -1
     CALL E04UCF(N,NCLIN,NCNLN,NROWA,NROWJ,N,A,BL,BU,CONFUN,OBJFUN,
    +            ITER,ISTATE,C,CJAC,CLAMDA,OBJF,OBJGRD,R,X,IWORK,
    +            LIWORK,WORK,LWORK,IUSER,USER,IFAIL)</pre>
<div class="paramtext">The specification of the subroutine <a class="arg" href="../E04/e04ucf.xml#OBJFUN">OBJFUN</a> must also be changed as follows:
<pre class="verbatim">
Old: SUBROUTINE  OBJFUN(MODE,N,X,OBJF,OBJGRD,NSTATE)
     INTEGER     MODE, N, NSTATE
     <span class="bitalic">double precision</span> X(N), OBJF, OBJGRD(N)
New: SUBROUTINE  OBJFUN(MODE,N,X,OBJF,OBJGRD,NSTATE,IUSER,USER)
     INTEGER     MODE, N, NSTATE, IUSER(*)
     <span class="bitalic">double precision</span> X(N), OBJF, OBJGRD(N), USER(*)</pre> </div>
<div class="paramtext">If <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#NCNLN"><m:mi mathcolor="#EE0000" mathvariant="bold">NCNLN</m:mi></m:maction>
 <m:mo>&gt;</m:mo>
 <m:mn>0</m:mn>
</m:math>, the specification of the subroutine <a class="arg" href="../E04/e04ucf.xml#CONFUN">CONFUN</a> must also be changed as follows:
<pre class="verbatim">
Old: SUBROUTINE  CONFUN(MODE,NCNLN,N,NROWJ,X,C,CJAC,NSTATE)
     INTEGER     MODE, NCNLN, N, NROWJ, NSTATE
     <span class="bitalic">double precision</span> X(N), C(NROWJ), CJAC(NROWJ,N)
New: SUBROUTINE  CONFUN(MODE,NCNLN,N,NROWJ,NEEDC,X,C,CJAC,NSTATE,
    +            IUSER,USER)
     INTEGER     MODE, NCNLN, N, NROWJ, NEEDC(NCNLN), NSTATE, IUSER(*)
     <span class="bitalic">double precision</span> X(N), C(NCNLN), CJAC(NROWJ,N), USER(*)</pre> </div>
<div class="paramtext">If <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#NCNLN"><m:mi mathcolor="#EE0000" mathvariant="bold">NCNLN</m:mi></m:maction>
 <m:mo>=</m:mo>
 <m:mn>0</m:mn>
</m:math>, then the name of the dummy routine E04VDM/E54VDM (VDME04 in some implementations) may need to be changed to E04UDM (UDME04 in some implementations) in the calling program.</div>
<div class="paramtext">The parameter NCTOTL is no longer required.  Values for ITMAX, MSGLVL, CTOL and FTOL may be supplied by calling an option setting routine.</div>
<div class="paramtext"><a class="rout" href="../E04/e04ucf.xml">E04UCF/E04UCA</a> contains four additional parameters as follows:
<ul class="listind"><li class="listind"><a class="arg" href="../E04/e04ucf.xml#ITER">ITER</a> &#8211; INTEGER.</li><li class="listind"><m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#R"><m:mi mathcolor="#EE0000" mathvariant="bold">R</m:mi></m:maction><m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#LDR"><m:mi mathcolor="#EE0000" mathvariant="bold">LDR</m:mi></m:maction><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>&#160;&#8211; <span class="bitalic">double precision</span> array.</li><li class="listind"><m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#IUSER"><m:mi mathcolor="#EE0000" mathvariant="bold">IUSER</m:mi></m:maction><m:mfenced separators=""><m:mo>*</m:mo></m:mfenced>
</m:math>&#160;&#8211; INTEGER array of dimension at least 1.</li><li class="listind"><m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#RUSER"><m:mi mathcolor="#EE0000" mathvariant="bold">USER</m:mi></m:maction><m:mfenced separators=""><m:mo>*</m:mo></m:mfenced>
</m:math>&#160;&#8211; <span class="bitalic">double precision</span> array of dimension at least 1.</li></ul>
</div>
<div class="paramtext">The minimum value of the parameter <a class="arg" href="../E04/e04ucf.xml#LIWORK">LIWORK</a> must be increased from <m:math>
 <m:mn>3</m:mn>
 <m:mo>&#215;</m:mo>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction>
 <m:mo>+</m:mo>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#NCLIN"><m:mi mathcolor="#EE0000" mathvariant="bold">NCLIN</m:mi></m:maction>
 <m:mo>+</m:mo>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#NCNLN"><m:mi mathcolor="#EE0000" mathvariant="bold">NCNLN</m:mi></m:maction>
</m:math>&#160;to <m:math>
 <m:mn>3</m:mn>
 <m:mo>&#215;</m:mo>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction>
 <m:mo>+</m:mo>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#NCLIN"><m:mi mathcolor="#EE0000" mathvariant="bold">NCLIN</m:mi></m:maction>
 <m:mo>+</m:mo>
 <m:mn>2</m:mn>
 <m:mo>&#215;</m:mo>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../E04/e04ucf.xml#NCNLN"><m:mi mathcolor="#EE0000" mathvariant="bold">NCNLN</m:mi></m:maction>
</m:math>.  The minimum value of the parameter <a class="arg" href="../E04/e04ucf.xml#LWORK">LWORK</a> may also need to be changed.  See the routine documents for further information.</div><h2 class="standard"><a class="sec" name="F01" id="F01"/>F01 &#8211; Matrix Operations, Including Inversion</h2><h3 class="standard"><a class="sec" name="F01AAF" id="F01AAF"/>F01AAF</h3><div class="paramtext">
Withdrawn at Mark 17.<br/>
Replaced by <a class="rout" href="../F07/f07adf.xml">F07ADF (DGETRF)</a> and <a class="rout" href="../F07/f07ajf.xml">F07AJF (DGETRI)</a>.</div><pre class="verbatim">
Old: CALL F01AAF(A,IA,N,X,IX,WKSPCE,IFAIL)
New: CALL DGETRF(N,N,A,IA,IPIV,IFAIL)
     CALL F06QFF('General',N,N,A,IA,X,IX)
     CALL DGETRI(N,X,IX,IPIV,WKSPCE,LWORK,IFAIL)</pre>
<div class="paramtext">where <a class="arg" href="../F07/f07adf.xml#IPIV">IPIV</a> is an INTEGER vector of length <a class="arg" href="../F07/f07adf.xml#N">N</a>, and the INTEGER <a class="arg" href="../F07/f07ajf.xml#LWORK">LWORK</a> is the length of array <a class="arg" href="../F07/f07ajf.xml#WORK">WKSPCE</a>, which must be at least <m:math>
 <m:mrow><m:mi>max</m:mi><m:mspace width="0.125em"/><m:mfenced separators=""><m:mn>1</m:mn><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F07/f07ajf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:mrow>
</m:math>.  In the replacement calls, <a class="rout" href="../F07/f07adf.xml">F07ADF (DGETRF)</a> computes the <m:math>
 <m:mi>L</m:mi><m:mi>U</m:mi>
</m:math>&#160;factorization of the matrix <m:math>
 <m:mi>A</m:mi>
</m:math>, <a class="rout" href="../F06/f06qff.xml">F06QFF</a> copies the factorization from <a class="arg" href="../F07/f07adf.xml#A">A</a> to <a class="arg" href="../F07/f07ajf.xml#A">X</a>, and <a class="rout" href="../F07/f07ajf.xml">F07AJF (DGETRI)</a> overwrites <a class="arg" href="../F07/f07ajf.xml#A">X</a> by the inverse of <m:math>
 <m:mi>A</m:mi>
</m:math>.  If the original matrix <m:math>
 <m:mi>A</m:mi>
</m:math>&#160;is no longer required, the call to <a class="rout" href="../F06/f06qff.xml">F06QFF</a> is not necessary, and references to <a class="arg" href="../F07/f07ajf.xml#A">X</a> and <a class="arg" href="../F07/f07ajf.xml#LDA">IX</a> in the call of <a class="rout" href="../F07/f07ajf.xml">F07AJF (DGETRI)</a> may be replaced by references to <a class="arg" href="../F07/f07adf.xml#A">A</a> and <a class="arg" href="../F07/f07adf.xml#LDA">IA</a>, in which case <a class="arg" href="../F07/f07adf.xml#A">A</a> will be overwritten by the inverse.</div><h3 class="standard"><a class="sec" name="F01ACF" id="F01ACF"/>F01ACF</h3><div class="paramtext">
Withdrawn at Mark 16.<br/>
Replaced by <a class="rout" href="../F01/f01abf.xml">F01ABF</a>.</div><pre class="verbatim">
Old: CALL F01ACF(N,EPS,A,IA,B,IB,Z,L,IFAIL)
New: CALL F01ABF(A,IA,N,B,IB,Z,IFAIL)</pre>
<div class="paramtext">The number of iterative refinement corrections returned by <a class="wdrn" href="../GENINT/replace.xml#F01ACF">F01ACF</a> in L is no longer available.  The parameter EPS is no longer required.</div><h3 class="standard"><a class="sec" name="F01AEF" id="F01AEF"/>F01AEF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F06/f06egf.xml">F06EGF (DSWAP)</a>, <a class="rout" href="../F07/f07fdf.xml">F07FDF (DPOTRF)</a> and <a class="rout" href="../F08/f08sef.xml">F08SEF (DSYGST)</a>.</div><pre class="verbatim">
Old: CALL F01AEF(N,A,IA,B,IB,DL,IFAIL)
New: DO 20 J = 1, N
        DO 10 I = J, N
           A(I,J) = A(J,I)
           B(I,J) = B(J,I)
  10 CONTINUE
        DL(J) = B(J,J)
  20 CONTINUE
     CALL DPOTRF('L',N,B,IB,INFO)
     IF (INFO.EQ.0) THEN
        CALL DSYGST(1,'L',N,A,IA,B,IB,INFO)
     ELSE
        IFAIL = 1
     END IF
     CALL DSWAP(N,DL,1,B,IB+1)</pre>
<div class="paramtext">IFAIL is set to 1 if the matrix <m:math>
 <m:mi>B</m:mi>
</m:math>&#160;is not positive-definite.  It is essential to test IFAIL.</div><h3 class="standard"><a class="sec" name="F01AFF" id="F01AFF"/>F01AFF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F06/f06egf.xml">F06EGF (DSWAP)</a> and <a class="rout" href="../F06/f06yjf.xml">F06YJF (DTRSM)</a>.</div><pre class="verbatim">
Old: CALL F01AFF(N,M1,M2,B,IB,DL,Z,IZ)
New: CALL DSWAP(N,DL,1,B,IB+1)
     CALL DTRSM('L','L','T','N',N,M2-M1+1,1.0D0,B,IB,Z(1,M1),IZ)
     CALL DSWAP(N,DL,1,B,IB+1)</pre><h3 class="standard"><a class="sec" name="F01AGF" id="F01AGF"/>F01AGF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08fef.xml">F08FEF (DSYTRD)</a>.</div><pre class="verbatim">
Old: CALL F01AGF(N,TOL,A,IA,D,E,E2)
New: CALL DSYTRD('L',N,A,IA,D,E(2),TAU,WORK,LWORK,INFO)
     E(1) = 0.0D0
     DO 10 I = 1, N
        E2(I) = E(I)*E(I)
  10 CONTINUE</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08fef.xml#TAU">TAU</a> is a <span class="bitalic">double precision</span> array of length at least <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08fef.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction><m:mo>-</m:mo><m:mn>1</m:mn></m:mfenced>
</m:math>, <a class="arg" href="../F08/f08fef.xml#WORK">WORK</a> is a <span class="bitalic">real</span> array of length at least (1) and <a class="arg" href="../F08/f08fef.xml#LWORK">LWORK</a> is its actual length.</div>
<div class="paramtext">Note that the tridiagonal matrix computed by <a class="rout" href="../F08/f08fef.xml">F08FEF (DSYTRD)</a> is different from that computed by <a class="wdrn" href="../GENINT/replace.xml#F01AGF">F01AGF</a>, but it has the same eigenvalues.</div><h3 class="standard"><a class="sec" name="F01AHF" id="F01AHF"/>F01AHF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08fgf.xml">F08FGF (DORMTR)</a>.</div><div class="paramtext">The following replacement is valid only if the previous call to <a class="wdrn" href="../GENINT/replace.xml#F01AGF">F01AGF</a> has been replaced by a call to <a class="rout" href="../F08/f08fef.xml">F08FEF (DSYTRD)</a> as shown above. 
<pre class="verbatim">
Old: CALL F01AHF(N,M1,M2,A,IA,E,Z,IZ)
New: CALL DORMTR('L','L','N',N,M2-M1+1,A,IA,TAU,Z(1,M1),IZ,WORK,
    +            LWORK,INFO)</pre> </div>
<div class="paramtext">where <a class="arg" href="../F08/f08fgf.xml#WORK">WORK</a> is a <span class="bitalic">double precision</span> array of length at least <m:math>
 <m:mfenced separators=""><m:mi mathvariant="normal">M2</m:mi><m:mo>-</m:mo><m:mi mathvariant="normal">M1</m:mi><m:mo>+</m:mo><m:mn>1</m:mn></m:mfenced>
</m:math>, and <a class="arg" href="../F08/f08fgf.xml#LWORK">LWORK</a> is its actual length.</div><h3 class="standard"><a class="sec" name="F01AJF" id="F01AJF"/>F01AJF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08fef.xml">F08FEF (DSYTRD)</a> and <a class="rout" href="../F08/f08fff.xml">F08FFF (DORGTR)</a>.</div><pre class="verbatim">
Old: CALL F01AJF(N,TOL,A,IA,D,E,Z,IZ)
New: CALL DSYTRD('L',N,A,IA,D,E(2),TAU,WORK,LWORK,INFO)
     E(1) = 0.0D0
     CALL F06QFF('L',N,N,A,IA,Z,IZ)
     CALL DORGTR('L',N,Z,IZ,TAU,WORK,LWORK,INFO)</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08fef.xml#TAU">TAU</a> is a <span class="bitalic">double precision</span> array of length at least <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08fef.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction><m:mo>-</m:mo><m:mn>1</m:mn></m:mfenced>
</m:math>, <a class="arg" href="../F08/f08fef.xml#WORK">WORK</a> is a <span class="bitalic">real</span> array of length at least <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08fef.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction><m:mo>-</m:mo><m:mn>1</m:mn></m:mfenced>
</m:math>&#160;and <a class="arg" href="../F08/f08fef.xml#LWORK">LWORK</a> is its actual length.</div>
<div class="paramtext">Note that the tridiagonal matrix <m:math>
 <m:mi>T</m:mi>
</m:math>&#160;and the orthogonal matrix <m:math>
 <m:mi>Q</m:mi>
</m:math>&#160;computed by <a class="rout" href="../F08/f08fef.xml">F08FEF (DSYTRD)</a> and <a class="rout" href="../F08/f08fff.xml">F08FFF (DORGTR)</a> are different from those computed by <a class="wdrn" href="../GENINT/replace.xml#F01AJF">F01AJF</a>, but they satisfy the same relation <m:math>
 <m:msup><m:mi>Q</m:mi><m:mi mathvariant="normal">T</m:mi></m:msup><m:mi>A</m:mi><m:mi>Q</m:mi><m:mo>=</m:mo><m:mi>T</m:mi>
</m:math>.</div><h3 class="standard"><a class="sec" name="F01AKF" id="F01AKF"/>F01AKF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08nef.xml">F08NEF (DGEHRD)</a>.</div><pre class="verbatim">
Old: CALL F01AKF(N,K,L,A,IA,INTGER)
New: CALL DGEHRD(N,K,L,A,IA,TAU,WORK,LWORK,INFO)</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08nef.xml#TAU">TAU</a> is a <span class="bitalic">double precision</span> array of length at least <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08nef.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction><m:mo>-</m:mo><m:mn>1</m:mn></m:mfenced>
</m:math>, <a class="arg" href="../F08/f08nef.xml#WORK">WORK</a> is a <span class="bitalic">real</span> array of length at least <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08nef.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>&#160;and <a class="arg" href="../F08/f08nef.xml#LWORK">LWORK</a> is its actual length.</div>
<div class="paramtext">Note that the Hessenberg matrix computed by <a class="rout" href="../F08/f08nef.xml">F08NEF (DGEHRD)</a> is different from that computed by <a class="wdrn" href="../GENINT/replace.xml#F01AKF">F01AKF</a>, because <a class="rout" href="../F08/f08nef.xml">F08NEF (DGEHRD)</a> uses orthogonal transformations, whereas <a class="wdrn" href="../GENINT/replace.xml#F01AKF">F01AKF</a> uses stabilized elementary transformations.</div><h3 class="standard"><a class="sec" name="F01ALF" id="F01ALF"/>F01ALF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08ngf.xml">F08NGF (DORMHR)</a>.</div><div class="paramtext">The following replacement is valid only if the previous call to <a class="wdrn" href="../GENINT/replace.xml#F01AKF">F01AKF</a> has been replaced by a call to <a class="rout" href="../F08/f08nef.xml">F08NEF (DGEHRD)</a> as indicated above.</div>
<pre class="verbatim">
Old: CALL F01ALF(K,L,IR,A,IA,INTGER,Z,IZ,N)
New: CALL DORMHR('L','N',N,IR,K,L,A,IA,TAU,Z,IZ,WORK,LWORK,INFO)</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08ngf.xml#WORK">WORK</a> is a <span class="bitalic">double precision</span> array of length at least <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08ngf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">IR</m:mi></m:maction></m:mfenced>
</m:math>&#160;and <a class="arg" href="../F08/f08ngf.xml#LWORK">LWORK</a> is its actual length.</div><h3 class="standard"><a class="sec" name="F01AMF" id="F01AMF"/>F01AMF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08nsf.xml">F08NSF (ZGEHRD)</a>.</div><pre class="verbatim">
Old: CALL F01AMF(N,K,L,AR,IAR,AI,IAI,INTGER)
New: DO 20 J = 1, N
        DO 10 I = 1, N
           A(I,J) = <span class="bitalic">cmplx</span>(AR(I,J),AI(I,J))
  10    CONTINUE
  20 CONTINUE
     CALL ZGEHRD(N,K,L,A,IA,TAU,WORK,LWORK,INFO)</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08nsf.xml#A">A</a> is a <span class="bitalic">complex*16</span> array of dimension <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08nsf.xml#LDA"><m:mi mathcolor="#EE0000" mathvariant="bold">IA</m:mi></m:maction><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08nsf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>, <a class="arg" href="../F08/f08nsf.xml#TAU">TAU</a> is a <span class="bitalic">complex*16</span> array of length at least <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08nsf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction><m:mo>-</m:mo><m:mn>1</m:mn></m:mfenced>
</m:math>, <a class="arg" href="../F08/f08nsf.xml#WORK">WORK</a> is a <span class="bitalic">complex*16</span> array of length at least <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08nsf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>&#160;and <a class="arg" href="../F08/f08nsf.xml#LWORK">LWORK</a> is its actual length.</div>
<div class="paramtext">Note that the Hessenberg matrix computed by <a class="rout" href="../F08/f08nsf.xml">F08NSF (ZGEHRD)</a> is different from that computed by <a class="wdrn" href="../GENINT/replace.xml#F01AMF">F01AMF</a>, because <a class="rout" href="../F08/f08nsf.xml">F08NSF (ZGEHRD)</a> uses orthogonal transformations, whereas <a class="wdrn" href="../GENINT/replace.xml#F01AMF">F01AMF</a> uses stabilized elementary transformations.</div><h3 class="standard"><a class="sec" name="F01ANF" id="F01ANF"/>F01ANF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08nuf.xml">F08NUF (ZUNMHR)</a>.</div><div class="paramtext">The following replacement is valid only if the previous call to <a class="wdrn" href="../GENINT/replace.xml#F01AMF">F01AMF</a> has been replaced by a call to <a class="rout" href="../F08/f08nsf.xml">F08NSF (ZGEHRD)</a> as indicated above.</div>
<pre class="verbatim">
Old: CALL F01ANF(K,L,IR,AR,IAR,AI,IAI,INTGER,ZR,IZR,ZI,IZI,N)
New: CALL ZUNMHR('L','N',N,IR,K,L,A,IA,TAU,Z,IZ,WORK,LWORK,INFO)
     DO 20 J = 1, IR
        DO 10 I = 1, N
           ZR(I,J) = <span class="bitalic">real</span>(Z(I,J))
           ZI(I,J) = <span class="bitalic">imag</span>(Z(I,J))
  10    CONTINUE
  20 CONTINUE</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08nuf.xml#A">A</a> is a <span class="bitalic">complex*16</span> array of dimension <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08nuf.xml#LDA"><m:mi mathcolor="#EE0000" mathvariant="bold">IA</m:mi></m:maction><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08nuf.xml#M"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>, <a class="arg" href="../F08/f08nuf.xml#TAU">TAU</a> is a <span class="bitalic">complex*16</span> array of length at least <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08nuf.xml#M"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction><m:mo>-</m:mo><m:mn>1</m:mn></m:mfenced>
</m:math>, <a class="arg" href="../F08/f08nuf.xml#C">Z</a> is a <span class="bitalic">complex*16</span> array of dimension <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08nuf.xml#LDC"><m:mi mathcolor="#EE0000" mathvariant="bold">IZ</m:mi></m:maction><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08nuf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">IR</m:mi></m:maction></m:mfenced>
</m:math>, <a class="arg" href="../F08/f08nuf.xml#WORK">WORK</a> is a <span class="bitalic">complex*16</span> array of length at least <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08nuf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">IR</m:mi></m:maction></m:mfenced>
</m:math>&#160;and <a class="arg" href="../F08/f08nuf.xml#LWORK">LWORK</a> is its actual length.</div><h3 class="standard"><a class="sec" name="F01APF" id="F01APF"/>F01APF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F06/f06qff.xml">F06QFF</a> and <a class="rout" href="../F08/f08nff.xml">F08NFF (DORGHR)</a>.</div><div class="paramtext">The following replacement is valid only if the previous call to <a class="wdrn" href="../GENINT/replace.xml#F01AKF">F01AKF</a> has been replaced by a call to <a class="rout" href="../F08/f08nef.xml">F08NEF (DGEHRD)</a> as indicated above.</div>
<pre class="verbatim">
Old: CALL F01APF(N,K,L,INTGER,H,IH,V,IV)
New: CALL F06QFF('L',N,N,H,IH,V,IV)
     CALL DORGHR(N,K,L,V,IV,TAU,WORK,LWORK,INFO)</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08nff.xml#WORK">WORK</a> is a <span class="bitalic">double precision</span> array of length at least <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08nff.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>, and <a class="arg" href="../F08/f08nff.xml#LWORK">LWORK</a> is its actual length.</div>
<div class="paramtext">Note that the orthogonal matrix formed by <a class="rout" href="../F08/f08nff.xml">F08NFF (DORGHR)</a> is not the same as the non-orthogonal matrix formed by <a class="wdrn" href="../GENINT/replace.xml#F01APF">F01APF</a>.  See <a class="wdrn" href="../GENINT/replace.xml#F01AKF">F01AKF</a> above.</div><h3 class="standard"><a class="sec" name="F01ATF" id="F01ATF"/>F01ATF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08nhf.xml">F08NHF (DGEBAL)</a>.</div><pre class="verbatim">
Old: CALL F01ATF(N,IB,A,IA,K,L,D)
New: CALL DGEBAL('B',N,A,IA,K,L,D,INFO)</pre>
<div class="paramtext">Note that the balanced matrix returned by <a class="rout" href="../F08/f08nhf.xml">F08NHF (DGEBAL)</a> may be different from that returned by <a class="wdrn" href="../GENINT/replace.xml#F01ATF">F01ATF</a>.</div><h3 class="standard"><a class="sec" name="F01AUF" id="F01AUF"/>F01AUF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08njf.xml">F08NJF (DGEBAK)</a>.</div><pre class="verbatim">
Old: CALL F01AUF(N,K,L,M,D,Z,IZ)
New: CALL DGEBAK('B','R',N,K,L,D,M,Z,IZ,INFO)</pre><h3 class="standard"><a class="sec" name="F01AVF" id="F01AVF"/>F01AVF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08nvf.xml">F08NVF (ZGEBAL)</a>.</div><pre class="verbatim">
Old: CALL F01AVF(N,IB,AR,IAR,AI,IAI,K,L,D)
New: DO 20 J = 1, N
        DO 10 I = 1, N
           A(I,J) = <span class="bitalic">cmplx</span>(AR(I,J),AI(I,J))
  10    CONTINUE
  20 CONTINUE
     CALL ZGEBAL('B',N,A,IA,K,L,D,INFO)
     DO 20 J = 1, N
        DO 10 I = 1, N
           AR(I,J) = <span class="bitalic">real</span>(A(I,J))
           AI(I,J) = <span class="bitalic">imag</span>(A(I,J))
  10    CONTINUE
  20 CONTINUE</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08nvf.xml#A">A</a> is a <span class="bitalic">complex*16</span> array of dimension <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08nvf.xml#LDA"><m:mi mathcolor="#EE0000" mathvariant="bold">IA</m:mi></m:maction><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08nvf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>.</div>
<div class="paramtext">Note that the balanced matrix returned by <a class="rout" href="../F08/f08nvf.xml">F08NVF (ZGEBAL)</a> may be different from that returned by <a class="wdrn" href="../GENINT/replace.xml#F01AVF">F01AVF</a>.</div><h3 class="standard"><a class="sec" name="F01AWF" id="F01AWF"/>F01AWF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08nwf.xml">F08NWF (ZGEBAK)</a>.</div><pre class="verbatim">
Old: CALL F01AWF(N,K,L,M,D,ZR,IZR,ZI,IZI)
New: DO 20 J = 1, M
        DO 10 I = 1, N
           Z(I,J) = <span class="bitalic">cmplx</span>(ZR(I,J),ZI(I,J))
  10    CONTINUE
  20 CONTINUE
     CALL ZGEBAK('B','R',N,K,L,D,M,Z,IZ,INFO)
     DO 40 J = 1, M
        DO 30 I = 1, N
           ZR(I,J) = <span class="bitalic">real</span>(Z(I,J))
           ZI(I,J) = <span class="bitalic">imag</span>(Z(I,J))
 30     CONTINUE
 40  CONTINUE</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08nwf.xml#V">Z</a> is a <span class="bitalic">complex*16</span> array of dimension <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08nwf.xml#LDV"><m:mi mathcolor="#EE0000" mathvariant="bold">IZ</m:mi></m:maction><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08nwf.xml#M"><m:mi mathcolor="#EE0000" mathvariant="bold">M</m:mi></m:maction></m:mfenced>
</m:math>.</div><h3 class="standard"><a class="sec" name="F01AXF" id="F01AXF"/>F01AXF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F06/f06eff.xml">F06EFF (DCOPY)</a> and <a class="rout" href="../F08/f08bef.xml">F08BEF (DGEQPF)</a>.</div><pre class="verbatim">
Old: CALL F01AXF(M,N,QR,IQR,ALPHA,IPIV,Y,E,IFAIL)
New: CALL DGEQPF(M,N,QR,IQR,IPIV,Y,WORK,INFO)
     CALL DCOPY(N,QR,IQR+1,ALPHA,1)</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08bef.xml#WORK">WORK</a> is a <span class="bitalic">double precision</span> array of length at least <m:math>
 <m:mfenced separators="">
 <m:mn>3</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08bef.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction>
 </m:mfenced>
</m:math>.</div>
<div class="paramtext">Note that the details of the Householder matrices returned by <a class="rout" href="../F08/f08bef.xml">F08BEF (DGEQPF)</a> are different from those returned by <a class="wdrn" href="../GENINT/replace.xml#F01AXF">F01AXF</a>, but they determine the same orthogonal matrix <m:math>
 <m:mi>Q</m:mi>
</m:math>.</div><h3 class="standard"><a class="sec" name="F01AYF" id="F01AYF"/>F01AYF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08gef.xml">F08GEF (DSPTRD)</a>.</div><pre class="verbatim">
Old: CALL F01AYF(N,TOL,A,IA,D,E,E2)
New: CALL DSPTRD('U',N,A,D,E(2),TAU,INFO)
     E(1) = 0.0D0
     DO 10 I = 1, N
        E2(I) = E(I)*E(I)
  10 CONTINUE</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08gef.xml#TAU">TAU</a> is a <span class="bitalic">double precision</span> array of length at least <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08gef.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction><m:mo>-</m:mo><m:mn>1</m:mn></m:mfenced>
</m:math>.</div><h3 class="standard"><a class="sec" name="F01AZF" id="F01AZF"/>F01AZF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08ggf.xml">F08GGF (DOPMTR)</a>.</div><div class="paramtext">The following replacement is valid only if the previous call to <a class="wdrn" href="../GENINT/replace.xml#F01AYF">F01AYF</a> has been replaced by a call to <a class="rout" href="../F08/f08gef.xml">F08GEF (DSPTRD)</a> as shown above.</div>
<pre class="verbatim">
Old: CALL F01AZF(N,M1,M2,A,IA,Z,IZ)
New: CALL DOPMTR('L','U','N',N,M2-M1+1,A,TAU,Z(1,M1),IZ,WORK,INFO)</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08ggf.xml#WORK">WORK</a> is a <span class="bitalic">double precision</span> array of length at least <m:math>
 <m:mfenced separators=""><m:mi mathvariant="normal">M2</m:mi><m:mo>-</m:mo><m:mi mathvariant="normal">M1</m:mi><m:mo>+</m:mo><m:mn>1</m:mn></m:mfenced>
</m:math>.</div><h3 class="standard"><a class="sec" name="F01BCF" id="F01BCF"/>F01BCF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08fsf.xml">F08FSF (ZHETRD)</a> and <a class="rout" href="../F08/f08ftf.xml">F08FTF (ZUNGTR)</a>.</div><pre class="verbatim">
Old: CALL F01BCF(N,TOL,AR,IAR,AI,IAI,D,E,WK1,WK2)
New: DO 20 J = 1, N
        DO 10 I = 1, N
           A(I,J) = <span class="bitalic">cmplx</span>(AR(I,J),AI(I,J))
  10    CONTINUE
  20 CONTINUE
     CALL ZHETRD('L',N,A,IA,D,E(2),TAU,WORK,LWORK,INFO)
     E(1) = 0.0D0
     CALL ZUNGTR('L',N,A,IA,TAU,WORK,LWORK,INFO)
     DO 40 J = 1, N
        DO 30 I = 1, N
           AR(I,J) = <span class="bitalic">real</span>(A(I,J))
           AI(I,J) = <span class="bitalic">imag</span>(A(I,J))
 30     CONTINUE
 40  CONTINUE</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08fsf.xml#A">A</a> is a <span class="bitalic">complex*16</span> array of dimension <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08ftf.xml#LDA"><m:mi mathcolor="#EE0000" mathvariant="bold">IA</m:mi></m:maction><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08fsf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>, <a class="arg" href="../F08/f08fsf.xml#TAU">TAU</a> is a <span class="bitalic">complex*16</span> array of length at least <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08fsf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction><m:mo>-</m:mo><m:mn>1</m:mn></m:mfenced>
</m:math>, <a class="arg" href="../F08/f08ftf.xml#WORK">WORK</a> is a <span class="bitalic">complex*16</span> array of length at least <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08fsf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction><m:mo>-</m:mo><m:mn>1</m:mn></m:mfenced>
</m:math>, and <a class="arg" href="../F08/f08ftf.xml#LWORK">LWORK</a> is its actual length.</div>
<div class="paramtext">Note that the tridiagonal matrix <m:math>
 <m:mi>T</m:mi>
</m:math>&#160;and the unitary matrix <m:math>
 <m:mi>Q</m:mi>
</m:math>&#160;computed by <a class="rout" href="../F08/f08fsf.xml">F08FSF (ZHETRD)</a> and <a class="rout" href="../F08/f08ftf.xml">F08FTF (ZUNGTR)</a> are different from those computed by <a class="wdrn" href="../GENINT/replace.xml#F01BCF">F01BCF</a>, but they satisfy the same relation <m:math>
 <m:msup><m:mi>Q</m:mi><m:mi mathvariant="normal">H</m:mi></m:msup><m:mi>A</m:mi><m:mi>Q</m:mi><m:mo>=</m:mo><m:mi>T</m:mi>
</m:math>.</div><h3 class="standard"><a class="sec" name="F01BDF" id="F01BDF"/>F01BDF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F06/f06egf.xml">F06EGF (DSWAP)</a>, <a class="rout" href="../F07/f07fdf.xml">F07FDF (DPOTRF)</a> and <a class="rout" href="../F08/f08sef.xml">F08SEF (DSYGST)</a>.</div><pre class="verbatim">
Old: CALL F01BDF(N,A,IA,B,IB,DL,IFAIL)
New: DO 20 J = 1, N
        DO 10 I = J, N
           A(I,J) = A(J,I)
           B(I,J) = B(J,I)
  10    CONTINUE
        DL(J) = B(J,J)
  20 CONTINUE
     CALL DPOTRF('L',N,B,IB,INFO)
     IF (INFO.EQ.0) THEN
        CALL DSYGST(2,'L',N,A,IA,B,IB,INFO)
     ELSE
        IFAIL = 1
     END IF
     CALL DSWAP(N,DL,1,B,IB+1)</pre>
<div class="paramtext">IFAIL is set to 1 if the matrix <a class="arg" href="../F08/f08sef.xml#B">B</a> is not positive-definite.  It is essential to test IFAIL.</div><h3 class="standard"><a class="sec" name="F01BEF" id="F01BEF"/>F01BEF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F06/f06yff.xml">F06YFF (DTRMM)</a>.</div><pre class="verbatim">
Old: CALL F01BEF(N,M1,M2,B,IB,DL,V,IV)
New: CALL DSWAP(N,DL,1,B,IB+1)
     CALL DTRMM('L','L','N','N',N,M2-M1+1,1.0D0,B,IB,V(1,M1),IV)
     CALL DSWAP(N,DL,1,B,IB+1)</pre><h3 class="standard"><a class="sec" name="F01BNF" id="F01BNF"/>F01BNF</h3><div class="paramtext">
Withdrawn at Mark 17.<br/>
Replaced by <a class="rout" href="../F07/f07frf.xml">F07FRF (ZPOTRF)</a>.</div><pre class="verbatim">
Old: CALL F01BNF(N,A,IA,P,IFAIL)
New: CALL ZPOTRF('Upper',N,A,IA,IFAIL)</pre>
<div class="paramtext">where, before the call, array <a class="arg" href="../F07/f07frf.xml#A">A</a> contains the upper triangle of the matrix to be factorized rather than the lower triangle (note that the elements of the upper triangle are the complex conjugates of the elements of the lower triangle).  The <span class="bitalic">double precision</span> array P is no longer required; the upper triangle of <a class="arg" href="../F07/f07frf.xml#A">A</a> is overwritten by the upper triangular factor <m:math>
 <m:mi>U</m:mi>
</m:math>, including the diagonal elements (which are not reciprocated).</div><h3 class="standard"><a class="sec" name="F01BPF" id="F01BPF"/>F01BPF</h3><div class="paramtext">
Withdrawn at Mark 17.<br/>
Replaced by <a class="rout" href="../F07/f07frf.xml">F07FRF (ZPOTRF)</a> and <a class="rout" href="../F07/f07fwf.xml">F07FWF (ZPOTRI)</a>.</div><pre class="verbatim">
Old: CALL F01BPF(N,A,IA,V,IFAIL)
New: CALL ZPOTRF('Upper',N,A,IA,IFAIL)
     CALL ZPOTRI('Upper',N,A,IA,IFAIL)</pre>
<div class="paramtext">where, before the calls, the upper triangle of the matrix to be inverted must be contained in rows 1 to <a class="arg" href="../F07/f07frf.xml#N">N</a> of <a class="arg" href="../F07/f07frf.xml#A">A</a>, rather than the lower triangle being in rows 2 to <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../F07/f07frf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction><m:mo>+</m:mo><m:mn>1</m:mn>
</m:math>&#160;(note that the elements of the upper triangle are the complex conjugates of the elements of the lower triangle).  The workspace vector V is no longer required.</div><h3 class="standard"><a class="sec" name="F01BQF" id="F01BQF"/>F01BQF</h3><div class="paramtext">
Withdrawn at Mark 16.<br/>
Replaced by <a class="rout" href="../F07/f07gdf.xml">F07GDF (DPPTRF)</a> and <a class="rout" href="../F07/f07pdf.xml">F07PDF (DSPTRF)</a>.</div><div class="paramtext">The replacement routines do not have exactly the same functionality as <a class="wdrn" href="../GENINT/replace.xml#F01BQF">F01BQF</a>; if this functionality is genuinely required, please contact <a class="url" href="http://www.nag.co.uk">NAG</a>.  
<table class="standard-100"><tr>
<td style="width:2.1em;" valign="baseline">(a)</td>
<td valign="top">where the symmetric matrix is known to be positive-definite (if the matrix is in fact not positive-definite, the replacement routine will return a positive value in IFAIL)
<pre class="verbatim">
Old: CALL F01BQF(N,EPS,RL,IRL,D,IFAIL)
New: CALL DPPTRF('Lower',N,RL,IFAIL)</pre></td>
</tr><tr>
<td style="width:2.1em;" valign="baseline">(b)</td>
<td valign="top">where the matrix is not positive-definite (the replacement routine forms an <m:math>
 <m:mi>L</m:mi><m:mi>D</m:mi><m:msup><m:mi>L</m:mi><m:mi mathvariant="normal">T</m:mi></m:msup>
</m:math>&#160;factorization where <m:math>
 <m:mi>D</m:mi>
</m:math>&#160;is block diagonal, rather than a Cholesky factorization)
<pre class="verbatim">
Old: CALL F01BQF(N,EPS,RL,IRL,D,IFAIL)
New: CALL DSPTRF('Lower',N,RL,IPIV,IFAIL)</pre></td>
</tr></table>
</div>
<div class="paramtext">For the replacement calls in both (a) and (b), the array <a class="arg" href="../F07/f07gdf.xml#AP">RL</a> must now hold the complete lower triangle of the symmetric matrix, including the diagonal elements, which are no longer required to be stored in the redundant array D.  The declared dimension of <a class="arg" href="../F07/f07gdf.xml#AP">RL</a> must be increased from at least <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../F07/f07gdf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction><m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F07/f07gdf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction><m:mo>-</m:mo><m:mn>1</m:mn></m:mfenced>
 <m:mo>/</m:mo><m:mn>2</m:mn>
</m:math>&#160;to at least <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../F07/f07gdf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction><m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F07/f07gdf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction><m:mo>+</m:mo><m:mn>1</m:mn></m:mfenced>
 <m:mo>/</m:mo><m:mn>2</m:mn>
</m:math>.  It is important to note that for the calls of <a class="rout" href="../F07/f07gdf.xml">F07GDF (DPPTRF)</a> and <a class="rout" href="../F07/f07pdf.xml">F07PDF (DSPTRF)</a>, the lower triangle of the matrix must be stored packed by column instead of by row.  The dimension parameter IRL is no longer required.  For the call of <a class="rout" href="../F07/f07pdf.xml">F07PDF (DSPTRF)</a>, the INTEGER array <a class="arg" href="../F07/f07pdf.xml#IPIV">IPIV</a> of length <a class="arg" href="../F07/f07pdf.xml#N">N</a> must be supplied.</div><h3 class="standard"><a class="sec" name="F01BTF" id="F01BTF"/>F01BTF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F07/f07adf.xml">F07ADF (DGETRF)</a>.</div><pre class="verbatim">
Old: CALL F01BTF(N,A,IA,P,DP,IFAIL)
New: CALL DGETRF(N,N,A,IA,IPIV,IFAIL)</pre>
<div class="paramtext">where <a class="arg" href="../F07/f07adf.xml#IPIV">IPIV</a> is an INTEGER array of length <a class="arg" href="../F07/f07adf.xml#N">N</a> which holds the indices of the pivot elements, and the array P is no longer required.  It may be important to note that after a call of <a class="rout" href="../F07/f07adf.xml">F07ADF (DGETRF)</a>, <a class="arg" href="../F07/f07adf.xml#A">A</a> is overwritten by the upper triangular factor <m:math>
 <m:mi>U</m:mi>
</m:math>&#160;and the off-diagonal elements of the unit lower triangular factor <m:math>
 <m:mi>L</m:mi>
</m:math>, whereas the factorization returned by <a class="wdrn" href="../GENINT/replace.xml#F01BTF">F01BTF</a> gives <m:math>
 <m:mi>U</m:mi>
</m:math>&#160;the unit diagonal.  The permutation determinant DP returned by <a class="wdrn" href="../GENINT/replace.xml#F01BTF">F01BTF</a> is not computed by <a class="rout" href="../F07/f07adf.xml">F07ADF (DGETRF)</a>.  If this value is required, it may be calculated after a call of <a class="rout" href="../F07/f07adf.xml">F07ADF (DGETRF)</a> by code similar to the following:
<pre class="verbatim">
DP = 1.0D0
   DO 10 I = 1, N
      IF (I.NE.IPIV(I)) DP = -DP
10 CONTINUE</pre> </div><h3 class="standard"><a class="sec" name="F01BWF" id="F01BWF"/>F01BWF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08hef.xml">F08HEF (DSBTRD)</a>.</div><pre class="verbatim">
Old: CALL F01BWF(N,M1,A,IA,D,E)
New: CALL DSBTRD('N','U',N,M1-1,A,IA,D,E(2),Q,1,WORK,INFO)
     E(1) = 0.0D0</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08hef.xml#Q">Q</a> is a dummy <span class="bitalic">double precision</span> array of length (1) (not used in this call), and <a class="arg" href="../F08/f08hef.xml#WORK">WORK</a> is a <span class="bitalic">double precision</span> array of length at least <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08hef.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>.</div>
<div class="paramtext">Note that the tridiagonal matrix computed by <a class="rout" href="../F08/f08hef.xml">F08HEF (DSBTRD)</a> is different from that computed by <a class="wdrn" href="../GENINT/replace.xml#F01BWF">F01BWF</a>, but it has the same eigenvalues.</div><h3 class="standard"><a class="sec" name="F01BXF" id="F01BXF"/>F01BXF</h3><div class="paramtext">
Withdrawn at Mark 17.<br/>
Replaced by <a class="rout" href="../F07/f07fdf.xml">F07FDF (DPOTRF)</a>.</div><pre class="verbatim">
Old: CALL F01BXF(N,A,IA,P,IFAIL)
New: CALL DPOTRF('Upper',N,A,IA,IFAIL)</pre>
<div class="paramtext">where, before the call, array <a class="arg" href="../F07/f07fdf.xml#A">A</a> contains the upper triangle of the matrix to be factorized rather than the lower triangle.  The array P is no longer required; the upper triangle of <a class="arg" href="../F07/f07fdf.xml#A">A</a> is overwritten by the upper triangular factor <m:math>
 <m:mi>U</m:mi>
</m:math>, including the diagonal elements (which are not reciprocated).</div><h3 class="standard"><a class="sec" name="F01CDF" id="F01CDF"/>F01CDF</h3><div class="paramtext">
Withdrawn at Mark 15.<br/>
Replaced by <a class="rout" href="../F01/f01ctf.xml">F01CTF</a>.</div><pre class="verbatim">
Old: CALL F01CDF(A,B,C,M,N,IFAIL)
New: CALL F01CTF('N','N',M,N,1.0D0,B,M,1.0D0,C,M,A,M,IFAIL)</pre><h3 class="standard"><a class="sec" name="F01CEF" id="F01CEF"/>F01CEF</h3><div class="paramtext">
Withdrawn at Mark 15.<br/>
Replaced by <a class="rout" href="../F01/f01ctf.xml">F01CTF</a>.</div><pre class="verbatim">
Old: CALL F01CEF(A,B,C,M,N,IFAIL)
New: CALL F01CTF('N','N',M,N,1.0D0,B,M,-1.0D0,C,M,A,M,IFAIL)</pre><h3 class="standard"><a class="sec" name="F01CGF" id="F01CGF"/>F01CGF</h3><div class="paramtext">
Withdrawn at Mark 15.<br/>
Replaced by <a class="rout" href="../F01/f01ctf.xml">F01CTF</a>.</div><pre class="verbatim">
Old: CALL F01CGF(A,MA,NA,P,Q,B,MB,NB,M1,M2,N1,N2,IFAIL)
New: CALL F01CTF('N','N',M2-M1+1,N2-N1+1,1.0D0,A(P,Q),MA,1.0D0,
    +            B(M1,N1),MB,A(P,Q),MA,IFAIL)</pre><h3 class="standard"><a class="sec" name="F01CHF" id="F01CHF"/>F01CHF</h3><div class="paramtext">
Withdrawn at Mark 15.<br/>
Replaced by <a class="rout" href="../F01/f01ctf.xml">F01CTF</a>.</div><pre class="verbatim">
Old: CALL F01CHF(A,MA,NA,P,Q,B,MB,NB,M1,M2,N1,N2,IFAIL)
New: CALL F01CTF('N','N',M2-M1+1,N2-N1+1,1.0D0,A(P,Q),MA,-1.0D0,
    +            B(M1,N1),MB,A(P,Q),MA,IFAIL)</pre><h3 class="standard"><a class="sec" name="F01CLF" id="F01CLF"/>F01CLF</h3><div class="paramtext">
Withdrawn at Mark 16.<br/>
Replaced by <a class="rout" href="../F06/f06yaf.xml">F06YAF (DGEMM)</a>.</div><pre class="verbatim">
Old: CALL F01CLF(A,B,C,N,P,M,IFAIL)
New: CALL DGEMM('N','T',N,P,M,1.0D0,B,N,C,P,0.0D0,A,N)</pre><h3 class="standard"><a class="sec" name="F01LBF" id="F01LBF"/>F01LBF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F07/f07bdf.xml">F07BDF (DGBTRF)</a>.</div><pre class="verbatim">
Old: CALL F01LBF(N,M1,M2,A,IA,AL,IL,IN,IV,IFAIL)
New: CALL DGBTRF(N,N,M1,M2,A,IA,IN,IFAIL)</pre>
<div class="paramtext">where the size of array <a class="arg" href="../F07/f07bdf.xml#AB">A</a> must now have a leading dimension <a class="arg" href="../F07/f07bdf.xml#LDAB">IA</a> of at least <m:math>
 <m:mn>2</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F07/f07bdf.xml#KL"><m:mi mathcolor="#EE0000" mathvariant="bold">M1</m:mi></m:maction><m:mo>+</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F07/f07bdf.xml#KU"><m:mi mathcolor="#EE0000" mathvariant="bold">M2</m:mi></m:maction><m:mo>+</m:mo><m:mn>1</m:mn>
</m:math>.  The array AL, its associated dimension parameter IL, and the parameter IV are not required for <a class="rout" href="../F07/f07bdf.xml">F07BDF (DGBTRF)</a> because this routine overwrites <a class="arg" href="../F07/f07bdf.xml#AB">A</a> by both the <m:math>
 <m:mi>L</m:mi>
</m:math>&#160;and <m:math>
 <m:mi>U</m:mi>
</m:math>&#160;factors.  The scheme by which the matrix is packed into the array is completely different from that used by <a class="wdrn" href="../GENINT/replace.xml#F01LBF">F01LBF</a>; the relevant routine document should be consulted for details.</div><h3 class="standard"><a class="sec" name="F01LZF" id="F01LZF"/>F01LZF</h3><div class="paramtext">
Withdrawn at Mark 15.<br/>
Replaced by <a class="rout" href="../F08/f08kef.xml">F08KEF (DGEBRD)</a>, <a class="rout" href="../F08/f08kff.xml">F08KFF (DORGBR)</a> or <a class="rout" href="../F08/f08kgf.xml">F08KGF (DORMBR)</a>.</div><pre class="verbatim">
Old: CALL F01LZF(N,A,NRA,C,NRC,WANTB,B,WANTQ,WANTY,Y,NRY,LY,WANTZ,Z,
    +            NRZ,NCZ,D,E,WORK1,WORK2,IFAIL)
New: CALL DGEBRD(N,N,A,NRA,D,E(2),TAUQ,TAUP,WORK1,LWORK,INFO)
     IF (WANTB) THEN
        CALL DORMBR('Q','L','T',N,1,NA,NRA,TAUQ,B,N,WORK1,LWORK,INFO)
     ELSE IF (WANTQ) THEN
        CALL DORGBR('Q',N,N,N,A,NRA,TAUQ,WORK,LWORK,INFO)
     ELSE IF (WANTY) THEN
        CALL DORMBR('Q','R','N',LY,N,N,A,NRA,TAUQ,Y,NRY,WORK1,LWORK,
    +            INFO)
     ELSE IF (WANTZ) THEN
        CALL DORMBR('P','L','T',N,NCZ,N,A,NRA,TAUP,Z,NRZ,WORK1,LWORK,
    +            INFO)
     END IF</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08kef.xml#TAUQ">TAUQ</a> and <a class="arg" href="../F08/f08kef.xml#TAUP">TAUP</a> are real arrays of length at least <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08kef.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>&#160;and <a class="arg" href="../F08/f08kef.xml#LWORK">LWORK</a> is the actual length of <a class="arg" href="../F08/f08kef.xml#WORK">WORK1</a>.  The parameter WORK2 is no longer required.</div><h3 class="standard"><a class="sec" name="F01MAF" id="F01MAF"/>F01MAF</h3><div class="paramtext">
Withdrawn at Mark 19.<br/>
Replaced by <a class="rout" href="../F11/f11jaf.xml">F11JAF</a>.</div><div class="paramtext">Existing programs should be modified to call <a class="rout" href="../F11/f11jaf.xml">F11JAF</a>.  The interfaces are significantly different and therefore precise details of a replacement call cannot be given.  Please consult the appropriate routine document.</div><h3 class="standard"><a class="sec" name="F01NAF" id="F01NAF"/>F01NAF</h3><div class="paramtext">
Withdrawn at Mark 17.<br/>
Replaced by <a class="rout" href="../F07/f07brf.xml">F07BRF (ZGBTRF)</a>.</div><pre class="verbatim">
Old: CALL F01NAF(N,ML,MU,A,NRA,TOL,IN,SCALE,IFAIL)
New: CALL ZGBTRF(N,N,ML,MU,A,NRA,IN,IFAIL)</pre>
<div class="paramtext">where the parameter TOL and array SCALE are no longer required.  The input matrix must be stored using the same scheme as for <a class="wdrn" href="../GENINT/replace.xml#F01NAF">F01NAF</a>, except in rows <m:math>
<m:maction actiontype="link" dsi:type="simple" dsi:href="../F07/f07brf.xml#KL"><m:mi mathcolor="#EE0000" mathvariant="bold">ML</m:mi></m:maction> 
 <m:mo>+</m:mo>
 <m:mn>1</m:mn>
</m:math>&#160;to <m:math>
 <m:mn>2</m:mn>
 <m:mo>&#215;</m:mo>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../F07/f07brf.xml#KL"><m:mi mathcolor="#EE0000" mathvariant="bold">ML</m:mi></m:maction>
 <m:mo>+</m:mo> 
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../F07/f07brf.xml#KU"><m:mi mathcolor="#EE0000" mathvariant="bold">MU</m:mi></m:maction>
 <m:mo>+</m:mo>
 <m:mn>1</m:mn>
</m:math>&#160;of <a class="arg" href="../F07/f07brf.xml#AB">A</a> instead of rows 1 to <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../F07/f07brf.xml#KL"><m:mi mathcolor="#EE0000" mathvariant="bold">ML</m:mi></m:maction>
 <m:mo>+</m:mo>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../F07/f07brf.xml#KU"><m:mi mathcolor="#EE0000" mathvariant="bold">MU</m:mi></m:maction>
 <m:mo>+</m:mo>
 <m:mn>1</m:mn>
</m:math>.  In <a class="rout" href="../F07/f07brf.xml">F07BRF (ZGBTRF)</a>, the value returned in <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../F07/f07brf.xml#IPIV"><m:mi mathcolor="#EE0000" mathvariant="bold">IN</m:mi></m:maction><m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F07/f07brf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>&#160;has no significance as an indicator of near-singularity of the matrix.</div><h3 class="standard"><a class="sec" name="F01QAF" id="F01QAF"/>F01QAF</h3><div class="paramtext">
Withdrawn at Mark 15.<br/>
Replaced by <a class="rout" href="../F08/f08aef.xml">F08AEF (DGEQRF)</a>.</div><pre class="verbatim">
Old: CALL F01QAF(M,N,A,NRA,C,NRC,Z,IFAIL)
New: CALL DGEQRF(M,N,A,NRA,Z,WORK,LWORK,INFO)</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08aef.xml#WORK">WORK</a> is a real array of length at least <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08aef.xml#LWORK"><m:mi mathcolor="#EE0000" mathvariant="bold">LWORK</m:mi></m:maction></m:mfenced>
</m:math>.  The parameters C and NRC are no longer required.</div>
<div class="paramtext">Note that the representation of the matrix <m:math>
 <m:mi>Q</m:mi>
</m:math>&#160;is not identical, but subsequent calls to routines <a class="rout" href="../F08/f08aff.xml">F08AFF (DORGQR)</a> and <a class="rout" href="../F08/f08agf.xml">F08AGF (DORMQR)</a> may be used to obtain <m:math>
 <m:mi>Q</m:mi>
</m:math>&#160;explicitly and to transform by <m:math>
 <m:mi>Q</m:mi>
</m:math>&#160;or <m:math>
 <m:msup><m:mi>Q</m:mi><m:mi mathvariant="normal">T</m:mi></m:msup>
</m:math>&#160;respectively.</div><h3 class="standard"><a class="sec" name="F01QBF" id="F01QBF"/>F01QBF</h3><div class="paramtext">
Withdrawn at Mark 15.<br/>
Replaced by <a class="rout" href="../F01/f01qjf.xml">F01QJF</a>.</div><pre class="verbatim">
Old: CALL F01QBF(M,N,A,NRA,C,NRC,WORK,IFAIL)
New: CALL F06QFF('General',M,N,A,NRA,C,NRC)
     CALL F01QJF(M,N,C,NRC,WORK,IFAIL)</pre>
<div class="paramtext">The call to <a class="rout" href="../F06/f06qff.xml">F06QFF</a> simply copies the leading <a class="arg" href="../F01/f01qjf.xml#M">M</a> by <a class="arg" href="../F01/f01qjf.xml#N">N</a> part of <a class="arg" href="../F01/f01qjf.xml#A">A</a> to <a class="arg" href="../F06/f06qff.xml#B">C</a>.  This may be omitted if it is desired to use the same arrays for <a class="arg" href="../F06/f06qff.xml#A">A</a> and <a class="arg" href="../F06/f06qff.xml#B">C</a>.  Note that the representation of the orthogonal matrix <m:math>
 <m:mi>Q</m:mi>
</m:math>&#160;is not identical, but following <a class="rout" href="../F01/f01qjf.xml">F01QJF</a> routine <a class="rout" href="../F01/f01qkf.xml">F01QKF</a> may be used to form <m:math>
 <m:mi>Q</m:mi>
</m:math>.</div><h3 class="standard"><a class="sec" name="F01QCF" id="F01QCF"/>F01QCF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08aef.xml">F08AEF (DGEQRF)</a>.</div><pre class="verbatim">
Old: CALL F01QCF(M,N,A,LDA,ZETA,IFAIL)
New: CALL DGEQRF(M,N,A,LDA,ZETA,WORK,LWORK,INFO)</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08aef.xml#WORK">WORK</a> is a <span class="bitalic">double precision</span> array of length at least <m:math> <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08aef.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:math>, and <a class="arg" href="../F08/f08aef.xml#LWORK">LWORK</a> is its actual length.</div>
<div class="paramtext">The subdiagonal elements of <a class="arg" href="../F08/f08aef.xml#A">A</a> and the elements of <a class="arg" href="../F08/f08aef.xml#TAU">ZETA</a> returned by <a class="rout" href="../F08/f08aef.xml">F08AEF (DGEQRF)</a> are not the same as those returned by <a class="wdrn" href="../GENINT/replace.xml#F01QCF">F01QCF</a>.  Subsequent calls to <a class="wdrn" href="../GENINT/replace.xml#F01QDF">F01QDF</a> or <a class="wdrn" href="../GENINT/replace.xml#F01QEF">F01QEF</a> must also be replaced by calls to <a class="rout" href="../F08/f08aff.xml">F08AFF (DORGQR)</a> or <a class="rout" href="../F08/f08agf.xml">F08AGF (DORMQR)</a> as shown below.</div><h3 class="standard"><a class="sec" name="F01QDF" id="F01QDF"/>F01QDF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08agf.xml">F08AGF (DORMQR)</a>.</div><div class="paramtext">The following replacement is valid only if the previous call to <a class="wdrn" href="../GENINT/replace.xml#F01QCF">F01QCF</a> has been replaced by a call to <a class="rout" href="../F08/f08aef.xml">F08AEF (DGEQRF)</a> as shown above.  It also assumes that the second argument of <a class="wdrn" href="../GENINT/replace.xml#F01QDF">F01QDF</a> (WHERET) is 'S', which is appropriate if the contents of <a class="arg" href="../F08/f08agf.xml#A">A</a> and <a class="arg" href="../F08/f08agf.xml#TAU">ZETA</a> have not been changed after the call of <a class="wdrn" href="../GENINT/replace.xml#F01QCF">F01QCF</a>.</div>
<pre class="verbatim">
Old: CALL F01QDF(TRANS,'S',M,N,A,LDA,ZETA,NCOLB,B,LDB,WORK,IFAIL)
New: CALL DORMQR('L',TRANS,M,NCOLB,N,A,LDA,ZETA,B,LDB,WORK,LWORK,INFO)</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08agf.xml#LWORK">LWORK</a> is the actual length of <a class="arg" href="../F08/f08agf.xml#WORK">WORK</a>.</div><h3 class="standard"><a class="sec" name="F01QEF" id="F01QEF"/>F01QEF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08aff.xml">F08AFF (DORGQR)</a>.</div><div class="paramtext">The following replacement is valid only if the previous call to <a class="wdrn" href="../GENINT/replace.xml#F01QCF">F01QCF</a> has been replaced by a call to <a class="rout" href="../F08/f08aef.xml">F08AEF (DGEQRF)</a> as shown above.  It also assumes that the first argument of <a class="wdrn" href="../GENINT/replace.xml#F01QEF">F01QEF</a> (WHERET) is 'S', which is appropriate if the contents of <a class="arg" href="../F08/f08aff.xml#A">A</a> and <a class="arg" href="../F08/f08aff.xml#TAU">ZETA</a> have not been changed after the call of <a class="wdrn" href="../GENINT/replace.xml#F01QCF">F01QCF</a>.</div>
<pre class="verbatim">
Old: CALL F01QEF('S',M,N,NCOLQ,A,LDA,ZETA,WORK,IFAIL)
New: CALL DORGQR(M,NCOLQ,N,A,LDA,ZETA,WORK,LWORK,INFO)</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08aff.xml#LWORK">LWORK</a> is the actual length of <a class="arg" href="../F08/f08aff.xml#WORK">WORK</a>.</div><h3 class="standard"><a class="sec" name="F01QFF" id="F01QFF"/>F01QFF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08bef.xml">F08BEF (DGEQPF)</a>.</div><div class="paramtext">The following replacement assumes that the 1st argument of <a class="wdrn" href="../GENINT/replace.xml#F01QFF">F01QFF</a> (PIVOT) is 'C'.  There is no direct replacement if PIVOT <m:math>
 <m:mo>=</m:mo>
</m:math>&#160;'S'.</div>
<pre class="verbatim">
Old: CALL F01QFF('C',M,N,A,LDA,ZETA,PERM,WORK,IFAIL)
New: DO 10 I = 1, N
        PERM(I) = 0
  10 CONTINUE
     CALL DGEQPF(M,N,A,LDA,PERM,ZETA,WORK,INFO)</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08bef.xml#WORK">WORK</a> is a <span class="bitalic">double precision</span> array of length at least <m:math>
 <m:mfenced separators=""><m:mn>3</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08bef.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>&#160;(<a class="wdrn" href="../GENINT/replace.xml#F01QFF">F01QFF</a> only requires <a class="arg" href="../F08/f08bef.xml#WORK">WORK</a> to be of length <m:math>
 <m:mfenced separators=""><m:mn>2</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08bef.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>).</div>
<div class="paramtext">The subdiagonal elements of <a class="arg" href="../F08/f08bef.xml#A">A</a> and the elements of <a class="arg" href="../F08/f08bef.xml#TAU">ZETA</a> returned by <a class="rout" href="../F08/f08bef.xml">F08BEF (DGEQPF)</a> are not the same as those returned by <a class="wdrn" href="../GENINT/replace.xml#F01QFF">F01QFF</a>.  Subsequent calls to <a class="wdrn" href="../GENINT/replace.xml#F01QDF">F01QDF</a> or <a class="wdrn" href="../GENINT/replace.xml#F01QEF">F01QEF</a> must also be replaced by calls to <a class="rout" href="../F08/f08agf.xml">F08AGF (DORMQR)</a> or <a class="rout" href="../F08/f08aff.xml">F08AFF (DORGQR)</a> as shown above.  Note also that the array <a class="arg" href="../F08/f08bef.xml#JPVT">PERM</a> returned by <a class="rout" href="../F08/f08bef.xml">F08BEF (DGEQPF)</a> holds details of the interchanges in a different form than that returned by <a class="wdrn" href="../GENINT/replace.xml#F01QFF">F01QFF</a>.</div><h3 class="standard"><a class="sec" name="F01RCF" id="F01RCF"/>F01RCF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08asf.xml">F08ASF (ZGEQRF)</a>.</div><pre class="verbatim">
Old: CALL F01RCF(M,N,A,LDA,THETA,IFAIL)
New: CALL ZGEQRF(M,N,A,LDA,THETA,WORK,LWORK,INFO)</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08asf.xml#WORK">WORK</a> is a <span class="bitalic">complex*16</span> array of length at least <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08asf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>, and <a class="arg" href="../F08/f08asf.xml#LWORK">LWORK</a> is its actual length.</div>
<div class="paramtext">The subdiagonal elements of <a class="arg" href="../F08/f08asf.xml#A">A</a> and the elements of <a class="arg" href="../F08/f08asf.xml#TAU">THETA</a> returned by <a class="rout" href="../F08/f08asf.xml">F08ASF (ZGEQRF)</a>  are not the same as those returned by <a class="wdrn" href="../GENINT/replace.xml#F01RCF">F01RCF</a>.  Subsequent calls to <a class="wdrn" href="../GENINT/replace.xml#F01RDF">F01RDF</a> or <a class="wdrn" href="../GENINT/replace.xml#F01REF">F01REF</a> must also be replaced by calls to <a class="rout" href="../F08/f08auf.xml">F08AUF (ZUNMQR)</a> or <a class="rout" href="../F08/f08atf.xml">F08ATF (ZUNGQR)</a> as shown below.</div><h3 class="standard"><a class="sec" name="F01RDF" id="F01RDF"/>F01RDF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08auf.xml">F08AUF (ZUNMQR)</a>.</div><div class="paramtext">The following replacement is valid only if the previous call to <a class="wdrn" href="../GENINT/replace.xml#F01RCF">F01RCF</a> has been replaced by a call to <a class="rout" href="../F08/f08asf.xml">F08ASF (ZGEQRF)</a> as shown above.  It also assumes that the second argument of <a class="wdrn" href="../GENINT/replace.xml#F01RDF">F01RDF</a> (WHERET) is 'S', which is appropriate if the contents of <a class="arg" href="../F08/f08auf.xml#A">A</a> and <a class="arg" href="../F08/f08auf.xml#TAU">THETA</a> have not been changed after the call of <a class="wdrn" href="../GENINT/replace.xml#F01RCF">F01RCF</a>.</div>
<pre class="verbatim">
Old: CALL F01RDF(TRANS,'S',M,N,A,LDA,THETA,NCOLB,B,LDB,WORK,IFAIL)
New: CALL ZUNMQR('L',TRANS,M,NCOLB,N,A,LDA,THETA,B,LDB,WORK,LWORK,
    +            INFO)</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08auf.xml#LWORK">LWORK</a> is the actual length of <a class="arg" href="../F08/f08auf.xml#WORK">WORK</a>.</div><h3 class="standard"><a class="sec" name="F01REF" id="F01REF"/>F01REF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08atf.xml">F08ATF (ZUNGQR)</a>.</div><div class="paramtext">The following replacement is valid only if the previous call to <a class="wdrn" href="../GENINT/replace.xml#F01RCF">F01RCF</a> has been replaced by a call to <a class="rout" href="../F08/f08asf.xml">F08ASF (ZGEQRF)</a> as shown above.  It also assumes that the first argument of <a class="wdrn" href="../GENINT/replace.xml#F01REF">F01REF</a> <m:math><m:mi mathvariant="normal">WHERET</m:mi><m:mo>=</m:mo><m:mtext>'S'</m:mtext></m:math>, which is appropriate if the contents of <a class="arg" href="../F08/f08atf.xml#A">A</a> and <a class="arg" href="../F08/f08atf.xml#TAU">THETA</a> have not been changed after the call of <a class="wdrn" href="../GENINT/replace.xml#F01RCF">F01RCF</a>.</div>
<pre class="verbatim">
Old: CALL F01REF('S',M,N,NCOLQ,A,LDA,THETA,WORK,IFAIL)
New: CALL ZUNGQR(M,NCOLQ,N,A,LDA,THETA,WORK,LWORK,INFO)</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08atf.xml#LWORK">LWORK</a> is the actual length of <a class="arg" href="../F08/f08atf.xml#WORK">WORK</a>.</div><h3 class="standard"><a class="sec" name="F01RFF" id="F01RFF"/>F01RFF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08bsf.xml">F08BSF (ZGEQPF)</a>.</div><div class="paramtext">The following replacement assumes that the first argument of <a class="wdrn" href="../GENINT/replace.xml#F01RFF">F01RFF</a> (PIVOT) is 'C'.  There is no direct replacement if <m:math><m:mi mathvariant="normal">PIVOT</m:mi><m:mo>=</m:mo><m:mtext>'S'</m:mtext></m:math>.</div>
<pre class="verbatim">
Old: CALL F01RFF('C',M,N,A,LDA,THETA,PERM,WORK,IFAIL)
New: DO 10 I = 1, N
        PERM(I) = 0
  10 CONTINUE
     CALL ZGEQPF(M,N,A,LDA,PERM,THETA,CWORK,WORK,INFO)</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08bsf.xml#WORK">CWORK</a> is a <span class="bitalic">complex*16</span> array of length at least <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08bsf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>.</div>
<div class="paramtext">The subdiagonal elements of <a class="arg" href="../F08/f08bsf.xml#A">A</a> and the elements of <a class="arg" href="../F08/f08bsf.xml#TAU">THETA</a> returned by <a class="rout" href="../F08/f08bsf.xml">F08BSF (ZGEQPF)</a> are not the same as those returned by <a class="wdrn" href="../GENINT/replace.xml#F01RFF">F01RFF</a>.  Subsequent calls to <a class="wdrn" href="../GENINT/replace.xml#F01RDF">F01RDF</a> or <a class="wdrn" href="../GENINT/replace.xml#F01REF">F01REF</a> must also be replaced by calls to <a class="rout" href="../F08/f08auf.xml">F08AUF (ZUNMQR)</a> or <a class="rout" href="../F08/f08atf.xml">F08ATF (ZUNGQR)</a> as shown above.  Note also that the array <a class="arg" href="../F08/f08bsf.xml#JPVT">PERM</a> returned by <a class="rout" href="../F08/f08bsf.xml">F08BSF (ZGEQPF)</a> holds details of the interchanges in a different form than that returned by <a class="wdrn" href="../GENINT/replace.xml#F01RFF">F01RFF</a>.</div><h2 class="standard"><a class="sec" name="F02" id="F02"/>F02 &#8211; Eigenvalues and Eigenvectors</h2><h3 class="standard"><a class="sec" name="F02AAF" id="F02AAF"/>F02AAF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08faf.xml">F08FAF (DSYEV)</a>.</div><pre class="verbatim">
Old: CALL F02AAF(A,IA,N,R,E,IFAIL)
New: CALL DSYEV('N','L',N,A,IA,R,WORK,LWORK,INFO)
     IF (INFO.NE.0) THEN
       ...
</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08faf.xml#WORK">WORK</a> is a <span class="bitalic">double precision</span> array of length at least <m:math><m:mfenced separators=""><m:mn>3</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08faf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>&#160;and <a class="arg" href="../F08/f08faf.xml#LWORK">LWORK</a> is its actual length.  Larger values of <a class="arg" href="../F08/f08faf.xml#LWORK">LWORK</a>, up to some optimal value, may improve performance.</div><h3 class="standard"><a class="sec" name="F02ABF" id="F02ABF"/>F02ABF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08faf.xml">F08FAF (DSYEV)</a>.</div><pre class="verbatim">
Old: CALL F02ABF(A,IA,N,R,V,IV,E,IFAIL)
New: CALL F06QFF('L',N,N,A,IA,V,IV)
     CALL DSYEV('V','L',N,V,IV,R,WORK,LWORK,INFO)
     IF (INFO.NE.0) THEN
       ...
</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08faf.xml#WORK">WORK</a> is a <span class="bitalic">double precision</span> array of length at least <m:math><m:mfenced separators=""><m:mn>3</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08faf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:math>&#160;and <a class="arg" href="../F08/f08faf.xml#LWORK">LWORK</a> is its actual length.  Larger values of <a class="arg" href="../F08/f08faf.xml#LWORK">LWORK</a>, up to some optimal value, may improve performance. If <a class="wdrn" href="../GENINT/replace.xml#F02ABF">F02ABF</a> was called with the same array supplied for V and A, then the call to <a class="rout" href="../F06/f06qff.xml">F06QFF</a> may be omitted.</div><h3 class="standard"><a class="sec" name="F02ADF" id="F02ADF"/>F02ADF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08saf.xml">F08SAF (DSYGV)</a>.</div><pre class="verbatim">
Old: CALL F02ADF(A,IA,B,IB,N,R,DE,IFAIL)
New: CALL DSYGV(1,'N','U',N,A,IA,B,IB,R,WORK,LWORK,INFO)
     IF (INFO.NE.0) THEN
       ...
</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08saf.xml#WORK">WORK</a> is a <span class="bitalic">double precision</span> array of length at least <m:math><m:mfenced separators=""><m:mn>3</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08saf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:math>&#160;and <a class="arg" href="../F08/f08saf.xml#LWORK">LWORK</a> is its actual length.  Larger values of <a class="arg" href="../F08/f08saf.xml#LWORK">LWORK</a>, up to some optimal value, may improve performance.</div>
<div class="paramtext">Note that the call to <a class="rout" href="../F08/f08saf.xml">F08SAF (DSYGV)</a> will overwrite the upper triangles of the arrays <a class="arg" href="../F08/f08saf.xml#A">A</a> and <a class="arg" href="../F08/f08saf.xml#B">B</a> and leave the subdiagonal elements unchanged, whereas the call to <a class="wdrn" href="../GENINT/replace.xml#F02ADF">F02ADF</a> overwrites the lower triangle and leaves the elements above the diagonal unchanged.</div><h3 class="standard"><a class="sec" name="F02AEF" id="F02AEF"/>F02AEF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08saf.xml">F08SAF (DSYGV)</a>.</div><pre class="verbatim">
Old: CALL F02AEF(A,IA,B,IB,N,R,V,IV,DL,E,IFAIL)
New: CALL F06QFF('U',N,N,A,IA,V,IV)
     CALL DSYGV(1,'V','U',N,V,IV,B,IB,R,WORK,LWORK,INFO)
     IF (INFO.NE.0) THEN
       ...</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08saf.xml#WORK">WORK</a> is a <span class="bitalic">double precision</span> array of length at least <m:math><m:mfenced separators=""><m:mn>3</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08saf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:math>&#160;and <a class="arg" href="../F08/f08saf.xml#LWORK">LWORK</a> is its actual length.</div>
<div class="paramtext">Note that the call to <a class="rout" href="../F08/f08saf.xml">F08SAF (DSYGV)</a> will overwrite the upper triangle of the array <a class="arg" href="../F08/f08saf.xml#B">B</a> and leave the subdiagonal elements unchanged, whereas the call to <a class="wdrn" href="../GENINT/replace.xml#F02AEF">F02AEF</a> overwrites the lower triangle and leaves the elements above the diagonal unchanged.  The call to <a class="rout" href="../F06/f06qff.xml">F06QFF</a> copies A to <a class="arg" href="../F08/f08saf.xml#A">V</a>, so <a class="arg" href="../F08/f08saf.xml#A">A</a> is left unchanged.  If <a class="wdrn" href="../GENINT/replace.xml#F02AEF">F02AEF</a> was called with the same array supplied for V and A, then the call to <a class="rout" href="../F06/f06qff.xml">F06QFF</a> may be omitted.</div><h3 class="standard"><a class="sec" name="F02AFF" id="F02AFF"/>F02AFF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08naf.xml">F08NAF (DGEEV)</a>.</div><pre class="verbatim">
Old: CALL F02AFF(A,IA,N,RR,RI,INTGER,IFAIL)
New: CALL DGEEV('N','N',N,A,IA,RR,RI,VR,1,VI,1,
    +            WORK,LWORK,INFO)
     IF (INFO.EQ.0) THEN
     ....
</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08naf.xml#VL">VR</a> and <a class="arg" href="../F08/f08naf.xml#VR">VI</a> are dummy arrays of length (1) (not used in this call), <a class="arg" href="../F08/f08naf.xml#WORK">WORK</a> is a <span class="bitalic">double precision</span> array of length at least <m:math><m:mfenced separators=""><m:mn>4</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08naf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:math>&#160;and <a class="arg" href="../F08/f08naf.xml#LWORK">LWORK</a> is its actual length; the iteration counts (returned by <a class="wdrn" href="../GENINT/replace.xml#F02AFF">F02AFF</a> in the array INTGER) are not available from <a class="rout" href="../F08/f08naf.xml">F08NAF (DGEEV)</a>.  Larger values of <a class="arg" href="../F08/f08naf.xml#LWORK">LWORK</a>, up to some optimal value, may improve performance.</div><h3 class="standard"><a class="sec" name="F02AGF" id="F02AGF"/>F02AGF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08naf.xml">F08NAF (DGEEV)</a>.</div><pre class="verbatim">
Old: CALL F02AGF(A,IA,N,RR,RI,VR,IVR,VI,IVI,INTGER,IFAIL)
New: CALL DGEEV(('N','V',N,A,IA,RR,RI,VL,LDVL,VR1,LDVR1,
    +             WORK,LWORK,INFO)
     IF (INFO.EQ.0) THEN
C      Eigenvector infomation is stored differently in VR1
C      VR(j)=VR1(j) if RI(j) = 0.0
C      VR(j)=VR1(j) and VI(j)=VR1(j+1) and
C      VR(j+1)=VR1(j) and VI(j+1) = - VR1(j+1) if RI(j)/= (not equals) 0 and
C      RI(j) = -RI(j+1)
     ....
</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08naf.xml#WORK">WORK</a> is a <span class="bitalic">double precision</span> array of length at least <m:math><m:mfenced separators=""><m:mn>4</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08naf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:math>&#160;and <a class="arg" href="../F08/f08naf.xml#LWORK">LWORK</a> is its actual length; the iteration counts (returned by <a class="wdrn" href="../GENINT/replace.xml#F02AGF">F02AGF</a> in the array INTGER) are not available from <a class="rout" href="../F08/f08naf.xml">F08NAF (DGEEV)</a>.   Larger values of <a class="arg" href="../F08/f08naf.xml#LWORK">LWORK</a>, up to some optimal value, may improve performance.</div><h3 class="standard"><a class="sec" name="F02AJF" id="F02AJF"/>F02AJF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08nnf.xml">F08NNF (ZGEEV)</a>.</div><div class="paramtext">
<pre class="verbatim">
Old: CALL F02AJF(AR,IAR,AI,IAI,N,RR,RI,INTGER,IFAIL)
New: DO 20 J = 1, N
        DO 10 I = 1, N
           A(I,J) = <span class="bitalic">cmplx</span>(AR(I,J),AI(I,J))
  10    CONTINUE
  20 CONTINUE
     CALL ZGEEV('N','N',N,A,LDA,R,VL,1,VR,1,WORK,
    +            LWORK,RWORK,INFO)
     IF (INFO.EQ.0) THEN 
       DO 30 I = 1, N
          RR(I) = <span class="bitalic">real</span>(R(I))
          RI(I) = <span class="bitalic">imag</span>(R(I))
 30    CONTINUE
       ....
</pre>
where <a class="arg" href="../F08/f08nnf.xml#A">A</a> is a <span class="bitalic">complex*16</span> array of dimension <m:math><m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08nnf.xml#LDA"><m:mi mathcolor="#EE0000" mathvariant="bold">LDA</m:mi></m:maction><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08nnf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:math>, <a class="arg" href="../F08/f08nnf.xml#LDA">LDA</a> must be at least <m:math><m:mrow><m:mi>max</m:mi><m:mspace width="0.125em"/><m:mfenced separators=""><m:mn>1</m:mn><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08nnf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:mrow></m:math>, <a class="arg" href="../F08/f08nnf.xml#W">R</a> is a <span class="bitalic">complex*16</span> array of dimension (<a class="arg" href="../F08/f08nnf.xml#N">N</a>), <a class="arg" href="../F08/f08nnf.xml#VR">VR</a> and <a class="arg" href="../F08/f08nnf.xml#VL">VL</a> are dummy <span class="bitalic">complex*16</span> array of length (1) (not used in this call), <a class="arg" href="../F08/f08nnf.xml#RWORK">RWORK</a> is a <span class="bitalic">double precision</span> array of length at least <m:math><m:mfenced separators=""><m:mn>2</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08nnf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:math>, <a class="arg" href="../F08/f08nnf.xml#WORK">WORK</a> is a <span class="bitalic">complex*16</span> array of length at least <m:math><m:mfenced separators=""><m:mn>2</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08nnf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:math>&#160;and <a class="arg" href="../F08/f08nnf.xml#LWORK">LWORK</a> is its actual length. Larger values of <a class="arg" href="../F08/f08nnf.xml#LWORK">LWORK</a>, up to some optimal value, may improve performance. The iteration counts (returned by <a class="wdrn" href="../GENINT/replace.xml#F02AJF">F02AJF</a> in the array INTGER) are not available from <a class="rout" href="../F08/f08nnf.xml">F08NNF (ZGEEV)</a>.</div><h3 class="standard"><a class="sec" name="F02AKF" id="F02AKF"/>F02AKF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08nnf.xml">F08NNF (ZGEEV)</a>.</div><div class="paramtext">
<pre class="verbatim">
Old: CALL F02AKF(AR,IAR,AI,IAI,N,RR,RI,VR,IVR,VI,IVI,INTGER,IFAIL)
New: DO 20 J = 1, N
        DO 10 I = 1, N
           A(I,J) = <span class="bitalic">cmplx</span>(AR(I,J),AI(I,J))
  10    CONTINUE
  20 CONTINUE
     CALL ZGEEV('N','V',N,A,LDA,R,VL,LDVL,VR1,LDVR,
    +            WORK,LWORK,RWORK,INFO)
     IF (INFO.EQ.0) THEN
       DO 40 J = 1, N
          RR(J) = <span class="bitalic">real</span>(R(J))
          RI(J) = <span class="bitalic">imag</span>(R(J))
          DO 30 I = 1, N
             VR(I,J) = <span class="bitalic">real</span>(VR1(I,J))
             VI(I,J) = <span class="bitalic">imag</span>(VR1(I,J))
  30      CONTINUE
  40   CONTINUE
       ....</pre>
where <a class="arg" href="../F08/f08nnf.xml#A">A</a> is a <span class="bitalic">complex*16</span> array of dimension <m:math><m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08nnf.xml#LDA"><m:mi mathcolor="#EE0000" mathvariant="bold">LDA</m:mi></m:maction><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08nnf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:math>, <a class="arg" href="../F08/f08nnf.xml#LDA">LDA</a> is at least <m:math><m:mrow><m:mi>max</m:mi><m:mspace width="0.125em"/><m:mfenced separators=""><m:mn>1</m:mn><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08nnf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:mrow></m:math>, <a class="arg" href="../F08/f08nnf.xml#W">R</a> is a <span class="bitalic">complex*16</span> array of length (<a class="arg" href="../F08/f08nnf.xml#N">N</a>), <a class="arg" href="../F08/f08nnf.xml#VL">VL</a> is a <span class="bitalic">complex*16</span> array of dimension (1,1), <a class="arg" href="../F08/f08nnf.xml#LDVL">LDVL</a> is 1, <a class="arg" href="../F08/f08nnf.xml#VR">VR1</a> is a <span class="bitalic">complex*16</span> array of dimension <m:math><m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08nnf.xml#LDVR"><m:mi mathcolor="#EE0000" mathvariant="bold">LDVR</m:mi></m:maction><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08nnf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:math>, <a class="arg" href="../F08/f08nnf.xml#LDVR">LDVR</a> is at least <m:math><m:mrow><m:mi>max</m:mi><m:mspace width="0.125em"/><m:mfenced separators=""><m:mn>1</m:mn><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08nnf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:mrow></m:math>, <a class="arg" href="../F08/f08nnf.xml#RWORK">RWORK</a> is a <span class="bitalic">double precision</span> array of length at least <m:math><m:mfenced separators=""><m:mn>2</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08nnf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:math>, <a class="arg" href="../F08/f08nnf.xml#WORK">WORK</a> is a <span class="bitalic">complex*16</span> array of length at least <m:math><m:mfenced separators=""><m:mn>2</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08nnf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:math>&#160;and <a class="arg" href="../F08/f08nnf.xml#LWORK">LWORK</a> is its actual length.  Larger values of <a class="arg" href="../F08/f08nnf.xml#LWORK">LWORK</a>, up to some optimal value, may improve performance. The iteration counts (returned by <a class="wdrn" href="../GENINT/replace.xml#F02AKF">F02AKF</a> in the array INTGER) are not available from <a class="rout" href="../F08/f08nnf.xml">F08NNF (ZGEEV)</a>.</div><h3 class="standard"><a class="sec" name="F02AMF" id="F02AMF"/>F02AMF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08jef.xml">F08JEF (DSTEQR)</a>.</div><pre class="verbatim">
Old: CALL F02AMF(N,EPS,D,E,V,IV,IFAIL)
New: CALL DSTEQR('V',N,D,E(2),V,IV,WORK,INFO)</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08jef.xml#WORK">WORK</a> is a <span class="bitalic">double precision</span> array of length at least <m:math>
 <m:mfenced separators="">
  <m:mn>2</m:mn>
  <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08jef.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction><m:mo>-</m:mo><m:mn>1</m:mn></m:mfenced>
 </m:mfenced>
</m:math>.</div><h3 class="standard"><a class="sec" name="F02ANF" id="F02ANF"/>F02ANF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08psf.xml">F08PSF (ZHSEQR)</a>.</div><pre class="verbatim">
Old: CALL F02ANF(N,EPS,HR,IHR,HI,IHI,RR,RI,IFAIL)
New: DO 20 J = 1, N
        DO 10 I = 1, N
           H(I,J) = <span class="bitalic">cmplx</span>(HR(I,J),HI(I,J))
  10    CONTINUE
  20 CONTINUE
     CALL ZHSEQR('E','N',N,1,N,H,IH,R,Z,1,WORK,1,INFO)
     DO 30 I = 1, N
        RR(I) = <span class="bitalic">real</span>(R(I))
        RI(I) = <span class="bitalic">imag</span>(R(I))
  30 CONTINUE</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08psf.xml#H">H</a> is a <span class="bitalic">complex*16</span> array of dimension <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08psf.xml#LDH"><m:mi mathcolor="#EE0000" mathvariant="bold">IH</m:mi></m:maction><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08psf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>, <a class="arg" href="../F08/f08psf.xml#W">R</a> is a <span class="bitalic">complex*16</span> array of length (<a class="arg" href="../F08/f08psf.xml#N">N</a>), <a class="arg" href="../F08/f08psf.xml#Z">Z</a> is a dummy <span class="bitalic">complex*16</span> array of length (1) (not used in this call), and <a class="arg" href="../F08/f08psf.xml#WORK">WORK</a> is a <span class="bitalic">complex*16</span> array of length at least <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08psf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>.</div><h3 class="standard"><a class="sec" name="F02APF" id="F02APF"/>F02APF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08pef.xml">F08PEF (DHSEQR)</a>.</div><pre class="verbatim">
Old: CALL F02APF(N,EPS,H,IH,RR,RI,ICNT,IFAIL)
New: CALL DHSEQR('E','N',N,1,N,H,IH,RR,RI,Z,1,WORK,1,INFO)</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08pef.xml#Z">Z</a> is a dummy <span class="bitalic">double precision</span> array of length (1) (not used in this call), and <a class="arg" href="../F08/f08pef.xml#WORK">WORK</a> is a <span class="bitalic">double precision</span> array of length at least <m:math>
 <m:mfenced separators=""><m:mn>3</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08pef.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>; the iteration counts (returned by <a class="wdrn" href="../GENINT/replace.xml#F02APF">F02APF</a> in the array ICNT) are not available from <a class="rout" href="../F08/f08pef.xml">F08PEF (DHSEQR)</a>.</div><h3 class="standard"><a class="sec" name="F02AQF" id="F02AQF"/>F02AQF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08pef.xml">F08PEF (DHSEQR)</a> and <a class="rout" href="../F08/f08qkf.xml">F08QKF (DTREVC)</a>.</div><pre class="verbatim">
Old: CALL F02AQF(N,K,L,EPS,H,IH,V,IV,RR,RI,INTGER,IFAIL)
New: CALL DHSEQR('S','V',N,K,L,H,IH,RR,RI,V,IV,WORK,1,INFO)
     CALL DTREVC('R','O',SELECT,N,H,IH,V,IV,V,IV,N,M,WORK,INFO)</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08qkf.xml#SELECT">SELECT</a> is a dummy logical array of length (1) (not used in this call), and <a class="arg" href="../F08/f08qkf.xml#WORK">WORK</a> is a <span class="bitalic">double precision</span> array of length at least <m:math>
 <m:mfenced separators=""><m:mn>3</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08qkf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>; the iteration counts (returned by <a class="wdrn" href="../GENINT/replace.xml#F02AQF">F02AQF</a> in the array INTGER) are not available from <a class="rout" href="../F08/f08pef.xml">F08PEF (DHSEQR)</a>; <a class="arg" href="../F08/f08qkf.xml#M">M</a> is an integer which is set to <a class="arg" href="../F08/f08qkf.xml#N">N</a> by <a class="rout" href="../F08/f08qkf.xml">F08QKF (DTREVC)</a>.</div><h3 class="standard"><a class="sec" name="F02ARF" id="F02ARF"/>F02ARF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08psf.xml">F08PSF (ZHSEQR)</a> and <a class="rout" href="../F08/f08qxf.xml">F08QXF (ZTREVC)</a>.</div><pre class="verbatim">
Old: CALL F02ARF(N,K,L,EPS,INTGER,HR,IHR,HI,IHI,RR,RI,VR,IVR,VI,
    +            IVI, IFAIL)
New: DO 20 J = 1, N
        DO 10 I = 1, N
           H(I,J) = <span class="bitalic">cmplx</span>(HR(I,J),HI(I,J))
  10    CONTINUE
  20 CONTINUE
     CALL ZHSEQR('S','V',N,K,L,H,IH,R,V,IV,WORK,1,INFO)
     CALL ZTREVC('R','O',SELECT,N,H,IH,V,IV,V,IV,N,M,WORK,RWORK,INFO)
     DO 40 J = 1, N
        RR(J) = <span class="bitalic">real</span>(R(J))
        RI(J) = <span class="bitalic">imag</span>(R(J))
        DO 30 I = 1, N
           VR(I,J) = <span class="bitalic">real</span>(V(I,J))
           VI(I,J) = <span class="bitalic">imag</span>(V(I,J))
 30     CONTINUE
 40  CONTINUE</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08qxf.xml#T">H</a> is a <span class="bitalic">complex*16</span> array of dimension <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08qxf.xml#LDT"><m:mi mathcolor="#EE0000" mathvariant="bold">IH</m:mi></m:maction><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08qxf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>, <a class="arg" href="../F08/f08psf.xml#W">R</a> is a <span class="bitalic">complex*16</span> array of length (<a class="arg" href="../F08/f08qxf.xml#N">N</a>), <a class="arg" href="../F08/f08qxf.xml#VR">V</a> is a <span class="bitalic">complex*16</span> array of dimension <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08qxf.xml#LDVR"><m:mi mathcolor="#EE0000" mathvariant="bold">IV</m:mi></m:maction><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08qxf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>, <a class="arg" href="../F08/f08qxf.xml#WORK">WORK</a> is a <span class="bitalic">complex*16</span> array of length at least <m:math>
 <m:mfenced separators=""><m:mn>2</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08qxf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>&#160;and <a class="arg" href="../F08/f08qxf.xml#RWORK">RWORK</a> is a <span class="bitalic">double precision</span> array of length at least <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08qxf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>; <a class="arg" href="../F08/f08qxf.xml#M">M</a> is an integer which is set to <a class="arg" href="../F08/f08qxf.xml#N">N</a> by <a class="rout" href="../F08/f08qxf.xml">F08QXF (ZTREVC)</a>.</div>
<div class="paramtext">If <a class="wdrn" href="../GENINT/replace.xml#F02ARF">F02ARF</a> was preceded by a call to <a class="wdrn" href="../GENINT/replace.xml#F01AMF">F01AMF</a> to reduce a full complex matrix to Hessenberg form, then the call to <a class="wdrn" href="../GENINT/replace.xml#F01AMF">F01AMF</a> must also be replaced by calls to <a class="rout" href="../F08/f08nsf.xml">F08NSF (ZGEHRD)</a> and <a class="rout" href="../F08/f08ntf.xml">F08NTF (ZUNGHR)</a>. <a class="arg" href="../F08/f08qxf.xml#LDT">IH</a> must be <m:math><m:mtext/><m:mo>&#8805;</m:mo><m:mrow><m:mi>max</m:mi><m:mspace width="0.125em"/><m:mfenced separators=""><m:mn>1</m:mn><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08nsf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:mrow></m:math>&#160;and <a class="arg" href="../F08/f08qxf.xml#LDVR">IV</a> must be <m:math><m:mtext/><m:mo>&#8805;</m:mo><m:mrow><m:mi>max</m:mi><m:mspace width="0.125em"/><m:mfenced separators=""><m:mn>1</m:mn><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08psf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:mrow></m:math>.</div><h3 class="standard"><a class="sec" name="F02AVF" id="F02AVF"/>F02AVF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08jff.xml">F08JFF (DSTERF)</a>.</div><pre class="verbatim">
Old: CALL F02AVF(N,EPS,D,E,IFAIL)
New: CALL DSTERF(N,D,E(2),INFO)</pre><h3 class="standard"><a class="sec" name="F02AWF" id="F02AWF"/>F02AWF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08fnf.xml">F08FNF (ZHEEV)</a>.</div><div class="paramtext">
<pre class="verbatim">
Old: CALL F02AWF(AR,IAR,AI,IAI,N,R,WK1,WK2,WK3,IFAIL)
New: DO 20 J = 1, N
        DO 10 I = 1, N
           A(I,J) = <span class="bitalic">cmplx</span>(AR(I,J),AI(I,J))
  10    CONTINUE
  20 CONTINUE
     CALL ZHEEV('N','L',N,A,LDA,R,WORK,LWORK,RWORK,INFO)
     IF (INFO.EQ.0) THEN
     ...
</pre>
where <a class="arg" href="../F08/f08fnf.xml#A">A</a> is a <span class="bitalic">complex*16</span> array of dimension <m:math><m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08fnf.xml#LDA"><m:mi mathcolor="#EE0000" mathvariant="bold">LDA</m:mi></m:maction><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08fnf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:math>, <a class="arg" href="../F08/f08fnf.xml#LDA">LDA</a> is at least <m:math><m:mrow><m:mi>max</m:mi><m:mspace width="0.125em"/><m:mfenced separators=""><m:mn>1</m:mn><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08fnf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:mrow></m:math>&#160;<a class="arg" href="../F08/f08fnf.xml#RWORK">RWORK</a> is a <span class="bitalic">double precision</span> array of length at least <m:math><m:mrow><m:mi>max</m:mi><m:mspace width="0.125em"/><m:mfenced separators=""><m:mn>1</m:mn><m:mo>,</m:mo><m:mrow><m:mn>3</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08fnf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction><m:mo>-</m:mo><m:mn>2</m:mn></m:mrow></m:mfenced></m:mrow></m:math>, <a class="arg" href="../F08/f08fnf.xml#WORK">WORK</a> is a <span class="bitalic">complex*16</span> array of length at least <m:math><m:mfenced separators=""><m:mn>2</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08fnf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:math>&#160;and <a class="arg" href="../F08/f08fnf.xml#LWORK">LWORK</a> is its actual length. Larger values of <a class="arg" href="../F08/f08fnf.xml#LWORK">LWORK</a>, up to some optimal value, may improve performance.</div><h3 class="standard"><a class="sec" name="F02AXF" id="F02AXF"/>F02AXF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08fnf.xml">F08FNF (ZHEEV)</a>.</div><pre class="verbatim">
Old: CALL F02AXF(AR,IAR,AI,IAI,N,R,VR,IVR,VI,IVI,WK1,WK2,WK3,IFAIL)
New: DO 20 J = 1, N
        DO 10 I = 1, N
           A(I,J) = <span class="bitalic">cmplx</span>(AR(I,J),AI(I,J))
  10    CONTINUE
  20 CONTINUE
     CALL F06TFF('L',N,N,A,LDA,V,LDV)
     CALL ZHEEV('V','L',N,V,LDV,R,WORK,LWORK,RWORK,INFO)
     IF (INFO.EQ.0) THEN
       DO 40 J = 1, N
         DO 30 I = 1, N
           VR(I,J) = <span class="bitalic">real</span>(V(I,J))
           VI(I,J) = <span class="bitalic">imag</span>(V(I,J))
  30     CONTINUE
  40   CONTINUE
       ...</pre>
<div class="paramtext">where <a class="arg" href="../F06/f06tff.xml#A">A</a> is a <span class="bitalic">complex*16</span> array of dimension <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F06/f06tff.xml#LDA"><m:mi mathcolor="#EE0000" mathvariant="bold">LDA</m:mi></m:maction><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08fnf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>, 
<a class="arg" href="../F06/f06tff.xml#LDA">LDA</a> is at least max(1,N),
<a class="arg" href="../F08/f08fnf.xml#A">V</a> is a <span class="bitalic">complex*16</span> array of dimension <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08fnf.xml#LDA"><m:mi mathcolor="#EE0000" mathvariant="bold">LDV</m:mi></m:maction><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08fnf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>, 
<a class="arg" href="../F08/f08fnf.xml#LDA">LDV</a> is at least <m:math><m:mrow><m:mi>max</m:mi><m:mspace width="0.125em"/><m:mfenced separators=""><m:mn>1</m:mn><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08fnf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:mrow></m:math>, 
<a class="arg" href="../F08/f08fnf.xml#RWORK">RWORK</a> is a <span class="bitalic">double precision</span> array of length at least <m:math><m:mrow><m:mi>max</m:mi><m:mspace width="0.125em"/><m:mfenced separators=""><m:mn>1</m:mn><m:mo>,</m:mo><m:mrow><m:mn>3</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08fnf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction><m:mo>-</m:mo><m:mn>2</m:mn></m:mrow></m:mfenced></m:mrow></m:math>, 
<a class="arg" href="../F08/f08fnf.xml#WORK">WORK</a> is a <span class="bitalic">complex*16</span> array of length at least <m:math>
 <m:mfenced separators=""><m:mn>2</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08fnf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>&#160;and 
<a class="arg" href="../F08/f08fnf.xml#LWORK">LWORK</a> is its actual length.  
If <a class="wdrn" href="../GENINT/replace.xml#F02AXF">F02AXF</a> was called with the same 
arrays supplied for VR and AR and for VI and AI, then the 
call to <a class="rout" href="../F06/f06tff.xml">F06TFF</a> may be omitted.</div><h3 class="standard"><a class="sec" name="F02AYF" id="F02AYF"/>F02AYF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08jsf.xml">F08JSF (ZSTEQR)</a>.</div><pre class="verbatim">
Old: CALL F02AYF(N,EPS,D,E,VR,IVR,VI,IVI,IFAIL)
New: CALL ZSTEQR('V',N,D,E(2),V,IV,WORK,INFO)
     DO 40 J = 1, N
        DO 30 I = 1, N
           VR(I,J) = <span class="bitalic">real</span>(V(I,J))
           VI(I,J) = <span class="bitalic">imag</span>(V(I,J))
 30     CONTINUE
 40  CONTINUE</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08jsf.xml#Z">V</a> is a <span class="bitalic">complex*16</span> array of dimension <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08jsf.xml#LDZ"><m:mi mathcolor="#EE0000" mathvariant="bold">IV</m:mi></m:maction><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08jsf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>, and <a class="arg" href="../F08/f08jsf.xml#WORK">WORK</a> is a <span class="bitalic">real</span> array of length at least <m:math>
 <m:mfenced separators="">
  <m:mn>2</m:mn>
  <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08jsf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction><m:mo>-</m:mo><m:mn>1</m:mn></m:mfenced>
 </m:mfenced>
</m:math>.</div><h3 class="standard"><a class="sec" name="F02BBF" id="F02BBF"/>F02BBF</h3><div class="paramtext">
Withdrawn at Mark 19.<br/>
Replaced by <a class="rout" href="../F08/f08fbf.xml">F08FBF (DSYEVX)</a>.</div><div class="paramtext">
<pre class="verbatim">
Old:  CALL F02BBF(A,LDA,N,RLB,RUB,M,MM,R,V,LDV,D,E,E2,X,G,C,
     +            ICOUNT,IFAIL)
New:  CALL DSYEVX('V','V','L',N,A,LDA,RLB,RUB,
     +            0,0,2*X02AMF(),MM,R,V,LDV,WORK,LWORK,IWORK,
     +             JFAIL,INFO)
</pre>
where <a class="arg" href="../F08/f08fbf.xml#W">R</a> must have dimension at least <m:math><m:mrow><m:mi>max</m:mi><m:mspace width="0.125em"/><m:mfenced separators=""><m:mn>1</m:mn><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08fbf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:mrow></m:math>, <a class="arg" href="../F08/f08fbf.xml#WORK">WORK</a> is a <span class="bitalic">real</span> array of length at least <m:math><m:mfenced separators=""><m:mn>4</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08fbf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:math>, <a class="arg" href="../F08/f08fbf.xml#LWORK">LWORK</a> is its actual length, <a class="arg" href="../F08/f08fbf.xml#JFAIL">JFAIL</a> is an integer array of length at least <m:math><m:mrow><m:mi>max</m:mi><m:mspace width="0.125em"/><m:mfenced separators=""><m:mn>1</m:mn><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08fbf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:mrow></m:math>, and <a class="arg" href="../F08/f08fbf.xml#IWORK">IWORK</a> is an integer array of length at least <m:math><m:mfenced separators=""><m:mn>5</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08fbf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:math>.  Note that in the call to <a class="wdrn" href="../GENINT/replace.xml#F02BBF">F02BBF</a> <a class="arg" href="../F08/f08fbf.xml#W">R</a> needs only to be of dimension (M). Larger values of <a class="arg" href="../F08/f08fbf.xml#LWORK">LWORK</a>, up to some optimal value, may improve performance. Arguments C, ICOUNT, X, G, E2, E and D are not used.</div><h3 class="standard"><a class="sec" name="F02BCF" id="F02BCF"/>F02BCF</h3><div class="paramtext">
Withdrawn at Mark 19.<br/>
Replaced by <a class="rout" href="../F02/f02ecf.xml">F02ECF</a>.</div><pre class="verbatim">
Old: CALL F02BCF(A,IA,N,ALB,UB,M,MM,RR,RI,VR,IVR,VI,IVI,
    +            INTGER,ICNT,C,B,IB,U,V,IFAIL)
New: CALL F02ECF('Moduli',N,A,IA,ALB,UB,M,MM,RR,RI,VR,IVR,
    +            VI,IVI,WORK,LWORK,ICNT,C,IFAIL)</pre>
<div class="paramtext">where <a class="arg" href="../F02/f02ecf.xml#WORK">WORK</a> is a <span class="bitalic">real</span> array of length at least (<m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../F02/f02ecf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction><m:mo>&#215;</m:mo><m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F02/f02ecf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction><m:mo>+</m:mo><m:mn>4</m:mn></m:mfenced></m:math>) and <a class="arg" href="../F02/f02ecf.xml#LWORK">LWORK</a> is its actual length.</div><h3 class="standard"><a class="sec" name="F02BDF" id="F02BDF"/>F02BDF</h3><div class="paramtext">
Withdrawn at Mark 19.<br/>
Replaced by <a class="rout" href="../F02/f02gcf.xml">F02GCF</a>.</div><pre class="verbatim">
Old: CALL F02BDF(AR,IAR,AI,IAI,N,ALB,UB,M,MM,RR,RI,VR,IVR,
    +            VI,IVI,INTGER,C,BR,IBR,BI,IBI,U,V,IFAIL)
New: DO 20 J = 1, N
        DO 10 I = 1, N
           A(I,J) = <span class="bitalic">cmplx</span>(AR(I,J),AI(I,J))
  10    CONTINUE
  20 CONTINUE
     CALL F02GCF('Moduli',N,A,IA,ALB,UB,M,MM,R,V,IV,WORK,
    +            LWORK,RWORK,INTGER,C,IFAIL)
     DO 30 I = 1, N
        RR(I) = <span class="bitalic">real</span>(R(I))
        RI(I) = <span class="bitalic">imag</span>(R(I))
  30 CONTINUE
     DO 50 J = 1, MM
        DO 40 I = 1, N
           VR(I,J) = <span class="bitalic">real</span>(V(I,J))
           VI(I,J) = <span class="bitalic">imag</span>(V(I,J))
  40    CONTINUE
  50 CONTINUE</pre>
<div class="paramtext">where <a class="arg" href="../F02/f02gcf.xml#A">A</a> is a <span class="bitalic">complex*16</span> array of dimension <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F02/f02gcf.xml#LDA"><m:mi mathcolor="#EE0000" mathvariant="bold">IA</m:mi></m:maction><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F02/f02gcf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>, <a class="arg" href="../F02/f02gcf.xml#W">R</a> is a <span class="bitalic">complex*16</span> array of dimension (<a class="arg" href="../F02/f02gcf.xml#N">N</a>), <a class="arg" href="../F02/f02gcf.xml#V">V</a> is a <span class="bitalic">complex*16</span> array of dimension <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F02/f02gcf.xml#LDV"><m:mi mathcolor="#EE0000" mathvariant="bold">IV</m:mi></m:maction><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F02/f02gcf.xml#MEST"><m:mi mathcolor="#EE0000" mathvariant="bold">M</m:mi></m:maction></m:mfenced>
</m:math>, <a class="arg" href="../F02/f02gcf.xml#WORK">WORK</a> is a <span class="bitalic">complex*16</span> array of length at least <m:math>
 <m:mfenced separators="">
  <m:maction actiontype="link" dsi:type="simple" dsi:href="../F02/f02gcf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction>
  <m:mo>&#215;</m:mo>
  <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F02/f02gcf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction><m:mo>+</m:mo><m:mn>2</m:mn></m:mfenced>
 </m:mfenced>
</m:math>, <a class="arg" href="../F02/f02gcf.xml#LWORK">LWORK</a> is its actual length, and <a class="arg" href="../F02/f02gcf.xml#RWORK">RWORK</a> is a <span class="bitalic">real</span> array of length at least <m:math>
 <m:mfenced separators=""><m:mn>2</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F02/f02gcf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>.</div><h3 class="standard"><a class="sec" name="F02BEF" id="F02BEF"/>F02BEF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08jjf.xml">F08JJF (DSTEBZ)</a> and <a class="rout" href="../F08/f08jkf.xml">F08JKF (DSTEIN)</a>.</div><pre class="verbatim">
Old: CALL F02BEF(N,D,ALB,UB,EPS,EPS1,E,E2,M,MM,R,V,IV,ICOUNT,X,C,
    +            IFAIL)
New: CALL DSTEBZ('V','B',N,ALB,UB,0,0,EPS1,D,E(2),MM,NSPLIT,R,IBLOCK,
    +          ISPLIT,X,IWORK,INFO)
     CALL DSTEIN(N,D,E(2),MM,R,IBLOCK,ISPLIT,V,IV,X,IWORK,IFAILV,INFO)</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08jjf.xml#NSPLIT">NSPLIT</a> is an integer variable, <a class="arg" href="../F08/f08jjf.xml#IBLOCK">IBLOCK</a>, <a class="arg" href="../F08/f08jjf.xml#ISPLIT">ISPLIT</a> and <a class="arg" href="../F08/f08jkf.xml#IFAILV">IFAILV</a> are integer arrays of length at least <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08jjf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>, and <a class="arg" href="../F08/f08jkf.xml#IWORK">IWORK</a> is an integer array of length at least <m:math>
 <m:mfenced separators=""><m:mn>3</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08jkf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>.</div><h3 class="standard"><a class="sec" name="F02BFF" id="F02BFF"/>F02BFF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08jjf.xml">F08JJF (DSTEBZ)</a>.</div><pre class="verbatim">
Old: CALL F02BFF(D,E,E2,N,M1,M2,MM12,EPS1,EPS,EPS2,IZ,R,WU)
New: CALL DSTEBZ('I','E',N,0.0D0,0.0D0,M1,M2,EPS1,D,E(2),M,
    +            NSPLIT,R,IBLOCK,ISPLIT,WORK,IWORK,INFO)</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08jjf.xml#M">M</a> and <a class="arg" href="../F08/f08jjf.xml#NSPLIT">NSPLIT</a> are integer variables, <a class="arg" href="../F08/f08jjf.xml#IBLOCK">IBLOCK</a> and <a class="arg" href="../F08/f08jjf.xml#ISPLIT">ISPLIT</a> are integer arrays of length at least <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08jjf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>, <a class="arg" href="../F08/f08jjf.xml#WORK">WORK</a> is a <span class="bitalic">double precision</span> array of length at least <m:math>
 <m:mfenced separators=""><m:mn>4</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08jjf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>, and <a class="arg" href="../F08/f08jjf.xml#IWORK">IWORK</a> is an integer array of length at least <m:math>
 <m:mfenced separators=""><m:mn>3</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08jjf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>.</div><h3 class="standard"><a class="sec" name="F02BJF" id="F02BJF"/>F02BJF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 23.<br/>
Replaced by <a class="rout" href="../F08/f08waf.xml">F08WAF (DGGEV)</a>.</div><pre class="verbatim">
Old: CALL F02BJF(N,A,LDA,B,LDB,EPS1,ALFR,ALFI,BETA,MATV,V,LDV,ITER,IFAIL)
New: IF (MATV) THEN
       JOBVR = 'V'
     ELSE
       JOBVR = 'N'
     ENDIF
     CALL DGGEV('N',JOBVR,N,A,LDA,B,LDB,ALFR,ALFI,BETA,VL,LDVL,
    +            VR,LDVL,WORK,LWORK,INFO)
     IF (INFO.EQ.0) THEN
       ...
</pre><h3 class="standard"><a class="sec" name="F02BKF" id="F02BKF"/>F02BKF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08pkf.xml">F08PKF (DHSEIN)</a>.</div><pre class="verbatim">
Old: CALL F02BKF(N,M,H,IH,RI,C,RR,V,IV,B,IB,U,W,IFAIL)
New: CALL DHSEIN('R','Q','N',C,N,H,IH,RR,RI,V,IV,V,IV,M,M2,B,IFAILR,
    +            IFAILR,INFO)</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08pkf.xml#M">M2</a> is an integer variable, and <a class="arg" href="../F08/f08pkf.xml#IFAILR">IFAILR</a> is an integer array of length at least <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08pkf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>.</div>
<div class="paramtext">Note that the array <a class="arg" href="../F08/f08pkf.xml#SELECT">C</a> may be modified by <a class="rout" href="../F08/f08pkf.xml">F08PKF (DHSEIN)</a> if there are complex conjugate pairs of eigenvalues.</div><h3 class="standard"><a class="sec" name="F02BLF" id="F02BLF"/>F02BLF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08pxf.xml">F08PXF (ZHSEIN)</a>.</div><pre class="verbatim">
Old: CALL F02BLF(N,M,HR,IHR,HI,IHI,RI,C,RR,VR,IVR,VI,IVI,BR,IBR,BI,
    +            IBI,U,W,IFAIL)
New: DO 20 J = 1, N
        R(J) = <span class="bitalic">cmplx</span>(RR(J),RI(J))
        DO 10 I = 1, N
           H(I,J) = <span class="bitalic">cmplx</span>(HR(I,J),HI(I,J))
  10    CONTINUE
  20 CONTINUE
     CALL ZHSEIN('R','Q','N',C,N,H,IH,R,V,IV,V,IV,M,M2,WORK,RWORK,
    +            IFAILR,IFAILR,INFO)
     DO 30 I = 1, N
        RR(I) = <span class="bitalic">real</span>(R(I))
  30 CONTINUE
     DO 50 J = 1, M
        DO 40 I = 1, N
           VR(I,J) = <span class="bitalic">real</span>(V(I,J))
           VI(I,J) = <span class="bitalic">imag</span>(V(I,J))
  40    CONTINUE
  50 CONTINUE</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08pxf.xml#H">H</a> is a <span class="bitalic">complex*16</span> array of dimension <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08pxf.xml#LDH"><m:mi mathcolor="#EE0000" mathvariant="bold">IH</m:mi></m:maction><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08pxf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>, <a class="arg" href="../F08/f08pxf.xml#W">R</a> is a <span class="bitalic">complex*16</span> array of length (<a class="arg" href="../F08/f08pxf.xml#N">N</a>), <a class="arg" href="../F08/f08pxf.xml#VL">V</a> is a <span class="bitalic">complex*16</span>, array of dimension <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08naf.xml#LDVL"><m:mi mathcolor="#EE0000" mathvariant="bold">IV</m:mi></m:maction><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08pxf.xml#MM"><m:mi mathcolor="#EE0000" mathvariant="bold">M</m:mi></m:maction></m:mfenced>
</m:math>, <a class="arg" href="../F08/f08pxf.xml#M">M2</a> is an integer variable, <a class="arg" href="../F08/f08pxf.xml#WORK">WORK</a> is a <span class="bitalic">complex*16</span> array of length at least (<m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08pxf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08pxf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:math>), <a class="arg" href="../F08/f08pxf.xml#RWORK">RWORK</a> is a <span class="bitalic">double precision</span> array of length at least <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08pxf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>, and <a class="arg" href="../F08/f08pxf.xml#IFAILR">IFAILR</a> is an integer array of length at least <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08pxf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>.</div><h3 class="standard"><a class="sec" name="F02EAF" id="F02EAF"/>F02EAF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 23.<br/>
Replaced by <a class="rout" href="../F08/f08paf.xml">F08PAF (DGEES)</a>.</div><pre class="verbatim">
Old: CALL F02EAF(JOB,N,A,LDA,WR,WI,Z,LDZ,WORK,LWORK,IFAIL)
New: LOGICAL SELECT
     EXTERNAL SELECT
     ...
     IF (JOB.EQ.'N') THEN
       JOBVS = 'N'
     ELSE
       JOBVS = 'V'
     END IF
     CALL DGEES(JOBVS,'N',SELECT,N,A,LDA,0,WR,WI,Z,LDZ,WORK,
    +            LWORK,BWORK,INFO)
     IF (INFO.EQ.0) THEN
        ....

     LOGICAL FUNCTION SELECT(AR,AI)
     DOUBLE PRECISION AR, AI
     SELECT = .TRUE.
     RETURN
     ENDK
</pre><h3 class="standard"><a class="sec" name="F02EBF" id="F02EBF"/>F02EBF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 23.<br/>
Replaced by <a class="rout" href="../F08/f08naf.xml">F08NAF (DGEEV)</a>.</div><pre class="verbatim">
Old: CALL F02EBF(JOB,N,A,LDA,WR,WI,VR,LDVR,VI,LDVI,WORK,LWORK,
    +            IFAIL)
New: IF (JOB.EQ.'N') THEN
       JOBVR = 'N'
     ELSE
       JOBVR = 'V'
     END IF
     CALL DGEEV('N',JOBVR,N,A,LDA,WR,WI,VL,LDVL,VR1,LDVR1,
    +            WORK,LWORK,INFO)
     IF (INFO.EQ.0) THEN
C      Eigenvector infomation is stored differently.
C      For complex conjugate pairs (that is, corresponding
C      to the j-th eigenvector such that WI(j) is non-zero,
C      and WI(j) = -WI(j+1)), the real and imaginary parts
C      of the first of the pair of eigenvectors are stored 
C      as consecutive columns of VR1: VR1(:,j), VR1(:,j+1).
C      The second in the pair is just the conjugate of the
C      first, so can be constructed by negating the 
C      elements in VR1(:,j+1).
C      If the j-th eigenvector is real (WI(j)=0), the 
C      corresponding real eigenvector is stored in the
C      j-th column of VR1, VR1(1:N,j).
</pre><h3 class="standard"><a class="sec" name="F02FAF" id="F02FAF"/>F02FAF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 23.<br/>
Replaced by <a class="rout" href="../F08/f08faf.xml">F08FAF (DSYEV)</a>.</div><pre class="verbatim">
Old: CALL F02FAF(JOB,UPLO,N,A,LDA,W,WORK,LWORK,IFAIL)
New: CALL DSYEV(JOB,UPLO,N,A,LDA,W,WORK,LWORK,INFO)
     IF (INFO.EQ.0) THEN
       ...
C    the workspace requirements are slightly different.
</pre><h3 class="standard"><a class="sec" name="F02FCF" id="F02FCF"/>F02FCF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 23.<br/>
Replaced by <a class="rout" href="../F08/f08fbf.xml">F08FBF (DSYEVX)</a>.</div><pre class="verbatim">
Old: CALL F02FCF(JOB,RANGE,UPLO,N,A,LDA,WL,WU,IL,IU,MEST,M,
    +            W,Z,LDZ,WORK,LWORK,IWORK,IFAIL)
New: CALL DSYEVX(JOB,RANGE,UPLO,N,A,LDA,WL,WU,IL,IU,ABSTOL,M,
    +            W,Z,LDZ,WORK,LWORK,IWORK,JFAIL,INFO)
     IF (INFO.EQ.0) THEN
       ...
C    the workspace requirements are slightly different.
</pre><h3 class="standard"><a class="sec" name="F02FDF" id="F02FDF"/>F02FDF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 23.<br/>
Replaced by <a class="rout" href="../F08/f08saf.xml">F08SAF (DSYGV)</a>.</div><pre class="verbatim">
Old: CALL F02FDF(ITYPE,JOB,UPLO,N,A,LDA,B,LDB,W,WORK,LWORK,IFAIL)
New: CALL DSYGV(ITYPE,JOB,UPLO,N,A,LDA,B,LDB,W,WORK,LWORK,INFO)
     IF (INFO.EQ.0) THEN
       ...
C    the workspace requirements are slightly different.
</pre><h3 class="standard"><a class="sec" name="F02FHF" id="F02FHF"/>F02FHF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 23.<br/>
Replaced by <a class="rout" href="../F08/f08uaf.xml">F08UAF (DSBGV)</a>.</div><pre class="verbatim">
Old: CALL F02FHF(N,MA,A,LDA,MB,B,LDB,D,WORK,LWORK,IFAIL)
New: CALL DSBGV('N','U',N,MA,MB,A,LDA,B,LDB,D,Z,LDZ,WORK,INFO)
     IF (INFO.EQ.0) THEN
       ...
C    note that the eigenvalues appear in reverse order
C    note also the different workspace requirements
</pre><h3 class="standard"><a class="sec" name="F02GAF" id="F02GAF"/>F02GAF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 23.<br/>
Replaced by <a class="rout" href="../F08/f08pnf.xml">F08PNF (ZGEES)</a>.</div><pre class="verbatim">
Old: CALL F02GAF(JOB,N,A,LDA,W,Z,LDZ,RWORK,WORK,LWORK,IFAIL)
New: LOGICAL BWORK(1)
     LOGICAL SELECT
     EXTERNAL SELECT
        ...
     IF (JOB.EQ.'N') THEN
       JOBVS = 'N'
     ELSE
       JOBVS = 'V'
     END IF
     CALL ZGEES(JOBVS,'N',SELECT,N,A,LDA,0,W,Z,LDZ,
    +            WORK,LWORK,RWORK,BWORK,INFO)
     IF (INFO.NE.0) THEN
       ...
C    Note also the different workspace requirements
       ...
     LOGICAL FUNCTION SELECT(C)
     COMPLEX*16 C
     SELECT = .TRUE.
     RETURN
     END
</pre><h3 class="standard"><a class="sec" name="F02GBF" id="F02GBF"/>F02GBF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 23.<br/>
Replaced by <a class="rout" href="../F08/f08nnf.xml">F08NNF (ZGEEV)</a>.</div><pre class="verbatim">
Old: CALL F02GBF(JOB,N,A,LDA,W,V,LDV,RWORK,WORK,LWORK,IFAIL)
New: CALL ZGEEV('N',JOB,N,A,LDA,W,VL,LDVL,V,LDV,
    +            WORK,LWORK,RWORK,INFO)
     IF (INFO.EQ.0) THEN
       ...
</pre><h3 class="standard"><a class="sec" name="F02GJF" id="F02GJF"/>F02GJF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 23.<br/>
Replaced by <a class="rout" href="../F08/f08wnf.xml">F08WNF (ZGGEV)</a>.</div><pre class="verbatim">
Old: CALL F02GJF(N,AR,LDAR,AI,LDAI,BR,LDBR,BI,LDBI,EPS1,ALFR,
    +            ALFI,BETA,MATV,VR,LDVR,VI,LDVI,ITER,IFAIL)
New: IF (MATV) THEN
       JOBVR = 'V'
     ELSE
       JOBVR = 'N'
     END IF
C
C    Set A=AR + iAI and B = BR+iBI
C
     CALL ZGGEV('N',JOBVR,N,A,LDA,B,LDB,ALPHA,BETA1,VL,LDVL,
    +            V,LDV,WORK,LWORK,RWORK,INFO)C
C    Note results returned in COMPLEX*16 types, unlike F02GJF.
     IF (INFO.EQ.0) THEN
       ...
</pre><h3 class="standard"><a class="sec" name="F02HAF" id="F02HAF"/>F02HAF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 23.<br/>
Replaced by <a class="rout" href="../F08/f08fnf.xml">F08FNF (ZHEEV)</a>.</div><pre class="verbatim">
Old: CALL F02HAF(JOB,UPLO,N,A,LDA,W,RWORK,WORK,LWORK,IFAIL)
New: CALL ZHEEV(JOB,UPLO,N,A,LDA,W,WORK,LWORK,RWORK,INFO)
C    Note slightly different workspace requirements.
     IF (INFO.EQ.0) THEN
       ...
</pre><h3 class="standard"><a class="sec" name="F02HCF" id="F02HCF"/>F02HCF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 23.<br/>
Replaced by <a class="rout" href="../F08/f08fpf.xml">F08FPF (ZHEEVX)</a>.</div><pre class="verbatim">
Old: CALL F02HCF(JOB,RANGE,UPLO,N,A,LDA,WL,WU,IL,IU,MEST,M,
    +            W,Z,LDZ,WORK,LWORK,RWORK,IWORK,IFAIL)
New: CALL ZHEEVX(JOB,RANGE,UPLO,N,A,LDA,WL,WU,IL,IU,ABSTOL,M,
    +            W,Z,LDZ,WORK,LWORK,RWORK,IWORK,JFAIL,INFO)
C    Note slightly different workspace requirements.
     IF (INFO.EQ.0) THEN
       ...
</pre><h3 class="standard"><a class="sec" name="F02HDF" id="F02HDF"/>F02HDF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 23.<br/>
Replaced by <a class="rout" href="../F08/f08snf.xml">F08SNF (ZHEGV)</a>.</div><pre class="verbatim">
Old: CALL F02HDF(ITYPE,JOB,UPLO,N,A,LDA,B,LDB,W,RWORK,WORK,
    +            LWORK,IFAIL)
New: CALL ZHEGV(ITYPE,JOB,UPLO,N,A,LDA,B,LDB,W,WORK,LWORK,
    +            RWORK,INFO)
C    Note slightly different workspace requirements.
     IF (INFO.EQ.0) THEN
       ...
</pre><h3 class="standard"><a class="sec" name="F02SWF" id="F02SWF"/>F02SWF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08kef.xml">F08KEF (DGEBRD)</a>.</div><div class="paramtext">The following replacement ignores the triangular structure of <a class="arg" href="../F08/f08kef.xml#A">A</a>, and therefore references the subdiagonal elements of <a class="arg" href="../F08/f08kef.xml#A">A</a>; however on many machines the replacement code will be more efficient.</div>
<pre class="verbatim">
Old: CALL F02SWF(N,A,LDA,D,E,NCOLY,Y,LDY,WANTQ,Q,LDQ,IFAIL)
New: DO 20 J = 1, N
        DO 10 I = J+1, N
           A(I,J) = 0.0D0
  10    CONTINUE
  20 CONTINUE
     CALL DGEBRD(N,N,A,LDA,D,E,TAUQ,TAUP,WORK,LWORK,INFO)
     IF (WANTQ) THEN
        CALL F06QFF('L',N,N,A,LDA,Q,LDQ)
        CALL DORGBR('Q',N,N,N,Q,LDQ,TAUQ,WORK,LWORK,INFO)
     END IF
     IF (NCOLY.GT.0) THEN
        CALL DORMBR('Q','L','T',N,NCOLY,N,A,LDA,TAUQ,Y,LDY,
    +              WORK,LWORK,INFO)
     END IF</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08kef.xml#TAUQ">TAUQ</a>, <a class="arg" href="../F08/f08kef.xml#TAUP">TAUP</a> and <a class="arg" href="../F08/f08kef.xml#WORK">WORK</a> are <span class="bitalic">double precision</span> arrays of length at least <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08kef.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>, and <a class="arg" href="../F08/f08kef.xml#LWORK">LWORK</a> is the actual length of <a class="arg" href="../F08/f08kef.xml#WORK">WORK</a>.</div><h3 class="standard"><a class="sec" name="F02SXF" id="F02SXF"/>F02SXF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08kff.xml">F08KFF (DORGBR)</a> and <a class="rout" href="../F08/f08kgf.xml">F08KGF (DORMBR)</a>.</div><div class="paramtext">The following replacement is valid only if the previous call to <a class="wdrn" href="../GENINT/replace.xml#F02SWF">F02SWF</a> has been replaced by a call to <a class="rout" href="../F08/f08kef.xml">F08KEF (DGEBRD)</a> as shown above. 
<pre class="verbatim">
Old: CALL F02SXF(N,A,LDA,NCOLY,Y,LDY,WORK,IFAIL)
New: IF (NCOLY.EQ.0) THEN
        CALL DORGBR('P',N,N,N,A,LDA,TAUP,WORK,LWORK,INFO)
     ELSE
        CALL DORMBR('P','L','T',N,NCOLY,N,A,LDA,TAUP,Y,LDY,WORK,
    +              LWORK,INFO)
     END IF</pre> </div><h3 class="standard"><a class="sec" name="F02SYF" id="F02SYF"/>F02SYF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08mef.xml">F08MEF (DBDSQR)</a>.</div><pre class="verbatim">
Old: CALL F02SYF(N,D,E,NCOLB,B,LDB,NROWY,Y,LDY,NCOLZ,Z,LDZ,WORK,
    +            IFAIL)
New: CALL DBDSQR('U',N,NCOLZ,NROWY,NCOLB,D,E,Z,LDZ,Y,LDY,B,LDB,WORK,
    +            INFO)</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08mef.xml#WORK">WORK</a> is a <span class="bitalic">double precision</span> array of length at least <m:math>
 <m:mfenced separators="">
  <m:mn>4</m:mn>
  <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08mef.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction><m:mo>-</m:mo><m:mn>1</m:mn></m:mfenced>
 </m:mfenced>
</m:math>&#160;unless <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08mef.xml#NCC"><m:mi mathcolor="#EE0000" mathvariant="bold">NCOLB</m:mi></m:maction>
 <m:mo>=</m:mo>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08mef.xml#NRU"><m:mi mathcolor="#EE0000" mathvariant="bold">NROWY</m:mi></m:maction>
 <m:mo>=</m:mo>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08mef.xml#NCVT"><m:mi mathcolor="#EE0000" mathvariant="bold">NCOLZ</m:mi></m:maction>
 <m:mo>=</m:mo>
 <m:mn>0</m:mn>
</m:math>.</div><h3 class="standard"><a class="sec" name="F02SZF" id="F02SZF"/>F02SZF</h3><div class="paramtext">
Withdrawn at Mark 15.<br/>
Replaced by <a class="rout" href="../F08/f08mef.xml">F08MEF (DBDSQR)</a>.</div><pre class="verbatim">
Old: CALL F02SZF(N,D,E,SV,WANTB,B,WANTY,Y,NRY,LY,WANTZ,Z,NRZ,NCZ,
    +            WORK1,WORK2,WORK3,IFAIL)
New: IF (WANTB) THEN
        NCC = 1
     ELSE
        NCC = 0
     END IF
     IF (WANTY) THEN
        NRU = LY
     ELSE
        NRU = 0
     END IF
     IF (WANTZ) THEN
        NCVT = NCZ
     ELSE
        NCVT = 0
     END IF
     CALL DBDSQR('U',N,NCVT,NRU,NCC,D,E(2),Z,NRZ,Y,NRY,B,N,WORK,INFO)</pre>
<div class="paramtext"><a class="arg" href="../F08/f08mef.xml#WORK">WORK</a> must be a one-dimensional <span class="bitalic">double precision</span> array of length at least <span class="italic">lwork</span> given by:
<ul class="listind"><li class="listind"><m:math>
 <m:mi mathvariant="italic">lwork</m:mi><m:mo>=</m:mo><m:mn>1</m:mn>
</m:math>&#160;when WANTB, WANTY and WANTZ are all false;</li><li class="listind"><m:math>
 <m:mi mathvariant="italic">lwork</m:mi><m:mo>=</m:mo><m:mrow><m:mi>max</m:mi><m:mspace width="0.125em"/><m:mfenced separators=""><m:mrow><m:mn>4</m:mn><m:mo>&#215;</m:mo><m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08mef.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction><m:mo>-</m:mo><m:mn>1</m:mn></m:mfenced></m:mrow><m:mo>,</m:mo><m:mn>1</m:mn></m:mfenced></m:mrow>
</m:math>&#160;otherwise.</li></ul>
</div>
<div class="paramtext">The parameters WORK1, WORK2 and WORK3 are no longer required.</div><h3 class="standard"><a class="sec" name="F02UWF" id="F02UWF"/>F02UWF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08ksf.xml">F08KSF (ZGEBRD)</a>.</div><div class="paramtext">The following replacement ignores the triangular structure of A, and therefore references the subdiagonal elements of A; however on many machines the replacement code will be more efficient.</div>
<pre class="verbatim">
Old: CALL F02UWF(N,A,LDA,D,E,NCOLY,Y,LDY,WANTQ,Q,LDQ,WORK,IFAIL)
New: DO 20 J = 1, N
        DO 10 I = J+1, N
           A(I,J) = 0.0D0
  10    CONTINUE
  20 CONTINUE
     CALL ZGEBRD(N,N,A,LDA,D,E,TAUQ,TAUP,WORK,LWORK,INFO)
     IF (WANTQ) THEN
        CALL F06TFF('L',N,N,A,LDA,Q,LDQ)
        CALL ZUNGBR('Q',N,N,N,Q,LDQ,TAUQ,WORK,LWORK,INFO)
     END IF
     IF (NCOLY.GT.0) THEN
        CALL ZUNMBR('Q','L','C',N,NCOLY,N,A,LDA,TAUQ,Y,LDY,
    +              WORK,LWORK,INFO)
     END IF</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08ksf.xml#TAUQ">TAUQ</a> and <a class="arg" href="../F08/f08ksf.xml#TAUP">TAUP</a> are <span class="bitalic">complex*16</span> arrays of length at least <m:math>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08ksf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>, and <a class="arg" href="../F08/f08ksf.xml#LWORK">LWORK</a> is the actual length of <a class="arg" href="../F08/f08ksf.xml#WORK">WORK</a>.</div><h3 class="standard"><a class="sec" name="F02UXF" id="F02UXF"/>F02UXF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08ktf.xml">F08KTF (ZUNGBR)</a> or <a class="rout" href="../F08/f08kuf.xml">F08KUF (ZUNMBR)</a>.</div><div class="paramtext">The following replacement is valid only if the previous call to <a class="wdrn" href="../GENINT/replace.xml#F02UWF">F02UWF</a> has been replaced by a call to <a class="rout" href="../F08/f08ksf.xml">F08KSF (ZGEBRD)</a> as shown above.</div>
<pre class="verbatim">
Old: CALL F02UXF(N,A,LDA,NCOLY,Y,LDY,RWORK,CWORK,IFAIL)
New: IF (NCOLY.EQ.0) THEN
        CALL ZUNGBR('P',N,N,N,A,LDA,TAUP,CWORK,LWORK,INFO)
     ELSE
        CALL ZUNMBR('P','L','C',N,NCOLY,N,A,LDA,TAUP,Y,LDY,CWORK,
    +              LWORK,INFO)
     END IF</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08ktf.xml#LWORK">LWORK</a> is the actual length of <a class="arg" href="../F08/f08ktf.xml#WORK">CWORK</a>.</div><h3 class="standard"><a class="sec" name="F02UYF" id="F02UYF"/>F02UYF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F08/f08msf.xml">F08MSF (ZBDSQR)</a>.</div><pre class="verbatim">
Old: CALL F02UYF(N,D,E,NCOLB,B,LDB,NROWY,Y,LDY,NCOLZ,Z,LDZ,WORK,
    +            IFAIL)
New: CALL ZBDSQR('U',N,NCOLZ,NROWY,NCOLB,D,E,Z,LDZ,Y,LDY,B,LDB,WORK,
    +          INFO)</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08msf.xml#WORK">WORK</a> is a <span class="bitalic">double precision</span> array of length at least <m:math>
 <m:mfenced separators="">
  <m:mn>4</m:mn><m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08msf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction><m:mo>-</m:mo><m:mn>1</m:mn></m:mfenced>
 </m:mfenced>
</m:math>&#160;unless <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08msf.xml#NCC"><m:mi mathcolor="#EE0000" mathvariant="bold">NCOLB</m:mi></m:maction>
 <m:mo>=</m:mo>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08msf.xml#NRU"><m:mi mathcolor="#EE0000" mathvariant="bold">NROWY</m:mi></m:maction>
 <m:mo>=</m:mo>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08msf.xml#NCVT"><m:mi mathcolor="#EE0000" mathvariant="bold">NCOLZ</m:mi></m:maction>
 <m:mo>=</m:mo>
 <m:mn>0</m:mn>
</m:math>.</div><h3 class="standard"><a class="sec" name="F02WAF" id="F02WAF"/>F02WAF</h3><div class="paramtext">
Withdrawn at Mark 16.<br/>
Replaced by <a class="rout" href="../F08/f08kbf.xml">F08KBF (DGESVD)</a>.</div><pre class="verbatim">
Old: CALL F02WAF(M,N,A,LDA,WANTB,B,SV,WORK,LWORK,IFAIL)
New: CALL DGESVD('N','O',M,N,A,LDA,SV,WORK,1,WORK,1,
    +            WORK,LWORK,INFO)
     IF (INFO.EQ.0) THEN 
        ...</pre>
<div class="paramtext"><a class="arg" href="../F08/f08kbf.xml#WORK">WORK</a> must be a one-dimensional <span class="bitalic">double precision</span> array of length at least <span class="italic">lwork</span> given by: <m:math>
 <m:mrow><m:mi>max</m:mi><m:mspace width="0.125em"/><m:mfenced separators=""><m:mn>1</m:mn><m:mo>,</m:mo><m:mrow>
   <m:mn>3</m:mn><m:mo>&#215;</m:mo>
   <m:mrow><m:mi>min</m:mi><m:mspace width="0.125em"/><m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08kbf.xml#M"><m:mi mathcolor="#EE0000" mathvariant="bold">M</m:mi></m:maction><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08kbf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:mrow>
   <m:mo>+</m:mo>
   <m:mrow><m:mi>max</m:mi><m:mspace width="0.125em"/><m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08kbf.xml#M"><m:mi mathcolor="#EE0000" mathvariant="bold">M</m:mi></m:maction><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08kbf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:mrow>
  </m:mrow><m:mo>,</m:mo><m:mrow>
   <m:mn>5</m:mn><m:mo>&#215;</m:mo>
   <m:mrow><m:mi>min</m:mi><m:mspace width="0.125em"/><m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08kbf.xml#M"><m:mi mathcolor="#EE0000" mathvariant="bold">M</m:mi></m:maction><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08kbf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:mrow>
  </m:mrow></m:mfenced></m:mrow>
</m:math>&#160;</div>
<div class="paramtext">Larger values of <a class="arg" href="../F08/f08kbf.xml#LWORK">LWORK</a>, up to some optimal value, may improve performance.</div>
<div class="paramtext">Please note that the facility to return <m:math><m:msup><m:mi>Q</m:mi><m:mi mathvariant="normal">T</m:mi></m:msup><m:mo>&#215;</m:mo><m:mi>b</m:mi></m:math>&#160;is not provided so arguments <m:math><m:mi mathvariant="normal">WANTB</m:mi></m:math>&#160;and <m:math><m:mi mathvariant="normal">B</m:mi></m:math>&#160;are not required. Instead, <a class="rout" href="../F08/f08kbf.xml">F08KBF (DGESVD)</a> has an option to return the entire <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08kbf.xml#M"><m:mi mathcolor="#EE0000" mathvariant="bold">M</m:mi></m:maction><m:mo>*</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08kbf.xml#M"><m:mi mathcolor="#EE0000" mathvariant="bold">M</m:mi></m:maction></m:math>&#160;orthogonal matrix <m:math><m:mi>Q</m:mi></m:math>, referred to as <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../F08/f08kbf.xml#U"><m:mi mathcolor="#EE0000" mathvariant="bold">U</m:mi></m:maction></m:math>&#160;in its documentation, through its 8th argument.</div><h3 class="standard"><a class="sec" name="F02WEF" id="F02WEF"/>F02WEF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 23.<br/>
Replaced by <a class="rout" href="../F08/f08kbf.xml">F08KBF (DGESVD)</a>.</div><pre class="verbatim">
Old: CALL F02WEF(M,N,A,LDA,NCOLB,B,LDB,WANTQ,Q,LDQ,SV,WANTP,
    +            PT,LDPT,WORK,IFAIL)
New: IF (WANTQ) THEN
        JOBU = 'A'
     ELSE
        JOBU = 'N'
     END IF
     IF (WANTP) THEN
        JOBVT = 'A'
     ELSE
        JOBVT = 'N'
     END IF
C    Please note that the facility to return Q(t)B is not provided.
     CALL DGESVD(JOBU,JOBVT,M,N,A,LDA,SV,Q,LDQ,PT,LDPT,WORK,
    +            LWORK,INFO)
C    Note slightly different workspace requirements.
     IF (INFO.EQ.0) THEN
       ...
</pre><h3 class="standard"><a class="sec" name="F02XEF" id="F02XEF"/>F02XEF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 23.<br/>
Replaced by <a class="rout" href="../F08/f08kpf.xml">F08KPF (ZGESVD)</a>.</div><pre class="verbatim">
Old: CALL F02XEF(M,N,A,LDA,NCOLB,B,LDB,WANTQ,Q,LDQ,SV,WANTP,
    +            PH,LDPH,RWORK,CWORK,IFAIL)
New: IF (WANTQ) THEN
        JOBU = 'A'
     ELSE
        JOBU = 'N'
     END IF
     IF (WANTP) THEN
        JOBVT = 'A'
     ELSE
        JOBVT = 'N'
     END IF
C    Please note that the facility to return Q(h)B is not provided.
     CALL ZGESVD(JOBU,JOBVT,M,N,A,LDA,SV,Q,LDQ,PH,LDPH,CWORK,
    +            LWORK,RWORK,INFO)
C    Note slightly different workspace requirements.
     IF (INFO.EQ.0) THEN
        ...
</pre><h2 class="standard"><a class="sec" name="F03" id="F03"/>F03 &#8211; Determinants</h2><h3 class="standard"><a class="sec" name="F03AGF" id="F03AGF"/>F03AGF</h3><div class="paramtext">
Withdrawn at Mark 17.<br/>
Replaced by <a class="rout" href="../F07/f07hdf.xml">F07HDF (DPBTRF)</a>.</div><pre class="verbatim">
Old: CALL F03AGF(N,M,A,IA,RL,IL,M1,D1,ID,IFAIL)
New: CALL DPBTRF('Lower',N,M,A,IA,IFAIL)</pre>
<div class="paramtext">where the array RL and its associated dimension parameter IL, and the parameters M1, D1 and ID are no longer required.  In <a class="rout" href="../F07/f07hdf.xml">F07HDF (DPBTRF)</a>, the array <a class="arg" href="../F07/f07hdf.xml#AB">A</a> holds the matrix packed using a different scheme to that used by <a class="wdrn" href="../GENINT/replace.xml#F03AGF">F03AGF</a>; see the routine document for details.  <a class="rout" href="../F07/f07hdf.xml">F07HDF (DPBTRF)</a> overwrites <a class="arg" href="../F07/f07hdf.xml#AB">A</a> with the Cholesky factor <m:math>
 <m:mi>L</m:mi>
</m:math>&#160;(without reciprocating diagonal elements) rather than returning <m:math>
 <m:mi>L</m:mi>
</m:math>&#160;in the array RL.  <a class="rout" href="../F07/f07hdf.xml">F07HDF (DPBTRF)</a> does not compute the determinant of the input matrix, returned as <m:math>
 <m:mi mathvariant="normal">D1</m:mi><m:mo>&#215;</m:mo><m:msup><m:mn>2.0</m:mn><m:mi mathvariant="normal">ID</m:mi></m:msup>
</m:math>&#160;by <a class="wdrn" href="../GENINT/replace.xml#F03AGF">F03AGF</a>.  If this is required, it may be calculated after the call of <a class="rout" href="../F07/f07hdf.xml">F07HDF (DPBTRF)</a> by code similar to the following.  The code computes the determinant by multiplying the diagonal elements of the factor <m:math>
 <m:mi>L</m:mi>
</m:math>, taking care to avoid possible overflow or underflow.</div>
<pre class="verbatim">
D1 = 1.0D0
   ID = 0
   DO 30 I = 1, N
      D1 = D1*A(1,I)**2
10    IF (D1.GE.1.0D0) THEN
         D1 = D1*0.0625e0
         ID = ID + 4
         GO TO 10
      END IF
20    IF (D1.LT.0.0625e0) THEN
         D1 = D1*16.0D0
         ID = ID - 4
         GO TO 20
      END IF
30 CONTINUE</pre><h3 class="standard"><a class="sec" name="F03AHF" id="F03AHF"/>F03AHF</h3><div class="paramtext">
Withdrawn at Mark 17.<br/>
Replaced by <a class="rout" href="../F07/f07arf.xml">F07ARF (ZGETRF)</a>.</div><pre class="verbatim">
Old: CALL F03AHF(N,A,IA,DETR,DETI,ID,RINT,IFAIL)
New: CALL ZGETRF(N,N,A,IA,IPIV,IFAIL)</pre>
<div class="paramtext">where <a class="arg" href="../F07/f07arf.xml#IPIV">IPIV</a> is an INTEGER array of length <a class="arg" href="../F07/f07arf.xml#N">N</a> which holds the indices of the pivot elements, and the array RINT is no longer required.  It may be important to note that after a call of <a class="rout" href="../F07/f07arf.xml">F07ARF (ZGETRF)</a>, <a class="arg" href="../F07/f07arf.xml#A">A</a> is overwritten by the upper triangular factor <m:math>
 <m:mi>U</m:mi>
</m:math>&#160;and the off-diagonal elements of the unit lower triangular factor <m:math>
 <m:mi>L</m:mi>
</m:math>, whereas the factorization returned by <a class="wdrn" href="../GENINT/replace.xml#F03AHF">F03AHF</a> gives <m:math>
 <m:mi>U</m:mi>
</m:math>&#160;the unit diagonal.  <a class="rout" href="../F07/f07arf.xml">F07ARF (ZGETRF)</a> does not compute the determinant of the input matrix, returned as <span class="bitalic">cmplx</span>(DETR,DETI)<m:math>
 <m:mo>&#215;</m:mo><m:msup><m:mn>2.0</m:mn><m:mi mathvariant="normal">ID</m:mi></m:msup>
</m:math>&#160;by <a class="wdrn" href="../GENINT/replace.xml#F03AHF">F03AHF</a>.  If this is required, it may be calculated after a call of <a class="rout" href="../F07/f07arf.xml">F07ARF (ZGETRF)</a> by code similar to the following, where DET is a <span class="bitalic">complex</span> variable.  The code computes the determinant by multiplying the diagonal elements of the factor <m:math>
 <m:mi>U</m:mi>
</m:math>, taking care to avoid possible overflow or underflow.</div>
<pre class="verbatim">
DET = <span class="bitalic">cmplx</span>(1.0D0,0.0D0)
   ID = 0
   DO 30 I = 1, N
      IF (IPIV(I).NE.I) DET = -DET
      DET = DET*A(I,I)
10    IF (MAX(ABS(<span class="bitalic">real</span>(DET)),ABS(<span class="bitalic">imag</span>(DET))).GE.1.0D0) THEN
         DET = DET*0.0625e0
         ID = ID + 4
         GO TO 10
      END IF
20    IF (MAX(ABS(<span class="bitalic">real</span>(DET)),ABS(<span class="bitalic">imag</span>(DET))).LT.0.0625e0) THEN
         DET = DET*16.0D0
         ID = ID - 4
         GO TO 20
      END IF
30 CONTINUE
   DETR = <span class="bitalic">real</span>(DET)
   DETI = <span class="bitalic">imag</span>(DET)</pre><h3 class="standard"><a class="sec" name="F03AMF" id="F03AMF"/>F03AMF</h3><div class="paramtext">
Withdrawn at Mark 17.<br/>
There is no replacement for this routine.</div><pre class="verbatim">
Old: CALL F01BNF(N,A,IA,P,IFAIL)
     CALL F03AMF(N,TEN,P,D1,D2)
New: CALL ZPOTRF('Upper',N,A,IA,IFAIL)
     D1 = 1.0D0
     D2 = 0.0D0
     DO 30 I = 1, N
        D1 = D1*<span class="bitalic">real</span>(A(I,I))**2
   10   IF (D1.GE.1.0D0) THEN
           D1 = D1*0.0625e0
           D2 = D2 + 4
           GO TO 10
        END IF
   20   IF (D1.LT.0.0625e0) THEN
           D1 = D1*16.0D0
           D2 = D2 - 4
           GO TO 20
        END IF
   30 CONTINUE
      IF (TEN) THEN
         I = D2
         D2 = D2*LOG10(2.0D0)
         D1 = D1*2.0D0**(I-D2/LOG10(2.0D0))
      END IF</pre>
<div class="paramtext"><a class="wdrn" href="../GENINT/replace.xml#F03AMF">F03AMF</a> computes the determinant of a Hermitian positive-definite matrix after factorization by <a class="wdrn" href="../GENINT/replace.xml#F01BNF">F01BNF</a>, and has no replacement routine.  <a class="wdrn" href="../GENINT/replace.xml#F01BNF">F01BNF</a> has been superseded by <a class="rout" href="../F07/f07frf.xml">F07FRF (ZPOTRF)</a>.  To compute the determinant of such a matrix, in the same form as that returned by <a class="wdrn" href="../GENINT/replace.xml#F03AMF">F03AMF</a>, code similar to the above may be used.  The code computes the determinant by multiplying the (real) diagonal elements of the factor <m:math>
 <m:mi>U</m:mi>
</m:math>, taking care to avoid possible overflow or underflow.</div>
<div class="paramtext">Note that before the call of <a class="rout" href="../F07/f07frf.xml">F07FRF (ZPOTRF)</a>, array A contains the upper triangle of the matrix rather than the lower triangle.</div><h2 class="standard"><a class="sec" name="F04" id="F04"/>F04 &#8211; Simultaneous Linear Equations</h2><h3 class="standard"><a class="sec" name="F04AAF" id="F04AAF"/>F04AAF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 23.<br/>
Replaced by <a class="rout" href="../F07/f07aaf.xml">F07AAF (DGESV)</a>.</div><pre class="verbatim">
Old: CALL F04AAF(A,LDA,B,LDB,N,M,C,LDC,WKSPCE,IFAIL)
New: CALL DGESV(N,M,A,LDA,IPIV,B,LDB,INFO)
     IF (INFO.EQ.0) THEN
c      Answer now in B
       ...</pre><h3 class="standard"><a class="sec" name="F04ACF" id="F04ACF"/>F04ACF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 23.<br/>
Replaced by <a class="rout" href="../F07/f07haf.xml">F07HAF (DPBSV)</a>.</div><pre class="verbatim">
Old: CALL F04ACF(A,LDA,B,LDB,N,M,IR,C,LDC,RL,LDRL,M1,IFAIL)
New: CALL DPBSV('U',N,M,IR,AB,LDAB,B,LDB,INFO)
     IF (INFO.EQ.0) THEN
c      A and AB are stored differently.
c      AB may be regarded as the transpose of A, with the 'U' option.
c      Thus LDAB might be M+1
c      Answer now in B
       ...
</pre><h3 class="standard"><a class="sec" name="F04ADF" id="F04ADF"/>F04ADF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 23.<br/>
Replaced by <a class="rout" href="../F07/f07anf.xml">F07ANF (ZGESV)</a>.</div><pre class="verbatim">
Old: CALL F04ADF(A,LDA,B,LDB,N,M,C,LDC,WKSPCE,IFAIL)
New: CALL ZGESV(N,M,A,LDA,IPIV,B,LDB,INFO)
     IF (INFO.EQ.0) THEN
c      Answer now in B
       ...
</pre><h3 class="standard"><a class="sec" name="F04AKF" id="F04AKF"/>F04AKF</h3><div class="paramtext">
Withdrawn at Mark 17.<br/>
Replaced by <a class="rout" href="../F07/f07asf.xml">F07ASF (ZGETRS)</a>.</div><pre class="verbatim">
Old: CALL F04AKF(N,IR,A,IA,P,B,IB)
New: CALL ZGETRS('No Transpose',N,IR,A,IA,IPIV,B,IB,INFO)</pre>
<div class="paramtext">It is assumed that the matrix has been factorized by a call of <a class="rout" href="../F07/f07arf.xml">F07ARF (ZGETRF)</a> rather than <a class="wdrn" href="../GENINT/replace.xml#F03AHF">F03AHF</a>; see the <a class="chapint" href="../F03/f03intro.xml">F03 Chapter Introduction</a> for details.  <a class="arg" href="../F07/f07asf.xml#IPIV">IPIV</a> is an INTEGER array of length <a class="arg" href="../F07/f07asf.xml#N">N</a>, as returned by <a class="rout" href="../F07/f07arf.xml">F07ARF (ZGETRF)</a>, and the array P is no longer required.  <a class="arg" href="../F07/f07asf.xml#INFO">INFO</a> is an INTEGER diagnostic parameter; see the <a class="rout" href="../F07/f07asf.xml">F07ASF (ZGETRS)</a> routine document for details.</div><h3 class="standard"><a class="sec" name="F04ALF" id="F04ALF"/>F04ALF</h3><div class="paramtext">
Withdrawn at Mark 17.<br/>
Replaced by <a class="rout" href="../F07/f07hef.xml">F07HEF (DPBTRS)</a>.</div><pre class="verbatim">
Old: CALL F04ALF(N,M,IR,RL,IRL,M1,B,IB,X,IX)
New: CALL F06QFF('General',N,IR,B,IB,X,IX)
     CALL DPBTRS('Lower',N,M,IR,A,IA,X,IX,INFO)</pre>
<div class="paramtext">It is assumed that the matrix has been factorized by a call of <a class="rout" href="../F07/f07hdf.xml">F07HDF (DPBTRF)</a> rather than <a class="wdrn" href="../GENINT/replace.xml#F03AGF">F03AGF</a>; see the <a class="chapint" href="../F03/f03intro.xml">F03 Chapter Introduction</a> for details.  <a class="arg" href="../F07/f07hef.xml#AB">A</a> is the factorized matrix as returned by <a class="rout" href="../F07/f07hdf.xml">F07HDF (DPBTRF)</a>.  The array RL, its associated dimension parameter IRL, and the parameter M1 are no longer required.  <a class="arg" href="../F07/f07hef.xml#INFO">INFO</a> is an INTEGER diagnostic parameter; see the <a class="rout" href="../F07/f07hef.xml">F07HEF (DPBTRS)</a> routine document for details.  If the original right-hand side matrix B is no longer required, the call to <a class="rout" href="../F06/f06qff.xml">F06QFF</a> is not necessary, and references to <a class="arg" href="../F07/f07hef.xml#B">X</a> and <a class="arg" href="../F07/f07hef.xml#LDB">IX</a> in the call of <a class="rout" href="../F07/f07hef.xml">F07HEF (DPBTRS)</a> may be replaced by references to B and IB, in which case <a class="arg" href="../F07/f07hef.xml#B">B</a> will be overwritten by the solution.</div><h3 class="standard"><a class="sec" name="F04ANF" id="F04ANF"/>F04ANF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F06/f06eff.xml">F06EFF (DCOPY)</a>, <a class="rout" href="../F06/f06pjf.xml">F06PJF (DTRSV)</a> and <a class="rout" href="../F08/f08agf.xml">F08AGF (DORMQR)</a>.</div><pre class="verbatim">
Old: CALL F04ANF(M,N,QR,IQR,ALPHA,IPIV,B,X,Z)
New: CALL DCOPY(N,ALPHA,1,QR,IQR+1)
     CALL DORMQR('L','T',M,1,N,QR,IQR,Y,B,M,Z,N,INFO)
     CALL DTRSV('U','N','N',N,QR,IQR,B,1)
     D0 10 I = 1, N
        X(IPIV(I)) = B(I)
  10 CONTINUE</pre>
<div class="paramtext">where <a class="arg" href="../F08/f08agf.xml#TAU">Y</a> must be the same <span class="bitalic">double precision</span> array as was used as the seventh argument in the previous call of <a class="wdrn" href="../GENINT/replace.xml#F01AXF">F01AXF</a>.</div>
<div class="paramtext">This replacement is valid only if the previous call to <a class="wdrn" href="../GENINT/replace.xml#F01AXF">F01AXF</a> has been replaced by a call to <a class="rout" href="../F08/f08bef.xml">F08BEF (DGEQPF)</a> as shown above.</div><h3 class="standard"><a class="sec" name="F04AQF" id="F04AQF"/>F04AQF</h3><div class="paramtext">
Withdrawn at Mark 16.<br/>
Replaced by <a class="rout" href="../F07/f07gef.xml">F07GEF (DPPTRS)</a> and <a class="rout" href="../F07/f07pef.xml">F07PEF (DSPTRS)</a>.</div><div class="paramtext">May be replaced by calls to <a class="rout" href="../F06/f06eff.xml">F06EFF (DCOPY)</a>, and <a class="rout" href="../F07/f07gef.xml">F07GEF (DPPTRS)</a> or <a class="rout" href="../F07/f07pef.xml">F07PEF (DSPTRS)</a>, depending on whether the symmetric matrix has previously been factorized by <a class="rout" href="../F07/f07gdf.xml">F07GDF (DPPTRF)</a> or <a class="rout" href="../F07/f07pdf.xml">F07PDF (DSPTRF)</a> (see the description above of how to replace calls to <a class="wdrn" href="../GENINT/replace.xml#F01BQF">F01BQF</a>.  </div>
<table class="standard-100"><tr>
<td style="width:2.1em;" valign="baseline">(a)</td>
<td valign="top">where the symmetric matrix has been factorized by <a class="rout" href="../F07/f07gdf.xml">F07GDF (DPPTRF)</a>
<pre class="verbatim">
Old: CALL F04AQF(N,M,RL,D,B,X)
New: CALL DCOPY(N,B,1,X,1)
     CALL DPPTRS('Lower',N,1,RL,X,N,INFO)</pre></td>
</tr><tr>
<td style="width:2.1em;" valign="baseline">(b)</td>
<td valign="top">where the symmetric matrix has been factorized by
<a class="rout" href="../F07/f07pdf.xml">F07PDF (DSPTRF)</a>
<pre class="verbatim">
Old: CALL F04AQF(N,M,RL,D,B,X)
New: CALL DCOPY(N,B,1,X,1)
     CALL DSPTRS('Lower',N,1,RL,IPIV,X,N,INFO)</pre></td>
</tr></table>
<div class="paramtext">In both (a) and (b), the array <a class="arg" href="../F07/f07gef.xml#AP">RL</a> must be as returned by the relevant factorization routine.  The INTEGER parameter <a class="arg" href="../F07/f07pef.xml#INFO">INFO</a> is a diagnostic parameter.  The INTEGER array <a class="arg" href="../F07/f07pdf.xml#IPIV">IPIV</a> in (b) must be as returned by <a class="rout" href="../F07/f07pdf.xml">F07PDF (DSPTRF)</a>.  The dimension parameter M, and the array D are no longer required.  If the right-hand-side array B is not needed after solution of the equations, the call to <a class="rout" href="../F06/f06eff.xml">F06EFF (DCOPY)</a>, which simply copies array B to <a class="arg" href="../F07/f07gef.xml#B">X</a>, is not necessary.  References to <a class="arg" href="../F07/f07gef.xml#B">X</a> in the calls of <a class="rout" href="../F07/f07gef.xml">F07GEF (DPPTRS)</a>  and <a class="rout" href="../F07/f07pef.xml">F07PEF (DSPTRS)</a> may then be replaced by references to B, in which case B will be overwritten by the solution vector.</div><h3 class="standard"><a class="sec" name="F04ARF" id="F04ARF"/>F04ARF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 23.<br/>
Replaced by <a class="rout" href="../F07/f07aaf.xml">F07AAF (DGESV)</a>.</div><pre class="verbatim">
Old: CALL F04ARF(A,LDA,B,N,C,WKSPCE,IFAIL)
New: CALL DGESV(N,1,A,LDA,IPIV,B,N,INFO)
     IF (INFO.EQ.0) THEN
c      Answer now in B
       ...
</pre><h3 class="standard"><a class="sec" name="F04AWF" id="F04AWF"/>F04AWF</h3><div class="paramtext">
Withdrawn at Mark 17.<br/>
Replaced by <a class="rout" href="../F07/f07fsf.xml">F07FSF (ZPOTRS)</a>.</div><pre class="verbatim">
Old: CALL F04AWF(N,IR,A,IA,P,B,IB,X,IX)
New: CALL F06TFF('General',N,IR,B,IB,X,IX)
     CALL ZPOTRS('Upper',N,IR,A,IA,X,IX,INFO)</pre>
<div class="paramtext">It is assumed that the matrix has been factorized by a call of <a class="rout" href="../F07/f07frf.xml">F07FRF (ZPOTRF)</a> rather than <a class="wdrn" href="../GENINT/replace.xml#F01BNF">F01BNF</a>; see the the <a class="chapint" href="../F01/f01intro.xml">F01 Chapter Introduction</a> for details.  <a class="arg" href="../F07/f07fsf.xml#A">A</a> is the factorized matrix as returned by <a class="rout" href="../F07/f07frf.xml">F07FRF (ZPOTRF)</a>.  The array P is no longer required.  <a class="arg" href="../F07/f07fsf.xml#INFO">INFO</a> is an INTEGER diagnostic parameter; see the <a class="rout" href="../F07/f07fsf.xml">F07FSF (ZPOTRS)</a> routine document for details.  If the original right-hand side array B is no longer required, the call to <a class="rout" href="../F06/f06tff.xml">F06TFF</a> is not necessary, and references to B and <a class="arg" href="../F07/f07fsf.xml#LDB">IX</a> in the call of <a class="rout" href="../F07/f07fsf.xml">F07FSF (ZPOTRS)</a> may be replaced by references to B and IB, in which case B will be overwritten by the solution.</div><h3 class="standard"><a class="sec" name="F04AYF" id="F04AYF"/>F04AYF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F07/f07aef.xml">F07AEF (DGETRS)</a>.</div><pre class="verbatim">
Old: CALL F04AYF(N,IR,A,IA,P,B,IB,IFAIL)
New: CALL DGETRS('No Transpose',N,IR,A,IA,IPIV,B,IB,IFAIL)</pre>
<div class="paramtext">It is assumed that the matrix has been factorized by a call of <a class="rout" href="../F07/f07adf.xml">F07ADF (DGETRF)</a> rather than <a class="wdrn" href="../GENINT/replace.xml#F01BTF">F01BTF</a>.  <a class="arg" href="../F07/f07aef.xml#IPIV">IPIV</a> is an INTEGER array of length <a class="arg" href="../F07/f07aef.xml#N">N</a>, and the array P is no longer required.</div><h3 class="standard"><a class="sec" name="F04AZF" id="F04AZF"/>F04AZF</h3><div class="paramtext">
Withdrawn at Mark 17.<br/>
Replaced by <a class="rout" href="../F07/f07fef.xml">F07FEF (DPOTRS)</a>.</div><pre class="verbatim">
Old: CALL F04AZF(N,IR,A,IA,P,B,IB,IFAIL)
New: CALL DPOTRS('Upper',N,IR,A,IA,B,IB,IFAIL)</pre>
<div class="paramtext">It is assumed that the matrix has been factorized by a call of <a class="rout" href="../F07/f07fdf.xml">F07FDF (DPOTRF)</a> rather than <a class="wdrn" href="../GENINT/replace.xml#F01BXF">F01BXF</a>.  The array P is no longer required.</div><h3 class="standard"><a class="sec" name="F04EAF" id="F04EAF"/>F04EAF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 23.<br/>
Replaced by <a class="rout" href="../F07/f07caf.xml">F07CAF (DGTSV)</a>.</div><pre class="verbatim">
Old: CALL F04EAF(N,D,DU,DL,B,IFAIL)
New: CALL DGTSV(N,1,DL(2),D,DU(2),B,N,INFO)
     IF (INFO.EQ.0) THEN
c      Answer now in B
       ...
</pre><h3 class="standard"><a class="sec" name="F04FAF" id="F04FAF"/>F04FAF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 23.<br/>
Replaced by <a class="rout" href="../F07/f07jaf.xml">F07JAF (DPTSV)</a>, <a class="rout" href="../F07/f07jdf.xml">F07JDF (DPTTRF)</a> and <a class="rout" href="../F07/f07jef.xml">F07JEF (DPTTRS)</a>.</div><pre class="verbatim">
Old: CALL F04FAF(JOB,N,D,E,B,IFAIL)
New: IF (JOB.EQ.0)
       CALL DPTSV(N,1,D,E(2),B,1,INFO)
     IF (INFO.EQ.0) THEN
c      Answer now in B
       ...
</pre><h3 class="standard"><a class="sec" name="F04JAF" id="F04JAF"/>F04JAF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 23.<br/>
Replaced by <a class="rout" href="../F08/f08kaf.xml">F08KAF (DGELSS)</a>.</div><pre class="verbatim">
Old: CALL F04JAF(M,N,A,LDA,B,TOL,SIGMA,IRANK,WORK,LWORK,IFAIL)
New: CALL DGELSS(M,N,1,A,LDA,B,1,S,RCOND,IRANK,WORK,LWORK,INFO)
c    Note workspace requirements are different.
     IF (INFO.EQ.0) THEN
C      Answer now in B
C      Singular values now in S, not WORK.
C      The standard error is not computed
       ...
</pre><h3 class="standard"><a class="sec" name="F04JDF" id="F04JDF"/>F04JDF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 23.<br/>
Replaced by <a class="rout" href="../F08/f08kaf.xml">F08KAF (DGELSS)</a>.</div><pre class="verbatim">
Old: CALL F04JDF(M,N,A,LDA,B,TOL,SIGMA,IRANK,WORK,LWORK,IFAIL)
New: CALL DGELSS(M,N,1,A,LDA,B,1,S,RCOND,IRANK,WORK,LWORK,INFO)
c    Note workspace requirements are different.
     IF (INFO.EQ.0) THEN
C      Answer now in B
C      Singular values now in S, not WORK.
C      The standard error is not computed
       ...
</pre><h3 class="standard"><a class="sec" name="F04JLF" id="F04JLF"/>F04JLF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 23.<br/>
Replaced by <a class="rout" href="../F08/f08zbf.xml">F08ZBF (DGGGLM)</a>.</div><pre class="verbatim">
Old: CALL F04JLF(M,N,P,A,LDA,B,LDB,D,X,Y,WORK,LWORK,IFAIL)
New: CALL DGGGLM(M,N,P,A,LDA,B,LDB,D,X,Y,WORK,LWORK,INFO)
C    Slight workspace differences
     IF (INFO.EQ.0) THEN
       ...
</pre><h3 class="standard"><a class="sec" name="F04JMF" id="F04JMF"/>F04JMF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 23.<br/>
Replaced by <a class="rout" href="../F08/f08zaf.xml">F08ZAF (DGGLSE)</a>.</div><pre class="verbatim">
Old: CALL F04JMF(M,N,P,A,LDA,B,LDB,C,D,X,WORK,LWORK,IFAIL)
New: CALL DGGLSE(M,N,P,A,LDA,B,LDB,C,D,X,WORK,LWORK,INFO)
C    Slight workspace differences
     IF (INFO.EQ.0) THEN
       ...
</pre><h3 class="standard"><a class="sec" name="F04KLF" id="F04KLF"/>F04KLF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 23.<br/>
Replaced by <a class="rout" href="../F08/f08zpf.xml">F08ZPF (ZGGGLM)</a>.</div><pre class="verbatim">
Old: CALL F04KLF(M,N,P,A,LDA,B,LDB,D,X,Y,WORK,LWORK,IFAIL)
New: CALL ZGGGLM(M,N,P,A,LDA,B,LDB,D,X,Y,WORK,LWORK,INFO)
     IF (INFO.EQ.0) THEN
       ...
</pre><h3 class="standard"><a class="sec" name="F04KMF" id="F04KMF"/>F04KMF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 23.<br/>
Replaced by <a class="rout" href="../F08/f08znf.xml">F08ZNF (ZGGLSE)</a>.</div><pre class="verbatim">
Old: CALL F04KMF(M,N,P,A,LDA,B,LDB,C,D,X,WORK,LWORK,IFAIL)
New: CALL ZGGLSE(M,N,P,A,LDA,B,LDB,C,D,X,WORK,LWORK,INFO)
     IF (INFO.EQ.0) THEN
       ...
</pre><h3 class="standard"><a class="sec" name="F04LDF" id="F04LDF"/>F04LDF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../F07/f07bef.xml">F07BEF (DGBTRS)</a>.</div><pre class="verbatim">
Old: CALL F04LDF(N,M1,M2,IR,A,IA,AL,IL,IN,B,IB,IFAIL)
New: CALL DGBTRS('No Transpose',N,M1,M2,IR,A,IA,IN,B,IB,IFAIL)</pre>
<div class="paramtext">It is assumed that the matrix has been factorized by a call of <a class="rout" href="../F07/f07bdf.xml">F07BDF (DGBTRF)</a> rather than <a class="wdrn" href="../GENINT/replace.xml#F01LBF">F01LBF</a>.  The array AL and its associated dimension parameter IL are no longer required.</div><h3 class="standard"><a class="sec" name="F04MAF" id="F04MAF"/>F04MAF</h3><div class="paramtext">
Withdrawn at Mark 19.<br/>
Replaced by <a class="rout" href="../F11/f11jcf.xml">F11JCF</a>.</div><div class="paramtext">Existing programs should be modified to call <a class="rout" href="../F11/f11jcf.xml">F11JCF</a>.  The interfaces are significantly different and therefore precise details of a replacement call cannot be given.  Please consult the appropriate routine document.</div><h3 class="standard"><a class="sec" name="F04MBF" id="F04MBF"/>F04MBF</h3><div class="paramtext">
Withdrawn at Mark 19.<br/>
Replaced by <a class="rout" href="../F11/f11gdf.xml">F11GDF</a>, <a class="rout" href="../F11/f11gef.xml">F11GEF</a> and <a class="rout" href="../F11/f11gff.xml">F11GFF</a> (or <a class="rout" href="../F11/f11jcf.xml">F11JCF</a> or <a class="rout" href="../F11/f11jef.xml">F11JEF</a>).</div><div class="paramtext">If a user-defined preconditioner is required existing programs should be modified to call <a class="rout" href="../F11/f11gdf.xml">F11GDF</a>, <a class="rout" href="../F11/f11gef.xml">F11GEF</a> and <a class="rout" href="../F11/f11gff.xml">F11GFF</a>.  Otherwise <a class="rout" href="../F11/f11jcf.xml">F11JCF</a> or <a class="rout" href="../F11/f11jef.xml">F11JEF</a> may be used.  The interfaces for these routines are significantly different from that for <a class="wdrn" href="../GENINT/replace.xml#F04MBF">F04MBF</a> and therefore precise details of a replacement call cannot be given.  Please consult the appropriate routine document.</div><h3 class="standard"><a class="sec" name="F04NAF" id="F04NAF"/>F04NAF</h3><div class="paramtext">
Withdrawn at Mark 17.<br/>
Replaced by <a class="rout" href="../F06/f06skf.xml">F06SKF (ZTBSV)</a> and <a class="rout" href="../F07/f07bsf.xml">F07BSF (ZGBTRS)</a>.</div><pre class="verbatim">
Old: CALL F04NAF(JOB,N,ML,MU,A,NRA,IN,B,TOL,IFAIL)
New: JOB = ABS(JOB)
     IF (JOB.EQ.1) THEN
        CALL ZGBTRS('No Transpose',N,ML,MU,1,A,NRA,IN,B,N,IFAIL)
     ELSE IF (JOB.EQ.2) THEN
        CALL ZGBTRS('Conjugate Transpose',N,ML,MU,1,A,NRA,IN,B,N,IFAIL)
     ELSE IF (JOB.EQ.3) THEN
        CALL ZTBSV('Upper','No Transpose','Non-unit',N,ML+MU,A,NRA,B,1)
     END IF</pre>
<div class="paramtext">It is assumed that the matrix has been factorized by a call of <a class="rout" href="../F07/f07brf.xml">F07BRF (ZGBTRF)</a> rather than <a class="wdrn" href="../GENINT/replace.xml#F01NAF">F01NAF</a>.  The replacement routines do not have the functionality to perturb diagonal elements of the triangular factor <m:math>
 <m:mi>U</m:mi>
</m:math>, as specified by a negative value of JOB in <a class="wdrn" href="../GENINT/replace.xml#F04NAF">F04NAF</a>.  The parameter TOL is therefore no longer useful.  If this functionality is genuinely required, please contact <a class="url" href="http://www.nag.co.uk">NAG</a>.</div><h2 class="standard"><a class="sec" name="F11" id="F11"/>F11 &#8211; Large Scale Linear Systems</h2><h3 class="standard"><a class="sec" name="F11BAF" id="F11BAF"/>F11BAF</h3><div class="paramtext">
Withdrawn at Mark 21.<br/>
Replaced by <a class="rout" href="../F11/f11bdf.xml">F11BDF</a>.</div><pre class="verbatim">
Old: CALL F11BAF(METHOD,PRECON,NORM,WEIGHT,ITERM,N,M,TOL,MAXITN,
    +            ANORM,SIGMAX,MONIT,LWREQ,IFAIL)
New: CALL F11BDF(METHOD,PRECON,NORM,WEIGHT,ITERM,N,M,TOL,MAXITN,
    +            ANORM,SIGMAX,MONIT,WORK,LWORK,LWREQ,IFAIL)</pre>
<div class="paramtext"><a class="rout" href="../F11/f11bdf.xml">F11BDF</a> contains two additional parameters as follows:
<ul class="listind"><li class="listind"><a class="arg" href="../F11/f11bdf.xml#WORK">WORK</a>(<a class="arg" href="../F11/f11bdf.xml#LWORK">LWORK</a>) <m:math>
</m:math>&#160;&#8211; <span class="bitalic">double precision</span> array.</li><li class="listind"><a class="arg" href="../F11/f11bdf.xml#LWORK">LWORK</a> &#8211; INTEGER.</li></ul>
</div>
<div class="paramtext">See the routine document for further information.</div><h3 class="standard"><a class="sec" name="F11BBF" id="F11BBF"/>F11BBF</h3><div class="paramtext">
Withdrawn at Mark 21.<br/>
Replaced by <a class="rout" href="../F11/f11bef.xml">F11BEF</a>.</div><pre class="verbatim">
Old: CALL F11BBF(IREVCM,U,V,WORK,LWORK,IFAIL)
New: CALL F11BEF(IREVCM,U,V,WGT,WORK,LWORK,IFAIL)</pre>
<div class="paramtext"><a class="arg" href="../F11/f11bef.xml#WGT">WGT</a> must be a one-dimensional <span class="bitalic">double precision</span> array of length at least <m:math>
 <m:mi>n</m:mi>
</m:math>&#160;(the order of the matrix) if weights are to be used in the termination criterion, and <m:math>
 <m:mn>1</m:mn>
</m:math>&#160;otherwise.  Note that the call to <a class="rout" href="../F11/f11bef.xml">F11BEF</a> requires the weights to be supplied in <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../F11/f11bef.xml#WGT"><m:mi mathcolor="#EE0000" mathvariant="bold">WGT</m:mi></m:maction><m:mfenced separators=""><m:mn>1</m:mn><m:mo>:</m:mo><m:mi>n</m:mi></m:mfenced>
</m:math>&#160;rather than <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../F11/f11bef.xml#WORK"><m:mi mathcolor="#EE0000" mathvariant="bold">WORK</m:mi></m:maction><m:mfenced separators=""><m:mn>1</m:mn><m:mo>:</m:mo><m:mi>n</m:mi></m:mfenced>
</m:math>.  The minimum value of the parameter <a class="arg" href="../F11/f11bef.xml#LWORK">LWORK</a> may also need to be changed.</div><h3 class="standard"><a class="sec" name="F11BCF" id="F11BCF"/>F11BCF</h3><div class="paramtext">
Withdrawn at Mark 21.<br/>
Replaced by <a class="rout" href="../F11/f11bff.xml">F11BFF</a>.</div><pre class="verbatim">
Old: CALL F11BCF(ITN,STPLHS,STPRHS,ANORM,SIGMAX,IFAIL)
New: CALL F11BFF(ITN,STPLHS,STPRHS,ANORM,SIGMAX,WORK,LWORK,IFAIL)</pre>
<div class="paramtext"><a class="rout" href="../F11/f11bff.xml">F11BFF</a> contains two additional parameters as follows:
<ul class="listind"><li class="listind"><m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../F11/f11bff.xml#WORK"><m:mi mathcolor="#EE0000" mathvariant="bold">WORK</m:mi></m:maction><m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F11/f11bff.xml#LWORK"><m:mi mathcolor="#EE0000" mathvariant="bold">LWORK</m:mi></m:maction></m:mfenced>
</m:math>&#160;&#8211; <span class="bitalic">double precision</span> array.</li><li class="listind"><a class="arg" href="../F11/f11bff.xml#LWORK">LWORK</a> &#8211; INTEGER.</li></ul> 
</div>
<div class="paramtext">See the routine document for further information.</div><h3 class="standard"><a class="sec" name="F11GAF" id="F11GAF"/>F11GAF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../F11/f11gdf.xml">F11GDF</a>.</div><pre class="verbatim">
Old: CALL F11GAF(METHOD,PRECON,SIGCMP,NORM,WEIGHT,ITERM,N,TOL,MAXITN,
    +            ANORM,SIGMAX,SIGTOL,MAXITS,MONIT,LWREQ,IFAIL)
New: CALL F11GDF(METHOD,PRECON,SIGCMP,NORM,WEIGHT,ITERM,N,TOL,MAXITN,
    +            ANORM,SIGMAX,SIGTOL,MAXITS,MONIT,LWREQ,WORK,LWORK,IFAIL)
</pre><div class="paramtext"><a class="rout" href="../F11/f11gdf.xml">F11GDF</a> contains two additional parameters as follows:
<ul class="listind"><li class="listind"><m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../F11/f11gdf.xml#WORK"><m:mi mathcolor="#EE0000" mathvariant="bold">WORK</m:mi></m:maction><m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F11/f11gdf.xml#LWORK"><m:mi mathcolor="#EE0000" mathvariant="bold">LWORK</m:mi></m:maction></m:mfenced>
</m:math>&#160;&#8211; <span class="bitalic">double precision</span> array.</li><li class="listind"><a class="arg" href="../F11/f11gdf.xml#LWORK">LWORK</a> &#8211; INTEGER.</li></ul>
</div><div class="paramtext">See the routine document for further information.</div><h3 class="standard"><a class="sec" name="F11GBF" id="F11GBF"/>F11GBF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../F11/f11gef.xml">F11GEF</a>.</div><pre class="verbatim">
Old: CALL F11GBF(IREVCM,U,V,WORK,LWORK,IFAIL)
New: CALL F11GEF(IREVCM,U,V,WGT,WORK,LWORK,IFAIL)
</pre><div class="paramtext"><a class="arg" href="../F11/f11gef.xml#WGT">WGT</a> must be a one-dimensional <span class="bitalic">double precision</span> array of length at least <m:math>
 <m:mi>n</m:mi>
</m:math>&#160;(the order of the matrix) if weights are to be used in the termination criterion, and <m:math>
 <m:mn>1</m:mn>
</m:math>&#160;otherwise.  Note that the call to <a class="rout" href="../F11/f11gef.xml">F11GEF</a> requires the weights to be supplied in <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../F11/f11gef.xml#WGT"><m:mi mathcolor="#EE0000" mathvariant="bold">WGT</m:mi></m:maction><m:mfenced separators=""><m:mn>1</m:mn><m:mo>:</m:mo><m:mi>n</m:mi></m:mfenced>
</m:math>&#160;rather than <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../F11/f11gef.xml#WORK"><m:mi mathcolor="#EE0000" mathvariant="bold">WORK</m:mi></m:maction><m:mfenced separators=""><m:mn>1</m:mn><m:mo>:</m:mo><m:mi>n</m:mi></m:mfenced>
</m:math>.  The minimum value of the parameter <a class="arg" href="../F11/f11gef.xml#LWORK">LWORK</a> may also need to be changed.</div><h3 class="standard"><a class="sec" name="F11GCF" id="F11GCF"/>F11GCF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../F11/f11gff.xml">F11GFF</a>.</div><pre class="verbatim">
Old: CALL F11GCF(ITN,STPLHS,STPRHS,ANORM,SIGMAX,ITS,SIGERR,IFAIL)
New: CALL F11GFF(ITN,STPLHS,STPRHS,ANORM,SIGMAX,ITS,SIGERR,
    +            WORK,LWORK,IFAIL)
</pre><div class="paramtext"><a class="rout" href="../F11/f11gff.xml">F11GFF</a> contains two additional parameters as follows:
<ul class="listind"><li class="listind"><m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../F11/f11gff.xml#WORK"><m:mi mathcolor="#EE0000" mathvariant="bold">WORK</m:mi></m:maction><m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../F11/f11gff.xml#LWORK"><m:mi mathcolor="#EE0000" mathvariant="bold">LWORK</m:mi></m:maction></m:mfenced>
</m:math>&#160;&#8211; <span class="bitalic">double precision</span> array.</li><li class="listind"><a class="arg" href="../F11/f11gff.xml#LWORK">LWORK</a> &#8211; INTEGER.</li></ul>
</div><div class="paramtext">See the routine document for further information.</div><h2 class="standard"><a class="sec" name="G01" id="G01"/>G01 &#8211; Simple Calculations on Statistical Data</h2><h3 class="standard"><a class="sec" name="G01BAF" id="G01BAF"/>G01BAF</h3><div class="paramtext">
Withdrawn at Mark 16.<br/>
Replaced by <a class="rout" href="../G01/g01ebf.xml">G01EBF</a>.</div><pre class="verbatim">
Old: P = G01BAF(IDF,T,IFAIL)
New: P = G01EBF('Lower-tail',T,<span class="bitalic">real</span>(IDF),IFAIL)</pre><h3 class="standard"><a class="sec" name="G01BBF" id="G01BBF"/>G01BBF</h3><div class="paramtext">
Withdrawn at Mark 16.<br/>
Replaced by <a class="rout" href="../G01/g01edf.xml">G01EDF</a>.</div><pre class="verbatim">
Old: P = G01BBF(I1,I2,A,IFAIL)
New: P = G01EDF('Upper-tail',A,<span class="bitalic">real</span>(I1),<span class="bitalic">real</span>(I2),IFAIL)</pre><h3 class="standard"><a class="sec" name="G01BCF" id="G01BCF"/>G01BCF</h3><div class="paramtext">
Withdrawn at Mark 16.<br/>
Replaced by <a class="rout" href="../G01/g01ecf.xml">G01ECF</a>.</div><pre class="verbatim">
Old: P = G01BCF(X,N,IFAIL)
New: P = G01ECF('Upper-tail',X,<span class="bitalic">real</span>(N),IFAIL)</pre><h3 class="standard"><a class="sec" name="G01BDF" id="G01BDF"/>G01BDF</h3><div class="paramtext">
Withdrawn at Mark 16.<br/>
Replaced by <a class="rout" href="../G01/g01eef.xml">G01EEF</a>.</div><pre class="verbatim">
Old: P = G01BDF(X,A,B,IFAIL)
New: CALL G01EEF(X,A,B,TOL,P,Q,PDF,IFAIL)</pre>
<div class="paramtext">where <a class="arg" href="../G01/g01eef.xml#TOL">TOL</a> is set to the accuracy required and <a class="arg" href="../G01/g01eef.xml#Q">Q</a> and <a class="arg" href="../G01/g01eef.xml#PDF">PDF</a> are additional output quantities.</div>
<div class="paramtext"><b>Note:</b> the values of <a class="arg" href="../G01/g01eef.xml#A">A</a> and <a class="arg" href="../G01/g01eef.xml#B">B</a> must be <m:math>
 <m:mo>&#8804;</m:mo><m:msup><m:mn>10</m:mn><m:mn>6</m:mn></m:msup>
</m:math>.</div><h3 class="standard"><a class="sec" name="G01CAF" id="G01CAF"/>G01CAF</h3><div class="paramtext">
Withdrawn at Mark 16.<br/>
Replaced by <a class="rout" href="../G01/g01fbf.xml">G01FBF</a>.</div><pre class="verbatim">
Old: T = G01CAF(P,N,IFAIL)
New: T = G01FBF('Lower-tail',P,<span class="bitalic">real</span>(N),IFAIL)</pre><h3 class="standard"><a class="sec" name="G01CBF" id="G01CBF"/>G01CBF</h3><div class="paramtext">
Withdrawn at Mark 16.<br/>
Replaced by <a class="rout" href="../G01/g01fdf.xml">G01FDF</a>.</div><pre class="verbatim">
Old: F = G01CBF(P,M,N,IFAIL)
New: F = G01FDF(P,<span class="bitalic">real</span>(M),<span class="bitalic">real</span>(N),IFAIL)</pre><h3 class="standard"><a class="sec" name="G01CCF" id="G01CCF"/>G01CCF</h3><div class="paramtext">
Withdrawn at Mark 16.<br/>
Replaced by <a class="rout" href="../G01/g01fcf.xml">G01FCF</a>.</div><pre class="verbatim">
Old: X = G01CCF(P,N,IFAIL)
New: X = G01FCF(P,<span class="bitalic">real</span>(N),IFAIL)</pre><h3 class="standard"><a class="sec" name="G01CDF" id="G01CDF"/>G01CDF</h3><div class="paramtext">
Withdrawn at Mark 16.<br/>
Replaced by <a class="rout" href="../G01/g01fef.xml">G01FEF</a>.</div><pre class="verbatim">
Old: X = G01CDF(P,A,B,IFAIL)
New: X = G01FEF(P,A,B,TOL,IFAIL)</pre>
<div class="paramtext">where <a class="arg" href="../G01/g01fef.xml#TOL">TOL</a> is set to the accuracy required.</div>
<div class="paramtext"><b>Note:</b> the values of <a class="arg" href="../G01/g01fef.xml#A">A</a> and <a class="arg" href="../G01/g01fef.xml#B">B</a> must be <m:math>
 <m:mo>&#8804;</m:mo><m:msup><m:mn>10</m:mn><m:mn>6</m:mn></m:msup>
</m:math>.</div><h3 class="standard"><a class="sec" name="G01CEF" id="G01CEF"/>G01CEF</h3><div class="paramtext">
Withdrawn at Mark 18.<br/>
Replaced by <a class="rout" href="../G01/g01faf.xml">G01FAF</a>.</div><pre class="verbatim">
Old: X = G01CEF(P,IFAIL)
New: X = G01FAF('Lower-tail',P,IFAIL)</pre><h2 class="standard"><a class="sec" name="G02" id="G02"/>G02 &#8211; Correlation and Regression Analysis</h2><h3 class="standard"><a class="sec" name="G02CJF" id="G02CJF"/>G02CJF</h3><div class="paramtext">
Withdrawn at Mark 16.<br/>
Replaced by <a class="rout" href="../G02/g02daf.xml">G02DAF</a> and <a class="rout" href="../G02/g02dgf.xml">G02DGF</a>.</div><pre class="verbatim">
Old:       CALL G02CJF(X,IX,Y,IY,N,M,IR,THETA,IT,SIGSQ,C,IC,IPIV,
      +            WK1,WK2,IFAIL)
New: C     set the first M elements of ISX to 1
           CALL F06DBF(M,1,ISX,1)
     C     THEN
           TOL = X02AJF()
           CALL G02DAF('Zero','Unweighted',N,X,IX,M,ISX,M,Y,WT,
          +            RSS,IDF,THETA,SE,COV,RES,H,C,IC,SVD,IRANK,
          +            P,TOL,WK,IFAIL)
           SIGSQ(1) = RSS/IDF
     C     there are two or more dependent variables,
     C     i.e., IR is greater than or equal to 2 then:
           D0 20 I = 2, IR
              CALL G02DGF('Unweighted',N,WT,RSS,IP,IRANK,COV,C,IC,SVD,
             +            P,Y(1,I),THETA(1,I),SE,RES,WK,IFAIL)
              SIGSQ(I) = RSS/IDF
        20 CONTINUE</pre>
<div class="paramtext">For unweighted regression, as is used here, <a class="arg" href="../G02/g02daf.xml#WT">WT</a> may be any <span class="bitalic">double precision</span> array and will not be referenced, e.g., SIGSQ could be used.</div>
<div class="paramtext">The array <a class="arg" href="../G02/g02daf.xml#Q">C</a> no longer contains
<m:math>
 <m:msup>
  <m:mfenced separators=""><m:msup><m:mi>X</m:mi><m:mi mathvariant="normal">T</m:mi></m:msup><m:mi>X</m:mi></m:mfenced>
  <m:mrow><m:mo>-</m:mo><m:mn>1</m:mn></m:mrow>
 </m:msup>
</m:math>;
however,
<m:math>
 <m:msup>
  <m:mfenced separators=""><m:msup><m:mi>X</m:mi><m:mi mathvariant="normal">T</m:mi></m:msup><m:mi>X</m:mi></m:mfenced>
  <m:mrow><m:mo>-</m:mo><m:mn>1</m:mn></m:mrow>
 </m:msup>
</m:math>&#160;scaled by <m:math>
 <m:msup><m:mover><m:mo>&#963;</m:mo><m:mo>^</m:mo></m:mover><m:mn>2</m:mn></m:msup>
</m:math>&#160;is returned in packed form in array <a class="arg" href="../G02/g02daf.xml#COV">COV</a>.  The upper triangular part of <a class="arg" href="../G02/g02daf.xml#Q">C</a> will now contain a factorization of <m:math>
 <m:msup><m:mi>X</m:mi><m:mi mathvariant="normal">T</m:mi></m:msup><m:mi>X</m:mi>
</m:math>.</div>
<div class="paramtext">The <span class="bitalic">double precision</span> arrays <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../G02/g02daf.xml#SE"><m:mi mathcolor="#EE0000" mathvariant="bold">SE</m:mi></m:maction><m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../G02/g02daf.xml#M"><m:mi mathcolor="#EE0000" mathvariant="bold">M</m:mi></m:maction></m:mfenced>
</m:math>, <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../G02/g02daf.xml#COV"><m:mi mathcolor="#EE0000" mathvariant="bold">COV</m:mi></m:maction>
 <m:mfenced separators="">
  <m:maction actiontype="link" dsi:type="simple" dsi:href="../G02/g02daf.xml#M"><m:mi mathcolor="#EE0000" mathvariant="bold">M</m:mi></m:maction>
  <m:mo>&#215;</m:mo> 
  <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../G02/g02daf.xml#M"><m:mi mathcolor="#EE0000" mathvariant="bold">M</m:mi></m:maction><m:mo>+</m:mo><m:mn>1</m:mn></m:mfenced>
  <m:mo>/</m:mo><m:mn>2</m:mn>
 </m:mfenced>
</m:math>, <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../G02/g02daf.xml#RES"><m:mi mathcolor="#EE0000" mathvariant="bold">RES</m:mi></m:maction><m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../G02/g02daf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>, <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../G02/g02daf.xml#H"><m:mi mathcolor="#EE0000" mathvariant="bold">H</m:mi></m:maction><m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../G02/g02daf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced>
</m:math>, <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../G02/g02daf.xml#P"><m:mi mathcolor="#EE0000" mathvariant="bold">P</m:mi></m:maction>
 <m:mfenced separators="">
  <m:maction actiontype="link" dsi:type="simple" dsi:href="../G02/g02daf.xml#M"><m:mi mathcolor="#EE0000" mathvariant="bold">M</m:mi></m:maction>
  <m:mo>&#215;</m:mo>
  <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../G02/g02daf.xml#M"><m:mi mathcolor="#EE0000" mathvariant="bold">M</m:mi></m:maction><m:mo>+</m:mo><m:mn>2</m:mn></m:mfenced>
 </m:mfenced>
</m:math>, the logical variable <a class="arg" href="../G02/g02daf.xml#SVD">SVD</a> and the INTEGER variable <a class="arg" href="../G02/g02daf.xml#IRANK">IRANK</a> are additional outputs.  There is also a single <span class="bitalic">double precision</span> workspace <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../G02/g02daf.xml#WK"><m:mi mathcolor="#EE0000" mathvariant="bold">WK</m:mi></m:maction>
 <m:mfenced separators="">
  <m:mn>5</m:mn>
  <m:mo>&#215;</m:mo>
  <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../G02/g02daf.xml#M"><m:mi mathcolor="#EE0000" mathvariant="bold">M</m:mi></m:maction><m:mo>-</m:mo><m:mn>1</m:mn></m:mfenced>
  <m:mo>+</m:mo>
  <m:maction actiontype="link" dsi:type="simple" dsi:href="../G02/g02daf.xml#M"><m:mi mathcolor="#EE0000" mathvariant="bold">M</m:mi></m:maction>
  <m:mo>&#215;</m:mo>
  <m:maction actiontype="link" dsi:type="simple" dsi:href="../G02/g02daf.xml#M"><m:mi mathcolor="#EE0000" mathvariant="bold">M</m:mi></m:maction>
 </m:mfenced>
</m:math>.</div><h2 class="standard"><a class="sec" name="G04" id="G04"/>G04 &#8211; Analysis of Variance</h2><h3 class="standard"><a class="sec" name="G04ADF" id="G04ADF"/>G04ADF</h3><div class="paramtext">
Withdrawn at Mark 17.<br/>
Replaced by <a class="rout" href="../G04/g04bcf.xml">G04BCF</a>.</div><pre class="verbatim">
Old: CALL G04ADF(DATA,VAR,AMR,AMC,AMT,LCODE,IA,N,NN)
New: IFAIL = 0
     CALL G04BCF(1,N,N,DATA,N,IT,GMEAN,AMT,TABL,6,C,NMAX,
    +            IREP,RPMEAN,AMR,AMC,R,EF,0.0,0,WK,IFAIL)</pre>
<div class="paramtext">The arrays <a class="arg" href="../G04/g04bcf.xml#RMEAN">AMR</a>, <a class="arg" href="../G04/g04bcf.xml#CMEAN">AMC</a> and <a class="arg" href="../G04/g04bcf.xml#TMEAN">AMT</a> contain the means of the rows, columns and treatments rather than the totals.  The values equivalent to those returned in the array VAR of <a class="wdrn" href="../GENINT/replace.xml#G04ADF">G04ADF</a> are returned in the second column of the two-dimensional array <a class="arg" href="../G04/g04bcf.xml#TABL">TABL</a> starting at the second row, e.g., <m:math>
 <m:mi mathvariant="normal">VAR</m:mi><m:mfenced separators=""><m:mn>1</m:mn></m:mfenced>
 <m:mo>=</m:mo> 
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../G04/g04bcf.xml#TABL"><m:mi mathcolor="#EE0000" mathvariant="bold">TABL</m:mi></m:maction><m:mfenced separators=""><m:mn>2</m:mn><m:mo>,</m:mo><m:mn>2</m:mn></m:mfenced>
</m:math>.  The two-dimensional integer array LCODE (containing the treatment codes) has been replaced by the one-dimensional array <a class="arg" href="../G04/g04bcf.xml#IT">IT</a>.  These arrays will be the equivalent if <m:math><m:mi mathvariant="normal">IA</m:mi><m:mo>=</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../G04/g04bcf.xml#NROW"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:math>.  The following additional declarations are required.</div>
<pre class="verbatim">
     <span class="bitalic">double precision</span> GMEAN
     INTEGER    IFAIL
     <span class="bitalic">double precision</span> C(NMAX,NMAX), EF(NMAX), TABL(6,5), R(NMAX*NMAX),
    +           RPMEAN(1), WK(NMAX*NMAX+NMAX)
     INTEGER    IREP(NMAX), IT(NMAX*NMAX)</pre>
<div class="paramtext">where <span class="mono">NMAX</span> is an integer such that <span class="mono">NMAX</span><m:math><m:mo>&#8805;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../G04/g04bcf.xml#NROW"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction>
</m:math>.</div><h3 class="standard"><a class="sec" name="G04AEF" id="G04AEF"/>G04AEF</h3><div class="paramtext">
Withdrawn at Mark 17.<br/>
Replaced by <a class="rout" href="../G04/g04bbf.xml">G04BBF</a>.</div><pre class="verbatim">
Old: CALL G04AEF(Y,N,K,NOBS,GBAR,GM,SS,IDF,F,FP,IFAIL)
New: CALL G04BBF(N,Y,0,K,IT,GM,BMEAN,GBAR,TABL,4,C,KMAX,NOBS,
    +            R,EF,0.0D0,0,WK,IFAIL)</pre>
<div class="paramtext">The values equivalent to those returned by <a class="wdrn" href="../GENINT/replace.xml#G04AEF">G04AEF</a> in the arrays IDF and SS are returned in the first and second columns of <a class="arg" href="../G04/g04bbf.xml#TABL">TABL</a> starting at row 2 and the values equivalent to those returned in the scalars F and FP are returned in <a class="arg" href="../G04/g04bbf.xml#TABL">TABL</a>(2,4) and <a class="arg" href="../G04/g04bbf.xml#TABL">TABL</a>(2,5) respectively.  <a class="arg" href="../G04/g04bbf.xml#IREP">NOBS</a> is output from <a class="rout" href="../G04/g04bbf.xml">G04BBF</a> rather than input.  The groups are indicated by the array <a class="arg" href="../G04/g04bbf.xml#IT">IT</a>.  The following code illustrates how <a class="arg" href="../G04/g04bbf.xml#IT">IT</a> can be computed from <a class="arg" href="../G04/g04bbf.xml#IREP">NOBS</a>. 
<pre class="verbatim">
      IJ = 0
   DO 40 I = 1, K
      DO 20 J = 1, NOBS(I)
         IJ = IJ + 1
         IT(IJ) = I
20    CONTINUE
40 CONTINUE</pre></div>
<div class="paramtext">The following additional declarations are required. 
<pre class="verbatim">
     <span class="bitalic">double precision</span> BMEAN(1),C(KMAX,KMAX),EF(KMAX),R(NMAX),TABL(4,5),
    +           WK(KMAX*KMAX+KMAX)
     INTEGER    IT(NMAX)</pre></div>
<div class="paramtext"><span class="mono">NMAX</span> and <span class="mono">KMAX</span> are integers such that <span class="mono">NMAX</span><m:math><m:mo>&#8805;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../G04/g04bbf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:math>&#160;and 
<span class="mono">KMAX</span><m:math><m:mo>&#8805;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../G04/g04bbf.xml#NT"><m:mi mathcolor="#EE0000" mathvariant="bold">K</m:mi></m:maction></m:math>.</div><h3 class="standard"><a class="sec" name="G04AFF" id="G04AFF"/>G04AFF</h3><div class="paramtext">
Withdrawn at Mark 17.<br/>
Replaced by <a class="rout" href="../G04/g04caf.xml">G04CAF</a>.</div><pre class="verbatim">
Old: CALL G04AFF(Y,IY1,IY2,M,NR,NC,ROW,COL,CELL,ICELL,GM,SS,IDF,F,FP,
    +            IFAIL)
New: CALL G04CAF(M*NR*NC,Y1,2,LFAC,1,2,0,6,TABL,ITOTAL,TMEAN,MAXT,E,
    +            IMEAN,SEMEAN,BMEAN,R,IWK,IFAIL)</pre>
<div class="paramtext"><a class="arg" href="../G04/g04caf.xml#Y">Y1</a> is a one-dimensional array containing the observations in the same order as Y, if <m:math>
 <m:mi mathvariant="normal">IY1</m:mi>
 <m:mo>=</m:mo>
</m:math>&#160;M and <m:math>
 <m:mi mathvariant="normal">IY2</m:mi>
 <m:mo>=</m:mo>
</m:math>&#160;NR then these are equivalent.  <a class="arg" href="../G04/g04caf.xml#LFAC">LFAC</a> is an integer array such that <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../G04/g04caf.xml#LFAC"><m:mi mathcolor="#EE0000" mathvariant="bold">LFAC</m:mi></m:maction><m:mfenced separators=""><m:mn>1</m:mn></m:mfenced>
 <m:mo>=</m:mo>
 <m:mi mathvariant="normal">NC</m:mi>
</m:math>&#160;and <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../G04/g04caf.xml#LFAC"><m:mi mathcolor="#EE0000" mathvariant="bold">LFAC</m:mi></m:maction><m:mfenced separators=""><m:mn>2</m:mn></m:mfenced>
 <m:mo>=</m:mo>
 <m:mi mathvariant="normal">NR</m:mi>
</m:math>.  The following indicates how the results equivalent to those produced by <a class="wdrn" href="../GENINT/replace.xml#G04AFF">G04AFF</a> can be extracted from the results produced by <a class="rout" href="../G04/g04caf.xml">G04CAF</a>.</div>
<pre class="verbatim">
     G04AFF       G04CAF

     ROW(i)       TMEAN(IMEAN(1)+i), i = 1,2,...,NR
      COL(j)       TMEAN(j),  j = 1,2,...,NC
     CELL(i,j)    TMEAN(IMEAN(2)+(j-1)*NR+i), i = 1,2,...,NR; j = 1,2,...,NC
     GM           BMEAN(1)
     SS(1)        TABL(3,2)
     SS(2)        TABL(2,2)
     SS(i)        TABL(4,2)
     IDF(1)       TABL(3,1)
     IDF(2)       TABL(2,1)
     IDF(i)       TABL(4,1)
     F(1)         TABL(3,4)
     F(2)         TABL(2,4)
     F(3)         TABL(4,4)
     FP(1)        TABL(3,5)
     FP(2)        TABL(2,5)
     FP(3)        TABL(4,5)</pre>
<div class="paramtext">Note how rows and columns have swapped.</div>
<div class="paramtext">The following additional declarations are required. 
<pre class="verbatim">
     <span class="bitalic">double precision</span> TABL(6,5), R(NMAX), TMEAN(MAXT), E(MAXT), BMEAN(1),
    +            SEMEAN(5)
     INTEGER     IMEAN(5), IWK(NMAX+6), LFAC(2)</pre></div>
<div class="paramtext"><span class="mono">NMAX</span> and <a class="arg" href="../G04/g04caf.xml#MAXT">MAXT</a> are integers such that 
<span class="mono">NMAX</span>
<m:math>
 <m:mo>&#8805;</m:mo> 
 <m:mi mathvariant="normal">M</m:mi>
 <m:mo>&#215;</m:mo>
 <m:mi mathvariant="normal">NR</m:mi>
 <m:mo>&#215;</m:mo>
 <m:mi mathvariant="normal">NC</m:mi>
</m:math>&#160;and 
<m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../G04/g04caf.xml#MAXT"><m:mi mathcolor="#EE0000" mathvariant="bold">MAXT</m:mi></m:maction>
 <m:mo>&#8805;</m:mo>
 <m:mi mathvariant="normal">NR</m:mi>
 <m:mo>+</m:mo>
 <m:mi mathvariant="normal">NC</m:mi>
 <m:mo>+</m:mo>
 <m:mi mathvariant="normal">NR</m:mi>
 <m:mo>&#215;</m:mo>
 <m:mi mathvariant="normal">NC</m:mi>
</m:math>.</div><h2 class="standard"><a class="sec" name="G05" id="G05"/>G05 &#8211; Random Number Generators</h2><h3 class="standard"><a class="sec" name="G05CAF" id="G05CAF"/>G05CAF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05saf.xml">G05SAF</a>.</div><pre class="verbatim">
Old:
    DO 20 I = 1, N
       X(I) = G05CAF(X(I))
20  CONTINUE
New: CALL G05SAF(N,STATE,X,IFAIL)
</pre><div class="paramtext">The integer array <a class="arg" href="../G05/g05saf.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05saf.xml">G05SAF</a> contains information on the base generator being used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05saf.xml">G05SAF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. 
The required length of the array <a class="arg" href="../G05/g05saf.xml#STATE">STATE</a> will depend on the base generator chosen during initialization.
Due to changes in the underlying code the sequence of values produced by <a class="rout" href="../G05/g05saf.xml">G05SAF</a> is likely to be different from those produced by <a class="wdrn" href="../GENINT/replace.xml#G05CAF">G05CAF</a>.</div><h3 class="standard"><a class="sec" name="G05CBF" id="G05CBF"/>G05CBF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05kff.xml">G05KFF</a>.</div><pre class="verbatim">
Old: CALL G05CBF(I)
New: LSEED = 1
     SEED(1) = I
     GENID = 1
     SUBID = 1
     CALL G05KFF(GENID,SUBID,SEED,LSEED,STATE,LSTATE,IFAIL)
</pre><div class="paramtext">The integer array <a class="arg" href="../G05/g05kff.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05kff.xml">G05KFF</a> contains information on the base generator being used. The base generator is chosen via the integer parameters <a class="arg" href="../G05/g05kff.xml#GENID">GENID</a> and <a class="arg" href="../G05/g05kff.xml#SUBID">SUBID</a>. The required length of the array <a class="arg" href="../G05/g05kff.xml#STATE">STATE</a> depends on the base generator chosen. Due to changes in the underlying code a sequence of values produced by using a random number generator initialized via a call to <a class="rout" href="../G05/g05kff.xml">G05KFF</a> is likely to be different to a sequence produced by a generator initialized by <a class="wdrn" href="../GENINT/replace.xml#G05CBF">G05CBF</a>, even if the same value for <a class="arg" href="../G05/g05kff.xml#SEED">I</a> is used.</div><h3 class="standard"><a class="sec" name="G05CCF" id="G05CCF"/>G05CCF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>.</div><pre class="verbatim">
Old: CALL G05CCF
New: GENID = 1
     SUBID = 1
     CALL G05KGF(GENID,SUBID,STATE,LSTATE,IFAIL)
</pre><div class="paramtext">The integer array <a class="arg" href="../G05/g05kgf.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05kgf.xml">G05KGF</a> contains information on the base generator being used. The base generator is chosen via the integer parameters <a class="arg" href="../G05/g05kgf.xml#GENID">GENID</a> and <a class="arg" href="../G05/g05kgf.xml#SUBID">SUBID</a>. The required length of the array <a class="arg" href="../G05/g05kgf.xml#STATE">STATE</a> depends on the base generator chosen.
</div><h3 class="standard"><a class="sec" name="G05CFF" id="G05CFF"/>G05CFF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../F06/f06dff.xml">F06DFF</a>.</div><pre class="verbatim">
Old: CALL G05CFF(IA,NI,XA,NX,IFAIL)
New: LSTATE = STATE(1)
     CALL F06DFF(LSTATE,STATE,1,CSTATE,1)
</pre><div class="paramtext">The state of the base generator for the group of routines <a class="rout" href="../G05/g05kff.xml">G05KFF</a>, <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>, <a class="rout" href="../G05/g05khf.xml">G05KHF</a>, <a class="rout" href="../G05/g05kjf.xml">G05KJF</a>, <a class="rout" href="../G05/g05ncf.xml">G05NCF</a>, <a class="rout" href="../G05/g05ndf.xml">G05NDF</a>, <a class="rout" href="../G05/g05pdf.xml">G05PDF</a>&#8211;<a class="rout" href="../G05/g05pzf.xml">G05PZF</a>, <a class="rout" href="../G05/g05rcf.xml">G05RCF</a>&#8211;<a class="rout" href="../G05/g05rzf.xml">G05RZF</a>, G05S and G05T can be saved by simply creating a local copy of the array STATE. The first element of the STATE array contains the number of elements that are used by the random number generating routines, therefore either this number of elements can be copied, or the whole array (as defined in the calling program).</div><h3 class="standard"><a class="sec" name="G05CGF" id="G05CGF"/>G05CGF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../F06/f06dff.xml">F06DFF</a>.</div><pre class="verbatim">
Old: CALL G05CGF(IA,NI,XA,NX,IFAIL)
New: LSTATE = CSTATE(1)
     CALL F06DFF(LSTATE,CSTATE,1,STATE,1)
</pre><div class="paramtext">The state of the base generator for the group of routines <a class="rout" href="../G05/g05kff.xml">G05KFF</a>, <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>, <a class="rout" href="../G05/g05khf.xml">G05KHF</a>, <a class="rout" href="../G05/g05kjf.xml">G05KJF</a>, <a class="rout" href="../G05/g05ncf.xml">G05NCF</a>, <a class="rout" href="../G05/g05ndf.xml">G05NDF</a>, <a class="rout" href="../G05/g05pdf.xml">G05PDF</a>&#8211;<a class="rout" href="../G05/g05pzf.xml">G05PZF</a>, <a class="rout" href="../G05/g05rcf.xml">G05RCF</a>&#8211;<a class="rout" href="../G05/g05rzf.xml">G05RZF</a>, G05S and G05T can be restored by simply copying back the previously saved copy of the STATE array. The first element of the STATE array contains the number of elements that are used by the random number generating routines, therefore either this number of elements can be copied, or the whole array (as defined in the calling program).</div><h3 class="standard"><a class="sec" name="G05DAF" id="G05DAF"/>G05DAF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05sqf.xml">G05SQF</a>.</div><pre class="verbatim">
Old: DO 10 I = 1, N
        X(I) = G05DAF(AA,BB)
  10 CONTINUE
New: A = MIN(AA,BB)
     B = MAX(AA,BB)
     IFAIL = 0
     CALL G05SQF(N,A,B,STATE,X,IFAIL)
</pre><div class="paramtext">The old routine <a class="wdrn" href="../GENINT/replace.xml#G05DAF">G05DAF</a> returns a single variate at a time, whereas the new routine <a class="rout" href="../G05/g05sqf.xml">G05SQF</a> returns a vector of <a class="arg" href="../G05/g05sqf.xml#N">N</a> values in one go. In <a class="wdrn" href="../GENINT/replace.xml#G05SQF">G05SQF</a> the minimum value must be held in the parameter <a class="arg" href="../G05/g05sqf.xml#A">A</a> and the maximum in parameter <a class="arg" href="../G05/g05sqf.xml#B">B</a>, therefore <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05sqf.xml#A"><m:mi mathcolor="#EE0000" mathvariant="bold">A</m:mi></m:maction><m:mo>&lt;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05sqf.xml#B"><m:mi mathcolor="#EE0000" mathvariant="bold">B</m:mi></m:maction></m:math>. This was not the case for the equivalent parameters in <a class="wdrn" href="../GENINT/replace.xml#G05DAF">G05DAF</a>.</div> <div class="paramtext">The integer array <a class="arg" href="../G05/g05sqf.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05sqf.xml">G05SQF</a> contains information on the base generator being used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05sqf.xml">G05SQF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. 
The required length of the array <a class="arg" href="../G05/g05sqf.xml#STATE">STATE</a> will depend on the base generator chosen during initialization.
Due to changes in the underlying code the sequence of values produced by <a class="rout" href="../G05/g05sqf.xml">G05SQF</a> is likely to be different from those produced by <a class="wdrn" href="../GENINT/replace.xml#G05DAF">G05DAF</a>.</div><h3 class="standard"><a class="sec" name="G05DBF" id="G05DBF"/>G05DBF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05sff.xml">G05SFF</a>.</div><pre class="verbatim">
Old: DO 10 I = 1, N
        X(I) = G05DBF(AA)
  10 CONTINUE
New: A = ABS(AA)
     IFAIL = 0
     CALL G05SFF(N,A,STATE,X,IFAIL)
</pre><div class="paramtext">The old routine <a class="wdrn" href="../GENINT/replace.xml#G05DBF">G05DBF</a> returns a single variate at a time, whereas the new routine <a class="rout" href="../G05/g05sff.xml">G05SFF</a> returns a vector of <a class="arg" href="../G05/g05sff.xml#N">N</a> values in one go. In <a class="rout" href="../G05/g05sff.xml">G05SFF</a> parameter <a class="arg" href="../G05/g05sff.xml#A">A</a> must be non-negative, this was not the case for the equivalent parameter in <a class="wdrn" href="../GENINT/replace.xml#G05DBF">G05DBF</a>.</div> <div class="paramtext">The integer array <a class="arg" href="../G05/g05sff.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05sff.xml">G05SFF</a> contains information on the base generator being used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05sff.xml">G05SFF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>.
The required length of the array <a class="arg" href="../G05/g05sff.xml#STATE">STATE</a> will depend on the base generator chosen during initialization.
Due to changes in the underlying code the sequence of values produced by <a class="rout" href="../G05/g05sff.xml">G05SFF</a> is likely to be different from those produced by <a class="wdrn" href="../GENINT/replace.xml#G05DBF">G05DBF</a>.</div><h3 class="standard"><a class="sec" name="G05DCF" id="G05DCF"/>G05DCF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05slf.xml">G05SLF</a>.</div><pre class="verbatim">
Old: DO 10 I = 1, N
        X(I) = G05DCF(A,BB)
  10 CONTINUE
New: B = ABS(BB)
     IFAIL = 0
     CALL G05SLF(N,A,B,STATE,X,IFAIL)
</pre><div class="paramtext">The old routine <a class="wdrn" href="../GENINT/replace.xml#G05DCF">G05DCF</a> returns a single variate at
a time, whereas the new routine <a class="rout" href="../G05/g05slf.xml">G05SLF</a> returns a
vector of <a class="arg" href="../G05/g05slf.xml#N">N</a> values in one go.  In <a class="rout" href="../G05/g05slf.xml">G05SLF</a> the spread (parameter <a class="arg" href="../G05/g05slf.xml#A">A</a>) must be positive, this was not the case for the equivalent parameters
in <a class="wdrn" href="../GENINT/replace.xml#G05DCF">G05DCF</a>.</div> <div class="paramtext">The integer array <a class="arg" href="../G05/g05slf.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05slf.xml">G05SLF</a>
contains information on the base generator being used. This array must have
been initialized prior to calling <a class="rout" href="../G05/g05slf.xml">G05SLF</a> with a call
to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>.
The required length of the array <a class="arg" href="../G05/g05slf.xml#STATE">STATE</a>
will depend on the base generator chosen during initialization.
Due to changes
in the underlying code the sequence of values produced by <a class="rout" href="../G05/g05slf.xml">G05SLF</a> is likely to be different from those produced by <a class="wdrn" href="../GENINT/replace.xml#G05DCF">G05DCF</a>.</div><h3 class="standard"><a class="sec" name="G05DDF" id="G05DDF"/>G05DDF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05skf.xml">G05SKF</a>.</div><pre class="verbatim">
Old: DO 10 I = 1, N
        X(I) = G05DDF(XMU,SD)
  10 CONTINUE
New: VAR = SD**2
     IFAIL = 0
     CALL G05SKF(N,XMU,VAR,STATE,X,IFAIL)
</pre><div class="paramtext">The old routine <a class="wdrn" href="../GENINT/replace.xml#G05DDF">G05DDF</a> returns a single variate at
a time, whereas the new routine <a class="rout" href="../G05/g05skf.xml">G05SKF</a> returns a
vector of <a class="arg" href="../G05/g05skf.xml#N">N</a> values in one go.  <a class="rout" href="../G05/g05skf.xml">G05SKF</a> expects the variance of the Normal distribution
(parameter <a class="arg" href="../G05/g05skf.xml#VAR">VAR</a>), compared to <a class="wdrn" href="../GENINT/replace.xml#G05DDF">G05DDF</a> which expected the standard deviation.</div> <div class="paramtext">The
integer array <a class="arg" href="../G05/g05skf.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05skf.xml">G05SKF</a> contains information on the base generator being
used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05skf.xml">G05SKF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. 
The required length of the array <a class="arg" href="../G05/g05skf.xml#STATE">STATE</a> will depend on the base generator chosen during
initialization.

Due to changes in the underlying code the sequence of values
produced by <a class="rout" href="../G05/g05skf.xml">G05SKF</a> is likely to be different from those
produced by <a class="wdrn" href="../GENINT/replace.xml#G05DDF">G05DDF</a>.</div><h3 class="standard"><a class="sec" name="G05DEF" id="G05DEF"/>G05DEF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05smf.xml">G05SMF</a>.</div><pre class="verbatim">
Old: DO 10 I = 1, N
        X(I) = G05DEF(XMU,SD)
  10 CONTINUE
New: VAR = SD**2
     IFAIL = 0
     CALL G05SMF(N,XMU,VAR,STATE,X,IFAIL)
</pre><div class="paramtext">The old routine <a class="wdrn" href="../GENINT/replace.xml#G05DEF">G05DEF</a> returns a single variate at
a time, whereas the new routine <a class="rout" href="../G05/g05smf.xml">G05SMF</a> returns a
vector of <a class="arg" href="../G05/g05smf.xml#N">N</a> values in one go.  <a class="rout" href="../G05/g05smf.xml">G05SMF</a> expects the variance of the corresponding normal
distribution (parameter <a class="arg" href="../G05/g05smf.xml#VAR">VAR</a>), compared
to <a class="wdrn" href="../GENINT/replace.xml#G05DEF">G05DEF</a> which expected the standard deviation.</div>
<div class="paramtext">The integer array <a class="arg" href="../G05/g05smf.xml#STATE">STATE</a> in the call
to <a class="rout" href="../G05/g05smf.xml">G05SMF</a> contains information on the base generator
being used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05smf.xml">G05SMF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a>
or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. 
The required length of the array <a class="arg" href="../G05/g05smf.xml#STATE">STATE</a> will depend on the base generator chosen
during initialization.

Due to changes in the underlying code the sequence of
values produced by <a class="rout" href="../G05/g05smf.xml">G05SMF</a> is likely to be different to
those produced by <a class="wdrn" href="../GENINT/replace.xml#G05DEF">G05DEF</a>.</div><h3 class="standard"><a class="sec" name="G05DFF" id="G05DFF"/>G05DFF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05scf.xml">G05SCF</a>.</div><pre class="verbatim">
Old: DO 10 I = 1, N
        X(I) = G05DFF(XMED,B)
  10 CONTINUE
New: SEMIQR = ABS(B)
     IFAIL = 0
     CALL G05SCF(N,XMED,SEMIQR,STATE,X,IFAIL)
</pre><div class="paramtext">The old routine <a class="wdrn" href="../GENINT/replace.xml#G05DFF">G05DFF</a> returns a single variate at
a time, whereas the new routine <a class="rout" href="../G05/g05scf.xml">G05SCF</a> returns a
vector of <a class="arg" href="../G05/g05scf.xml#N">N</a> values in one go.  <a class="rout" href="../G05/g05scf.xml">G05SCF</a> expects the semi-interquartile range (parameter <a class="arg" href="../G05/g05scf.xml#SEMIQR">SEMIQR</a>) to be non-negative, this was not the
case for the equivalent parameter in <a class="wdrn" href="../GENINT/replace.xml#G05DFF">G05DFF</a>.</div>
<div class="paramtext">The integer array <a class="arg" href="../G05/g05scf.xml#STATE">STATE</a> in the call
to <a class="rout" href="../G05/g05scf.xml">G05SCF</a> contains information on the base generator
being used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05scf.xml">G05SCF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a>
or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. 

The required length of the array <a class="arg" href="../G05/g05scf.xml#STATE">STATE</a> will depend on the base generator chosen
during initialization.

Due to changes in the underlying code the sequence of
values produced by <a class="rout" href="../G05/g05scf.xml">G05SCF</a> is likely to be different to
those produced by <a class="wdrn" href="../GENINT/replace.xml#G05DFF">G05DFF</a>.</div><h3 class="standard"><a class="sec" name="G05DGF" id="G05DGF"/>G05DGF</h3><div class="paramtext">
Withdrawn at Mark 16.<br/>
Replaced by <a class="rout" href="../G05/g05sjf.xml">G05SJF</a>.</div><pre class="verbatim">
Old: DO 20 I = 1, N
        X(I) = G05DGF(A,B,IFAIL)
20   CONTINUE
New: CALL G05SJF(N,A,B,STATE,X,IFAIL)
</pre>
<div class="paramtext">The old routine <a class="wdrn" href="../GENINT/replace.xml#G05DGF">G05DGF</a> returns a single variate at a time, whereas the new routine <a class="rout" href="../G05/g05sjf.xml">G05SJF</a> returns a vector of <a class="arg" href="../G05/g05sjf.xml#N">N</a> values in one go.</div>
<div class="paramtext">The integer array <a class="arg" href="../G05/g05sjf.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05sjf.xml">G05SJF</a> contains information on the base generator being used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05sjf.xml">G05SJF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. The required length of the array <a class="arg" href="../G05/g05sjf.xml#STATE">STATE</a> will depend on the base generator chosen during initialization. Due to changes in the underlying code the sequence of values produced by <a class="rout" href="../G05/g05sjf.xml">G05SJF</a> is likely to be different from those produced by <a class="wdrn" href="../GENINT/replace.xml#G05DGF">G05DGF</a>.</div><h3 class="standard"><a class="sec" name="G05DHF" id="G05DHF"/>G05DHF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05sdf.xml">G05SDF</a>.</div><pre class="verbatim">
Old: DO 10 I = 1, N
        X(I) = G05DHF(DF,IFAIL)
  10 CONTINUE
New: CALL G05SDF(N,DF,STATE,X,IFAIL)
</pre><div class="paramtext">The old routine <a class="wdrn" href="../GENINT/replace.xml#G05DHF">G05DHF</a> returns a single variate at
a time, whereas the new routine <a class="rout" href="../G05/g05sdf.xml">G05SDF</a> returns a
vector of <a class="arg" href="../G05/g05sdf.xml#N">N</a> values in one go.</div> <div class="paramtext">The
integer array <a class="arg" href="../G05/g05sdf.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05sdf.xml">G05SDF</a> contains information on the base generator being
used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05sdf.xml">G05SDF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. 

The required length of the array <a class="arg" href="../G05/g05sdf.xml#STATE">STATE</a> will depend on the base generator chosen during
initialization.
Due to changes in the underlying code the sequence of values
produced by <a class="rout" href="../G05/g05sdf.xml">G05SDF</a> is likely to be different from those
produced by <a class="wdrn" href="../GENINT/replace.xml#G05DHF">G05DHF</a>.</div><h3 class="standard"><a class="sec" name="G05DJF" id="G05DJF"/>G05DJF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05snf.xml">G05SNF</a>.</div><pre class="verbatim">
Old: DO 10 I = 1, N
        X(I) = G05DJF(DF,IFAIL)
  10 CONTINUE
New: CALL G05SNF(N,DF,STATE,X,IFAIL)
</pre><div class="paramtext">The old routine <a class="wdrn" href="../GENINT/replace.xml#G05DJF">G05DJF</a> returns a single variate at
a time, whereas the new routine <a class="rout" href="../G05/g05snf.xml">G05SNF</a> returns a
vector of <a class="arg" href="../G05/g05snf.xml#N">N</a> values in one go.</div> <div class="paramtext">The
integer array <a class="arg" href="../G05/g05snf.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05snf.xml">G05SNF</a> contains information on the base generator being
used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05snf.xml">G05SNF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. 

The required length of the array <a class="arg" href="../G05/g05snf.xml#STATE">STATE</a> will depend on the base generator chosen during
initialization.

Due to changes in the underlying code the sequence of values
produced by <a class="rout" href="../G05/g05snf.xml">G05SNF</a> is likely to be different from those
produced by <a class="wdrn" href="../GENINT/replace.xml#G05DJF">G05DJF</a>.</div><h3 class="standard"><a class="sec" name="G05DKF" id="G05DKF"/>G05DKF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05shf.xml">G05SHF</a>.</div><pre class="verbatim">
Old: DO 10 I = 1, N
        X(I) = G05DKF(DF1,DF2,IFAIL)
  10 CONTINUE
New: CALL G05SHF(N,DF1,DF2,STATE,X,IFAIL)
</pre><div class="paramtext">The old routine <a class="wdrn" href="../GENINT/replace.xml#G05DKF">G05DKF</a> returns a single variate at
a time, whereas the new routine <a class="rout" href="../G05/g05shf.xml">G05SHF</a> returns a
vector of <a class="arg" href="../G05/g05shf.xml#N">N</a> values in one go.</div> <div class="paramtext">The
integer array <a class="arg" href="../G05/g05shf.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05shf.xml">G05SHF</a> contains information on the base generator being
used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05shf.xml">G05SHF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. 

The required length of the array <a class="arg" href="../G05/g05shf.xml#STATE">STATE</a> will depend on the base generator chosen during
initialization.

Due to changes in the underlying code the sequence of values
produced by <a class="rout" href="../G05/g05shf.xml">G05SHF</a> is likely to be different from those
produced by <a class="wdrn" href="../GENINT/replace.xml#G05DKF">G05DKF</a>.</div><h3 class="standard"><a class="sec" name="G05DLF" id="G05DLF"/>G05DLF</h3><div class="paramtext">
Withdrawn at Mark 16.<br/>
Replaced by <a class="rout" href="../G05/g05sbf.xml">G05SBF</a>.</div><pre class="verbatim">
Old: DO 20 I = 1, N
         X(I) = G05DLF(A,B,IFAIL)
     CONTINUE
New: CALL G05SBF(N,A,B,STATE,X,IFAIL)
</pre>
<div class="paramtext">The old routine <a class="wdrn" href="../GENINT/replace.xml#G05DLF">G05DLF</a> returns a single variate at a time, whereas the new routine <a class="rout" href="../G05/g05sbf.xml">G05SBF</a> returns a vector of <a class="arg" href="../G05/g05sbf.xml#N">N</a> values in one go.</div>
<div class="paramtext">The integer array <a class="arg" href="../G05/g05sbf.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05sbf.xml">G05SBF</a> contains information on the base generator being used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05sbf.xml">G05SBF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. The required length of the array <a class="arg" href="../G05/g05sbf.xml#STATE">STATE</a> will depend on the base generator chosen during initialization. Due to changes in the underlying code the sequence of values produced by <a class="rout" href="../G05/g05sbf.xml">G05SBF</a> is likely to be different from those produced by <a class="wdrn" href="../GENINT/replace.xml#G05DLF">G05DLF</a>.</div><h3 class="standard"><a class="sec" name="G05DMF" id="G05DMF"/>G05DMF</h3><div class="paramtext">
Withdrawn at Mark 16.<br/>
Replaced by <a class="rout" href="../G05/g05sbf.xml">G05SBF</a>.</div><pre class="verbatim">
Old: DO 20 I = 1, N
        X(I) = G05DMF(A,B,IFAIL)
     20 CONTINUE
</pre>
<div class="paramtext">There is no direct replacement for <a class="wdrn" href="../GENINT/replace.xml#G05DMF">G05DMF</a>. However, there are two methods for obtaining the same functionality.</div>
<div class="paramtext">Method 1:</div>
<pre class="verbatim">
New: CALL G05SBF(N,A,B,STATE,Y1,IFAIL)
     J = 0
     DO 20 I = 1, N
        IF (Y1(I).LT.1.0Exp;0) THEN
           J = J + 1
           X(J) = Y1(I)/(1.0D0-Y1(I))
        END IF
     20 CONTINUE
</pre>
<div class="paramtext">Method 2:</div>
<pre class="verbatim">
New: CALL G05SBF(N,A,1.0D0,STATE,Y1,IFAIL)
     CALL G05SBF(N,B,1.0D0,STATE,Y2,IFAIL)
     J = 0
     DO 20 I = 1, N
        IF (Y2(I).LT.0.0Exp;0) THEN
           J = J + 1
           X(J) = Y1(I)/Y2(I)
        END IF
     20 CONTINUE
</pre>
<div class="paramtext">The old routine <a class="wdrn" href="../GENINT/replace.xml#G05DMF">G05DMF</a> returns a single variate at a time, whereas the routine <a class="rout" href="../G05/g05sbf.xml">G05SBF</a> returns a vector of <a class="arg" href="../G05/g05sbf.xml#N">N</a> values in one go.</div>
<div class="paramtext">The integer array <a class="arg" href="../G05/g05sbf.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05sbf.xml">G05SBF</a> contains information on the base generator being used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05sbf.xml">G05SBF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. The required length of the array <a class="arg" href="../G05/g05sbf.xml#STATE">STATE</a> will depend on the base generator chosen during initialization. The sequence of values produced by the replacement code suggested above will be different to those produced by <a class="wdrn" href="../GENINT/replace.xml#G05DMF">G05DMF</a>.</div><h3 class="standard"><a class="sec" name="G05DPF" id="G05DPF"/>G05DPF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05ssf.xml">G05SSF</a>.</div><pre class="verbatim">
Old: DO 10 I = 1, N
        X(I) = G05DPF(A,B,IFAIL)
  10 CONTINUE
New: CALL G05SSF(N,A,B,STATE,X,IFAIL)
</pre><div class="paramtext">The old routine <a class="wdrn" href="../GENINT/replace.xml#G05DPF">G05DPF</a> returns a single variate at
a time, whereas the new routine <a class="rout" href="../G05/g05ssf.xml">G05SSF</a> returns a
vector of <a class="arg" href="../G05/g05ssf.xml#N">N</a> values in one go.</div> <div class="paramtext">The
integer array <a class="arg" href="../G05/g05ssf.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05ssf.xml">G05SSF</a> contains information on the base generator being
used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05ssf.xml">G05SSF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. 

The required length of the array <a class="arg" href="../G05/g05ssf.xml#STATE">STATE</a> will depend on the base generator chosen during
initialization.

Due to changes in the underlying code the sequence of values
produced by <a class="rout" href="../G05/g05ssf.xml">G05SSF</a> is likely to be different from those
produced by <a class="wdrn" href="../GENINT/replace.xml#G05DPF">G05DPF</a>.</div><h3 class="standard"><a class="sec" name="G05DRF" id="G05DRF"/>G05DRF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05tkf.xml">G05TKF</a>.</div><pre class="verbatim">
Old: DO 10 I = 1, N
        X(I) = G05DRF(LAMDA,IFAIL)
  10 CONTINUE
New: MODE = 3
     CALL G05TJF(MODE,N,LAMBDA,R,LR,STATE,X,IFAIL)
</pre><div class="paramtext">The old routine <a class="wdrn" href="../GENINT/replace.xml#G05DRF">G05DRF</a> returns a single variate at
a time, whereas the new routine <a class="rout" href="../G05/g05tjf.xml">G05TJF</a> returns a
vector of <a class="arg" href="../G05/g05tjf.xml#N">N</a> values in one go. For
efficiency, the new routine can make use of a reference vector, <a class="arg" href="../G05/g05tjf.xml#R">R</a>. If, as in this case, the integer parameter
<a class="arg" href="../G05/g05tjf.xml#MODE">MODE</a> is set to 3, the real reference
vector <a class="arg" href="../G05/g05tjf.xml#R">R</a> is not
referenced , and its
length, <a class="arg" href="../G05/g05tjf.xml#LR">LR</a>, need only be at least
one.</div> <div class="paramtext">The integer array <a class="arg" href="../G05/g05tjf.xml#STATE">STATE</a> in
the call to <a class="rout" href="../G05/g05tjf.xml">G05TJF</a> contains information on the base
generator being used. This array must have been initialized prior to calling
<a class="rout" href="../G05/g05tjf.xml">G05TJF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. 

The required length of the
array <a class="arg" href="../G05/g05tjf.xml#STATE">STATE</a> will depend on the base
generator chosen during initialization.
Due to changes in the underlying code
the sequence of values produced by <a class="rout" href="../G05/g05tjf.xml">G05TJF</a> is likely to
be different to those produced by <a class="wdrn" href="../GENINT/replace.xml#G05DRF">G05DRF</a>.</div><h3 class="standard"><a class="sec" name="G05DYF" id="G05DYF"/>G05DYF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05tlf.xml">G05TLF</a>.</div><pre class="verbatim">
Old: DO 10 I = 1, N
        X(I) = G05DYF(AA,BB)
  10 CONTINUE
New: IFAIL = 0
     A = MIN(AA,BB)
     B = MAX(AA,BB)
     CALL G05TLF(N,A,B,STATE,X,IFAIL)
</pre><div class="paramtext">The old routine <a class="wdrn" href="../GENINT/replace.xml#G05DYF">G05DYF</a> returns a single variate at a time, whereas the new routine <a class="rout" href="../G05/g05tlf.xml">G05TLF</a> returns a vector of <a class="arg" href="../G05/g05tlf.xml#N">N</a> values in one go. In <a class="rout" href="../G05/g05tlf.xml">G05TLF</a> the minimum value must be held in the parameter <a class="arg" href="../G05/g05tlf.xml#A">A</a> and the maximum in parameter <a class="arg" href="../G05/g05tlf.xml#B">B</a>, therefore <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05tlf.xml#A"><m:mi mathcolor="#EE0000" mathvariant="bold">A</m:mi></m:maction><m:mo>&#8804;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05tlf.xml#B"><m:mi mathcolor="#EE0000" mathvariant="bold">B</m:mi></m:maction></m:math>. This was not the case for the equivalent parameters in <a class="wdrn" href="../GENINT/replace.xml#G05DYF">G05DYF</a>.</div> <div class="paramtext">The integer array <a class="arg" href="../G05/g05tlf.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05tlf.xml">G05TLF</a> contains information on the base generator being used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05tlf.xml">G05TLF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>.
The required length of the array <a class="arg" href="../G05/g05tlf.xml#STATE">STATE</a> will depend on the base generator chosen during initialization. 
Due to changes in the underlying code the sequence of values produced by <a class="rout" href="../G05/g05tlf.xml">G05TLF</a> is likely to be different from those produced by <a class="wdrn" href="../GENINT/replace.xml#G05DYF">G05DYF</a>.</div><h3 class="standard"><a class="sec" name="G05DZF" id="G05DZF"/>G05DZF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05tbf.xml">G05TBF</a>.</div><pre class="verbatim">
Old: 
     DO 20 I = 1, N
        X(I) = G05DZF(PP)
20   CONTINUE
New: P = MAX(0.0D0,MIN(PP,1.0D0))
     IFAIL = 0
     CALL G05TBF(N,P,STATE,X,IFAIL)
</pre><div class="paramtext">The old routine <a class="wdrn" href="../GENINT/replace.xml#G05DZF">G05DZF</a> returns a single variate at
a time, whereas the new routine <a class="rout" href="../G05/g05tbf.xml">G05TBF</a> returns a
vector of <a class="arg" href="../G05/g05tbf.xml#N">N</a> values in one go. The
<span class="bitalic">double precision</span> parameter <a class="arg" href="../G05/g05tbf.xml#P">P</a> in <a class="rout" href="../G05/g05tbf.xml">G05TBF</a> must not be less than zero or greater than one, this was not the
case for the equivalent parameter in <a class="wdrn" href="../GENINT/replace.xml#G05DZF">G05DZF</a>.</div>
<div class="paramtext">The integer array <a class="arg" href="../G05/g05tbf.xml#STATE">STATE</a> in the call
to <a class="rout" href="../G05/g05tbf.xml">G05TBF</a> contains information on the base generator
being used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05tbf.xml">G05TBF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a>
or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. 

The required length of the array <a class="arg" href="../G05/g05tbf.xml#STATE">STATE</a> will depend on the base generator chosen
during initialization.
Due to changes in the underlying code the sequence of
values produced by <a class="rout" href="../G05/g05tbf.xml">G05TBF</a> is likely to be different to
those produced by <a class="wdrn" href="../GENINT/replace.xml#G05DZF">G05DZF</a>.</div><h3 class="standard"><a class="sec" name="G05EAF" id="G05EAF"/>G05EAF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05rzf.xml">G05RZF</a>.</div><pre class="verbatim">
Old: CALL G05EAF(XMU,M,C,LDC,EPS,R1,LR1,IFAIL)
New: MODE = 0
     CALL G05RZF(MODE,N,M,XMU,C,LDC,R,LR,STATE,X,LDX,IFAIL)
</pre><div class="paramtext">The old routine <a class="wdrn" href="../GENINT/replace.xml#G05EAF">G05EAF</a> sets up a reference vector for use by <a class="wdrn" href="../GENINT/replace.xml#G05EZF">G05EZF</a>. The functionality of both these routines has been combined into the single new routine <a class="rout" href="../G05/g05rzf.xml">G05RZF</a>. Setting <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05rzf.xml#MODE"><m:mi mathcolor="#EE0000" mathvariant="bold">MODE</m:mi></m:maction><m:mo>=</m:mo><m:mn>0</m:mn></m:math>&#160;in the call to <a class="rout" href="../G05/g05rzf.xml">G05RZF</a> only sets up the <span class="bitalic">double precision</span> reference vector <a class="arg" href="../G05/g05rzf.xml#R">R</a> and hence mimics the functionality of <a class="wdrn" href="../GENINT/replace.xml#G05EAF">G05EAF</a>.</div> <div class="paramtext">The length of the <span class="bitalic">double precision</span> reference vector, <a class="arg" href="../G05/g05rzf.xml#R">R</a>, in <a class="rout" href="../G05/g05rzf.xml">G05RZF</a> must be at least <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05rzf.xml#M"><m:mi mathcolor="#EE0000" mathvariant="bold">M</m:mi></m:maction><m:mo>&#215;</m:mo><m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05rzf.xml#M"><m:mi mathcolor="#EE0000" mathvariant="bold">M</m:mi></m:maction><m:mo>+</m:mo><m:mn>1</m:mn></m:mfenced><m:mo>+</m:mo><m:mn>1</m:mn></m:math>. This is longer than the equivalent parameter in <a class="wdrn" href="../GENINT/replace.xml#G05EAF">G05EAF</a>.</div><h3 class="standard"><a class="sec" name="G05EBF" id="G05EBF"/>G05EBF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05tlf.xml">G05TLF</a>.</div><div class="paramtext"> There is no direct replacement for routine <a class="wdrn" href="../GENINT/replace.xml#G05EBF">G05EBF</a>. <a class="wdrn" href="../GENINT/replace.xml#G05EBF">G05EBF</a> sets up a reference vector for use by <a class="wdrn" href="../GENINT/replace.xml#G05EYF">G05EYF</a>, this reference vector is no longer required. The replacement routine for <a class="wdrn" href="../GENINT/replace.xml#G05EYF">G05EYF</a> is <a class="rout" href="../G05/g05tlf.xml">G05TLF</a>.</div><h3 class="standard"><a class="sec" name="G05ECF" id="G05ECF"/>G05ECF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05tjf.xml">G05TJF</a>.</div><pre class="verbatim">
Old: CALL G05ECF(LAMBDA,R1,LR1,IFAIL)
     DO 10 I = 1, N
        X(I) = G05EYF(R1,LR1)
  10 CONTINUE
New: MODE = 2
     CALL G05TJF(MODE,N,LAMBDA,R,LR,STATE,X,IFAIL)
</pre><div class="paramtext">The old routine <a class="wdrn" href="../GENINT/replace.xml#G05ECF">G05ECF</a> sets up a reference vector for use by <a class="wdrn" href="../GENINT/replace.xml#G05EYF">G05EYF</a>. The replacement routine <a class="rout" href="../G05/g05tjf.xml">G05TJF</a> is now used to both set up a reference vector and generate the required variates. Setting <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05tjf.xml#MODE"><m:mi mathcolor="#EE0000" mathvariant="bold">MODE</m:mi></m:maction><m:mo>=</m:mo><m:mn>0</m:mn></m:math>&#160;in the call to <a class="rout" href="../G05/g05tjf.xml">G05TJF</a> sets up the <span class="bitalic">double precision</span> reference vector <a class="arg" href="../G05/g05tjf.xml#R">R</a> and hence mimics the functionality of <a class="wdrn" href="../GENINT/replace.xml#G05ECF">G05ECF</a>. Setting <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05tjf.xml#MODE"><m:mi mathcolor="#EE0000" mathvariant="bold">MODE</m:mi></m:maction><m:mo>=</m:mo><m:mn>1</m:mn></m:math>&#160;generates a series of variates from a reference vector mimicking the functionality of <a class="wdrn" href="../GENINT/replace.xml#G05EYF">G05EYF</a> for this particular distribution. Setting <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05tjf.xml#MODE"><m:mi mathcolor="#EE0000" mathvariant="bold">MODE</m:mi></m:maction><m:mo>=</m:mo><m:mn>2</m:mn></m:math>&#160;initializes the reference vector and generates the variates in one go.</div> <div class="paramtext">The routine <a class="wdrn" href="../GENINT/replace.xml#G05EYF">G05EYF</a> returns a single variate at a time, whereas the new routine <a class="rout" href="../G05/g05tjf.xml">G05TJF</a> returns a vector of <a class="arg" href="../G05/g05tjf.xml#N">N</a> values in one go.</div> <div class="paramtext">The length of the <span class="bitalic">double precision</span> reference vector, <a class="arg" href="../G05/g05tjf.xml#R">R</a>, in <a class="rout" href="../G05/g05tjf.xml">G05TJF</a>, needs to be a different length from the equivalent parameter in <a class="wdrn" href="../GENINT/replace.xml#G05ECF">G05ECF</a>, see the documentation for more details.</div> <div class="paramtext">The integer array <a class="arg" href="../G05/g05tjf.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05tjf.xml">G05TJF</a> contains information on the base generator being used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05tjf.xml">G05TJF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. 
 The required length of the array <a class="arg" href="../G05/g05tjf.xml#STATE">STATE</a> will depend on the base generator chosen during initialization. 
Due to changes in the underlying code the sequence of values produced by <a class="rout" href="../G05/g05tjf.xml">G05TJF</a> is likely to be different from those produced by a combination of <a class="wdrn" href="../GENINT/replace.xml#G05ECF">G05ECF</a> and <a class="wdrn" href="../GENINT/replace.xml#G05EYF">G05EYF</a>.</div><h3 class="standard"><a class="sec" name="G05EDF" id="G05EDF"/>G05EDF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05taf.xml">G05TAF</a>.</div><pre class="verbatim">
Old: CALL G05EDF(M,P,R1,LR1,IFAIL)
     DO 10 I = 1, N
        X(I) = G05EYF(R1,LR1)
  10 CONTINUE
New: MODE = 2
     CALL G05TAF(MODE,N,M,P,R,LR,STATE,X,IFAIL)
</pre><div class="paramtext">The old routine <a class="wdrn" href="../GENINT/replace.xml#G05EDF">G05EDF</a> sets up a reference vector for use by <a class="wdrn" href="../GENINT/replace.xml#G05EYF">G05EYF</a>. The replacement routine <a class="rout" href="../G05/g05taf.xml">G05TAF</a> is now used to both set up a reference vector and generate the required variates. Setting <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05taf.xml#MODE"><m:mi mathcolor="#EE0000" mathvariant="bold">MODE</m:mi></m:maction><m:mo>=</m:mo><m:mn>0</m:mn></m:math>&#160;in the call to <a class="rout" href="../G05/g05taf.xml">G05TAF</a> sets up the <span class="bitalic">double precision</span> reference vector <a class="arg" href="../G05/g05taf.xml#R">R</a> and hence mimics the functionality of <a class="wdrn" href="../GENINT/replace.xml#G05EDF">G05EDF</a>. Setting <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05taf.xml#MODE"><m:mi mathcolor="#EE0000" mathvariant="bold">MODE</m:mi></m:maction><m:mo>=</m:mo><m:mn>1</m:mn></m:math>&#160;generates a series of variates from a reference vector mimicking the functionality of <a class="wdrn" href="../GENINT/replace.xml#G05EYF">G05EYF</a> for this particular distribution. Setting <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05taf.xml#MODE"><m:mi mathcolor="#EE0000" mathvariant="bold">MODE</m:mi></m:maction><m:mo>=</m:mo><m:mn>2</m:mn></m:math>&#160;initializes the reference vector and generates the variates in one go.</div><div class="paramtext">The routine <a class="wdrn" href="../GENINT/replace.xml#G05EYF">G05EYF</a> returns a single variate at a time, whereas the new routine <a class="rout" href="../G05/g05taf.xml">G05TAF</a> returns a vector of <a class="arg" href="../G05/g05taf.xml#N">N</a> values in one go.</div> <div class="paramtext">The length of the <span class="bitalic">double precision</span> reference vector, <a class="arg" href="../G05/g05taf.xml#R">R</a>, in <a class="rout" href="../G05/g05taf.xml">G05TAF</a>, needs to be a different length from the equivalent parameter in <a class="wdrn" href="../GENINT/replace.xml#G05EDF">G05EDF</a>, see the documentation for more details.</div><div class="paramtext">The integer array <a class="arg" href="../G05/g05taf.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05taf.xml">G05TAF</a> contains information on the base generator being used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05taf.xml">G05TAF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. 
 The required length of the array <a class="arg" href="../G05/g05taf.xml#STATE">STATE</a> will depend on the base generator chosen during initialization. 
Due to changes in the underlying code the sequence of values produced by <a class="rout" href="../G05/g05taf.xml">G05TAF</a> is likely to be different from those produced by a combination of <a class="wdrn" href="../GENINT/replace.xml#G05EDF">G05EDF</a> and <a class="wdrn" href="../GENINT/replace.xml#G05EYF">G05EYF</a>.</div><h3 class="standard"><a class="sec" name="G05EEF" id="G05EEF"/>G05EEF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05thf.xml">G05THF</a>.</div><pre class="verbatim">
Old: CALL G05EEF(M,P,R1,LR1,IFAIL)
     DO 10 I = 1, N
        X(I) = G05EYF(R1,LR1)
  10 CONTINUE
New: MODE = 2
     CALL G05THF(MODE,N,M,P,R,LR,STATE,X,IFAIL)
</pre><div class="paramtext">The old routine <a class="wdrn" href="../GENINT/replace.xml#G05EEF">G05EEF</a> sets up a reference vector for use by <a class="wdrn" href="../GENINT/replace.xml#G05EYF">G05EYF</a>. The replacement routine <a class="rout" href="../G05/g05thf.xml">G05THF</a> is now used to both set up a reference vector and generate the required variates. Setting <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05thf.xml#MODE"><m:mi mathcolor="#EE0000" mathvariant="bold">MODE</m:mi></m:maction><m:mo>=</m:mo><m:mn>0</m:mn></m:math>&#160;in the call to <a class="rout" href="../G05/g05thf.xml">G05THF</a> sets up the <span class="bitalic">double precision</span> reference vector <a class="arg" href="../G05/g05thf.xml#R">R</a> and hence mimics the functionality of <a class="wdrn" href="../GENINT/replace.xml#G05EEF">G05EEF</a>. Setting <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05thf.xml#MODE"><m:mi mathcolor="#EE0000" mathvariant="bold">MODE</m:mi></m:maction><m:mo>=</m:mo><m:mn>1</m:mn></m:math>&#160;generates a series of variates from a reference vector mimicking the functionality of <a class="wdrn" href="../GENINT/replace.xml#G05EYF">G05EYF</a> for this particular distribution. Setting <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05thf.xml#MODE"><m:mi mathcolor="#EE0000" mathvariant="bold">MODE</m:mi></m:maction><m:mo>=</m:mo><m:mn>2</m:mn></m:math>&#160;initializes the reference vector and generates the variates in one go.</div>
<div class="paramtext">The routine <a class="wdrn" href="../GENINT/replace.xml#G05EYF">G05EYF</a> returns a single variate at a time, whereas the new routine <a class="rout" href="../G05/g05thf.xml">G05THF</a> returns a vector of <a class="arg" href="../G05/g05thf.xml#N">N</a> values in one go.</div> <div class="paramtext">The length of the <span class="bitalic">double precision</span> reference vector, <a class="arg" href="../G05/g05thf.xml#R">R</a>, in <a class="rout" href="../G05/g05thf.xml">G05THF</a>, needs to be a different length from the equivalent parameter in <a class="wdrn" href="../GENINT/replace.xml#G05EEF">G05EEF</a>, see the documentation for <a class="rout" href="../G05/g05thf.xml">G05THF</a> for more details.</div>
<div class="paramtext">The integer array <a class="arg" href="../G05/g05thf.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05thf.xml">G05THF</a> contains information on the base generator being used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05thf.xml">G05THF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>.  
The required length of the array <a class="arg" href="../G05/g05thf.xml#STATE">STATE</a> will depend on the base generator chosen during initialization.
Due to changes in the underlying code the sequence of values produced by <a class="rout" href="../G05/g05thf.xml">G05THF</a> is likely to be different to those produced by a combination of <a class="wdrn" href="../GENINT/replace.xml#G05EEF">G05EEF</a> and <a class="wdrn" href="../GENINT/replace.xml#G05EYF">G05EYF</a>.</div><h3 class="standard"><a class="sec" name="G05EFF" id="G05EFF"/>G05EFF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05tef.xml">G05TEF</a>.</div><pre class="verbatim">
Old: CALL G05EFF(NS,M,NP,R1,LR1,IFAIL)
     DO 10 I = 1, N
        X(I) = G05EYF(R1,LR1)
  10 CONTINUE
New: MODE = 2
     CALL G05TEF(MODE,N,NS,NP,M,R,LR,STATE,X,IFAIL)
</pre><div class="paramtext">The old routine <a class="wdrn" href="../GENINT/replace.xml#G05EFF">G05EFF</a> sets up a reference vector for use by <a class="wdrn" href="../GENINT/replace.xml#G05EYF">G05EYF</a>. The replacement routine <a class="rout" href="../G05/g05tef.xml">G05TEF</a> is now used to both set up a reference vector and generate the required variates. Setting <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05tef.xml#MODE"><m:mi mathcolor="#EE0000" mathvariant="bold">MODE</m:mi></m:maction><m:mo>=</m:mo><m:mn>0</m:mn></m:math>&#160;in the call to <a class="rout" href="../G05/g05tef.xml">G05TEF</a> sets up the <span class="bitalic">double precision</span> reference vector <a class="arg" href="../G05/g05tef.xml#R">R</a> and hence mimics the functionality of <a class="wdrn" href="../GENINT/replace.xml#G05EFF">G05EFF</a>. Setting <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05tef.xml#MODE"><m:mi mathcolor="#EE0000" mathvariant="bold">MODE</m:mi></m:maction><m:mo>=</m:mo><m:mn>1</m:mn></m:math>&#160;generates a series of variates from a reference vector mimicking the functionality of <a class="wdrn" href="../GENINT/replace.xml#G05EYF">G05EYF</a> for this particular distribution. Setting <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05tef.xml#MODE"><m:mi mathcolor="#EE0000" mathvariant="bold">MODE</m:mi></m:maction><m:mo>=</m:mo><m:mn>2</m:mn></m:math>&#160;initializes the reference vector and generates the variates in one go.</div><div class="paramtext">The routine <a class="wdrn" href="../GENINT/replace.xml#G05EYF">G05EYF</a> returns a single variate at a time, whereas the new routine <a class="rout" href="../G05/g05tef.xml">G05TEF</a> returns a vector of <a class="arg" href="../G05/g05tef.xml#N">N</a> values in one go.</div><div class="paramtext">The length of the <span class="bitalic">double precision</span> reference vector, <a class="arg" href="../G05/g05tef.xml#R">R</a>, in <a class="rout" href="../G05/g05tef.xml">G05TEF</a>, needs to be a different length from the equivalent parameter in <a class="wdrn" href="../GENINT/replace.xml#G05EFF">G05EFF</a>, see the documentation for more details.</div><div class="paramtext">The integer array <a class="arg" href="../G05/g05tef.xml#STATE">STATE</a> in the call
to <a class="rout" href="../G05/g05tef.xml">G05TEF</a> contains information on the base generator
being used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05tef.xml">G05TEF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a>
or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. 
The required length of the array <a class="arg" href="../G05/g05tef.xml#STATE">STATE</a> will depend on the base generator chosen
during initialization.
Due to changes in the underlying code the sequence of
values produced by <a class="rout" href="../G05/g05tef.xml">G05TEF</a> is likely to be different to
those produced by a combination of <a class="wdrn" href="../GENINT/replace.xml#G05EFF">G05EFF</a> and <a class="wdrn" href="../GENINT/replace.xml#G05EYF">G05EYF</a>.</div><h3 class="standard"><a class="sec" name="G05EGF" id="G05EGF"/>G05EGF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05phf.xml">G05PHF</a>.</div><pre class="verbatim">
Old: CALL G05EGF(E,A,NA,B,NB,R,NR,VAR,IFAIL)
New: AVAR = B(1)**2
     IQ = NB - 1
     IF (AVAR.GT.0.0D0) THEN
        DO 10 I = 1, IQ
           THETA(I) = -B(I+1)/B(1)
  10    CONTINUE
     ELSE
        DO 20 I = 1, IQ
           THETA(I) = 0.0D0
  20    CONTINUE
     END IF
     MODE = 0
     CALL G05PHF(MODE,N,E,NA,A,IQ,THETA,AVAR,R,LR,STATE,VAR,X,IFAIL)
</pre><div class="paramtext">The <span class="bitalic">double precision</span> vector <a class="arg" href="../G05/g05phf.xml#THETA">THETA</a> must be of length at least <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05phf.xml#IQ"><m:mi mathcolor="#EE0000" mathvariant="bold">IQ</m:mi></m:maction><m:mo>=</m:mo><m:mi mathvariant="normal">NB</m:mi><m:mo>-</m:mo><m:mn>1</m:mn></m:math>.</div> 
<div class="paramtext">The old routine <a class="wdrn" href="../GENINT/replace.xml#G05EGF">G05EGF</a> sets up a reference vector for use by <a class="wdrn" href="../GENINT/replace.xml#G05EWF">G05EWF</a>. The replacement routine <a class="rout" href="../G05/g05phf.xml">G05PHF</a> is now used to both set up a reference vector and generate the required variates. Setting <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05phf.xml#MODE"><m:mi mathcolor="#EE0000" mathvariant="bold">MODE</m:mi></m:maction><m:mo>=</m:mo><m:mn>0</m:mn></m:math>&#160;in the call to <a class="rout" href="../G05/g05phf.xml">G05PHF</a> sets up the <span class="bitalic">double precision</span> reference vector <a class="arg" href="../G05/g05phf.xml#R">R</a> and hence mimics the functionality of <a class="wdrn" href="../GENINT/replace.xml#G05EGF">G05EGF</a>.  When <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05phf.xml#MODE"><m:mi mathcolor="#EE0000" mathvariant="bold">MODE</m:mi></m:maction><m:mo>=</m:mo><m:mn>0</m:mn></m:math>, the integer array <a class="arg" href="../G05/g05phf.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05phf.xml">G05PHF</a> need not be set.</div><h3 class="standard"><a class="sec" name="G05EHF" id="G05EHF"/>G05EHF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05ncf.xml">G05NCF</a>.</div><pre class="verbatim">
Old: CALL G05EHF(INDEX,N,IFAIL)
New: CALL G05NCF(INDEX,N,STATE,IFAIL)
</pre><div class="paramtext">The integer array <a class="arg" href="../G05/g05ncf.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05ncf.xml">G05NCF</a> contains information on the base generator being used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05ncf.xml">G05NCF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. 
 The required length of the array <a class="arg" href="../G05/g05ncf.xml#STATE">STATE</a> will depend on the base generator chosen during initialization. 
Due to changes in the underlying code the sequence of values produced by <a class="rout" href="../G05/g05ncf.xml">G05NCF</a> is likely to be different from those produced by <a class="wdrn" href="../GENINT/replace.xml#G05EHF">G05EHF</a>.</div><h3 class="standard"><a class="sec" name="G05EJF" id="G05EJF"/>G05EJF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05ndf.xml">G05NDF</a>.</div><pre class="verbatim">
Old: CALL G05EJF(IA,N,IZ,M,IFAIL)
New: CALL G05NDF(IA,N,IZ,M,STATE,IFAIL)
</pre><div class="paramtext">The integer array <a class="arg" href="../G05/g05ndf.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05ndf.xml">G05NDF</a> contains information on the base generator being used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05ndf.xml">G05NDF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. 
 The required length of the array <a class="arg" href="../G05/g05ndf.xml#STATE">STATE</a> will depend on the base generator chosen during initialization. 
Due to changes in the underlying code the sequence of values produced by <a class="rout" href="../G05/g05ndf.xml">G05NDF</a> is likely to be different from those produced by <a class="wdrn" href="../GENINT/replace.xml#G05EJF">G05EJF</a>.</div><h3 class="standard"><a class="sec" name="G05EWF" id="G05EWF"/>G05EWF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05phf.xml">G05PHF</a>.</div><pre class="verbatim">
Old: CALL G05EGF(E,A,NA,B,NB,R,NR,VAR,IFAIL)
     DO 10 I = 1, N
        X(I) = G05EWF(R,NR,IFAIL)
  10 CONTINUE
New: AVAR = B(1)**2
     IQ = NB - 1
     IF (AVAR.GT.0.0D0) THEN
        DO 10 I = 1, IQ
           THETA(I) = -B(I+1)/B(1)
  10    CONTINUE
     ELSE
        DO 20 I = 1, IQ
           THETA(I) = 0.0D0
  20    CONTINUE
     END IF
     MODE = 2
     CALL G05PHF(MODE,N,E,NA,A,NB-1,THETA,AVAR,VAR,R,LR,STATE,X,IFAIL)
</pre><div class="paramtext">The <span class="bitalic">double precision</span> vector <a class="arg" href="../G05/g05phf.xml#THETA">THETA</a> must be of length at least <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05phf.xml#IQ"><m:mi mathcolor="#EE0000" mathvariant="bold">IQ</m:mi></m:maction><m:mo>=</m:mo><m:mi mathvariant="normal">NB</m:mi><m:mo>-</m:mo><m:mn>1</m:mn></m:math>.</div>
<div class="paramtext">The old routine <a class="wdrn" href="../GENINT/replace.xml#G05EGF">G05EGF</a> sets up a reference vector for use by <a class="wdrn" href="../GENINT/replace.xml#G05EWF">G05EWF</a>. The replacement routine <a class="rout" href="../G05/g05phf.xml">G05PHF</a> is now used to both set up a reference vector and generate the required variates. Setting the integer parameter <a class="arg" href="../G05/g05phf.xml#MODE">MODE</a> to 0 in the call to <a class="rout" href="../G05/g05phf.xml">G05PHF</a> sets up the <span class="bitalic">double precision</span> reference vector <a class="arg" href="../G05/g05phf.xml#R">R</a> and hence mimics the functionality of <a class="wdrn" href="../GENINT/replace.xml#G05EGF">G05EGF</a>. Setting <a class="arg" href="../G05/g05phf.xml#MODE">MODE</a> to 1 generates a series of variates from a reference vector mimicking the functionality of <a class="wdrn" href="../GENINT/replace.xml#G05EWF">G05EWF</a>. Setting <a class="arg" href="../G05/g05phf.xml#MODE">MODE</a> to 2 initializes the reference vector and generates the variates in one go.</div>
<div class="paramtext">The integer array <a class="arg" href="../G05/g05phf.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05phf.xml">G05PHF</a> contains information on the base generator being used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05phf.xml">G05PHF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>.  
The required length of the array <a class="arg" href="../G05/g05phf.xml#STATE">STATE</a> will depend on the base generator chosen during initialization. 
Due to changes in the underlying code the sequence of values produced by <a class="rout" href="../G05/g05phf.xml">G05PHF</a> is likely to be different to those produced by <a class="wdrn" href="../GENINT/replace.xml#G05EGF">G05EGF</a>.</div><h3 class="standard"><a class="sec" name="G05EXF" id="G05EXF"/>G05EXF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05tdf.xml">G05TDF</a>.</div><pre class="verbatim">
Old: CALL G05EXF(P,NP,IP1,ITYPE,R1,LR1,IFAIL)
     DO 10 I = 1, N
        X(I) = G05EYF(R1,LR1)
  10 CONTINUE
New: MODE = 2
     CALL G05TDF(MODE,N,P,NP,IP1,ITYPE,R,LR,STATE,X,IFAIL)
</pre><div class="paramtext">The old routine <a class="wdrn" href="../GENINT/replace.xml#G05EXF">G05EXF</a> sets up a reference vector for use by <a class="wdrn" href="../GENINT/replace.xml#G05EYF">G05EYF</a>. The replacement routine <a class="rout" href="../G05/g05tdf.xml">G05TDF</a> is now used to both set up a reference vector and generate the required variates. Setting <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05tdf.xml#MODE"><m:mi mathcolor="#EE0000" mathvariant="bold">MODE</m:mi></m:maction><m:mo>=</m:mo><m:mn>0</m:mn></m:math>&#160;in the call to <a class="rout" href="../G05/g05tdf.xml">G05TDF</a> sets up the <span class="bitalic">double precision</span> reference vector <a class="arg" href="../G05/g05tdf.xml#R">R</a> and hence mimics the functionality of <a class="wdrn" href="../GENINT/replace.xml#G05EXF">G05EXF</a>. Setting <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05tdf.xml#MODE"><m:mi mathcolor="#EE0000" mathvariant="bold">MODE</m:mi></m:maction><m:mo>=</m:mo><m:mn>1</m:mn></m:math>&#160;generates a series of variates from a reference vector mimicking the functionality of <a class="wdrn" href="../GENINT/replace.xml#G05EYF">G05EYF</a> for this particular distribution. Setting <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05tdf.xml#MODE"><m:mi mathcolor="#EE0000" mathvariant="bold">MODE</m:mi></m:maction><m:mo>=</m:mo><m:mn>2</m:mn></m:math>&#160;initializes the reference vector and generates the variates in one go.</div><div class="paramtext">The routine <a class="wdrn" href="../GENINT/replace.xml#G05EYF">G05EYF</a> returns a single variate at a time, whereas the new routine <a class="rout" href="../G05/g05tdf.xml">G05TDF</a> returns a vector of <a class="arg" href="../G05/g05tdf.xml#N">N</a> values in one go.</div><div class="paramtext">The length of the <span class="bitalic">double precision</span> reference vector, <a class="arg" href="../G05/g05tdf.xml#R">R</a>, in <a class="rout" href="../G05/g05tdf.xml">G05TDF</a>, needs to be a different length from the equivalent parameter in <a class="wdrn" href="../GENINT/replace.xml#G05EXF">G05EXF</a>, see the documentation for more details.</div><div class="paramtext">The integer array <a class="arg" href="../G05/g05tdf.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05tdf.xml">G05TDF</a> contains information on the base generator being used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05tdf.xml">G05TDF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. 

The required length of the array <a class="arg" href="../G05/g05tdf.xml#STATE">STATE</a> will depend on the base generator chosen during initialization.
Due to changes in the underlying code the sequence of values produced by <a class="rout" href="../G05/g05tdf.xml">G05TDF</a> is likely to be different from those produced by a combination of <a class="wdrn" href="../GENINT/replace.xml#G05EXF">G05EXF</a> and <a class="wdrn" href="../GENINT/replace.xml#G05EYF">G05EYF</a>.</div><h3 class="standard"><a class="sec" name="G05EYF" id="G05EYF"/>G05EYF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05tdf.xml">G05TDF</a>.</div><div class="paramtext">There is no direct replacement routine for <a class="wdrn" href="../GENINT/replace.xml#G05EYF">G05EYF</a>.</div>
<div class="paramtext"><a class="wdrn" href="../GENINT/replace.xml#G05EYF">G05EYF</a> is designed to generate random draws from a distribution defined by a reference vector. These reference vectors are created by other routines in <a class="chap" href="../G05/g05conts.xml">Chapter G05</a>, for example 
<a class="wdrn" href="../GENINT/replace.xml#G05EBF">G05EBF</a>,
 
which have themselves been superseded. In order to replace a call to <a class="wdrn" href="../GENINT/replace.xml#G05EYF">G05EYF</a> you must identify which NAG routine generated the reference vector being used and look up its replacement. For example, to replace a call to <a class="wdrn" href="../GENINT/replace.xml#G05EYF">G05EYF</a> preceded by a call to 
<a class="wdrn" href="../GENINT/replace.xml#G05EBF">G05EBF</a>,
 
as in:
<pre class="verbatim">
    CALL G05EBF(M,IB,R,NR,IFAIL)
    X = G05EYF(R,NR)
</pre>


you would need to look at the replacement routine for 
<a class="wdrn" href="../GENINT/replace.xml#G05EBF">G05EBF</a>.
 
</div><h3 class="standard"><a class="sec" name="G05EZF" id="G05EZF"/>G05EZF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05rzf.xml">G05RZF</a>.</div><pre class="verbatim">
Old: CALL G05EAF(XMU,N,C,LDC,EPS,R1,LR1,IFAIL)
     DO 20 I = 1, N
        CALL G05EZF(CX,M,R,NR,IFAIL)
        DO 30 J = 1, M
           X(I,J) = CX(J)
30      CONTINUE
20   CONTINUE
New: MODE = 2
     CALL G05RZF(MODE,N,M,XMU,C,LDC,R,LR,STATE,X,LDX,IFAIL)
</pre><div class="paramtext">The old routine <a class="wdrn" href="../GENINT/replace.xml#G05EAF">G05EAF</a> sets up a reference vector for use by <a class="wdrn" href="../GENINT/replace.xml#G05EZF">G05EZF</a>. The functionality of both these routines has been combined into the single new routine <a class="rout" href="../G05/g05rzf.xml">G05RZF</a>. Setting <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05rzf.xml#MODE"><m:mi mathcolor="#EE0000" mathvariant="bold">MODE</m:mi></m:maction><m:mo>=</m:mo><m:mn>2</m:mn></m:math>&#160;in the call to <a class="rout" href="../G05/g05rzf.xml">G05RZF</a> sets up the <span class="bitalic">double precision</span> reference vector <a class="arg" href="../G05/g05rzf.xml#R">R</a> and generates the draws from the multivariate Normal distribution in one go.</div>
<div class="paramtext">The old routine <a class="wdrn" href="../GENINT/replace.xml#G05EZF">G05EZF</a> returns a single (<a class="arg" href="../G05/g05rzf.xml#M">M</a>-dimensional vector) draw from the multivariate Normal distribution at a time, whereas the new routine <a class="rout" href="../G05/g05rzf.xml">G05RZF</a> returns an <a class="arg" href="../G05/g05rzf.xml#N">N</a> by <a class="arg" href="../G05/g05rzf.xml#M">M</a> matrix of <a class="arg" href="../G05/g05rzf.xml#N">N</a> draws in one go.</div>
<div class="paramtext">The integer array <a class="arg" href="../G05/g05rzf.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05rzf.xml">G05RZF</a> contains information on the base generator being used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05rzf.xml">G05RZF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. 

The required length of the array <a class="arg" href="../G05/g05rzf.xml#STATE">STATE</a> will depend on the base generator chosen during initialization.
Due to changes in the underlying code the sequence of values produced by <a class="rout" href="../G05/g05rzf.xml">G05RZF</a> is likely to be different from those produced by <a class="wdrn" href="../GENINT/replace.xml#G05EZF">G05EZF</a>.</div><h3 class="standard"><a class="sec" name="G05FAF" id="G05FAF"/>G05FAF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05sqf.xml">G05SQF</a>.</div><pre class="verbatim">
Old: CALL G05FAF(AA,BB,N,X)
New: A = MIN(AA,BB)
     B = MAX(AA,BB)
     IFAIL = 0
     CALL G05SQF(N,A,B,STATE,X,IFAIL)
</pre><div class="paramtext">In <a class="rout" href="../G05/g05sqf.xml">G05SQF</a> the minimum value must be held in the parameter A and the maximum in parameter <a class="arg" href="../G05/g05sqf.xml#B">B</a>, therefore <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05sqf.xml#A"><m:mi mathcolor="#EE0000" mathvariant="bold">A</m:mi></m:maction><m:mo>&#8804;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05sqf.xml#B"><m:mi mathcolor="#EE0000" mathvariant="bold">B</m:mi></m:maction></m:math>. This was not the case for the equivalent parameters in <a class="wdrn" href="../GENINT/replace.xml#G05FAF">G05FAF</a>.</div>
<div class="paramtext">The integer array <a class="arg" href="../G05/g05sqf.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05sqf.xml">G05SQF</a> contains information on the base generator being used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05sqf.xml">G05SQF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. 

The required length of the array <a class="arg" href="../G05/g05sqf.xml#STATE">STATE</a> will depend on the base generator chosen during initialization.

Due to changes in the underlying code the sequence of values produced by <a class="rout" href="../G05/g05sqf.xml">G05SQF</a> is likely to be different from those produced by <a class="wdrn" href="../GENINT/replace.xml#G05FAF">G05FAF</a>.</div><h3 class="standard"><a class="sec" name="G05FBF" id="G05FBF"/>G05FBF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05sff.xml">G05SFF</a>.</div><pre class="verbatim">
Old: CALL G05FBF(AA,N,X)
New: A = ABS(AA)
     IFAIL = 0
     CALL G05SFF(N,A,STATE,X,IFAIL)
</pre><div class="paramtext">In <a class="rout" href="../G05/g05sff.xml">G05SFF</a> parameter <a class="arg" href="../G05/g05sff.xml#A">A</a> must be non-negative, this was not the case for the equivalent parameter in <a class="wdrn" href="../GENINT/replace.xml#G05FBF">G05FBF</a>.</div><div class="paramtext">The integer array <a class="arg" href="../G05/g05sff.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05sff.xml">G05SFF</a> contains information on the base generator being used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05sff.xml">G05SFF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. 
The required length of the array <a class="arg" href="../G05/g05sff.xml#STATE">STATE</a> will depend on the base generator chosen during initialization.

Due to changes in the underlying code the sequence of values produced by <a class="rout" href="../G05/g05sff.xml">G05SFF</a> is likely to be different from those produced by <a class="wdrn" href="../GENINT/replace.xml#G05FBF">G05FBF</a>.</div><h3 class="standard"><a class="sec" name="G05FDF" id="G05FDF"/>G05FDF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05skf.xml">G05SKF</a>.</div><pre class="verbatim">
Old: CALL G05FDF(XMU,SD,N,X)
New: VAR = SD**2
     IFAIL = 0
     CALL G05SKF(N,XMU,VAR,STATE,X,IFAIL)
</pre><div class="paramtext"><a class="rout" href="../G05/g05skf.xml">G05SKF</a> expects the variance of the normal distribution (parameter <a class="arg" href="../G05/g05skf.xml#VAR">VAR</a>), compared to <a class="wdrn" href="../GENINT/replace.xml#G05FDF">G05FDF</a> which expected the standard deviation.</div>
<div class="paramtext">The integer array <a class="arg" href="../G05/g05skf.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05skf.xml">G05SKF</a> contains information on the base generator being used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05skf.xml">G05SKF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. 

The required length of the array <a class="arg" href="../G05/g05skf.xml#STATE">STATE</a> will depend on the base generator chosen during initialization.
Due to changes in the underlying code the sequence of values produced by <a class="rout" href="../G05/g05skf.xml">G05SKF</a> is likely to be different from those produced by <a class="wdrn" href="../GENINT/replace.xml#G05FDF">G05FDF</a>.</div><h3 class="standard"><a class="sec" name="G05FEF" id="G05FEF"/>G05FEF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05sbf.xml">G05SBF</a>.</div><pre class="verbatim">
Old: CALL G05FEF(A,B,N,X,IFAIL)
New: CALL G05SBF(N,A,B,STATE,X,IFAIL)
</pre><div class="paramtext">The integer array <a class="arg" href="../G05/g05sbf.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05sbf.xml">G05SBF</a> contains information on the base generator being used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05sbf.xml">G05SBF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. 

The required length of the array <a class="arg" href="../G05/g05sbf.xml#STATE">STATE</a> will depend on the base generator chosen during initialization.

Due to changes in the underlying code the sequence of values produced by <a class="rout" href="../G05/g05sbf.xml">G05SBF</a> is likely to be different from those produced by <a class="wdrn" href="../GENINT/replace.xml#G05FEF">G05FEF</a>.</div><h3 class="standard"><a class="sec" name="G05FFF" id="G05FFF"/>G05FFF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05sjf.xml">G05SJF</a>.</div><pre class="verbatim">
Old: CALL G05FFF(A,B,N,X,IFAIL)
New: CALL G05SJF(N,A,B,STATE,X,IFAIL)
</pre><div class="paramtext">The integer array <a class="arg" href="../G05/g05sjf.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05sjf.xml">G05SJF</a> contains information on the base generator being used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05sjf.xml">G05SJF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. 

The required length of the array <a class="arg" href="../G05/g05sjf.xml#STATE">STATE</a> will depend on the base generator chosen during initialization.

Due to changes in the underlying code the sequence of values produced by <a class="rout" href="../G05/g05sjf.xml">G05SJF</a> is likely to be different from those produced by <a class="wdrn" href="../GENINT/replace.xml#G05FFF">G05FFF</a>.</div><h3 class="standard"><a class="sec" name="G05FSF" id="G05FSF"/>G05FSF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05srf.xml">G05SRF</a>.</div><pre class="verbatim">
Old: CALL G05FSF(VK,N,X,IFAIL)
New: CALL G05SRF(N,VK,STATE,X,IFAIL)
</pre><div class="paramtext">The integer array <a class="arg" href="../G05/g05srf.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05srf.xml">G05SRF</a> contains information on the base generator being used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05srf.xml">G05SRF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. 

The required length of the array <a class="arg" href="../G05/g05srf.xml#STATE">STATE</a> will depend on the base generator chosen during initialization.

Due to changes in the underlying code the sequence of values produced by <a class="rout" href="../G05/g05srf.xml">G05SRF</a> is likely to be different from those produced by <a class="wdrn" href="../GENINT/replace.xml#G05FSF">G05FSF</a>.</div><h3 class="standard"><a class="sec" name="G05GAF" id="G05GAF"/>G05GAF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05pxf.xml">G05PXF</a>.</div><pre class="verbatim">
Old: CALL G05GAF(SIDE,INIT,M,N,A,LDA,WK,IFAIL)
New: CALL G05PXF(SIDE,INIT,M,N,STATE,A,LDA,IFAIL)
</pre><div class="paramtext">The integer array <a class="arg" href="../G05/g05pxf.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05pxf.xml">G05PXF</a> contains information on the base generator being used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05pxf.xml">G05PXF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. 

The required length of the array <a class="arg" href="../G05/g05pxf.xml#STATE">STATE</a> will depend on the base generator chosen during initialization.

Due to changes in the underlying code the sequence of values produced by <a class="rout" href="../G05/g05pxf.xml">G05PXF</a> is likely to be different from those produced by <a class="wdrn" href="../GENINT/replace.xml#G05GAF">G05GAF</a>.</div><h3 class="standard"><a class="sec" name="G05GBF" id="G05GBF"/>G05GBF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05pyf.xml">G05PYF</a>.</div><pre class="verbatim">
Old: CALL G05GBF(N,D,C,LDC,EPS,WK,IFAIL)
New: CALL G05PYF(N,D,EPS,STATE,C,LDC,IFAIL)
</pre><div class="paramtext">The integer array <a class="arg" href="../G05/g05pyf.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05pyf.xml">G05PYF</a> contains information on the base generator being used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05pyf.xml">G05PYF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. 

The required length of the array <a class="arg" href="../G05/g05pyf.xml#STATE">STATE</a> will depend on the base generator chosen during initialization.

Due to changes in the underlying code the sequence of values produced by <a class="rout" href="../G05/g05pyf.xml">G05PYF</a> is likely to be different from those produced by <a class="wdrn" href="../GENINT/replace.xml#G05GBF">G05GBF</a>.</div><h3 class="standard"><a class="sec" name="G05HDF" id="G05HDF"/>G05HDF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
Replaced by <a class="rout" href="../G05/g05pjf.xml">G05PJF</a>.</div><pre class="verbatim">
Old: CALL G05HDF(MODE,K,IP,IQ,MEAN,PAR,LPAR,QQ,LDQQ,N,W,REF,LREF,
    +            IWORK,LIWORK,IFAIL)
New: IF (MODE.EQ.'S') THEN
        IMODE = 0
     ELSE IF (MODE.EQ.'C') THEN
        IMODE = 1
     ELSE IF (MODE.EQ.'R') THEN
        IMODE = 3
     END IF
     LL = 0
     DO 30 L = 1, IP
        DO 20 I = 1, K
           DO 10 J = 1, K
              LL = LL + 1
              PHI(I,J,L) = PAR(LL)
  10       CONTINUE
  20    CONTINUE
  30 CONTINUE
     DO 60 L = 1, IQ-1
        DO 50 I = 1, K
           DO 40 J = 1, K
              LL = LL + 1
              THETA(I,J,L) = PAR(LL)
  40       CONTINUE
  50    CONTINUE
  60 CONTINUE
     IF (MEAN.EQ.'M') THEN
        DO 70 I = 1, K
           LL = LL + 1
           XMEAN(I) = PAR(LL)
  70    CONTINUE
     ELSE
        DO 80 I = 1, K
           XMEAN(I) = 0.0D0
  80    CONTINUE
     END IF
     LDW = N
     CALL G05PJF(IMODE,N,K,XMEAN,IP,PHI,IQ,THETA,QQ,LDQQ,REF,LREF,
    +            STATE,W,LDW,IWORK,LIWORK,IFAIL)
</pre><div class="paramtext">The integer parameter <a class="arg" href="../G05/g05pjf.xml#MODE">IMODE</a> should be set to 0, 1 or 3 in place of the parameter MODE having settings of 'S', 'C' or 'R' respectively.  The <span class="bitalic">double precision</span> array <a class="arg" href="../G05/g05pjf.xml#PHI">PHI</a> should have length at least <m:math>
 <m:mrow><m:mi>max</m:mi><m:mspace width="0.125em"/><m:mfenced separators=""><m:mn>1</m:mn><m:mo>,</m:mo><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05pjf.xml#IP"><m:mi mathcolor="#EE0000" mathvariant="bold">IP</m:mi></m:maction><m:mo>&#215;</m:mo><m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05pjf.xml#K"><m:mi mathcolor="#EE0000" mathvariant="bold">K</m:mi></m:maction><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05pjf.xml#K"><m:mi mathcolor="#EE0000" mathvariant="bold">K</m:mi></m:maction></m:mfenced></m:mrow></m:mfenced></m:mrow>
</m:math>; if dimensioned as <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05pjf.xml#PHI"><m:mi mathcolor="#EE0000" mathvariant="bold">PHI</m:mi></m:maction><m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05pjf.xml#K"><m:mi mathcolor="#EE0000" mathvariant="bold">K</m:mi></m:maction><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05pjf.xml#K"><m:mi mathcolor="#EE0000" mathvariant="bold">K</m:mi></m:maction><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05pjf.xml#IP"><m:mi mathcolor="#EE0000" mathvariant="bold">IP</m:mi></m:maction></m:mfenced>
</m:math>&#160;(as in the above example) then  <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05pjf.xml#PHI"><m:mi mathcolor="#EE0000" mathvariant="bold">PHI</m:mi></m:maction>
 <m:mfenced separators=""><m:mi>i</m:mi><m:mo>,</m:mo><m:mi>j</m:mi><m:mo>,</m:mo><m:mi>l</m:mi></m:mfenced>
</m:math>&#160;will contain the element <m:math>
 <m:mi mathvariant="normal">PAR</m:mi>
 <m:mfenced separators="">
  <m:mfenced separators=""><m:mi>l</m:mi><m:mo>-</m:mo><m:mn>1</m:mn></m:mfenced>
  <m:mo>&#215;</m:mo>
  <m:mi>k</m:mi>
  <m:mo>&#215;</m:mo>
  <m:mi>k</m:mi>
  <m:mo>+</m:mo>
  <m:mfenced separators=""><m:mi>i</m:mi><m:mo>-</m:mo><m:mn>1</m:mn></m:mfenced>
  <m:mo>&#215;</m:mo>
  <m:mi>k</m:mi>
  <m:mo>+</m:mo>
  <m:mi>j</m:mi>
 </m:mfenced>
</m:math>.  The <span class="bitalic">double precision</span> array <a class="arg" href="../G05/g05pjf.xml#THETA">THETA</a> should have length at least <m:math>
 <m:mrow><m:mi>max</m:mi><m:mspace width="0.125em"/><m:mfenced separators=""><m:mn>1</m:mn><m:mo>,</m:mo><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05pjf.xml#IQ"><m:mi mathcolor="#EE0000" mathvariant="bold">IQ</m:mi></m:maction><m:mo>&#215;</m:mo><m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05pjf.xml#K"><m:mi mathcolor="#EE0000" mathvariant="bold">K</m:mi></m:maction><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05pjf.xml#K"><m:mi mathcolor="#EE0000" mathvariant="bold">K</m:mi></m:maction></m:mfenced></m:mrow></m:mfenced></m:mrow>
</m:math>; if dimensioned as <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05pjf.xml#THETA"><m:mi mathcolor="#EE0000" mathvariant="bold">THETA</m:mi></m:maction>
 <m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05pjf.xml#K"><m:mi mathcolor="#EE0000" mathvariant="bold">K</m:mi></m:maction><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05pjf.xml#K"><m:mi mathcolor="#EE0000" mathvariant="bold">K</m:mi></m:maction><m:mo>,</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05pjf.xml#IQ"><m:mi mathcolor="#EE0000" mathvariant="bold">IQ</m:mi></m:maction></m:mfenced>
</m:math>&#160;(as in the above example) then  <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05pjf.xml#THETA"><m:mi mathcolor="#EE0000" mathvariant="bold">THETA</m:mi></m:maction>
 <m:mfenced separators=""><m:mi>i</m:mi><m:mo>,</m:mo><m:mi>j</m:mi><m:mo>,</m:mo><m:mi>l</m:mi></m:mfenced>
</m:math>&#160;will contain the element <m:math>
 <m:mi mathvariant="normal">PAR</m:mi>
 <m:mfenced separators="">
  <m:mi mathvariant="normal">IP</m:mi>
  <m:mo>&#215;</m:mo>
  <m:mi>k</m:mi>
  <m:mo>&#215;</m:mo>
  <m:mi>k</m:mi>
  <m:mo>+</m:mo>
  <m:mfenced separators=""><m:mi>l</m:mi><m:mo>-</m:mo><m:mn>1</m:mn></m:mfenced>
  <m:mo>&#215;</m:mo>
  <m:mi>k</m:mi>
  <m:mo>&#215;</m:mo>
  <m:mi>k</m:mi>
  <m:mo>+</m:mo>
  <m:mfenced separators=""><m:mi>i</m:mi><m:mo>-</m:mo><m:mn>1</m:mn></m:mfenced>
  <m:mo>&#215;</m:mo>
  <m:mi>k</m:mi>
  <m:mo>+</m:mo>
  <m:mi>j</m:mi>
 </m:mfenced>
</m:math>.  The <span class="bitalic">double precision</span> array <a class="arg" href="../G05/g05pjf.xml#XMEAN">XMEAN</a> should have length at least <a class="arg" href="../G05/g05pjf.xml#K">K</a>; if <m:math>
 <m:mi mathvariant="normal">MEAN</m:mi><m:mo>=</m:mo><m:mtext>'M'</m:mtext>
</m:math>&#160;then <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../G05/g05pjf.xml#XMEAN"><m:mi mathcolor="#EE0000" mathvariant="bold">XMEAN</m:mi></m:maction>
 <m:mfenced separators=""><m:mi>i</m:mi></m:mfenced>
</m:math>&#160;will contain the element <m:math>
 <m:mi mathvariant="normal">PAR</m:mi>
 <m:mfenced separators="">
  <m:mi mathvariant="normal">IP</m:mi>
  <m:mo>+</m:mo>
  <m:mi mathvariant="normal">IQ</m:mi>
  <m:mo>&#215;</m:mo>
  <m:mi>k</m:mi>
  <m:mo>&#215;</m:mo>
  <m:mi>k</m:mi>
  <m:mo>+</m:mo>
  <m:mi>i</m:mi>
 </m:mfenced>
</m:math>, otherwise <a class="arg" href="../G05/g05pjf.xml#XMEAN">XMEAN</a> should contain an array of zero values.</div>
<div class="paramtext">The integer array <a class="arg" href="../G05/g05pjf.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05pjf.xml">G05PJF</a> contains information on the base generator being used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05pjf.xml">G05PJF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. 

The required length of the array <a class="arg" href="../G05/g05pjf.xml#STATE">STATE</a> will depend on the base generator chosen during initialization.

Due to changes in the underlying code the sequence of values produced by <a class="rout" href="../G05/g05pjf.xml">G05PJF</a> is likely to be different from those produced by <a class="wdrn" href="../GENINT/replace.xml#G05HDF">G05HDF</a>.</div><h3 class="standard"><a class="sec" name="G05HKF" id="G05HKF"/>G05HKF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05pdf.xml">G05PDF</a>.</div><pre class="verbatim">
Old: CALL G05HKF(DIST,NUM,IP,IQ,THETA,GAMMA,DF,HT,ET,FCALL,RVEC,IGEN,ISEED,RWSAV,IFAIL)
New: CALL G05PDF(DIST,NUM,IP,IQ,THETA,GAMMA,DF,HT,ET,FCALL,R,LR,STATE,IFAIL)
</pre><div class="paramtext">The integer array <a class="arg" href="../G05/g05pdf.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05pdf.xml">G05PDF</a> contains information on the base generator being used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05pdf.xml">G05PDF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. 

The required length of the array <a class="arg" href="../G05/g05pdf.xml#STATE">STATE</a> will depend on the base generator chosen during initialization.

Due to changes in the underlying code the sequence of values produced by <a class="rout" href="../G05/g05pdf.xml">G05PDF</a> is likely to be different from those produced by <a class="wdrn" href="../GENINT/replace.xml#G05HKF">G05HKF</a>.</div><h3 class="standard"><a class="sec" name="G05HLF" id="G05HLF"/>G05HLF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05pef.xml">G05PEF</a>.</div><pre class="verbatim">
Old: CALL G05HLF(DIST,NUM,IP,IQ,THETA,GAMMA,DF,HT,ET,FCALL,RVEC,IGEN,ISEED,RWSAV,IFAIL)
New: CALL G05PEF(DIST,NUM,IP,IQ,THETA,GAMMA,DF,HT,ET,FCALL,R,LR,STATE,IFAIL)
</pre><div class="paramtext">The integer array <a class="arg" href="../G05/g05pef.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05pef.xml">G05PEF</a> contains information on the base generator being used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05pef.xml">G05PEF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. 

The required length of the array <a class="arg" href="../G05/g05pef.xml#STATE">STATE</a> will depend on the base generator chosen during initialization.

Due to changes in the underlying code the sequence of values produced by <a class="rout" href="../G05/g05pef.xml">G05PEF</a> is likely to be different from those produced by <a class="wdrn" href="../GENINT/replace.xml#G05HLF">G05HLF</a>.</div><h3 class="standard"><a class="sec" name="G05HMF" id="G05HMF"/>G05HMF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05pff.xml">G05PFF</a>.</div><pre class="verbatim">
Old: CALL G05HMF(DIST,NUM,IP,IQ,THETA,GAMMA,DF,HT,ET,FCALL,RVEC,IGEN,ISEED,RWSAV,IFAIL)
New: CALL G05PFF(DIST,NUM,IP,IQ,THETA,GAMMA,DF,HT,ET,FCALL,R,LR,STATE,IFAIL)
</pre><div class="paramtext">The integer array <a class="arg" href="../G05/g05pff.xml#STATE">STATE</a> in the call to <a class="rout" href="../G05/g05pff.xml">G05PFF</a> contains information on the base generator being used. This array must have been initialized prior to calling <a class="rout" href="../G05/g05pff.xml">G05PFF</a> with a call to either <a class="rout" href="../G05/g05kff.xml">G05KFF</a> or <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>. 

The required length of the array <a class="arg" href="../G05/g05pff.xml#STATE">STATE</a> will depend on the base generator chosen during initialization.

Due to changes in the underlying code the sequence of values produced by <a class="rout" href="../G05/g05pff.xml">G05PFF</a> is likely to be different from those produced by <a class="wdrn" href="../GENINT/replace.xml#G05HMF">G05HMF</a>.</div><h3 class="standard"><a class="sec" name="G05HNF" id="G05HNF"/>G05HNF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05pgf.xml">G05PGF</a>.</div><pre class="verbatim">
Old: CALL G05HNF(DIST,NUM,IP,IQ,THETA,DF,HT,ET,FCALL,RVEC,IGEN,ISEED,RWSAV,IFAIL)
New: CALL G05PGF(DIST,NUM,IP,IQ,THETA,DF,HT,ET,FCALL,RVEC,STATE,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05KAF" id="G05KAF"/>G05KAF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05saf.xml">G05SAF</a>.</div><pre class="verbatim">
Old:
        DO 20 I = 1, N
           X(I) = G05KAF(IGEN,ISEED)
20      CONTINUE
New: CALL G05SAF(N,STATE,X,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05KBF" id="G05KBF"/>G05KBF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05kff.xml">G05KFF</a>.</div><pre class="verbatim">
Old: G05KBF(IGEN,ISEED)
New: 
IF (IGEN.EQ.0) THEN
   CALL G05KFF(1,1,ISEED,LSEED,STATE,LSTATE,IFAIL)
ELSE
   CALL G05KFF(2,IGEN,ISEED,LSEED,STATE,LSTATE,IFAIL)
END IF
</pre><h3 class="standard"><a class="sec" name="G05KCF" id="G05KCF"/>G05KCF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05kgf.xml">G05KGF</a>.</div><pre class="verbatim">
Old: CALL G05KCF(IGEN,ISEED)
New: 
IF (IGEN.EQ.0) THEN
   CALL G05KGF(1,1,STATE,LSTATE,IFAIL)
ELSE
   CALL G05KGF(2,IGEN,STATE,LSTATE,IFAIL)
END IF
</pre><h3 class="standard"><a class="sec" name="G05KEF" id="G05KEF"/>G05KEF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05tbf.xml">G05TBF</a>.</div><pre class="verbatim">
Old:
       DO 20 I = 1, N
          X(I) = G05KEF(P,IGEN,ISEED,IFAIL)
20     CONTINUE
New: CALL G05TBF(N,P,STATE,X,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05LAF" id="G05LAF"/>G05LAF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05skf.xml">G05SKF</a>.</div><pre class="verbatim">
Old: CALL G05LAF(XMU,VAR,N,X,IGEN,ISEED,IFAIL)
New: CALL G05SKF(N,XMU,VAR,STATE,X,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05LBF" id="G05LBF"/>G05LBF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05snf.xml">G05SNF</a>.</div><pre class="verbatim">
Old: CALL G05LBF(DF,N,X,IGEN,ISEED,IFAIL)
New: CALL G05SNF(N,DF,STATE,X,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05LCF" id="G05LCF"/>G05LCF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05sdf.xml">G05SDF</a>.</div><pre class="verbatim">
Old: CALL G05LCF(DF,N,X,IGEN,ISEED,IFAIL)
New: CALL G05SDF(N,DF,STATE,X,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05LDF" id="G05LDF"/>G05LDF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05shf.xml">G05SHF</a>.</div><pre class="verbatim">
Old: CALL G05LDF(DF1,DF2,N,X,IGEN,ISEED,IFAIL)
New: CALL G05SHF(N,DF1,DF2,STATE,X,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05LEF" id="G05LEF"/>G05LEF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05sbf.xml">G05SBF</a>.</div><pre class="verbatim">
Old: CALL G05LEF(A,B,N,X,IGEN,ISEED,IFAIL)
New: CALL G05SBF(N,A,B,STATE,X,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05LFF" id="G05LFF"/>G05LFF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05sjf.xml">G05SJF</a>.</div><pre class="verbatim">
Old: CALL G05LFF(A,B,N,X,IGEN,ISEED,IFAIL)
New: CALL G05SJF(N,A,B,STATE,X,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05LGF" id="G05LGF"/>G05LGF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05sqf.xml">G05SQF</a>.</div><pre class="verbatim">
Old: CALL G05LGF(A,B,N,X,IGEN,ISEED,IFAIL)
New: CALL G05SQF(N,A,B,STATE,X,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05LHF" id="G05LHF"/>G05LHF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05spf.xml">G05SPF</a>.</div><pre class="verbatim">
Old: CALL G05LHF(XMIN,XMAX,XMED,N,X,IGEN,ISEED,IFAIL)
New: CALL G05SPF(N,XMIN,XMED,XMAX,STATE,X,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05LJF" id="G05LJF"/>G05LJF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05sff.xml">G05SFF</a>.</div><pre class="verbatim">
Old: CALL G05LJF(A,N,X,IGEN,ISEED,IFAIL)
New: CALL G05SFF(N,A,STATE,X,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05LKF" id="G05LKF"/>G05LKF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05smf.xml">G05SMF</a>.</div><pre class="verbatim">
Old: CALL G05LKF(XMU,VAR,N,X,IGEN,ISEED,IFAIL)
New: CALL G05SMF(N,XMU,VAR,STATE,X,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05LLF" id="G05LLF"/>G05LLF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05sjf.xml">G05SJF</a>.</div><pre class="verbatim">
Old: CALL G05LLF(XMED,SEMIQR,N,X,IGEN,ISEED,IFAIL)
New: CALL G05SCF(N,XMED,SEMIQR,STATE,X,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05LMF" id="G05LMF"/>G05LMF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05ssf.xml">G05SSF</a>.</div><pre class="verbatim">
Old: CALL G05LMF(A,B,N,X,IGEN,ISEED,IFAIL)
New: CALL G05SSF(N,A,B,STATE,X,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05LNF" id="G05LNF"/>G05LNF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05slf.xml">G05SLF</a>.</div><pre class="verbatim">
Old: CALL G05LNF(A,B,N,X,IGEN,ISEED,IFAIL)
New: CALL G05SLF(N,A,B,STATE,X,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05LPF" id="G05LPF"/>G05LPF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05srf.xml">G05SRF</a>.</div><pre class="verbatim">
Old: CALL G05LPF(VK,N,X,IGEN,ISEED,IFAIL)
New: CALL G05SRF(N,VK,STATE,X,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05LQF" id="G05LQF"/>G05LQF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05sgf.xml">G05SGF</a>.</div><pre class="verbatim">
Old: CALL G05LQF(NMIX,A,WGT,N,X,IGEN,ISEED,IFAIL)
New: CALL G05SGF(N,NMIX,A,WGT,STATE,X,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05LXF" id="G05LXF"/>G05LXF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05ryf.xml">G05RYF</a>.</div><pre class="verbatim">
Old: CALL G05LXF(MODE,DF,M,XMU,C,LDC,N,X,LDX,IGEN,ISEED,R,LR,IFAIL)
New: CALL G05RYF(MODE,N,DF,M,XMU,C,LDC,R,LR,STATE,X,LDX,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05LYF" id="G05LYF"/>G05LYF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05rzf.xml">G05RZF</a>.</div><pre class="verbatim">
Old: G05LYF(MODE,M,XMU,C,LDC,N,X,LDX,IGEN,ISEED,R,LR,IFAIL)
New: G05RZF(MODE,N,M,XMU,C,LDC,R,LR,STATE,X,LDX,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05LZF" id="G05LZF"/>G05LZF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05rzf.xml">G05RZF</a>.</div><pre class="verbatim">
Old: CALL G05LZF(MODE,M,XMU,C,LDC,X,IGEN,ISEED,R,LR,IFAIL)
New:
N = 1
LDX = 1
CALL G05RZF(MODE,N,M,XMU,C,LDC,R,LR,STATE,X,LDX,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05MAF" id="G05MAF"/>G05MAF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05tlf.xml">G05TLF</a>.</div><pre class="verbatim">
Old: CALL G05MAF(A,B,N,X,IGEN,ISEED,IFAIL)
New: CALL G05TLF(N,A,B,STATE,X,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05MBF" id="G05MBF"/>G05MBF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05tcf.xml">G05TCF</a>.</div><pre class="verbatim">
Old: CALL G05MBF(MODE,P,N,X,IGEN,ISEED,R,NR,IFAIL)
New: CALL G05TCF(MODE,N,P,R,LR,STATE,X,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05MCF" id="G05MCF"/>G05MCF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05thf.xml">G05THF</a>.</div><pre class="verbatim">
Old: CALL G05MCF(MODE,M,P,N,X,IGEN,ISEED,R,NR,IFAIL)
New: CALL G05THF(MODE,N,M,P,R,LR,STATE,X,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05MDF" id="G05MDF"/>G05MDF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05tff.xml">G05TFF</a>.</div><pre class="verbatim">
Old: CALL G05MDF(MODE,A,N,X,IGEN,ISEED,R,NR,IFAIL)
New: CALL G05TFF(MODE,N,A,R,LR,STATE,X,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05MEF" id="G05MEF"/>G05MEF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05tkf.xml">G05TKF</a>.</div><pre class="verbatim">
Old: CALL G05MEF(M,VLAMDA,X,IGEN,ISEED,IFAIL)
New: CALL G05TKF(M,VLAMBDA,STATE,X,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05MJF" id="G05MJF"/>G05MJF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05taf.xml">G05TAF</a>.</div><pre class="verbatim">
Old: CALL G05MJF(MODE,M,P,N,X,IGEN,ISEED,R,NR,IFAIL)
New: CALL G05TAF(MODE,N,M,P,R,LR,STATE,X,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05MKF" id="G05MKF"/>G05MKF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05tjf.xml">G05TJF</a>.</div><pre class="verbatim">
Old: CALL G05MKF(MODE,LAMBDA,N,X,IGEN,ISEED,R,NR,IFAIL)
New: CALL G05TJF(MODE,N,LAMBDA,R,LR,STATE,X,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05MLF" id="G05MLF"/>G05MLF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05tef.xml">G05TEF</a>.</div><pre class="verbatim">
Old: CALL G05MLF(MODE,NS,NP,M,N,X,IGEN,ISEED,R,NR,IFAIL)
New: CALL G05TEF(MODE,N,NS,NP,M,R,LR,STATE,X,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05MRF" id="G05MRF"/>G05MRF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05tgf.xml">G05TGF</a>.</div><pre class="verbatim">
Old: CALL G05MRF(MODE,M,K,P,N,X,LDX,IGEN,ISEED,R,NR,IFAIL)
New: CALL G05TGF(MODE,N,M,K,P,R,LR,STATE,X,LDX,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05MZF" id="G05MZF"/>G05MZF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05tdf.xml">G05TDF</a>.</div><pre class="verbatim">
Old: CALL G05MZF(MODE,P,NP,IP1,ITYPE,N,X,IGEN,ISEED,R,NR,IFAIL)
New: CALL G05TDF(MODE,N,P,NP,IP1,ITYPE,R,LR,STATE,X,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05NAF" id="G05NAF"/>G05NAF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05ncf.xml">G05NCF</a>.</div><pre class="verbatim">
Old: CALL G05NAF(INDEX,N,IGEN,ISEED,IFAIL)
New: CALL G05NCF(INDEX,N,STATE,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05NBF" id="G05NBF"/>G05NBF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05ndf.xml">G05NDF</a>.</div><pre class="verbatim">
Old: CALL G05NBF(IPOP,N,ISAMPL,M,IGEN,ISEED,IFAIL)
New: CALL G05NDF(IPOP,N,ISAMPL,M,STATE,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05PAF" id="G05PAF"/>G05PAF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05phf.xml">G05PHF</a>.</div><pre class="verbatim">
Old: CALL G05PAF(MODE,XMEAN,IP,PHI,IQ,THETA,AVAR,VAR,N,X,IGEN,ISEED,R,NR,IFAIL)
New: CALL G05PHF(MODE,N,XMEAN,IP,PHI,IQ,THETA,AVAR,R,LR,STATE,VAR,X,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05PCF" id="G05PCF"/>G05PCF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05pjf.xml">G05PJF</a>.</div><pre class="verbatim">
Old: CALL G05PCF(MODE,K,XMEAN,IP,PHI,IQ,THETA,VAR,LDV,N,X,IGEN,ISEED,R,NR,IWORK,LIWORK,IFAIL)
New: CALL G05PJF(MODE,N,K,XMEAN,IP,PHI,IQ,THETA,VAR,LDV,R,LR,STATE,X,LDX,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05QAF" id="G05QAF"/>G05QAF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05pxf.xml">G05PXF</a>.</div><pre class="verbatim">
Old: CALL G05QAF(SIDE,INIT,M,N,A,LDA,IGEN,ISEED,WK,IFAIL)
New: CALL G05PXF(SIDE,INIT,M,N,STATE,A,LDA,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05QBF" id="G05QBF"/>G05QBF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05pyf.xml">G05PYF</a>.</div><pre class="verbatim">
Old: CALL G05QBF(N,D,C,LDC,EPS,IGEN,ISEED,WK,IFAIL)
New: CALL G05PYF(N,D,EPS,STATE,C,LDC,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05QDF" id="G05QDF"/>G05QDF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05pzf.xml">G05PZF</a>.</div><pre class="verbatim">
Old: CALL G05QDF(MODE,NROW,NCOL,TOTR,TOTC,X,LDX,IGEN,ISEED,R,NR,IW,LIW,IFAIL)
New: CALL G05PZF(MODE,NROW,NCOL,TOTR,TOTC,R,LR,STATE,X,LDX,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05RAF" id="G05RAF"/>G05RAF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05rdf.xml">G05RDF</a>.</div><pre class="verbatim">
Old: CALL G05RAF(MODE,M,C,LDC,N,X,LDX,IGEN,ISEED,R,LR,IFAIL)
New: CALL G05RDF(MODE,N,M,C,LDC,R,LR,STATE,X,LDX,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05RBF" id="G05RBF"/>G05RBF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05rcf.xml">G05RCF</a>.</div><pre class="verbatim">
Old: CALL G05RBF(MODE,DF,M,C,LDC,N,X,LDX,IGEN,ISEED,R,LR,IFAIL)
New: CALL G05RCF(MODE,N,DF,M,C,LDC,R,LR,STATE,X,LDX,IFAIL)
</pre><h3 class="standard"><a class="sec" name="G05YAF" id="G05YAF"/>G05YAF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 23.<br/>
Replaced by <a class="rout" href="../G05/g05ylf.xml">G05YLF</a> and <a class="rout" href="../G05/g05ymf.xml">G05YMF</a>.</div><table class="standard-100"><tr>
<td style="width:NaNem;" valign="baseline"/>
<td valign="top">Faure quasi random numbers
<pre class="verbatim">
Old: CALL G05YAF(.TRUE.,'F',ISKIP,IDIM,QUAS,IREF,IFAIL)
New: CALL G05YLF(4,IDIM,IREF,LIREF,ISKIP,IFAIL)
</pre><pre class="verbatim">
Old: CALL G05YAF(.FALSE.,'F',ISKIP,IDIM,QUAS,IREF,IFAIL)
New: CALL G05YMF(1,2,QUAS,LDQUAS,IREF,IFAIL)
</pre></td>
</tr><tr>
<td style="width:NaNem;" valign="baseline"/>
<td valign="top">Sobol quasi random numbers
<pre class="verbatim">
Old: CALL G05YAF(.TRUE.,'S',ISKIP,IDIM,QUAS,IREF,IFAIL)
New: CALL G05YLF(2,IDIM,IREF,LIREF,ISKIP,IFAIL)
</pre><pre class="verbatim">
Old: CALL G05YAF(.FALSE.,'S',ISKIP,IDIM,QUAS,IREF,IFAIL)
New: CALL G05YMF(1,2,QUAS,LDQUAS,IREF,IFAIL)
</pre></td>
</tr><tr>
<td style="width:NaNem;" valign="baseline"/>
<td valign="top">Neiderreiter quasi random numbers
<pre class="verbatim">
Old: CALL G05YAF(.TRUE.,'N',ISKIP,IDIM,QUAS,IREF,IFAIL)
New: CALL G05YLF(3,IDIM,IREF,LIREF,ISKIP,IFAIL)
</pre><pre class="verbatim">
Old: CALL G05YAF(.FALSE.,'N',ISKIP,IDIM,QUAS,IREF,IFAIL)
New: CALL G05YMF(1,2,QUAS,LDQUAS,IREF,IFAIL)
</pre></td>
</tr></table><h3 class="standard"><a class="sec" name="G05YBF" id="G05YBF"/>G05YBF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 23.<br/>
Replaced by <a class="rout" href="../G05/g05ylf.xml">G05YLF</a> and either <a class="rout" href="../G05/g05yjf.xml">G05YJF</a> or <a class="rout" href="../G05/g05ykf.xml">G05YKF</a>.</div><div class="paramtext">This routine has been replaced by a suite of routines consisting of the relevant initialization routine followed by one of two possible generator routines.</div>
<table class="standard-100"><tr>
<td style="width:NaNem;" valign="baseline"/>
<td valign="top">Faure quasi random numbers with Gaussian probability:
<pre class="verbatim">
Old: CALL G05YBF(.TRUE.,'F',.FALSE.,MEAN,STD,ISKIP,IDIM,QUASI,IREF,IFAIL)
New: CALL G05YLF(4,IDIM,IREF,LIREF,ISKIP,IFAIL)
</pre><pre class="verbatim">
Old: CALL G05YBF(.FALSE.,'F',.FALSE.,MEAN,STD,ISKIP,IDIM,QUASI,IREF,IFAIL)
New: CALL G05YJF(MEAN,STD,N,QUASI,IREF,IFAIL)
</pre></td>
</tr><tr>
<td style="width:NaNem;" valign="baseline"/>
<td valign="top">Sobol quasi random numbers with Gaussian probability:
<pre class="verbatim">
Old: CALL G05YBF(.TRUE.,'S',.FALSE.,MEAN,STD,ISKIP,IDIM,QUASI,IREF,IFAIL)
New: CALL G05YLF(2,IDIM,IREF,LIREF,ISKIP,IFAIL)
</pre><pre class="verbatim">
Old: CALL G05YBF(.FALSE.,'S',.FALSE.,MEAN,STD,ISKIP,IDIM,QUASI,IREF,IFAIL)
New: CALL G05YJF(MEAN,STD,N,QUASI,IREF,IFAIL)
</pre></td>
</tr><tr>
<td style="width:NaNem;" valign="baseline"/>
<td valign="top">Neiderreiter quasi random numbers with Gaussian probability:
<pre class="verbatim">
Old: CALL G05YBF(.TRUE.,'N',.FALSE.,MEAN,STD,ISKIP,IDIM,QUASI,IREF,IFAIL)
New: CALL G05YLF(3,IDIM,IREF,LIREF,ISKIP,IFAIL)
</pre><pre class="verbatim">
Old: CALL G05YBF(.FALSE.,'N',.FALSE.,MEAN,STD,ISKIP,IDIM,QUASI,IREF,IFAIL)
New: CALL G05YJF(MEAN,STD,N,QUASI,IREF,IFAIL)
</pre></td>
</tr><tr>
<td style="width:NaNem;" valign="baseline"/>
<td valign="top">Faure quasi random numbers with log Normal probability:
<pre class="verbatim">
Old: CALL G05YBF(.TRUE.,'F',.TRUE.,MEAN,STD,ISKIP,IDIM,QUASI,IREF,IFAIL)
New: CALL G05YLF(4,IDIM,IREF,LIREF,ISKIP,IFAIL)
</pre><pre class="verbatim">
Old: CALL G05YBF(.FALSE.,'F',.TRUE.,MEAN,STD,ISKIP,IDIM,QUASI,IREF,IFAIL)
New: CALL G05YKF(MEAN,STD,N,QUASI,IREF,IFAIL)
</pre></td>
</tr><tr>
<td style="width:NaNem;" valign="baseline"/>
<td valign="top">Sobol quasi random numbers with log Normal probability:
<pre class="verbatim">
Old: CALL G05YBF(.TRUE.,'S',.TRUE.,MEAN,STD,ISKIP,IDIM,QUASI,IREF,IFAIL)
New: CALL G05YLF(2,IDIM,IREF,LIREF,ISKIP,IFAIL)
</pre><pre class="verbatim">
Old: CALL G05YBF(.FALSE.,'S',.TRUE.,MEAN,STD,ISKIP,IDIM,QUASI,IREF,IFAIL)
New: CALL G05YKF(MEAN,STD,N,QUASI,IREF,IFAIL)
</pre></td>
</tr><tr>
<td style="width:NaNem;" valign="baseline"/>
<td valign="top">Neiderreiter quasi random numbers with log Normal probability:
<pre class="verbatim">
Old: CALL G05YBF(.TRUE.,'N',.TRUE.,MEAN,STD,ISKIP,IDIM,QUASI,IREF,IFAIL)
New: CALL G05YLF(3,IDIM,IREF,LIREF,ISKIP,IFAIL)
</pre><pre class="verbatim">
Old: CALL G05YBF(.FALSE.,'N',.TRUE.,MEAN,STD,ISKIP,IDIM,QUASI,IREF,IFAIL)
New: CALL G05YKF(MEAN,STD,N,QUASI,IREF,IFAIL)
</pre></td>
</tr></table><h3 class="standard"><a class="sec" name="G05YCF" id="G05YCF"/>G05YCF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05ylf.xml">G05YLF</a>.</div><pre class="verbatim">
Old: CALL G05YCF(IDIM,IREF,IFAIL)
New: GENID = 4
     CALL G05YLF(GENID,IDIM,IREF,LIREF,ISKIP,IFAIL)</pre><h3 class="standard"><a class="sec" name="G05YDF" id="G05YDF"/>G05YDF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05ymf.xml">G05YMF</a>.</div><pre class="verbatim">
Old: CALL G05YDF(N,QUASI,IREF,IFAIL)
New: CALL G05YMF(N,QUAS,LDQUAS,IREF,IFAIL)</pre><h3 class="standard"><a class="sec" name="G05YEF" id="G05YEF"/>G05YEF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05ylf.xml">G05YLF</a>.</div><pre class="verbatim">
Old: CALL G05YEF(IDIM, IREF, ISKIP, IFAIL)
New: GENID = 2
     CALL G05YLF(GENID,IDIM,IREF,LIREF,ISKIP,IFAIL)</pre><h3 class="standard"><a class="sec" name="G05YFF" id="G05YFF"/>G05YFF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05ymf.xml">G05YMF</a>.</div><pre class="verbatim">
Old: CALL G05YFF(N,QUASI,IREF,IFAIL)
New: CALL G05YMF(N,QUAS,LDQUAS,IREF,IFAIL)</pre><h3 class="standard"><a class="sec" name="G05YGF" id="G05YGF"/>G05YGF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05ylf.xml">G05YLF</a>.</div><pre class="verbatim">
Old: CALL G05YGF(IDIM,IREF,ISKIP,IFAIL)
New: GENID = 3
     CALL G05YLF(GENID,IDIM,IREF,LIREF,ISKIP,IFAIL)</pre><h3 class="standard"><a class="sec" name="G05YHF" id="G05YHF"/>G05YHF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G05/g05ymf.xml">G05YMF</a>.</div><pre class="verbatim">
Old: CALL G05YHF(N,QUASI,IREF,IFAIL)
New: CALL G05YMF(N,RCORD,QUAS,LDQUAS,IREF,IFAIL)</pre><h3 class="standard"><a class="sec" name="G05ZAF" id="G05ZAF"/>G05ZAF</h3><div class="paramtext">
Withdrawn at Mark 22.<br/>
There is no replacement for this routine.</div><h2 class="standard"><a class="sec" name="G08" id="G08"/>G08 &#8211; Nonparametric Statistics</h2><h3 class="standard"><a class="sec" name="G08ABF" id="G08ABF"/>G08ABF</h3><div class="paramtext">
Withdrawn at Mark 16.<br/>
Replaced by <a class="rout" href="../G08/g08agf.xml">G08AGF</a>.</div><pre class="verbatim">
Old: CALL G08ABF(X,Y,N,W1,W2,W,N1,P,IFAIL)
New: D0 20 I = 1, N
        Z(I) = X(I) - Y(I)
  20 CONTINUE
     XME = 0.0D0
     CALL G08AGF(N,Z,XME,'Lower-tail','No-zeros',W,WNOR,P,
    +            N1,W1,IFAIL)</pre>
<div class="paramtext"><a class="arg" href="../G08/g08agf.xml#WRK">W1</a> is a <span class="bitalic">double precision</span> work array of dimension <m:math>
 <m:mfenced separators="">
  <m:mn>3</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../G08/g08agf.xml#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction>
 </m:mfenced>
</m:math>.  The <span class="bitalic">double precision</span> array W2 is no longer required.  <a class="arg" href="../G08/g08agf.xml#WNOR">WNOR</a> returns the normalized Wilcoxon test statistic.  The <span class="bitalic">double precision</span> array <a class="arg" href="../G08/g08agf.xml#X">Z</a>, of dimension (<a class="arg" href="../G08/g08agf.xml#N">N</a>), contains the difference between the paired sample observations, and by setting the <span class="bitalic">double precision</span> variable <a class="arg" href="../G08/g08agf.xml#XME">XME</a> to zero the routine may be used to test whether the medians of the two matched or paired samples are equal.</div><h3 class="standard"><a class="sec" name="G08ADF" id="G08ADF"/>G08ADF</h3><div class="paramtext">
Withdrawn at Mark 16.<br/>
Replaced by <a class="rout" href="../G08/g08ahf.xml">G08AHF</a>, <a class="rout" href="../G08/g08ajf.xml">G08AJF</a> and <a class="rout" href="../G08/g08akf.xml">G08AKF</a>.</div><pre class="verbatim">
Old: CALL G08ADF(X,N,N1,W,U,P,IFAIL)
New: N2 = N - N1
     CALL G08AHF(N1,X,N2,X(N1+1),'Lower-tail',U,UNOR,P,
    +            TIES,RANKS,W,IFAIL)</pre>
<div class="paramtext">The observations from the two independent samples must be stored in two separate <span class="bitalic">double precision</span> arrays, of dimensions <a class="arg" href="../G08/g08ahf.xml#N1">N1</a> and <a class="arg" href="../G08/g08ahf.xml#N2">N2</a>, where <m:math>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../G08/g08ahf.xml#N2"><m:mi mathcolor="#EE0000" mathvariant="bold">N2</m:mi></m:maction>
 <m:mo>=</m:mo>
 <m:mi mathvariant="normal">N</m:mi>
 <m:mo>-</m:mo>
 <m:maction actiontype="link" dsi:type="simple" dsi:href="../G08/g08ahf.xml#N1"><m:mi mathcolor="#EE0000" mathvariant="bold">N1</m:mi></m:maction>
</m:math>, rather than consecutively in one array as in <a class="wdrn" href="../GENINT/replace.xml#G08ADF">G08ADF</a>.</div>
<div class="paramtext"><a class="arg" href="../G08/g08ahf.xml#UNOR">UNOR</a> returns the normalized Mann&#8211;Whitney <m:math>
 <m:mi>U</m:mi>
</m:math>&#160;statistic.  The LOGICAL parameter <a class="arg" href="../G08/g08ahf.xml#TIES">TIES</a> indicates whether ties were present in the pooled sample or not and <a class="arg" href="../G08/g08ahf.xml#RANKS">RANKS</a>, a <span class="bitalic">double precision</span> array of dimension (<m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="../G08/g08ahf.xml#N1"><m:mi mathcolor="#EE0000" mathvariant="bold">N1</m:mi></m:maction><m:mo>+</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="../G08/g08ahf.xml#N2"><m:mi mathcolor="#EE0000" mathvariant="bold">N2</m:mi></m:maction></m:math>), returns the ranks of the pooled sample.</div>
<div class="paramtext">Both <a class="wdrn" href="../GENINT/replace.xml#G08ADF">G08ADF</a> and its replacement routine <a class="rout" href="../G08/g08ahf.xml">G08AHF</a> return approximate tail probabilities for the test statistic.  To compute exact tail probabilities <a class="rout" href="../G08/g08ajf.xml">G08AJF</a> may be used if there are no ties in the pooled sample and <a class="rout" href="../G08/g08akf.xml">G08AKF</a> may be used if there are ties in the pooled sample.</div><h3 class="standard"><a class="sec" name="G08CAF" id="G08CAF"/>G08CAF</h3><div class="paramtext">
Withdrawn at Mark 16.<br/>
Replaced by <a class="rout" href="../G08/g08cbf.xml">G08CBF</a>.</div><pre class="verbatim">
Old: CALL G08CAF(N,X,NULL,NP,P,NEST,NTYPE,D,PROB,S,IND,IFAIL)
New: CALL G08CBF(N,X,DIST,PAR,NEST,NTYPE,D,Z,PROB,S,IFAIL)</pre>
<div class="paramtext">The following table indicates how existing choices for the null distribution, indicated through the INTEGER variable NULL in <a class="wdrn" href="../GENINT/replace.xml#G08CAF">G08CAF</a>, may be made in <a class="rout" href="../G08/g08cbf.xml">G08CBF</a> using the character variable <a class="arg" href="../G08/g08cbf.xml#DIST">DIST</a>.</div>
<div class="left-tablediv"><table class="frame-none"><tbody>
<tr>
<td class="libdoc" valign="top" align="left" style="width:2.1em;"> </td>
<td class="libdoc" valign="top" align="left">null distribution</td>
<td class="libdoc" valign="top" align="center"><a class="wdrn" href="../GENINT/replace.xml#G08CAF">G08CAF</a> &#8211; NULL</td>
<td class="libdoc" valign="top" align="center"><a class="rout" href="../G08/g08cbf.xml">G08CBF</a> &#8211; <a class="arg" href="../G08/g08cbf.xml#DIST">DIST</a></td>
</tr><tr>
<td class="libdoc" valign="top" align="left" style="width:2.1em;"> </td>
<td class="libdoc" valign="top" align="left">uniform</td>
<td class="libdoc" valign="top" align="center">1</td>
<td class="libdoc" valign="top" align="center">'U'</td>
</tr><tr>
<td class="libdoc" valign="top" align="left" style="width:2.1em;"> </td>
<td class="libdoc" valign="top" align="left">Normal</td>
<td class="libdoc" valign="top" align="center">2</td>
<td class="libdoc" valign="top" align="center">'N'</td>
</tr><tr>
<td class="libdoc" valign="top" align="left" style="width:2.1em;"> </td>
<td class="libdoc" valign="top" align="left">Poisson</td>
<td class="libdoc" valign="top" align="center">3</td>
<td class="libdoc" valign="top" align="center">'P'</td>
</tr><tr>
<td class="libdoc" valign="top" align="left" style="width:2.1em;"> </td>
<td class="libdoc" valign="top" align="left">exponential</td>
<td class="libdoc" valign="top" align="center">4</td>
<td class="libdoc" valign="top" align="center">'E'</td>
</tr>
</tbody>
</table></div>
<div class="paramtext"><a class="arg" href="../G08/g08cbf.xml#PAR">PAR</a> is a <span class="bitalic">double precision</span> array of dimension (2) for both the one and two parameter distributions, but only the first element of <a class="arg" href="../G08/g08cbf.xml#PAR">PAR</a> is actually referenced (used) if the chosen null distribution has only one parameter.  The input parameter NP is no longer required.</div>
<div class="paramtext">On exit <a class="arg" href="../G08/g08cbf.xml#SX">S</a> contains the sample observations sorted into ascending order.  It no longer contains the sample cumulative distribution function but this may be computed from <a class="arg" href="../G08/g08cbf.xml#SX">S</a>.</div><h2 class="standard"><a class="sec" name="G13" id="G13"/>G13 &#8211; Time Series Analysis</h2><h3 class="standard"><a class="sec" name="G13DAF" id="G13DAF"/>G13DAF</h3><div class="paramtext">
Withdrawn at Mark 17.<br/>
Replaced by <a class="rout" href="../G13/g13dmf.xml">G13DMF</a>.</div><pre class="verbatim">
Old:        CALL G13DAF(X,NXM,NX,NSM,NS,NL,ICR,C0,C,IFAIL)
New: C      First transpose the data matrix X
     C      note NSM is used as the first dimension of the array W
            D0 20 I = 1, NS
               CALL F06EFF(NX,X,(1,I),1,W(I,1),NSM)
         20 CONTINUE
     C      then if ICR = 0 in the call to G13DAF
            CALL G13DMF('V-Covariances',NS,NX,W,NSM,NL,WMEAN,C0,C,IFAIL)
     C      else if ICR = 1 in the call to G13DAF
            CALL G13DMF('R-Correlations',NS,NX,W,NSM,NL,WMEAN,C0,C,IFAIL)</pre>
<div class="paramtext">Note that in <a class="wdrn" href="../GENINT/replace.xml#G13DAF">G13DAF</a> the <a class="arg" href="../G13/g13dmf.xml#K">NS</a> series are stored in the columns of X whereas in <a class="rout" href="../G13/g13dmf.xml">G13DMF</a> these series are stored in rows; hence it is necessary to transpose the data array.</div>
<div class="paramtext">The <span class="bitalic">double precision</span> array <a class="arg" href="../G13/g13dmf.xml#WMEAN">WMEAN</a> must be of length <a class="arg" href="../G13/g13dmf.xml#K">NS</a>, and on output stores the means of each of the <a class="arg" href="../G13/g13dmf.xml#K">NS</a> series.</div>
<div class="paramtext">The diagonal elements of <a class="arg" href="../G13/g13dmf.xml#R0">C0</a> store the variances of the series if covariances are requested, but the standard deviations if correlations are requested.</div><h3 class="standard"><a class="sec" name="G13DCF" id="G13DCF"/>G13DCF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
Replaced by <a class="rout" href="../G13/g13ddf.xml">G13DDF</a>.</div><pre class="verbatim">
Old: CALL G13DCF(K,N,IP,IQ,MEAN,PAR,NPAR,QQ,KMAX,W,PARHLD,EXACT,IPRINT,
     *           CGETOL,MAXCAL,ISHOW,NITER,RLOGL,V,G,CM,LDCM,WORK,LWORK,
     *           IW,LIW,IFAIL)
New: CALL G13DDF(K,N,IP,IQ,MEAN,PAR,NPAR,QQ,KMAX,W,PARHLD,EXACT,IPRINT,
     *           CGETOL,MAXCAL,ISHOW,NITER,RLOGL,V,G,CM,LDCM,IFAIL)
</pre><div class="paramtext">The workspace arguments WORK, LWORK, IW and LIW are no longer required in the call to <a class="rout" href="../G13/g13ddf.xml">G13DDF</a>.</div><h2 class="standard"><a class="sec" name="H" id="H"/>H &#8211; Operations Research</h2><h3 class="standard"><a class="sec" name="H02BAF" id="H02BAF"/>H02BAF</h3><div class="paramtext">
Withdrawn at Mark 15.<br/>
Replaced by <a class="rout" href="../H/h02bbf.xml">H02BBF</a>.</div><pre class="verbatim">
Old:    CALL H02BAF(A,MM,N1,M,N,200,L,X,NUMIT,OPT,IFAIL)
New: C  M, N and MM must be set before these declaration statements
        INTEGER     MAXDPT, LIWORK, LRWORK, ITMAX, MSGLVL, MAXNOD, INTFST
        PARAMETER  (LIWORK = (25+N+M)*MAXDPT + 5*N + M + 4)
        PARAMETER  (LRWORK = MAXDPT*(N+2) + 2*N*N + 13*N + 12*M)
        INTEGER     INTVAR(N), IWORK(LIWORK)
        <span class="bitalic">double precision</span> BIGBND, TOLFES, TOLIV, ROPT
        <span class="bitalic">double precision</span> RA(MM,N), RX(N), CVEC(N), BL(N+M), BU(N+M),
                    RWORK(LRWORK)
        DO 10 J = 1, N
           INTVAR(J) = 1
           CVEC(J) = A(1,J)
           RX(J) = 1.0D0
           DO 20 I = 1, M
              RA(I,J) = A(I+1,J)
    20     CONTINUE
    10  CONTINUE
        BIGBND = 1.0e20
        DO 30 I = 1, N
           BL(I) = 0.0D0
           BU(I) = BIGBND
    30  CONTINUE
        DO 40 I = N+1, N+M
           BU(I) = A(I-N+1,N+1)
           BL(I) = -BIGBND
    40  CONTINUE
        ITMAX = 0
        MSGLVL = 0
        MAXNOD = 0
        INTFST = 0
        TOLIV = 0.0D0
        TOLFES = 0.0D0
        MAXDPT = 3*N/2
        IFAIL = 0
        CALL H02BBF(ITMAX,MSGLVL,N,M,RA,MM,BL,BU,INTVAR,CVEC,MAXNOD,
       +            INTFST,MAXDPT,TOLIV,TOLFES,BIGBND,RX,ROPT,IWORK,
       +            LIWORK,RWORK,LRWORK,IFAIL)
        L = 1
        IF (IFAIL.EQ.0) L = 0
        IF (IFAIL.EQ.4) L = 2
        IF (L.EQ.0) THEN
           DO 50 I = 1, N
              X(I) = RX(I)
    50     CONTINUE
           OPT = ROPT
        ENDIF</pre>
<div class="paramtext">The code indicates the minimum changes necessary, but <a class="rout" href="../H/h02bbf.xml">H02BBF</a> has additional flexibility and users may wish to take advantage of new features.  It is strongly recommended that users consult the routine document.</div><h2 class="standard"><a class="sec" name="M01" id="M01"/>M01 &#8211; Sorting and Searching</h2><h3 class="standard"><a class="sec" name="M01AJF" id="M01AJF"/>M01AJF</h3><div class="paramtext">
Withdrawn at Mark 16.<br/>
Replaced by <a class="rout" href="../M01/m01caf.xml">M01CAF</a>, <a class="rout" href="../M01/m01daf.xml">M01DAF</a> and <a class="rout" href="../M01/m01zaf.xml">M01ZAF</a>.</div><pre class="verbatim">
Old: CALL M01AJF(A,W,IND,INDW,N,NW,IFAIL)
New: CALL M01DAF(A,1,N,'A',IND,IFAIL)
     CALL M01ZAF(IND,1,N,IFAIL)
     CALL M01CAF(A,1,N,'A',IFAIL)</pre>
<div class="paramtext">The arrays W and INDW are no longer needed.</div><h3 class="standard"><a class="sec" name="M01AKF" id="M01AKF"/>M01AKF</h3><div class="paramtext">
Withdrawn at Mark 16.<br/>
Replaced by <a class="rout" href="../M01/m01caf.xml">M01CAF</a>, <a class="rout" href="../M01/m01daf.xml">M01DAF</a> and <a class="rout" href="../M01/m01zaf.xml">M01ZAF</a>.</div><pre class="verbatim">
Old: CALL M01AKF(A,W,IND,INDW,N,NW,IFAIL)
New: CALL M01DAF(A,1,N,'D',IND,IFAIL)
     CALL M01ZAF(IND,1,N,IFAIL)
     CALL M01CAF(A,1,N,'D',IFAIL)</pre>
<div class="paramtext">The arrays W and INDW are no longer needed.</div><h3 class="standard"><a class="sec" name="M01APF" id="M01APF"/>M01APF</h3><div class="paramtext">
Withdrawn at Mark 16.<br/>
Replaced by <a class="rout" href="../M01/m01caf.xml">M01CAF</a>.</div><pre class="verbatim">
Old: CALL M01APF(A,I,J,IFAIL)
New: CALL M01CAF(A,I,J,'D',IFAIL)</pre><h2 class="standard"><a class="sec" name="P01" id="P01"/>P01 &#8211; Error Trapping</h2><h3 class="standard"><a class="sec" name="P01ABF" id="P01ABF"/>P01ABF</h3><div class="paramtext">
Scheduled for withdrawal at Mark 24.<br/>
There is no replacement for this routine.</div><hr/><div><a class="genint" href="../../pdf/GENINT/replace.pdf">Advice on Replacement Calls for Withdrawn/Superseded Routines (PDF version)</a></div>
<div><a class="htmltoc" href="../FRONTMATTER/manconts.xml">NAG Library Manual</a></div>
<div><hr/><a class="genint" href="../FRONTMATTER/copyright.xml">&#169; The Numerical Algorithms Group Ltd, Oxford, UK. 2009</a></div></body></html>
