From b2a216eec43d0bed2985eb7c8b6a98ceeeff7ddf Mon Sep 17 00:00:00 2001 From: lucieb92 <lucie.bakels@univie.ac.at> Date: Tue, 4 Jun 2024 18:21:11 +0200 Subject: [PATCH] Removed BCSCHEME Former-commit-id: bb1732decda867c98c7e99cec63247fe4ae3abc9 --- src/com_mod.f90 | 5 - src/par_mod.f90 | 8 -- src/readoptions_mod.f90 | 4 - src/wetdepo_mod.f90 | 212 +++++++++++++--------------------------- 4 files changed, 69 insertions(+), 160 deletions(-) diff --git a/src/com_mod.f90 b/src/com_mod.f90 index 37a337a9..9e87f459 100644 --- a/src/com_mod.f90 +++ b/src/com_mod.f90 @@ -194,11 +194,6 @@ module com_mod integer(selected_int_kind(16)),allocatable,dimension(:) :: icnt_belowcld, & &icnt_incld - integer :: bcscheme ! AT 2021 - ! = 1 for below cloud scheme of Grythe et al 2017 (based on Laakso and Kyro) - ! = 2 for below-cloud scheme of Tipka et al 2023 (based on Wang et al 2014) - ! = 3 for below-cloud scheme of Tipka et al 2023 (based on modified Wang et al 2014) - !********************************************************************* ! Variables defining the release locations, released species and their ! properties, etc. diff --git a/src/par_mod.f90 b/src/par_mod.f90 index deb503b9..53b482f8 100644 --- a/src/par_mod.f90 +++ b/src/par_mod.f90 @@ -216,14 +216,6 @@ module par_mod ! aerosol below-cloud scavenging removal polynomial constants for rain & snow !************************************************************************** - ! for bcscheme = 1 - ! rain (Laakso et al 2003, figure 7) Size range: 10-510 nm - real, parameter :: bclr(6) = & - (/274.35758, 332839.59273, 226656.57259, 58005.91340, 6588.38582, 0.244984/) - ! snow (Kyro et al 2009) Size range: 10nm-1um - real, parameter :: bcls(6) = (/22.7, 0.0, 0.0, 1321.0, 381.0, 0.0/) - - ! for bcscheme = 2 & 3 ! AT (after Wang et al 2014, Table 8) ! rain real, parameter :: bclr_a(4) = & diff --git a/src/readoptions_mod.f90 b/src/readoptions_mod.f90 index 3d8366ea..89b38f85 100644 --- a/src/readoptions_mod.f90 +++ b/src/readoptions_mod.f90 @@ -426,8 +426,6 @@ subroutine readcommand ! HSO, 1 July 2014 * ! Added optional namelist input * ! * - ! June 2023 Anne Tipka * - ! Added new parameter bcscheme for selcting below cloud scheme * ! * ! January 2024 Rona Thompson * ! Added new variables for LCM * @@ -529,7 +527,6 @@ subroutine readcommand maxthreadgrid, & maxfilesize, & logvertinterp, & - bcscheme, & ohfields_path, & lcmoutput, & itsplit ! deprecated: only for IO back compatibility @@ -576,7 +573,6 @@ subroutine readcommand maxthreadgrid=1 maxfilesize=10000 logvertinterp=0 - bcscheme=2 ohfields_path='' lcmoutput=0 itsplit=999999999 ! deprecated: only for IO back compatibility diff --git a/src/wetdepo_mod.f90 b/src/wetdepo_mod.f90 index 65da22a7..e13a9c42 100644 --- a/src/wetdepo_mod.f90 +++ b/src/wetdepo_mod.f90 @@ -472,74 +472,40 @@ subroutine get_wetscav_belowcld_aerosol_rain(ks,prec,wetscav) ! PS note that solid precip is usually expected for T<Tf, not T<273 ! also, if freezing/melting point is desired, why not 273.2? - if (bcscheme .eq. 1) then - ! ZHG 2014: Particle rain scavenging coefficient based on Laakso et al 2003, - ! scaling factor Crain (=crain_aero) is read from SPECIES file - - ! Laakso et al. 2003 eq. 6 + 7 - wetscav = & - crain_aero(ks)*10**( & - bclr(1) + & - bclr(2) * log10(dquer_m)**(-4) + & - bclr(3) * log10(dquer_m)**(-3) + & - bclr(4) * log10(dquer_m)**(-2) + & - bclr(5) * log10(dquer_m)**(-1) + & - bclr(6) * prec**0.5 & - ) - - elseif (bcscheme .eq. 2 .or. bcscheme .eq. 3) then ! AT parameterization after WANG ET AL 2014 ! unit of dquer is in um ! unit of precip is in mm/h - ! Wang et al. 2014: eq 6+7 - ldquer = log10(dquer(ks)) - if (dquer(ks) .le. 2.) then - logAd = bclr_a(1) + & - bclr_a(2) * ldquer + & - bclr_a(3) * ldquer**2. + & - bclr_a(4) * ldquer**3. - - B = bclr_c(1) + bclr_c(2)*ldquer - - else ! dquer .gt. 2. - logAd = bclr_b(1) + & - bclr_b(2) * ldquer + & - bclr_b(3) * ldquer**2. + & - bclr_b(4) * ldquer**3. + & - bclr_b(5) * ldquer**4. + & - bclr_b(6) * ldquer**5. + & - bclr_b(7) * ldquer**6. - - B = bclr_e(1) + & - bclr_e(2) * ldquer + & - bclr_e(3) * ldquer**2. + & - bclr_e(4) * ldquer**3. + & - bclr_e(5) * ldquer**4. + & - bclr_e(6) * ldquer**5. + & - bclr_e(7) * ldquer**6. - - endif ! dquer - - ! Wang et al. 2014: eq. 4 - wetscav = 10**(logAd+B*log10(prec)) - - if (bcscheme .eq. 3) then - ! this is a fix to avoid the scavenging gap - ldquer = log10(2.) - logAd = bclr_a(1) + & - bclr_a(2) * ldquer + & - bclr_a(3) * ldquer**2. + & - bclr_a(4) * ldquer**3. - - B = bclr_c(1) + bclr_c(2)*ldquer - - wetscavlim = 10**(logAd+B*log10(prec)) - - wetscav = max(wetscav, wetscavlim) + ! Wang et al. 2014: eq 6+7 + ldquer = log10(dquer(ks)) + if (dquer(ks) .le. 2.) then + logAd = bclr_a(1) + & + bclr_a(2) * ldquer + & + bclr_a(3) * ldquer**2. + & + bclr_a(4) * ldquer**3. - endif - - endif ! bcscheme Laakso or Wang + B = bclr_c(1) + bclr_c(2)*ldquer + + else ! dquer .gt. 2. + logAd = bclr_b(1) + & + bclr_b(2) * ldquer + & + bclr_b(3) * ldquer**2. + & + bclr_b(4) * ldquer**3. + & + bclr_b(5) * ldquer**4. + & + bclr_b(6) * ldquer**5. + & + bclr_b(7) * ldquer**6. + + B = bclr_e(1) + & + bclr_e(2) * ldquer + & + bclr_e(3) * ldquer**2. + & + bclr_e(4) * ldquer**3. + & + bclr_e(5) * ldquer**4. + & + bclr_e(6) * ldquer**5. + & + bclr_e(7) * ldquer**6. + + endif ! dquer + + ! Wang et al. 2014: eq. 4 + wetscav = 10**(logAd+B*log10(prec)) end subroutine get_wetscav_belowcld_aerosol_rain @@ -567,90 +533,50 @@ subroutine get_wetscav_belowcld_aerosol_snow(ks,prec,wetscav) ! TODO check whether warning is written by readrelease for d > 10 um dquer_m = min( 10.e-6, dquer_m ) - - if (bcscheme .eq. 1) then - ! ZHG 2014 : Particle snow scavenging coefficient based on Kyro et al 2009, - ! scaling factor Csnow (=csnow_aero) is read from SPECIES file - - wetscav = & - csnow_aero(ks) * 10**( & - bcls(1) + & - bcls(2) * log10(dquer_m)**(-4) + & - bcls(3) * log10(dquer_m)**(-3) + & - bcls(4) * log10(dquer_m)**(-2) + & - bcls(5) * log10(dquer_m)**(-1) + & - bcls(6) * prec**0.5 & - ) - - elseif (bcscheme .eq. 2 .or. bcscheme .eq. 3) then ! AT parameterization after WANG ET AL 2014 ! unit of dquer is in um ! unit of precip is in mm/h - ldquer = log10(dquer(ks)) - ! Wang et al. 2014: eq. 8+9 - if (dquer(ks) .le. 1.44) then - logAd = bcls_a(1) + & - bcls_a(2) * ldquer + & - bcls_a(3) * ldquer**2. + & - bcls_a(4) * ldquer**3. + & - bcls_a(5) * ldquer**4. + & - bcls_a(6) * ldquer**5. + & - bcls_a(7) * ldquer**6. - - B = bcls_c(1) + & - bcls_c(2) * ldquer + & - bcls_c(3) * ldquer**2. + & - bcls_c(4) * ldquer**3. + & - bcls_c(5) * ldquer**4. + & - bcls_c(6) * ldquer**5. + & - bcls_c(7) * ldquer**6. - - else ! dquer .gt. 1.44 - logAd = bcls_b(1) + & - bcls_b(2) * ldquer + & - bcls_b(3) * ldquer**2. + & - bcls_b(4) * ldquer**3. + & - bcls_b(5) * ldquer**4. + & - bcls_b(6) * ldquer**5. + & - bcls_b(7) * ldquer**6. - - B = bcls_e(1) + & - bcls_e(2) * ldquer + & - bcls_e(3) * ldquer**2. + & - bcls_e(4) * ldquer**3. + & - bcls_e(5) * ldquer**4. + & - bcls_e(6) * ldquer**5. + & - bcls_e(7) * ldquer**6. + ldquer = log10(dquer(ks)) + ! Wang et al. 2014: eq. 8+9 + if (dquer(ks) .le. 1.44) then + logAd = bcls_a(1) + & + bcls_a(2) * ldquer + & + bcls_a(3) * ldquer**2. + & + bcls_a(4) * ldquer**3. + & + bcls_a(5) * ldquer**4. + & + bcls_a(6) * ldquer**5. + & + bcls_a(7) * ldquer**6. - endif ! dquer - - ! Wang et al. 2014: eq. 4 - wetscav = 10**(logAd+B*log10(prec)) - - if (bcscheme .eq. 3) then - ldquer = log10(1.44) - logAd = bcls_a(1) + & - bcls_a(2) * ldquer + & - bcls_a(3) * ldquer**2. + & - bcls_a(4) * ldquer**3. + & - bcls_a(5) * ldquer**4. + & - bcls_a(6) * ldquer**5. + & - bcls_a(7) * ldquer**6. - - B = bcls_c(1) + & - bcls_c(2) * ldquer + & - bcls_c(3) * ldquer**2. + & - bcls_c(4) * ldquer**3. + & - bcls_c(5) * ldquer**4. + & - bcls_c(6) * ldquer**5. + & - bcls_c(7) * ldquer**6. + B = bcls_c(1) + & + bcls_c(2) * ldquer + & + bcls_c(3) * ldquer**2. + & + bcls_c(4) * ldquer**3. + & + bcls_c(5) * ldquer**4. + & + bcls_c(6) * ldquer**5. + & + bcls_c(7) * ldquer**6. - wetscavlim = 10**(logAd+B*log10(prec)) - wetscav = max(wetscav, wetscavlim) - endif - - endif ! bcscheme Laakso or Wang - + else ! dquer .gt. 1.44 + logAd = bcls_b(1) + & + bcls_b(2) * ldquer + & + bcls_b(3) * ldquer**2. + & + bcls_b(4) * ldquer**3. + & + bcls_b(5) * ldquer**4. + & + bcls_b(6) * ldquer**5. + & + bcls_b(7) * ldquer**6. + + B = bcls_e(1) + & + bcls_e(2) * ldquer + & + bcls_e(3) * ldquer**2. + & + bcls_e(4) * ldquer**3. + & + bcls_e(5) * ldquer**4. + & + bcls_e(6) * ldquer**5. + & + bcls_e(7) * ldquer**6. + + endif ! dquer + + ! Wang et al. 2014: eq. 4 + wetscav = 10**(logAd+B*log10(prec)) + end subroutine get_wetscav_belowcld_aerosol_snow subroutine get_wetscav_incld_aerosol(ks,gridfract,prec,cl,cc,t_particle,wetscav) -- GitLab