Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
f4f828d
dmleung added the effects of coarse-mode dust asphericity on dust opt…
dmleung Oct 27, 2025
b7ed255
dmleung added history variables for more PM diagnostics. 26 Oct 2025
dmleung Oct 27, 2025
2a8b481
dmleung edited the mass fractions of the emitted dust size distributi…
dmleung Oct 27, 2025
e4a7339
dmleung changed the fine dust mass fraction, edited aerosol optics, a…
dmleung Oct 29, 2025
2656965
dmleung used ntot_amode to represent the coarse mode for each MAM ver…
dmleung Oct 29, 2025
aa62ff1
dmleung did more code commenting and code cleanup.
dmleung Oct 30, 2025
d2e3c0c
use n_coarse_dust to indicate the coarse dust mode; also fix a mistak…
dmleung Oct 30, 2025
0ad2cf8
more robust way to determine coarse mode number; misc clean up
fvitt Oct 30, 2025
1e42db0
more code clean up and commenting by dmleung
dmleung Nov 4, 2025
9482f25
dmleung edited dust_emis_fact for CAM6 and CAM7 in namelist_defaults
dmleung Nov 6, 2025
3d4b7c8
dmleung add one more change in namelist_defaults for dust_emis_fact
dmleung Nov 6, 2025
28ce8aa
Merge tag 'cam6_4_128' into cam_dustemis_dev
dmleung Nov 6, 2025
6da0f6e
Merge branch 'cam_development' into cam_dustemis_dev
dmleung Nov 6, 2025
84ce973
debugged the aerosol optics so that total AOD and aerosol radiative e…
dmleung Nov 11, 2025
046ef5d
Merge branch 'cam_dustemis_dev' of https://github.com/dmleung/CAM int…
dmleung Nov 11, 2025
32391f6
code cleanup for the aerosol optics module
dmleung Nov 11, 2025
348d54f
Merge remote-tracking branch 'leung/cam_dustemis_dev' into cam_leung_…
cacraigucar Nov 19, 2025
2abc921
Increase time limit for GPU tests
cacraigucar Nov 19, 2025
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
86 changes: 44 additions & 42 deletions bld/namelist_files/namelist_defaults_cam.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2496,55 +2496,57 @@
<molec_diff_bot_press> 50.D0 </molec_diff_bot_press>

<!-- dust emission tuning factor -->
<!-- NOTE: by default cam7 uses dust_emis_method=Leung_2023, otherwise dust_emis_method = Zender_2003 -->
<!-- if, e.g., one uses cam6 but selects Leung_2023, dust_emis_fact will need to be rechanged -->
<dust_emis_fact >0.37D0</dust_emis_fact>
<dust_emis_fact phys="cam5" >0.35D0</dust_emis_fact>
<dust_emis_fact hgrid="0.47x0.63" phys="cam5" >0.45D0</dust_emis_fact>
<dust_emis_fact hgrid="0.23x0.31" phys="cam5" >0.45D0</dust_emis_fact>
<dust_emis_fact phys="cam6" >0.35D0</dust_emis_fact>
<dust_emis_fact phys="cam7" >2.30D0</dust_emis_fact>
<dust_emis_fact phys="cam6" silhs="1" >0.30D0</dust_emis_fact>
<dust_emis_fact phys="cam7" silhs="1" >2.30D0</dust_emis_fact>
<dust_emis_fact hgrid="0.47x0.63" phys="cam6" >0.45D0</dust_emis_fact>
<dust_emis_fact hgrid="0.47x0.63" phys="cam7" >2.30D0</dust_emis_fact>
<dust_emis_fact hgrid="0.23x0.31" phys="cam6" >0.45D0</dust_emis_fact>
<dust_emis_fact hgrid="0.23x0.31" phys="cam7" >2.30D0</dust_emis_fact>
<dust_emis_fact phys="cam6" >0.88D0</dust_emis_fact>
<dust_emis_fact phys="cam7" >4.00D0</dust_emis_fact>
<dust_emis_fact phys="cam6" silhs="1" >0.75D0</dust_emis_fact>
<dust_emis_fact phys="cam7" silhs="1" >4.00D0</dust_emis_fact>
<dust_emis_fact hgrid="0.47x0.63" phys="cam6" >1.13D0</dust_emis_fact>
<dust_emis_fact hgrid="0.47x0.63" phys="cam7" >4.00D0</dust_emis_fact>
<dust_emis_fact hgrid="0.23x0.31" phys="cam6" >1.13D0</dust_emis_fact>
<dust_emis_fact hgrid="0.23x0.31" phys="cam7" >4.00D0</dust_emis_fact>

<dust_emis_fact dyn="se" phys="cam5" >0.55D0</dust_emis_fact>
<dust_emis_fact dyn="fv" phys="cam5" clubb_sgs="1" >0.22D0</dust_emis_fact>
<dust_emis_fact dyn="se" phys="cam6" >0.70D0</dust_emis_fact>
<dust_emis_fact dyn="se" phys="cam7" >2.30D0</dust_emis_fact>
<dust_emis_fact dyn="mpas" phys="cam7" >2.30D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne30np4" phys="cam6" chem="trop_strat_mam4_vbs">0.8D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne30np4" phys="cam7" chem="trop_strat_mam4_vbs">2.30D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne0np4CONUS.ne30x8" phys="cam6" chem="trop_strat_mam4_vbs">0.8D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne0np4CONUS.ne30x8" phys="cam7" chem="trop_strat_mam4_vbs">2.30D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne30np4" phys="cam6" chem="trop_strat_mam4_ts1">0.8D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne30np4" phys="cam7" chem="trop_strat_mam4_ts1">2.30D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne0np4CONUS.ne30x8" phys="cam6" chem="trop_strat_mam4_tst">0.8D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne0np4CONUS.ne30x8" phys="cam7" chem="trop_strat_mam4_tst">2.30D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne30np4" phys="cam6" chem="trop_strat_mam5_vbs">0.8D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne30np4" phys="cam7" chem="trop_strat_mam5_vbs">2.30D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne0np4CONUS.ne30x8" phys="cam6" chem="trop_strat_mam5_vbs">0.8D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne0np4CONUS.ne30x8" phys="cam7" chem="trop_strat_mam5_vbs">2.30D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne30np4" phys="cam6" chem="trop_strat_mam5_ts1">0.8D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne30np4" phys="cam7" chem="trop_strat_mam5_ts1">2.30D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne0np4CONUS.ne30x8" phys="cam6" chem="trop_strat_mam5_tst">0.8D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne0np4CONUS.ne30x8" phys="cam7" chem="trop_strat_mam5_tst">2.30D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne30np4" phys="cam6" waccm_phys="1">0.8D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne30np4" phys="cam7" waccm_phys="1">2.30D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne0np4CONUS.ne30x8" phys="cam6" waccm_phys="1">0.8D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne0np4CONUS.ne30x8" phys="cam7" waccm_phys="1">2.30D0</dust_emis_fact>
<dust_emis_fact dyn="fv" phys="cam6" >0.70D0</dust_emis_fact>
<dust_emis_fact dyn="fv" phys="cam7" >2.300D0</dust_emis_fact>

<dust_emis_fact hgrid="1.9x2.5" phys="cam6" ver="chem">0.26D0</dust_emis_fact>
<dust_emis_fact hgrid="1.9x2.5" phys="cam7" ver="chem">2.30D0</dust_emis_fact>
<dust_emis_fact hgrid="0.9x1.25" phys="cam6" ver="chem">0.7D0</dust_emis_fact>
<dust_emis_fact hgrid="0.9x1.25" phys="cam7" ver="chem">2.30D0</dust_emis_fact>
<dust_emis_fact hgrid="1.9x2.5" offline_dyn="1" phys="cam6" ver="chem">0.24D0</dust_emis_fact>
<dust_emis_fact hgrid="1.9x2.5" offline_dyn="1" phys="cam7" ver="chem">2.30D0</dust_emis_fact>
<dust_emis_fact hgrid="0.47x0.63" offline_dyn="1" phys="cam6" ver="chem">0.9D0</dust_emis_fact>
<dust_emis_fact hgrid="0.47x0.63" offline_dyn="1" phys="cam7" ver="chem">2.30D0</dust_emis_fact>
<dust_emis_fact dyn="se" phys="cam6" >1.75D0</dust_emis_fact>
<dust_emis_fact dyn="se" phys="cam7" >4.00D0</dust_emis_fact>
<dust_emis_fact dyn="mpas" phys="cam7" >4.00D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne30np4" phys="cam6" chem="trop_strat_mam4_vbs">2.0D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne30np4" phys="cam7" chem="trop_strat_mam4_vbs">4.0D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne0np4CONUS.ne30x8" phys="cam6" chem="trop_strat_mam4_vbs">2.0D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne0np4CONUS.ne30x8" phys="cam7" chem="trop_strat_mam4_vbs">4.0D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne30np4" phys="cam6" chem="trop_strat_mam4_ts1">2.0D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne30np4" phys="cam7" chem="trop_strat_mam4_ts1">4.0D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne0np4CONUS.ne30x8" phys="cam6" chem="trop_strat_mam4_tst">2.0D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne0np4CONUS.ne30x8" phys="cam7" chem="trop_strat_mam4_tst">4.0D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne30np4" phys="cam6" chem="trop_strat_mam5_vbs">2.0D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne30np4" phys="cam7" chem="trop_strat_mam5_vbs">4.0D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne0np4CONUS.ne30x8" phys="cam6" chem="trop_strat_mam5_vbs">2.0D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne0np4CONUS.ne30x8" phys="cam7" chem="trop_strat_mam5_vbs">4.0D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne30np4" phys="cam6" chem="trop_strat_mam5_ts1">2.0D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne30np4" phys="cam7" chem="trop_strat_mam5_ts1">4.0D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne0np4CONUS.ne30x8" phys="cam6" chem="trop_strat_mam5_tst">2.0D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne0np4CONUS.ne30x8" phys="cam7" chem="trop_strat_mam5_tst">4.0D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne30np4" phys="cam6" waccm_phys="1">2.0D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne30np4" phys="cam7" waccm_phys="1">4.0D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne0np4CONUS.ne30x8" phys="cam6" waccm_phys="1">2.0D0</dust_emis_fact>
<dust_emis_fact dyn="se" hgrid="ne0np4CONUS.ne30x8" phys="cam7" waccm_phys="1">4.0D0</dust_emis_fact>
<dust_emis_fact dyn="fv" phys="cam6" >1.75D0</dust_emis_fact>
<dust_emis_fact dyn="fv" phys="cam7" >4.0D0</dust_emis_fact>

<dust_emis_fact hgrid="1.9x2.5" phys="cam6" ver="chem">0.65D0</dust_emis_fact>
<dust_emis_fact hgrid="1.9x2.5" phys="cam7" ver="chem">4.0D0</dust_emis_fact>
<dust_emis_fact hgrid="0.9x1.25" phys="cam6" ver="chem">1.75D0</dust_emis_fact>
<dust_emis_fact hgrid="0.9x1.25" phys="cam7" ver="chem">4.0D0</dust_emis_fact>
<dust_emis_fact hgrid="1.9x2.5" offline_dyn="1" phys="cam6" ver="chem">0.6D0</dust_emis_fact>
<dust_emis_fact hgrid="1.9x2.5" offline_dyn="1" phys="cam7" ver="chem">4.0D0</dust_emis_fact>
<dust_emis_fact hgrid="0.47x0.63" offline_dyn="1" phys="cam6" ver="chem">2.25D0</dust_emis_fact>
<dust_emis_fact hgrid="0.47x0.63" offline_dyn="1" phys="cam7" ver="chem">4.0D0</dust_emis_fact>

<!-- dust emissions method -->
<dust_emis_method> Zender_2003</dust_emis_method>
Expand Down
4 changes: 2 additions & 2 deletions cime_config/testdefs/testlist_cam.xml
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@
</machines>
<options>
<option name="comment">CAM7-LT, enable gpu for PUMAS, CLUBB, and RRTMGP</option>
<option name="wallclock">00:45:00</option>
<option name="wallclock">02:00:00</option>
</options>
</test>

Expand Down Expand Up @@ -1276,7 +1276,7 @@
<machine name="derecho" compiler="nvhpc" category="prealpha"/>
</machines>
<options>
<option name="wallclock">00:30:00</option>
<option name="wallclock">02:00:00</option>
</options>
</test>
<test compset="F2000dev" grid="ne30pg3_ne30pg3_mg17" name="ERP_D_Ln9" testmods="cam/outfrq9s" supported="false">
Expand Down
54 changes: 45 additions & 9 deletions src/chemistry/modal_aero/aero_model.F90
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,9 @@ module aero_model

type(modal_aerosol_properties), pointer :: aero_props=>null()

integer :: n_coarse_dust=-1 ! dmleung added n_coarse_dust to determine the index for the
! coarse dust mode for different MAM versions. 29 Oct 2025

contains

!=============================================================================
Expand Down Expand Up @@ -510,6 +513,11 @@ subroutine aero_model_init( pbuf2d )
endif
enddo
endif

! determine coarse dust mode number
if (mode_type=='coarse' .or. mode_type=='coarse_dust') then
n_coarse_dust = n
end if
enddo

if (has_sox) then
Expand Down Expand Up @@ -617,6 +625,8 @@ subroutine aero_model_drydep ( state, pbuf, obklen, ustar, cam_in, dt, cam_out,
real(r8), pointer :: wetdens(:,:,:)
real(r8), pointer :: qaerwat(:,:,:)

logical :: aspherical

landfrac => cam_in%landfrac(:)
icefrac => cam_in%icefrac(:)
ocnfrac => cam_in%ocnfrac(:)
Expand Down Expand Up @@ -653,17 +663,15 @@ subroutine aero_model_drydep ( state, pbuf, obklen, ustar, cam_in, dt, cam_out,
rad_drop(:,:) = 5.0e-6_r8
dens_drop(:,:) = rhoh2o
sg_drop(:,:) = 1.46_r8
jvlc = 3
jvlc = 3 ! dmleung: jvlc = 3, moment = 0 => dry dep velocity for number of cloud-borne aerosols
call modal_aero_depvel_part( ncol,state%t(:,:), state%pmid(:,:), ram1, fv, &
vlc_dry(:,:,jvlc), vlc_trb(:,jvlc), vlc_grv(:,:,jvlc), &
rad_drop(:,:), dens_drop(:,:), sg_drop(:,:), 0, lchnk)
jvlc = 4
jvlc = 4 ! jvlc = 4, moment = 3 => dry dep velocity for vol/mass of cloud-borne aerosols
call modal_aero_depvel_part( ncol,state%t(:,:), state%pmid(:,:), ram1, fv, &
vlc_dry(:,:,jvlc), vlc_trb(:,jvlc), vlc_grv(:,:,jvlc), &
rad_drop(:,:), dens_drop(:,:), sg_drop(:,:), 3, lchnk)



do m = 1, ntot_amode ! main loop over aerosol modes

do lphase = 1, 2 ! loop over interstitial / cloud-borne forms
Expand All @@ -678,14 +686,24 @@ subroutine aero_model_drydep ( state, pbuf, obklen, ustar, cam_in, dt, cam_out,
dens_aer(1:ncol,:) = wetdens(1:ncol,:,m)
sg_aer(1:ncol,:) = sigmag_amode(m)

jvlc = 1
! dmleung 20 Oct 2025 ++
! dmleung: adding asphericity effect on slowing down gravitational settling velocity
! for internally mixed coarse-mode aerosols (Yue Huang et al., 2020)
! Huang et al. (2020) showed that aspherical dust has reduced gravitational settling by 15-20 %.
! Since (1) MAM modes are internally mixed, and (2) sea spray aerosols are also aspherical,
! for now dmleung applies asphericity correction to grav. set. velocity for the whole coarse mode.

aspherical = (m == n_coarse_dust)

jvlc = 1 ! dmleung: jvlc = 1, moment = 0 => dry dep velocity for number of interstitial aerosols
call modal_aero_depvel_part( ncol, state%t(:,:), state%pmid(:,:), ram1, fv, &
vlc_dry(:,:,jvlc), vlc_trb(:,jvlc), vlc_grv(:,:,jvlc), &
rad_aer(:,:), dens_aer(:,:), sg_aer(:,:), 0, lchnk)
jvlc = 2
rad_aer(:,:), dens_aer(:,:), sg_aer(:,:), 0, lchnk, aspherical=aspherical)
jvlc = 2 ! jvlc = 2, moment = 3 => dry dep velocity for vol/mass of interstitial aerosols
call modal_aero_depvel_part( ncol, state%t(:,:), state%pmid(:,:), ram1, fv, &
vlc_dry(:,:,jvlc), vlc_trb(:,jvlc), vlc_grv(:,:,jvlc), &
rad_aer(:,:), dens_aer(:,:), sg_aer(:,:), 3, lchnk)
rad_aer(:,:), dens_aer(:,:), sg_aer(:,:), 3, lchnk, aspherical=aspherical)

end if

do lspec = 0, nspec_amode(m)+1 ! loop over number + constituents + water
Expand Down Expand Up @@ -1443,7 +1461,7 @@ end subroutine modal_aero_bcscavcoef_init
!===============================================================================
!===============================================================================
subroutine modal_aero_depvel_part( ncol, t, pmid, ram1, fv, vlc_dry, vlc_trb, vlc_grv, &
radius_part, density_part, sig_part, moment, lchnk )
radius_part, density_part, sig_part, moment, lchnk, aspherical ) ! dmleung added aspherical flag 20 Oct 2025

! calculates surface deposition velocity of particles
! L. Zhang, S. Gong, J. Padro, and L. Barrie
Expand Down Expand Up @@ -1476,6 +1494,9 @@ subroutine modal_aero_depvel_part( ncol, t, pmid, ram1, fv, vlc_dry, vlc_trb, vl
real(r8), intent(out) :: vlc_trb(pcols) !Turbulent deposn velocity (m/s)
real(r8), intent(out) :: vlc_grv(pcols,pver) !grav deposn velocity (m/s)
real(r8), intent(out) :: vlc_dry(pcols,pver) !dry deposn velocity (m/s)
logical, intent(in), OPTIONAL :: aspherical ! dmleung: asphericity is strong for coarse-mode interstitial
! aerosols only, mostly dust and seasalt. For coarse mode aerosols, asphericity reduces coarse-mode gravitational
! settling velocity by 20 % following Fig. 4 of Yue Huang et al. (2020).
!------------------------------------------------------------------------

!------------------------------------------------------------------------
Expand Down Expand Up @@ -1505,6 +1526,11 @@ subroutine modal_aero_depvel_part( ncol, t, pmid, ram1, fv, vlc_dry, vlc_trb, vl
real(r8) :: wrk1, wrk2, wrk3

! constants

real(r8), parameter :: asphericaldust_drydep = 0.8_r8 ! dmleung added 20 Oct 2025: aspherical dust reduces
! gravitational settling velocity by 15-20 %. Yue Huang et al. (2020)
! Climate Models and Remote Sensing Retrievals Neglect Substantial Desert Dust Asphericity

real(r8) gamma(11) ! exponent of schmidt number
! data gamma/0.54d+00, 0.56d+00, 0.57d+00, 0.54d+00, 0.54d+00, &
! 0.56d+00, 0.54d+00, 0.54d+00, 0.54d+00, 0.56d+00, &
Expand Down Expand Up @@ -1573,6 +1599,16 @@ subroutine modal_aero_depvel_part( ncol, t, pmid, ram1, fv, vlc_dry, vlc_trb, vl
gravit*slp_crc(i,k) / vsc_dyn_atm(i,k) ![m s-1] Stokes' settling velocity SeP97 p. 466
vlc_grv(i,k) = vlc_grv(i,k) * dispersion

! dmleung edited 20 Oct 2025 based on Longlei Li's edits ++
! asphericity reduces gravitational settling velocity of coarse-mode aerosols by 20 %.
! scale flag is only true for coarse mode (m == n_coarse_dust).
if (present(aspherical)) then
if(aspherical) then
vlc_grv(i,k) = vlc_grv(i,k) * asphericaldust_drydep
end if
end if
! dmleung --

vlc_dry(i,k)=vlc_grv(i,k)
enddo
enddo
Expand Down
22 changes: 16 additions & 6 deletions src/chemistry/modal_aero/dust_model.F90
Original file line number Diff line number Diff line change
Expand Up @@ -122,16 +122,26 @@ subroutine dust_init()
allocate( dust_dmt_vwr(ndst) )
allocate( dust_stk_crc(ndst) )

! dmleung edited the mass fraction of the emitted dust size distribution. 27 Oct 2025 ++
! The new mass fraction comes from Jun Meng et al. (2022) and MERRA-2.
! Jun Meng's table indicates 2.1 % mass for 0.1-1 um and 97.9 % mass for 1-10 um.
! ref: https://zenodo.org/records/6344524
! MERRA-2 dust emissions indicate 6 % mass for 0.1-1 um (bin1) and 94 % for 1-10 um (bin2-5).
! dmleung adopts 2.1 % mass for 0.1-1 um and 97.9 % mass for 1-10 um for dust.
! Distributing more mass to accumulation mode allows a longer lifetime of dust, reducing
! low dust biases over remote oceans and reducing high dust biases over the Sahara.
! This change impacts both Zender_2003 dust and Leung_2023 dust.
if ( ntot_amode == 3 ) then
dust_dmt_grd(:) = (/ 0.1e-6_r8, 1.0e-6_r8, 10.0e-6_r8/)
dust_emis_sclfctr(:) = (/ 0.011_r8,0.989_r8 /)
dust_emis_sclfctr(:) = (/ 0.021_r8,0.979_r8 /)
elseif ( ntot_amode == 4 .or. ntot_amode == 5 ) then
dust_dmt_grd(:) = (/ 0.01e-6_r8, 0.1e-6_r8, 1.0e-6_r8, 10.0e-6_r8 /) ! Aitken dust
dust_emis_sclfctr(:) = (/ 1.65E-05_r8, 0.011_r8, 0.989_r8 /) ! Aitken dust
dust_dmt_grd(:) = (/ 0.01e-6_r8, 0.1e-6_r8, 1.0e-6_r8, 10.0e-6_r8 /)
dust_emis_sclfctr(:) = (/ 1.65E-05_r8, 0.021_r8, 0.979_r8 /)
else if( ntot_amode == 7 ) then
dust_dmt_grd(:) = (/ 0.1e-6_r8, 2.0e-6_r8, 10.0e-6_r8/)
dust_emis_sclfctr(:) = (/ 0.13_r8, 0.87_r8 /)
dust_emis_sclfctr(:) = (/ 0.12_r8, 0.88_r8 /)
endif
! dmleung --

ndx = 0
do mm = 1, ntot_amode
Expand Down Expand Up @@ -181,7 +191,7 @@ subroutine dust_emis( ncol, lchnk, dust_flux_in, cflx, soil_erod )

! set dust emissions

if (is_zender_soil_erod_from_atm()) then
if (is_zender_soil_erod_from_atm()) then ! Zender_2003 dust emissions
col_loop1: do i = 1,ncol
soil_erod(i) = soil_erodibility( i, lchnk )
if( soil_erod(i) .lt. soil_erod_threshold ) soil_erod(i) = 0._r8
Expand All @@ -196,7 +206,7 @@ subroutine dust_emis( ncol, lchnk, dust_flux_in, cflx, soil_erod )
cflx(i,inum) = cflx(i,idst)*x_mton
enddo
enddo col_loop1
else ! Leung emissions
else ! Leung_2023 dust emissions

col_loop2: do i = 1,ncol
! rebin and adjust dust emissons.
Expand Down
Loading