-
Notifications
You must be signed in to change notification settings - Fork 146
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 longname conflicts #35
Conversation
…, use Sfcprop%slc,smc,stc instead
…bles (added updated_by_physics)
…bles initial_{t,qv,...} to save_{...} to reflect how they are used in the code
See http://www.dogtoytough.net/noaa/longname_checker/conflicts.html - all conflicts fixed. |
I'm quite confused by what has happened with the various rainfall variables throughout the code. In the original GFS_physics_driver, the following happens:
It seems to me that we need the following variables (or similar):
|
Good point, Grant. The entire thing is a mess. Right now, we still get identical results, so what we have been doing thus far in the code of this PR seems to be ok. But I totally agree that instead of reusing rain1 for different purposes all the time, we should have exactly one variable for each purpose. EDIT: I am just thinking to finish the longname conflicts and metadata-mapping first, and then take care of these. As long as we still get bfb results, we know that in principle things work they way the did beforehand? |
Are there any consequences of setting multiple variables, for example,
using more memory? Or is this in the noise? If it is in the noise, it seems
we should indeed split this variable.
…On Tue, Jan 9, 2018 at 4:30 PM, Dom Heinzeller ***@***.***> wrote:
Good point, Grant. The entire thing is a mess. Right now, we still get
identical results, so what we have been doing thus far in the code of this
PR seems to be ok. But I totally agree that instead of reusing rain1 for
different purposes all the time, we should have exactly one variable for
each purpose.
—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub
<#35 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AT9oAvchaJUV3eCQYPL6CDJYxOPbH01cks5tI-iFgaJpZM4RRO4w>
.
|
By creating interstitial variables, and quite a few of them, we do increase the memory footprint of the application. However, this is not necessarily bad for the performance, since in the original code, local variables are defined/allocated each time GFS_physics_driver or GFS_radiation_driver is run, and deleted when these drivers are left. In our code, the arrays stay alive. It will be interesting to see if we need to create another interstitial routine to zero out interstitial fields that would have been created otherwise. Maybe not, depends on whether the compiler did initialize everything to zero by default or not. |
Here are some other questions regarding this PR:
Should we go ahead and accept this PR and address the rainfall and other issues afterward? |
Ligia, Man and I sat down together one afternoon and decided on the longname with conflicts. Almost all the time, we went for a longname that was already suggested by one of the schemes, i.e. the "layer" and "level" and "interface" decorators were already in there. I find it useful to be able to distinguish between cell centers and interfaces, but whether the term "layer" is such a good choice I doubt. I would prefer having "level" and "interface". We can fix all this later on. While this PR is sitting here, I have piled up a large number of commits on my machine already. As I am going ahead with the metadata tables, I am finding quite a few things to change (obvious bugs were the wrong variable is passed in, but also just metadata-related issues such as the wrong rank, unit or type). |
OK, thanks for the info. We had a discussion several months ago regarding "layer", "level", and "interface". Interestingly, there were many folks in the room for whom "level" was synonymous with "interface" (although "level" to me means grid cell center). So, it seems that both "layer" and "level" are ambiguous and may not immediately convey that the variable is in the center (vertically) of the grid cell. Perhaps that is one reason why we were attempting to use the convention that unless the variable name said otherwise, the variable is assumed to be located in the grid cell centers. This also jives with the CF conventions, which tend not to use this kind of specifier. I still think that calling out which variables are located on grid cell vertical interfaces by using the "interface" identifier is important, so there is definitely agreement there. So, what you're saying is that we should just go ahead and approve this then and continue to change longnames from this point forward in future PRs? I'm happy to do so. |
@grantfirl I think this would be best. There is so much more stuff to clean up afterwards anyway. As long as each PR still produces bfb results and doesn't introduce absolute nonsense I would advocate to go ahead. If you suggest changes right away, I will include them in the next round of longname conflict PRs. |
OK, sounds good. |
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.
Approved with potential issues called out to be addressed in future PRs.
* fv3atm issue NCAR#37: fix the real(8) lat/lon in netcdf file * fv3atm NCAR#35: Reducing background vertical diffusivities in the inversion layers * fv3atm NCAR#24: bug in gfsphysics/physics/moninedmf_hafs.f * fv3atm NCAR#18: Optimize netcdf write component and bugfix for post and samfdeepcnv.f * set (0-1) bounds for ficein_cpl * remove cache_size due to lower netcdf verion 4.5.1 on mars * Change ice falling to 0.9 in gfsphysics/physics/gfdl_cloud_microphys.F90
Cleanup of radiation (clouds) - microphysics interaction (based on NCAR#33)
* update post lib to upp lib and add dzmin change in fv3 dycore * add dycore change NCAR#35 * merge with top of dev/emc dycore branch * remove duplicate read_data in fms_mod in external_ic.F90
Bug fix for cloud effective radius for convective clouds (HR1)
Bug fix for cloud effective radius for convective clouds (HR1)
This PR fixes all long name conflicts after the merge of the separated physics schemes. It also addresses a few bugs found in the code after the merge and renames the newly created variables initial_{t,qv,...} to save_{t,qv,...} to better reflect the intended usage of these variables.
The results are bit-for-bit identical with previous versions of the code (tested on Theia).