Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cherry pick to add an option to calculate omega in non-hydrostatic runs similar to hydrostatic method #344

Open
wants to merge 1 commit into
base: dev/emc
Choose a base branch
from

Conversation

XiaqiongZhou-NOAA
Copy link
Contributor

@XiaqiongZhou-NOAA XiaqiongZhou-NOAA commented Jun 14, 2024

Description
This update cherry-picks from Release 042022 (#184). A new parameter, pass_full_omega_to_physics_in_non_hydrostatic_mode, has been added. When set to true, the omega calculation will match that of hydrostatic runs, using the formula omega = dp/dt. The default value is false, where the calculation remains omega = w * dp/dz as before.

How Has This Been Tested?

This update is tested on Hercules with both intel and gnu compiler and all UFS regression tests produced identical results with default setting.

Checklist:

Please check all whether they apply or not

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • Any dependent changes have been merged and published in downstream modules

…ydrostatic mode when 'pass_full_omega_to_physics_in_non_hydrostatic_mode' is set to true
Copy link
Contributor

@lharris4 lharris4 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this looks good. Thank you for your careful implementation.

if (.not. Atm(n)%flagstruct%hydrostatic .and. .not. Atm(n)%flagstruct%pass_full_omega_to_physics_in_non_hydrostatic_mode) then
Atm(n)%omga(isc:iec,jsc:jec,1:npz) = Atm(n)%delp(isc:iec,jsc:jec,1:npz) / Atm(n)%delz(isc:iec,jsc:jec,1:npz) * Atm(n)%w(isc:iec,jsc:jec,1:npz)
if(Atm(n)%flagstruct%nf_omega>0) then
call del2_cubed(&
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good use of existing API.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants