function [lun,kprint,ipass]=fftqx(lun,kprint,ipass);
persistent a ah arg arg1 arg2 azero azeroh b bh cf cosqbt cosqfb cosqft costfb costt cx cy dcfb dcfftb dcfftf dezb1 dezf1 dezfb dt errmax i j k modn n nd nm1 nns np1 ns2 ns2m nz pi rftb rftf rftfb signmlv sinqbt sinqfb sinqft sintfb sintt sqrt2 sum1 sum2 summlv tpi w x xh y ;
if isempty(a), a=zeros(1,100); end;
if isempty(ah), ah=zeros(1,100); end;
if isempty(arg), arg=0; end;
if isempty(arg1), arg1=0; end;
if isempty(arg2), arg2=0; end;
if isempty(azero), azero=0; end;
if isempty(azeroh), azeroh=0; end;
if isempty(b), b=zeros(1,100); end;
if isempty(bh), bh=zeros(1,100); end;
if isempty(cf), cf=0; end;
if isempty(cosqbt), cosqbt=0; end;
if isempty(cosqfb), cosqfb=0; end;
if isempty(cosqft), cosqft=0; end;
if isempty(costfb), costfb=0; end;
if isempty(costt), costt=0; end;
if isempty(cx), cx=zeros(1,200); end;
if isempty(cy), cy=zeros(1,200); end;
if isempty(dcfb), dcfb=0; end;
if isempty(dcfftb), dcfftb=0; end;
if isempty(dcfftf), dcfftf=0; end;
if isempty(dezb1), dezb1=0; end;
if isempty(dezf1), dezf1=0; end;
if isempty(dezfb), dezfb=0; end;
if isempty(dt), dt=0; end;
if isempty(errmax), errmax=0; end;
if isempty(i), i=0; end;
if isempty(j), j=0; end;
if isempty(k), k=0; end;
if isempty(modn), modn=0; end;
if isempty(n), n=0; end;
if isempty(nd), nd([1:10]) =[120,54,49,32,4,3,2,0,0,0]; end;
if isempty(nm1), nm1=0; end;
if isempty(nns), nns=0; end;
if isempty(np1), np1=0; end;
if isempty(ns2), ns2=0; end;
if isempty(ns2m), ns2m=0; end;
if isempty(nz), nz=0; end;
if isempty(pi), pi=0; end;
if isempty(rftb), rftb=0; end;
if isempty(rftf), rftf=0; end;
if isempty(rftfb), rftfb=0; end;
if isempty(signmlv), signmlv=0; end;
if isempty(sinqbt), sinqbt=0; end;
if isempty(sinqfb), sinqfb=0; end;
if isempty(sinqft), sinqft=0; end;
if isempty(sintfb), sintfb=0; end;
if isempty(sintt), sintt=0; end;
if isempty(sqrt2), sqrt2=0; end;
if isempty(summlv), summlv=0; end;
if isempty(sum1), sum1=0; end;
if isempty(sum2), sum2=0; end;
if isempty(tpi), tpi=0; end;
if isempty(w), w=zeros(1,2000); end;
if isempty(x), x=zeros(1,200); end;
if isempty(xh), xh=zeros(1,200); end;
if isempty(y), y=zeros(1,200); end;
sqrt2 = sqrt(2.0);
errmax = 2.0.*sqrt(r1mach(4));
nns = 7;
pi = 4.0d0.*atan(1.0d0);
if( kprint>=2 )
writef(lun,['1', '\n ' ,' FFT QUICK CHECK' ' \n']);
%format ('1'/' FFT QUICK CHECK');
end;
ipass = 1;
for nz = 1 : nns;
n = fix(nd(nz));
if( kprint>=2 )
writef(lun,[ '\n ' ,' Test FFT routines with a sequence of length ','%3i' ' \n'], n);
end;
%format [' Test FFT routines with a sequence of length ',i3);
modn = fix(rem(n,2));
np1 = fix(n + 1);
nm1 = fix(n - 1);
for j = 1 : np1;
x(j) = sin(j.*sqrt2);
y(j) = x(j);
xh(j) = x(j);
end; j = fix(np1+1);
[n,w]=rffti(n,w);
dt =(pi+pi)./n;
ns2 =fix(fix((n+1)./2));
for k = 2 : ns2;
sum1 = 0.0d0;
sum2 = 0.0d0;
arg =(k-1).*dt;
for i = 1 : n;
arg1 =(i-1).*arg;
sum1 = sum1 + x(i).*cos(arg1);
sum2 = sum2 + x(i).*sin(arg1);
end; i = fix(n+1);
y(2.*k-2) = sum1;
y(2.*k-1) = -sum2;
end; k = fix(ns2+1);
sum1 = 0.0d0;
sum2 = 0.0d0;
for i = 1 : 2: nm1 ;
sum1 = sum1 + x(i);
sum2 = sum2 + x(i+1);
end; i = fix(nm1 +1);
if( modn==1 )
sum1 = sum1 + x(n);
end;
y(1) = sum1 + sum2;
if( modn==0 )
y(n) = sum1 - sum2;
end;
[n,x,w]=rfftf(n,x,w);
rftf = 0.0;
for i = 1 : n;
rftf = max(rftf,abs(x(i)-y(i)));
x(i) = xh(i);
end; i = fix(n+1);
rftf = rftf./n;
if( rftf<=errmax )
if( kprint>=3 )
writef(lun,[' Test of RFFTF PASSED' ' \n']);
end;
%format (' Test of RFFTF PASSED');
else;
ipass = 0;
if( kprint>=2 )
writef(lun,[' Test of RFFTF FAILED' ' \n']);
end;
%format (' Test of RFFTF FAILED');
end;
signmlv = 1.0;
for i = 1 : n;
summlv = 0.5d0.*x(1);
arg =(i-1).*dt;
for k = 2 : ns2;
arg1 =(k-1).*arg;
summlv = summlv + x(2.*k-2).*cos(arg1) - x(2.*k-1).*sin(arg1);
end; k = fix(ns2+1);
if( modn==0 )
summlv = summlv + 0.5d0.*signmlv.*x(n);
end;
y(i) = summlv + summlv;
signmlv = -signmlv;
end; i = fix(n+1);
[n,x,w]=rfftb(n,x,w);
rftb = 0.0;
for i = 1 : n;
rftb = max(rftb,abs(x(i)-y(i)));
x(i) = xh(i);
y(i) = xh(i);
end; i = fix(n+1);
rftb = rftb./n;
if( rftb<=errmax )
if( kprint>=3 )
writef(lun,[' Test of RFFTB PASSED' ' \n']);
end;
%format (' Test of RFFTB PASSED');
else;
ipass = 0;
if( kprint>=2 )
writef(lun,[' Test of RFFTB FAILED' ' \n']);
end;
%format (' Test of RFFTB FAILED');
end;
[n,y,w]=rfftb(n,y,w);
[n,y,w]=rfftf(n,y,w);
cf = 1.0./n;
rftfb = 0.0;
for i = 1 : n;
rftfb = max(rftfb,abs(cf.*y(i)-x(i)));
end; i = fix(n+1);
if( rftfb<=errmax )
if( kprint>=3 )
writef(lun,[' Test of RFFTF and RFFTB PASSED' ' \n']);
end;
%format (' Test of RFFTF and RFFTB PASSED');
else;
ipass = 0;
if( kprint>=2 )
writef(lun,[' Test of RFFTF and RFFTB FAILED' ' \n']);
end;
%format (' Test of RFFTF and RFFTB FAILED');
end;
dt = pi./n;
for i = 1 : nm1;
x(i) = xh(i);
end; i = fix(nm1+1);
for i = 1 : nm1;
y(i) = 0.0;
arg1 = i.*dt;
for k = 1 : nm1;
y(i) = y(i) + x(k).*sin((k).*arg1);
end; k = fix(nm1+1);
y(i) = y(i) + y(i);
end; i = fix(nm1+1);
[nm1,w]=sinti(nm1,w);
[nm1,x,w]=sint(nm1,x,w);
cf = 0.5./n;
sintt = 0.0;
for i = 1 : nm1;
sintt = max(sintt,abs(x(i)-y(i)));
x(i) = xh(i);
y(i) = x(i);
end; i = fix(nm1+1);
sintt = cf.*sintt;
if( sintt<=errmax )
if( kprint>=3 )
writef(lun,[' First test of SINT PASSED' ' \n']);
end;
%format (' First test of SINT PASSED');
else;
ipass = 0;
if( kprint>=2 )
writef(lun,[' First test of SINT FAILED' ' \n']);
end;
%format (' First test of SINT FAILED');
end;
[nm1,x,w]=sint(nm1,x,w);
[nm1,x,w]=sint(nm1,x,w);
sintfb = 0.0;
for i = 1 : nm1;
sintfb = max(sintfb,abs(cf.*x(i)-y(i)));
end; i = fix(nm1+1);
if( sintfb<=errmax )
if( kprint>=3 )
writef(lun,[' Second test of SINT PASSED' ' \n']);
end;
%format (' Second test of SINT PASSED');
else;
ipass = 0;
if( kprint>=2 )
writef(lun,[' Second test of SINT FAILED' ' \n']);
end;
%format (' Second test of SINT FAILED');
end;
for i = 1 : np1;
x(i) = xh(i);
end; i = fix(np1+1);
signmlv = 1.0;
for i = 1 : np1;
y(i) = 0.5.*(x(1)+signmlv.*x(n+1));
arg =(i-1).*dt;
for k = 2 : n;
y(i) = y(i) + x(k).*cos((k-1).*arg);
end; k = fix(n+1);
y(i) = y(i) + y(i);
signmlv = -signmlv;
end; i = fix(np1+1);
[np1,w]=costi(np1,w);
[np1,x,w]=cost(np1,x,w);
costt = 0.0;
for i = 1 : np1;
costt = max(costt,abs(x(i)-y(i)));
x(i) = xh(i);
y(i) = xh(i);
end; i = fix(np1+1);
costt = cf.*costt;
if( costt<=errmax )
if( kprint>=3 )
writef(lun,[' First test of COST PASSED' ' \n']);
end;
%format (' First test of COST PASSED');
else;
ipass = 0;
if( kprint>=2 )
writef(lun,[' First test of COST FAILED' ' \n']);
end;
%format (' First test of COST FAILED');
end;
[np1,x,w]=cost(np1,x,w);
[np1,x,w]=cost(np1,x,w);
costfb = 0.0;
for i = 1 : np1;
costfb = max(costfb,abs(cf.*x(i)-y(i)));
end; i = fix(np1+1);
if( costfb<=errmax )
if( kprint>=3 )
writef(lun,[' Second test of COST PASSED' ' \n']);
end;
%format (' Second test of COST PASSED');
else;
ipass = 0;
if( kprint>=2 )
writef(lun,[' Second test of COST FAILED' ' \n']);
end;
%format (' Second test of COST FAILED');
end;
cf = 0.25./n;
for i = 1 : n;
y(i) = xh(i);
end; i = fix(n+1);
dt = pi./(n+n);
for i = 1 : n;
x(i) = 0.0;
arg = i.*dt;
for k = 1 : n;
x(i) = x(i) + y(k).*sin((k+k-1).*arg);
end; k = fix(n+1);
x(i) = 4.0.*x(i);
end; i = fix(n+1);
[n,w]=sinqi(n,w);
[n,y,w]=sinqb(n,y,w);
sinqbt = 0.0;
for i = 1 : n;
sinqbt = max(sinqbt,abs(y(i)-x(i)));
x(i) = xh(i);
end; i = fix(n+1);
sinqbt = cf.*sinqbt;
if( sinqbt<=errmax )
if( kprint>=3 )
writef(lun,[' Test of SINQB PASSED' ' \n']);
end;
%format (' Test of SINQB PASSED');
else;
ipass = 0;
if( kprint>=2 )
writef(lun,[' Test of SINQB FAILED' ' \n']);
end;
%format (' Test of SINQB FAILED');
end;
signmlv = 1.0;
for i = 1 : n;
arg =(i+i-1).*dt;
y(i) = 0.5.*signmlv.*x(n);
for k = 1 : nm1;
y(i) = y(i) + x(k).*sin((k).*arg);
end; k = fix(nm1+1);
y(i) = y(i) + y(i);
signmlv = -signmlv;
end; i = fix(n+1);
[n,x,w]=sinqf(n,x,w);
sinqft = 0.0;
for i = 1 : n;
sinqft = max(sinqft,abs(x(i)-y(i)));
y(i) = xh(i);
x(i) = xh(i);
end; i = fix(n+1);
if( sinqft<=errmax )
if( kprint>=3 )
writef(lun,[' Test of SINQF PASSED' ' \n']);
end;
%format (' Test of SINQF PASSED');
else;
ipass = 0;
if( kprint>=2 )
writef(lun,[' Test of SINQF FAILED' ' \n']);
end;
%format (' Test of SINQF FAILED');
end;
[n,y,w]=sinqf(n,y,w);
[n,y,w]=sinqb(n,y,w);
sinqfb = 0.0;
for i = 1 : n;
sinqfb = max(sinqfb,abs(cf.*y(i)-x(i)));
end; i = fix(n+1);
if( sinqfb<=errmax )
if( kprint>=3 )
writef(lun,[' Test of SINQF and SINQB PASSED' ' \n']);
end;
%format (' Test of SINQF and SINQB PASSED');
else;
ipass = 0;
if( kprint>=2 )
writef(lun,[' Test of SINQF and SINQB FAILED' ' \n']);
end;
%format (' Test of SINQF and SINQB FAILED');
end;
for i = 1 : n;
y(i) = xh(i);
end; i = fix(n+1);
for i = 1 : n;
x(i) = 0.0;
arg =(i-1).*dt;
for k = 1 : n;
x(i) = x(i) + y(k).*cos((k+k-1).*arg);
end; k = fix(n+1);
x(i) = 4.0.*x(i);
end; i = fix(n+1);
[n,w]=cosqi(n,w);
[n,y,w]=cosqb(n,y,w);
cosqbt = 0.0;
for i = 1 : n;
cosqbt = max(cosqbt,abs(x(i)-y(i)));
x(i) = xh(i);
end; i = fix(n+1);
cosqbt = cf.*cosqbt;
if( cosqbt<=errmax )
if( kprint>=3 )
writef(lun,[' Test of COSQB PASSED' ' \n']);
end;
%format (' Test of COSQB PASSED');
else;
ipass = 0;
if( kprint>=2 )
writef(lun,[' Test of COSQB FAILED' ' \n']);
end;
%format (' Test of COSQB FAILED');
end;
for i = 1 : n;
y(i) = 0.5.*x(1);
arg =(i+i-1).*dt;
for k = 2 : n;
y(i) = y(i) + x(k).*cos((k-1).*arg);
end; k = fix(n+1);
y(i) = y(i) + y(i);
end; i = fix(n+1);
[n,x,w]=cosqf(n,x,w);
cosqft = 0.0;
for i = 1 : n;
cosqft = max(cosqft,abs(y(i)-x(i)));
x(i) = xh(i);
y(i) = xh(i);
end; i = fix(n+1);
cosqft = cf.*cosqft;
if( cosqft<=errmax )
if( kprint>=3 )
writef(lun,[' Test of COSQF PASSED' ' \n']);
end;
%format (' Test of COSQF PASSED');
else;
ipass = 0;
if( kprint>=2 )
writef(lun,[' Test of COSQF FAILED' ' \n']);
end;
%format (' Test of COSQF FAILED');
end;
[n,x,w]=cosqb(n,x,w);
[n,x,w]=cosqf(n,x,w);
cosqfb = 0.0;
for i = 1 : n;
cosqfb = max(cosqfb,abs(cf.*x(i)-y(i)));
end; i = fix(n+1);
if( cosqfb<=errmax )
if( kprint>=3 )
writef(lun,[' Test of COSQF and COSQB PASSED' ' \n']);
end;
%format (' Test of COSQF and COSQB PASSED');
else;
ipass = 0;
if( kprint>=2 )
writef(lun,[' Test of COSQF and COSQB FAILED' ' \n']);
end;
%format (' Test of COSQF and COSQB FAILED');
end;
[n,w]=ezffti(n,w);
for i = 1 : n;
x(i) = xh(i);
end; i = fix(n+1);
tpi = 2.0.*pi;
dt = tpi./n;
ns2 =fix(fix((n+1)./2));
cf = 2.0./n;
ns2m = fix(ns2 - 1);
for k = 1 : ns2m;
sum1 = 0.0d0;
sum2 = 0.0d0;
arg = k.*dt;
for i = 1 : n;
arg1 =(i-1).*arg;
sum1 = sum1 + x(i).*cos(arg1);
sum2 = sum2 + x(i).*sin(arg1);
end; i = fix(n+1);
a(k) = cf.*sum1;
b(k) = cf.*sum2;
end; k = fix(ns2m+1);
nm1 = fix(n - 1);
sum1 = 0.0d0;
sum2 = 0.0d0;
for i = 1 : 2: nm1 ;
sum1 = sum1 + x(i);
sum2 = sum2 + x(i+1);
end; i = fix(nm1 +1);
if( modn==1 )
sum1 = sum1 + x(n);
end;
azero = 0.5.*cf.*(sum1+sum2);
if( modn==0 )
a(ns2) = 0.5.*cf.*(sum1-sum2);
end;
[n,x,azeroh,ah,bh,w]=ezfftf(n,x,azeroh,ah,bh,w);
dezf1 = abs(azeroh-azero);
if( modn==0 )
dezf1 = max(dezf1,abs(a(ns2)-ah(ns2)));
end;
for i = 1 : ns2m;
dezf1 = max([dezf1,abs(ah(i)-a(i)),abs(bh(i)-b(i))]);
end; i = fix(ns2m+1);
if( dezf1<=errmax )
if( kprint>=3 )
writef(lun,[' Test of EZFFTF PASSED' ' \n']);
end;
%format (' Test of EZFFTF PASSED');
else;
ipass = 0;
if( kprint>=2 )
writef(lun,[' Test of EZFFTF FAILED' ' \n']);
end;
%format (' Test of EZFFTF FAILED');
end;
ns2 = fix(fix(n./2));
if( modn==0 )
b(ns2) = 0.0;
end;
for i = 1 : n;
summlv = azero;
arg1 =(i-1).*dt;
for k = 1 : ns2;
arg2 = k.*arg1;
summlv = summlv + a(k).*cos(arg2) + b(k).*sin(arg2);
end; k = fix(ns2+1);
x(i) = summlv;
end; i = fix(n+1);
[n,y,azero,a,b,w]=ezfftb(n,y,azero,a,b,w);
dezb1 = 0.0;
for i = 1 : n;
dezb1 = max(dezb1,abs(x(i)-y(i)));
x(i) = xh(i);
end; i = fix(n+1);
if( dezb1<=errmax )
if( kprint>=3 )
writef(lun,[' Test of EZFFTB PASSED' ' \n']);
end;
%format (' Test of EZFFTB PASSED');
else;
ipass = 0;
if( kprint>=2 )
writef(lun,[' Test of EZFFTB FAILED' ' \n']);
end;
%format (' Test of EZFFTB FAILED');
end;
[n,x,azero,a,b,w]=ezfftf(n,x,azero,a,b,w);
[n,y,azero,a,b,w]=ezfftb(n,y,azero,a,b,w);
dezfb = 0.0;
for i = 1 : n;
dezfb = max(dezfb,abs(x(i)-y(i)));
end; i = fix(n+1);
if( dezfb<=errmax )
if( kprint>=3 )
writef(lun,[' Test of EZFFTF and EZFFTB PASSED' ' \n']);
end;
%format (' Test of EZFFTF and EZFFTB PASSED');
else;
ipass = 0;
if( kprint>=2 )
writef(lun,[' Test of EZFFTF and EZFFTB FAILED' ' \n']);
end;
%format (' Test of EZFFTF and EZFFTB FAILED');
end;
for i = 1 : n;
cx(i) = complex(cos(sqrt2.*i),sin(sqrt2.*(i.*i)));
end; i = fix(n+1);
dt =(pi+pi)./n;
for i = 1 : n;
arg1 = -(i-1).*dt;
cy(i) =complex(0.0,0.0);
for k = 1 : n;
arg2 =(k-1).*arg1;
cy(i) = cy(i) + complex(cos(arg2),sin(arg2)).*cx(k);
end; k = fix(n+1);
end; i = fix(n+1);
[n,w]=cffti(n,w);
[n,cx,w]=cfftf(n,cx,w);
dcfftf = 0.0;
for i = 1 : n;
dcfftf = max(dcfftf,abs(cx(i)-cy(i)));
cx(i) = cx(i)./n;
end; i = fix(n+1);
dcfftf = dcfftf./n;
if( dcfftf<=errmax )
if( kprint>=3 )
writef(lun,[' Test of CFFTF PASSED' ' \n']);
end;
%format (' Test of CFFTF PASSED');
else;
ipass = 0;
if( kprint>=2 )
writef(lun,[' Test of CFFTF FAILED' ' \n']);
end;
%format (' Test of CFFTF FAILED');
end;
for i = 1 : n;
arg1 =(i-1).*dt;
cy(i) =complex(0.0,0.0);
for k = 1 : n;
arg2 =(k-1).*arg1;
cy(i) = cy(i) + complex(cos(arg2),sin(arg2)).*cx(k);
end; k = fix(n+1);
end; i = fix(n+1);
[n,cx,w]=cfftb(n,cx,w);
dcfftb = 0.0;
for i = 1 : n;
dcfftb = max(dcfftb,abs(cx(i)-cy(i)));
cx(i) = cy(i);
end; i = fix(n+1);
if( dcfftb<=errmax )
if( kprint>=3 )
writef(lun,[' Test of CFFTB PASSED' ' \n']);
end;
%format (' Test of CFFTB PASSED');
else;
ipass = 0;
if( kprint>=2 )
writef(lun,[' Test of CFFTB FAILED' ' \n']);
end;
%format (' Test of CFFTB FAILED');
end;
cf = 1.0./n;
[n,cx,w]=cfftf(n,cx,w);
[n,cx,w]=cfftb(n,cx,w);
dcfb = 0.0;
for i = 1 : n;
dcfb = max(dcfb,abs(cf.*cx(i)-cy(i)));
end; i = fix(n+1);
if( dcfb<=errmax )
if( kprint>=3 )
writef(lun,[' Test of CFFTF and CFFTB PASSED' ' \n']);
end;
%format (' Test of CFFTF and CFFTB PASSED');
else;
ipass = 0;
if( kprint>=2 )
writef(lun,[' Test of CFFTF and CFFTB FAILED' ' \n']);
end;
%format (' Test of CFFTF and CFFTB FAILED');
end;
if( kprint>=3 )
writef(lun,['0N','%5i',' RFFTF ','%9.3f',' RFFTB ','%9.3f',' RFFTFB ','%9.3f', '\n ' ,repmat(' ',1,7),' SINT ','%9.3f',' SINTFB ','%9.3f', '\n ' ,repmat(' ',1,7),' COST ','%9.3f',' COSTFB ','%9.3f', '\n ' ,repmat(' ',1,7),' SINQF ','%9.3f',' SINQB ','%9.3f',' SINQFB ','%9.3f', '\n ' ,repmat(' ',1,7),' COSQF ','%9.3f',' COSQB ','%9.3f',' COSQFB ','%9.3f', '\n ' ,repmat(' ',1,7),' DEZF1 ','%9.3f',' DEZB1 ','%9.3f',' DEZFB ','%9.3f', '\n ' ,repmat(' ',1,7),' CFFTF ','%9.3f',' CFFTB ','%9.3f',' CFFTFB ','%9.3f' ' \n'], n , rftf , rftb , rftfb , sintt , sintfb ,costt , costfb , sinqft , sinqbt , sinqfb ,cosqft , cosqbt , cosqfb , dezf1 , dezb1 ,dezfb , dcfftf , dcfftb , dcfb);
%format ('0N',i5,' RFFTF ',e9.3,' RFFTB ',e9.3,' RFFTFB ',e9.3/7X,' SINT ',e9.3,' SINTFB ',e9.3/7X,' COST ',e9.3,' COSTFB ',e9.3/7X,' SINQF ',e9.3,' SINQB ',e9.3,' SINQFB ',e9.3/7X,' COSQF ',e9.3,' COSQB ',e9.3,' COSQFB ',e9.3/7X,' DEZF1 ',e9.3,' DEZB1 ',e9.3,' DEZFB ',e9.3/7X,' CFFTF ',e9.3,' CFFTB ',e9.3,' CFFTFB ',e9.3);
end;
end; nz = fix(nns+1);
if( kprint>=2 && ipass==1 )
writef(lun,[ '\n ' ,' *FFT ROUTINES PASSED ALL TESTS**' ' \n']);
%format [' *FFT ROUTINES PASSED ALL TESTS**');
end;
if( kprint>=1 && ipass==0 )
writef(lun,[ '\n ' ,' *FFT ROUTINES FAILED SOME TESTS*' ' \n']);
%format [' *FFT ROUTINES FAILED SOME TESTS*');
end;
return;
end %subroutine fftqx