magmoc

Contents

magmoc.c

Functions

void BodyCopyMagmOc(BODY *dest, BODY *src, int foo, int iNumBodies, int iBody)
void ReadMassFracFeOIni(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)
void ReadWaterMassAtm(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)
void ReadCO2MassMOAtm(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)
void ReadSurfTemp(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)
void ReadManMeltDensity(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)
void ReadWaterPartCoeff(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)
void ReadDepthMO(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)
void ReadHaltMantleSolidified(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)
void ReadHaltMantleMeltFracLow(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)
void ReadHaltAtmDesiSurfCool(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)
void ReadHaltEnterHabZone(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)
void ReadHaltAllPlanetsSolid(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)
void ReadHaltAllPlanetsDesicc(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)
void ReadRadioHeatModel(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)
void ReadMagmOcAtmModel(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)
void ReadMantleQuasiSolid(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)
void InitializeOptionsMagmOc(OPTIONS *options, fnReadOption fnRead[])
void ReadOptionsMagmOc(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, fnReadOption fnRead[], int iBody)
void InitializeBodyMagmOc(BODY *body, CONTROL *control, UPDATE *update, int iBody, int iModule)
double fndBisection(double (*f)(BODY*, double, int), BODY *body, double dXl, double dXu, double dEps, int iBody)

Bisection method to find root

Parameters:
  • (*f) – function pointer to the function the root of which should be found

  • body – A pointer to the current BODY instance

  • dXl – the lower boundary of the root finder

  • dXu – the upper boundary of the root finder

  • iBody – The current BODY number

Returns:

dXm the root of function (*f)

double fndWaterMassMOTime(BODY *body, double dFrac, int iBody)

Mass of water in the mo+atm system to get the water frac in the magmoc Will be used in PropsAuxMagmOc to find its root with fndBisection

Parameters:
  • body – A pointer to the current BODY instance

  • dFrac – water mass fraction in the magma oean

  • iBody – The current BODY number

Returns:

Water mass for a given dFrac - actual water mass in mo+atm

double fndCO2MassMOTime(BODY *body, double dFracCO2, int iBody)

Mass of CO2 in the mo+atm system to get the water frac in the magmoc Will be used in PropsAuxMagmOc to find its root with fndBisection

Parameters:
  • body – A pointer to the current BODY instance

  • dFracCO2 – CO2 mass fraction in the magma oean

  • iBody – The current BODY number

Returns:

CO2 mass for a given dFracCO2 - actual CO2 mass in mo+atm

double fndPhysPressCO2(BODY *body, double dPhysPressCO2, int iBody)

Physical pressure of CO2 in the atmosphere Will be used in PropsAuxMagmOc to find its root with fndBisection

Parameters:
  • body – A pointer to the current BODY instance

  • dPhysPressCO2 – Physical CO2 pressure in the atmosphere

  • iBody – The current BODY number

Returns:

0

double fndRadioHeatingEarth(BODY *body, int iBody)

Radiogenic heating used in Schaefer et al. (2016) Earth like composition

Parameters:
  • body – A pointer to the current BODY instance

  • iBody – The current BODY number

Returns:

radiogenic heating rate

double fndBolFluxSchaefer(BODY *body, int iBody)

Bolometric flux of GJ1132 used in Schaefer et al. (2016) Fit to Schaefer Fig. 2 (Baraffe, Mstar=0.18Msun, orbit of GJ1132b)

Parameters:
  • body – A pointer to the current BODY instance

  • iBody – The current BODY number

Returns:

bolometric flux at GJ1132b’s orbit

double fndNetFluxAtmGrey(BODY *body, int iBody)

Atmospheric net flux with a grey atmosphere From Elkins-Tanton (2008) & Carone et al. (2014)

Parameters:
  • body – A pointer to the current BODY instance

  • iBody – The current BODY number

Returns:

Atmospheric net flux

double fndNetFluxAtmPetit(BODY *body, double dTime, int iBody)

Atmospheric net flux with the petitCODE From Molliere et al. (2015) Only for GJ1132b with 100% Water atmosphere

Parameters:
  • body – A pointer to the current BODY instance

  • iBody – The current BODY number

Returns:

Atmospheric net flux

void fndFe2O3MassFracOxyMass(BODY *body, int iBody)

Calculation of Fe2O3 mass fraction in the m.o. and oxygen mass in the atmosphere. Used by Schaefer et al. (2016)

Parameters:
  • body – A pointer to the current BODY instance

  • iBody – The current BODY number

void fndMeltFracMan(BODY *body, int iBody)

Calculation of melt fraction (average over magma ocean) and kinematic viscosity (uppermost layer) Function melt_fraction() in functions_rk.py

Calculation of the mantle heat flux Function mantle_flux() in functions_rk.py

Parameters:
  • body – A pointer to the current BODY instance

  • iBody – The current BODY number

void fndWaterFracMelt(BODY *body, int iBody)

Calculation of the water and CO2 mass fraction in the magma ocean Function water_fraction() in functions_rk.py

Parameters:
  • body – A pointer to the current BODY instance

  • iBody – The current BODY number

void PropsAuxMagmOc(BODY *body, EVOLVE *evolve, IO *io, UPDATE *update, int iBody)
void fnForceBehaviorMagmOc(BODY *body, MODULE *module, EVOLVE *evolve, IO *io, SYSTEM *system, UPDATE *update, fnUpdateVariable ***fnUpdate, int iBody, int iModule)
void MagmOcExit(FILES *files, char cSpecies[16], int iFile)
void VerifyPotTemp(BODY *body, OPTIONS *options, UPDATE *update, double dAge, int iBody)
void VerifySurfTemp(BODY *body, OPTIONS *options, UPDATE *update, double dAge, int iBody)
void VerifySolidRadius(BODY *body, OPTIONS *options, UPDATE *update, double dAge, int iBody)
void VerifyWaterMassMOAtm(BODY *body, OPTIONS *options, UPDATE *update, double dAge, int iBody)
void VerifyWaterMassSol(BODY *body, OPTIONS *options, UPDATE *update, double dAge, int iBody)
void VerifyCO2MassMOAtm(BODY *body, OPTIONS *options, UPDATE *update, double dAge, int iBody)
void VerifyCO2MassSol(BODY *body, OPTIONS *options, UPDATE *update, double dAge, int iBody)
void VerifyOxygenMassMOAtm(BODY *body, OPTIONS *options, UPDATE *update, double dAge, int iBody)
void VerifyOxygenMassSol(BODY *body, OPTIONS *options, UPDATE *update, double dAge, int iBody)
void VerifyHydrogenMassSpace(BODY *body, OPTIONS *options, UPDATE *update, double dAge, int iBody)
void VerifyOxygenMassSpace(BODY *body, OPTIONS *options, UPDATE *update, double dAge, int iBody)
void AssignMagmOcDerivatives(BODY *body, EVOLVE *evolve, UPDATE *update, fnUpdateVariable ***fnUpdate, int iBody)
void NullMagmOcDerivatives(BODY *body, EVOLVE *evolve, UPDATE *update, fnUpdateVariable ***fnUpdate, int iBody)
void VerifyMagmOc(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, OUTPUT *output, SYSTEM *system, UPDATE *update, int iBody, int iModule)
void InitializeUpdateMagmOc(BODY *body, UPDATE *update, int iBody)
int fbHaltMantleSolidified(BODY *body, EVOLVE *evolve, HALT *halt, IO *io, UPDATE *update, fnUpdateVariable ***fnUpdate, int iBody)
int fbHaltMantleMeltFracLow(BODY *body, EVOLVE *evolve, HALT *halt, IO *io, UPDATE *update, fnUpdateVariable ***fnUpdate, int iBody)
int fbHaltAtmDesiSurfCool(BODY *body, EVOLVE *evolve, HALT *halt, IO *io, UPDATE *update, fnUpdateVariable ***fnUpdate, int iBody)
int fbHaltEnterHabZone(BODY *body, EVOLVE *evolve, HALT *halt, IO *io, UPDATE *update, fnUpdateVariable ***fnUpdate, int iBody)
int fbHaltAllPlanetsSolid(BODY *body, EVOLVE *evolve, HALT *halt, IO *io, UPDATE *update, fnUpdateVariable ***fnUpdate, int iBody)
int fbHaltAllPlanetsDesicc(BODY *body, EVOLVE *evolve, HALT *halt, IO *io, UPDATE *update, fnUpdateVariable ***fnUpdate, int iBody)
void CountHaltsMagmOc(HALT *halt, int *iNumHalts)
void VerifyHaltMagmOc(BODY *body, CONTROL *control, OPTIONS *options, int iBody, int *iHalt)
void WritePotTemp(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char **cUnit)
void WriteSurfTemp(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char **cUnit)
void WriteSolidRadius(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char **cUnit)
void WriteWaterMassMOAtm(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char **cUnit)
void WriteWaterMassSol(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char **cUnit)
void WriteCO2MassMOAtm(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char **cUnit)
void WriteCO2MassSol(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char **cUnit)
void WriteOxygenMassMOAtm(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char **cUnit)
void WriteOxygenMassSol(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char **cUnit)
void WritePressWaterAtm(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char **cUnit)
void WritePressCO2Atm(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char **cUnit)
void WritePressOxygenAtm(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char **cUnit)
void WriteHydrogenMassSpace(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char **cUnit)
void WriteOxygenMassSpace(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char **cUnit)
void WriteFracFe2O3Man(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char **cUnit)
void WriteNetFluxAtmo(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char **cUnit)
void WriteWaterFracMelt(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char **cUnit)
void WriteCO2FracMelt(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char **cUnit)
void WriteRadioPower(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char **cUnit)
void WriteTidalPower(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char **cUnit)
void WriteHZInnerEdge(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char **cUnit)
void WriteMeltFraction(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char **cUnit)
void InitializeOutputMagmOc(OUTPUT *output, fnWriteOutput fnWrite[])
void FinalizeUpdatePotTemp(BODY *body, UPDATE *update, int *iEqn, int iVar, int iBody, int iFoo)
void FinalizeUpdateSurfTemp(BODY *body, UPDATE *update, int *iEqn, int iVar, int iBody, int iFoo)
void FinalizeUpdateSolidRadius(BODY *body, UPDATE *update, int *iEqn, int iVar, int iBody, int iFoo)
void FinalizeUpdateWaterMassMOAtm(BODY *body, UPDATE *update, int *iEqn, int iVar, int iBody, int iFoo)
void FinalizeUpdateWaterMassSol(BODY *body, UPDATE *update, int *iEqn, int iVar, int iBody, int iFoo)
void FinalizeUpdateCO2MassMOAtm(BODY *body, UPDATE *update, int *iEqn, int iVar, int iBody, int iFoo)
void FinalizeUpdateCO2MassSol(BODY *body, UPDATE *update, int *iEqn, int iVar, int iBody, int iFoo)
void FinalizeUpdateOxygenMassMOAtm(BODY *body, UPDATE *update, int *iEqn, int iVar, int iBody, int iFoo)
void FinalizeUpdateOxygenMassSol(BODY *body, UPDATE *update, int *iEqn, int iVar, int iBody, int iFoo)
void FinalizeUpdateHydrogenMassSpace(BODY *body, UPDATE *update, int *iEqn, int iVar, int iBody, int iFoo)
void FinalizeUpdateOxygenMassSpace(BODY *body, UPDATE *update, int *iEqn, int iVar, int iBody, int iFoo)
void LogOptionsMagmOc(CONTROL *control, FILE *fp)
void LogMagmOc(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UPDATE *update, fnWriteOutput fnWrite[], FILE *fp)
void LogBodyMagmOc(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UPDATE *update, fnWriteOutput fnWrite[], FILE *fp, int iBody)
void AddModuleMagmOc(MODULE *module, int iBody, int iModule)
double fdDPotTemp(BODY *body, SYSTEM *system, int *iaBody)
double fdDSurfTemp(BODY *body, SYSTEM *system, int *iaBody)
double fdDSolidRadius(BODY *body, SYSTEM *system, int *iaBody)
double fdDWaterMassSol(BODY *body, SYSTEM *system, int *iaBody)
double fdDWaterMassMOAtm(BODY *body, SYSTEM *system, int *iaBody)
double fdDCO2MassSol(BODY *body, SYSTEM *system, int *iaBody)
double fdDCO2MassMOAtm(BODY *body, SYSTEM *system, int *iaBody)
double fdDOxygenMassSol(BODY *body, SYSTEM *system, int *iaBody)
double fdDOxygenMassMOAtm(BODY *body, SYSTEM *system, int *iaBody)
double fdDHydrogenMassSpace(BODY *body, SYSTEM *system, int *iaBody)
double fdDOxygenMassSpace(BODY *body, SYSTEM *system, int *iaBody)

magmoc.h

Defines

SILICATEHEATCAP
HEATFUSIONSILICATE
THERMALCONDUC
THERMALDIFFUS
CRITRAYLEIGHNO
THERMALEXPANCOEFF
ALBEDOWATERATMOS
ALBEDOROCK
WATERPARTCOEFF
CO2PARTCOEFF
CRITMELTFRAC
DYNVISCLIQUID
DYNVISCSOLID
ACTIVENERGY
RADCOREEARTH
AVOGADROCONST
FRACCO2MELTMIN
FRACCO2MELTMAX
TIMESTEPCORRECTION
EPSILONMANTLE
MAGMOC_NONE
MAGMOC_SCHAEFER
MAGMOC_GREY
MAGMOC_PETIT
MOLWEIGHTWATER
MOLWEIGHTHYDROGEN
MOLWEIGHTOXYGEN
MOLWEIGHTFEO15
MOLWEIGHTFEO
MOLWEIGHTCO2
MOLWEIGHTAL2O3
MOLWEIGHTCAO
MOLWEIGHTNA2O
MOLWEIGHTK2O
MOLWEIGHTMGO
MOLWEIGHTSIO2
MOLWEIGHTTIO2
MOLWEIGHTP2O5
ALOWPRESSURE
BLOWPRESSURE
AHIGHPRESSURE
BHIGHPRESSURE
MOLFRACAL2O3
MOLFRACFEO
MOLFRACCAO
MOLFRACNA2O
MOLFRACK2O
AVEMOLMASS
MASSFRACAL2O3
MASSFRACCAO
MASSFRACNA2O
MASSFRACK2O
TOTMASSFRACFEO
MASSFRACMGO
MASSFRACSIO2
MASSFRACTIO2
MASSFRACP2O5
ABSORPCOEFFH2O
ABSORPCOEFFCO2
REFPRESSUREOPACITY
WATERHEATCAP
PRESSWATERMIN
ATMESCTHERMT
ATMESCBDIFF
ATMESCQOH
OPTSTARTMAGMOC
OPTENDMAGMOC
OPT_FEO
OPT_WATERMASSATM
OPT_SURFTEMP
OPT_MANMELTDENSITY
OPT_HALTMANTLESOLIDIFIED
OPT_HALTMANTLEMELTFRACLOW
OPT_HALTATMDESISRUFCOOL
OPT_HALTENTERHABZONE
OPT_HALTALLPLANETSSOLID
OPT_HALTALLPLANETSDESICC
OPT_RADIOHEATMODEL
OPT_MAGMOCATMMODEL
OPT_CO2MASSMOATM
OPT_MANQUASISOL
OPT_WATERPARTCOEFF
OPT_DEPTHMO
MAGMOCHALTSYSEND
MAGMOCHALTBODYEND
OUTSTARTMAGMOC
OUTENDMAGMOC
OUT_FE2O3
OUT_WATERMASSMOATM
OUT_POTTEMP
OUT_SURFTEMP
OUT_WATERMASSSOL
OUT_SOLIDRADIUS
OUT_OXYGENMASSMOATM
OUT_OXYGENMASSSOL
OUT_PRESSWATERATM
OUT_PRESSOXYGENATM
OUT_HYDROGENMASSSPACE
OUT_OXYGENMASSSPACE
OUT_FRACFE2O3MAN
OUT_NETFLUXATMO
OUT_WATERFRACMELT
OUT_RADIOPOWER
OUT_TIDALPOWER
OUT_HZINNEREDGE
OUT_MELTFRACTION
OUT_CO2MASSMOATM
OUT_CO2MASSSOL
OUT_PRESSCO2ATM
OUT_CO2FRACMELT

Functions

void AddModuleMagmOc(MODULE*, int, int)
void BodyCopyMagmOc(BODY*, BODY*, int, int, int)
void HelpOptionsMagmOc(OPTIONS*)
void InitializeOptionsMagmOc(OPTIONS*, fnReadOption[])
void ReadMassFracFeOIni(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
void ReadWaterMassAtm(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
void ReadCO2MassMOAtm(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
void ReadSurfTemp(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
void ReadManMeltDensity(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
void ReadWaterPartCoeff(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
void ReadDepthMO(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, int)
void ReadOptionsMagmOc(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, fnReadOption[], int)
int fbHaltMantleSolidified(BODY*, EVOLVE*, HALT*, IO*, UPDATE*, fnUpdateVariable***, int)
int fbHaltMantleMeltFracLow(BODY*, EVOLVE*, HALT*, IO*, UPDATE*, fnUpdateVariable***, int)
int fbHaltAtmDesiSurfCool(BODY*, EVOLVE*, HALT*, IO*, UPDATE*, fnUpdateVariable***, int)
int fbHaltEnterHabZone(BODY*, EVOLVE*, HALT*, IO*, UPDATE*, fnUpdateVariable***, int)
int fbHaltAllPlanetsSolid(BODY*, EVOLVE*, HALT*, IO*, UPDATE*, fnUpdateVariable***, int)
int fbHaltAllPlanetsDesicc(BODY*, EVOLVE*, HALT*, IO*, UPDATE*, fnUpdateVariable***, int)
void CountHaltsMagmOc(HALT*, int*)
void VerifyMagmOc(BODY*, CONTROL*, FILES*, OPTIONS*, OUTPUT*, SYSTEM*, UPDATE*, int, int)
void VerifyRotationMagmOc(BODY*, CONTROL*, OPTIONS*, char[], int)
void InitializeVplanetMagmOc(CONTROL*, MODULE*)
void PropsAuxMagmOc(BODY*, EVOLVE*, IO*, UPDATE*, int)
void VerifyHaltMagmOc(BODY*, CONTROL*, OPTIONS*, int, int*)
void InitializeUpdateMagmOc(BODY*, UPDATE*, int)
void FinalizeUpdatePotTemp(BODY*, UPDATE*, int*, int, int, int)
void FinalizeUpdateSurfTemp(BODY*, UPDATE*, int*, int, int, int)
void FinalizeUpdateSolidRadius(BODY*, UPDATE*, int*, int, int, int)
void FinalizeUpdateWaterMassMOAtm(BODY*, UPDATE*, int*, int, int, int)
void FinalizeUpdateWaterMassSol(BODY*, UPDATE*, int*, int, int, int)
void FinalizeUpdateOxygenMassMOAtm(BODY*, UPDATE*, int*, int, int, int)
void FinalizeUpdateOxygenMassSol(BODY*, UPDATE*, int*, int, int, int)
void FinalizeUpdateHydrogenMassSpace(BODY*, UPDATE*, int*, int, int, int)
void FinalizeUpdateOxygenMassSpace(BODY*, UPDATE*, int*, int, int, int)
void HelpOutputMagmOc(OUTPUT*)
void InitializeOutputMagmOc(OUTPUT*, fnWriteOutput[])
void InitializeOutputFunctionMagmOc(OUTPUT*, int, int)
void FinalizeOutputFunctionMagmOc(OUTPUT*, int, int)
void WritePotTemp(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char**)
void WriteSurfTemp(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char**)
void WriteSolidRadius(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char**)
void WriteWaterMassMOAtm(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char**)
void WriteWaterMassSol(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char**)
void WriteCO2MassMOAtm(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char**)
void WriteCO2MassSol(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char**)
void WriteOxygenMassMOAtm(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char**)
void WriteOxygenMassSol(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char**)
void WritePressWaterAtm(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char**)
void WritePressCO2Atm(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char**)
void WritePressOxygenAtm(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char**)
void WriteHydrogenMassSpace(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char**)
void WriteOxygenMassSpace(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char**)
void WriteFracFe2O3Man(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char**)
void WriteNetFluxAtmo(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char**)
void WriteWaterFracMelt(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char**)
void WriteCO2FracMelt(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char**)
void WriteRadioPower(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char**)
void WriteTidalPower(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char**)
void WriteSemiMajorAxis(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char**)
void WriteHZInnerEdge(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char**)
void WriteMeltFraction(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char**)
void LogOptionsMagmOc(CONTROL*, FILE*)
void LogMagmOc(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UPDATE*, fnWriteOutput[], FILE*)
void LogBodyMagmOc(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UPDATE*, fnWriteOutput[], FILE*, int)
void fnForceBehaviorMagmOc(BODY*, MODULE*, EVOLVE*, IO*, SYSTEM*, UPDATE*, fnUpdateVariable ***fnUpdate, int, int)
double fdDPotTemp(BODY*, SYSTEM*, int*)
double fdDSurfTemp(BODY*, SYSTEM*, int*)
double fdDSolidRadius(BODY*, SYSTEM*, int*)
double fdDWaterMassSol(BODY*, SYSTEM*, int*)
double fdDWaterMassMOAtm(BODY*, SYSTEM*, int*)
double fdDCO2MassSol(BODY*, SYSTEM*, int*)
double fdDCO2MassMOAtm(BODY*, SYSTEM*, int*)
double fdDOxygenMassSol(BODY*, SYSTEM*, int*)
double fdDOxygenMassMOAtm(BODY*, SYSTEM*, int*)
double fdDHydrogenMassSpace(BODY*, SYSTEM*, int*)
double fdDOxygenMassSpace(BODY*, SYSTEM*, int*)