Warning, /doc/phys_pkgs/dic.rst is written in an unsupported language. File is not indexed.
view on githubraw file Latest commit c89c701c on 2022-05-05 20:48:02 UTC
1c8cebb321 Jeff*0001 .. _sub_pkg_dic:
0002
9ce7d74115 Jeff*0003 DIC Package
0004 -----------
0005
0006 Introduction
0007 ~~~~~~~~~~~~
0008
0009 This is one of the biogeochemical packages handled from the pkg gchem.
0010 The main purpose of this package is to consider the cycling of carbon in
0011 the ocean. It also looks at the cycling of phosphorous and potentially
0012 oxygen and iron. There are four standard tracers :math:`DIC`,
0013 :math:`ALK`, :math:`PO4`, :math:`DOP` and also possibly :math:`O2` and
0014 :math:`Fe`. The air-sea exchange of CO\ :math:`_2` and O\ :math:`_2` are
0015 handled as in the OCMIP experiments (reference). The export of
0016 biological matter is computed as a function of available light and
0017 PO\ :math:`_4` (and Fe). This export is remineralized at depth according
0018 to a Martin curve (again, this is the same as in the OCMIP experiments).
0019 There is also a representation of the carbonate flux handled as in the
0020 OCMIP experiments. The air-sea exchange on CO\ :math:`_2` is affected by
0021 temperature, salinity and the pH of the surface waters. The pH is
0022 determined following the method of Follows et al. For more details of
c89c701cfc Jean*0023 the equations see :numref:`sub_global_oce_biogeo`.
9ce7d74115 Jeff*0024
0025 Key subroutines and parameters
0026 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0027
0028 | **INITIALIZATION**
0029 | *DIC\_ABIOTIC.h* contains the common block for the parameters and
0030 fields needed to calculate the air-sea flux of :math:`CO_2` and
0031 :math:`O_2`. The fixed parameters are set in *dic\_abiotic\_param*
0032 which is called from *gchem\_init\_fixed.F*. The parameters needed for
0033 the biotic part of the calculations are initialized in
0034 *dic\_biotic\_param* and are stored in *DIC\_BIOTIC.h*. The first
0035 guess of pH is calculated in *dic\_surfforcing\_init.F*.
b02408d40c Bria*0036 |
9ce7d74115 Jeff*0037 | **LOADING FIELDS**
0038 | The air-sea exchange of :math:`CO_2` and :math:`O_2` need wind,
0039 atmospheric pressure (although the current version has this hardwired
0040 to 1), and sea-ice coverage. The calculation of pH needs silica
0041 fields. These fields are read in in *dic\_fields\_load.F*. These
0042 fields are initialized to zero in *dic\_ini\_forcing.F*. The fields
0043 for interpolating are in common block in *DIC\_LOAD.h*.
b02408d40c Bria*0044 |
9ce7d74115 Jeff*0045 | **FORCING**
0046 | The tracers are advected-diffused in *ptracers\_integrate.F*. The
0047 updated tracers are passed to *dic\_biotic\_forcing.F* where the
0048 effects of the air-sea exchange and biological activity and
0049 remineralization are calculated and the tracers are updated for a
0050 second time. Below we discuss the subroutines called from
0051 *dic\_biotic\_forcing.F*.
0052
0053 | Air-sea exchange of :math:`CO_2` is calculated in *dic\_surfforcing*.
0054 Air-Sea Exchange of :math:`CO_2` depends on T,S and pH. The
0055 determination of pH is done in *carbon\_chem.F*. There are three
0056 subroutines in this file: *carbon\_coeffs* which determines the
0057 coefficients for the carbon chemistry equations; *calc\_pco2* which
0058 calculates the pH using a Newton-Raphson method; and
0059 *calc\_pco2\_approx* which uses the much more efficient method of
0060 Follows et al. The latter is hard-wired into this package, the former is
0061 kept here for completeness.
0062
0063 | Biological productivity is determined following Dutkiewicz et al. (2005)
0064 and is calculated in *bio\_export.F* The light in each latitude band is
0065 calculate in *insol.F*, unless using one of the flags listed below. The
0066 formation of hard tissue (carbonate) is linked to the biological
0067 productivity and has an effect on the alkalinity - the flux of carbonate
0068 is calculated in *car\_flux.F*, unless using the flag listed below for
0069 the Friis et al (2006) scheme. The flux of phosphate to depth where it
0070 instantly remineralized is calculated in *phos\_flux.F*.
0071
0072 | The dilution or concentration of carbon and alkalinity by the addition
0073 or subtraction of freshwater is important to their surface patterns.
0074 These “virtual” fluxes can be calculated by the model in several ways.
0075 The older scheme is done following OCMIP protocols (see more in
0076 Dutkiewicz et al 2005), in the subroutines *dic\_surfforcing.F* and
0077 *alk\_surfforcing.F*. To use this you need to set in
b02408d40c Bria*0078 GCHEM\_OPTIONS.h: #define ALLOW\_OLD\_VIRTUALFLUX. But this can also
9ce7d74115 Jeff*0079 be done by the ptracers pkg if this is undefined.
0080 You will then need to set the concentration of the tracer in rainwater
0081 and potentially a reference tracer value in data.ptracer
0082 (PTRACERS_EvPrRn, and PTRACERS_ref respectively).
0083
0084 | Oxygen air-sea exchange is calculated in *o2\_surfforcing.F*.
0085
0086 | Iron chemistry (the amount of free iron) is taken care of in
0087 *fe\_chem.F*.
b02408d40c Bria*0088 |
9ce7d74115 Jeff*0089 | **DIAGNOSTICS**
0090 | Averages of air-sea exchanges, biological productivity, carbonate
0091 activity and pH are calculated. These are initialized to zero in
0092 *dic\_biotic\_init* and are stored in common block in *DIC\_BIOTIC.h*.
b02408d40c Bria*0093 |
9ce7d74115 Jeff*0094 | **COMPILE TIME FLAGS**
0095 | These are set in GCHEM\_OPTIONS.h:
0096 | DIC\_BIOTIC: needs to be set for dic to work properly (should be fixed
0097 sometime).
0098 | ALLOW\_O2: include the tracer oxygen.
0099 | ALLOW\_FE: include the tracer iron. Note you will need an iron dust
0100 file set in data.gchem in this case.
0101 | MINFE: limit the iron, assuming precpitation of any excess free iron.
0102 | CAR\_DISS: use the calcium carbonate scheme of Friis et al 2006.
0103 | ALLOW\_OLD\_VIRTUALFLUX: use the old OCMIP style virtual flux for
0104 alklinity adn carbon (rather than doing it through pkg/ptracers).
0105 | READ\_PAR: read the light (photosynthetically available radiation)
0106 from a file set in data.gchem.
0107 | USE\_QSW: use the numbers from QSW to be the PAR. Note that a file for
0108 Qsw must be supplied in data, or Qsw must be supplied by an
0109 atmospheric model.
0110 | If the above two flags are not set, the model calculates PAR in
0111 insol.F as a function of latitude and year day.
0112 | USE\_QSW\_UNDERICE: if using a sea ice model, or if the Qsw variable
0113 has the seaice fraction already taken into account, this flag must be
0114 set.
0115 | AD\_SAFE: will use a tanh function instead of a max function - this is
0116 better if using the adjoint
0117 | DIC\_NO\_NEG: will include some failsafes in case any of the variables
0118 become negative. (This is advicable). ALLOW\_DIC\_COST: was used for
0119 calculating cost function (but hasn’t been updated or maintained, so
0120 not sure if it works still)
b02408d40c Bria*0121 |
9ce7d74115 Jeff*0122
0123 Do’s and Don’ts
0124 ~~~~~~~~~~~~~~~
0125
0126 This package must be run with both ptracers and gchem enabled. It is set
0127 up for at least 4 tracers, but there is the provision for oxygen and
0128 iron. Note the flags above.
0129
0130 Reference Material
0131 ~~~~~~~~~~~~~~~~~~
0132
0133 | Dutkiewicz. S., A. Sokolov, J. Scott and P. Stone, 2005: A
0134 Three-Dimensional Ocean-Seaice-Carbon Cycle Model and its Coupling to
0135 a Two-Dimensional Atmospheric Model: Uses in Climate Change Studies,
0136 Report 122, Joint Program of the Science and Policy of Global Change,
0137 M.I.T., Cambridge, MA.
b02408d40c Bria*0138 | Follows, M., T. Ito and S. Dutkiewicz, 2006: On the solution of the carbonate
0139 chemistry system in ocean biogeochemistry models, *Ocean Modeling*, 12,
0140 290-301, doi:10.1016/j.ocemod.2005.05.004
9ce7d74115 Jeff*0141 | Friis, K., R. Najjar, M.J. Follows, and S. Dutkiewicz, 2006: Possible
0142 overestimation of shallow-depth calcium carbonate dissolution in the
0143 ocean, *Global Biogeochemical Cycles*, 20, GB4019,
0144 doi:10.1029/2006GB002727.
0145
0146 Experiments and tutorials that use dic
0147 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0148
0149 - Global Ocean tutorial, in tutorial\_global\_oce\_biogeo verification
c89c701cfc Jean*0150 directory, described in :numref:`sub_global_oce_biogeo`.