Objective
Here are some notes about how to add a new species that will affect Hector’s radiative forcing budget in order to answer the question “how much impact does this newly discovered forcer X have.”
Here are some notes as to how to do this:
- Option 1: add the estimated radiative forcing values to the miscellaneous radiative forcing variable
- Option 2: add a new component to Hector and pass the appropriate information to Hector’s forcing components
Option 1
Use Hector’s miscellaneous radiative forcing variable to read additional radiative forcing values.
This approach requires little to no coding experience but does
require that the users have radiative forcing values readily available.
Users can read in the new radiative forcing values via the ini file with
the Fmisc
variable. Fmisc
is a column in the
Hector csv input tables named something like
ssp434_emiss-constraints_rf.csv
. Depending on the user
configuration, Fmisc
may have numeric values or will be
equal to all zeros. If Fmisc
is non-zero, then the user
should add the new values to the existing values. Alternatively, using
the Hector R package, users can read in miscellaneous forcing to a
Hector core with RF_MISC()
and the setvar()
function.
Option 2
Add the new forcer to Hector; this will require changes to the C++ code base.
- Create a new Hector component:
use an existing model component or the
dummy_model_component.hpp
anddummy_model_component.cpp
files as a template. - Within the new component, add new
variables as appropriate. Use this component to read in the
emissions. If the forcer being added is a GHG, use the appropriate
method to convert from emissions to concentrations and expose the
concentrations (via
getData
) so that they may be passed to other Hector components. The new model component cpp file will return the new emissions or concentrations (whichever one is appropriate). - Next, modify the
forcing_compoent.cpp
. Add the equation that converts the emissions or concentration time series to radiative forcing values. The new values should be added into the forcing map (“forcings”, see where the N2O RF is set for an example) so that these new values will be incorporated into the total radiative forcing calculation. - Lastly, make sure to update the
rcpp_constants.cpp
so that the new variables can be accessed via the R interface (see new variables).