Skip to content

Commit b9f570e

Browse files
committed
GEOS-Chem (science codebase) 14.7.1 release
This is the official release commit of GEOS-Chem 14.7.1 Updated version numbers in: - CHANGELOG.md Please see CHANGELOG.md for updates added to this version. Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
2 parents df4592e + b1f6794 commit b9f570e

File tree

89 files changed

+5848
-2390
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

89 files changed

+5848
-2390
lines changed

.github/workflows/stale.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
pull-requests: write
1919

2020
steps:
21-
- uses: actions/stale@v5
21+
- uses: actions/stale@v10
2222
with:
2323
repo-token: ${{ secrets.GITHUB_TOKEN }}
2424
stale-issue-label: 'stale'

AUTHORS.txt

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
List of Developers for GEOS-Chem, HEMCO, and Related Software
2-
(23 May 2024)
2+
(08 Apr 2026)
33
===============================================================================
44

55
ADAMS, Peter
6+
AKINJOLE, Samuel
67
ALEXANDER, Becky
78
ALVARADO, Matthew
89
AMOS, Helen
@@ -15,6 +16,7 @@ BARKLEY, Michael
1516
BARRET, Steven
1617
BARRET, Brice
1718
BATES, Kelvin
19+
BERTOLACCI, Michael
1820
BEY, Isabelle
1921
BINDLE, Liam
2022
BOERSMA, Folkert
@@ -43,6 +45,7 @@ CAROUGE, Claire
4345
CARTER, Therese (Tess)
4446
CAZORLA, Maria
4547
CHALIYAKUNNEL, Sreelekha
48+
CHAN, Yuk Chun
4649
CHAN MILLER, Christopher
4750
CHEN, Han
4851
CHEN, Jing
@@ -52,7 +55,9 @@ CHEN, Qianjie
5255
CHEN, Xin
5356
CHEN, Yang
5457
CHOI, Yunsoo
58+
CHEN, Zichong
5559
CHRISTIAN, Kenneth
60+
CLARIZIO, Tessa
5661
CLUNE, Tom
5762
COOPER, Matt
5863
CORBITT, Bess
@@ -98,13 +103,16 @@ FU, Joshua
98103
GANTT, Brett
99104
GE, Cui
100105
GEDDES, Jeffrey
106+
GEYMAN, Benjamin
101107
GIANG, Amanda
102108
GIANNAKOPOULOS, Christos
103109
GOUNIA, Harriet
104110
GRAEF, Edward
105111
GREENSLADE, Jesse
112+
GRIFFITHS, Alan
106113
GU, Xiaoguang
107114
HAMMER, Melanie
115+
HANCOCK, Sarah
108116
HASKINS, Jessica
109117
HE, Cenlin
110118
HE, Jourdan
@@ -114,8 +122,10 @@ HENZE, Daven
114122
HO, Wai-Lo
115123
HORDIICHUK, Myroslav
116124
HOLMES, Christopher
125+
HORNER, Rebekah (Bex)
117126
HOROWITZ, Hannah
118127
HOSSENI, Zahra
128+
HOUGH, Ian
119129
HU, Lu
120130
HUANG, Jianping
121131
HUANG, Jiayue
@@ -157,6 +167,7 @@ LE SAGER, Philippe
157167
LEE, Chulkyu
158168
LEE, Colin
159169
LEE, Meemong
170+
LEE, Tabitha
160171
LEHMANN, Ralph
161172
LEIBENSPERGER, Eric
162173
LERICHE, Maud
@@ -182,11 +193,13 @@ LIU, Tina
182193
LIU, Yang
183194
LIU, Ying
184195
LOGAN, Jennifer
196+
LOMAN, Matthew
185197
LONG, Mike
186198
LU, Xiao
187199
LUNDGREN, Lizzie
188200
LUO, Gan
189201
MAASAKKERS, J. D. (Bram)
202+
MACFARLANE, Stephen
190203
MACINTYRE, Helen
191204
MACKENZIE, Dave
192205
MAHIEU, Emmanuel
@@ -196,6 +209,7 @@ MARKS, Marguerite
196209
MARKUS, Arjen
197210
MARTIN, Randall
198211
MARVIN, Maggie
212+
MAYHEW, Alfred
199213
MCDUFFIE, Erin
200214
MCGUFFIN, Dana
201215
MCLINDEN, Chris
@@ -217,8 +231,10 @@ MURPHY, Killian
217231
MURRAY, Lee
218232
NAM, Jun
219233
NASSAR, Ray
234+
NASSAU, Racine
220235
NATHAN, Brian
221236
NENES, Athanasios
237+
NESSER, Hannah
222238
NEVISON, Cynthia
223239
NIELSEN, Eric
224240
NOTHOLT, Justus
@@ -269,6 +285,7 @@ SHEN, Lu
269285
SHERWEN, Tomas
270286
SHUTTER, Joshua
271287
SILVA, Sam
288+
SINGH, Inderjeet
272289
SMITH-DOWNEY, Nicole
273290
SOERENSEN, Anne Laerke
274291
SOFEN, Eric
@@ -281,12 +298,15 @@ STERN, Rebecca
281298
STEVENS, Robin
282299
STREETS, David
283300
STRODE, Sarah
301+
STURM, Obin
284302
SU, Flora
285303
SULPRIZIO, Melissa
304+
SUN, Jordan
286305
SUN, Minmin
287306
SUNDERLAND, Elsie
288307
SUNTHARALINGAM, Parvada
289308
SURL, Luke
309+
SUSELJ, Kay
290310
SUTHERLAND, Bethany
291311
SUTO, Kimito
292312
SZELAG, Monika
@@ -317,11 +337,15 @@ VITT, Francis
317337
VOHRA, Karn
318338
WAGSTROM, Kristina
319339
WALKER, Thomas
340+
WALLWORK, Joe
341+
WANG, Daisy
320342
WANG, James
321343
WANG, Jun
322344
WANG, Qiaoqiao
323-
WANG, Xuan
324345
WANG, Xiaoli
346+
WANG, Xiaolin
347+
WANG, Xuan
348+
WANG, Yi
325349
WANG, Yuhang
326350
WANG, Yuting
327351
WANG, Yuxuan
@@ -340,6 +364,7 @@ WU, Shiliang
340364
XIAO, Yaping
341365
XU, Junwei
342366
YAN, Yingying
367+
YANG, Laura
343368
YANNETTI, Matt
344369
YANTOSCA, Bob
345370
YATTEAU, Jack
@@ -362,6 +387,7 @@ ZHANG, Li
362387
ZHANG, Lin
363388
ZHANG, Qiang
364389
ZHANG, Yanxu
390+
ZHANG, Yuanjian
365391
ZHU, Haihui
366392
ZHU, Lei
367393
ZHU, Liye

CHANGELOG.md

100644100755
Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,68 @@ This file documents all notable changes to the GEOS-Chem repository starting in
44

55
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).
66

7+
## [14.7.1] - 2026-04-08
8+
### Added
9+
- Added `HTAP_SHIP` toggle in `HEMCO_Config.rc.carbon` templates for GC-Classic and GCHP
10+
- Added routines `Lookup_Grid` and `Register_State_Grid` to `Headers/state_grid_mod.F90`
11+
- Added `State_Grid` as an argument to History routines `History_Init`, `History_AddItemToCollection`,`History_NetCdf_Define`, `History_Write`, and `IndexVarList_Create`
12+
- Added routine `History_InitCoordVars` to `history_mod.F90`
13+
- Added cloud fraction and cloud top pressure to the SatDiagn diagnostic collection
14+
- Added new field `Input_Opt%CloudJ_Verbose`
15+
- Added `cloud-j:verbose` YAML tag (with default setting `false`) to `geoschem_config.yml` templates for GC-Classic, GCHP, GEOS, CESM, and WRF
16+
- Added routine `Print_Species_Global_Mass_From_VVDry` in `GeosUtil/print_mod.F90`
17+
- Added build setting `MPI_LOAD_BALANCE` to enable MPI load balancing in chemistry to speed up GCHP runs
18+
- Added carbon Jacobian tracer simulation using KPP as a build-time option for use with the Integrated Methane Inversion
19+
- Added script within new folder KPP/carbon/util to expand carbon.eqn to include any number of CH4 Jacobian tracers
20+
- Added error traps to prevent integration tests and parallel tests from running if a conda environment with netCDF is active
21+
- Added GCHP run option in setCommonRunSettings.sh to use ExtData2G
22+
- Added ExtData2G yaml configuration file for GCHP transport tracer simulation
23+
- Added `${RUNDIR_READ_RESTART_AS_REAL8}` to GEOS-Chem Classic `geoschem_config.yml` template files
24+
- Added error trap to routine `Get_GC_Restart` to halt simulations that use `read_restart_as_real8: true` with a reduced vertical grid
25+
- Added `State_Met%MaxChemLev` and `State_Met%MaxStratLev` integer fields
26+
- Added `Init_MaxChemLev` routine in `GeosUtil/pressure_mod.F90`, called from routine `Init_Pressure`
27+
- Added `State_Met` argument to routines `Init_Photolysis`, `Set_Clim_Profiles`, `GC_Init_Extra`, `Init_Pressure`, `Init_Mercury`, `Init_Sulfate`
28+
29+
### Changed
30+
- Update termite CH4 emissions to the CAMS-GLOB-TERM_v1.1 product
31+
- Updated routine `SAFETY` (in `GeosCore/wetscav_mod.F90`) to reset small or negative values to zero
32+
- Moved coordinate variables for GC-Classic History netCDF files from `GeosUtil/grid_registry_mod.F90` to the `State_Grid` object
33+
- Changed several `State_Grid` fields from `fp` to `f8` precision. (In practice both are `REAL*8` but this makes it more explicit.)
34+
- Moved the population of coordinate variables for History netCDF output from `grid_registry_mod.F90` to `history_mod.F90` (in routine `History_InitCoordVars`)
35+
- Updated `run/GCHP/setCommonRunSettings.template` to disable the HEMCO PARANOx extension for C360 or C720 grids
36+
- Updated `createRunDir.sh` scripts for GC-Classic and GCHP to turn on offline bulk seasalt emissions and bulk dust emissions in TOMAS simulations
37+
- Updated `Interfaces/GCClassic/main.F90` to call`Print_Species_Global_Mass_from_VVDry` (instead of`Print_Species_Global_Mass`) in order to avoid numerical differences when verbose printout is on
38+
- Renamed `Carbon` collection to `ProdLoss` collection in GCClassic and GCHP `HISTORY.rc.carbon` templates
39+
- Updated GitHub Action `stale@v5` to `stale@v10` in order to avoid deprecation warnings
40+
- Moved logic to determine whether we read the restart file as `REAL*8` from `run/shared/setupConfigFiles.sh` to `run/GCClassic/createRunDir.sh`
41+
- Simplified the logic where `isGMAO` and `State_Grid%NativeNZ` are computed in `GeosUtil/gc_grid_mod.F90`
42+
- Changed definition of `State_Grid%MaxChemLev` and `State_Grid%MaxStratLev` to be the 1 hPa level
43+
- Moved `MaxChemLev` and `MaxStratLev` fields from `State_Grid` to `State_Met`
44+
- Removed `State_Grid%MaxTropLev` field
45+
46+
### Fixed
47+
- Fixed incorrect unit conversion from v/v -> molec/cm3 in `planeflight_mod.F90`
48+
- Fixed typo in the call to `Finalize` for the `State_Diag%ProdOCPIfromOCPO` diagnostic array
49+
- Fixed a syntax error in mass flux scaling calculation
50+
- Fixed an I/O error that caused an infinite loop reading when extra newlines are present at the end of `HISTORY.rc` (GC-Classic only)
51+
- Fixed timestep mismatch between GCHP C180 and GCC 0.5x0.625
52+
- Fixed incorrect dust species names in `run/GCClassic/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.fullchem.onlineE`
53+
- Fixed incorrect extension number for `InvDustL23M` entries in `run/GCHP/HEMCO_Diagn.rc.templates/HEMCO_Diagn.rc.fullchem`
54+
55+
### Removed
56+
- Removed `ARCTAS_SHIP`, `CORBETT_SHIP`, `ICOADS_SHIP` from `HEMCO_Config.rc` template files
57+
- Retired Fung termite and soil absorption emission options from carbon simulation
58+
- Removed `GeosUtil/grid_registry_mod.F90`.
59+
- Removed `OHconcAfterChem` from GCClassic and GCHP `HISTORY.rc.carbon` templates, as OH is fixed during the simulation
60+
- Removed `State_Grid` argument from `Set_Prof_FJX` routine
61+
762
## [14.7.0] - 2026-02-05
863
### Added
964
- Added entries for FINNv25 biomass burning emissions to template HEMCO configuration files
1065
- Added comments to `HEMCO_Diagn.rc` template files instructing users on which ExtNr/Cat/Hier to use for online vs. offline biomass burning emissions
1166
- Added subroutine `Print_Species_Global_Mass` to print_mod for use by GC-Classic
1267
- Added log print of species global mass at start of each timestep if verbose is true
1368
- Added print of global mass computed from restart file values if delta pressure present in restart file
14-
- Added the capability for GCHP simulations to use CH4 restarts for Jacobian Tracers
1569
- Added operational run scripts for WashU Compute2
1670
- Added the option for LPJ_MERRA2 wetland CH4 emissions in CH4 and carbon simulations
1771
- Added GC-Classic config file option to read restart file as `REAL*8` via GEOS-Chem rather than HEMCO

GeosCore/aero_drydep.F90

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -305,11 +305,11 @@ SUBROUTINE AERO_DRYDEP( Input_Opt, State_Chm, State_Diag, &
305305
ENDDO
306306

307307
! We know the boundary condition at the model top
308-
L = State_Grid%MaxChemLev
308+
L = State_Met%MaxChemLev
309309
DELZ = BXHEIGHT(I,J,L) ![=] meter
310310
TC(L) = TC(L) / ( 1.d0 + DTCHEM * VTS(L) / DELZ )
311311

312-
DO L = State_Grid%MaxChemLev-1, 1, -1
312+
DO L = State_Met%MaxChemLev-1, 1, -1
313313
DELZ = BXHEIGHT(I,J,L)
314314
DELZ1 = BXHEIGHT(I,J,L+1)
315315
TC(L) = 1.d0 / &
@@ -364,7 +364,7 @@ SUBROUTINE AERO_DRYDEP( Input_Opt, State_Chm, State_Diag, &
364364
!$OMP SCHEDULE( DYNAMIC )
365365
DO I = 1, State_Grid%NX
366366
DO J = 1, State_Grid%NY
367-
DO L = 1, State_Grid%MaxChemLev
367+
DO L = 1, State_Met%MaxChemLev
368368

369369
! Initialize for safety's sake
370370
AREA_CM2 = 0d0

GeosCore/aerosol_mod.F90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1894,7 +1894,7 @@ SUBROUTINE RDAER( Input_Opt, State_Chm, State_Diag, State_Grid, State_Met, &
18941894
! Hygroscopic growth of Sea Salt (accum) [unitless]
18951895
! Hygroscopic growth of Sea Salt (coarse) [unitless]
18961896
IF ( State_Diag%Archive_AerHygGrowth .AND. &
1897-
L <= State_Grid%MaxChemLev .AND. &
1897+
L <= State_Met%MaxChemLev .AND. &
18981898
ODSWITCH.EQ.1 ) THEN
18991899
S = State_Diag%Map_AerHygGrowth%id2slot(NA)
19001900
IF ( S > 0 ) THEN

GeosCore/calc_met_mod.F90

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -579,10 +579,10 @@ SUBROUTINE AIRQNT( Input_Opt, State_Chm, State_Grid, State_Met, &
579579

580580
! Is this grid box within the stratosphere (but not mesosphere)?
581581
State_Met%InStratosphere(I,J,L) = &
582-
( L <= State_Grid%MaxStratLev .and. State_Met%InStratMeso(I,J,L) )
582+
( L <= State_Met%MaxStratLev .and. State_Met%InStratMeso(I,J,L) )
583583

584584
! Is grid box (I,J,L) within the chemistry grid?
585-
State_Met%InChemGrid(I,J,L) = ( L <= State_Grid%MaxChemLev )
585+
State_Met%InChemGrid(I,J,L) = ( L <= State_Met%MaxChemLev )
586586

587587
ENDDO
588588
ENDDO

GeosCore/carbon_gases_mod.F90

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -491,12 +491,6 @@ SUBROUTINE Chem_Carbon_Gases( Input_Opt, State_Met, State_Chm, &
491491
I = I, &
492492
J = J, &
493493
L = L, &
494-
id_CH4 = id_CH4, &
495-
id_CO = id_CO, &
496-
id_CO2 = id_CO2, &
497-
xnumol_CH4 = xnumol_CH4, &
498-
xnumol_CO = xnumol_CO, &
499-
xnumol_CO2 = xnumol_CO2, &
500494
State_Met = State_Met, &
501495
State_Chm = State_Chm )
502496

@@ -569,12 +563,6 @@ SUBROUTINE Chem_Carbon_Gases( Input_Opt, State_Met, State_Chm, &
569563
I = I, &
570564
J = J, &
571565
L = L, &
572-
id_CH4 = id_CH4, &
573-
id_CO = id_CO, &
574-
id_CO2 = id_CO2, &
575-
xnumol_CO = xnumol_CO, &
576-
xnumol_CH4 = xnumol_CH4, &
577-
xnumol_CO2 = xnumol_CO2, &
578566
State_Chm = State_Chm, &
579567
State_Met = State_Met )
580568

@@ -870,6 +858,7 @@ SUBROUTINE Init_Carbon_Gases( Input_Opt, State_Chm, State_Diag, &
870858
!
871859
! !USES:
872860
!
861+
USE carbon_Funcs, ONLY : carbon_InitCarbonKPPFuncs
873862
USE gckpp_Global, ONLY : SR_MW, HENRY_CR, HENRY_K0
874863
USE ErrCode_Mod
875864
USE Input_Opt_Mod, ONLY : OptInput
@@ -944,6 +933,18 @@ SUBROUTINE Init_Carbon_Gases( Input_Opt, State_Chm, State_Diag, &
944933
IF ( id_OH > 0 ) &
945934
xnumol_OH = AVO / ( State_Chm%SpcData(id_OH )%Info%MW_g * 1.0e-3_fp )
946935

936+
!========================================================================
937+
! Initialize module variables in carbon_Funcs (in KPP)
938+
!========================================================================
939+
IF ( (id_CH4 > 0) .OR. (id_CO > 0) ) THEN
940+
CALL carbon_InitCarbonKPPFuncs( xnumol_CH4, xnumol_CO, xnumol_CO2, RC )
941+
IF ( RC /= GC_SUCCESS ) THEN
942+
errMsg = 'Cannot initialize module variables in carbon_InitCarbonChem'
943+
CALL GC_Error( errMsg, RC, thisLoc )
944+
RETURN
945+
ENDIF
946+
ENDIF
947+
947948
!========================================================================
948949
! Initialize variables for COchemistry
949950
!========================================================================
@@ -972,6 +973,7 @@ SUBROUTINE Cleanup_Carbon_Gases( RC )
972973
! !USES:
973974
!
974975
USE ErrCode_Mod
976+
USE carbon_Funcs, ONLY : carbon_CleanupCarbonKPPFuncs
975977
!
976978
! !OUTPUT PARAMETERS:
977979
!
@@ -990,9 +992,10 @@ SUBROUTINE Cleanup_Carbon_Gases( RC )
990992
IF ( ALLOCATED( sumOfCosSza ) ) THEN
991993
DEALLOCATE( sumOfCosSza, STAT=RC )
992994
CALL GC_CheckVar( 'carbon_gases_mod.F90:sumOfCosSza', 2, RC )
993-
RETURN
994995
ENDIF
995996

997+
CALL carbon_CleanupCarbonKPPFuncs( RC )
998+
996999
END SUBROUTINE Cleanup_Carbon_Gases
9971000
!EOC
9981001
!------------------------------------------------------------------------------

0 commit comments

Comments
 (0)