Open tilmes opened 1 year ago
@cbardeen and @fvitt shouldn't we improve the dust mapping to match the sizes of the modes to the pre-defined bins? We could do it similar to what was done for pm25?
Aerosol Size information: dgncur_a - for unactivated particles, dry
This is how it is done in nucleate ice to select the number for a certain size, so the same as for pm2.5... I assume, we can do the same for the fluxes in MAM4
if (dgnum(i,k,mode_aitken_idx) > 0._r8) then
! only allow so4 with D>0.1 um in ice nucleation
so4_num = so4_num + max(0._r8, num_aitken(i,k)*rho(i,k)*1.0e-6_r8 &
* (0.5_r8 - 0.5_r8*erf(log(0.1e-6_r8/dgnum(i,k,mode_aitken_idx))/ &
(2._r8**0.5_r8*log(sigmag_aitken)))))
end if
So probably what we need to do instead of what is now in /glade/work/fvitt/camdev/carma_trop_strat/src/chemistry/utils/modal_aero_deposition.F90 add a more flexible approach for both MAM and CARMA (wet dep, since dry dep is already done in the CARMA base code):
For MAM for just dust: loop through all modes / bins Calculated amount of the flux per bin that is between the defined size bins: bin1: mass is between 0.1 and 1.0, so we would need to do an integral for 1.micron minus one for 0.1 micons etc: for example:
cam_out%dstwet1 = cam_out%dstwet1 - (aerdepwetis(bin) + aerdepwetcw(bin) ( int2 - int1) (minus because wetdep is negative) with int1 =(0.5_r8 - 0.5_r8erf(log(0.1e-6_r8/dgnum(i,k,bin))/ & (2._r80.5_r8log(sigmag_aitken))))) int2 =(0.5_r8 - 0.5_r8erf(log(1.0e-6_r8/dgnum(i,k,bin))/ & (2._r80.5_r8*log(sigmag_aitken)))))
and for CARMA we would go through the different bins as done for the dry dep: do i = 1, NBIN if (r(i) .le. 1e-4_f) then carma_dustmap(i) = 1 else if (r(i) .le. 2.5e-4_f) then carma_dustmap(i) = 2 else if (r(i) .le. 5e-4_f) then carma_dustmap(i) = 3 else carma_dustmap(i) = 4 end if and add those bins to each cam5 dust bin for both aerdepwetis and aerdepwetcw. For BC and OC, I am checking with Mark Flanner how to define the hydrophilic vs hydrophobic part...
@fvitt can we discuss this tomorrow? I think, we need to add a new carma_aero_deposition routine... (or refactor this first) but maybe that is too much work...
Add dust mapping has yet to be done in trop_strat and needs to be added. Earlier approaches and MAM used the old BAMS bins from CAM4 to map dust bins to those and pass to CAM: Yunqian has started the implementation of dust bins here: /glade/u/home/yunqian/cesm/case/Simone_CESM2CARMA_testdustmap_tag05_1degree/SourceMods/src.cam
For the ocean form Celin: The default 4 dust size bins (0.1-1.0, 1.0-2.5, 2.5-5.0, and 5.0-10.0um) in SNICAR are assumed to be consistent with the dust sizes in the CAM4 bulk aerosol scheme at emissions (see this reference: https://agupubs.onlinelibrary.wiley.com/doi/full/10.1002/2013MS000279). Currently, the new standalone SNICAR uses 5 dust size bins (0.05-0.5, 0.5-1.25, 1.25-2.5, 2.5-5.0, and 5.0-50.0um; https://gmd.copernicus.org/articles/14/7673/2021/).
This is currently done in MAM: /glade/work/fvitt/camdev/carma_trop_strat/src/chemistry/utils/modal_aero_deposition.F90
However modes are different from what is defined for BULK: needs to be checked...