├── NOTE ├── README.md ├── Raysum_fwd_v1.2 ├── README ├── Sample │ ├── contplot.m │ ├── raysum-params │ ├── readtr.m │ ├── sample.arr │ ├── sample.geom │ ├── sample.mod │ ├── sample.out │ ├── sample.ph │ └── sample.tr ├── bin │ ├── seis-misfit │ └── seis-spread └── src │ ├── Makefile │ ├── buildmodel.f │ ├── buildmodel.o │ ├── eigenvec.f │ ├── eigenvec.o │ ├── eispack-cg.f │ ├── eispack-cg.o │ ├── matrixops.f │ ├── matrixops.o │ ├── misfit.f │ ├── misfit.o │ ├── params.h │ ├── phaselist.f │ ├── phaselist.o │ ├── raysum.f │ ├── raysum.o │ ├── readwrite.f │ ├── readwrite.o │ ├── seis-misfit │ ├── seis-misfit.f │ ├── seis-misfit.o │ ├── seis-spread │ ├── seis-spread.f │ ├── seis-spread.o │ ├── test.f │ ├── trace.f │ └── trace.o ├── V15A_-112.0_36.0_1 ├── AZRdisp_0_V15A_-112.0_36.0.txt ├── AnimodB_0_V15A_-112.0_36.0.txt ├── AnimodM_0_V15A_-112.0_36.0.txt ├── Animod_0_V15A_-112.0_36.0.txt ├── LdispB_0_V15A_-112.0_36.0.txt ├── LdispM_0_V15A_-112.0_36.0.txt ├── Ldisp_0_V15A_-112.0_36.0.txt ├── LkernelLp1ani_V15A_-112.0_36.0.txt ├── LkernelRp1ani_V15A_-112.0_36.0.txt ├── RdispB_0_V15A_-112.0_36.0.txt ├── RdispM_0_V15A_-112.0_36.0.txt ├── Rdisp_0_V15A_-112.0_36.0.txt ├── VkernelLp1ani_V15A_-112.0_36.0.txt ├── VkernelRp1ani_V15A_-112.0_36.0.txt ├── bin_avg │ ├── ani_-112.0_36.0.txt │ ├── ani_-112.0_36.0.txt_effTI │ ├── para_-112.0_36.0.txt │ ├── para_-112.0_36.0.txt_effTI │ ├── post_-112.0_36.0.txt │ ├── post_-112.0_36.0.txt_effTI │ ├── vsh_-112.0_36.0.txt │ ├── vsh_-112.0_36.0.txt_effTI │ ├── vsv_-112.0_36.0.txt │ └── vsv_-112.0_36.0.txt_effTI ├── binmod │ ├── ani_V15A_-112.0_36.0.bin │ └── ani_V15A_-112.0_36.0.bin_effTI ├── initmod │ ├── ani_V15A_-112.0_36.0.mod │ └── ani_V15A_-112.0_36.0.mod_BestFit ├── none ├── point.txt ├── run_Mineos_bran.csh ├── temp_LMisfit_id2_loop0_thread0.txt ├── temp_LMisfit_id2_loop0_thread1.txt ├── temp_LMisfit_id2_loop0_thread10.txt ├── temp_LMisfit_id2_loop0_thread11.txt ├── temp_LMisfit_id2_loop0_thread12.txt ├── temp_LMisfit_id2_loop0_thread13.txt ├── temp_LMisfit_id2_loop0_thread14.txt ├── temp_LMisfit_id2_loop0_thread15.txt ├── temp_LMisfit_id2_loop0_thread16.txt ├── temp_LMisfit_id2_loop0_thread17.txt ├── temp_LMisfit_id2_loop0_thread18.txt ├── temp_LMisfit_id2_loop0_thread19.txt ├── temp_LMisfit_id2_loop0_thread2.txt ├── temp_LMisfit_id2_loop0_thread20.txt ├── temp_LMisfit_id2_loop0_thread21.txt ├── temp_LMisfit_id2_loop0_thread22.txt ├── temp_LMisfit_id2_loop0_thread23.txt ├── temp_LMisfit_id2_loop0_thread3.txt ├── temp_LMisfit_id2_loop0_thread4.txt ├── temp_LMisfit_id2_loop0_thread5.txt ├── temp_LMisfit_id2_loop0_thread6.txt ├── temp_LMisfit_id2_loop0_thread7.txt ├── temp_LMisfit_id2_loop0_thread8.txt └── temp_LMisfit_id2_loop0_thread9.txt ├── V15A_-112.0_36.0_2 ├── AZLdispB_0_V15A_-112.0_36.0.txt ├── AZLdisp_0_V15A_-112.0_36.0.txt ├── AZRdispB_0_V15A_-112.0_36.0.txt ├── AZRdisp_0_V15A_-112.0_36.0.txt ├── AnimodB_0_V15A_-112.0_36.0.txt ├── AnimodM_0_V15A_-112.0_36.0.txt ├── Animod_0_V15A_-112.0_36.0.txt ├── LdispB_0_V15A_-112.0_36.0.txt ├── LdispM_0_V15A_-112.0_36.0.txt ├── Ldisp_0_V15A_-112.0_36.0.txt ├── LkernelLp1ani_V15A_-112.0_36.0.txt ├── LkernelRp1ani_V15A_-112.0_36.0.txt ├── RdispB_0_V15A_-112.0_36.0.txt ├── RdispM_0_V15A_-112.0_36.0.txt ├── Rdisp_0_V15A_-112.0_36.0.txt ├── VkernelLp1ani_V15A_-112.0_36.0.txt ├── VkernelRp1ani_V15A_-112.0_36.0.txt ├── bin_avg │ ├── ani_-112.0_36.0.txt │ ├── ani_-112.0_36.0.txt_effTI │ ├── para_-112.0_36.0.txt │ ├── para_-112.0_36.0.txt_effTI │ ├── post_-112.0_36.0.txt │ ├── post_-112.0_36.0.txt_effTI │ ├── vsh_-112.0_36.0.txt │ ├── vsh_-112.0_36.0.txt_effTI │ ├── vsv_-112.0_36.0.txt │ └── vsv_-112.0_36.0.txt_effTI ├── binmod │ ├── ani_V15A_-112.0_36.0.bin │ └── ani_V15A_-112.0_36.0.bin_effTI ├── initmod │ ├── ani_V15A_-112.0_36.0.mod │ └── ani_V15A_-112.0_36.0.mod_BestFit ├── none ├── point.txt ├── run_Mineos_bran.csh ├── temp_LMisfit_id2_loop0_thread0.txt ├── temp_LMisfit_id2_loop0_thread1.txt ├── temp_LMisfit_id2_loop0_thread10.txt ├── temp_LMisfit_id2_loop0_thread11.txt ├── temp_LMisfit_id2_loop0_thread12.txt ├── temp_LMisfit_id2_loop0_thread13.txt ├── temp_LMisfit_id2_loop0_thread14.txt ├── temp_LMisfit_id2_loop0_thread15.txt ├── temp_LMisfit_id2_loop0_thread16.txt ├── temp_LMisfit_id2_loop0_thread17.txt ├── temp_LMisfit_id2_loop0_thread18.txt ├── temp_LMisfit_id2_loop0_thread19.txt ├── temp_LMisfit_id2_loop0_thread2.txt ├── temp_LMisfit_id2_loop0_thread20.txt ├── temp_LMisfit_id2_loop0_thread21.txt ├── temp_LMisfit_id2_loop0_thread22.txt ├── temp_LMisfit_id2_loop0_thread23.txt ├── temp_LMisfit_id2_loop0_thread3.txt ├── temp_LMisfit_id2_loop0_thread4.txt ├── temp_LMisfit_id2_loop0_thread5.txt ├── temp_LMisfit_id2_loop0_thread6.txt ├── temp_LMisfit_id2_loop0_thread7.txt ├── temp_LMisfit_id2_loop0_thread8.txt └── temp_LMisfit_id2_loop0_thread9.txt ├── V15A_ambiguity_ref.py ├── ak135_dbase.txt ├── aniprop.so ├── aniprop_src ├── .aniprop_subroutines.f.swp ├── Makefile ├── aniprop.pyf ├── aniprop.so ├── aniprop_001.pyf ├── aniprop_dev.pyf ├── aniprop_old.pyf ├── aniprop_subroutines.f ├── aniprop_subroutines_dev.f ├── aniprop_subroutines_old.f ├── anipropf77.pyf ├── backup_code │ ├── aniprop_subroutines_old.f │ └── util_subroutines_old.f ├── compile_aniprop.sh ├── cp_dev.sh ├── cp_old.sh ├── eispack.f ├── forward_solver.f90 ├── log ├── refft.c ├── rf_aniso_subroutines.f ├── test_aniprop.py ├── util_subroutines.f ├── util_subroutines_dev.f └── util_subroutines_old.f ├── aniproppy.py ├── aniproppy.pyc ├── azi_data_0.02 ├── CL_dip_60.0_strike_0.0.txt ├── CL_dip_90.0_strike_0.0.txt ├── CR_dip_60.0_strike_0.0.txt └── CR_dip_90.0_strike_0.0.txt ├── azi_data_0.02_no4 ├── CL_dip_60.0_strike_0.0.txt ├── CR_dip_60.0_strike_0.0.txt └── CR_dip_90.0_strike_0.0.txt ├── azi_data_0.1 └── CR_dip_90.0_strike_0.0.txt ├── azi_data_bk ├── CR_dip_180.0_strike_0.0.txt └── CR_dip_90.0_strike_0.0.txt ├── backup_code ├── anisojp_07 │ ├── Makefile │ ├── README.md │ ├── aniprop_032408.f │ ├── aniprop_072307.f │ ├── aniprop_subroutines.f │ ├── anisojp.pyf │ ├── anisojp.so │ ├── compile_all.sh │ ├── eispack.f │ ├── forward_solver.f90 │ ├── log │ ├── refft.c │ ├── rf_aniso_subroutines.f │ ├── test_aniprop.py │ └── util_subroutines.f ├── anisojp_hz │ ├── Makefile │ ├── README.md │ ├── ZDISP_Love.txt │ ├── ZDISP_Rayleigh.txt │ ├── ZMODEL.txt │ ├── ZMODEL.txt_bk │ ├── ZRecFun.txt │ ├── aniprop_032408.f │ ├── aniprop_072307.f │ ├── aniprop_subroutines.f │ ├── aniprop_subroutines.o │ ├── anisojp.pyf │ ├── anisojp.pyf_bk │ ├── anisojp.pyf_bk_100 │ ├── anisojp.so │ ├── compile_all.sh │ ├── eispack.f │ ├── eispack.o │ ├── forward_solver.f90 │ ├── forward_solver.f90_bk │ ├── forward_solver.f90_bk_100 │ ├── forward_solver.o │ ├── main │ ├── main.f90 │ ├── main.o │ ├── refft.c │ ├── refft.o │ ├── rf_aniso_subroutines.f │ ├── rf_aniso_subroutines.o │ ├── test_aniprop.py │ ├── util_subroutines.f │ └── util_subroutines.o ├── cps_VOLIII_src │ ├── 00README │ ├── BAD │ │ ├── tcomb96.f │ │ ├── tdisp96.f │ │ ├── tprep96.f │ │ └── tregn96.f │ ├── Makefile │ ├── Makefile.CYG │ ├── Makefile.CYG40 │ ├── Makefile.LNX │ ├── Makefile.LNX40 │ ├── Makefile.LNX64 │ ├── Makefile.LNX6440 │ ├── Makefile.OSF │ ├── Makefile.OSX │ ├── Makefile.OSX40 │ ├── Makefile.OSX40-32 │ ├── Makefile.SLE │ ├── Makefile.SOL │ ├── Makefile.W32 │ ├── SAVE │ │ ├── spulse96.f.save │ │ └── srfgrd96.f.save │ ├── iputmod.f │ ├── lgstr.f │ ├── lgstr.o │ ├── libcalpltf.a │ ├── mchdep.f │ ├── mchdep.o │ ├── mgtarg.f │ ├── mgtarg.o │ ├── mnmarg.f │ ├── mnmarg.o │ ├── rddisp.f │ ├── scomb96.f │ ├── sdisp96.f │ ├── sdisp96.f.save │ ├── sdpder96.f │ ├── sdpdsp96.f │ ├── sdpdsp96.f.buggy │ ├── sdpegn96.f │ ├── sdprad96.f │ ├── sdpspc96.f │ ├── sdpsrf96.f │ ├── sio.f │ ├── slat2d96.f │ ├── slegn96.f │ ├── sprep96.f │ ├── spulse96.f │ ├── sregn96.f │ ├── srfgrd96.f │ ├── ssio.f │ ├── tcomb96.f │ ├── tdisp.pyf │ ├── tdisp.so │ ├── tdisp96.f │ ├── tdisp96.f.save │ ├── tdisp96.o │ ├── tdisp96.test.f │ ├── tdpder96.f │ ├── tdpegn96.f │ ├── tdpsrf96.f │ ├── tgetmod.f │ ├── tgetmod.o │ ├── tio.f │ ├── tio.o │ ├── tlegn96.f │ ├── tprep96.f │ ├── tpulse96.f │ ├── tputmod.f │ ├── tregn96.f │ ├── tsregn96.f │ └── wrdisp.f ├── cps_surf │ ├── compile_tdisp96.sh │ ├── compile_tegn96.sh │ ├── compile_tlegn96.sh │ ├── compile_tregn96.sh │ ├── f2csub.f │ ├── fort.1 │ ├── fort.2 │ ├── lgstr.f │ ├── log │ ├── mchdep.f │ ├── mgtarg.f │ ├── mnmarg.f │ ├── out.mod │ ├── tcomb96.f │ ├── tdisp.so │ ├── tdisp96.dat │ ├── tdisp96.f │ ├── tdisp96.lov │ ├── tdisp96.pyf │ ├── tdisp96.pyf_bk │ ├── tdisp96.ray │ ├── tdisp96.so │ ├── tdisp96.test.f │ ├── tdisp96_subroutine.f │ ├── tdpder96.f │ ├── tdpegn96.f │ ├── tdpsrf96.f │ ├── tegn96.so │ ├── tegn96_bk.pyf │ ├── tegn96_tregn96.pyf │ ├── test_cpssurf.py │ ├── test_model.txt │ ├── test_tlegn96.py │ ├── test_tregn96.py │ ├── tgetmod.f │ ├── tio.f │ ├── tlegn96.f │ ├── tlegn96.pyf │ ├── tlegn96.so │ ├── tlegn96_subroutine.f │ ├── tprep96.f │ ├── tpulse96.f │ ├── tputmod.f │ ├── tregn96.egn │ ├── tregn96.f │ ├── tregn96_subroutine.f │ ├── tregn96_subroutine_bk.f │ ├── tregn96_subroutine_new.f │ ├── tsregn96.f │ ├── vmodel.py │ └── vmodel.pyc └── tdisp96_src_no_flat2sphere_by_LF │ ├── compile_tdisp96.sh │ ├── lgstr.f │ ├── mchdep.f │ ├── mgtarg.f │ ├── mnmarg.f │ ├── tdisp96.pyf │ ├── tdisp96.so │ ├── tdisp96_bk │ ├── tdisp96_subroutine.f │ ├── test_model.txt │ ├── test_tdisp96.py │ ├── tgetmod.f │ ├── tio.f │ ├── vmodel.py │ └── vmodel.pyc ├── benchmark_ref ├── aniprop_reproduce_paper_fig3.py ├── anirec_raysum.py ├── iso_anirec_raysum.py ├── theo_anirec_ak135.py ├── theo_raysum_ak135.py ├── tilt_anirec.py ├── tilt_anirec_raysum.py └── tilt_raysum.py ├── benchmark_script ├── benchmark_axisem │ ├── ak135f_love_gr.txt │ ├── ak135f_love_ph.txt │ ├── ak135f_ray_gr.txt │ └── ak135f_ray_ph.txt ├── benchmark_tcps │ ├── psv_derived_love_kernels.py │ ├── psv_derived_vel_kernels.py │ ├── psv_eigen.py │ ├── psv_flat_vs_sph_kernels.py │ ├── psv_perturb_love_kernels.py │ ├── psv_perturb_vel_kernels.py │ ├── sh_derived_vel_kernels.py │ ├── sh_eigen.py │ ├── sh_perturb_love_kernels.py │ └── sh_perturb_vel_kernels.py └── benchmark_tcps_vs_pysurf │ ├── phaseV.py │ ├── psv_disp.py │ ├── psv_eigenfunction.py │ ├── psv_groupV.py │ ├── psv_kernels.py │ └── sh_disp.py ├── benchmark_tilt ├── VTI_ak135.py ├── iso_ak135.py ├── tilt_ak135.py ├── tilt_ak135_ambiguity.py ├── tilt_ak135_ambiguity_ref.py ├── tilt_ak135_tcps_psv.py └── tilt_ak135_tcps_sh.py ├── compile_all.sh ├── database.py ├── database.pyc ├── eigen.py ├── eigen.pyc ├── fast_surf.so ├── fast_surf_src ├── calcul.f ├── compile_fast_surf.sh ├── fast_surf.f ├── fast_surf.pyf ├── fast_surf.so ├── fib2.so ├── flat1.f ├── init.f ├── mchdepsun.f └── surfa.f ├── fsurf.py ├── fsurf.pyc ├── group_meeting ├── VTI_ak135.py ├── plot_ak135.py ├── psv_perturb_love_kernels.py ├── psv_tilt_ak135.py ├── sh_perturb_love_kernels.py ├── sh_tilt_ak135.py ├── theo_anirec_ak135.py ├── tilt_ak135_ambiguity.py ├── tilt_ak135_ambiguity_ref.py ├── tilt_ak135_ambiguity_ref_raysum.py ├── tilt_ak135_ambiguity_sws.py ├── tilt_group1_ref.py └── tilt_group2_ref.py ├── mod_group1.txt ├── mod_group2.txt ├── raysum.so ├── raysum_src ├── buildmodel.f ├── compile_raysum.sh ├── eigenvec.f ├── eispack-cg.f ├── matrixops.f ├── misfit.f ├── params.h ├── phaselist.f ├── raysum.f ├── raysum.pyf ├── raysum.so ├── raysum_interface.f ├── readwrite.f ├── test_raysum.py └── trace.f ├── raysum_src_constant_eta ├── buildmodel.f ├── compile_raysum.sh ├── eigenvec.f ├── eispack-cg.f ├── matrixops.f ├── misfit.f ├── params.h ├── phaselist.f ├── raysum.f ├── raysum.pyf ├── raysum.so ├── raysum_interface.f ├── readwrite.f ├── test_raysum.py └── trace.f ├── ref.py ├── ref.pyc ├── rftheo_src ├── compile_theo.sh ├── four1.f ├── qlayer.f ├── rfi_param.inc ├── test_theo.py ├── theo.f ├── theo.pyf ├── theo.so ├── theo_1024.pyf └── theo_2048.pyf ├── run_disp.py ├── sws.py ├── sws.pyc ├── tcps.py ├── tcps.pyc ├── tdisp96.so ├── tdisp96_src ├── compile_tdisp96.sh ├── flat2sphere_subroutine.f ├── lgstr.f ├── mchdep.f ├── mgtarg.f ├── mnmarg.f ├── tdisp96.pyf ├── tdisp96.so ├── tdisp96_bk ├── tdisp96_subroutine.f ├── test_model.txt ├── test_sphere.py ├── test_tdisp96.py ├── tgetmod.f ├── tio.f ├── vmodel.py └── vmodel.pyc ├── test_dbase.py ├── test_eigensolver.py ├── test_fast_surf.py ├── test_ref.py ├── test_sws.py ├── test_tcps.py ├── test_vmodel.py ├── theo.so ├── tlegn96.so ├── tlegn96_src ├── compile_tlegn96.sh ├── lgstr.f ├── mchdep.f ├── mgtarg.f ├── mnmarg.f ├── test_model.txt ├── test_tlegn96.py ├── test_tregn96.py ├── tgetmod.f ├── tio.f ├── tlegn96.pyf ├── tlegn96.so ├── tlegn96_subroutine.f ├── vmodel.py └── vmodel.pyc ├── trash_code ├── benchmark_cps_spherical.py ├── compare_pysurf_vs_cps.py ├── convert_layer2point.py └── get_ak135.py ├── trash_data ├── 1dmodel_ak135f.txt ├── ak135.txt ├── ak135_cps.asdf ├── ak135_cps.txt ├── ak135_layer.txt ├── ak135f_1s.asdf └── prem_test.asdf ├── tregn96.so ├── tregn96_src ├── compile_tregn96.sh ├── lgstr.f ├── mchdep.f ├── mgtarg.f ├── mnmarg.f ├── test_model.txt ├── test_tregn96.py ├── tgetmod.f ├── tio.f ├── tregn96.pyf ├── tregn96.so ├── tregn96_subroutine.f ├── vmodel.py └── vmodel.pyc ├── vmodel.py ├── vmodel.pyc ├── vmodel_cps.py └── vmodel_cps.pyc /NOTE: -------------------------------------------------------------------------------- 1 | theo 2 | To do inversion, better use 1024 than 2048 3 | 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # pysurf 2 | The code has several functionalities 3 | 1. Computing surface wave dispersion curve, eigenfunctions and sensitivity kernels for tilted hexagonal symmetric media 4 | 2. Computing synthetic receiver function for tilted hexagonal symmetric media 5 | 3. Computing synthetic shear wave splitting for tilted hexagonal symmetric media 6 | 7 | -------------------------------------------------------------------------------- /Raysum_fwd_v1.2/Sample/contplot.m: -------------------------------------------------------------------------------- 1 | % contplot.m: Colour plot of traces 2 | % Usage: grd=contplot(T,baz,dt,minn,maxn,t1,t2,normflag) 3 | 4 | function grd=contplot(T,baz,dt,minn,maxn,t1,t2,normflag) 5 | 6 | tshift = 0; 7 | 8 | maxn=min(maxn,size(T,2)); 9 | ntraces=t2-t1+1; 10 | 11 | % Extract data subset 12 | for tr=t1:t2 13 | avec=zeros(1,maxn); 14 | avec=T(tr,minn:maxn); 15 | 16 | % Remove average 17 | avec=avec-mean(avec); 18 | 19 | if normflag == 0 20 | 21 | % Trace-normalize 22 | maxtr=max(abs(avec)); 23 | if maxtr < 1E-10 % zero trace 24 | maxtr=1; 25 | end 26 | avec=avec/maxtr; 27 | 28 | end 29 | 30 | grd(tr,:)=avec; 31 | 32 | end 33 | 34 | if normflag == 1 35 | 36 | % Section-normalize 37 | grd=grd/(max(max(abs(grd)))); 38 | 39 | end 40 | 41 | 42 | npts=size(grd,2); 43 | ntr=size(grd,1); 44 | 45 | % Because of the way shading works, need to add a dummy trace: 46 | grd(ntr+1,:)=zeros(1,npts); 47 | grd(:,npts+1)=zeros(ntr+1,1); 48 | 49 | tvec=[(minn-1)*dt-dt/2:dt:(maxn-1)*dt+dt/2] + tshift; 50 | dbaz=baz(2)-baz(1); 51 | bazvec=[(baz(t1)-dbaz/2):dbaz:(baz(t2)+dbaz/2)]; 52 | 53 | 54 | % -- Colour stuff: 55 | % r1=[(0:31)/31,ones(1,32)]; 56 | % g1=[(0:31)/31,(31:-1:0)/31]; 57 | % b1=[ones(1,32),(31:-1:0)/31]; 58 | % rwb=[r1',g1',b1']; 59 | %colmin=0; colmax=1; colmid=0.65; colsteps=100; 60 | %cold1=(colmid-colmin)/(colsteps-1); cold2=(colmax-colmid)/(colsteps-1); 61 | %colvec=[colmin:cold1:(colmid-cold1),colmid:cold2:colmax]'; 62 | %rwb=[ colvec, colvec, colvec ]; 63 | %colormap(rwb); 64 | 65 | colormap(gray); 66 | 67 | 68 | pcolor(bazvec,tvec,grd'); 69 | grid off; 70 | shading flat; 71 | axis ij; 72 | axis([baz(t1) baz(t2) (minn-1)*dt (maxn-1)*dt]); 73 | caxis([-1 1]); 74 | 75 | 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /Raysum_fwd_v1.2/Sample/raysum-params: -------------------------------------------------------------------------------- 1 | # Multiples: 0 for none, 1 for Moho, 2 for all first-order 2 | 1 3 | # Number of samples per trace 4 | 1200 5 | # Sample rate (seconds) 6 | 0.05 7 | # Gaussian pulse width (seconds) 8 | 1. 9 | # Alignment: 0 is none, 1 aligns on primary phase (P or S) 10 | 1 11 | # Shift of traces -- t=0 at this time (sec) 12 | 20. 13 | # Rotation to output: 0 is NS/EW/Z, 1 is R/T/Z, 2 is P/SV/SH 14 | 2 15 | -------------------------------------------------------------------------------- /Raysum_fwd_v1.2/Sample/readtr.m: -------------------------------------------------------------------------------- 1 | clear all 2 | format compact 3 | format short g 4 | 5 | filename='sample.tr'; 6 | fid=fopen(filename,'r'); 7 | 8 | % Read header: 9 | line=fgetl(fid); 10 | while line(1) == '#' 11 | line=fgetl(fid); 12 | end 13 | dum=str2num(line); 14 | ntr=dum(1); nsamp=dum(2); dt=dum(3); align=dum(4); shift=dum(5); 15 | [ntr,nsamp,dt,align,shift] 16 | 17 | % Read each trace 18 | line=fgetl(fid); 19 | for itr=1:ntr 20 | itr 21 | while line(1) == '#' 22 | line=fgetl(fid); 23 | end 24 | for isamp=1:nsamp 25 | traces(:,isamp,itr)=str2num(line); 26 | line=fgetl(fid); 27 | end 28 | end 29 | 30 | tvec=-shift:dt:(dt*(nsamp-1)-shift); 31 | size(traces) 32 | 33 | fclose(fid) 34 | 35 | subplot(3,1,1) 36 | contplot(squeeze(traces(2,:,:))',[1:ntr]',dt,1,nsamp,1,ntr,1); 37 | title('SV') 38 | subplot(3,1,2) 39 | contplot(squeeze(traces(3,:,:))',[1:ntr]',dt,1,nsamp,1,ntr,1); 40 | title('SH'); 41 | subplot(3,1,3) 42 | contplot(squeeze(traces(1,:,:))',[1:ntr]',dt,1,nsamp,1,ntr,1); 43 | title('P'); 44 | xlabel('Trace number'); 45 | ylabel('Time (s)'); 46 | -------------------------------------------------------------------------------- /Raysum_fwd_v1.2/Sample/sample.geom: -------------------------------------------------------------------------------- 1 | # Sample geometry file. Lines starting with '#' are ignored. 2 | # Columns: back-azimuth (deg), slowness (s/m), N-S shift (meters 3 | # north), E-W shift (meters east). 4 | # Watch out with large shifts -- layers could pinch out, violating 5 | # modelling assumptions. 6 | 0. 3.E-5 0. 0. 7 | 10. 3.E-5 0. 0. 8 | 20. 3.E-5 0. 0. 9 | 30. 3.E-5 0. 0. 10 | 40. 3.E-5 0. 0. 11 | 50. 3.E-5 0. 0. 12 | 60. 3.E-5 0. 0. 13 | 70. 3.E-5 0. 0. 14 | 80. 3.E-5 0. 0. 15 | 90. 3.E-5 0. 0. 16 | 100. 3.E-5 0. 0. 17 | 110. 3.E-5 0. 0. 18 | 120. 3.E-5 0. 0. 19 | 130. 3.E-5 0. 0. 20 | 140. 3.E-5 0. 0. 21 | 150. 3.E-5 0. 0. 22 | 160. 3.E-5 0. 0. 23 | 170. 3.E-5 0. 0. 24 | 180. 3.E-5 0. 0. 25 | 190. 3.E-5 0. 0. 26 | 200. 3.E-5 0. 0. 27 | 210. 3.E-5 0. 0. 28 | 220. 3.E-5 0. 0. 29 | 230. 3.E-5 0. 0. 30 | 240. 3.E-5 0. 0. 31 | 250. 3.E-5 0. 0. 32 | 260. 3.E-5 0. 0. 33 | 270. 3.E-5 0. 0. 34 | 280. 3.E-5 0. 0. 35 | 290. 3.E-5 0. 0. 36 | 300. 3.E-5 0. 0. 37 | 310. 3.E-5 0. 0. 38 | 320. 3.E-5 0. 0. 39 | 330. 3.E-5 0. 0. 40 | 340. 3.E-5 0. 0. 41 | 350. 3.E-5 0. 0. 42 | 360. 3.E-5 0. 0. 43 | -------------------------------------------------------------------------------- /Raysum_fwd_v1.2/Sample/sample.mod: -------------------------------------------------------------------------------- 1 | # Sample model file. Lines starting with '#' are ignored. 2 | # Layers are listed from top to bottom. The bottom layer is 3 | # assumed to be a half-space. Interface strike and dip apply 4 | # to the upper interface of the layer. 5 | # 6 | # Format: 7 | # Column Contents 8 | # 1 Thickness (m) 9 | # 2 Density (kg/m^3) 10 | # 3 Average P-wave velocity (m/s) 11 | # 4 Average S-wave velocity (m/s) 12 | # 5 Isotropic-layer flag (1:isotropic, 0:anisotropic) 13 | # 6 %P anisotropy 14 | # 7 %S anisotropy (if 5 and 6 are zero, isotropic layer) 15 | # 8 Trend of fast axis (degrees) 16 | # 9 Plunge of fast axis (degrees) 17 | # 10 Interface strike (degrees) 18 | # 11 Interface dip (degrees) 19 | # Note that the percentages of anisotropy are peak-to-peak 20 | # (the expressions used are from Farra et al. (1991)) 21 | # 22 | # Layers: crust, anisotropic wedge, isotropic half-space. 23 | #thick rho alph beta iso %P %S tr pl st di 24 | 40000 2600 6540 3710 1 0 0 0 0 0 0 25 | 100000 3500 7700 4200 0 5.5 5.5 0 10 0 0 26 | 0 3500 8100 4500 1 0 0 0 0 0 10 27 | -------------------------------------------------------------------------------- /Raysum_fwd_v1.2/Sample/sample.ph: -------------------------------------------------------------------------------- 1 | # phase nseg layer,phase,layer,phase,... 2 | 1 3 3 2 2 2 1 2 3 | 2 3 3 2 2 2 1 3 4 | 3 3 3 2 2 2 1 1 5 | 4 3 3 2 2 3 1 2 6 | 5 3 3 2 2 3 1 3 7 | 6 3 3 2 2 3 1 1 8 | 7 3 3 2 2 1 1 1 9 | 8 5 3 2 2 2 1 2 1 5 1 2 10 | 9 5 3 2 2 2 1 2 1 5 1 3 11 | 10 5 3 2 2 2 1 2 1 6 1 2 12 | 11 5 3 2 2 2 1 2 1 6 1 3 13 | 12 5 3 2 2 2 1 3 1 5 1 2 14 | 13 5 3 2 2 2 1 3 1 5 1 3 15 | 14 5 3 2 2 2 1 3 1 6 1 2 16 | 15 5 3 2 2 2 1 3 1 6 1 3 17 | 16 5 3 2 2 3 1 2 1 5 1 2 18 | 17 5 3 2 2 3 1 2 1 5 1 3 19 | 18 5 3 2 2 3 1 2 1 6 1 2 20 | 19 5 3 2 2 3 1 2 1 6 1 3 21 | 20 5 3 2 2 3 1 3 1 5 1 2 22 | 21 5 3 2 2 3 1 3 1 5 1 3 23 | 22 5 3 2 2 3 1 3 1 6 1 2 24 | 23 5 3 2 2 3 1 3 1 6 1 3 25 | 24 5 3 2 2 2 1 2 1 5 1 1 26 | 25 5 3 2 2 2 1 2 1 6 1 1 27 | 26 5 3 2 2 2 1 3 1 5 1 1 28 | 27 5 3 2 2 2 1 3 1 6 1 1 29 | 28 5 3 2 2 3 1 2 1 5 1 1 30 | 29 5 3 2 2 3 1 2 1 6 1 1 31 | 30 5 3 2 2 3 1 3 1 5 1 1 32 | 31 5 3 2 2 3 1 3 1 6 1 1 33 | 32 5 3 2 2 2 1 2 1 1 1 1 34 | 33 5 3 2 2 2 1 3 1 1 1 1 35 | 34 5 3 2 2 3 1 2 1 1 1 1 36 | 35 5 3 2 2 3 1 3 1 1 1 1 37 | -------------------------------------------------------------------------------- /Raysum_fwd_v1.2/bin/seis-misfit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/Raysum_fwd_v1.2/bin/seis-misfit -------------------------------------------------------------------------------- /Raysum_fwd_v1.2/bin/seis-spread: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/Raysum_fwd_v1.2/bin/seis-spread -------------------------------------------------------------------------------- /Raysum_fwd_v1.2/src/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for raysum programs. 2 | # Using f77 on Sun -- use -C -g when debugging, and -fast otherwise 3 | # -autopar -parallel makes parallel code 4 | FC = gfortran 5 | #FFLAGS = -C -g -ftrap=%all,no%inexact 6 | #LDFLAGS = -C -g 7 | #FFLAGS = -fast 8 | #LDFLAGS = -fast 9 | # Using g77 on Sun or FreeBSD: (add -g for debugging) 10 | # use -O -funroll-loops -m486 11 | #F77 = g77 12 | #FFLAGS = -Wall -O -funroll-loops -m486 13 | #LDFLAGS = 14 | # Using f2c on FreeBSD 15 | #F77 = f77 16 | #FFLAGS = -O -funroll-loops 17 | #LDFLAGS = 18 | 19 | EIG = eigenvec.o matrixops.o eispack-cg.o 20 | RAYSUM = raysum.o $(EIG) 21 | IO = readwrite.o 22 | TRACE = phaselist.o buildmodel.o trace.o 23 | MISFIT = misfit.o 24 | 25 | # implicit rule for Fortran compilation. Changing the parameter header 26 | # file recompiles everything. 27 | .f.o: params.h 28 | $(FC) $(FFLAGS) -c $< 29 | 30 | default: all 31 | 32 | all: seis-spread seis-misfit 33 | 34 | seis-spread: seis-spread.o $(RAYSUM) $(IO) $(TRACE) 35 | $(FC) $(LDFLAGS) -o seis-spread seis-spread.o $(RAYSUM) \ 36 | $(IO) $(TRACE) 37 | cp seis-spread ../bin 38 | 39 | seis-misfit: seis-misfit.o $(MISFIT) $(IO) 40 | $(FC) $(LDFLAGS) -o seis-misfit seis-misfit.o $(MISFIT) $(IO) 41 | cp seis-misfit ../bin 42 | clean: 43 | /bin/rm -f *.o *.core seis-spread seis-misfit 44 | 45 | -------------------------------------------------------------------------------- /Raysum_fwd_v1.2/src/buildmodel.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/Raysum_fwd_v1.2/src/buildmodel.o -------------------------------------------------------------------------------- /Raysum_fwd_v1.2/src/eigenvec.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/Raysum_fwd_v1.2/src/eigenvec.o -------------------------------------------------------------------------------- /Raysum_fwd_v1.2/src/eispack-cg.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/Raysum_fwd_v1.2/src/eispack-cg.o -------------------------------------------------------------------------------- /Raysum_fwd_v1.2/src/matrixops.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/Raysum_fwd_v1.2/src/matrixops.o -------------------------------------------------------------------------------- /Raysum_fwd_v1.2/src/misfit.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/Raysum_fwd_v1.2/src/misfit.o -------------------------------------------------------------------------------- /Raysum_fwd_v1.2/src/params.h: -------------------------------------------------------------------------------- 1 | c####& 2 | c namelen is the length of filenames (in characters) 3 | c maxlay is the maximum number of layers allowed in the model 4 | c maxtr is the maximum number of traces allowed 5 | c maxseg: maximum # of segments (should be 3*maxlay for 1st-order 6 | c multiples 7 | c maxph: maximum number of phases per trace 8 | c buffsize is the max. line length assumed for reading files. 9 | integer namelen, maxlay, maxtr, maxseg, maxph, buffsize 10 | parameter (namelen=40,maxlay=15,maxtr=200,maxseg=45) 11 | parameter (maxph=40000,buffsize=120) 12 | 13 | c Units for reading and writing 14 | integer iounit1,iounit2 15 | parameter (iounit1=1,iounit2=2) 16 | 17 | c pi: duh. ztol: tolerance considered to be equiv. to zero. 18 | real pi,ztol 19 | parameter (pi=3.141592653589793,ztol=1.e-7) 20 | 21 | c nsamp is the number of samples per trace. 22 | integer maxsamp 23 | parameter (maxsamp=2000) 24 | -------------------------------------------------------------------------------- /Raysum_fwd_v1.2/src/phaselist.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/Raysum_fwd_v1.2/src/phaselist.o -------------------------------------------------------------------------------- /Raysum_fwd_v1.2/src/raysum.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/Raysum_fwd_v1.2/src/raysum.o -------------------------------------------------------------------------------- /Raysum_fwd_v1.2/src/readwrite.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/Raysum_fwd_v1.2/src/readwrite.o -------------------------------------------------------------------------------- /Raysum_fwd_v1.2/src/seis-misfit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/Raysum_fwd_v1.2/src/seis-misfit -------------------------------------------------------------------------------- /Raysum_fwd_v1.2/src/seis-misfit.f: -------------------------------------------------------------------------------- 1 | c####& 2 | 3 | program seis_misfit 4 | 5 | implicit none 6 | include 'params.h' 7 | 8 | integer nargs,mtype 9 | character cur_arg*(namelen),fname_1*(namelen),fname_2*(namelen) 10 | character weight_name*(namelen) 11 | real m1,m2,m3 12 | 13 | integer nsamp1,ntr1,nsamp2,ntr2,itr 14 | real data_1(3,maxsamp,maxtr),data_2(3,maxsamp,maxtr) 15 | real dt,align,shift,trweight(maxtr) 16 | 17 | real getmisfit 18 | integer iargc 19 | 20 | nargs=iargc() 21 | if (nargs .lt. 6) then 22 | write (*,*) 'Usage: seis-misfit traces_1 traces_1 type', 23 | & ' w1 w2 w3 [trace_weights]' 24 | stop 25 | end if 26 | 27 | call getarg(1,fname_1) 28 | call readtraces(fname_1,data_1,ntr1,nsamp1,dt,align,shift) 29 | call getarg(2,fname_2) 30 | call readtraces(fname_2,data_2,ntr2,nsamp2,dt,align,shift) 31 | if ((ntr1 .ne. ntr2) .or. (nsamp1 .ne. nsamp2)) then 32 | write (*,*) 'Mismatch in number of traces or samples!' 33 | stop 34 | end if 35 | 36 | call getarg(3,cur_arg) 37 | read (cur_arg,*) mtype 38 | call getarg(4,cur_arg) 39 | read (cur_arg,*) m1 40 | call getarg(5,cur_arg) 41 | read (cur_arg,*) m2 42 | call getarg(6,cur_arg) 43 | read (cur_arg,*) m3 44 | 45 | if (nargs .ge. 7) then 46 | call getarg(7,weight_name) 47 | call readweight(weight_name,trweight,ntr1) 48 | else 49 | do itr=1,ntr1 50 | trweight(itr) = 1. 51 | end do 52 | end if 53 | 54 | write (*,*) m1,m2,m3 55 | 56 | write (*,*) 'Misfit type ',mtype,' = ', 57 | & getmisfit(data_1,data_2,trweight,ntr1,nsamp1,m1,m2,m3,mtype) 58 | 59 | end 60 | 61 | 62 | -------------------------------------------------------------------------------- /Raysum_fwd_v1.2/src/seis-misfit.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/Raysum_fwd_v1.2/src/seis-misfit.o -------------------------------------------------------------------------------- /Raysum_fwd_v1.2/src/seis-spread: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/Raysum_fwd_v1.2/src/seis-spread -------------------------------------------------------------------------------- /Raysum_fwd_v1.2/src/seis-spread.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/Raysum_fwd_v1.2/src/seis-spread.o -------------------------------------------------------------------------------- /Raysum_fwd_v1.2/src/test.f: -------------------------------------------------------------------------------- 1 | c####& 2 | 3 | program test 4 | 5 | implicit none 6 | include 'params.h' 7 | 8 | character filename*(namelen) 9 | integer phaselist(maxseg,2,maxph),nseg(maxph),numph 10 | 11 | filename='../Forward/Sample/sample.ph' 12 | call readphases(filename,phaselist,nseg,numph) 13 | call writephases(6,phaselist,nseg,numph) 14 | 15 | end 16 | -------------------------------------------------------------------------------- /Raysum_fwd_v1.2/src/trace.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/Raysum_fwd_v1.2/src/trace.o -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/AZRdisp_0_V15A_-112.0_36.0.txt: -------------------------------------------------------------------------------- 1 | amp 10 0.023022 0.0243075 0.001151 phi 10 23.0377 25.7058 1.43551 2 | amp 12 0.024307 0.0248573 0.001265 phi 12 23.9331 25.7403 1.49942 3 | amp 15 0.02734 0.0235637 0.001486 phi 15 24.1166 25.8979 1.55725 4 | amp 17 0.021016 0.0220283 0.001375 phi 17 25.422 26.1239 1.87343 5 | amp 20 0.017355 0.0194107 0.001139 phi 20 28.2096 26.7339 1.84764 6 | amp 22 0.016931 0.0176742 0.001213 phi 22 30.1918 27.3531 2.00521 7 | amp 25 0.015302 0.0152996 0.001704 phi 25 31.2429 28.5839 3.13219 8 | amp 30 0.011399 0.0122381 0.002167 phi 30 27.9416 31.1444 5.35187 9 | amp 36 0.008884 0.00987003 0.002228 phi 36 29.5969 34.3678 6.98716 10 | amp 40 0.008544 0.00887804 0.002559 phi 40 37.2754 36.327 8.18191 11 | amp 45 0.006175 0.00802648 0.003169 phi 45 43.3763 38.4965 14.2224 12 | amp 50 0.006797 0.00741069 0.004036 phi 50 78.5602 40.4017 17.0503 13 | -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/LdispB_0_V15A_-112.0_36.0.txt: -------------------------------------------------------------------------------- 1 | 10 ph 3.59661 3.59764 0.004218 gp 0 0 0 2 | 15 ph 3.71991 3.70126 0.004447 gp 0 0 0 3 | 20 ph 3.80524 3.80568 0.019584 gp 0 0 0 4 | 25 ph 3.8933 3.90797 0.015983 gp 0 0 0 5 | 30 ph 3.99348 4.00149 0.01755 gp 0 0 0 6 | 35 ph 4.06425 4.08237 0.018481 gp 0 0 0 7 | 40 ph 4.1466 4.15033 0.020007 gp 0 0 0 8 | 45 ph 4.20003 4.20729 0.018259 gp 0 0 0 9 | -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/LdispM_0_V15A_-112.0_36.0.txt: -------------------------------------------------------------------------------- 1 | 10 ph 3.59661 3.60258 0.004218 gp 0 0 0 2 | 15 ph 3.71991 3.70628 0.004447 gp 0 0 0 3 | 20 ph 3.80524 3.80811 0.019584 gp 0 0 0 4 | 25 ph 3.8933 3.90537 0.015983 gp 0 0 0 5 | 30 ph 3.99348 3.993 0.01755 gp 0 0 0 6 | 35 ph 4.06425 4.06842 0.018481 gp 0 0 0 7 | 40 ph 4.1466 4.132 0.020007 gp 0 0 0 8 | 45 ph 4.20003 4.18567 0.018259 gp 0 0 0 9 | -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/Ldisp_0_V15A_-112.0_36.0.txt: -------------------------------------------------------------------------------- 1 | 10 ph 3.59661 3.60578 0.004218 gp 0 0 0 2 | 15 ph 3.71991 3.70875 0.004447 gp 0 0 0 3 | 20 ph 3.80524 3.81106 0.019584 gp 0 0 0 4 | 25 ph 3.8933 3.90935 0.015983 gp 0 0 0 5 | 30 ph 3.99348 3.99772 0.01755 gp 0 0 0 6 | 35 ph 4.06425 4.07332 0.018481 gp 0 0 0 7 | 40 ph 4.1466 4.13654 0.020007 gp 0 0 0 8 | 45 ph 4.20003 4.18955 0.018259 gp 0 0 0 9 | -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/LkernelLp1ani_V15A_-112.0_36.0.txt: -------------------------------------------------------------------------------- 1 | 10.000000 0 0 0.000436989 0.0305276 0 0 0 0 0 0.000964536 0.0156663 0 0 0 0 0 0.000676585 0.00500412 0 0 0 0 0 0.000253793 0.00100763 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 | 15.000000 0 0 0.000334491 0.024803 0 0 0 0 0 0.00100366 0.0162006 0 0 0 0 0 0.00109585 0.0076046 0 0 0 0 0 0.000673021 0.00258554 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 | 20.000000 0 0 0.00026568 0.0206763 0 0 0 0 0 0.000936445 0.0151854 0 0 0 0 0 0.00126092 0.00873426 0 0 0 0 0 0.000981176 0.00399188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 | 25.000000 0 0 0.000205247 0.017132 0 0 0 0 0 0.000795207 0.0135301 0 0 0 0 0 0.00120673 0.00887236 0 0 0 0 0 0.00107558 0.00493275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 | 30.000000 0 0 0.0001518 0.0140979 0 0 0 0 0 0.000629835 0.0117028 0 0 0 0 0 0.00103272 0.00841514 0 0 0 0 0 0.0010013 0.00535464 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 | 35.000000 0 0 0.000114665 0.0116643 0 0 0 0 0 0.00048655 0.0100392 0 0 0 0 0 0.000836029 0.00770883 0 0 0 0 0 0.000860768 0.00540411 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 | 40.000000 0 0 8.66601e-05 0.00979953 0 0 0 0 0 0.000373641 0.0086609 0 0 0 0 0 0.000664997 0.0069884 0 0 0 0 0 0.000715143 0.00524931 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 | 45.000000 0 0 6.52558e-05 0.00840632 0 0 0 0 0 0.000289583 0.00757861 0 0 0 0 0 0.000529618 0.00634173 0 0 0 0 0 0.000588582 0.00501136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 | -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/RdispB_0_V15A_-112.0_36.0.txt: -------------------------------------------------------------------------------- 1 | 10 ph 3.22642 3.21843 0.003152 gp 0 0 0 2 | 12 ph 3.26583 3.25919 0.003515 gp 0 0 0 3 | 15 ph 3.3212 3.32097 0.004088 gp 0 0 0 4 | 17 ph 3.36602 3.36449 0.003996 gp 0 0 0 5 | 20 ph 3.43388 3.4319 0.003393 gp 0 0 0 6 | 22 ph 3.47976 3.47593 0.003681 gp 0 0 0 7 | 25 ph 3.54355 3.53632 0.005327 gp 0 0 0 8 | 30 ph 3.61537 3.61469 0.006954 gp 0 0 0 9 | 36 ph 3.67139 3.67513 0.007146 gp 0 0 0 10 | 40 ph 3.69862 3.70223 0.008174 gp 0 0 0 11 | 45 ph 3.71759 3.72809 0.008855 gp 0 0 0 12 | 50 ph 3.72865 3.7494 0.011202 gp 0 0 0 13 | -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/RdispM_0_V15A_-112.0_36.0.txt: -------------------------------------------------------------------------------- 1 | 10 ph 3.22642 3.22113 0.003152 gp 0 0 0 2 | 12 ph 3.26583 3.26341 0.003515 gp 0 0 0 3 | 15 ph 3.3212 3.32603 0.004088 gp 0 0 0 4 | 17 ph 3.36602 3.3692 0.003996 gp 0 0 0 5 | 20 ph 3.43388 3.43531 0.003393 gp 0 0 0 6 | 22 ph 3.47976 3.47829 0.003681 gp 0 0 0 7 | 25 ph 3.54355 3.5373 0.005327 gp 0 0 0 8 | 30 ph 3.61537 3.61443 0.006954 gp 0 0 0 9 | 36 ph 3.67139 3.67458 0.007146 gp 0 0 0 10 | 40 ph 3.69862 3.70184 0.008174 gp 0 0 0 11 | 45 ph 3.71759 3.72797 0.008855 gp 0 0 0 12 | 50 ph 3.72865 3.74947 0.011202 gp 0 0 0 13 | -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/Rdisp_0_V15A_-112.0_36.0.txt: -------------------------------------------------------------------------------- 1 | 10 ph 3.22642 3.22198 0.003152 gp 0 0 0 2 | 12 ph 3.26583 3.26368 0.003515 gp 0 0 0 3 | 15 ph 3.3212 3.32589 0.004088 gp 0 0 0 4 | 17 ph 3.36602 3.36898 0.003996 gp 0 0 0 5 | 20 ph 3.43388 3.4351 0.003393 gp 0 0 0 6 | 22 ph 3.47976 3.47815 0.003681 gp 0 0 0 7 | 25 ph 3.54355 3.53729 0.005327 gp 0 0 0 8 | 30 ph 3.61537 3.61458 0.006954 gp 0 0 0 9 | 36 ph 3.67139 3.6748 0.007146 gp 0 0 0 10 | 40 ph 3.69862 3.702 0.008174 gp 0 0 0 11 | 45 ph 3.71759 3.72807 0.008855 gp 0 0 0 12 | 50 ph 3.72865 3.74957 0.011202 gp 0 0 0 13 | -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/bin_avg/para_-112.0_36.0.txt: -------------------------------------------------------------------------------- 1 | 0 1.5780 0.0000 2 | 1 2.2780 0.0000 3 | 2 3.3369 0.0405 4 | 3 3.4400 0.0572 5 | 4 5.8396 0.0708 6 | 5 5.9289 0.0704 7 | 6 0.9600 0.0208 8 | 7 41.0018 1.9204 9 | 8 24.3268 1.9198 10 | 9 3.5465 0.0462 11 | 10 3.7453 0.0929 12 | 11 6.2063 0.0808 13 | 12 6.3774 0.0987 14 | 13 0.9322 0.0284 15 | 14 41.0018 1.9204 16 | 15 24.3268 1.9198 17 | 16 3.6477 0.0366 18 | 17 3.8159 0.0990 19 | 18 6.3836 0.0641 20 | 19 6.5285 0.0944 21 | 20 0.9435 0.0312 22 | 21 41.0018 1.9204 23 | 22 24.3268 1.9198 24 | 23 3.7789 0.0495 25 | 24 3.9482 0.1098 26 | 25 6.6131 0.0866 27 | 26 6.7588 0.1050 28 | 27 0.9454 0.0342 29 | 28 41.0018 1.9204 30 | 29 24.3268 1.9198 31 | 30 4.2360 0.0000 32 | 31 4.4829 0.0569 33 | 32 7.4130 0.0000 34 | 33 7.4130 0.0000 35 | 34 1.0000 0.0000 36 | 35 -0.0132 0.0076 37 | 36 0.0006 0.0076 38 | 37 4.1860 0.0000 39 | 38 4.4300 0.0562 40 | 39 7.3260 0.0000 41 | 40 7.3260 0.0000 42 | 41 1.0000 0.0000 43 | 42 -0.0132 0.0076 44 | 43 0.0006 0.0076 45 | 44 4.1830 0.0000 46 | 45 4.4269 0.0562 47 | 46 7.3200 0.0000 48 | 47 7.3200 0.0000 49 | 48 1.0000 0.0000 50 | 49 -0.0132 0.0076 51 | 50 0.0006 0.0076 52 | 51 4.2790 0.0000 53 | 52 4.5284 0.0574 54 | 53 7.4880 0.0000 55 | 54 7.4880 0.0000 56 | 55 1.0000 0.0000 57 | 56 -0.0132 0.0076 58 | 57 0.0006 0.0076 59 | 58 4.4900 0.0000 60 | 59 4.7517 0.0603 61 | 60 7.8580 0.0000 62 | 61 7.8580 0.0000 63 | 62 1.0000 0.0000 64 | 63 -0.0132 0.0076 65 | 64 0.0006 0.0076 66 | -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/bin_avg/para_-112.0_36.0.txt_effTI: -------------------------------------------------------------------------------- 1 | 0 1.5780 0.0000 2 | 1 2.2780 0.0000 3 | 2 3.3594 0.0392 4 | 3 3.3961 0.0398 5 | 4 5.8782 0.0686 6 | 5 5.9098 0.0664 7 | 6 0.9850 0.0084 8 | 7 0.0000 0.0000 9 | 8 0.0000 0.0000 10 | 9 3.5903 0.0448 11 | 10 3.6615 0.0640 12 | 11 6.2805 0.0782 13 | 12 6.3411 0.0906 14 | 13 0.9738 0.0119 15 | 14 0.0000 0.0000 16 | 15 0.0000 0.0000 17 | 16 3.6847 0.0372 18 | 17 3.7450 0.0631 19 | 18 6.4463 0.0645 20 | 19 6.4977 0.0823 21 | 20 0.9783 0.0130 22 | 21 0.0000 0.0000 23 | 22 0.0000 0.0000 24 | 23 3.8164 0.0465 25 | 24 3.8765 0.0685 26 | 25 6.6766 0.0811 27 | 26 6.7278 0.0928 28 | 27 0.9791 0.0144 29 | 28 0.0000 0.0000 30 | 29 0.0000 0.0000 31 | 30 4.2360 0.0000 32 | 31 4.4829 0.0569 33 | 32 7.4130 0.0000 34 | 33 7.4130 0.0000 35 | 34 1.0000 0.0000 36 | 35 -0.0132 0.0076 37 | 36 0.0006 0.0076 38 | 37 4.1860 0.0000 39 | 38 4.4300 0.0562 40 | 39 7.3260 0.0000 41 | 40 7.3260 0.0000 42 | 41 1.0000 0.0000 43 | 42 -0.0132 0.0076 44 | 43 0.0006 0.0076 45 | 44 4.1830 0.0000 46 | 45 4.4269 0.0562 47 | 46 7.3200 0.0000 48 | 47 7.3200 0.0000 49 | 48 1.0000 0.0000 50 | 49 -0.0132 0.0076 51 | 50 0.0006 0.0076 52 | 51 4.2790 0.0000 53 | 52 4.5284 0.0574 54 | 53 7.4880 0.0000 55 | 54 7.4880 0.0000 56 | 55 1.0000 0.0000 57 | 56 -0.0132 0.0076 58 | 57 0.0006 0.0076 59 | 58 4.4900 0.0000 60 | 59 4.7517 0.0603 61 | 60 7.8580 0.0000 62 | 61 7.8580 0.0000 63 | 62 1.0000 0.0000 64 | 63 -0.0132 0.0076 65 | 64 0.0006 0.0076 66 | -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/binmod/ani_V15A_-112.0_36.0.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_1/binmod/ani_V15A_-112.0_36.0.bin -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/binmod/ani_V15A_-112.0_36.0.bin_effTI: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_1/binmod/ani_V15A_-112.0_36.0.bin_effTI -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/initmod/ani_V15A_-112.0_36.0.mod: -------------------------------------------------------------------------------- 1 | 0 1 7 1 0.17 2 1.578 1.578 3.156 3.156 1 0 0 2.278 2.278 4.556 4.556 1 0 0 0.5 0.5 2 2 | 1 1 7 4 41.953 4 3.33689 3.44 5.83956 5.92909 0.959111 41.0018 24.3268 3.54648 3.74532 6.20633 6.37791 0.93045 41.0018 24.3268 3.64774 3.81595 6.38355 6.52905 0.941349 41.0018 24.3268 3.77894 3.94817 6.61315 6.75958 0.942846 41.0018 24.3268 0.25 0.25 0.25 0.25 1.75 3 | 2 1 7 3 157.878 5 4.236 4.48294 7.413 7.413 1 -0.0132446 0.000629 4.186 4.43003 7.326 7.326 1 -0.0132446 0.000629 4.183 4.42685 7.32 7.32 1 -0.0132446 0.000629 4.279 4.52845 7.488 7.488 1 -0.0132446 0.000629 4.49 4.75175 7.858 7.858 1 -0.0132446 0.000629 0.2 0.2 0.2 0.2 0.2 1.75 4 | -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/initmod/ani_V15A_-112.0_36.0.mod_BestFit: -------------------------------------------------------------------------------- 1 | 0 1 7 1 0.17 2 1.578 1.578 3.156 3.156 1 0 0 2.278 2.278 4.556 4.556 1 0 0 0.5 0.5 2 2 | 1 1 7 4 41.953 4 3.34314 3.40033 5.8505 5.90032 0.976506 42.3229 25.6947 3.5285 3.81661 6.17487 6.42192 0.904774 42.3229 25.6947 3.61378 3.77199 6.32411 6.46104 0.943981 42.3229 25.6947 3.8498 3.861 6.73715 6.74694 0.995841 42.3229 25.6947 0.25 0.25 0.25 0.25 1.75 3 | 2 1 7 3 157.878 5 4.236 4.53432 7.413 7.413 1 -0.00468115 0.00374332 4.186 4.4808 7.326 7.326 1 -0.00468115 0.00374332 4.183 4.47759 7.32 7.32 1 -0.00468115 0.00374332 4.279 4.58035 7.488 7.488 1 -0.00468115 0.00374332 4.49 4.80621 7.858 7.858 1 -0.00468115 0.00374332 0.2 0.2 0.2 0.2 0.2 1.75 4 | -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/none: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_1/none -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/point.txt: -------------------------------------------------------------------------------- 1 | V15A -112.0 36.0 2 | -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/run_Mineos_bran.csh: -------------------------------------------------------------------------------- 1 | #!/bin/csh 2 | 3 | if ( $#argv != 5 )then 4 | echo "############# hey, problem in running Minos_bran!!!!!" 5 | echo $#argv 6 | exit 7 | endif 8 | 9 | set cmplst = ( R T S ) 10 | set jcmp = $argv[1] 11 | set moddir = $argv[2] 12 | set modnm = $argv[3] 13 | set w1 = $argv[4] #mHz, freq_min 14 | set w2 = $argv[5] #freq_max 15 | set cmp = ${cmplst[$jcmp]} 16 | 17 | time /home/jixi7887/progs/jy/Mineos/Mineos-Linux64-1_0_2/minos_bran << EOF 18 | $moddir/$modnm.txt 19 | ${modnm}_$cmp 20 | none 21 | 1.0e-10 1 22 | $jcmp 23 | 2 8000 $w1 $w2 0 0 24 | EOF 25 | 26 | -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread0.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread0.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread1.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread11.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread11.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread13.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread13.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread14.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread14.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread15.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread15.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread17.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread17.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread18.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread18.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread19.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread19.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread21.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread21.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread22.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread22.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread23.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread23.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread4.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread4.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread5.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread5.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread6.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread6.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread7.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread7.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread8.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_1/temp_LMisfit_id2_loop0_thread8.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/AZLdispB_0_V15A_-112.0_36.0.txt: -------------------------------------------------------------------------------- 1 | amp 10 0.009164 0.00428796 0.001683 phi 10 56.5744 68.5365 2.64289 2 | amp 15 0.00865 0.00437696 0.00153 phi 15 60.2335 68.5365 2.4961 3 | amp 20 0.012789 0.0042033 0.007202 phi 20 70.3884 68.5365 7.69174 4 | amp 25 0.011461 0.00386337 0.005847 phi 25 70.737 68.5365 7.84511 5 | -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/AZLdisp_0_V15A_-112.0_36.0.txt: -------------------------------------------------------------------------------- 1 | amp 10 0.009164 0.00584911 0.001683 phi 10 56.5744 68.1256 2.64289 2 | amp 15 0.00865 0.00569833 0.00153 phi 15 60.2335 68.1256 2.4961 3 | amp 20 0.012789 0.00537924 0.007202 phi 20 70.3884 68.1256 7.69174 4 | amp 25 0.011461 0.00490327 0.005847 phi 25 70.737 68.1256 7.84511 5 | -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/AZRdispB_0_V15A_-112.0_36.0.txt: -------------------------------------------------------------------------------- 1 | amp 10 0.023022 0.0253764 0.001151 phi 10 23.0377 23.5501 1.43551 2 | amp 12 0.024307 0.0252438 0.001265 phi 12 23.9331 23.5943 1.49942 3 | amp 15 0.02734 0.0232184 0.001486 phi 15 24.1166 23.802 1.55725 4 | amp 17 0.021016 0.0213375 0.001375 phi 17 25.422 24.1068 1.87343 5 | amp 20 0.017355 0.0181929 0.001139 phi 20 28.2096 24.9639 1.84764 6 | amp 22 0.016931 0.0160468 0.001213 phi 22 30.1918 25.8888 2.00521 7 | amp 25 0.015302 0.0130381 0.001704 phi 25 31.2429 27.9097 3.13219 8 | amp 30 0.011399 0.00928733 0.002167 phi 30 27.9416 32.8887 5.35187 9 | amp 36 0.008884 0.00694297 0.002228 phi 36 29.5969 40.0661 6.98716 10 | amp 40 0.008544 0.00623873 0.002559 phi 40 37.2754 44.3493 8.18191 11 | amp 45 0.006175 0.00581748 0.003169 phi 45 43.3763 48.5967 14.2224 12 | amp 50 0.006797 0.00564244 0.004036 phi 50 78.5602 51.5956 17.0503 13 | -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/AZRdisp_0_V15A_-112.0_36.0.txt: -------------------------------------------------------------------------------- 1 | amp 10 0.023022 0.0243926 0.001151 phi 10 23.0377 23.1479 1.43551 2 | amp 12 0.024307 0.0236867 0.001265 phi 12 23.9331 23.2223 1.49942 3 | amp 15 0.02734 0.0224194 0.001486 phi 15 24.1166 23.5569 1.55725 4 | amp 17 0.021016 0.0213304 0.001375 phi 17 25.422 24.0206 1.87343 5 | amp 20 0.017355 0.0191947 0.001139 phi 20 28.2096 25.2488 1.84764 6 | amp 22 0.016931 0.0174959 0.001213 phi 22 30.1918 26.5139 2.00521 7 | amp 25 0.015302 0.0148703 0.001704 phi 25 31.2429 29.1614 3.13219 8 | amp 30 0.011399 0.0114374 0.002167 phi 30 27.9416 35.1797 5.35187 9 | amp 36 0.008884 0.00944758 0.002228 phi 36 29.5969 42.6075 6.98716 10 | amp 40 0.008544 0.00895094 0.002559 phi 40 37.2754 46.4113 8.18191 11 | amp 45 0.006175 0.0087376 0.003169 phi 45 43.3763 49.7595 14.2224 12 | amp 50 0.006797 0.00870656 0.004036 phi 50 78.5602 51.9044 17.0503 13 | -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/LdispB_0_V15A_-112.0_36.0.txt: -------------------------------------------------------------------------------- 1 | 10 ph 3.59661 3.60563 0.004218 gp 0 0 0 2 | 15 ph 3.71991 3.70513 0.004447 gp 0 0 0 3 | 20 ph 3.80524 3.80719 0.019584 gp 0 0 0 4 | 25 ph 3.8933 3.90602 0.015983 gp 0 0 0 5 | 30 ph 3.99348 3.995 0.01755 gp 0 0 0 6 | 35 ph 4.06425 4.07108 0.018481 gp 0 0 0 7 | 40 ph 4.1466 4.13465 0.020007 gp 0 0 0 8 | 45 ph 4.20003 4.18789 0.018259 gp 0 0 0 9 | 50 ph 4.2379 4.23324 0.01888 gp 0 0 0 10 | -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/LdispM_0_V15A_-112.0_36.0.txt: -------------------------------------------------------------------------------- 1 | 10 ph 3.59661 3.6057 0.004218 gp 0 0 0 2 | 15 ph 3.71991 3.70416 0.004447 gp 0 0 0 3 | 20 ph 3.80524 3.80492 0.019584 gp 0 0 0 4 | 25 ph 3.8933 3.90279 0.015983 gp 0 0 0 5 | 30 ph 3.99348 3.99175 0.01755 gp 0 0 0 6 | 35 ph 4.06425 4.0687 0.018481 gp 0 0 0 7 | 40 ph 4.1466 4.13373 0.020007 gp 0 0 0 8 | 45 ph 4.20003 4.18868 0.018259 gp 0 0 0 9 | 50 ph 4.2379 4.23566 0.01888 gp 0 0 0 10 | -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/Ldisp_0_V15A_-112.0_36.0.txt: -------------------------------------------------------------------------------- 1 | 10 ph 3.59661 3.60628 0.004218 gp 0 0 0 2 | 15 ph 3.71991 3.70535 0.004447 gp 0 0 0 3 | 20 ph 3.80524 3.80732 0.019584 gp 0 0 0 4 | 25 ph 3.8933 3.90672 0.015983 gp 0 0 0 5 | 30 ph 3.99348 3.99674 0.01755 gp 0 0 0 6 | 35 ph 4.06425 4.07404 0.018481 gp 0 0 0 7 | 40 ph 4.1466 4.13876 0.020007 gp 0 0 0 8 | 45 ph 4.20003 4.19299 0.018259 gp 0 0 0 9 | 50 ph 4.2379 4.23916 0.01888 gp 0 0 0 10 | -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/LkernelLp1ani_V15A_-112.0_36.0.txt: -------------------------------------------------------------------------------- 1 | 10.000000 0 0 0.000436989 0.0305276 0 0 0 0 0 0.000964533 0.0156663 0 0 0 0 0 0.000676587 0.00500413 0 0 0 0 0 0.000253793 0.00100763 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 | 15.000000 0 0 0.000334491 0.024803 0 0 0 0 0 0.00100366 0.0162006 0 0 0 0 0 0.00109585 0.0076046 0 0 0 0 0 0.00067302 0.00258554 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 | 20.000000 0 0 0.00026568 0.0206763 0 0 0 0 0 0.000936445 0.0151855 0 0 0 0 0 0.00126092 0.00873426 0 0 0 0 0 0.000981175 0.00399188 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 | 25.000000 0 0 0.000205247 0.017132 0 0 0 0 0 0.000795206 0.0135301 0 0 0 0 0 0.00120673 0.00887238 0 0 0 0 0 0.00107558 0.00493276 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 | 30.000000 0 0 0.0001518 0.0140979 0 0 0 0 0 0.000629833 0.0117028 0 0 0 0 0 0.00103272 0.00841516 0 0 0 0 0 0.00100131 0.00535465 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 | 35.000000 0 0 0.000114666 0.0116643 0 0 0 0 0 0.00048655 0.0100392 0 0 0 0 0 0.000836031 0.00770885 0 0 0 0 0 0.000860766 0.0054041 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 | 40.000000 0 0 8.666e-05 0.0097995 0 0 0 0 0 0.000373642 0.00866093 0 0 0 0 0 0.000664997 0.00698841 0 0 0 0 0 0.000715143 0.00524931 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 | 45.000000 0 0 6.52556e-05 0.0084063 0 0 0 0 0 0.000289583 0.00757861 0 0 0 0 0 0.000529617 0.00634175 0 0 0 0 0 0.000588582 0.00501139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 | 50.000000 0 0 5.23402e-05 0.00735499 0 0 0 0 0 0.000230893 0.00673329 0 0 0 0 0 0.000430389 0.00579287 0 0 0 0 0 0.000488819 0.00475496 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 | -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/RdispB_0_V15A_-112.0_36.0.txt: -------------------------------------------------------------------------------- 1 | 10 ph 3.22642 3.22359 0.003152 gp 0 0 0 2 | 12 ph 3.26583 3.26253 0.003515 gp 0 0 0 3 | 15 ph 3.3212 3.32544 0.004088 gp 0 0 0 4 | 17 ph 3.36602 3.37021 0.003996 gp 0 0 0 5 | 20 ph 3.43388 3.4387 0.003393 gp 0 0 0 6 | 22 ph 3.47976 3.48274 0.003681 gp 0 0 0 7 | 25 ph 3.54355 3.54232 0.005327 gp 0 0 0 8 | 30 ph 3.61537 3.61853 0.006954 gp 0 0 0 9 | 36 ph 3.67139 3.67684 0.007146 gp 0 0 0 10 | 40 ph 3.69862 3.70299 0.008174 gp 0 0 0 11 | 45 ph 3.71759 3.72803 0.008855 gp 0 0 0 12 | 50 ph 3.72865 3.74878 0.011202 gp 0 0 0 13 | -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/RdispM_0_V15A_-112.0_36.0.txt: -------------------------------------------------------------------------------- 1 | 10 ph 3.22642 3.24104 0.003152 gp 0 0 0 2 | 12 ph 3.26583 3.28154 0.003515 gp 0 0 0 3 | 15 ph 3.3212 3.34423 0.004088 gp 0 0 0 4 | 17 ph 3.36602 3.38818 0.003996 gp 0 0 0 5 | 20 ph 3.43388 3.45508 0.003393 gp 0 0 0 6 | 22 ph 3.47976 3.49794 0.003681 gp 0 0 0 7 | 25 ph 3.54355 3.55576 0.005327 gp 0 0 0 8 | 30 ph 3.61537 3.62953 0.006954 gp 0 0 0 9 | 36 ph 3.67139 3.68601 0.007146 gp 0 0 0 10 | 40 ph 3.69862 3.71147 0.008174 gp 0 0 0 11 | 45 ph 3.71759 3.736 0.008855 gp 0 0 0 12 | 50 ph 3.72865 3.75637 0.011202 gp 0 0 0 13 | -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/Rdisp_0_V15A_-112.0_36.0.txt: -------------------------------------------------------------------------------- 1 | 10 ph 3.22642 3.22388 0.003152 gp 0 0 0 2 | 12 ph 3.26583 3.26338 0.003515 gp 0 0 0 3 | 15 ph 3.3212 3.32468 0.004088 gp 0 0 0 4 | 17 ph 3.36602 3.36803 0.003996 gp 0 0 0 5 | 20 ph 3.43388 3.43486 0.003393 gp 0 0 0 6 | 22 ph 3.47976 3.47828 0.003681 gp 0 0 0 7 | 25 ph 3.54355 3.53755 0.005327 gp 0 0 0 8 | 30 ph 3.61537 3.61421 0.006954 gp 0 0 0 9 | 36 ph 3.67139 3.67335 0.007146 gp 0 0 0 10 | 40 ph 3.69862 3.69994 0.008174 gp 0 0 0 11 | 45 ph 3.71759 3.72536 0.008855 gp 0 0 0 12 | 50 ph 3.72865 3.74643 0.011202 gp 0 0 0 13 | -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/bin_avg/para_-112.0_36.0.txt: -------------------------------------------------------------------------------- 1 | 0 1.5780 0.0000 1.5780 2 | 1 2.2780 0.0000 2.2780 3 | 2 3.3137 0.0479 3.3741 4 | 3 3.4659 0.0487 3.4528 5 | 4 5.7989 0.0839 5.9047 6 | 5 5.9304 0.0631 5.9731 7 | 6 0.8114 0.0797 0.9032 8 | 7 33.6992 3.3900 32.2431 9 | 8 113.1256 2.1461 113.5365 10 | 9 3.5041 0.0464 3.4199 11 | 10 3.6606 0.0668 3.6530 12 | 11 6.1321 0.0812 5.9849 13 | 12 6.2673 0.0845 6.1854 14 | 13 0.8169 0.0714 0.7231 15 | 14 33.6992 3.3900 32.2431 16 | 15 113.1256 2.1461 113.5365 17 | 16 3.6227 0.0431 3.6802 18 | 17 3.7372 0.0649 3.7487 19 | 18 6.3398 0.0754 6.4403 20 | 19 6.4389 0.0796 6.4999 21 | 20 0.8697 0.0695 0.9225 22 | 21 33.6992 3.3900 32.2431 23 | 22 113.1256 2.1461 113.5365 24 | 23 3.8115 0.0584 3.8160 25 | 24 3.9381 0.0718 3.9403 26 | 25 6.6702 0.1022 6.6780 27 | 26 6.7797 0.0924 6.7859 28 | 27 0.8630 0.0830 0.8654 29 | 28 33.6992 3.3900 32.2431 30 | 29 113.1256 2.1461 113.5365 31 | 30 4.2360 0.0000 4.2360 32 | 31 4.4962 0.0446 4.4821 33 | 32 7.4130 0.0000 7.4130 34 | 33 7.4130 0.0000 7.4130 35 | 34 1.0000 0.0000 1.0000 36 | 35 -0.0029 0.0081 -0.0018 37 | 36 0.0145 0.0068 0.0094 38 | 37 4.1860 0.0000 4.1860 39 | 38 4.4431 0.0441 4.4292 40 | 39 7.3260 0.0000 7.3260 41 | 40 7.3260 0.0000 7.3260 42 | 41 1.0000 0.0000 1.0000 43 | 42 -0.0029 0.0081 -0.0018 44 | 43 0.0145 0.0068 0.0094 45 | 44 4.1830 0.0000 4.1830 46 | 45 4.4399 0.0440 4.4260 47 | 46 7.3200 0.0000 7.3200 48 | 47 7.3200 0.0000 7.3200 49 | 48 1.0000 0.0000 1.0000 50 | 49 -0.0029 0.0081 -0.0018 51 | 50 0.0145 0.0068 0.0094 52 | 51 4.2790 0.0000 4.2790 53 | 52 4.5418 0.0450 4.5276 54 | 53 7.4880 0.0000 7.4880 55 | 54 7.4880 0.0000 7.4880 56 | 55 1.0000 0.0000 1.0000 57 | 56 -0.0029 0.0081 -0.0018 58 | 57 0.0145 0.0068 0.0094 59 | 58 4.4900 0.0000 4.4900 60 | 59 4.7658 0.0473 4.7509 61 | 60 7.8580 0.0000 7.8580 62 | 61 7.8580 0.0000 7.8580 63 | 62 1.0000 0.0000 1.0000 64 | 63 -0.0029 0.0081 -0.0018 65 | 64 0.0145 0.0068 0.0094 66 | -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/binmod/ani_V15A_-112.0_36.0.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_2/binmod/ani_V15A_-112.0_36.0.bin -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/binmod/ani_V15A_-112.0_36.0.bin_effTI: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_2/binmod/ani_V15A_-112.0_36.0.bin_effTI -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/initmod/ani_V15A_-112.0_36.0.mod: -------------------------------------------------------------------------------- 1 | 0 1 7 1 0.17 2 1.578 1.578 3.156 3.156 1 0 0 2.278 2.278 4.556 4.556 1 0 0 0.5 0.5 2 2 | 1 1 7 4 41.953 4 3.31368 3.46591 5.79894 5.93063 0.811382 33.6992 113.126 3.50407 3.66056 6.13212 6.26753 0.816528 33.6992 113.126 3.62272 3.73719 6.33976 6.43913 0.869356 33.6992 113.126 3.81153 3.9381 6.67018 6.78001 0.862808 33.6992 113.126 0.25 0.25 0.25 0.25 1.75 3 | 2 1 7 3 157.878 5 4.236 4.49617 7.413 7.413 1 -0.00286003 0.0145115 4.186 4.4431 7.326 7.326 1 -0.00286003 0.0145115 4.183 4.43991 7.32 7.32 1 -0.00286003 0.0145115 4.279 4.54181 7.488 7.488 1 -0.00286003 0.0145115 4.49 4.76577 7.858 7.858 1 -0.00286003 0.0145115 0.2 0.2 0.2 0.2 0.2 1.75 4 | -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/initmod/ani_V15A_-112.0_36.0.mod_BestFit: -------------------------------------------------------------------------------- 1 | 0 1 7 1 0.17 2 1.578 1.578 3.156 3.156 1 0 0 2.278 2.278 4.556 4.556 1 0 0 0.5 0.5 2 2 | 1 1 7 4 41.953 4 3.37412 3.45275 5.90471 5.97311 0.903245 32.2431 113.536 3.41993 3.65305 5.98487 6.18544 0.723143 32.2431 113.536 3.68016 3.74866 6.44027 6.49994 0.922536 32.2431 113.536 3.81603 3.94034 6.67804 6.78594 0.865373 32.2431 113.536 0.25 0.25 0.25 0.25 1.75 3 | 2 1 7 3 157.878 5 4.236 4.48209 7.413 7.413 1 -0.00175747 0.00943742 4.186 4.42919 7.326 7.326 1 -0.00175747 0.00943742 4.183 4.42601 7.32 7.32 1 -0.00175747 0.00943742 4.279 4.52759 7.488 7.488 1 -0.00175747 0.00943742 4.49 4.75085 7.858 7.858 1 -0.00175747 0.00943742 0.2 0.2 0.2 0.2 0.2 1.75 4 | -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/none: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_2/none -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/point.txt: -------------------------------------------------------------------------------- 1 | V15A -112.0 36.0 2 | -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/run_Mineos_bran.csh: -------------------------------------------------------------------------------- 1 | #!/bin/csh 2 | 3 | if ( $#argv != 5 )then 4 | echo "############# hey, problem in running Minos_bran!!!!!" 5 | echo $#argv 6 | exit 7 | endif 8 | 9 | set cmplst = ( R T S ) 10 | set jcmp = $argv[1] 11 | set moddir = $argv[2] 12 | set modnm = $argv[3] 13 | set w1 = $argv[4] #mHz, freq_min 14 | set w2 = $argv[5] #freq_max 15 | set cmp = ${cmplst[$jcmp]} 16 | 17 | time /home/jixi7887/progs/jy/Mineos/Mineos-Linux64-1_0_2/minos_bran << EOF 18 | $moddir/$modnm.txt 19 | ${modnm}_$cmp 20 | none 21 | 1.0e-10 1 22 | $jcmp 23 | 2 8000 $w1 $w2 0 0 24 | EOF 25 | 26 | -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread0.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread0.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread1.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread10.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread10.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread11.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread11.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread12.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread12.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread13.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread13.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread14.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread14.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread15.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread15.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread16.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread16.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread18.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread18.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread2.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread20.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread20.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread22.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread22.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread23.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread23.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread4.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread4.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread5.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread5.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread6.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread6.txt -------------------------------------------------------------------------------- /V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread7.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/V15A_-112.0_36.0_2/temp_LMisfit_id2_loop0_thread7.txt -------------------------------------------------------------------------------- /V15A_ambiguity_ref.py: -------------------------------------------------------------------------------- 1 | import sys 2 | sys.path.append('/home/leon/code/pyfwrd') 3 | 4 | """ 5 | Conclusion: 6 | """ 7 | import eigen, tcps, aniproppy, ref 8 | import vmodel 9 | import numpy as np 10 | import matplotlib.pyplot as plt 11 | 12 | m1=vmodel.model1d() 13 | m1.flat=1 14 | vmodel.read(m1, infname='mod_group1.txt', indz=0, indvpv=3, indvsv=1, indrho=9, indvph=4, indvsh=2, indeta=6, inddip=7, indstrike=8) 15 | 16 | # 17 | # m1.add_perturb_layer(0, 20., 0, 3.494, False) 18 | # m1.add_perturb_layer(0, 20., 1, 3.702, False) 19 | # m1.add_perturb_layer(0, 20., 2, 5.94, False) 20 | # m1.add_perturb_layer(0, 20., 3, 6.28, False) 21 | # m1.add_perturb_layer(0, 20., 4, 0.82, False) 22 | # m1.add_perturb_layer(0, 20., 5, 2.73, False) 23 | # 24 | # m1.init_tilt() 25 | # 26 | # m1.dipArr[-1] = 34; m1.dipArr[-2] = 34 27 | # m1.strikeArr[-1] = 20; m1.strikeArr[-2] = 20 28 | # 29 | # m1.rot_dip_strike() 30 | # m1.decompose() 31 | # ########################################### 32 | # m2=vmodel.model1d() 33 | # m2.model_ak135_cps() 34 | # m2.flat=1 35 | # 36 | # m2.add_perturb_layer(0, 20., 0, 3.45, False) 37 | # m2.add_perturb_layer(0, 20., 1, 3.61, False) 38 | # m2.add_perturb_layer(0, 20., 2, 6.06, False) 39 | # m2.add_perturb_layer(0, 20., 3, 6.24, False) 40 | # m2.add_perturb_layer(0, 20., 4, 0.72, False) 41 | # m2.add_perturb_layer(0, 20., 5, 2.73, False) 42 | # 43 | # 44 | # m2.init_tilt() 45 | # m2.dipArr[-1] = 27; m2.dipArr[-2] = 27 46 | # m2.strikeArr[-1] = 110; m2.strikeArr[-2] = 110 47 | # 48 | # m2.rot_dip_strike() 49 | # m2.decompose() 50 | # 51 | # 52 | # 53 | # rsolver1 = ref.ref_solver(m1) 54 | # rsolver1.init_default_2() 55 | # for baz in np.arange(12)*30.: 56 | # rsolver1.solve_anirec(baz=baz) 57 | # rsolver1.plot_baz_rf(comp='T', showfig=False) 58 | # 59 | # 60 | # rsolver2 = ref.ref_solver(m2) 61 | # rsolver2.init_default_2() 62 | # for baz in np.arange(12)*30.: 63 | # rsolver2.solve_anirec(baz=baz) 64 | # rsolver2.plot_baz_rf(comp='T') 65 | 66 | 67 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /aniprop.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/aniprop.so -------------------------------------------------------------------------------- /aniprop_src/.aniprop_subroutines.f.swp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/aniprop_src/.aniprop_subroutines.f.swp -------------------------------------------------------------------------------- /aniprop_src/Makefile: -------------------------------------------------------------------------------- 1 | FC=gfortran 2 | CC=cc 3 | FFLAGS=-c -g -O5 4 | 5 | 6 | OBJS=main.o forward_solver.o \ 7 | aniprop_subroutines.o \ 8 | rf_aniso_subroutines.o \ 9 | util_subroutines.o \ 10 | refft.o \ 11 | eispack.o 12 | 13 | TARGETS=main 14 | 15 | all : $(TARGETS) 16 | 17 | main : $(OBJS) 18 | $(FC) -o main $(OBJS) 19 | 20 | main.o : main.f90 21 | $(FC) $(FFLAGS) main.f90 22 | 23 | forward_solver.o : forward_solver.f90 24 | $(FC) $(FFLAGS) forward_solver.f90 25 | 26 | aniprop_subroutines.o : aniprop_subroutines.f 27 | $(FC) $(FFLAGS) aniprop_subroutines.f 28 | 29 | rf_aniso_subroutines.o : rf_aniso_subroutines.f 30 | $(FC) $(FFLAGS) rf_aniso_subroutines.f 31 | 32 | util_subroutines.o : util_subroutines.f 33 | $(FC) $(FFLAGS) util_subroutines.f 34 | 35 | eispack.o : eispack.f 36 | $(FC) $(FFLAGS) eispack.f 37 | 38 | refft.o : refft.c 39 | $(CC) $(FFLAGS) refft.c 40 | 41 | clean : 42 | rm -f $(TARGETS) $(OBJS) 43 | -------------------------------------------------------------------------------- /aniprop_src/aniprop.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/aniprop_src/aniprop.so -------------------------------------------------------------------------------- /aniprop_src/compile_aniprop.sh: -------------------------------------------------------------------------------- 1 | #f2py -h aniprop.pyf -m aniprop forward_solver.f90 refft.c aniprop_subroutines.f eispack.f rf_aniso_subroutines.f util_subroutines.f 2 | f2py --f77flags="-ffixed-line-length-none -O3" --f90flags="-O3" -c aniprop.pyf forward_solver.f90 refft.c aniprop_subroutines.f eispack.f rf_aniso_subroutines.f util_subroutines.f --fcompiler=gfortran 3 | cp aniprop.so .. 4 | -------------------------------------------------------------------------------- /aniprop_src/cp_dev.sh: -------------------------------------------------------------------------------- 1 | cp aniprop_subroutines_dev.f aniprop_subroutines.f 2 | cp util_subroutines_dev.f util_subroutines.f 3 | cp aniprop_dev.pyf aniprop.pyf 4 | -------------------------------------------------------------------------------- /aniprop_src/cp_old.sh: -------------------------------------------------------------------------------- 1 | cp aniprop_subroutines_old.f aniprop_subroutines.f 2 | cp util_subroutines_old.f util_subroutines.f 3 | cp aniprop_old.pyf aniprop.pyf 4 | -------------------------------------------------------------------------------- /aniprop_src/test_aniprop.py: -------------------------------------------------------------------------------- 1 | import aniprop 2 | import numpy as np 3 | z = np.arange(10., dtype=np.float64)*10*1000.+ 10*1000. 4 | vp = np.array([5, 5, 5, 6, 6, 6, 7, 7, 7, 8])*1000. 5 | vs = vp/1.8 6 | vp2= 0.1 * np.zeros(10.) 7 | vs2=0.1 * np.zeros(10.) 8 | 9 | vp4 = 0.1 * np.zeros(10.) 10 | rho = vp/2.0 11 | theta=np.zeros(10.) 12 | phig=np.zeros(10.) 13 | nl = 9 14 | baz = 0 15 | nperiod=10 16 | pmin=10.; pmax=100. 17 | 18 | Rphase,Rgroup,Lphase,Lgroup,Period = aniprop.aniprop_interface(z,vp,vp2,vp4,vs,vs2,rho,theta,phig,nl,baz,nperiod, pmin, pmax) 19 | 20 | ntimes = 160 21 | Rf,Tf,T = aniprop.rf_aniso_interface(z,vp,vp2,vp4,vs,vs2,rho,theta,phig,nl,baz,ntimes) 22 | 23 | # Rphase,Rgroup,Lphase,Lgroup,Period = anisojp.aniprop_subroutines(z,vp,vp2,vp4,vs,vs2,rho,theta,phig,nl,baz,nperiod) 24 | 25 | # Rphase,Rgroup,Lphase,Lgroup,Period = anisojp.test(z,nl, 10) -------------------------------------------------------------------------------- /aniproppy.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/aniproppy.pyc -------------------------------------------------------------------------------- /azi_data_0.02/CL_dip_60.0_strike_0.0.txt: -------------------------------------------------------------------------------- 1 | 3.599800378187993921e+00 2 | 4.370047895657430459e+00 3 | 3.606826517218004735e+00 4 | 3.612630513091823037e+00 5 | 3.616494604362467058e+00 6 | 3.616574448181899104e+00 7 | 3.612782334592710143e+00 8 | 3.606874015003452172e+00 9 | 3.601637190944035005e+00 10 | 3.599561538274974826e+00 11 | 3.601637184061603048e+00 12 | 3.606874004518785704e+00 13 | 3.612782325476403322e+00 14 | 3.616574444706779357e+00 15 | 3.616494608085683016e+00 16 | 3.612630522180477755e+00 17 | 3.606826527397772431e+00 18 | 3.601781095070489602e+00 19 | 3.599800378187996142e+00 20 | 3.601781091778391897e+00 21 | 3.606826522307888805e+00 22 | 3.612630517636151506e+00 23 | 3.616494606224076147e+00 24 | 3.616574446444340563e+00 25 | 3.612782330034557177e+00 26 | 3.606874009761118938e+00 27 | 3.601637187502817472e+00 28 | 3.599561538274973493e+00 29 | 3.601637187502817472e+00 30 | 3.606874009761118938e+00 31 | 3.612782330034557177e+00 32 | 3.616574446444340563e+00 33 | 3.616494606224076147e+00 34 | 3.612630517636151506e+00 35 | 3.606826522307888805e+00 36 | 3.601781091778391897e+00 37 | -------------------------------------------------------------------------------- /azi_data_0.02/CL_dip_90.0_strike_0.0.txt: -------------------------------------------------------------------------------- 1 | 3.582085704582753216e+00 2 | 3.585923816542349929e+00 3 | 3.595641593506644806e+00 4 | 3.606717066884282286e+00 5 | 3.614056111176960240e+00 6 | 3.614380091510464688e+00 7 | 3.607729387055729653e+00 8 | 3.597381291938481329e+00 9 | 3.588264414358155907e+00 10 | 3.584664191368409636e+00 11 | 3.588264402408570586e+00 12 | 3.597381273634563392e+00 13 | 3.607729371041425104e+00 14 | 3.614380085504043993e+00 15 | 3.614056118318919708e+00 16 | 3.606717084147503360e+00 17 | 3.595641613028035088e+00 18 | 3.585923829279137109e+00 19 | 4.375719002261800661e+00 20 | 3.585923822910741521e+00 21 | 3.595641603267339281e+00 22 | 3.606717075515894599e+00 23 | 3.614056114747942861e+00 24 | 3.614380088507256783e+00 25 | 3.607729379048579155e+00 26 | 3.597381282786522583e+00 27 | 3.588264408383361470e+00 28 | 3.584664191368406083e+00 29 | 3.588264408383361470e+00 30 | 3.597381282786522583e+00 31 | 3.607729379048579155e+00 32 | 3.614380088507256783e+00 33 | 3.614056114747942861e+00 34 | 3.606717075515894599e+00 35 | 3.595641603267339281e+00 36 | 3.585923822910741521e+00 37 | -------------------------------------------------------------------------------- /azi_data_0.02/CR_dip_60.0_strike_0.0.txt: -------------------------------------------------------------------------------- 1 | 3.236456544703230520e+00 2 | 3.601781088486295079e+00 3 | 3.234047547767634700e+00 4 | 3.231427595230572436e+00 5 | 3.228438769107554673e+00 6 | 3.225595035652444320e+00 7 | 3.223303074073605057e+00 8 | 3.221753149039498165e+00 9 | 3.220916233840135146e+00 10 | 3.220660645248730525e+00 11 | 3.220916232932772960e+00 12 | 3.221753147007301532e+00 13 | 3.223303070730147102e+00 14 | 3.225595031119446787e+00 15 | 3.228438763920334242e+00 16 | 3.231427590227661018e+00 17 | 3.234047543843309391e+00 18 | 3.235827793547717324e+00 19 | 3.236456544703230964e+00 20 | 3.235827794620346864e+00 21 | 3.234047545805473600e+00 22 | 3.231427592729116949e+00 23 | 3.228438766513943570e+00 24 | 3.225595033385943111e+00 25 | 3.223303072401876967e+00 26 | 3.221753148023402957e+00 27 | 3.220916233386454053e+00 28 | 3.220660645248735410e+00 29 | 3.220916233386454053e+00 30 | 3.221753148023402957e+00 31 | 3.223303072401876967e+00 32 | 3.225595033385943111e+00 33 | 3.228438766513943570e+00 34 | 3.231427592729116949e+00 35 | 3.234047545805473600e+00 36 | 3.235827794620346864e+00 37 | -------------------------------------------------------------------------------- /azi_data_0.02/CR_dip_90.0_strike_0.0.txt: -------------------------------------------------------------------------------- 1 | 3.248444606444711447e+00 2 | 3.246956086065464486e+00 3 | 3.242839039391000711e+00 4 | 3.236993223424934563e+00 5 | 3.230549885634367069e+00 6 | 3.224559758437471668e+00 7 | 3.219766857836050988e+00 8 | 3.216496266753605227e+00 9 | 3.214693864873785056e+00 10 | 3.214133220670726931e+00 11 | 3.214693862894299148e+00 12 | 3.216496262417739338e+00 13 | 3.219766850828258864e+00 14 | 3.224559748951843829e+00 15 | 3.230549874608728445e+00 16 | 3.236993212462562663e+00 17 | 3.242839030458978034e+00 18 | 3.246956081019739315e+00 19 | 3.582085704582758989e+00 20 | 3.246956083542602123e+00 21 | 3.242839034924991370e+00 22 | 3.236993217943748391e+00 23 | 3.230549880121547535e+00 24 | 3.224559753694657083e+00 25 | 3.219766854332154260e+00 26 | 3.216496264584166376e+00 27 | 3.214693863884042990e+00 28 | 3.214133220670727376e+00 29 | 3.214693863884042990e+00 30 | 3.216496264592145327e+00 31 | 3.219766854332154260e+00 32 | 3.224559753694657083e+00 33 | 3.230549880121547535e+00 34 | 3.236993217943748391e+00 35 | 3.242839034924991370e+00 36 | 3.246956083542602123e+00 37 | -------------------------------------------------------------------------------- /azi_data_0.02_no4/CL_dip_60.0_strike_0.0.txt: -------------------------------------------------------------------------------- 1 | 3.623279013061437848e+00 2 | 3.623277588768295310e+00 3 | 3.623279934620864839e+00 4 | 3.623302926377080624e+00 5 | 3.623365302115717057e+00 6 | 3.623476177610322146e+00 7 | 3.623625336532878993e+00 8 | 3.623781309930766970e+00 9 | 3.623900619714193194e+00 10 | 3.623945393698102979e+00 11 | 3.623900619864581341e+00 12 | 3.623781310181794613e+00 13 | 3.623625336808521169e+00 14 | 3.623476177841500778e+00 15 | 3.623365302265355581e+00 16 | 3.623302926446231531e+00 17 | 3.623279934637032795e+00 18 | 3.623277588765362545e+00 19 | 3.623279013061437848e+00 20 | 3.623277588766828927e+00 21 | 3.623279934628948151e+00 22 | 3.623302926411655189e+00 23 | 3.623365302190536763e+00 24 | 3.623476177725911462e+00 25 | 3.623625336670700747e+00 26 | 3.623781310056280791e+00 27 | 3.623900619789386379e+00 28 | 3.623945393698103423e+00 29 | 3.623900619789386379e+00 30 | 3.623781310056280791e+00 31 | 3.623625336670700747e+00 32 | 3.623476177725911462e+00 33 | 3.623365302190536763e+00 34 | 3.623302926411655189e+00 35 | 3.623279934628948151e+00 36 | 3.623277588766828927e+00 37 | -------------------------------------------------------------------------------- /azi_data_0.02_no4/CR_dip_60.0_strike_0.0.txt: -------------------------------------------------------------------------------- 1 | 3.243643869858133577e+00 2 | 3.243225216097377128e+00 3 | 3.242042222675772578e+00 4 | 3.240293095514402921e+00 5 | 3.238248665915826496e+00 6 | 3.236190419154236331e+00 7 | 3.234361619807685440e+00 8 | 3.232942956081425123e+00 9 | 3.232050666239772774e+00 10 | 3.231746845362571285e+00 11 | 3.232050665193768602e+00 12 | 3.232942954057155927e+00 13 | 3.234361616955748975e+00 14 | 3.236190415729600200e+00 15 | 3.238248662288606194e+00 16 | 3.240293092149372001e+00 17 | 3.242042220067818281e+00 18 | 3.243225214670279577e+00 19 | 3.243643869858131801e+00 20 | 3.243225215383829685e+00 21 | 3.242042221371794319e+00 22 | 3.240293093831886573e+00 23 | 3.238248664102216789e+00 24 | 3.236190417441916267e+00 25 | 3.234361618381717207e+00 26 | 3.232942955069291635e+00 27 | 3.232050665716774240e+00 28 | 3.231746845362574394e+00 29 | 3.232050665716774240e+00 30 | 3.232942955069291635e+00 31 | 3.234361618381717207e+00 32 | 3.236190417441916267e+00 33 | 3.238248664102216789e+00 34 | 3.240293093831886573e+00 35 | 3.242042221371794319e+00 36 | 3.243225215383829685e+00 37 | -------------------------------------------------------------------------------- /azi_data_0.02_no4/CR_dip_90.0_strike_0.0.txt: -------------------------------------------------------------------------------- 1 | 3.248444740862255653e+00 2 | 3.247852264021761304e+00 3 | 3.246188289540917982e+00 4 | 3.243756451900906779e+00 5 | 3.240959116387565064e+00 6 | 3.238194730722664616e+00 7 | 3.235784668590591107e+00 8 | 3.233946497474143644e+00 9 | 3.232804915849297966e+00 10 | 3.232418833288714488e+00 11 | 3.232804914517775519e+00 12 | 3.233946494871435817e+00 13 | 3.235784664867294769e+00 14 | 3.238194726168098558e+00 15 | 3.240959111469186915e+00 16 | 3.243756447255998321e+00 17 | 3.246188285889461067e+00 18 | 3.247852262005318735e+00 19 | 3.248444740862254765e+00 20 | 3.247852263013540686e+00 21 | 3.246188287715190413e+00 22 | 3.243756449578452994e+00 23 | 3.240959113928375768e+00 24 | 3.238194728445382697e+00 25 | 3.235784666728943826e+00 26 | 3.233946496172842799e+00 27 | 3.232804915183536298e+00 28 | 3.232418833288714932e+00 29 | 3.232804915183536298e+00 30 | 3.233946496172823259e+00 31 | 3.235784666728943826e+00 32 | 3.238194728445382697e+00 33 | 3.240959113928375768e+00 34 | 3.243756449578452994e+00 35 | 3.246188287715190413e+00 36 | 3.247852263013540686e+00 37 | -------------------------------------------------------------------------------- /azi_data_0.1/CR_dip_90.0_strike_0.0.txt: -------------------------------------------------------------------------------- 1 | 3.294111870304315293e+00 2 | 3.278907939379890557e+00 3 | 3.248444810925668058e+00 4 | 3.215639320998024075e+00 5 | 3.184793748986654904e+00 6 | 3.159138357812712350e+00 7 | 3.141606395791288531e+00 8 | 3.133509102141694314e+00 9 | 3.132766920272477940e+00 10 | 3.133741771870000470e+00 11 | 3.132766922334933479e+00 12 | 3.133509095713335135e+00 13 | 3.141606373629638238e+00 14 | 3.159138319738007628e+00 15 | 3.184793699166909686e+00 16 | 3.215639265005504566e+00 17 | 3.248444754431546233e+00 18 | 3.278907893791124462e+00 19 | 3.294111870304285539e+00 20 | 3.278907916585512172e+00 21 | 3.523630130833285801e+00 22 | 3.215639293001764099e+00 23 | 3.184793724076780297e+00 24 | 3.159138338775356658e+00 25 | 3.141606384710460720e+00 26 | 3.133509098927510284e+00 27 | 3.132766921303704155e+00 28 | 3.133741771870000470e+00 29 | 3.132766921303704155e+00 30 | 3.133509098927510284e+00 31 | 3.141606384710460720e+00 32 | 3.159138338775356658e+00 33 | 3.184793724076780297e+00 34 | 3.215639293001764099e+00 35 | 3.523630130833285801e+00 36 | 3.278907916585512172e+00 37 | -------------------------------------------------------------------------------- /azi_data_bk/CR_dip_180.0_strike_0.0.txt: -------------------------------------------------------------------------------- 1 | 3.227908250070819385e+00 2 | 3.227908250070819829e+00 3 | 3.227908250070819385e+00 4 | 3.227908250070821605e+00 5 | 3.227908250070821161e+00 6 | 3.227908250070819829e+00 7 | 3.227908250070819385e+00 8 | 3.227908250070821161e+00 9 | 3.227908250070821161e+00 10 | 3.227908250070821605e+00 11 | 3.227908250070819385e+00 12 | 3.227908250070819385e+00 13 | 3.227908250070819385e+00 14 | 3.227908250070818053e+00 15 | 3.227908250070821161e+00 16 | 3.227908250070820273e+00 17 | 3.227908250070820273e+00 18 | 3.227908250070819385e+00 19 | 3.227908250070819829e+00 20 | 3.227908250070819385e+00 21 | 3.227908250070819385e+00 22 | 3.227908250070821605e+00 23 | 3.227908250070821161e+00 24 | 3.227908250070819385e+00 25 | 3.227908250070819385e+00 26 | 3.227908250070819829e+00 27 | 3.227908250070819385e+00 28 | 3.227908250070819385e+00 29 | 3.227908250070819385e+00 30 | 3.227908250070819829e+00 31 | 3.227908250070819385e+00 32 | 3.227908250070819385e+00 33 | 3.227908250070821161e+00 34 | 3.227908250070821605e+00 35 | 3.227908250070819385e+00 36 | 3.227908250070819385e+00 37 | -------------------------------------------------------------------------------- /azi_data_bk/CR_dip_90.0_strike_0.0.txt: -------------------------------------------------------------------------------- 1 | 3.269986820518143933e+00 2 | 3.268047133483829914e+00 3 | 3.615099646471221728e+00 4 | 3.255792787392585375e+00 5 | 3.248617246163462813e+00 6 | 3.242515397224483120e+00 7 | 3.238018051391435836e+00 8 | 3.235106246324129575e+00 9 | 3.233520583339369647e+00 10 | 3.233022073251008432e+00 11 | 3.233520585091199884e+00 12 | 3.235106250131974726e+00 13 | 3.238018057742754419e+00 14 | 3.242515406451951243e+00 15 | 3.248617257903807953e+00 16 | 3.255792800125268727e+00 17 | 3.262823322785156410e+00 18 | 3.268047140014554763e+00 19 | 3.269986820518147042e+00 20 | 3.268047136749192561e+00 21 | 3.262823317236032583e+00 22 | 3.255792793758928383e+00 23 | 3.614892737171265580e+00 24 | 3.242515401838216960e+00 25 | 3.238018054567094683e+00 26 | 3.235106248228119874e+00 27 | 3.233520584215283655e+00 28 | 3.233022073251007544e+00 29 | 3.233520584215283655e+00 30 | 3.235106248228104331e+00 31 | 3.238018054567094683e+00 32 | 3.242515401838216960e+00 33 | 3.614892737171265580e+00 34 | 3.255792793758928383e+00 35 | 3.262823317236032583e+00 36 | 3.268047136749192561e+00 37 | -------------------------------------------------------------------------------- /backup_code/anisojp_07/Makefile: -------------------------------------------------------------------------------- 1 | FC=gfortran 2 | CC=cc 3 | FFLAGS=-c -g -O5 4 | 5 | 6 | OBJS=main.o forward_solver.o \ 7 | aniprop_subroutines.o \ 8 | rf_aniso_subroutines.o \ 9 | util_subroutines.o \ 10 | refft.o \ 11 | eispack.o 12 | 13 | TARGETS=main 14 | 15 | all : $(TARGETS) 16 | 17 | main : $(OBJS) 18 | $(FC) -o main $(OBJS) 19 | 20 | main.o : main.f90 21 | $(FC) $(FFLAGS) main.f90 22 | 23 | forward_solver.o : forward_solver.f90 24 | $(FC) $(FFLAGS) forward_solver.f90 25 | 26 | aniprop_subroutines.o : aniprop_subroutines.f 27 | $(FC) $(FFLAGS) aniprop_subroutines.f 28 | 29 | rf_aniso_subroutines.o : rf_aniso_subroutines.f 30 | $(FC) $(FFLAGS) rf_aniso_subroutines.f 31 | 32 | util_subroutines.o : util_subroutines.f 33 | $(FC) $(FFLAGS) util_subroutines.f 34 | 35 | eispack.o : eispack.f 36 | $(FC) $(FFLAGS) eispack.f 37 | 38 | refft.o : refft.c 39 | $(CC) $(FFLAGS) refft.c 40 | 41 | clean : 42 | rm -f $(TARGETS) $(OBJS) 43 | -------------------------------------------------------------------------------- /backup_code/anisojp_07/README.md: -------------------------------------------------------------------------------- 1 | MCMC_ANISO_FORWARD 2 | ================== 3 | 4 | Forward code to compute surface wave dispersion curves and receiver functions in anisotropic models with hexagonally symmetry 5 | -------------------------------------------------------------------------------- /backup_code/anisojp_07/anisojp.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/backup_code/anisojp_07/anisojp.so -------------------------------------------------------------------------------- /backup_code/anisojp_07/compile_all.sh: -------------------------------------------------------------------------------- 1 | #f2py -h anisojp.pyf -m anisojp forward_solver.f90 refft.c aniprop_subroutines.f eispack.f rf_aniso_subroutines.f util_subroutines.f 2 | f2py --f77flags="-ffixed-line-length-none -O3" --f90flags="-O3" -c anisojp.pyf forward_solver.f90 refft.c aniprop_subroutines.f eispack.f rf_aniso_subroutines.f util_subroutines.f --fcompiler=gfortran 3 | cp anisojp.so .. 4 | #f2py -h anisojp.pyf -m anisojp refft.c aniprop_subroutines.f eispack.f rf_aniso_subroutines.f util_subroutines.f 5 | #f2py -c anisojp.pyf refft.c aniprop_subroutines.f eispack.f rf_aniso_subroutines.f util_subroutines.f --f77flags=-ffixed-line-length-none --fcompiler=gfortran 6 | -------------------------------------------------------------------------------- /backup_code/anisojp_07/test_aniprop.py: -------------------------------------------------------------------------------- 1 | import anisojp 2 | import numpy as np 3 | z = np.arange(10., dtype=np.float64)*10*1000. 4 | vp = np.array([5, 5, 5, 6, 6, 6, 7, 7, 7, 8])*1000. 5 | vs = vp/1.8 6 | vp2= 0.1 * np.zeros(10.) 7 | vs2=0.1 * np.zeros(10.) 8 | 9 | vp4 = 0.1 * np.zeros(10.) 10 | rho = vp/2.0 11 | theta=np.zeros(10.) 12 | phig=np.zeros(10.) 13 | nl = 9 14 | baz = 0 15 | nperiod=10 16 | 17 | Rphase,Rgroup,Lphase,Lgroup,Period = anisojp.aniprop_interface(z,vp,vp2,vp4,vs,vs2,rho,theta,phig,nl,baz,nperiod) 18 | 19 | # Rphase,Rgroup,Lphase,Lgroup,Period = anisojp.aniprop_subroutines(z,vp,vp2,vp4,vs,vs2,rho,theta,phig,nl,baz,nperiod) 20 | 21 | # Rphase,Rgroup,Lphase,Lgroup,Period = anisojp.test(z,nl, 10) -------------------------------------------------------------------------------- /backup_code/anisojp_hz/Makefile: -------------------------------------------------------------------------------- 1 | FC=gfortran 2 | CC=cc 3 | FFLAGS=-c -g -O5 4 | 5 | 6 | OBJS=main.o forward_solver.o \ 7 | aniprop_subroutines.o \ 8 | rf_aniso_subroutines.o \ 9 | util_subroutines.o \ 10 | refft.o \ 11 | eispack.o 12 | 13 | TARGETS=main 14 | 15 | all : $(TARGETS) 16 | 17 | main : $(OBJS) 18 | $(FC) -o main $(OBJS) 19 | 20 | main.o : main.f90 21 | $(FC) $(FFLAGS) main.f90 22 | 23 | forward_solver.o : forward_solver.f90 24 | $(FC) $(FFLAGS) forward_solver.f90 25 | 26 | aniprop_subroutines.o : aniprop_subroutines.f 27 | $(FC) $(FFLAGS) aniprop_subroutines.f 28 | 29 | rf_aniso_subroutines.o : rf_aniso_subroutines.f 30 | $(FC) $(FFLAGS) rf_aniso_subroutines.f 31 | 32 | util_subroutines.o : util_subroutines.f 33 | $(FC) $(FFLAGS) util_subroutines.f 34 | 35 | eispack.o : eispack.f 36 | $(FC) $(FFLAGS) eispack.f 37 | 38 | refft.o : refft.c 39 | $(CC) $(FFLAGS) refft.c 40 | 41 | clean : 42 | rm -f $(TARGETS) $(OBJS) 43 | -------------------------------------------------------------------------------- /backup_code/anisojp_hz/README.md: -------------------------------------------------------------------------------- 1 | MCMC_ANISO_FORWARD 2 | ================== 3 | 4 | Forward code to compute surface wave dispersion curves and receiver functions in anisotropic models with hexagonally symmetry 5 | -------------------------------------------------------------------------------- /backup_code/anisojp_hz/ZMODEL.txt: -------------------------------------------------------------------------------- 1 | 1 2 | 0 5800 0 0 3500 0 2700 10. 10. 3 | 10000 5800 0 0 3500 0 2700 10. 10. 4 | -------------------------------------------------------------------------------- /backup_code/anisojp_hz/ZMODEL.txt_bk: -------------------------------------------------------------------------------- 1 | 1 2 | 0 5.8 0 0 3.5 0 2.7 10. 10. 3 | 10 5.8 0 0 3.5 0 2.7 10. 10. 4 | -------------------------------------------------------------------------------- /backup_code/anisojp_hz/aniprop_subroutines.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/backup_code/anisojp_hz/aniprop_subroutines.o -------------------------------------------------------------------------------- /backup_code/anisojp_hz/anisojp.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/backup_code/anisojp_hz/anisojp.so -------------------------------------------------------------------------------- /backup_code/anisojp_hz/compile_all.sh: -------------------------------------------------------------------------------- 1 | #f2py -h anisojp.pyf -m anisojp forward_solver.f90 refft.c aniprop_subroutines.f eispack.f rf_aniso_subroutines.f util_subroutines.f 2 | #f2py -c anisojp.pyf forward_solver.f90 refft.c aniprop_subroutines.f eispack.f rf_aniso_subroutines.f util_subroutines.f -lfftw3 --f77flags=-ffixed-line-length-none --fcompiler=gfortran 3 | 4 | #f2py -h anisojp.pyf -m anisojp refft.c aniprop_subroutines.f eispack.f rf_aniso_subroutines.f util_subroutines.f 5 | f2py -c anisojp.pyf refft.c aniprop_subroutines.f eispack.f rf_aniso_subroutines.f util_subroutines.f --f77flags=-ffixed-line-length-none --fcompiler=gfortran 6 | -------------------------------------------------------------------------------- /backup_code/anisojp_hz/eispack.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/backup_code/anisojp_hz/eispack.o -------------------------------------------------------------------------------- /backup_code/anisojp_hz/forward_solver.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/backup_code/anisojp_hz/forward_solver.o -------------------------------------------------------------------------------- /backup_code/anisojp_hz/main: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/backup_code/anisojp_hz/main -------------------------------------------------------------------------------- /backup_code/anisojp_hz/main.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/backup_code/anisojp_hz/main.o -------------------------------------------------------------------------------- /backup_code/anisojp_hz/refft.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/backup_code/anisojp_hz/refft.o -------------------------------------------------------------------------------- /backup_code/anisojp_hz/rf_aniso_subroutines.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/backup_code/anisojp_hz/rf_aniso_subroutines.o -------------------------------------------------------------------------------- /backup_code/anisojp_hz/test_aniprop.py: -------------------------------------------------------------------------------- 1 | import anisojp 2 | import numpy as np 3 | z = np.arange(10., dtype=np.float64)*10*1000. 4 | vp = np.array([5, 5, 5, 6, 6, 6, 7, 7, 7, 8])*1000. 5 | vs = vp/1.8 6 | vp2= 0.1 * np.ones(10.) 7 | vs2=0.1 * np.ones(10.) 8 | 9 | vp4 = 0.1 * np.ones(10.) 10 | rho = vp/2.0 11 | theta=np.zeros(10.) 12 | phig=np.zeros(10.) 13 | nl = 9 14 | baz = 0 15 | nperiod=10 16 | 17 | # Rphase,Rgroup,Lphase,Lgroup,Period = anisojp.aniprop_interface(z,vp,vp2,vp4,vs,vs2,rho,theta,phig,nl,baz,nperiod) 18 | 19 | # Rphase,Rgroup,Lphase,Lgroup,Period = anisojp.aniprop_subroutines(z,vp,vp2,vp4,vs,vs2,rho,theta,phig,nl,baz,nperiod) 20 | 21 | # Rphase,Rgroup,Lphase,Lgroup,Period = anisojp.test(z,nl, 10) -------------------------------------------------------------------------------- /backup_code/anisojp_hz/util_subroutines.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/backup_code/anisojp_hz/util_subroutines.o -------------------------------------------------------------------------------- /backup_code/cps_VOLIII_src/00README: -------------------------------------------------------------------------------- 1 | 2 | 3 | put in PATH - watch out for DOSism for concat 4 | 5 | sdpspc96 put in AUTO to plot all 6 | 7 | -------------------------------------------------------------------------------- /backup_code/cps_VOLIII_src/lgstr.f: -------------------------------------------------------------------------------- 1 | function lgstr(str) 2 | c----- 3 | c function to find the length of a string 4 | c this will only be used with file system path names 5 | c thus the first blank 6 | c indicates the end of the string 7 | c----- 8 | implicit none 9 | character*(*) str 10 | integer*4 lgstr 11 | integer n, i 12 | n = len(str) 13 | lgstr = 1 14 | do 1000 i=n,1,-1 15 | lgstr = i 16 | if(str(i:i).ne.' ')goto 100 17 | 1000 continue 18 | 100 continue 19 | return 20 | end 21 | -------------------------------------------------------------------------------- /backup_code/cps_VOLIII_src/lgstr.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/backup_code/cps_VOLIII_src/lgstr.o -------------------------------------------------------------------------------- /backup_code/cps_VOLIII_src/libcalpltf.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/backup_code/cps_VOLIII_src/libcalpltf.a -------------------------------------------------------------------------------- /backup_code/cps_VOLIII_src/mchdep.f: -------------------------------------------------------------------------------- 1 | subroutine mchdep() 2 | c---------------------------------------------------------------------c 3 | c c 4 | c COMPUTER PROGRAMS IN SEISMOLOGY c 5 | c VOLUME V c 6 | c c 7 | c PROGRAM: mchdep c 8 | c c 9 | c COPYRIGHT 1996 R. B. Herrmann c 10 | c c 11 | c Department of Earth and Atmospheric Sciences c 12 | c Saint Louis University c 13 | c 221 North Grand Boulevard c 14 | c St. Louis, Missouri 63103 c 15 | c U. S. A. c 16 | c c 17 | c---------------------------------------------------------------------c 18 | implicit none 19 | return 20 | end 21 | -------------------------------------------------------------------------------- /backup_code/cps_VOLIII_src/mchdep.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/backup_code/cps_VOLIII_src/mchdep.o -------------------------------------------------------------------------------- /backup_code/cps_VOLIII_src/mgtarg.f: -------------------------------------------------------------------------------- 1 | subroutine mgtarg(i,name) 2 | c---------------------------------------------------------------------c 3 | c c 4 | c COMPUTER PROGRAMS IN SEISMOLOGY c 5 | c VOLUME V c 6 | c c 7 | c SUBROUTINE: MGTARG c 8 | c c 9 | c COPYRIGHT 1996 R. B. Herrmann c 10 | c c 11 | c Department of Earth and Atmospheric Sciences c 12 | c Saint Louis University c 13 | c 221 North Grand Boulevard c 14 | c St. Louis, Missouri 63103 c 15 | c U. S. A. c 16 | c c 17 | c---------------------------------------------------------------------c 18 | c----- 19 | c return the i'th command line argument 20 | c 21 | c This version works on SUN, IBM RS6000 22 | c----- 23 | implicit none 24 | integer i 25 | character name*(*) 26 | call getarg(i,name) 27 | return 28 | end 29 | -------------------------------------------------------------------------------- /backup_code/cps_VOLIII_src/mgtarg.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/backup_code/cps_VOLIII_src/mgtarg.o -------------------------------------------------------------------------------- /backup_code/cps_VOLIII_src/mnmarg.f: -------------------------------------------------------------------------------- 1 | function mnmarg() 2 | c---------------------------------------------------------------------c 3 | c c 4 | c COMPUTER PROGRAMS IN SEISMOLOGY c 5 | c VOLUME V c 6 | c c 7 | c SUBROUTINE: MNMARG c 8 | c c 9 | c COPYRIGHT 1996 R. B. Herrmann c 10 | c c 11 | c Department of Earth and Atmospheric Sciences c 12 | c Saint Louis University c 13 | c 221 North Grand Boulevard c 14 | c St. Louis, Missouri 63103 c 15 | c U. S. A. c 16 | c c 17 | c---------------------------------------------------------------------c 18 | implicit none 19 | integer iargc 20 | integer mnmarg 21 | mnmarg = iargc() 22 | return 23 | end 24 | -------------------------------------------------------------------------------- /backup_code/cps_VOLIII_src/mnmarg.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/backup_code/cps_VOLIII_src/mnmarg.o -------------------------------------------------------------------------------- /backup_code/cps_VOLIII_src/tdisp.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/backup_code/cps_VOLIII_src/tdisp.so -------------------------------------------------------------------------------- /backup_code/cps_VOLIII_src/tdisp96.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/backup_code/cps_VOLIII_src/tdisp96.o -------------------------------------------------------------------------------- /backup_code/cps_VOLIII_src/tgetmod.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/backup_code/cps_VOLIII_src/tgetmod.o -------------------------------------------------------------------------------- /backup_code/cps_VOLIII_src/tio.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/backup_code/cps_VOLIII_src/tio.o -------------------------------------------------------------------------------- /backup_code/cps_surf/compile_tdisp96.sh: -------------------------------------------------------------------------------- 1 | #################### 2 | ## copy subs code 3 | #################### 4 | cps_subs_dir='/home/leon/code/PROGRAMS.330/SUBS' 5 | 6 | #cp $cps_subs_dir/f2csub.f . 7 | #cp $cps_subs_dir/f96subf.f . 8 | #cp $cps_subs_dir/igetmod.f . 9 | cp $cps_subs_dir/tgetmod.f . 10 | cp $cps_subs_dir/mnmarg.f . 11 | cp $cps_subs_dir/mgtarg.f . 12 | cp $cps_subs_dir/mchdep.f . 13 | #cp $cps_subs_dir/solidf.f . 14 | cp $cps_subs_dir/lgstr.f . 15 | #cp $cps_subs_dir/grphsubf.f . 16 | 17 | 18 | f2py -h tdisp96.pyf -m tdisp96 tdisp96_subroutine.f mnmarg.f mgtarg.f lgstr.f tio.f mchdep.f tgetmod.f 19 | f2py --f77flags="-ffixed-line-length-none -O3" --f90flags="-O3" -c tdisp96.pyf tdisp96_subroutine.f mnmarg.f mgtarg.f lgstr.f tio.f mchdep.f tgetmod.f 20 | 21 | 22 | -------------------------------------------------------------------------------- /backup_code/cps_surf/compile_tegn96.sh: -------------------------------------------------------------------------------- 1 | #################### 2 | ## copy subs code 3 | #################### 4 | cps_subs_dir='/home/leon/code/PROGRAMS.330/SUBS' 5 | 6 | #cp $cps_subs_dir/f2csub.f . 7 | #cp $cps_subs_dir/f96subf.f . 8 | #cp $cps_subs_dir/igetmod.f . 9 | cp $cps_subs_dir/tgetmod.f . 10 | cp $cps_subs_dir/mnmarg.f . 11 | cp $cps_subs_dir/mgtarg.f . 12 | cp $cps_subs_dir/mchdep.f . 13 | #cp $cps_subs_dir/solidf.f . 14 | cp $cps_subs_dir/lgstr.f . 15 | #cp $cps_subs_dir/grphsubf.f . 16 | 17 | 18 | #f2py -h tegn96.pyf -m tegn96 tregn96_subroutine.f tlegn96_subroutine.f mnmarg.f mgtarg.f lgstr.f tio.f mchdep.f tgetmod.f 19 | #f2py --f77flags="-ffixed-line-length-none -O3" --f90flags="-O3" -c tegn96.pyf tregn96_subroutine.f tlegn96_subroutine.f mnmarg.f mgtarg.f lgstr.f tio.f mchdep.f tgetmod.f 20 | 21 | 22 | f2py -h tegn96.pyf -m tegn96 tlegn96_subroutine.f mnmarg.f mgtarg.f lgstr.f tio.f mchdep.f tgetmod.f 23 | f2py --f77flags="-ffixed-line-length-none -O3" --f90flags="-O3" -c tegn96.pyf tlegn96_subroutine.f mnmarg.f mgtarg.f lgstr.f tio.f mchdep.f tgetmod.f 24 | -------------------------------------------------------------------------------- /backup_code/cps_surf/compile_tlegn96.sh: -------------------------------------------------------------------------------- 1 | #################### 2 | ## copy subs code 3 | #################### 4 | cps_subs_dir='/home/leon/code/PROGRAMS.330/SUBS' 5 | 6 | #cp $cps_subs_dir/f2csub.f . 7 | #cp $cps_subs_dir/f96subf.f . 8 | #cp $cps_subs_dir/igetmod.f . 9 | cp $cps_subs_dir/tgetmod.f . 10 | cp $cps_subs_dir/mnmarg.f . 11 | cp $cps_subs_dir/mgtarg.f . 12 | cp $cps_subs_dir/mchdep.f . 13 | #cp $cps_subs_dir/solidf.f . 14 | cp $cps_subs_dir/lgstr.f . 15 | #cp $cps_subs_dir/grphsubf.f . 16 | 17 | 18 | #f2py -h tegn96.pyf -m tegn96 tregn96_subroutine.f tlegn96_subroutine.f mnmarg.f mgtarg.f lgstr.f tio.f mchdep.f tgetmod.f 19 | #f2py --f77flags="-ffixed-line-length-none -O3" --f90flags="-O3" -c tegn96.pyf tregn96_subroutine.f tlegn96_subroutine.f mnmarg.f mgtarg.f lgstr.f tio.f mchdep.f tgetmod.f 20 | 21 | 22 | f2py -h tlegn96.pyf -m tlegn96 tlegn96_subroutine.f mnmarg.f mgtarg.f lgstr.f tio.f mchdep.f tgetmod.f 23 | f2py --f77flags="-ffixed-line-length-none -O3" --f90flags="-O3" -c tlegn96.pyf tlegn96_subroutine.f mnmarg.f mgtarg.f lgstr.f tio.f mchdep.f tgetmod.f 24 | -------------------------------------------------------------------------------- /backup_code/cps_surf/compile_tregn96.sh: -------------------------------------------------------------------------------- 1 | #################### 2 | ## copy subs code 3 | #################### 4 | cps_subs_dir='/home/leon/code/PROGRAMS.330/SUBS' 5 | 6 | #cp $cps_subs_dir/f2csub.f . 7 | #cp $cps_subs_dir/f96subf.f . 8 | #cp $cps_subs_dir/igetmod.f . 9 | cp $cps_subs_dir/tgetmod.f . 10 | cp $cps_subs_dir/mnmarg.f . 11 | cp $cps_subs_dir/mgtarg.f . 12 | cp $cps_subs_dir/mchdep.f . 13 | #cp $cps_subs_dir/solidf.f . 14 | cp $cps_subs_dir/lgstr.f . 15 | #cp $cps_subs_dir/grphsubf.f . 16 | 17 | 18 | f2py -h tegn96.pyf -m tegn96 tregn96_subroutine.f mnmarg.f mgtarg.f lgstr.f tio.f mchdep.f tgetmod.f 19 | f2py --f77flags="-ffixed-line-length-none -O3" --f90flags="-O3" -c tegn96.pyf tregn96_subroutine.f mnmarg.f mgtarg.f lgstr.f tio.f mchdep.f tgetmod.f 20 | 21 | 22 | -------------------------------------------------------------------------------- /backup_code/cps_surf/f2csub.f: -------------------------------------------------------------------------------- 1 | real*8 function cdabs(Z) 2 | complex*16 Z 3 | cdabs = zabs(Z) 4 | return 5 | end 6 | 7 | complex*16 function cdexp(Z) 8 | complex*16 Z 9 | cdexp = zexp(Z) 10 | return 11 | end 12 | 13 | complex*16 function cdlog(Z) 14 | complex*16 Z 15 | cdlog = zlog(Z) 16 | return 17 | end 18 | 19 | complex*16 function cdsqrt(Z) 20 | complex*16 Z 21 | cdsqrt = zsqrt(Z) 22 | return 23 | end 24 | 25 | real*8 function dreal(Z) 26 | complex*16 Z 27 | dreal = real(Z) 28 | return 29 | end 30 | 31 | -------------------------------------------------------------------------------- /backup_code/cps_surf/fort.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/backup_code/cps_surf/fort.1 -------------------------------------------------------------------------------- /backup_code/cps_surf/fort.2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/backup_code/cps_surf/fort.2 -------------------------------------------------------------------------------- /backup_code/cps_surf/lgstr.f: -------------------------------------------------------------------------------- 1 | function lgstr(str) 2 | c----- 3 | c function to find the length of a string 4 | c this will only be used with file system path names 5 | c thus the first blank 6 | c indicates the end of the string 7 | c----- 8 | implicit none 9 | character*(*) str 10 | integer*4 lgstr 11 | integer n, i 12 | n = len(str) 13 | lgstr = 1 14 | do 1000 i=n,1,-1 15 | lgstr = i 16 | if(str(i:i).ne.' ')goto 100 17 | 1000 continue 18 | 100 continue 19 | return 20 | end 21 | -------------------------------------------------------------------------------- /backup_code/cps_surf/mchdep.f: -------------------------------------------------------------------------------- 1 | subroutine mchdep() 2 | c---------------------------------------------------------------------c 3 | c c 4 | c COMPUTER PROGRAMS IN SEISMOLOGY c 5 | c VOLUME V c 6 | c c 7 | c PROGRAM: mchdep c 8 | c c 9 | c COPYRIGHT 1996 R. B. Herrmann c 10 | c c 11 | c Department of Earth and Atmospheric Sciences c 12 | c Saint Louis University c 13 | c 221 North Grand Boulevard c 14 | c St. Louis, Missouri 63103 c 15 | c U. S. A. c 16 | c c 17 | c---------------------------------------------------------------------c 18 | implicit none 19 | return 20 | end 21 | -------------------------------------------------------------------------------- /backup_code/cps_surf/mgtarg.f: -------------------------------------------------------------------------------- 1 | subroutine mgtarg(i,name) 2 | c---------------------------------------------------------------------c 3 | c c 4 | c COMPUTER PROGRAMS IN SEISMOLOGY c 5 | c VOLUME V c 6 | c c 7 | c SUBROUTINE: MGTARG c 8 | c c 9 | c COPYRIGHT 1996 R. B. Herrmann c 10 | c c 11 | c Department of Earth and Atmospheric Sciences c 12 | c Saint Louis University c 13 | c 221 North Grand Boulevard c 14 | c St. Louis, Missouri 63103 c 15 | c U. S. A. c 16 | c c 17 | c---------------------------------------------------------------------c 18 | c----- 19 | c return the i'th command line argument 20 | c 21 | c This version works on SUN, IBM RS6000 22 | c----- 23 | implicit none 24 | integer i 25 | character name*(*) 26 | call getarg(i,name) 27 | return 28 | end 29 | -------------------------------------------------------------------------------- /backup_code/cps_surf/mnmarg.f: -------------------------------------------------------------------------------- 1 | function mnmarg() 2 | c---------------------------------------------------------------------c 3 | c c 4 | c COMPUTER PROGRAMS IN SEISMOLOGY c 5 | c VOLUME V c 6 | c c 7 | c SUBROUTINE: MNMARG c 8 | c c 9 | c COPYRIGHT 1996 R. B. Herrmann c 10 | c c 11 | c Department of Earth and Atmospheric Sciences c 12 | c Saint Louis University c 13 | c 221 North Grand Boulevard c 14 | c St. Louis, Missouri 63103 c 15 | c U. S. A. c 16 | c c 17 | c---------------------------------------------------------------------c 18 | implicit none 19 | integer iargc 20 | integer mnmarg 21 | mnmarg = iargc() 22 | return 23 | end 24 | -------------------------------------------------------------------------------- /backup_code/cps_surf/tdisp.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/backup_code/cps_surf/tdisp.so -------------------------------------------------------------------------------- /backup_code/cps_surf/tdisp96.dat: -------------------------------------------------------------------------------- 1 | 0.1000E+01 2 | 7 -1 -2 3 | out.mod 4 | T T 5 | 0.0000E+00 0.0000E+00 6 | 1 7 | 0.5000E+01 0.5000E+01 8 | 0.10000000E+00 9 | 0.66666670E-01 10 | 0.50000001E-01 11 | 0.39999999E-01 12 | 0.33333335E-01 13 | 0.28571429E-01 14 | 0.25000000E-01 15 | -------------------------------------------------------------------------------- /backup_code/cps_surf/tdisp96.lov: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/backup_code/cps_surf/tdisp96.lov -------------------------------------------------------------------------------- /backup_code/cps_surf/tdisp96.ray: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/backup_code/cps_surf/tdisp96.ray -------------------------------------------------------------------------------- /backup_code/cps_surf/tdisp96.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/backup_code/cps_surf/tdisp96.so -------------------------------------------------------------------------------- /backup_code/cps_surf/tegn96.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/backup_code/cps_surf/tegn96.so -------------------------------------------------------------------------------- /backup_code/cps_surf/test_cpssurf.py: -------------------------------------------------------------------------------- 1 | 2 | # # 0.1000E+01 dt 3 | # # 7 -1 -2 npts n1(user spcified or not, when < 0: user specified) n2 4 | # # out.mod mname 5 | # # T T dolove dorayl 6 | # # 0.0000E+00 0.0000E+00 hs hr 7 | # # 1 nmodes 8 | # # 0.5000E+01 0.5000E+01 faclov facrayl 9 | # # 0.10000000E+00 10 | # # 0.66666670E-01 11 | # # 0.50000001E-01 12 | # # 0.39999999E-01 13 | # # 0.33333335E-01 14 | # # 0.28571429E-01 15 | # # 0.25000000E-01 16 | 17 | # input 18 | # ilvry : love(1) or rayleigh(2) 19 | # nn - npts 20 | # mname - model name 21 | # verby - screen output or not 22 | # nfval - npts 23 | # fval - input frequencies (array) 24 | # ccmin, ccmax - min/max phase vel 25 | 26 | # output 27 | # iret 28 | 29 | 30 | # subroutine disprs(ilvry,dt,nn,iret,mname, 31 | # 1 verby,nfval,fval,ccmin,ccmax) 32 | 33 | import tdisp96 34 | import vmodel 35 | import numpy as np 36 | model=vmodel.Model1d(modelindex=2) 37 | model.read('test_model.txt') 38 | d_in = model.HArr 39 | TA_in = model.rhoArr * model.VphArr**2 40 | TC_in = model.rhoArr * model.VpvArr**2 41 | TL_in = model.rhoArr * model.VsvArr**2 42 | TF_in = 1.0 * (TA_in - np.float32(2.)* TL_in) 43 | TN_in = model.rhoArr * model.VshArr**2 44 | TRho_in = model.rhoArr 45 | 46 | 47 | ilvry = 1 48 | dt = 1. 49 | npts = 7 50 | iret =1 51 | verby = True 52 | nfval = 7 53 | fval = 1./(np.arange(7)*5.+10.) 54 | fval = np.append(fval, np.zeros(2049-nfval)) 55 | ccmin = -1. 56 | ccmax = -1. 57 | nl_in = TRho_in.size 58 | iflsph_in = 1 # 0 flat, 1: love, 2: rayleigh 59 | refdep_in = 0. 60 | nmode = 1 61 | # 62 | # 63 | cout=tdisp96.disprs(ilvry,dt,npts,iret,verby, nfval,fval,ccmin,ccmax,\ 64 | d_in,TA_in,TC_in,TF_in,TL_in,TN_in,TRho_in,\ 65 | nl_in, iflsph_in, refdep_in, nmode, 0.5, 0.5) 66 | 67 | 68 | # real*8 dimension(nl_in),depend(nl_in) :: d_in 69 | # real*8 dimension(nl_in),depend(nl_in) :: ta_in 70 | # real*8 dimension(nl_in),depend(nl_in) :: tc_in 71 | # real*8 dimension(nl_in),depend(nl_in) :: tf_in 72 | # real*8 dimension(nl_in),depend(nl_in) :: tl_in 73 | # real*8 dimension(nl_in),depend(nl_in) :: tn_in 74 | # real*8 dimension(nl_in),depend(nl_in) :: trho_in 75 | # integer, intent(in) :: nl_in 76 | 77 | -------------------------------------------------------------------------------- /backup_code/cps_surf/test_tlegn96.py: -------------------------------------------------------------------------------- 1 | 2 | # # 0.1000E+01 dt 3 | # # 7 -1 -2 npts n1(user spcified or not, when < 0: user specified) n2 4 | # # out.mod mname 5 | # # T T dolove dorayl 6 | # # 0.0000E+00 0.0000E+00 hs hr 7 | # # 1 nmodes 8 | # # 0.5000E+01 0.5000E+01 faclov facrayl 9 | # # 0.10000000E+00 10 | # # 0.66666670E-01 11 | # # 0.50000001E-01 12 | # # 0.39999999E-01 13 | # # 0.33333335E-01 14 | # # 0.28571429E-01 15 | # # 0.25000000E-01 16 | 17 | # input 18 | # ilvry : love(1) or rayleigh(2) 19 | # nn - npts 20 | # mname - model name 21 | # verby - screen output or not 22 | # nfval - npts 23 | # fval - input frequencies (array) 24 | # ccmin, ccmax - min/max phase vel 25 | 26 | # output 27 | # iret 28 | 29 | 30 | # subroutine disprs(ilvry,dt,nn,iret,mname, 31 | # 1 verby,nfval,fval,ccmin,ccmax) 32 | 33 | 34 | 35 | 36 | import tlegn96 37 | import vmodel 38 | import numpy as np 39 | model=vmodel.Model1d(modelindex=2) 40 | model.read('test_model.txt') 41 | d_in = model.HArr 42 | TA_in = model.rhoArr * model.VphArr**2 43 | TC_in = model.rhoArr * model.VpvArr**2 44 | TL_in = model.rhoArr * model.VsvArr**2 45 | TF_in = 1.0 * (TA_in - np.float32(2.)* TL_in) 46 | TN_in = model.rhoArr * model.VshArr**2 47 | TRho_in = model.rhoArr 48 | qai_in = model.QpArr 49 | qbi_in = model.QsArr 50 | etapi_in= model.etapArr 51 | etasi_in= model.etasArr 52 | frefpi_in= model.frefpArr 53 | frefsi_in= model.frefsArr 54 | 55 | hs_in=0. 56 | hr_in=0. 57 | ohr_in=0. 58 | ohs_in=0. 59 | refdep_in=0. 60 | nl_in = model.HArr.size 61 | iflsph_in = 0 62 | mode_in=np.ones(7, dtype=np.int) 63 | Nt_in=7 64 | t_in = (np.arange(7)*5.+10.) 65 | cp_in = np.array([ 3.61031318, 3.73016572, 3.85718274, 3.97710991, 4.08013439, 66 | 4.16317844, 4.22794294]) 67 | dogam=False 68 | u_out,ut, tut,dcdh,dcdav,dcdah,dcdbv,dcdbh,dcdn,dcdr=tlegn96.tlegn96(hs_in, hr_in, ohr_in,ohs_in, refdep_in,dogam, nl_in, iflsph_in,\ 69 | d_in,TA_in,TC_in,TF_in,TL_in,TN_in,TRho_in,\ 70 | qai_in,qbi_in,etapi_in,etasi_in,frefpi_in,frefsi_in, Nt_in, t_in, cp_in) -------------------------------------------------------------------------------- /backup_code/cps_surf/test_tregn96.py: -------------------------------------------------------------------------------- 1 | 2 | # # 0.1000E+01 dt 3 | # # 7 -1 -2 npts n1(user spcified or not, when < 0: user specified) n2 4 | # # out.mod mname 5 | # # T T dolove dorayl 6 | # # 0.0000E+00 0.0000E+00 hs hr 7 | # # 1 nmodes 8 | # # 0.5000E+01 0.5000E+01 faclov facrayl 9 | # # 0.10000000E+00 10 | # # 0.66666670E-01 11 | # # 0.50000001E-01 12 | # # 0.39999999E-01 13 | # # 0.33333335E-01 14 | # # 0.28571429E-01 15 | # # 0.25000000E-01 16 | 17 | # input 18 | # ilvry : love(1) or rayleigh(2) 19 | # nn - npts 20 | # mname - model name 21 | # verby - screen output or not 22 | # nfval - npts 23 | # fval - input frequencies (array) 24 | # ccmin, ccmax - min/max phase vel 25 | 26 | # output 27 | # iret 28 | 29 | 30 | # subroutine disprs(ilvry,dt,nn,iret,mname, 31 | # 1 verby,nfval,fval,ccmin,ccmax) 32 | 33 | 34 | 35 | 36 | import tegn96 37 | import vmodel 38 | import numpy as np 39 | model=vmodel.Model1d(modelindex=2) 40 | model.read('test_model.txt') 41 | d_in = model.HArr 42 | TA_in = model.rhoArr * model.VphArr**2 43 | TC_in = model.rhoArr * model.VpvArr**2 44 | TL_in = model.rhoArr * model.VsvArr**2 45 | TF_in = 1.0 * (TA_in - np.float32(2.)* TL_in) 46 | TN_in = model.rhoArr * model.VshArr**2 47 | TRho_in = model.rhoArr 48 | qai_in = model.QpArr 49 | qbi_in = model.QsArr 50 | etapi_in= model.etapArr 51 | etasi_in= model.etasArr 52 | frefpi_in= model.frefpArr 53 | frefsi_in= model.frefsArr 54 | 55 | hs_in=0. 56 | hr_in=0. 57 | ohr_in=0. 58 | ohs_in=0. 59 | refdep_in=0. 60 | nl_in = model.HArr.size 61 | iflsph_in = 0 62 | mode_in=np.ones(7, dtype=np.int) 63 | Nt_in=7 64 | t_in = (np.arange(7)*5.+10.) 65 | cp_in = np.array([ 3.22712779, 3.37151194, 3.55520225, 3.71019101, 3.8115027 , 66 | 3.87411857, 3.91453123]) 67 | dogam=False 68 | u_out,ur, tur, uz, tuz,dcdh,dcdav,dcdah,dcdbv,dcdbh,dcdn,dcdr=tegn96.tregn96(hs_in, hr_in, ohr_in,ohs_in, refdep_in,dogam, nl_in, iflsph_in,\ 69 | d_in,TA_in,TC_in,TF_in,TL_in,TN_in,TRho_in,\ 70 | qai_in,qbi_in,etapi_in,etasi_in,frefpi_in,frefsi_in, Nt_in, t_in, cp_in) -------------------------------------------------------------------------------- /backup_code/cps_surf/tlegn96.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/backup_code/cps_surf/tlegn96.so -------------------------------------------------------------------------------- /backup_code/cps_surf/tregn96.egn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/backup_code/cps_surf/tregn96.egn -------------------------------------------------------------------------------- /backup_code/cps_surf/vmodel.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/backup_code/cps_surf/vmodel.pyc -------------------------------------------------------------------------------- /backup_code/tdisp96_src_no_flat2sphere_by_LF/compile_tdisp96.sh: -------------------------------------------------------------------------------- 1 | #################### 2 | ## copy subs code 3 | #################### 4 | cps_subs_dir='/home/leon/code/PROGRAMS.330/SUBS' 5 | 6 | #cp $cps_subs_dir/tgetmod.f . 7 | #cp $cps_subs_dir/mnmarg.f . 8 | #cp $cps_subs_dir/mgtarg.f . 9 | #cp $cps_subs_dir/mchdep.f . 10 | #cp $cps_subs_dir/lgstr.f . 11 | 12 | 13 | #f2py -h tdisp96.pyf -m tdisp96 tdisp96_subroutine.f mnmarg.f mgtarg.f lgstr.f tio.f mchdep.f tgetmod.f 14 | f2py --f77flags="-ffixed-line-length-none -O3" --f90flags="-O3" -c tdisp96.pyf tdisp96_subroutine.f mnmarg.f mgtarg.f lgstr.f tio.f mchdep.f tgetmod.f 15 | 16 | cp tdisp96.so .. 17 | -------------------------------------------------------------------------------- /backup_code/tdisp96_src_no_flat2sphere_by_LF/lgstr.f: -------------------------------------------------------------------------------- 1 | function lgstr(str) 2 | c----- 3 | c function to find the length of a string 4 | c this will only be used with file system path names 5 | c thus the first blank 6 | c indicates the end of the string 7 | c----- 8 | implicit none 9 | character*(*) str 10 | integer*4 lgstr 11 | integer n, i 12 | n = len(str) 13 | lgstr = 1 14 | do 1000 i=n,1,-1 15 | lgstr = i 16 | if(str(i:i).ne.' ')goto 100 17 | 1000 continue 18 | 100 continue 19 | return 20 | end 21 | -------------------------------------------------------------------------------- /backup_code/tdisp96_src_no_flat2sphere_by_LF/mchdep.f: -------------------------------------------------------------------------------- 1 | subroutine mchdep() 2 | c---------------------------------------------------------------------c 3 | c c 4 | c COMPUTER PROGRAMS IN SEISMOLOGY c 5 | c VOLUME V c 6 | c c 7 | c PROGRAM: mchdep c 8 | c c 9 | c COPYRIGHT 1996 R. B. Herrmann c 10 | c c 11 | c Department of Earth and Atmospheric Sciences c 12 | c Saint Louis University c 13 | c 221 North Grand Boulevard c 14 | c St. Louis, Missouri 63103 c 15 | c U. S. A. c 16 | c c 17 | c---------------------------------------------------------------------c 18 | implicit none 19 | return 20 | end 21 | -------------------------------------------------------------------------------- /backup_code/tdisp96_src_no_flat2sphere_by_LF/mgtarg.f: -------------------------------------------------------------------------------- 1 | subroutine mgtarg(i,name) 2 | c---------------------------------------------------------------------c 3 | c c 4 | c COMPUTER PROGRAMS IN SEISMOLOGY c 5 | c VOLUME V c 6 | c c 7 | c SUBROUTINE: MGTARG c 8 | c c 9 | c COPYRIGHT 1996 R. B. Herrmann c 10 | c c 11 | c Department of Earth and Atmospheric Sciences c 12 | c Saint Louis University c 13 | c 221 North Grand Boulevard c 14 | c St. Louis, Missouri 63103 c 15 | c U. S. A. c 16 | c c 17 | c---------------------------------------------------------------------c 18 | c----- 19 | c return the i'th command line argument 20 | c 21 | c This version works on SUN, IBM RS6000 22 | c----- 23 | implicit none 24 | integer i 25 | character name*(*) 26 | call getarg(i,name) 27 | return 28 | end 29 | -------------------------------------------------------------------------------- /backup_code/tdisp96_src_no_flat2sphere_by_LF/mnmarg.f: -------------------------------------------------------------------------------- 1 | function mnmarg() 2 | c---------------------------------------------------------------------c 3 | c c 4 | c COMPUTER PROGRAMS IN SEISMOLOGY c 5 | c VOLUME V c 6 | c c 7 | c SUBROUTINE: MNMARG c 8 | c c 9 | c COPYRIGHT 1996 R. B. Herrmann c 10 | c c 11 | c Department of Earth and Atmospheric Sciences c 12 | c Saint Louis University c 13 | c 221 North Grand Boulevard c 14 | c St. Louis, Missouri 63103 c 15 | c U. S. A. c 16 | c c 17 | c---------------------------------------------------------------------c 18 | implicit none 19 | integer iargc 20 | integer mnmarg 21 | mnmarg = iargc() 22 | return 23 | end 24 | -------------------------------------------------------------------------------- /backup_code/tdisp96_src_no_flat2sphere_by_LF/tdisp96.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/backup_code/tdisp96_src_no_flat2sphere_by_LF/tdisp96.so -------------------------------------------------------------------------------- /backup_code/tdisp96_src_no_flat2sphere_by_LF/test_tdisp96.py: -------------------------------------------------------------------------------- 1 | 2 | # # 0.1000E+01 dt 3 | # # 7 -1 -2 npts n1(user spcified or not, when < 0: user specified) n2 4 | # # out.mod mname 5 | # # T T dolove dorayl 6 | # # 0.0000E+00 0.0000E+00 hs hr 7 | # # 1 nmodes 8 | # # 0.5000E+01 0.5000E+01 faclov facrayl 9 | # # 0.10000000E+00 10 | # # 0.66666670E-01 11 | # # 0.50000001E-01 12 | # # 0.39999999E-01 13 | # # 0.33333335E-01 14 | # # 0.28571429E-01 15 | # # 0.25000000E-01 16 | 17 | # input 18 | # ilvry : love(1) or rayleigh(2) 19 | # nn - npts 20 | # mname - model name 21 | # verby - screen output or not 22 | # nfval - npts 23 | # fval - input frequencies (array) 24 | # ccmin, ccmax - min/max phase vel 25 | 26 | # output 27 | # iret 28 | 29 | 30 | # subroutine disprs(ilvry,dt,nn,iret,mname, 31 | # 1 verby,nfval,fval,ccmin,ccmax) 32 | 33 | import tdisp96 34 | import vmodel 35 | import numpy as np 36 | model=vmodel.Model1d(modelindex=2) 37 | model.read('test_model.txt') 38 | d_in = model.HArr 39 | TA_in = model.rhoArr * model.VphArr**2 40 | TC_in = model.rhoArr * model.VpvArr**2 41 | TL_in = model.rhoArr * model.VsvArr**2 42 | TF_in = 1.0 * (TA_in - np.float32(2.)* TL_in) 43 | TN_in = model.rhoArr * model.VshArr**2 44 | TRho_in = model.rhoArr 45 | 46 | 47 | ilvry = 1 48 | dt = 1. 49 | npts = 7 50 | iret =1 51 | verby = True 52 | nfval = 7 53 | fval = 1./(np.arange(7)*5.+10.) 54 | fval = np.append(fval, np.zeros(2049-nfval)) 55 | ccmin = -1. 56 | ccmax = -1. 57 | nl_in = TRho_in.size 58 | iflsph_in = 1 # 0 flat, 1: love, 2: rayleigh 59 | refdep_in = 0. 60 | nmode = 1 61 | # 62 | # 63 | c_out,d_out,TA_out,TC_out,TF_out,TL_out,TN_out,TRho_out=tdisp96.disprs(ilvry,dt,npts,iret,verby, nfval,fval,ccmin,ccmax,\ 64 | d_in,TA_in,TC_in,TF_in,TL_in,TN_in,TRho_in,\ 65 | nl_in, iflsph_in, refdep_in, nmode, 0.5, 0.5) 66 | 67 | 68 | # real*8 dimension(nl_in),depend(nl_in) :: d_in 69 | # real*8 dimension(nl_in),depend(nl_in) :: ta_in 70 | # real*8 dimension(nl_in),depend(nl_in) :: tc_in 71 | # real*8 dimension(nl_in),depend(nl_in) :: tf_in 72 | # real*8 dimension(nl_in),depend(nl_in) :: tl_in 73 | # real*8 dimension(nl_in),depend(nl_in) :: tn_in 74 | # real*8 dimension(nl_in),depend(nl_in) :: trho_in 75 | # integer, intent(in) :: nl_in 76 | 77 | -------------------------------------------------------------------------------- /backup_code/tdisp96_src_no_flat2sphere_by_LF/vmodel.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/backup_code/tdisp96_src_no_flat2sphere_by_LF/vmodel.pyc -------------------------------------------------------------------------------- /benchmark_ref/aniprop_reproduce_paper_fig3.py: -------------------------------------------------------------------------------- 1 | import sys 2 | sys.path.append('/home/leon/code/pysurf') 3 | 4 | """ 5 | 6 | """ 7 | import ref 8 | import vmodel 9 | import numpy as np 10 | import matplotlib.pyplot as plt 11 | 12 | m=vmodel.model1d() 13 | m.model_ak135_cps() 14 | m.flat=1 15 | # 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | rsolver = ref.ref_solver(m) 24 | for az in np.arange(12)*30.+15.: 25 | rsolver.solve_anirec_reproduce(az=az) 26 | rsolver.plot_az_rf(comp='R') 27 | # 28 | # ax=plt.subplot() 29 | # ax.plot(rsolver.time, rsolver.rf, 'k-') 30 | # tfill=rsolver.time[rsolver.rf>0] 31 | # yfill=rsolver.rf[rsolver.rf>0] 32 | # ax.fill_between(tfill, 0., yfill, color='red', linestyle='--', lw=0., alpha=0.3) 33 | # 34 | # ax.plot(rsolver.time, rsolver.rfr, 'k--') 35 | # tfill=rsolver.time[rsolver.rfr>0] 36 | # yfill=rsolver.rfr[rsolver.rfr>0] 37 | # ax.fill_between(tfill, 0., yfill, color='blue', linestyle='--', lw=0., alpha=0.3) 38 | # 39 | # # tfill=rsolver.time[rsolver.rf<0] 40 | # # yfill=rsolver.rf[rsolver.rf<0] 41 | # # ax.fill_between(tfill, 0., yfill, color='blue', linestyle='--', lw=0.) 42 | # 43 | # plt.show() -------------------------------------------------------------------------------- /benchmark_ref/anirec_raysum.py: -------------------------------------------------------------------------------- 1 | import sys 2 | sys.path.append('/home/leon/code/pysurf') 3 | 4 | """ 5 | 6 | """ 7 | import ref 8 | import vmodel 9 | import numpy as np 10 | import matplotlib.pyplot as plt 11 | 12 | m=vmodel.model1d() 13 | m.model_ak135_cps() 14 | m.flat=1 15 | # 16 | 17 | # m.add_perturb_layer(0, 35., 0, 3.2, False) 18 | # m.add_perturb_layer(0, 35., 1, 3.2, False) 19 | # m.add_perturb_layer(0, 35., 2, 5.8, False) 20 | # m.add_perturb_layer(0, 35., 3, 5.8, False) 21 | # m.add_perturb_layer(0, 35., 4, 1.0, False) 22 | # m.add_perturb_layer(0, 35., 5, 2.73, False) 23 | 24 | 25 | 26 | rsolver1 = ref.ref_solver(m) 27 | rsolver1.init_default_2() 28 | rsolver1.solve_anirec() 29 | 30 | rsolver2 = ref.ref_solver(m) 31 | rsolver2.init_default_2() 32 | rsolver2.solve_raysum() 33 | 34 | 35 | ax=plt.subplot() 36 | rf1 = rsolver1.rfrst[0] 37 | ax.plot(rsolver1.time, rf1, 'r-', lw=3) 38 | # tfill=rsolver.time[rsolver.rf>0] 39 | # yfill=rsolver.rf[rsolver.rf>0] 40 | # ax.fill_between(tfill, 0., yfill, color='red', linestyle='--', lw=0., alpha=0.3) 41 | 42 | # ax.plot(rsolver.time, rsolver.rfr, 'b-') 43 | 44 | 45 | rf2 = rsolver2.rfrst[0] 46 | rf2 = rf2/rf2.max()*rf1.max() 47 | 48 | ax.plot(rsolver1.time, rf2, 'b--', lw=3) 49 | 50 | # tfill=rsolver.time[rsolver.rf<0] 51 | # yfill=rsolver.rf[rsolver.rf<0] 52 | # ax.fill_between(tfill, 0., yfill, color='blue', linestyle='--', lw=0.) 53 | 54 | plt.show() -------------------------------------------------------------------------------- /benchmark_ref/iso_anirec_raysum.py: -------------------------------------------------------------------------------- 1 | import sys 2 | sys.path.append('/home/leon/code/pysurf') 3 | 4 | """ 5 | 6 | """ 7 | import ref 8 | import vmodel 9 | import numpy as np 10 | import matplotlib.pyplot as plt 11 | 12 | m=vmodel.model1d() 13 | m.model_ak135_cps() 14 | m.flat=1 15 | # 16 | 17 | # m.add_perturb_layer(0, 35., 0, 3.2, False) 18 | # m.add_perturb_layer(0, 35., 1, 3.2, False) 19 | # m.add_perturb_layer(0, 35., 2, 5.8, False) 20 | # m.add_perturb_layer(0, 35., 3, 5.8, False) 21 | # m.add_perturb_layer(0, 35., 4, 1.0, False) 22 | # m.add_perturb_layer(0, 35., 5, 2.73, False) 23 | 24 | 25 | 26 | rsolver1 = ref.ref_solver(m) 27 | rsolver1.init_default_2() 28 | rsolver1.solve_anirec() 29 | 30 | rsolver2 = ref.ref_solver(m) 31 | rsolver2.init_default_2() 32 | rsolver2.solve_raysum() 33 | 34 | 35 | ax=plt.subplot() 36 | rf1 = rsolver1.rfrst[0] 37 | ax.plot(rsolver1.time, rf1, 'r-', lw=3) 38 | # tfill=rsolver.time[rsolver.rf>0] 39 | # yfill=rsolver.rf[rsolver.rf>0] 40 | # ax.fill_between(tfill, 0., yfill, color='red', linestyle='--', lw=0., alpha=0.3) 41 | 42 | # ax.plot(rsolver.time, rsolver.rfr, 'b-') 43 | 44 | 45 | rf2 = rsolver2.rfrst[0] 46 | rf2 = rf2/rf2.max()*rf1.max() 47 | 48 | ax.plot(rsolver1.time, rf2, 'b--', lw=3) 49 | 50 | # tfill=rsolver.time[rsolver.rf<0] 51 | # yfill=rsolver.rf[rsolver.rf<0] 52 | # ax.fill_between(tfill, 0., yfill, color='blue', linestyle='--', lw=0.) 53 | 54 | plt.show() -------------------------------------------------------------------------------- /benchmark_ref/theo_anirec_ak135.py: -------------------------------------------------------------------------------- 1 | import sys 2 | sys.path.append('/home/leon/code/pysurf') 3 | 4 | """ 5 | 6 | """ 7 | import ref 8 | import vmodel 9 | import numpy as np 10 | import matplotlib.pyplot as plt 11 | 12 | m=vmodel.model1d() 13 | m.model_ak135_cps() 14 | m.flat=1 15 | # 16 | 17 | m.add_perturb_layer(0, 35., 0, 3.2, False) 18 | m.add_perturb_layer(0, 35., 1, 3.2, False) 19 | m.add_perturb_layer(0, 35., 2, 5.8, False) 20 | m.add_perturb_layer(0, 35., 3, 5.8, False) 21 | m.add_perturb_layer(0, 35., 4, 1.0, False) 22 | m.add_perturb_layer(0, 35., 5, 2.73, False) 23 | 24 | 25 | 26 | 27 | rsolver = ref.ref_solver(m) 28 | rsolver.init_default() 29 | rsolver.solve_theo() 30 | rsolver.solve_aniprop() 31 | 32 | ax=plt.subplot() 33 | ax.plot(rsolver.time, rsolver.rf, 'k-') 34 | tfill=rsolver.time[rsolver.rf>0] 35 | yfill=rsolver.rf[rsolver.rf>0] 36 | ax.fill_between(tfill, 0., yfill, color='red', linestyle='--', lw=0., alpha=0.3) 37 | 38 | ax.plot(rsolver.time, rsolver.rfr, 'k--') 39 | tfill=rsolver.time[rsolver.rfr>0] 40 | yfill=rsolver.rfr[rsolver.rfr>0] 41 | ax.fill_between(tfill, 0., yfill, color='blue', linestyle='--', lw=0., alpha=0.3) 42 | 43 | # tfill=rsolver.time[rsolver.rf<0] 44 | # yfill=rsolver.rf[rsolver.rf<0] 45 | # ax.fill_between(tfill, 0., yfill, color='blue', linestyle='--', lw=0.) 46 | 47 | plt.show() -------------------------------------------------------------------------------- /benchmark_ref/theo_raysum_ak135.py: -------------------------------------------------------------------------------- 1 | import sys 2 | sys.path.append('/home/leon/code/pysurf') 3 | 4 | """ 5 | 6 | """ 7 | import ref 8 | import vmodel 9 | import numpy as np 10 | import matplotlib.pyplot as plt 11 | 12 | m=vmodel.model1d() 13 | m.model_ak135_cps() 14 | m.flat=1 15 | # 16 | 17 | # m.add_perturb_layer(0, 35., 0, 3.2, False) 18 | # m.add_perturb_layer(0, 35., 1, 3.2, False) 19 | # m.add_perturb_layer(0, 35., 2, 5.8, False) 20 | # m.add_perturb_layer(0, 35., 3, 5.8, False) 21 | # m.add_perturb_layer(0, 35., 4, 1.0, False) 22 | # m.add_perturb_layer(0, 35., 5, 2.73, False) 23 | 24 | 25 | 26 | rsolver = ref.ref_solver(m) 27 | rsolver.init_default_2() 28 | rsolver.solve_theo() 29 | rsolver.solve_raysum() 30 | # rsolver.solve_anirec() 31 | rsolver.deconvolve_raysum() 32 | 33 | ax=plt.subplot() 34 | ax.plot(rsolver.time, rsolver.rf, 'k-') 35 | tfill=rsolver.time[rsolver.rf>0] 36 | yfill=rsolver.rf[rsolver.rf>0] 37 | ax.fill_between(tfill, 0., yfill, color='red', linestyle='--', lw=0., alpha=0.3) 38 | 39 | # ax.plot(rsolver.time, rsolver.rfr, 'b-') 40 | 41 | 42 | rfr = rsolver.rfrst[0] 43 | rfr = rfr/rfr.max()*rsolver.rf.max() 44 | ax.plot(rsolver.time, rfr, 'k--') 45 | tfill=rsolver.time[rfr>0] 46 | yfill=rfr[rfr>0] 47 | ax.fill_between(tfill, 0., yfill, color='blue', linestyle='--', lw=0., alpha=0.3) 48 | 49 | # tfill=rsolver.time[rsolver.rf<0] 50 | # yfill=rsolver.rf[rsolver.rf<0] 51 | # ax.fill_between(tfill, 0., yfill, color='blue', linestyle='--', lw=0.) 52 | 53 | plt.show() -------------------------------------------------------------------------------- /benchmark_ref/tilt_raysum.py: -------------------------------------------------------------------------------- 1 | import sys 2 | sys.path.append('/home/leon/code/pysurf') 3 | 4 | """ 5 | 6 | """ 7 | import ref 8 | import vmodel 9 | import numpy as np 10 | import matplotlib.pyplot as plt 11 | 12 | m=vmodel.model1d() 13 | m.model_ak135_cps() 14 | m.flat=1 15 | # 16 | 17 | 18 | # 19 | 20 | # m.add_perturb_layer(0, 200., 0, 4.6, False) 21 | # m.add_perturb_layer(0, 200., 1, 4.6, False) 22 | # m.add_perturb_layer(0, 200., 2, 8.0, False) 23 | # m.add_perturb_layer(0, 200., 3, 8.0, False) 24 | # m.add_perturb_layer(0, 200., 4, 1., False) 25 | # m.add_perturb_layer(0, 200., 5, 3.3, False) 26 | # 27 | # m.add_perturb_layer(0, 30., 0, 3.2, False) 28 | # m.add_perturb_layer(0, 30., 1, 3.2, False) 29 | # m.add_perturb_layer(0, 30., 2, 5.8, False) 30 | # m.add_perturb_layer(0, 30., 3, 5.8, False) 31 | # m.add_perturb_layer(0, 30., 4, 1.0, False) 32 | # m.add_perturb_layer(0, 30., 5, 2.73, False) 33 | 34 | # m.add_perturb_layer_love(0, 30., 0, 0.1, True) 35 | # m.add_perturb_layer_love(0, 30., 1, -0.1, True) 36 | m.add_perturb_layer_love(0, 20., 3, -0.05, True) 37 | m.add_perturb_layer_love(0, 20., 4, 0.05, True) 38 | # 39 | m.init_tilt() 40 | m.dipArr[-1] = 90; m.dipArr[-2] = 90#; m.dipArr[-3] = 90; m.dipArr[-4] = 90 41 | # m.dipArr[-1] = 10; m.dipArr[-2] = 10; m.dipArr[-3] = 10; m.dipArr[-4] = 10 42 | m.strikeArr[-1] = 0; m.strikeArr[-2] = 0 43 | 44 | # 45 | # 46 | rsolver1 = ref.ref_solver(m) 47 | rsolver1.init_default_2() 48 | rsolver1.solve_raysum(bazin=[0., 90]) 49 | 50 | 51 | ax=plt.subplot() 52 | 53 | for i in xrange(rsolver1.bazArr.size): 54 | ax.plot(rsolver1.time, rsolver1.trROT[0,:,i], '--', lw=3) 55 | 56 | 57 | 58 | 59 | 60 | plt.xlim([0., 20.]) 61 | plt.show() -------------------------------------------------------------------------------- /benchmark_script/benchmark_axisem/ak135f_love_gr.txt: -------------------------------------------------------------------------------- 1 | 10 3.10587 2 | 12 3.16393 3 | 14 3.26264 4 | 16 3.38888 5 | 18 3.52374 6 | 20 3.65184 7 | 22 3.76501 8 | 24 3.86102 9 | 26 3.94085 10 | 28 4.00674 11 | 30 4.06113 12 | 32 4.10619 13 | 34 4.14375 14 | 36 4.17528 15 | 38 4.20193 16 | 40 4.22462 17 | -------------------------------------------------------------------------------- /benchmark_script/benchmark_axisem/ak135f_love_ph.txt: -------------------------------------------------------------------------------- 1 | 10 3.66961 2 | 12 3.80015 3 | 14 3.921 4 | 16 4.02554 5 | 18 4.11165 6 | 20 4.18071 7 | 22 4.23568 8 | 24 4.27965 9 | 26 4.31527 10 | 28 4.34459 11 | 30 4.36912 12 | 32 4.39001 13 | 34 4.40809 14 | 36 4.42397 15 | 38 4.43811 16 | 40 4.45086 17 | -------------------------------------------------------------------------------- /benchmark_script/benchmark_axisem/ak135f_ray_gr.txt: -------------------------------------------------------------------------------- 1 | 10 4.19804 2 | 12 3.21831 3 | 14 nan 4 | 16 4.67423 5 | 18 nan 6 | 20 nan 7 | 22 8.21443 8 | 24 5.40936 9 | 26 6.88224 10 | 28 5.95301 11 | 30 4.01703 12 | 32 4.16037 13 | 34 4.34968 14 | 36 3.97307 15 | 38 4.05414 16 | 40 3.97389 17 | -------------------------------------------------------------------------------- /benchmark_script/benchmark_axisem/ak135f_ray_ph.txt: -------------------------------------------------------------------------------- 1 | 10 3.53843 2 | 12 3.71671 3 | 14 3.82666 4 | 16 3.89075 5 | 18 3.92976 6 | 20 3.95514 7 | 22 3.9728 8 | 24 3.98588 9 | 26 3.9961 10 | 28 4.00447 11 | 30 4.01161 12 | 32 4.01789 13 | 34 4.02357 14 | 36 4.0288 15 | 38 4.0337 16 | 40 4.03835 17 | -------------------------------------------------------------------------------- /benchmark_script/benchmark_tcps/psv_derived_love_kernels.py: -------------------------------------------------------------------------------- 1 | import sys 2 | sys.path.append('/home/leon/code/pysurf') 3 | 4 | """ 5 | Conclusion: 6 | 7 | Flat Earth: 8 | 1. dh = 1., 2., 4.; derived kernels are correct. 9 | But the larger the dh, the larger the difference between the directly-computed and derived kernels! 10 | 11 | Spherical Earth: 12 | 1. dh = 1., 2., 4.; derived kernels are correct 13 | But the larger the dh, the larger the difference between the directly-computed and derived kernels! 14 | 15 | """ 16 | import eigen, tcps 17 | import vmodel 18 | import numpy as np 19 | import matplotlib.pyplot as plt 20 | 21 | m=vmodel.model1d() 22 | m.model_ak135_cps() 23 | m.flat=1 24 | 25 | tcps1 = tcps.tcps_solver(m) 26 | tcps1.init_default() 27 | tcps1.solve_PSV() 28 | 29 | # 30 | # tcps2 = tcps.tcps_solver(m) 31 | # tcps2.init_default(nl=100, dh=2.) 32 | # tcps2.verbose=1 33 | # tcps2.solve_PSV() 34 | # 35 | # tcps3 = tcps.tcps_solver(m) 36 | # tcps3.init_default(nl=50., dh=4.) 37 | # tcps3.verbose=1 38 | # tcps3.solve_PSV() 39 | 40 | # 41 | # 42 | i=5 43 | # # plt.plot(tcps1.dArr.cumsum(), np.abs(tcps1.dcdah[i, :]-tcps1.dcdah1[i, :])/tcps1.dcdah[i, :], 'ro-', ms=10) 44 | # # plt.plot(tcps1.dArr.cumsum(), np.abs(tcps1.dcdah[i, :]-tcps1.dcdah2[i, :])/tcps1.dcdah[i, :], 'bo-', ms=10) 45 | # 46 | # for i in xrange(10): 47 | # plt.plot(tcps1.dArr.cumsum(), tcps1.dcdA[i, :], 'o-', ms=5) 48 | # plt.plot(tcps1.dArr.cumsum(), tcps1.dcdA1[i, :], '^-', ms=5) 49 | # plt.plot(tcps1.dArr.cumsum(), tcps1.dcdA[i, :], 'o-', ms=5) 50 | # plt.plot(tcps1.dArr.cumsum(), tcps1.dcdA1[i, :], '^-', ms=5) 51 | 52 | plt.plot(tcps1.dArr.cumsum(), tcps1.dcdC[i, :], 'o-', ms=5) 53 | plt.plot(tcps1.dArr.cumsum(), tcps1.dcdC1[i, :], '^-', ms=5) 54 | # plt.plot(tcps2.dArr.cumsum(), tcps2.dcdbv[i, :], 'o-', ms=10) 55 | # plt.plot(tcps2.dArr.cumsum(), tcps2.dcdbv1[i, :], '^-', ms=10) 56 | # plt.plot(tcps3.dArr.cumsum(), tcps3.dcdbv[i, :], 'o-', ms=10) 57 | # plt.plot(tcps3.dArr.cumsum(), tcps3.dcdbv1[i, :], '^-', ms=10) 58 | plt.show() 59 | 60 | -------------------------------------------------------------------------------- /benchmark_script/benchmark_tcps/psv_derived_vel_kernels.py: -------------------------------------------------------------------------------- 1 | import sys 2 | sys.path.append('/home/leon/code/pysurf') 3 | 4 | """ 5 | Conclusion: 6 | 7 | Flat Earth: 8 | 1. dh = 1., 2., 4.; derived kernels are correct. 9 | But the larger the dh, the larger the difference between the directly-computed and derived kernels! 10 | 11 | Spherical Earth: 12 | 1. dh = 1., 2., 4.; derived kernels are correct 13 | But the larger the dh, the larger the difference between the directly-computed and derived kernels! 14 | 15 | """ 16 | import eigen, tcps 17 | import vmodel 18 | import numpy as np 19 | import matplotlib.pyplot as plt 20 | 21 | m=vmodel.model1d() 22 | m.model_ak135_cps() 23 | m.flat=1 24 | 25 | tcps1 = tcps.tcps_solver(m) 26 | tcps1.init_default() 27 | tcps1.solve_PSV() 28 | 29 | # 30 | tcps2 = tcps.tcps_solver(m) 31 | tcps2.init_default(nl=100, dh=2.) 32 | tcps2.verbose=1 33 | tcps2.solve_PSV() 34 | 35 | tcps3 = tcps.tcps_solver(m) 36 | tcps3.init_default(nl=50., dh=4.) 37 | tcps3.verbose=1 38 | tcps3.solve_PSV() 39 | 40 | # 41 | # 42 | i=5 43 | # # plt.plot(tcps1.dArr.cumsum(), np.abs(tcps1.dcdah[i, :]-tcps1.dcdah1[i, :])/tcps1.dcdah[i, :], 'ro-', ms=10) 44 | # # plt.plot(tcps1.dArr.cumsum(), np.abs(tcps1.dcdah[i, :]-tcps1.dcdah2[i, :])/tcps1.dcdah[i, :], 'bo-', ms=10) 45 | # 46 | plt.plot(tcps1.dArr.cumsum(), tcps1.dcdbv[i, :], 'o-', ms=10) 47 | plt.plot(tcps1.dArr.cumsum(), tcps1.dcdbv1[i, :], '^-', ms=10) 48 | plt.plot(tcps2.dArr.cumsum(), tcps2.dcdbv[i, :], 'o-', ms=10) 49 | plt.plot(tcps2.dArr.cumsum(), tcps2.dcdbv1[i, :], '^-', ms=10) 50 | plt.plot(tcps3.dArr.cumsum(), tcps3.dcdbv[i, :], 'o-', ms=10) 51 | plt.plot(tcps3.dArr.cumsum(), tcps3.dcdbv1[i, :], '^-', ms=10) 52 | plt.show() 53 | 54 | -------------------------------------------------------------------------------- /benchmark_script/benchmark_tcps/psv_eigen.py: -------------------------------------------------------------------------------- 1 | import sys 2 | sys.path.append('/home/leon/code/pysurf') 3 | 4 | """ 5 | Conclusion: 6 | 7 | 8 | 1. Partial derivatives, dur/dz, duz/dz have been benchmarked! 9 | 2. eigenfunctions, as expected, do not change with layer thickness ! 10 | 3. group velocity computed using (k*I1 + I2)/omege/I0 is NOT very accurate! 11 | 12 | """ 13 | import eigen, tcps 14 | import vmodel 15 | import numpy as np 16 | import matplotlib.pyplot as plt 17 | 18 | 19 | m=vmodel.model1d() 20 | m.model_ak135_cps() 21 | # m.flat=0 22 | 23 | tcps1 = tcps.tcps_solver(m) 24 | tcps1.init_default(dh=1) 25 | tcps1.solve_PSV() 26 | 27 | # 28 | tcps2 = tcps.tcps_solver(m) 29 | tcps2.init_default(nl=100., dh=2.) 30 | tcps2.verbose=1 31 | tcps2.solve_PSV() 32 | # 33 | # 34 | # i=5 35 | # plt.plot(tcps1.dArr.cumsum(), tcps1.durdz[i, :], 'ro-', ms=10) 36 | # plt.plot(tcps1.dArr[1:].cumsum(), tcps1.durdz1[i, :], 'bo-', ms=10) 37 | # # 38 | # for i in xrange(10): 39 | # # plt.figure() 40 | # plt.plot(tcps1.dArr.cumsum(), tcps1.uz[i, :], 'ro-', ms=10) 41 | # plt.plot(tcps2.dArr.cumsum(), tcps2.uz[i, :], 'bo-', ms=10) 42 | # # # # 43 | # # # # plt.figure() 44 | plt.plot(tcps1.T, tcps1.U, 'ro', ms=10) 45 | plt.plot(tcps1.T, tcps1.U1, 'b^', ms=10) 46 | plt.show() 47 | 48 | -------------------------------------------------------------------------------- /benchmark_script/benchmark_tcps/psv_flat_vs_sph_kernels.py: -------------------------------------------------------------------------------- 1 | """ 2 | The kernels are slightly different! 3 | """ 4 | 5 | import tcps 6 | import vmodel 7 | import numpy as np 8 | import matplotlib.pyplot as plt 9 | 10 | m=vmodel.model1d() 11 | m.model_ak135_cps() 12 | m.flat=1 13 | 14 | tcps1 = tcps.tcps_solver(m) 15 | tcps1.init_default() 16 | tcps1.solve_PSV() 17 | 18 | m=vmodel.model1d() 19 | m.model_ak135_cps() 20 | m.earth_flattening() 21 | tcps2 = tcps.tcps_solver(m) 22 | tcps2.init_default() 23 | tcps2.solve_PSV() 24 | 25 | 26 | i=5 27 | plt.plot(tcps1.dArr.cumsum(), tcps1.dcdah[i, :], 'ro-', ms=10) 28 | plt.plot(tcps2.dsph.cumsum(), tcps2.dcdah[i, :], 'bo-', ms=10) 29 | plt.show() 30 | -------------------------------------------------------------------------------- /benchmark_script/benchmark_tcps/sh_derived_vel_kernels.py: -------------------------------------------------------------------------------- 1 | import sys 2 | sys.path.append('/home/lili/code/pysurf') 3 | sys.path.append('/home/leon/code/pysurf') 4 | 5 | """ 6 | Conclusion: 7 | 8 | Only test T = 30. sec 9 | 10 | Flat Earth: 11 | 1. dh = 1., 2., 4.; derived kernels are correct. 12 | But the larger the dh, the larger the difference between the directly-computed and derived kernels! 13 | 14 | Spherical Earth: 15 | 1. dh = 1., 2., 4.; derived kernels are correct 16 | But the larger the dh, the larger the difference between the directly-computed and derived kernels! 17 | 18 | """ 19 | import eigen, tcps 20 | import vmodel 21 | import numpy as np 22 | import matplotlib.pyplot as plt 23 | 24 | m=vmodel.model1d() 25 | m.model_ak135_cps() 26 | m.flat=0 27 | 28 | tcps1 = tcps.tcps_solver(m) 29 | tcps1.init_default() 30 | tcps1.solve_SH() 31 | 32 | # 33 | tcps2 = tcps.tcps_solver(m) 34 | tcps2.init_default(nl=100, dh=2.) 35 | tcps2.verbose=1 36 | tcps2.solve_SH() 37 | 38 | tcps3 = tcps.tcps_solver(m) 39 | tcps3.init_default(nl=50., dh=4.) 40 | tcps3.verbose=1 41 | tcps3.solve_SH() 42 | 43 | # 44 | # 45 | i=5 46 | # # plt.plot(tcps1.dArr.cumsum(), np.abs(tcps1.dcdah[i, :]-tcps1.dcdah1[i, :])/tcps1.dcdah[i, :], 'ro-', ms=10) 47 | # # plt.plot(tcps1.dArr.cumsum(), np.abs(tcps1.dcdah[i, :]-tcps1.dcdah2[i, :])/tcps1.dcdah[i, :], 'bo-', ms=10) 48 | # 49 | plt.plot(tcps1.dArr.cumsum(), tcps1.dcdr[i, :], 'o-', ms=10) 50 | plt.plot(tcps1.dArr.cumsum(), tcps1.dcdr1[i, :], '^-', ms=10) 51 | plt.plot(tcps2.dArr.cumsum(), tcps2.dcdr[i, :], 'o-', ms=10) 52 | plt.plot(tcps2.dArr.cumsum(), tcps2.dcdr1[i, :], '^-', ms=10) 53 | plt.plot(tcps3.dArr.cumsum(), tcps3.dcdr[i, :], 'o-', ms=10) 54 | plt.plot(tcps3.dArr.cumsum(), tcps3.dcdr1[i, :], '^-', ms=10) 55 | plt.show() 56 | 57 | -------------------------------------------------------------------------------- /benchmark_script/benchmark_tcps/sh_eigen.py: -------------------------------------------------------------------------------- 1 | import sys 2 | sys.path.append('/home/leon/code/pysurf') 3 | 4 | """ 5 | Conclusion: 6 | 7 | 8 | 1. Partial derivatives, dut/dz have been benchmarked! 9 | 2. eigenfunctions, as expected, do not change with layer thickness ! 10 | 3. group velocity computed using (k*I1)/omege/I0 is NOT very accurate for long periods 11 | 12 | """ 13 | import eigen, tcps 14 | import vmodel 15 | import numpy as np 16 | import matplotlib.pyplot as plt 17 | 18 | 19 | m=vmodel.model1d() 20 | m.model_ak135_cps() 21 | m.flat=1 22 | 23 | tcps1 = tcps.tcps_solver(m) 24 | tcps1.init_default() 25 | tcps1.verbose=1 26 | tcps1.solve_SH() 27 | 28 | # 29 | tcps2 = tcps.tcps_solver(m) 30 | tcps2.init_default(nl=100., dh=2.) 31 | tcps2.verbose=1 32 | tcps2.solve_SH() 33 | # 34 | # 35 | # i=5 36 | plt.plot(tcps1.dArr.cumsum(), tcps1.dutdz[i, :], 'ro-', ms=10) 37 | plt.plot(tcps1.dArr[1:].cumsum(), tcps1.dutdz1[i, :], 'bo-', ms=10) 38 | # # 39 | for i in xrange(10): 40 | plt.plot(tcps1.dArr.cumsum(), tcps1.dcdbv[i, :], 'ro-', ms=10) 41 | plt.plot(tcps1.dArr.cumsum(), tcps1.dcdbh[i, :], 'bo-', ms=10) 42 | 43 | # # plt.figure() 44 | # plt.plot(tcps1.dArr.cumsum(), tcps1.ut[i, :], 'ro-', ms=10) 45 | # plt.plot(tcps2.dArr.cumsum(), tcps2.ut[i, :], 'bo-', ms=10) 46 | # plt.plot(tcps1.dArr.cumsum(), tcps1.dutdz[i, :], 'ro-', ms=10) 47 | # plt.plot(tcps1.dArr[1:].cumsum(), tcps1.dutdz1[i, :], 'bo-', ms=10) 48 | # # # # 49 | # # # # plt.figure() 50 | plt.plot(tcps1.T, tcps1.U, 'ro', ms=10) 51 | plt.plot(tcps1.T, tcps1.U1, 'b^', ms=10) 52 | plt.show() 53 | 54 | -------------------------------------------------------------------------------- /benchmark_script/benchmark_tcps_vs_pysurf/phaseV.py: -------------------------------------------------------------------------------- 1 | import sys 2 | sys.path.append('/home/leon/code/pysurf') 3 | 4 | """ 5 | Conclusion: 6 | 1. Flat model 7 | eig : dr = 1000. m; rmin = 6071000 m 8 | tcps: h = 1 km, zmax = 200 km 9 | Results : difference > 0.5 % when T > 55. 10 | 11 | 2. Spherical model 12 | eig : dr = 1000. m; rmin = 6071000 m 13 | tcps: h = 1 km, zmax = 200 km 14 | Results : difference > 0.5 % when T > 55. 15 | 16 | 3. Spherical model 17 | coarse layer(tcps2.init_default_2()) of tcps is less accurate compared with eig 18 | finer layer of tcps is the most accurate 19 | """ 20 | import eigen, tcps 21 | import vmodel 22 | import numpy as np 23 | import matplotlib.pyplot as plt 24 | 25 | m=vmodel.model1d() 26 | m=vmodel.model1d() 27 | m=vmodel.read_model(m, 'ak135.txt') 28 | # m.earth_flattening() 29 | eig1 = eigen.eigen_solver(m) 30 | eig1.init_default() 31 | eig1.solve_PSV() 32 | 33 | 34 | tcps1 = tcps.tcps_solver(m) 35 | tcps1.init_default() 36 | tcps1.solve_PSV() 37 | 38 | tcps2 = tcps.tcps_solver(m) 39 | tcps2.init_default_2() 40 | tcps2.verbose=1 41 | tcps2.solve_PSV() 42 | 43 | 44 | plt.plot((eig1.T), (eig1.Vph[0,:]/1000.), 'ro', ms=10) 45 | plt.plot(tcps1.T, tcps1.Vph, 'bx', ms=10) 46 | plt.show() 47 | 48 | -------------------------------------------------------------------------------- /benchmark_script/benchmark_tcps_vs_pysurf/psv_disp.py: -------------------------------------------------------------------------------- 1 | import sys 2 | sys.path.append('/home/leon/code/pysurf') 3 | 4 | """ 5 | Conclusion: 6 | A. Phase Velocity 7 | 1. Flat model 8 | eig : dr = 1000. m; rmin = 6071000 m 9 | tcps: h = 1 km, zmax = 200 km 10 | Results : difference > 0.5 % when T > 55. 11 | 12 | 2. Spherical model 13 | eig : dr = 1000. m; rmin = 6071000 m 14 | tcps: h = 1 km, zmax = 200 km 15 | Results : difference > 0.5 % when T > 55. 16 | 17 | 3. Spherical model 18 | coarse layer(tcps2.init_default_2()) of tcps is less accurate compared with eig 19 | finer layer of tcps is the most accurate 20 | 21 | B. Group Velocity 22 | eigen is not accurate for short period, need correction ! 23 | """ 24 | import eigen, tcps 25 | import vmodel 26 | import numpy as np 27 | import matplotlib.pyplot as plt 28 | 29 | m=vmodel.model1d() 30 | m=vmodel.model1d() 31 | m=vmodel.read_model(m, 'ak135.txt') 32 | m.earth_flattening() 33 | eig1 = eigen.eigen_solver(m) 34 | eig1.init_default() 35 | eig1.solve_PSV() 36 | 37 | 38 | tcps1 = tcps.tcps_solver(m) 39 | tcps1.init_default() 40 | tcps1.solve_PSV() 41 | 42 | tcps2 = tcps.tcps_solver(m) 43 | tcps2.init_default_2() 44 | tcps2.verbose=1 45 | tcps2.solve_PSV() 46 | 47 | plt.figure() 48 | plt.plot((eig1.r), (eig1.r1data[0,0,:]), 'ro', ms=10) 49 | plt.plot(tcps1.T, tcps1.Vph, 'b^', ms=10) 50 | 51 | plt.figure() 52 | plt.plot((eig1.T), (eig1.Vgr[0,:]/1000.), 'ro', ms=10) 53 | plt.plot(tcps1.T, tcps1.Vgr, 'b^', ms=10) 54 | plt.show() 55 | 56 | -------------------------------------------------------------------------------- /benchmark_script/benchmark_tcps_vs_pysurf/psv_eigenfunction.py: -------------------------------------------------------------------------------- 1 | import sys 2 | sys.path.append('/home/leon/code/pysurf') 3 | 4 | """ 5 | Conclusion: 6 | 7 | eigen's r1 and r3 are only accurate for intermediate periods, need correction 8 | 9 | eigen's r3 has opposite sign compared with tcps's r3 10 | 11 | eigen's r2 and r4 seems to be wrong (extremely large values), need correction 12 | 13 | 14 | """ 15 | import eigen, tcps 16 | import vmodel 17 | import numpy as np 18 | import matplotlib.pyplot as plt 19 | 20 | m=vmodel.model1d() 21 | m=vmodel.model1d() 22 | m=vmodel.read_model(m, 'ak135.txt') 23 | # m.earth_flattening() 24 | eig1 = eigen.eigen_solver(m) 25 | eig1.init_default() 26 | eig1.solve_PSV() 27 | 28 | 29 | tcps1 = tcps.tcps_solver(m) 30 | tcps1.init_default() 31 | tcps1.solve_PSV() 32 | 33 | tcps2 = tcps.tcps_solver(m) 34 | tcps2.init_default(nl=100., dh=2.) 35 | tcps2.verbose=1 36 | tcps2.solve_PSV() 37 | 38 | 39 | # i=5 40 | # plt.plot((6371000. - eig1.r[::-1])/1000., (eig1.r3data[0,i,::-1]), 'ro-', ms=10) 41 | # plt.plot(tcps1.dArr.cumsum(), tcps1.r3data[i, :], 'bo-', ms=10) 42 | 43 | for i in xrange(10): 44 | # plt.figure() 45 | plt.plot((6371000. - eig1.r[::-1])/1000., (eig1.r3data[0,i,::-1]), 'ro-', ms=10) 46 | plt.plot(tcps1.dArr.cumsum(), -tcps1.r3data[i, :], 'bo-', ms=10) 47 | # plt.plot(tcps2.dArr.cumsum(), tcps2.r1data[5, :], 'kx-', ms=10) 48 | # 49 | # plt.figure() 50 | # plt.plot((eig1.T), (eig1.Vgr[0,:]/1000.), 'ro', ms=10) 51 | # plt.plot(tcps1.T, tcps1.Vgr, 'b^', ms=10) 52 | plt.show() 53 | 54 | -------------------------------------------------------------------------------- /benchmark_script/benchmark_tcps_vs_pysurf/psv_groupV.py: -------------------------------------------------------------------------------- 1 | import sys 2 | sys.path.append('/home/leon/code/pysurf') 3 | 4 | """ 5 | Conclusion: 6 | 1. Flat model 7 | eig : dr = 1000. m; rmin = 6071000 m 8 | tcps: h = 1 km, zmax = 200 km 9 | Results : difference > 0.5 % when T > 55. 10 | 11 | 2. Spherical model 12 | eig : dr = 1000. m; rmin = 6071000 m 13 | tcps: h = 1 km, zmax = 200 km 14 | Results : difference > 0.5 % when T > 55. 15 | 16 | 3. Spherical model 17 | coarse layer(tcps2.init_default_2()) of tcps is less accurate compared with eig 18 | finer layer of tcps is the most accurate 19 | """ 20 | import eigen, tcps 21 | import vmodel 22 | import numpy as np 23 | import matplotlib.pyplot as plt 24 | 25 | m=vmodel.model1d() 26 | m=vmodel.model1d() 27 | m=vmodel.read_model(m, 'ak135.txt') 28 | # m.earth_flattening() 29 | eig1 = eigen.eigen_solver(m) 30 | eig1.init_default() 31 | eig1.solve_PSV() 32 | 33 | 34 | tcps1 = tcps.tcps_solver(m) 35 | tcps1.init_default() 36 | tcps1.solve_PSV() 37 | 38 | tcps2 = tcps.tcps_solver(m) 39 | tcps2.init_default_2() 40 | tcps2.verbose=1 41 | tcps2.solve_PSV() 42 | 43 | 44 | plt.plot((eig1.T), (eig1.Vgr[0,:]/1000.), 'ro', ms=10) 45 | plt.plot(tcps1.T, tcps1.Vgr, 'bx', ms=10) 46 | plt.show() 47 | 48 | -------------------------------------------------------------------------------- /benchmark_script/benchmark_tcps_vs_pysurf/psv_kernels.py: -------------------------------------------------------------------------------- 1 | import sys 2 | sys.path.append('/home/leon/code/pysurf') 3 | 4 | """ 5 | Conclusion: 6 | 7 | kernels for vph/vpv has from eigen is about 8 times larger compared with tcps 8 | 9 | 10 | 11 | 12 | """ 13 | import eigen, tcps 14 | import vmodel 15 | import numpy as np 16 | import matplotlib.pyplot as plt 17 | 18 | m=vmodel.model1d() 19 | m=vmodel.model1d() 20 | m=vmodel.read_model(m, 'ak135.txt') 21 | # m.earth_flattening() 22 | eig1 = eigen.eigen_solver(m) 23 | eig1.init_default() 24 | eig1.solve_PSV() 25 | 26 | 27 | tcps1 = tcps.tcps_solver(m) 28 | tcps1.init_default() 29 | tcps1.solve_PSV() 30 | 31 | tcps2 = tcps.tcps_solver(m) 32 | tcps2.init_default(nl=100., dh=2.) 33 | tcps2.verbose=1 34 | tcps2.solve_PSV() 35 | 36 | 37 | i=5 38 | plt.plot((6371000. - eig1.r[::-1])/1000., (eig1.Kvsvdata[0,i,::-1]), 'ro-', ms=10) 39 | plt.plot(tcps1.dArr.cumsum(), tcps1.Kvsvdata[i, :]*4., 'bo-', ms=10) 40 | # 41 | # for i in xrange(10): 42 | # # plt.figure() 43 | # plt.plot((6371000. - eig1.r[::-1])/1000., (eig1.Kvphdata[0,i,::-1]), 'ro-', ms=10) 44 | # plt.plot(tcps1.dArr.cumsum(), -tcps1.Kvphdata[i, :]*8., 'b^-', ms=10) 45 | # # plt.plot(tcps2.dArr.cumsum(), tcps2.r1data[5, :], 'kx-', ms=10) 46 | # # 47 | # # plt.figure() 48 | # # plt.plot((eig1.T), (eig1.Vgr[0,:]/1000.), 'ro', ms=10) 49 | # # plt.plot(tcps1.T, tcps1.Vgr, 'b^', ms=10) 50 | plt.show() 51 | 52 | -------------------------------------------------------------------------------- /benchmark_script/benchmark_tcps_vs_pysurf/sh_disp.py: -------------------------------------------------------------------------------- 1 | import sys 2 | sys.path.append('/home/leon/code/pysurf') 3 | 4 | """ 5 | Conclusion: 6 | A. Phase Velocity 7 | 1. Flat model 8 | eig : dr = 1000. m; rmin = 6071000 m 9 | tcps: h = 1 km, zmax = 200 km 10 | Results : difference > 0.5 % when T > 55. 11 | 12 | 2. Spherical model 13 | eig : dr = 1000. m; rmin = 6071000 m 14 | tcps: h = 1 km, zmax = 200 km 15 | Results : difference > 0.5 % when T > 55. 16 | 17 | 3. Spherical model 18 | coarse layer(tcps2.init_default_2()) of tcps is less accurate compared with eig 19 | finer layer of tcps is the most accurate 20 | 21 | B. Group Velocity 22 | eigen is not accurate for short period, need correction ! 23 | """ 24 | import eigen, tcps 25 | import vmodel 26 | import numpy as np 27 | import matplotlib.pyplot as plt 28 | 29 | m=vmodel.model1d() 30 | m=vmodel.model1d() 31 | m=vmodel.read_model(m, 'ak135.txt') 32 | # m.earth_flattening() 33 | 34 | eig1 = eigen.eigen_solver(m) 35 | eig1.init_default() 36 | eig1.solve_SH() 37 | 38 | 39 | tcps1 = tcps.tcps_solver(m) 40 | tcps1.init_default() 41 | tcps1.solve_SH() 42 | 43 | tcps2 = tcps.tcps_solver(m) 44 | tcps2.init_default_2() 45 | tcps2.verbose=1 46 | tcps2.solve_SH() 47 | 48 | plt.figure() 49 | plt.plot((eig1.T), (eig1.Vph[0,:]/1000.), 'ro', ms=10) 50 | plt.plot(tcps1.T, tcps1.Vph, 'b^', ms=10) 51 | 52 | plt.figure() 53 | plt.plot((eig1.T), (eig1.Vgr[0,:]/1000.), 'ro', ms=10) 54 | plt.plot(tcps1.T, tcps1.Vgr, 'b^', ms=10) 55 | plt.show() 56 | 57 | -------------------------------------------------------------------------------- /benchmark_tilt/iso_ak135.py: -------------------------------------------------------------------------------- 1 | import sys 2 | sys.path.append('/home/leon/code/pysurf') 3 | 4 | """ 5 | Conclusion: 6 | 7 | Flat Earth: 8 | T = 5 - 100. sec, dT = 5 sec 9 | Results are perfectly consistent (< ~ 0.02%) 10 | 11 | Spherical Earth: 12 | T = 5 - 100. sec, dT = 5 sec 13 | Results are consistent (< ~ 0.1%), result can be more consistent if nl is larger and dh is smaller. But this is computationally more expensive. 14 | 15 | """ 16 | import eigen, tcps, aniproppy 17 | import vmodel 18 | import numpy as np 19 | import matplotlib.pyplot as plt 20 | 21 | m=vmodel.model1d() 22 | m.model_ak135_cps() 23 | m.flat=1 24 | 25 | tcpsR = tcps.tcps_solver(m) 26 | tcpsR.init_default_2() 27 | tcpsR.solve_PSV() 28 | 29 | tcpsL = tcps.tcps_solver(m) 30 | tcpsL.init_default_2() 31 | tcpsL.solve_SH() 32 | # 33 | ani = aniproppy.aniprop_solver(m) 34 | # ani.init_default(nl=50, dh=4.) 35 | ani.init_default_2() 36 | ani.solve_surf(0.) 37 | 38 | 39 | # 40 | # m.flat=1 41 | # 42 | # tcpsRf = tcps.tcps_solver(m) 43 | # tcpsRf.init_default(nl=50, dh=4) 44 | # tcpsRf.solve_PSV() 45 | # 46 | # 47 | # anif = aniproppy.aniprop_solver(m) 48 | # anif.init_default(nl=50, dh=4) 49 | # anif.solve_surf() 50 | 51 | dcr = (tcpsR.C - ani.CR)/tcpsR.C*100. 52 | dur = (tcpsR.U - ani.UR)/tcpsR.U*100. 53 | dcl = (tcpsL.C - ani.CL)/tcpsL.C*100. 54 | dul = (tcpsL.U - ani.UL)/tcpsL.U*100. 55 | print np.abs(dcr).max(), np.abs(dur).max(), np.abs(dcl).max(), np.abs(dul).max() -------------------------------------------------------------------------------- /compile_all.sh: -------------------------------------------------------------------------------- 1 | cdir=`pwd` 2 | echo $cdir 3 | cd $cdir/tdisp96_src 4 | ./compile_tdisp96.sh 5 | 6 | cd $cdir/tregn96_src 7 | ./compile_tregn96.sh 8 | 9 | cd $cdir/tlegn96_src 10 | ./compile_tlegn96.sh 11 | 12 | cd $cdir/aniprop_src 13 | ./compile_aniprop.sh 14 | 15 | cd $cdir/rftheo_src 16 | ./compile_theo.sh 17 | 18 | cd $cdir/fast_surf_src 19 | ./compile_fast_surf.sh 20 | 21 | cd $cdir/raysum_src 22 | ./compile_raysum.sh 23 | -------------------------------------------------------------------------------- /database.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/database.pyc -------------------------------------------------------------------------------- /eigen.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/eigen.pyc -------------------------------------------------------------------------------- /fast_surf.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/fast_surf.so -------------------------------------------------------------------------------- /fast_surf_src/compile_fast_surf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #rm -f fast_surf.pyf 3 | #f2py fast_surf.f flat1.f init.f calcul.f surfa.f mchdepsun.f -m fast_surf -h fast_surf.pyf 4 | #cp temp/fast_surf.pyf ./ 5 | #f2py -c fast_surf.pyf fast_surf.f flat1.f init.f calcul.f surfa.f mchdepsun.f -lfftw3 --f77flags=-ffixed-line-length-none --fcompiler=gfortran 6 | f2py -c --f77flags="-ffixed-line-length-none -O3" --f90flags="-O3" --fcompiler=gfortran fast_surf.pyf fast_surf.f flat1.f init.f calcul.f surfa.f mchdepsun.f 7 | cp fast_surf.so .. 8 | -------------------------------------------------------------------------------- /fast_surf_src/fast_surf.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/fast_surf_src/fast_surf.so -------------------------------------------------------------------------------- /fast_surf_src/fib2.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/fast_surf_src/fib2.so -------------------------------------------------------------------------------- /fast_surf_src/flat1.f: -------------------------------------------------------------------------------- 1 | C------------------------------------------------------- 2 | subroutine flat1(h,ro,vp,vs,n,kind) 3 | C------------------------------------------------------- 4 | 5 | c subroutine applies earth-flattening corrections by 6 | c scaling the model.for reference see Biswas 1972. 7 | c kind=1 for Love wave calculations 8 | c kind=2 for Rayleigh wave calculations 9 | c h -is thickness 10 | 11 | c-input h,ro,vp,vs,n,kind; output h1,ro1,vp1,vs1. 12 | C TRANSFORMATION 13 | C-----R(i)-radius of i-th boundary (free surfase is ignored) 14 | C-----h(i) by R0*(ln(R0/R(i))-ln(R0/R(i-1));R(0)=R0 15 | C-----vs,vp mult by factor "dif"=R0*(1/R(i+1)-1/R(i))/ln(R(i)/R(i+1)) 16 | C-----ro mult by factor (R(i)**pwr-R(i+1)**pwr)/(ln(R(i)/R(i+1))*pwr*R0**pwr) 17 | C-----for Rayleigh pwr=2.275 18 | C-----for Love pwr=5.000 19 | 20 | real*4 h(2),ro(2),vp(2),vs(2),hh(1000) 21 | data a/6371.0/ 22 | c write(*,*) 'input vs vp:',vs(1),vp(1) LF 23 | do i=1,n 24 | hh(i)=h(i) 25 | cc write(*,*) "hh and h",hh(i),h(i) 26 | enddo 27 | pwr=2.2750 28 | if(kind.eq.1) pwr=5.0 29 | nm=n-1 30 | hs=0.0 31 | 32 | C-----transfer thickness in radius------ 33 | do 5 i=1,n 34 | ht=hs 35 | hs=hs+hh(i) 36 | c write(*,*) "hhi::::: radias:::",a,hs,hh(i),ht,a-ht 37 | 5 hh(i)=a-ht 38 | c write(*,*) "hhi::::: radias:::",hh(i) 39 | C-----now hh(i) are radii (starting from the first boundary) 40 | c -layers' scaling 41 | do 10 i=1,nm 42 | 43 | ii=i+1 44 | fltd=alog(hh(i)/hh(ii)) 45 | c write(*,*) "hhi, hhii:",hh(i),hh(ii) 46 | dif=(1.0/hh(ii)-1.0/hh(i))*a/fltd 47 | difr=hh(i)**pwr-hh(ii)**pwr 48 | qqq=difr/(fltd*(a**pwr)*pwr) 49 | ro(i)=ro(i)*qqq 50 | vp(i)=vp(i)*dif 51 | 52 | c if (i.eq.1) then 53 | c write(*,*) "vsi and dif and fltd hhi,hhii:",vs(i),dif,fltd,hh(i),hh(ii) 54 | c endif 55 | 56 | 10 vs(i)=vs(i)*dif 57 | c half space scaling 58 | fact=a/hh(n) 59 | vp(n)=vp(n)*fact 60 | c write(*,*) 'fact,',fact LF 61 | vs(n)=vs(n)*fact 62 | ro(n)=ro(n)*(1.0/fact)**pwr 63 | z0=0.0 64 | C-----new thicknesses---------------------------- 65 | do 15 i=2,n 66 | z1=a*alog(a/hh(i)) 67 | h(i-1)=z1-z0 68 | 15 z0=z1 69 | h(n)=0.0 70 | c write(*,*) "vs in flat!",vs(1),vp(1) LF 71 | 72 | return 73 | end 74 | -------------------------------------------------------------------------------- /fast_surf_src/mchdepsun.f: -------------------------------------------------------------------------------- 1 | subroutine mchdep() 2 | external handler 3 | c call ieee_handler('set','common',handler) 4 | return 5 | end 6 | 7 | subroutine handler(i1,i2,i3,i4) 8 | return 9 | end 10 | -------------------------------------------------------------------------------- /fsurf.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/fsurf.pyc -------------------------------------------------------------------------------- /group_meeting/plot_ak135.py: -------------------------------------------------------------------------------- 1 | import vmodel 2 | 3 | m=vmodel.model1d() 4 | m.model_ak135_cps() 5 | m.flat=1 6 | 7 | # vmodel.plot(m, showfig=False) 8 | # vmodel.plot(m, dtype='vpv', showfig=True) 9 | 10 | 11 | vmodel.plot(m, dtype='rho', showfig=True) -------------------------------------------------------------------------------- /group_meeting/theo_anirec_ak135.py: -------------------------------------------------------------------------------- 1 | import sys 2 | sys.path.append('/home/leon/code/pysurf') 3 | 4 | """ 5 | 6 | """ 7 | import ref 8 | import vmodel 9 | import numpy as np 10 | import matplotlib.pyplot as plt 11 | 12 | m=vmodel.model1d() 13 | m.model_ak135_cps() 14 | m.flat=1 15 | # 16 | 17 | # m.add_perturb_layer(0, 35., 0, 3.2, False) 18 | # m.add_perturb_layer(0, 35., 1, 3.2, False) 19 | # m.add_perturb_layer(0, 35., 2, 5.8, False) 20 | # m.add_perturb_layer(0, 35., 3, 5.8, False) 21 | # m.add_perturb_layer(0, 35., 4, 1.0, False) 22 | # m.add_perturb_layer(0, 35., 5, 2.73, False) 23 | 24 | 25 | 26 | 27 | rsolver = ref.ref_solver(m) 28 | rsolver.init_default_2() 29 | rsolver.solve_theo() 30 | rsolver.solve_anirec() 31 | 32 | ax=plt.subplot() 33 | ax.plot(rsolver.time, rsolver.rf, 'g-', lw=4, label='theo, T. Shibutani') 34 | time = rsolver.time 35 | # ax.fill_between(time, y2=0., y1=rsolver.rf, where=rsolver.rf>0, color='green', lw=0.01, alpha=0.3, interpolate=True) 36 | ax.plot(rsolver.time, rsolver.rfr, 'r--', lw=3, label='anirec, V.Levin & J. Park') 37 | # ax.fill_between(time, y2=0., y1=rsolver.rfr, where=rsolver.rfr>0, color='red', lw=0.01, alpha=0.3, interpolate=True) 38 | 39 | rsolver2 = ref.ref_solver(m) 40 | rsolver2.init_default_2() 41 | rsolver2.solve_raysum() 42 | 43 | ax.plot(rsolver.time, rsolver2.rfrst[0]/rsolver2.rfrst[0].max()*rsolver.rf.max(), 'bo', lw=3, label='raysum, A. Fredriksen & M.Bostock') 44 | # ax.fill_between(time, y2=0., y1=rsolver.rfr, where=rsolver.rfr>0, color='blue', lw=0.01, alpha=0.3, interpolate=True) 45 | 46 | plt.xlabel('Time (sec)', fontsize=30) 47 | # plt.ylabel('C (km/s)', fontsize=30) 48 | ax.tick_params(axis='x', labelsize=20) 49 | ax.tick_params(axis='y', labelsize=20) 50 | plt.title('Reference radial receiver function', fontsize=35) 51 | plt.legend(loc=0, fontsize=20) 52 | plt.xlim([0., 20.]) 53 | plt.show() -------------------------------------------------------------------------------- /raysum.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/raysum.so -------------------------------------------------------------------------------- /raysum_src/compile_raysum.sh: -------------------------------------------------------------------------------- 1 | #f2py -h raysum.pyf -m raysum buildmodel.f eigenvec.f eispack-cg.f matrixops.f misfit.f phaselist.f raysum.f raysum_interface.f readwrite.f trace.f params.h 2 | f2py --f77flags="-ffixed-line-length-none -O3" --f90flags="-O3" -c raysum.pyf buildmodel.f eigenvec.f eispack-cg.f matrixops.f misfit.f phaselist.f raysum.f raysum_interface.f readwrite.f trace.f params.h --fcompiler=gfortran 3 | cp raysum.so .. 4 | -------------------------------------------------------------------------------- /raysum_src/params.h: -------------------------------------------------------------------------------- 1 | c####& 2 | c namelen is the length of filenames (in characters) 3 | c maxlay is the maximum number of layers allowed in the model 4 | c maxtr is the maximum number of traces allowed 5 | c maxseg: maximum # of segments (should be 3*maxlay for 1st-order 6 | c multiples 7 | c maxph: maximum number of phases per trace 8 | c buffsize is the max. line length assumed for reading files. 9 | integer namelen, maxlay, maxtr, maxseg, maxph, buffsize 10 | parameter (namelen=40,maxlay=15,maxtr=200,maxseg=45) 11 | parameter (maxph=40000,buffsize=120) 12 | 13 | c Units for reading and writing 14 | integer iounit1,iounit2 15 | parameter (iounit1=1,iounit2=2) 16 | 17 | c pi: duh. ztol: tolerance considered to be equiv. to zero. 18 | real pi,ztol 19 | parameter (pi=3.141592653589793,ztol=1.e-7) 20 | 21 | c nsamp is the number of samples per trace. 22 | integer maxsamp 23 | parameter (maxsamp=2000) 24 | -------------------------------------------------------------------------------- /raysum_src/raysum.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/raysum_src/raysum.so -------------------------------------------------------------------------------- /raysum_src/test_raysum.py: -------------------------------------------------------------------------------- 1 | import raysum 2 | import numpy as np 3 | #thick rho alph beta iso %P %S tr pl st di 4 | # 40000 2600 6540 3710 1 0 0 0 0 0 0 5 | # 100000 3500 7700 4200 0 5.5 5.5 0 10 0 0 6 | # 0 3500 8100 4500 1 0 0 0 0 0 10 7 | 8 | thick = np.zeros(15) 9 | rho = np.zeros(15) 10 | alpha = np.zeros(15) 11 | beta = np.zeros(15) 12 | 13 | iso = np.zeros(15) 14 | dp = np.zeros(15) 15 | ds = np.zeros(15) 16 | trend = np.zeros(15) 17 | plunge = np.zeros(15) 18 | strike = np.zeros(15) 19 | dip = np.zeros(15) 20 | 21 | thick[:3] = np.array([40, 100,0])*1000. 22 | rho[:3] = np.array([2.6, 3.5, 3.5]) * 1000. 23 | alpha[:3] = np.array([6.54, 7.7, 8.1]) * 1000. 24 | beta[:3] = np.array([3.71, 4.2, 4.5]) * 1000. 25 | 26 | iso[:3] = np.array([1,0,1]) 27 | dp[:3] = np.array([0, 5.5, 0]) 28 | ds[:3] = np.array([0, 5.5, 0]) 29 | trend[:3] = np.zeros(3) 30 | plunge[:3] = np.array([0, 10, 0]) 31 | strike[:3] = np.zeros(3) 32 | dip[:3] = np.array([0,0,10.]) 33 | 34 | iphase_in = 1 35 | baz = np.zeros(200) 36 | slow= np.zeros(200) 37 | sta_dx=np.zeros(200) 38 | sta_dy=np.zeros(200) 39 | # baz[:12] = np.random.rand(12)*360. 40 | baz[:12] = np.arange(12)*10. 41 | slow[:12]=3e-5 42 | ntr = 12 43 | 44 | 45 | mults=1 46 | nsamp=600 47 | dt=0.05 48 | width=1. 49 | align=1 50 | shift=5. 51 | out_rot=0 52 | 53 | phname_in='' 54 | 55 | eta = np.ones(15) 56 | 57 | # tt[:nphase, :ntr] 58 | tt, amp, nphase, tr_cart, tr_ph = raysum.raysum_interface(3, thick, rho, alpha, beta, eta, dp, ds, trend, plunge, strike, dip, iso, iphase_in,\ 59 | ntr, baz, slow, sta_dx, sta_dy,\ 60 | mults,nsamp,dt,width,align,shift,out_rot, phname_in) 61 | 62 | 63 | -------------------------------------------------------------------------------- /raysum_src_constant_eta/compile_raysum.sh: -------------------------------------------------------------------------------- 1 | #f2py -h raysum.pyf -m raysum buildmodel.f eigenvec.f eispack-cg.f matrixops.f misfit.f phaselist.f raysum.f raysum_interface.f readwrite.f trace.f params.h 2 | f2py --f77flags="-ffixed-line-length-none -O3" --f90flags="-O3" -c raysum.pyf buildmodel.f eigenvec.f eispack-cg.f matrixops.f misfit.f phaselist.f raysum.f raysum_interface.f readwrite.f trace.f params.h --fcompiler=gfortran 3 | cp raysum.so .. 4 | -------------------------------------------------------------------------------- /raysum_src_constant_eta/params.h: -------------------------------------------------------------------------------- 1 | c####& 2 | c namelen is the length of filenames (in characters) 3 | c maxlay is the maximum number of layers allowed in the model 4 | c maxtr is the maximum number of traces allowed 5 | c maxseg: maximum # of segments (should be 3*maxlay for 1st-order 6 | c multiples 7 | c maxph: maximum number of phases per trace 8 | c buffsize is the max. line length assumed for reading files. 9 | integer namelen, maxlay, maxtr, maxseg, maxph, buffsize 10 | parameter (namelen=40,maxlay=15,maxtr=200,maxseg=45) 11 | parameter (maxph=40000,buffsize=120) 12 | 13 | c Units for reading and writing 14 | integer iounit1,iounit2 15 | parameter (iounit1=1,iounit2=2) 16 | 17 | c pi: duh. ztol: tolerance considered to be equiv. to zero. 18 | real pi,ztol 19 | parameter (pi=3.141592653589793,ztol=1.e-7) 20 | 21 | c nsamp is the number of samples per trace. 22 | integer maxsamp 23 | parameter (maxsamp=2000) 24 | -------------------------------------------------------------------------------- /raysum_src_constant_eta/raysum.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/raysum_src_constant_eta/raysum.so -------------------------------------------------------------------------------- /raysum_src_constant_eta/test_raysum.py: -------------------------------------------------------------------------------- 1 | import raysum 2 | import numpy as np 3 | #thick rho alph beta iso %P %S tr pl st di 4 | # 40000 2600 6540 3710 1 0 0 0 0 0 0 5 | # 100000 3500 7700 4200 0 5.5 5.5 0 10 0 0 6 | # 0 3500 8100 4500 1 0 0 0 0 0 10 7 | 8 | thick = np.zeros(15) 9 | rho = np.zeros(15) 10 | alpha = np.zeros(15) 11 | beta = np.zeros(15) 12 | 13 | iso = np.zeros(15) 14 | dp = np.zeros(15) 15 | ds = np.zeros(15) 16 | trend = np.zeros(15) 17 | plunge = np.zeros(15) 18 | strike = np.zeros(15) 19 | dip = np.zeros(15) 20 | 21 | thick[:3] = np.array([40, 100,0])*1000. 22 | rho[:3] = np.array([2.6, 3.5, 3.5]) * 1000. 23 | alpha[:3] = np.array([6.54, 7.7, 8.1]) * 1000. 24 | beta[:3] = np.array([3.71, 4.2, 4.5]) * 1000. 25 | 26 | iso[:3] = np.array([1,0,1]) 27 | dp[:3] = np.array([0, 5.5, 0]) 28 | ds[:3] = np.array([0, 5.5, 0]) 29 | trend[:3] = np.zeros(3) 30 | plunge[:3] = np.array([0, 10, 0]) 31 | strike[:3] = np.zeros(3) 32 | dip[:3] = np.array([0,0,10.]) 33 | 34 | iphase_in = 1 35 | baz = np.zeros(200) 36 | slow= np.zeros(200) 37 | sta_dx=np.zeros(200) 38 | sta_dy=np.zeros(200) 39 | # baz[:12] = np.random.rand(12)*360. 40 | baz[:12] = np.arange(12)*10. 41 | slow[:12]=3e-5 42 | ntr = 12 43 | 44 | 45 | mults=1 46 | nsamp=600 47 | dt=0.05 48 | width=1. 49 | align=1 50 | shift=5. 51 | out_rot=0 52 | 53 | phname_in='' 54 | 55 | # tt[:nphase, :ntr] 56 | tt, amp, nphase, tr_cart, tr_ph = raysum.raysum_interface(3, thick, rho, alpha, beta, dp, ds, trend, plunge, strike, dip, iso, iphase_in,\ 57 | ntr, baz, slow, sta_dx, sta_dy,\ 58 | mults,nsamp,dt,width,align,shift,out_rot, phname_in) 59 | 60 | 61 | -------------------------------------------------------------------------------- /ref.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/ref.pyc -------------------------------------------------------------------------------- /rftheo_src/compile_theo.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #f2py -h theo.pyf -m theo four1.f theo.f qlayer.f 3 | f2py --f77flags="-O3 -ffixed-line-length-none" --f90flags="-O3" --fcompiler=gfortran -c theo.pyf four1.f theo.f qlayer.f 4 | #f2py --f77flags="-ffixed-line-length-none -O3" --f90flags="-O3" --fcompiler=gfortran -c theo.pyf four1.f theo.f qlayer.f 5 | cp theo.so .. 6 | -------------------------------------------------------------------------------- /rftheo_src/four1.f: -------------------------------------------------------------------------------- 1 | SUBROUTINE four1(data,nn,isign) 2 | INTEGER isign,nn 3 | REAL *4 data(2*nn) 4 | INTEGER i,istep,j,m,mmax,n 5 | REAL *4 tempi,tempr 6 | DOUBLE PRECISION theta,wi,wpi,wpr,wr,wtemp 7 | n=2*nn 8 | j=1 9 | do 11 i=1,n,2 10 | if(j.gt.i)then 11 | tempr=data(j) 12 | tempi=data(j+1) 13 | data(j)=data(i) 14 | data(j+1)=data(i+1) 15 | data(i)=tempr 16 | data(i+1)=tempi 17 | endif 18 | m=n/2 19 | 1 if ((m.ge.2).and.(j.gt.m)) then 20 | j=j-m 21 | m=m/2 22 | goto 1 23 | endif 24 | j=j+m 25 | 11 continue 26 | mmax=2 27 | 2 if (n.gt.mmax) then 28 | istep=2*mmax 29 | theta=6.28318530717959d0/(isign*mmax) 30 | wpr=-2.d0*sin(0.5d0*theta)**2 31 | wpi=sin(theta) 32 | wr=1.d0 33 | wi=0.d0 34 | do 13 m=1,mmax,2 35 | do 12 i=m,n,istep 36 | j=i+mmax 37 | tempr=sngl(wr)*data(j)-sngl(wi)*data(j+1) 38 | tempi=sngl(wr)*data(j+1)+sngl(wi)*data(j) 39 | data(j)=data(i)-tempr 40 | data(j+1)=data(i+1)-tempi 41 | data(i)=data(i)+tempr 42 | data(i+1)=data(i+1)+tempi 43 | 12 continue 44 | wtemp=wr 45 | wr=wr*wpr-wi*wpi+wr 46 | wi=wi*wpr+wtemp*wpi+wi 47 | 13 continue 48 | mmax=istep 49 | goto 2 50 | endif 51 | return 52 | END 53 | C (C) Copr. 1986-92 Numerical Recipes Software '%1&9p#!. 54 | -------------------------------------------------------------------------------- /rftheo_src/rfi_param.inc: -------------------------------------------------------------------------------- 1 | c 2 | c Parameter file for RFI subroutines 3 | c 4 | parameter (maxlayer = 15, 5 | & maxsublayer = 100, 6 | & max_nd = maxlayer * 4, 7 | & maxmoddim = max_nd, 8 | & maxdata = 1024, 9 | & maxwave = 10 ) 10 | 11 | -------------------------------------------------------------------------------- /rftheo_src/test_theo.py: -------------------------------------------------------------------------------- 1 | import theo 2 | 3 | tvs = np.zeros(100) 4 | tvpvs = np.zeros(100) 5 | tqs = np.zeros(100) 6 | tqp = np.zeros(100) 7 | trho = np.zeros(100) 8 | tthick = np.zeros(100) 9 | 10 | 11 | rx = theo.theo(newnlayer, tvs, tthick, tvpvs, tqp, tqs, rt, din, 2.5, 0.005, 0, nn) -------------------------------------------------------------------------------- /rftheo_src/theo.pyf: -------------------------------------------------------------------------------- 1 | ! -*- f90 -*- 2 | ! Note: the context of this file is case sensitive. 3 | 4 | python module theo ! in 5 | interface ! in :theo 6 | subroutine theo(n,fbeta,h,vps,qa,qb,fs,din,a0,c0,t0,nd,rx) ! in :theo:theo.f 7 | integer :: n 8 | real*4 dimension(100) :: fbeta 9 | real*4 dimension(100) :: h 10 | real*4 dimension(100) :: vps 11 | real*4 dimension(100) :: qa 12 | real*4 dimension(100) :: qb 13 | real :: fs 14 | real :: din 15 | real :: a0 16 | real :: c0 17 | real :: t0 18 | integer :: nd 19 | real*4 dimension(1024),intent(out) :: rx 20 | end subroutine theo 21 | subroutine four1(data,nn,isign) ! in :theo:four1.f 22 | real*4 dimension(2 * nn) :: data 23 | integer optional,check((len(data))/(2)>=nn),depend(data) :: nn=(len(data))/(2) 24 | integer :: isign 25 | end subroutine four1 26 | subroutine qlayer(lc,ang,n,h,valpha,vbeta,rho,qa,qb,rs,w,up,wp,usv,wsv,vsh) ! in :theo:qlayer.f 27 | integer :: lc 28 | real :: ang 29 | integer :: n 30 | real dimension(100) :: h 31 | complex dimension(100) :: valpha 32 | complex dimension(100) :: vbeta 33 | real dimension(100) :: rho 34 | real dimension(100) :: qa 35 | real dimension(100) :: qb 36 | real dimension(100) :: rs 37 | real dimension(513) :: w 38 | complex dimension(513) :: up 39 | complex dimension(513) :: wp 40 | complex dimension(513) :: usv 41 | complex dimension(513) :: wsv 42 | complex dimension(513) :: vsh 43 | end subroutine qlayer 44 | end interface 45 | end python module theo 46 | 47 | ! This file was auto-generated with f2py (version:2). 48 | ! See http://cens.ioc.ee/projects/f2py2e/ 49 | -------------------------------------------------------------------------------- /rftheo_src/theo.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/rftheo_src/theo.so -------------------------------------------------------------------------------- /rftheo_src/theo_1024.pyf: -------------------------------------------------------------------------------- 1 | ! -*- f90 -*- 2 | ! Note: the context of this file is case sensitive. 3 | 4 | python module theo ! in 5 | interface ! in :theo 6 | subroutine theo(n,fbeta,h,vps,qa,qb,fs,din,a0,c0,t0,nd,rx) ! in :theo:theo.f 7 | integer :: n 8 | real*4 dimension(100) :: fbeta 9 | real*4 dimension(100) :: h 10 | real*4 dimension(100) :: vps 11 | real*4 dimension(100) :: qa 12 | real*4 dimension(100) :: qb 13 | real :: fs 14 | real :: din 15 | real :: a0 16 | real :: c0 17 | real :: t0 18 | integer :: nd 19 | real*4 dimension(1024),intent(out) :: rx 20 | end subroutine theo 21 | subroutine four1(data,nn,isign) ! in :theo:four1.f 22 | real*4 dimension(2 * nn) :: data 23 | integer optional,check((len(data))/(2)>=nn),depend(data) :: nn=(len(data))/(2) 24 | integer :: isign 25 | end subroutine four1 26 | subroutine qlayer(lc,ang,n,h,valpha,vbeta,rho,qa,qb,rs,w,up,wp,usv,wsv,vsh) ! in :theo:qlayer.f 27 | integer :: lc 28 | real :: ang 29 | integer :: n 30 | real dimension(100) :: h 31 | complex dimension(100) :: valpha 32 | complex dimension(100) :: vbeta 33 | real dimension(100) :: rho 34 | real dimension(100) :: qa 35 | real dimension(100) :: qb 36 | real dimension(100) :: rs 37 | real dimension(513) :: w 38 | complex dimension(513) :: up 39 | complex dimension(513) :: wp 40 | complex dimension(513) :: usv 41 | complex dimension(513) :: wsv 42 | complex dimension(513) :: vsh 43 | end subroutine qlayer 44 | end interface 45 | end python module theo 46 | 47 | ! This file was auto-generated with f2py (version:2). 48 | ! See http://cens.ioc.ee/projects/f2py2e/ 49 | -------------------------------------------------------------------------------- /rftheo_src/theo_2048.pyf: -------------------------------------------------------------------------------- 1 | ! -*- f90 -*- 2 | ! Note: the context of this file is case sensitive. 3 | 4 | python module theo ! in 5 | interface ! in :theo 6 | subroutine four1(data,nn,isign) ! in :theo:four1.f 7 | real*4 dimension(2 * nn) :: data 8 | integer, optional,check((len(data))/(2)>=nn),depend(data) :: nn=(len(data))/(2) 9 | integer :: isign 10 | end subroutine four1 11 | subroutine theo(n,fbeta,h,vps,qa,qb,fs,din,a0,c0,t0,nd,rx) ! in :theo:theo.f 12 | integer :: n 13 | real*4 dimension(100) :: fbeta 14 | real*4 dimension(100) :: h 15 | real*4 dimension(100) :: vps 16 | real*4 dimension(100) :: qa 17 | real*4 dimension(100) :: qb 18 | real :: fs 19 | real :: din 20 | real :: a0 21 | real :: c0 22 | real :: t0 23 | integer :: nd 24 | real*4 dimension(2048),intent(out) :: rx 25 | end subroutine theo 26 | subroutine qlayer(lc,ang,n,h,valpha,vbeta,rho,qa,qb,rs,w,up,wp,usv,wsv,vsh) ! in :theo:qlayer.f 27 | integer :: lc 28 | real :: ang 29 | integer :: n 30 | real dimension(100) :: h 31 | complex dimension(100) :: valpha 32 | complex dimension(100) :: vbeta 33 | real dimension(100) :: rho 34 | real dimension(100) :: qa 35 | real dimension(100) :: qb 36 | real dimension(100) :: rs 37 | real dimension(1025.0) :: w 38 | complex dimension(1025.0) :: up 39 | complex dimension(1025.0) :: wp 40 | complex dimension(1025.0) :: usv 41 | complex dimension(1025.0) :: wsv 42 | complex dimension(1025.0) :: vsh 43 | end subroutine qlayer 44 | end interface 45 | end python module theo 46 | 47 | ! This file was auto-generated with f2py (version:2). 48 | ! See http://cens.ioc.ee/projects/f2py2e/ 49 | -------------------------------------------------------------------------------- /run_disp.py: -------------------------------------------------------------------------------- 1 | import database 2 | import vmodel 3 | 4 | m=vmodel.model1d() 5 | m=vmodel.read_axisem_bm(m, '1dmodel_ak135f.txt') 6 | m.earth_flattening() 7 | # m.trim(500.) 8 | dbase= database.eigenASDF() 9 | dbase.init_dbase(inmodel=m, Tmax=40, dT=2., dc=10., nmodes=1, dz=1., zmax=1000.) 10 | dbase.run(outfname='./ak135f_1s.asdf') 11 | dbase.write_disp(outfname='benchmark_axisem/ak135f_ray_ph.txt') 12 | dbase.write_disp(outfname='benchmark_axisem/ak135f_ray_gr.txt', dtype='U') 13 | dbase.write_disp(outfname='benchmark_axisem/ak135f_love_ph.txt', wavetype='love') 14 | dbase.write_disp(outfname='benchmark_axisem/ak135f_love_gr.txt', wavetype='love', dtype='U') 15 | # dbase.init_dbase(nmodes=1) 16 | # dbase.load('./ak135_cps.asdf') -------------------------------------------------------------------------------- /sws.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/sws.pyc -------------------------------------------------------------------------------- /tcps.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/tcps.pyc -------------------------------------------------------------------------------- /tdisp96.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/tdisp96.so -------------------------------------------------------------------------------- /tdisp96_src/compile_tdisp96.sh: -------------------------------------------------------------------------------- 1 | #################### 2 | ## copy subs code 3 | #################### 4 | cps_subs_dir='/home/leon/code/PROGRAMS.330/SUBS' 5 | 6 | #cp $cps_subs_dir/tgetmod.f . 7 | #cp $cps_subs_dir/mnmarg.f . 8 | #cp $cps_subs_dir/mgtarg.f . 9 | #cp $cps_subs_dir/mchdep.f . 10 | #cp $cps_subs_dir/lgstr.f . 11 | 12 | 13 | #f2py -h tdisp96.pyf -m tdisp96 tdisp96_subroutine.f flat2sphere_subroutine.f mnmarg.f mgtarg.f lgstr.f tio.f mchdep.f tgetmod.f 14 | f2py --f77flags="-ffixed-line-length-none -O3" --f90flags="-O3" -c tdisp96.pyf tdisp96_subroutine.f flat2sphere_subroutine.f mnmarg.f mgtarg.f lgstr.f tio.f mchdep.f tgetmod.f 15 | 16 | cp tdisp96.so .. 17 | -------------------------------------------------------------------------------- /tdisp96_src/lgstr.f: -------------------------------------------------------------------------------- 1 | function lgstr(str) 2 | c----- 3 | c function to find the length of a string 4 | c this will only be used with file system path names 5 | c thus the first blank 6 | c indicates the end of the string 7 | c----- 8 | implicit none 9 | character*(*) str 10 | integer*4 lgstr 11 | integer n, i 12 | n = len(str) 13 | lgstr = 1 14 | do 1000 i=n,1,-1 15 | lgstr = i 16 | if(str(i:i).ne.' ')goto 100 17 | 1000 continue 18 | 100 continue 19 | return 20 | end 21 | -------------------------------------------------------------------------------- /tdisp96_src/mchdep.f: -------------------------------------------------------------------------------- 1 | subroutine mchdep() 2 | c---------------------------------------------------------------------c 3 | c c 4 | c COMPUTER PROGRAMS IN SEISMOLOGY c 5 | c VOLUME V c 6 | c c 7 | c PROGRAM: mchdep c 8 | c c 9 | c COPYRIGHT 1996 R. B. Herrmann c 10 | c c 11 | c Department of Earth and Atmospheric Sciences c 12 | c Saint Louis University c 13 | c 221 North Grand Boulevard c 14 | c St. Louis, Missouri 63103 c 15 | c U. S. A. c 16 | c c 17 | c---------------------------------------------------------------------c 18 | implicit none 19 | return 20 | end 21 | -------------------------------------------------------------------------------- /tdisp96_src/mgtarg.f: -------------------------------------------------------------------------------- 1 | subroutine mgtarg(i,name) 2 | c---------------------------------------------------------------------c 3 | c c 4 | c COMPUTER PROGRAMS IN SEISMOLOGY c 5 | c VOLUME V c 6 | c c 7 | c SUBROUTINE: MGTARG c 8 | c c 9 | c COPYRIGHT 1996 R. B. Herrmann c 10 | c c 11 | c Department of Earth and Atmospheric Sciences c 12 | c Saint Louis University c 13 | c 221 North Grand Boulevard c 14 | c St. Louis, Missouri 63103 c 15 | c U. S. A. c 16 | c c 17 | c---------------------------------------------------------------------c 18 | c----- 19 | c return the i'th command line argument 20 | c 21 | c This version works on SUN, IBM RS6000 22 | c----- 23 | implicit none 24 | integer i 25 | character name*(*) 26 | call getarg(i,name) 27 | return 28 | end 29 | -------------------------------------------------------------------------------- /tdisp96_src/mnmarg.f: -------------------------------------------------------------------------------- 1 | function mnmarg() 2 | c---------------------------------------------------------------------c 3 | c c 4 | c COMPUTER PROGRAMS IN SEISMOLOGY c 5 | c VOLUME V c 6 | c c 7 | c SUBROUTINE: MNMARG c 8 | c c 9 | c COPYRIGHT 1996 R. B. Herrmann c 10 | c c 11 | c Department of Earth and Atmospheric Sciences c 12 | c Saint Louis University c 13 | c 221 North Grand Boulevard c 14 | c St. Louis, Missouri 63103 c 15 | c U. S. A. c 16 | c c 17 | c---------------------------------------------------------------------c 18 | implicit none 19 | integer iargc 20 | integer mnmarg 21 | mnmarg = iargc() 22 | return 23 | end 24 | -------------------------------------------------------------------------------- /tdisp96_src/tdisp96.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/tdisp96_src/tdisp96.so -------------------------------------------------------------------------------- /tdisp96_src/test_tdisp96.py: -------------------------------------------------------------------------------- 1 | 2 | # # 0.1000E+01 dt 3 | # # 7 -1 -2 npts n1(user spcified or not, when < 0: user specified) n2 4 | # # out.mod mname 5 | # # T T dolove dorayl 6 | # # 0.0000E+00 0.0000E+00 hs hr 7 | # # 1 nmodes 8 | # # 0.5000E+01 0.5000E+01 faclov facrayl 9 | # # 0.10000000E+00 10 | # # 0.66666670E-01 11 | # # 0.50000001E-01 12 | # # 0.39999999E-01 13 | # # 0.33333335E-01 14 | # # 0.28571429E-01 15 | # # 0.25000000E-01 16 | 17 | # input 18 | # ilvry : love(1) or rayleigh(2) 19 | # nn - npts 20 | # mname - model name 21 | # verby - screen output or not 22 | # nfval - npts 23 | # fval - input frequencies (array) 24 | # ccmin, ccmax - min/max phase vel 25 | 26 | # output 27 | # iret 28 | 29 | 30 | # subroutine disprs(ilvry,dt,nn,iret,mname, 31 | # 1 verby,nfval,fval,ccmin,ccmax) 32 | 33 | import tdisp96 34 | import vmodel 35 | import numpy as np 36 | model=vmodel.Model1d(modelindex=2) 37 | model.read('test_model.txt') 38 | d_in = model.HArr 39 | TA_in = model.rhoArr * model.VphArr**2 40 | TC_in = model.rhoArr * model.VpvArr**2 41 | TL_in = model.rhoArr * model.VsvArr**2 42 | TF_in = 1.0 * (TA_in - np.float32(2.)* TL_in) 43 | TN_in = model.rhoArr * model.VshArr**2 44 | TRho_in = model.rhoArr 45 | 46 | 47 | ilvry = 1 48 | dt = 1. 49 | npts = 7 50 | iret =1 51 | verby = True 52 | nfval = 7 53 | fval = 1./(np.arange(7)*5.+10.) 54 | fval = np.append(fval, np.zeros(2049-nfval)) 55 | ccmin = -1. 56 | ccmax = -1. 57 | nl_in = TRho_in.size 58 | iflsph_in = 1 # 0 flat, 1: love, 2: rayleigh 59 | refdep_in = 0. 60 | nmode = 1 61 | # 62 | # 63 | c_out,d_out,TA_out,TC_out,TF_out,TL_out,TN_out,TRho_out=tdisp96.disprs(ilvry,dt,npts,iret,verby, nfval,fval,ccmin,ccmax,\ 64 | d_in,TA_in,TC_in,TF_in,TL_in,TN_in,TRho_in,\ 65 | nl_in, iflsph_in, refdep_in, nmode, 0.5, 0.5) 66 | 67 | 68 | # real*8 dimension(nl_in),depend(nl_in) :: d_in 69 | # real*8 dimension(nl_in),depend(nl_in) :: ta_in 70 | # real*8 dimension(nl_in),depend(nl_in) :: tc_in 71 | # real*8 dimension(nl_in),depend(nl_in) :: tf_in 72 | # real*8 dimension(nl_in),depend(nl_in) :: tl_in 73 | # real*8 dimension(nl_in),depend(nl_in) :: tn_in 74 | # real*8 dimension(nl_in),depend(nl_in) :: trho_in 75 | # integer, intent(in) :: nl_in 76 | 77 | -------------------------------------------------------------------------------- /tdisp96_src/vmodel.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/tdisp96_src/vmodel.pyc -------------------------------------------------------------------------------- /test_dbase.py: -------------------------------------------------------------------------------- 1 | import database 2 | import vmodel 3 | m=vmodel.model1d() 4 | # m=vmodel.read_model(m, 'ak135.txt') 5 | m.model_ak135_cps() 6 | m.earth_flattening() 7 | m.trim(500.) 8 | dbase= database.eigenASDF() 9 | dbase.init_dbase(inmodel=m, Tmax=100., dT=10., dc=50., nmodes=1, dz=1., zmax=1000.) 10 | dbase.run(outfname='./ak135_cps.asdf') 11 | dbase.write_disp(outfname='benchmark_cps/ak135_ray_ph.txt') 12 | dbase.write_disp(outfname='benchmark_cps/ak135_ray_gr.txt', dtype='U') 13 | dbase.write_disp(outfname='benchmark_cps/ak135_love_ph.txt', wavetype='love') 14 | dbase.write_disp(outfname='benchmark_cps/ak135_love_gr.txt', wavetype='love', dtype='U') 15 | # dbase.init_dbase(nmodes=1) 16 | # dbase.load('./ak135_cps.asdf') -------------------------------------------------------------------------------- /test_eigensolver.py: -------------------------------------------------------------------------------- 1 | import eigen 2 | import vmodel 3 | import numpy as np 4 | import matplotlib.pyplot as plt 5 | 6 | m=vmodel.model1d() 7 | # m.get_radius(4000., 1.) 8 | # m.model_prem() 9 | m=vmodel.model1d() 10 | m=vmodel.read_model(m, 'ak135.txt') 11 | eig1 = eigen.eigen_solver(m) 12 | eig1.initialization() 13 | # eig1.solve_PSV() 14 | 15 | # eig2 = eigen.eigen_solver(m) 16 | # eig2.init2() 17 | # eig2.solve_PSV() 18 | # 19 | # plt.plot(eig1.r, eig1.r2data[0, 8, :], 'o', ms=5) 20 | # plt.plot(eig2.r, eig2.r2data[0, 8, :], '^', ms=5) 21 | # plt.show() 22 | -------------------------------------------------------------------------------- /test_fast_surf.py: -------------------------------------------------------------------------------- 1 | import sys 2 | sys.path.append('/home/leon/code/pysurf') 3 | 4 | """ 5 | 6 | """ 7 | import fsurf, tcps, eigen 8 | import vmodel 9 | import numpy as np 10 | import matplotlib.pyplot as plt 11 | 12 | m=vmodel.model1d() 13 | m.model_ak135_cps() 14 | m.flat=0 15 | # m.earth_flattening() 16 | # 17 | 18 | # # model perturbation: isotropic -> VTI 19 | # 20 | # # m.add_perturb_layer_love(0, 20., 4, -0.1, True) 21 | # # m.add_perturb_layer_love(0, 20., 3, -0.3, True) 22 | # 23 | # m.add_perturb_layer_love(0, 20., 0, -0.05, True) 24 | # m.add_perturb_layer_love(0, 20., 1, 0.05, True) 25 | # m.add_perturb_layer_love(0, 20., 3, -0.05, True) 26 | # m.add_perturb_layer_love(0, 20., 4, 0.05, True) 27 | 28 | # m.add_perturb_layer_love(0, 20., 0, -0.02, True) 29 | # m.add_perturb_layer_love(0, 20., 1, 0.02, True) 30 | # # m.add_perturb_layer_love(0, 20., 3, -0.05, True) 31 | # m.add_perturb_layer_love(0, 20., 4, 0.02, True) 32 | 33 | ssolver = fsurf.fsurf_solver(m) 34 | ssolver.init_default() 35 | ssolver.solve_surf() 36 | 37 | tcpsR = tcps.tcps_solver(m) 38 | tcpsR.init_default() 39 | tcpsR.solve_PSV() 40 | 41 | tcpsL = tcps.tcps_solver(m) 42 | tcpsL.init_default() 43 | tcpsL.solve_SH() 44 | 45 | 46 | # eigR = eigen.eigen_solver(m) 47 | # eigR.init_default() 48 | # eigR.solve_PSV() 49 | # 50 | # eigL = eigen.eigen_solver(m) 51 | # eigL.init_default() 52 | # eigL.solve_SH() 53 | 54 | 55 | -------------------------------------------------------------------------------- /test_ref.py: -------------------------------------------------------------------------------- 1 | import sys 2 | sys.path.append('/home/leon/code/pysurf') 3 | 4 | """ 5 | 6 | """ 7 | import ref 8 | import vmodel 9 | import numpy as np 10 | import matplotlib.pyplot as plt 11 | 12 | m=vmodel.model1d() 13 | m.model_ak135_cps() 14 | m.flat=1 15 | # 16 | 17 | # # model perturbation: isotropic -> VTI 18 | # 19 | # # m.add_perturb_layer_love(0, 20., 4, -0.1, True) 20 | # # m.add_perturb_layer_love(0, 20., 3, -0.3, True) 21 | # 22 | # m.add_perturb_layer_love(0, 20., 0, -0.05, True) 23 | # m.add_perturb_layer_love(0, 20., 1, 0.05, True) 24 | # m.add_perturb_layer_love(0, 20., 3, -0.05, True) 25 | # m.add_perturb_layer_love(0, 20., 4, 0.05, True) 26 | 27 | # m.add_perturb_layer_love(0, 20., 0, -0.02, True) 28 | # m.add_perturb_layer_love(0, 20., 1, 0.02, True) 29 | # # m.add_perturb_layer_love(0, 20., 3, -0.05, True) 30 | # m.add_perturb_layer_love(0, 20., 4, 0.02, True) 31 | 32 | 33 | rsolver = ref.ref_solver(m) 34 | rsolver.init_default_2() 35 | rsolver.solve_raysum() 36 | rsolver.deconvolve_raysum() 37 | 38 | 39 | -------------------------------------------------------------------------------- /test_tcps.py: -------------------------------------------------------------------------------- 1 | import tcps 2 | import vmodel 3 | import matplotlib.pyplot as plt 4 | 5 | m=vmodel.model1d() 6 | m.model_ak135_cps() 7 | vs = 1.5 8 | 9 | vp=0.9409+2.0947*vs-0.8206*vs**2+0.2683*vs**3-0.0251*vs**4 #Brocher Crust 10 | rho=1.6612*vp-0.4721*vp**2+0.0671*vp**3-0.0043*vp**4+0.000106*vp**5 11 | 12 | m.add_perturb_layer(0, 5., 0, vs, False) 13 | m.add_perturb_layer(0, 5., 1, vs, False) 14 | m.add_perturb_layer(0, 5., 2, vp, False) 15 | m.add_perturb_layer(0, 5., 3, vp, False) 16 | m.add_perturb_layer(0, 5., 5, rho, False) 17 | m.add_perturb_layer(0, 5., 4, 1.0, False) 18 | m.vel2love() 19 | 20 | tcps1 = tcps.tcps_solver(m) 21 | tcps1.init_default() 22 | tcps1.solve_PSV() 23 | 24 | m=vmodel.model1d() 25 | m.model_ak135_cps() 26 | vs = 1.5 27 | 28 | vp=0.9409+2.0947*vs-0.8206*vs**2+0.2683*vs**3-0.0251*vs**4 #Brocher Crust 29 | rho=1.6612*vp-0.4721*vp**2+0.0671*vp**3-0.0043*vp**4+0.000106*vp**5 30 | 31 | 32 | m.add_perturb_layer(2., 5., 0, vs, False) 33 | m.add_perturb_layer(2., 5., 1, vs, False) 34 | m.add_perturb_layer(2., 5., 2, vp, False) 35 | m.add_perturb_layer(2., 5., 3, vp, False) 36 | m.add_perturb_layer(2., 5., 4, 1.0, False) 37 | m.add_perturb_layer(2., 5., 5, rho, False) 38 | 39 | m.add_perturb_layer(0., 2., 0, 0., False) 40 | m.add_perturb_layer(0., 2., 1, 0., False) 41 | m.add_perturb_layer(0., 2., 2, 1.5, False) 42 | m.add_perturb_layer(0., 2., 3, 1.5, False) 43 | m.add_perturb_layer(0., 2., 4, 1.0, False) 44 | m.add_perturb_layer(0., 2., 5, 1.0, False) 45 | m.vel2love() 46 | tcps2 = tcps.tcps_solver(m) 47 | tcps2.init_default() 48 | tcps2.solve_PSV() 49 | 50 | plt.plot(tcps1.T, tcps1.U, 'ro', ms=10) 51 | plt.plot(tcps2.T, tcps2.U, 'bo', ms=10) 52 | # plt.plot(tcps1.T, tcps1.C, 'rx', ms=10) 53 | # plt.plot(tcps2.T, tcps2.C, 'bx', ms=10) 54 | plt.show() 55 | -------------------------------------------------------------------------------- /test_vmodel.py: -------------------------------------------------------------------------------- 1 | import vmodel 2 | import numpy as np 3 | 4 | # m=vmodel.model1d(VsvArr=np.array([0], dtype=np.float32), VpvArr=np.array([0], dtype=np.float32), 5 | # VshArr=np.array([0],dtype=np.float32), VphArr=np.array([0],dtype=np.float32), etaArr=np.array([0],dtype=np.float32), rhoArr=np.array([0],dtype=np.float32), isotropic=True) 6 | m = vmodel.model1d() 7 | # m1 = vmodel.model1d() 8 | 9 | 10 | # m.get_radius(1000., 1.) 11 | # m=vmodel.read_model(m, 'ak135.txt') 12 | 13 | m.model_ak135_cps() 14 | # m1.model_ak135_cps() 15 | # 16 | # m.trim(200.) 17 | # m1.trim(200.) 18 | # m=vmodel.read_axisem_bm(m, '/home/leon/code/axisem/SOLVER/MESHES/prem_aniso_10s/1dmodel_axisem.bm') 19 | m.add_perturb_layer_love(0., 20., 0, -0.1, True) 20 | 21 | m.init_dip_strike() 22 | m.init_etensor() 23 | m.dipArr[-1] = 30.; m.dipArr[-2] = 30. 24 | cij = m.CijArr[:,:,-1].copy() 25 | 26 | m.rot_dip_strike() 27 | m.decompose() -------------------------------------------------------------------------------- /theo.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/theo.so -------------------------------------------------------------------------------- /tlegn96.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/tlegn96.so -------------------------------------------------------------------------------- /tlegn96_src/compile_tlegn96.sh: -------------------------------------------------------------------------------- 1 | #################### 2 | ## copy subs code 3 | #################### 4 | cps_subs_dir='/home/leon/code/PROGRAMS.330/SUBS' 5 | 6 | #cp $cps_subs_dir/tgetmod.f . 7 | #cp $cps_subs_dir/mnmarg.f . 8 | #cp $cps_subs_dir/mgtarg.f . 9 | #cp $cps_subs_dir/mchdep.f . 10 | #cp $cps_subs_dir/lgstr.f . 11 | 12 | 13 | #f2py -h tlegn96.pyf -m tlegn96 tlegn96_subroutine.f mnmarg.f mgtarg.f lgstr.f tio.f mchdep.f tgetmod.f 14 | f2py --f77flags="-ffixed-line-length-none -O3" --f90flags="-O3" -c tlegn96.pyf tlegn96_subroutine.f mnmarg.f mgtarg.f lgstr.f tio.f mchdep.f tgetmod.f 15 | 16 | cp tlegn96.so .. 17 | -------------------------------------------------------------------------------- /tlegn96_src/lgstr.f: -------------------------------------------------------------------------------- 1 | function lgstr(str) 2 | c----- 3 | c function to find the length of a string 4 | c this will only be used with file system path names 5 | c thus the first blank 6 | c indicates the end of the string 7 | c----- 8 | implicit none 9 | character*(*) str 10 | integer*4 lgstr 11 | integer n, i 12 | n = len(str) 13 | lgstr = 1 14 | do 1000 i=n,1,-1 15 | lgstr = i 16 | if(str(i:i).ne.' ')goto 100 17 | 1000 continue 18 | 100 continue 19 | return 20 | end 21 | -------------------------------------------------------------------------------- /tlegn96_src/mchdep.f: -------------------------------------------------------------------------------- 1 | subroutine mchdep() 2 | c---------------------------------------------------------------------c 3 | c c 4 | c COMPUTER PROGRAMS IN SEISMOLOGY c 5 | c VOLUME V c 6 | c c 7 | c PROGRAM: mchdep c 8 | c c 9 | c COPYRIGHT 1996 R. B. Herrmann c 10 | c c 11 | c Department of Earth and Atmospheric Sciences c 12 | c Saint Louis University c 13 | c 221 North Grand Boulevard c 14 | c St. Louis, Missouri 63103 c 15 | c U. S. A. c 16 | c c 17 | c---------------------------------------------------------------------c 18 | implicit none 19 | return 20 | end 21 | -------------------------------------------------------------------------------- /tlegn96_src/mgtarg.f: -------------------------------------------------------------------------------- 1 | subroutine mgtarg(i,name) 2 | c---------------------------------------------------------------------c 3 | c c 4 | c COMPUTER PROGRAMS IN SEISMOLOGY c 5 | c VOLUME V c 6 | c c 7 | c SUBROUTINE: MGTARG c 8 | c c 9 | c COPYRIGHT 1996 R. B. Herrmann c 10 | c c 11 | c Department of Earth and Atmospheric Sciences c 12 | c Saint Louis University c 13 | c 221 North Grand Boulevard c 14 | c St. Louis, Missouri 63103 c 15 | c U. S. A. c 16 | c c 17 | c---------------------------------------------------------------------c 18 | c----- 19 | c return the i'th command line argument 20 | c 21 | c This version works on SUN, IBM RS6000 22 | c----- 23 | implicit none 24 | integer i 25 | character name*(*) 26 | call getarg(i,name) 27 | return 28 | end 29 | -------------------------------------------------------------------------------- /tlegn96_src/mnmarg.f: -------------------------------------------------------------------------------- 1 | function mnmarg() 2 | c---------------------------------------------------------------------c 3 | c c 4 | c COMPUTER PROGRAMS IN SEISMOLOGY c 5 | c VOLUME V c 6 | c c 7 | c SUBROUTINE: MNMARG c 8 | c c 9 | c COPYRIGHT 1996 R. B. Herrmann c 10 | c c 11 | c Department of Earth and Atmospheric Sciences c 12 | c Saint Louis University c 13 | c 221 North Grand Boulevard c 14 | c St. Louis, Missouri 63103 c 15 | c U. S. A. c 16 | c c 17 | c---------------------------------------------------------------------c 18 | implicit none 19 | integer iargc 20 | integer mnmarg 21 | mnmarg = iargc() 22 | return 23 | end 24 | -------------------------------------------------------------------------------- /tlegn96_src/test_tlegn96.py: -------------------------------------------------------------------------------- 1 | 2 | # # 0.1000E+01 dt 3 | # # 7 -1 -2 npts n1(user spcified or not, when < 0: user specified) n2 4 | # # out.mod mname 5 | # # T T dolove dorayl 6 | # # 0.0000E+00 0.0000E+00 hs hr 7 | # # 1 nmodes 8 | # # 0.5000E+01 0.5000E+01 faclov facrayl 9 | # # 0.10000000E+00 10 | # # 0.66666670E-01 11 | # # 0.50000001E-01 12 | # # 0.39999999E-01 13 | # # 0.33333335E-01 14 | # # 0.28571429E-01 15 | # # 0.25000000E-01 16 | 17 | # input 18 | # ilvry : love(1) or rayleigh(2) 19 | # nn - npts 20 | # mname - model name 21 | # verby - screen output or not 22 | # nfval - npts 23 | # fval - input frequencies (array) 24 | # ccmin, ccmax - min/max phase vel 25 | 26 | # output 27 | # iret 28 | 29 | 30 | # subroutine disprs(ilvry,dt,nn,iret,mname, 31 | # 1 verby,nfval,fval,ccmin,ccmax) 32 | 33 | 34 | 35 | 36 | import tlegn96 37 | import vmodel 38 | import numpy as np 39 | model=vmodel.Model1d(modelindex=2) 40 | model.read('test_model.txt') 41 | d_in = model.HArr 42 | TA_in = model.rhoArr * model.VphArr**2 43 | TC_in = model.rhoArr * model.VpvArr**2 44 | TL_in = model.rhoArr * model.VsvArr**2 45 | TF_in = 1.0 * (TA_in - np.float32(2.)* TL_in) 46 | TN_in = model.rhoArr * model.VshArr**2 47 | TRho_in = model.rhoArr 48 | qai_in = model.QpArr 49 | qbi_in = model.QsArr 50 | etapi_in= model.etapArr 51 | etasi_in= model.etasArr 52 | frefpi_in= model.frefpArr 53 | frefsi_in= model.frefsArr 54 | 55 | hs_in=0. 56 | hr_in=0. 57 | ohr_in=0. 58 | ohs_in=0. 59 | refdep_in=0. 60 | nl_in = model.HArr.size 61 | iflsph_in = 0 62 | mode_in=np.ones(7, dtype=np.int) 63 | Nt_in=7 64 | t_in = (np.arange(7)*5.+10.) 65 | cp_in = np.array([ 3.61031318, 3.73016572, 3.85718274, 3.97710991, 4.08013439, 66 | 4.16317844, 4.22794294]) 67 | dogam=False 68 | u_out,ut, tut,dcdh,dcdav,dcdah,dcdbv,dcdbh,dcdn,dcdr=tlegn96.tlegn96(hs_in, hr_in, ohr_in,ohs_in, refdep_in,dogam, nl_in, iflsph_in,\ 69 | d_in,TA_in,TC_in,TF_in,TL_in,TN_in,TRho_in,\ 70 | qai_in,qbi_in,etapi_in,etasi_in,frefpi_in,frefsi_in, Nt_in, t_in, cp_in) -------------------------------------------------------------------------------- /tlegn96_src/test_tregn96.py: -------------------------------------------------------------------------------- 1 | 2 | # # 0.1000E+01 dt 3 | # # 7 -1 -2 npts n1(user spcified or not, when < 0: user specified) n2 4 | # # out.mod mname 5 | # # T T dolove dorayl 6 | # # 0.0000E+00 0.0000E+00 hs hr 7 | # # 1 nmodes 8 | # # 0.5000E+01 0.5000E+01 faclov facrayl 9 | # # 0.10000000E+00 10 | # # 0.66666670E-01 11 | # # 0.50000001E-01 12 | # # 0.39999999E-01 13 | # # 0.33333335E-01 14 | # # 0.28571429E-01 15 | # # 0.25000000E-01 16 | 17 | # input 18 | # ilvry : love(1) or rayleigh(2) 19 | # nn - npts 20 | # mname - model name 21 | # verby - screen output or not 22 | # nfval - npts 23 | # fval - input frequencies (array) 24 | # ccmin, ccmax - min/max phase vel 25 | 26 | # output 27 | # iret 28 | 29 | 30 | # subroutine disprs(ilvry,dt,nn,iret,mname, 31 | # 1 verby,nfval,fval,ccmin,ccmax) 32 | 33 | 34 | 35 | 36 | import tregn96 37 | import vmodel 38 | import numpy as np 39 | model=vmodel.Model1d(modelindex=2) 40 | model.read('test_model.txt') 41 | d_in = model.HArr 42 | TA_in = model.rhoArr * model.VphArr**2 43 | TC_in = model.rhoArr * model.VpvArr**2 44 | TL_in = model.rhoArr * model.VsvArr**2 45 | TF_in = 1.0 * (TA_in - np.float32(2.)* TL_in) 46 | TN_in = model.rhoArr * model.VshArr**2 47 | TRho_in = model.rhoArr 48 | qai_in = model.QpArr 49 | qbi_in = model.QsArr 50 | etapi_in= model.etapArr 51 | etasi_in= model.etasArr 52 | frefpi_in= model.frefpArr 53 | frefsi_in= model.frefsArr 54 | 55 | hs_in=0. 56 | hr_in=0. 57 | ohr_in=0. 58 | ohs_in=0. 59 | refdep_in=0. 60 | nl_in = model.HArr.size 61 | iflsph_in = 0 62 | mode_in=np.ones(7, dtype=np.int) 63 | Nt_in=7 64 | t_in = (np.arange(7)*5.+10.) 65 | cp_in = np.array([ 3.22712779, 3.37151194, 3.55520225, 3.71019101, 3.8115027 , 66 | 3.87411857, 3.91453123]) 67 | dogam=False 68 | u_out,ur, tur, uz, tuz,dcdh,dcdav,dcdah,dcdbv,dcdbh,dcdn,dcdr=tregn96.tregn96(hs_in, hr_in, ohr_in,ohs_in, refdep_in,dogam, nl_in, iflsph_in,\ 69 | d_in,TA_in,TC_in,TF_in,TL_in,TN_in,TRho_in,\ 70 | qai_in,qbi_in,etapi_in,etasi_in,frefpi_in,frefsi_in, Nt_in, t_in, cp_in) -------------------------------------------------------------------------------- /tlegn96_src/tlegn96.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/tlegn96_src/tlegn96.so -------------------------------------------------------------------------------- /tlegn96_src/vmodel.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/tlegn96_src/vmodel.pyc -------------------------------------------------------------------------------- /trash_code/compare_pysurf_vs_cps.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | """ 4 | Check list: 5 | ak135 model, period: 10 - 100 sec, zmax = 1000 km 6 | 1. Rayleigh phase: checked 7 | 2. Love phase: checked 8 | 3. Rayleigh group: problematic 9 | 4. Love group: checked 10 | 11 | ak135 model spherical model, period: 10 - 100 sec, zmax = 1000 km 12 | 1. Rayleigh phase: checked 13 | 2. Love phase: checked 14 | 3. Rayleigh group: 15 | 4. Love group: checked 16 | 17 | """ 18 | # inArr1 = np.loadtxt('benchmark_cps/ak135_cps_ray_ph.txt') 19 | # inArr2 = np.loadtxt('benchmark_cps/ak135_ray_ph.txt') 20 | # 21 | # inArr1 = np.loadtxt('benchmark_cps/ak135_cps_ray_gr.txt') 22 | # inArr2 = np.loadtxt('benchmark_cps/ak135_ray_gr.txt') 23 | # # # 24 | inArr1 = np.loadtxt('benchmark_cps/ak135_cps_love_ph.txt') 25 | inArr2 = np.loadtxt('benchmark_cps/ak135_love_ph.txt') 26 | # # 27 | # # # 28 | # inArr1 = np.loadtxt('benchmark_cps/ak135_cps_love_gr.txt') 29 | # inArr2 = np.loadtxt('benchmark_cps/ak135_love_gr.txt') 30 | v1 = inArr1[:, 1] 31 | v2 = inArr2[:, 1] 32 | 33 | print (v1-v2)/v1*100. -------------------------------------------------------------------------------- /trash_code/convert_layer2point.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | ak135Arr = np.loadtxt('ak135_layer.txt') 4 | 5 | hArr = ak135Arr[:,0] 6 | VsvArr = ak135Arr[:,2] 7 | VpvArr = ak135Arr[:,1] 8 | VshArr = ak135Arr[:,2] 9 | VphArr = ak135Arr[:,1] 10 | VpfArr = np.sqrt ( (ak135Arr[:,1])**2 - 2.*((ak135Arr[:,2])**2) ) 11 | rhoArr = ak135Arr[:,3] 12 | zArr = hArr.cumsum() 13 | 14 | zArr = np.repeat(zArr, 2) 15 | VsArr = np.repeat(VsvArr, 2) 16 | VpArr = np.repeat(VpvArr, 2) 17 | 18 | zArr = np.append(0., zArr) 19 | VsArr = np.append(VsvArr[0], VsArr) 20 | VpArr = np.append(VpvArr[0], VpArr) 21 | rhoArr= np.repeat(rhoArr, 2) 22 | rhoArr= np.append(rhoArr[0], rhoArr) 23 | 24 | outArr = np.append(zArr, VpArr) 25 | 26 | outArr = np.append(outArr, VsArr) 27 | outArr = np.append(outArr, rhoArr) 28 | 29 | outArr=outArr.reshape( 4, VsArr.size,) 30 | outArr=outArr.T 31 | np.savetxt('ak135_cps.txt', outArr, fmt='%g') 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /trash_code/get_ak135.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | inArr = np.loadtxt('ak135_dbase.txt') 4 | H = inArr[:, 0] 5 | vpArr = inArr[:, 1] 6 | vsArr = inArr[:, 2] 7 | rhoArr = inArr[:, 3] 8 | 9 | zbArr = np.cumsum(H) 10 | ztArr = np.cumsum(H) - H 11 | # z=np.array([]) 12 | outArr = np.array([]) 13 | for i in xrange(H.size): 14 | # zb = zbArr[i] 15 | zt = ztArr[i] 16 | if i == 0: 17 | outArr = np.append(outArr, zt) 18 | outArr = np.append(outArr, vpArr[i]) 19 | outArr = np.append(outArr, vsArr[i]) 20 | outArr = np.append(outArr, rhoArr[i]) 21 | continue 22 | # outArr = np.append(outArr, zt) 23 | if i==(H.size-1): 24 | outArr = np.append(outArr, zt) 25 | outArr = np.append(outArr, vpArr[i]) 26 | outArr = np.append(outArr, vsArr[i]) 27 | outArr = np.append(outArr, rhoArr[i]) 28 | continue 29 | if vpArr[i-1] == vpArr[i] and rhoArr[i-1] == rhoArr[i] and vsArr[i-1] == vsArr[i]: 30 | outArr = np.append(outArr, zt) 31 | outArr = np.append(outArr, vpArr[i]) 32 | outArr = np.append(outArr, vsArr[i]) 33 | outArr = np.append(outArr, rhoArr[i]) 34 | continue 35 | outArr = np.append(outArr, zt) 36 | outArr = np.append(outArr, vpArr[i-1]) 37 | outArr = np.append(outArr, vsArr[i-1]) 38 | outArr = np.append(outArr, rhoArr[i-1]) 39 | outArr = np.append(outArr, zt) 40 | outArr = np.append(outArr, vpArr[i]) 41 | outArr = np.append(outArr, vsArr[i]) 42 | outArr = np.append(outArr, rhoArr[i]) 43 | # outArr = np.append() 44 | outArr = outArr.reshape(outArr.size/4, 4) 45 | # outArr = 46 | np.savetxt('ak135.txt', outArr, fmt='%10.6f') -------------------------------------------------------------------------------- /trash_data/ak135_cps.asdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/trash_data/ak135_cps.asdf -------------------------------------------------------------------------------- /trash_data/ak135f_1s.asdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/trash_data/ak135f_1s.asdf -------------------------------------------------------------------------------- /trash_data/prem_test.asdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/trash_data/prem_test.asdf -------------------------------------------------------------------------------- /tregn96.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/tregn96.so -------------------------------------------------------------------------------- /tregn96_src/compile_tregn96.sh: -------------------------------------------------------------------------------- 1 | #################### 2 | ## copy subs code 3 | #################### 4 | cps_subs_dir='/home/leon/code/PROGRAMS.330/SUBS' 5 | 6 | #cp $cps_subs_dir/tgetmod.f . 7 | #cp $cps_subs_dir/mnmarg.f . 8 | #cp $cps_subs_dir/mgtarg.f . 9 | #cp $cps_subs_dir/mchdep.f . 10 | #cp $cps_subs_dir/lgstr.f . 11 | 12 | 13 | #f2py -h tregn96.pyf -m tregn96 tregn96_subroutine.f mnmarg.f mgtarg.f lgstr.f tio.f mchdep.f tgetmod.f 14 | f2py --f77flags="-ffixed-line-length-none -O3" --f90flags="-O3" -c tregn96.pyf tregn96_subroutine.f mnmarg.f mgtarg.f lgstr.f tio.f mchdep.f tgetmod.f 15 | 16 | cp tregn96.so .. 17 | -------------------------------------------------------------------------------- /tregn96_src/lgstr.f: -------------------------------------------------------------------------------- 1 | function lgstr(str) 2 | c----- 3 | c function to find the length of a string 4 | c this will only be used with file system path names 5 | c thus the first blank 6 | c indicates the end of the string 7 | c----- 8 | implicit none 9 | character*(*) str 10 | integer*4 lgstr 11 | integer n, i 12 | n = len(str) 13 | lgstr = 1 14 | do 1000 i=n,1,-1 15 | lgstr = i 16 | if(str(i:i).ne.' ')goto 100 17 | 1000 continue 18 | 100 continue 19 | return 20 | end 21 | -------------------------------------------------------------------------------- /tregn96_src/mchdep.f: -------------------------------------------------------------------------------- 1 | subroutine mchdep() 2 | c---------------------------------------------------------------------c 3 | c c 4 | c COMPUTER PROGRAMS IN SEISMOLOGY c 5 | c VOLUME V c 6 | c c 7 | c PROGRAM: mchdep c 8 | c c 9 | c COPYRIGHT 1996 R. B. Herrmann c 10 | c c 11 | c Department of Earth and Atmospheric Sciences c 12 | c Saint Louis University c 13 | c 221 North Grand Boulevard c 14 | c St. Louis, Missouri 63103 c 15 | c U. S. A. c 16 | c c 17 | c---------------------------------------------------------------------c 18 | implicit none 19 | return 20 | end 21 | -------------------------------------------------------------------------------- /tregn96_src/mgtarg.f: -------------------------------------------------------------------------------- 1 | subroutine mgtarg(i,name) 2 | c---------------------------------------------------------------------c 3 | c c 4 | c COMPUTER PROGRAMS IN SEISMOLOGY c 5 | c VOLUME V c 6 | c c 7 | c SUBROUTINE: MGTARG c 8 | c c 9 | c COPYRIGHT 1996 R. B. Herrmann c 10 | c c 11 | c Department of Earth and Atmospheric Sciences c 12 | c Saint Louis University c 13 | c 221 North Grand Boulevard c 14 | c St. Louis, Missouri 63103 c 15 | c U. S. A. c 16 | c c 17 | c---------------------------------------------------------------------c 18 | c----- 19 | c return the i'th command line argument 20 | c 21 | c This version works on SUN, IBM RS6000 22 | c----- 23 | implicit none 24 | integer i 25 | character name*(*) 26 | call getarg(i,name) 27 | return 28 | end 29 | -------------------------------------------------------------------------------- /tregn96_src/mnmarg.f: -------------------------------------------------------------------------------- 1 | function mnmarg() 2 | c---------------------------------------------------------------------c 3 | c c 4 | c COMPUTER PROGRAMS IN SEISMOLOGY c 5 | c VOLUME V c 6 | c c 7 | c SUBROUTINE: MNMARG c 8 | c c 9 | c COPYRIGHT 1996 R. B. Herrmann c 10 | c c 11 | c Department of Earth and Atmospheric Sciences c 12 | c Saint Louis University c 13 | c 221 North Grand Boulevard c 14 | c St. Louis, Missouri 63103 c 15 | c U. S. A. c 16 | c c 17 | c---------------------------------------------------------------------c 18 | implicit none 19 | integer iargc 20 | integer mnmarg 21 | mnmarg = iargc() 22 | return 23 | end 24 | -------------------------------------------------------------------------------- /tregn96_src/test_tregn96.py: -------------------------------------------------------------------------------- 1 | 2 | # # 0.1000E+01 dt 3 | # # 7 -1 -2 npts n1(user spcified or not, when < 0: user specified) n2 4 | # # out.mod mname 5 | # # T T dolove dorayl 6 | # # 0.0000E+00 0.0000E+00 hs hr 7 | # # 1 nmodes 8 | # # 0.5000E+01 0.5000E+01 faclov facrayl 9 | # # 0.10000000E+00 10 | # # 0.66666670E-01 11 | # # 0.50000001E-01 12 | # # 0.39999999E-01 13 | # # 0.33333335E-01 14 | # # 0.28571429E-01 15 | # # 0.25000000E-01 16 | 17 | # input 18 | # ilvry : love(1) or rayleigh(2) 19 | # nn - npts 20 | # mname - model name 21 | # verby - screen output or not 22 | # nfval - npts 23 | # fval - input frequencies (array) 24 | # ccmin, ccmax - min/max phase vel 25 | 26 | # output 27 | # iret 28 | 29 | 30 | # subroutine disprs(ilvry,dt,nn,iret,mname, 31 | # 1 verby,nfval,fval,ccmin,ccmax) 32 | 33 | 34 | 35 | 36 | import tregn96 37 | import vmodel 38 | import numpy as np 39 | model=vmodel.Model1d(modelindex=2) 40 | model.read('test_model.txt') 41 | d_in = model.HArr 42 | TA_in = model.rhoArr * model.VphArr**2 43 | TC_in = model.rhoArr * model.VpvArr**2 44 | TL_in = model.rhoArr * model.VsvArr**2 45 | TF_in = 1.0 * (TA_in - np.float32(2.)* TL_in) 46 | TN_in = model.rhoArr * model.VshArr**2 47 | TRho_in = model.rhoArr 48 | qai_in = model.QpArr 49 | qbi_in = model.QsArr 50 | etapi_in= model.etapArr 51 | etasi_in= model.etasArr 52 | frefpi_in= model.frefpArr 53 | frefsi_in= model.frefsArr 54 | 55 | hs_in=0. 56 | hr_in=0. 57 | ohr_in=0. 58 | ohs_in=0. 59 | refdep_in=0. 60 | nl_in = model.HArr.size 61 | iflsph_in = 0 62 | mode_in=np.ones(7, dtype=np.int) 63 | Nt_in=7 64 | t_in = (np.arange(7)*5.+10.) 65 | cp_in = np.array([ 3.22712779, 3.37151194, 3.55520225, 3.71019101, 3.8115027 , 66 | 3.87411857, 3.91453123]) 67 | dogam=False 68 | u_out,ur, tur, uz, tuz,dcdh,dcdav,dcdah,dcdbv,dcdbh,dcdn,dcdr=tregn96.tregn96(hs_in, hr_in, ohr_in,ohs_in, refdep_in,dogam, nl_in, iflsph_in,\ 69 | d_in,TA_in,TC_in,TF_in,TL_in,TN_in,TRho_in,\ 70 | qai_in,qbi_in,etapi_in,etasi_in,frefpi_in,frefsi_in, Nt_in, t_in, cp_in) -------------------------------------------------------------------------------- /tregn96_src/tregn96.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/tregn96_src/tregn96.so -------------------------------------------------------------------------------- /tregn96_src/vmodel.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/tregn96_src/vmodel.pyc -------------------------------------------------------------------------------- /vmodel.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/vmodel.pyc -------------------------------------------------------------------------------- /vmodel_cps.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lfengmle/pyfwrd/1a4f60744f3e2377a00adde47ccbfb80b6ba5429/vmodel_cps.pyc --------------------------------------------------------------------------------