Commit 1e7a37d1 authored by thomas.forbriger's avatar thomas.forbriger

gresy [WP]: provide new options for Fourier domain filters

parent 6abbd1d9
...@@ -2,6 +2,7 @@ c this is <gresy.f> ...@@ -2,6 +2,7 @@ c this is <gresy.f>
c------------------------------------------------------------------------------ c------------------------------------------------------------------------------
c c
c Copyright 1997, 2010 by Thomas Forbriger (IfG Stuttgart) c Copyright 1997, 2010 by Thomas Forbriger (IfG Stuttgart)
c Copyright 2019 by Thomas Forbriger (BFO, KIT)
c c
c calculate seismograms from a greens function matrix file c calculate seismograms from a greens function matrix file
c c
...@@ -57,12 +58,13 @@ c 29/11/2011 V1.18 implemented radial component line source ...@@ -57,12 +58,13 @@ c 29/11/2011 V1.18 implemented radial component line source
c both new cases successfully tested against refmet c both new cases successfully tested against refmet
c notice: refmet is not yet tested against a c notice: refmet is not yet tested against a
c reference c reference
c 11/12/2019 V1.19 support Fourier domain filters
c c
c============================================================================== c==============================================================================
c c
program gresy program gresy
character*79 version character*79 version
parameter(version='GRESY V1.18 GREens function SYnthetics') parameter(version='GRESY V1.19 GREens function SYnthetics')
c dimensions c dimensions
integer maxtr, maxsamp, maxom, maxu integer maxtr, maxsamp, maxom, maxu
parameter(maxu=10000, maxtr=maxu, maxom=4100, maxsamp=maxom*2) parameter(maxu=10000, maxtr=maxu, maxom=4100, maxsamp=maxom*2)
...@@ -105,14 +107,18 @@ c seismogram trace to sff file ...@@ -105,14 +107,18 @@ c seismogram trace to sff file
real dt real dt
c commandline c commandline
integer maxopt, lastarg, iargc integer maxopt, lastarg, iargc
parameter(maxopt=15) parameter(maxopt=19)
character*3 optid(maxopt) character*4 optid(maxopt)
character*80 optarg(maxopt) character*80 optarg(maxopt)
logical optset(maxopt), opthasarg(maxopt) logical optset(maxopt), opthasarg(maxopt)
c options c options
logical debug, optlambda, optnew, optresponse, hankel1, hankel2 logical debug, optlambda, optnew, optresponse, hankel1, hankel2
logical suppress, radial, verbose, linesource, usemaster logical suppress, radial, verbose, linesource, usemaster
real lambdalim, tapfrac real lambdalim, tapfrac
c low- and high-pass frequency, time shifts (source, origin)
real lpbf,hpbf,tshiftsrc,tshiftorigin
c oredr of low- and high-pass
integer lpbo, hpbo
character*80 respfile, fileformat character*80 respfile, fileformat
c taper c taper
real tf_costap real tf_costap
...@@ -135,11 +141,12 @@ c functions ...@@ -135,11 +141,12 @@ c functions
double precision tf_dj1, tf_dy1 double precision tf_dj1, tf_dy1
c here are the keys to our commandline options c here are the keys to our commandline options
data optid/'-D','-l','-o','-t','-r','-S','-1','-2','-R','-v', data optid/'-D','-l','-o','-t','-r','-S','-1','-2','-R','-v',
& '-L','-ty','-dt', '-N', '-m'/ & '-L','-ty','-dt', '-N', '-m', '-lpb', '-hpb',
& '-tss', '-tso'/
data opthasarg/.FALSE.,.TRUE.,.FALSE.,2*.TRUE.,6*.FALSE., data opthasarg/.FALSE.,.TRUE.,.FALSE.,2*.TRUE.,6*.FALSE.,
& 3*.true.,.false./ & 3*.true.,.false.,4*.true./
data optarg/'-','1.','-','10.','junk',6*'-','sff', data optarg/'-','1.','-','10.','junk',6*'-','sff',
& '1.e-18','1000000','-'/ & '1.e-18','1000000','-',2*'1.,0',2*'0.'/
c---------------------------------------------------------------------- c----------------------------------------------------------------------
c c
c read commandline c read commandline
...@@ -149,6 +156,7 @@ c ...@@ -149,6 +156,7 @@ c
print *,' [-m] [-l lambda] [-o]' print *,' [-m] [-l lambda] [-o]'
print *,' [-t frac] [-r respfile] [-S] [-1] [-2] [-R]' print *,' [-t frac] [-r respfile] [-S] [-1] [-2] [-R]'
print *,' [-v] [-d] [-L] [-ty f] [-dt dt] [-N n]' print *,' [-v] [-d] [-L] [-ty f] [-dt dt] [-N n]'
print *,' [-lpb f,o] [-hpb f,o] [-tss t] [-tso t]'
print *,'or gresy -help' print *,'or gresy -help'
print *,'or gresy -xhelp' print *,'or gresy -xhelp'
call tf_seitosh_reference call tf_seitosh_reference
...@@ -207,6 +215,20 @@ c ...@@ -207,6 +215,20 @@ c
print *,'-L simulate seismograms from line source (2D)' print *,'-L simulate seismograms from line source (2D)'
print *,'-R calculate radial component' print *,'-R calculate radial component'
print *,' ' print *,' '
print *,'Fourier domain filter'
print *,' '
print *,'-lpb f,o apply a Butterworth low-pass'
print *,'-hpb f,o apply a Butterworth high-pass'
print *,' f: eigenfrequency of filter (in Hz)'
print *,' o: order of filter'
print *,' '
print *,'-tss t shift source time function by t (in s)'
print *,' t>0: onset is delayed'
print *,' source time in data file is not affected'
print *,'-tso t shift origin time by t (in s)'
print *,' t<0: first sample is before source time'
print *,' header data of traces will be adjusted'
print *,' '
print *,'Definition of the Fourier transformation:' print *,'Definition of the Fourier transformation:'
print *,'The Fourier transformation used in this program and in' print *,'The Fourier transformation used in this program and in'
print *,'related programs (like gremlin, syg, and greda) is' print *,'related programs (like gremlin, syg, and greda) is'
......
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