function [lun,kprint,ipass]=qxblkt(lun,kprint,ipass);
persistent am an bm bn cm cn deltas deltat ermax err hds hdt i idimy ierror iflg j m mp n np s t tds tdt temp1 temp2 temp3 w y z ;
if isempty(am), am=zeros(1,75); end;
if isempty(an), an=zeros(1,105); end;
if isempty(bm), bm=zeros(1,75); end;
if isempty(bn), bn=zeros(1,105); end;
if isempty(cm), cm=zeros(1,75); end;
if isempty(cn), cn=zeros(1,105); end;
if isempty(deltas), deltas=0; end;
if isempty(deltat), deltat=0; end;
if isempty(ermax), ermax=0; end;
if isempty(err), err=0; end;
if isempty(hds), hds=0; end;
if isempty(hdt), hdt=0; end;
if isempty(s), s=zeros(1,75); end;
if isempty(t), t=zeros(1,105); end;
if isempty(tds), tds=0; end;
if isempty(tdt), tdt=0; end;
if isempty(temp1), temp1=0; end;
if isempty(temp2), temp2=0; end;
if isempty(temp3), temp3=0; end;
if isempty(w), w=zeros(1,1952); end;
if isempty(y), y=zeros(75,105); end;
if isempty(z), z=0; end;
if isempty(i), i=0; end;
if isempty(idimy), idimy=0; end;
if isempty(ierror), ierror=0; end;
if isempty(iflg), iflg=0; end;
if isempty(j), j=0; end;
if isempty(m), m=0; end;
if isempty(mp), mp=0; end;
if isempty(n), n=0; end;
if isempty(np), np=0; end;
ermax = 1.0e-3;
iflg = 0;
np = 1;
n = 63;
mp = 1;
m = 50;
idimy = 75;
deltas = 1.0e0./(m+1);
for i = 1 : m;
s(i) = i.*deltas;
end; i = fix(m+1);
deltat = 1.0e0./(n+1);
for j = 1 : n;
t(j) = j.*deltat;
end; j = fix(n+1);
hds = deltas./2.;
tds = deltas + deltas;
for i = 1 : m;
temp1 = 1../(s(i).*tds);
temp2 = 1../((s(i)-hds).*tds);
temp3 = 1../((s(i)+hds).*tds);
am(i) = temp1.*temp2;
cm(i) = temp1.*temp3;
bm(i) = -(am(i)+cm(i));
end; i = fix(m+1);
hdt = deltat./2.;
tdt = deltat + deltat;
for j = 1 : n;
temp1 = 1../(t(j).*tdt);
temp2 = 1../((t(j)-hdt).*tdt);
temp3 = 1../((t(j)+hdt).*tdt);
an(j) = temp1.*temp2;
cn(j) = temp1.*temp3;
bn(j) = -(an(j)+cn(j));
end; j = fix(n+1);
for j = 1 : n;
for i = 1 : m;
y(i,j) = 3.75.*s(i).*t(j).*(s(i).^4.+t(j).^4.);
end; i = fix(m+1);
end; j = fix(n+1);
for j = 1 : n;
y(m,j) = y(m,j) - cm(m).*t(j).^5.;
end; j = fix(n+1);
for i = 1 : m;
y(i,n) = y(i,n) - cn(n).*s(i).^5.;
end; i = fix(m+1);
while (1);
[iflg,np,n,an,bn,cn,mp,m,am,bm,cm,idimy,y,ierror,w]=blktri(iflg,np,n,an,bn,cn,mp,m,am,bm,cm,idimy,y,ierror,w);
iflg = fix(iflg + 1);
if( iflg>1 )
break;
end;
end;
err = 0.;
for j = 1 : n;
for i = 1 : m;
z = abs(y(i,j)-(s(i).*t(j)).^5.);
if( z>err )
err = z;
end;
end; i = fix(m+1);
end; j = fix(n+1);
ipass = 1;
if( err>ermax )
ipass = 0;
end;
if( kprint==0 )
return;
end;
if( kprint>=2 || ipass==0 )
writef(lun,['1',repmat(' ',1,20),'SUBROUTINE BLKTRI EXAMPLE', '\n ' , '\n ' , '\n ' ,repmat(' ',1,10),'THE OUTPUT FROM THE NCAR CONTROL DATA 7600 WAS', '\n ' , '\n ' ,repmat(' ',1,32),'IERROR = 0', '\n ' ,repmat(' ',1,18),'DISCRETIZATION ERROR = 1.6478E-0 5', '\n ' ,repmat(' ',1,12),'REQUIRED LENGTH OF W ARRAY = 823', '\n ' , '\n ' ,repmat(' ',1,10),'THE OUTPUT FROM YOUR COMPUTER IS', '\n ' , '\n ' ,repmat(' ',1,32),'IERROR =','%2i', '\n ' ,repmat(' ',1,18),' DISCRETIZATION ERROR =',repmat('%12.5f',1,1), '\n ' ,repmat(' ',1,12),'REQUIRED LENGTH OF W ARRAY =','%4i' ' \n'], ierror , err , fix(w(1)));
%format ('1',20X,'SUBROUTINE BLKTRI EXAMPLE'///10X,'THE OUTPUT FROM THE NCAR CONTROL DATA 7600 WAS'//32X,'IERROR = 0'/18X,'DISCRETIZATION ERROR = 1.6478E-0 5'/12X,'REQUIRED LENGTH OF W ARRAY = 823'//10X,'THE OUTPUT FROM YOUR COMPUTER IS'//32X,'IERROR =',i2/18X,' DISCRETIZATION ERROR =',1PE12.5/12X,'REQUIRED LENGTH OF W ARRAY =',i4);
if( ipass==1 )
writef(lun,[repmat(' ',1,60),'PASS', '\n ' ' \n']);
%format (60X,'PASS'];
else;
writef(lun,[repmat(' ',1,60),'FAIL', '\n ' ' \n']);
%format (60X,'FAIL'];
end;
end;
return;
end %subroutine qxblkt