PUBLIC INTERFACE ~ PUBLIC ROUTINES ~ NAMELIST

Module ocean_tempsalt_mod

Contact:  R.A.S. Fiedler David Jackett Stephen M. Griffies
Reviewers: 
Change History: WebCVS Log


OVERVIEW

Setup the temperature and salinity tracer fields. Convert between potential temperature and conservative temperature.

This routine sets up the temperature and salinity tracer fields. It also performs a converstion between potential temperature and conservative temperature, with the conversion valid over most large-scale oceanographically relevant ranges. 0psu <= salinity <= 40 psu -3C <= theta <= 40C (theta=conservative temperature or potential temperature) 0dbar <= pressure <= 8000dbar Input variables are the following: salinity potential temperature (theta) in deg C OR conservative temperature (theta) in deg C


OTHER MODULES USED

       constants_mod
fms_mod
mpp_mod
ocean_domains_mod
ocean_parameters_mod
ocean_tpm_util_mod
ocean_types_mod
ocean_workspace_mod

PUBLIC INTERFACE

ocean_tempsalt_init:
ocean_tempsalt_ideal_reinit:
contemp_from_pottemp_field:
contemp_from_pottemp_level:
contemp_from_pottemp_point:
pottemp_from_contemp_field:
pottemp_from_contemp_level:
pottemp_from_contemp_point:
dentropy_dtheta_field:
dentropy_dtheta_level:
dentropy_dtheta_point:
tempsalt_check_range:


PUBLIC ROUTINES

  1. ocean_tempsalt_init

    DESCRIPTION
    Initialize the temperature/salinity module.


  2. ocean_tempsalt_ideal_reinit

    DESCRIPTION
    Reinitialize the temperature/salinity fields with internally generated idealized profile. This routine can be called at any time within a model integration. The main application is to allow for there to be a nontrivial Thickness established, and then to reinitialize the temperature and salinity to be functions of the depth_st array. When s=zstar, this approach will produce a flat initialization in zstar space, but nontrivial initialization in depth space. User can customize a profile. One example given here assumes profile is a function of depth_st, with the assumption that s=geopotential OR s=zstar. To use this approach with pressure coordinate, need to alter the reinit_ts_with_ideal_efold value, since depth_st is in MKS, not dbar.


  3. contemp_from_pottemp_field

    DESCRIPTION
    Compute conservative temperature for all grid points. Input is potential temperature (C) and salinity(psu or g/kg). contemp = potential_enthalpy(s,theta)/cp_ocean


  4. contemp_from_pottemp_level

    DESCRIPTION
    Compute conservative temperature for one k-level. Input is potential temperature (C) and salinity(psu or g/kg). contemp = potential_enthalpy(s,theta)/cp_ocean


  5. contemp_from_pottemp_point

    DESCRIPTION
    Compute conservative temperature for one grid point. Input is potential temperature (C) and salinity(psu or g/kg). contemp = potential_enthalpy(s,theta)/cp_ocean


  6. pottemp_from_contemp_field

    DESCRIPTION
    Compute potential temperature from conservative temperature for all grid points. Perform one extra iteration to get precision to near computer precision. Input is salinity (psu) and conservative temperature (C). Use wrk1, wrk2, and wrk3 so to not take 3-d arrays from stack.


  7. pottemp_from_contemp_level

    DESCRIPTION
    Compute potential temperature from conservative temperature over a k-level. Perform one extra iteration to get precision to near computer precision. Input is salinity (psu) and conservative temperature (C).


  8. pottemp_from_contemp_point

    DESCRIPTION
    Compute potential temperature from conservative temperature at a point. Perform one extra iteration to get precision to near computer precision. Input is salinity (psu) and conservative temperature (C).


  9. dentropy_dtheta_field

    DESCRIPTION
    d(entropy)/d(pottemp) at each grid point from twice differentiating the Gibbs potential in Feistel (2003), Prog. Ocean. 58, 43-114. (pressure=0 since use potential temperature) salinity : salinity (psu) theta : potential temperature (deg C, ITS-90) dentropy_dtheta : d(entropy)/d(pottemp) J/(kg degC^2) check value: dentropy_dtheta(35,20) = 13.63256369213874


  10. dentropy_dtheta_level

    DESCRIPTION
    d(entropy)/d(pottemp) at k-level from twice differentiating the Gibbs potential in Feistel (2003), Prog. Ocean. 58, 43-114. (pressure=0 since use potential temperature) salinity : salinity (psu) theta : potential temperature (deg C, ITS-90) dentropy_dtheta : d(entropy)/d(pottemp) J/(kg degC^2) check value: dentropy_dtheta(35,20) = 13.63256369213874


  11. dentropy_dtheta_point

    DESCRIPTION
    d(entropy)/d(pottemp) at an (i,j,k) point from twice differentiating the Gibbs potential in Feistel (2003), Prog. Ocean. 58, 43-114. (pressure=0 since use potential temperature) salinity : salinity (psu) theta : potential temperature (deg C, ITS-90) dentropy_dtheta : d(entropy)/d(pottemp) J/(kg degC^2) check value: dentropy_dtheta(35,20) = 13.63256369213874


  12. tempsalt_check_range

    DESCRIPTION
    Check to see that temperature and salinity are within preset range. If outside of the range, then bring the model down. This check is particularly useful to ensure that the equation of state is evaluated with physically sensible values of temp and salinity.



NAMELIST

&ocean_tempsalt_nml

teos10
For choosing whether to use the TEOS-10 equation of state. This usage requires conservative temperature as the temperature variable, and two salinity variables: Preformed Salinity and Absolute Salinity anomaly. Default teos10=.false.
[logical]
temperature_variable
For choosing the temperature variable used in the model. Choices are 'conservative_temp' and 'potential_temp'. Since conservative temperature is more accurate, it is the default.
[character]
pottemp_equal_contemp
For certain idealized cases where the difference between potential temperature and conservative temperature is irrelevant. Default=.false.
[logical]
pottemp_2nd_iteration
For taking extra iteration in computation of potential temperature from conservative temperature and salinity. Default is true.
[logical]
reinit_ts_with_ideal
For setting up an ideal temperature and salinity profile that is generated in the model. This profile can be generated after the model has already been running, hence the name "reinit" for "reinitialize."
[logical]
reinit_ts_with_ideal_efold
For setting efolding of reinitialized temp and salinity profile. Default reinit_ts_with_ideal_efold=1000.
[real, units: metre]
reinit_ts_with_ideal_tvalue
For setting the reinitialized temperature value using the ideal profile. Default reinit_ts_with_ideal_tvalue = 10.0
[real, units: C]
reinit_ts_with_ideal_svalue
For setting the reinitialized temperature value using the ideal profile. Default reinit_ts_with_ideal_svalue = 30.0
[real, units: psu]
t_min
Minimum potential/conservative temperature below which we gracefully bring down the model.
[real, units: deg C]
t_max
Maximum potential/conservative temperature above which we gracefully bring down the model.
[real, units: deg C]
s_min
Minimum salinity below which we gracefully bring down the model.
[real, units: ppt]
s_max
Maximum salinity below which we gracefully bring down the model.
[real, units: ppt]
t_min_limit
Minimum potential/conservative temperature below which will employ upwind advection instead of quicker, and horizontal diffusion instead of neutral physics.
[real, units: deg C]
t_max_limit
Maximum potential/conservative temperature above which will employ upwind advection instead of quicker, and horizontal diffusion instead of neutral physics.
[real, units: deg C]
s_min_limit
Minimum salinity below which will employ upwind advection instead of quicker, and horizontal diffusion instead of neutral physics.
[real, units: psu]
s_max_limit
Maximum salinity below which will employ upwind advection instead of quicker, and horizontal diffusion instead of neutral physics.
[real, units: psu]
debug_this_module
For debugging the module.
[logical]


REFERENCES

  1. Feistel (2003) A new extended Gibbs thermodynamic potential of seawater Progress in Oceanography. vol 58, pages 43-114.
  2. Jackett, McDougall, Feistel, Wright, and Griffies (2005) Algorithms for density, potential temperature, conservative temperature, and freezing temperature of seawater. Journal of Atmospheric and Oceanic Technology, 2005 submitted.


top