﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
966	NEW CAPABILITY:  Grid Extraction	arango		"I developed a grid extraction capability into ROMS that is independent of nesting, which can be activated with the **GRID_EXTRACT** option. This capability allows the creation of a new NetCDF file (**XTRNAME**) containing the extracted fields via decimation or horizontal interpolation, level-by-level, in 3D fields.

The ROMS standard input script **roms.in** includes new parameters:

{{{
! Input grid extraction flag and input extraction grid geometry
! NetCDF filename. They are used to extract a history solution at
! the desired geometry by decimation or horizontal interpolation:
!
!   ExtractFlag = 1                 horizontal interpolation
!   ExtractFlag > 1                 coarsening by decimation
!
! If decimation, ExtracTFlag is the sampling factor. For now, use
! ExtractFlag=2 so data is written at every other point. Notice
! that it is required to satisfy the following criteria:
!
!   MOD(Lm+1, ExtractFlag) = 0                                      
!   MOD(Mm+1, ExtractFlag) = 0

 ExtractFlag == 2
     GRXNAME == ../Data/lake_decimate_grd_2km.nc

...

     XTRNAME == lake_decimate_xtr.nc
}}}

The users must provide the extraction fields geometry grid NetCDF file **GRXNAME** at the input. This grid needs to be created with tools similar to the parent ROMS application grid and contained inside.

* If **!ExtractFlag = 1**: Level-by-level horizontal interpolation. The development of extracted grids with land/sea masks is still under development, complicating the interpolation. We are developing a generic ESMF grid-to-grid remapping inside of ROMS.

* If **!ExtractFlag > 1**: Decimation. It decimates the field solution at the prescribed integer factor, ExtractFlag . For example, if **!Extract_Flag=2** (recommended), the output fields are written at every other point, resulting in coarser data resolution. This strategy is advantageous in mixed resolution, split 4D-Var applications where the outer loop background (prior) trajectory may be computed at a higher resolution than in the inner loop minimization to accelerate the calculations. For decimation to work, the number of parent grid RHO-points **(0: Lm+1, 0:Mm+1)** must be multiples of **!ExtractFlag**. That is, 
{{{
     MOD(Lm(ng)+1, ExtractFlag) = 0                                      
     MOD(Mm(ng)+1, ExtractFlag) = 0
}}}

----

For debugging and testing, a new idealized test case, **LAKE_DECIMATE**, at 1km resolution (360x300x20), is introduced.
"	upgrade	closed	major	Release ROMS/TOMS 4.2	Nonlinear	4.1	Done		
