From 05d388c2e557efc68a6e13222f710b565ae69b68 Mon Sep 17 00:00:00 2001 From: drnimbusrain Date: Mon, 12 May 2025 12:20:15 -0400 Subject: [PATCH 1/6] Option to (re-)enable manual InvMEGAN diagnostics. --- src/Extensions/hcox_megan_mod.F90 | 256 ++++++++++++++++++++++++++++++ 1 file changed, 256 insertions(+) diff --git a/src/Extensions/hcox_megan_mod.F90 b/src/Extensions/hcox_megan_mod.F90 index fa7a9548..a79da560 100644 --- a/src/Extensions/hcox_megan_mod.F90 +++ b/src/Extensions/hcox_megan_mod.F90 @@ -141,6 +141,7 @@ MODULE HCOX_MEGAN_MOD REAL(hp) :: MONOTOSOAS ! Direct SOA Emission factor REAL(hp) :: OTHRTOSOAS ! Direct SOA Emission factor LOGICAL :: LISOPCO2 ! Include CO2 inhibition of ISOP? + LOGICAL :: InvMEGANAll ! Include all manual InvMEGAN diagnostics? LOGICAL :: NORMLAI ! Normalize LAI by PFT? LOGICAL :: OFFLINE_BIOGENICVOC ! Use offline emiss? @@ -3583,6 +3584,13 @@ SUBROUTINE HCOX_Megan_Init( HcoState, ExtName, ExtState, RC ) CALL HCO_ERROR( 'ERROR 35', RC, THISLOC=LOC ) RETURN ENDIF + CALL GetExtOpt( HcoState%Config, ExtNr, 'InvMEGAN All ', & + OptValBool=Inst%InvMEGANAll, RC=RC ) + IF ( RC /= HCO_SUCCESS ) THEN + CALL HCO_ERROR( 'ERROR 36', RC, THISLOC=LOC ) + RETURN + ENDIF + ! Normalize LAI by PFT? Default setting is 'yes' ! ckeller, 7/17/17. @@ -3855,6 +3863,9 @@ SUBROUTINE HCOX_Megan_Init( HcoState, ExtName, ExtState, RC ) WRITE(MSG,*) ' --> Use CO2 inhibition on isoprene option ', & Inst%LISOPCO2 CALL HCO_MSG( msg, LUN=HcoState%Config%hcoLogLUN ) + WRITE(MSG,*) ' --> Use all InvMEGAN manual diagnostic option ', & + Inst%InvMEGANAll + CALL HCO_MSG( msg, LUN=HcoState%Config%hcoLogLUN ) WRITE(MSG,*) ' --> Global atmospheric CO2 concentration : ', & Inst%GLOBCO2, ' ppmv' CALL HCO_MSG( msg, LUN=HcoState%Config%hcoLogLUN ) @@ -4296,6 +4307,251 @@ SUBROUTINE HCOX_Megan_Init( HcoState, ExtName, ExtState, RC ) Inst%AEF_OCIM = 0.0_hp Inst%AEF_SABI = 0.0_hp + !================================================================= + ! Create manual diagnostics + !================================================================= + IF ( Inst%InvMEGANAll ) THEN + CALL Diagn_Create( HcoState = HcoState, & + cName = 'InvMEGAN_ACET_MBOX', & + ExtNr = ExtNr, & + Cat = -1, & + Hier = -1, & + HcoID = -1, & + SpaceDim = 2, & + OutUnit = 'kg/m2/s', & + AutoFill = 0, & + Trgt2D = Inst%FLUXACETmb, & + RC = RC ) + IF ( RC /= HCO_SUCCESS ) THEN + CALL HCO_ERROR( 'ERROR 45', RC, THISLOC=LOC ) + RETURN + ENDIF + + CALL Diagn_Create( HcoState = HcoState, & + cName = 'InvMEGAN_ACET_DIRECT',& + ExtNr = ExtNr, & + Cat = -1, & + Hier = -1, & + HcoID = -1, & + SpaceDim = 2, & + OutUnit = 'kg/m2/s', & + AutoFill = 0, & + Trgt2D = Inst%FLUXACETbg, & + RC = RC ) + IF ( RC /= HCO_SUCCESS ) THEN + CALL HCO_ERROR( 'ERROR 46', RC, THISLOC=LOC ) + RETURN + ENDIF + + CALL Diagn_Create( HcoState = HcoState, & + cName = 'InvMEGAN_APIN', & + ExtNr = ExtNr, & + Cat = -1, & + Hier = -1, & + HcoID = -1, & + SpaceDim = 2, & + OutUnit = 'kg/m2/s', & + AutoFill = 0, & + Trgt2D = Inst%FLUXAPIN, & + RC = RC ) + IF ( RC /= HCO_SUCCESS ) THEN + CALL HCO_ERROR( 'ERROR 47', RC, THISLOC=LOC ) + RETURN + ENDIF + + CALL Diagn_Create( HcoState = HcoState, & + cName = 'InvMEGAN_BPIN', & + ExtNr = ExtNr, & + Cat = -1, & + Hier = -1, & + HcoID = -1, & + SpaceDim = 2, & + OutUnit = 'kg/m2/s', & + AutoFill = 0, & + Trgt2D = Inst%FLUXBPIN, & + RC = RC ) + IF ( RC /= HCO_SUCCESS ) THEN + CALL HCO_ERROR( 'ERROR 48', RC, THISLOC=LOC ) + RETURN + ENDIF + + CALL Diagn_Create( HcoState = HcoState, & + cName = 'InvMEGAN_SABI', & + ExtNr = ExtNr, & + Cat = -1, & + Hier = -1, & + HcoID = -1, & + SpaceDim = 2, & + OutUnit = 'kg/m2/s', & + AutoFill = 0, & + Trgt2D = Inst%FLUXSABI, & + RC = RC ) + IF ( RC /= HCO_SUCCESS ) THEN + CALL HCO_ERROR( 'ERROR 49', RC, THISLOC=LOC ) + RETURN + ENDIF + + CALL Diagn_Create( HcoState = HcoState, & + cName = 'InvMEGAN_MYRC', & + ExtNr = ExtNr, & + Cat = -1, & + Hier = -1, & + HcoID = -1, & + SpaceDim = 2, & + OutUnit = 'kg/m2/s', & + AutoFill = 0, & + Trgt2D = Inst%FLUXMYRC, & + RC = RC ) + IF ( RC /= HCO_SUCCESS ) THEN + CALL HCO_ERROR( 'ERROR 50', RC, THISLOC=LOC ) + RETURN + ENDIF + + CALL Diagn_Create( HcoState = HcoState, & + cName = 'InvMEGAN_CARE', & + ExtNr = ExtNr, & + Cat = -1, & + Hier = -1, & + HcoID = -1, & + SpaceDim = 2, & + OutUnit = 'kg/m2/s', & + AutoFill = 0, & + Trgt2D = Inst%FLUXCARE, & + RC = RC ) + IF ( RC /= HCO_SUCCESS ) THEN + CALL HCO_ERROR( 'ERROR 51', RC, THISLOC=LOC ) + RETURN + ENDIF + + CALL Diagn_Create( HcoState = HcoState, & + cName = 'InvMEGAN_OCIM', & + ExtNr = ExtNr, & + Cat = -1, & + Hier = -1, & + HcoID = -1, & + SpaceDim = 2, & + OutUnit = 'kg/m2/s', & + AutoFill = 0, & + Trgt2D = Inst%FLUXOCIM, & + RC = RC ) + IF ( RC /= HCO_SUCCESS ) THEN + CALL HCO_ERROR( 'ERROR 52', RC, THISLOC=LOC ) + RETURN + ENDIF + + CALL Diagn_Create( HcoState = HcoState, & + cName = 'InvMEGAN_OMON', & + ExtNr = ExtNr, & + Cat = -1, & + Hier = -1, & + HcoID = -1, & + SpaceDim = 2, & + OutUnit = 'kg/m2/s', & + AutoFill = 0, & + Trgt2D = Inst%FLUXOMON, & + RC = RC ) + IF ( RC /= HCO_SUCCESS ) THEN + CALL HCO_ERROR( 'ERROR 53', RC, THISLOC=LOC ) + RETURN + ENDIF + + CALL Diagn_Create( HcoState = HcoState, & + cName = 'InvMEGAN_FARN', & + ExtNr = ExtNr, & + Cat = -1, & + Hier = -1, & + HcoID = -1, & + SpaceDim = 2, & + OutUnit = 'kg/m2/s', & + AutoFill = 0, & + Trgt2D = Inst%FLUXFARN, & + RC = RC ) + IF ( RC /= HCO_SUCCESS ) THEN + CALL HCO_ERROR( 'ERROR 54', RC, THISLOC=LOC ) + RETURN + ENDIF + + CALL Diagn_Create( HcoState = HcoState, & + cName = 'InvMEGAN_BCAR', & + ExtNr = ExtNr, & + Cat = -1, & + Hier = -1, & + HcoID = -1, & + SpaceDim = 2, & + OutUnit = 'kg/m2/s', & + AutoFill = 0, & + Trgt2D = Inst%FLUXBCAR, & + RC = RC ) + IF ( RC /= HCO_SUCCESS ) THEN + CALL HCO_ERROR( 'ERROR 55', RC, THISLOC=LOC ) + RETURN + ENDIF + + CALL Diagn_Create( HcoState = HcoState, & + cName = 'InvMEGAN_OSQT', & + ExtNr = ExtNr, & + Cat = -1, & + Hier = -1, & + HcoID = -1, & + SpaceDim = 2, & + OutUnit = 'kg/m2/s', & + AutoFill = 0, & + Trgt2D = Inst%FLUXOSQT, & + RC = RC ) + IF ( RC /= HCO_SUCCESS ) THEN + CALL HCO_ERROR( 'ERROR 56', RC, THISLOC=LOC ) + RETURN + ENDIF + + CALL Diagn_Create( HcoState = HcoState, & + cName = 'InvMEGAN_MBOX', & + ExtNr = ExtNr, & + Cat = -1, & + Hier = -1, & + HcoID = -1, & + SpaceDim = 2, & + OutUnit = 'kg/m2/s', & + AutoFill = 0, & + Trgt2D = Inst%FLUXMBOX, & + RC = RC ) + IF ( RC /= HCO_SUCCESS ) THEN + CALL HCO_ERROR( 'ERROR 57', RC, THISLOC=LOC ) + RETURN + ENDIF + + CALL Diagn_Create( HcoState = HcoState, & + cName = 'InvMEGAN_FAXX', & + ExtNr = ExtNr, & + Cat = -1, & + Hier = -1, & + HcoID = -1, & + SpaceDim = 2, & + OutUnit = 'kg/m2/s', & + AutoFill = 0, & + Trgt2D = Inst%FLUXFAXX, & + RC = RC ) + IF ( RC /= HCO_SUCCESS ) THEN + CALL HCO_ERROR( 'ERROR 58', RC, THISLOC=LOC ) + RETURN + ENDIF + + CALL Diagn_Create( HcoState = HcoState, & + cName = 'InvMEGAN_AAXX', & + ExtNr = ExtNr, & + Cat = -1, & + Hier = -1, & + HcoID = -1, & + SpaceDim = 2, & + OutUnit = 'kg/m2/s', & + AutoFill = 0, & + Trgt2D = Inst%FLUXAAXX, & + RC = RC ) + IF ( RC /= HCO_SUCCESS ) THEN + CALL HCO_ERROR( 'ERROR 59', RC, THISLOC=LOC ) + RETURN + ENDIF + ENDIF + !================================================================= ! Initialize internal diagnostics. These are the restart variables ! that can be used for a 'warm' start of MEGAN. From 29c0a10b7163bb6f36f3350df5c4b5838d42a140 Mon Sep 17 00:00:00 2001 From: drnimbusrain Date: Mon, 12 May 2025 15:35:18 -0400 Subject: [PATCH 2/6] Add FOUND approach and set default InvMEGAN All to False. --- src/Extensions/hcox_megan_mod.F90 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Extensions/hcox_megan_mod.F90 b/src/Extensions/hcox_megan_mod.F90 index a79da560..0be14429 100644 --- a/src/Extensions/hcox_megan_mod.F90 +++ b/src/Extensions/hcox_megan_mod.F90 @@ -3584,8 +3584,9 @@ SUBROUTINE HCOX_Megan_Init( HcoState, ExtName, ExtState, RC ) CALL HCO_ERROR( 'ERROR 35', RC, THISLOC=LOC ) RETURN ENDIF + Inst%InvMEGANAll = .FALSE. CALL GetExtOpt( HcoState%Config, ExtNr, 'InvMEGAN All ', & - OptValBool=Inst%InvMEGANAll, RC=RC ) + OptValBool=Inst%InvMEGANAll, Found=FOUND, RC=RC ) IF ( RC /= HCO_SUCCESS ) THEN CALL HCO_ERROR( 'ERROR 36', RC, THISLOC=LOC ) RETURN From 4830ee3fd7842dc3c773eb9117da1a760f325f0b Mon Sep 17 00:00:00 2001 From: drnimbusrain Date: Tue, 13 May 2025 15:26:29 -0400 Subject: [PATCH 3/6] Changed error number and removed default=false. --- src/Extensions/hcox_megan_mod.F90 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Extensions/hcox_megan_mod.F90 b/src/Extensions/hcox_megan_mod.F90 index 0be14429..52116eed 100644 --- a/src/Extensions/hcox_megan_mod.F90 +++ b/src/Extensions/hcox_megan_mod.F90 @@ -3584,11 +3584,10 @@ SUBROUTINE HCOX_Megan_Init( HcoState, ExtName, ExtState, RC ) CALL HCO_ERROR( 'ERROR 35', RC, THISLOC=LOC ) RETURN ENDIF - Inst%InvMEGANAll = .FALSE. CALL GetExtOpt( HcoState%Config, ExtNr, 'InvMEGAN All ', & OptValBool=Inst%InvMEGANAll, Found=FOUND, RC=RC ) IF ( RC /= HCO_SUCCESS ) THEN - CALL HCO_ERROR( 'ERROR 36', RC, THISLOC=LOC ) + CALL HCO_ERROR( 'ERROR 65', RC, THISLOC=LOC ) RETURN ENDIF From 3b156ecfbe9d9ac8d83ec3baa08fa63cd6a97aad Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Mon, 19 May 2025 14:29:40 -0400 Subject: [PATCH 4/6] Updated CHANGELOG.md for PR #325 (InvMEGAN manual diagnostics) CHANGELOG.md - Added entry to describe the option to enable manual InvMEGAN diagnostics Signed-off-by: Bob Yantosca --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 90a95619..8b5a5b3f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file. 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] - TBD +### Added +- Added option to enable `InvMEGAN` manual diagnostic output + ## [3.11.0] - 2025-04-18 ### Added - Added `Lons` and `Lats` to `FileData` type to store bounds of mask files From 1f5c8d355926d23e4c26bdbc2e8453681dc24e60 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Tue, 27 May 2025 16:39:06 -0400 Subject: [PATCH 5/6] geos-chem-shared-docs update to 9e2e1de This commit informs the HEMCO superproject about the following commits that were pushed to the geos-chem-shared-docs repository: 9e2e1de Update related-docs.rst; Change tables to list-tables 31ac061 Tell users to end S3 bucket name with a / to get a listing 2f1c02c Add formatting changes to GEOS-Chem simulations pages 9ecea02 Update fullchem simulation documentation a7261d3 Minor updates in KPP and History guides 46894cc Add simulation guides and lists of species a8e72e3 Updage geoschem_config.rst; Update History doc Signed-off-by: Bob Yantosca --- CHANGELOG.md | 4 ++++ docs/source/geos-chem-shared-docs | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 90a95619..5d001283 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file. 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] - TBD +### Added +- Added supplemental guide documentation updates in the `geos-chem-shared-docs` submodule + ## [3.11.0] - 2025-04-18 ### Added - Added `Lons` and `Lats` to `FileData` type to store bounds of mask files diff --git a/docs/source/geos-chem-shared-docs b/docs/source/geos-chem-shared-docs index c769e000..9e2e1de6 160000 --- a/docs/source/geos-chem-shared-docs +++ b/docs/source/geos-chem-shared-docs @@ -1 +1 @@ -Subproject commit c769e0007cc02270016e68e738623ac97b1fbcb5 +Subproject commit 9e2e1de63379193e06dd3e0bec91a8bb86202945 From 306f2ce7460354b86f4a99d4687615be561055b7 Mon Sep 17 00:00:00 2001 From: Bob Yantosca Date: Thu, 29 May 2025 10:19:37 -0400 Subject: [PATCH 6/6] 3.11.1 post-release update: Fix CHANGELOG.md entries Fixed a merge error in the 3.11.0 section. Signed-off-by: Bob Yantosca --- CHANGELOG.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 357e3496..e4179d1b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,13 +5,10 @@ All notable changes to this project will be documented in this file. 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] - TBD +## [3.11.0] - 2025-04-18 ### Added - Added option to enable `InvMEGAN` manual diagnostic output - Added supplemental guide documentation updates in the `geos-chem-shared-docs` submodule - -## [3.11.0] - 2025-04-18 -### Added - Added `Lons` and `Lats` to `FileData` type to store bounds of mask files - Added definition of 0.125x0.15625 grid resolution