-
Notifications
You must be signed in to change notification settings - Fork 118
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
Fix initialization of ??_corner flags #42
Conversation
Will move this to fv_grid_tools.F90 in next commit.
This has been moved from grid_utils_init() in model/fv_grid_utils.F90
Hi, Oliver. Thanks.
We are working on a set of regression tests but I don't think there is a
good way to run them on GitHub. I know the MOM6 team has a way to do it but
it took them years to set it all up.
Lucas
…On Thu, May 7, 2020 at 1:19 PM Oliver Fuhrer ***@***.***> wrote:
This fixes issue #41
<#41> where
there was a read before write of the ??_corner flags in init_grid() in
tools/fv_grid_tools.F90. The initialization of ??_corner has been moved
to tools/fv_grid_tools.F90.
Side note to @bensonr <https://github.com/bensonr> and @lharris4
<https://github.com/lharris4>: It would be great to have some regression
tests integrated into GitHub in order to make sure that such PR's actually
pass regression.
Thanks to @rheacangeo <https://github.com/rheacangeo> for the bug report!
------------------------------
You can view, comment on, or merge this pull request online at:
#42
Commit Summary
- Removed setting of ??_corner flags
- Set ??_corner flags in init_grid()
File Changes
- *M* model/fv_grid_utils.F90
<https://github.com/NOAA-GFDL/GFDL_atmos_cubed_sphere/pull/42/files#diff-ddf37bede6cfe0affd69e15f3d601661>
(12)
- *M* tools/fv_grid_tools.F90
<https://github.com/NOAA-GFDL/GFDL_atmos_cubed_sphere/pull/42/files#diff-e518b67cd62c89686a68ae4d3c22499a>
(12)
Patch Links:
- https://github.com/NOAA-GFDL/GFDL_atmos_cubed_sphere/pull/42.patch
- https://github.com/NOAA-GFDL/GFDL_atmos_cubed_sphere/pull/42.diff
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#42>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AMUQRVF3C3P3ESPQVBSZQEDRQLURZANCNFSM4M3QJHJA>
.
|
@lharris4, the MOM6 team has two types of tests. The small tests (mainly a few builds with small tests to verify the executable works and reproduces) are run on Travis CI. After the Travis CI tests pass, they bring the updates onto our internal GitLab instance where they run longer tests on Gaea. If you would like to look into doing this with GFDL_atmos_cubed_sphere, we can talk with the MOM group and help get you setup. However, outside collaborators will not be able to see the results of these tests. We are also in the process of investigating the use of one or more of the cloud providers (e.g. AWS, Google Compute, Azure, etc.) to run full regression tests. Last year, @thomas-robinson and myself showed it was possible to run regression tests on one of the cloud providers. With the help of others, we are working to acquire funding to implement the full solution. This will allow us to use GitHub Actions configured to use the cloud provider to run both quick verification (build, style, etc) tests, and when desired full regression tests. If you would like more information on this, we can put a meeting together to answer any questions you and others may have. |
Thanks @lharris4 and @underwoo for your answers. We've used GitHub integration for TravisCI, CircleCI and Jenkins and it works great. The advantage of making test results also visible to contributors who make a PR, is that you can push the responsibility of getting tests to pass to the developers which takes a big burden off the shoulders of the code maintainers. This is how a PR would look like... At least for MOM5 it seems that the TravisCI test results are visible to outside users. We would be more than happy to help with this as well, if there's anything you can see us do. |
I would just add that even a simple test usingTravis/github/CircleCIs free tier would be an incredibly useful tool. This practice is ubiquitous in the open source community for a reason, it greatly amplifies the trust between maintainers and contributors, and can greatly accelerate development. The great thing about CI systems is you can add complexity incrementally. At Vulcan, we started with bit-for-bit regression tests of the C48 model (which took approx 2 week to set up, including learning how to build the model in docker), and now we have much more sophisticated system, but that doesn't need to happen overnight. |
Thanks @nbren12 @ofuhrer for your suggestions. We use a combination of Travis and GH actions for FMS CI today and are building containers for a tier of real data tests with GFDL models. We have a plan to use these same concepts to build a CI system for the dycore. Anything you can offer to accelerate the process will be appreciated. I'd like to move this conversation to issue #43 with collaboration occurring via GH, direct email, and video conferences as needed. |
@nbren12 can you perform a code review on the updates in this PR - thanks |
@bensonr I wish I could. I’m not really an expert on this part of the code base, just got pulled in for the CI discussion. Maybe @rheacangeo can take a look? |
Not sure where this is at. I guess the change does cause meteorological differences and thus should go through some sort of testing on GFDL side. |
Hi, Oliver. Thanks for bringing this to our attention. This probably fell
through the cracks with all that was going on in May. I should take a look.
Lucas
…On Thu, Jul 9, 2020 at 12:31 AM Oliver Fuhrer ***@***.***> wrote:
Not sure where this is at. I guess the change does cause meteorological
differences and thus should go through some sort of testing on GFDL side.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#42 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AMUQRVGRDKQKDUPJNWRYCJ3R2VBZVANCNFSM4M3QJHJA>
.
|
Lucas - let me know when you've finished your analysis by performing a formal review. Once done, I will merge it in. |
Hi, all. I have noticed some unexpected changes in the way that two grid
coefficients are computed with this change:
after: 735: da_max_c/da_min_c= 3.04909832895044
before: 735: da_max_c/da_min_c= 2.28672617943394
which appear to be due to changes in how the areas of the corner cells of
the dual grid (which are properly hexagons and not squares) are computed.
This change also results in a change to how the artificial diffusion is
applied globally, and may lead to significant changes in the solution.
**However** I think that after applying this fix this is the *correct*
behavior: with this fix the areas of the dual-grid cells in the corners are
correct. I will do some tests to check.
Thanks,
Lucas
…On Tue, Jul 14, 2020 at 2:08 PM bensonr ***@***.***> wrote:
Lucas - let me know when you've finished your analysis by performing a
formal review. Once done, I will merge it in.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#42 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AMUQRVB64KHFAVH3WYHJSCTR3SNK7ANCNFSM4M3QJHJA>
.
|
Hi, all. Upon further examination I believe that there is a lot more that
would need to be changed to implement this than just moving the
declarations for ??_corner to init_grid(). So let's leave out the code
change for now until this can be more thoroughly considered.
Thanks,
Lucas
On Wed, Jul 15, 2020 at 12:09 PM Lucas Harris - NOAA Federal <
[email protected]> wrote:
… Hi, all. I have noticed some unexpected changes in the way that two grid
coefficients are computed with this change:
after: 735: da_max_c/da_min_c= 3.04909832895044
before: 735: da_max_c/da_min_c= 2.28672617943394
which appear to be due to changes in how the areas of the corner cells of
the dual grid (which are properly hexagons and not squares) are computed.
This change also results in a change to how the artificial diffusion is
applied globally, and may lead to significant changes in the solution.
**However** I think that after applying this fix this is the *correct*
behavior: with this fix the areas of the dual-grid cells in the corners are
correct. I will do some tests to check.
Thanks,
Lucas
On Tue, Jul 14, 2020 at 2:08 PM bensonr ***@***.***> wrote:
> Lucas - let me know when you've finished your analysis by performing a
> formal review. Once done, I will merge it in.
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <#42 (comment)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AMUQRVB64KHFAVH3WYHJSCTR3SNK7ANCNFSM4M3QJHJA>
> .
>
|
Hi Lucas, |
Hi, Oli. Thanks for the reminder. In that case you can simply set the four
flags to .false. in fv_arrays, where they are defined.
Lucas
…On Wed, Jul 15, 2020 at 1:18 PM Oliver Fuhrer ***@***.***> wrote:
Hi Lucas,
All good, just note that in the current implementation these flags are
being read before they are actually being set (see original Issue #41
<#41> .
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#42 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AMUQRVEINAQ5ENBQQ73GTSTR3XQETANCNFSM4M3QJHJA>
.
|
Fixed via PR #113 and cherry-picked to master. |
This fixes issue #41 where of the
??_corner
flags ininit_grid()
intools/fv_grid_tools.F90
are being read before setting them. The initialization of??_corner
has been moved totools/fv_grid_tools.F90
.Side note to @bensonr and @lharris4: It would be great to have some regression tests integrated into GitHub in order to make sure that such PR's actually pass regression.
Thanks to @rheacangeo for the bug report!