Skip to content

Phase 2 of rk_stratiform CCPPization: diagnostic schemes #234

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

Open
wants to merge 9 commits into
base: development
Choose a base branch
from
10 changes: 5 additions & 5 deletions schemes/cloud_fraction/compute_cloud_fraction.meta
Original file line number Diff line number Diff line change
Expand Up @@ -225,13 +225,13 @@
dimensions = (horizontal_loop_extent)
intent = in
[ shallowcu ]
standard_name = shallow_convective_cloud_area_fraction_tbd
standard_name = shallow_convective_cloud_area_fraction
units = fraction
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
intent = in
[ deepcu ]
standard_name = deep_convective_cloud_area_fraction_tbd
standard_name = deep_convective_cloud_area_fraction
units = fraction
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
Expand Down Expand Up @@ -273,7 +273,7 @@
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
intent = out
[ rhcloud ]
standard_name = cloud_area_fraction_from_relative_humidity_method_tbd
standard_name = cloud_area_fraction_from_relative_humidity_method
units = fraction
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
Expand All @@ -285,7 +285,7 @@
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
intent = out
[ rhu00 ]
standard_name = relative_humidity_threshold_for_prognostic_cloud_water_tbd
standard_name = relative_humidity_threshold_for_cloud_formation
units = fraction
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
Expand All @@ -303,7 +303,7 @@
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
intent = out
[ relhum ]
standard_name = relative_humidity_for_prognostic_cloud_water_tbd
standard_name = relative_humidity
units = fraction
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
Expand Down
6 changes: 3 additions & 3 deletions schemes/cloud_fraction/convective_cloud_cover.meta
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@
dimensions = ()
intent = in
[ shfrc ]
standard_name = shallow_convective_cloud_area_fraction
standard_name = shallow_convective_cloud_area_fraction_from_shallow_convection
units = fraction
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
Expand All @@ -100,13 +100,13 @@
dimensions = (horizontal_loop_extent, vertical_interface_dimension)
intent = in
[ shallowcu ]
standard_name = shallow_convective_cloud_area_fraction_tbd
standard_name = shallow_convective_cloud_area_fraction
units = fraction
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
intent = out
[ deepcu ]
standard_name = deep_convective_cloud_area_fraction_tbd
standard_name = deep_convective_cloud_area_fraction
units = fraction
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
Expand Down
2 changes: 1 addition & 1 deletion schemes/hack_shallow/hack_convect_shallow.meta
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@
dimensions = ()
intent = out
[ shfrc ]
standard_name = shallow_convective_cloud_area_fraction
standard_name = shallow_convective_cloud_area_fraction_from_shallow_convection
units = fraction
type = real | kind = kind_phys
dimensions = (horizontal_dimension, vertical_layer_dimension)
Expand Down
7 changes: 2 additions & 5 deletions schemes/rasch_kristjansson/cloud_particle_sedimentation.F90
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ subroutine cloud_particle_sedimentation_run( &
real(kind_phys), intent(out) :: wvtend(:,:) ! water vapor tendency [kg kg-1 s-1] -- to apply wv tendency
real(kind_phys), intent(out) :: htend(:,:) ! heating rate [J kg-1 s-1] -- to apply s tendency
real(kind_phys), intent(out) :: sfliq(:) ! surface flux of liquid (rain) [kg m-2 s-1]
real(kind_phys), intent(out) :: sfice(:) ! lwe_cloud_ice_sedimentation_rate_at_surface_due_to_microphysics [m s-1]
real(kind_phys), intent(out) :: sfice(:) ! stratiform_lwe_cloud_ice_surface_flux_due_to_sedimentation [m s-1]
character(len=512), intent(out) :: errmsg ! error message
integer, intent(out) :: errflg ! error flag

Expand Down Expand Up @@ -361,7 +361,7 @@ subroutine cloud_particle_sedimentation_run( &
sfliq(:ncol) = fxliq(:ncol, pverp)/(dtime*gravit)
sfice(:ncol) = fxice(:ncol, pverp)/(dtime*gravit)

! Convert lwe_cloud_ice_sedimentation_rate_at_surface_due_to_microphysics from kg m-2 s-1 to precip units m s-1
! Convert stratiform_lwe_cloud_ice_surface_flux_due_to_sedimentation from kg m-2 s-1 to precip units m s-1
sfice(:ncol) = sfice(:ncol)/1000._kind_phys

end subroutine cloud_particle_sedimentation_run
Expand Down Expand Up @@ -390,7 +390,6 @@ subroutine getflx(ncol, pver, pverp, &
integer :: i, k
real(kind_phys) :: psi(ncol, pverp)
real(kind_phys) :: fdot(ncol, pverp)
real(kind_phys) :: xx(ncol)
real(kind_phys) :: fxdot(ncol)
real(kind_phys) :: fxdd(ncol)
real(kind_phys) :: psistar(ncol)
Expand Down Expand Up @@ -457,7 +456,6 @@ subroutine cfint2(ncol, pverp, &
real(kind_phys) :: c2
real(kind_phys) :: c3
real(kind_phys) :: xx
real(kind_phys) :: xinf
real(kind_phys) :: psi1, psi2, psi3, psim
real(kind_phys) :: cfint
real(kind_phys) :: cfnew
Expand Down Expand Up @@ -551,7 +549,6 @@ subroutine cfdotmc(ncol, pver, pverp, x, f, fdot)
real(kind_phys), intent(out) :: fdot(ncol, pverp) ! derivative at nodes

integer :: i, k
real(kind_phys) :: a, b, c ! work var
real(kind_phys) :: s(ncol, pverp) ! first divided differences at nodes
real(kind_phys) :: sh(ncol, pverp) ! first divided differences between nodes
real(kind_phys) :: d(ncol, pverp) ! second divided differences at nodes
Expand Down
6 changes: 3 additions & 3 deletions schemes/rasch_kristjansson/cloud_particle_sedimentation.meta
Original file line number Diff line number Diff line change
Expand Up @@ -193,13 +193,13 @@
dimensions = (horizontal_loop_extent)
intent = in
[ pvliq ]
standard_name = vertical_velocity_of_cloud_liquid_water_due_to_sedimentation_tbd
standard_name = magnitude_of_vertical_pressure_velocity_of_cloud_liquid_water_due_to_sedimentation
units = Pa s-1
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_interface_dimension)
intent = out
[ pvice ]
standard_name = vertical_velocity_of_cloud_ice_due_to_sedimentation_tbd
standard_name = magnitude_of_vertical_pressure_velocity_of_cloud_ice_due_to_sedimentation
units = Pa s-1
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_interface_dimension)
Expand Down Expand Up @@ -238,7 +238,7 @@
dimensions = (horizontal_loop_extent)
intent = out
[ sfice ]
standard_name = lwe_cloud_ice_sedimentation_rate_at_surface_due_to_microphysics
standard_name = stratiform_lwe_cloud_ice_surface_flux_due_to_sedimentation
units = m s-1
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent)
Expand Down
19 changes: 4 additions & 15 deletions schemes/rasch_kristjansson/prognostic_cloud_water.F90
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ module prognostic_cloud_water
real(kind_phys) :: rhonot ! air density at surface [g cm-3]
real(kind_phys) :: rhos ! assumed snow density [g cm-3]
real(kind_phys) :: rhow ! water density [g cm-3]
real(kind_phys) :: rhoi ! ice density [g cm-3]
real(kind_phys) :: esi ! Collection efficiency for ice by snow [1]
real(kind_phys) :: esw ! Collection efficiency for water by snow [1]
real(kind_phys) :: t0 ! Approx. freezing temperature [K]
Expand Down Expand Up @@ -120,10 +119,9 @@ subroutine prognostic_cloud_water_init( &

rhonot = rhodair/1000.0_kind_phys ! convert from kg m-3 to g cm-3

! assumed densities of snow, water, ice [g cm-3]
! assumed densities of snow, water [g cm-3]
rhos = 0.1_kind_phys
rhow = 1._kind_phys
rhoi = 1._kind_phys

esi = 1._kind_phys
esw = 0.1_kind_phys
Expand Down Expand Up @@ -320,6 +318,7 @@ subroutine prognostic_cloud_water_run( &
integer, intent(out) :: errflg ! error flag

! Local variables
real(kind_phys), parameter :: rhofw = 1000._kind_phys ! density of fresh water [kg m-3]
integer :: i, k, l ! Iteration index [1]
integer :: iter ! # of iterations for precipitation calculation [1]
logical :: error_found ! Flag for error detection [flag]
Expand Down Expand Up @@ -378,11 +377,9 @@ subroutine prognostic_cloud_water_run( &
real(kind_phys) :: mincld ! Minimum cloud fraction [1]
real(kind_phys) :: cpohl ! Ratio of specific heat to latent heat [K-1]
real(kind_phys) :: hlocp ! Ratio of latent heat to specific heat [K]
real(kind_phys) :: clrh2o ! Ratio of latent heat to water vapor gas constant [K]
real(kind_phys) :: dto2 ! Half timestep [s]

! Work variables
real(kind_phys) :: denom ! Denominator work variable [1]
real(kind_phys) :: dqsdt ! Change in saturation specific humidity with temperature [kg kg-1 K-1]
real(kind_phys) :: gamma(ncol) ! Temperature derivative of saturation specific humidity [kg kg-1 K-1]
real(kind_phys) :: qtl(ncol) ! Saturation tendency [kg kg-1 s-1]
Expand All @@ -400,7 +397,6 @@ subroutine prognostic_cloud_water_run( &
errflg = 0
error_found = .false.

clrh2o = latvap/rh2o
cpohl = cpair/latvap
hlocp = latvap/cpair
dto2 = 0.5_kind_phys * deltat
Expand Down Expand Up @@ -845,8 +841,8 @@ subroutine prognostic_cloud_water_run( &
!
! If this conversion is removed in the future, the metadata needs to
! be updated.
precip(:ncol) = precip(:ncol)/1000._kind_phys
snowab(:ncol) = snowab(:ncol)/1000._kind_phys
precip(:ncol) = precip(:ncol)/rhofw
snowab(:ncol) = snowab(:ncol)/rhofw
end subroutine prognostic_cloud_water_run

! Calculate the conversion of condensate to precipitate
Expand Down Expand Up @@ -898,7 +894,6 @@ subroutine findmcnew( &
integer :: ncols ! Number of active columns for microphysics (different from ncol!!) [count]
integer :: ind(ncol) ! Active column indices [index]
real(kind_phys) :: capn ! Local cloud particle number concentration [cm-3]
real(kind_phys) :: capnoice ! Cloud particle concentration excluding sea ice [cm-3]
real(kind_phys) :: cldloc(ncol) ! Non-zero cloud fraction [1]
real(kind_phys) :: cldpr(ncol) ! Cloud fraction for precipitation [1]
real(kind_phys) :: totmr(ncol) ! In-cloud total water mixing ratio [kg kg-1]
Expand All @@ -920,11 +915,7 @@ subroutine findmcnew( &
real(kind_phys) :: rhocgs ! Air density in CGS units [g cm-3]
real(kind_phys) :: r3l ! Cloud droplet volume radius [m]
real(kind_phys) :: icrit ! Ice autoconversion threshold [kg kg-1]
real(kind_phys) :: wsi ! Sea ice weight factor [1]
real(kind_phys) :: wt ! Ice fraction weight [1]
real(kind_phys) :: wland ! Land fraction weight [1]
real(kind_phys) :: wp ! Pressure dependence weight [1]
real(kind_phys) :: ftot ! Total fraction for conversion processes [1]
real(kind_phys) :: con1 ! Work constant for radius calculation [m]
real(kind_phys) :: con2 ! Work constant for density ratios [1]
real(kind_phys) :: csacx ! Constant used for snow accreting liquid or ice [??]
Expand Down Expand Up @@ -1119,8 +1110,6 @@ subroutine findmcnew( &
fsacw(i) = 0._kind_phys
fsaci(i) = 0._kind_phys
endif

ftot = fwaut(i)+fsaut(i)+fracw(i)+fsacw(i)+fsaci(i)
end do

end subroutine findmcnew
Expand Down
40 changes: 20 additions & 20 deletions schemes/rasch_kristjansson/prognostic_cloud_water.meta
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@
dimensions = (horizontal_loop_extent)
intent = in
[ ttend ]
standard_name = tendency_of_air_temperature_not_due_to_microphysics_tbd
standard_name = tendency_of_air_temperature_not_due_to_microphysics
units = K s-1
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
Expand All @@ -202,7 +202,7 @@
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
intent = in
[ qtend ]
standard_name = tendency_of_water_vapor_mixing_ratio_wrt_moist_air_and_condensed_water_not_due_to_microphysics_tbd
standard_name = tendency_of_water_vapor_mixing_ratio_wrt_moist_air_and_condensed_water_not_due_to_microphysics
units = kg kg-1 s-1
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
Expand All @@ -214,7 +214,7 @@
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
intent = in
[ ltend ]
standard_name = tendency_of_cloud_water_mixing_ratio_wrt_moist_air_and_condensed_water_not_due_to_microphysics_tbd
standard_name = tendency_of_cloud_water_mixing_ratio_wrt_moist_air_and_condensed_water_not_due_to_microphysics
units = kg kg-1 s-1
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
Expand Down Expand Up @@ -256,13 +256,13 @@
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
intent = in
[ rhdfda ]
standard_name = derivative_of_relative_humidity_wrt_cloud_fraction_tbd
standard_name = relative_humidity_divided_by_cloud_area_fraction_perturbation
units = percent
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
intent = in
[ rhu00 ]
standard_name = relative_humidity_threshold_for_prognostic_cloud_water_tbd
standard_name = relative_humidity_threshold_for_cloud_formation
units = fraction
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
Expand Down Expand Up @@ -310,25 +310,25 @@
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
intent = out
[ evapsnow ]
standard_name = rate_of_evaporation_of_falling_snow_due_to_microphysics_tbd
standard_name = rate_of_evaporation_of_falling_snow_due_to_microphysics
units = kg kg-1 s-1
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
intent = out
[ evapheat ]
standard_name = tendency_of_dry_air_enthalpy_at_constant_pressure_due_to_precipitation_evaporation_tbd
standard_name = tendency_of_dry_air_enthalpy_at_constant_pressure_due_to_evaporation_of_precipitation
units = J kg-1 s-1
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
intent = out
[ prfzheat ]
standard_name = tendency_of_dry_air_enthalpy_at_constant_pressure_due_to_precipitation_freezing_tbd
standard_name = tendency_of_dry_air_enthalpy_at_constant_pressure_due_to_freezing_of_precipitation
units = J kg-1 s-1
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
intent = out
[ meltheat ]
standard_name = tendency_of_dry_air_enthalpy_at_constant_pressure_due_to_precipitation_phase_change_tbd
standard_name = tendency_of_dry_air_enthalpy_at_constant_pressure_due_to_snow_melt
units = J kg-1 s-1
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
Expand All @@ -346,19 +346,19 @@
dimensions = (horizontal_loop_extent)
intent = out
[ ice2pr ]
standard_name = tendency_of_cloud_ice_mixing_ratio_wrt_moist_air_and_condensed_water_due_to_microphysics_tbd
standard_name = tendency_of_cloud_ice_mixing_ratio_wrt_to_moist_air_and_condensed_water_due_to_ice_to_snow_autoconversion
units = kg kg-1 s-1
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
intent = out
[ liq2pr ]
standard_name = tendency_of_cloud_liquid_water_mixing_ratio_wrt_moist_air_and_condensed_water_due_to_microphysics_tbd
standard_name = tendency_of_cloud_liquid_water_mixing_ratio_wrt_to_moist_air_and_condensed_water_due_to_liquid_to_rain_autoconversion
units = kg kg-1 s-1
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
intent = out
[ liq2snow ]
standard_name = tendency_of_cloud_liquid_water_mixing_ratio_wrt_moist_air_and_condensed_water_due_to_conversion_to_snow_tbd
standard_name = tendency_of_cloud_liquid_water_mixing_ratio_wrt_to_moist_air_and_condensed_water_due_to_liquid_to_snow_autoconversion
units = kg kg-1 s-1
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
Expand All @@ -376,49 +376,49 @@
dimensions = (horizontal_loop_extent, vertical_interface_dimension)
intent = out
[ pracwo ]
standard_name = accretion_of_cloud_liquid_water_by_rain_tbd
standard_name = accretion_of_cloud_liquid_water_by_rain
units = s-1
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
intent = out
[ psacwo ]
standard_name = accretion_of_cloud_liquid_water_by_snow_tbd
standard_name = accretion_of_cloud_liquid_water_by_snow
units = s-1
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
intent = out
[ psacio ]
standard_name = accretion_of_cloud_ice_by_snow_tbd
standard_name = accretion_of_cloud_ice_by_snow
units = s-1
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
intent = out
[ fwaut ]
standard_name = relative_importance_of_liquid_autoconversion_tbd
standard_name = relative_importance_of_cloud_liquid_water_autoconversion
units = fraction
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
intent = out
[ fsaut ]
standard_name = relative_importance_of_ice_autoconversion_tbd
standard_name = relative_importance_of_cloud_ice_autoconversion
units = fraction
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
intent = out
[ fracw ]
standard_name = relative_importance_of_rain_accreting_liquid_tbd
standard_name = relative_importance_of_rain_accreting_cloud_liquid_water
units = fraction
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
intent = out
[ fsacw ]
standard_name = relative_importance_of_snow_accreting_liquid_tbd
standard_name = relative_importance_of_snow_accreting_cloud_liquid_water
units = fraction
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
intent = out
[ fsaci ]
standard_name = relative_importance_of_snow_accreting_ice_tbd
standard_name = relative_importance_of_snow_accreting_cloud_ice
units = fraction
type = real | kind = kind_phys
dimensions = (horizontal_loop_extent, vertical_layer_dimension)
Expand Down
Loading