How to run

Running as part of the GFDL model

The code was rewritten for the Riga release, to allow multiple instances to be run simultaneously within the same model integration.

This code is found in /src/ocean_shared/generic_tracers/generic_BLING.F90

How to run at GFDL

Make sure the BLING code is included in your checked out source code. You need to have

ocean_shared/generic_tracers/generic_BLING.F90

and a version of

ocean_shared/generic_tracers/generic_tracer.F90

that includes the calls to generic_BLING.

This is currently prone to change, so check with Eric or Anand if confused.

Then, include in your xml:

<fieldTable file="/home/edg/perth/tables/generic_bling_sweby.field_table"/>

<dataTable file="/home/edg/perth/tables/data_table_gbling_histco2"/>

In fmsDataSets, include:

/archive/fms/mom4/mom4p0/mom4p0c/mom4_test8/preprocessing/fe_dep_ginoux_gregg_om3_bc.nc=Soluble_Fe_Flux_PI.nc

/archive/rds/IPCC/data/ocmip2_siple_co2_atm_am2_m30_bc-1-9999.nc=ocmip2_siple_co2_atm_am2_bc-1-9999.nc

/archive/edg/fms/om1p7/ocmip2_abiotic_c14_atm_hist_om1p7_bc-1-9999.nc=c14_atm_hist.nc

Add (or appropriately modify) the following two namelists:

<namelist name="generic_tracer_nml">

do_generic_tracer=.true.

do_generic_BLING=.true.

do_generic_CFC=.false.

do_generic_TOPAZ=.false.

</namelist>

<namelist name="generic_bling_nml">

do_14c=.false.

do_carbon=.false.

do_carbon_pre=.false.

do_po4_pre=.true.

bury_caco3=.false.

</namelist>

[The second one here switches on the additional functionalities, beyond the core model components PO4, DOP, FED and O2.]

If you want to run with interactive chlorophyll & shortwave, set read_chl=.false. here:

<namelist name="ocean_shortwave_gfdl_nml">

use_this_module=.true.

debug_this_module=.false.

read_chl=.false. ! set to true to override Chl with seawifs

zmax_pen=200.0

enforce_sw_frac=.true.

override_f_vis=.false.

sw_morel_fixed_depths=.true.

optics_morel_antoine=.false.

optics_manizza=.true.

</namelist>

The trickiest bit is the initial conditions. For now, there is only a 3-degree version. This one should be appropriate for now... Ask Eric if you need something else.

<initCond file="/archive/fms/mom4/mom4p1/quebec/bling/CM2Mc.WOA01_1y.gbling_ibgc.init.090501.cpio"/>

And finally, add these to your diag table.

You can include all of them, whether or not you're running all components - if the component isn't switched on, the diagnostics won't be registered, so they won't show up in the output.

#======================

# GENERIC OCEAN BLING DIAGNOSTICS

#======================

#

# Core model

"generic_bling","alpha", "alpha", "ocean_bling","all",.true.,"none",2

"generic_bling","b_fed", "b_fed", "ocean_bling","all",.true.,"none",2

"generic_bling","b_o2", "b_o2", "ocean_bling","all",.true.,"none",2

"generic_bling","b_po4", "b_po4", "ocean_bling","all",.true.,"none",2

"generic_bling","biomass_p", "biomass_p", "ocean_bling","all",.true.,"none",2

"generic_bling","chl", "chl", "ocean_bling","all",.true.,"none",2

"generic_bling","def_fe", "def_fe", "ocean_bling","all",.true.,"none",2

"generic_bling","expkT", "expkT", "ocean_bling","all",.true.,"none",2

"generic_bling","fe_2_p_uptake", "fe_2_p_uptake", "ocean_bling","all",.true.,"none",2

"generic_bling","fe_burial", "fe_burial", "ocean_bling","all",.true.,"none",2

"generic_bling","fed_stf", "fed_stf", "ocean_bling","all",.true.,"none",2

"generic_bling","fed_btf", "fed_btf", "ocean_bling","all",.true.,"none",2

"generic_bling","feprime", "feprime", "ocean_bling","all",.true.,"none",2

"generic_bling","ffe_sed", "ffe_sed", "ocean_bling","all",.true.,"none",2

"generic_bling","fpofe", "fpofe", "ocean_bling","all",.true.,"none",2

"generic_bling","fpop", "fpop", "ocean_bling","all",.true.,"none",2

"generic_bling","frac_lg", "frac_lg", "ocean_bling","all",.true.,"none",2

"generic_bling","frac_pop", "frac_pop", "ocean_bling","all",.true.,"none",2

"generic_bling","irr_inst", "irr_inst", "ocean_bling","all",.true.,"none",2

"generic_bling","irr_mem", "irr_mem", "ocean_bling","all",.true.,"none",2

"generic_bling","irr_mix", "irr_mix", "ocean_bling","all",.true.,"none",2

"generic_bling","irrk", "irrk", "ocean_bling","all",.true.,"none",2

"generic_bling","jdop", "jdop", "ocean_bling","all",.true.,"none",2

"generic_bling","jfe_ads_inorg", "jfe_ads_inorg", "ocean_bling","all",.true.,"none",2

"generic_bling","jfe_ads_org", "jfe_ads_org", "ocean_bling","all",.true.,"none",2

"generic_bling","jfe_coast", "jfe_coast", "ocean_bling","all",.true.,"none",2

"generic_bling","jfe_recycle", "jfe_recycle", "ocean_bling","all",.true.,"none",2

"generic_bling","jfe_reminp", "jfe_reminp", "ocean_bling","all",.true.,"none",2

"generic_bling","jfe_uptake", "jfe_uptake", "ocean_bling","all",.true.,"none",2

"generic_bling","jo2", "jo2", "ocean_bling","all",.true.,"none",2

"generic_bling","jp_recycle", "jp_recycle", "ocean_bling","all",.true.,"none",2

"generic_bling","jp_reminp", "jp_reminp", "ocean_bling","all",.true.,"none",2

"generic_bling","jp_uptake", "jp_uptake", "ocean_bling","all",.true.,"none",2

"generic_bling","jpo4", "jpo4", "ocean_bling","all",.true.,"none",2

"generic_bling","jpofe", "jpofe", "ocean_bling","all",.true.,"none",2

"generic_bling","jpop", "jpop", "ocean_bling","all",.true.,"none",2

"generic_bling","kfe_eq_lig", "kfe_eq_lig", "ocean_bling","all",.true.,"none",2

"generic_bling","mu", "mu", "ocean_bling","all",.true.,"none",2

"generic_bling","o2_btf", "o2_btf", "ocean_bling","all",.true.,"none",2

"generic_bling","o2_stf", "o2_stf", "ocean_bling","all",.true.,"none",2

"generic_bling","pc_m", "pc_m", "ocean_bling","all",.true.,"none",2

"generic_bling","pc_tot", "pc_tot", "ocean_bling","all",.true.,"none",2

"generic_bling","pco2_surf", "pco2_surf", "ocean_bling","all",.true.,"none",2

"generic_bling","po4_btf", "po4_btf", "ocean_bling","all",.true.,"none",2

"generic_bling","theta", "theta", "ocean_bling","all",.true.,"none",2

"generic_bling","thetamax_fe", "thetamax_fe", "ocean_bling","all",.true.,"none",2

"generic_bling","wsink", "wsink", "ocean_bling","all",.true.,"none",2

"generic_bling","zremin", "zremin", "ocean_bling","all",.true.,"none",2

"generic_bling","dop", "dop", "ocean_bling","all",.true.,"none",2

"generic_bling","fed", "fed", "ocean_bling","all",.true.,"none",2

"generic_bling","o2", "o2", "ocean_bling","all",.true.,"none",2

"generic_bling","po4", "po4", "ocean_bling","all",.true.,"none",2

# Preformed PO4

"generic_bling","po4_pre", "po4_pre", "ocean_bling","all",.true.,"none",2

# Carbon cycle

"generic_bling","alk_btf", "alk_btf", "ocean_bling","all",.true.,"none",2

"generic_bling","alk_triver", "alk_triver", "ocean_bling","all",.true.,"none",2

"generic_bling","b_alk", "b_alk", "ocean_bling","all",.true.,"none",2

"generic_bling","b_di14c", "b_di14c", "ocean_bling","all",.true.,"none",2

"generic_bling","b_dic", "b_dic", "ocean_bling","all",.true.,"none",2

"generic_bling","cased", "cased", "ocean_bling","all",.true.,"none",2

"generic_bling","co2_alpha", "co2_alpha", "ocean_bling","all",.true.,"none",2

"generic_bling","co2_csurf", "co2_csurf", "ocean_bling","all",.true.,"none",2

"generic_bling","co3_solubility", "co3_solubility", "ocean_bling","all",.true.,"none",2

"generic_bling","co3_ion", "co3_ion", "ocean_bling","all",.true.,"none",2

"generic_bling","dic_btf", "dic_btf", "ocean_bling","all",.true.,"none",2

"generic_bling","dic_stf", "dic_stf", "ocean_bling","all",.true.,"none",2

"generic_bling","fcaco3", "fcaco3", "ocean_bling","all",.true.,"none",2

"generic_bling","fcaco3_to_sed", "fcaco3_to_sed", "ocean_bling","all",.true.,"none",2

"generic_bling","fcased_burial", "fcased_burial", "ocean_bling","all",.true.,"none",2

"generic_bling","fcased_redis", "fcased_redis", "ocean_bling","all",.true.,"none",2

"generic_bling","htotal", "htotal", "ocean_bling","all",.true.,"none",2

"generic_bling","jca_reminp", "jca_reminp", "ocean_bling","all",.true.,"none",2

"generic_bling","jca_uptake", "jca_uptake", "ocean_bling","all",.true.,"none",2

"generic_bling","zremin_caco3", "zremin_caco3", "ocean_bling","all",.true.,"none",2

"generic_bling","runoff_alk", "runoff_alk", "ocean_bling","all",.true.,"none",2

"generic_bling","runoff_flux_alk", "runoff_flux_alk", "ocean_bling","all",.true.,"none",2

"generic_bling","alk", "alk", "ocean_bling","all",.true.,"none",2

"generic_bling","dic", "dic", "ocean_bling","all",.true.,"none",2

# Carbon components

"generic_bling","co2_sat_csurf", "co2_sat_csurf", "ocean_bling","all",.true.,"none",2

"generic_bling","dic_sat_stf", "dic_sat_stf", "ocean_bling","all",.true.,"none",2

"generic_bling","htotal_sat", "htotal_sat", "ocean_bling","all",.true.,"none",2

"generic_bling","pco2_sat_surf", "pco2_sat_surf", "ocean_bling","all",.true.,"none",2

"generic_bling","alk_pre", "alk_pre", "ocean_bling","all",.true.,"none",2

"generic_bling","dic_pre", "dic_pre", "ocean_bling","all",.true.,"none",2

"generic_bling","dic_sat", "dic_sat", "ocean_bling","all",.true.,"none",2

# Radiocarbon

"generic_bling","c14_2_p", "c14_2_p", "ocean_bling","all",.true.,"none",2

"generic_bling","c14o2_alpha", "c14o2_alpha", "ocean_bling","all",.true.,"none",2

"generic_bling","c14o2_csurf", "c14o2_csurf", "ocean_bling","all",.true.,"none",2

"generic_bling","di14c_btf", "di14c_btf", "ocean_bling","all",.true.,"none",2

"generic_bling","di14c_stf", "di14c_stf", "ocean_bling","all",.true.,"none",2

"generic_bling","fpo14c", "fpo14c", "ocean_bling","all",.true.,"none",2

"generic_bling","j14c_decay_dic", "j14c_decay_dic", "ocean_bling","all",.true.,"none",2

"generic_bling","j14c_decay_doc", "j14c_decay_doc", "ocean_bling","all",.true.,"none",2

"generic_bling","j14c_reminp", "j14c_reminp", "ocean_bling","all",.true.,"none",2

"generic_bling","jdi14c", "jdi14c", "ocean_bling","all",.true.,"none",2

"generic_bling","jdo14c", "jdo14c", "ocean_bling","all",.true.,"none",2

"generic_bling","di14c", "di14c", "ocean_bling","all",.true.,"none",2

"generic_bling","do14c", "do14c", "ocean_bling","all",.true.,"none",2

How to run with fewer tracers

BLING is designed to run with as few as four prognostic tracers - all the others can be removed by setting the corresponding 'do' switches in the BLING namelist to false (e.g. do_carbon). This will prevent the prognostic tracers being declared, and will eliminate all the associated diagnostic arrays - nothing else is required. However, if you want to avoid a bunch of warning messages in your stdout, you can delete the corresponding fields from your diag table as well.