GithubHelp home page GithubHelp logo

akuhara / rf_inv Goto Github PK

View Code? Open in Web Editor NEW
23.0 3.0 12.0 3.79 MB

Receiver function inversion by reversible-jump Markov-chain Monte Carlo

License: GNU General Public License v3.0

Fortran 85.23% Makefile 1.74% Python 13.03%
receiver-function-inversion fortran90 openmpi reversible-jump-mcmc parallel-tempering ocean-bottom-seismometer seismology

rf_inv's Introduction

Note

This software is no longer being updated. Please consider adopting our new software, SEIS_FILO (https://github.com/akuhara/SEIS_FILO), which offers enhanced features like joint inversion with dispersion curves.

RF_INV

Transdimensional inversion of receiver function waveforms by reversible-jump Markov-chain Monte Carlo

(c) 2018-2019 Takeshi Akuhara (Email: akuhara @ eri.u-tokyo.ac.jp)

Any bug report and suggestions are welcome!

Features

  • Applicable to OBS & borehole station
    • Model can include the sea water on its top. Also the station may be buried.
  • Multiple input traces
    • Can asign different ray parameter and Gaussian-filter for each trace.
  • Can use S receiver functions
    • Joint inversion of P and S receiver functions is also possible.
  • Parallel tempering
    • More efficient than conventional MCMC.
  • Invert for velocity perturbation
    • Non-uniqueness of inversion can be mitigated by constraint from a reference velocity model.

See Wiki for more details.

Terms of Use

  • Please clarify the URL of the GitHub repository (https://github.com/akuhara/RF_INV) and developer's name (Takeshi Akuhara) when you make any presentation or publish articles using this program.
  • This program is licensed under the GNU General Public License v3.0.

Requirements


Manual

A manual is available here.

rf_inv's People

Contributors

akuhara avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

rf_inv's Issues

RF normalization

Should accept different ways of RF normalization.

  • Relative to vertical component record or incident wave?
  • Compensate for energy loss by filter or not?

Some possible compiling error and demo running error

It seems that the whole program has been revised, so I reinstalled the package for inversion.

When I compile this program with OpenMPI-5.0.0, it showed the Error, etc.

mpif-sizeof.h:66:48:

Error: Fortran 2008: The symbol ‘real128’, referenced at (1), is not in the selected standard
mpif-sizeof.h:67:14:

Error: Parameter ‘real128’ at (1) has not been declared or is a variable, which does not reduce to a constant expression

The -std option in Makefile may cause it, and it seems that f2003 is incompatible with those ‘real128’ declarations in the mpi header. Maybe we could change the FFLAGS into

FFLAGS = -g -Wall -std=f2008  -pedantic -fbounds-check -O0 -Wuninitialized \
            -ffpe-trap=invalid,zero,overflow -fbacktrace \
            -fno-range-check

The second error might be a little bit tricky. When I ran the demo, it showed the error

ERROR: cannot create ./rslt/params.in.copy

That is because there is no folder named "rslt", and it might be fixed with

mkdir rslt

before running this demo.

Problem in Parameter file (params.in) of demo

When I installed the package and ran the program with the file "params.in" in demo, I receive:

ERROR: cannot create Note:/params.in.copy

I think the reason why it happened is that : There is a mistake in params.in

# Output directory
#---------------------------------------------------------
# OUTDIR: output directory 
          Note: quotation mark is necessary
'./result'
#

There should be a # before "Note: quotation mark is necessary"

When I add the # before the "Note: quotation mark is necessary", I receive:

Sigma is solved for trace 1
At line 240 of file src/params.f90
Fortran runtime error: Bad real number in item 2 of list input

Then I check the fortran code of "params.f90", I found that "line 240" is the parameter of sigma.
According to the demo of params.in, there should be 3 line about "Min./Max. of noise sigma". In order words, This part of "params.in"

# Min./Max. of noise sigma
0.005 0.08
#

should be changed into

# Min./Max. of noise sigma
0.005 0.08
0.005 0.08
0.005 0.08
#

Besides, before running this demo, we should prepare the SAC files and "reference.mod" file.

In the view of above, I think that if there is a specific demo, this program will be used easier.

Problem with a little big ray parameter

hello akuhara!
when I try to invert my own data setting a little bit large ray parameter like 0.15(s/km) in the param file, it just crashed and report an error like :
Program received signal SIGFPE: Floating-point exception - erroneous arithmetic operation.
but when using values around 0.06-0.1(s/km) like those in the examples, it works well.
Is it a problem of the propagator matrix itself or I set something else wrong?
yangjudiao

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.