Opened 10 years ago

Closed 10 years ago

#647 closed upgrade (Done)

IMPORTANT: Updated nesting algorithms

Reported by: arango Owned by: arango
Priority: major Milestone: Release ROMS/TOMS 3.7
Component: Nonlinear Version: 3.7
Keywords: Cc:

Description

The following nesting routines were updated:

nesting.F:

  • Corrected logic to allow more than two layer of nesting refinement in routine get_refine and put_refine.
  • Added code in put_refine2d to impose volume conservation when ONE_WAY is activated and tidal forcing in not defined.

Although ROMS nesting design is two-way by default, we need to investigate further why one-way nesting requires additional conservation constraints to avoid loosing or gaining volume and mass. ROMS nesting framework is quite unique when compared with other methodologies used in atmospheric or ocean models. ROMS nesting numerical stencil process enough contact points in the contact region to fully compute the high-order spatial operators (advection, diffusion/viscosity, pressure gradient) adjacent to the nested finer grid boundary. Other models only specify the boundary value and an estimate of the flux through the boundary for a particular state variable. It is interesting to note that other nesting methodologies have one-way nesting option as a better alternative when the two-way nesting does not work or goes unstable. ROMS is the opposite; we argue that multiple grid nesting must always be two-way. In refinement applications, the one-way interaction has no effect whatsoever on the coarser donor grid because there is no feed back of information. Due to their different spatial and temporal resolutions, the finer grid is better resolving the physical phenomena at smaller scales. The averaging of a finer grid solution to update the coarse grid values (fine to coarse) keeps both solutions in line with each other. Our hypothesis of why ROMS one-way needs to be constrained to conserve both volume and mass is because any differences caused by different resolutions grows in time because of the lack of feed back from the finer grid resolved solution.

  • Renamed linear interpolation weights from Hweight to Lweight. This name is more appropriate and will facilitate using additional weights in the future, like quadratic interpolation weights (Qweight).

mod_nesting.F:

  • Renamed linear interpolation weights from Hweight to Lweight.

metrics.F:

  • The code to determine the data donor for each refined grid was moved from set set_contact.F to here. The RefineDonor variable is computed using the global grid size that are available in metrics locally.

set_contact.F:

  • Code was added to process new interpolation weight variables Lweight and Qweight. The now obsolete Hweight is also supported for backward compatibility.

WARNING:

  • If you updated the nesting Matlab scripts described in src:ticket:646 and then recomputed the connectivity NetCDF file, you need to apply this update to your version of ROMS code. Only this update has the necessary code to process the new NetCDF variables Lweight and Qweight.
  • We are still working on these nesting algorithm. Please limit your applications to only two layers of nesting (NestLayers = 2). These algorithms are tested for such application and there is still some debugging and fine tuned needed for more than two layers.
  • I had mentioned before that the nesting algorithms are complex. I highly recommend to keep your applications simple at the beginning. I have notice few novice users with very complex nesting applications and are completely overwhelm. There is a need to acquire expertise on basic ROMS setups.

Change History (1)

comment:1 by arango, 10 years ago

Resolution: Done
Status: newclosed
Note: See TracTickets for help on using tickets.