⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rwemig.f90

📁 国外免费地震资料处理软件包
💻 F90
字号:
program RWEmig  use rsf  use wemig  implicit none  type (file) :: Fi, Fo, Fm, Fr  type(axa) :: ax,az,aw,ar  integer :: method  integer :: iz  logical :: verb  real,    allocatable :: aa(:,:),bb(:,:),mm(:,:)  complex, allocatable :: ab(:,:)  real,    allocatable :: a0(:,:),b0(:,:)  complex, pointer     :: dat(:,:) !! data  real,    pointer     :: img(:,:) !! image  call sf_init()  Fi = rsf_input()  Fo = rsf_output()  Fm = rsf_input("abm")  Fr = rsf_input("abr")  call from_par("verb",verb,.false.)  call from_par("method",method,0)  call iaxa(Fi,ax,1)     !! x = 'space' axis (can be angle)  call iaxa(Fi,aw,2)     !! w = frequency  call iaxa(Fm,az,1)     !! z = extrapolation axis (can be time)  call iaxa(Fr,ar,2)     !! references axis   if(method==0) ar%n=1   !! pure finite-differences  if(verb) then     write(0,*) ax%n,ax%o,ax%d     write(0,*) az%n,az%o,az%d     write(0,*) aw%n,aw%o,aw%d     write(0,*) ar%n,ar%o,ar%d  end if    call oaxa(Fo,az,1)  call oaxa(Fo,ax,2)  call settype(Fo,sf_float)!  call to_par(Fo,"esize",4)  write(0,*) "read data"  allocate(dat(ax%n,aw%n))  call rsf_read(Fi,dat)  !----------------------------------------------------------------  write(0,*) "read ABM"  allocate(aa(az%n,ax%n))  allocate(bb(az%n,ax%n))  allocate(mm(az%n,ax%n))  call rsf_read(Fm,aa)  call rsf_read(Fm,bb)  call rsf_read(Fm,mm)  if(verb) then     write(0,*) "aa",minval(aa),maxval(aa)     write(0,*) "bb",minval(bb),maxval(bb)     write(0,*) "mm",minval(mm),maxval(mm)  end if  write(0,*) "read ABM ok"  !----------------------------------------------------------------  write(0,*) "read ABr"  allocate(ab(az%n,ar%n))  allocate(a0(az%n,ar%n))  allocate(b0(az%n,ar%n))  call rsf_read(Fr,ab)  a0= real(ab)  b0=aimag(ab)  if(verb) then     write(0,*) "a0",minval(a0),maxval(a0)     write(0,*) "b0",minval(b0),maxval(b0)  end if  write(0,*) "read ABr ok"  !----------------------------------------------------------------  write(0,*) "allocate image"  allocate(img(az%n,ax%n))  img=0.0  write(0,*) "init modeling"  call wemig_init(ax,az,aw,ar,method)  write(0,*) "run modeling"  call wemig_driver(dat,img,aa,bb,mm,a0,b0)  write(0,*) "write image"  call rsf_write(Fo,img)  !----------------------------------------------------------------  deallocate(dat,img)end program RWEmig

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -