<?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>D06DBF : 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="rout" href="../../pdf/D06/d06dbf.pdf">D06DBF (PDF version)</a></div><div><a class="chap" href="d06conts.xml">D06 Chapter Contents</a></div><div><a class="chapint" href="d06intro.xml">D06 Chapter Introduction</a></div>
<div><a class="htmltoc" href="../FRONTMATTER/manconts.xml">NAG Library Manual</a></div><hr/><h1 class="libdoc">NAG Library Routine Document<br/><br/>D06DBF</h1><div class="paramtext"><div class="header"><b>Note:</b>&#160; before using this routine, please read the Users' Note for your implementation to check the interpretation of <span class="bitalic">bold italicised</span> terms and other implementation-dependent details.</div></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="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#purpose">1&#160;&#160;<b>Purpose</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#specification">2&#160;&#160;<b>Specification</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#description">3&#160;&#160;<b>Description</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#references">4&#160;&#160;<b>References</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#parameters">5&#160;&#160;<b>Parameters</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#errors">6&#160;&#160;<b>Error Indicators and Warnings</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#accuracy">7&#160;&#160;<b>Accuracy</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#fcomments">8&#160;&#160;<b>Further Comments</b></a>
</div><div class="htmltoc">
<span class="htmltoc" onclick="showLevel('tocexample');"><span class="htmltocplus" id="tocexampleplus">+</span><span class="htmltocminus" id="tocexampleminus">&#8722;</span></span>
<a class="htmltoc" href="#example">9&#160;&#160;<b>Example</b></a>
<div class="htmltocitem" id="tocexample">
<div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#examtext">9.1&#160;&#160;<b>Program Text</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#examdata">9.2&#160;&#160;<b>Program Data</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#examresults">9.3&#160;&#160;<b>Program Results</b></a>
</div>
</div>
</div>
</div>
</div><h2 class="standard"><a class="sec" name="purpose" id="purpose"/>1&#160;&#160;Purpose</h2>
<div class="paramtext">D06DBF joins together (restitches) two adjacent, or overlapping, meshes.</div><h2 class="standard"><a class="sec" name="specification" id="specification"/>2&#160;&#160;Specification</h2>
<table class="fspec"><tr><td class="tdfspec1">SUBROUTINE&#160;D06DBF&#160;(</td><td class="tdfspec2"><a class="arg" href="#EPS">EPS</a>, <a class="arg" href="#NV1">NV1</a>, <a class="arg" href="#NELT1">NELT1</a>, <a class="arg" href="#NEDGE1">NEDGE1</a>, <a class="arg" href="#COOR1">COOR1</a>, <a class="arg" href="#EDGE1">EDGE1</a>, <a class="arg" href="#CONN1">CONN1</a>, <a class="arg" href="#REFT1">REFT1</a>, <a class="arg" href="#NV2">NV2</a>, <a class="arg" href="#NELT2">NELT2</a>, <a class="arg" href="#NEDGE2">NEDGE2</a>, <a class="arg" href="#COOR2">COOR2</a>, <a class="arg" href="#EDGE2">EDGE2</a>, <a class="arg" href="#CONN2">CONN2</a>, <a class="arg" href="#REFT2">REFT2</a>, <a class="arg" href="#NV3">NV3</a>, <a class="arg" href="#NELT3">NELT3</a>, <a class="arg" href="#NEDGE3">NEDGE3</a>, <a class="arg" href="#COOR3">COOR3</a>, <a class="arg" href="#EDGE3">EDGE3</a>, <a class="arg" href="#CONN3">CONN3</a>, <a class="arg" href="#REFT3">REFT3</a>, <a class="arg" href="#ITRACE">ITRACE</a>, <a class="arg" href="#IWORK">IWORK</a>, <a class="arg" href="#LIWORK">LIWORK</a>, <a class="arg" href="#IFAIL">IFAIL</a>)</td></tr><tr><td class="tdfspec1">INTEGER</td><td class="tdfspec2">NV1, NELT1, NEDGE1, EDGE1(3,NEDGE1), CONN1(3,NELT1), REFT1(NELT1), NV2, NELT2, NEDGE2, EDGE2(3,NEDGE2), CONN2(3,NELT2), REFT2(NELT2), NV3, NELT3, NEDGE3, EDGE3(3,*), CONN3(3,*), REFT3(*), ITRACE, IWORK(LIWORK), LIWORK, IFAIL</td></tr><tr><td class="tdfspec1"><b><i>double&#160;precision</i></b></td><td class="tdfspec2">EPS, COOR1(2,NV1), COOR2(2,NV2), COOR3(2,*)</td></tr></table><h2 class="standard"><a class="sec" name="description" id="description"/>3&#160;&#160;Description</h2>
<div class="paramtext">D06DBF joins together two adjacent, or overlapping, meshes.  If the two meshes are adjacent then vertices belonging to the part of the boundary forming the common interface should coincide.  If the two meshes overlap then vertices and triangles in the overlapping zone should coincide too.</div><div class="paramtext">This routine is partly derived from material in the MODULEF package from INRIA (Institut National de Recherche en Informatique et Automatique).</div><h2 class="standard"><a class="sec" name="references" id="references"/>4&#160;&#160;References</h2>
<div class="paramtext">None.</div><h2 class="standard"><a class="sec" name="parameters" id="parameters"/>5&#160;&#160;Parameters</h2>
<dl><dt class="paramhead"><a name="EPS" id="EPS"/>1: &#160;&#160;&#8194; EPS &#8211; <span class="bitalic">double precision</span><span class="pclass">Input</span></dt><dd><div class="paramtext"><i>On entry</i>: the relative precision of the restitching of the two input meshes (see <a class="sec" href="#fcomments">Section 8</a>).</div>
<div class="paramtext"><i>Suggested value</i>:
  <m:math><m:mn>0.001</m:mn></m:math>.

</div><div class="paramtext"><i>Constraint</i>:
  <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#EPS"><m:mi mathcolor="#EE0000" mathvariant="bold">EPS</m:mi></m:maction><m:mo>&gt;</m:mo><m:mn>0.0</m:mn></m:math>.
</div></dd><dt class="paramhead"><a name="NV1" id="NV1"/>2: &#160;&#160;&#8194; NV1 &#8211; INTEGER<span class="pclass">Input</span></dt><dd><div class="paramtext"><i>On entry</i>: 

the total number of vertices in the first input mesh.</div><div class="paramtext"><i>Constraint</i>:
  <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#NV1"><m:mi mathcolor="#EE0000" mathvariant="bold">NV1</m:mi></m:maction><m:mo>&#8805;</m:mo><m:mn>3</m:mn></m:math>.
</div></dd><dt class="paramhead"><a name="NELT1" id="NELT1"/>3: &#160;&#160;&#8194; NELT1 &#8211; INTEGER<span class="pclass">Input</span></dt><dd><div class="paramtext"><i>On entry</i>: 

the number of triangular elements in the first input mesh.</div><div class="paramtext"><i>Constraint</i>:
  <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#NELT1"><m:mi mathcolor="#EE0000" mathvariant="bold">NELT1</m:mi></m:maction><m:mo>&#8804;</m:mo><m:mn>2</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#NV1"><m:mi mathcolor="#EE0000" mathvariant="bold">NV1</m:mi></m:maction><m:mo>-</m:mo><m:mn>1</m:mn></m:math>.
</div></dd><dt class="paramhead"><a name="NEDGE1" id="NEDGE1"/>4: &#160;&#160;&#8194; NEDGE1 &#8211; INTEGER<span class="pclass">Input</span></dt><dd><div class="paramtext"><i>On entry</i>: 

the number of boundary edges in the first input mesh.</div><div class="paramtext"><i>Constraint</i>:
  <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#NEDGE1"><m:mi mathcolor="#EE0000" mathvariant="bold">NEDGE1</m:mi></m:maction><m:mo>&#8805;</m:mo><m:mn>1</m:mn></m:math>.
</div></dd><dt class="paramhead"><a name="COOR1" id="COOR1"/>5: &#160;&#160;&#8194; COOR1(<m:math><m:mn>2</m:mn></m:math>,<a class="arg" href="#NV1">NV1</a>) &#8211; <span class="bitalic">double precision</span> array<span class="pclass">Input</span></dt><dd>
<div class="paramtext"><i>On entry</i>: <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#COOR1"><m:mi mathcolor="#EE0000" mathvariant="bold">COOR1</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>1</m:mn><m:mi>i</m:mi></m:mfenced></m:mrow></m:math>&#160;contains the <m:math><m:mi>x</m:mi></m:math>&#160;co-ordinate of the <m:math><m:mi>i</m:mi></m:math>th vertex of the first input mesh, 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="#NV1"><m:mi mathcolor="#EE0000" mathvariant="bold">NV1</m:mi></m:maction></m:math>; while <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#COOR1"><m:mi mathcolor="#EE0000" mathvariant="bold">COOR1</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>2</m:mn><m:mi>i</m:mi></m:mfenced></m:mrow></m:math>&#160;contains the corresponding <m:math><m:mi>y</m:mi></m:math>&#160;co-ordinate.</div></dd><dt class="paramhead"><a name="EDGE1" id="EDGE1"/>6: &#160;&#160;&#8194; EDGE1(<m:math><m:mn>3</m:mn></m:math>,<a class="arg" href="#NEDGE1">NEDGE1</a>) &#8211; INTEGER array<span class="pclass">Input</span></dt><dd>
<div class="paramtext"><i>On entry</i>: the specification of the boundary edges of the first input mesh. <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#EDGE1"><m:mi mathcolor="#EE0000" mathvariant="bold">EDGE1</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>1</m:mn><m:mi>j</m:mi></m:mfenced></m:mrow></m:math>&#160;and <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#EDGE1"><m:mi mathcolor="#EE0000" mathvariant="bold">EDGE1</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>2</m:mn><m:mi>j</m:mi></m:mfenced></m:mrow></m:math>&#160;contain the vertex numbers of the two end points of the <m:math><m:mi>j</m:mi></m:math>th boundary edge. <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#EDGE1"><m:mi mathcolor="#EE0000" mathvariant="bold">EDGE1</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>3</m:mn><m:mi>j</m:mi></m:mfenced></m:mrow></m:math>&#160;is a user-supplied tag for the <m:math><m:mi>j</m:mi></m:math>th boundary edge.</div><div class="paramtext"><i>Constraint</i>:
  <m:math><m:mn>1</m:mn><m:mo>&#8804;</m:mo><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#EDGE1"><m:mi mathcolor="#EE0000" mathvariant="bold">EDGE1</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mi mathvariant="italic">i</m:mi><m:mi mathvariant="italic">j</m:mi></m:mfenced></m:mrow><m:mo>&#8804;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#NV1"><m:mi mathcolor="#EE0000" mathvariant="bold">NV1</m:mi></m:maction></m:math>&#160;and <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#EDGE1"><m:mi mathcolor="#EE0000" mathvariant="bold">EDGE1</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>1</m:mn><m:mi mathvariant="italic">j</m:mi></m:mfenced></m:mrow><m:mo>&#8800;</m:mo><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#EDGE1"><m:mi mathcolor="#EE0000" mathvariant="bold">EDGE1</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>2</m:mn><m:mi mathvariant="italic">j</m:mi></m:mfenced></m:mrow></m:math>,  for <m:math><m:mi mathvariant="italic">i</m:mi><m:mo>=</m:mo><m:mn>1</m:mn><m:mo>,</m:mo><m:mn>2</m:mn></m:math> and <m:math><m:mi mathvariant="italic">j</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="#NEDGE1"><m:mi mathcolor="#EE0000" mathvariant="bold">NEDGE1</m:mi></m:maction></m:math>.</div></dd><dt class="paramhead"><a name="CONN1" id="CONN1"/>7: &#160;&#160;&#8194; CONN1(<m:math><m:mn>3</m:mn></m:math>,<a class="arg" href="#NELT1">NELT1</a>) &#8211; INTEGER array<span class="pclass">Input</span></dt><dd>
<div class="paramtext"><i>On entry</i>: the connectivity between triangles and vertices of the first input mesh. For each triangle <m:math><m:mi>j</m:mi></m:math>, <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN1"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN1</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mi>i</m:mi><m:mi>j</m:mi></m:mfenced></m:mrow></m:math>&#160;gives the indices of its three vertices (in anticlockwise order), 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:mn>3</m:mn></m:math>&#160;and <m:math><m:mi>j</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="#NELT1"><m:mi mathcolor="#EE0000" mathvariant="bold">NELT1</m:mi></m:maction></m:math>.</div><div class="paramtext"><i>Constraints</i>:
   <div class="paramtext"/><ul class="listcons">
<li class="listcons"><m:math><m:mn>1</m:mn><m:mo>&#8804;</m:mo><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN1"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN1</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mi>i</m:mi><m:mi>j</m:mi></m:mfenced></m:mrow><m:mo>&#8804;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#NV1"><m:mi mathcolor="#EE0000" mathvariant="bold">NV1</m:mi></m:maction></m:math>;</li>
<li class="listcons"><m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN1"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN1</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>1</m:mn><m:mi>j</m:mi></m:mfenced></m:mrow><m:mo>&#8800;</m:mo><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN1"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN1</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>2</m:mn><m:mi>j</m:mi></m:mfenced></m:mrow></m:math>;</li>
<li class="listcons"><m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN1"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN1</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>1</m:mn><m:mi mathvariant="italic">j</m:mi></m:mfenced></m:mrow><m:mo>&#8800;</m:mo><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN1"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN1</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>3</m:mn><m:mi mathvariant="italic">j</m:mi></m:mfenced></m:mrow></m:math>&#160;and <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN1"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN1</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>2</m:mn><m:mi mathvariant="italic">j</m:mi></m:mfenced></m:mrow><m:mo>&#8800;</m:mo><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN1"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN1</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>3</m:mn><m:mi mathvariant="italic">j</m:mi></m:mfenced></m:mrow></m:math>,  for <m:math><m:mi mathvariant="italic">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:mn>3</m:mn></m:math> and <m:math><m:mi mathvariant="italic">j</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="#NELT1"><m:mi mathcolor="#EE0000" mathvariant="bold">NELT1</m:mi></m:maction></m:math>.</li>
</ul></div></dd><dt class="paramhead"><a name="REFT1" id="REFT1"/>8: &#160;&#160;&#8194; REFT1(<a class="arg" href="#NELT1">NELT1</a>) &#8211; INTEGER array<span class="pclass">Input</span></dt><dd><div class="paramtext"><i>On entry</i>: <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#REFT1"><m:mi mathcolor="#EE0000" mathvariant="bold">REFT1</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mi>k</m:mi></m:mfenced></m:mrow></m:math>&#160;contains the user-supplied tag of the <m:math><m:mi>k</m:mi></m:math>th triangle from the first input mesh, for <m:math><m:mi>k</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="#NELT1"><m:mi mathcolor="#EE0000" mathvariant="bold">NELT1</m:mi></m:maction></m:math>.</div></dd><dt class="paramhead"><a name="NV2" id="NV2"/>9: &#160;&#160;&#8194; NV2 &#8211; INTEGER<span class="pclass">Input</span></dt><dd><div class="paramtext"><i>On entry</i>: 

the total number of vertices in the second input mesh.</div><div class="paramtext"><i>Constraint</i>:
  <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#NV2"><m:mi mathcolor="#EE0000" mathvariant="bold">NV2</m:mi></m:maction><m:mo>&#8805;</m:mo><m:mn>3</m:mn></m:math>.
</div></dd><dt class="paramhead"><a name="NELT2" id="NELT2"/>10: &#8194; NELT2 &#8211; INTEGER<span class="pclass">Input</span></dt><dd><div class="paramtext"><i>On entry</i>: 

the number of triangular elements in the second input mesh.</div><div class="paramtext"><i>Constraint</i>:
  <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#NELT2"><m:mi mathcolor="#EE0000" mathvariant="bold">NELT2</m:mi></m:maction><m:mo>&#8804;</m:mo><m:mn>2</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#NV2"><m:mi mathcolor="#EE0000" mathvariant="bold">NV2</m:mi></m:maction><m:mo>-</m:mo><m:mn>1</m:mn></m:math>.
</div></dd><dt class="paramhead"><a name="NEDGE2" id="NEDGE2"/>11: &#8194; NEDGE2 &#8211; INTEGER<span class="pclass">Input</span></dt><dd><div class="paramtext"><i>On entry</i>: 

the number of boundary edges in the second input mesh.</div><div class="paramtext"><i>Constraint</i>:
  <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#NEDGE2"><m:mi mathcolor="#EE0000" mathvariant="bold">NEDGE2</m:mi></m:maction><m:mo>&#8805;</m:mo><m:mn>1</m:mn></m:math>.
</div></dd><dt class="paramhead"><a name="COOR2" id="COOR2"/>12: &#8194; COOR2(<m:math><m:mn>2</m:mn></m:math>,<a class="arg" href="#NV2">NV2</a>) &#8211; <span class="bitalic">double precision</span> array<span class="pclass">Input</span></dt><dd>
<div class="paramtext"><i>On entry</i>: <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#COOR2"><m:mi mathcolor="#EE0000" mathvariant="bold">COOR2</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>1</m:mn><m:mi>i</m:mi></m:mfenced></m:mrow></m:math>&#160;contains the <m:math><m:mi>x</m:mi></m:math>&#160;co-ordinate of the <m:math><m:mi>i</m:mi></m:math>th vertex of the second input mesh, 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="#NV2"><m:mi mathcolor="#EE0000" mathvariant="bold">NV2</m:mi></m:maction></m:math>; while <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#COOR2"><m:mi mathcolor="#EE0000" mathvariant="bold">COOR2</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>2</m:mn><m:mi>i</m:mi></m:mfenced></m:mrow></m:math>&#160;contains the corresponding <m:math><m:mi>y</m:mi></m:math>&#160;co-ordinate.</div></dd><dt class="paramhead"><a name="EDGE2" id="EDGE2"/>13: &#8194; EDGE2(<m:math><m:mn>3</m:mn></m:math>,<a class="arg" href="#NEDGE2">NEDGE2</a>) &#8211; INTEGER array<span class="pclass">Input</span></dt><dd>
<div class="paramtext"><i>On entry</i>: the specification of the boundary edges of the second input mesh. <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#EDGE2"><m:mi mathcolor="#EE0000" mathvariant="bold">EDGE2</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>1</m:mn><m:mi>j</m:mi></m:mfenced></m:mrow></m:math>&#160;and <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#EDGE2"><m:mi mathcolor="#EE0000" mathvariant="bold">EDGE2</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>2</m:mn><m:mi>j</m:mi></m:mfenced></m:mrow></m:math>&#160;contain the vertex numbers of the two end points of the <m:math><m:mi>j</m:mi></m:math>th boundary edge. <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#EDGE2"><m:mi mathcolor="#EE0000" mathvariant="bold">EDGE2</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>3</m:mn><m:mi>j</m:mi></m:mfenced></m:mrow></m:math>&#160;is a user-supplied tag for the <m:math><m:mi>j</m:mi></m:math>th boundary edge.</div><div class="paramtext"><i>Constraint</i>:
  <m:math><m:mn>1</m:mn><m:mo>&#8804;</m:mo><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#EDGE2"><m:mi mathcolor="#EE0000" mathvariant="bold">EDGE2</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mi mathvariant="italic">i</m:mi><m:mi mathvariant="italic">j</m:mi></m:mfenced></m:mrow><m:mo>&#8804;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#NV2"><m:mi mathcolor="#EE0000" mathvariant="bold">NV2</m:mi></m:maction></m:math>&#160;and <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#EDGE2"><m:mi mathcolor="#EE0000" mathvariant="bold">EDGE2</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>1</m:mn><m:mi mathvariant="italic">j</m:mi></m:mfenced></m:mrow><m:mo>&#8800;</m:mo><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#EDGE2"><m:mi mathcolor="#EE0000" mathvariant="bold">EDGE2</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>2</m:mn><m:mi mathvariant="italic">j</m:mi></m:mfenced></m:mrow></m:math>,  for <m:math><m:mi mathvariant="italic">i</m:mi><m:mo>=</m:mo><m:mn>1</m:mn><m:mo>,</m:mo><m:mn>2</m:mn></m:math> and <m:math><m:mi mathvariant="italic">j</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="#NEDGE2"><m:mi mathcolor="#EE0000" mathvariant="bold">NEDGE2</m:mi></m:maction></m:math>.</div></dd><dt class="paramhead"><a name="CONN2" id="CONN2"/>14: &#8194; CONN2(<m:math><m:mn>3</m:mn></m:math>,<a class="arg" href="#NELT2">NELT2</a>) &#8211; INTEGER array<span class="pclass">Input</span></dt><dd>
<div class="paramtext"><i>On entry</i>: the connectivity between triangles and vertices of the second input mesh. For each triangle <m:math><m:mi>j</m:mi></m:math>, <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN2"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN2</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mi>i</m:mi><m:mi>j</m:mi></m:mfenced></m:mrow></m:math>&#160;gives the indices of its three vertices (in anticlockwise order), 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:mn>3</m:mn></m:math>&#160;and <m:math><m:mi>j</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="#NELT2"><m:mi mathcolor="#EE0000" mathvariant="bold">NELT2</m:mi></m:maction></m:math>.</div><div class="paramtext"><i>Constraints</i>:
   <div class="paramtext"/><ul class="listcons">
<li class="listcons"><m:math><m:mn>1</m:mn><m:mo>&#8804;</m:mo><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN2"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN2</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mi>i</m:mi><m:mi>j</m:mi></m:mfenced></m:mrow><m:mo>&#8804;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#NV2"><m:mi mathcolor="#EE0000" mathvariant="bold">NV2</m:mi></m:maction></m:math>;</li>
<li class="listcons"><m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN2"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN2</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>1</m:mn><m:mi>j</m:mi></m:mfenced></m:mrow><m:mo>&#8800;</m:mo><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN2"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN2</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>2</m:mn><m:mi>j</m:mi></m:mfenced></m:mrow></m:math>;</li>
<li class="listcons"><m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN2"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN2</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>1</m:mn><m:mi mathvariant="italic">j</m:mi></m:mfenced></m:mrow><m:mo>&#8800;</m:mo><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN2"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN2</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>3</m:mn><m:mi mathvariant="italic">j</m:mi></m:mfenced></m:mrow></m:math>&#160;and <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN2"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN2</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>2</m:mn><m:mi mathvariant="italic">j</m:mi></m:mfenced></m:mrow><m:mo>&#8800;</m:mo><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN2"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN2</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>3</m:mn><m:mi mathvariant="italic">j</m:mi></m:mfenced></m:mrow></m:math>,  for <m:math><m:mi mathvariant="italic">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:mn>3</m:mn></m:math> and <m:math><m:mi mathvariant="italic">j</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="#NELT2"><m:mi mathcolor="#EE0000" mathvariant="bold">NELT2</m:mi></m:maction></m:math>.</li>
</ul></div></dd><dt class="paramhead"><a name="REFT2" id="REFT2"/>15: &#8194; REFT2(<a class="arg" href="#NELT2">NELT2</a>) &#8211; INTEGER array<span class="pclass">Input</span></dt><dd><div class="paramtext"><i>On entry</i>: <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#REFT2"><m:mi mathcolor="#EE0000" mathvariant="bold">REFT2</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mi>k</m:mi></m:mfenced></m:mrow></m:math>&#160;contains the user-supplied tag of the <m:math><m:mi>k</m:mi></m:math>th triangle from the second input mesh, for <m:math><m:mi>k</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:maction actiontype="link" dsi:type="simple" dsi:href="#NELT2"><m:mi mathcolor="#EE0000" mathvariant="bold">NELT2</m:mi></m:maction></m:math>.</div></dd><dt class="paramhead"><a name="NV3" id="NV3"/>16: &#8194; NV3 &#8211; INTEGER<span class="pclass">Output</span></dt><dd><div class="paramtext"><i>On exit</i>: the total number of vertices in the resulting mesh.</div></dd><dt class="paramhead"><a name="NELT3" id="NELT3"/>17: &#8194; NELT3 &#8211; INTEGER<span class="pclass">Output</span></dt><dd><div class="paramtext"><i>On exit</i>: the number of triangular elements in the resulting mesh.</div></dd><dt class="paramhead"><a name="NEDGE3" id="NEDGE3"/>18: &#8194; NEDGE3 &#8211; INTEGER<span class="pclass">Output</span></dt><dd><div class="paramtext"><i>On exit</i>: the number of boundary edges in the resulting mesh.</div></dd><dt class="paramhead"><a name="COOR3" id="COOR3"/>19: &#8194; COOR3(<m:math><m:mn>2</m:mn></m:math>,<m:math><m:mo>*</m:mo></m:math>) &#8211; <span class="bitalic">double precision</span> array<span class="pclass">Output</span></dt><dd><div class="paramtext"><b>Note:</b> the second dimension of the array <a class="arg" href="#COOR3">COOR3</a>
must be at least
<m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#NV1"><m:mi mathcolor="#EE0000" mathvariant="bold">NV1</m:mi></m:maction><m:mo>+</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#NV2"><m:mi mathcolor="#EE0000" mathvariant="bold">NV2</m:mi></m:maction></m:math>. This may be reduced to <a class="arg" href="#NV3">NV3</a> once that value is known.</div><div class="paramtext"><i>On exit</i>: <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#COOR3"><m:mi mathcolor="#EE0000" mathvariant="bold">COOR3</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>1</m:mn><m:mi>i</m:mi></m:mfenced></m:mrow></m:math>&#160;will contain the <m:math><m:mi>x</m:mi></m:math>&#160;co-ordinate of the <m:math><m:mi>i</m:mi></m:math>th vertex of the resulting mesh, 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="#NV3"><m:mi mathcolor="#EE0000" mathvariant="bold">NV3</m:mi></m:maction></m:math>; while <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#COOR3"><m:mi mathcolor="#EE0000" mathvariant="bold">COOR3</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>2</m:mn><m:mi>i</m:mi></m:mfenced></m:mrow></m:math>&#160;will contain the corresponding <m:math><m:mi>y</m:mi></m:math>&#160;co-ordinate.</div></dd><dt class="paramhead"><a name="EDGE3" id="EDGE3"/>20: &#8194; EDGE3(<m:math><m:mn>3</m:mn></m:math>,<m:math><m:mo>*</m:mo></m:math>) &#8211; INTEGER array<span class="pclass">Output</span></dt><dd><div class="paramtext"><b>Note:</b> the second dimension of the array <a class="arg" href="#EDGE3">EDGE3</a>
must be at least
<m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#NEDGE1"><m:mi mathcolor="#EE0000" mathvariant="bold">NEDGE1</m:mi></m:maction><m:mo>+</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#NEDGE2"><m:mi mathcolor="#EE0000" mathvariant="bold">NEDGE2</m:mi></m:maction></m:math>. This may be reduced to <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#NEDGE3"><m:mi mathcolor="#EE0000" mathvariant="bold">NEDGE3</m:mi></m:maction></m:math>&#160;once that value is known.</div><div class="paramtext"><i>On exit</i>: the specification of the boundary edges of the resulting mesh. <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#EDGE3"><m:mi mathcolor="#EE0000" mathvariant="bold">EDGE3</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mi>i</m:mi><m:mi>j</m:mi></m:mfenced></m:mrow></m:math>&#160;will contain the vertex number of the <m:math><m:mi>i</m:mi></m:math>th end point (<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:math>) of the <m:math><m:mi>j</m:mi></m:math>th boundary or interface edge. <div class="paramtext">If the two meshes overlap, <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#EDGE3"><m:mi mathcolor="#EE0000" mathvariant="bold">EDGE3</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>3</m:mn><m:mi>j</m:mi></m:mfenced></m:mrow></m:math>&#160;will contain the same tag as the corresponding edge belonging to the first and/or the second input mesh.</div>
<div class="paramtext">If the two meshes are adjacent, <table class="standard-90"><tr>
<td style="width:2.1em;" valign="baseline">(i)</td>
<td valign="top">if the <m:math><m:mi>j</m:mi></m:math>th edge is part of the partition interface, then <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#EDGE3"><m:mi mathcolor="#EE0000" mathvariant="bold">EDGE3</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>3</m:mn><m:mi>j</m:mi></m:mfenced></m:mrow></m:math>&#160;will contain the value <m:math><m:mn>1000</m:mn><m:mo>&#215;</m:mo><m:msub><m:mi>k</m:mi><m:mn>1</m:mn></m:msub><m:mo>+</m:mo><m:msub><m:mi>k</m:mi><m:mn>2</m:mn></m:msub></m:math>&#160;where <m:math><m:msub><m:mi>k</m:mi><m:mn>1</m:mn></m:msub></m:math>&#160;and <m:math><m:msub><m:mi>k</m:mi><m:mn>2</m:mn></m:msub></m:math>&#160;are the tags for the same edge of the first and the second mesh respectively;</td>
</tr><tr>
<td style="width:2.1em;" valign="baseline">(ii)</td>
<td valign="top">otherwise, <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#EDGE3"><m:mi mathcolor="#EE0000" mathvariant="bold">EDGE3</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>3</m:mn><m:mi>j</m:mi></m:mfenced></m:mrow></m:math>&#160;will contain the same tag as the corresponding edge belonging to the first and/or the second input mesh.</td>
</tr></table></div>
</div></dd><dt class="paramhead"><a name="CONN3" id="CONN3"/>21: &#8194; CONN3(<m:math><m:mn>3</m:mn></m:math>,<m:math><m:mo>*</m:mo></m:math>) &#8211; INTEGER array<span class="pclass">Output</span></dt><dd><div class="paramtext"><b>Note:</b> the second dimension of the array <a class="arg" href="#CONN3">CONN3</a>
must be at least
<m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#NELT1"><m:mi mathcolor="#EE0000" mathvariant="bold">NELT1</m:mi></m:maction><m:mo>+</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#NELT2"><m:mi mathcolor="#EE0000" mathvariant="bold">NELT2</m:mi></m:maction></m:math>. This may be reduced to <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#NELT3"><m:mi mathcolor="#EE0000" mathvariant="bold">NELT3</m:mi></m:maction></m:math>&#160;once that value is known.</div><div class="paramtext"><i>On exit</i>: the connectivity between triangles and vertices of the resulting mesh. <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN3"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN3</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mi>i</m:mi><m:mi>j</m:mi></m:mfenced></m:mrow></m:math>&#160;will give the indices of its three vertices (in anticlockwise order), 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:mn>3</m:mn></m:math>&#160;and <m:math><m:mi>j</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="#NELT3"><m:mi mathcolor="#EE0000" mathvariant="bold">NELT3</m:mi></m:maction></m:math>.</div></dd><dt class="paramhead"><a name="REFT3" id="REFT3"/>22: &#8194; REFT3(<m:math><m:mo>*</m:mo></m:math>) &#8211; INTEGER array<span class="pclass">Output</span></dt><dd><div class="paramtext"><b>Note:</b> the dimension of the array <a class="arg" href="#REFT3">REFT3</a>
must be at least
<m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#NELT1"><m:mi mathcolor="#EE0000" mathvariant="bold">NELT1</m:mi></m:maction><m:mo>+</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#NELT2"><m:mi mathcolor="#EE0000" mathvariant="bold">NELT2</m:mi></m:maction></m:math>. This may be reduced to <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#NELT3"><m:mi mathcolor="#EE0000" mathvariant="bold">NELT3</m:mi></m:maction></m:math>&#160;once that value is known.</div>
<div class="paramtext"><i>On exit</i>: if the two meshes form a partition, <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#REFT3"><m:mi mathcolor="#EE0000" mathvariant="bold">REFT3</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mi>k</m:mi></m:mfenced></m:mrow></m:math>&#160;will contain the same tag as the corresponding triangle belonging to the first or the second input mesh, for <m:math><m:mi>k</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="#NELT3"><m:mi mathcolor="#EE0000" mathvariant="bold">NELT3</m:mi></m:maction></m:math>. If the two meshes overlap, then <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#REFT3"><m:mi mathcolor="#EE0000" mathvariant="bold">REFT3</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mi>k</m:mi></m:mfenced></m:mrow></m:math>&#160;will contain the value <m:math><m:mn>1000</m:mn><m:mo>&#215;</m:mo><m:msub><m:mi>k</m:mi><m:mn>1</m:mn></m:msub><m:mo>+</m:mo><m:msub><m:mi>k</m:mi><m:mn>2</m:mn></m:msub></m:math>&#160;where <m:math><m:msub><m:mi>k</m:mi><m:mn>1</m:mn></m:msub></m:math>&#160;and <m:math><m:msub><m:mi>k</m:mi><m:mn>2</m:mn></m:msub></m:math>&#160;are the user-supplied tags for the same triangle of the first and the second mesh respectively, for <m:math><m:mi>k</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="#NELT3"><m:mi mathcolor="#EE0000" mathvariant="bold">NELT3</m:mi></m:maction></m:math>.</div></dd><dt class="paramhead"><a name="ITRACE" id="ITRACE"/>23: &#8194; ITRACE &#8211; INTEGER<span class="pclass">Input</span></dt><dd><div class="paramtext"><i>On entry</i>: the level of trace information required from D06DBF.

<dl>
<dt class="paramval"><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#ITRACE"><m:mi mathcolor="#EE0000" mathvariant="bold">ITRACE</m:mi></m:maction><m:mo>&#8804;</m:mo><m:mn>0</m:mn></m:math></dt>
<dd>No output is generated.</dd>
<dt class="paramval"><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#ITRACE"><m:mi mathcolor="#EE0000" mathvariant="bold">ITRACE</m:mi></m:maction><m:mo>&#8805;</m:mo><m:mn>1</m:mn></m:math></dt>
<dd>Details about the common vertices, edges and triangles to both meshes are printed on the current advisory message unit (see <a class="rout" href="../X04/x04abf.xml">X04ABF</a>).</dd></dl>
</div></dd><dt class="paramhead"><a name="IWORK" id="IWORK"/>24: &#8194; IWORK(<a class="arg" href="#LIWORK">LIWORK</a>) &#8211; INTEGER array<span class="pclass">Workspace</span></dt><dt class="multi-paramhead"><a name="LIWORK" id="LIWORK"/>25: &#8194; LIWORK &#8211; INTEGER<span class="pclass">Input</span></dt><dd><div class="paramtext"><i>On entry</i>: the dimension of the array <a class="arg" href="#IWORK">IWORK</a> as declared in the (sub)program from which D06DBF is called.</div><div class="paramtext"><i>Constraint</i>:
  <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#LIWORK"><m:mi mathcolor="#EE0000" mathvariant="bold">LIWORK</m:mi></m:maction><m:mo>&#8805;</m:mo><m:mn>2</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#NV1"><m:mi mathcolor="#EE0000" mathvariant="bold">NV1</m:mi></m:maction><m:mo>+</m:mo><m:mn>3</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#NV2"><m:mi mathcolor="#EE0000" mathvariant="bold">NV2</m:mi></m:maction><m:mo>+</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#NELT1"><m:mi mathcolor="#EE0000" mathvariant="bold">NELT1</m:mi></m:maction><m:mo>+</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#NELT2"><m:mi mathcolor="#EE0000" mathvariant="bold">NELT2</m:mi></m:maction><m:mo>+</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#NEDGE1"><m:mi mathcolor="#EE0000" mathvariant="bold">NEDGE1</m:mi></m:maction><m:mo>+</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#NEDGE2"><m:mi mathcolor="#EE0000" mathvariant="bold">NEDGE2</m:mi></m:maction><m:mo>+</m:mo><m:mn>1024</m:mn></m:math>.
</div></dd><dt class="paramhead"><a name="IFAIL" id="IFAIL"/>26: &#8194; IFAIL &#8211; INTEGER<span class="pclass">Input/Output</span></dt><dd>
<div class="paramtext"><i>On entry</i>: <a class="arg" href="#IFAIL">IFAIL</a> must be set to <m:math><m:mn>0</m:mn></m:math>, <m:math><m:mrow><m:mo>-</m:mo><m:mn>1</m:mn></m:mrow><m:mtext>&#8203; or &#8203;</m:mtext><m:mn>1</m:mn></m:math>. If you are unfamiliar with this parameter you should refer to <a class="sec" href="../GENINT/essint.xml#library3">Section 3.3</a> in  the Essential Introduction for details.</div>
<div class="paramtext"><i>On exit</i>: <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#IFAIL"><m:mi mathcolor="#EE0000" mathvariant="bold">IFAIL</m:mi></m:maction><m:mo>=</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#errors"><m:mn mathcolor="#003399" mathvariant="bold">0</m:mn></m:maction></m:math>&#160;unless the routine detects an error (see <a class="sec" href="#errors">Section 6</a>). <div class="paramtext">For environments where it might be inappropriate to halt program execution when an error is detected, the value <m:math><m:mrow><m:mo>-</m:mo><m:mn>1</m:mn></m:mrow><m:mtext>&#8203; or &#8203;</m:mtext><m:mn>1</m:mn></m:math>&#160;is recommended.  If the output of error messages is undesirable, then the value <m:math><m:mn>1</m:mn></m:math>&#160;is recommended.  Otherwise, if you are not familiar with this parameter, the recommended value is <m:math><m:mn>0</m:mn></m:math>.  <b>When the value <m:math><m:mrow><m:mo>-</m:mo><m:mn mathvariant="bold">1</m:mn></m:mrow><m:mtext>&#8203; or &#8203;</m:mtext><m:mn mathvariant="bold">1</m:mn></m:math>&#160;is used it is essential to test the value of <a class="arg" href="#IFAIL">IFAIL</a> on exit.</b></div></div></dd></dl><h2 class="standard"><a class="sec" name="errors" id="errors"/>6&#160;&#160;Error Indicators and Warnings</h2>
<div class="paramtext">If on entry <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#IFAIL"><m:mi mathcolor="#EE0000" mathvariant="bold">IFAIL</m:mi></m:maction><m:mo>=</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#errors"><m:mn mathcolor="#003399" mathvariant="bold">0</m:mn></m:maction></m:math>&#160;or <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#errors"><m:mn mathcolor="#003399" mathvariant="bold">-1</m:mn></m:maction></m:math>, explanatory error messages are output on the current error message unit (as defined by <a class="rout" href="../X04/x04aaf.xml">X04AAF</a>).</div><div class="paramtext">Errors or warnings detected by the routine:</div>
<dl class="ifail">
<dt class="errorhead"><a name="IFeq1" id="IFeq1"/><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#IFAIL"><m:mi mathcolor="#EE0000" mathvariant="bold">IFAIL</m:mi></m:maction><m:mo>=</m:mo><m:mn>1</m:mn></m:math></dt>
<dd>
<table class="ifail"><tr><td class="ifail1">On&#160;entry,</td><td class="ifail2-90"><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#EPS"><m:mi mathcolor="#EE0000" mathvariant="bold">EPS</m:mi></m:maction><m:mo>&#8804;</m:mo><m:mn>0.0</m:mn></m:math>,</td></tr><tr><td class="ifail1">or</td><td class="ifail2-90"><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#NV1"><m:mi mathcolor="#EE0000" mathvariant="bold">NV1</m:mi></m:maction><m:mo>&lt;</m:mo><m:mn>3</m:mn></m:math>,</td></tr><tr><td class="ifail1">or</td><td class="ifail2-90"><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#NELT1"><m:mi mathcolor="#EE0000" mathvariant="bold">NELT1</m:mi></m:maction><m:mo>&gt;</m:mo><m:mn>2</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#NV1"><m:mi mathcolor="#EE0000" mathvariant="bold">NV1</m:mi></m:maction><m:mo>-</m:mo><m:mn>1</m:mn></m:math>,</td></tr><tr><td class="ifail1">or</td><td class="ifail2-90"><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#NEDGE1"><m:mi mathcolor="#EE0000" mathvariant="bold">NEDGE1</m:mi></m:maction><m:mo>&lt;</m:mo><m:mn>1</m:mn></m:math>,</td></tr><tr><td class="ifail1">or</td><td class="ifail2-90"><m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#EDGE1"><m:mi mathcolor="#EE0000" mathvariant="bold">EDGE1</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mi>i</m:mi><m:mi>j</m:mi></m:mfenced></m:mrow><m:mo>&lt;</m:mo><m:mn>1</m:mn></m:math>&#160;or  <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#EDGE1"><m:mi mathcolor="#EE0000" mathvariant="bold">EDGE1</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mi>i</m:mi><m:mi>j</m:mi></m:mfenced></m:mrow><m:mo>&gt;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#NV1"><m:mi mathcolor="#EE0000" mathvariant="bold">NV1</m:mi></m:maction></m:math>&#160;for some <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:math>&#160;and  <m:math><m:mi>j</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="#NEDGE1"><m:mi mathcolor="#EE0000" mathvariant="bold">NEDGE1</m:mi></m:maction></m:math>,</td></tr><tr><td class="ifail1">or</td><td class="ifail2-90"><m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#EDGE1"><m:mi mathcolor="#EE0000" mathvariant="bold">EDGE1</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>1</m:mn><m:mi>j</m:mi></m:mfenced></m:mrow><m:mo>=</m:mo><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#EDGE1"><m:mi mathcolor="#EE0000" mathvariant="bold">EDGE1</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>2</m:mn><m:mi>j</m:mi></m:mfenced></m:mrow></m:math>&#160;for some  <m:math><m:mi>j</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="#NEDGE1"><m:mi mathcolor="#EE0000" mathvariant="bold">NEDGE1</m:mi></m:maction></m:math>,</td></tr><tr><td class="ifail1">or</td><td class="ifail2-90"><m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN1"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN1</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mi>i</m:mi><m:mi>j</m:mi></m:mfenced></m:mrow><m:mo>&lt;</m:mo><m:mn>1</m:mn></m:math>&#160;or  <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN1"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN1</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mi>i</m:mi><m:mi>j</m:mi></m:mfenced></m:mrow><m:mo>&gt;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#NV1"><m:mi mathcolor="#EE0000" mathvariant="bold">NV1</m:mi></m:maction></m:math>&#160;for some <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:mn>3</m:mn></m:math>&#160;and <m:math><m:mi>j</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="#NELT1"><m:mi mathcolor="#EE0000" mathvariant="bold">NELT1</m:mi></m:maction></m:math>,</td></tr><tr><td class="ifail1">or</td><td class="ifail2-90"><m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN1"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN1</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>1</m:mn><m:mi>j</m:mi></m:mfenced></m:mrow><m:mo>=</m:mo><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN1"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN1</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>2</m:mn><m:mi>j</m:mi></m:mfenced></m:mrow></m:math>&#160;or  <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN1"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN1</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>1</m:mn><m:mi>j</m:mi></m:mfenced></m:mrow><m:mo>=</m:mo><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN1"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN1</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>3</m:mn><m:mi>j</m:mi></m:mfenced></m:mrow></m:math>&#160;or <br/>
<m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN1"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN1</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>2</m:mn><m:mi>j</m:mi></m:mfenced></m:mrow><m:mo>=</m:mo><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN1"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN1</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>3</m:mn><m:mi>j</m:mi></m:mfenced></m:mrow></m:math>&#160;for some  <m:math><m:mi>j</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="#NELT1"><m:mi mathcolor="#EE0000" mathvariant="bold">NELT1</m:mi></m:maction></m:math>,</td></tr><tr><td class="ifail1">or</td><td class="ifail2-90"><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#NV2"><m:mi mathcolor="#EE0000" mathvariant="bold">NV2</m:mi></m:maction><m:mo>&lt;</m:mo><m:mn>3</m:mn></m:math>,</td></tr><tr><td class="ifail1">or</td><td class="ifail2-90"><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#NELT2"><m:mi mathcolor="#EE0000" mathvariant="bold">NELT2</m:mi></m:maction><m:mo>&gt;</m:mo><m:mn>2</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#NV2"><m:mi mathcolor="#EE0000" mathvariant="bold">NV2</m:mi></m:maction><m:mo>-</m:mo><m:mn>1</m:mn></m:math>,</td></tr><tr><td class="ifail1">or</td><td class="ifail2-90"><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#NEDGE2"><m:mi mathcolor="#EE0000" mathvariant="bold">NEDGE2</m:mi></m:maction><m:mo>&lt;</m:mo><m:mn>1</m:mn></m:math>,</td></tr><tr><td class="ifail1">or</td><td class="ifail2-90"><m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#EDGE2"><m:mi mathcolor="#EE0000" mathvariant="bold">EDGE2</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mi>i</m:mi><m:mi>j</m:mi></m:mfenced></m:mrow><m:mo>&lt;</m:mo><m:mn>1</m:mn></m:math>&#160;or  <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#EDGE2"><m:mi mathcolor="#EE0000" mathvariant="bold">EDGE2</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mi>i</m:mi><m:mi>j</m:mi></m:mfenced></m:mrow><m:mo>&gt;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#NV2"><m:mi mathcolor="#EE0000" mathvariant="bold">NV2</m:mi></m:maction></m:math>&#160;for some <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:math>&#160;and <m:math><m:mi>j</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="#NEDGE2"><m:mi mathcolor="#EE0000" mathvariant="bold">NEDGE2</m:mi></m:maction></m:math>,</td></tr><tr><td class="ifail1">or</td><td class="ifail2-90"><m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#EDGE2"><m:mi mathcolor="#EE0000" mathvariant="bold">EDGE2</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>1</m:mn><m:mi>j</m:mi></m:mfenced></m:mrow><m:mo>=</m:mo><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#EDGE2"><m:mi mathcolor="#EE0000" mathvariant="bold">EDGE2</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>2</m:mn><m:mi>j</m:mi></m:mfenced></m:mrow></m:math>&#160;for some  <m:math><m:mi>j</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="#NEDGE2"><m:mi mathcolor="#EE0000" mathvariant="bold">NEDGE2</m:mi></m:maction></m:math>,</td></tr><tr><td class="ifail1">or</td><td class="ifail2-90"><m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN2"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN2</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mi>i</m:mi><m:mi>j</m:mi></m:mfenced></m:mrow><m:mo>&lt;</m:mo><m:mn>1</m:mn></m:math>&#160;or  <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN2"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN2</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mi>i</m:mi><m:mi>j</m:mi></m:mfenced></m:mrow><m:mo>&gt;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#NV2"><m:mi mathcolor="#EE0000" mathvariant="bold">NV2</m:mi></m:maction></m:math>&#160;for some <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:mn>3</m:mn></m:math>&#160;and  <m:math><m:mi>j</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="#NELT2"><m:mi mathcolor="#EE0000" mathvariant="bold">NELT2</m:mi></m:maction></m:math>,</td></tr><tr><td class="ifail1">or</td><td class="ifail2-90"><m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN2"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN2</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>1</m:mn><m:mi>j</m:mi></m:mfenced></m:mrow><m:mo>=</m:mo><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN2"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN2</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>2</m:mn><m:mi>j</m:mi></m:mfenced></m:mrow></m:math>&#160;or  <m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN2"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN2</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>1</m:mn><m:mi>j</m:mi></m:mfenced></m:mrow><m:mo>=</m:mo><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN2"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN2</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>3</m:mn><m:mi>j</m:mi></m:mfenced></m:mrow></m:math>&#160;or <br/>
<m:math><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN2"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN2</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>2</m:mn><m:mi>j</m:mi></m:mfenced></m:mrow><m:mo>=</m:mo><m:mrow><m:maction actiontype="link" dsi:type="simple" dsi:href="#CONN2"><m:mi mathcolor="#EE0000" mathvariant="bold">CONN2</m:mi></m:maction><m:mfenced separators="," open="(" close=")"><m:mn>3</m:mn><m:mi>j</m:mi></m:mfenced></m:mrow></m:math>&#160;for some  <m:math><m:mi>j</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="#NELT2"><m:mi mathcolor="#EE0000" mathvariant="bold">NELT2</m:mi></m:maction></m:math>,</td></tr><tr><td class="ifail1">or</td><td class="ifail2-90"><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#LIWORK"><m:mi mathcolor="#EE0000" mathvariant="bold">LIWORK</m:mi></m:maction><m:mo>&lt;</m:mo><m:mn>2</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#NV1"><m:mi mathcolor="#EE0000" mathvariant="bold">NV1</m:mi></m:maction><m:mo>+</m:mo><m:mn>3</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#NV2"><m:mi mathcolor="#EE0000" mathvariant="bold">NV2</m:mi></m:maction><m:mo>+</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#NELT1"><m:mi mathcolor="#EE0000" mathvariant="bold">NELT1</m:mi></m:maction><m:mo>+</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#NELT2"><m:mi mathcolor="#EE0000" mathvariant="bold">NELT2</m:mi></m:maction><m:mo>+</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#NEDGE1"><m:mi mathcolor="#EE0000" mathvariant="bold">NEDGE1</m:mi></m:maction><m:mo>+</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#NEDGE2"><m:mi mathcolor="#EE0000" mathvariant="bold">NEDGE2</m:mi></m:maction><m:mo>+</m:mo><m:mn>1024</m:mn></m:math>.</td></tr></table>
</dd>
</dl><dl class="ifail">
<dt class="errorhead"><a name="IFeq2" id="IFeq2"/><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#IFAIL"><m:mi mathcolor="#EE0000" mathvariant="bold">IFAIL</m:mi></m:maction><m:mo>=</m:mo><m:mn>2</m:mn></m:math></dt>
<dd>
<div class="paramtext">Using the input precision <a class="arg" href="#EPS">EPS</a>, the routine has detected fewer than two coincident vertices between the two input meshes.  You are advised to try another value of <a class="arg" href="#EPS">EPS</a>; if this error still occurs the two meshes are probably not stitchable.</div>
</dd>
</dl><dl class="ifail">
<dt class="errorhead"><a name="IFeq3" id="IFeq3"/><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#IFAIL"><m:mi mathcolor="#EE0000" mathvariant="bold">IFAIL</m:mi></m:maction><m:mo>=</m:mo><m:mn>3</m:mn></m:math></dt>
<dd>
<div class="paramtext">A serious error has occurred in an internal call to the restitching routine.  You should check the input of the two meshes, especially the edge/vertex and/or the triangle/vertex connectivities.  If the problem persists, contact <a class="url" href="http://www.nag.co.uk">NAG</a>.</div>
</dd>
</dl><dl class="ifail">
<dt class="errorhead"><a name="IFeq4" id="IFeq4"/><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#IFAIL"><m:mi mathcolor="#EE0000" mathvariant="bold">IFAIL</m:mi></m:maction><m:mo>=</m:mo><m:mn>4</m:mn></m:math></dt>
<dd>
<div class="paramtext">The routine has detected a different number of coincident triangles from the two input meshes in the overlapping zone.  You should check the input of the two meshes, especially the triangle/vertex connectivities.</div>
</dd>
</dl><dl class="ifail">
<dt class="errorhead"><a name="IFeq5" id="IFeq5"/><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#IFAIL"><m:mi mathcolor="#EE0000" mathvariant="bold">IFAIL</m:mi></m:maction><m:mo>=</m:mo><m:mn>5</m:mn></m:math></dt>
<dd>
<div class="paramtext">The routine has detected a different number of coincident edges from the two meshes on the partition interface.  You should check the input of the two meshes, especially the edge/vertex connectivities.</div>
</dd>
</dl><h2 class="standard"><a class="sec" name="accuracy" id="accuracy"/>7&#160;&#160;Accuracy</h2>
<div class="paramtext">Not applicable.</div><h2 class="standard"><a class="sec" name="fcomments" id="fcomments"/>8&#160;&#160;Further Comments</h2>
<div class="paramtext">D06DBF finds all the common vertices between the two input meshes using the relative precision of the restitching parameter <a class="arg" href="#EPS">EPS</a>.  You are advised to vary the value of <a class="arg" href="#EPS">EPS</a> in the neighbourhood of <m:math><m:mn>0.001</m:mn></m:math>&#160;with <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#ITRACE"><m:mi mathcolor="#EE0000" mathvariant="bold">ITRACE</m:mi></m:maction><m:mo>&#8805;</m:mo><m:mn>1</m:mn></m:math>&#160;to get the optimal value for the meshes under consideration.</div><h2 class="standard"><a class="sec" name="example" id="example"/>9&#160;&#160;Example</h2>
<div class="paramtext">For this routine two examples are presented.  There is a single example program for D06DBF, with a main program and the code to solve the two example problems given in Example 1 (EX1) and Example 2 (EX2).</div><div class="paramtext"><b>Example 1 (EX1)</b></div><div class="paramtext">This example involves the unit square <m:math><m:msup><m:mfenced separators="" open="[" close="]"><m:mn>0</m:mn><m:mo>,</m:mo><m:mn>1</m:mn></m:mfenced><m:mn>2</m:mn></m:msup></m:math>&#160;meshed uniformly, and then translated by a vector <m:math><m:mover><m:mi>u</m:mi><m:mo>&#8594;</m:mo></m:mover><m:mo>=</m:mo>
<m:mfenced><m:mtable>
  <m:mtr>
    <m:mtd><m:msub><m:mi>u</m:mi><m:mn>1</m:mn></m:msub></m:mtd>
  </m:mtr>
  <m:mtr>
    <m:mtd><m:msub><m:mi>u</m:mi><m:mn>2</m:mn></m:msub></m:mtd>
  </m:mtr>
</m:mtable></m:mfenced>
</m:math>&#160;(using <a class="rout" href="../D06/d06daf.xml">D06DAF</a>). This translated mesh is then restitched with the original mesh. Two cases are considered:
<table class="standard-100"><tr>
<td style="width:2.1em;" valign="baseline">(a)</td>
<td valign="top">overlapping meshes (<m:math><m:msub><m:mi>u</m:mi><m:mn>1</m:mn></m:msub><m:mo>=</m:mo><m:mn>15.0</m:mn></m:math>,  <m:math><m:msub><m:mi>u</m:mi><m:mn>2</m:mn></m:msub><m:mo>=</m:mo><m:mn>17.0</m:mn></m:math>),</td>
</tr><tr>
<td style="width:2.1em;" valign="baseline">(b)</td>
<td valign="top">partitioned meshes (<m:math><m:msub><m:mi>u</m:mi><m:mn>1</m:mn></m:msub><m:mo>=</m:mo><m:mn>19.0</m:mn></m:math>,  <m:math><m:msub><m:mi>u</m:mi><m:mn>2</m:mn></m:msub><m:mo>=</m:mo><m:mn>0.0</m:mn></m:math>).</td>
</tr></table></div><div class="paramtext">The mesh on the unit square has <m:math><m:mn>400</m:mn></m:math>&#160;vertices, <m:math><m:mn>722</m:mn></m:math>&#160;triangles and its boundary has <m:math><m:mn>76</m:mn></m:math>&#160;edges. In the overlapping case the resulting geometry is shown in <a class="fig" href="#FIG1">Figure 1</a> and <a class="fig" href="#FIG2">Figure 2</a>.  The resulting geometry for the partitioned meshes is shown in <a class="fig" href="#FIG3">Figure 3</a>.</div><div class="paramtext"><b>Example 2 (EX2)</b></div><div class="paramtext">This example restitches three geometries by calling the routine D06DBF twice.  The result is a mesh with three partitions.  The first geometry is meshed by the Delaunay&#8211;Voronoi process (using <a class="rout" href="../D06/d06abf.xml">D06ABF</a>), the second one meshed by an Advancing Front algorithm (using <a class="rout" href="../D06/d06acf.xml">D06ACF</a>), while the third one is the result of a rotation (by <m:math><m:mrow><m:mo>-</m:mo><m:mi>&#960;</m:mi></m:mrow><m:mo>/</m:mo><m:mn>2</m:mn></m:math>) of the second one (using <a class="rout" href="../D06/d06daf.xml">D06DAF</a>).  The resulting geometry is shown in <a class="fig" href="#FIG4">Figure 4</a> and <a class="fig" href="#FIG5">Figure 5</a>.</div><h3 class="standard"><a class="sec" name="examtext" id="examtext"/>9.1&#160;&#160;Program Text</h3>
<p><a class="verbatimref" href="../../examples/source/d06dbfe.f">Program Text (d06dbfe.f)</a></p><h3 class="standard"><a class="sec" name="examdata" id="examdata"/>9.2&#160;&#160;Program Data</h3>
<p><a class="verbatimref" href="../../examples/data/d06dbfe.d">Program&#160;Data (d06dbfe.d)</a></p><h3 class="standard"><a class="sec" name="examresults" id="examresults"/>9.3&#160;&#160;Program Results</h3>
<p><a class="verbatimref" href="../../examples/baseresults/d06dbfe.r">Program Results (d06dbfe.r)</a></p><div class="paramtext">
<div class="figure"><a name="FIG1" id="FIG1"/><img src="../figures/D06DBF1fl20.png" style="height: 18em" alt="The boundary and the interior interfaces of the two partitioned squares geometry "/></div><div class="figure"><b>Figure 1: The boundary and the interior interfaces of the two partitioned squares geometry <br/><br/><br/></b></div>
</div><div class="paramtext">
<div class="figure"><a name="FIG2" id="FIG2"/><img src="../figures/D06DBF2fl20.png" style="height: 18em" alt="The interior mesh of the two partitioned squares geometry "/></div><div class="figure"><b>Figure 2: The interior mesh of the two partitioned squares geometry <br/><br/><br/></b></div>
</div><div class="paramtext">
<div class="figure"><a name="FIG3" id="FIG3"/><img src="../figures/D06DBF3fl20.png" style="height: 36em" alt="The boundary and the interior interfaces (left); the interior mesh (right) 
of the two overlapping squares geometry "/></div><div class="figure"><b>Figure 3: The boundary and the interior interfaces (left); the interior mesh (right) <br/>
of the two overlapping squares geometry <br/><br/><br/></b></div>
</div><div class="paramtext">
<div class="figure"><a name="FIG4" id="FIG4"/><img src="../figures/D06DBF4fl20.png" style="height: 27em" alt="The boundary and the interior interfaces of the double restitched geometry "/></div><div class="figure"><b>Figure 4: The boundary and the interior interfaces of the double restitched geometry <br/><br/><br/></b></div>
</div><div class="paramtext">
<div class="figure"><a name="FIG5" id="FIG5"/><img src="../figures/D06DBF5fl20.png" style="height: 27em" alt="The interior mesh of the double restitched geometry"/></div><div class="figure"><b>Figure 5: The interior mesh of the double restitched geometry</b></div>
</div><hr/><div><a class="rout" href="../../pdf/D06/d06dbf.pdf">D06DBF (PDF version)</a></div><div><a class="chap" href="d06conts.xml">D06 Chapter Contents</a></div><div><a class="chapint" href="d06intro.xml">D06 Chapter Introduction</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>
