Skip to content

Commit c95aaf7

Browse files
authored
Merge pull request #353 from GEOS-ESM/feature/acollow/#291-fwet
2 parents dbc1eab + e9a275d commit c95aaf7

File tree

14 files changed

+46
-35
lines changed

14 files changed

+46
-35
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2020
- Heartbeat time step removed and `timeToWork` logical added
2121
- Modified filepaths for the optics files to no longer link to a personal nobackup directory
2222
- Added logic to ensure the alarm accounts for skipping heartbeat in `NI` and `SU` components
23+
- fwet removed from children GridCompMod and placed in respective instance RC files
2324
- Updated settling routine and calls to allow settling velocity diagnostics in output field
2425

2526
### Fixed

ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridCompMod.F90

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -989,7 +989,6 @@ subroutine Run2 (GC, import, export, clock, RC)
989989
integer :: n
990990
real, allocatable, dimension(:,:) :: drydepositionfrequency, dqa
991991
real, pointer, dimension(:,:,:) :: casd_vel
992-
real :: fwet
993992
real, dimension(3) :: rainout_eff
994993
logical :: KIN
995994
real, allocatable, dimension(:,:,:) :: pSOA_VOC
@@ -1141,9 +1140,8 @@ subroutine Run2 (GC, import, export, clock, RC)
11411140
if (associated(WT)) WT(:,:,1)=0.0
11421141

11431142
! Hydrophilic mode (second tracer) is removed
1144-
fwet = 1.
11451143
call WetRemovalGOCART2G (self%km, self%klid, self%nbins, self%nbins, 2, self%cdt, GCsuffix, &
1146-
KIN, MAPL_GRAV, fwet, philic, ple, t, airdens, &
1144+
KIN, MAPL_GRAV, self%fwet(2), philic, ple, t, airdens, &
11471145
pfl_lsan, pfi_lsan, cn_prcp, ncn_prcp, WT, __RC__)
11481146
case ('ufs')
11491147
! Both hydrophobic and hydrophilic modes can be removed

ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_instance_CA.bc.rc

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,12 @@ time_days_chemical_destruction: -1. -1.
2323
# Wet Removal Scheme Option | gocart, ufs
2424
wet_removal_scheme: gocart ! default value
2525

26-
# Scavenging efficiency per bin [km-1] (NOT USED UNLESS RAS IS CALLED)
26+
# Scavenging efficiency per bin [km-1]
2727
fscav: 0.0 0.4
2828

29+
# Large scale rainout efficiency per bin for wet_removal_scheme == gocart
30+
fwet: 0.0 1.0
31+
2932
# Rainout efficiency per bin for wet_removal_scheme == ufs
3033
fwet_ice: 0.0 1.0
3134
fwet_snow: 0.0 1.0
@@ -54,4 +57,4 @@ point_emissions_srcfilen: /dev/null
5457

5558
# SettlingSolver options
5659
# Options: 'gocart' or 'ufs'
57-
settling_scheme: 'gocart'
60+
settling_scheme: 'gocart'

ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_instance_CA.br.rc

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,12 @@ time_days_chemical_destruction: -1. -1.
2929
# Wet Removal Scheme Option | gocart, ufs
3030
wet_removal_scheme: gocart ! default value
3131

32-
# Scavenging efficiency per bin [km-1] (NOT USED UNLESS RAS IS CALLED)
32+
# Scavenging efficiency per bin [km-1]
3333
fscav: 0.0 0.4
3434

35+
# Large scale rainout efficiency per bin for wet_removal_scheme == gocart
36+
fwet: 0.0 1.0
37+
3538
# Rainout efficiency per bin for wet_removal_scheme == ufs
3639
fwet_ice: 0.0 0.4
3740
fwet_snow: 0.0 0.4
@@ -57,4 +60,4 @@ point_emissions_srcfilen: /dev/null
5760

5861
# SettlingSolver options
5962
# Options: 'gocart' or 'ufs'
60-
settling_scheme: 'gocart'
63+
settling_scheme: 'gocart'

ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_instance_CA.oc.rc

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,12 @@ time_days_chemical_destruction: -1. -1.
3333
# Wet Removal Scheme Option | gocart, ufs
3434
wet_removal_scheme: gocart ! default value
3535

36-
# Scavenging efficiency per bin [km-1] (NOT USED UNLESS RAS IS CALLED)
36+
# Scavenging efficiency per bin [km-1]
3737
fscav: 0.0 0.4
3838

39+
# Large scale rainout efficiency per bin for wet_removal_scheme == gocart
40+
fwet: 0.0 1.0
41+
3942
# Rainout efficiency per bin for wet_removal_scheme == ufs
4043
fwet_ice: 0.0 1.0
4144
fwet_snow: 0.0 1.0
@@ -61,4 +64,4 @@ point_emissions_srcfilen: /dev/null
6164

6265
# SettlingSolver options
6366
# Options: 'gocart' or 'ufs'
64-
settling_scheme: 'gocart'
67+
settling_scheme: 'gocart'

ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridCompMod.F90

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -978,7 +978,6 @@ subroutine Run2 (GC, import, export, clock, RC)
978978
integer :: n
979979
real, allocatable, dimension(:,:) :: drydepositionfrequency, dqa
980980
real, pointer, dimension(:,:,:) :: dusd_vel
981-
real :: fwet
982981
logical :: KIN
983982

984983
integer :: i1, j1, i2, j2, km
@@ -1072,9 +1071,8 @@ subroutine Run2 (GC, import, export, clock, RC)
10721071
select case (self%wet_removal_scheme)
10731072
case ('gocart')
10741073
do n = 1, self%nbins
1075-
fwet = 1.0
10761074
call WetRemovalGOCART2G(self%km, self%klid, self%nbins, self%nbins, n, self%cdt, 'dust', &
1077-
KIN, MAPL_GRAV, fwet, DU(:,:,:,n), ple, t, airdens, &
1075+
KIN, MAPL_GRAV, self%fwet(n), DU(:,:,:,n), ple, t, airdens, &
10781076
pfl_lsan, pfi_lsan, cn_prcp, ncn_prcp, DUWT, __RC__)
10791077
end do
10801078
case ('ufs')

ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_instance_DU.rc

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@ wet_removal_scheme: gocart ! default value
4747
# Scavenging efficiency per bin [km-1]
4848
fscav: 0.2 0.2 0.2 0.2 0.2
4949

50+
# Large scale rainout efficiency per bin for wet_removal_scheme == gocart
51+
fwet: 1.0 1.0 1.0 1.0 1.0
52+
5053
# Rainout efficiency per bin for wet_removal_scheme == ufs
5154
fwet_ice: 0.8 0.8 0.8 1.0 1.0
5255
fwet_snow: 0.8 0.8 0.8 1.0 1.0
@@ -75,4 +78,4 @@ drag_partition_option: 2
7578

7679
# SettlingSolver options
7780
# Options: 'gocart' or 'ufs'
78-
settling_scheme: 'gocart'
81+
settling_scheme: 'gocart'

ESMF/GOCART2G_GridComp/GA_Environment/GA_EnvironmentMod.F90

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,13 @@ module GA_EnvironmentMod
1616
real, allocatable :: radius(:) ! particle effective radius [um]
1717
real, allocatable :: rhop(:) ! soil class density [kg m-3]
1818
real, allocatable :: fscav(:) ! scavenging efficiency
19+
real, allocatable :: fwet(:) ! large scale wet removal efficiency (GOCART)
1920
! logical :: scav_byColdCloud ! new flag example
2021
real, allocatable :: molwght(:) ! molecular weight !NOT UNIVERSAL ONLY FOR GASES,
2122
real, allocatable :: fnum(:) ! number of particles per kg mass
22-
real, allocatable :: fwet_ice(:) ! large scale wet removal scaling factor for ice
23-
real, allocatable :: fwet_snow(:) ! large scale wet removal scaling factor for snow
24-
real, allocatable :: fwet_rain(:) ! large scale wet removal scaling factor for rain
23+
real, allocatable :: fwet_ice(:) ! large scale wet removal scaling factor for ice (UFS)
24+
real, allocatable :: fwet_snow(:) ! large scale wet removal scaling factor for snow (UFS)
25+
real, allocatable :: fwet_rain(:) ! large scale wet removal scaling factor for rain (UFS)
2526
real :: washout_tuning ! tuning factor for washout process (1 by default)
2627
real :: wet_radius_thr ! wet radius threshold [um]
2728
integer :: rhFlag
@@ -67,7 +68,7 @@ subroutine load_from_config(self, cfg, universal_cfg, rc)
6768

6869
! Parse config file into private internal state
6970
! ----------------------------------------------
70-
allocate(self%radius(nbins), self%rhop(nbins), self%fscav(nbins), self%molwght(nbins), &
71+
allocate(self%radius(nbins), self%rhop(nbins), self%fscav(nbins), self%fwet(nbins), self%molwght(nbins), &
7172
self%fnum(nbins), self%fwet_ice(nbins), self%fwet_snow(nbins), self%fwet_rain(nbins), &
7273
self%wavelengths_profile(n_wavelengths_profile), &
7374
self%wavelengths_vertint(n_wavelengths_vertint), &
@@ -76,6 +77,7 @@ subroutine load_from_config(self, cfg, universal_cfg, rc)
7677
call ESMF_ConfigGetAttribute (cfg, self%radius, label='particle_radius_microns:', __RC__)
7778
call ESMF_ConfigGetAttribute (cfg, self%rhop, label='particle_density:', __RC__)
7879
call ESMF_ConfigGetAttribute (cfg, self%fscav, label='fscav:', __RC__)
80+
call ESMF_ConfigGetAttribute (cfg, self%fwet, label='fwet:', default=1.0, __RC__)
7981
call ESMF_ConfigGetAttribute (cfg, self%molwght, label='molecular_weight:', __RC__)
8082
call ESMF_ConfigGetAttribute (cfg, self%fnum, label='fnum:', __RC__)
8183
call ESMF_ConfigGetAttribute (cfg, self%plid, label='pressure_lid_in_hPa:', __RC__)

ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -752,7 +752,6 @@ subroutine Run2 (GC, import, export, clock, RC)
752752

753753
real, allocatable, dimension(:,:) :: drydepositionfrequency, dqa
754754
real, pointer, dimension(:,:,:) :: nisd_vel
755-
real :: fwet
756755
logical :: KIN
757756
real, allocatable, target, dimension(:,:,:) :: fluxoutWT
758757
real, allocatable, dimension(:,:,:,:) :: aerosol
@@ -943,22 +942,20 @@ subroutine Run2 (GC, import, export, clock, RC)
943942
end if
944943
! NH3
945944
KIN = .false.
946-
fwet = 1.
947945
nullify(fluxWT_ptr)
948946
if (associated(NH3WT)) fluxWT_ptr => fluxoutWT
949947
call WetRemovalGOCART2G (self%km, self%klid, self%nbins, self%nbins, 1, self%cdt, 'NH3', &
950-
KIN, MAPL_GRAV, fwet, NH3, ple, t, airdens, &
948+
KIN, MAPL_GRAV, self%fwet(1), NH3, ple, t, airdens, &
951949
pfl_lsan, pfi_lsan, cn_prcp, ncn_prcp, fluxWT_ptr, __RC__)
952950
! Save local copy of HNO3 for first pass through run method regardless
953951
if (associated(NH3WT)) NH3WT = fluxWT_ptr(:,:,1)
954952

955953
! NH4a
956954
KIN = .true.
957-
fwet = 1.
958955
nullify(fluxWT_ptr)
959956
if (associated(NH4WT)) fluxWT_ptr => fluxoutWT
960957
call WetRemovalGOCART2G(self%km, self%klid, self%nbins, self%nbins, 1, self%cdt, 'NH4a', &
961-
KIN, MAPL_GRAV, fwet, NH4a, ple, t, airdens, &
958+
KIN, MAPL_GRAV, self%fwet(2), NH4a, ple, t, airdens, &
962959
pfl_lsan, pfi_lsan, cn_prcp, ncn_prcp, fluxWT_ptr, __RC__)
963960
if (associated(NH4WT)) NH4WT = fluxWT_ptr(:,:,1)
964961

@@ -967,21 +964,18 @@ subroutine Run2 (GC, import, export, clock, RC)
967964
end if
968965

969966
KIN = .true.
970-
fwet = 1.
971967
call WetRemovalGOCART2G(self%km, self%klid, self%nbins, self%nbins, 1, self%cdt, 'nitrate', &
972-
KIN, MAPL_GRAV, fwet, NO3an1, ple, t, airdens, &
968+
KIN, MAPL_GRAV, self%fwet(3), NO3an1, ple, t, airdens, &
973969
pfl_lsan, pfi_lsan, cn_prcp, ncn_prcp, NIWT, __RC__)
974970

975971
KIN = .true.
976-
fwet = 1.
977972
call WetRemovalGOCART2G(self%km, self%klid, self%nbins, self%nbins, 2, self%cdt, 'nitrate', &
978-
KIN, MAPL_GRAV, fwet, NO3an2, ple, t, airdens, &
973+
KIN, MAPL_GRAV, self%fwet(4), NO3an2, ple, t, airdens, &
979974
pfl_lsan, pfi_lsan, cn_prcp, ncn_prcp, NIWT, __RC__)
980975

981976
KIN = .true.
982-
fwet = 0.3
983977
call WetRemovalGOCART2G(self%km, self%klid, self%nbins, self%nbins, 3, self%cdt, 'nitrate', &
984-
KIN, MAPL_GRAV, fwet, NO3an3, ple, t, airdens, &
978+
KIN, MAPL_GRAV, self%fwet(5), NO3an3, ple, t, airdens, &
985979
pfl_lsan, pfi_lsan, cn_prcp, ncn_prcp, NIWT, __RC__)
986980

987981
! Save local copy of HNO3 for first pass through run method regardless

ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_instance_NI.rc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ aerosol_monochromatic_optics_file: ExtData/chemistry/AerosolOptics/v0.0.0/x/opti
1010
# Scavenging efficiency per bin [km-1]
1111
fscav: 0.0 0.4 0.4 0.4 0.4
1212

13+
#Large scale rainout efficiency per bin for gocart
14+
fwet: 1.0 1.0 1.0 1.0 0.3
15+
1316
# Dry particle radius [um], used for settling
1417
particle_radius_microns: 0.0 0.2695 0.2695 2.1 7.57
1518

0 commit comments

Comments
 (0)