Skip to content

Fixes for ifx#3765

Draft
billsacks wants to merge 3 commits intoESCOMP:b4b-devfrom
billsacks:fixes_for_ifx
Draft

Fixes for ifx#3765
billsacks wants to merge 3 commits intoESCOMP:b4b-devfrom
billsacks:fixes_for_ifx

Conversation

@billsacks
Copy link
Member

@billsacks billsacks commented Feb 18, 2026

Description of changes

(1) ifx apparently doesn't do short-circuit evaluation, so SMS_D_Ld1.ne30pg3_t232.I1850Clm50BgcSpinup.derecho_intel.clm-cplhist was crashing with floating invalid when using the ifx compiler (via ccs_config_cesm1.0.75).

(2) Some input files need NaNs converted to non-NaN fill values

Specific notes

Contributors other than yourself, if any: @jedwards4b

CTSM Issues Fixed (include github issue #):

Are answers expected to change (and if so in what way)? No

Any User Interface Changes (namelist or namelist defaults changes)? No

Does this create a need to change or add documentation? Did you do so? No No

Testing performed, if any: will do regular

@billsacks
Copy link
Member Author

billsacks commented Feb 18, 2026

With the changes here together with the change in ESCOMP/MOSART#126, the failing derecho-intel I compset tests are now passing with the recent ccs_config update:

DAE_C2_D_Lh12.f10_f10_mg37.I2000Clm50BgcCrop.derecho_intel.clm-DA_multidrv
ERP_D_Ld3_PS.f09_g17.I2000Clm50Sp.derecho_intel.clm-prescribed
ERP_P256x2_D_Ld5.f19_g17_gris4.I1850Clm50BgcCropG.derecho_intel.clm-glcMEC_increase
ERP_P64x2_D.f10_f10_mg37.I2000Clm50SpRtmFl.derecho_intel.clm-default--clm-nofireemis
SMS_D_Ld1_Mmpi-serial.ne3_ne3_mg37.I2000Clm50SpRs.derecho_intel.clm-ptsRLA
SMS_D_Ld1.ne30pg3_t232.I1850Clm50BgcSpinup.derecho_intel.clm-cplhist--clm-matrixcnOn
SMS_D_Ld1.ne30pg3_t232.I1850Clm50BgcSpinup.derecho_intel.clm-cplhist
SMS_D_Ld3.f10_f10_mg37.I1850Clm50BgcCrop.derecho_intel.clm-default--clm-matrixcnOn
SMS_D_Ld3.f10_f10_mg37.I1850Clm50BgcCrop.derecho_intel.clm-default

My next steps:

  • Move the new Prigent file into inputdata (needs fixed directory permissions - currently I tested by temporarily pointing to a file in my scratch space)
  • Rebase this onto the bit-for-bit branch
  • Run aux_clm derecho-intel tests

I'll mark this as ready for review once these things are done.

ifx apparently doesn't do short-circuit evaluation, so
SMS_D_Ld1.ne30pg3_t232.I1850Clm50BgcSpinup.derecho_intel.clm-cplhist was
crashing with floating invalid when using the ifx compiler (via
ccs_config_cesm1.0.75).

Resolves ESCOMP#3763
Changed FillValue from NaN to non-Nan with:

ncatted -a _FillValue,p_ac_MD,o,d,1.e38 /glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/urbandata/CTSM52_urbantv_Li_2024_0.9x1.25_simyr1849-2106_c20260217.nc
ncatted -a _FillValue,p_ac_HD,o,d,1.e38 /glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/urbandata/CTSM52_urbantv_Li_2024_0.9x1.25_simyr1849-2106_c20260217.nc
ncatted -a _FillValue,p_ac_TBD,o,d,1.e38 /glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/urbandata/CTSM52_urbantv_Li_2024_0.9x1.25_simyr1849-2106_c20260217.nc

Partially addresses ESCOMP#3764
Fixed by first setting _FillValue to NaN, then setting _FillValue to the
original missing value, via:
ncatted -a _FillValue,Z0a,o,d,NaN Prigent_2005_roughness_0.25x0.25_cdf5_c260218.nc
ncatted -a _FillValue,Z0a,o,d,1.e32 Prigent_2005_roughness_0.25x0.25_cdf5_c260218.nc

Partially addresses ESCOMP#3764
@jedwards4b
Copy link
Contributor

Where is your new file?

ls /glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/dustemisdata/Prigent_2005_roughness_0.25x0.25*
/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/dustemisdata/Prigent_2005_roughness_0.25x0.25_cdf5_c240127.nc

I don't see it in inputdata.

@ekluzek
Copy link
Collaborator

ekluzek commented Feb 18, 2026

Things I will do:

  • Merge this to b4b-dev
  • Make the b4b-dev tag
  • Make MOSART tag
  • Update .gitmodules to MOSART and ccs_config tag in a different PR Derecho Intel compiler update #3758
  • Run all test suites

@ekluzek
Copy link
Collaborator

ekluzek commented Feb 18, 2026

Where is your new file?

@jedwards4b @billsacks mentions this above. There was a permission problem, that's now fixed, so he couldn't put it in inputdata. But, he'll do that now that the permission problem is resolved. That was my bad...

@ekluzek ekluzek added enhancement new capability or improved behavior of existing capability code health improving internal code structure to make easier to maintain (sustainability) bfb bit-for-bit priority: Immediate Highest priority, something that was unexpected labels Feb 18, 2026
@ekluzek
Copy link
Collaborator

ekluzek commented Feb 18, 2026

Since, this is b4b we shouldn't include the .gitmodules update here. I'll make a different PR for doing that.

@billsacks
Copy link
Member Author

I just moved the Prigent file into the inputdata space (thanks, @ekluzek !).

@ekluzek my understanding of your recent post is that we'll run full testing on this without updating ccs_config in order to ensure bit-for-bit; I think that's the right approach.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bfb bit-for-bit code health improving internal code structure to make easier to maintain (sustainability) enhancement new capability or improved behavior of existing capability priority: Immediate Highest priority, something that was unexpected

Projects

Status: Todo

3 participants

Comments