Bulk fluxes, surface-relative winds and gustiness

General scientific issues regarding ROMS

Moderators: arango, robertson

Post Reply
Message
Author
rsignell
Posts: 124
Joined: Fri Apr 25, 2003 9:22 pm
Location: USGS

Bulk fluxes, surface-relative winds and gustiness

#1 Unread post by rsignell »

I'm wondering about a couple of issues with the bulk fluxes:

1. Shouldn't we be subtracting the surface current in the direction of the wind before computing bulk fluxes so that we have wind speed relative to the sea surface?

When I read the COARE3.0 paper at:
ftp://ftp.etl.noaa.gov/user/cfairall/wc ... im2003.pdf
they mention that observed surface currents are subtracted before computing wind speed, and also in the Matlab version of the COARE 3.0 algorithm at
ftp://ftp.etl.noaa.gov/user/cfairall/wc ... 0/cor30a.m
I see that "us", the surface current speed in the wind direction, is a required input, and is subtracted.

Yet I don't see this happening in the ROMS code.

I think we should modify the line in bulk_flux.F

Code: Select all

Wmag(i)=SQRT(Uwind(i,j)*Uwind(i,j)+Vwind(i,j)*Vwind(i,j))
to subtract off the velocity from the surface sigma layer in ROMS. Of course, this will only be an approximation of the "surface current" felt by the wind, but should be better than nothing!

2. How does wind gustiness get accounted for? I see the lines in bulk_flux.F

Code: Select all

Wgus(i)=0.5_r8
delW(i)=SQRT(Wmag(i)*Wmag(i)+Wgus(i)*Wgus(i))
but is the only impact of this to keep delW from going to 0 when Wmag goes to 0? If so, this doesn't really address the true gustiness issue, right?

Thanks,
Rich

rsignell
Posts: 124
Joined: Fri Apr 25, 2003 9:22 pm
Location: USGS

Re: Bulk fluxes, surface-relative winds and gustiness

#2 Unread post by rsignell »

Folks,

Oops -- It turns out I can answer the question about gustiness myself.

If I look a bit further down in the bulk_flux.F routine, the 0.5 m/s is only used as an initial value, and the actual value of Wgus(i) that is used is set within the iteration loop via an empirical formula:

Code: Select all

633 	!  Compute gustiness in wind speed.
634 	!
635 	            Bf=-g/TairK(i)*                                             &
636 	     &         Wstar(i)*(Tstar(i)+0.61_r8*TairK(i)*Qstar(i))
637 	            IF (Bf.gt.0.0_r8) THEN
638 	              Wgus(i)=blk_beta*(Bf*blk_Zabl)**r3
639 	            ELSE
640 	              Wgus(i)=0.2_r8
641 	            END IF
642 	            delW(i)=SQRT(Wmag(i)*Wmag(i)+Wgus(i)*Wgus(i))
My first question about subtracting the surface current from the wind (so that we have wind speed in the reference frame of the moving ocean) still stands, however!

-Rich

User avatar
kate
Posts: 4088
Joined: Wed Jul 02, 2003 5:29 pm
Location: CFOS/UAF, USA

Re: Bulk fluxes, surface-relative winds and gustiness

#3 Unread post by kate »

rsignell wrote: My first question about subtracting the surface current from the wind (so that we have wind speed in the reference frame of the moving ocean) still stands, however!

-Rich
I'm sure you're right and we should fix it. :)

User avatar
arango
Site Admin
Posts: 1347
Joined: Wed Feb 26, 2003 4:41 pm
Location: DMCS, Rutgers University
Contact:

#4 Unread post by arango »

Well, this is not as simple as you may think. Recall that the ocean and atmosphere have a planetary boundary layer in between. The grids are not continuous in the vertical and touching each other. The communication between the two grids is via a turbulence boundary layer that is parameterized using a Monin-Obukhov similarity theory to compute the turbulent fluxes of momentum, heat, and moisture. The transfer coefficients are not continuous (eddy viscosities) but represented as piecewise shape functions.

Notice that the high of the winds are important here. In mostly all atmospheric models the winds used for coupling are at 10 m and not at the mean sea level surface. Also notice that atmopheric models use pressure coordinates. There is land/sea masking, curvilinear coordinates, C-grid type, and rotation angles which complicates matters. The bulk flux parameterization in ROMS assumes that both wind components are located at RHO-points. Wind messurements are not staggered. The staggered grids come from numerical discretization. The surface ocean velocity is at the vertical RHO-points and not at W-points. ROMS is also staggered in the vertical.
Last edited by arango on Thu Aug 16, 2007 1:48 am, edited 2 times in total.

User avatar
wilkin
Posts: 875
Joined: Mon Apr 28, 2003 5:44 pm
Location: Rutgers University
Contact:

#5 Unread post by wilkin »

The COARE algorithm is clear that the wind vector needs to be referenced to the surface current. This is straightforward to do in bulk_fluxes because the wind is already expressed in local roms coordinate directions.

Schematically, we modify uwind,vwind:

Uwind(i,j) = Uwind(i,j) - 0.5*(u(i,j,N)+u(i+1,j,N))
Vwind(i,j) = Vwind(i,j) - 0.5*(v(i,j,N)+v(i,j+1,N))

The height at which the wind obs are made does not matter because similarity theory assumes the stress does not rotate through the boundary layer (regardless of whether the conditions are stable or unstable). This is readily seen when considering the stress calculation:

Drag coefficient Cd is computed from wind speed, then
cff=rhoAir*Cd*Wspeed
Taux=cff*Uwind ! plus adjustment for momentum of the falling rain
Tauy=cff*Vwind !

So in the absence of rain, abs(Taux,Tauy) is rhoair*Cd*Wspeed^2 and stress and wind vectors are in the same direction.

We accept simple C-grid coordinate averaging in the final step where Taux and Tauy are averaged in i,j to place sustr,svstr on the ROMS C-grid velocity locations. So pre-shifting Uwind,Vwind with surface u,v in the same way is a comparable approximation. We always assume conditions at z=zeta are represented by values at z_r(N) (in bulk flux we do this for SST for example) so there are no new approximations here.

The only issue in terms of the implementation that I wonder about is whether it is sensible to modify Uwind,Vwind globally (i.e. communicate this back to ROMS on exit from bulk_fluxes), or keep the modified Uwind,Vwind local to bulk_fluxes. I suspect the latter is safer, until other coupled models demand another strategy.

(As an aside: this issue of calculating the wind relative to the current came up for discussion in the recent Gordon Research Conference on Coastal Ocean Modeling. GRC rules preclude me repeating the details of the discussion here - but suffice to say nobody challenged the rationale of the published COARE algorithm in this respect).

John.
John Wilkin: DMCS Rutgers University
71 Dudley Rd, New Brunswick, NJ 08901-8521, USA. ph: 609-630-0559 jwilkin@rutgers.edu

User avatar
shchepet
Posts: 188
Joined: Fri Nov 14, 2003 4:57 pm

coare algorithm

#6 Unread post by shchepet »

But what about Ekman spiral? If you solve the problem analytically, then you find that water velocity vector always starts at 45 degrees to the wind stress applied. That applies to both classical Ekman problem as well as turbulent. Then, once you start subtracting something like 0.5*(u(i,j,N)+u(i+1,j,N)) and 0.5*(v(i,j,N)+v(i,j+1,N)) you make an assumption that Ekman spiral is well resolved by your vertical grid box, which may or may not be true (once your top-most grid box is about 10 meters, it is not resolved and you can get substantial rotational bias: remember that you are in boundary layer situation on both ocean and atmospheric sides and vertical viscosity becomes small on both sides once you approach the sea surface. (One can argue that the limit if finite due to roughness caused by surface waves, but it is still much smaller that a grid box below). So you have to be careful before assuming that velocity averaged over the topmost grid box is equivalent to velocity at surface.

I glanced through the papers Rich Signell attached.

rsignell
Posts: 124
Joined: Fri Apr 25, 2003 9:22 pm
Location: USGS

#7 Unread post by rsignell »

Sasha,
I agree that the top sigma layer velocity is not equivalent to the surface velocity, especially when there is strong near-surface shear caused by the wind and coarse vertical resolution.

One could argue, however, that as far as the surface fluxes are concerned, accounting for the surface current is most important in light wind conditions, where a 1-2 knot current exists in the presence of 0-5 knot winds. In these cases, the currents are most likely tidal or geostrophically balanced and therefore the surface sigma layer would be a good approximation of the surface current.

Still we should make accounting for the surface current a CPPDEFS option, I think.
-Rich

User avatar
wilkin
Posts: 875
Joined: Mon Apr 28, 2003 5:44 pm
Location: Rutgers University
Contact:

#8 Unread post by wilkin »

Though the classic Ekman solution for constant eddy viscosity predicts a 45 deg rotation of the velocity w.r.t. surface stress, this is a very unrealistic boundary layer turbulence parameterization. Madsen (1977) gives the corresponding solution when vertical eddy viscosity is parameterized as nu=kappa U* z (the law of the wall). This gives a rotation closer to 10 deg.

Madsen, O.S., 1977: A Realistic Model of the Wind-Induced Ekman Boundary Layer. J. Phys. Oceanogr., 7, 248–255.

However, these dynamics will arise naturally in the ROMS solution to the extent that the boundary layer is resolved. At issue is whether there can be appreciable rotation of the velocity at the surface current compared to the center of the surfacemost ROMS cell, i.e dz/2 if dz is the uppermost cell thickness.

In Madsens's solution, the vertical scale of the boundary layer (the modifed Ekman depth) is set by De = kappa U* / f which would be about 40 metres for modest winds. The rotation between z=0 and z=dz/2 is therefore less than 2 degrees for dz=2 m. (The angle argument to the vector u(z) is (dz/2)/De = 1/40 * 180/pi = 1.5)

However, all this is somewhat irrelevant to the issue here.

We are interested in taking whatever steps we can to make the calculation of the stress more accurate. Accordingly, making an adjustment for the relative speed of air and water is important (the COARE study notes this).

While we might come up with many reasons why the COARE algorithm approach is imperfect, making the simple vector subtraction Uwind-ucurrent is more accurate than not making this adjustment. So why would we leave this as it is when we can so easily do better?
John Wilkin: DMCS Rutgers University
71 Dudley Rd, New Brunswick, NJ 08901-8521, USA. ph: 609-630-0559 jwilkin@rutgers.edu

kurapov
Posts: 29
Joined: Fri Sep 05, 2003 4:49 pm
Location: COAS/OSU

#9 Unread post by kurapov »

The wind speed scale is meters per sec, while the ocean surf currents are 1-2 orders of magnitude as small. Subtracting the ocean currents from wind currents would change the resulting atm. flux only by 1-10% (the difference would be esp. small in most important cases, when winds are strong). What do you think?

User avatar
wilkin
Posts: 875
Joined: Mon Apr 28, 2003 5:44 pm
Location: Rutgers University
Contact:

#10 Unread post by wilkin »

Not all of the ocean has o(2 cm/s) currents.

The importance of the relative wind-current correction depends on your ocean. The depth-average M2 tidal currents on the Nantucket Shoals reach 1.5 m/s over a large area. Surface currents are larger. Since the Nantucket Shoals are a relatively low-wind area, the turbulent exchange coefficients for both heat and momentum will differ when the wind and tide are opposed compared to being in the same direction.
John Wilkin: DMCS Rutgers University
71 Dudley Rd, New Brunswick, NJ 08901-8521, USA. ph: 609-630-0559 jwilkin@rutgers.edu

saulo
Posts: 11
Joined: Wed Dec 19, 2007 4:44 pm
Location: School of Ocean and Earth Science and Technology

Re: Bulk fluxes, surface-relative winds and gustiness

#11 Unread post by saulo »

So ressurecting this thread...
I just got revision 730.
It seems Bulk_flux.F still does not take surface currents into account when computing stress.
Is this correct?
If so, are there other reasons for not including it (other than the reservations discussed above), such as of numerical design in nature?
If someone has done it, I'd appreciate any help on what do I need to modify to have topmost level currents into bulk_flux and not disrupt this nice working code.

Although the stress only changes by a few percent (~2-5%). The work done on currents by the wind can be up to 30% overestimated without surface currents. There are a couple of papers on the subject, one is Dawe and Thompson 2006 GRL.
I've seen it on data as well. I've 20% more energy put in on inertial motions in the mixed layer when not using relative winds for stress calculation. Overforcing the ocean is probably more problematic than any other errors from defintions of what surface current really is.
ALoha
saulo

uranoscopus
Posts: 26
Joined: Sat Mar 17, 2012 4:54 pm
Location: CNR - IAMC
Contact:

Re: Bulk fluxes, surface-relative winds and gustiness

#12 Unread post by uranoscopus »

Dear All.
Any news about that issue?

uranoscopus
Posts: 26
Joined: Sat Mar 17, 2012 4:54 pm
Location: CNR - IAMC
Contact:

Re:

#13 Unread post by uranoscopus »

wilkin wrote:The COARE algorithm is clear that the wind vector needs to be referenced to the surface current. This is straightforward to do in bulk_fluxes because the wind is already expressed in local roms coordinate directions.

Schematically, we modify uwind,vwind:

Uwind(i,j) = Uwind(i,j) - 0.5*(u(i,j,N)+u(i+1,j,N))
Vwind(i,j) = Vwind(i,j) - 0.5*(v(i,j,N)+v(i,j+1,N))
............

John.
I did this modification on the bulk.F code and results seem good for local/regional scales. In some case mesoscale eddies seem better reproduced/located by using such a parameterization. Any idea on how can be this further refined? There might be some disadvantage?

Post Reply