Skip to content

Commit dc74ab1

Browse files
Added coupling of GOCART aerosols with radiation related to issue#899… (#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
1 parent a912053 commit dc74ab1

File tree

3 files changed

+129
-4
lines changed

3 files changed

+129
-4
lines changed

ccpp/data/GFS_typedefs.F90

+35
Original file line numberDiff line numberDiff line change
@@ -1304,6 +1304,21 @@ module GFS_typedefs
13041304
integer :: ntchm !< number of prognostic chemical tracers (advected)
13051305
integer :: ntchs !< tracer index for first prognostic chemical tracer
13061306
integer :: ntche !< tracer index for last prognostic chemical tracer
1307+
integer :: ntdu1 !< tracer index for dust bin1
1308+
integer :: ntdu2 !< tracer index for dust bin2
1309+
integer :: ntdu3 !< tracer index for dust bin3
1310+
integer :: ntdu4 !< tracer index for dust bin4
1311+
integer :: ntdu5 !< tracer index for dust bin5
1312+
integer :: ntss1 !< tracer index for sea salt bin1
1313+
integer :: ntss2 !< tracer index for sea salt bin2
1314+
integer :: ntss3 !< tracer index for sea salt bin3
1315+
integer :: ntss4 !< tracer index for sea salt bin4
1316+
integer :: ntss5 !< tracer index for sea salt bin5
1317+
integer :: ntsu !< tracer index for sulfate
1318+
integer :: ntbcl !< tracer index for BCPHILIC
1319+
integer :: ntbcb !< tracer index for BCPHOBIC
1320+
integer :: ntocl !< tracer index for OCPHILIC
1321+
integer :: ntocb !< tracer index for OCPHOBIC
13071322
integer :: ndchm !< number of diagnostic chemical tracers (not advected)
13081323
integer :: ndchs !< tracer index for first diagnostic chemical tracer
13091324
integer :: ndche !< tracer index for last diagnostic chemical tracer
@@ -3833,6 +3848,8 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
38333848
if (iaer/1000 == 1 .or. Model%iccn == 2) then
38343849
Model%iaerclm = .true.
38353850
ntrcaer = ntrcaerm
3851+
else if (iaer/1000 == 2) then
3852+
ntrcaer = ntrcaerm
38363853
else
38373854
ntrcaer = 1
38383855
endif
@@ -4496,6 +4513,24 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
44964513
allocate(Model%dtidx(Model%ntracp100,Model%nprocess))
44974514
Model%dtidx = -99
44984515

4516+
if(Model%ntchm>0) then
4517+
Model%ntdu1 = get_tracer_index(Model%tracer_names, 'dust1', Model%me, Model%master, Model%debug)
4518+
Model%ntdu2 = get_tracer_index(Model%tracer_names, 'dust2', Model%me, Model%master, Model%debug)
4519+
Model%ntdu3 = get_tracer_index(Model%tracer_names, 'dust3', Model%me, Model%master, Model%debug)
4520+
Model%ntdu4 = get_tracer_index(Model%tracer_names, 'dust4', Model%me, Model%master, Model%debug)
4521+
Model%ntdu5 = get_tracer_index(Model%tracer_names, 'dust5', Model%me, Model%master, Model%debug)
4522+
Model%ntss1 = get_tracer_index(Model%tracer_names, 'seas1', Model%me, Model%master, Model%debug)
4523+
Model%ntss2 = get_tracer_index(Model%tracer_names, 'seas2', Model%me, Model%master, Model%debug)
4524+
Model%ntss3 = get_tracer_index(Model%tracer_names, 'seas3', Model%me, Model%master, Model%debug)
4525+
Model%ntss4 = get_tracer_index(Model%tracer_names, 'seas4', Model%me, Model%master, Model%debug)
4526+
Model%ntss5 = get_tracer_index(Model%tracer_names, 'seas5', Model%me, Model%master, Model%debug)
4527+
Model%ntsu = get_tracer_index(Model%tracer_names, 'so4', Model%me, Model%master, Model%debug)
4528+
Model%ntbcb = get_tracer_index(Model%tracer_names, 'bc1', Model%me, Model%master, Model%debug)
4529+
Model%ntbcl = get_tracer_index(Model%tracer_names, 'bc2', Model%me, Model%master, Model%debug)
4530+
Model%ntocb = get_tracer_index(Model%tracer_names, 'oc1', Model%me, Model%master, Model%debug)
4531+
Model%ntocl = get_tracer_index(Model%tracer_names, 'oc2', Model%me, Model%master, Model%debug)
4532+
end if
4533+
44994534
if(ldiag3d) then
45004535
! Flags used to turn on or off tracer "causes"
45014536
have_pbl_edmf = Model%hybedmf .or. Model%satmedmf .or. Model%do_mynnedmf

ccpp/data/GFS_typedefs.meta

+93-3
Original file line numberDiff line numberDiff line change
@@ -5532,6 +5532,96 @@
55325532
units = index
55335533
dimensions = ()
55345534
type = integer
5535+
[ntdu1]
5536+
standard_name = index_for_dust_bin1
5537+
long_name = index for dust bin1
5538+
units = index
5539+
dimensions = ()
5540+
type = integer
5541+
[ntdu2]
5542+
standard_name = index_for_dust_bin2
5543+
long_name = index for dust bin2
5544+
units = index
5545+
dimensions = ()
5546+
type = integer
5547+
[ntdu3]
5548+
standard_name = index_for_dust_bin3
5549+
long_name = index for dust bin3
5550+
units = index
5551+
dimensions = ()
5552+
type = integer
5553+
[ntdu4]
5554+
standard_name = index_for_dust_bin4
5555+
long_name = index for dust bin4
5556+
units = index
5557+
dimensions = ()
5558+
type = integer
5559+
[ntdu5]
5560+
standard_name = index_for_dust_bin5
5561+
long_name = index for dust bin5
5562+
units = index
5563+
dimensions = ()
5564+
type = integer
5565+
[ntss1]
5566+
standard_name = index_for_seasalt_bin1
5567+
long_name = index for seasalt bin1
5568+
units = index
5569+
dimensions = ()
5570+
type = integer
5571+
[ntss2]
5572+
standard_name = index_for_seasalt_bin2
5573+
long_name = index for seasalt bin2
5574+
units = index
5575+
dimensions = ()
5576+
type = integer
5577+
[ntss3]
5578+
standard_name = index_for_seasalt_bin3
5579+
long_name = index for seasalt bin3
5580+
units = index
5581+
dimensions = ()
5582+
type = integer
5583+
[ntss4]
5584+
standard_name = index_for_seasalt_bin4
5585+
long_name = index for seasalt bin4
5586+
units = index
5587+
dimensions = ()
5588+
type = integer
5589+
[ntss5]
5590+
standard_name = index_for_seasalt_bin5
5591+
long_name = index for seasalt bin5
5592+
units = index
5593+
dimensions = ()
5594+
type = integer
5595+
[ntsu]
5596+
standard_name = index_for_sulfate
5597+
long_name = index for sulfate
5598+
units = index
5599+
dimensions = ()
5600+
type = integer
5601+
[ntbcb]
5602+
standard_name = index_for_bcphobic
5603+
long_name = index for bcphobic
5604+
units = index
5605+
dimensions = ()
5606+
type = integer
5607+
[ntbcl]
5608+
standard_name = index_for_bcphilic
5609+
long_name = index for bcphilic
5610+
units = index
5611+
dimensions = ()
5612+
type = integer
5613+
[ntocb]
5614+
standard_name = index_for_ocphobic
5615+
long_name = index for ocphobic
5616+
units = index
5617+
dimensions = ()
5618+
type = integer
5619+
[ntocl]
5620+
standard_name = index_for_ocphilic
5621+
long_name = index for ocphilic
5622+
units = index
5623+
dimensions = ()
5624+
type = integer
55355625
[ndchm]
55365626
standard_name = number_of_diagnostic_chemical_tracers
55375627
long_name = number of diagnostic chemical tracers
@@ -6578,9 +6668,9 @@
65786668
type = real
65796669
kind = kind_phys
65806670
[aer_nm]
6581-
standard_name = mass_number_concentration_of_aerosol_from_gocart_climatology
6582-
long_name = GOCART aerosol climatology number concentration
6583-
units = kg-1
6671+
standard_name = mass_mixing_ratio_of_aerosol_from_gocart_or_merra2
6672+
long_name = mass mixing ratio of aerosol from gocart or merra2
6673+
units = kg kg-1
65846674
dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_aerosol_tracers_MG)
65856675
type = real
65866676
kind = kind_phys

0 commit comments

Comments
 (0)