Skip to content

Commit

Permalink
Added coupling of GOCART aerosols with radiation related to issue#899… (
Browse files Browse the repository at this point in the history
NCAR#525)

* Added coupling of GOCART aerosols with radiation related to issue#899 in NCAR/ccpp-physics

* Updated ccpp/physics to include Barry Baker's updates for wet deposition in the Thompson scheme

* Updated physics/rte-rrtmgp with the latest commit in ccpp/physics

* Update ccpp/physics to include the updates of precipitation fluxes outputs in the Thompson microphysics scheme

* Updated ccpp/physics for fixing a bug in mp_thompson.F90
  • Loading branch information
ChunxiZhang-NOAA authored Jul 5, 2022
1 parent a912053 commit dc74ab1
Show file tree
Hide file tree
Showing 3 changed files with 129 additions and 4 deletions.
35 changes: 35 additions & 0 deletions ccpp/data/GFS_typedefs.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1304,6 +1304,21 @@ module GFS_typedefs
integer :: ntchm !< number of prognostic chemical tracers (advected)
integer :: ntchs !< tracer index for first prognostic chemical tracer
integer :: ntche !< tracer index for last prognostic chemical tracer
integer :: ntdu1 !< tracer index for dust bin1
integer :: ntdu2 !< tracer index for dust bin2
integer :: ntdu3 !< tracer index for dust bin3
integer :: ntdu4 !< tracer index for dust bin4
integer :: ntdu5 !< tracer index for dust bin5
integer :: ntss1 !< tracer index for sea salt bin1
integer :: ntss2 !< tracer index for sea salt bin2
integer :: ntss3 !< tracer index for sea salt bin3
integer :: ntss4 !< tracer index for sea salt bin4
integer :: ntss5 !< tracer index for sea salt bin5
integer :: ntsu !< tracer index for sulfate
integer :: ntbcl !< tracer index for BCPHILIC
integer :: ntbcb !< tracer index for BCPHOBIC
integer :: ntocl !< tracer index for OCPHILIC
integer :: ntocb !< tracer index for OCPHOBIC
integer :: ndchm !< number of diagnostic chemical tracers (not advected)
integer :: ndchs !< tracer index for first diagnostic chemical tracer
integer :: ndche !< tracer index for last diagnostic chemical tracer
Expand Down Expand Up @@ -3833,6 +3848,8 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
if (iaer/1000 == 1 .or. Model%iccn == 2) then
Model%iaerclm = .true.
ntrcaer = ntrcaerm
else if (iaer/1000 == 2) then
ntrcaer = ntrcaerm
else
ntrcaer = 1
endif
Expand Down Expand Up @@ -4496,6 +4513,24 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
allocate(Model%dtidx(Model%ntracp100,Model%nprocess))
Model%dtidx = -99

if(Model%ntchm>0) then
Model%ntdu1 = get_tracer_index(Model%tracer_names, 'dust1', Model%me, Model%master, Model%debug)
Model%ntdu2 = get_tracer_index(Model%tracer_names, 'dust2', Model%me, Model%master, Model%debug)
Model%ntdu3 = get_tracer_index(Model%tracer_names, 'dust3', Model%me, Model%master, Model%debug)
Model%ntdu4 = get_tracer_index(Model%tracer_names, 'dust4', Model%me, Model%master, Model%debug)
Model%ntdu5 = get_tracer_index(Model%tracer_names, 'dust5', Model%me, Model%master, Model%debug)
Model%ntss1 = get_tracer_index(Model%tracer_names, 'seas1', Model%me, Model%master, Model%debug)
Model%ntss2 = get_tracer_index(Model%tracer_names, 'seas2', Model%me, Model%master, Model%debug)
Model%ntss3 = get_tracer_index(Model%tracer_names, 'seas3', Model%me, Model%master, Model%debug)
Model%ntss4 = get_tracer_index(Model%tracer_names, 'seas4', Model%me, Model%master, Model%debug)
Model%ntss5 = get_tracer_index(Model%tracer_names, 'seas5', Model%me, Model%master, Model%debug)
Model%ntsu = get_tracer_index(Model%tracer_names, 'so4', Model%me, Model%master, Model%debug)
Model%ntbcb = get_tracer_index(Model%tracer_names, 'bc1', Model%me, Model%master, Model%debug)
Model%ntbcl = get_tracer_index(Model%tracer_names, 'bc2', Model%me, Model%master, Model%debug)
Model%ntocb = get_tracer_index(Model%tracer_names, 'oc1', Model%me, Model%master, Model%debug)
Model%ntocl = get_tracer_index(Model%tracer_names, 'oc2', Model%me, Model%master, Model%debug)
end if

if(ldiag3d) then
! Flags used to turn on or off tracer "causes"
have_pbl_edmf = Model%hybedmf .or. Model%satmedmf .or. Model%do_mynnedmf
Expand Down
96 changes: 93 additions & 3 deletions ccpp/data/GFS_typedefs.meta
Original file line number Diff line number Diff line change
Expand Up @@ -5532,6 +5532,96 @@
units = index
dimensions = ()
type = integer
[ntdu1]
standard_name = index_for_dust_bin1
long_name = index for dust bin1
units = index
dimensions = ()
type = integer
[ntdu2]
standard_name = index_for_dust_bin2
long_name = index for dust bin2
units = index
dimensions = ()
type = integer
[ntdu3]
standard_name = index_for_dust_bin3
long_name = index for dust bin3
units = index
dimensions = ()
type = integer
[ntdu4]
standard_name = index_for_dust_bin4
long_name = index for dust bin4
units = index
dimensions = ()
type = integer
[ntdu5]
standard_name = index_for_dust_bin5
long_name = index for dust bin5
units = index
dimensions = ()
type = integer
[ntss1]
standard_name = index_for_seasalt_bin1
long_name = index for seasalt bin1
units = index
dimensions = ()
type = integer
[ntss2]
standard_name = index_for_seasalt_bin2
long_name = index for seasalt bin2
units = index
dimensions = ()
type = integer
[ntss3]
standard_name = index_for_seasalt_bin3
long_name = index for seasalt bin3
units = index
dimensions = ()
type = integer
[ntss4]
standard_name = index_for_seasalt_bin4
long_name = index for seasalt bin4
units = index
dimensions = ()
type = integer
[ntss5]
standard_name = index_for_seasalt_bin5
long_name = index for seasalt bin5
units = index
dimensions = ()
type = integer
[ntsu]
standard_name = index_for_sulfate
long_name = index for sulfate
units = index
dimensions = ()
type = integer
[ntbcb]
standard_name = index_for_bcphobic
long_name = index for bcphobic
units = index
dimensions = ()
type = integer
[ntbcl]
standard_name = index_for_bcphilic
long_name = index for bcphilic
units = index
dimensions = ()
type = integer
[ntocb]
standard_name = index_for_ocphobic
long_name = index for ocphobic
units = index
dimensions = ()
type = integer
[ntocl]
standard_name = index_for_ocphilic
long_name = index for ocphilic
units = index
dimensions = ()
type = integer
[ndchm]
standard_name = number_of_diagnostic_chemical_tracers
long_name = number of diagnostic chemical tracers
Expand Down Expand Up @@ -6578,9 +6668,9 @@
type = real
kind = kind_phys
[aer_nm]
standard_name = mass_number_concentration_of_aerosol_from_gocart_climatology
long_name = GOCART aerosol climatology number concentration
units = kg-1
standard_name = mass_mixing_ratio_of_aerosol_from_gocart_or_merra2
long_name = mass mixing ratio of aerosol from gocart or merra2
units = kg kg-1
dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_aerosol_tracers_MG)
type = real
kind = kind_phys
Expand Down

0 comments on commit dc74ab1

Please sign in to comment.