45 lines
1002 B
Fortran
45 lines
1002 B
Fortran
subroutine derampc(c_img,i_dim)
|
|
|
|
implicit none
|
|
integer i_dim,i,j
|
|
complex c_img(i_dim,i_dim),c_phdn,c_phac
|
|
real r_phac,r_phdn
|
|
|
|
c_phdn = cmplx(0.,0.)
|
|
c_phac = cmplx(0.,0.)
|
|
|
|
do i=1,i_dim-1
|
|
do j=1,i_dim
|
|
c_phac = c_phac + c_img(i,j)*conjg(c_img(i+1,j))
|
|
enddo
|
|
enddo
|
|
|
|
do i=1,i_dim
|
|
do j=1,i_dim-1
|
|
c_phdn = c_phdn + c_img(i,j)*conjg(c_img(i,j+1))
|
|
enddo
|
|
enddo
|
|
|
|
if(cabs(c_phdn) .eq. 0)then
|
|
r_phdn = 0.0
|
|
else
|
|
r_phdn = atan2(aimag(c_phdn),real(c_phdn))
|
|
endif
|
|
|
|
if(cabs(c_phac) .eq. 0)then
|
|
r_phac = 0.0
|
|
else
|
|
r_phac = atan2(aimag(c_phac),real(c_phac))
|
|
endif
|
|
c write(6,*) 'Phase across, down = ',r_phac,r_phdn
|
|
|
|
do i=1,i_dim
|
|
do j=1,i_dim
|
|
c_img(i,j) = c_img(i,j)*cmplx(cos(r_phac*i+r_phdn*j),
|
|
& sin(r_phac*i+r_phdn*j))
|
|
enddo
|
|
enddo
|
|
|
|
end
|
|
|