thermint¶
Contents
thermint.c¶
Thermal evolution of the planet’s interior (mantle + core)
- Author
Peter Driscoll (peteredriscoll)
- Date
June 1 2015
Functions
-
void fvBodyCopyThermint(BODY *dest, BODY *src, int foo, int iNumBodies, int iBody)¶
Copy values from src to dest for iBody.
- Parameters
dest – Body struct containing destination
src – Body struct containing source
foo –
iNumBodies – Index number of bodies
iBody – Body index
-
void fvReadTSurf(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
Read surface temperature from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadTMan(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
Read mantle temperature from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadTCore(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
Read core temperature from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadViscJumpMan(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
Read viscosity jump across mantle from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadViscRef(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
Read reference viscosity from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadTrefLind(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
Read reference Lindemann (core liquidus) temperature from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadDTChiRef(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
Read core liquidus light element depression from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadEruptEff(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
Read melt eruption efficiency from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadViscMeltPhis(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
Read melt viscosity reduction “Phi^star” parameter from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadViscMeltXi(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
Read melt viscosity reduction “Xi” parameter from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadViscMeltGamma(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
Read melt viscosity reduction “Gamma” parameter from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadViscMeltDelta(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
Read melt viscosity reduction “delta” parameter from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadViscMeltB(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
Read melt viscosity reduction “B” parameter from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadFixMeltfactorUMan(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
Read boolean option to fix upper mantle melt viscosity reduction from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadMeltfactorLMan(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
Read fixed lower mantle melt viscosity reduction from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadMeltfactorUMan(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
Read fixed upper mantle melt viscosity reduction from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadStagLid(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
Read option to fix stagnant lid mantle heat flow from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadManHFlowPref(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
Read mantle surface heat flow prefix coefficient from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadMagMomCoef(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
Read dipole magnetic moment coefficient from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadPresSWind(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
Read solar wind pressure at body from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadHaltMinTMan(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
Read minimum mantle temperature to halt from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadHaltMinTCore(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
Read minimum core temperature to halt from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadActViscMan(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
Read mantle viscosity activation energy from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadShModRef(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
Read mantle reference shear modulus from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadStiffness(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
Read mantle stiffness from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadDLind(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
Read Lindemann law (core liquidus) length scale “D” from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadDAdCore(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
Read core adiabatic profile length scale “D” from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadAdJumpM2UM(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
Read adiabatic temperature jump from average mantle to upper mantle from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadAdJumpM2LM(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
Read adiabatic temperature jump from average mantle to lower mantle from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadAdJumpC2CMB(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
Read adiabatic temperature jump from average core to core-mantle boundary from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadElecCondCore(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
Read electrical conductivity at top of core from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadImK2ManOrbModel(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
Read ImK2ManOrbModel from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvInitializeOptionsThermint(OPTIONS *options, fnReadOption fnRead[])¶
Initialize Thermint options
- Parameters
options – Options struct
fnRead – fnReadOption functions to read options
-
void fvReadOptionsThermint(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, fnReadOption fnRead[], int iBody)¶
Read options in thermint
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
fnRead – fnReadOption functions to read options
iBody – Index of body
-
void fvAssignTMan(BODY *body, OPTIONS *options, double dAge, int iBody)¶
Verify assigning of TMan to body
- Parameters
body – Body struct
options – Options struct
dAge – Age
iBody – Index of body
-
void fvVerifyTMan(BODY *body, OPTIONS *options, SYSTEM *system, UPDATE *update, double dAge, int iBody)¶
Verify TMan. In update struct, iaType=1 for differential equation evolution, iNumBodies=1, iaBody is number of bodies affected by this variable (1), pdTDotMan points towards derivative, fnUpdate points towards derivative (fdTDotMan).
- Parameters
body – Body struct
options – Options struct
system – System struct
update – Update struct
dAge – Age
iBody – Index of body
-
void fvVerifyTCore(BODY *body, OPTIONS *options, SYSTEM *system, UPDATE *update, double dAge, int iBody)¶
Verify TCore. In update struct, iaType=1 for differential equation evolution, iNumBodies=1, iaBody is number of bodies affected by this variable (1), pdTDotCore points towards derivative, fnUpdate points towards derivative (fdTDotCore). Initialize parameters that dDTCoreDt depends on in body struct: dRIC, dHfluxCMBConv, dRICDot, dGravICB, dCoreBuoyTherm, dCoreBuoyCompo, update. daDerivProc.
- Parameters
body – Body struct
options – Options struct
system – System struct
update – Update struct
dAge – Age
iBody – Index of body
-
void fvPropsAuxThermint(BODY *body, EVOLVE *evolve, IO *io, UPDATE *update, int iBody)¶
Set auxiliary properties in body. This includes all thermint parameters that are not computed by a time derivative (that is everything except TMan and TCore).
- Parameters
body – Body struct
evolve – Evolve struct
update – Update struct
iBody – Index of body
-
void fvForceBehaviorThermint(BODY *body, MODULE *module, EVOLVE *evolve, IO *io, SYSTEM *system, UPDATE *update, fnUpdateVariable ***fnUpdate, int iBody, int iModule)¶
Enforce limits to fundamental parameters: if TMan or TCore < 0.5 then set it to 0 (i.e. removes negatives).
- Parameters
body – Body struct
evolve – Evolve struct
io – IO struct
system – System struct
update – Update struct
fnUpdate – fnUpdateVariable pointer to function to update
iBody – Index of body
iModule – Index of module
-
void fvAssignThermintDerivatives(BODY *body, EVOLVE *evolve, UPDATE *update, fnUpdateVariable ***fnUpdate, int iBody)¶
-
void fvNullThermintDerivatives(BODY *body, EVOLVE *evolve, UPDATE *update, fnUpdateVariable ***fnUpdate, int iBody)¶
-
void fvVerifyThermint(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, OUTPUT *output, SYSTEM *system, UPDATE *update, int iBody, int iModule)¶
Verify thermint. Calls VerifyTMan, VerifyTCore, ForceBehaviorThermint, PropsAuxThermint, BodyCopyThermint.
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
output – Output struct
system – System struct
update – Update struct
iBody – Index of body
iModule – Index of module
-
void fvInitializeUpdateThermint(BODY *body, UPDATE *update, int iBody)¶
Initialize update
- Parameters
body – Body struct
update – Update struct
iBody – Index of body
-
void fvFinalizeUpdateTManThermint(BODY *body, UPDATE *update, int *iEqn, int iVar, int iBody, int iFoo)¶
Finalize update of TMan
- Parameters
body – Body struct
update – Update struct
iEqn – Index of equation to update
iVar – Index of variable to update
iBody – Index of body
iFoo –
-
void fvFinalizeUpdateTCoreThermint(BODY *body, UPDATE *update, int *iEqn, int iVar, int iBody, int iFoo)¶
Finalize update of TCore
- Parameters
body – Body struct
update – Update struct
iEqn – Index of equation to update
iVar – Index of variable to update
iBody – Index of body
iFoo –
-
int fbHaltMinTMan(BODY *body, EVOLVE *evolve, HALT *halt, IO *io, UPDATE *update, fnUpdateVariable ***fnUpdate, int iBody)¶
Halt at minimum value of TMan
- Parameters
body – Body struct
evolve – Evolve struct
halt – Halt struct
io – IO struct
update – Update struct
iBody – Index of body
-
int fbHaltMinTCore(BODY *body, EVOLVE *evolve, HALT *halt, IO *io, UPDATE *update, fnUpdateVariable ***fnUpdate, int iBody)¶
Halt at minimum value of TCore
- Parameters
body – Body struct
evolve – Evolve struct
halt – Halt struct
io – IO struct
update – Update struct
iBody – Index of body
-
void fvCountHaltsThermint(HALT *halt, int *iNumHalts)¶
Count number of halts
- Parameters
halt – Halt struct
iNumHalts – Index of number of halts
-
void fvVerifyHaltThermint(BODY *body, CONTROL *control, OPTIONS *options, int iBody, int *iHalt)¶
Verify halts.
- Parameters
body – Body struct
control – Control struct
options – Options struct
iBody – Index of body
iHalt – Index of halt
-
void fvWriteTMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write TMan output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteTUMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write TUMan output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteTLMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write TLMan output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteTJumpUMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write TJumpUMan output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteTJumpLMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write TJumpLMan output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteSignTJumpUMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write Sign of TJumpUMan output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteSignTJumpLMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write Sign of TJumpUMan output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteTCMB(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write TCMB output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteTCore(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write TCore output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteViscUManArr(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write viscosity UMan from Arrhenius law output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteViscUMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write viscosity UMan output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteDynamicViscosity(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write dynamic mantle viscosity output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteViscLMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write viscosity LMan output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteViscMMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write viscosity MMan output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteViscJumpMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write viscosity jump across mantle output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteBLUMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write UMan boundary layer thickness output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteBLLMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write LMan boundary layer thickness output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteShmodUMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write UMan shear modulus output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteFMeltUMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write UMan melt fraction output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteFMeltLMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write LMan melt fraction output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteMeltfactorUMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write UMan viscosity melt reduction output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteMeltfactorLMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write LMan viscosity melt reduction output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteDepthMeltMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write depth of mantle melting output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteTDepthMeltMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write T at depth of mantle melting output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteTJumpMeltMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write TJump across depth of mantle melting output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteMeltMassFluxMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write mass flux of mantle melt output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteRayleighMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write mantle Rayleigh number output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteEruptEff(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write mantle melt eruption efficiency output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteRIC(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write inner core radius RIC output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteDRICDTCMB(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write derivative of RIC wrt TCMB output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteChiOC(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write outer core “OC” light element concentration “chi” output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteChiIC(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write inner core “IC” light element concentration “chi” output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteMassOC(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write OC mass output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteMassIC(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write IC mass output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteMassChiOC(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write OC light element mass output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteMassChiIC(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write IC light element mass output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteDTChi(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write core liquidus depression due to light elements output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteThermConductOC(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write thermal conductivity at top of OC output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteCoreBuoyTherm(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write OC thermal buoyancy flux output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteCoreBuoyCompo(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write OC compositional buoyancy flux output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteCoreBuoyTotal(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write OC total buoyancy flux output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteGravICB(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write inner core boundary (ICB) gravitational energy release output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteMagMom(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write OC dipolar magnetic moment output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteRICDot(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write RIC growth rate output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWritePresSWind(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write solar wind pressure at planet output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteMagPauseRad(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write magnetopause radius output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteHfluxUMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write heat flux across UMan output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteHfluxLMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write heat flux across LMan (same as CMB) output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteHfluxCMB(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write heat flux across CMB (same as LMan) output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteHfluxCMBAd(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write adiabatic heat flux at top of OC output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteHfluxCMBConv(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write convective heat flux at top of OC output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteHflowUMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write heat flow across UMan output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteHflowSurf(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write heat flow across surface of body output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteHflowLMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write heat flow across LMan output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteHflowCMB(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write heat flow across CMB output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteHflowLatentMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write latent heat flow from mantle solidification output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteHflowMeltMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write erupted melt heat flow from UMan output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteHflowSecMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write mantle secular cooling heat flow output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteHflowLatentIC(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write latent heat flow from ICB output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWritePowerGravIC(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write gravitational power from ICB output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteTDotMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write mantle temperature cooling rate output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteTDotCore(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write core temperature cooling rate output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteTrefLind(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
Write Constants. Write core liquidus Lindemann reference temperature output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvInitializeOutputThermint(OUTPUT *output, fnWriteOutput fnWrite[])¶
Initialize output, set variable names, descriptions, default units, default scalings, and write functions.
- Parameters
output – Output struct
fnWrite – fnWriteOutput
-
void fvLogOptionsThermint(CONTROL *control, FILE *fp)¶
Log options
- Parameters
control – Control struct
fp – File struct
-
void fvLogThermint(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UPDATE *update, fnWriteOutput fnWrite[], FILE *fp)¶
Log of thermint
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
update – Update struct
fnWrite – fnWriteOutput
fp – File
-
void fvLogBodyThermint(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UPDATE *update, fnWriteOutput fnWrite[], FILE *fp, int iBody)¶
Log of body from thermint
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
update – Update struct
fnWrite – fnWriteOutput
fp – File
-
void fvAddModuleThermint(CONTROL *control, MODULE *module, int iBody, int iModule)¶
Add thermint module
- Parameters
module – Module struct
iBody – Index of body
iModule – Index of module
-
double fdTUMan(BODY *body, int iBody)¶
Function compute upper mantle temperature
- Parameters
body – Body struct
iBody – Index of body
- Returns
Upper mantle temperature
-
double fdTLMan(BODY *body, int iBody)¶
Function compute lower mantle temperature
- Parameters
body – Body struct
iBody – Index of body
- Returns
Lower mantle temperature
-
double fdTCMB(BODY *body, int iBody)¶
Function compute core-mantle boundary temperature
- Parameters
body – Body struct
iBody – Index of body
- Returns
Core-mantle boundary temperature
-
double fdTJumpUMan(BODY *body, int iBody)¶
Function compute absolute value of upper mantle temperature jump: TUman-TSURF
- Parameters
body – Body struct
iBody – Index of body
- Returns
Absolute value of upper mantle temperature jump
-
double fdTJumpLMan(BODY *body, int iBody)¶
Function compute absolute value of lower mantle temperature jump: TCMB-TLman
- Parameters
body – Body struct
iBody – Index of body
- Returns
Absolute value of lower mantle temperature jump
-
double fdSignTJumpUMan(BODY *body, int iBody)¶
Function compute sign of upper mantle temperature jump
- Parameters
body – Body struct
iBody – Index of body
- Returns
Sign of upper mantle temperature jump
-
double fdSignTJumpLMan(BODY *body, int iBody)¶
Function compute sign of lower mantle temperature jump
- Parameters
body – Body struct
iBody – Index of body
- Returns
Sign of lower mantle temperature jump
-
double fdViscUManArr(BODY *body, int iBody)¶
Function compute Arrhenius component of upper mantle viscosity
- Parameters
body – Body struct
iBody – Index of body
- Returns
Arrhenius component of upper mantle viscosity
-
double fdViscUMan(BODY *body, int iBody)¶
Function compute full upper mantle viscosity
- Parameters
body – Body struct
iBody – Index of body
- Returns
Full upper mantle viscosity
-
double fdViscLMan(BODY *body, int iBody)¶
Function compute full lower mantle viscosity
- Parameters
body – Body struct
iBody – Index of body
- Returns
Full lower mantle viscosity
-
double fdViscMMan(BODY *body, int iBody)¶
Function compute full mid-mantle viscosity
- Parameters
body – Body struct
iBody – Index of body
- Returns
Full mid-mantle viscosity
-
double fdViscJumpMan(BODY *body, int iBody)¶
Function compute mantle viscosity jump
- Parameters
body – Body struct
iBody – Index of body
- Returns
Mantle viscosity jump
-
double fdBLUMan(BODY *body, int iBody)¶
Function compute upper mantle thermal boundary layer thickness
- Parameters
body – Body struct
iBody – Index of body
- Returns
Upper mantle thermal boundary layer thickness
-
double fdBLLMan(BODY *body, int iBody)¶
Function compute lower mantle thermal boundary layer thickness
- Parameters
body – Body struct
iBody – Index of body
- Returns
Lower mantle thermal boundary layer thickness
-
double fdShmodUMan(BODY *body, int iBody)¶
Function compute upper mantle shear modulus
- Parameters
body – Body struct
iBody – Index of body
- Returns
Upper mantle shear modulus
-
double fdTsolUMan(BODY *body, int iBody)¶
Function compute solidus at bottom of upper mantle thermal boundary layer
- Parameters
body – Body struct
iBody – Index of body
- Returns
Solidus at bottom of upper mantle thermal boundary layer
-
double fdTsolLMan(BODY *body, int iBody)¶
Function compute solidus at top of lower mantle thermal boundary layer
- Parameters
body – Body struct
iBody – Index of body
- Returns
Solidus at top of lower mantle thermal boundary layer
-
double fdTliqUMan(BODY *body, int iBody)¶
Function compute liquidus at bottom of upper mantle thermal boundary layer
- Parameters
body – Body struct
iBody – Index of body
- Returns
Liquidus at bottom of upper mantle thermal boundary layer
-
double fdTliqLMan(BODY *body, int iBody)¶
Function compute liquidus at top of lower mantle thermal boundary layer
- Parameters
body – Body struct
iBody – Index of body
- Returns
Liquidus at top of lower mantle thermal boundary layer
-
double fdFMeltUMan(BODY *body, int iBody)¶
Function compute upper mantle melt fraction
- Parameters
body – Body struct
iBody – Index of body
- Returns
Upper mantle melt fraction
-
double fdFMeltLMan(BODY *body, int iBody)¶
Function compute lower mantle melt fraction
- Parameters
body – Body struct
iBody – Index of body
- Returns
Lower mantle melt fraction
-
double fdMeltfactorUMan(BODY *body, int iBody)¶
Function compute upper mantle viscosity reduction factor due to melt. If dFixMeltfactorUMan=1 then return dMeltfactorUMan. Else compute it.
- Parameters
body – Body struct
iBody – Index of body
- Returns
Upper mantle viscosity reduction factor due to melt
-
double fdMeltfactorLMan(BODY *body, int iBody)¶
Function compute lower mantle viscosity reduction factor due to melt. Always compute it. Only applied if ViscJumpMan is not set.
- Parameters
body – Body struct
iBody – Index of body
- Returns
Lower mantle viscosity reduction factor due to melt
-
double fdDepthMeltMan(BODY *body, int iBody)¶
Function compute depth of upper mantle melting. Use cubic root to find intersection of mantle adiabat and solidus.
- Parameters
body – Body struct
iBody – Index of body
- Returns
Depth of upper mantle melting
-
double fdTDepthMeltMan(BODY *body, int iBody)¶
Function compute solidus temperature at depth of upper mantle melting.
- Parameters
body – Body struct
iBody – Index of body
- Returns
solidus temperature at depth of upper mantle melting
-
double fdTJumpMeltMan(BODY *body, int iBody)¶
Function compute temperature jump across upper mantle melt region, excluding the adiabatic component (i.e. just the advective component): TDepthMeltMan-TSURF-ADGRADMAN*DepthMeltMan
- Parameters
body – Body struct
iBody – Index of body
- Returns
Temperature jump across upper mantle melt region
-
double fdRayleighMan(BODY *body, int iBody)¶
Function compute mantle Rayleigh number, where temperature jump is the total convective temperature jump across mantle (UMan+LMan) and viscosity is ViscMMan.
- Parameters
body – Body struct
iBody – Index of body
- Returns
Mantle Rayleigh number
-
double fdDynamicViscosity(BODY *body, int iBody)¶
Function compute upper mantle dynamic viscosity: ViscUMan*EDENSMAN.
- Parameters
body – Body struct
iBody – Index of body
- Returns
Upper mantle dynamic viscosity
-
double fdMassIC(BODY *body, int iBody)¶
Function compute mass of inner core
- Parameters
body – Body struct
iBody – Index of body
- Returns
Mass of inner core
-
double fdMassOC(BODY *body, int iBody)¶
Function compute mass of outer core
- Parameters
body – Body struct
iBody – Index of body
- Returns
Mass of outer core
-
double fdChiOC(BODY *body, int iBody)¶
Function compute light element concentration in outer core
- Parameters
body – Body struct
iBody – Index of body
- Returns
Light element concentration in outer core
-
double fdChiIC(BODY *body, int iBody)¶
Function compute light element concentration in inner core
- Parameters
body – Body struct
iBody – Index of body
- Returns
Light element concentration in inner core
-
double fdMassChiOC(BODY *body, int iBody)¶
Function compute light element mass in outer core
- Parameters
body – Body struct
iBody – Index of body
- Returns
Light element mass in outer core
-
double fdMassChiIC(BODY *body, int iBody)¶
Function compute light element mass in inner core
- Parameters
body – Body struct
iBody – Index of body
- Returns
Light element mass in inner core
-
double fdDTChi(BODY *body, int iBody)¶
Function compute core liquidus depression due to light element concentration
- Parameters
body – Body struct
iBody – Index of body
- Returns
Core liquidus depression due to light element concentration
-
double fdRIC(BODY *body, int iBody)¶
Function compute inner core radius RIC
- Parameters
body – Body struct
iBody – Index of body
- Returns
Inner core radius
-
double fdThermConductOC(BODY *body, int iBody)¶
Function compute thermal conductivity at top of outer core: ElecCondCore*LORENTZNUM*TCMB
- Parameters
body – Body struct
iBody – Index of body
- Returns
Thermal conductivity at top of outer core
-
double fdHfluxCMBAd(BODY *body, int iBody)¶
Function compute adiabatic heat flux at top of outer core: ThermConductOC*TCMB*ERCORE/DAdCore^2
- Parameters
body – Body struct
iBody – Index of body
- Returns
Adiabatic heat flux at top of outer core
-
double fdHfluxCMBConv(BODY *body, int iBody)¶
Function compute convective heat flux at top of outer core: HfluxCMB-HfluxCMBAd
- Parameters
body – Body struct
iBody – Index of body
- Returns
Convective heat flux at top of outer core
-
double fdGravICB(BODY *body, int iBody)¶
Function compute gravity at inner core boundary ICB
- Parameters
body – Body struct
iBody – Index of body
- Returns
Gravity at inner core boundary ICB
-
double fdRICDot(BODY *body, UPDATE *update, int iBody)¶
Function compute inner core radius growth rate
- Parameters
body – Body struct
iBody – Index of body
- Returns
Inner core radius growth rate
-
double fdCoreBuoyTherm(BODY *body, int iBody)¶
Function compute outer core thermal buoyancy flux
- Parameters
body – Body struct
iBody – Index of body
- Returns
Outer core thermal buoyancy flux
-
double fdCoreBuoyCompo(BODY *body, int iBody)¶
Function compute outer core compositional buoyancy flux
- Parameters
body – Body struct
iBody – Index of body
- Returns
Outer core compositional buoyancy flux
-
double fdCoreBuoyTotal(BODY *body, int iBody)¶
Function compute outer core total buoyancy flux
- Parameters
body – Body struct
iBody – Index of body
- Returns
Outer core total buoyancy flux
-
double fdMagMom(BODY *body, int iBody)¶
Function compute dipole magnetic moment
- Parameters
body – Body struct
iBody – Index of body
- Returns
Dipole magnetic moment
-
double fdPresSWind(BODY *body, int iBody)¶
Function compute solar wind pressure
- Parameters
body – Body struct
iBody – Index of body
- Returns
Solar wind pressure
-
double fdMagPauseRad(BODY *body, int iBody)¶
Function compute magnetopause stand-off radius from center of planet
- Parameters
body – Body struct
iBody – Index of body
- Returns
Magnetopause stand-off radius from center of planet
-
double fdHfluxUMan(BODY *body, int iBody)¶
Function compute heat flux across upper mantle thermal boundary layer
- Parameters
body – Body struct
iBody – Index of body
- Returns
Heat flux across upper mantle thermal boundary layer
-
double fdHfluxLMan(BODY *body, int iBody)¶
Function compute heat flux across lower mantle thermal boundary layer
- Parameters
body – Body struct
iBody – Index of body
- Returns
Heat flux across lower mantle thermal boundary layer
-
double fdHfluxCMB(BODY *body, int iBody)¶
Function compute heat flux across core-mantle boundary: same as across lower mantle
- Parameters
body – Body struct
iBody – Index of body
- Returns
Heat flux across core-mantle boundary
-
double fdHflowUMan(BODY *body, int iBody)¶
Function compute heat flow across upper mantle thermal boundary layer
- Parameters
body – Body struct
iBody – Index of body
- Returns
Heat flow across upper mantle thermal boundary layer
-
double fdHflowSurf(BODY *body, int iBody)¶
Function compute heat flow across surface of mantle
- Parameters
body – Body struct
iBody – Index of body
- Returns
Heat flow across surface of mantle
-
double fdHflowLMan(BODY *body, int iBody)¶
Function compute heat flow across lower mantle boundary layer
- Parameters
body – Body struct
iBody – Index of body
- Returns
Heat flow across lower mantle boundary layer
-
double fdHflowCMB(BODY *body, int iBody)¶
Function compute heat flow across core-mantle boundary (same as lower mantle)
- Parameters
body – Body struct
iBody – Index of body
- Returns
Heat flow across core-mantle boundary (same as lower mantle)
-
double fdHflowLatentMan(BODY *body, UPDATE *update, int iBody)¶
Function compute latent heat flow from mantle solidification
- Parameters
body – Body struct
iBody – Index of body
- Returns
Latent heat flow from mantle solidification
-
double fdMeltMassFluxMan(BODY *body, int iBody)¶
Function compute mass flux of mantle melt
- Parameters
body – Body struct
iBody – Index of body
- Returns
Mass flux of mantle melt
-
double fdHflowMeltMan(BODY *body, int iBody)¶
Function compute heat flow of erupted mantle melt
- Parameters
body – Body struct
iBody – Index of body
- Returns
Heat flow of erupted mantle melt
-
double fdHfluxSurf(BODY *body, int iBody)¶
Function compute secular mantle heat flow: heat sinks - sources
- Parameters
body – Body struct
iBody – Index of body
body – Body struct
iBody – Index of body
- Returns
Heat flow of mantle secular cooling Function compute heat flux across surface of mantle
- Returns
Heat flux across surface of mantle
-
double fdDRICDTCMB(BODY *body, int iBody)¶
Function compute derivative of RIC wrt TCMB if IC exists. Otherwise zero.
- Parameters
body – Body struct
iBody – Index of body
- Returns
Derivative of RIC wrt TCMB if IC exists. Otherwise zero.
-
double fdMassICDot(BODY *body, UPDATE *update, int iBody)¶
Function compute time derivative of IC mass
- Parameters
body – Body struct
update – Update struct
iBody – Index of body
- Returns
Time derivative of IC mass if IC exists. Otherwise zero.
-
double fdHflowLatentIC(BODY *body, UPDATE *update, int iBody)¶
Function compute latent heat flow from inner core solidification
- Parameters
body – Body struct
update – Update struct
iBody – Index of body
- Returns
Latent heat flow from inner core solidification
-
double fdPowerGravIC(BODY *body, UPDATE *update, int iBody)¶
Function compute gravitational energy release from inner core solidification
- Parameters
body – Body struct
update – Update struct
iBody – Index of body
- Returns
Gravitational energy release from inner core solidification
-
double fdTDotMan(BODY *body, SYSTEM *system, int *iaBody)¶
Function compute time derivative of average mantle temperature
- Parameters
body – Body struct
system – System struct
iaBody – Index of body
- Returns
Time derivative of average mantle temperature
-
double fdTDotCore(BODY *body, SYSTEM *system, int *iaBody)¶
Function compute time derivative of average core temperature
- Parameters
body – Body struct
system – System struct
iaBody – Index of body
- Returns
Time derivative of average core temperature
-
double cube(double x)¶
Function compute cube of quantity
- Parameters
x – Quantity
- Returns
Quantity cubed
-
double root(int type, BODY *body, int iBody, double guess1, double guess2, double tol, int nmax)¶
Function compute root of intersection of two equations using bisection method.
- Parameters
type – Type of root to compute
body – Body struct
iBody – Index of body
guess1 – First guess of root
guess2 – Second guess of root
tol – Tolerance of root finding
nmax – Maximum iteration
- Returns
Root
-
double cubicroot(int type, BODY *body, int iBody)¶
Function compute cubic roots of intersection between mantle adiabat and solidus.
- Parameters
type – Type of root to compute
body – Body struct
iBody – Index of body
- Returns
Depth to solidus-adiabat intersection (melt layer)
-
double fdSolidusMan(double depth)¶
Function compute mantle solidus at a given depth
- Parameters
depth –
- Returns
Mantle solidus temperature at this depth
-
double fdSolTempDiffMan(double depth, BODY *body, int iBody)¶
Function compute temperature difference between solidus and geotherm at a given depth
- Parameters
depth –
body – Body struct
iBody – Index of body
- Returns
Temperature difference between solidus and geotherm at a given depth
-
double fdSurfEnFlux(BODY *body, SYSTEM *system, UPDATE *update, int iBody, int iFoo)¶
Function compute surface energy flux including crustal radiogenic power: hflowUMan+RadPowerCrust
- Parameters
body – Body struct
update – Update struct
system – System struct
iBody – Index of body
iFoo –
- Returns
Surface energy flux including crustal radiogenic power
thermint.h¶
Thermal evolution of the planet’s interior (mantle + core)
- Author
Peter Driscoll (peteredriscoll)
- Date
June 1 2015
Defines
-
TSURF¶
[K] Surface temperature (constant). This should be set globally! \
-
KM¶
[m] m in 1 km
-
GASCONSTANT¶
[J/mol/K] Gas constant in SI units.
-
EMASS¶
[kg] Mass of Earth (E)
-
EMASSFRACMAN¶
[nd] Earth’s mantle mass fraction
-
EMASSMAN¶
[kg] Mass of Earth mantle
-
EMASSFRACCORE¶
[nd] Earth’s core mass fraction
-
EMASSCORE¶
[kg] Mass of Earth core
-
EMASSIC¶
[kg] Mass of present inner core
-
EMASSOC¶
[kg] Mass of present outer core
-
EMASSOCEAN¶
[kg] Mass of Earth oceans
-
EMASSFRACOCEAN¶
[nd] Mass fraction of Earth’s oceans
-
EMASSFRACCRUST¶
[nd] Mass fraction of Earth’s crust
-
EMASSCRUST¶
[kg] Mass Earth crust today. \
-
ERADIUS¶
[m] Radius of Earth
-
ERMAN¶
[m] Radius of Earth’s mantle
-
ERCORE¶
[m] Radius of Earth’s Core
-
ERICB¶
[m] Present day inner core boundary (ICB) radius
-
EDMAN¶
[m] Earth’s mantle shell thickness
-
EDOC¶
[m] Earth’s present day core shell thickness
-
EVOL¶
[m^3] Volume of Earth \
-
EVOLIC¶
[m^3] Volume of Earth’s present-day inner core
-
EVOLCORE¶
[m^3] Volume of Earth’s total core
-
EVOLOC¶
[m^3] Volume of Earth’s outer core today
-
EVOLMAN¶
[m^3] Volume of Earth’s Mantle
-
EAREASURF¶
[m2] Area of Earth’s surface
-
EAREACMB¶
[m2] Area of Earth’s core-mantle boundary (CMB)
-
EDENS¶
[kg/m^3] Density of Earth
-
EDENSMAN¶
[kg/m^3] Density of Earth’s mantle
-
EDENSCORE¶
[kg/m^3] Density of Earth’s core
-
EDENSOC¶
[kg/m^3] Density of Earth’s outer core
-
EDENSIC¶
[kg/m^3] Density of Earth’s inner core
-
DENSANOMICB¶
[kg/m^3] Density difference of Earth’s outer core light elements \
-
GRAVSURF¶
[m/s2] Earth’s surface gravity
-
GRAVUMAN¶
[m/s2] Earth’s upper mantle gravity
-
GRAVLMAN¶
[m/s2] Earth’s lower mantle gravity
-
GRAVCMB¶
[m/s2] Earth’s core-mantle boundary gravity
-
SPECHEATMAN¶
[J/kg/K] Mantle specfic heat
-
SPECHEATCORE¶
[J/kg/K] Core specific heat
-
THERMEXPANMAN¶
[K^-1] Mantle thermal expansivity
-
THERMEXPANCORE¶
[K^-1] Cpre thermal expansivity
-
THERMCONDUMAN¶
[W/m/K] Upper mantle thermal conductivity
-
THERMCONDLMAN¶
[W/m/K] Upper mantle thermal conductivity
-
THERMDIFFUMAN¶
[m^2/s] Upper mantle thermal diffusivity
-
THERMDIFFLMAN¶
[m^2/s] Lower mantle thermal diffusivity
-
SPECLATENTICB¶
[J/kg] Inner core boundary specific latent heat release
-
SPECLATENTMAN¶
[J/kg] specific latent heat release by mantle solidification
-
SPECPOWGRAVIC¶
[J/kg] Gravitational power release by inner core solidification
-
RACRIT¶
[nd] Critical rayleigh number for spherical convection
-
CONVEXPON¶
[nd] Convective cooling Nusselt-Rayleigh number exponent, “beta”
-
HFLOWREDUCTSTAG¶
[nd] Mantle surface heat flow reduction factor for stagnant lid
-
STAGLID¶
[nd] Switch to turn stagnant lid on. (def=0, ie mobile lid)
-
MANHFLOWPREF¶
[nd] Upper mantle heat flow prefix. mobile lid=1. \ staglid=HFLOWREDUCTSTAG
-
ACTVISCMAN¶
[J/mol] Mantle viscosity activation energy
-
ACTSHMODMAN¶
[J/mol] Mantle shear modulus activation energy
-
STIFFNESS¶
[Pa] Effective stiffness of mantle (calibrated to k2=0.3, \ Q=100)
-
SHMODREF¶
[Pa] Reference kinematic mantle shear modulus
-
VISCREF¶
[m^2/s] Reference kinematic mantle viscosity
-
DYNAMVISCREF¶
[m^2/s] Reference kinematic mantle viscosity \
-
VISCJUMPMAN¶
[nd] Viscosity jump from upper to lower mantle \
-
FIXVISCJUMPMAN¶
[nd] (default) Option to fix viscjumpulm. if =0 then viscLM is \ computed from TLMan.
-
VISCJUMPMMAN¶
[nd] Viscosity jump from upper to average (mid) mantle
-
VISCMELTB¶
[nd] Viscosity-melt reduction coefficient “B” (DB15 eq 8)
-
VISCMELTPHIS¶
[nd] Viscosity-melt reduction coefficient “phi*” (DB15 eq 8)
-
VISCMELTDELTA¶
[nd] Viscosity-melt reduction coefficient “delta” (DB15 eq 8)
-
VISCMELTGAMMA¶
[nd] Viscosity-melt reduction coefficient “gamma” (DB15 eq 9)
-
VISCMELTXI¶
[nd] Viscosity-melt reduction coefficient “Xi” (DB15 eq 9)
-
MELTFACTORLMAN¶
[nd] (Default) Viscosity-melt reduction factor “epsilon_phase” XXX \ Added by Rory — Check!
-
MELTFACTORUMAN¶
[nd] (Default) Viscosity-melt reduction factor “epsilon_phase”
-
FIXMELTFACTORUMAN¶
[nd] (Default) Switch to fix MeltfactorUMan to a constant value
-
ASOLIDUS¶
[K/m^3] Mantle solidus coefficient \ Tsol(r)=A*r^3+B*r^2+C*r+D
-
BSOLIDUS¶
[K/m^2] Solidus B coefficient
-
CSOLIDUS¶
[K/m] Solidus C coefficient
-
DSOLIDUS¶
[K] Solidus D coefficient
-
DTLIQMAN¶
[K] Mantle liquidus offset, T_liq=T_sol+DTLIQMAN
-
DLIND¶
[m] Lindemann’s law length scale for iron liquidus “D_Fe” \ (DB15 A23)
-
TREFLIND¶
[K] Lindemann’s law reference temp. “T_Fe0” (DB15 A23)
-
DVLIQDTEMP¶
[m^3/K] Approximation of change in mantle liquid volume with T_m, \ DV_liq/DT (DB15)
-
ERUPTEFF¶
[nd] (Default) Mantle melt heat loss eruption efficiency
-
ECRUSTDENSITY¶
[kg/m3] Earth’s continental crust density
-
ECRUSTAREA¶
[m2] =41.2% of Earth surface (Taylor 95)
-
ECRUSTDEPTH¶
[m] Average depth of continental \ crust today ~ 36 km (Taylor 95)
-
CRUSTACCRFRAC¶
[nd] Constant fraction of oceanic crust accreted onto continent \
-
CRUSTINSOFACT¶
[nd] Reduction in heat conducted through contintental \ crust compared to oceanic crust (Jaupart 07, table 3)
-
DTCHIREF¶
[K] Core reference liquidus depression
-
CHI_OC_E¶
[nd] Earth’s outer core light element concentration
-
PARTITION_CHI_CORE¶
[nd] Core light element partition coefficent
-
CHI_IC_E¶
-
EMASSOC_CHI¶
[kg] Mass of light elements (Chi) in Earth’s outer core
-
EMASSIC_CHI¶
[kg] Mass of light elements (Chi) in Earth’s inner core
-
EMASSCORE_CHI¶
[kg] Total core light element mass of Earth \ (conserved)
-
ADGRADMAN¶
[K/m] mantle linear adiabatic gradient =0.5K/km (DB15 \ eq A18)
-
DADCORE¶
[m] liq iron core adiabatic length scale (DB15 eq A22)
-
GRUNEISEN¶
[nd] Core gruneisen parameter
-
ADJUMPM2UM¶
[nd] Adiabatic temperature jump from average to upper mantle \ “epsilon_UM”
-
ADJUMPM2LM¶
[nd] Adiabatic temperature jump from average to lower mantle \ “epsilon_LM”
-
ADJUMPC2CMB¶
[nd] Adiabatic temperature jump from average core to CMB \ “epsilon_c”
-
MAGPERM¶
[H/m] Magnetic permeability constant
-
MAGMOMCOEF¶
[nd] Saturation constant for fast rotating dipolar dynamos \ (OC2006)
-
ELECCONDCORE¶
[S/m] Electrical conductivity of core
-
LORENTZNUM¶
[W Ohm/K] Lorentz number, relates thermal and electrical \ conductivity
-
EMAGMOM¶
[Am^2] Earth’s present day magnetic moment
-
EPRESSWIND¶
[N/m^2] Earth’s solar wind pressure: Psw=m_proton*n_sw*v_sw^2 \ (DB13)
-
EMAGPAUSERAD¶
[m] Earth’s magnetopause radius (DB13)
-
IMK2MANORBMODEL¶
[nd] Option for ImK2 model to use in orbital equations
-
OPTSTARTTHERMINT¶
Start of THERMINT option indexes
-
OPTENDTHERMINT¶
End of THERMINT options indexes
-
OPT_TSURF¶
Surface temperature
-
OPT_TMAN¶
Average mantle temperature
-
OPT_TUMAN¶
Temperature base of upper mantle boundary layer
-
OPT_TLMAN¶
Temperature top of lower mantle boundary layer
-
OPT_TCORE¶
Average core temperature
-
OPT_TCMB¶
Temperature core-mantle boundary (CMB)
-
OPT_TICB¶
Temperature inner core boundary (ICB)
-
OPT_BLUMAN¶
Upper mantle thermal boundary layer thickness
-
OPT_BLLMAN¶
Lower mantle thermal boundary layer thickness
-
OPT_TJUMPUMAN¶
Temperature jump across upper mantle thermal boundary layer
-
OPT_TJUMPLMAN¶
Temperature jump across lower mantle thermal boundary layer
-
OPT_VISCLMAN¶
Viscosity of lower mantle thermal boundary layer
-
OPT_SHMODUMAN¶
Shear modulus of upper mantle boundary layer \
-
OPT_SHMODLMAN¶
Shear modulus of lower mantle boundary layer \
-
OPT_FMELTUMAN¶
Melt fraction in upper mantle boundary layer \
-
OPT_FMELTLMAN¶
Melt fraction in lower mantle boundary layer \
-
OPT_MELTFACTORUMAN¶
Melt viscosity reduction factor in upper mantle
-
OPT_FIXMELTFACTORUMAN¶
Option to fix melt viscosity reduction in upper mantle
-
OPT_MELTFACTORLMAN¶
Melt viscosity reduction factor in lower mantle
-
OPT_DEPTHMELTMAN¶
Depth to base of upper mantle melting
-
OPT_TDEPTHMELTMAN¶
Temperature at base of upper mantle melting
-
OPT_TJUMPMELTMAN¶
Temperature jump across upper mantle melt region
-
OPT_K2MAN¶
Mantle k2 Love number
-
OPT_IMK2MAN¶
Mantle imaginary part of the k2 Love number
-
OPT_VISCUMANARR¶
Arrhenius viscosity in upper mantle
-
OPT_VISCMMAN¶
Viscosity of mid (average) mantle
-
OPT_TDOTMAN¶
Time derivative of average mantle temperature
-
OPT_TDOTCORE¶
Time derivative of average core temperature
-
OPT_HFLUXUMAN¶
Heat flux across upper mantle thermal boundary layer
-
OPT_HFLOWUMAN¶
Heat flow across upper mantle thermal boundary layer
-
OPT_HFLUXLMAN¶
Heat flux across upper mantle thermal boundary layer
-
OPT_HFLOWLMAN¶
Heat flow across upper mantle thermal boundary layer
-
OPT_HFLUXCMB¶
Heat flux across core-mantle boundary and lower mantle
-
OPT_HFLOWCMB¶
Heat flow across core-mantle boundary and lower mantle
-
OPT_HFLOWTIDALMAN¶
Tidal dissipation heat flow in mantle
-
OPT_HFLOWTIDALCORE¶
Tidal dissipation heat flow in core
-
OPT_HFLOWLATENTMAN¶
Latent heat flow from solidification of mantle
-
OPT_HFLOWMELTMAN¶
Melt heat flow from mantle
-
OPT_HFLOWLATENTIC¶
Latent heat flow from solidification of inner core
-
OPT_POWERGRAVIC¶
Gravitation power released from solidification of inner core
-
OPT_HFLOWICB¶
Heat flow across inner core boundary
-
OPT_HFLUXSURF¶
Heat flux across surface of mantle
-
OPT_HFLOWSURF¶
Heat flow across surface of mantle
-
OPT_TIDALPOWMAN¶
Mantle tidal dissipation power
-
OPT_HALTMINTMAN¶
Halt at a minimum mantle temperature
-
OPT_HALTMINTCORE¶
Halt at a minimum core temperature
-
OPT_STAGLID¶
Stagnant lid switch for mantle surface heat flow
-
OPT_MANHFLOWPREF¶
Mantle surface heat flow prefix coefficient
-
OPT_PRESSWIND¶
Stellar wind pressure, used to compute magneopause radius
-
OPT_RIC¶
Inner core radius
-
OPT_DOC¶
Outer core shell thickness
-
OPT_CHIOC¶
Outer core light element concentration “chi”
-
OPT_CHIIC¶
Inner core light element concentration “chi”
-
OPT_THERMCONDUCTOC¶
Thermal conductivity of outer core
-
OPT_THERMCONDUCTIC¶
Thermal conductivity of inner core
-
OPT_MASSOC¶
Outer core mass
-
OPT_MASSIC¶
Inner core mass
-
OPT_MASSCHIOC¶
Outer core light element “chi” mass
-
OPT_MASSCHIIC¶
Inner core light element “chi” mass
-
OPT_DTCHI¶
Core liquidus depression
-
OPT_MAGMOMCOEF¶
Magnetic dipole moment scaling coefficient “gamma_dip”
-
OPT_VISCJUMPMAN¶
Viscosity ratio of lower to upper mantle
-
OPT_ERUPTEFF¶
Mantle melt eruption efficiency
-
OPT_VISCREF¶
Reference viscosity
-
OPT_TREFLIND¶
Reference Lindemann temperature of core liquidus
-
OPT_DTCHIREF¶
Reference core liquidus depression
-
OPT_VISCMELTB¶
Viscosity melt factor B
-
OPT_VISCMELTPHIS¶
Viscosity melt factor Phi*
-
OPT_VISCMELTXI¶
Viscosity melt factor Xi
-
OPT_VISCMELTGAMMA¶
Viscosity melt factor Gamma
-
OPT_VISCMELTDELTA¶
Viscosity melt factor Delta
-
OPT_ACTVISCMAN¶
[J/mol] Viscosity activation energy of mantle
-
OPT_SHMODREF¶
[Pa] Reference kinematic mantle shear modulus \
-
OPT_STIFFNESS¶
[Pa] Effective stiffness of mantle (calibrated to k2=0.3, Q=100) \
-
OPT_DLIND¶
[m] Lindemann’s law length scale for iron liquidus “D_Fe” (DB15 \ A23)
-
OPT_DADCORE¶
[m] Liquid iron core adiabatic length scale (DB15 eq A22)
-
OPT_ADJUMPM2UM¶
[nd] Adiabatic temperature jump from average mantle to base of \ upper mantle thermal boundary layer: “epsilon_UM”
-
OPT_ADJUMPM2LM¶
[nd] Adiabatic temperature jump from average mantle to top of \ lower mantle thermal boundary layer: “epsilon_LM”
-
OPT_ADJUMPC2CMB¶
[nd] Adiabatic temperature jump from average core to core-mantle \ boundary: “epsilon_c”
-
OPT_ELECCONDCORE¶
[S/m] Electrical conductivity of core
-
OPT_IMK2MANORBMODEL¶
[nd] Option of ImK2 model to use in orbital equations
-
THERMINTHALTSYSEND¶
-
THERMINTHALTBODYEND¶
-
OUTSTARTTHERMINT¶
-
OUTENDTHERMINT¶
-
OUT_TMAN¶
[K] Average mantle temperature
-
OUT_TUMAN¶
[K] Temperature base of upper mantle boundary layer
-
OUT_TLMAN¶
[K] Temperature top of lower mantle boundary layer
-
OUT_TCORE¶
[K] Average core temperature
-
OUT_TCMB¶
[K] Temperature core-mantle boundary (CMB)
-
OUT_TICB¶
[K] Temperature inner core boundary (ICB)
-
OUT_BLUMAN¶
[m] Upper mantle thermal boundary layer thickness
-
OUT_BLLMAN¶
[m] Lower mantle thermal boundary layer thickness
-
OUT_TJUMPUMAN¶
[K] Temperature jump across upper mantle thermal boundary layer
-
OUT_TJUMPLMAN¶
[K] Temperature jump across lower mantle thermal boundary layer
-
OUT_SIGNTJUMPUMAN¶
[K] Temperature Jump across upper mantle thermal boundary layer
-
OUT_SIGNTJUMPLMAN¶
[K] Temperature Jump across lower mantle thermal boundary layer
-
OUT_VISCLMAN¶
[m^2/s] Viscosity lower mantle thermal boundary layer
-
OUT_SHMODUMAN¶
[m^2/s] Shear modulus of upper mantle boundary layer
-
OUT_SHMODLMAN¶
[m^2/s] Shear modulus of lower mantle boundary layer
-
OUT_FMELTUMAN¶
[nd] Melt fraction in upper mantle boundary layer
-
OUT_FMELTLMAN¶
[nd] Melt fraction in lower mantle boundary layer
-
OUT_MELTFACTORUMAN¶
[nd] Melt viscosity reduction factor in upper mantle
-
OUT_MELTFACTORLMAN¶
[nd] Melt viscosity reduction factor in lower mantle
-
OUT_DEPTHMELTMAN¶
[m] Depth to base of upper mantle melting \
-
OUT_TDEPTHMELTMAN¶
[K] Temperature at base of upper mantle melting
-
OUT_TJUMPMELTMAN¶
[K] Temperature jump across upper mantle melt region
-
OUT_MELTMASSFLUXMAN¶
[kg/s] Mantle melt mass flux
-
OUT_VISCUMANARR¶
[m^2/s] Arrhenius viscosity in upper mantle \
-
OUT_RAYLEIGHMAN¶
[nd] Mantle Rayleigh Number
-
OUT_VISCMMAN¶
[m^2/s] Viscosity of mid (average) mantle
-
OUT_TDOTMAN¶
[K/s] Time derivative of average mantle temperature
-
OUT_TDOTCORE¶
[K/s] Time derivative of average core temperature
-
OUT_HFLUXUMAN¶
[W/m^2] Heat flux across upper mantle thermal boundary layer
-
OUT_HFLOWUMAN¶
[W] Heat flow across upper mantle thermal boundary layer
-
OUT_HFLUXLMAN¶
[W/m^2] Heat flux across upper mantle thermal boundary layer
-
OUT_HFLOWLMAN¶
[W] Heat flow across upper mantle thermal boundary layer
-
OUT_HFLUXCMB¶
[W/m^2] Heat flux across core-mantle boundary and lower mantle
-
OUT_HFLOWCMB¶
[W] Heat flow across core-mantle boundary and lower mantle
-
OUT_HFLOWTIDALMAN¶
[W] Tidal dissipation heat flow in mantle \
-
OUT_HFLOWTIDALCORE¶
[W] Tidal dissipation heat flow in core \
-
OUT_HFLOWLATENTMAN¶
[W] Latent heat flow from solidification of mantle
-
OUT_HFLOWMELTMAN¶
[W] Melt heat flow from mantle
-
OUT_HFLOWLATENTIC¶
[W] Latent heat flow from solidification of inner core
-
OUT_POWERGRAVIC¶
[W] Gravitation power released from solidification of inner core \
-
OUT_HFLOWICB¶
[W] Heat flow across inner core boundary
-
OUT_HFLUXSURF¶
[W/m^2] Heat flux across surface of mantle
-
OUT_HFLOWSURF¶
[W] Heat flow across surface of mantle
-
OUT_TIDALPOWMAN¶
[W] Mantle tidal dissipation power
-
OUT_HFLOWSECMAN¶
[W] Mantle secular cooling power
-
OUT_HFLUXCMBAD¶
[W/m^2] Adiabatic heat flux at top of core
-
OUT_HFLUXCMBCONV¶
[W/m^2] Super-adiabatic (convective) heat flux at top of core
-
OUT_RIC¶
[m] Inner core radius
-
OUT_DOC¶
[m] Outer core shell thickness
-
OUT_DRICDTCMB¶
[m/K] Change in inner core radius with CMB temperature: \ d(R_ic)/d(T_cmb)
-
OUT_RICDOT¶
[m/s] Change in inner core radius with time: d(R_ic)/d(t)
-
OUT_CHIOC¶
[nd] Outer core light element concentration chi
-
OUT_CHIIC¶
[nd] Inner core light element concentration chi
-
OUT_THERMCONDUCTOC¶
[W/m/K] Thermal conductivity at top of outer core
-
OUT_THERMCONDUCTIC¶
[W/m/K] Thermal conductivity of inner core
-
OUT_MASSOC¶
[kg] Outer core mass
-
OUT_MASSIC¶
[kg] Inner core mass
-
OUT_MASSCHIOC¶
[kg] Outer core light element chi mass
-
OUT_MASSCHIIC¶
[kg] Inner core light element chi mass
-
OUT_DTCHI¶
[K] Core Liquidus Depression
-
OUT_COREBUOYTHERM¶
[m^2/s^3] Core thermal buoyancy flux
-
OUT_COREBUOYCOMPO¶
[m^2/s^3] Core compositional buoyancy flux
-
OUT_COREBUOYTOTAL¶
[m^2/s^3] Core total buoyancy flux
-
OUT_GRAVICB¶
[m/s^2] Inner core boundary gravity
-
OUT_MAGMOM¶
[Am^2] Core dynamo dipole magnetic moment
-
OUT_PRESSWIND¶
[kg/m/s^2] Stellar wind pressure at planet
-
OUT_MAGPAUSERAD¶
[m] Magnetopause radius from center of planet
-
OUT_VISCJUMPMAN¶
[nd] Viscosity ratio of lower to upper mantle
-
OUT_ERUPTEFF¶
[nd] Mantle melt eruption efficiency
-
OUT_VISCREF¶
[m^2/s] Reference viscosity
-
OUT_TREFLIND¶
[K] Reference Lindemann temperature of core liquidus
-
OUT_DTCHIREF¶
[K] Reference core liquidus depression
-
OUT_DYNVISC¶
[Pa/s] Dynamic viscosity of upper mantle
-
max(a, b)
-
min(a, b)¶
Functions
-
void fvAddModuleThermint(CONTROL*, MODULE*, int, int)
Add thermint module
- Parameters
module – Module struct
iBody – Index of body
iModule – Index of module
-
void fvBodyCopyThermint(BODY*, BODY*, int, int, int)
Copy values from src to dest for iBody.
- Parameters
dest – Body struct containing destination
src – Body struct containing source
foo –
iNumBodies – Index number of bodies
iBody – Body index
-
void fvReadTMan(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
Read mantle temperature from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadTSurf(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
Read surface temperature from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadTCore(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
Read core temperature from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadViscJumpMan(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
Read viscosity jump across mantle from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadViscRef(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
Read reference viscosity from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadViscMeltB(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
Read melt viscosity reduction “B” parameter from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadViscMeltPhis(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
Read melt viscosity reduction “Phi^star” parameter from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadViscMeltXi(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
Read melt viscosity reduction “Xi” parameter from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadViscMeltDelta(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
Read melt viscosity reduction “delta” parameter from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadMeltfactorUMan(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
Read fixed upper mantle melt viscosity reduction from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadFixMeltfactorUMan(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
Read boolean option to fix upper mantle melt viscosity reduction from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadTrefLind(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
Read reference Lindemann (core liquidus) temperature from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadDTChiRef(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
Read core liquidus light element depression from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadEruptEff(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
Read melt eruption efficiency from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadHaltMinTMan(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
Read minimum mantle temperature to halt from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadHaltMinTCore(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
Read minimum core temperature to halt from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadStagLid(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
Read option to fix stagnant lid mantle heat flow from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadManHFlowPref(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
Read mantle surface heat flow prefix coefficient from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadMagMomCoef(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
Read dipole magnetic moment coefficient from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadPresSWind(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
Read solar wind pressure at body from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadActViscMan(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
Read mantle viscosity activation energy from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadShModRef(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
Read mantle reference shear modulus from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadStiffness(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
Read mantle stiffness from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadDLind(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
Read Lindemann law (core liquidus) length scale “D” from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadDAdCore(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
Read core adiabatic profile length scale “D” from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadAdJumpM2UM(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
Read adiabatic temperature jump from average mantle to upper mantle from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadAdJumpM2LM(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
Read adiabatic temperature jump from average mantle to lower mantle from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadAdJumpC2CMB(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
Read adiabatic temperature jump from average core to core-mantle boundary from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadElecCondCore(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
Read electrical conductivity at top of core from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvReadImK2ManOrbModel(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
Read ImK2ManOrbModel from input file
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
iFile – Index of file
-
void fvInitializeOptionsThermint(OPTIONS*, fnReadOption[])
Initialize Thermint options
- Parameters
options – Options struct
fnRead – fnReadOption functions to read options
-
void fvReadOptionsThermint(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, fnReadOption[], int)
Read options in thermint
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
system – System struct
fnRead – fnReadOption functions to read options
iBody – Index of body
-
int fbHaltMinTMan(BODY*, EVOLVE*, HALT*, IO*, UPDATE*, fnUpdateVariable***, int)
syntax now is same as fnHaltModule in vplanet.h
Halt at minimum value of TMan
- Parameters
body – Body struct
evolve – Evolve struct
halt – Halt struct
io – IO struct
update – Update struct
iBody – Index of body
-
int fbHaltMinTCore(BODY*, EVOLVE*, HALT*, IO*, UPDATE*, fnUpdateVariable***, int)
Halt at minimum value of TCore
- Parameters
body – Body struct
evolve – Evolve struct
halt – Halt struct
io – IO struct
update – Update struct
iBody – Index of body
-
void fvCountHaltsThermint(HALT*, int*)
Count number of halts
- Parameters
halt – Halt struct
iNumHalts – Index of number of halts
-
void fvVerifyThermint(BODY*, CONTROL*, FILES*, OPTIONS*, OUTPUT*, SYSTEM*, UPDATE*, int, int)
Verify thermint. Calls VerifyTMan, VerifyTCore, ForceBehaviorThermint, PropsAuxThermint, BodyCopyThermint.
- Parameters
body – Body struct
control – Control struct
files – Files struct
options – Options struct
output – Output struct
system – System struct
update – Update struct
iBody – Index of body
iModule – Index of module
-
void fvVerifyTMan(BODY*, OPTIONS*, SYSTEM*, UPDATE*, double, int)
Verify TMan. In update struct, iaType=1 for differential equation evolution, iNumBodies=1, iaBody is number of bodies affected by this variable (1), pdTDotMan points towards derivative, fnUpdate points towards derivative (fdTDotMan).
- Parameters
body – Body struct
options – Options struct
system – System struct
update – Update struct
dAge – Age
iBody – Index of body
-
void fvVerifyTCore(BODY*, OPTIONS*, SYSTEM*, UPDATE*, double, int)
Verify TCore. In update struct, iaType=1 for differential equation evolution, iNumBodies=1, iaBody is number of bodies affected by this variable (1), pdTDotCore points towards derivative, fnUpdate points towards derivative (fdTDotCore). Initialize parameters that dDTCoreDt depends on in body struct: dRIC, dHfluxCMBConv, dRICDot, dGravICB, dCoreBuoyTherm, dCoreBuoyCompo, update. daDerivProc.
- Parameters
body – Body struct
options – Options struct
system – System struct
update – Update struct
dAge – Age
iBody – Index of body
-
void fvAssignThermintDerivatives(BODY*, EVOLVE*, UPDATE*, fnUpdateVariable***, int)
-
void fvNullThermintDerivatives(BODY*, EVOLVE*, UPDATE*, fnUpdateVariable***, int)
-
void fvInitializeUpdateThermint(BODY*, UPDATE*, int)
Initialize update
- Parameters
body – Body struct
update – Update struct
iBody – Index of body
-
void fvPropsAuxThermint(BODY*, EVOLVE*, IO*, UPDATE*, int)
Set auxiliary properties in body. This includes all thermint parameters that are not computed by a time derivative (that is everything except TMan and TCore).
- Parameters
body – Body struct
evolve – Evolve struct
update – Update struct
iBody – Index of body
-
void fvForceBehaviorThermint(BODY*, MODULE*, EVOLVE*, IO*, SYSTEM*, UPDATE*, fnUpdateVariable ***fnUpdate, int, int)
Enforce limits to fundamental parameters: if TMan or TCore < 0.5 then set it to 0 (i.e. removes negatives).
- Parameters
body – Body struct
evolve – Evolve struct
io – IO struct
system – System struct
update – Update struct
fnUpdate – fnUpdateVariable pointer to function to update
iBody – Index of body
iModule – Index of module
-
void fvInitializeOutputThermint(OUTPUT*, fnWriteOutput[])
Initialize output, set variable names, descriptions, default units, default scalings, and write functions.
- Parameters
output – Output struct
fnWrite – fnWriteOutput
-
void fvWriteTMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write TMan output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteTUMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write TUMan output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteTLMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write TLMan output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteTJumpUMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write TJumpUMan output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteTJumpLMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write TJumpLMan output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteSignTJumpUMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write Sign of TJumpUMan output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteSignTJumpLMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write Sign of TJumpUMan output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteTCore(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write TCore output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteTCMB(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write TCMB output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteBLUMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write UMan boundary layer thickness output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteBLLMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write LMan boundary layer thickness output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteViscUManArr(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write viscosity UMan from Arrhenius law output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteViscUMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write viscosity UMan output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteViscLMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write viscosity LMan output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteViscMMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write viscosity MMan output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteShmodUMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write UMan shear modulus output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteFMeltUMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write UMan melt fraction output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteFMeltLMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write LMan melt fraction output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteMeltfactorUMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write UMan viscosity melt reduction output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteMeltfactorLMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write LMan viscosity melt reduction output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteDepthMeltMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write depth of mantle melting output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteTDepthMeltMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write T at depth of mantle melting output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteTJumpMeltMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write TJump across depth of mantle melting output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteMeltMassFluxMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write mass flux of mantle melt output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteRayleighMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write mantle Rayleigh number output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteTDotMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write mantle temperature cooling rate output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteTDotCore(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write core temperature cooling rate output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteHfluxUMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write heat flux across UMan output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteHflowUMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write heat flow across UMan output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteHflowSecMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write mantle secular cooling heat flow output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteHfluxLMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write heat flux across LMan (same as CMB) output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteHflowLMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write heat flow across LMan output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteHflowTidalMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])¶
-
void fvWriteHflowTidalCore(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])¶
-
void fvWriteHflowLatentMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write latent heat flow from mantle solidification output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteHflowMeltMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write erupted melt heat flow from UMan output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteHflowLatentIC(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write latent heat flow from ICB output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWritePowerGravIC(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write gravitational power from ICB output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteHflowSurf(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write heat flow across surface of body output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteRIC(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write inner core radius RIC output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteDRICDTCMB(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write derivative of RIC wrt TCMB output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteChiOC(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write outer core “OC” light element concentration “chi” output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteChiIC(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write inner core “IC” light element concentration “chi” output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteMassOC(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write OC mass output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteMassIC(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write IC mass output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteMassChiOC(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write OC light element mass output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteMassChiIC(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write IC light element mass output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteDTChi(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write core liquidus depression due to light elements output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteThermConductOC(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write thermal conductivity at top of OC output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteHfluxCMBAd(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write adiabatic heat flux at top of OC output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteHfluxCMBConv(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write convective heat flux at top of OC output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteCoreBuoyTherm(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write OC thermal buoyancy flux output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteCoreBuoyCompo(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write OC compositional buoyancy flux output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteCoreBuoyTotal(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write OC total buoyancy flux output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteGravICB(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write inner core boundary (ICB) gravitational energy release output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteRICDot(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write RIC growth rate output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteMagMom(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write OC dipolar magnetic moment output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWritePresSWind(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write solar wind pressure at planet output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvWriteMagPauseRad(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char[])
Write magnetopause radius output
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
units – Units struct
update – Update struct
iBody – Index of body
dTmp – Temporary variable
cUnit – Variable units
-
void fvLogOptionsThermint(CONTROL*, FILE*)
Log options
- Parameters
control – Control struct
fp – File struct
-
void fvLogThermint(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UPDATE*, fnWriteOutput[], FILE*)
Log of thermint
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
update – Update struct
fnWrite – fnWriteOutput
fp – File
-
void fvLogBodyThermint(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UPDATE*, fnWriteOutput[], FILE*, int)
Log of body from thermint
- Parameters
body – Body struct
control – Control struct
output – Output struct
system – System struct
update – Update struct
fnWrite – fnWriteOutput
fp – File
-
double fdTDotMan(BODY*, SYSTEM*, int*)
Function compute time derivative of average mantle temperature
- Parameters
body – Body struct
system – System struct
iaBody – Index of body
- Returns
Time derivative of average mantle temperature
-
double fdTDotCore(BODY*, SYSTEM*, int*)
Function compute time derivative of average core temperature
- Parameters
body – Body struct
system – System struct
iaBody – Index of body
- Returns
Time derivative of average core temperature
-
double fdTUMan(BODY*, int)
Function compute upper mantle temperature
- Parameters
body – Body struct
iBody – Index of body
- Returns
Upper mantle temperature
-
double fdTLMan(BODY*, int)
Function compute lower mantle temperature
- Parameters
body – Body struct
iBody – Index of body
- Returns
Lower mantle temperature
-
double fdTCMB(BODY*, int)
Function compute core-mantle boundary temperature
- Parameters
body – Body struct
iBody – Index of body
- Returns
Core-mantle boundary temperature
-
double fdTJumpUMan(BODY*, int)
Function compute absolute value of upper mantle temperature jump: TUman-TSURF
- Parameters
body – Body struct
iBody – Index of body
- Returns
Absolute value of upper mantle temperature jump
-
double fdTJumpLMan(BODY*, int)
Function compute absolute value of lower mantle temperature jump: TCMB-TLman
- Parameters
body – Body struct
iBody – Index of body
- Returns
Absolute value of lower mantle temperature jump
-
double fdSignTJumpUMan(BODY*, int)
Function compute sign of upper mantle temperature jump
- Parameters
body – Body struct
iBody – Index of body
- Returns
Sign of upper mantle temperature jump
-
double fdSignTJumpLMan(BODY*, int)
Function compute sign of lower mantle temperature jump
- Parameters
body – Body struct
iBody – Index of body
- Returns
Sign of lower mantle temperature jump
-
double fdViscUManArr(BODY*, int)
Function compute Arrhenius component of upper mantle viscosity
- Parameters
body – Body struct
iBody – Index of body
- Returns
Arrhenius component of upper mantle viscosity
-
double fdViscUMan(BODY*, int)
Function compute full upper mantle viscosity
- Parameters
body – Body struct
iBody – Index of body
- Returns
Full upper mantle viscosity
-
double fdViscLMan(BODY*, int)
Function compute full lower mantle viscosity
- Parameters
body – Body struct
iBody – Index of body
- Returns
Full lower mantle viscosity
-
double fdViscMMan(BODY*, int)
Function compute full mid-mantle viscosity
- Parameters
body – Body struct
iBody – Index of body
- Returns
Full mid-mantle viscosity
-
double fdViscJumpMan(BODY*, int)
Function compute mantle viscosity jump
- Parameters
body – Body struct
iBody – Index of body
- Returns
Mantle viscosity jump
-
double fdBLUMan(BODY*, int)
Function compute upper mantle thermal boundary layer thickness
- Parameters
body – Body struct
iBody – Index of body
- Returns
Upper mantle thermal boundary layer thickness
-
double fdBLLMan(BODY*, int)
Function compute lower mantle thermal boundary layer thickness
- Parameters
body – Body struct
iBody – Index of body
- Returns
Lower mantle thermal boundary layer thickness
-
double fdShmodUMan(BODY*, int)
Function compute upper mantle shear modulus
- Parameters
body – Body struct
iBody – Index of body
- Returns
Upper mantle shear modulus
-
double fdFMeltUMan(BODY*, int)
Function compute upper mantle melt fraction
- Parameters
body – Body struct
iBody – Index of body
- Returns
Upper mantle melt fraction
-
double fdFMeltLMan(BODY*, int)
Function compute lower mantle melt fraction
- Parameters
body – Body struct
iBody – Index of body
- Returns
Lower mantle melt fraction
-
double fdMeltfactorUMan(BODY*, int)
Function compute upper mantle viscosity reduction factor due to melt. If dFixMeltfactorUMan=1 then return dMeltfactorUMan. Else compute it.
- Parameters
body – Body struct
iBody – Index of body
- Returns
Upper mantle viscosity reduction factor due to melt
-
double fdMeltfactorLMan(BODY*, int)
Function compute lower mantle viscosity reduction factor due to melt. Always compute it. Only applied if ViscJumpMan is not set.
- Parameters
body – Body struct
iBody – Index of body
- Returns
Lower mantle viscosity reduction factor due to melt
-
double fdTsolUMan(BODY*, int)
solidus temp at UMBL
Function compute solidus at bottom of upper mantle thermal boundary layer
- Parameters
body – Body struct
iBody – Index of body
- Returns
Solidus at bottom of upper mantle thermal boundary layer
-
double fdTliqUMan(BODY*, int)
liquidus at UMBL
Function compute liquidus at bottom of upper mantle thermal boundary layer
- Parameters
body – Body struct
iBody – Index of body
- Returns
Liquidus at bottom of upper mantle thermal boundary layer
-
double fdTsolLMan(BODY*, int)
Function compute solidus at top of lower mantle thermal boundary layer
- Parameters
body – Body struct
iBody – Index of body
- Returns
Solidus at top of lower mantle thermal boundary layer
-
double fdTliqLMan(BODY*, int)
Function compute liquidus at top of lower mantle thermal boundary layer
- Parameters
body – Body struct
iBody – Index of body
- Returns
Liquidus at top of lower mantle thermal boundary layer
-
double fdDepthMeltMan(BODY*, int)
depth to bottom of UM melt region (where solidus and geother intersect).
Function compute depth of upper mantle melting. Use cubic root to find intersection of mantle adiabat and solidus.
- Parameters
body – Body struct
iBody – Index of body
- Returns
Depth of upper mantle melting
-
double fdTDepthMeltMan(BODY*, int)
T at bottom of UM melt region.
Function compute solidus temperature at depth of upper mantle melting.
- Parameters
body – Body struct
iBody – Index of body
- Returns
solidus temperature at depth of upper mantle melting
-
double fdSolTempDiffMan(double, BODY*, int)
difference between solidus and geotherm at a given depth.
Function compute temperature difference between solidus and geotherm at a given depth
- Parameters
depth –
body – Body struct
iBody – Index of body
- Returns
Temperature difference between solidus and geotherm at a given depth
-
double fdSolidusMan(double)
solidus at a given depth.
Function compute mantle solidus at a given depth
- Parameters
depth –
- Returns
Mantle solidus temperature at this depth
-
double fdTJumpMeltMan(BODY*, int)
temp jump across UM melt region.
Function compute temperature jump across upper mantle melt region, excluding the adiabatic component (i.e. just the advective component): TDepthMeltMan-TSURF-ADGRADMAN*DepthMeltMan
- Parameters
body – Body struct
iBody – Index of body
- Returns
Temperature jump across upper mantle melt region
-
double fdMeltMassFluxMan(BODY*, int)
upwelling mantle melt mass flux.
Function compute mass flux of mantle melt
- Parameters
body – Body struct
iBody – Index of body
- Returns
Mass flux of mantle melt
-
double fdDynamicViscosity(BODY*, int)
Function compute upper mantle dynamic viscosity: ViscUMan*EDENSMAN.
- Parameters
body – Body struct
iBody – Index of body
- Returns
Upper mantle dynamic viscosity
-
double fdK2Man(BODY*, int)
Function compute upper mantle k2 Love number
- Parameters
body – Body struct
iBody – Index of body
- Returns
Upper mantle k2 Love number
-
double fdRayleighMan(BODY*, int)
Function compute mantle Rayleigh number, where temperature jump is the total convective temperature jump across mantle (UMan+LMan) and viscosity is ViscMMan.
- Parameters
body – Body struct
iBody – Index of body
- Returns
Mantle Rayleigh number
-
double fdHfluxUMan(BODY*, int)
Function compute heat flux across upper mantle thermal boundary layer
- Parameters
body – Body struct
iBody – Index of body
- Returns
Heat flux across upper mantle thermal boundary layer
-
double fdHfluxLMan(BODY*, int)
Function compute heat flux across lower mantle thermal boundary layer
- Parameters
body – Body struct
iBody – Index of body
- Returns
Heat flux across lower mantle thermal boundary layer
-
double fdHfluxCMB(BODY*, int)
Function compute heat flux across core-mantle boundary: same as across lower mantle
- Parameters
body – Body struct
iBody – Index of body
- Returns
Heat flux across core-mantle boundary
-
double fdHflowUMan(BODY*, int)
Function compute heat flow across upper mantle thermal boundary layer
- Parameters
body – Body struct
iBody – Index of body
- Returns
Heat flow across upper mantle thermal boundary layer
-
double fdHflowLMan(BODY*, int)
Function compute heat flow across lower mantle boundary layer
- Parameters
body – Body struct
iBody – Index of body
- Returns
Heat flow across lower mantle boundary layer
-
double fdHflowCMB(BODY*, int)
Function compute heat flow across core-mantle boundary (same as lower mantle)
- Parameters
body – Body struct
iBody – Index of body
- Returns
Heat flow across core-mantle boundary (same as lower mantle)
-
double fdHflowMeltMan(BODY*, int)
Function compute heat flow of erupted mantle melt
- Parameters
body – Body struct
iBody – Index of body
- Returns
Heat flow of erupted mantle melt
-
double fdHflowLatentMan(BODY*, UPDATE*, int)
Function compute latent heat flow from mantle solidification
- Parameters
body – Body struct
iBody – Index of body
- Returns
Latent heat flow from mantle solidification
-
double fdMassICDot(BODY*, UPDATE*, int)
Function compute time derivative of IC mass
- Parameters
body – Body struct
update – Update struct
iBody – Index of body
- Returns
Time derivative of IC mass if IC exists. Otherwise zero.
-
double fdHflowLatentIC(BODY*, UPDATE*, int)
Function compute latent heat flow from inner core solidification
- Parameters
body – Body struct
update – Update struct
iBody – Index of body
- Returns
Latent heat flow from inner core solidification
-
double fdPowerGravIC(BODY*, UPDATE*, int)
Function compute gravitational energy release from inner core solidification
- Parameters
body – Body struct
update – Update struct
iBody – Index of body
- Returns
Gravitational energy release from inner core solidification
-
double fdHflowSurf(BODY*, int)
Function compute heat flow across surface of mantle
- Parameters
body – Body struct
iBody – Index of body
- Returns
Heat flow across surface of mantle
-
double fdHfluxSurf(BODY*, int)
Function compute secular mantle heat flow: heat sinks - sources
- Parameters
body – Body struct
iBody – Index of body
body – Body struct
iBody – Index of body
- Returns
Heat flow of mantle secular cooling Function compute heat flux across surface of mantle
- Returns
Heat flux across surface of mantle
-
double fdRIC(BODY*, int)
Function compute inner core radius RIC
- Parameters
body – Body struct
iBody – Index of body
- Returns
Inner core radius
-
double fdDRICDTCMB(BODY*, int)
Function compute derivative of RIC wrt TCMB if IC exists. Otherwise zero.
- Parameters
body – Body struct
iBody – Index of body
- Returns
Derivative of RIC wrt TCMB if IC exists. Otherwise zero.
-
double fdChiOC(BODY*, int)
Function compute light element concentration in outer core
- Parameters
body – Body struct
iBody – Index of body
- Returns
Light element concentration in outer core
-
double fdChiIC(BODY*, int)
Function compute light element concentration in inner core
- Parameters
body – Body struct
iBody – Index of body
- Returns
Light element concentration in inner core
-
double fdMassIC(BODY*, int)
Function compute mass of inner core
- Parameters
body – Body struct
iBody – Index of body
- Returns
Mass of inner core
-
double fdMassOC(BODY*, int)
Function compute mass of outer core
- Parameters
body – Body struct
iBody – Index of body
- Returns
Mass of outer core
-
double fdMassChiIC(BODY*, int)
Function compute light element mass in inner core
- Parameters
body – Body struct
iBody – Index of body
- Returns
Light element mass in inner core
-
double fdMassChiOC(BODY*, int)
Function compute light element mass in outer core
- Parameters
body – Body struct
iBody – Index of body
- Returns
Light element mass in outer core
-
double fdDTChi(BODY*, int)
Function compute core liquidus depression due to light element concentration
- Parameters
body – Body struct
iBody – Index of body
- Returns
Core liquidus depression due to light element concentration
-
double fdHfluxCMBAd(BODY*, int)
Function compute adiabatic heat flux at top of outer core: ThermConductOC*TCMB*ERCORE/DAdCore^2
- Parameters
body – Body struct
iBody – Index of body
- Returns
Adiabatic heat flux at top of outer core
-
double fdHfluxCMBConv(BODY*, int)
Function compute convective heat flux at top of outer core: HfluxCMB-HfluxCMBAd
- Parameters
body – Body struct
iBody – Index of body
- Returns
Convective heat flux at top of outer core
-
double fdThermConductOC(BODY*, int)
Function compute thermal conductivity at top of outer core: ElecCondCore*LORENTZNUM*TCMB
- Parameters
body – Body struct
iBody – Index of body
- Returns
Thermal conductivity at top of outer core
-
double fdCoreBuoyTherm(BODY*, int)
Function compute outer core thermal buoyancy flux
- Parameters
body – Body struct
iBody – Index of body
- Returns
Outer core thermal buoyancy flux
-
double fdCoreBuoyCompo(BODY*, int)
Function compute outer core compositional buoyancy flux
- Parameters
body – Body struct
iBody – Index of body
- Returns
Outer core compositional buoyancy flux
-
double fdCoreBuoyTotal(BODY*, int)
Function compute outer core total buoyancy flux
- Parameters
body – Body struct
iBody – Index of body
- Returns
Outer core total buoyancy flux
-
double fdGravICB(BODY*, int)
Function compute gravity at inner core boundary ICB
- Parameters
body – Body struct
iBody – Index of body
- Returns
Gravity at inner core boundary ICB
-
double fdRICDot(BODY*, UPDATE*, int)
Function compute inner core radius growth rate
- Parameters
body – Body struct
iBody – Index of body
- Returns
Inner core radius growth rate
-
double fdMagMom(BODY*, int)
Function compute dipole magnetic moment
- Parameters
body – Body struct
iBody – Index of body
- Returns
Dipole magnetic moment
-
double fdPresSWind(BODY*, int)
Function compute solar wind pressure
- Parameters
body – Body struct
iBody – Index of body
- Returns
Solar wind pressure
-
double fdMagPauseRad(BODY*, int)
Function compute magnetopause stand-off radius from center of planet
- Parameters
body – Body struct
iBody – Index of body
- Returns
Magnetopause stand-off radius from center of planet
-
double fdSurfEnFlux(BODY*, SYSTEM*, UPDATE*, int, int)
Function compute surface energy flux including crustal radiogenic power: hflowUMan+RadPowerCrust
- Parameters
body – Body struct
update – Update struct
system – System struct
iBody – Index of body
iFoo –
- Returns
Surface energy flux including crustal radiogenic power
-
double fdPowerThermint(BODY*, int)
-
double cube(double)
Function compute cube of quantity
- Parameters
x – Quantity
- Returns
Quantity cubed
-
double root(int, BODY*, int, double, double, double, int)
Function compute root of intersection of two equations using bisection method.
- Parameters
type – Type of root to compute
body – Body struct
iBody – Index of body
guess1 – First guess of root
guess2 – Second guess of root
tol – Tolerance of root finding
nmax – Maximum iteration
- Returns
Root
-
double cubicroot(int, BODY*, int)
Function compute cubic roots of intersection between mantle adiabat and solidus.
- Parameters
type – Type of root to compute
body – Body struct
iBody – Index of body
- Returns
Depth to solidus-adiabat intersection (melt layer)