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

Added coupling of GOCART aerosols with radiation related to issue#899… #525

Merged
merged 14 commits into from
Jul 5, 2022
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
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
jkbk2004 marked this conversation as resolved.
Show resolved Hide resolved
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