Skip to content

Commit

Permalink
fix bug in emis scaling when Leung is used
Browse files Browse the repository at this point in the history
	modified:   bld/build-namelist
	modified:   src/chemistry/modal_aero/dust_model.F90
  • Loading branch information
fvitt committed Aug 23, 2024
1 parent ba285ec commit e6d302c
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 14 deletions.
18 changes: 7 additions & 11 deletions bld/build-namelist
Original file line number Diff line number Diff line change
Expand Up @@ -3734,19 +3734,15 @@ if ($cfg->get('microphys') eq 'rk') {
}

# Dust emissions tuning factor
# If dust is prognostic ==> supply the tuning factor
if ( length($nl->get_value('soil_erod_file'))>0 ) {
# check whether turbulent mountain stress parameterization is on
if ($nl->get_value('do_tms') =~ /$TRUE/io) {
add_default($nl, 'dust_emis_fact', 'tms'=>'1');
# check whether turbulent mountain stress parameterization is on
if ($nl->get_value('do_tms') =~ /$TRUE/io) {
add_default($nl, 'dust_emis_fact', 'tms'=>'1');
} else {
if ($chem =~ /trop_strat/ or $chem =~ /geoschem/ or $chem =~ /waccm_ma/ or $chem =~ /waccm_tsmlt/ or $chem =~ /trop_mozart/) {
add_default($nl, 'dust_emis_fact', 'ver'=>'chem');
}
else {
if ($chem =~ /trop_strat/ or $chem =~ /geoschem/ or $chem =~ /waccm_ma/ or $chem =~ /waccm_tsmlt/ or $chem =~ /trop_mozart/) {
add_default($nl, 'dust_emis_fact', 'ver'=>'chem');
}
else {
add_default($nl, 'dust_emis_fact');
}
add_default($nl, 'dust_emis_fact');
}
}
if (chem_has_species($cfg, 'NO')) {
Expand Down
8 changes: 5 additions & 3 deletions src/chemistry/modal_aero/dust_model.F90
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ module dust_model
real(r8), allocatable :: dust_dmt_vwr(:)
real(r8), allocatable :: dust_stk_crc(:)

real(r8) :: dust_emis_fact = -huge(1._r8) ! tuning parameter for dust emissions
character(len=cl) :: soil_erod_file = 'none' ! full pathname for soil erodibility dataset
real(r8) :: dust_emis_fact = 0._r8 ! tuning parameter for dust emissions
character(len=cl) :: soil_erod_file = 'none' ! full pathname for soil erodibility dataset

logical :: dust_active = .false.

Expand Down Expand Up @@ -196,11 +196,13 @@ subroutine dust_emis( ncol, lchnk, dust_flux_in, cflx, soil_erod )
cflx(i,inum) = cflx(i,idst)*x_mton
enddo
enddo col_loop1
else ! no scaling
else ! Leung emissions

col_loop2: do i = 1,ncol
! rebin and adjust dust emissons.
do m = 1,dust_nbin
idst = dust_indices(m)

cflx(i,idst) = sum( -dust_flux_in(i,:) ) &
* dust_emis_sclfctr(m) / dust_emis_fact
x_mton = 6._r8 / (pi * dust_density * (dust_dmt_vwr(m)**3._r8))
Expand Down

0 comments on commit e6d302c

Please sign in to comment.