-
Notifications
You must be signed in to change notification settings - Fork 132
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
Dummy and unused variables. #180
Conversation
Update master
With the initialization part, I was holding these off for a separate tag. This relies on some Icepack changes too. I agree that commenting out the BGC variables is misleading, but I left them commented so when they are actually used, they can easily be added back. |
For the NAG compiler I used the -nan flag. Intel is supposed to use -check uninit, but this did nothing for me. Dave |
There is one new failure on all compilers on conrad, conrad_*_restart_gx3_16x2x5x10x20_drakeX2 It fails during initialization with the following error, (abort_ice)ABORTED: and the traceback is cice 00000000004CF44E ice_exit_mp_abort 65 ice_exit.F90 The rake is the only decomp that calls ice_distributionDestroy. Had a quick look and it looks like the checks on successful deallocation in that routine are new. Maybe we need to back off on that check. |
So, this is a concern. The idea is that these function calls return an error status, but nothing was done with them. I added error handling for this purpose. Doesn't this highlight an issue in the rake algorithm? |
In this case, I think it just means there is a temporary distrb type created that is not necessarily used entirely. I think it just stores a subset of information temporarily. We could add an arbitrary allocate on the array in the data structure that is not currently used. Or we could remove the deallocate istat checks. Either is acceptable to me. The former is more robust, the latter is more flexible. I guess I vote for the former if I have to vote. |
Can we merge this yet? |
@dabail10, we just need the istat checks in the distributionDestroy routine turned off. The others in the rake routine should/can remain. Also, please confirm that you tested the drakeX2 option in your testing. thanks. |
Ok. What is the difference between a drakeX2 and a rakeX2? Dave |
drakeX2 is the test option and will appear in the testname. It turns on the rakeX2 option in namelist. |
So, the base_suite does a rakeX2 in the cheyenne_intel_decomp_gx3_4x2x25x29x5 test. Is this enough? Dave |
I believe a rakeX2 test in the decomp test is adequate. thanks. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I retested on 4 compilers and things looks OK. There is a seg fault in conrad_gnu_restart_gx3_6x2x50x58x1_droundrobin that I can't explain just now, but I am going to let that pass for the moment.
* update pgi compiler optimization to address reproducibility problems * Dummy and unused variables. (CICE-Consortium#180) * Remove some dummy arguments and unused variables. * Dummy variable cleanup * Cleanup * Remove icepack from commit * Reset icepack master * Fix * Fix * Update icepack * fix * Fix flush ifdef logic * Uninitialized variables. * Additional initialization * Update dummy * more dummy fixes * More hobart changes * Update Hobart Intel settings * Additional Hobart Intel changes * Update icepack * Some tweaks to dummy variables * Remove some initialization code. * Only remove istat checks in one routine. * update icepack (CICE-Consortium#188)
* Allocatable dynamics version using namelist * Updated ice_in according to "Allocated Dynamics" * update scripts to automatically set namelist associated with grids and blocks * fix uarea initialization related to NYGLOB cpp (#1) * update pgi optimzation to address reproducibility problems (#2) * mods for nag compiler failure (#3) * Update to Consortium master bbec5d1 (#4) * update pgi compiler optimization to address reproducibility problems * Dummy and unused variables. (#180) * Remove some dummy arguments and unused variables. * Dummy variable cleanup * Cleanup * Remove icepack from commit * Reset icepack master * Fix * Fix * Update icepack * fix * Fix flush ifdef logic * Uninitialized variables. * Additional initialization * Update dummy * more dummy fixes * More hobart changes * Update Hobart Intel settings * Additional Hobart Intel changes * Update icepack * Some tweaks to dummy variables * Remove some initialization code. * Only remove istat checks in one routine. * update icepack (#188) * fix ice_abort error in ice_state.F90 (#5)
In subroutine 'makemask', the array 'uvm' is initialized in a loop on indices {ilo, ihi} and {jlo, jhi}, but is then used in a loop on indices {1, nx_block} and {1, ny_block}, causing an uninitialized value to be used (at line 1672). Initialize the whole array to zero first, to avoid using uninitialized values. The initialization to zero is actually commented out, following CICE-Consortium#180, so uncomment it.
In subroutine 'init_grid2', the array 'tarea' is initialized in a loop on indices {ilo, ihi} and {jlo, jhi}, but is then used in subroutine 'makemask' in a loop on indices {1, nx_block} and {1, ny_block}, causing an uninitialized value to be used (at line 1693). Initialize the whole array to zero first, to avoid using uninitialized values. The initialization to zero is actually commented out, following CICE-Consortium#180, so uncomment it.
In subroutine 'init_grid2', the array 'tarea' is initialized in a loop on indices {ilo, ihi} and {jlo, jhi}, but is then used in subroutine 'makemask' in a loop on indices {1, nx_block} and {1, ny_block}, causing an uninitialized value to be used (at line 1693). Initialize the whole array to zero first, to avoid using uninitialized values. The initialization to zero is actually commented out, following CICE-Consortium#180, so uncomment it. (cherry picked from commit ca2f4d2)
In subroutine 'makemask', the array 'uvm' is initialized in a loop on indices {ilo, ihi} and {jlo, jhi}, but is then used in a loop on indices {1, nx_block} and {1, ny_block}, causing an uninitialized value to be used (at line 1672). Initialize the whole array to zero first, to avoid using uninitialized values. The initialization to zero is actually commented out, following CICE-Consortium#180, so uncomment it. (cherry picked from commit dacea48)
In subroutine 'makemask', the array 'uvm' is initialized in a loop on indices {ilo, ihi} and {jlo, jhi}, but is then used in a loop on indices {1, nx_block} and {1, ny_block}, causing an uninitialized value to be used (at line 1672). Initialize the whole array to zero first, to avoid using uninitialized values. The initialization to zero is actually commented out, following CICE-Consortium#180, so uncomment it.
In subroutine 'init_grid2', the array 'tarea' is initialized in a loop on indices {ilo, ihi} and {jlo, jhi}, but is then used in subroutine 'makemask' in a loop on indices {1, nx_block} and {1, ny_block}, causing an uninitialized value to be used (at line 1693). Initialize the whole array to zero first, to avoid using uninitialized values. The initialization to zero is actually commented out, following CICE-Consortium#180, so uncomment it.
In subroutine 'init_grid2', the array 'tarea' is initialized in a loop on indices {ilo, ihi} and {jlo, jhi}, but is then used in subroutine 'makemask' in a loop on indices {1, nx_block} and {1, ny_block}, potentially causing an uninitialized value to be used (at line 1693). Initialize the whole array to zero first, to avoid using uninitialized values. The initialization to zero is actually commented out, following 10c446a (Dummy and unused variables. (CICE-Consortium#180), 2018-09-22) [1] , so uncomment it. [1] CICE-Consortium#180
In subroutine 'makemask', the array 'uvm' is initialized in a loop on indices {ilo, ihi} and {jlo, jhi}, but is then used in a loop on indices {1, nx_block} and {1, ny_block}, potentially causing an uninitialized value to be used (at line 1672). Initialize the whole array to zero first, to avoid using uninitialized values. The initialization to zero is actually commented out, following 10c446a (Dummy and unused variables. (CICE-Consortium#180), 2018-09-22) [1], so uncomment it. [1] CICE-Consortium#180
In subroutine 'init_grid2', the array 'tarea' is initialized in a loop on indices {ilo, ihi} and {jlo, jhi}, but is then used in subroutine 'makemask' in a loop on indices {1, nx_block} and {1, ny_block}, potentially causing an uninitialized value to be used (at line 1693). Initialize the whole array to zero first, to avoid using uninitialized values. The initialization to zero is actually commented out, following 10c446a (Dummy and unused variables. (CICE-Consortium#180), 2018-09-22) [1] , so uncomment it. [1] CICE-Consortium#180
In subroutine 'makemask', the array 'uvm' is initialized in a loop on indices {ilo, ihi} and {jlo, jhi}, but is then used in a loop on indices {1, nx_block} and {1, ny_block}, potentially causing an uninitialized value to be used (at line 1672). Initialize the whole array to zero first, to avoid using uninitialized values. The initialization to zero is actually commented out, following 10c446a (Dummy and unused variables. (CICE-Consortium#180), 2018-09-22) [1], so uncomment it. [1] CICE-Consortium#180
This is just the removal or commenting out of a number of dummy arguments and unused variables. I have in some comments some uninitialized variable changes (answer changing) that will come in a later tag. However, everything in this pull request is BFB with the NAG compiler. There is a lot here and I am happy to discuss these.
Developer(s): D. Bailey
Please suggest code Pull Request reviewers in the column at right.
Are the code changes bit for bit, different at roundoff level, or more substantial? BFB
Is the documentation being updated with this PR? (Y/N) N
If not, does the documentation need to be updated separately at a later time? (Y/N) N
Note: "Documentation" includes information on the wiki and .rst files in doc/source/,
which are used to create the online technical docs at https://readthedocs.org/projects/cice-consortium-cice/.
Other Relevant Details: