module shotmig_kernel_mod

  implicit none

  

contains  

  ! initialize for arrays , parameters
  ! types of extrapolators and imaging conditions
  subroutine shotmig_init(SLin, FXin, IGin)
    call Slin()
    call FXin()
    call IGin()
  end subroutine


  integer function shotmig_lop(adj, add, mod, dat)

  end function


  subroutine shotmig_lop2()
    do iz=1, nz
       call Slop() ! read the velocity model for each depth step
       call Grop() ! determing the propagation grid
       call FXop() ! propagate the wavefield for each depth step
       call IGop() ! apply the imaging condition
    end do
  end subroutine

  subroutine shotmig_close(, FX)
  end subroutine

end module
