00001 c rtmrag1rtiwt_.F
00002
00003 c*********************************************************************
00004 c* (c) Copyright 1994-2002 David A. Richie. All rights reserved.
00005 c*********************************************************************
00006 c* Created: Jun 19, 2000
00007 c* Last Modified: Aug 19, 2001
00008 c*********************************************************************
00009
00010 subroutine rtmrag1rtiwt(
00011 & Msize
00012 & ,mmax
00013 & ,mrastep,mracoef
00014 & ,data
00015 & )
00016
00017 c ****************************************
00018 c ***** COMMON BLOCKS AND PARAMETERS *****
00019 c ****************************************
00020
00021 real H00,H10,H11
00022 parameter(H00=0.70710678118654752440)
00023 parameter(H10=-0.61237243569579452455)
00024 parameter(H11=0.35355339059327376220)
00025
00026 c *******************************
00027 c ***** VARIABLES EXCHANGED *****
00028 c *******************************
00029
00030 integer Msize
00031 integer mmax
00032 integer mrastep
00033 real mracoef(0:1,0:1,0:Msize-1)
00034 real data
00035
00036 c ****************************
00037 c ***** LOCAL VARIABLES ******
00038 c ****************************
00039
00040 integer itmp
00041 integer imcycle
00042 integer m
00043 real tmpold,tmps,tmpw
00044
00045 c ******************************
00046 c ***** EXTERNAL FUNCTIONS *****
00047 c ******************************
00048
00049 mrastep=mrastep+1
00050
00051 itmp=ishft(1,mmax)-1
00052
00053 itmp=itmp-iand(itmp,mrastep)
00054
00055 imcycle=0
00056
00057 do while (btest(itmp,imcycle).and.(imcycle.lt.mmax))
00058 imcycle=imcycle+1
00059 enddo
00060
00061 m=imcycle
00062
00063 if (m.lt.mmax) then
00064 c mracoef(0,m)=(mracoef(0,m+1)-mracoef(1,m+1))*ISQRT2
00065 mracoef(0,0,m)=H00*mracoef(0,0,m+1)-H10*mracoef(1,0,m+1)
00066 & -H11*mracoef(0,1,m+1)
00067 mracoef(1,0,m)=H11*mracoef(1,0,m+1)-H10*mracoef(0,1,m+1)
00068 & -H00*mracoef(1,1,m+1)
00069 endif
00070
00071 m=m-1
00072
00073 do while (m.ge.0)
00074 c mracoef(0,m)=(mracoef(0,m+1)+mracoef(1,m+1))*ISQRT2
00075 mracoef(0,0,m)=H00*mracoef(0,0,m+1)+H10*mracoef(1,0,m+1)
00076 & +H11*mracoef(0,1,m+1)
00077 mracoef(1,0,m)=H11*mracoef(1,0,m+1)-H10*mracoef(0,1,m+1)
00078 & +H00*mracoef(1,1,m+1)
00079 m=m-1
00080 enddo
00081
00082 data=mracoef(0,0,0)
00083
00084 return
00085 end
00086 c********************************************************