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
[x] Closes issue #129
[x] Mostly backwards compatible, model behavior may change slightly
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