ISCE_INSAR/components/isceobj/Util/cpxmag2rg/src/cpxmag2rg.F

47 lines
1.4 KiB
Fortran
Executable File

!c** cpxmag2rg - convert two cpx magnitude files to a single rg file
subroutine cpxmag2rg(imageIn1,imageIn2,imageOut)
use cpxmag2rgState
implicit none
!integer*8 n
integer*8 imageIn1,imageIn2,imageOut
complex, allocatable :: a1(:),a2(:),outLine(:)
integer i,k,igrn,lineRead
allocate(outLine(len))
allocate(a1(len))
allocate(a2(len))
!jng doubt the file could be so big
!ierr = stat(f1,statb)
!n=statb(8)
!if(n.le.0)n=n+2**31+2**31
!lines=n/len/8
!write(*,*)'File length, lines: ',lines
do i=1,lines
!use this if the lines are accessed sequentially
call getLineSequential(imageIn1,a1,lineRead)
!read(21,rec=i)(a1(k),k=1,len)
igrn=i+idnoff
if(igrn.lt.1)igrn=1
if(igrn.gt.lines)igrn=lines
!use this to access a specific line
call getLine(imageIn2,a2,igrn)
!read(22,rec=igrn)(a2(k),k=1,len)
do k=1,len
outLine(k) = (0,0);
!if(k+iacoff.gt.0.and.k+iacoff.le.len)p(k)=cabs(a2(k+iacoff))
if(k+iacoff.gt.0.and.k+iacoff.le.len) outLine(k) = cmplx(cabs(a1(k)),cabs(a2(k+iacoff)))
end do
call setLineSequential(imageOut,outLine,lineRead)
end do
deallocate(outLine)
deallocate(a1)
deallocate(a2)
end