The library is first called to initialize the functional operators
call weidtm_init(SLin=weislxN_init & , WCin=weimwcN_init & , FKin=weiwem3_init & , FXin=weissf3_init ),where
After initialization, the main datuming operator is called:
stat = weidtm(adj,add,D,U & , SLop=weislxN & , WCop=weimwcN & , FKop=weiwem3 & , FXop=weissf3 ),where D and U are tags to the files storing the wavefield at the surface and at depth, respectively. Other parameters from the command line control the execution of the program (Appendix A).
A second example of operator that can be written in WEI is a modeling/migration pair. In this case, the main operator requires, in addition to the 4 functional operators used for datuming, a 5th operator for the imaging condition. As we have done before, the WEI operator is first initialized
call weimig_init(SLin=weislsN_init & , WCin=weimwcN_init & , FKin=weiwem3_init & , FXin=weissf3_init & , IGin=weihcig_init ),and then executed
stat = weimig(adj,add,R,D & , SLop=weislsN & , WCop=weimwcN & , FKop=weiwem3 & , FXop=weissf3 & , IGop=weihcig ).
Figure 2 shows the result of migrating the Marmousi synthetic using seven reference velocities. The main program, makefile, and parameter file are listed in Appendix A.