PUBLIC INTERFACE ~ PUBLIC DATA ~ PUBLIC ROUTINES ~ NAMELIST ~ DIAGNOSTIC FIELDS ~ ERROR MESSAGES ~ REFERENCES ~ NOTES

Module ocean_velocity_diag_mod

Contact:  Ron Pacanowski S.M. Griffies
Reviewers: 
Change History: WebCVS Log


OVERVIEW

Numerical diagnostics for velocity related quantities.

This module contains some diagnostics for velocity related quantities.


OTHER MODULES USED

            constants_mod
diag_manager_mod
fms_mod
mpp_domains_mod
mpp_mod
time_manager_mod
ocean_bih_friction_mod
ocean_coriolis_mod
ocean_domains_mod
ocean_form_drag_mod
ocean_lap_friction_mod
ocean_momentum_source_mod
ocean_operators_mod
ocean_parameters_mod
ocean_pressure_mod
ocean_types_mod
ocean_util_mod
ocean_velocity_advect_mod
ocean_vert_mix_mod
ocean_workspace_mod

PUBLIC INTERFACE

ocean_velocity_diag_init:
ocean_velocity_diagnostics:
potential_energy:
kinetic_energy:
velocity_land_cell_check:
velocity_change:
compute_vorticity:
pressure_conversion:
pressure_energy:
friction_energy:
vert_dissipation:
energy_analysis:
cfl_check1:
cfl_check2:


PUBLIC DATA

None.


PUBLIC ROUTINES

  1. ocean_velocity_diag_init

    DESCRIPTION
    Initialize the ocean_velocity_diag module containing subroutines diagnosing velocity related properties of the simulation. These are not terms in the equations, but rather they are diagnosed from terms.


  2. ocean_velocity_diagnostics

    DESCRIPTION
    Call diagnostics related to the velocity.


  3. potential_energy

    DESCRIPTION
    Compute gravitational potential energy (Joules) relative to z=0 taken with respect to the value at the initial time step.



  4. kinetic_energy

    DESCRIPTION
    Compute global integrated horizontal kinetic energy.


  5. velocity_land_cell_check

    DESCRIPTION
    See if there are any points over land with nonzero ocean velocity


  6. velocity_change

    DESCRIPTION
    Determine the number of points that have large single-time step changes in the absolute value of the velocity.


  7. compute_vorticity

    DESCRIPTION
    Compute z-component to vorticity on B-grid.


  8. pressure_conversion

    DESCRIPTION
    Perform pressure conversion error analysis. This analysis should be computed prior to update_ucell_thickness since we need to use dzu(tau) here rather than dzu(taup1).


  9. pressure_energy

    DESCRIPTION
    Diagnose u dot grad(p) for diagnostic purposes. These maps when summed over all grid points will result in an energy that is equal to pint+pext as computed in pressure_conversion. The advantage is that here we can look at maps of these contributions.


  10. friction_energy

    DESCRIPTION
    Diagnose u dot Friction for diagnostic purposes.

    NOTE:

    A) DO NOT split into baroclinic and barotropic pieces. Just compute u dot F using full velocity field u. Otherwise, the calculation emulates that done in energy_analysis subroutine.

    B) DO NOT remove the effects from bottom drag and from surface stress. The reason is that bottom drag and surface stress are incorporated to the vertical friction operator, even when doing vertical friction implicitly in time. So it is tough to remove these effects in an explicitl diagnostic manner. So the u dot vertical friction piece includes BOTH surface and bottom stress.



  11. vert_dissipation

    DESCRIPTION
    Diagnose dissipation from vertical friction due just to viscosity.

    Assumptions:

    1/ Ignore bottom drag here...just concerned with viscosity.

    2/ Assume vertical friction is handled implicitly in time.



  12. energy_analysis

    DESCRIPTION
    Perform energy analysis by taking scalar product of horizontal velocity with the velocity equations and integrating over the ocean volume.

    Pressure conversions have already been computed in pressure_conversion subroutine. It is necessary to perform that analysis earlier than the call to update_ucell_thickness inside ocean_model_mod, whereas the remaining elements in the energy analysis can be called at the end of the update for velocity.


  13. cfl_check1

    DESCRIPTION
    Perform the first of two CFL checks on horizontal velocity.

    Vectorized version from Russell.Fiedler@csiro.au computes cfl values at a single latitude. The location of the maximum at this latitude is calculated via the maxloc() intrinsic. The maximum value for this processor is then updated if necessary.



  14. cfl_check2

    DESCRIPTION
    Perform the second of two CFL checks on horizontal velocity.

    Bring the model down if too many large Courant numbers detected.



NAMELIST

&ocean_velocity_diag_nml

diag_step
Number of time steps between which compute the diagnostics.
[integer, units: dimensionless]
energy_diag_step
Perform energy analysis every n timesteps (1==every time step). This diagnostic is expensive, so should be used sparingly during production runs.
[integer]
land_cell_num_max
Maximum number of land cells where will printout nonzero velocity points. Default land_cell_num_max=100.
[integer, units: dimensionless]
max_cfl_value
Critical value for Courant number, above which the model will be brought down.
[real, units: dimensionless]
large_cfl_value
Large value for Courant number, above which will write some diagnostics.
[real, units: dimensionless]
verbose_cfl
For printing out lots of information about regions of large Courant numbers.
[logical]
do_bitwise_exact_sum
Set true to do bitwise exact global sum. When it is false, the global sum will be non-bitwise_exact, but will significantly increase efficiency. The default value is false.
[logical]
debug_this_module
For some debugging purposes
[logical]


DATA SETS

None.


ERROR MESSAGES

None.


top