marbl_tracers module reference

A tracer package for tracers computed in the MARBL library.

More…

Data Types

temp_marbl_diag

Temporary type for diagnostic variables coming from MARBL Allocate exactly one of field_[23]d.

tracer_ind_type

MOM6 needs to know the index of some MARBL tracers to properly apply river fluxes.

saved_state_for_marbl_type

MOM needs to store some information about saved_state; besides providing these fields to MARBL, they are also written to restart files.

marbl_tracer_data

Pointer to tracer concentration and to tracer_type in tracer registry.

marbl_tracers_cs

The control structure for the MARBL tracer package.

Functions/Subroutines

configure_marbl_tracers()

This subroutine is used to read marbl_in, configure MARBL accordingly, and then call MARBL's initialization routine.

register_marbl_tracers()

This subroutine is used to register tracer fields and subroutines to be used with MOM.

initialize_marbl_tracers()

This subroutine initializes the CSntr tracer fields in tr(:,:,:,:) and it sets up the tracer output.

register_marbl_diags()

This subroutine is used to register tracer fields and subroutines to be used with MOM.

setup_saved_state()

This subroutine allocates memory for saved state fields and registers them in the restart files.

marbl_tracers_column_physics()

This subroutine applies diapycnal diffusion and any other column tracer physics or chemistry to the tracers from this file.

marbl_tracers_set_forcing()

This subroutine reads time-varying forcing from files.

marbl_tracers_stock()

This function calculates the mass-weighted integral of all tracer stocks, returning the number of stocks it has calculated.

marbl_tracers_surface_state()

This subroutine extracts the surface fields from this tracer package that are to be shared with the atmosphere in coupled configurations.

marbl_tracers_get()

Copy the requested interior tendency output field into an array.

marbl_tracers_end()

Clean up any allocated memory after the run.

set_riv_flux_tracer_inds()

print_marbl_log()

This subroutine writes the contents of the MARBL log using MOM_error(NOTE, ...).

Detailed Description

Currently configured for use with marbl0.36.0 https://github.com/marbl-ecosys/MARBL/releases/tag/marbl0.36.0 (clone entire repo into pkg/MARBL)

Type Documentation

type  marbl_tracers/temp_marbl_diag

Temporary type for diagnostic variables coming from MARBL Allocate exactly one of field_[23]d.

Type fields:
  • % id :: integer, private index into MOM diagnostic structure

  • % field_2d :: real, dimension(:,:), allocatable, private memory for 2D field

  • % field_3d :: real, dimension(:,:,:), allocatable, private memory for 3D field

[source]

type  marbl_tracers/tracer_ind_type

MOM6 needs to know the index of some MARBL tracers to properly apply river fluxes.

Type fields:
  • % no3_ind :: integer, private NO3 index.

  • % po4_ind :: integer, private PO4 index.

  • % don_ind :: integer, private DON index.

  • % donr_ind :: integer, private DONr index.

  • % dop_ind :: integer, private DOP index.

  • % dopr_ind :: integer, private DOPr index.

  • % sio3_ind :: integer, private SiO3 index.

  • % fe_ind :: integer, private Fe index.

  • % doc_ind :: integer, private DOC index.

  • % docr_ind :: integer, private DOCr index.

  • % alk_ind :: integer, private ALK index.

  • % alk_alt_co2_ind :: integer, private ALK_ALT_CO2 index.

  • % dic_ind :: integer, private DIC index.

  • % dic_alt_co2_ind :: integer, private DIC_ALT_CO2 index.

  • % abio_dic_ind :: integer, private ABIO_DIC index.

  • % abio_di14c_ind :: integer, private ABIO_DI14C index.

[source]

type  marbl_tracers/saved_state_for_marbl_type

MOM needs to store some information about saved_state; besides providing these fields to MARBL, they are also written to restart files.

Type fields:
  • % short_name :: character(len=200), private name of variable being saved

  • % file_varname :: character(len=200), private name of variable in restart file

  • % units :: character(len=200), private variable units

  • % field_2d :: real, dimension(:,:), pointer, private memory for 2D field

  • % field_3d :: real, dimension(:,:,:), pointer, private memory for 3D field

[source]

type  marbl_tracers/marbl_tracer_data

Pointer to tracer concentration and to tracer_type in tracer registry.

Type fields:
  • % tr :: real, dimension(:,:,:), pointer, private Array of tracers used in this subroutine [CU ~> conc] (ALK tracers use meq m-3 instead of mmol m-3)

  • % tr_ptr :: type(tracer_type), pointer, private pointer to tracer inside Tr_reg

[source]

type  marbl_tracers/marbl_tracers_cs

The control structure for the MARBL tracer package.

Type fields:
  • % ntr :: integer The number of tracers that are actually used.

  • % debug :: logical If true, write verbose checksums for debugging purposes.

  • % base_bio_on :: logical Will MARBL use base biotic tracers?

  • % abio_dic_on :: logical Will MARBL use abiotic DIC / DI14C tracers?

  • % ciso_on :: logical Will MARBL use isotopic tracers?

  • % restore_count :: integer The number of tracers MARBL is configured to restore.

  • % coupled_tracers :: logical These tracers are not offered to the coupler.

  • % use_ice_category_fields :: logical Forcing will include multiple ice categories for ice_frac and shortwave.

  • % request_chl_from_marbl :: logical MARBL can provide Chl to use in

  • % ice_ncat :: integer Number of ice categories when use_ice_category_fields = True.

  • % ic_min :: real Minimum value for tracer initial conditions [CU ~> conc].

  • % ic_file :: character(len=200) The file in which the age-tracer initial values cam be found.

  • % ongrid :: logical True if IC_file is already interpolated to MOM grid.

  • % tr_reg :: type(tracer_registry_type), pointer A pointer to the tracer registry.

  • % tracer_data :: type(marbl_tracer_data), dimension(:), allocatable type containing tracer data and pointer into tracer registry

  • % ind_tr :: integer, dimension(:), allocatable Indices returned by aof_set_coupler_flux if it is used and the surface tracer concentrations are to be provided to the coupler.

  • % diag :: type(diag_ctrl), pointer A structure that is used to regulate the timing of diagnostic output.

  • % restart_csp :: type(mom_restart_cs), pointer A pointer to the restart control structure.

  • % tr_desc :: type(vardesc), dimension(:), allocatable Descriptions and metadata for the tracers.

  • % tracers_may_reinit :: logical If true the tracers may be initialized if not found in a restart file.

  • % fesedflux_file :: character(len=200) name of [netCDF] file containing iron sediment flux

  • % feventflux_file :: character(len=200) name of [netCDF] file containing iron vent flux

  • % d14c_dataset :: type(forcing_timeseries_dataset), dimension(3) File and time axis information for d14c forcing.

  • % d14c_bands :: real, dimension(3) forcing is organized into bands: [30 N, 90 N]; [30 S, 30 N]; [90 S, 30 S] This variable contains D14C for each band [CU ~> conc]

  • % d14c_id :: integer id for diagnostic field with d14c forcing

  • % read_riv_fluxes :: logical If true, use river fluxes supplied from an input file. This is temporary, we will always read river fluxes.

  • % riv_flux_dataset :: type(forcing_timeseries_dataset) File and time axis information for river fluxes.

  • % restoring_source :: character(len=4) location of tracer restoring data valid values: file, none

  • % restoring_nz :: integer number of levels in tracer restoring file

  • % restoring_z_edges :: real, dimension(:), allocatable The depths of the cell interfaces in the tracer restoring file [Z ~> m].

  • % restoring_dz :: real, dimension(:), allocatable The thickness of the cell layers in the tracer restoring file [H ~> m].

  • % restoring_timescale_nz :: integer number of levels in tracer restoring timescale file

  • % restoring_timescale_z_edges :: real, dimension(:), allocatable The depths of the cell interfaces in the tracer restoring timescale file [Z ~> m].

  • % restoring_timescale_dz :: real, dimension(:), allocatable The thickness of the cell layers in the tracer restoring timescale file [H ~> m].

  • % restoring_i_tau_source :: character(len=14) location of inverse restoring timescale data valid values: file, grid_dependent

  • % restoring_file :: character(len=200) name of [netCDF] file containing tracer restoring data

  • % restoring_remapcs :: type(remapping_cs) Remapping parameters and work arrays for tracer restoring / timescale.

  • % restoring_i_tau_file :: character(len=200) name of [netCDF] file containing inverse restoring timescale

  • % restoring_i_tau_var_name :: character(len=200) name of field containing inverse restoring timescale

  • % marbl_settings_file :: character(len=35) name of [text] file containing MARBL settings

  • % bot_flux_mix_thickness :: real for bottom flux -> tendency conversion, assume uniform mixing over bottom layer of prescribed thickness [Z ~> m]

  • % ibfmt :: real Reciprocal of bot_flux_mix_thickness [Z-1 ~> m-1].

  • % surface_flux_diags :: type(temp_marbl_diag), dimension(:), allocatable collect surface flux diagnostics from all columns before posting

  • % interior_tendency_diags :: type(temp_marbl_diag), dimension(:), allocatable collect tendency diagnostics from all columns before posting

  • % surface_flux_saved_state :: type(saved_state_for_marbl_type), dimension(:), allocatable surface_flux saved state

  • % interior_tendency_saved_state :: type(saved_state_for_marbl_type), dimension(:), allocatable interior_tendency saved state

  • % tracer_inds :: type(tracer_ind_type) Indices to tracers that will have river fluxes added to STF.

  • % id_surface_flux_out :: integer, dimension(:), allocatable Need to store global output from both marbl_instancesurface_flux_compute() and marbl_instanceinterior_tendency_compute(). For the former, just need id to register because we already copy data into CSSTF; latter requires copying data and indices so currently using temp_MARBL_diag for that.

  • % id_surface_flux_from_salt_flux :: integer, dimension(:), allocatable register_diag indices for surface_flux from salt_flux

  • % interior_tendency_out :: type(temp_marbl_diag), dimension(:), allocatable collect interior tendencies for diagnostic output

  • % interior_tendency_out_zint :: type(temp_marbl_diag), dimension(:), allocatable vertical integral of interior tendencies (full column)

  • % interior_tendency_out_zint_100m :: type(temp_marbl_diag), dimension(:), allocatable vertical integral of interior tendencies (top 100m)

  • % bot_flux_to_tend_id :: integer register_diag index for BOT_FLUX_TO_TEND

  • % fracr_cat_id :: integer, dimension(:), allocatable register_diag index for per-category ice fraction

  • % qsw_cat_id :: integer, dimension(:), allocatable register_diag index for per-category shortwave

  • % dic_salt_ratio :: real ratio to convert salt surface flux to DIC surface flux [conc ppt-1]

  • % alk_salt_ratio :: real ratio to convert salt surface flux to ALK surface flux [conc ppt-1]

  • % stf :: real, dimension(:,:,:), allocatable surface fluxes returned from MARBL to use in tracer_vertdiff (dims: i, j, tracer) [conc Z T-1 ~> conc m s-1]

  • % sfo :: real, dimension(:,:,:), pointer surface flux output returned from MARBL for use in GCM e.g. CO2 flux to pass to atmosphere (dims: i, j, num_sfo) Units vary based on index of num_sfo dimension

  • % ito :: real, dimension(:,:,:,:), pointer interior tendency output returned from MARBL for use in GCM e.g. total chlorophyll to use in shortwave penetration (dims: i, j, k, num_ito) Units vary based on index of num_ito dimension

  • % u10_sqr_ind :: integer index of MARBL forcing field array to copy 10-m wind (squared) into

  • % sss_ind :: integer index of MARBL forcing field array to copy sea surface salinity into

  • % sst_ind :: integer index of MARBL forcing field array to copy sea surface temperature into

  • % ifrac_ind :: integer index of MARBL forcing field array to copy ice fraction into

  • % dust_dep_ind :: integer index of MARBL forcing field array to copy dust flux into

  • % fe_dep_ind :: integer index of MARBL forcing field array to copy iron flux into

  • % nox_flux_ind :: integer index of MARBL forcing field array to copy NOx flux into

  • % nhy_flux_ind :: integer index of MARBL forcing field array to copy NHy flux into

  • % atmpress_ind :: integer index of MARBL forcing field array to copy atmospheric pressure into

  • % xco2_ind :: integer index of MARBL forcing field array to copy CO2 flux into

  • % xco2_alt_ind :: integer index of MARBL forcing field array to copy CO2 flux (alternate CO2) into

  • % d14c_ind :: integer index of MARBL forcing field array to copy d14C into

  • % id_din_riv :: type(external_field) external_field types for river fluxes (added to surface fluxes)

  • % id_don_riv :: type(external_field) id for time_interp_external.

  • % id_dip_riv :: type(external_field) id for time_interp_external.

  • % id_dop_riv :: type(external_field) id for time_interp_external.

  • % id_dsi_riv :: type(external_field) id for time_interp_external.

  • % id_dfe_riv :: type(external_field) id for time_interp_external.

  • % id_dic_riv :: type(external_field) id for time_interp_external.

  • % id_alk_riv :: type(external_field) id for time_interp_external.

  • % id_doc_riv :: type(external_field) id for time_interp_external.

  • % id_d14c :: type(external_field), dimension(3) external_field type for d14c (needed if abio_dic_on is True)

  • % no3_riv_flux :: integer Indices for river fluxes (diagnostics)

  • % po4_riv_flux :: integer PO4 riverine flux.

  • % don_riv_flux :: integer DON riverine flux.

  • % donr_riv_flux :: integer DONr riverine flux.

  • % dop_riv_flux :: integer DOP riverine flux.

  • % dopr_riv_flux :: integer DOPr riverine flux.

  • % sio3_riv_flux :: integer SiO3 riverine flux.

  • % fe_riv_flux :: integer Fe riverine flux.

  • % doc_riv_flux :: integer DOC riverine flux.

  • % docr_riv_flux :: integer DOCr riverine flux.

  • % alk_riv_flux :: integer ALK riverine flux.

  • % alk_alt_co2_riv_flux :: integer ALK (alternate CO2) riverine flux.

  • % dic_riv_flux :: integer DIC riverine flux.

  • % dic_alt_co2_riv_flux :: integer DIC (alternate CO2) riverine flux.

  • % dustflux_ind :: integer Indices for forcing fields required to compute interior tendencies.

  • % par_col_frac_ind :: integer index of MARBL forcing field array to copy PAR column fraction into

  • % surf_shortwave_ind :: integer index of MARBL forcing field array to copy surface shortwave into

  • % potemp_ind :: integer index of MARBL forcing field array to copy potential temperature into

  • % salinity_ind :: integer index of MARBL forcing field array to copy salinity into

  • % pressure_ind :: integer index of MARBL forcing field array to copy pressure into

  • % fesedflux_ind :: integer index of MARBL forcing field array to copy iron sediment flux into

  • % o2_scalef_ind :: integer index of MARBL forcing field array to copy O2 scale length into

  • % remin_scalef_ind :: integer index of MARBL forcing field array to copy remin scale length into

  • % id_tracer_restoring :: type(external_field), dimension(:), allocatable id number for time_interp_external

  • % tracer_restoring_ind :: integer, dimension(:), allocatable index of MARBL forcing field to copy per-tracer restoring field into

  • % tracer_i_tau_ind :: integer, dimension(:), allocatable index of MARBL forcing field to copy per-tracer inverse restoring timescale into

  • % d14c :: real, dimension(:,:), allocatable Memory for storing river fluxes, tracer restoring fields, and abiotic forcing.

  • % riv_fluxes :: real, dimension(:,:,:), allocatable river flux forcing for applyTracerBoundaryFluxesInOut (needs to be time-integrated when passed to function!) (dims: i, j, tracer) [conc m s-1]

  • % tracer_restoring_varname :: character(len=15), dimension(:), allocatable name of variable being restored

  • % i_tau :: real, dimension(:,:,:), allocatable inverse restoring timescale for marbl tracers (dims: i, j, k) [s-1]

  • % restoring_in :: real, dimension(:,:,:,:), allocatable Restoring fields read from file (dims: i, j, restoring_nz, restoring_cnt) [tracer units].

  • % sfo_cnt :: integer Number of surface flux outputs as well as specific indices for each one.

  • % ito_cnt :: integer number of interior tendency outputs from MARBL

  • % flux_co2_ind :: integer index to co2 flux surface flux output

  • % total_chl_ind :: integer index to total chlorophyll interior tendency output

  • % fesedflux_scale_factor :: real scale factor for iron sediment flux [mmol umol-1 d s-1]

  • % fesedflux_nz :: integer number of levels in iron sediment flux file

  • % fesedflux_in :: real, dimension(:,:,:), allocatable Field to read iron sediment flux into [conc m s-1].

  • % feventflux_in :: real, dimension(:,:,:), allocatable Field to read iron vent flux into [conc m s-1].

  • % fesedflux_z_edges :: real, dimension(:), allocatable The depths of the cell interfaces in the input data [Z ~> m].

  • % fesedflux_dz :: real, dimension(:,:,:), allocatable The thickness of the cell layers in the input data [H ~> m].

[source]

Function/Subroutine Documentation

subroutine marbl_tracers/configure_marbl_tracers(GV, US, param_file, CS)

This subroutine is used to read marbl_in, configure MARBL accordingly, and then call MARBL’s initialization routine.

Parameters:
  • gv :: [in] The ocean’s vertical grid structure

  • us :: [in] A dimensional unit scaling type

  • param_file :: param_file [in] A structure to parse for run-time parameters

  • cs :: A pointer that is set to point to the control structure for this module

Call to:

marbl_instances mom_error_handler::mom_error print_marbl_log

Called from:

register_marbl_tracers

[source]

function  marbl_tracers/register_marbl_tracers(HI, GV, US, param_file, CS, tr_Reg, restart_CS, MARBL_computes_chl)

This subroutine is used to register tracer fields and subroutines to be used with MOM.

Parameters:
  • hi :: [in] A horizontal index type structure.

  • gv :: [in] The ocean’s vertical grid structure

  • us :: [in] A dimensional unit scaling type

  • param_file :: param_file [in] A structure to parse for run-time parameters

  • cs :: A pointer that is set to point to the control structure for this module

  • tr_reg :: A pointer that is set to point to the control structure for the tracer advection and diffusion module.

  • restart_cs :: [inout] MOM restart control struct

  • marbl_computes_chl :: [out] If MARBL is computing chlorophyll, MOM may use it to compute SW penetration

Call to:

atmos_ocean_fluxes_mod::aof_set_coupler_flux configure_marbl_tracers mom_remapping::initialize_remapping marbl_instances mom_error_handler::mom_error mom_io::query_vardesc mom_tracer_z_init::read_z_edges mom_tracer_registry::register_tracer set_riv_flux_tracer_inds setup_saved_state mom_io::var_desc

[source]

subroutine marbl_tracers/initialize_marbl_tracers(restart, day, G, GV, US, h, param_file, diag, OBC, CS, sponge_CSp)

This subroutine initializes the CSntr tracer fields in tr(:,:,:,:) and it sets up the tracer output.

Parameters:
  • restart :: restart [in] .true. if the fields have already been read from a restart file.

  • day :: day [in] Time of the start of the run.

  • g :: [inout] The ocean’s grid structure

  • gv :: [in] The ocean’s vertical grid structure

  • us :: [in] A dimensional unit scaling type

  • h :: h [in] Layer thicknesses [H ~> m or kg m-2]

  • param_file :: param_file [in] A structure to parse for run-time parameters

  • diag :: diag [in] Structure used to regulate diagnostic output.

  • obc :: This open boundary condition type specifies whether, where, and what open boundary conditions are used.

  • cs :: The control structure returned by a previous call to register_MARBL_tracers.

  • sponge_csp :: A pointer to the control structure for the sponges, if they are in use.

Call to:

marbl_instances mom_error_handler::mom_error mom_tracer_initialization_from_z::mom_initialize_tracer_from_z mom_io::query_vardesc mom_tracer_z_init::read_z_edges mom_diag_mediator::register_diag_field register_marbl_diags

[source]

subroutine marbl_tracers/register_marbl_diags(MARBL_diags, diag, day, G, id_diags)

This subroutine is used to register tracer fields and subroutines to be used with MOM.

Parameters:
  • marbl_diags :: [in] MARBL diagnostics from MARBL_instances

  • day :: day [in] Time of the start of the run.

  • diag :: diag [in] Structure used to regulate diagnostic output.

  • g :: [in] The ocean’s grid structure

  • id_diags :: id_diags [inout] allocatable array storing diagnostic index number and buffer space for collecting diags from all columns

Call to:

mom_diag_mediator::register_diag_field

Called from:

initialize_marbl_tracers

[source]

subroutine marbl_tracers/setup_saved_state(MARBL_saved_state, HI, GV, restart_CS, tracers_may_reinit, local_saved_state)

This subroutine allocates memory for saved state fields and registers them in the restart files.

Parameters:
  • marbl_saved_state :: [in] MARBL saved state from MARBL_instances

  • hi :: [in] A horizontal index type structure.

  • gv :: [in] The ocean’s vertical grid structure

  • restart_cs :: [in] control structure to add saved state to restarts

  • tracers_may_reinit :: tracers_may_reinit [in] used to determine mandatory flag in restart

  • local_saved_state :: local_saved_state [inout] allocatable array for local saved state

Call to:

mom_error_handler::mom_error

Called from:

register_marbl_tracers

[source]

subroutine marbl_tracers/marbl_tracers_column_physics(h_old, h_new, ea, eb, fluxes, dt, G, GV, US, CS, tv, KPP_CSp, nonLocalTrans, evap_CFL_limit, minimum_forcing_depth)

This subroutine applies diapycnal diffusion and any other column tracer physics or chemistry to the tracers from this file.

Parameters:
  • g :: [in] The ocean’s grid structure

  • gv :: [in] The ocean’s vertical grid structure

  • h_old :: h_old [in] Layer thickness before entrainment [H ~> m or kg m-2].

  • h_new :: h_new [in] Layer thickness after entrainment [H ~> m or kg m-2].

  • ea :: ea [in] an array to which the amount of fluid entrained

  • eb :: eb [in] an array to which the amount of fluid entrained

  • fluxes :: fluxes [in] A structure containing pointers to thermodynamic and tracer forcing fields. Unused fields have NULL ptrs.

  • dt :: dt [in] The amount of time covered by this call [T ~> s]

  • us :: [in] A dimensional unit scaling type

  • cs :: The control structure returned by a previous call to register_MARBL_tracers.

  • tv :: tv [in] A structure pointing to various thermodynamic variables

  • kpp_csp :: KPP control structure

  • nonlocaltrans :: [in] Non-local transport [1]

  • evap_cfl_limit :: [in] Limit on the fraction of the water that can be fluxed out of the top layer in a timestep [1]

  • minimum_forcing_depth :: minimum_forcing_depth [in] The smallest depth over which fluxes can be applied [m]

Call to:

mom_tracer_diabatic::applytracerboundaryfluxesinout atm_per_pa mom_cvmix_kpp::kpp_nonlocaltransport marbl_instances mom_error_handler::mom_error print_marbl_log mom_remapping::remapping_core_h mom_tracer_diabatic::tracer_vertdiff

[source]

subroutine marbl_tracers/marbl_tracers_set_forcing(day_start, G, CS)

This subroutine reads time-varying forcing from files.

Parameters:
  • day_start :: day_start [in] Start time of the fluxes.

  • g :: [in] The ocean’s grid structure.

  • cs :: The control structure returned by a

Call to:

mom_interpolate::map_model_time_to_forcing_time

[source]

function  marbl_tracers/marbl_tracers_stock(h, stocks, G, GV, CS, names, units, stock_index)

This function calculates the mass-weighted integral of all tracer stocks, returning the number of stocks it has calculated. If the stock_index is present, only the stock corresponding to that coded index is returned.

Parameters:
  • h :: h [in] Layer thicknesses [H ~> m or kg m-2]

  • stocks :: stocks [out] the mass-weighted integrated amount of each tracer, in kg times concentration units [kg conc].

  • g :: [in] The ocean’s grid structure

  • gv :: [in] The ocean’s vertical grid structure

  • cs :: The control structure returned by a previous call to register_MARBL_tracers.

  • names :: names [out] the names of the stocks calculated.

  • units :: units [out] the units of the stocks calculated.

  • stock_index :: stock_index [in] the coded index of a specific stock being sought.

Return:

undefined :: Return value: the number of stocks calculated here.

Call to:

mom_spatial_means::global_mass_int_efp mom_io::query_vardesc

Called from:

mom_tracer_flow_control::call_tracer_stocks

[source]

subroutine marbl_tracers/marbl_tracers_surface_state(sfc_state, G, US, CS)

This subroutine extracts the surface fields from this tracer package that are to be shared with the atmosphere in coupled configurations.

Parameters:
  • g :: [in] The ocean’s grid structure.

  • sfc_state :: sfc_state [inout] A structure containing fields that describe the surface state of the ocean.

  • us :: [in] A dimensional unit scaling type

  • cs :: The control structure returned by a previous call to register_MARBL_tracers.

[source]

subroutine marbl_tracers/marbl_tracers_get(name, G, GV, array, CS)

Copy the requested interior tendency output field into an array.

Parameters:
  • name :: name [in] Name of requested tracer.

  • g :: [in] The ocean’s grid structure.

  • gv :: [in] The ocean’s vertical grid structure.

  • array :: array [inout] Array filled by this routine.

  • cs :: Pointer to the control structure for this module.

Call to:

mom_error_handler::mom_error

[source]

subroutine marbl_tracers/marbl_tracers_end(CS)

Clean up any allocated memory after the run.

Parameters:

cs :: [inout] The control structure returned by a previous call to register_MARBL_tracers.

Call to:

marbl_instances print_marbl_log

Called from:

mom_tracer_flow_control::tracer_flow_control_end

[source]

subroutine marbl_tracers/set_riv_flux_tracer_inds(CS)
Parameters:

cs :: [inout] The MARBL tracers control structure

Call to:

marbl_instances mom_error_handler::mom_error

Called from:

register_marbl_tracers

[source]

subroutine marbl_tracers/print_marbl_log(log_to_print, G, i, j)

This subroutine writes the contents of the MARBL log using MOM_error(NOTE, …).

Parameters:
  • log_to_print :: log_to_print [in] MARBL log to include in MOM6 logfile

  • g :: [in] The ocean’s grid structure

  • i :: i [in] i of (i,j) index of column providing the log

  • j :: j [in] j of (i,j) index of column providing the log

Call to:

mom_error_handler::mom_error

Called from:

configure_marbl_tracers marbl_tracers_column_physics marbl_tracers_end

[source]

[source]