mirror of
https://github.com/HongjianFang/DSurfTomo.git
synced 2025-05-08 00:01:14 +08:00
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
|