Clarification Needed on Implementing Body Force in ROMS

Report or discuss software problems and other woes

Moderators: arango, robertson

Post Reply
Message
Author
hyc006
Posts: 17
Joined: Thu Nov 30, 2023 2:12 am
Location: UCSD

Clarification Needed on Implementing Body Force in ROMS

#1 Unread post by hyc006 »

Dear ROMS community,

I hope this message finds you well. I'm currently in the process of incorporating the force due to sea surface tilt as a body force in my ROMS model. I've initiated this process by defining 'BODYFORCE' in my .h file. Additionally, I've made adjustments to the parameter LEVSFRC. By setting LEVSFRC == 1, I've indicated that surface stress should be applied from level 1 to N, where N represents the total number of layers in the model. While navigating through this implementation, I've encountered a few questions and uncertainties that I believe could benefit from your expertise and insights.

Definition of Body Force: When defining the body force in my .h file and within the 'ana_smflux' file, I'm unclear whether the force specified (sustr and svstr) should be for each layer individually or should it represent the cumulative force across all layers?

Surface vs. Bottom Stress: In terms of efficiency and accuracy, would it be more advisable to set the body force using surface stress (sustr and svstr) or bottom stress (bustr and bvstr)?

Interpretation of Output: Upon inspecting the output history files, I'm uncertain about the interpretation of sustr, svstr, bustr, and bvstr. Are they still indicative of surface and bottom stresses, or do they now represent the applied body force?

Unit Conversion: Given that stress is measured in N/m^2 and body force in N, I assume that the body force calculated using sustr should be (dy * dz * sustr), where dy represents the grid size in the y-direction and dz is the depth difference between two layers. Can anyone confirm this understanding?

Compatibility with Additional Surface Wind Stress: If I set the body force using surface stress (sustr and svstr), would I still be able to introduce another surface wind stress component that differs from the one used for the body force?

Impact on Bottom Friction: When setting the body force based on bottom stress, would it influence the bottom friction, or are these two aspects independent of each other?

I understand that these are quite detailed and technical questions, but any guidance or insights you could offer would be immensely appreciated. Thank you all for your time and assistance.

Thanks,
Hsin-Yi

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

Re: Clarification Needed on Implementing Body Force in ROMS

#2 Unread post by wilkin »

The BODYFORCE option is designed to directly impart momentum into the cell centers, by-passing the role of vertical turbulence to transfer surface stress into the interior by mixing.

The momentum flux is thus distributed across the chosen set of layers as a stress divergence (Tau_k+1 minus Tau_k) / layer k thickness.

You are correct that LEVSFRC == 1 will distribute the force, expressed as a stress, throughout the entire water column (depth h).

But the driving force must still be given as a stress in N/m2.

In a depth averaged momentum equation, you are effectively saying that

d(ubar)/dt ... = ... 1/(rho0*h) (Tau_surface - Tau_bottom)

with Tau_surface in N/m2.

It sounds like you want to equate a horizontal pressure gradient to the stress:

g d(zeta)dx = 1/(rho0*h) Tau_surface

and your Tau_s is rho0*g*h*d(zeta)/dx

Again, Tau_s is N/m2. This will be the value sustr recorded in the output.

Regarding your question about bottom drag, look in rhs3d.F. It appears to me the bottom stress (as bodyforce) is additive. So, I think you can combine them.
John Wilkin: DMCS Rutgers University
71 Dudley Rd, New Brunswick, NJ 08901-8521, USA. ph: 609-630-0559 jwilkin@rutgers.edu

hyc006
Posts: 17
Joined: Thu Nov 30, 2023 2:12 am
Location: UCSD

Re: Clarification Needed on Implementing Body Force in ROMS

#3 Unread post by hyc006 »

Thank you for providing clarification. I have an additional question that has arisen. I'm curious about where I could define my bustr and bvstr variables. It appears that it's not as straightforward as editing the ana_smflux.h file, unlike sustr and svstr.

Post Reply