DSurfTomo/srcsparsity/invtrans3d.f90
Hongjian Fang fb7b81711f Initial commit
change 1e-2 to 'ftol' in CalSurfG.f90, which may cause problem with small study region (~2 km)
2016-03-29 15:48:02 +02:00

33 lines
814 B
Fortran

subroutine invwavetrans(nx,ny,nz,x,mxl,mxld,HorizonType,VerticalType)
implicit none
integer mxl,mxld,HorizonType,VerticalType
integer nx,ny,nz
real x(*)
real fxs(nx),fys(ny),fzs(nz)
integer k,j,i
!c local variables
do k=1,ny
do j=1,nx
fzs=x(j+(k-1)*nx:j+(k-1)*nx+(nz-1)*nx*ny:nx*ny)
call inversetrans(fzs,nz,mxld,VerticalType)
x(j+(k-1)*nx:j+(k-1)*nx+(nz-1)*nx*ny:nx*ny)=fzs
enddo
enddo
do k=1,nz
do j=1,nx
fys=x(j+(k-1)*nx*ny:j+(ny-1)*nx+(k-1)*nx*ny:nx)
call inversetrans(fys,ny,mxl,HorizonType)
x(j+(k-1)*nx*ny:j+(ny-1)*nx+(k-1)*nx*ny:nx)=fys
enddo
enddo
do k=1,nz
do j=1,ny
fxs=x(1+(j-1)*nx+(k-1)*nx*ny:nx+(j-1)*nx+(k-1)*nx*ny)
call inversetrans(fxs,nx,mxl,HorizonType)
x(1+(j-1)*nx+(k-1)*nx*ny:nx+(j-1)*nx+(k-1)*nx*ny)=fxs
enddo
enddo
end subroutine