Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@
dimensions = (horizontal_dimension, vertical_layer_dimension)
intent = in
[ cp_or_cv_dycore ]
standard_name = specific_heat_of_air_used_in_dycore
standard_name = specific_heat_of_air_used_in_dycore_at_start_of_physics_timestep
units = J kg-1 K-1
type = real | kind = kind_phys
dimensions = (horizontal_dimension, vertical_layer_dimension)
Expand Down Expand Up @@ -280,13 +280,13 @@
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
intent = in
[ cp_or_cv_dycore ]
standard_name = specific_heat_of_air_used_in_dycore
standard_name = specific_heat_of_air_used_in_dycore_at_start_of_physics_timestep
units = J kg-1 K-1
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
intent = in
[ scaling_dycore ]
standard_name = ratio_of_specific_heat_of_air_used_in_physics_energy_formula_to_specific_heat_of_air_used_in_dycore_energy_formula
standard_name = ratio_of_specific_heat_of_air_used_in_physics_energy_formula_to_specific_heat_of_air_used_in_dycore_energy_formula_at_start_of_physics_timestep
units = 1
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
dimensions = ()
intent = in
[ cp_or_cv_dycore ]
standard_name = specific_heat_of_air_used_in_dycore
standard_name = specific_heat_of_air_used_in_dycore_at_start_of_physics_timestep
units = J kg-1 K-1
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
Expand All @@ -24,7 +24,7 @@
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
intent = in
[ scaling_dycore ]
standard_name = ratio_of_specific_heat_of_air_used_in_physics_energy_formula_to_specific_heat_of_air_used_in_dycore_energy_formula
standard_name = ratio_of_specific_heat_of_air_used_in_physics_energy_formula_to_specific_heat_of_air_used_in_dycore_energy_formula_at_start_of_physics_timestep
units = 1
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
dimensions = ()
intent = in
[ scaling_dycore ]
standard_name = ratio_of_specific_heat_of_air_used_in_physics_energy_formula_to_specific_heat_of_air_used_in_dycore_energy_formula
standard_name = ratio_of_specific_heat_of_air_used_in_physics_energy_formula_to_specific_heat_of_air_used_in_dycore_energy_formula_at_start_of_physics_timestep
units = 1
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
Expand Down
4 changes: 2 additions & 2 deletions schemes/sima_diagnostics/check_energy_diagnostics.F90
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ subroutine check_energy_diagnostics_init(errmsg, errflg)
errflg = 0

! History add field calls
call history_add_field('cp_or_cv_dycore', 'specific_heat_of_air_used_in_dycore', 'lev', 'inst', 'J kg-1 K-1')
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('cp_or_cv_dycore', 'specific_heat_of_air_used_in_dycore_at_start_of_physics_timestep', 'lev', 'inst', 'J kg-1 K-1')
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_at_start_of_physics_timestep', '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('tw_cur', 'vertically_integrated_total_water', horiz_only, 'inst', 'kg m-2')
Expand Down
4 changes: 2 additions & 2 deletions schemes/sima_diagnostics/check_energy_diagnostics.meta
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@
name = check_energy_diagnostics_run
type = scheme
[ cp_or_cv_dycore ]
standard_name = specific_heat_of_air_used_in_dycore
standard_name = specific_heat_of_air_used_in_dycore_at_start_of_physics_timestep
units = J kg-1 K-1
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
intent = in
[ scaling_dycore ]
standard_name = ratio_of_specific_heat_of_air_used_in_physics_energy_formula_to_specific_heat_of_air_used_in_dycore_energy_formula
standard_name = ratio_of_specific_heat_of_air_used_in_physics_energy_formula_to_specific_heat_of_air_used_in_dycore_energy_formula_at_start_of_physics_timestep
units = 1
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
Expand Down
19 changes: 18 additions & 1 deletion suites/suite_cam4.xml
Original file line number Diff line number Diff line change
Expand Up @@ -406,13 +406,30 @@
<!-- Save current total energy from dycore for energy fixer in time step. Total energy in current state is updated by the last check_energy_chng call. -->
<scheme>check_energy_save_teout</scheme>

<!-- thermo_water_update prepares cp_or_cv_dycore for post-physics
total-energy diagnostics (i.e., tot_energy_phys in CAM).
COMMENTED OUT: CAM-SIMA does not have tot_energy_phys diagnostics
yet, thus cp_or_cv_dycore does not need to be updated mid-physics
at this time.

check_energy_scaling reads cp_or_cv_dycore_at_start_of_physics_timestep
(computed in d_p_coupling/dyn_coupling_impl) instead
and should not use mid-physics timestep updated values (see CAM#1554).
Re-enable once dme_adjust is enabled and tot_energy_physics diagnostics
are implemented. -->
<!-- <scheme>thermo_water_update</scheme> -->

<!-- Dry Mass and Energy adjust -->
<!-- COMMENTED OUT until qini/liqini/iceini have initialization routines -->
<!-- See https://github.com/ESCOMP/atmospheric_physics/issues/222 -->
<!-- <scheme>dme_adjust</scheme> -->

<!-- MPAS and SE specific scaling of temperature for enforcing energy consistency:
First, calculate the scaling based off cp_or_cv_dycore (from cam_thermo_water_update)
First, calculate the scaling based off the start-of-physics snapshot
cp_or_cv_dycore_at_start_of_physics_timestep (computed in d_p_coupling/
dyn_coupling_impl).
Any mid-physics mutation of cp_or_cv_dycore by thermo_water_update
should not be used.
Then, perform the temperature and temperature tendency scaling -->
<scheme>check_energy_scaling</scheme>
<scheme>dycore_energy_consistency_adjust</scheme>
Expand Down
20 changes: 17 additions & 3 deletions suites/suite_cam7.xml
Original file line number Diff line number Diff line change
Expand Up @@ -145,16 +145,30 @@
<!-- Save current total energy from dycore for energy fixer in time step. Total energy in current state is updated by the last check_energy_chng call. -->
<scheme>check_energy_save_teout</scheme>

<!-- Update cp/cv for energy computation based in updated water variables -->
<scheme>thermo_water_update</scheme>
<!-- thermo_water_update prepares cp_or_cv_dycore for post-physics
total-energy diagnostics (i.e., tot_energy_phys in CAM).
COMMENTED OUT: CAM-SIMA does not have tot_energy_phys diagnostics
yet, thus cp_or_cv_dycore does not need to be updated mid-physics
at this time.

check_energy_scaling reads cp_or_cv_dycore_at_start_of_physics_timestep
(computed in d_p_coupling/dyn_coupling_impl) instead
and should not use mid-physics timestep updated values (see CAM#1554).
Re-enable once dme_adjust is enabled and tot_energy_physics diagnostics
are implemented. -->
<!-- <scheme>thermo_water_update</scheme> -->

<!-- Dry Mass and Energy adjust -->
<!-- COMMENTED OUT until qini/liqini/iceini have initialization routines -->
<!-- See https://github.com/ESCOMP/atmospheric_physics/issues/222 -->
<!-- <scheme>dme_adjust</scheme> -->

<!-- MPAS and SE specific scaling of temperature for enforcing energy consistency:
First, calculate the scaling based off cp_or_cv_dycore (from cam_thermo_water_update)
First, calculate the scaling based off the start-of-physics snapshot
cp_or_cv_dycore_at_start_of_physics_timestep (computed in d_p_coupling/
dyn_coupling_impl).
Any mid-physics mutation of cp_or_cv_dycore by thermo_water_update
should not be used.
Then, perform the temperature and temperature tendency scaling -->
<scheme>check_energy_scaling</scheme>
<scheme>dycore_energy_consistency_adjust</scheme>
Expand Down
23 changes: 18 additions & 5 deletions suites/suite_kessler.xml
Original file line number Diff line number Diff line change
Expand Up @@ -31,17 +31,30 @@
</group>
<group name="physics_after_coupler">

<!-- Update cp/cv for energy computation based in updated water variables -->
<scheme>thermo_water_update</scheme>
<!-- thermo_water_update prepares cp_or_cv_dycore for post-physics
total-energy diagnostics (i.e., tot_energy_phys in CAM).
COMMENTED OUT: CAM-SIMA does not have tot_energy_phys diagnostics
yet, thus cp_or_cv_dycore does not need to be updated mid-physics
at this time.

check_energy_scaling reads cp_or_cv_dycore_at_start_of_physics_timestep
(computed in d_p_coupling/dyn_coupling_impl) instead
and should not use mid-physics timestep updated values (see CAM#1554).
Re-enable once dme_adjust is enabled and tot_energy_physics diagnostics
are implemented. -->
<!-- <scheme>thermo_water_update</scheme> -->

<!-- COMMENTED OUT until qini/liqini/iceini have initialization routines -->
<!-- See https://github.com/ESCOMP/atmospheric_physics/issues/222 -->
<!-- <scheme>dme_adjust</scheme> -->

<!-- MPAS and SE specific scaling of temperature for enforcing energy consistency:
First, calculate the scaling based off cp_or_cv_dycore (from cam_thermo_water_update)
Then, perform the temperature and temperature tendency scaling,
and apply tendencies resulting from such adjustment -->
First, calculate the scaling based off the start-of-physics snapshot
cp_or_cv_dycore_at_start_of_physics_timestep (computed in d_p_coupling/
dyn_coupling_impl).
Any mid-physics mutation of cp_or_cv_dycore by thermo_water_update
should not be used.
Then, perform the temperature and temperature tendency scaling -->
<scheme>check_energy_scaling</scheme>
<scheme>dycore_energy_consistency_adjust</scheme>
<scheme>apply_tendency_of_air_temperature</scheme>
Expand Down
23 changes: 18 additions & 5 deletions suites/suite_tj2016.xml
Original file line number Diff line number Diff line change
Expand Up @@ -24,17 +24,30 @@
<scheme>apply_tendency_of_northward_wind</scheme>
<scheme>qneg</scheme>

<!-- Update cp/cv for energy computation based in updated water variables -->
<scheme>thermo_water_update</scheme>
<!-- thermo_water_update prepares cp_or_cv_dycore for post-physics
total-energy diagnostics (i.e., tot_energy_phys in CAM).
COMMENTED OUT: CAM-SIMA does not have tot_energy_phys diagnostics
yet, thus cp_or_cv_dycore does not need to be updated mid-physics
at this time.

check_energy_scaling reads cp_or_cv_dycore_at_start_of_physics_timestep
(computed in d_p_coupling/dyn_coupling_impl) instead
and should not use mid-physics timestep updated values (see CAM#1554).
Re-enable once dme_adjust is enabled and tot_energy_physics diagnostics
are implemented. -->
<!-- <scheme>thermo_water_update</scheme> -->

<!-- COMMENTED OUT until qini/liqini/iceini have initialization routines -->
<!-- See https://github.com/ESCOMP/atmospheric_physics/issues/222 -->
<!-- <scheme>dme_adjust</scheme> -->

<!-- MPAS and SE specific scaling of temperature for enforcing energy consistency:
First, calculate the scaling based off cp_or_cv_dycore (from cam_thermo_water_update)
Then, perform the temperature and temperature tendency scaling,
and apply tendencies resulting from such adjustment -->
First, calculate the scaling based off the start-of-physics snapshot
cp_or_cv_dycore_at_start_of_physics_timestep (computed in d_p_coupling/
dyn_coupling_impl).
Any mid-physics mutation of cp_or_cv_dycore by thermo_water_update
should not be used.
Then, perform the temperature and temperature tendency scaling -->
<scheme>check_energy_scaling</scheme>
<scheme>dycore_energy_consistency_adjust</scheme>
<scheme>apply_tendency_of_air_temperature</scheme>
Expand Down
Loading