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

  • ioIO 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

  • ioIO 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

  • ioIO 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 fdPowerThermint(BODY *body, int iBody)
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 &#8212; 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 fvInitializeBodyThermint(BODY*, CONTROL*, UPDATE*, int, int)
void fvHelpOptionsThermint(OPTIONS*)
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 fvReadViscMelGamma(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
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

  • ioIO 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

  • ioIO 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

  • ioIO 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 fvInitializeOutputFunctionThermint(OUTPUT*, int, int)
void fvFinalizeOutputFunctionThermint(OUTPUT*, int, int)
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 fvWriteTICB(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char**)
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 fvWriteShmodLMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char**)
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 fvWriteHflowICB(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char**)
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 fvWriteTidalPowMan(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char**)
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 fdTICB(BODY*, int)
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 fdShmodLMan(BODY*, int)
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 fdImk2Man(BODY*, int)
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 fdTidalPowMan(BODY*, int)
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 fdHflowSecManThermint(BODY*, int)
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 fdManHFlowPref(BODY*, int)
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)