PUBLIC INTERFACE ~ PUBLIC ROUTINES ~ NAMELIST

Module generic_BLING

Contact:  Eric D. Galbraith John P. Dunne Anand Gnanandesikan Niki Zadeh
Reviewers:  Rick Slater
Change History: WebCVS Log


OVERVIEW

This module contains the generic version of BLING. It is designed so that both GFDL Ocean models, GOLD and MOM, can use it. WARNING: although the core components of the model (PO4, Fed, DOP, O2) have been quite well tested, the other components should be viewed as developmental at this point. There may still be some bugs, particularly in the CaCO3 burial scheme. EDG June 4, 2009

Biogeochemistry with Light, Iron, Nutrient and Gas (BLING) includes an implicit ecological model of growth limitation by light, temperature, phosphate and iron, along with dissolved organic phosphorus and O2 pools. Food web processing in the euphotic zone and remineralization/ dissolution through the ocean interior are handled as in Dunne et al. (2005). O2 equilibria and gas exchange follow OCMIP2 protocols. Additional functionality comes from an optional carbon cycle that is non-interactive, i.e. does not change the core BLING behaviour, as well as tracers for radiocarbon (14c), a decomposition of carbon components by gas exchange and remineralization (carbon_pre), and a decomposition of phosphate as preformed and remineralized (po4_pre).


OTHER MODULES USED

     coupler_types_mod
field_manager_mod
mpp_mod
fms_mod
time_manager_mod
fm_util_mod
diag_manager_mod
constants_mod
g_tracer_utils
FMS_ocmip2_co2calc_mod

PUBLIC INTERFACE

generic_BLING_init:
Initialize the generic BLING module
generic_BLING_update_from_coupler:
Modify the values obtained from the coupler if necessary.
generic_BLING_update_from_bottom:
Set values of bottom fluxes and reservoirs
generic_BLING_update_from_source:
Update tracer concentration fields due to the source/sink contributions.
generic_BLING_set_boundary_values:
Calculate and set coupler values at the surface / bottom
generic_BLING_end:
End the module.


PUBLIC ROUTINES

  1. generic_BLING_init

    call generic_BLING_init (tracer_list)
    DESCRIPTION
    This subroutine: Adds all the BLING Tracers to the list of generic Tracers passed to it via utility subroutine g_tracer_add(). Adds all the parameters used by this module via utility subroutine g_tracer_add_param(). Allocates all work arrays used in the module.


    INPUT
    tracer_list    Pointer to the head of generic tracer list.
       [type(g_tracer_type), pointer]

  2. generic_BLING_update_from_coupler

    call generic_BLING_update_from_coupler (tracer_list)
    DESCRIPTION
    Some tracer fields could be modified after values are obtained from the coupler. This subroutine is the place for specific tracer manipulations. BLING currently does not use this.


    INPUT
    tracer_list    Pointer to the head of generic tracer list.
       [type(g_tracer_type), pointer]

  3. generic_BLING_update_from_bottom

    call generic_BLING_update_from_bottom (tracer_list,dt, tau)
    DESCRIPTION
    Some tracers could have bottom fluxes and reservoirs. This subroutine is the place for specific tracer manipulations. BLING currently does not use this.


    INPUT
    tracer_list    Pointer to the head of generic tracer list.
       [type(g_tracer_type), pointer]
    dt    Time step increment
       [real]
    tau    Time step index to be used for %field
       [integer]

  4. generic_BLING_update_from_source

    call generic_BLING_update_from_source (tracer_list,Temp,Salt,dzt,hblt_depth,& ilb,jlb,tau,dt, grid_dat,sw_pen,opacity)
    DESCRIPTION
    This is the subroutine to contain most of the biogeochemistry for calculating the interaction of tracers with each other and with outside forcings.


    INPUT
    tracer_list    Pointer to the head of generic tracer list.
       [type(g_tracer_type), pointer]
    ilb,jlb    Lower bounds of x and y extents of input arrays on data domain
       [integer]
    Temp    Ocean temperature
       [real, dimension(ilb:,jlb:,:)]
    Salt    Ocean salinity
       [real, dimension(ilb:,jlb:,:)]
    dzt    Ocean layer thickness (meters)
       [real, dimension(ilb:,jlb:,:)]
    opacity    Ocean opacity
       [real, dimension(ilb:,jlb:,:)]
    sw_pen    Shortwave peneteration
       [real, dimension(ilb:,jlb:)]
    hblt_depth   
       [real, dimension(ilb:,jlb:)]
    grid_dat    Grid area
       [real, dimension(ilb:,jlb:)]
    tau    Time step index of %field
       [integer]
    dt    Time step increment
       [real]

  5. generic_BLING_set_boundary_values

    call generic_BLING_set_boundary_values (tracer_list,SST,SSS,rho,ilb,jlb,tau)
    DESCRIPTION


    INPUT
    tracer_list    Pointer to the head of generic tracer list.
       [type(g_tracer_type), pointer]
    ilb,jlb    Lower bounds of x and y extents of input arrays on data domain
       [integer]
    SST    Sea Surface Temperature
       [real, dimension(ilb:,jlb:)]
    SSS    Sea Surface Salinity
       [real, dimension(ilb:,jlb:)]
    rho    Ocean density
       [real, dimension(ilb:,jlb:,:,:)]
    tau    Time step index of %field
       [integer]

  6. generic_BLING_end

    call generic_BLING_end 
    
    DESCRIPTION
    Deallocate all work arrays



NAMELIST

&generic_bling_nml

do_14c
If true, then simulate radiocarbon. Includes 2 prognostic tracers, DI14C and DO14C. Requires that do_carbon = .true. Note that 14C is not taken up by CaCO3 at the current time, but cycles only through the soft tissue. This is a mistake that will be fixed later.
[logical]
do_carbon
If true, then simulate the carbon cycle based on strict stoichiometry of C:P. Includes 1 prognostic tracer, DIC.
[logical]
do_carbon_pre
If true, then simulate the carbon cycle based on strict stoichiometry of C:P. Includes 3 prognostic tracers, DIC, ALK and ALK_pre. Requires that do_carbon = .true.
[logical]
do_po4_pre
If true, then simulate preformed PO4, a useful theoretical construct equal to PO4 in the surface layer and subject only to passive transport everywhere else. 1 prognostic tracer, PO4_pre.
[logical]
bury_caco3
If true, then allow CaCO3 to be buried in sediments as a function of sinking CaCO3 flux and bottom water saturation state, and allow a river input of alkalinity to compensate. Caution: this will cause the alkalinity to have a long term drift, which will produce a long term drift in the carbon cycle. Should be considered highly experimental at this point. Requires that do_carbon=.true.
[logical]
use_bling_chl
If true, names the BLING diagnostic chlorophyll field 'chl'. Thus, if read_chl=.false. in the shortwave namelist, BLING chlorophyll will be used to calculate sw absorption. Set this to false in order to have the chlorophyll field named chl_b, preventing conflict with the TOPAZ chlorophyll field, so that the two modules can run simultaneously.
[logical]


REFERENCES

  1. This model is available for public use. The current version is BLING.0. The version number refers to the core model behaviour; additional tracers exist in different iterations of the module. In publications it should be referenced as: Galbraith, E.D., Gnanadesikan, A., Dunne, J. and Hiscock, M. 2009. Regional impacts of iron-light colimitation in a global biogeochemical model. Biogeosciences Discussions, 6, 1-47. All parameter values are as described in this paper. Note that this reference is only for the core model components, and does not include any of the additional functionalities, which remain undocumented. Please contact Eric Galbraith (eric.galbraith@mcgill.ca) for more information.


top