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 }
   349   350   351   352   353   354   355   356   357   358   359