mirror of
https://github.com/HongjianFang/DSurfTomo.git
synced 2025-05-07 15:41:14 +08:00

change 1e-2 to 'ftol' in CalSurfG.f90, which may cause problem with small study region (~2 km)
33 lines
814 B
Fortran
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
|