Skip to content

Commit 1e42db0

Browse files
committed
more code clean up and commenting by dmleung
1 parent 0ad2cf8 commit 1e42db0

File tree

2 files changed

+27
-24
lines changed

2 files changed

+27
-24
lines changed

src/chemistry/modal_aero/aero_model.F90

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1600,9 +1600,8 @@ subroutine modal_aero_depvel_part( ncol, t, pmid, ram1, fv, vlc_dry, vlc_trb, vl
16001600
vlc_grv(i,k) = vlc_grv(i,k) * dispersion
16011601

16021602
! dmleung edited 20 Oct 2025 based on Longlei Li's edits ++
1603-
! asphericity reduces gravitational settling velocity of coarse-mode dust by 20 %.
1603+
! asphericity reduces gravitational settling velocity of coarse-mode aerosols by 20 %.
16041604
! scale flag is only true for coarse mode (m == n_coarse_dust).
1605-
! n_coarse_dust is 3 for MAM4/MAM5, and is 2 for MAM3/MAM7.
16061605
if (present(aspherical)) then
16071606
if(aspherical) then
16081607
vlc_grv(i,k) = vlc_grv(i,k) * asphericaldust_drydep

src/physics/cam/aerosol_optics_cam.F90

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ subroutine aerosol_optics_cam_init
207207
call addfld ('ABSORB'//diag(ilist), (/ 'lev' /), 'A','/m',&
208208
'Aerosol absorption, day only', flag_xyfill=.true.)
209209
call addfld ('AODVIS'//diag(ilist), horiz_only, 'A',' ', &
210-
'Aerosol optical depth 550 nm', flag_xyfill=.true.)
210+
'Aerosol optical depth 550 nm, day only', flag_xyfill=.true.)
211211
call addfld ('AODVISst'//diag(ilist), horiz_only, 'A',' ', &
212212
'Stratospheric aerosol optical depth 550 nm, day only', flag_xyfill=.true.)
213213
call addfld ('AODNIRst'//diag(ilist), horiz_only, 'A',' ', &
@@ -228,33 +228,33 @@ subroutine aerosol_optics_cam_init
228228
'Aerosol optical depth summed over all sw wavelengths', flag_xyfill=.true.)
229229

230230
call addfld ('EXTINCTdn'//diag(ilist), (/ 'lev' /), 'A','/m',&
231-
'Aerosol extinction 550 nm, day only', flag_xyfill=.true.)
231+
'Aerosol extinction 550 nm, day night', flag_xyfill=.true.)
232232
call addfld ('EXTINCTUVdn'//diag(ilist), (/ 'lev' /), 'A','/m',&
233-
'Aerosol extinction 350 nm, day only', flag_xyfill=.true.)
233+
'Aerosol extinction 350 nm, day night', flag_xyfill=.true.)
234234
call addfld ('EXTINCTNIRdn'//diag(ilist), (/ 'lev' /), 'A','/m',&
235-
'Aerosol extinction 1020 nm, day only', flag_xyfill=.true.)
235+
'Aerosol extinction 1020 nm, day night', flag_xyfill=.true.)
236236
call addfld ('ABSORBdn'//diag(ilist), (/ 'lev' /), 'A','/m',&
237-
'Aerosol absorption, day only', flag_xyfill=.true.)
237+
'Aerosol absorption, day night', flag_xyfill=.true.)
238238
call addfld ('AODVISdn'//diag(ilist), horiz_only, 'A',' ', &
239-
'Aerosol optical depth 550 nm', flag_xyfill=.true.)
239+
'Aerosol optical depth 550 nm, day night', flag_xyfill=.true.)
240240
call addfld ('AODVISstdn'//diag(ilist), horiz_only, 'A',' ', &
241-
'Stratospheric aerosol optical depth 550 nm, day only', flag_xyfill=.true.)
241+
'Stratospheric aerosol optical depth 550 nm, day night', flag_xyfill=.true.)
242242
call addfld ('AODNIRstdn'//diag(ilist), horiz_only, 'A',' ', &
243-
'Stratospheric aerosol optical depth 1020 nm, day only', flag_xyfill=.true.)
243+
'Stratospheric aerosol optical depth 1020 nm, day night', flag_xyfill=.true.)
244244
call addfld ('AODUVstdn'//diag(ilist), horiz_only, 'A',' ', &
245-
'Stratospheric aerosol optical depth 350 nm, day only', flag_xyfill=.true.)
245+
'Stratospheric aerosol optical depth 350 nm, day night', flag_xyfill=.true.)
246246
call addfld ('AODUVdn'//diag(ilist), horiz_only, 'A',' ', &
247-
'Aerosol optical depth 350 nm, day only', flag_xyfill=.true.)
247+
'Aerosol optical depth 350 nm, day night', flag_xyfill=.true.)
248248
call addfld ('AODNIRdn'//diag(ilist), horiz_only, 'A',' ', &
249-
'Aerosol optical depth 1020 nm, day only', flag_xyfill=.true.)
249+
'Aerosol optical depth 1020 nm, day night', flag_xyfill=.true.)
250250
call addfld ('AODABSdn'//diag(ilist), horiz_only, 'A',' ', &
251-
'Aerosol absorption optical depth 550 nm, day only', flag_xyfill=.true.)
251+
'Aerosol absorption optical depth 550 nm, day night', flag_xyfill=.true.)
252252
call addfld ('AODxASYMdn'//diag(ilist), horiz_only, 'A',' ', &
253-
'Aerosol optical depth 550 * asymmetry factor, day only', flag_xyfill=.true.)
253+
'Aerosol optical depth 550 * asymmetry factor, day night', flag_xyfill=.true.)
254254
call addfld ('EXTxASYMdn'//diag(ilist), (/ 'lev' /), 'A',' ', &
255-
'extinction 550 nm * asymmetry factor, day only', flag_xyfill=.true.)
255+
'extinction 550 nm * asymmetry factor, day night', flag_xyfill=.true.)
256256
call addfld ('AODTOTdn'//diag(ilist), horiz_only, 'A','1',&
257-
'Aerosol optical depth summed over all sw wavelengths, day only')
257+
'Aerosol optical depth summed over all sw wavelengths, day night')
258258

259259
if (lw10um_indx>0) then
260260
call addfld('AODABSLW'//diag(ilist), (/ 'lev' /), 'A','/m',&
@@ -822,18 +822,23 @@ subroutine aerosol_optics_cam_sw(list_idx, state, pbuf, nnite, idxnite, tauxar,
822822
dopaer(icol) = pext(icol)*mass(icol,ilev) ! aerosol optical depth of layer ilev
823823

824824
! dmleung 20 Oct 2025 ++
825-
! added dust asphericity impacts on enhancing dust AOD. Modified after Longlei Li & Natalie Mahowald (Cornell University).
825+
! added dust asphericity impacts on enhancing dust AOD. Modified after Longlei Li (Cornell University).
826826
! the theory is that coarse-mode dust is aspherical, with ~30 % enhanced extinction compared with spherical coarse-mode dust.
827-
! ref: Fig. 1d of Jasper F. Kok et al. (2017), Smaller desert dust cooling effect estimated from analysis of dust size and abundance
827+
! ref: Fig. 1d of Jasper F. Kok et al. (2017),
828+
! Smaller desert dust cooling effect estimated from analysis of dust size and abundance
828829

829830
call update_diags ! dopaer is updated in update_diags.
830831

831832
! dmleung: update_diags updated dopaer(icol) as a diagnostic.
832833
! Aerosol optical and radiative properties are subsequently modified given dopaer update in update_diags.
833-
tauxar(icol,ilev,iwav) = tauxar(icol,ilev,iwav) + dopaer(icol) ! aerosol optical depth of layer ilev
834-
wa(icol,ilev,iwav) = wa(icol,ilev,iwav) + dopaer(icol)*palb(icol) ! single scattering albedo of layer ilev
835-
ga(icol,ilev,iwav) = ga(icol,ilev,iwav) + dopaer(icol)*palb(icol)*pasm(icol) ! asymmetry factor of layer ilev
836-
fa(icol,ilev,iwav) = fa(icol,ilev,iwav) + dopaer(icol)*palb(icol)*pasm(icol)*pasm(icol) ! forward scattered fraction of layer ilev
834+
! To the first-order approximation, palb and pasm (SSA and asymmetry factor) remain roughly the same in the
835+
! 1-10 um upon introducing asphericity; changes in wa, ga, and fa are thus due to only AOD changes given dust asphericty.
836+
! ref: Fig. 2a-d of Yue Huang et al. (2023),
837+
! Single-scattering properties of ellipsoidal dust aerosols constrained by measured dust shape distributions
838+
tauxar(icol,ilev,iwav) = tauxar(icol,ilev,iwav) + dopaer(icol) ! aerosol optical depth at layer ilev
839+
wa(icol,ilev,iwav) = wa(icol,ilev,iwav) + dopaer(icol)*palb(icol) ! single scattering albedo at layer ilev
840+
ga(icol,ilev,iwav) = ga(icol,ilev,iwav) + dopaer(icol)*palb(icol)*pasm(icol) ! asymmetry factor at layer ilev
841+
fa(icol,ilev,iwav) = fa(icol,ilev,iwav) + dopaer(icol)*palb(icol)*pasm(icol)*pasm(icol) ! forward scattered fraction at layer ilev
837842
! dmleung --
838843

839844
end do column
@@ -1000,7 +1005,6 @@ subroutine update_diags
10001005
! combine with aspherical dustaod to modify dopaer in aerosol_optics_cam_sw.
10011006
dopaer0(icol) = dopaer0(icol) + dopaer(icol) ! dopaer0 stores total AOD assuming aspherical dust.
10021007
if (modal_active .and. ibin == n_coarse_dust) then ! if MAM and coarse dust mode, scale up dust AOD by 30 %.
1003-
! n_coarse_dust is 3 for MAM4/MAM5, and is 2 for MAM3/MAM7.
10041008
dustaodbin(icol) = dustaodbin(icol) * dustaspherical_opts ! update mode/bin-specific dust AOD
10051009
dustaod(icol) = dustaod0(icol) * dustaspherical_opts ! dustaod is now dust AOD based on aspherical dust
10061010
!with asphericity effect on thickening AOD.

0 commit comments

Comments
 (0)