Conversation
12363db to
63e7653
Compare
dustinswales
left a comment
There was a problem hiding this comment.
Looks good to me.
The precision police abide :)
|
@scrasmussen @grantfirl I ran tests using some of Wayne's files. His files set a fill value that's quite large for the surface forcing variables e.g.: With this PR, that of course causes the This is just one example in the code of many where these types of checks are done. Is there another way to check if the value is missing. Is there issue with checking if var == missing_value, as I see in other places in the code? I understand that this method may not be reliable due to precision errors of floating point numbers, so probably not! I will note that the noflux case did run through to completion and produced output, since it did not get caught up in any of these missing_value comparisons. |
…nterfaces for single and double precision
5e35c49 to
ff31f8e
Compare
@hertneky This commit adds generic procedures to report true/false if a variable is a missing value. The generic interfaces mean that it can choose the same datatype for MISSING_VALUE as the input value. Using a |
ff31f8e to
403e097
Compare
|
@scrasmussen I think that scrasmussen#8 should fix whatever issue was showing up in the RTs. I ran them on my local machine and they ran fine. |
…_precisions_2 Minor changes to Soren's PR
|
@scrasmussen CI RTs are still failing. Hmm. I can't reproduce the failure on my machine, which is odd. I'm re-running the debug mode RTs only to see if it's only the single precision tests failing (which kills the associated tests that take longer). |
|
@scrasmussen I can now reproduce some of the errors in the CI tests after re-downloading the case data files. I'm looking into it. |
|
@scrasmussen Still working on a fix for this. There are many places that had been assuming -999 that still exist in the code that I'm fixing. There will be another PR into your branch shortly. |
|
@scrasmussen @hertneky Please see scrasmussen#9. It updates this PR branch to the latest main and has many fixes for surface variable initialization that no longer rely on checking for -999 or <0. |
…_precisions More fixes for missing value branch
|
@scrasmussen @hertneky Using nccmp -d on manually-run RT output shows that the differences are only in the missing data values, as hypothesized. I didn't check all files, but the ones that I did showed this. |
Some tests don't show any differences with |
|
@hertneky @scrasmussen @mkavulich Please update the baselines on mohawk with artifacts from https://github.com/NCAR/ccpp-scm/actions/runs/14599498366 |
Updated the baselines, thanks for your work on this @grantfirl! |
DESCRIPTION OF CHANGES:
-9999.0and-9999missing_value_spandmissing_value_dpvariables need to be used in the subroutine definitions.NetCDF_read_att_dp,NetCDF_put_var_1d_sp,NetCDF_put_var_2d_sp,NetCDF_put_var_1d_dp,NetCDF_put_var_2d_dp,check_missing_real_sp_0d,check_missing_real_sp_1d,conditionally_set_real_sp_var_0d,conditionally_set_real_sp_var_1dISSUES: Related to issues brought up in Issue #519
TESTS: compiles both single and double precision build setup