Skip to content

Combination of #1175 and #1176#1178

Merged
grantfirl merged 4 commits intoNCAR:mainfrom
grantfirl:NRL_combo_20251119
Nov 21, 2025
Merged

Combination of #1175 and #1176#1178
grantfirl merged 4 commits intoNCAR:mainfrom
grantfirl:NRL_combo_20251119

Conversation

@grantfirl
Copy link
Collaborator

Description of Changes:

See #1175 and #1176

Tests Conducted:

SCM RTs, UFS RTs

Dependencies:

None

Documentation:

None

Issue (optional):

Closes #1170
Also related to ESCOMP/ESMStandardNames#130

Contributors (optional):

@matusmartini @climbfuji

Matus Martini and others added 4 commits November 13, 2025 18:06
This PR implements multiple diagnostic bucket reset periods for total totprcpb and convective cnvprcpb preciptitation variables by combining different accumulation amounts into an additional dimension with number_of_diagnostic_buckets. More bucket diagnostics (e.g., snow, ice, freezing ice, graupel) could be added to this list.

Note this PR does not affect the accumulation of physics tendencies or radiative fluxes.

This PR also removes unused bucket-related variables. No need to pass fhzero and cnvprcpb as arguments in GWD and SCNV schemes, respectively.
…ation/radiation_aerosols.f to fix b4b differences with Intel oneAPI 2025.3.0 (NCAR#36)

Disable OpenMP for certain computations in init phase in physics/Radiation/radiation_aerosols.f to fix bit-for-bit differences in NEPTUNE with Intel oneAPI 2025.2.1+. Also: initialize a few more variables to make debugging easier.
@grantfirl
Copy link
Collaborator Author

grantfirl commented Nov 19, 2025

SCM testing is in here (PASSED with no RT changes): NCAR/ccpp-scm#640

Copy link
Collaborator

@climbfuji climbfuji left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@grantfirl
Copy link
Collaborator Author

grantfirl commented Nov 20, 2025

I'm getting several unexpected failures on UFS RTs when combining this with an update from NCAR/main (see https://github.com/grantfirl/ccpp-physics/tree/NCAR_sync_20251112). This will take some investigating before we can merge this.

So far, about halfway through the list, all failures are with the intel compiler (oneapi 2024.2.1) used on Ursa. @climbfuji Is this expected, in your opinion?

@grantfirl
Copy link
Collaborator Author

grantfirl commented Nov 20, 2025

List of failed UFS RTs:

control_flake intel
control_CubedSphereGrid intel
control_CubedSphereGrid_parallel intel
control_latlon intel
control_wrtGauss_netcdf_parallel intel
control_c48 intel
control_c48.v2.sfc intel
control_c48_lnd_iau intel
control_c192 intel
control_c384 intel
control_c384gdas intel
control_stochy intel
control_stochy_restart intel
control_lndp intel
control_iovr4 intel
control_iovr5 intel
rap_control intel
regional_spp_sppt_shum_skeb intel
rap_decomp intel
rap_2threads intel
rap_restart intel
rap_sfcdiff intel
rap_sfcdiff_decomp intel
rap_sfcdiff_restart intel
hrrr_control intel
hrrr_control_decomp intel
hrrr_control_2threads intel
hrrr_control_restart intel
rrfs_v1beta intel
rrfs_v1nssl intel
rrfs_v1nssl_nohailnoccn intel
control_ras intel
control_CubedSphereGrid_debug intel
control_wrtGauss_netcdf_parallel_debug intel
control_stochy_debug intel
control_lndp_debug intel
control_ras_debug intel
control_diag_debug intel
rap_control_debug intel
hrrr_control_debug intel
hrrr_gf_debug intel
hrrr_c3_debug intel
rap_unified_drag_suite_debug intel
rap_diag_debug intel
rap_cires_ugwp_debug intel
rap_unified_ugwp_debug intel
rap_lndp_debug intel
rap_progcld_thompson_debug intel
rap_noah_debug intel
rap_sfcdiff_debug intel
rap_noah_sfcdiff_cires_ugwp_debug intel
rap_clm_lake_debug intel
rap_flake_debug intel
gnv1_c96_no_nest_debug intel
regional_spp_sppt_shum_skeb_dyn32_phy32 intel
rap_control_dyn32_phy32 intel
hrrr_control_dyn32_phy32 intel
rap_2threads_dyn32_phy32 intel
hrrr_control_2threads_dyn32_phy32 intel
hrrr_control_decomp_dyn32_phy32 intel
rap_restart_dyn32_phy32 intel
hrrr_control_restart_dyn32_phy32 intel
rap_control_dyn64_phy32 intel
rap_control_debug_dyn32_phy32 intel
hrrr_control_debug_dyn32_phy32 intel
conus13km_debug_decomp intel
rap_control_dyn64_phy32_debug intel
hafs_regional_atm_thompson_gfdlsf intel
gnv1_nested intel
regional_atmaq intel
regional_atmaq_canopy intel
regional_atmaq_debug intel
cpld_regional_atm_fbh intel
rap_control_dyn32_phy32 intelllvm
rap_control_dyn64_phy32 intelllvm
control_c48 gnu
control_stochy gnu
control_ras gnu
control_flake gnu
rap_control gnu
rap_decomp gnu
rap_2threads gnu
rap_restart gnu
rap_sfcdiff gnu
rap_sfcdiff_decomp gnu
rap_sfcdiff_restart gnu
hrrr_control gnu
hrrr_control_noqr gnu
hrrr_control_2threads gnu
hrrr_control_decomp gnu
hrrr_control_restart gnu
hrrr_control_restart_noqr gnu
rrfs_v1beta gnu
control_diag_debug gnu
rap_control_debug gnu
hrrr_control_debug gnu
hrrr_gf_debug gnu
hrrr_c3_debug gnu
rap_diag_debug gnu
rap_noah_sfcdiff_cires_ugwp_debug gnu
rap_progcld_thompson_debug gnu
control_ras_debug gnu
control_stochy_debug gnu
rap_flake_debug gnu
rap_clm_lake_debug gnu
gnv1_c96_no_nest_debug gnu
rap_control_dyn32_phy32 gnu
hrrr_control_dyn32_phy32 gnu
rap_2threads_dyn32_phy32 gnu
hrrr_control_2threads_dyn32_phy32 gnu
hrrr_control_decomp_dyn32_phy32 gnu
rap_restart_dyn32_phy32 gnu
hrrr_control_restart_dyn32_phy32 gnu
rap_control_dyn64_phy32 gnu
rap_control_debug_dyn32_phy32 gnu
hrrr_control_debug_dyn32_phy32 gnu
rap_control_dyn64_phy32_debug gnu

RT output directory: /scratch3/BMC/gmtb/Grant.Firl/stmp2/Grant.Firl/FV3_RT/rt_3405751

So far, for the tests I've checked, there aren't any compilation/runtime failures; everything looks to be different results. I have not looked at magnitude of differences.

@climbfuji
Copy link
Collaborator

@grantfirl While not expected, I am not surprised either. Given that we are addressing b4b differences when using multiple threads arising from these sections of the code with newer versions of the compiler, it is not surprising to me that older versions (that produced the same results with OpenMP threading) now produce different (albeit at least consistent w.r.t. number of threads) results.

@grantfirl
Copy link
Collaborator Author

I updated the list of failures. It includes tests from intel, gnu, and intelllvm. All of them use MPI, so the change in radiation_aerosols should affect all test compilers, I guess.

@grantfirl
Copy link
Collaborator Author

I confirmed that the failing RTs are only due to the removed openmp statements. I'll go ahead and merge and make a note of this in the UWM PR.

@grantfirl grantfirl merged commit 3f7c5ab into NCAR:main Nov 21, 2025
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bit-for-bit differences with ifx@2025.3.0 in setaer when OpenMP is used

2 participants