164 real,
intent(in) :: t
165 real,
intent(in) :: ts
166 real,
intent(in) :: l
167 real,
intent(in) :: a
173 gabor = a*exp(-((t-ts)**2)/(2.0*s**2))* ( cos(2.0*rg_pi*(t-ts)/l) )
193 real,
intent(in) :: t
194 real,
intent(in) :: ts
195 real,
intent(in) :: fp
204 expcos = exp(-(ome*(t-ts)/gam)**2)*cos(ome*(t-ts)+the)
221 real,
intent(inout) :: s
222 real,
intent(in) :: t
223 real,
intent(in) :: du
233 if (abst >= 2.0*dtsp)
then
235 elseif ( (abst < (2.0*dtsp)) .and. (abst >= dtsp) )
then
236 s = ((2.0*dtsp-abst)**3)/(6.0*dtsp**3)
238 s = (3.0*abst**3 - 6.0*dtsp*abst**2 + 4.0*dtsp**3)/(6.0*dtsp**3)
262 real,
intent(in) :: t
263 real,
intent(in) :: ts
264 real,
intent(in) :: tp
265 real,
intent(in) :: a
267 ricker = 2.0*a*((rg_pi**2*(t-ts)**2)/(tp**2)-0.5)*exp((-rg_pi**2*(t-ts)**2)/(tp**2))
285 real,
intent(in) :: t
286 real,
intent(in) :: tp
287 real,
intent(in) :: a
289 spiexp = a*(1.0-(1.0+t/tp)*exp(-t/tp))
308 real,
intent(in) :: t
309 real,
intent(in) :: ts
310 real,
intent(in) :: tp
311 real,
intent(in) :: a
319 fctanh = a*0.5*( 1.0 + tanh((t-tt0)/(tau/5.0)) )
338 real,
intent(in) :: t
339 real,
intent(in) :: tp
340 real,
intent(in) :: ts
341 real,
intent(in) :: a
348 fc = 1.0/(4.0*(tau/5.0))
351 fctanh_dt = +a*2.0*fc*(1.0-(tanh(4.0*fc*(t-tt0)))**2)
394 subroutine interp_linear( dim_num, data_num, t_data, p_data, interp_num, t_interp, p_interp )
401 integer,
intent( in) :: data_num
402 integer,
intent( in) :: dim_num
403 integer,
intent( in) :: interp_num
404 real ,
intent( in) :: t_data(data_num)
405 real ,
intent( in) :: t_interp(interp_num)
406 real ,
intent( in) :: p_data(dim_num,data_num)
407 real ,
intent(out) :: p_interp(dim_num,interp_num)
414 character(len=255) :: info
417 write (info,
'(a)')
'error in subroutine interp_linear: Independent variable array T_DATA is not strictly increasing.'
418 call error_stop(info)
421 do interp = 1, interp_num
430 p_interp(1:dim_num,interp) = &
431 ( ( t_data(right) - t ) * p_data(1:dim_num,left) &
432 + ( t - t_data(left) ) * p_data(1:dim_num,right) ) &
433 / ( t_data(right) - t_data(left) )
460 integer,
intent(in) :: n
461 real ,
intent(in),
dimension(n) :: x
466 if ( x(i+1) <= x(i) )
then
498 integer,
intent( in) :: n
499 real ,
intent( in),
dimension(n) :: x
500 real ,
intent( in) :: xval
501 integer,
intent(out) :: left
502 integer,
intent(out) :: right
508 if ( xval < x(i) )
then
subroutine, public interp_linear(dim_num, data_num, t_data, p_data, interp_num, t_interp, p_interp)
INTERP_LINEAR applies piecewise linear interpolation to data.
subroutine, private rvec_bracket(n, x, xval, left, right)
This subroutine searches a sorted R8VEC for successive brackets of a value.
real function, public spiexp(t, tp, a)
function to compute spice project exponential source function :
real function, public gabor(t, ts, l, a)
function to compute real part of Gabor wavelet :
This module defines all global variables of EFISPEC3D. Scalar variables are initialized directly in t...
real function, public ricker(t, ts, tp, a)
function to compute order 2 Ricker wavelet :
logical function, private rvec_ascends_strictly(n, x)
This function determines if an R8VEC is strictly ascending.
real function, public expcos(t, ts, fp)
function to compute euroseistest project source function for case can1 :
This module contains functions and subroutines to compute tsource functions's time history...
subroutine, public ispli3(t, du, s)
function to compute order 3 spline : see Wikipedia
real function, public fctanh_dt(t, ts, tp, a)
function to compute first derivative of hyperbolic tangent function : with
real function, public fctanh(t, ts, tp, a)
function to compute hyperbolic tangent function (also called 'Bouchon pulse') : ...