Skip to content

Commit

Permalink
Support implementation of TVD methods in PBL and cumulus convective s…
Browse files Browse the repository at this point in the history
…chemes (NCAR#408)

This PR implements changes supporting TVD methods for PBL and cumulus convective parameterizations introduced by ccpp/physics PR NCAR#754 (Jongil Han, NOAA/EMC).
  • Loading branch information
rmontuoro authored Nov 9, 2021
1 parent c8140b2 commit 699d1e2
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 10 deletions.
28 changes: 19 additions & 9 deletions ccpp/data/GFS_typedefs.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1966,6 +1966,7 @@ module GFS_typedefs
integer :: nspc1 !<
integer :: ntcwx !<
integer :: ntiwx !<
integer :: ntrwx !<
integer :: ntk !<
integer :: ntkev !<
integer :: nvdiff !<
Expand Down Expand Up @@ -7351,6 +7352,9 @@ subroutine interstitial_setup_tracers(Interstitial, Model)
Interstitial%otspt(:,:) = .true.
Interstitial%nsamftrac = 0
Interstitial%ncstrac = 0
Interstitial%ntcwx = 0
Interstitial%ntiwx = 0
Interstitial%ntrwx = 0

! perform aerosol convective transport and PBL diffusion
Interstitial%trans_aero = Model%cplchm .and. Model%trans_trac
Expand Down Expand Up @@ -7383,27 +7387,33 @@ subroutine interstitial_setup_tracers(Interstitial, Model)

Interstitial%nscav = Model%ntrac - Model%ncnd + 2

Interstitial%ntcwx = Model%ntcw
if (Interstitial%nvdiff == Model%ntrac) then
Interstitial%ntcwx = Model%ntcw
Interstitial%ntiwx = Model%ntiw
Interstitial%ntrwx = Model%ntrw
else
if (Model%imp_physics == Model%imp_physics_wsm6) then
Interstitial%ntcwx = 2
Interstitial%ntiwx = 3
elseif (Model%imp_physics == Model%imp_physics_thompson) then
if(Model%ltaerosol) then
Interstitial%ntiwx = 3
else
Interstitial%ntiwx = 3
endif
Interstitial%ntcwx = 2
Interstitial%ntiwx = 3
Interstitial%ntrwx = 4
elseif (Model%imp_physics == Model%imp_physics_gfdl) then
Interstitial%ntcwx = 2
Interstitial%ntiwx = 3
Interstitial%ntrwx = 4
! F-A MP scheme
elseif (Model%imp_physics == Model%imp_physics_fer_hires) then
Interstitial%ntiwx = 3 ! total ice or total condensate
Interstitial%ntcwx = 2
Interstitial%ntiwx = 3
Interstitial%ntrwx = 4
elseif (Model%imp_physics == Model%imp_physics_mg) then
Interstitial%ntcwx = 2
Interstitial%ntiwx = 3
else
Interstitial%ntiwx = 0
Interstitial%ntrwx = 4
elseif (Model%imp_physics == Model%imp_physics_zhao_carr) then
Interstitial%ntcwx = 2
endif
endif

Expand Down
6 changes: 6 additions & 0 deletions ccpp/data/GFS_typedefs.meta
Original file line number Diff line number Diff line change
Expand Up @@ -8898,6 +8898,12 @@
units = index
dimensions = ()
type = integer
[ntrwx]
standard_name = index_for_rain_water_vertical_diffusion_tracer
long_name = tracer index for rain water in the vertically diffused tracer array
units = index
dimensions = ()
type = integer
[ntk]
standard_name = index_for_turbulent_kinetic_energy_convective_transport_tracer
long_name = index for turbulent kinetic energy in the convectively transported tracer array
Expand Down
2 changes: 1 addition & 1 deletion ccpp/physics

0 comments on commit 699d1e2

Please sign in to comment.