-
Notifications
You must be signed in to change notification settings - Fork 141
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
uvm initialization #61
Comments
I'm confused by this one. We do a halo update of uvm right after we compute it. Also, the NAG compiler with -nan on was not catching this. |
Okay, let's not worry about it for now. They've been working on their version of the code, which we will try to merge into the main CICE sooner or later. I'll ask them to run the new code through their tests, and we'll see if it comes up again. I'll take this off of the project board but keep the issue open. |
@mhrib @TillRasmussen |
@dabail10 please test with your Nag compiler - if it comes back clean then we can close this issue. |
I have looked into the compile flags that was used. For IEEE, which were the one that displayed the issue, the flags were "-g -00 -ieee=stop -nan". Unfortunatly we dont have the compiler inhouse at DMI anymore. |
I have been playing with the nag compiler this morning and have not been able to duplicate this error. There is an interesting line at 1584, There is one other thing though. When I add -nan to the compile, I get a separate error,
I spent a few minutes trying to understand this. This only happens when threading and -nan is set. The error went away if I removed the threadprivate OMP definition at line 51 and then changed the OMP PARALLEL DEFAULT(none) statement on line 70 to OMP PARALLEL PRIVATE(domp_iam,domp_nt,rdomp_iam,rdomp_nt). At this time, I think we have to assume this is a compiler bug. It doesn't make a lot of sense that the -nan compiler argument breaks some thread private implementation. On the other hand, it would be nice to be able to use the -nan option, and I do have some lingering concerns about whether maybe the thread implementation in the evp_1d is completely correct. What I will do is add a comment to #279 and reopen it (it probably should not have been closed). This might be part of the evp kernel=2 validation still needed. Separately, I suggest we close this issue. |
We have not been able to reproduce the original problem, and so closing the issue. |
Now that I Iook at this again. Is there a problem wtth the openmp? |
For reference, these are the lines Till is talking about (right?): CICE/cicecore/cicedynB/infrastructure/ice_grid.F90 Lines 1641 to 1657 in a76893a
|
above is the first loop, the second one is: CICE/cicecore/cicedynB/infrastructure/ice_grid.F90 Lines 1666 to 1675 in a76893a
and the uninitialized value in |
The variables in the OMP loop have to be private so they are unique to each block/thread. Variables that are already scattered and have iblk as an array index are fine. |
@apcraig @TillRasmussen |
Yes I think so. In the first loop from @phil-blain comment on the 29th of January uvm is calculated from ilo to ihi and jlo to jhi and then copied to the halo zones. I think that this is fine except now that I look at it there is an integer divided by a double in the calculation of bm. |
This is being addressed in #560 and follow on. Will close now. |
* Change averaging for C grid * Fix masking * Use the A averager * Fix halo updates * - Add wall kmt_type - Add blockep4, uniformp5, medblocke, blocke to ice_data_type - Add ability to check if C/CD fields are on restart file and skip - Add new tests to gridsys_suite - Update documentation with new namelist * Rename box2000 to boxwallp5 Co-authored-by: David Bailey <[email protected]>
the NAG compiler reports a missing initialization in the uvm halo, line 1399 of ice_grid.f90
(issue noted by DMI collaborators)
The text was updated successfully, but these errors were encountered: