A
Main program
#ifdef SEP_MPI
call MPI_INIT(stat)
call set_no_putch()
#endif
call sep_init(SOURCE)
#ifdef SEP_MPI
call MPI_COMM_SIZE(MPI_COMM_WORLD, n,ierr)
call MPI_COMM_RANK(MPI_COMM_WORLD, i,ierr)
if(i==0) {
call from_param("verb",verb,.false.)
iverb=0;if(verb) iverb=1
call MPI_SEP_SEND_ARGS(n,10,iverb)
} else call MPI_SEP_RECEIVE_ARGS()
#endif
pro%operator=".R_.D"
call weimig_init( SLin=weisloN_init, &
WCin=weimwcN_init, &
FKin=weiwem_init, &
FXin=weissf_init, &
IGin=weihcig_init )
stat =weimig(pro%adj,pro%add,pro%R,pro%D, &
SLop=weisloN, &
WCop=weimwcN, &
FKop=weiwem, &
FXop=weissf, &
IGop=weihcig )
#ifdef SEP_MPI
call MPI_FINALIZE(ierr)
#endif
call sep_close();call exit(0)
}
# mini WEI example code
# Performs modeling and migration by downward continuation
# using Split-Step Fourier with N reference velocities
# Authors: Paul Sava (paul@sep) and Bob Clapp (bob@sep)
program WEImini{
use sep+wei_util+wei_process+wei_mig+wei_cig+wei_kxmig+wei_slo+wei_ssf+wei_wem
implicit none
logical :: verb
integer :: stat,ierr,iverb,n,i
makefile
#TRANSFORM THE DATA INTO TIME,CMPX,CMPY,OFFX,OFFY
#SWITCH TO KM FOR CONVENIENCE
${DATA}: ${DATA_0}
Transp plane=23 < ${DATA_0} >a.H
Pad < a.H >b.H n3out=52 n2out=600
Window3d < b.H n3=51 |Reverse >c.H which=4
Cat axis=3 b.H c.H |Pad n3out=108 >$@
echo o2=1.725 d2=.0125 o3=-1.275 d3=.025 >>$@
#SWITCH TO KM FOR CONVENIENCE
vel_cor.view.H: ${DIR}/marmvel.H
Window < ${DIR}/marmvel.H j1=2 j2=2 |Scale dscale=.001 >b.H
Cp b.H $@
echo d1=.008 d2=.008 >>$@
#TRANSFORM DATA TO CMPX,CMPY,OFFX,OFFY,FREQ
freq.H: ${DATA}
Transf f_min=1 f_max=40 shift2=1 wei=y < ${DATA} >$@
#TRANSFORM THE VELOCITY INTO CMPX,CMPY,CMPZ
vel.mig.H: vel_cor.view.H
Transp < vel_cor.view.H plane=12 |Transp plane=23 >$@
#MIGRATE THE DATA IMAGE=cmpx,cmpy,offx,offy,depth
image.H: vel.mig.H freq.H mig.P ${BINDIR}/WEImini.x
${BINDIR}/WEImini.x D=freq.H S=vel.mig.H R=$@ par=mig.P
#THE ZERO OFFSET IMAGE
image.zero.H: image.H
Window3d < image.H min3=0. n3=1 |Transp plane=12 >$@
#MAKE THE PICTURE
${RESDIR}/marm.v3 ${RESDIR}/marm.v: image.zero.H vel_cor.view.H
Grey < vel_cor.view.H allpos=y bias=1.5 >a.V label1="Depth(km)" label2="X Position(km)" title=" "
Grey < image.zero.H >b.V label1="Depth(km)" label2="X Position(km)" title=" "
Vppen gridnum=1,2 vpstyle=n < a.V b.V >c.V out=marm.v
Vppen vpstyle=n < a.V b.V >c.V out=marm.v3
#LOCATION OF DATA
DIR= /net/koko/data/data_syn/2d/marmousi/
DATA_0=${DIR}/marmcmp.H
DATA=data.H
Migration parameter file
amy_n=1 amy_o=0. amy_d=1. #CMPY AXIS
amx_n=600 amx_o=1.725 amx_d=.0125 #CMPX AXIS
az__n=376 az__o=0. az__d=.008 #DEPTH AXIS
ahx_n=64 ahx_o=-.175 ahx_d=.025 #OFFSET X AXIS
ahy_n=1 ahy_o=0. ahy_d=1. #OFFSET Y AXIS
aw__n=114 aw__o=0.689655 aw__d=0.344828 #FREQUENCY AXIS
velocity=y #WE ARE USING VELOCITY RATHER THAN SLOWNESS
image_real=y #WE WANT THE IMAGE TO BE A REAL CUBE
nfk=7 #WE ARE USING 7 VELOCITIES
nzs=47 nfk=15 #NUMBER OF DEPTH AND FREQUENCIES TO HOLD IN MEMORY
operation='migration.' operator=".R_.D" #WE ARE TRANSFORMING BETWEEN IMAGE AND DATA
adj=y #MIGRATION IS THE ADJOINT OPERATION