Skip to content

Commit 27ef01b

Browse files
authored
Merge branch 'develop' into feature/update-ci-reusable-gocart
2 parents ea55fb4 + 963364e commit 27ef01b

22 files changed

+112
-62
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1111

1212
### Changed
1313

14+
- Check userRC in ESMF_GridCompRun in GOCART2G gridcomp
1415
- The pressure lid change associated with the introduction of run0 to set 0 above the lid
1516
- Fwet value in dust modified from 0.8 to 1.0
1617
- Dust and Sea salt Emission scale factors updated for L181
@@ -25,8 +26,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2526
- ESMA_cmake v3.68.0
2627
- GMAO_Shared v2.1.4
2728
- MAPL v2.63.0
29+
- fwet removed from children GridCompMod and placed in respective instance RC files
30+
- Updated settling routine and calls to allow settling velocity diagnostics in output field
2831

2932
### Fixed
33+
- In DU2G_GridCompMod.F90 remove unnecessary "if(associated())" check for DU_SRC
34+
to future proof for application of new MAPL filtering
3035

3136
- Units error in sulfate surface area density calculation in Process Library corrected
3237
- Removed erroneous/extraneous friendly attributes to internal state for DU and NI

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ if (UFS_GOCART)
5757
message ("Force 32-bit build for GOCART")
5858
if (CMAKE_Fortran_COMPILER_ID MATCHES "Intel")
5959
string (REPLACE "-real-size 64" "" CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS}")
60+
set(CMAKE_Fortran_FLAGS_DEBUG "${CMAKE_Fortran_FLAGS_DEBUG} -check -check noarg_temp_created -ftrapuv")
6061
elseif (CMAKE_Fortran_COMPILER_ID MATCHES "GNU")
6162
string (REPLACE "-fdefault-real-8" "" CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS}")
6263
endif()

ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridCompMod.F90

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -988,7 +988,7 @@ subroutine Run2 (GC, import, export, clock, RC)
988988

989989
integer :: n
990990
real, allocatable, dimension(:,:) :: drydepositionfrequency, dqa
991-
real :: fwet
991+
real, pointer, dimension(:,:,:) :: casd_vel
992992
real, dimension(3) :: rainout_eff
993993
logical :: KIN
994994
real, allocatable, dimension(:,:,:) :: pSOA_VOC
@@ -1097,13 +1097,15 @@ subroutine Run2 (GC, import, export, clock, RC)
10971097
end select
10981098

10991099
do n = 1, self%nbins
1100-
call MAPL_VarSpecGet(InternalSpec(n), SHORT_NAME=short_name, __RC__)
1101-
call MAPL_GetPointer(internal, NAME=short_name, ptr=int_ptr, __RC__)
1102-
nullify(flux_ptr)
1103-
flux_ptr => SD(:,:,n)
1104-
call Chem_SettlingSimple (self%km, self%klid, self%diag_Mie, n, self%cdt, MAPL_GRAV, &
1100+
call MAPL_VarSpecGet(InternalSpec(n), SHORT_NAME=short_name, __RC__)
1101+
call MAPL_GetPointer(internal, NAME=short_name, ptr=int_ptr, __RC__)
1102+
nullify(flux_ptr)
1103+
flux_ptr => SD(:,:,n)
1104+
nullify(casd_vel)
1105+
if (associated(SD_V)) casd_vel => SD_V(:,:,:,n)
1106+
call Chem_SettlingSimple (self%km, self%klid, self%diag_Mie, n, self%cdt, MAPL_GRAV, &
11051107
int_ptr, t, airdens, &
1106-
rh2, zle, delp, flux_ptr, settling_scheme=settling_opt, __RC__)
1108+
rh2, zle, delp, flux_ptr, casd_vel, settling_scheme=settling_opt, __RC__)
11071109
end do
11081110

11091111

@@ -1138,9 +1140,8 @@ subroutine Run2 (GC, import, export, clock, RC)
11381140
if (associated(WT)) WT(:,:,1)=0.0
11391141

11401142
! Hydrophilic mode (second tracer) is removed
1141-
fwet = 1.
11421143
call WetRemovalGOCART2G (self%km, self%klid, self%nbins, self%nbins, 2, self%cdt, GCsuffix, &
1143-
KIN, MAPL_GRAV, fwet, philic, ple, t, airdens, &
1144+
KIN, MAPL_GRAV, self%fwet(2), philic, ple, t, airdens, &
11441145
pfl_lsan, pfi_lsan, cn_prcp, ncn_prcp, WT, __RC__)
11451146
case ('ufs')
11461147
! Both hydrophobic and hydrophilic modes can be removed

ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_StateSpecs.rc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ category: EXPORT
7676
#----------------------------------------------------------------------------------------
7777
*MASS | kg kg-1 | xyz | C | | * Aerosol Mass Mixing Ratio
7878
*CONC | kg m-3 | xyz | C | | * Aerosol Mass Concentration
79+
*SD_V | m s-1 | xyz | C | self%nbins | * Aerosol Settling Velocity (Bin %d)
7980
*EXTCOEF | m-1 | xyz | C | size(self%wavelengths_profile) | * Aerosol Extinction Coefficient
8081
*EXTCOEFRH20 | m-1 | xyz | C | size(self%wavelengths_profile) | * Aerosol Extinction Coefficient - Fixed RH=20%
8182
*EXTCOEFRH80 | m-1 | xyz | C | size(self%wavelengths_profile) | * Aerosol Extinction Coefficient - Fixed RH=80%

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: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,6 @@ subroutine SetServices (GC, RC)
175175
if (MAPL_AM_I_ROOT()) then
176176
write (*,*) trim(Iam)//": Dust emission scheme is "//trim(self%emission_scheme)
177177
end if
178-
179178
! Point Sources
180179
call ESMF_ConfigGetAttribute (cfg, self%point_emissions_srcfilen, &
181180
label='point_emissions_srcfilen:', default='/dev/null', __RC__)
@@ -814,9 +813,8 @@ subroutine Run1 (GC, import, export, clock, RC)
814813

815814
! Set du_src to 0 where undefined
816815
! --------------------------------
817-
if (associated(du_src)) then
818-
where (1.01*du_src > MAPL_UNDEF) du_src = 0.
819-
endif
816+
where (1.01*du_src > MAPL_UNDEF) du_src = 0.
817+
820818
! Get dimensions
821819
! ---------------
822820
import_shape = shape(wet1)
@@ -978,7 +976,7 @@ subroutine Run2 (GC, import, export, clock, RC)
978976

979977
integer :: n
980978
real, allocatable, dimension(:,:) :: drydepositionfrequency, dqa
981-
real :: fwet
979+
real, pointer, dimension(:,:,:) :: dusd_vel
982980
logical :: KIN
983981

984982
integer :: i1, j1, i2, j2, km
@@ -1039,9 +1037,11 @@ subroutine Run2 (GC, import, export, clock, RC)
10391037
do n = 1, self%nbins
10401038
nullify(flux_ptr)
10411039
if (associated(DUSD)) flux_ptr => DUSD(:,:,n)
1040+
nullify(dusd_vel)
1041+
if (associated(DUSD_V)) dusd_vel => DUSD_V(:,:,:,n)
10421042
call Chem_SettlingSimple (self%km, self%klid, self%diag_Mie, n, self%cdt, MAPL_GRAV, &
10431043
DU(:,:,:,n), t, airdens, &
1044-
rh2, zle, delp, flux_ptr, correctionMaring=self%maringFlag, &
1044+
rh2, zle, delp, flux_ptr, dusd_vel, correctionMaring=self%maringFlag, &
10451045
settling_scheme=settling_opt, __RC__)
10461046
end do
10471047

@@ -1070,9 +1070,8 @@ subroutine Run2 (GC, import, export, clock, RC)
10701070
select case (self%wet_removal_scheme)
10711071
case ('gocart')
10721072
do n = 1, self%nbins
1073-
fwet = 1.0
10741073
call WetRemovalGOCART2G(self%km, self%klid, self%nbins, self%nbins, n, self%cdt, 'dust', &
1075-
KIN, MAPL_GRAV, fwet, DU(:,:,:,n), ple, t, airdens, &
1074+
KIN, MAPL_GRAV, self%fwet(n), DU(:,:,:,n), ple, t, airdens, &
10761075
pfl_lsan, pfi_lsan, cn_prcp, ncn_prcp, DUWT, __RC__)
10771076
end do
10781077
case ('ufs')

ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_StateSpecs.rc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ category: EXPORT
6262
DUMASS | kg kg-1 | xyz | C | | Dust Mass Mixing Ratio
6363
DUMASS25 | kg kg-1 | xyz | C | | Dust Mass Mixing Ratio
6464
DUCONC | kg m-3 | xyz | C | | Dust Mass Concentration
65+
DUSD_V | m s-1 | xyz | C | self%nbins | Dust Settling Velocity (Bin %d)
6566
DUEXTCOEF | m-1 | xyz | C | size(self%wavelengths_profile) | Dust Extinction Coefficient
6667
DUEXTCOEFRH20 | m-1 | xyz | C | size(self%wavelengths_profile) | Dust Extinction Coefficient - Fixed RH=20%
6768
DUEXTCOEFRH80 | m-1 | xyz | C | size(self%wavelengths_profile) | Dust Extinction Coefficient - Fixed RH=80%

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'

0 commit comments

Comments
 (0)