The Okubo  model calculates analytical solution for gravity changes due to shear and tensile faults in an elastic half-space (as Okada  does for deformations). This model can be used to simulate gravity anomalies produced by local perturbation like tectonic faults (earthquakes) or volcanic dykes (magmatic intrusion). Given rectangular fault geometry (length, width, depth, strike, dip) and 3-component dislocation amplitude (rake, slip and open), it computes the total gravity change (potential, cavity filling and free-air) at the free-surface.
The proposed Matlab script is a literal transcription of the Okubo's equations, except for the fault geometry that it is transposed in a geographical referential (East, North, Up), where the fault is defined by a strike angle relative to the North, and dislocation parameters are given by: rake, slip and opening (instead of U1, U2, U3), following Aki & Richards  definition. All coordinates and depth are relative to fault centroid.
The equations are also vectorized for (x,y) coordinates and all parameters except dip angle.
Type "doc okubo92" for help, syntax and example, and see script comments for details.
Dear François Beauducel,
I added code to allow for potential changes computations. I checked these against figures from the Okubo paper and agains FEM solutions.
If you are interested I can provide you with the code.
Thanks for your feedback. The modification you made makes the function compatible with older version of Matlab (before 2009b, probably yours ?), but it adds warnings of the code analyser message indicator for any newer versions...
Anyway, I prefer to extend the backward compatibility so I will include your update.
I modified the scrip, now it works also for mee:
remove all ~ add dummy parameter:
function u=Sg(xi,eta,q,dip,nu) % dip,~)
function u=Dg(xi,eta,q,dip,nu) % dip,~)
function u=Tg(xi,eta,q,dip,nu) % dip,~)
function u=Cg(xi,eta,q,dip,nu) % dip,~)
function I=I2(xi,eta,q,R,nu) % dip,~)
I have problems using the code it says:
?? Error: File: okubo92.m Line: 249 Column: 28
Unexpected MATLAB operator.
When I look at this line I see:
maybe the ~ is problematical
- correction of a sign error on filling cavity effect