ROck Physics Toolbox  1.0 A microgeodynamics-based toolkit for rock physics.
microgeodynamics Module Reference

This module contains a number of mineral and rock physics utility routines. There are a number of derived types defined also. fit contains the data for polynomial fitting parameters. It is used by functions to convert temperature into Vs, Vp, and density. Type melt contains parameters for use in EOS for melt. Composition contains information on the bulk composition of the reference mantle and the potential temperature. Type mantle contains the information from from mineral physics on the physical properties of the reference mantle for a given value of the variable composition. Finally, unit cell contains the information on the seismic signature of the reference mantle (subscript sol), the observed seismic signature (subscript obs), and the effective values (subscript eff). If the difference between reference and observed values can be explained by melting, then the melt fraction and melt fraction dependent contiguity are calculated. Temperature is the potential (not actual) temperature for the unit cell. For example, it can be calculated from the depression/uplift of the transition zone boundaries in later modules. See the description of each function within the function body. Created by Saswata Hier-Majumder, August, 2012. !<. More...

List of all members.

## Data Types

type  composition
type  fit
type  mantle
type  melt
type  unit_cell

## Public Member Functions

type(unit_cell) function clear_unit_cell (cell)
type(melt) function set_melt (i)
As the name suggests, it zeros out the elements of the unit cell.!<.
real(sp) function vbw (dihedral, meltfrac)
This function sets the properties of the melt See Table 1 of Wimert and Hier-Majumder(2012) for details The choices are 1 = peridotite melt, (2273 K) Guillot and Sator (2007) 2 = MORB,(2073 K) Guillot and Sator (2007) 3 = peridotite melt, Ohtani and Maeda (2001) 4 = MORB, Ohtani and Maeda (2001) Any other value defaults to 1!<.
real(sp) function hmrb (dihedral, meltfrac)
This function returns the contiguity of a partially molten unit cell as a function of melt volume fraction and dihedral angle, using the parametrization of von Bargen and Waff (1986). Notice that the parameter Agg shouldn't become zero at zero melt fraction, as erroneously indicated in their article. it is fixed by subtracting it from pi to match their Figure 10. Doesn't work beyond melt volume fraction fo 0.18. !<.
real(sp) function whm (dihedral, meltfrac)
This function returns the two dimensional measurement of contiguity from Hier-Majumder et al (2006). This is not recommended as it typically returns contiguity values higher than the 3D models. !<.
subroutine vel2mod (vs, vp, rho, G, K, nu)
This function returns the contiguity as a function of melt fraction. The dihedral angle, even taken as an input is currently not used, as the model of Wimert and Hier-Majumder is valid for a constant dihedral angle of approximately 30 degreees. Doesn't work well beyond melt volume fraction of 0.25.!<.
subroutine mod2vel (G, K, rho, vs, vp)
This utility subroutine calculates shear modulus G, bulk modulus K, and Poisson's ratio nu, from known shear and P wave velocities. The use of SI units are not necessary, but strongly recommended, especially if using the functions related to melting. !<.
real(sp) function, dimension(4) elastic_melt (contiguity, meltfrac, K, G, nu, rho, Kl, rhol)
This subroutine calculates Vs and Vp from the moduli. Here, too, the use of SI units are strongly recommended.!<.
subroutine vinet (K0, rho, Kp, rho0, P, K)
This function calculates Vs/Vs0,Vp/VP0, K/K0, and G/G0 as a function of melt fraction, contiguity, and known solid bulk modulus, solid shear modulus, Poisson's ratio, solid density, liquid bulk modulus, and liquid density. On return, the four members in the array elastic_melt are respectively Vs/Vs0,Vp/VP0, K/K0, and G/G0. Please only enter SI units. !<.
subroutine bm3 (K0, rho, Kp, rho0, P, K)
Returns the bulk modulus, K, and pressure,P, from known values of density, rho, surface bulk modulus, K0, and the pressure derivative of the bulk modulus, Kp. It uses the Vinet EOS. !<.
type(mantle) function load_composition (comp)
Returns the bulk modulus, K, and pressure,P, from known values of density, rho, surface bulk modulus, K0, and the pressure derivative of the bulk modulus, Kp. It uses the third order Birch Murnaghan EOS. !<.
real(sp) function bisection (x1, x2, eps, cell, magma)
real(sp) function nonlinear_solve (x1, x2, eps, cell, magma)
real(sp) function, dimension(2) funcd (x, cell, magma)
This function finds the root of a known, nonlinear function funcd between values x1 and x2, within precision 1.0e-3 This function uses a combination of bisection method with Newton Raphson method.
real(sp) function temp2vs (T, basalt_fraction)
This function inverts returns vs_calc-vs_obs For inverting v_s to melt volume fraction using the nonlinear Newton-Raphson/bisection algorithm. This function calculates the first derivative numerically f' = (f(x+dx)-f(x))/dx !<.
real(sp) function temp2vp (T, basalt_fraction)
This function returns the Vs at a given temperature and basalt fraction based on Xu et al. (2008)!<.
real(sp) function temp2rho (T, basalt_fraction)
type(fit) function, dimension(3) temperaturefit (basalt_fraction)
real(sp) function depth2dt (depth)
This function interpolates VS, Vp, and density as a function of potential temperature for a given basalt fraction. The fut us determined by a fifthe order polynomial. Given the basalt fraction, the function returns 3 sets of six coefficients, for Vs,Vp, and rho. The fits are done on the data of Xu et al !<.

## Detailed Description

This module contains a number of mineral and rock physics utility routines. There are a number of derived types defined also. fit contains the data for polynomial fitting parameters. It is used by functions to convert temperature into Vs, Vp, and density. Type melt contains parameters for use in EOS for melt. Composition contains information on the bulk composition of the reference mantle and the potential temperature. Type mantle contains the information from from mineral physics on the physical properties of the reference mantle for a given value of the variable composition. Finally, unit cell contains the information on the seismic signature of the reference mantle (subscript sol), the observed seismic signature (subscript obs), and the effective values (subscript eff). If the difference between reference and observed values can be explained by melting, then the melt fraction and melt fraction dependent contiguity are calculated. Temperature is the potential (not actual) temperature for the unit cell. For example, it can be calculated from the depression/uplift of the transition zone boundaries in later modules. See the description of each function within the function body. Created by Saswata Hier-Majumder, August, 2012. !<.

Definition at line 23 of file microgeodynamics.f90.

## Member Function/Subroutine Documentation

 real(sp) function microgeodynamics::bisection ( real(sp), intent(in) x1, real(sp), intent(in) x2, real(sp), intent(in) eps, type(unit_cell), intent(in) cell, type(melt), intent(in) magma )

Definition at line 345 of file microgeodynamics.f90.

Here is the call graph for this function:

Here is the caller graph for this function:

 subroutine microgeodynamics::bm3 ( real(sp), intent(in) K0, real(sp), intent(in) rho, real(sp), intent(in) Kp, real(sp), intent(in) rho0, real(sp), intent(out) P, real(sp), intent(out) K )

Returns the bulk modulus, K, and pressure,P, from known values of density, rho, surface bulk modulus, K0, and the pressure derivative of the bulk modulus, Kp. It uses the Vinet EOS. !<.

Definition at line 293 of file microgeodynamics.f90.

 type(unit_cell) function microgeodynamics::clear_unit_cell ( type(unit_cell), intent(in) cell )

Definition at line 47 of file microgeodynamics.f90.

 real(sp) function microgeodynamics::depth2dt ( real(sp), intent(in) depth )

This function interpolates VS, Vp, and density as a function of potential temperature for a given basalt fraction. The fut us determined by a fifthe order polynomial. Given the basalt fraction, the function returns 3 sets of six coefficients, for Vs,Vp, and rho. The fits are done on the data of Xu et al !<.

Definition at line 561 of file microgeodynamics.f90.

Here is the caller graph for this function:

 real(sp) function, dimension(4) microgeodynamics::elastic_melt ( real(sp), intent(in) contiguity, real(sp), intent(in) meltfrac, real(sp), intent(in) K, real(sp), intent(in) G, real(sp), intent(in) nu, real(sp), intent(in) rho, real(sp), intent(in) Kl, real(sp), intent(in) rhol )

This subroutine calculates Vs and Vp from the moduli. Here, too, the use of SI units are strongly recommended.!<.

Definition at line 224 of file microgeodynamics.f90.

Here is the caller graph for this function:

 real(sp) function, dimension(2) microgeodynamics::funcd ( real(sp), intent(in) x, type(unit_cell), intent(in) cell, type(melt), intent(in) magma )

This function finds the root of a known, nonlinear function funcd between values x1 and x2, within precision 1.0e-3 This function uses a combination of bisection method with Newton Raphson method.

Definition at line 455 of file microgeodynamics.f90.

Here is the call graph for this function:

Here is the caller graph for this function:

 real(sp) function microgeodynamics::hmrb ( real(sp), intent(in) dihedral, real(sp), intent(in) meltfrac )

This function returns the contiguity of a partially molten unit cell as a function of melt volume fraction and dihedral angle, using the parametrization of von Bargen and Waff (1986). Notice that the parameter Agg shouldn't become zero at zero melt fraction, as erroneously indicated in their article. it is fixed by subtracting it from pi to match their Figure 10. Doesn't work beyond melt volume fraction fo 0.18. !<.

Definition at line 156 of file microgeodynamics.f90.

 type(mantle) function microgeodynamics::load_composition ( type(composition), intent(in) comp )

Returns the bulk modulus, K, and pressure,P, from known values of density, rho, surface bulk modulus, K0, and the pressure derivative of the bulk modulus, Kp. It uses the third order Birch Murnaghan EOS. !<.

Definition at line 315 of file microgeodynamics.f90.

Here is the call graph for this function:

Here is the caller graph for this function:

 subroutine microgeodynamics::mod2vel ( real(sp), intent(in) G, real(sp), intent(in) K, real(sp), intent(in) rho, real(sp), intent(out) vs, real(sp), intent(out) vp )

This utility subroutine calculates shear modulus G, bulk modulus K, and Poisson's ratio nu, from known shear and P wave velocities. The use of SI units are not necessary, but strongly recommended, especially if using the functions related to melting. !<.

Definition at line 213 of file microgeodynamics.f90.

 real(sp) function microgeodynamics::nonlinear_solve ( real(sp), intent(in) x1, real(sp), intent(in) x2, real(sp), intent(in) eps, type(unit_cell), intent(in) cell, type(melt), intent(in) magma )

Definition at line 385 of file microgeodynamics.f90.

Here is the call graph for this function:

Here is the caller graph for this function:

 type(melt) function microgeodynamics::set_melt ( integer, intent(in) i )

As the name suggests, it zeros out the elements of the unit cell.!<.

Definition at line 80 of file microgeodynamics.f90.

Here is the caller graph for this function:

 real(sp) function microgeodynamics::temp2rho ( real(sp), intent(in) T, integer, intent(in) basalt_fraction )
Parameters:
 [in] t This function returns the density at a given temperature and basalt fraction based on Xu et al. (2008)!<

Definition at line 508 of file microgeodynamics.f90.

Here is the call graph for this function:

Here is the caller graph for this function:

 real(sp) function microgeodynamics::temp2vp ( real(sp), intent(in) T, integer, intent(in) basalt_fraction )

This function returns the Vs at a given temperature and basalt fraction based on Xu et al. (2008)!<.

Parameters:
 [in] t This function returns the Vp at a given temperature and basalt fraction based on Xu et al. (2008)!<

Definition at line 496 of file microgeodynamics.f90.

Here is the call graph for this function:

Here is the caller graph for this function:

 real(sp) function microgeodynamics::temp2vs ( real(sp), intent(in) T, integer, intent(in) basalt_fraction )

This function inverts returns vs_calc-vs_obs For inverting v_s to melt volume fraction using the nonlinear Newton-Raphson/bisection algorithm. This function calculates the first derivative numerically f' = (f(x+dx)-f(x))/dx !<.

Definition at line 482 of file microgeodynamics.f90.

Here is the call graph for this function:

Here is the caller graph for this function:

 type(fit) function, dimension(3) microgeodynamics::temperaturefit ( integer, intent(in) basalt_fraction )

Definition at line 520 of file microgeodynamics.f90.

Here is the caller graph for this function:

 real(sp) function microgeodynamics::vbw ( real(sp), intent(in) dihedral, real(sp), intent(in) meltfrac )

This function sets the properties of the melt See Table 1 of Wimert and Hier-Majumder(2012) for details The choices are 1 = peridotite melt, (2273 K) Guillot and Sator (2007) 2 = MORB,(2073 K) Guillot and Sator (2007) 3 = peridotite melt, Ohtani and Maeda (2001) 4 = MORB, Ohtani and Maeda (2001) Any other value defaults to 1!<.

Definition at line 121 of file microgeodynamics.f90.

 subroutine microgeodynamics::vel2mod ( real(sp), intent(in) vs, real(sp), intent(in) vp, real(sp), intent(in) rho, real(sp), intent(out) G, real(sp), intent(out) K, real(sp), intent(out) nu )

This function returns the contiguity as a function of melt fraction. The dihedral angle, even taken as an input is currently not used, as the model of Wimert and Hier-Majumder is valid for a constant dihedral angle of approximately 30 degreees. Doesn't work well beyond melt volume fraction of 0.25.!<.

Definition at line 198 of file microgeodynamics.f90.

Here is the caller graph for this function:

 subroutine microgeodynamics::vinet ( real(sp), intent(in) K0, real(sp), intent(in) rho, real(sp), intent(in) Kp, real(sp), intent(in) rho0, real(sp), intent(out) P, real(sp), intent(out) K )

This function calculates Vs/Vs0,Vp/VP0, K/K0, and G/G0 as a function of melt fraction, contiguity, and known solid bulk modulus, solid shear modulus, Poisson's ratio, solid density, liquid bulk modulus, and liquid density. On return, the four members in the array elastic_melt are respectively Vs/Vs0,Vp/VP0, K/K0, and G/G0. Please only enter SI units. !<.

Definition at line 274 of file microgeodynamics.f90.

Here is the caller graph for this function:

 real(sp) function microgeodynamics::whm ( real(sp), intent(in) dihedral, real(sp), intent(in) meltfrac )

This function returns the two dimensional measurement of contiguity from Hier-Majumder et al (2006). This is not recommended as it typically returns contiguity values higher than the 3D models. !<.

Definition at line 177 of file microgeodynamics.f90.

Here is the caller graph for this function:

The documentation for this module was generated from the following file: