Opened 13 years ago

Closed 13 years ago

Last modified 13 years ago

#482 closed upgrade (Done)

Spatially varying bottom friction parameters

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

Description (last modified by arango)

The model was updated to include:

  • Spatially varying bottom roughness length (ZoBot(i,j); m), linear bottom drag coefficients (rdrag(i,j); m/s), or quadratic bottom drag coefficients (rdrag2(i,j); non-dimensional). This can be activated with new C-preprocessing option UV_DRAG_GRID.
  • These spatially varying bottom friction parameters can be specified with either analytical expressions using new C-preprocessing option ANA_DRAG in new routine ana_drag.h or read from application GRID NetCDF file. These parameters are defined at RHO-points and processed according to the momentum bottom friction options UV_LOGDRAG (ZoBot), UV_LDRAG (rdrag), or UV_QDRAG (rdrag2).
  • If reading these variables from the GRID NetCDF, you need to have the following metadata:
            double ZoBot(eta_rho, xi_rho) ;
                    ZoBot:long_name = "time invariant, bottom roughness length" ;
                    ZoBot:units = "meter ;
                    ZoBot:coordinates = "lon_rho lat_rho" ;
    
            double rdrag(eta_rho, xi_rho) ;
                    rdrag:long_name = "linear bottom drag coefficient" ;
                    rdrag:units = "meter second-1 ;
                    rdrag:coordinates = "lon_rho lat_rho" ;
    
            double rdrag2(eta_rho, xi_rho) ;
                    rdrag2:long_name = "quadratic bottom drag coefficient" ;
                    rdrag2:coordinates = "lon_rho lat_rho" ;
    
    Notice that only one of these variables is needed according to the C-preprocessing option UV_LOGDRAG, UV_LDRAG, or UV_QDRAG, respectively. It is also possible to use spatially varying ZoBot when SEDIMENT and/or internal BBL_MODEL options are/is activated. The user is allowed to have different NetCDF variables names for these bottom friction parameters. This can be done in the metadata file varinfo.dat.
  • Any of these time-independent variables are written to the header of output NetCDF files when UV_DRAG_GRID is activated.
  • Notice that the sediment variable bottom(i,j,izdef) is initialized to ZoBot. However, bottom(i,j,izdef) change in time due to sediment processes. There is a difference in these variables due to the time dependency which affect the adjoint model.
  • Several routines in ROMS were changed to allow the use of ZoBot, rdrag, and rdrag2 arrays instead of the scalar values. These variables are initialized to standard input parameters Zob(ng), rdrg(ng), and rdrg2(ng) values, respectively. Their values are over-written if the spatially varying option UV_DRAG_GRID is activated.
  • The routine ana_bmflux.h is obsolete and removed. Its functionality is replaced with new routine ana_drag.h.
  • All these new variables are assumed to be time independent and not adjointable. The time dependency of ZoBot is only possible when any of the bottom boundary models and/or sediment are/is activated. Notice that the spatial dependency of these bottom friction parameters is an approximation and lacks of the physics included in bottom boundary layer (BBL) models. ZoBot depends on sediment density and size, wave and current interactions, and other BBL processes. These bottom friction variables can be used to fine tune solutions that are forced by tides. There is a lot of papers in the literature to estimate these variables using adjoint techniques. We may considered that type of parameter estimation in the future.
  • Added the capability for writing surface pressure (Pair) and surface wind components (Uair, Vair) to history, averages, and station output NetCDF files. This is done for convenience during post-processing of the model output. For example, it can be used to plot the dependency between surface elevation, pressure , and winds at a particular station location. The winds are written as provided at input, ROMS curvilinear coordinates (XI, ETA) and rotated angles, if applicable. This was requested by NOAA and it is needed in their forecasting operations. This can be activated in standard input file ocean.in by turning on the following new switches:
    Hout(idPair) == T                          ! surface air pressure
    Hout(idUair) == T                          ! surface U-wind component
    Hout(idVair) == T                          ! surface V-wind component
    
    ...
    
    Aout(idPair) == T                          ! surface air pressure
    Aout(idUair) == T                          ! surface U-wind component
    Aout(idVair) == T                          ! surface V-wind component
    
    and station.in input script:
    Sout(idPair) == T                          ! surface air pressure
    Sout(idUair) == T                          ! surface U-wind component
    Sout(idVair) == T                          ! surface V-wind component
    

WARNING:

  • All the ROMS standard input files ocean_*.in where updated to include the new output switches Hout and Aout shown above.
  • All the station_*.in files where updated to include the new output switches Sout shown above.
  • The file varinfo.dat was updated to include the metadata definitions for spatially varying bottom friction parameters. The users need to update their version of this file for this to work correctly!

Good luck using this new option for spatially varying bottom friction. This has been requested by several users for awhile. Sorry that it took that long... My priority list is very long...

Change History (2)

comment:1 by arango, 13 years ago

Resolution: Done
Status: newclosed

comment:2 by arango, 13 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.