# "make" will create all the .eps (or .ps) figures
# "make clean" will remove all the .v and .eps from Fig/ (but not .pdf)
# "make burn" will remove all files except .pdf in Fig/
# .pdf files were created with preview, so I didn't include them in the targets


# Common project definitions
S = ./Src
B = ./Bin
O = ./Obj
M = ./Mod
D = ./Data
R = ./Fig
P = ./Par
G = ./Grad

# SEPlib includes/libraries
SEPDIR = /opt/SEP/SEP7.0
SEPINC = $(SEPDIR)/include
SEPLIB = $(SEPDIR)/lib
SEPLIBFLAGS = -L$(SEPLIB) -lsepauxf90 -lsepgeef90 -lsepf90 -lsep2df90 -lsep3df90 -lsep3d -lsepf90 -lsep
 
# Common Libraries
CMNINCFLAGS = -I. -I$(SEPINC) -I$(S)
CMNLIBFLAGS = $(SEPLIBFLAGS)

# C Compiler Setup
CINCFLAGS = $(CMNINCFLAGS)
CLIBFLAGS = $(CMNLIBFLAGS)
CFLAGS    = -O3 -funroll-loops -fforce-addr -fopenmp -ffast-math -std=c99

# Cuda Runtime
CUDADIR = /opt/nvidia/cuda
CUDAINC = $(CUDADIR)/include
CUDALIB = $(CUDADIR)/lib64

# Cuda SDK
CUDASDKDIR = /opt/nvidia/cuda-2.3_sdk/C
CUDASDKINC = $(CUDASDKDIR)/common/inc
CUDASDKLIB = $(CUDASDKDIR)/lib

# CUDA-specific libraries from runtime and SDK
CUINCFLAGS = -I$(CUDAINC) -I$(CUDASDKINC)
CULIBFLAGS = -L$(CUDALIB) -L$(CUDASDKLIB) -lcuda -lcutil -lcublas -lcufft

CUFLAGS = -O3 --compiler-options $(CUINCFLAGS) $(CULIBFLAGS) $(CINCFLAGS) $(CLIBFLAGS)
#CUFLAGS = -maxrregcount=16 --compiler-options 

# Cuda Compiler
NVCC = /opt/nvidia/cuda/bin/nvcc


# Fortran Includes
F90INCFLAGS  = $(CMNINCFLAGS) $(CUINCFLAGS)
F90LIBFLAGS  = $(CMNLIBFLAGS) $(CULIBFLAGS)
F90FLAGS     = -O3 -module $(M)
CC   = gcc
CXX  = /lib/cpp
LINK = g++
F90  = ifort

default: results

################################################################################
# CUDA build rules for objects, library modules, and executables
$(O)/%.cu.o : $(S)/%.cu
	#Compiling CUDA $^
	$(NVCC) $< -c -o $@     $(CUFLAGS) $(CUINCPATH) $(CULIBPATH) $(CULIBS) #--ptxas-options=-v  --gpu-name sm_13

### C build rules ###
$(O)/%.c.o: $(S)/%.c
	#Compiling C $^
	$(CC) -c -o $@   $^  -DSOURCE="$^" $(CFLAGS) $(CINCFLAGS)

### Fortran rules ###
$(O)/%.f90.o: $(S)/%.f90
	#Preprocessing FORTRAN $^
	$(CXX) $(F90INCFLAGS) -DSOURCE="'$^'" < $(S)/$*.f90  > $(O)/$*.fix.f90
	#Compiling FORTRAN $@
	$(F90) $(F90INCFLAGS) $(F90FLAGS)  -c -o $(O)/$*.f90.o $(O)/$*.fix.f90

$(B)/%.x: $(O)/%.f90.o
	#Linking FORTRAN $@
	$(F90) -o $@ $^     $(F90FLAGS)  $(F90INCFLAGS) $(F90LIBFLAGS)


### Compile Programs #########################################################

$(B)/Forward_born.x: 	$(O)/gpu_model_wrap.c.o \
						$(O)/gpu_model.cu.o \
						$(O)/tomo_mod.f90.o \
						$(O)/Forward_born.f90.o
	$(F90) -o $@ $^     $(F90FLAGS)  $(F90INCFLAGS) $(F90LIBFLAGS)

$(B)/RTM.x: 	$(O)/gpu_prop_wrap.c.o \
						$(O)/gpu_prop.cu.o \
						$(O)/tomo_mod.f90.o \
						$(O)/RTM.f90.o
	$(F90) -o $@ $^     $(F90FLAGS)  $(F90INCFLAGS) $(F90LIBFLAGS)

$(B)/WEMVA.x: 	$(O)/gpu_prop_wrap.c.o \
						$(O)/gpu_prop.cu.o \
						$(O)/tomo_mod.f90.o \
						$(O)/WEMVA.f90.o
	$(F90) -o $@ $^     $(F90FLAGS)  $(F90INCFLAGS) $(F90LIBFLAGS)

$(B)/WEMVAA.x: 	$(O)/gpu_prop2_wrap.c.o \
						$(O)/gpu_prop2.cu.o \
						$(O)/tomo_mod.f90.o \
						$(O)/angle_mod.f90.o \
						$(O)/WEMVAA.f90.o
	$(F90) -o $@ $^     $(F90FLAGS)  $(F90INCFLAGS) $(F90LIBFLAGS)

$(B)/WEMVAI.x: 	$(O)/gpu_prop2_wrap.c.o \
						$(O)/gpu_prop2.cu.o \
						$(O)/tomo_mod.f90.o \
						$(O)/angle_mod.f90.o \
						$(O)/WEMVAI.f90.o
	$(F90) -o $@ $^     $(F90FLAGS)  $(F90INCFLAGS) $(F90LIBFLAGS)

$(B)/WEMVAI2.x: 	$(O)/gpu_prop2_wrap.c.o \
						$(O)/gpu_prop2.cu.o \
						$(O)/tomo_mod.f90.o \
						$(O)/angle_mod.f90.o \
						$(O)/WEMVAI2.f90.o
	$(F90) -o $@ $^     $(F90FLAGS)  $(F90INCFLAGS) $(F90LIBFLAGS)

$(B)/WEMVAI4.x: 	$(O)/gpu_prop2_wrap.c.o \
						$(O)/gpu_prop2.cu.o \
						$(O)/tomo_mod.f90.o \
						$(O)/angle_mod.f90.o \
						$(O)/WEMVAI4.f90.o
	$(F90) -o $@ $^     $(F90FLAGS)  $(F90INCFLAGS) $(F90LIBFLAGS)

### Prepare input data #########################################################

wemva20_wavelet_15f_3.0ms.H:
	Wavelet n1=3000 d1=0.003 wavelet=ricker2 phase=0 fund=15 tdelay=0.3 > tmp.H
	Math file1=tmp.H exp='file1*1000' > $@
	echo "label1='Time(s)'"  >> $@
	Rm tmp.H

### Reflectivity #########################################################

wemva20_anom%_bg_pad.H: $(D)/wemva20_anom%.H
	Pad < $< beg1=200 end1=200 beg2=200 end2=200 extend=1 > $@

wemva20_anom%_rf_pad.H: $(D)/wemva20_anom%.H ${B}/Refl.x
	${B}/Refl.x < $< depth=110 | Pad beg1=200 end1=200 beg2=200 end2=200 extend=1 > $@

wemva20_anom0_rf1_pad.H: wemva20_aimage_bg_anom1.H ${B}/Refl3.x
	Window3d n3=1 min3=0 < $< | ./Bin/Refl3.x depth=110 | Pad beg1=200 end1=200 beg2=200 end2=200 extend=1 > $@

wemva20_anom0_rf2_pad.H: $(D)/wemva20_anom0.H ${B}/Refl.x
	${B}/Refl.x < $< depth=100 | Pad beg1=200 end1=200 beg2=200 end2=200 extend=1 > $@

wemva20_anom0_rf3_pad.H: $(D)/wemva20_anom0.H ${B}/Refl.x
	${B}/Refl.x < $< depth=123 | Pad beg1=200 end1=200 beg2=200 end2=200 extend=1 > $@

### Run Modeling #########################################################

wemva20_data_anom%.H: wemva20_anom%_bg_pad.H wemva20_anom%_rf_pad.H wemva20_wavelet_15f_3.0ms.H ${B}/Forward_born.x ${P}/model.p
	${B}/Forward_born.x < $< refl=wemva20_anom$*_rf_pad.H wavfile=wemva20_wavelet_15f_3.0ms.H par=${P}/model.p > $@

wemva20_data1_anom0.H: wemva20_anom0_bg_pad.H wemva20_anom0_rf1_pad.H wemva20_wavelet_15f_3.0ms.H ${B}/Forward_born.x ${P}/model.p
	${B}/Forward_born.x < $< refl=wemva20_anom0_rf1_pad.H wavfile=wemva20_wavelet_15f_3.0ms.H par=${P}/model.p > $@

wemva20_data2_anom0.H: wemva20_anom0_bg_pad.H wemva20_anom0_rf2_pad.H wemva20_wavelet_15f_3.0ms.H ${B}/Forward_born.x ${P}/model.p
	${B}/Forward_born.x < $< refl=wemva20_anom0_rf2_pad.H wavfile=wemva20_wavelet_15f_3.0ms.H par=${P}/model.p > $@

wemva20_data3_anom0.H: wemva20_anom0_bg_pad.H wemva20_anom0_rf3_pad.H wemva20_wavelet_15f_3.0ms.H ${B}/Forward_born.x ${P}/model.p
	${B}/Forward_born.x < $< refl=wemva20_anom0_rf3_pad.H wavfile=wemva20_wavelet_15f_3.0ms.H par=${P}/model.p > $@

### Run Imaging #########################################################

wemva20_image_correct_anom0.H: wemva20_anom0_bg_pad.H wemva20_data_anom0.H wemva20_wavelet_15f_3.0ms.H ${B}/RTM.x ${P}/parx.p
	${B}/RTM.x < $< data_obs=wemva20_data_anom0.H wavfile=wemva20_wavelet_15f_3.0ms.H par=${P}/parx.p > $@

wemva20_image1_correct_anom0.H: wemva20_anom0_bg_pad.H wemva20_data1_anom0.H wemva20_wavelet_15f_3.0ms.H ${B}/RTM.x ${P}/parx.p
	${B}/RTM.x < $< data_obs=wemva20_data1_anom0.H wavfile=wemva20_wavelet_15f_3.0ms.H par=${P}/parx.p > $@

wemva20_image2_correct_anom0.H: wemva20_anom0_bg_pad.H wemva20_data2_anom0.H wemva20_wavelet_15f_3.0ms.H ${B}/RTM.x ${P}/parx.p
	${B}/RTM.x < $< data_obs=wemva20_data2_anom0.H wavfile=wemva20_wavelet_15f_3.0ms.H par=${P}/parx.p > $@

wemva20_image3_correct_anom0.H: wemva20_anom0_bg_pad.H wemva20_data3_anom0.H wemva20_wavelet_15f_3.0ms.H ${B}/RTM.x ${P}/parx.p
	${B}/RTM.x < $< data_obs=wemva20_data3_anom0.H wavfile=wemva20_wavelet_15f_3.0ms.H par=${P}/parx.p > $@

wemva20_image_bg_anom%.H: wemva20_anom0_bg_pad.H wemva20_data_anom%.H wemva20_wavelet_15f_3.0ms.H ${B}/RTM.x ${P}/parx.p
	${B}/RTM.x < $< data_obs=wemva20_data_anom$*.H wavfile=wemva20_wavelet_15f_3.0ms.H par=${P}/parx.p > $@

### Run Forward WEMVA #########################################################

wemva20_deltaI_anom%.H: wemva20_anom0_bg_pad.H wemva20_anom%_bg_pad.H wemva20_data_anom%.H wemva20_wavelet_15f_3.0ms.H ${B}/WEMVA.x ${P}/parx.p
	${B}/WEMVA.x < $< data_obs=wemva20_data_anom$*.H slow_true=wemva20_anom$*_bg_pad.H wavfile=wemva20_wavelet_15f_3.0ms.H par=${P}/parx.p > $@

wemva20_deltaS_anom%.H: wemva20_anom0_bg_pad.H wemva20_deltaI_anom%.H wemva20_data_anom%.H wemva20_wavelet_15f_3.0ms.H ${B}/WEMVAA.x ${P}/parx.p
	${B}/WEMVAA.x < $< data_obs=wemva20_data_anom$*.H deltaI=wemva20_deltaI_anom$*.H wavfile=wemva20_wavelet_15f_3.0ms.H par=${P}/parx.p > $@

wemva20_deltaS22_anom1.H: wemva20_anom0_bg_pad.H wemva20_image_correct_anom0.H wemva20_image_bg_anom1.H wemva20_data_anom1.H wemva20_wavelet_15f_3.0ms.H ${B}/WEMVAI2.x ${P}/parx.p
	${B}/WEMVAI2.x < $< data_obs=wemva20_data_anom1.H image_flat=wemva20_image_correct_anom0.H image_obs=wemva20_image_bg_anom1.H wavfile=wemva20_wavelet_15f_3.0ms.H par=${P}/parx.p > $@

wemva20_deltaS22_anom%.H: wemva20_anom0_bg_pad.H wemva20_image_correct_anom0.H wemva20_image_bg_anom%.H wemva20_data_anom%.H wemva20_wavelet_15f_3.0ms.H ${B}/WEMVAI2.x ${P}/parx2.p
	${B}/WEMVAI2.x < $< data_obs=wemva20_data_anom$*.H image_flat=wemva20_image_correct_anom0.H image_obs=wemva20_image_bg_anom$*.H wavfile=wemva20_wavelet_15f_3.0ms.H par=${P}/parx2.p > $@

wemva20_deltaS32_anom1.H: wemva20_anom0_bg_pad.H wemva20_image1_correct_anom0.H wemva20_image_bg_anom1.H wemva20_data_anom1.H wemva20_wavelet_15f_3.0ms.H ${B}/WEMVAI2.x ${P}/parx.p
	${B}/WEMVAI2.x < $< data_obs=wemva20_data_anom1.H image_flat=wemva20_image1_correct_anom0.H image_obs=wemva20_image_bg_anom1.H wavfile=wemva20_wavelet_15f_3.0ms.H par=${P}/parx.p > $@

wemva20_deltaS32_anom2.H: wemva20_anom0_bg_pad.H wemva20_image2_correct_anom0.H wemva20_image_bg_anom2.H wemva20_data_anom2.H wemva20_wavelet_15f_3.0ms.H ${B}/WEMVAI2.x ${P}/parx.p
	${B}/WEMVAI2.x < $< data_obs=wemva20_data_anom2.H image_flat=wemva20_image2_correct_anom0.H image_obs=wemva20_image_bg_anom2.H wavfile=wemva20_wavelet_15f_3.0ms.H par=${P}/parx.p > $@

wemva20_deltaS32_anom3.H: wemva20_anom0_bg_pad.H wemva20_image3_correct_anom0.H wemva20_image_bg_anom3.H wemva20_data_anom3.H wemva20_wavelet_15f_3.0ms.H ${B}/WEMVAI2.x ${P}/parx.p
	${B}/WEMVAI2.x < $< data_obs=wemva20_data_anom3.H image_flat=wemva20_image3_correct_anom0.H image_obs=wemva20_image_bg_anom3.H wavfile=wemva20_wavelet_15f_3.0ms.H par=${P}/parx.p > $@

### Convert to angles #########################################################

wemva20_aimage%.H: wemva20_image%.H ${B}/Angle.x
	${B}/Angle.x < $< adj=1 maxangle=60 > $@

wemva20_deltaS%_scale.H: wemva20_deltaS%.H ${B}/Scale.x
	${B}/Scale.x < $< > $@

### Prepare input data #########################################################

wemva22_wavelet_15f_2ms.H:
	Wavelet n1=5000 d1=0.002 wavelet=ricker2 phase=0 fund=15 tdelay=0.2 > tmp.H
	Math file1=tmp.H exp='file1*1000' > $@
	echo "label1='Time(s)'"  >> $@
	Rm tmp.H

wemva22_%_pad.H: $(D)/wemva22_%.H
	Pad < $< beg1=300 end1=300 beg2=300 end2=300 extend=1 > $@

### Reflectivity #########################################################

wemva22_%_bg_pad.H: wemva22_%_pad.H
	Smooth < $< rect1=15 rect2=15 > $@

wemva22_%_rf3_pad.H: $(D)/wemva22_slowamaco.H ${B}/Der.x
	${B}/Der.x < $< | Pad beg1=300 end1=300 beg2=300 end2=300 extend=1 > $@

### Run Modeling #########################################################

wemva22_data3_%.H: wemva22_%_bg_pad.H wemva22_%_rf3_pad.H wemva22_wavelet_15f_2ms.H ${B}/Forward_born.x ${P}/model22.p
	${B}/Forward_born.x < $< refl=wemva22_$*_rf3_pad.H wavfile=wemva22_wavelet_15f_2ms.H par=${P}/model22.p > $@


### Run Imaging #########################################################

wemva22_image_bg2_slowamaco.H: wemva22_slowamaco_na_bg_pad.H wemva22_data3_slowamaco.H wemva22_wavelet_15f_2ms.H ${B}/RTM.x ${P}/parx22.p
	${B}/RTM.x < $< data_obs=wemva22_data3_slowamaco.H wavfile=wemva22_wavelet_15f_2ms.H par=${P}/parx22.p > $@

wemva22_image3_bg2_slowamaco.H: wemva22_slowamaco_bg_pad.H wemva22_data3_slowamaco.H wemva22_wavelet_15f_2ms.H ${B}/RTM.x ${P}/parx22.p
	${B}/RTM.x < $< data_obs=wemva22_data3_slowamaco.H wavfile=wemva22_wavelet_15f_2ms.H par=${P}/parx22.p > $@

wemva22_xcorrlags_slowamaco.H: wemva22_aimage_bg2_slowamaco.H wemva22_aimage3_bg2_slowamaco.H ${B}/Xcorrlocal.x
	${B}/Xcorrlocal.x < $< filter=wemva22_aimage3_bg2_slowamaco.H n1l=30 > $@

wemva22_xcorrlags_sm_slowamaco.H: wemva22_xcorrlags_slowamaco.H
	Smooth < $< rect1=3 rect2=3 rect3=3 > $@
### Run Forward WEMVA #########################################################

wemva22_deltaIm_slowamaco.H: wemva22_slowamaco_na_bg_pad.H wemva22_slowamaco_bg_pad.H wemva22_data3_slowamaco.H wemva22_wavelet_15f_2ms.H ${B}/WEMVA.x ${P}/parx22.p
	${B}/WEMVA.x < $< data_obs=wemva22_data3_slowamaco.H slow_true=wemva22_slowamaco_bg_pad.H wavfile=wemva22_wavelet_15f_2ms.H par=${P}/parx22.p > $@

wemva22_deltaSm_slowamaco.H: wemva22_slowamaco_na_bg_pad.H wemva22_deltaIm_slowamaco.H wemva22_data3_slowamaco.H wemva22_wavelet_15f_2ms.H ${B}/WEMVAA.x ${P}/parx22.p
	${B}/WEMVAA.x < $< data_obs=wemva22_data3_slowamaco.H deltaI=wemva22_deltaIm_slowamaco.H wavfile=wemva22_wavelet_15f_2ms.H par=${P}/parx22.p > $@

wemva22_deltaS54_slowamaco.H: wemva22_slowamaco_na_bg_pad.H wemva22_image_bg2_slowamaco.H wemva22_data3_slowamaco.H wemva22_xcorrlags_sm_slowamaco.H wemva22_wavelet_15f_2ms.H ${B}/WEMVAI4.x ${P}/parx22.p
	${B}/WEMVAI4.x < $< data_obs=wemva22_data3_slowamaco.H aimage_lags=wemva22_xcorrlags_sm_slowamaco.H image_obs=wemva22_image_bg2_slowamaco.H wavfile=wemva22_wavelet_15f_2ms.H par=${P}/parx22.p > $@

### Convert to angles #########################################################

wemva22_aimage%.H: wemva22_image%.H ${B}/Angle.x
	${B}/Angle.x < $< adj=1 maxangle=60 > $@

wemva22_deltaS%_scale.H: wemva22_deltaS%.H ${B}/Scale.x
	${B}/Scale.x < $< > $@

### Output Results #########################################################

# Create ps, pdf and gif files
${R}/%.eps: ${R}/%.v
	pstexpen $< $@ color=y fat=1 fatmult=1.5 invras=n force=

${R}/%.pdf: ${R}/%.eps
	epstopdf $< --nocompress

##############################################################################

wemva201= color=j newclip=1 bclip=-1 eclip=1 wantscalebar=n label1="Depth(km)" label2="Location(km)" titlesz=10 labelsz=9
wemva202= label1="Depth(km)" label2="Location(km)" label3="Angle(degree)"
wemva203= frame2=101 frame3=51 point2=0.7 wantcoordlabel=-1 wheretitle=t titlesz=8 labelsz=7 >/dev/null
wemva221= color=j newclip=1 bclip=2500 eclip=3322 wantscalebar=n label1="Depth(km)" label2="Location(km)" d1num=1 d2num=1
wemva222= color=j newclip=1 bclip=-1 eclip=1 wantscalebar=n label1="Depth(km)" label2="Location(km)" d1num=1 d2num=1 

${R}/dS1.v: wemva20_deltaS_anom1_scale.H
	Grey < wemva20_deltaS_anom1_scale.H ${wemva201} title=' ' >/dev/null out=$@

${R}/dS2.v: wemva20_deltaS_anom2_scale.H
	Grey < wemva20_deltaS_anom2_scale.H ${wemva201} title=' ' >/dev/null out=$@

${R}/dS3.v: wemva20_deltaS_anom3_scale.H
	Grey < wemva20_deltaS_anom3_scale.H ${wemva201} title=' ' >/dev/null out=$@

${R}/dS221.v: wemva20_deltaS22_anom1_scale.H
	Grey < wemva20_deltaS22_anom1_scale.H ${wemva201} title=' ' >/dev/null out=$@

${R}/dS222.v: wemva20_deltaS22_anom2_scale.H
	Grey < wemva20_deltaS22_anom2_scale.H ${wemva201} title=' ' >/dev/null out=$@

${R}/dS223.v: wemva20_deltaS22_anom3_scale.H
	Grey < wemva20_deltaS22_anom3_scale.H ${wemva201} title=' ' >/dev/null out=$@

${R}/dS321.v: wemva20_deltaS32_anom1_scale.H
	Grey < wemva20_deltaS32_anom1_scale.H ${wemva201} title=' ' >/dev/null out=$@

${R}/dS322.v: wemva20_deltaS32_anom2_scale.H
	Grey < wemva20_deltaS32_anom2_scale.H ${wemva201} title=' ' >/dev/null out=$@

${R}/dS323.v: wemva20_deltaS32_anom3_scale.H
	Grey < wemva20_deltaS32_anom3_scale.H ${wemva201} title=' ' >/dev/null out=$@

%.T: %.H
	Grey ${wemva202} eout=1 pclip=98 gainpanel=a < $< > $@

${R}/adcig1.v: wemva20_aimage_bg_anom1.T
	<$< Cubeplot frame1=108 ${wemva203} title=' ' out=$@

${R}/adcig2.v: wemva20_aimage_bg_anom2.T
	<$< Cubeplot frame1=95 ${wemva203} title=' ' out=$@

${R}/adcig3.v: wemva20_aimage_bg_anom3.T
	<$< Cubeplot frame1=128 ${wemva203} title=' ' out=$@

${R}/wemva22truev.v: ${D}/wemva22_velamaco.H
	< $< Grey ${wemva221} title=' '  >/dev/null out=$@

${R}/wemva22bgv.v: ${D}/wemva22_velamaco_na.H
	< $< Grey ${wemva221} title=' '  >/dev/null out=$@

${R}/wemva22adcigtv.v: wemva22_aimage3_bg2_slowamaco.T
	<$< Cubeplot point2=.7 frame1=201 frame2=151 frame3=76 wantcoordlabel=-1 title=' ' >/dev/null out=$@

${R}/wemva22adcigbgv.v: wemva22_aimage_bg2_slowamaco.T
	<$< Cubeplot point2=.7 frame1=201 frame2=151 frame3=76 wantcoordlabel=-1 title=' ' >/dev/null out=$@

${R}/wemva22lags3dc.v: wemva22_xcorrlags_sm_slowamaco.T
	<$< Cubeplot point2=.7 frame1=201 frame2=151 frame3=76 color=j wantcoordlabel=-1 title=' ' >/dev/null out=$@

${R}/wemva22amacoopt.v: wemva22_deltaSm_slowamaco_scale.H
	< $< Grey ${wemva222} title=' '  >/dev/null out=$@

${R}/wemva22amacoz.v: wemva22_deltaS54_slowamaco_scale.H
	< $< Grey ${wemva222} title=' '  >/dev/null out=$@

# #########################################################################

results: ${B}/Refl.x ${B}/Refl3.x ${B}/Forward_born.x ${B}/RTM.x ${B}/WEMVA.x ${B}/WEMVAA.x ${B}/WEMVAI2.x ${B}/Angle.x ${B}/Scale.x wemva20_wavelet_15f_3.0ms.H wemva20_anom0_bg_pad.H wemva20_anom1_bg_pad.H wemva20_anom2_bg_pad.H wemva20_anom3_bg_pad.H wemva20_anom0_rf_pad.H wemva20_anom1_rf_pad.H wemva20_anom2_rf_pad.H wemva20_anom3_rf_pad.H wemva20_anom0_rf1_pad.H wemva20_anom0_rf2_pad.H wemva20_anom0_rf3_pad.H wemva20_data_anom0.H wemva20_data_anom1.H wemva20_data_anom2.H wemva20_data_anom3.H wemva20_data1_anom0.H wemva20_data2_anom0.H wemva20_data3_anom0.H wemva20_image_bg_anom1.H wemva20_image_bg_anom2.H wemva20_image_bg_anom3.H wemva20_image_correct_anom0.H wemva20_image1_correct_anom0.H wemva20_image2_correct_anom0.H wemva20_image3_correct_anom0.H wemva20_deltaI_anom1.H wemva20_deltaI_anom2.H wemva20_deltaI_anom3.H wemva20_deltaS_anom1.H wemva20_deltaS_anom2.H wemva20_deltaS_anom3.H wemva20_deltaS22_anom1.H wemva20_deltaS22_anom2.H wemva20_deltaS22_anom3.H wemva20_deltaS32_anom1.H wemva20_deltaS32_anom2.H wemva20_deltaS32_anom3.H wemva20_deltaS_anom1_scale.H wemva20_deltaS_anom2_scale.H wemva20_deltaS_anom3_scale.H wemva20_deltaS22_anom1_scale.H wemva20_deltaS22_anom2_scale.H wemva20_deltaS22_anom3_scale.H wemva20_deltaS32_anom1_scale.H wemva20_deltaS32_anom2_scale.H wemva20_deltaS32_anom3_scale.H ${R}/dS1.eps ${R}/dS2.eps ${R}/dS3.eps ${R}/dS221.eps ${R}/dS222.eps ${R}/dS223.eps ${R}/dS321.eps ${R}/dS322.eps ${R}/dS323.eps ${R}/adcig1.eps ${R}/adcig2.eps ${R}/adcig3.eps ${B}/Der.x ${B}/WEMVAI4.x ${B}/Xcorrlocal.x wemva22_wavelet_15f_2ms.H wemva22_slowamaco_pad.H wemva22_slowamaco_bg_pad.H wemva22_slowamaco_na_pad.H wemva22_slowamaco_na_bg_pad.H wemva22_slowamaco_rf3_pad.H wemva22_data3_slowamaco.H wemva22_image_bg2_slowamaco.H wemva22_image3_bg2_slowamaco.H wemva22_aimage_bg2_slowamaco.H wemva22_aimage3_bg2_slowamaco.H wemva22_xcorrlags_slowamaco.H wemva22_xcorrlags_sm_slowamaco.H wemva22_deltaIm_slowamaco.H wemva22_deltaSm_slowamaco.H wemva22_deltaSm_slowamaco_scale.H wemva22_deltaS54_slowamaco.H wemva22_deltaS54_slowamaco_scale.H ${R}/wemva22truev.eps ${R}/wemva22bgv.eps ${R}/wemva22adcigtv.eps ${R}/wemva22adcigbgv.eps ${R}/wemva22lags3dc.eps ${R}/wemva22amacoopt.eps ${R}/wemva22amacoz.eps

clean:
	rm -f $(R)/*.v
	rm -f $(R)/*.eps

burn:
	rm -f *.H
	rm -f $(R)/*.v
	rm -f $(R)/*.eps
	rm -f $(M)/*
	rm -f $(O)/*
	rm -f $(B)/*
