Page 354 - Handbook Of Multiphase Flow Assurance
P. 354
Computer code (Makogon, 1994, 1997) 353
begin
m1:=nhb[i,1]; {remember atoms in bond under question}
m2:=nhb[i,2];
deadend1:=true;
deadend2:=true;
for j:=1 to n do
if i<>j then {seek same atoms in other bonds}
begin
if (nhb[j,1]=m1)or(nhb[j,2]=m1) then
deadend1:=false;
if (nhb[j,1]=m2)or(nhb[j,2]=m2) then
deadend2:=false;
end;
if deadend1 or deadend2 then
begin {delete bond with a dead end oxygen}
nothere:=false;
for j:=i+1 to n do
begin
nhb[j−1,1]:=nhb[j,1];
nhb[j−1,2]:=nhb[j,2];
pass[j−1]:=pass[j];
end;
nhb[n,1]:=0;
nhb[n,2]:=0;
pass[n]:=0;
n:=n−1; {decrease number of H bonds}
goto C2;
end;
end;
end
until nothere;
writeln(ttyout,'All dead-end tails eliminated');
end;
end;
Procedure CheckShort; {searches a path from rin[j] to rin[k]
of length <= dist}
label S1,S2,S3,S4;
var is,js,ks:integer;
begin
short:=false;
ns:=0;
if rin[j]<rin[k] then {determine starting and ending }