Commit afc27bed authored by thomas.forbriger's avatar thomas.forbriger Committed by thomas.forbriger
Browse files

correction

This is a legacy commit from before 2015-03-01.
It may be incomplete as well as inconsistent.
See COPYING.legacy and README.history for details.


SVN Path:     http://gpitrsvn.gpi.uni-karlsruhe.de/repos/TFSoftware/trunk
SVN Revision: 3002
SVN UUID:     67feda4a-a26e-11df-9d6e-31afc202ad0c
parent 41ffcde6
c this is <refmet.f> originally by J. Ungerer 1990
c======================================================================
c $Id: refmet.f,v 1.14 2010-03-02 13:31:05 tforb Exp $
c $Id: refmet.f,v 1.15 2010-03-03 09:02:49 tforb Exp $
c
c Reflectivity Method
c
......@@ -101,15 +101,16 @@ c 29/04/2000 V2.7 introduced Hankel functions
c 11/02/2003 V2.8 introduced new parameter definition (for const-Q case
c only): tabluated velocity refers to real part of modulus
c 23/02/2009 V2.9 porting code to gfortran
c 02/03/2010 V1.10 implementing line source
c 02/03/2010 V2.10 implementing line source
c 03/03/2010 V2.11 correction of line source kernel
c
c======================================================================
PROGRAM refmet
character*70 version
parameter(version='REFMET V2.10 Reflectivity Method')
parameter(version='REFMET V2.11 Reflectivity Method')
character*79 cvsid
parameter(cvsid='$Id: refmet.f,v 1.14 2010-03-02 13:31:05 tforb Exp $')
parameter(cvsid='$Id: refmet.f,v 1.15 2010-03-03 09:02:49 tforb Exp $')
c array dimension declaration
integer me, msl, mf, ms
......@@ -2097,41 +2098,18 @@ c no tangential component, no near field
IDNz=dcmplx(0.d0)
endif
elseif (cl_linesrc) then
C Line source calculation with cosine kernel
J0=cos(jarg)
J1=0.
J2=0.
c calculate integrands
if (typ.eq.1) then
stop 'ERROR: line source not defined for moment tensor'
elseif (typ.eq.2) then
c for a vertical single force
IDFr=dcmplx(0.d0)
c only vertical component is defined for line source
if (u.gt.1.e-50) then
IDFz=2.d0*FFI*IME*In4*J0*w(f)/u
else
IDFz=dcmplx(0.d0)
endif
c no tangential component, no near field
IDFphi=dcmplx(0.d0)
IDNphi=dcmplx(0.d0)
IDNr=dcmplx(0.d0)
IDNz=dcmplx(0.d0)
endif
else
if (cl_linesrc) then
c quick and dirty kernel substitution for line source
J0=cos(jarg)/min(1.d-50,w(f)*u)
J1=0.d0
J2=0.d0
else
C Besselfunktionen aufrufen
J0=d_j0(jarg)
J1=d_j1(jarg)
J2=d_jn(2,jarg)
J0=d_j0(jarg)
J1=d_j1(jarg)
J2=d_jn(2,jarg)
endif
c calculate integrands
......
......@@ -22,7 +22,6 @@ c along with this program; if not, write to the Free Software
c Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
c ----
c
c
c======================================================================
c
c give basic information
......@@ -74,11 +73,14 @@ c
print *,'-p u use Hankel functions only for slowness values'
print *,' greater than ''u'' (in s/km).'
print *,'-l use line source (cosine kernels)'
print *,' note: only vertical single force is defined'
print *,' radial component is not defined and will'
print *,' be set to zero.'
print *,' For technical reasons the integration will'
print *,' not include slowness euqal zero.'
print *,' This is a quick and dirty modification, which'
print *,' should work for the vertical component only'
print *,' and only for vertical single forces and'
print *,' isotropic moment tensors. The Bessel-function'
print *,' kernels are simply replaced:'
print *,' J0(w*u*r) -> cos(w*u*r)/min(1.d-50,w*u)'
print *,' J1(w*u*r) -> 0'
print *,' J2(w*u*r) -> 0'
print *,' '
print *,'file Is the name of the main configuration file.'
print *,' It contains the names of the three file'
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment