diff --git a/Externals_CAM.cfg b/Externals_CAM.cfg
index f3ff155e36..e220ccef87 100644
--- a/Externals_CAM.cfg
+++ b/Externals_CAM.cfg
@@ -65,7 +65,7 @@ required = True
[oslo_aero]
protocol = git
-tag = 90e657f
+tag = noresm_oslo_aero_v1
repo_url = https://github.com/NorESMhub/OSLO_AERO
local_path = src/chemistry/oslo_aero
required = True
diff --git a/cime_config/testdefs/testlist_cam.xml b/cime_config/testdefs/testlist_cam.xml
index 618ba78ed4..590e9c98fa 100644
--- a/cime_config/testdefs/testlist_cam.xml
+++ b/cime_config/testdefs/testlist_cam.xml
@@ -40,7 +40,7 @@
-
+
@@ -48,7 +48,7 @@
-
+
@@ -89,7 +89,7 @@
-
+
diff --git a/src/chemistry/mozart/mo_chm_diags.F90 b/src/chemistry/mozart/mo_chm_diags.F90
index 5650403fee..33e0a7e176 100644
--- a/src/chemistry/mozart/mo_chm_diags.F90
+++ b/src/chemistry/mozart/mo_chm_diags.F90
@@ -484,6 +484,22 @@ subroutine chm_diags_inti
call addfld( 'MASS', (/ 'lev' /), 'A', 'kg', 'mass of grid box' )
call addfld( 'AREA', horiz_only, 'A', 'm2', 'area of grid box' )
+ call addfld('sum_SO4' , (/ 'lev' /), 'A', 'kg/kg ', 'sum of SO4 concentrations')
+ call addfld('sum_BC' , (/ 'lev' /), 'A', 'kg/kg ', 'sum of BC concentrations')
+ call addfld('sum_OM' , (/ 'lev' /), 'A', 'kg/kg ', 'sum of OM concentrations')
+ call addfld('sum_DST' , (/ 'lev' /), 'A', 'kg/kg ', 'sum of DST concentrations')
+ call addfld('sum_SS' , (/ 'lev' /), 'A', 'kg/kg ', 'sum of SS concentrations')
+ call addfld('sum_SOA' , (/ 'lev' /), 'A', 'kg/kg ', 'sum of SOA concentrations')
+ call addfld('sum_num' , (/ 'lev' /), 'A', 'kg/kg ', 'sum of num ')
+
+ call add_default('sum_SO4' , 1, ' ')
+ call add_default('sum_BC' , 1, ' ')
+ call add_default('sum_OM' , 1, ' ')
+ call add_default('sum_DST' , 1, ' ')
+ call add_default('sum_SS' , 1, ' ')
+ call add_default('sum_SOA' , 1, ' ')
+ call add_default('sum_num' , 1, ' ')
+
call addfld( 'dry_deposition_NOy_as_N', horiz_only, 'I', 'kg/m2/s', 'NOy dry deposition flux ' )
call addfld( 'DF_SOX', horiz_only, 'I', 'kg/m2/s', 'SOx dry deposition flux ' )
call addfld( 'dry_deposition_NHx_as_N', horiz_only, 'I', 'kg/m2/s', 'NHx dry deposition flux ' )
@@ -555,6 +571,16 @@ subroutine chm_diags( lchnk, ncol, vmr, mmr, rxt_rates, invariants, depvel, depf
real(r8), dimension(ncol) :: wd_noy, wd_nhx
real(r8), dimension(ncol,pver) :: vmr_hox
+ character(len=16) :: jname, spc_name, attr
+
+ real(r8) :: sum_so4(ncol,pver)
+ real(r8) :: sum_bc(ncol,pver)
+ real(r8) :: sum_om(ncol,pver)
+ real(r8) :: sum_dst(ncol,pver)
+ real(r8) :: sum_ss(ncol,pver)
+ real(r8) :: sum_soa(ncol,pver)
+ real(r8) :: sum_num(ncol,pver)
+
real(r8) :: area(ncol), mass(ncol,pver)
real(r8) :: wgt
@@ -748,8 +774,56 @@ subroutine chm_diags( lchnk, ncol, vmr, mmr, rxt_rates, invariants, depvel, depf
call outfld('DO3CHM_LMS',do3chm_lms(:ncol), ncol, lchnk )
end if
!
- enddo
+ enddo ! end loop from m=1,gas_pcnst
+
+ ! Generate compund sum
+
+ ! so4_a1,so4_a2,so4_a3
+ sum_so4(:,:) = 0._r8
+
+ ! bc_a1,bc_a4
+ sum_bc(:,:) = 0._r8
+
+ ! pom_a1,pom_a4
+ sum_om(:,:) = 0._r8
+ ! dst
+ sum_dst(:,:) = 0._r8
+
+ ! ncl_a1,ncl_a2,ncl_a3
+ sum_ss(:,:) = 0._r8
+
+ ! soa_a1,soa_a2
+ sum_soa(:,:) = 0._r8
+
+ ! num_a1,num_a2,num_a3,num_a4
+ sum_num(:,:) = 0._r8
+
+ do m = 1,gas_pcnst
+ spc_name = trim(solsym(m))
+ if (spc_name(1:4) == 'so4_') then
+ sum_so4(:ncol,:) = sum_so4(:ncol,:) + mmr(:ncol,:,m)
+ else if (spc_name(1:3) == 'bc_') then
+ sum_bc(:ncol,:) = sum_bc(:ncol,:) + mmr(:ncol,:,m)
+ else if (spc_name(1:4) == 'pom_') then
+ sum_om(:ncol,:) = sum_om(:ncol,:) + mmr(:ncol,:,m)
+ else if (spc_name(1:4) == 'dst_') then
+ sum_dst(:ncol,:) = sum_dst(:ncol,:) + mmr(:ncol,:,m)
+ else if (spc_name(1:4) == 'ncl_') then
+ sum_ss(:ncol,:) = sum_ss(:ncol,:) + mmr(:ncol,:,m)
+ else if (spc_name(1:4) == 'soa_') then
+ sum_soa(:ncol,:) = sum_soa(:ncol,:) + mmr(:ncol,:,m)
+ else if (spc_name(1:4) == 'num_') then
+ sum_num(:ncol,:) = sum_num(:ncol,:) + mmr(:ncol,:,m)
+ end if
+ end do
+ call outfld( 'sum_SO4', sum_so4(:ncol,:), ncol ,lchnk )
+ call outfld( 'sum_BC' , sum_bc(:ncol,:) , ncol ,lchnk )
+ call outfld( 'sum_OM' , sum_om(:ncol,:) , ncol ,lchnk )
+ call outfld( 'sum_DST', sum_dst(:ncol,:), ncol ,lchnk )
+ call outfld( 'sum_SS' , sum_ss(:ncol,:) , ncol ,lchnk )
+ call outfld( 'sum_SOA', sum_soa(:ncol,:), ncol ,lchnk )
+ call outfld( 'sum_num', sum_num(:ncol,:), ncol ,lchnk )
call outfld( 'NOX', vmr_nox (:ncol,:), ncol, lchnk )
call outfld( 'NOY', vmr_noy (:ncol,:), ncol, lchnk )