Opened 10 years ago

Closed 10 years ago

#628 closed release (Done)

Matlab scripts to process sponges and nudging inverse time scales

Reported by: arango Owned by: arango
Priority: major Milestone: Matlab Processing Scripts
Component: Matlab Version: 3.7
Keywords: Cc:

Description (last modified by arango)

Two new Matlab scripts were added to process sponges and nudging inverse time scales. See src:ticket:627 for detailed documentation.

  • grid/add_sponge.m: Adds enhanced viscosity and diffusion scaling variables (visc_factor and diff_factor) to an existing ROMS Grid NetCDF file. These scales are used in an application to set sponge areas with larger horizontal mixing coefficients for the damping of high frequency noise coming from open boundary conditions or nesting. In ROMS, these scales are used as follows:
       visc2_r(i,j) = visc2_r(i,j) * visc_factor(i,j)
       visc4_r(i,j) = visc4_r(i,j) * visc_factor(i,j)
    
       diff2(i,j,itrc) = diff2(i,j,itrc) * diff_factor(i,j)
       diff4(i,j,itrc) = diff4(i,j,itrc) * diff_factor(i,j)
    
    where the variables visc_factor and diff_factor are defined at RHO-points. Usually, sponges are linearly tapered over several grid points adjacent to the open boundaries. Its positive values linearly increases from the inner to outer edges of the sponge. At the interior of the grid we can values of zero (no mixing) or one (regular mixing).

NOTICE that it is more advantageous to specify these scaling factors in the ROMS Grid that coding it inside ROMS. We can plot and adjust their values in an easy way in Matlab.

  • initial/d_nudgcoef.m: This a user modifiable script that can be used to prepare ROMS nudging inverse time scales NetCDF file. It sets-up all the necessary parameters and variables. Users can use this as a prototype for their application.

Nudging to climatology can be used in ROMS for various purposes:

. Improve the behavior of open boundary conditions.

. Used in conjunction with sponges.

. Minimize numerical diapycnal mixing of tracers over steep bathymetry (improve T-S properties in deep water masses). For example, we can nudge to T-S climatology is areas deeper than 1500 m.

The inverse nudging coefficients have units of 1/time. The default input units in ROMS is 1/day but 1/second is also possible. The routine get_nudgcoef.F will check the units attribute to compute the conversion factor for 1/second. Users need to be sure the units variable attribute is consistent with the written data.

The variable names for the nudging coefficients is as follows:

    M2_NudgeCoef       for 2D momentum
    M3_NudgeCoef       for 3D momentum
    temp_NudgeCoef     for potential temperature
    salt_NudgeCoef     for salinity
    ...
    NO3_NudgeCoef      for nitrate
    ...
    tracer_NudgeCoef   for any generic tracer

They are all defined at RHO-points. If the nudging coefficients for a specific tracer are available in the NetCDF, ROMS will read that NetCDF variable. If NOT and the generic coefficients tracer_NudgeCoef are available, ROMS will process those values instead.

Notice that the input switch LnudgeTCLM(itrc,ng) in ROMS input script ocean.in will control which trace to nudge in the desired grid.

Currently, the nudging coefficients are time invariant in ROMS. The same scales are used for the entire simulation.

Change History (1)

comment:1 by arango, 10 years ago

Description: modified (diff)
Resolution: Done
Status: newclosed
Note: See TracTickets for help on using tickets.