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 fvWriteTsolUMan(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char **cUnit)
Write TsolUMan 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_TSOLUMAN
[K] Upper mantle solidus temperature
-
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 fvWriteTsolUMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char**)
Write TsolUMan 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)