Main Page | Class Hierarchy | Alphabetical List | Data Structures | File List | Data Fields | Globals

ihifwtws_.F

Go to the documentation of this file.
00001 c ihifwtws_.F
00002 c*********************************************************************
00003 c*          (c) Copyright 1994-2002 Brown Deer Technology, LLC.
00004 c*                        All rights reserved.
00005 c*********************************************************************
00006 
00007         subroutine ihifwtws(Sizef,ns,size,wdata,sdata,ws,iflag)
00008 
00009         implicit none
00010 
00011 c       ****************************************
00012 c       ***** COMMON BLOCKS AND PARAMETERS *****
00013 c       ****************************************
00014 
00015 c       *******************************
00016 c       ***** VARIABLES EXCHANGED *****
00017 c       *******************************
00018 
00019         integer Sizef
00020         integer ns
00021         integer size
00022         integer wdata(Sizef)
00023         integer sdata(Sizef)
00024         integer ws(Sizef)
00025         integer iflag
00026 
00027 c       ***************************
00028 c       ***** LOCAL VARIABLES *****
00029 c       ***************************
00030 
00031         integer i,size1,size2
00032 
00033 c       ******************************
00034 c       ***** EXTERNAL FUNCTIONS *****
00035 c       ******************************
00036 
00037 #ifdef STORM_FWT_FCHECKUSAGE
00038         if (size.lt.ns) then 
00039            iflag=1
00040            return
00041         endif
00042 #endif
00043 
00044         if (size.eq.ns) then
00045            do i=1,size
00046               sdata(i)=wdata(i)
00047            enddo
00048            iflag=0
00049            return
00050         endif
00051 
00052         do i=1,size
00053            ws(i)=wdata(i)
00054         enddo
00055 
00056         if (size.eq.ns) then
00057            iflag=0
00058            return
00059         endif
00060 
00061         size1=ns
00062 
00063 10      continue
00064         size2=size1
00065         size1=2*size1
00066         do i = 1,size2
00067            sdata(2*i-1) = ws(i) + (ws(size2+i)+1)/2 
00068            sdata(2*i) = ws(i) - ws(size2+i)/2
00069         enddo
00070 
00071         if (size1.lt.size) then
00072            do i=1,size1
00073                ws(i)=sdata(i)
00074            enddo
00075            goto 10
00076         endif
00077 
00078 #ifdef STORM_FWT_FCHECKUSAGE
00079         if (size1.ne.size) then
00080            iflag=2
00081            return
00082         endif
00083 #endif
00084 
00085         iflag=0
00086 
00087         return
00088         end
00089 

Generated on Mon May 31 21:38:48 2004 for SR2k4 Assembler by doxygen 1.3.6