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

Cleanup radiation tendencies (standard names and allocation) #34

Merged
merged 3 commits into from
Apr 2, 2020
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
4 changes: 2 additions & 2 deletions ccpp/config/ccpp_prebuild_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -388,7 +388,7 @@
},
'rrtmg_sw' : {
'rrtmg_sw_run' : [
'tendency_of_air_temperature_due_to_shortwave_heating_assuming_clear_sky_on_radiation_time_step',
'tendency_of_air_temperature_due_to_shortwave_heating_assuming_clear_sky_on_radiation_time_step_and_radiation_levels',
'components_of_surface_downward_shortwave_fluxes',
'cloud_liquid_water_path',
'mean_effective_radius_for_liquid_cloud',
Expand All @@ -402,7 +402,7 @@
},
'rrtmg_lw' : {
'rrtmg_lw_run' : [
'tendency_of_air_temperature_due_to_longwave_heating_assuming_clear_sky_on_radiation_time_step',
'tendency_of_air_temperature_due_to_longwave_heating_assuming_clear_sky_on_radiation_time_step_and_radiation_levels',
'cloud_liquid_water_path',
'mean_effective_radius_for_liquid_cloud',
'cloud_ice_water_path',
Expand Down
36 changes: 19 additions & 17 deletions gfsphysics/GFS_layer/GFS_typedefs.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1225,12 +1225,6 @@ module GFS_typedefs
#endif

#ifdef CCPP
!--- radiation variables that need to be carried over from radiation to physics
real (kind=kind_phys), pointer :: htlwc(:,:) => null() !<
real (kind=kind_phys), pointer :: htlw0(:,:) => null() !<
real (kind=kind_phys), pointer :: htswc(:,:) => null() !<
real (kind=kind_phys), pointer :: htsw0(:,:) => null() !<

!--- dynamical forcing variables for Grell-Freitas convection
real (kind=kind_phys), pointer :: forcet (:,:) => null() !<
real (kind=kind_phys), pointer :: forceq (:,:) => null() !<
Expand Down Expand Up @@ -1743,6 +1737,12 @@ module GFS_typedefs
real (kind=kind_phys), pointer :: hflx_ice(:) => null() !<
real (kind=kind_phys), pointer :: hflx_land(:) => null() !<
real (kind=kind_phys), pointer :: hflx_ocean(:) => null() !<
!--- radiation variables that need to be carried over from radiation to physics
real (kind=kind_phys), pointer :: htlwc(:,:) => null() !<
real (kind=kind_phys), pointer :: htlw0(:,:) => null() !<
real (kind=kind_phys), pointer :: htswc(:,:) => null() !<
real (kind=kind_phys), pointer :: htsw0(:,:) => null() !<
!
real (kind=kind_phys), pointer :: icemp(:) => null() !<
logical, pointer :: dry(:) => null() !<
integer, pointer :: idxday(:) => null() !<
Expand Down Expand Up @@ -5073,16 +5073,6 @@ subroutine tbd_create (Tbd, IM, Model)
#endif

#ifdef CCPP
allocate (Tbd%htlwc (IM,Model%levr+LTP))
allocate (Tbd%htlw0 (IM,Model%levr+LTP))
allocate (Tbd%htswc (IM,Model%levr+LTP))
allocate (Tbd%htsw0 (IM,Model%levr+LTP))

Tbd%htlwc = clear_val
Tbd%htlw0 = clear_val
Tbd%htswc = clear_val
Tbd%htsw0 = clear_val

if (Model%imfdeepcnv == Model%imfdeepcnv_gf .or. Model%imfdeepcnv == Model%imfdeepcnv_ntiedtke) then
allocate(Tbd%forcet(IM, Model%levs))
allocate(Tbd%forceq(IM, Model%levs))
Expand Down Expand Up @@ -5992,13 +5982,17 @@ subroutine interstitial_create (Interstitial, IM, Model)
allocate (Interstitial%hflx_ice (IM))
allocate (Interstitial%hflx_land (IM))
allocate (Interstitial%hflx_ocean (IM))
allocate (Interstitial%htlwc (IM,Model%levr+LTP))
allocate (Interstitial%htlw0 (IM,Model%levr+LTP))
allocate (Interstitial%htswc (IM,Model%levr+LTP))
allocate (Interstitial%htsw0 (IM,Model%levr+LTP))
allocate (Interstitial%dry (IM))
allocate (Interstitial%idxday (IM))
allocate (Interstitial%icy (IM))
allocate (Interstitial%lake (IM))
allocate (Interstitial%ocean (IM))
allocate (Interstitial%islmsk (IM))
allocate (Interstitial%islmsk_cice (IM))
allocate (Interstitial%islmsk_cice (IM))
allocate (Interstitial%wet (IM))
allocate (Interstitial%kbot (IM))
allocate (Interstitial%kcnv (IM))
Expand Down Expand Up @@ -6427,6 +6421,10 @@ subroutine interstitial_rad_reset (Interstitial, Model)
Interstitial%faerlw = clear_val
Interstitial%faersw = clear_val
Interstitial%gasvmr = clear_val
Interstitial%htlwc = clear_val
Interstitial%htlw0 = clear_val
Interstitial%htswc = clear_val
Interstitial%htsw0 = clear_val
Interstitial%idxday = 0
Interstitial%kb = 0
Interstitial%kd = 0
Expand Down Expand Up @@ -6945,6 +6943,10 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno)
write (0,*) 'sum(Interstitial%hflx_ice ) = ', sum(Interstitial%hflx_ice )
write (0,*) 'sum(Interstitial%hflx_land ) = ', sum(Interstitial%hflx_land )
write (0,*) 'sum(Interstitial%hflx_ocean ) = ', sum(Interstitial%hflx_ocean )
write (0,*) 'sum(Interstitial%htlwc ) = ', sum(Interstitial%htlwc )
write (0,*) 'sum(Interstitial%htlw0 ) = ', sum(Interstitial%htlw0 )
write (0,*) 'sum(Interstitial%htswc ) = ', sum(Interstitial%htswc )
write (0,*) 'sum(Interstitial%htsw0 ) = ', sum(Interstitial%htsw0 )
write (0,*) 'Interstitial%dry(:)==.true. = ', count(Interstitial%dry(:) )
write (0,*) 'sum(Interstitial%idxday ) = ', sum(Interstitial%idxday )
write (0,*) 'Interstitial%icy(:)==.true. = ', count(Interstitial%icy(:) )
Expand Down
64 changes: 32 additions & 32 deletions gfsphysics/GFS_layer/GFS_typedefs.meta
Original file line number Diff line number Diff line change
Expand Up @@ -4465,34 +4465,6 @@
dimensions = (horizontal_dimension,vertical_dimension)
type = real
kind = kind_phys
[htlwc]
standard_name = tendency_of_air_temperature_due_to_longwave_heating_on_radiation_time_step
long_name = total sky heating rate due to longwave radiation
units = K s-1
dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation)
type = real
kind = kind_phys
[htlw0]
standard_name = tendency_of_air_temperature_due_to_longwave_heating_assuming_clear_sky_on_radiation_time_step
long_name = clear sky heating rate due to longwave radiation
units = K s-1
dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation)
type = real
kind = kind_phys
[htswc]
standard_name = tendency_of_air_temperature_due_to_shortwave_heating_on_radiation_time_step
long_name = total sky heating rate due to shortwave radiation
units = K s-1
dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation)
type = real
kind = kind_phys
[htsw0]
standard_name = tendency_of_air_temperature_due_to_shortwave_heating_assuming_clear_sky_on_radiation_time_step
long_name = clear sky heating rates due to shortwave radiation
units = K s-1
dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation)
type = real
kind = kind_phys
[forcet]
standard_name = temperature_tendency_due_to_dynamics
long_name = temperature tendency due to dynamics only
Expand Down Expand Up @@ -4718,14 +4690,14 @@
dimensions = (horizontal_dimension)
type = sfcflw_type
[htrsw]
standard_name = tendency_of_air_temperature_due_to_shortwave_heating_on_radiation_timestep
standard_name = tendency_of_air_temperature_due_to_shortwave_heating_on_radiation_time_step
long_name = total sky sw heating rate
units = K s-1
dimensions = (horizontal_dimension,vertical_dimension)
type = real
kind = kind_phys
[htrlw]
standard_name = tendency_of_air_temperature_due_to_longwave_heating_on_radiation_timestep
standard_name = tendency_of_air_temperature_due_to_longwave_heating_on_radiation_time_step
long_name = total sky lw heating rate
units = K s-1
dimensions = (horizontal_dimension,vertical_dimension)
Expand Down Expand Up @@ -4767,14 +4739,14 @@
type = real
kind = kind_phys
[swhc]
standard_name = tendency_of_air_temperature_due_to_shortwave_heating_assuming_clear_sky_on_radiation_timestep
standard_name = tendency_of_air_temperature_due_to_shortwave_heating_assuming_clear_sky_on_radiation_time_step
long_name = clear sky sw heating rates
units = K s-1
dimensions = (horizontal_dimension,vertical_dimension)
type = real
kind = kind_phys
[lwhc]
standard_name = tendency_of_air_temperature_due_to_longwave_heating_assuming_clear_sky_on_radiation_timestep
standard_name = tendency_of_air_temperature_due_to_longwave_heating_assuming_clear_sky_on_radiation_time_step
long_name = clear sky lw heating rates
units = K s-1
dimensions = (horizontal_dimension,vertical_dimension)
Expand Down Expand Up @@ -7251,6 +7223,34 @@
dimensions = (horizontal_dimension)
type = real
kind = kind_phys
[htlwc]
standard_name = tendency_of_air_temperature_due_to_longwave_heating_on_radiation_time_step_and_radiation_levels
long_name = total sky heating rate due to longwave radiation
units = K s-1
dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation)
type = real
kind = kind_phys
[htlw0]
standard_name = tendency_of_air_temperature_due_to_longwave_heating_assuming_clear_sky_on_radiation_time_step_and_radiation_levels
long_name = clear sky heating rate due to longwave radiation
units = K s-1
dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation)
type = real
kind = kind_phys
[htswc]
standard_name = tendency_of_air_temperature_due_to_shortwave_heating_on_radiation_time_step_and_radiation_levels
long_name = total sky heating rate due to shortwave radiation
units = K s-1
dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation)
type = real
kind = kind_phys
[htsw0]
standard_name = tendency_of_air_temperature_due_to_shortwave_heating_assuming_clear_sky_on_radiation_time_step_and_radiation_levels
long_name = clear sky heating rates due to shortwave radiation
units = K s-1
dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation)
type = real
kind = kind_phys
[icemp]
standard_name = lwe_thickness_of_ice_amount
long_name = explicit ice fall on physics timestep
Expand Down