MOM6
generic_tracer Module Reference

Detailed Description

A non-functioning template of the GFDL ocean BGC.

Functions/Subroutines

subroutine, public generic_tracer_register
 Unknown.
 
subroutine, public generic_tracer_init (isc, iec, jsc, jec, isd, ied, jsd, jed, nk, ntau, axes, grid_tmask, grid_kmt, init_time)
 Initialize generic tracers. More...
 
subroutine, public generic_tracer_register_diag
 Unknown.
 
subroutine, public generic_tracer_coupler_get (IOB_struc)
 Get coupler values. More...
 
subroutine, public generic_tracer_coupler_accumulate (IOB_struc, weight, model_time)
 Unknown. More...
 
subroutine, public generic_tracer_source (Temp, Salt, rho_dzt, dzt, hblt_depth, ilb, jlb, tau, dtts, grid_dat, model_time, nbands, max_wavelength_band, sw_pen_band, opacity_band, internal_heat, frunoff, grid_ht, current_wave_stress, sosga)
 Calls the corresponding generic_X_update_from_source routine for each package X. More...
 
subroutine, public generic_tracer_update_from_bottom (dt, tau, model_time)
 Update the tracers from bottom fluxes. More...
 
subroutine, public generic_tracer_vertdiff_g (h_old, ea, eb, dt, kg_m2_to_H, m_to_H, tau)
 Vertically diffuse all generic tracers for GOLD ocean. More...
 
subroutine, public generic_tracer_coupler_set (IOB_struc, ST, SS, rho, ilb, jlb, tau, dzt, sosga, model_time)
 Set the coupler values for each generic tracer. More...
 
subroutine, public generic_tracer_end
 End this module by calling the corresponding generic_X_end for each package X.
 
subroutine, public generic_tracer_get_list (list)
 Get a pointer to the head of the generic tracers list. More...
 
subroutine, public generic_tracer_get_diag_list (list)
 Unknown. More...
 

Variables

logical, public do_generic_tracer = .true.
 Turn on generic tracers (note dangerous use of module data)
 

Function/Subroutine Documentation

◆ generic_tracer_coupler_accumulate()

subroutine, public generic_tracer::generic_tracer_coupler_accumulate ( type(coupler_2d_bc_type), intent(in)  IOB_struc,
real, intent(in)  weight,
type(time_type), intent(in), optional  model_time 
)

Unknown.

Parameters
[in]iob_strucIce Ocean Boundary flux structure
[in]weightUnknown
[in]model_timeTime

Definition at line 63 of file generic_tracer.F90.

63  type(coupler_2d_bc_type), intent(in) :: IOB_struc !< Ice Ocean Boundary flux structure
64  real, intent(in) :: weight !< Unknown
65  type(time_type), optional,intent(in) :: model_time !< Time

◆ generic_tracer_coupler_get()

subroutine, public generic_tracer::generic_tracer_coupler_get ( type(coupler_2d_bc_type), intent(in)  IOB_struc)

Get coupler values.

Parameters
[in]iob_strucIce Ocean Boundary flux structure

Definition at line 58 of file generic_tracer.F90.

58  type(coupler_2d_bc_type), intent(in) :: IOB_struc !< Ice Ocean Boundary flux structure

◆ generic_tracer_coupler_set()

subroutine, public generic_tracer::generic_tracer_coupler_set ( type(coupler_2d_bc_type), intent(inout)  IOB_struc,
real, dimension(ilb:,jlb:), intent(in)  ST,
real, dimension(ilb:,jlb:), intent(in)  SS,
real, dimension(ilb:,jlb:,:,:), intent(in)  rho,
integer, intent(in)  ilb,
integer, intent(in)  jlb,
integer, intent(in)  tau,
real, dimension(ilb:,jlb:,:), intent(in), optional  dzt,
real, intent(in), optional  sosga,
type(time_type), intent(in), optional  model_time 
)

Set the coupler values for each generic tracer.

Parameters
[in,out]iob_strucIce Ocean Boundary flux structure
[in]ilbLower bounds of x extent of input arrays on data domain
[in]jlbLower bounds of y extent of input arrays on data domain
[in]tauTime step index of field
[in]stSea surface temperature [deg C]
[in]ssSea surface salinity [psu]
[in]rhoOcean density [kg m-3]
[in]dztLayer thickness [m]
[in]sosgaUnknown
[in]model_timeTime

Definition at line 114 of file generic_tracer.F90.

114  type(coupler_2d_bc_type), intent(inout) :: IOB_struc !< Ice Ocean Boundary flux structure
115  integer, intent(in) :: ilb !< Lower bounds of x extent of input arrays on data domain
116  integer, intent(in) :: jlb !< Lower bounds of y extent of input arrays on data domain
117  integer, intent(in) :: tau !< Time step index of %field
118  real, dimension(ilb:,jlb:), intent(in) :: ST !< Sea surface temperature [deg C]
119  real, dimension(ilb:,jlb:), intent(in) :: SS !< Sea surface salinity [psu]
120  real, dimension(ilb:,jlb:,:,:), intent(in) :: rho !< Ocean density [kg m-3]
121  real, dimension(ilb:,jlb:,:), optional, intent(in) :: dzt !< Layer thickness [m]
122  real, optional, intent(in) :: sosga !< Unknown
123  type(time_type),optional, intent(in) :: model_time !< Time

◆ generic_tracer_get_diag_list()

subroutine, public generic_tracer::generic_tracer_get_diag_list ( type(g_diag_type), pointer  list)

Unknown.

Parameters
listPointer to head of the linked list

Definition at line 137 of file generic_tracer.F90.

137  type(g_diag_type), pointer :: list !< Pointer to head of the linked list

◆ generic_tracer_get_list()

subroutine, public generic_tracer::generic_tracer_get_list ( type(g_tracer_type), pointer  list)

Get a pointer to the head of the generic tracers list.

Parameters
listPointer to head of the linked list

Definition at line 132 of file generic_tracer.F90.

132  type(g_tracer_type), pointer :: list !< Pointer to head of the linked list

◆ generic_tracer_init()

subroutine, public generic_tracer::generic_tracer_init ( integer, intent(in)  isc,
integer, intent(in)  iec,
integer, intent(in)  jsc,
integer, intent(in)  jec,
integer, intent(in)  isd,
integer, intent(in)  ied,
integer, intent(in)  jsd,
integer, intent(in)  jed,
integer, intent(in)  nk,
integer, intent(in)  ntau,
integer, dimension(3), intent(in)  axes,
real, dimension(:,:,:), intent(in), target  grid_tmask,
integer, dimension(:,:), intent(in)  grid_kmt,
type(time_type), intent(in)  init_time 
)

Initialize generic tracers.

Parameters
[in]iscComputation start index in i direction
[in]iecComputation end index in i direction
[in]jscComputation start index in j direction
[in]jecComputation end index in j direction
[in]isdData start index in i direction
[in]iedData end index in i direction
[in]jsdData start index in j direction
[in]jedData end index in j direction
[in]nkNumber of levels in k direction
[in]ntauUnknown
[in]axesDomain axes?
[in]init_timeTime
[in]grid_tmaskMask
[in]grid_kmtNumber of wet cells in column

Definition at line 36 of file generic_tracer.F90.

36  integer, intent(in) :: isc !< Computation start index in i direction
37  integer, intent(in) :: iec !< Computation end index in i direction
38  integer, intent(in) :: jsc !< Computation start index in j direction
39  integer, intent(in) :: jec !< Computation end index in j direction
40  integer, intent(in) :: isd !< Data start index in i direction
41  integer, intent(in) :: ied !< Data end index in i direction
42  integer, intent(in) :: jsd !< Data start index in j direction
43  integer, intent(in) :: jed !< Data end index in j direction
44  integer, intent(in) :: nk !< Number of levels in k direction
45  integer, intent(in) :: ntau !< Unknown
46  integer, intent(in) :: axes(3) !< Domain axes?
47  type(time_type), intent(in) :: init_time !< Time
48  real, dimension(:,:,:),target, intent(in) :: grid_tmask !< Mask
49  integer, dimension(:,:) , intent(in) :: grid_kmt !< Number of wet cells in column

◆ generic_tracer_source()

subroutine, public generic_tracer::generic_tracer_source ( real, dimension(ilb:,jlb:,:), intent(in)  Temp,
real, dimension(ilb:,jlb:,:), intent(in)  Salt,
real, dimension(ilb:,jlb:,:), intent(in)  rho_dzt,
real, dimension(ilb:,jlb:,:), intent(in)  dzt,
real, dimension(ilb:,jlb:), intent(in)  hblt_depth,
integer, intent(in)  ilb,
integer, intent(in)  jlb,
integer, intent(in)  tau,
real, intent(in)  dtts,
real, dimension(ilb:,jlb:), intent(in)  grid_dat,
type(time_type), intent(in)  model_time,
integer, intent(in)  nbands,
real, dimension(:), intent(in)  max_wavelength_band,
real, dimension(:,ilb:,jlb:), intent(in)  sw_pen_band,
real, dimension(:,ilb:,jlb:,:), intent(in)  opacity_band,
real, dimension(ilb:,jlb:), intent(in), optional  internal_heat,
real, dimension(ilb:,jlb:), intent(in), optional  frunoff,
real, dimension(ilb:,jlb:), intent(in), optional  grid_ht,
real, dimension(ilb:,jlb:), intent(in), optional  current_wave_stress,
real, intent(in), optional  sosga 
)

Calls the corresponding generic_X_update_from_source routine for each package X.

Parameters
[in]tempPotential temperature [deg C]
[in]saltSalinity [psu]
[in]rho_dztUnknown
[in]dztOcean layer thickness [m]
[in]hblt_depthBoundary layer depth
[in]ilbLower bounds of x extent of input arrays on data domain
[in]jlbLower bounds of y extent of input arrays on data domain
[in]tauTime step index of field
[in]dttsUnknown
[in]grid_datUnknown
[in]model_timeTime
[in]nbandsUnknown
[in]max_wavelength_bandUnknown
[in]sw_pen_bandShortwave penetration
[in]opacity_bandUnknown
[in]internal_heatUnknown
[in]frunoffUnknown
[in]grid_htUnknown
[in]current_wave_stressUnknown
[in]sosgaGlobal average sea surface salinity

Definition at line 72 of file generic_tracer.F90.

72  real, dimension(ilb:,jlb:,:), intent(in) :: Temp !< Potential temperature [deg C]
73  real, dimension(ilb:,jlb:,:), intent(in) :: Salt !< Salinity [psu]
74  real, dimension(ilb:,jlb:,:), intent(in) :: rho_dzt !< Unknown
75  real, dimension(ilb:,jlb:,:), intent(in) :: dzt !< Ocean layer thickness [m]
76  real, dimension(ilb:,jlb:), intent(in) :: hblt_depth !< Boundary layer depth
77  integer, intent(in) :: ilb !< Lower bounds of x extent of input arrays on data domain
78  integer, intent(in) :: jlb !< Lower bounds of y extent of input arrays on data domain
79  integer, intent(in) :: tau !< Time step index of %field
80  real, intent(in) :: dtts !< Unknown
81  real, dimension(ilb:,jlb:), intent(in) :: grid_dat !< Unknown
82  type(time_type), intent(in) :: model_time !< Time
83  integer, intent(in) :: nbands !< Unknown
84  real, dimension(:), intent(in) :: max_wavelength_band !< Unknown
85  real, dimension(:,ilb:,jlb:), intent(in) :: sw_pen_band !< Shortwave penetration
86  real, dimension(:,ilb:,jlb:,:), intent(in) :: opacity_band !< Unknown
87  real, dimension(ilb:,jlb:),optional, intent(in) :: internal_heat !< Unknown
88  real, dimension(ilb:,jlb:),optional, intent(in) :: frunoff !< Unknown
89  real, dimension(ilb:,jlb:),optional, intent(in) :: grid_ht !< Unknown
90  real, dimension(ilb:,jlb:),optional , intent(in) :: current_wave_stress !< Unknown
91  real, optional , intent(in) :: sosga !< Global average sea surface salinity

◆ generic_tracer_update_from_bottom()

subroutine, public generic_tracer::generic_tracer_update_from_bottom ( real, intent(in)  dt,
integer, intent(in)  tau,
type(time_type), intent(in)  model_time 
)

Update the tracers from bottom fluxes.

Parameters
[in]dtTime step increment
[in]tauTime step index used for the concentration field
[in]model_timeTime

Definition at line 96 of file generic_tracer.F90.

96  real, intent(in) :: dt !< Time step increment
97  integer, intent(in) :: tau !< Time step index used for the concentration field
98  type(time_type), intent(in) :: model_time !< Time

◆ generic_tracer_vertdiff_g()

subroutine, public generic_tracer::generic_tracer_vertdiff_g ( real, dimension(:,:,:), intent(in)  h_old,
real, dimension(:,:,:), intent(in)  ea,
real, dimension(:,:,:), intent(in)  eb,
real, intent(in)  dt,
real, intent(in)  kg_m2_to_H,
real, intent(in)  m_to_H,
integer, intent(in)  tau 
)

Vertically diffuse all generic tracers for GOLD ocean.

Parameters
[in]h_oldUnknown
[in]eaUnknown
[in]ebUnknown
[in]dtUnknown
[in]kg_m2_to_hUnknown
[in]m_to_hUnknown
[in]tauUnknown

Definition at line 103 of file generic_tracer.F90.

103  real, dimension(:,:,:), intent(in) :: h_old !< Unknown
104  real, dimension(:,:,:), intent(in) :: ea !< Unknown
105  real, dimension(:,:,:), intent(in) :: eb !< Unknown
106  real, intent(in) :: dt !< Unknown
107  real, intent(in) :: kg_m2_to_H !< Unknown
108  real, intent(in) :: m_to_H !< Unknown
109  integer, intent(in) :: tau !< Unknown