#539 closed upgrade (Done)
IMPORTANT: Added output of Eastward and Northward 2D/3D momentum components
Reported by: | arango | Owned by: | arango |
---|---|---|---|
Priority: | major | Milestone: | Release ROMS/TOMS 3.6 |
Component: | Nonlinear | Version: | 3.6 |
Keywords: | Cc: |
Description
Added the capability to output of 2D/3D momentum components in the geographical eastward (TRUE East, positive) and northward (TRUE North, positive) directions at the center of the grid cell (RHO-points).
The vector components are averaged to RHO-points and then rotated from (XI,ETA) coordinates to true (East,North) directions, if applicable:
Urho = 0.5_r8 * (Uinp(i,j,:) + Uinp(i+1,j,:)) Vrho = 0.5_r8 * (Vinp(i,j,:) + Vinp(i,j+1,:)) Uout = Urho * COS(angler(:,:)) - Vrho * SIN(angler(:,:)) Vout = Vrho * COS(angler(:,:)) + Urho * SIN(angler(:,:))
Notice that if angler=0, no rotation is carried since COS(0)=1 and SIN(0)=0. Here, angler is the grid rotation angle with respect to the XI-axis.
A new parallel routine, ROMS/Nonlinear/uv_rotate.F, is introduced to process (Eastward,Northward) vector components. At the present, only the 2D momentum components (ubar,vbar) and 3D momentum components (u,v) are processed for history, time-averaged, and stations NetCDF files. The resulting vector components are averaged at RHO-points (grid cell center). The values are only viable at the interior RHO-points. However, the output data has the same dimensions as any output RHO-field (h, zeta, tracers). The values in the one-point halo region are set to zero. This is convenient for ROMS operational products and data on OpenDAP servers.
Recall that ROMS uses an Arakawa's staggered C-grid:
psi --- v --- psi | | u rho u | | psi --- v --- psi
This is a numerical scheme to facilitate the natural discretization of the governing equations (momentum, tracers, continuity). It has nice numerical and physical properties. Notice that in the real world, velocity components are measured directly at the same point. Here, we make the assumption that this point is at the center of a particular grid cell in numerical discretizations. This is convenient when processing data assimilation observations and model-data comparisons.
The metadata for the new variables are:
double ubar_eastward(ocean_time, eta_rho, xi_rho) ; ubar_eastward:long_name = "eastward vertically integrated momentum component at RHO-points" ; ubar_eastward:units = "meter second-1" ; ubar_eastward:time = "ocean_time" ; ubar_eastward:coordinates = "x_rho y_rho ocean_time" ; double vbar_northward(ocean_time, eta_rho, xi_rho) ; vbar_northward:long_name = "northward vertically integrated momentum component at RHO-points" ; vbar_northward:units = "meter second-1" ; vbar_northward:time = "ocean_time" ; vbar_northward:coordinates = "x_rho y_rho ocean_time" ; double u_eastward(ocean_time, s_rho, eta_rho, xi_rho) ; u_eastward:long_name = "eastward momentum component at RHO-points" ; u_eastward:units = "meter second-1" ; u_eastward:time = "ocean_time" ; u_eastward:coordinates = "x_rho y_rho s_rho ocean_time" ; double v_northward(ocean_time, s_rho, eta_rho, xi_rho) ; v_northward:long_name = "northward momentum component at RHO-points" ; v_northward:units = "meter second-1" ; v_northward:time = "ocean_time" ; v_northward:coordinates = "x_rho y_rho s_rho ocean_time" ;
Several new switches were added to input script ocean.in to specify the output of such history and time-averaged variables:
Hout(idu3dE) == T ! u_eastward 3D U-eastward at RHO-points Hout(idv3dN) == T ! v_northward 3D V-northward at RHO-points Hout(idu2dE) == T ! ubar_eastward 2D U-eastward at RHO-points Hout(idv2dN) == T ! vbar_northward 2D V-northward at RHO-points ... Aout(idu3dE) == T ! u_eastward 3D U-eastward at RHO-points Aout(idv3dN) == T ! v_northward 3D V-northward at RHO-points Aout(idu2dE) == F ! ubar_eastward 2D U-eastward at RHO-points Aout(idv2dN) == F ! vbar_northward 2D V-northward at RHO-points
Similar switches are available in the input station script, stations.in:
Sout(idu3dE) == T ! u_eastward 3D U-eastward at RHO-points Sout(idv3dN) == T ! v_northward 3D V-nortward at RHO-points Sout(idu2dE) == T ! ubar_eastward 2D U-eastward at RHO-points Sout(idv2dN) == T ! vbar_northward 2D V-northward at RHO-points
WARNINGS:
- All standard input scripts ROMS/External/ocean*.in and User/External?/ocean*.in were modified. Similarly, also all the stations*.in scripts were modified in the same directories.
- The metadata file ROMS/Exteran/varinfo.dat was modified to include the information about the new variables.
- All the input scripts in the test cases repository were also updated.
- In order for this to work, Users need to update the above files.
- This can be used only for output purposes. However, this kind of output data can be used when interpolating data to a down-scaling ROMS application.
Change History (2)
comment:1 Changed 9 years ago by arango
- Resolution set to Done
- Status changed from new to closed
comment:2 Changed 9 years ago by arango
- Summary changed from IMPORTANT: Added output of Eastward and Northward 2D/3D momentum omponents to IMPORTANT: Added output of Eastward and Northward 2D/3D momentum components