diff --git a/ccpp/data/GFS_typedefs.F90 b/ccpp/data/GFS_typedefs.F90 index 8dd185318..194bc97f4 100644 --- a/ccpp/data/GFS_typedefs.F90 +++ b/ccpp/data/GFS_typedefs.F90 @@ -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 @@ -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 @@ -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 diff --git a/ccpp/data/GFS_typedefs.meta b/ccpp/data/GFS_typedefs.meta index 26635f1b9..6d17f675a 100644 --- a/ccpp/data/GFS_typedefs.meta +++ b/ccpp/data/GFS_typedefs.meta @@ -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 @@ -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 diff --git a/ccpp/physics b/ccpp/physics index a1885a2be..dd4911977 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit a1885a2be79c810f001491490678517787b18263 +Subproject commit dd49119778bbb0fea60f4aa91ad1b82923ff4d76