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

artmrartiwt_.F

Go to the documentation of this file.
00001 c artmrartiwt_.F
00002 c*********************************************************************
00003 c*          (c) Copyright 1994-2002 Brown Deer Technology, LLC.
00004 c*                        All rights reserved.
00005 c*********************************************************************
00006 
00007         subroutine artmrartiwt(
00008      &     Asize,Msize
00009      &     ,amax,mmax
00010      &     ,mrastep,mracoef
00011      &     ,datavalue
00012      &     )
00013 
00014         implicit none
00015 
00016 c       ****************************************
00017 c       ***** COMMON BLOCKS AND PARAMETERS *****
00018 c       ****************************************
00019 
00020 #include "stormdef.h"
00021         real INVSQRT2
00022         parameter( INVSQRT2 = STORMDEF_MATHCONST_INVSQRT2 )
00023 
00024 c       *******************************
00025 c       ***** VARIABLES EXCHANGED *****
00026 c       *******************************
00027 
00028         integer Asize
00029         integer Msize
00030         integer amax
00031         integer mmax
00032         integer mrastep
00033         real mracoef(0:1,0:Msize-1,0:Asize-1)
00034         real datavalue(0:Asize-1)
00035 
00036 c       ****************************
00037 c       ***** LOCAL VARIABLES ******
00038 c       ****************************
00039 
00040         integer itmp
00041         integer imcycle
00042         integer a
00043         integer m
00044         real tmpold,tmps,tmpw
00045 
00046 c       ******************************
00047 c       ***** EXTERNAL FUNCTIONS *****
00048 c       ******************************
00049 
00050         mrastep=mrastep+1
00051 
00052         itmp=ishft(1,mmax)-1
00053 
00054         itmp=itmp-iand(itmp,mrastep)
00055 
00056         imcycle=0
00057 
00058         do while (btest(itmp,imcycle).and.(imcycle.lt.mmax))
00059            imcycle=imcycle+1
00060         enddo
00061 
00062         do a=0,amax
00063            
00064            m=imcycle
00065 
00066            if (m.lt.mmax) then
00067               mracoef(0,m,a)=(mracoef(0,m+1,a)-mracoef(1,m+1,a))*INVSQRT2
00068            endif
00069 
00070            m=m-1
00071 
00072            do while (m.ge.0)
00073               mracoef(0,m,a)=(mracoef(0,m+1,a)+mracoef(1,m+1,a))*INVSQRT2
00074               m=m-1
00075            enddo
00076 
00077            datavalue(a)=mracoef(0,0,a)
00078 
00079         enddo
00080 
00081         return
00082         end
00083 c********************************************************

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