Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
039f8be
Modified OX relaxation in the troposphere for HWT SFE 2024
wmputman Apr 25, 2024
e101fd9
Merge remote-tracking branch 'origin/bugfix/acollow/CEDSupdateforache…
sdrabenh Aug 2, 2024
d3df863
Merge tag 'v1.14.0' into feature/sdrabenh/gcm_v12
sdrabenh Aug 14, 2024
307fc25
Merge remote-tracking branch 'origin/feature/sdrabenh/revised_ceds_pa…
sdrabenh Oct 11, 2024
127fc92
Fixed the handling of RUN_DT alarm
atrayano Dec 9, 2024
c574e6b
patches from Atanas for ACHEM and HEMCO DTs
wmputman Dec 11, 2024
6b9f388
hand-merge feature/wmputman/LM_v12rc3_WMP into feature/sdrabenh/gcm_v12
sdrabenh Dec 11, 2024
0cc2bfa
Resolve duplicated lines in bad auto merge
sdrabenh Dec 12, 2024
893f36e
adjusted the O3 dissipation function near model top to avoid extreme …
wmputman Dec 19, 2024
1a71fc4
cleaning up radiative species near model top
wmputman Dec 20, 2024
12e0cc6
removing pchem ramping on radiative species near top
wmputman Dec 21, 2024
b0f1475
put O3 diurnal function back to original since RRTMGP has no issues w…
wmputman Dec 23, 2024
a7be1ba
Merge tag 'v1.15.0' into feature/sdrabenh/gcm_v12
sdrabenh Feb 7, 2025
638f24b
updated diffusion in FV3, chemistry handling of plid, 1M aerosol acti…
wmputman Mar 25, 2025
c10faff
Merge develop into v12 for chem split
mathomp4 Apr 7, 2025
c129c38
Merge pull request #297 from GEOS-ESM/feature/split-chem-v12
sdrabenh Apr 14, 2025
6bba2f4
Move from f2py2 to f2py3
mathomp4 Sep 17, 2025
accc795
Merge branch 'develop' into feature/sdrabenh/gcm_v12
mathomp4 Jan 7, 2026
be76d2a
Fix up CI
mathomp4 Jan 16, 2026
3b2b9ea
Add fail-fast false
mathomp4 Jan 16, 2026
7c79786
Add fail-fast false in right place
mathomp4 Jan 16, 2026
ae9b1d9
Merge pull request #307 from GEOS-ESM/feature/v12-merge-from-downstre…
sdrabenh Jan 16, 2026
6b105a1
Merge tag 'v1.16.1' into feature/sdrabenh/gcm_v12
sdrabenh Jan 16, 2026
b152e48
radiation protections for aerosol optics and O3 settings from PCHEM
wmputman Mar 2, 2026
f04d69d
returning OX_PCRIT to tighly constrain OX in the troposphere
wmputman Mar 3, 2026
a182fee
Merge remote-tracking branch 'origin/feature/wmputman/LM_v12rc25' int…
sdrabenh Mar 13, 2026
eccbf5f
Merge tag 'v1.16.2' into feature/sdrabenh/gcm_v11_into_v12
sdrabenh May 22, 2026
ef07778
Merge pull request #318 from GEOS-ESM/feature/sdrabenh/gcm_v11_into_v12
sdrabenh May 26, 2026
25fad99
Fix CI
mathomp4 May 27, 2026
113bf57
update changelog
mathomp4 May 27, 2026
ce09f11
Merge pull request #319 from GEOS-ESM/feature/sdrabenh/gcm_v12
mathomp4 May 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
version: 2.1

# Anchors in case we need to override the defaults from the orb
#baselibs_version: &baselibs_version v7.27.0
#bcs_version: &bcs_version v11.6.0
#baselibs_version: &baselibs_version v8.24.0
#bcs_version: &bcs_version v12.0.0

orbs:
ci: geos-esm/circleci-tools@4
ci: geos-esm/circleci-tools@5

workflows:
build-test:
Expand All @@ -21,7 +21,10 @@ workflows:
#baselibs_version: *baselibs_version
repo: GEOSgcm
checkout_fixture: true
mepodevelop: true
# V12 code uses a special branch for now.
fixture_branch: feature/sdrabenh/gcm_v12
# We comment out this as it will "undo" the fixture_branch
#mepodevelop: true
persist_workspace: true # Needs to be true to run fv3/gcm experiment, costs extra

# Run AMIP GCM (1 hour, no ExtData)
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,13 @@ jobs:
matrix:
compiler: [ifort, gfortran-14, gfortran-15]
build-type: [Debug]
fail-fast: false
uses: GEOS-ESM/CI-workflows/.github/workflows/geosgcm_build_tests.yml@project/geosgcm
with:
compiler: ${{ matrix.compiler }}
cmake-build-type: ${{ matrix.build-type }}
fixture-repo: GEOS-ESM/GEOSgcm
fixture-ref: feature/sdrabenh/gcm_v12

spack_build:
uses: GEOS-ESM/CI-workflows/.github/workflows/spack_gcc_build.yml@project/geosgcm
Expand All @@ -34,4 +36,6 @@ jobs:
BUILDCACHE_TOKEN: ${{ secrets.BUILDCACHE_TOKEN }}
with:
fixture-repo: GEOS-ESM/GEOSgcm
fixture-ref: feature/sdrabenh/gcm_v12
load-fms: true

12 changes: 11 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,21 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]
### Removed
### Changed
### Removed
### Fixed
### Deprecated

## [2.0.0] - 2026-05-28

### Changed

- HEMCO Run1 now checks the `RUN_DT` alarm and skips work when the alarm is not ringing
- Moved `DELP` resource read to before the interpolation loop in PChemGridComp relaxation
- `OX` (ozone) relaxation in PCHEM now uses a strongly-constrained (instantaneous) relaxation
below the tropopause (~150 hPa) and a weak TAU-based relaxation above it, via a new
`OX_PCRIT` resource (default 15000 Pa / 150 hPa)

## [1.16.2] - 2026-01-22

### Added
Expand Down
19 changes: 14 additions & 5 deletions GEOSpchem_GridComp/GEOS_PChemGridComp.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1749,6 +1749,10 @@ subroutine UPDATE(NN,NAME,XX)

PROD1 = PCHEM_STATE%MNCV(:,:,NN,1)*FAC + PCHEM_STATE%MNCV(:,:,NN,2)*(1.-FAC)

call MAPL_GetResource(MAPL, DELP, LABEL=trim(NAME)//"_DELP:" , DEFAULT=5000. ,RC=STATUS)
VERIFY_(STATUS)
DELP = max(DELP, 1.e-16) ! avoid division by zero

do j=1,jm
do l=1,nlevs
call INTERP_NO_EXTRAP( PROD(:,L), LATS(:,J), Prod1(:,L), PCHEM_STATE%LATS)
Expand All @@ -1758,11 +1762,6 @@ subroutine UPDATE(NN,NAME,XX)
enddo
end do

call MAPL_GetResource(MAPL, DELP, LABEL=trim(NAME)//"_DELP:" , DEFAULT=5000. ,RC=STATUS)
VERIFY_(STATUS)

DELP = max(DELP, 1.e-16) ! avoid division by zero

if(trim(NAME)=="H2O") then
call MAPL_GetResource(MAPL, PCRIT, LABEL=trim(NAME)//"_PCRIT:", DEFAULT=20000. ,RC=STATUS)
VERIFY_(STATUS)
Expand All @@ -1775,10 +1774,20 @@ subroutine UPDATE(NN,NAME,XX)
end where
WRK = min(WRK, PCRIT)
do L=1,LM
! only contrained above the troposphere
LOSS_INT(:,:,L) = (1./TAU) * max( min( (WRK-PL(:,:,L))/DELP, 1.0), 0.0)
end do
deallocate(WRK)
elseif(trim(NAME)=="OX") then
call MAPL_GetResource(MAPL, PCRIT, LABEL=trim(NAME)//"_PCRIT:", DEFAULT=15000. ,RC=STATUS)
VERIFY_(STATUS)
do L=1,LM
! strongly constrained (TAU=DT) below the 150hPa
LOSS_INT(:,:,L) = (1./TAU) * ( max( min( (PCRIT-PL(:,:,L))/DELP, 1.0), 0.0)) + &
(1./DT ) * (1.0 - max( min( (PCRIT-PL(:,:,L))/DELP, 1.0), 0.0))
end do
else
! relaxed by TAU everywhere
call MAPL_GetResource(MAPL, PCRIT, LABEL=trim(NAME)//"_PCRIT:", DEFAULT=1.e+16 ,RC=STATUS)
VERIFY_(STATUS)
LOSS_INT = (1./TAU) * max( min( (PCRIT -PL)/DELP, 1.0), 0.0)
Expand Down
13 changes: 13 additions & 0 deletions HEMCO_GridComp/HEMCO_GridCompMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -592,9 +592,22 @@ SUBROUTINE Run1 ( GC, Import, Export, Clock, RC )
! LOCAL VARIABLES:
!
TYPE(Instance), POINTER :: ThisInst => NULL()
type(MAPL_MetaComp), pointer :: MAPL
type(ESMF_Alarm) :: ALARM
logical :: timeToDoWork

__Iam__('Run1')

call MAPL_GetObjectFromGC ( GC, MAPL, _RC)

! Get RUN_DT alarn from MAPL
! --------------------------
call MAPL_Get(MAPL, RUNALARM=ALARM, _RC)
timeToDoWork = ESMF_AlarmIsRinging (ALARM, _RC)
if (.not. timeToDoWork) then
_RETURN(ESMF_SUCCESS)
end if

!=======================================================================
! Run1 begins here!
!=======================================================================
Expand Down
Loading