Skip to content
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

Move sfc emis alb calculation to its own scheme and make z0 composite consistent #529

Conversation

climbfuji
Copy link
Collaborator

@climbfuji climbfuji commented Apr 15, 2021

PR Checklist

  • Ths PR is up-to-date with the top of all sub-component repositories except for those sub-components which are the subject of this PR. Please consult the ufs-weather-model wiki if you are unsure how to do this.

  • This PR has been tested using a branch which is up-to-date with the top of all sub-component repositories except for those sub-components which are the subject of this PR

  • An Issue describing the work contained in this PR has been created either in the subcomponent(s) or in the ufs-weather-model. The Issue should be created in the repository that is most relevant to the changes in contained in the PR. The Issue and the dependent sub-component PR
    are specified below.

  • If new or updated input data is required by this PR, it is clearly stated in the text of the PR.

Description

Substantial changes to CCPP physics to move surface emissivity/albedo calculation to its own scheme and to make surface roughness length composite consistent when fractional landmask is used. Updates to FV3GFS_io.F90 to write additional fields to the restart files (this requires removing the UGWPv1 warmstart test).

Additional changes:

Note. This PR changes the results of almost all regression tests (intentionally) due to the updates in calculating surface emissivity and surface albedo, and - for tests using fractional landmask - the changes in ccpp-physics GFS_surface_composites_post_run (calculate composite of fluxes consistently).

Testing

Regression testing against existing baseline with final code

Regression testing against existing baseline on hera with GNU (2021/05/12): all but two tests fail due to b4b differences, but all tests run to completion.

rt_hera_gnu_against_existing.log
rt_hera_gnu_against_existing_fail_test.log
rt_hera_gnu_against_existing_log_hera.gnu.tar.gz

The following tests pass for hera with GNU:

log_hera.gnu/rt_013_fv3_esg_HAFS_v0_hwrf_thompson.log:Test 013 fv3_esg_HAFS_v0_hwrf_thompson PASS
log_hera.gnu/rt_029_fv3_esg_HAFS_v0_hwrf_thompson_debug.log:Test 029 fv3_esg_HAFS_v0_hwrf_thompson_debug PASS

Regression testing against existing baseline on hera with Intel (2021/05/12): all except nine tests fail due to b4b differences, but all tests run to completion.

rt_hera_intel_against_existing.log
rt_hera_intel_against_existing_fail_test.log
rt_hera_intel_against_existing_log_hera.intel.tar.gz

The following tests pass for hera with Intel:

log_hera.intel/rt_097_fv3_esg_HAFS_v0_hwrf_thompson_debug.log:Test 097 fv3_esg_HAFS_v0_hwrf_thompson_debug PASS
log_hera.intel/rt_100_datm_control_cfsr.log:Test 100 datm_control_cfsr PASS
log_hera.intel/rt_101_datm_restart_cfsr.log:Test 101 datm_restart_cfsr PASS
log_hera.intel/rt_102_datm_control_gefs.log:Test 102 datm_control_gefs PASS
log_hera.intel/rt_103_datm_bulk_cfsr.log:Test 103 datm_bulk_cfsr PASS
log_hera.intel/rt_104_datm_bulk_gefs.log:Test 104 datm_bulk_gefs PASS
log_hera.intel/rt_105_datm_mx025_cfsr.log:Test 105 datm_mx025_cfsr PASS
log_hera.intel/rt_106_datm_mx025_gefs.log:Test 106 datm_mx025_gefs PASS
log_hera.intel/rt_107_datm_debug_cfsr.log:Test 107 datm_debug_cfsr PASS

Regression testing against existing baseline with iemis=1/ialb=1 changes rolled back

To understand better where the changes of the regression test results come from, I temporarily rolled back the changes for iemis=1 and ialb=1 in radiation_surface.f and ran the regression tests against the existing baselines on hera with Intel and GNU.

With GNU, the following tests fail due to b4b differences, as expected (but all run to completion):

fv3_gfs_v16_RRTMGP_debug
fv3_rrfs_v1beta_debug
fv3_rrfs_v1alpha_debug
fv3_gsd_debug
fv3_rrfs_v1beta
fv3_rrfs_v1alpha
fv3_gfs_v16_RRTMGP
fv3_gsd

With Intel, the following tests failed, again as expected (because Intel in PROD mode gives different answers for the otherwise unchanged tests using iemis=1 and ialb=1; note that these tests pass in debug mode, see below).

cpld_debugfrac
fv3_control
fv3_lndp
fv3_control_32bit
fv3_decomp
fv3_ca
fv3_stochy
fv3_wrtGauss_nemsio_c192
fv3_wrtGauss_nemsio
fv3_wrtGauss_netcdf_esmf
fv3_wrtGlatlon_netcdf
fv3_gfdlmp_32bit
fv3_wrtGauss_netcdf
fv3_2threads
fv3_stretched
fv3_wrtGauss_netcdf_parallel
fv3_lheatstrg
fv3_gfdlmprad_32bit_post
fv3_thompson
fv3_thompson_no_aero
cpld_ca
fv3_rrfs_v1beta
fv3_hrrr
fv3_rap
fv3_rrfs_v1alpha
fv3_stretched_nest
cpld_control
cpld_2threads
cpld_controlfrac
cpld_decomp
cpld_satmedmf
fv3_gsd
fv3_gfdlmp
fv3_cpt
fv3_gfs_v16_stochy
fv3_gfdlmprad_noahmp
fv3_satmedmf
fv3_gfdlmprad_gwd
fv3_satmedmfq
cpld_control_wave
fv3_gfs_v16
fv3_gfs_v16_RRTMGP
fv3_csawmg
cpld_control_c192
fv3_gfs_v16_RRTMGP_debug
cpld_controlfrac_c192
fv3_regional_quilt_RRTMGP
fv3_gfsv16_csawmg
fv3_gfsv16_csawmgt
fv3_gfs_v16_flake
fv3_gocart_clm
fv3_HAFS_v0_hwrf_thompson
fv3_gsd_debug
fv3_rrfs_v1beta_debug
fv3_rrfs_v1alpha_debug
fv3_gsd_diag3d_debug
fv3_gfs_v16_ras
fv3_gfsv16_ugwpv1
fv3_gfsv16_ugwpv1_warmstart
fv3_esg_HAFS_v0_hwrf_thompson
cpld_bmark
cpld_bmarkfrac_v16_nsst
cpld_bmarkfrac_v16
cpld_bmarkfrac
cpld_bmarkfrac_wave_v16
cpld_bmarkfrac_wave
cpld_bmark_wave
cpld_control_c384
cpld_controlfrac_c384
fv3_gfdlmprad_atmwav
fv3_gfdlmprad
fv3_wrtGauss_nemsio_c768

The following tests pass with Intel:

cpld_debug
fv3_multigases_repro
fv3_regional_control
fv3_regional_restart
fv3_regional_quilt
fv3_regional_quilt_hafs
fv3_regional_quilt_netcdf_parallel
fv3_gfs_v16_debug
fv3_regional_control_debug
fv3_control_debug
fv3_stretched_nest_debug
fv3_thompson_debug
fv3_thompson_no_aero_debug
fv3_HAFS_v0_hwrf_thompson_debug
fv3_esg_HAFS_v0_hwrf_thompson_debug
fv3_gfsv16_ugwpv1_debug
fv3_gfs_v16_ras_debug
datm_control_cfsr
datm_restart_cfsr
datm_control_gefs
datm_bulk_cfsr
datm_bulk_gefs
datm_mx025_cfsr
datm_mx025_gefs
datm_debug_cfsr

The temporary reversal to the original iemis=1/ialb=1 code will be removed before committing the ccpp-physics code.

Final regression testing

New baselines will be created and used to verify on all tier-1 platforms. The new baseline date tag is 20210527.

  • hera.intel
  • hera.gnu
  • orion.intel
  • cheyenne.intel
  • cheyenne.gnu
  • gaea.intel
  • jet.intel
  • wcoss_cray
  • wcoss_dell_p3

Dependencies

NCAR/ccpp-physics#627
NCAR/ccpp-framework#366
NOAA-EMC/fv3atm#285
#529
NOAA-EMC/CMEPS#47

@climbfuji climbfuji force-pushed the move_sfc_emis_alb_calculation_to_its_own_scheme_and_z0_composite_consistent branch 2 times, most recently from 72135d5 to 048c9a9 Compare April 19, 2021 16:04
…r-model into move_sfc_emis_alb_calculation_to_its_own_scheme_and_z0_composite_consistent
@climbfuji climbfuji force-pushed the move_sfc_emis_alb_calculation_to_its_own_scheme_and_z0_composite_consistent branch from 048c9a9 to adebc42 Compare April 19, 2021 17:43
@climbfuji climbfuji force-pushed the move_sfc_emis_alb_calculation_to_its_own_scheme_and_z0_composite_consistent branch from 8fe69e1 to aab8096 Compare April 22, 2021 14:46
@climbfuji
Copy link
Collaborator Author

@climbfuji, is it possible to include a one-line fix for CI, which is due to the cdeps submodule now pointing to the develop branch? This will allow us to run ci for this PR.

diff --git a/tests/ci/repo_check.sh b/tests/ci/repo_check.sh
index 22bd90d..36c7c2b 100755
--- a/tests/ci/repo_check.sh
+++ b/tests/ci/repo_check.sh
@@ -56,7 +56,7 @@ datm[branch]='develop'
 datm[dir]='DATM'
 
 cdeps[repo]='https://github.com/NOAA-EMC/CDEPS'
-cdeps[branch]='emc/develop'
+cdeps[branch]='develop'
 cdeps[dir]='CDEPS-interface/CDEPS'
 
 cmake[repo]='https://github.com/NOAA-EMC/CMakeModules'

@MinsukJi-NOAA Done, please check commit 5cb5801

@MinsukJi-NOAA
Copy link
Contributor

@MinsukJi-NOAA Done, please check commit 5cb5801

Thanks!

@DeniseWorthen
Copy link
Collaborator

CMEPS has been merged so you can revert the gitmodules. Hash is 1513f5c

climbfuji and others added 2 commits May 27, 2021 13:06
* sets the right path for benchmark WW3 ICs to come from the
dated IC directory. These ICs are used only for the 35D tests.
* baseline RTs do not use WW3 ICs. WW3 is started cold
…ufs-weather-model into move_sfc_emis_alb_calculation_to_its_own_scheme_and_z0_composite_consistent
@climbfuji
Copy link
Collaborator Author

I just pulled in branch bugfix/p7a_35dfix from @DeniseWorthen. These changes were tested on top of the PR on Gaea and gave b4b identical results for all coupled tests.

@climbfuji climbfuji added Ready for Commit Queue The PR is ready for the Commit Queue. All checkboxes in PR template have been checked. Waiting for Reviews The PR is waiting for reviews from associated component PR's. labels May 28, 2021
@climbfuji
Copy link
Collaborator Author

This is ready to merge. Please double-check the submodule pointers and click the magic button ... thanks!

@DusanJovic-NOAA DusanJovic-NOAA merged commit 177ea10 into ufs-community:develop May 28, 2021
pjpegion pushed a commit to NOAA-PSL/ufs-weather-model that referenced this pull request Apr 4, 2023
epic-cicd-jenkins pushed a commit that referenced this pull request Apr 17, 2023
* Fix plotting bug.

* Add plotting test case to fundamental tests in both nco/community mode.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Baseline Updates Current baselines will be updated. Ready for Commit Queue The PR is ready for the Commit Queue. All checkboxes in PR template have been checked. Waiting for Reviews The PR is waiting for reviews from associated component PR's.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants