I'm looking at wave-current stresses in an estuarine BBL. I've been using ANA_DRAG, UV_QDRAG, and UV_DRAG_GRID to set a constant drag coefficient everywhere (CD).
Now I have these questions:
1 - I want to get the time and space-dependent drag coefficient (CD) as output in the history file (for example 'rdrag2') for a tide-only and a tides+waves scenario for comparison. Is there a way to do this? For combined wave-current cases, I define SSW_BBL, SSW_CALC_ZNOT and SSW_CALC_UB, but don't know if these work with rdrag2 or with any quadratic drag law. Goal is to analyze the tidal period variability of CD under waves and currents.
2 - When I set a constant CD with ANA_DRAG, is the eddy viscosity field/profile updated according to this CD? I ran lake_signell with and without ANA_WWAVE and the steady, along-basin sea level setup was higher in the coupled wave scenario because of the higher bottom friction and mixing. But when I ran two cases without waves (one with low CD and another with a CD an order of magnitude higher), the sea level setup was the same for both and the current just got slower in the case of the high CD.
Thanks!
Wave-current BBL drag coefficient as output
Moderators: arango, robertson, rsignell
Re: Wave-current BBL drag coefficient as output
If you are using a bottom boundary layer model you should not have UV_QDRAG defined. The bottom boundary layer model is computing the stress itself so you don't want to override that with a quadratic drag law.
Whatever your choice of bottom boundary layer model (which affects the .h file included into bbl.F) the bblm subroutine concludes by calculating bustr,bvstr.
Look in set_vbc.F and you'll see that provided neither UV_LDRAG or UV_QDRAG are defined, ROMS simply applies the stresses from bblm (which is called in main3d immediately prior to the call to set_vbc).
However, if either UV_LDRAG or UV_QDRAG are defined the stresses from bblm will be replaced with the simple drag law in set_vbc.
I suspect your model has used UV_QDRAG and ignored everything from the bottom boundary layer model.
To answer your question about drag coefficient ... what you what is the equivalent quadratic drag coefficient as if there were a quadratic drag law. I think you can diagnose this from the saved bottom stresses (bustr,bvstr) which you can output, and the saved bottom velocity ub,vb (u,v at k=1) which you can output.
Then CD_effective = mag(sustr,svstr)/(rho0*mag(ub,vb)
Whatever your choice of bottom boundary layer model (which affects the .h file included into bbl.F) the bblm subroutine concludes by calculating bustr,bvstr.
Look in set_vbc.F and you'll see that provided neither UV_LDRAG or UV_QDRAG are defined, ROMS simply applies the stresses from bblm (which is called in main3d immediately prior to the call to set_vbc).
However, if either UV_LDRAG or UV_QDRAG are defined the stresses from bblm will be replaced with the simple drag law in set_vbc.
I suspect your model has used UV_QDRAG and ignored everything from the bottom boundary layer model.
To answer your question about drag coefficient ... what you what is the equivalent quadratic drag coefficient as if there were a quadratic drag law. I think you can diagnose this from the saved bottom stresses (bustr,bvstr) which you can output, and the saved bottom velocity ub,vb (u,v at k=1) which you can output.
Then CD_effective = mag(sustr,svstr)/(rho0*mag(ub,vb)
John Wilkin: DMCS Rutgers University
71 Dudley Rd, New Brunswick, NJ 08901-8521, USA. ph: 609-630-0559 jwilkin@rutgers.edu
71 Dudley Rd, New Brunswick, NJ 08901-8521, USA. ph: 609-630-0559 jwilkin@rutgers.edu
Re: Wave-current BBL drag coefficient as output
Related to this thread, I have a model run which uses quadratic bottom drag. Since there is a wide range of bathymetric depth over the domain, the height above the bottom of the deepest velocity varies from a few cm (shallow water) to tens of meters (deep water). I would like to estimate the velocity at a set height above bottom, say 10 cm or 1 m. I can do this mathematically using the log layer shape and the stored bottom stresses, along with an estimate of z_0 (say 0.0007 m for CD = 3e-3). Is this a reasonable approach? I can imagine it would work fine for the deeper cases, but I am worried about the shallower ones. Specifically my question is: does ROMS recreate something like a bottom log layer in cases where it is resolving the log layer (e.g. the deepest meter or so)?
Thanks,
Parker
Thanks,
Parker
Re: Wave-current BBL drag coefficient as output
Parker-
the routine set_vbc.F computes the bottom stresses (in case you want to look at the code).
For QDRAG, it essentially uses (for u-direction)
bustr = rdrag2 * u(z=1) * |V|
For this option, as u(z=1) changes elevation, the roughness (rdrag2) stays the same.
Another option is to use UV_LOGDRAG
bustr = kappa^2 / (Ln(z/z0))^2 * u(z=1) * |V|
So when u(z=1) changes elevation, the model is assuming a log layer distribution from the middle of the bottom cell to the sea floor, this way the roughness scales with the elevation.
With your results, you could assume a log layer from the middle height of the bottom cell to the sea floor. ROMS does not do anything fancy in very shallow water where it may actually be resolving the vertical log layer profile, unless you defined SPLINES. That can influence the shape of the velocity profile. We typically do not use SPLINES in shallow water.
-john
the routine set_vbc.F computes the bottom stresses (in case you want to look at the code).
For QDRAG, it essentially uses (for u-direction)
bustr = rdrag2 * u(z=1) * |V|
For this option, as u(z=1) changes elevation, the roughness (rdrag2) stays the same.
Another option is to use UV_LOGDRAG
bustr = kappa^2 / (Ln(z/z0))^2 * u(z=1) * |V|
So when u(z=1) changes elevation, the model is assuming a log layer distribution from the middle of the bottom cell to the sea floor, this way the roughness scales with the elevation.
With your results, you could assume a log layer from the middle height of the bottom cell to the sea floor. ROMS does not do anything fancy in very shallow water where it may actually be resolving the vertical log layer profile, unless you defined SPLINES. That can influence the shape of the velocity profile. We typically do not use SPLINES in shallow water.
-john
Re: Wave-current BBL drag coefficient as output
Parker,
I think your approach is reasonable in the 'deeper' case where the assumption underpinning the quadratic drag formulation holds; namely, that the flow at level k=1 is the free stream velocity outside the boundary layer.
But where k=1 might be inside a modeled boundary layer you have problems - which is why you've asked your question.
Problem 1 is that if ROMS is resolving any boundary layer at all then u(k=1) underestimates the free stream velocity and the quadratic drag formulation probably underestimates the stress. Then your u(at fixed z) will be underestimated by a log profile because u* is low.
Problem 2 is that the log profile arises if turbulent viscosity equals kappa.u*.z. But if you aren't using one of the Bottom Boundary Layer modules I don't think this is the case, and so the velocity profile ROMS tries to resolve may not be log-like.
I think your only option to settle this to a high level of confidence is set up some contrived idealized case and put it to the test.
The simple bio_toy or sed_toy case initialized with uniform velocity might do ... modify the bottom boundary layer resolution with different stretching parameters and/or numbers of levels. See what bottom stress and velocity and viscosity profiles you get.
John W (the other John W).
I think your approach is reasonable in the 'deeper' case where the assumption underpinning the quadratic drag formulation holds; namely, that the flow at level k=1 is the free stream velocity outside the boundary layer.
But where k=1 might be inside a modeled boundary layer you have problems - which is why you've asked your question.
Problem 1 is that if ROMS is resolving any boundary layer at all then u(k=1) underestimates the free stream velocity and the quadratic drag formulation probably underestimates the stress. Then your u(at fixed z) will be underestimated by a log profile because u* is low.
Problem 2 is that the log profile arises if turbulent viscosity equals kappa.u*.z. But if you aren't using one of the Bottom Boundary Layer modules I don't think this is the case, and so the velocity profile ROMS tries to resolve may not be log-like.
I think your only option to settle this to a high level of confidence is set up some contrived idealized case and put it to the test.
The simple bio_toy or sed_toy case initialized with uniform velocity might do ... modify the bottom boundary layer resolution with different stretching parameters and/or numbers of levels. See what bottom stress and velocity and viscosity profiles you get.
John W (the other John W).
John Wilkin: DMCS Rutgers University
71 Dudley Rd, New Brunswick, NJ 08901-8521, USA. ph: 609-630-0559 jwilkin@rutgers.edu
71 Dudley Rd, New Brunswick, NJ 08901-8521, USA. ph: 609-630-0559 jwilkin@rutgers.edu