okada地震模型

所属分类:matlab编程
开发工具:matlab
文件大小:3056KB
下载次数:12
上传日期:2020-04-13 21:47:33
上 传 者1269226384@qq.com
说明:  okada地震模型,地球物理/地质等数学模型,matlab实现代码
(Okada seismic model, geophysical/geological mathematical model, matlab code)

文件列表:
testu.txt (198, 1996-07-02)
testu.out (198, 1998-11-06)
testn.xyr (109, 1996-07-02)
testn.txt (198, 1996-07-02)
testn.out (198, 1998-11-06)
teste.xyr (108, 1996-07-02)
teste.txt (198, 1996-07-02)
teste.out (198, 1998-11-06)
test.faults (365, 1996-07-02)
table2.ps (965186, 1998-11-05)
table2.doc (51712, 1998-11-06)
slipper.fti (3138, 1998-11-06)
seismo_to_okada.m (744, 1996-07-03)
rngchn.rtf (278753, 1998-11-06)
rngchn.ps (1336488, 1998-11-06)
rngchn.f (116871, 1998-11-06)
rngchn.doc (305664, 1998-11-06)
read_table.m (2615, 1998-11-06)
read_fault.m (1402, 1998-11-06)
range_change.f (13394, 1996-07-10)
rad.m (72, 1996-07-03)
okada_to_seismo.m (1445, 1996-07-03)
okada_to_gmt.m (1937, 1998-11-06)
lststr.m (285, 1996-07-08)
Image77.gif (929, 1998-11-06)
Image69.gif (1748, 1998-11-06)
Image68.gif (1741, 1998-11-06)
Image67.gif (1487, 1998-11-06)
Image45.gif (837, 1998-11-06)
Image43.gif (837, 1998-11-06)
fio_hp.c (2660, 1996-07-15)
fio.c (2735, 1996-07-15)
fig5.xyr (588, 1996-07-03)
fig5.ps (11822, 1996-07-03)
fig5.faults (1175, 1996-07-03)
fig4.ps (3278120, 1996-07-02)
fig3d.faults (602, 1996-07-02)
fig3c.faults (600, 1996-07-02)
fig3b.faults (600, 1996-07-02)
... ...

RNGCHN: a program to calculate displacement components from dislocations in an elastic half-space with applications for modeling geodetic measurements of crustal deformation Kurt L. Feigl and Emmeline Dupre Revised for Computers and Geosciences (version 1.4) The RNGCHN program calculates a single component of the displacement field due to a finite or point-source dislocation buried in an elastic half space. This formulation approximates the surface movements produced by earthquake faulting or volcanic intrusion. As such, it is appropriate for modeling crustal deformation measured by geodetic surveying techniques, such as spirit leveling, trilateration, Very Long Baseline Interferometry (VLBI), Global Positioning System (GPS), or especially interferometric analysis of synthetic aperture radar (SAR) images. Examples suggest that this model can fit simple coseismic earthquake signatures to within their measurement uncertainties. The program's input parameters include fault position, depth, length, width, strike, dip, and three components of slip. The output consists of displacement components in the form of an ASCII list or a rectangular array of binary integers. The same program also provides partial derivatives of the displacement component with respect to all 10 input parameters. The FORTRAN source code for the program is in the public domain and available as the compressed tar file rngchn.tar.Z in the directory /pub/GRGS via the Internet by anonymous ftp to spike.cst.cnes.fr. This distribution includes worked examples and a MATLAB interface. We appreciate comments and corrections. This program will be part of a package prepared under contract to the European Space Agency, and a paper in Computers and Geosciences. If you use the program in a publication, please cite: Feigl, K. L. and E. Dupre, RNGCHN: a program to calculate displacement components from dislocations in an elastic half-space with applications for modeling geodetic measurements of crustal deformation revised for Computers and Geosciences, November, 19*** Good luck. Kurt Feigl Emmeline Dupre ***------------------ Obtaining the code by ftp: Machine: spike.cst.cnes.fr IP: IP 132.149.10.3 directory: /pub/GRGS file: rngchn.tar.Z Simple script: #!/bin/csh -xv # ftp to Toulouse, France to get RNGCHN package. ftp -inv < tmp2.f sed 's/subroutine read_line_hp(/subroutine read_line(/' < tmp2.f > rngchn.f f77 -c +O4 +U77 rngchn.f cc -c fio_hp.c f77 rngchn.o fio_hp.o +U77 -o rngchn # To run the simple test case: rngchn teste.xyr test.faults teste.out residual rngchn testn.xyr test.faults testn.out residual rngchn testu.xyr test.faults testu.out residual # To compare your output to ours: diff testn.txt testn.out diff teste.txt teste.out diff testu.txt testu.out # To run the examples in Figure 3: rngchn fig3.grdspec fig3a.faults fig3a.phm binary rngchn fig3.grdspec fig3b.faults fig3b.phm binary rngchn fig3.grdspec fig3c.faults fig3c.phm binary rngchn fig3.grdspec fig3d.faults fig3d.phm binary To visualize the output of the above example using the PBM translation package and the XV (bradley@cis.upenn.edu) visualizer, try: rawtopgm 120 119 fig3a.phm >! fig3a.pgm; xv fig3a.pgm ***------------------ As an example, the figure 3 was generated with the GMT script fig3.gmt. It uses the supplementary utility z2grd, which has been superceded by a new option in xyz2grd in version 3.0 of GMT. To run the example in Figure 4b: rngchn eureka.grdspec eureka.faults eureka.phm binary Syntax: rngchn points_file faults_file output_file option ^_____ output (format depends on option) ^_________ list of fault parameters If first column is non-blank, line is considered a comment or header. ^- list of points [east(km), north(km), Dr_obs] if Dr_obs is given, the residual option will calculate residual = Dr_obs - Dr_calc option : ascii, to compute range to an ASCII output file called eureka.rng : partial, to compute the matrix of approximate partial derivatives : analytic, to compute the matrix of exact partial derivatives : binary, to compute 1-byte integer Drange in 0-255 digital units, i.e. 256 units per cycle. : mm2bin, to compute 2-byte integer Drange in mm (good for interpolations) ***------------------ Warnings: The following subroutines may depend on your machine: INTWRITE, IBYTEWRITE, FERROR, and CLARG The convention is that the quantities calculated by range change are positive for upward movement, that is, a *negative* rngchn. In other words, rngchn = - Drange = (unit vector toward sat) * (displacement vector) Displacement vectors are taken to be [east,north,up]. ***------------------ MATLAB interface: To compile : (outside matlab) fmex range_change.f rngchn.f fio.c To compile on HP (outside matlab, requires "ANSI-C Developer's kit" for +z option"), must split out only needed functions. Be careful not to overwrite the whole program with the single subroutine. \mv rngchn.f rngchn_all.f fsplit rngchn_all.f fmex range_change.f rngchn_comp.f okada_patch.f chin.f deru_x.f \ deru1_x.f deru1_d.f deru_w.f deru_l.f deru_delta.f deru1_delta.f deru_d.f \ deru_u.f deru_p.f form_all_part3.f ech.f To get some instructions (inside matlab), type the name of the routine with no arguments: range_change Some examples (inside matlab): % ** SIMPLE TEST % Calculate velocities parallel to the San Andreas fault (at N138E az.) % read fault parameters from file [x,y,strike,depth,dip,u1,u2,u3,l,w,names]=read_fault('fig5.faults'); % read list of ground point coordinates from file [xy,names2]=read_table('fig5.xyr',4,6,6); e = xy(:,1); n = xy(:,2); % set up unit vector s=[cos(rad(90.-138.)),sin(rad(90.-138.)),0.]; r=range_change(x,y,strike,depth,dip,u1,u2,u3,l,w,e,n,s); % observed velocity values parallel to fault strike o = xy(:,3); % make velocity relative to VNDN, the first point in the list r=r-r(1); % projected distance from VNDN, normal to s perp=[cos(rad(90.-48.)),sin(rad(90.-48.)),0.]; z=[e-e(1) n-n(1)] * perp(1:2)' % make picture plot(z,o,'+',z,r) xlabel('distance NE of VNDN (km)') ylabel('Fault parallel motion (mm/yr)') title('Should look like figure 5') % ** HERE IS AN EXAMPLE USING A GRID. [x,y,strike,depth,dip,u1,u2,u3,l,w,names]=read_fault('fig5.faults'); e= 10*(-20:20); n= 10*(-3:25)'; % set up unit vector s=[cos(rad(90.-138.)),sin(rad(90.-138.)),0.]; r=range_change(x,y,strike,depth,dip,u1,u2,u3,l,w,e,n,s); surf(e,n,r) xlabel('East (km)') ylabel('North (km)') zlabel('V138 (mm/yr)') title('Fault-parallel velocity in California') % ** TEST THE PARTIAL DERIVATIVES, TOO. % % * 1. Calculate them using regular rngchn unix ('rngchn e11x1.xy fig3a.faults fig3a.prt analytic') c=read_table('fig3a.prt',6,12,0); % c2 has 11 rows, 10 columns c2 = c(:,3:12); % * 2. Calculate them using MATLAB interface [x,y,strike,depth,dip,u1,u2,u3,l,w,names]=read_fault('fig3a.faults'); [xy,names2]=read_table('e11x1.xy',1,3,3); e = xy(:,1); n = xy(:,2); s=[0.333 -0.07 0.94]; [r,a]=range_change(x,y,strike,depth,dip,u1,u2,u3,l,w,e,n,s); % display fractional error between approaches 1. and 2. format long e (a-c2) ./ c2 % the above should be better than 1.e-10. ------------------------------------------------------ Kurt Feigl CNRS UMR 5562 office: (33) 5 61 33 29 40 14, Ave. Edouard Belin fax (33) 5 61 25 32 05 31400 TOULOUSE E-mail: Kurt.Feigl@cnes.fr FRANCE (air mail!)

近期下载者

相关文件


收藏者