From e024cc9567b5653e466fcf480b411ffe8b108c67 Mon Sep 17 00:00:00 2001 From: Haipeng Lin Date: Fri, 22 Nov 2024 07:37:47 -0500 Subject: [PATCH 1/5] Initial commit for check_energy diagnostic updates --- schemes/sima_diagnostics/check_energy_diagnostics.F90 | 11 +++++++++-- .../sima_diagnostics/check_energy_diagnostics.meta | 6 ++++++ .../sima_diagnostics/check_energy_fix_diagnostics.F90 | 8 ++++++++ 3 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 schemes/sima_diagnostics/check_energy_fix_diagnostics.F90 diff --git a/schemes/sima_diagnostics/check_energy_diagnostics.F90 b/schemes/sima_diagnostics/check_energy_diagnostics.F90 index be52eb8d..69897426 100644 --- a/schemes/sima_diagnostics/check_energy_diagnostics.F90 +++ b/schemes/sima_diagnostics/check_energy_diagnostics.F90 @@ -1,5 +1,7 @@ ! Diagnostic scheme for check_energy ! Not all quantities are needed as diagnostics; this module is designed to ease development +! +! module check_energy_diagnostics use ccpp_kinds, only: kind_phys @@ -31,13 +33,14 @@ subroutine check_energy_diagnostics_init(errmsg, errflg) call history_add_field('scaling_dycore', 'ratio_of_specific_heat_of_air_used_in_physics_energy_formula_to_specific_heat_of_air_used_in_dycore_energy_formula', 'lev', 'inst', '1') call history_add_field('te_cur_phys', 'vertically_integrated_total_energy_using_physics_energy_formula', horiz_only, 'inst', 'J m-2') - call history_add_field('te_cur_dyn', 'vertically_integrated_total_energy_using_dycore_energy_formula', horiz_only, 'inst', 'J m-2') call history_add_field('tw_cur', 'vertically_integrated_total_water', horiz_only, 'inst', 'kg m-2') call history_add_field('tend_te_tnd', 'cumulative_total_energy_boundary_flux_using_physics_energy_formula', horiz_only, 'inst', 'J m-2 s-1') call history_add_field('tend_tw_tnd', 'cumulative_total_water_boundary_flux', horiz_only, 'inst', 'kg m-2 s-1') + call history_add_field('teinp', 'vertically_integrated_total_energy_using_dycore_energy_formula_at_start_of_physics_timestep', horiz_only, 'inst', 'J m-2') call history_add_field('teout', 'vertically_integrated_total_energy_at_end_of_physics_timestep', horiz_only, 'inst', 'J m-2') + call history_add_field('tefix', 'vertically_integrated_total_energy_using_dycore_energy_formula', horiz_only, 'inst', 'J m-2') end subroutine check_energy_diagnostics_init @@ -45,6 +48,7 @@ end subroutine check_energy_diagnostics_init !! \htmlinclude check_energy_diagnostics_run.html subroutine check_energy_diagnostics_run( & cp_or_cv_dycore, scaling_dycore, & + te_ini_dyn, & te_cur_phys, te_cur_dyn, tw_cur, & tend_te_tnd, tend_tw_tnd, teout, & errmsg, errflg) @@ -56,6 +60,7 @@ subroutine check_energy_diagnostics_run( & ! State variables real(kind_phys), intent(in) :: cp_or_cv_dycore(:,:) real(kind_phys), intent(in) :: scaling_dycore(:,:) + real(kind_phys), intent(in) :: te_ini_dyn(:) real(kind_phys), intent(in) :: te_cur_phys(:) real(kind_phys), intent(in) :: te_cur_dyn(:) real(kind_phys), intent(in) :: tw_cur(:) @@ -75,11 +80,13 @@ subroutine check_energy_diagnostics_run( & call history_out_field('cp_or_cv_dycore', cp_or_cv_dycore) call history_out_field('scaling_dycore', scaling_dycore) call history_out_field('te_cur_phys', te_cur_phys) - call history_out_field('te_cur_dyn', te_cur_dyn) call history_out_field('tw_cur', tw_cur) call history_out_field('tend_te_tnd', tend_te_tnd) call history_out_field('tend_tw_tnd', tend_tw_tnd) + + call history_out_field('teinp', te_ini_dyn) call history_out_field('teout', teout) + call history_out_field('tefix', te_cur_dyn) end subroutine check_energy_diagnostics_run diff --git a/schemes/sima_diagnostics/check_energy_diagnostics.meta b/schemes/sima_diagnostics/check_energy_diagnostics.meta index cd5e1532..2adc66fc 100644 --- a/schemes/sima_diagnostics/check_energy_diagnostics.meta +++ b/schemes/sima_diagnostics/check_energy_diagnostics.meta @@ -33,6 +33,12 @@ type = real | kind = kind_phys dimensions = (horizontal_loop_extent, vertical_layer_dimension) intent = in +[ te_ini_dyn ] + standard_name = vertically_integrated_total_energy_using_dycore_energy_formula_at_start_of_physics_timestep + units = J m-2 + type = real | kind = kind_phys + dimensions = (horizontal_dimension) + intent = in [ te_cur_phys ] standard_name = vertically_integrated_total_energy_using_physics_energy_formula units = J m-2 diff --git a/schemes/sima_diagnostics/check_energy_fix_diagnostics.F90 b/schemes/sima_diagnostics/check_energy_fix_diagnostics.F90 new file mode 100644 index 00000000..c88610f6 --- /dev/null +++ b/schemes/sima_diagnostics/check_energy_fix_diagnostics.F90 @@ -0,0 +1,8 @@ +! Diagnostic scheme for check_energy_fix +! This module includes diagnostics that have to be output +! right after the energy fixer has been ran +! (before the fluxes for check_energy_chng are zeroed out) +module check_energy_fix_diagnostics + + +end module check_energy_fix_diagnostics \ No newline at end of file From 11ec3e0bedcad8be9a25bd6e71d970286b73ae02 Mon Sep 17 00:00:00 2001 From: Haipeng Lin Date: Mon, 25 Nov 2024 11:35:37 -0500 Subject: [PATCH 2/5] Add check_energy_fix_diagnostics - global energy fixer diagnostics --- .../check_energy_diagnostics.F90 | 16 +--- .../check_energy_diagnostics.meta | 18 ----- .../check_energy_fix_diagnostics.F90 | 81 +++++++++++++++++-- .../check_energy_fix_diagnostics.meta | 59 ++++++++++++++ 4 files changed, 134 insertions(+), 40 deletions(-) create mode 100644 schemes/sima_diagnostics/check_energy_fix_diagnostics.meta diff --git a/schemes/sima_diagnostics/check_energy_diagnostics.F90 b/schemes/sima_diagnostics/check_energy_diagnostics.F90 index 69897426..4809ed4a 100644 --- a/schemes/sima_diagnostics/check_energy_diagnostics.F90 +++ b/schemes/sima_diagnostics/check_energy_diagnostics.F90 @@ -38,19 +38,14 @@ subroutine check_energy_diagnostics_init(errmsg, errflg) call history_add_field('tend_te_tnd', 'cumulative_total_energy_boundary_flux_using_physics_energy_formula', horiz_only, 'inst', 'J m-2 s-1') call history_add_field('tend_tw_tnd', 'cumulative_total_water_boundary_flux', horiz_only, 'inst', 'kg m-2 s-1') - call history_add_field('teinp', 'vertically_integrated_total_energy_using_dycore_energy_formula_at_start_of_physics_timestep', horiz_only, 'inst', 'J m-2') - call history_add_field('teout', 'vertically_integrated_total_energy_at_end_of_physics_timestep', horiz_only, 'inst', 'J m-2') - call history_add_field('tefix', 'vertically_integrated_total_energy_using_dycore_energy_formula', horiz_only, 'inst', 'J m-2') - end subroutine check_energy_diagnostics_init !> \section arg_table_check_energy_diagnostics_run Argument Table !! \htmlinclude check_energy_diagnostics_run.html subroutine check_energy_diagnostics_run( & cp_or_cv_dycore, scaling_dycore, & - te_ini_dyn, & - te_cur_phys, te_cur_dyn, tw_cur, & - tend_te_tnd, tend_tw_tnd, teout, & + te_cur_phys, tw_cur, & + tend_te_tnd, tend_tw_tnd, & errmsg, errflg) use cam_history, only: history_out_field @@ -60,13 +55,10 @@ subroutine check_energy_diagnostics_run( & ! State variables real(kind_phys), intent(in) :: cp_or_cv_dycore(:,:) real(kind_phys), intent(in) :: scaling_dycore(:,:) - real(kind_phys), intent(in) :: te_ini_dyn(:) real(kind_phys), intent(in) :: te_cur_phys(:) - real(kind_phys), intent(in) :: te_cur_dyn(:) real(kind_phys), intent(in) :: tw_cur(:) real(kind_phys), intent(in) :: tend_te_tnd(:) real(kind_phys), intent(in) :: tend_tw_tnd(:) - real(kind_phys), intent(in) :: teout(:) ! CCPP error handling variables @@ -84,10 +76,6 @@ subroutine check_energy_diagnostics_run( & call history_out_field('tend_te_tnd', tend_te_tnd) call history_out_field('tend_tw_tnd', tend_tw_tnd) - call history_out_field('teinp', te_ini_dyn) - call history_out_field('teout', teout) - call history_out_field('tefix', te_cur_dyn) - end subroutine check_energy_diagnostics_run end module check_energy_diagnostics diff --git a/schemes/sima_diagnostics/check_energy_diagnostics.meta b/schemes/sima_diagnostics/check_energy_diagnostics.meta index 2adc66fc..342ab1f2 100644 --- a/schemes/sima_diagnostics/check_energy_diagnostics.meta +++ b/schemes/sima_diagnostics/check_energy_diagnostics.meta @@ -33,24 +33,12 @@ type = real | kind = kind_phys dimensions = (horizontal_loop_extent, vertical_layer_dimension) intent = in -[ te_ini_dyn ] - standard_name = vertically_integrated_total_energy_using_dycore_energy_formula_at_start_of_physics_timestep - units = J m-2 - type = real | kind = kind_phys - dimensions = (horizontal_dimension) - intent = in [ te_cur_phys ] standard_name = vertically_integrated_total_energy_using_physics_energy_formula units = J m-2 type = real | kind = kind_phys dimensions = (horizontal_loop_extent) intent = in -[ te_cur_dyn ] - standard_name = vertically_integrated_total_energy_using_dycore_energy_formula - units = J m-2 - type = real | kind = kind_phys - dimensions = (horizontal_loop_extent) - intent = in [ tw_cur ] standard_name = vertically_integrated_total_water units = kg m-2 @@ -69,12 +57,6 @@ type = real | kind = kind_phys dimensions = (horizontal_loop_extent) intent = in -[ teout ] - standard_name = vertically_integrated_total_energy_at_end_of_physics_timestep - units = J m-2 - type = real | kind = kind_phys - dimensions = (horizontal_loop_extent) - intent = in [ errmsg ] standard_name = ccpp_error_message units = none diff --git a/schemes/sima_diagnostics/check_energy_fix_diagnostics.F90 b/schemes/sima_diagnostics/check_energy_fix_diagnostics.F90 index c88610f6..0c202189 100644 --- a/schemes/sima_diagnostics/check_energy_fix_diagnostics.F90 +++ b/schemes/sima_diagnostics/check_energy_fix_diagnostics.F90 @@ -1,8 +1,73 @@ -! Diagnostic scheme for check_energy_fix -! This module includes diagnostics that have to be output -! right after the energy fixer has been ran -! (before the fluxes for check_energy_chng are zeroed out) -module check_energy_fix_diagnostics - - -end module check_energy_fix_diagnostics \ No newline at end of file +! Diagnostic scheme for check_energy_fix +! This module includes diagnostics that have to be output +! right after the energy fixer has been ran and check_energy_chng has updated energy state +! (before the fluxes for check_energy_chng are zeroed out) +module check_energy_fix_diagnostics + use ccpp_kinds, only: kind_phys + + implicit none + private + save + + public :: check_energy_fix_diagnostics_init + public :: check_energy_fix_diagnostics_run + +contains + + !> \section arg_table_check_energy_fix_diagnostics_init Argument Table + !! \htmlinclude check_energy_fix_diagnostics_init.html + subroutine check_energy_fix_diagnostics_init(errmsg, errflg) + use cam_history, only: history_add_field + use cam_history_support, only: horiz_only + + character(len=512), intent(out) :: errmsg + integer, intent(out) :: errflg + + ! Local variables: + + errmsg = '' + errflg = 0 + + ! History add field calls + call history_add_field('teinp', 'vertically_integrated_total_energy_using_dycore_energy_formula_at_start_of_physics_timestep', horiz_only, 'inst', 'J m-2') + call history_add_field('tefix', 'vertically_integrated_total_energy_using_dycore_energy_formula', horiz_only, 'inst', 'J m-2') + call history_add_field('teout', 'vertically_integrated_total_energy_at_end_of_physics_timestep', horiz_only, 'inst', 'J m-2') + call history_add_field('efix', 'net_sensible_heat_flux_through_top_and_bottom_of_atmosphere_column_from_global_total_energy_correction', horiz_only, 'inst', 'J m-2') + + end subroutine check_energy_fix_diagnostics_init + + !> \section arg_table_check_energy_fix_diagnostics_run Argument Table + !! \htmlinclude check_energy_diagnostics_run.html + subroutine check_energy_fix_diagnostics_run( & + te_ini_dyn, te_cur_dyn, & + teout, & + eshflx, & + errmsg, errflg) + + use cam_history, only: history_out_field + !------------------------------------------------ + ! Input / output parameters + !------------------------------------------------ + ! State variables + real(kind_phys), intent(in) :: te_ini_dyn(:) + real(kind_phys), intent(in) :: te_cur_dyn(:) + real(kind_phys), intent(in) :: teout(:) + real(kind_phys), intent(in) :: eshflx(:) + + + ! CCPP error handling variables + character(len=512), intent(out) :: errmsg + integer, intent(out) :: errflg + + errmsg = '' + errflg = 0 + + ! History out field calls + call history_out_field('teinp', te_ini_dyn) + call history_out_field('teout', teout) + call history_out_field('tefix', te_cur_dyn) + call history_out_field('efix', eshflx) + + end subroutine check_energy_fix_diagnostics_run + +end module check_energy_fix_diagnostics diff --git a/schemes/sima_diagnostics/check_energy_fix_diagnostics.meta b/schemes/sima_diagnostics/check_energy_fix_diagnostics.meta new file mode 100644 index 00000000..042fb0d2 --- /dev/null +++ b/schemes/sima_diagnostics/check_energy_fix_diagnostics.meta @@ -0,0 +1,59 @@ +[ccpp-table-properties] + name = check_energy_fix_diagnostics + type = scheme + +[ccpp-arg-table] + name = check_energy_fix_diagnostics_init + type = scheme +[ errmsg ] + standard_name = ccpp_error_message + units = none + type = character | kind = len=512 + dimensions = () + intent = out +[ errflg ] + standard_name = ccpp_error_code + units = 1 + type = integer + dimensions = () + intent = out + +[ccpp-arg-table] + name = check_energy_fix_diagnostics_run + type = scheme +[ te_ini_dyn ] + standard_name = vertically_integrated_total_energy_using_dycore_energy_formula_at_start_of_physics_timestep + units = J m-2 + type = real | kind = kind_phys + dimensions = (horizontal_dimension) + intent = in +[ te_cur_dyn ] + standard_name = vertically_integrated_total_energy_using_dycore_energy_formula + units = J m-2 + type = real | kind = kind_phys + dimensions = (horizontal_loop_extent) + intent = in +[ teout ] + standard_name = vertically_integrated_total_energy_at_end_of_physics_timestep + units = J m-2 + type = real | kind = kind_phys + dimensions = (horizontal_loop_extent) + intent = in +[ eshflx ] + standard_name = net_sensible_heat_flux_through_top_and_bottom_of_atmosphere_column + units = W m-2 + type = real | kind = kind_phys + dimensions = (horizontal_loop_extent) + intent = in +[ errmsg ] + standard_name = ccpp_error_message + units = none + type = character | kind = len=512 + dimensions = () + intent = out +[ errflg ] + standard_name = ccpp_error_code + units = 1 + type = integer + dimensions = () + intent = out From 26fbbff75f8a4ee9f17722658a2c53afeca17d5c Mon Sep 17 00:00:00 2001 From: Haipeng Lin Date: Mon, 25 Nov 2024 11:35:51 -0500 Subject: [PATCH 3/5] Remove old suite definition files #166 --- suites/suite_adiabatic.xml | 10 +- suites/suite_cam4.xml | 202 ------------------- suites/suite_cam6.xml | 364 ---------------------------------- suites/suite_cam6_silhs.xml | 379 ------------------------------------ suites/suite_cam7.xml | 10 +- 5 files changed, 14 insertions(+), 951 deletions(-) delete mode 100644 suites/suite_cam4.xml delete mode 100644 suites/suite_cam6.xml delete mode 100644 suites/suite_cam6_silhs.xml diff --git a/suites/suite_adiabatic.xml b/suites/suite_adiabatic.xml index eda9d892..ae4af827 100644 --- a/suites/suite_adiabatic.xml +++ b/suites/suite_adiabatic.xml @@ -7,15 +7,19 @@ check_energy_gmean_diagnostics - + check_energy_zero_fluxes check_energy_fix apply_heating_rate geopotential_temp - - + check_energy_scaling check_energy_chng + + check_energy_fix_diagnostics check_energy_save_teout diff --git a/suites/suite_cam4.xml b/suites/suite_cam4.xml deleted file mode 100644 index c7832514..00000000 --- a/suites/suite_cam4.xml +++ /dev/null @@ -1,202 +0,0 @@ - - - - - - - physics_state_check - - - qneg3 - - physics_state_check - diag_state_b4_phys_write - - - calc_te_and_aam_budgets - check_energy_fix - check_energy_cam_update_pre_chng - check_energy_chng - check_energy_cam_update_post_chng - calc_te_and_aam_budgets - - diag_conv_tend_ini - calc_dtcore - - - - dadadj_calc_update - - - - - - zm_convr - zm_convr_cam_update - zm_conv_evap - zm_conv_evap_cam_update - momtran - momtran_cam_update - convtran - convtran_cam_update - - check_energy_chng - - - cmfmca - cmfmca_cam_update - zm_conv_evap - zm_conv_evap_cam_update - - check_energy_chng - check_tracers_chng - sslt_rebin_adv - - - tropopause_find - cld_sediment_vel - cld_sediment_tend - rk_sed_cam_update - add_conv_detrain_rliq - cldfrc - cldfrc_rh2 - rhdfda_calc - cldfrc_fice - strat_cond_repartition - pcond - rk_pcond_cam_update - cldfrc - cldfrc_diag_output - cldefr - - convtran - check_tracers_chng - diag_phys_writeout - diag_conv - cloud_diagnostics_calc - - - calc_solar_zenith_ang - group_day_night - calc_col_mean_co2 - eccf_calc - tropopause_find - calc_col_mean_o2 - aer_rad_props_sw - radcswmx - rad_sw_diag_output - aer_rad_props_lw - radclwmx - rad_lw_diag_output - cloud_cover_diags_output - rad_qdp_q_calc - rad_data_write - radheat_tend - radheat_diag_output - rad_q_qdp_calc - set_srf_net_sw - - check_energy_chng - tropopause_output - cam_export - diag_export - - - - - - flux_avg_run - physics_state_check - calc_flx_net - - - qneg4 - aoa_tracers_timestep_tend - check_tracers_chng - co2_cycle_set_ptend - - - - set_dry_to_wet - tint_calc - ubc_get_vals - set_top_tint_val - rhoi_calc - compute_tms - tms_diag_output - compute_blj - blj_diag_output - temp_to_potential_temp - virtem - calc_ustar - calc_obklen - - - trbintd - pblintd - austausch_atm - austausch_pbl - - pbl_diag_calc - dse_top_calc - compute_molec_diff_wet - compute_vdiff_wet - compute_molec_diff_dry - compute_vdiff_dry - diff_flux_diag - diff_flux_tend_dry - set_wet_to_dry - pbl_diag_calc - diff_mass_check - pbl_output - - rayleigh_friction_tend - check_energy_chng - check_tracers_chng - charge_balance - - - - set_dry_to_wet - gw_prof - - - effgw_calc - gw_src_calc - gw_drag_prof - calc_taucd - egwdffi_tot_calc - momentum_flux_calc - energy_change - energy_fixer - gw_cam_update - - - check_energy_chng - lunar_tides_tend - check_energy_chng - calc_te_and_aam_budgets - nudging_timestep_tend - check_energy_chng - set_dry_to_wet - - - qfac_state_adjust - geopotential_dse - - calc_te_and_aam_budgets - dtcore_reset - diag_phys_tend_writeout - - - diff --git a/suites/suite_cam6.xml b/suites/suite_cam6.xml deleted file mode 100644 index d995b70b..00000000 --- a/suites/suite_cam6.xml +++ /dev/null @@ -1,364 +0,0 @@ - - - - - - - physics_state_check - clybry_fam_adj - - - qneg - - physics_state_check - diag_state_b4_phys_write - - - calc_te_and_aam_budgets - check_energy_fix - check_energy_cam_update_pre_chng - check_energy_chng - check_energy_cam_update_post_chng - calc_te_and_aam_budgets - - diag_conv_tend_ini - calc_dtcore - - - - dadadj_calc_update - - - - zm_convr - zm_convr_cam_update - zm_conv_evap - zm_conv_evap_cam_update - momtran - momtran_cam_update - convtran - convtran_cam_update - - check_energy_chng - check_tracers_chng - sslt_rebin_adv - - - - - - clubb_input_prepare - clubb_var_vert_inv - - stats_begin_timestep_api - advance_clubb_core_api - update_xp2_mc_intr - calculate_thlp2_rad_intr - stats_end_timestep_clubb - - - - clubb_output_prepare - clubb_var_vert_rev - clubb_upper_diss - clubb_cam_update - liquid_macro_tend - liquid_macro_CAM_update - conv_cond_detrain_calc - conv_cond_detrain_cam_update - set_wet_to_dry - clubb_diag_output - - check_energy_chng - - - - - hetfrz_classnuc_cam_save_cbaero - aero_get_num_mmr - aero_calc_wsub - nucleate_ice_cam_calc - lcldm_min_check - aero_cam_drop_activate - aero_cam_contact_freezing - ndrop_bam_ccn - hetfrz_classnuc_cam_calc - microp_aero_diag_output - - - - micro_mg_get_cols3_0 - calc_incloud_LWP - micro_calc_tropopause - micro_mg_tend3_0 - mg_calc_outputs - calc_atm_density - - - size_dist_param_liq - micro_eff_radius_liq - size_dist_param_liq_const - calc_ncic_grid - size_dist_param_liq - micro_eff_radius_liq - micro_eff_radius_rain - micro_eff_radius_snow - micro_eff_radius_graupel - calc_niic_grid - size_dist_param_basic - micro_eff_radius_ice - - calc_micro_column_vars - calc_prec_efficiency - micro_diag_output - - massless_droplet_destroyer - - check_energy_chng - - diag_clip_tend_writeout - check_energy_chng - calc_prec_sum - - calc_prec_avg - modal_aero_calcsize_diag - - - - - modal_aero_wateruptake_dr - - - - modal_aero_calcsize_sub - modal_aero_wateruptake_dr - wetdep_prec_calc - coarse_fact_calc - - - aero_fact_calc - wetdepa_v2 - wetdep_diag_output - - - ma_convproc_intr - set_srf_wetdep - - convtran - check_tracers_chng - diag_phys_writeout - diag_conv - cloud_diagnostics_calc - - - calc_solar_zenith_ang - group_day_night - tropopause_find - - - rrtmg_state_prepare - - rrtmg_state_update - aer_rad_props_sw - rad_rrtmg_sw - rad_sw_diag_output - - rad_cnst_out - - rrtmg_state_update - aer_rad_props_lw - rad_rrtmg_lw - rad_lw_diag_output - - cosp_input_prepare - cosp_simulator - rad_qdp_q_calc - rad_data_write - radheat_tend - radheat_diag_output - rad_q_qdp_calc - set_srf_net_sw - - check_energy_chng - tropopause_output - cam_export - diag_export - - - - - - flux_avg_run - physics_state_check - calc_flx_net - - - aero_model_emissions - calc_MEGAN_fluxes - set_srf_emissions - srf_emis_diag_output - fire_emissions_srf - - - - qneg_surface - - aoa_tracers_timestep_tend - check_tracers_chng - co2_cycle_set_ptend - - - short_lived_species_writeic - get_curr_calday - chem_tropopause_find - neu_wetdep_tend - chem_calc_cldw - gas_phase_chemdr - nitro_srf_flx - chem_diag_output - - check_energy_chng - check_tracers_chng - - - set_dry_to_wet - tint_calc - ubc_get_vals - set_top_tint_val - rhoi_calc - compute_tms - tms_diag_output - compute_blj - blj_diag_output - theta_calc - virtem - calc_ustar - calc_obklen - pbl_diag_calc - dse_top_calc - compute_molec_diff_wet - compute_vdiff_wet - compute_molec_diff_dry - compute_vdiff_dry - aero_srf_flx_add - diff_flux_diag - diff_flux_tend_dry - set_wet_to_dry - pbl_diag_calc - diff_mass_check - pbl_output - - rayleigh_friction_tend - check_energy_chng - check_tracers_chng - - - calcram - calcram_diag_output - calc_atm_density - - modal_aero_depvel_part - - - - calc_aero_vars - - modal_aero_depvel_part - - aero_tracer_indx - depvel_m_to_pa - dust_sediment_tend - drydep_diag_output - - - set_srf_drydep - - charge_balance - - - - set_dry_to_wet - gw_prof - - - effgw_calc - gw_src_calc - gw_drag_prof - calc_taucd - egwdffi_tot_calc - momentum_flux_calc - energy_change - energy_fixer - gw_cam_update - - - check_energy_chng - lunar_tides_tend - check_energy_chng - calc_te_and_aam_budgets - nudging_timestep_tend - check_energy_chng - set_dry_to_wet - - - qfac_state_adjust - geopotential_dse - - calc_te_and_aam_budgets - dtcore_reset - diag_phys_tend_writeout - clybry_fam_set - - - diff --git a/suites/suite_cam6_silhs.xml b/suites/suite_cam6_silhs.xml deleted file mode 100644 index 9bd45239..00000000 --- a/suites/suite_cam6_silhs.xml +++ /dev/null @@ -1,379 +0,0 @@ - - - - - - - physics_state_check - clybry_fam_adj - - - qneg3 - - physics_state_check - diag_state_b4_phys_write - - - calc_te_and_aam_budgets - check_energy_fix - check_energy_cam_update_pre_chng - check_energy_chng - check_energy_cam_update_post_chng - calc_te_and_aam_budgets - - diag_conv_tend_ini - calc_dtcore - - - - dadadj_calc_update - - - - zm_convr - zm_convr_cam_update - zm_conv_evap - zm_conv_evap_cam_update - momtran - momtran_cam_update - convtran - convtran_cam_update - - check_energy_chng - check_tracers_chng - sslt_rebin_adv - - - - - - clubb_input_prepare - clubb_var_vert_inv - - stats_begin_timestep_api - advance_clubb_core_api - update_xp2_mc_intr - calculate_thlp2_rad_intr - stats_end_timestep_clubb - - - - clubb_output_prepare - clubb_var_vert_rev - clubb_upper_diss - clubb_cam_update - liquid_macro_tend - liquid_macro_CAM_update - conv_cond_detrain_calc - conv_cond_detrain_cam_update - set_wet_to_dry - clubb_diag_output - - check_energy_chng - - - - - hetfrz_classnuc_cam_save_cbaero - aero_get_num_mmr - aero_calc_wsub - nucleate_ice_cam_calc - lcldm_min_check - aero_cam_drop_activate - aero_cam_contact_freezing - ndrop_bam_ccn - hetfrz_classnuc_cam_calc - microp_aero_diag_output - - - - micro_mg_get_cols3_0 - calc_incloud_LWP - micro_calc_tropopause - micro_mg_tend3_0 - mg_calc_outputs - calc_atm_density - - - size_dist_param_liq - micro_eff_radius_liq - size_dist_param_liq_const - calc_ncic_grid - size_dist_param_liq - micro_eff_radius_liq - micro_eff_radius_rain - micro_eff_radius_snow - micro_eff_radius_graupel - calc_niic_grid - size_dist_param_basic - micro_eff_radius_ice - - calc_micro_column_vars - calc_prec_efficiency - micro_diag_output - - - - calc_total_moisture - calc_dry_static_density - convert_omega_to_w - convert_dse_to_temp - exner_silhs - thl_calc - silhs_var_vert_inv - silhs_get_subcol_wgts - lh_microphys_var_covar_driver_api - zero_upper_level - - subcol_SILHS_fill_holes_conserv_calc - massless_droplet_destroyer - subcol_SILHS_hydromet_conc_tend_lim - - check_energy_chng - - diag_clip_tend_writeout - check_energy_chng - calc_prec_sum - - calc_prec_avg - modal_aero_calcsize_diag - - - - - modal_aero_wateruptake_dr - - - - modal_aero_calcsize_sub - modal_aero_wateruptake_dr - wetdep_prec_calc - coarse_fact_calc - - - aero_fact_calc - wetdepa_v2 - wetdep_diag_output - - - ma_convproc_intr - set_srf_wetdep - - convtran - check_tracers_chng - diag_phys_writeout - diag_conv - cloud_diagnostics_calc - - - calc_solar_zenith_ang - group_day_night - tropopause_find - - - rrtmg_state_prepare - - rrtmg_state_update - aer_rad_props_sw - rad_rrtmg_sw - rad_sw_diag_output - - rad_cnst_out - - rrtmg_state_update - aer_rad_props_lw - rad_rrtmg_lw - rad_lw_diag_output - - cosp_input_prepare - cosp_simulator - rad_qdp_q_calc - rad_data_write - radheat_tend - radheat_diag_output - rad_q_qdp_calc - set_srf_net_sw - - check_energy_chng - tropopause_output - cam_export - diag_export - - - - - - flux_avg_run - physics_state_check - calc_flx_net - - - aero_model_emissions - calc_MEGAN_fluxes - set_srf_emissions - srf_emis_diag_output - fire_emissions_srf - - - - qneg4 - - aoa_tracers_timestep_tend - check_tracers_chng - co2_cycle_set_ptend - - - short_lived_species_writeic - get_curr_calday - chem_tropopause_find - neu_wetdep_tend - chem_calc_cldw - gas_phase_chemdr - nitro_srf_flx - chem_diag_output - - check_energy_chng - check_tracers_chng - - - set_dry_to_wet - tint_calc - ubc_get_vals - set_top_tint_val - rhoi_calc - compute_tms - tms_diag_output - compute_blj - blj_diag_output - theta_calc - virtem - calc_ustar - calc_obklen - pbl_diag_calc - dse_top_calc - compute_molec_diff_wet - compute_vdiff_wet - compute_molec_diff_dry - compute_vdiff_dry - aero_srf_flx_add - diff_flux_diag - diff_flux_tend_dry - set_wet_to_dry - pbl_diag_calc - diff_mass_check - pbl_output - - rayleigh_friction_tend - check_energy_chng - check_tracers_chng - - - calcram - calcram_diag_output - calc_atm_density - - modal_aero_depvel_part - - - - calc_aero_vars - - modal_aero_depvel_part - - aero_tracer_indx - depvel_m_to_pa - dust_sediment_tend - drydep_diag_output - - - set_srf_drydep - - charge_balance - - - - set_dry_to_wet - gw_prof - - - effgw_calc - gw_src_calc - gw_drag_prof - calc_taucd - egwdffi_tot_calc - momentum_flux_calc - energy_change - energy_fixer - gw_cam_update - - - check_energy_chng - lunar_tides_tend - check_energy_chng - calc_te_and_aam_budgets - nudging_timestep_tend - check_energy_chng - set_dry_to_wet - - - qfac_state_adjust - geopotential_dse - - calc_te_and_aam_budgets - dtcore_reset - diag_phys_tend_writeout - clybry_fam_set - - - diff --git a/suites/suite_cam7.xml b/suites/suite_cam7.xml index 7351223d..85c5d8de 100644 --- a/suites/suite_cam7.xml +++ b/suites/suite_cam7.xml @@ -7,15 +7,19 @@ check_energy_gmean_diagnostics - + check_energy_zero_fluxes check_energy_fix apply_heating_rate geopotential_temp - - + check_energy_scaling check_energy_chng + + check_energy_fix_diagnostics dadadj From 4a0473ddae22b54f13ec9d52ddcc91181210f596 Mon Sep 17 00:00:00 2001 From: Haipeng Lin Date: Mon, 16 Dec 2024 12:15:17 -0500 Subject: [PATCH 4/5] Update teout standard name --- doc/NamesNotInDictionary.txt | 23 ++++++++++++------- schemes/check_energy/check_energy_chng.meta | 2 +- .../check_energy_gmean.meta | 4 ++-- .../check_energy/check_energy_save_teout.meta | 2 +- .../check_energy_diagnostics.F90 | 2 -- .../check_energy_fix_diagnostics.F90 | 2 +- .../check_energy_fix_diagnostics.meta | 2 +- .../check_energy_gmean_diagnostics.meta | 2 +- 8 files changed, 22 insertions(+), 17 deletions(-) diff --git a/doc/NamesNotInDictionary.txt b/doc/NamesNotInDictionary.txt index 99c2e48b..4ea18e74 100644 --- a/doc/NamesNotInDictionary.txt +++ b/doc/NamesNotInDictionary.txt @@ -1,7 +1,7 @@ ####################### Date/time of when script was run: -2024-12-16 11:19:41.130567 +2024-12-16 12:15:06.492723 ####################### Non-dictionary standard names found in the following metadata files: @@ -12,7 +12,7 @@ atmospheric_physics/schemes/sima_diagnostics/check_energy_gmean_diagnostics.meta - flag_for_energy_global_means_output - global_mean_heating_rate_correction_for_energy_conservation - - global_mean_vertically_integrated_total_energy_at_end_of_physics_timestep + - global_mean_vertically_integrated_total_energy_using_dycore_energy_formula_at_end_of_physics_timestep - global_mean_vertically_integrated_total_energy_using_dycore_energy_formula_at_start_of_physics_timestep -------------------------- @@ -23,8 +23,6 @@ atmospheric_physics/schemes/sima_diagnostics/check_energy_diagnostics.meta - cumulative_total_water_boundary_flux - ratio_of_specific_heat_of_air_used_in_physics_energy_formula_to_specific_heat_of_air_used_in_dycore_energy_formula - specific_heat_of_air_used_in_dycore - - vertically_integrated_total_energy_at_end_of_physics_timestep - - vertically_integrated_total_energy_using_dycore_energy_formula - vertically_integrated_total_energy_using_physics_energy_formula - vertically_integrated_total_water @@ -40,6 +38,15 @@ atmospheric_physics/schemes/sima_diagnostics/sima_state_diagnostics.meta -------------------------- +atmospheric_physics/schemes/sima_diagnostics/check_energy_fix_diagnostics.meta + + - net_sensible_heat_flux_through_top_and_bottom_of_atmosphere_column + - vertically_integrated_total_energy_using_dycore_energy_formula + - vertically_integrated_total_energy_using_dycore_energy_formula_at_end_of_physics_timestep + - vertically_integrated_total_energy_using_dycore_energy_formula_at_start_of_physics_timestep + +-------------------------- + atmospheric_physics/schemes/sima_diagnostics/tropopause_diagnostics.meta - tropopause_air_pressure @@ -254,8 +261,8 @@ atmospheric_physics/schemes/utilities/physics_tendency_updaters.meta atmospheric_physics/schemes/check_energy/check_energy_save_teout.meta - - vertically_integrated_total_energy_at_end_of_physics_timestep - vertically_integrated_total_energy_using_dycore_energy_formula + - vertically_integrated_total_energy_using_dycore_energy_formula_at_end_of_physics_timestep -------------------------- @@ -277,8 +284,8 @@ atmospheric_physics/schemes/check_energy/check_energy_chng.meta - specific_heat_of_air_used_in_dycore - total_energy_formula_for_dycore - total_energy_formula_for_physics - - vertically_integrated_total_energy_at_end_of_physics_timestep - vertically_integrated_total_energy_using_dycore_energy_formula + - vertically_integrated_total_energy_using_dycore_energy_formula_at_end_of_physics_timestep - vertically_integrated_total_energy_using_dycore_energy_formula_at_start_of_physics_timestep - vertically_integrated_total_energy_using_physics_energy_formula - vertically_integrated_total_energy_using_physics_energy_formula_at_start_of_physics_timestep @@ -325,9 +332,9 @@ atmospheric_physics/schemes/check_energy/check_energy_gmean/check_energy_gmean.m - global_mean_heating_rate_correction_for_energy_conservation - global_mean_surface_air_pressure - global_mean_total_energy_correction_for_energy_conservation - - global_mean_vertically_integrated_total_energy_at_end_of_physics_timestep + - global_mean_vertically_integrated_total_energy_using_dycore_energy_formula_at_end_of_physics_timestep - global_mean_vertically_integrated_total_energy_using_dycore_energy_formula_at_start_of_physics_timestep - - vertically_integrated_total_energy_at_end_of_physics_timestep + - vertically_integrated_total_energy_using_dycore_energy_formula_at_end_of_physics_timestep - vertically_integrated_total_energy_using_dycore_energy_formula_at_start_of_physics_timestep -------------------------- diff --git a/schemes/check_energy/check_energy_chng.meta b/schemes/check_energy/check_energy_chng.meta index f69792df..d673c9a1 100644 --- a/schemes/check_energy/check_energy_chng.meta +++ b/schemes/check_energy/check_energy_chng.meta @@ -168,7 +168,7 @@ dimensions = () intent = out [ teout ] - standard_name = vertically_integrated_total_energy_at_end_of_physics_timestep + standard_name = vertically_integrated_total_energy_using_dycore_energy_formula_at_end_of_physics_timestep units = J m-2 type = real | kind = kind_phys dimensions = (horizontal_dimension) diff --git a/schemes/check_energy/check_energy_gmean/check_energy_gmean.meta b/schemes/check_energy/check_energy_gmean/check_energy_gmean.meta index 9aa7b57d..9567f6ee 100644 --- a/schemes/check_energy/check_energy_gmean/check_energy_gmean.meta +++ b/schemes/check_energy/check_energy_gmean/check_energy_gmean.meta @@ -43,7 +43,7 @@ dimensions = (horizontal_loop_extent) intent = in [ teout ] - standard_name = vertically_integrated_total_energy_at_end_of_physics_timestep + standard_name = vertically_integrated_total_energy_using_dycore_energy_formula_at_end_of_physics_timestep units = J m-2 type = real | kind = kind_phys dimensions = (horizontal_loop_extent) @@ -67,7 +67,7 @@ dimensions = () intent = out [ teout_glob ] - standard_name = global_mean_vertically_integrated_total_energy_at_end_of_physics_timestep + standard_name = global_mean_vertically_integrated_total_energy_using_dycore_energy_formula_at_end_of_physics_timestep units = J m-2 type = real | kind = kind_phys dimensions = () diff --git a/schemes/check_energy/check_energy_save_teout.meta b/schemes/check_energy/check_energy_save_teout.meta index d587b6f7..afababc3 100644 --- a/schemes/check_energy/check_energy_save_teout.meta +++ b/schemes/check_energy/check_energy_save_teout.meta @@ -18,7 +18,7 @@ dimensions = (horizontal_loop_extent) intent = in [ teout ] - standard_name = vertically_integrated_total_energy_at_end_of_physics_timestep + standard_name = vertically_integrated_total_energy_using_dycore_energy_formula_at_end_of_physics_timestep units = J m-2 type = real | kind = kind_phys dimensions = (horizontal_loop_extent) diff --git a/schemes/sima_diagnostics/check_energy_diagnostics.F90 b/schemes/sima_diagnostics/check_energy_diagnostics.F90 index 4809ed4a..5682bcae 100644 --- a/schemes/sima_diagnostics/check_energy_diagnostics.F90 +++ b/schemes/sima_diagnostics/check_energy_diagnostics.F90 @@ -1,7 +1,5 @@ ! Diagnostic scheme for check_energy ! Not all quantities are needed as diagnostics; this module is designed to ease development -! -! module check_energy_diagnostics use ccpp_kinds, only: kind_phys diff --git a/schemes/sima_diagnostics/check_energy_fix_diagnostics.F90 b/schemes/sima_diagnostics/check_energy_fix_diagnostics.F90 index 0c202189..db7ca447 100644 --- a/schemes/sima_diagnostics/check_energy_fix_diagnostics.F90 +++ b/schemes/sima_diagnostics/check_energy_fix_diagnostics.F90 @@ -31,7 +31,7 @@ subroutine check_energy_fix_diagnostics_init(errmsg, errflg) ! History add field calls call history_add_field('teinp', 'vertically_integrated_total_energy_using_dycore_energy_formula_at_start_of_physics_timestep', horiz_only, 'inst', 'J m-2') call history_add_field('tefix', 'vertically_integrated_total_energy_using_dycore_energy_formula', horiz_only, 'inst', 'J m-2') - call history_add_field('teout', 'vertically_integrated_total_energy_at_end_of_physics_timestep', horiz_only, 'inst', 'J m-2') + call history_add_field('teout', 'vertically_integrated_total_energy_using_dycore_energy_formula_at_end_of_physics_timestep', horiz_only, 'inst', 'J m-2') call history_add_field('efix', 'net_sensible_heat_flux_through_top_and_bottom_of_atmosphere_column_from_global_total_energy_correction', horiz_only, 'inst', 'J m-2') end subroutine check_energy_fix_diagnostics_init diff --git a/schemes/sima_diagnostics/check_energy_fix_diagnostics.meta b/schemes/sima_diagnostics/check_energy_fix_diagnostics.meta index 042fb0d2..c5811a27 100644 --- a/schemes/sima_diagnostics/check_energy_fix_diagnostics.meta +++ b/schemes/sima_diagnostics/check_energy_fix_diagnostics.meta @@ -34,7 +34,7 @@ dimensions = (horizontal_loop_extent) intent = in [ teout ] - standard_name = vertically_integrated_total_energy_at_end_of_physics_timestep + standard_name = vertically_integrated_total_energy_using_dycore_energy_formula_at_end_of_physics_timestep units = J m-2 type = real | kind = kind_phys dimensions = (horizontal_loop_extent) diff --git a/schemes/sima_diagnostics/check_energy_gmean_diagnostics.meta b/schemes/sima_diagnostics/check_energy_gmean_diagnostics.meta index 7eff0709..af1f5c79 100644 --- a/schemes/sima_diagnostics/check_energy_gmean_diagnostics.meta +++ b/schemes/sima_diagnostics/check_energy_gmean_diagnostics.meta @@ -34,7 +34,7 @@ dimensions = () intent = in [ teout_glob ] - standard_name = global_mean_vertically_integrated_total_energy_at_end_of_physics_timestep + standard_name = global_mean_vertically_integrated_total_energy_using_dycore_energy_formula_at_end_of_physics_timestep units = J m-2 type = real | kind = kind_phys dimensions = () From 3369e324442fef6cf3843a8544447edb6c42d0ab Mon Sep 17 00:00:00 2001 From: Haipeng Lin Date: Thu, 13 Feb 2025 21:17:04 -0500 Subject: [PATCH 5/5] Change diagnostic names to uppercase. --- .../check_energy_fix_diagnostics.F90 | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/schemes/sima_diagnostics/check_energy_fix_diagnostics.F90 b/schemes/sima_diagnostics/check_energy_fix_diagnostics.F90 index db7ca447..12074a53 100644 --- a/schemes/sima_diagnostics/check_energy_fix_diagnostics.F90 +++ b/schemes/sima_diagnostics/check_energy_fix_diagnostics.F90 @@ -29,10 +29,10 @@ subroutine check_energy_fix_diagnostics_init(errmsg, errflg) errflg = 0 ! History add field calls - call history_add_field('teinp', 'vertically_integrated_total_energy_using_dycore_energy_formula_at_start_of_physics_timestep', horiz_only, 'inst', 'J m-2') - call history_add_field('tefix', 'vertically_integrated_total_energy_using_dycore_energy_formula', horiz_only, 'inst', 'J m-2') - call history_add_field('teout', 'vertically_integrated_total_energy_using_dycore_energy_formula_at_end_of_physics_timestep', horiz_only, 'inst', 'J m-2') - call history_add_field('efix', 'net_sensible_heat_flux_through_top_and_bottom_of_atmosphere_column_from_global_total_energy_correction', horiz_only, 'inst', 'J m-2') + call history_add_field('TEINP', 'vertically_integrated_total_energy_using_dycore_energy_formula_at_start_of_physics_timestep', horiz_only, 'inst', 'J m-2') + call history_add_field('TEFIX', 'vertically_integrated_total_energy_using_dycore_energy_formula', horiz_only, 'inst', 'J m-2') + call history_add_field('TEOUT', 'vertically_integrated_total_energy_using_dycore_energy_formula_at_end_of_physics_timestep', horiz_only, 'inst', 'J m-2') + call history_add_field('EFIX', 'net_sensible_heat_flux_through_top_and_bottom_of_atmosphere_column_from_global_total_energy_correction', horiz_only, 'inst', 'J m-2') end subroutine check_energy_fix_diagnostics_init @@ -63,10 +63,10 @@ subroutine check_energy_fix_diagnostics_run( & errflg = 0 ! History out field calls - call history_out_field('teinp', te_ini_dyn) - call history_out_field('teout', teout) - call history_out_field('tefix', te_cur_dyn) - call history_out_field('efix', eshflx) + call history_out_field('TEINP', te_ini_dyn) + call history_out_field('TEOUT', teout) + call history_out_field('TEFIX', te_cur_dyn) + call history_out_field('EFIX', eshflx) end subroutine check_energy_fix_diagnostics_run