function [lun,kprint,ipass]=qxcyl(lun,kprint,ipass);
persistent a b bda bdb bdc bdd c d elmbda ermax err f i idimf ierror j m mbdcnd mp1 n nbdcnd np1 pertrb r w x z ;
if isempty(a), a=0; end;
if isempty(b), b=0; end;
if isempty(bda), bda=zeros(1,129); end;
if isempty(bdb), bdb=zeros(1,129); end;
if isempty(bdc), bdc=zeros(1,65); end;
if isempty(bdd), bdd=zeros(1,65); end;
if isempty(c), c=0; end;
if isempty(d), d=0; end;
if isempty(elmbda), elmbda=0; end;
if isempty(ermax), ermax=0; end;
if isempty(err), err=0; end;
if isempty(f), f=zeros(65,129); end;
if isempty(pertrb), pertrb=0; end;
if isempty(r), r=zeros(1,65); end;
if isempty(w), w=zeros(1,1400); end;
if isempty(x), x=0; end;
if isempty(z), z=zeros(1,129); end;
if isempty(i), i=0; end;
if isempty(idimf), idimf=0; end;
if isempty(ierror), ierror=0; end;
if isempty(j), j=0; end;
if isempty(m), m=0; end;
if isempty(mbdcnd), mbdcnd=0; end;
if isempty(mp1), mp1=0; end;
if isempty(n), n=0; end;
if isempty(nbdcnd), nbdcnd=0; end;
if isempty(np1), np1=0; end;
if( kprint>=2 )
writef(lun,['1',repmat(' ',1,20),'SUBROUTINE HWSCYL EXAMPLE', '\n ' , '\n ' ' \n']);
end;
%format ('1',20X,'SUBROUTINE HWSCYL EXAMPLE'/];
idimf = 65;
ermax = 1.0e-3;
a = 0.0;
b = 1.0;
m = 64;
mbdcnd = 6;
c = 0.0;
d = 1.0;
n = 128;
nbdcnd = 3;
elmbda = 0.0;
mp1 = fix(m + 1);
np1 = fix(n + 1);
for i = 1 : mp1;
r(i) =(i-1)./64.0e0;
end; i = fix(mp1+1);
for j = 1 : np1;
z(j) =(j-1)./128.0e0;
end; j = fix(np1+1);
for j = 1 : np1;
bdb(j) = 4.0.*z(j).^4;
end; j = fix(np1+1);
for i = 1 : mp1;
bdc(i) = 0.0;
bdd(i) = 4.0.*r(i).^4;
end; i = fix(mp1+1);
for i = 1 : mp1;
for j = 1 : np1;
f(i,j) = 4.0.*r(i).^2.*z(j).^2.*(4.0.*z(j).^2+3.0.*r(i).^2);
end; j = fix(np1+1);
end; i = fix(mp1+1);
[a,b,m,mbdcnd,bda,bdb,c,d,n,nbdcnd,bdc,bdd,elmbda,f,idimf,pertrb,ierror,w]=hwscyl(a,b,m,mbdcnd,bda,bdb,c,d,n,nbdcnd,bdc,bdd,elmbda,f,idimf,pertrb,ierror,w);
x = 0.0;
for i = 1 : mp1;
for j = 1 : np1;
x = x + f(i,j) -(r(i).*z(j)).^4;
end; j = fix(np1+1);
end; i = fix(mp1+1);
x = x./(np1.*mp1);
for i = 1 : mp1;
for j = 1 : np1;
f(i,j) = f(i,j) - x;
end; j = fix(np1+1);
end; i = fix(mp1+1);
err = 0.0;
for i = 1 : mp1;
for j = 1 : np1;
x = abs(f(i,j)-(r(i).*z(j)).^4);
if( x>err )
err = x;
end;
end; j = fix(np1+1);
end; i = fix(mp1+1);
ipass = 1;
if( err>ermax )
ipass = 0;
end;
if( kprint>=3 ||(kprint>=2 && ipass==0) )
writef(lun,[repmat(' ',1,10),'THE OUTPUT FROM YOUR COMPUTER IS', '\n ' , '\n ' ,repmat(' ',1,32),'IERROR =','%2i', '\n ' ,repmat(' ',1,32),'PERTRB =','%12.5f', '\n ' ,repmat(' ',1,18),'DISCRETIZATION ERROR =',repmat('%12.5f',1,1), '\n ' ,repmat(' ',1,12),'REQUIRED LENGTH OF W ARRAY = ','%4i' ' \n'],ierror , pertrb , err , fix(w(1)));
end;
%format (10X,'THE OUTPUT FROM YOUR COMPUTER IS'//32X,'IERROR =',i2/32X,'PERTRB =',e12.5/18X,'DISCRETIZATION ERROR =',1PE12.5/12X,'REQUIRED LENGTH OF W ARRAY = ',i4);
if( ipass==1 && kprint>=2 )
writef(lun,[repmat(' ',1,25),'HWSCYL TEST PASSED', '\n ' ' \n']);
end;
%format (25X,'HWSCYL TEST PASSED'];
if( ipass==0 && kprint>=1 )
writef(lun,[repmat(' ',1,25),'HWSCYL TEST FAILED', '\n ' ' \n']);
end;
%format (25X,'HWSCYL TEST FAILED'];
return;
end %subroutine qxcyl