MOM6
mom_neutral_diffusion::neutral_diffusion_cs Type Reference

Detailed Description

The control structure for the MOM_neutral_diffusion module.

Definition at line 40 of file MOM_neutral_diffusion.F90.

Collaboration diagram for mom_neutral_diffusion::neutral_diffusion_cs:
[legend]

Public variables and constants

integer nkp1
 Number of interfaces for a column = nk + 1. More...
 
integer nsurf
 Number of neutral surfaces. More...
 
integer deg = 2
 Degree of polynomial used for reconstructions. More...
 
logical continuous_reconstruction = .true.
 True if using continuous PPM reconstruction at interfaces. More...
 
logical debug = .false.
 If true, write verbose debugging messages. More...
 
logical hard_fail_heff
 Bring down the model if a problem with heff is detected. More...
 
integer max_iter
 Maximum number of iterations if refine_position is defined. More...
 
real drho_tol
 Convergence criterion representing difference from true neutrality. More...
 
real x_tol
 Convergence criterion for how small an update of the position can be. More...
 
real ref_pres
 Reference pressure, negative if using locally referenced neutral density. More...
 
logical interior_only
 If true, only applies neutral diffusion in the ocean interior. That is, the algorithm will exclude the surface and bottom boundary layers. More...
 
real, dimension(:,:,:), allocatable upol
 Non-dimensional position with left layer uKoL-1, u-point. More...
 
real, dimension(:,:,:), allocatable upor
 Non-dimensional position with right layer uKoR-1, u-point. More...
 
integer, dimension(:,:,:), allocatable ukol
 Index of left interface corresponding to neutral surface, at a u-point. More...
 
integer, dimension(:,:,:), allocatable ukor
 Index of right interface corresponding to neutral surface, at a u-point. More...
 
real, dimension(:,:,:), allocatable uheff
 Effective thickness at u-point [H ~> m or kg m-2]. More...
 
real, dimension(:,:,:), allocatable vpol
 Non-dimensional position with left layer uKoL-1, v-point. More...
 
real, dimension(:,:,:), allocatable vpor
 Non-dimensional position with right layer uKoR-1, v-point. More...
 
integer, dimension(:,:,:), allocatable vkol
 Index of left interface corresponding to neutral surface, at a v-point. More...
 
integer, dimension(:,:,:), allocatable vkor
 Index of right interface corresponding to neutral surface, at a v-point. More...
 
real, dimension(:,:,:), allocatable vheff
 Effective thickness at v-point [H ~> m or kg m-2]. More...
 
real, dimension(:,:,:,:), allocatable ppoly_coeffs_t
 Polynomial coefficients for temperature. More...
 
real, dimension(:,:,:,:), allocatable ppoly_coeffs_s
 Polynomial coefficients for salinity. More...
 
real, dimension(:,:,:), allocatable drdt
 dRho/dT [kg m-3 degC-1] at interfaces More...
 
real, dimension(:,:,:), allocatable drds
 dRho/dS [kg m-3 ppt-1] at interfaces More...
 
real, dimension(:,:,:), allocatable tint
 Interface T [degC]. More...
 
real, dimension(:,:,:), allocatable sint
 Interface S [ppt]. More...
 
real, dimension(:,:,:), allocatable pint
 Interface pressure [Pa]. More...
 
real, dimension(:,:,:,:), allocatable t_i
 Top edge reconstruction of temperature (degC) More...
 
real, dimension(:,:,:,:), allocatable s_i
 Top edge reconstruction of salinity (ppt) More...
 
real, dimension(:,:,:,:), allocatable p_i
 Interface pressure (Pa) More...
 
real, dimension(:,:,:,:), allocatable drdt_i
 dRho/dT (kg/m3/degC) at top edge More...
 
real, dimension(:,:,:,:), allocatable drds_i
 dRho/dS (kg/m3/ppt) at top edge More...
 
integer, dimension(:,:), allocatable ns
 Number of interfacs in a column. More...
 
logical, dimension(:,:,:), allocatable stable_cell
 True if the cell is stably stratified wrt to the next cell. More...
 
type(diag_ctrl), pointer diag => NULL()
 A structure that is used to regulate the timing of diagnostic output. More...
 
integer neutral_pos_method
 Method to find the position of a neutral surface within the layer. More...
 
character(len=40) delta_rho_form
 Determine which (if any) approximation is made to the equation describing the difference in density. More...
 
integer id_uheff_2d = -1
 Diagnostic IDs. More...
 
integer id_vheff_2d = -1
 Diagnostic IDs. More...
 
real c_p
 heat capacity of seawater (J kg-1 K-1) More...
 
type(eos_type), pointer eos
 Equation of state parameters. More...
 
type(remapping_cs) remap_cs
 Remapping control structure used to create sublayers. More...
 
type(kpp_cs), pointer kpp_csp => NULL()
 KPP control structure needed to get BLD. More...
 
type(energetic_pbl_cs), pointer energetic_pbl_csp => NULL()
 ePBL control structure needed to get MLD More...
 

Variables and constants

◆ c_p

real mom_neutral_diffusion::neutral_diffusion_cs::c_p

heat capacity of seawater (J kg-1 K-1)

Definition at line 94 of file MOM_neutral_diffusion.F90.

94  real :: C_p !< heat capacity of seawater (J kg-1 K-1)

◆ continuous_reconstruction

logical mom_neutral_diffusion::neutral_diffusion_cs::continuous_reconstruction = .true.

True if using continuous PPM reconstruction at interfaces.

Definition at line 44 of file MOM_neutral_diffusion.F90.

44  logical :: continuous_reconstruction = .true. !< True if using continuous PPM reconstruction at interfaces

◆ debug

logical mom_neutral_diffusion::neutral_diffusion_cs::debug = .false.

If true, write verbose debugging messages.

Definition at line 45 of file MOM_neutral_diffusion.F90.

45  logical :: debug = .false. !< If true, write verbose debugging messages

◆ deg

integer mom_neutral_diffusion::neutral_diffusion_cs::deg = 2

Degree of polynomial used for reconstructions.

Definition at line 43 of file MOM_neutral_diffusion.F90.

43  integer :: deg = 2 !< Degree of polynomial used for reconstructions

◆ delta_rho_form

character(len=40) mom_neutral_diffusion::neutral_diffusion_cs::delta_rho_form

Determine which (if any) approximation is made to the equation describing the difference in density.

Definition at line 88 of file MOM_neutral_diffusion.F90.

88  character(len=40) :: delta_rho_form !< Determine which (if any) approximation is made to the

◆ diag

type(diag_ctrl), pointer mom_neutral_diffusion::neutral_diffusion_cs::diag => NULL()

A structure that is used to regulate the timing of diagnostic output.

Definition at line 85 of file MOM_neutral_diffusion.F90.

85  type(diag_ctrl), pointer :: diag => null() !< A structure that is used to

◆ drds

real, dimension(:,:,:), allocatable mom_neutral_diffusion::neutral_diffusion_cs::drds

dRho/dS [kg m-3 ppt-1] at interfaces

Definition at line 73 of file MOM_neutral_diffusion.F90.

73  real, allocatable, dimension(:,:,:) :: dRdS !< dRho/dS [kg m-3 ppt-1] at interfaces

◆ drds_i

real, dimension(:,:,:,:), allocatable mom_neutral_diffusion::neutral_diffusion_cs::drds_i

dRho/dS (kg/m3/ppt) at top edge

Definition at line 82 of file MOM_neutral_diffusion.F90.

82  real, allocatable, dimension(:,:,:,:) :: dRdS_i !< dRho/dS (kg/m3/ppt) at top edge

◆ drdt

real, dimension(:,:,:), allocatable mom_neutral_diffusion::neutral_diffusion_cs::drdt

dRho/dT [kg m-3 degC-1] at interfaces

Definition at line 72 of file MOM_neutral_diffusion.F90.

72  real, allocatable, dimension(:,:,:) :: dRdT !< dRho/dT [kg m-3 degC-1] at interfaces

◆ drdt_i

real, dimension(:,:,:,:), allocatable mom_neutral_diffusion::neutral_diffusion_cs::drdt_i

dRho/dT (kg/m3/degC) at top edge

Definition at line 81 of file MOM_neutral_diffusion.F90.

81  real, allocatable, dimension(:,:,:,:) :: dRdT_i !< dRho/dT (kg/m3/degC) at top edge

◆ drho_tol

real mom_neutral_diffusion::neutral_diffusion_cs::drho_tol

Convergence criterion representing difference from true neutrality.

Definition at line 48 of file MOM_neutral_diffusion.F90.

48  real :: drho_tol !< Convergence criterion representing difference from true neutrality

◆ energetic_pbl_csp

type(energetic_pbl_cs), pointer mom_neutral_diffusion::neutral_diffusion_cs::energetic_pbl_csp => NULL()

ePBL control structure needed to get MLD

Definition at line 98 of file MOM_neutral_diffusion.F90.

98  type(energetic_PBL_CS), pointer :: energetic_PBL_CSp => null() !< ePBL control structure needed to get MLD

◆ eos

type(eos_type), pointer mom_neutral_diffusion::neutral_diffusion_cs::eos

Equation of state parameters.

Definition at line 95 of file MOM_neutral_diffusion.F90.

95  type(EOS_type), pointer :: EOS !< Equation of state parameters

◆ hard_fail_heff

logical mom_neutral_diffusion::neutral_diffusion_cs::hard_fail_heff

Bring down the model if a problem with heff is detected.

Definition at line 46 of file MOM_neutral_diffusion.F90.

46  logical :: hard_fail_heff !< Bring down the model if a problem with heff is detected

◆ id_uheff_2d

integer mom_neutral_diffusion::neutral_diffusion_cs::id_uheff_2d = -1

Diagnostic IDs.

Definition at line 91 of file MOM_neutral_diffusion.F90.

91  integer :: id_uhEff_2d = -1 !< Diagnostic IDs

◆ id_vheff_2d

integer mom_neutral_diffusion::neutral_diffusion_cs::id_vheff_2d = -1

Diagnostic IDs.

Definition at line 92 of file MOM_neutral_diffusion.F90.

92  integer :: id_vhEff_2d = -1 !< Diagnostic IDs

◆ interior_only

logical mom_neutral_diffusion::neutral_diffusion_cs::interior_only

If true, only applies neutral diffusion in the ocean interior. That is, the algorithm will exclude the surface and bottom boundary layers.

Definition at line 51 of file MOM_neutral_diffusion.F90.

51  logical :: interior_only !< If true, only applies neutral diffusion in the ocean interior.

◆ kpp_csp

type(kpp_cs), pointer mom_neutral_diffusion::neutral_diffusion_cs::kpp_csp => NULL()

KPP control structure needed to get BLD.

Definition at line 97 of file MOM_neutral_diffusion.F90.

97  type(KPP_CS), pointer :: KPP_CSp => null() !< KPP control structure needed to get BLD

◆ max_iter

integer mom_neutral_diffusion::neutral_diffusion_cs::max_iter

Maximum number of iterations if refine_position is defined.

Definition at line 47 of file MOM_neutral_diffusion.F90.

47  integer :: max_iter !< Maximum number of iterations if refine_position is defined

◆ neutral_pos_method

integer mom_neutral_diffusion::neutral_diffusion_cs::neutral_pos_method

Method to find the position of a neutral surface within the layer.

Definition at line 87 of file MOM_neutral_diffusion.F90.

87  integer :: neutral_pos_method !< Method to find the position of a neutral surface within the layer

◆ nkp1

integer mom_neutral_diffusion::neutral_diffusion_cs::nkp1

Number of interfaces for a column = nk + 1.

Definition at line 41 of file MOM_neutral_diffusion.F90.

41  integer :: nkp1 !< Number of interfaces for a column = nk + 1

◆ ns

integer, dimension(:,:), allocatable mom_neutral_diffusion::neutral_diffusion_cs::ns

Number of interfacs in a column.

Definition at line 83 of file MOM_neutral_diffusion.F90.

83  integer, allocatable, dimension(:,:) :: ns !< Number of interfacs in a column

◆ nsurf

integer mom_neutral_diffusion::neutral_diffusion_cs::nsurf

Number of neutral surfaces.

Definition at line 42 of file MOM_neutral_diffusion.F90.

42  integer :: nsurf !< Number of neutral surfaces

◆ p_i

real, dimension(:,:,:,:), allocatable mom_neutral_diffusion::neutral_diffusion_cs::p_i

Interface pressure (Pa)

Definition at line 80 of file MOM_neutral_diffusion.F90.

80  real, allocatable, dimension(:,:,:,:) :: P_i !< Interface pressure (Pa)

◆ pint

real, dimension(:,:,:), allocatable mom_neutral_diffusion::neutral_diffusion_cs::pint

Interface pressure [Pa].

Definition at line 76 of file MOM_neutral_diffusion.F90.

76  real, allocatable, dimension(:,:,:) :: Pint !< Interface pressure [Pa]

◆ ppoly_coeffs_s

real, dimension(:,:,:,:), allocatable mom_neutral_diffusion::neutral_diffusion_cs::ppoly_coeffs_s

Polynomial coefficients for salinity.

Definition at line 70 of file MOM_neutral_diffusion.F90.

70  real, allocatable, dimension(:,:,:,:) :: ppoly_coeffs_S !< Polynomial coefficients for salinity

◆ ppoly_coeffs_t

real, dimension(:,:,:,:), allocatable mom_neutral_diffusion::neutral_diffusion_cs::ppoly_coeffs_t

Polynomial coefficients for temperature.

Definition at line 69 of file MOM_neutral_diffusion.F90.

69  real, allocatable, dimension(:,:,:,:) :: ppoly_coeffs_T !< Polynomial coefficients for temperature

◆ ref_pres

real mom_neutral_diffusion::neutral_diffusion_cs::ref_pres

Reference pressure, negative if using locally referenced neutral density.

Definition at line 50 of file MOM_neutral_diffusion.F90.

50  real :: ref_pres !< Reference pressure, negative if using locally referenced neutral density

◆ remap_cs

type(remapping_cs) mom_neutral_diffusion::neutral_diffusion_cs::remap_cs

Remapping control structure used to create sublayers.

Definition at line 96 of file MOM_neutral_diffusion.F90.

96  type(remapping_CS) :: remap_CS !< Remapping control structure used to create sublayers

◆ s_i

real, dimension(:,:,:,:), allocatable mom_neutral_diffusion::neutral_diffusion_cs::s_i

Top edge reconstruction of salinity (ppt)

Definition at line 79 of file MOM_neutral_diffusion.F90.

79  real, allocatable, dimension(:,:,:,:) :: S_i !< Top edge reconstruction of salinity (ppt)

◆ sint

real, dimension(:,:,:), allocatable mom_neutral_diffusion::neutral_diffusion_cs::sint

Interface S [ppt].

Definition at line 75 of file MOM_neutral_diffusion.F90.

75  real, allocatable, dimension(:,:,:) :: Sint !< Interface S [ppt]

◆ stable_cell

logical, dimension(:,:,:), allocatable mom_neutral_diffusion::neutral_diffusion_cs::stable_cell

True if the cell is stably stratified wrt to the next cell.

Definition at line 84 of file MOM_neutral_diffusion.F90.

84  logical, allocatable, dimension(:,:,:) :: stable_cell !< True if the cell is stably stratified wrt to the next cell

◆ t_i

real, dimension(:,:,:,:), allocatable mom_neutral_diffusion::neutral_diffusion_cs::t_i

Top edge reconstruction of temperature (degC)

Definition at line 78 of file MOM_neutral_diffusion.F90.

78  real, allocatable, dimension(:,:,:,:) :: T_i !< Top edge reconstruction of temperature (degC)

◆ tint

real, dimension(:,:,:), allocatable mom_neutral_diffusion::neutral_diffusion_cs::tint

Interface T [degC].

Definition at line 74 of file MOM_neutral_diffusion.F90.

74  real, allocatable, dimension(:,:,:) :: Tint !< Interface T [degC]

◆ uheff

real, dimension(:,:,:), allocatable mom_neutral_diffusion::neutral_diffusion_cs::uheff

Effective thickness at u-point [H ~> m or kg m-2].

Definition at line 60 of file MOM_neutral_diffusion.F90.

60  real, allocatable, dimension(:,:,:) :: uHeff !< Effective thickness at u-point [H ~> m or kg m-2]

◆ ukol

integer, dimension(:,:,:), allocatable mom_neutral_diffusion::neutral_diffusion_cs::ukol

Index of left interface corresponding to neutral surface, at a u-point.

Definition at line 56 of file MOM_neutral_diffusion.F90.

56  integer, allocatable, dimension(:,:,:) :: uKoL !< Index of left interface corresponding to neutral surface,

◆ ukor

integer, dimension(:,:,:), allocatable mom_neutral_diffusion::neutral_diffusion_cs::ukor

Index of right interface corresponding to neutral surface, at a u-point.

Definition at line 58 of file MOM_neutral_diffusion.F90.

58  integer, allocatable, dimension(:,:,:) :: uKoR !< Index of right interface corresponding to neutral surface,

◆ upol

real, dimension(:,:,:), allocatable mom_neutral_diffusion::neutral_diffusion_cs::upol

Non-dimensional position with left layer uKoL-1, u-point.

Definition at line 54 of file MOM_neutral_diffusion.F90.

54  real, allocatable, dimension(:,:,:) :: uPoL !< Non-dimensional position with left layer uKoL-1, u-point

◆ upor

real, dimension(:,:,:), allocatable mom_neutral_diffusion::neutral_diffusion_cs::upor

Non-dimensional position with right layer uKoR-1, u-point.

Definition at line 55 of file MOM_neutral_diffusion.F90.

55  real, allocatable, dimension(:,:,:) :: uPoR !< Non-dimensional position with right layer uKoR-1, u-point

◆ vheff

real, dimension(:,:,:), allocatable mom_neutral_diffusion::neutral_diffusion_cs::vheff

Effective thickness at v-point [H ~> m or kg m-2].

Definition at line 67 of file MOM_neutral_diffusion.F90.

67  real, allocatable, dimension(:,:,:) :: vHeff !< Effective thickness at v-point [H ~> m or kg m-2]

◆ vkol

integer, dimension(:,:,:), allocatable mom_neutral_diffusion::neutral_diffusion_cs::vkol

Index of left interface corresponding to neutral surface, at a v-point.

Definition at line 63 of file MOM_neutral_diffusion.F90.

63  integer, allocatable, dimension(:,:,:) :: vKoL !< Index of left interface corresponding to neutral surface,

◆ vkor

integer, dimension(:,:,:), allocatable mom_neutral_diffusion::neutral_diffusion_cs::vkor

Index of right interface corresponding to neutral surface, at a v-point.

Definition at line 65 of file MOM_neutral_diffusion.F90.

65  integer, allocatable, dimension(:,:,:) :: vKoR !< Index of right interface corresponding to neutral surface,

◆ vpol

real, dimension(:,:,:), allocatable mom_neutral_diffusion::neutral_diffusion_cs::vpol

Non-dimensional position with left layer uKoL-1, v-point.

Definition at line 61 of file MOM_neutral_diffusion.F90.

61  real, allocatable, dimension(:,:,:) :: vPoL !< Non-dimensional position with left layer uKoL-1, v-point

◆ vpor

real, dimension(:,:,:), allocatable mom_neutral_diffusion::neutral_diffusion_cs::vpor

Non-dimensional position with right layer uKoR-1, v-point.

Definition at line 62 of file MOM_neutral_diffusion.F90.

62  real, allocatable, dimension(:,:,:) :: vPoR !< Non-dimensional position with right layer uKoR-1, v-point

◆ x_tol

real mom_neutral_diffusion::neutral_diffusion_cs::x_tol

Convergence criterion for how small an update of the position can be.

Definition at line 49 of file MOM_neutral_diffusion.F90.

49  real :: x_tol !< Convergence criterion for how small an update of the position can be

The documentation for this type was generated from the following file: