Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Added

## [v2.6.6] - 2026-08-03

### Fixed

- Fixed ifx compilation errors in legacy GOCART GridComps (Ops emissions path):
- Changed `intent(in)` to `intent(inout)` on `w_c` (`Chem_Bundle`) arguments in `Aero`, `CFC`, `CH4`, `CO`, `CO2`, and `Rn` GridComps, as sub-components temporarily modify registry indices
- Additional fixes in `CO_GridCompMod.F90`:
- Initialize `eCO_bioburn_` to `0.0` to prevent use of uninitialized data when `diurnal_bb` is false
- Guard `DEALLOCATE` of `ier` with an `ALLOCATED` check
- Add local `ios` variable in `CO_Emission` to prevent host-association aliasing under optimization

## [v2.6.5] - 2026-05-15

### Fixed
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ endif()
if (GOCART_STANDALONE)
project (
GOCART
VERSION 2.6.5
VERSION 2.6.6
LANGUAGES Fortran CXX C) # Note - CXX is required for ESMF

if ("${PROJECT_SOURCE_DIR}" STREQUAL "${PROJECT_BINARY_DIR}")
Expand Down
3 changes: 1 addition & 2 deletions ESMF/GOCART_GridComp/Aero_GridCompMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -507,7 +507,7 @@ subroutine Aero_GridCompFinalize ( gcThis, w_c, impChem, expChem, &

! !INPUT PARAMETERS:

type(Chem_Bundle), intent(in) :: w_c ! Chemical tracer fields
type(Chem_Bundle), intent(inout) :: w_c ! Chemical tracer fields (inout: sub-components temporarily modify reg indices)
integer, intent(in) :: nymd, nhms ! time
real, intent(in) :: cdt ! chemistry timestep (secs)

Expand Down Expand Up @@ -601,4 +601,3 @@ subroutine Aero_GridCompFinalize ( gcThis, w_c, impChem, expChem, &
end subroutine Aero_GridCompFinalize

end module Aero_GridCompMod

2 changes: 1 addition & 1 deletion ESMF/GOCART_GridComp/CFC_GridComp/CFC_GridCompMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ SUBROUTINE CFC_GridCompInitialize( gcCFC, w_c, impChem, expChem, &

! !INPUT PARAMETERS:

TYPE(Chem_Bundle), intent(in) :: w_c ! Chemical tracer fields
TYPE(Chem_Bundle), intent(inout) :: w_c ! Chemical tracer fields (inout: SingleInstance_ temporarily modifies reg indices)
INTEGER, INTENT(IN) :: nymd, nhms ! time
REAL, INTENT(IN) :: cdt ! chemical timestep (secs)

Expand Down
8 changes: 4 additions & 4 deletions ESMF/GOCART_GridComp/CH4_GridComp/CH4_GridCompMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ SUBROUTINE CH4_GridCompInitialize ( gcCH4, w_c, impChem, expChem, nymd, nhms, cd

! !INPUT PARAMETERS:

TYPE(Chem_Bundle), intent(in) :: w_c ! Chemical tracer fields
TYPE(Chem_Bundle), intent(inout) :: w_c ! Chemical tracer fields (inout: SingleInstance_ temporarily modifies reg indices)
INTEGER, INTENT(IN) :: nymd, nhms ! time
REAL, INTENT(IN) :: cdt ! chemical timestep (secs)

Expand Down Expand Up @@ -310,7 +310,7 @@ SUBROUTINE CH4_GridCompRun ( gcCH4, w_c, impChem, expChem, nymd, nhms, cdt, rc )

! !INPUT PARAMETERS:

TYPE(Chem_Bundle), intent(in) :: w_c ! Chemical tracer fields
TYPE(Chem_Bundle), intent(inout) :: w_c ! Chemical tracer fields (inout: SingleInstance_ temporarily modifies reg indices)
INTEGER, INTENT(IN) :: nymd, nhms ! time
REAL, INTENT(IN) :: cdt ! chemical timestep (secs)

Expand Down Expand Up @@ -366,7 +366,7 @@ SUBROUTINE CH4_GridCompFinalize ( gcCH4, w_c, impChem, expChem, nymd, nhms, cdt,

! !INPUT PARAMETERS:

TYPE(Chem_Bundle), intent(in) :: w_c ! Chemical tracer fields
TYPE(Chem_Bundle), intent(inout) :: w_c ! Chemical tracer fields (inout: SingleInstance_ temporarily modifies reg indices)
INTEGER, INTENT(IN) :: nymd, nhms ! time
REAL, INTENT(IN) :: cdt ! chemical timestep (secs)

Expand Down Expand Up @@ -459,7 +459,7 @@ SUBROUTINE CH4_GridCompInitialize1_ ( gcCH4, w_c, impChem, expChem, nymd, nhms,

! !INPUT PARAMETERS:

TYPE(Chem_Bundle), intent(in) :: w_c ! Chemical tracer fields
TYPE(Chem_Bundle), intent(inout) :: w_c ! Chemical tracer fields (inout: SingleInstance_ temporarily modifies reg indices)
INTEGER, INTENT(IN) :: nymd, nhms ! time
REAL, INTENT(IN) :: cdt ! chemical timestep (secs)

Expand Down
4 changes: 2 additions & 2 deletions ESMF/GOCART_GridComp/CO2_GridComp/CO2_GridCompMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,7 @@ subroutine CO2_GridCompInitialize ( gcCO2, w_c, impChem, expChem, &

! !INPUT PARAMETERS:

type(Chem_Bundle), intent(in) :: w_c ! Chemical tracer fields
type(Chem_Bundle), intent(inout) :: w_c ! Chemical tracer fields (inout: SingleInstance_ temporarily modifies reg indices)
integer, intent(in) :: nymd, nhms ! time
real, intent(in) :: cdt ! chemical timestep (secs)

Expand Down Expand Up @@ -989,7 +989,7 @@ subroutine CO2_GridCompFinalize ( gcCO2, w_c, impChem, expChem, &

! !INPUT PARAMETERS:

type(Chem_Bundle), intent(in) :: w_c ! Chemical tracer fields
type(Chem_Bundle), intent(inout) :: w_c ! Chemical tracer fields (inout: SingleInstance_ temporarily modifies reg indices)
integer, intent(in) :: nymd, nhms ! time
real, intent(in) :: cdt ! chemical timestep (secs)

Expand Down
11 changes: 7 additions & 4 deletions ESMF/GOCART_GridComp/CO_GridComp/CO_GridCompMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ subroutine CO_GridCompInitialize ( gcCO, w_c, impChem, expChem, &

! !INPUT PARAMETERS:

TYPE(Chem_Bundle), intent(in) :: w_c ! Chemical tracer fields
TYPE(Chem_Bundle), intent(inout) :: w_c ! Chemical tracer fields (inout: CO_SingleInstance_ temporarily modifies reg indices)
INTEGER, INTENT(IN) :: nymd, nhms ! time
REAL, INTENT(IN) :: cdt ! chemical timestep (secs)

Expand Down Expand Up @@ -353,7 +353,7 @@ subroutine CO_GridCompRun ( gcCO, w_c, impChem, expChem, &

! !INPUT PARAMETERS:

TYPE(Chem_Bundle), intent(in) :: w_c ! Chemical tracer fields
TYPE(Chem_Bundle), intent(inout) :: w_c ! Chemical tracer fields (inout: CO_SingleInstance_ temporarily modifies reg indices)
INTEGER, INTENT(IN) :: nymd, nhms ! time
REAL, INTENT(IN) :: cdt ! chemical timestep (secs)

Expand Down Expand Up @@ -411,7 +411,7 @@ subroutine CO_GridCompFinalize ( gcCO, w_c, impChem, expChem, &

! !INPUT PARAMETERS:

TYPE(Chem_Bundle), intent(in) :: w_c ! Chemical tracer fields
TYPE(Chem_Bundle), intent(inout) :: w_c ! Chemical tracer fields (inout: CO_SingleInstance_ temporarily modifies reg indices)
INTEGER, INTENT(IN) :: nymd, nhms ! time
REAL, INTENT(IN) :: cdt ! chemical timestep (secs)

Expand Down Expand Up @@ -702,6 +702,7 @@ SUBROUTINE init_()
ier(nerr),STAT=ios )
ier = 0
IF ( ios /= 0 ) rc = 100
gcCO%eCO_bioburn_ = 0.0 ! initialize to prevent use of uninitialized data if diurnal_bb is false
END SUBROUTINE init_

SUBROUTINE final_(ierr)
Expand All @@ -711,7 +712,8 @@ SUBROUTINE final_(ierr)
gcCO%eCO_bioburn_, &
gcCO%COsfcFlux, gcCO%eCO_iso, gcCO%eCO_mon, &
gcCO%eCO_mtn, gcCO%CH4, gcCO%OHnd, &
ier, STAT=ios )
STAT=ios )
IF ( ALLOCATED(ier) ) DEALLOCATE( ier, STAT=ios )
CALL I90_release()
rc = ierr
END SUBROUTINE final_
Expand Down Expand Up @@ -1149,6 +1151,7 @@ SUBROUTINE CO_Emission ( rc )
CHARACTER(LEN=*), PARAMETER :: myname = 'CO_Emission'

INTEGER :: i, j, k, kt, minkPBL
INTEGER :: ios ! local ios - prevent host association aliasing under optimization
INTEGER, ALLOCATABLE :: index(:)

REAL, PARAMETER :: mwtAir=28.97
Expand Down
8 changes: 4 additions & 4 deletions ESMF/GOCART_GridComp/Rn_GridComp/Rn_GridCompMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ subroutine Rn_GridCompInitialize ( gcRn, w_c, impChem, expChem, &

! !INPUT PARAMETERS:

TYPE(Chem_Bundle), intent(in) :: w_c ! Chemical tracer fields
TYPE(Chem_Bundle), intent(inout) :: w_c ! Chemical tracer fields (inout: SingleInstance_ temporarily modifies reg indices)
INTEGER, INTENT(IN) :: nymd, nhms ! time
REAL, INTENT(IN) :: cdt ! chemical timestep (secs)

Expand Down Expand Up @@ -316,7 +316,7 @@ SUBROUTINE Rn_GridCompRun ( gcRn, w_c, impChem, expChem, &

! !INPUT PARAMETERS:

TYPE(Chem_Bundle), intent(in) :: w_c ! Chemical tracer fields
TYPE(Chem_Bundle), intent(inout) :: w_c ! Chemical tracer fields (inout: SingleInstance_ temporarily modifies reg indices)
INTEGER, INTENT(IN) :: nymd, nhms ! time
REAL, INTENT(IN) :: cdt ! chemical timestep (secs)

Expand Down Expand Up @@ -373,7 +373,7 @@ SUBROUTINE Rn_GridCompFinalize ( gcRn, w_c, impChem, expChem, &

! !INPUT PARAMETERS:

TYPE(Chem_Bundle), intent(in) :: w_c ! Chemical tracer fields
TYPE(Chem_Bundle), intent(inout) :: w_c ! Chemical tracer fields (inout: SingleInstance_ temporarily modifies reg indices)
INTEGER, INTENT(IN) :: nymd, nhms ! time
REAL, INTENT(IN) :: cdt ! chemical timestep (secs)

Expand Down Expand Up @@ -461,7 +461,7 @@ subroutine Rn_GridCompInitialize1_ ( gcRn, w_c, impChem, expChem, &

! !INPUT PARAMETERS:

TYPE(Chem_Bundle), intent(in) :: w_c ! Chemical tracer fields
TYPE(Chem_Bundle), intent(inout) :: w_c ! Chemical tracer fields (inout: SingleInstance_ temporarily modifies reg indices)
INTEGER, INTENT(IN) :: nymd, nhms ! time
REAL, INTENT(IN) :: cdt ! chemical timestep (secs)

Expand Down
Loading