NCAR / icar

The Intermediate Complexity Atmospheric Research model (ICAR)
MIT License
72 stars 53 forks source link

Fix upper wind anomaly with iterative winds and lower flat z height #130

Closed gutmann closed 2 years ago

gutmann commented 2 years ago

TYPE: bug fix & enhancement

KEYWORDS: iterative winds, flat_z_height, wind

SOURCE: Ethan Gutmann, NCAR

DESCRIPTION OF CHANGES: Primarily, this is a fix for issue #129 . This issue noted that upper level winds in icar could contain anomalous vertical motion when the flat Z height was set somewhere below the model top and the iterative wind solver was used (wind=3). Here we have modified the domain object so that the max level is set to the top of the model, and in the iterative wind solver we have modified wind_K to always defaults to the top of the model. Because there is some potentially valuable behavior in the old configuration, most of that code was left in but commented out.

In addition, this pull request has cleaned up some of the array 2-D/3-D calls to the array utilities, and created 2D arrays for latitude and longitude if they are read from a one dimensional array. Note that one dimensional arrays should not generally be used for the domain in icar because the grid will not be equal area in that case. However, for small ideal tests, this is a useful functionality to have. We might want to consider adding a warning such that when one dimensional arrays are detected the user is warned that this is not a desirable configuration.

Finally, this pull request has begun adding the functionality to permit a combination of the linear wind solver, and the iterative wind solver to be used. Some of the changes were intermingled, and this functionality should not be considered live yet so no documentation has been added.

ISSUE: Fixes #129

TESTS CONDUCTED: steps to reproduce in issue used, upper level winds decay to 0 at model top now.

NOTES: Beyond being a bug fix, this may modify model behavior such that more lifting occurs. Recommend testing and lowering model top to reproduce old outputs as needed.

Checklist

bertjebertjek commented 2 years ago

does this make my comments visible?