Skip to content

Commit 9b06a8b

Browse files
authored
Merge pull request #885 from GEOS-ESM/develop
Sync develop into main
2 parents b499f67 + ec2f4dc commit 9b06a8b

File tree

14 files changed

+394
-352
lines changed

14 files changed

+394
-352
lines changed

GEOSagcm_GridComp/GEOSphysics_GridComp/GEOS_PhysicsGridComp.F90

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1046,12 +1046,13 @@ subroutine SetServices ( GC, RC )
10461046
RC=STATUS )
10471047
VERIFY_(STATUS)
10481048

1049-
call MAPL_AddConnectivity ( GC, &
1050-
SHORT_NAME = (/'QV ','QLTOT ','QITOT ','QCTOT ', &
1051-
'WTHV2 ','WQT_DC' /), &
1052-
DST_ID = TURBL, &
1053-
SRC_ID = MOIST, &
1054-
RC=STATUS )
1049+
call MAPL_AddConnectivity ( GC, &
1050+
SHORT_NAME = [character(len=6) :: &
1051+
'QV','QLTOT','QITOT','FCLD', &
1052+
'WTHV2','WQT_DC'], &
1053+
DST_ID = TURBL, &
1054+
SRC_ID = MOIST, &
1055+
RC=STATUS )
10551056
VERIFY_(STATUS)
10561057

10571058
call MAPL_AddConnectivity ( GC, &
@@ -1179,11 +1180,11 @@ subroutine SetServices ( GC, RC )
11791180

11801181
! Imports for GWD
11811182
!----------------
1182-
call MAPL_AddConnectivity ( GC, &
1183-
SHORT_NAME = [character(len=7):: 'Q', 'DTDT_DC', 'DTDT_SC'], &
1184-
DST_ID = GWD, &
1185-
SRC_ID = MOIST, &
1186-
RC=STATUS )
1183+
call MAPL_AddConnectivity ( GC, &
1184+
SHORT_NAME = [character(len=7) :: 'Q', 'DTDT_DC', 'CNV_FRC' ], &
1185+
DST_ID = GWD, &
1186+
SRC_ID = MOIST, &
1187+
RC=STATUS )
11871188
VERIFY_(STATUS)
11881189
call MAPL_AddConnectivity ( GC, &
11891190
SRC_NAME = 'DQIDT_micro', &
@@ -1212,7 +1213,8 @@ subroutine SetServices ( GC, RC )
12121213
'REV_LS ', 'REV_AN ', 'REV_CN ', 'TPREC ', &
12131214
'Q ', 'DQDT ', 'DQRL ', 'DQRC ', &
12141215
'CNV_MFC ', 'CNV_MFD ', 'CNV_CVW ', 'CNV_FRC ', &
1215-
'LFR_GCC ', 'RH2 ', 'CN_PRCP ' /), &
1216+
'LFR_GCC ', 'RH2 ', 'CN_PRCP ', &
1217+
'BYNCY ', 'CAPE ', 'INHB ' /), &
12161218
DST_ID = CHEM, &
12171219
SRC_ID = MOIST, &
12181220
RC=STATUS )

GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSgwd_GridComp/GEOS_GwdGridComp.F90

Lines changed: 83 additions & 175 deletions
Large diffs are not rendered by default.

GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSgwd_GridComp/ncar_gwd/gw_common.F90

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -881,7 +881,7 @@ end subroutine energy_fixer
881881

882882
subroutine energy_momentum_adjust(ncol, pver, band, pint, delp, u, v, dt, c, tau, &
883883
effgw, t, ubm, ubi, xv, yv, utgw, vtgw, ttgw, &
884-
tend_level, tndmax_in)
884+
tend_level, tndmax_in, pint_adj)
885885

886886
integer, intent(in) :: ncol, pver
887887
! Wavelengths.
@@ -913,6 +913,8 @@ subroutine energy_momentum_adjust(ncol, pver, band, pint, delp, u, v, dt, c, tau
913913
real, intent(inout) :: utgw(ncol,pver)
914914
real, intent(inout) :: vtgw(ncol,pver)
915915
real, intent(inout) :: ttgw(ncol,pver)
916+
! Pressure level efficiency adjustment
917+
real, intent(in), optional :: pint_adj(ncol,pver+1)
916918

917919
real :: taucd(ncol,pver+1,4)
918920
real :: um_flux(ncol), vm_flux(ncol)
@@ -938,16 +940,25 @@ subroutine energy_momentum_adjust(ncol, pver, band, pint, delp, u, v, dt, c, tau
938940
!---------------------------------------------------------------------------------------
939941
! Apply efficiency factor and tendency limiter to prevent unrealistically strong forcing
940942
!---------------------------------------------------------------------------------------
943+
! efficiency factor and optional pressure adjustment
944+
do k = ktop, pver
945+
utfac = 1.0
946+
if (present(pint_adj)) utfac = pint_adj(i,k)
947+
utgw(i,k) = utgw(i,k)*effgw(i)*utfac
948+
vtgw(i,k) = vtgw(i,k)*effgw(i)*utfac
949+
ttgw(i,k) = ttgw(i,k)*effgw(i)*utfac
950+
end do
951+
! tendency limiter
941952
uhtmax = 0.0
942-
utfac = 1.0
943953
do k = ktop, pver
944954
uhtmax = max(sqrt(utgw(i,k)**2 + vtgw(i,k)**2), uhtmax)
945955
end do
956+
utfac = 1.0
946957
if (uhtmax > tndmax) utfac = tndmax/uhtmax
947958
do k = ktop, pver
948-
utgw(i,k) = utgw(i,k)*effgw(i)*utfac
949-
vtgw(i,k) = vtgw(i,k)*effgw(i)*utfac
950-
ttgw(i,k) = ttgw(i,k)*effgw(i)*utfac
959+
utgw(i,k) = utgw(i,k)*utfac
960+
vtgw(i,k) = vtgw(i,k)*utfac
961+
ttgw(i,k) = ttgw(i,k)*utfac
951962
end do
952963
end do ! i=1,ncol
953964

0 commit comments

Comments
 (0)