From f18ed0a55021ee60cdb5531478675b3e3e88cdcb Mon Sep 17 00:00:00 2001 From: Haipeng Lin Date: Mon, 24 Nov 2025 11:49:02 -0500 Subject: [PATCH 01/13] Fix #444 - null dycore (snapshot runs) should pass is_first_timestep=false to physics always. --- src/control/cam_comp.F90 | 20 ++++++++++---------- src/dynamics/none/stepon.F90 | 8 ++++++++ 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/control/cam_comp.F90 b/src/control/cam_comp.F90 index 0930ff759..186299fc1 100644 --- a/src/control/cam_comp.F90 +++ b/src/control/cam_comp.F90 @@ -320,16 +320,6 @@ subroutine cam_timestep_init() is_first_timestep = is_first_step() nstep = get_nstep() - !---------------------------------------------------------- - ! First phase of dynamics (at least couple from dynamics to physics) - ! Return time-step for physics from dynamics. - !---------------------------------------------------------- - call t_barrierf('sync_stepon_timestep_init', mpicom) - call t_startf('stepon_timestep_init') - call stepon_timestep_init(dtime_phys, cam_runtime_opts, phys_state, phys_tend, & - dyn_in, dyn_out) - call t_stopf('stepon_timestep_init') - !---------------------------------------------------------- ! TEMPORARY: Set initial MUSICA constituent values ! @@ -346,6 +336,16 @@ subroutine cam_timestep_init() constituent_properties) end if + !---------------------------------------------------------- + ! First phase of dynamics (at least couple from dynamics to physics) + ! Return time-step for physics from dynamics. + !---------------------------------------------------------- + call t_barrierf('sync_stepon_timestep_init', mpicom) + call t_startf('stepon_timestep_init') + call stepon_timestep_init(dtime_phys, cam_runtime_opts, phys_state, phys_tend, & + dyn_in, dyn_out) + call t_stopf('stepon_timestep_init') + ! !---------------------------------------------------------- ! PHYS_TIMESTEP_INIT Call the Physics package diff --git a/src/dynamics/none/stepon.F90 b/src/dynamics/none/stepon.F90 index 153a7b4e6..9edcfeae5 100644 --- a/src/dynamics/none/stepon.F90 +++ b/src/dynamics/none/stepon.F90 @@ -37,6 +37,8 @@ subroutine stepon_timestep_init(dtime_out, cam_runtime_opts, phys_state, & use time_manager, only: get_step_size use cam_abortutils, only: endrun + use physics_types, only: is_first_timestep + ! Dummy arguments real(r8), intent(out) :: dtime_out ! Time-step (s) type(runtime_options), intent(in) :: cam_runtime_opts @@ -54,6 +56,12 @@ subroutine stepon_timestep_init(dtime_out, cam_runtime_opts, phys_state, & if (dtime_out <= 0) call endrun('stepon_timestep_init: bad dtime') end if + !Because when running with snapshots (thus using the null dycore) + !the snapshots are always from the second timestep onwards, + !override here the value of is_first_timestep to .false. as it is + !never truly the first timestep for the physics + is_first_timestep = .false. + end subroutine stepon_timestep_init !=========================================================================== From b487206efed86ba1da3e0494906d0a66b466f493 Mon Sep 17 00:00:00 2001 From: Haipeng Lin Date: Mon, 24 Nov 2025 11:49:16 -0500 Subject: [PATCH 02/13] Registry entries for UW PBL --- src/data/registry.xml | 63 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) diff --git a/src/data/registry.xml b/src/data/registry.xml index 83ba849e0..0d66f1387 100644 --- a/src/data/registry.xml +++ b/src/data/registry.xml @@ -1464,6 +1464,20 @@ 273.15_kind_phys tpert pbuf_tpert + + horizontal_dimension vertical_layer_dimension + pbuf_QRL + + + horizontal_dimension vertical_layer_dimension + pbuf_WSEDL + + + horizontal_dimension vertical_interface_dimension + 0.0_kind_phys + pbuf_kvm + + + horizontal_dimension vertical_interface_dimension + 0.0_kind_phys + pbuf_kvh + + 0.0_kind_phys pbuf_taubljy + + + horizontal_dimension + 0.0_kind_phys + pbuf_tautmsx + + + horizontal_dimension + 0.0_kind_phys + pbuf_tautmsy + + + horizontal_dimension + 0.0_kind_phys + pbuf_ksrftms + + From 84168f8f0f2e9f91796823675046a8071bcf1bcf Mon Sep 17 00:00:00 2001 From: Haipeng Lin Date: Mon, 24 Nov 2025 11:49:41 -0500 Subject: [PATCH 03/13] Also try removing cnst_ prefix for constituent-dimensioned fields not in registry --- src/physics/utils/physics_data.F90 | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/physics/utils/physics_data.F90 b/src/physics/utils/physics_data.F90 index c0997c90c..7a623db9b 100644 --- a/src/physics/utils/physics_data.F90 +++ b/src/physics/utils/physics_data.F90 @@ -1,4 +1,4 @@ -module physics_data +src/data/registry.xmlmodule physics_data implicit none private @@ -565,6 +565,16 @@ subroutine read_constituent_dimensioned_field_2d(const_props, file, std_name, ba var_found = .false. call cam_pio_find_var(file, [file_var_name], found_name, vardesc, var_found) + ! Some constituents whose names are not specified in the registry + ! will have cnst_ prepended to them (e.g., cnst_dst_a1); also try reading + ! from file by removing this prefix: + if (.not. var_found) then + if (constituent_name(1:5) == 'cnst_') then + file_var_name = trim(base_var_names(base_idx)) // '_' // trim(constituent_name(6:)) + call cam_pio_find_var(file, [file_var_name], found_name, vardesc, var_found) + end if + end if + if (var_found) then ! Read the variable if (masterproc) then From c9d58e3b464df5ee1b0ca68452ede808c13a9905 Mon Sep 17 00:00:00 2001 From: Haipeng Lin Date: Mon, 24 Nov 2025 11:51:28 -0500 Subject: [PATCH 04/13] Fix typo --- src/physics/utils/physics_data.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/physics/utils/physics_data.F90 b/src/physics/utils/physics_data.F90 index 7a623db9b..3f444e145 100644 --- a/src/physics/utils/physics_data.F90 +++ b/src/physics/utils/physics_data.F90 @@ -1,4 +1,4 @@ -src/data/registry.xmlmodule physics_data +module physics_data implicit none private From a247b53a13a60d1c8bc9f07d53f8529e9c742df5 Mon Sep 17 00:00:00 2001 From: Haipeng Lin Date: Mon, 5 Jan 2026 11:56:05 -0500 Subject: [PATCH 05/13] Add uw_vdiff_derecho GNU test --- cime_config/testdefs/testlist_cam.xml | 9 ++++ .../outfrq_uw_vdiff_derecho/shell_commands | 1 + .../cam/outfrq_uw_vdiff_derecho/user_nl_cam | 45 +++++++++++++++++++ 3 files changed, 55 insertions(+) create mode 100644 cime_config/testdefs/testmods_dirs/cam/outfrq_uw_vdiff_derecho/shell_commands create mode 100644 cime_config/testdefs/testmods_dirs/cam/outfrq_uw_vdiff_derecho/user_nl_cam diff --git a/cime_config/testdefs/testlist_cam.xml b/cime_config/testdefs/testlist_cam.xml index 9512c0f95..b4b566ccf 100644 --- a/cime_config/testdefs/testlist_cam.xml +++ b/cime_config/testdefs/testlist_cam.xml @@ -88,6 +88,15 @@ + + + + + + + + + diff --git a/cime_config/testdefs/testmods_dirs/cam/outfrq_uw_vdiff_derecho/shell_commands b/cime_config/testdefs/testmods_dirs/cam/outfrq_uw_vdiff_derecho/shell_commands new file mode 100644 index 000000000..c409a410f --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/cam/outfrq_uw_vdiff_derecho/shell_commands @@ -0,0 +1 @@ + ./xmlchange CAM_CONFIG_OPTS="--dyn none --physics-suites vdiff_bretherton_park" diff --git a/cime_config/testdefs/testmods_dirs/cam/outfrq_uw_vdiff_derecho/user_nl_cam b/cime_config/testdefs/testmods_dirs/cam/outfrq_uw_vdiff_derecho/user_nl_cam new file mode 100644 index 000000000..66b6ac04c --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/cam/outfrq_uw_vdiff_derecho/user_nl_cam @@ -0,0 +1,45 @@ +! these are FHIST_C5 snapshots +ncdata = '/glade/derecho/scratch/hplin/251119.cam64_128.FHIST_C5.ne3.gnu.dbg/run/snap_w_qneg_orig/251119.cam64_128.FHIST_C5.ne3.gnu.dbg.cam.h1i.1979-01-01-01800.nc' +ncdata_check = '/glade/derecho/scratch/hplin/251119.cam64_128.FHIST_C5.ne3.gnu.dbg/run/snap_w_qneg_orig/251119.cam64_128.FHIST_C5.ne3.gnu.dbg.cam.h2i.1979-01-01-01800.nc' + +! tolerances for testing +ncdata_check_err = .true. +min_difference = 2e-15 + +! cam5 vertical levels. +pver = 30 + +! namelist options for CAM5 UW PBL. +am_correction = .false. +do_iss = .true. +eddy_lbulk_max = 40.D3 +eddy_leng_max = 40.D3 +eddy_max_bot_pressure = 100.D3 +eddy_moist_entrain_a2l = 30.D0 +eddy_wstarent = .true. +kv_freetrop_scale = 1.D0 +kv_top_pressure = 0.D0 +kv_top_scale = 1.D0 + +! history output +hist_output_frequency;h1: 1*nsteps +hist_max_frames;h1: 1 +hist_add_inst_fields;h1:WGUSTD,UW_errorPBL,UW_pblh,UW_pblhp +hist_add_inst_fields;h1:UW_tpert,UW_qpert,UW_wpert,UW_ustar +hist_add_inst_fields;h1:UW_tkes,UW_minpblh +hist_add_inst_fields;h1:UW_ncvfin_o,UW_ncvfin_mg,UW_ncvfin_f +hist_add_inst_fields;h1:UW_n2,UW_s2,UW_ri +hist_add_inst_fields;h1:UW_sfuh,UW_sflh,UW_cldn,UW_qrl,UW_ql +hist_add_inst_fields;h1:BPROD,SFI,SPROD +hist_add_inst_fields;h1:UW_sfi,UW_chu,UW_chs,UW_cmu,UW_cms +hist_add_inst_fields;h1:UW_tke,UW_wcap,UW_bprod,UW_sprod +hist_add_inst_fields;h1:UW_kvh,UW_kvm,UW_turbtype +hist_add_inst_fields;h1:UW_gh,UW_sh,UW_sm,UW_ria,UW_leng +hist_add_inst_fields;h1:UW_kbase_o,UW_ktop_o,UW_kbase_mg,UW_ktop_mg +hist_add_inst_fields;h1:UW_kbase_f,UW_ktop_f,UW_wet,UW_web +hist_add_inst_fields;h1:UW_jtbu,UW_jbbu,UW_evhc,UW_jt2slv +hist_add_inst_fields;h1:UW_n2ht,UW_n2hb,UW_lwp,UW_optdepth +hist_add_inst_fields;h1:UW_radfrac,UW_radf,UW_wstar,UW_wstar3fact +hist_add_inst_fields;h1:UW_ebrk,UW_wbrk,UW_lbrk +hist_add_inst_fields;h1:UW_ricl,UW_ghcl,UW_shcl,UW_smcl,UW_wsed +hist_precision;h1: REAL64 From 23e53746740d848fe222e70dfc811d034c8c0519 Mon Sep 17 00:00:00 2001 From: Haipeng Lin Date: Mon, 9 Mar 2026 16:24:32 -0400 Subject: [PATCH 06/13] Remove duplicate QRL in registry. --- src/data/registry.xml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/data/registry.xml b/src/data/registry.xml index 0d66f1387..9011fe961 100644 --- a/src/data/registry.xml +++ b/src/data/registry.xml @@ -1464,13 +1464,6 @@ 273.15_kind_phys tpert pbuf_tpert - - horizontal_dimension vertical_layer_dimension - pbuf_QRL - Date: Mon, 9 Mar 2026 17:10:58 -0400 Subject: [PATCH 07/13] Finalize snapshot for uw_vdiff_derecho test. --- .../testmods_dirs/cam/outfrq_uw_vdiff_derecho/user_nl_cam | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cime_config/testdefs/testmods_dirs/cam/outfrq_uw_vdiff_derecho/user_nl_cam b/cime_config/testdefs/testmods_dirs/cam/outfrq_uw_vdiff_derecho/user_nl_cam index 66b6ac04c..4cfdd230c 100644 --- a/cime_config/testdefs/testmods_dirs/cam/outfrq_uw_vdiff_derecho/user_nl_cam +++ b/cime_config/testdefs/testmods_dirs/cam/outfrq_uw_vdiff_derecho/user_nl_cam @@ -1,6 +1,6 @@ ! these are FHIST_C5 snapshots -ncdata = '/glade/derecho/scratch/hplin/251119.cam64_128.FHIST_C5.ne3.gnu.dbg/run/snap_w_qneg_orig/251119.cam64_128.FHIST_C5.ne3.gnu.dbg.cam.h1i.1979-01-01-01800.nc' -ncdata_check = '/glade/derecho/scratch/hplin/251119.cam64_128.FHIST_C5.ne3.gnu.dbg/run/snap_w_qneg_orig/251119.cam64_128.FHIST_C5.ne3.gnu.dbg.cam.h2i.1979-01-01-01800.nc' +ncdata = '/glade/campaign/cesm/community/amwg/sima_baselines/cam_sima_test_snapshots/cam_ne3pg3_fhist_c5_vertical_diffusion_uw_snapshot_derecho_gnu_before_c20260309.nc' +ncdata_check = '/glade/campaign/cesm/community/amwg/sima_baselines/cam_sima_test_snapshots/cam_ne3pg3_fhist_c5_vertical_diffusion_uw_snapshot_derecho_gnu_after_c20260309.nc' ! tolerances for testing ncdata_check_err = .true. From a5df3c332bc14f39714393745fbfc4ec1a427b68 Mon Sep 17 00:00:00 2001 From: Haipeng Lin Date: Wed, 22 Apr 2026 10:39:27 -0400 Subject: [PATCH 08/13] Update standard name based on review comments --- src/data/registry.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/registry.xml b/src/data/registry.xml index 9011fe961..aef0af933 100644 --- a/src/data/registry.xml +++ b/src/data/registry.xml @@ -1465,7 +1465,7 @@ tpert pbuf_tpert horizontal_dimension vertical_layer_dimension From 9bd13c540268a7760a164bab648e036caa02339b Mon Sep 17 00:00:00 2001 From: Haipeng Lin Date: Fri, 22 May 2026 10:53:16 -0400 Subject: [PATCH 09/13] Update atmos_phys to atmos_phys0_22_000 (latest main) --- .gitmodules | 2 +- src/physics/ncar_ccpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index b9f977e0f..6db947225 100644 --- a/.gitmodules +++ b/.gitmodules @@ -20,7 +20,7 @@ [submodule "ncar-physics"] path = src/physics/ncar_ccpp url = https://github.com/ESCOMP/atmospheric_physics - fxtag = 26f4f553da47fc4b347f0ee80ea1041dd0da7988 + fxtag = atmos_phys0_22_000 fxrequired = AlwaysRequired fxDONOTUSEurl = https://github.com/ESCOMP/atmospheric_physics [submodule "rrtmgp-data"] diff --git a/src/physics/ncar_ccpp b/src/physics/ncar_ccpp index 26f4f553d..b09dc3c45 160000 --- a/src/physics/ncar_ccpp +++ b/src/physics/ncar_ccpp @@ -1 +1 @@ -Subproject commit 26f4f553da47fc4b347f0ee80ea1041dd0da7988 +Subproject commit b09dc3c45254961d9c617944beafec4d9882da49 From a0a3bc6e7516cdb173d535422b8201ea46ecacf2 Mon Sep 17 00:00:00 2001 From: Haipeng Lin Date: Mon, 8 Jun 2026 11:58:03 -0400 Subject: [PATCH 10/13] Address reviewer suggestion --- src/dynamics/none/stepon.F90 | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/dynamics/none/stepon.F90 b/src/dynamics/none/stepon.F90 index 9edcfeae5..b562cddec 100644 --- a/src/dynamics/none/stepon.F90 +++ b/src/dynamics/none/stepon.F90 @@ -38,6 +38,8 @@ subroutine stepon_timestep_init(dtime_out, cam_runtime_opts, phys_state, & use cam_abortutils, only: endrun use physics_types, only: is_first_timestep + use phys_comp, only: ncdata_check + use cam_initfiles, only: unset_path_str ! Dummy arguments real(r8), intent(out) :: dtime_out ! Time-step (s) @@ -56,11 +58,14 @@ subroutine stepon_timestep_init(dtime_out, cam_runtime_opts, phys_state, & if (dtime_out <= 0) call endrun('stepon_timestep_init: bad dtime') end if - !Because when running with snapshots (thus using the null dycore) - !the snapshots are always from the second timestep onwards, - !override here the value of is_first_timestep to .false. as it is - !never truly the first timestep for the physics - is_first_timestep = .false. + if (trim(ncdata_check) /= trim(unset_path_str)) then + !Because when running with snapshots (using the null dycore) + !for snapshot validation, + !the snapshots are always from the second timestep onwards, + !override here the value of is_first_timestep to .false. as it is + !never truly the first timestep for the physics + is_first_timestep = .false. + end if end subroutine stepon_timestep_init From 66ab1c574069d0de370fc2812939b10ed9915f3a Mon Sep 17 00:00:00 2001 From: Haipeng Lin Date: Tue, 9 Jun 2026 12:54:06 -0400 Subject: [PATCH 11/13] Fix UW testmod; update HB snapshot to match cam6_4_179 --- .../testmods_dirs/cam/outfrq_hb_vdiff_derecho/user_nl_cam | 4 ++-- .../testmods_dirs/cam/outfrq_uw_vdiff_derecho/user_nl_cam | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cime_config/testdefs/testmods_dirs/cam/outfrq_hb_vdiff_derecho/user_nl_cam b/cime_config/testdefs/testmods_dirs/cam/outfrq_hb_vdiff_derecho/user_nl_cam index 82e619371..6831304d1 100644 --- a/cime_config/testdefs/testmods_dirs/cam/outfrq_hb_vdiff_derecho/user_nl_cam +++ b/cime_config/testdefs/testmods_dirs/cam/outfrq_hb_vdiff_derecho/user_nl_cam @@ -1,6 +1,6 @@ ! these are FHIST_C4 snapshots -ncdata = '/glade/campaign/cesm/community/amwg/sima_baselines/cam_sima_test_snapshots/cam_ne3pg3_fhistc4_vertical_diffusion_hb_snapshot_derecho_gnu_before_c20250717.nc' -ncdata_check = '/glade/campaign/cesm/community/amwg/sima_baselines/cam_sima_test_snapshots/cam_ne3pg3_fhistc4_vertical_diffusion_hb_snapshot_derecho_gnu_after_c20250717.nc' +ncdata = '/glade/campaign/cesm/community/amwg/sima_baselines/cam_sima_test_snapshots/cam_ne3pg3_fhistc4_vertical_diffusion_hb_snapshot_derecho_gnu_before_c20260609.nc' +ncdata_check = '/glade/campaign/cesm/community/amwg/sima_baselines/cam_sima_test_snapshots/cam_ne3pg3_fhistc4_vertical_diffusion_hb_snapshot_derecho_gnu_after_c20260609.nc' ! tolerances for testing ncdata_check_err = .true. diff --git a/cime_config/testdefs/testmods_dirs/cam/outfrq_uw_vdiff_derecho/user_nl_cam b/cime_config/testdefs/testmods_dirs/cam/outfrq_uw_vdiff_derecho/user_nl_cam index 4cfdd230c..cfecff331 100644 --- a/cime_config/testdefs/testmods_dirs/cam/outfrq_uw_vdiff_derecho/user_nl_cam +++ b/cime_config/testdefs/testmods_dirs/cam/outfrq_uw_vdiff_derecho/user_nl_cam @@ -32,7 +32,7 @@ hist_add_inst_fields;h1:UW_n2,UW_s2,UW_ri hist_add_inst_fields;h1:UW_sfuh,UW_sflh,UW_cldn,UW_qrl,UW_ql hist_add_inst_fields;h1:BPROD,SFI,SPROD hist_add_inst_fields;h1:UW_sfi,UW_chu,UW_chs,UW_cmu,UW_cms -hist_add_inst_fields;h1:UW_tke,UW_wcap,UW_bprod,UW_sprod +hist_add_inst_fields;h1:UW_tke,UW_wcap hist_add_inst_fields;h1:UW_kvh,UW_kvm,UW_turbtype hist_add_inst_fields;h1:UW_gh,UW_sh,UW_sm,UW_ria,UW_leng hist_add_inst_fields;h1:UW_kbase_o,UW_ktop_o,UW_kbase_mg,UW_ktop_mg From db0b0b21113ca35854c2d619ca40a6f94a88cb23 Mon Sep 17 00:00:00 2001 From: Haipeng Lin Date: Tue, 9 Jun 2026 14:08:45 -0400 Subject: [PATCH 12/13] Update atmos_phys to latest hash on main. --- .gitmodules | 2 +- src/physics/ncar_ccpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index c7d056d12..1325b4228 100644 --- a/.gitmodules +++ b/.gitmodules @@ -20,7 +20,7 @@ [submodule "ncar-physics"] path = src/physics/ncar_ccpp url = https://github.com/ESCOMP/atmospheric_physics - fxtag = atmos_phys0_22_000 + fxtag = d2e6f343356f02229bcc66427d300e578e09c64f fxrequired = AlwaysRequired fxDONOTUSEurl = https://github.com/ESCOMP/atmospheric_physics [submodule "rrtmgp-data"] diff --git a/src/physics/ncar_ccpp b/src/physics/ncar_ccpp index b09dc3c45..d2e6f3433 160000 --- a/src/physics/ncar_ccpp +++ b/src/physics/ncar_ccpp @@ -1 +1 @@ -Subproject commit b09dc3c45254961d9c617944beafec4d9882da49 +Subproject commit d2e6f343356f02229bcc66427d300e578e09c64f From 5409d77d640861da7de09bf22f659fb99a566946 Mon Sep 17 00:00:00 2001 From: Haipeng Lin Date: Tue, 9 Jun 2026 14:42:54 -0400 Subject: [PATCH 13/13] Update details about GNU FADIAB failure. --- test/existing-test-failures.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/existing-test-failures.txt b/test/existing-test-failures.txt index 1b9153871..06a8c5afd 100644 --- a/test/existing-test-failures.txt +++ b/test/existing-test-failures.txt @@ -2,7 +2,7 @@ SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam_multitape - known NLFAIL due to cime validation error on multiple history tapes (#430) SMS_Ln9.ne3pg3_ne3pg3_mg37.FADIAB.derecho_gnu.cam-outfrq_se_cslam - - known FAIL on shr_reprosum_calc call from src/dynamics/se/dycore/global_norms_mod.F90 + - known FAIL on shr_reprosum_calc call due to commented out cnst_init_default (constituent default value initialization) in src/dynamics/se/dyn_comp.F90 (#509) SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_zm_derecho (Overall: DIFF) details: - known failure due to ZM science update after merging atmos_phys #392