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

Enforce a range of layer interfaces to constant minimum pressure levels for BLOM hybrid vertical coordinate #432

Merged
merged 1 commit into from
Nov 27, 2024

Conversation

matsbn
Copy link
Contributor

@matsbn matsbn commented Nov 22, 2024

Currently for BLOM hybrid vertical coordinate, a water column lighter that the reference potential density of the k = 2 interface would occupy only the first model layer. With this PR, a range of layer interfaces with indices [1, k_range_plevel] will be enforced to the prescribed constant minimum pressure levels, always ensuring some vertical resolution near the surface. Setting the namelist variable k_range_plevel = 1, reproduces the old behaviour. The default value of k_range_plevel has been set to 4 in NorESM configurations, which changes results for vcoord = 'cntiso_hybrid'.

@TomasTorsvik and @JorgSchwinger, it would be interesting to see if this PR would mitigate some of the issues reported in #390.

…layer interfaces are enforced to constant pressure levels.
Copy link
Contributor

@JorgSchwinger JorgSchwinger left a comment

Choose a reason for hiding this comment

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

I'm not knowledgeable enough to understand the details, but otherwise it looks good to me

@JorgSchwinger
Copy link
Contributor

I'm happy to test this for the NOINYOC compsets. I would suggest to do this after this has been merged (since the old behavior can be easily reproduced by namelist changes)

Copy link
Contributor

@TomasTorsvik TomasTorsvik left a comment

Choose a reason for hiding this comment

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

@matsbn - Thanks! Looks fine to me.

One question: Is the code block starting from line 625 in mod_ale_regrid_remap.F90 : do while (kt <= kdmx(i)) sometimes skipped (i.e. can we have kdmx(i) < kt in some locations)?

@matsbn
Copy link
Contributor Author

matsbn commented Nov 25, 2024

@matsbn - Thanks! Looks fine to me.

One question: Is the code block starting from line 625 in mod_ale_regrid_remap.F90 : do while (kt <= kdmx(i)) sometimes skipped (i.e. can we have kdmx(i) < kt in some locations)?

It may happen that kdmx(i) < kt. Then all destination interfaces for the regridding, p_dst(k,i), with k >= kt will be set to the pressure of the deepest interface (at the ocean floor). With k_range_plevel = 1, this would mean that the whole water column is placed in the top layer (k = 1), while k_range_plevel > 1 will ensure some resolution near the surface.

@JorgSchwinger
Copy link
Contributor

Related to this, is there a minimum layer thickness that is maintained?

@matsbn
Copy link
Contributor Author

matsbn commented Nov 25, 2024

Related to this, is there a minimum layer thickness that is maintained?

Yes, for interior layers (not layers that can have zero thickness at the ocean floor), the minimum thickness is controlled by the namelist variable dpmin_interior. Currently this is set to 0.1 m (converted to a pressure thickness in the code).

@matsbn matsbn merged commit 13894c0 into NorESMhub:master Nov 27, 2024
4 of 5 checks passed
@matsbn matsbn deleted the feature-k_range_plevel branch November 27, 2024 09:42
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.

3 participants