/litmod

Integrated geophysical, petrological, and thermochemical modelling of the lithosphere

Primary LanguageFortran

LitMod3D 4.0

LitMod3D is a software for 3D integrated geophysical-petrological interactive modelling of the lithosphere and underlying upper mantle using a variety of input datasets: potential fields (gravity and magnetic), surface heat flow, elevation (isostasy), seismics, magnetotellurics and geochemical.

Ver 3.0 incorporates a highly optimised Python thermal solver (bi-conjugate gradient squared method), crustal petrology features (thermodynamic equilibrium and metastable) and a parallel gravity forward solver. The new version is intended to work with program get-inp (customized interface to Perple_X, http://www.perplex.ethz.ch/) to generate the inputcrustal and mantle compositional files.

Ver 4.0 has a built-in dispersion-curves calculator.

Installation

Download the distibution archive (not yet available) to your computer and unpack it into a folder (for example ~/litmod).

Linux

You have to have Python 3, PGPLOT, gfortran, zsh and GMT4 installed on your computer. In Linux, set zsh as a main shell. Change directory to the folder with unpacked files.

macOS

In macOS, first install iTerm2. Within iTerm2 terminal install brew with command:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

Than install zsh with command :

brew install zsh

Make zsh a default shell in iTerm2 by clicking iTerm2 -> Profiles -> Command: /bin/zsh.

Restart iTerm2 and install Oh My Zsh with command:

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Now, install XQuartz from the latest .dmg package:

After, install pgplot with command:

brew install pgplot

Finally, to compile LitMod, use:

make

Note that if you already had pgplot and/or XQuartz installed on your Mac, you may have to change the path to libraries. Instructions above were tested on macOS Catalina 10.15.5.

Usage

Preparing GMT6

LitMod executables and main calling script LITMOD_3D_4.0.job use GMT6. GMT6 should be installed prior the usage of LitMod.

Check the version of GMT by running:

gmt

in the console (for both Mac and Linux).

Input files

Examples of input files required to run LitMod are included into the archive (https://github.com/javfurchu/litmod/releases/download/v3.0/litmod_3.0.zip)

LitMod requires a number of input files that are managed from the calling script LITMOD_3D.job:

  • LITMOD3D.info model parameters such as mesh size and the thermal boundary conditions.
  • mnt.info lists the compositional files to be used in the thermodynamic calculations.

In addition other input files are required:

  • layers.info header file that describes the physical and petrological properties of each layer in the model.
  • Geometry of model layers in the folder 'layers' (geographical coordinates),and the folder 'layers_xy' (Cartesian coordinates).
  • Compositional files in the folder 'mant_data'.

LITMOD_3D_4.0.job

LITMOD_3D_4.0.job contains all the input values required to run LiMod. The script interfaces with GMT and generates LITMOD3D.info and mnt.info files rquired by LitMod. LITMOD_3D_4.0.job also processes the files contained in the folder 'layers' (geographical layers) and puts the output (Cartesian layers) in the folder 'layers_xy' as required by LitMod.

At the beginning of LITMOD_3D_4.0.job the user can set up the geopgraphical boundaries of the modelling region (lon_min, lon_max, lat_min, lat_max), the number of nodes in the model (N_x, N_y, N_z) and other parameters.

LITMOD_3D_4.0.job preprocesses input grids for geophysical data (e.g., gravity anomaly, surface topography, etc.) and reprojects them onto the modelling region (within lon_min, lon_max, lat_min, lat_max) with defined grid spacing (as per N_x, N_y variables). To make a first run, set parameter pre_pro to 1 and run LITMOD_3D_4.0.job:

./LITMOD_3D_4.0.job

The distibution provides sample observed data grids in the folder example_obs. The user can provide customized data grids with the format lon; lat; value that will be preprocessed by LITMOD_3D_4.0.job. For the gravity gradients a small program (LNOF2MRF) is provided to rotate the tensor from the Local North Oriented Reference Frame (https://earth.esa.int/web/guest/data-access/view-data-product/-/article/goce-gravity-gradients-in-lnof-5775) to the model reference frame in the Cartesian coordinate system used by LitMod.

After running LITMOD_3D_4.0.job in preprocessing mode, switch pre_pro variable to 0 and run LITMOD_3D_4.0.job again. This will run LitMod forward modelling code. The ouput geophysical data sets and the 3D lithospheric model can be visualized using LitMod graphical interface, which also can be used to interactively modify the 3D model:

./litmod_intf

MINEOS grid calculation

To calculate dispersion curves in each grid point, open LITMOD_3D_4.0.job and set

mineos_whole_grid=1

This would turn on the caluclation of dispersion curves in each node of the model (N_x, N_y).

You are required to have ME01.dat and ME01b.dat files with reference reference 1D models with Vp, Vs, rho for z > 400 km for isotropic and anisotropic cases in the folder.

After running LITMOD_3D_4.0.job, run

python3 periods.py 10.0

to create grids with veolcities and velocity anomalies for 10.0 second period. For other period, enter another number as an argument instead of 10.0.

Four grids in format LON LAT VALUE would be produced as a result: MINEOS_out_grid_love_10.0.xyz, MINEOS_out_grid_ray_10.0.xyz, MINEOS_out_grid_love_10.0_anom.xyz, MINEOS_out_grid_ray_10.0_anom.xyz

Grids can be plotted using GMT script plot_MINEOS_out_grid.sh