geoschem / geos-chem

GEOS-Chem "Science Codebase" repository. Contains GEOS-Chem science routines, run directory generation scripts, and interface code. This repository is used as a submodule within the GCClassic and GCHP wrappers, as well as in other modeling contexts (external ESMs).
http://geos-chem.org
Other
170 stars 166 forks source link

Fix inconsistencies between CO2 simulation and carbon simulation with CO2 only #2510

Closed msulprizio closed 4 weeks ago

msulprizio commented 1 month ago

Name and Institution (Required)

Name: Melissa Sulprizio Institution: Harvard

Describe the update

This pull request will address differences that still remain in CO2 between the traditional CO2 simulation and the carbon simulation with CO2 only. Fixes so far include:

  1. Add missing ship logical to HEMCO_Config.rc.carbon, otherwise ship emissions for CO2 are not included
  2. Update HEMCO_Config.rc.CO2 to: a. Include DiagnFile to properly save out emissions diagnostics b. Use same Aviation_SurfCorr_SclFac.1x1.nc file as carbon simulation

Expected changes

This is a zero difference update with respect to the full chemistry benchmark. It will impact CO2 in the carbon simulations.

Reference(s)

If this is a science update, please provide a literature citation.

Related Github Issue

See also:

msulprizio commented 1 month ago

Additional updates and fixes now include:

We are now able to reproduce CO2 concentrations between the CO2 simulation and CO2-only carbon simulations. See plots in #2463.

msulprizio commented 1 month ago

All GCClassic and GCHP integrations pass

Aosrain commented 1 month ago

@msulprizio When I try to recompile GCClassic with the updated codes, it shows the following error information.

================================= make -j [ 1%] Built target KPP_FirstPass [ 1%] Built target HETP_core [ 4%] Built target HeadersHco [ 6%] Built target CloudJ_Core [ 6%] Built target JulDayHco [ 16%] Built target Headers [ 21%] Built target NcdfUtilHco [ 23%] Built target JulDay [ 24%] Built target GeosUtilHco [ 29%] Built target NcdfUtil [ 44%] Built target HCO [ 47%] Built target GeosUtil [ 49%] Built target ObsPack [ 52%] Built target History [ 67%] Built target HCOX [ 69%] Built target KPP [ 70%] Built target HCOI_Shared [ 72%] Building Fortran object src/GEOS-Chem/GeosCore/CMakeFiles/GeosCore.dir/carbon_gases_mod.F90.o [ 72%] Building Fortran object src/GEOS-Chem/GeosCore/CMakeFiles/GeosCore.dir/input_mod.F90.o /nobackup/lwu5/GCClassic/GC_run/gc_4x5_merra2_carbon/CodeDir/src/GEOS-Chem/GeosCore/input_mod.F90(1601): error #6460: This is not a field name that is defined in the encompassing structure. [AER_OPTICS_DIR] Input_Opt%AER_OPTICS_DIR = TRIM( v_str ) --------------^ /nobackup/lwu5/GCClassic/GC_run/gc_4x5_merra2_carbon/CodeDir/src/GEOS-Chem/GeosCore/input_mod.F90(1601): error #6303: The assignment operation or the binary expression operation is invalid for the data types of the two operands. [TRIM] Input_Opt%AER_OPTICS_DIR = TRIM( v_str ) -------------------------------^ /nobackup/lwu5/GCClassic/GC_run/gc_4x5_merra2_carbon/CodeDir/src/GEOS-Chem/GeosCore/input_mod.F90(2837): error #6460: This is not a field name that is defined in the encompassing structure. [CLOUD_FLAG] Input_Opt%Cloud_Flag = v_int --------------^ /nobackup/lwu5/GCClassic/GC_run/gc_4x5_merra2_carbon/CodeDir/src/GEOS-Chem/GeosCore/input_mod.F90(2851): error #6460: This is not a field name that is defined in the encompassing structure. [OD_INCREASE_FACTOR] Input_Opt%OD_Increase_Factor = Cast_and_RoundOff( v_str, places=4 ) --------------^ /nobackup/lwu5/GCClassic/GC_run/gc_4x5_merra2_carbon/CodeDir/src/GEOS-Chem/GeosCore/input_mod.F90(2865): error #6460: This is not a field name that is defined in the encompassing structure. [MIN_CLOUD_OD] Input_Opt%Min_Cloud_OD = Cast_and_RoundOff( v_str, places=4 ) --------------^ /nobackup/lwu5/GCClassic/GC_run/gc_4x5_merra2_carbon/CodeDir/src/GEOS-Chem/GeosCore/input_mod.F90(2881): error #6460: This is not a field name that is defined in the encompassing structure. [CLOUD_CORR] Input_Opt%Cloud_Corr = Cast_and_RoundOff( v_str, places=3 ) --------------^ /nobackup/lwu5/GCClassic/GC_run/gc_4x5_merra2_carbon/CodeDir/src/GEOS-Chem/GeosCore/input_mod.F90(2896): error #6460: This is not a field name that is defined in the encompassing structure. [NUM_MAX_OVERLAP] Input_Opt%Num_Max_Overlap = v_int --------------^ /nobackup/lwu5/GCClassic/GC_run/gc_4x5_merra2_carbon/CodeDir/src/GEOS-Chem/GeosCore/input_mod.F90(2913): error #6460: This is not a field name that is defined in the encompassing structure. [SPHERE_CORRECTION] Input_Opt%Sphere_Correction = v_int --------------^ /nobackup/lwu5/GCClassic/GC_run/gc_4x5_merra2_carbon/CodeDir/src/GEOS-Chem/GeosCore/input_mod.F90(2930): error #6460: This is not a field name that is defined in the encompassing structure. [NUM_WV_BINS] Input_Opt%Num_WV_Bins = v_int --------------^ /nobackup/lwu5/GCClassic/GC_run/gc_4x5_merra2_carbon/CodeDir/src/GEOS-Chem/GeosCore/input_mod.F90(2943): error #6460: This is not a field name that is defined in the encompassing structure. [USE_H2O_UV_ABS] Input_Opt%USE_H2O_UV_Abs = v_bool --------------^ /nobackup/lwu5/GCClassic/GC_run/gc_4x5_merra2_carbon/CodeDir/src/GEOS-Chem/GeosCore/input_mod.F90(2943): error #6303: The assignment operation or the binary expression operation is invalid for the data types of the two operands. [V_BOOL] Input_Opt%USE_H2O_UV_Abs = v_bool -------------------------------^ compilation aborted for /nobackup/lwu5/GCClassic/GC_run/gc_4x5_merra2_carbon/CodeDir/src/GEOS-Chem/GeosCore/input_mod.F90 (code 1) make[2]: [src/GEOS-Chem/GeosCore/CMakeFiles/GeosCore.dir/build.make:452: src/GEOS-Chem/GeosCore/CMakeFiles/GeosCore.dir/input_mod.F90.o] Error 1 make[2]: Waiting for unfinished jobs.... make[1]: [CMakeFiles/Makefile2:1392: src/GEOS-Chem/GeosCore/CMakeFiles/GeosCore.dir/all] Error 2 make: [Makefile:136: all] Error 2

msulprizio commented 1 month ago

All GCClassic and GCHP integrations pass

Correction to my previous statement: All GCClassic integration tests are passing. The GCHP carbon CO2 simulation failed, even though the integration test reported it as passing (separate issue reported in #2527). I am investigating the failure (in ExtData) and will push a fix to this PR before requesting reviews again.

msulprizio commented 1 month ago

GCClassic and GCHP integration tests are now indeed passing. I pushed additional fixes for CO2 to ExtData.rc to get the GCHP carbon_CO2 simulation to complete.

GCClassic differences for CO2 now look reasonable:

GCHP differences in CO2 or the carbon (all species) simulation vs carbon with CO2 only looks reasonable as well:

There are still large differences between CO2 in GCClassic and GCHP carbon simulations (all species vs CO2-only):

Tagging @lizziel for any insight on the GCClassic vs GCHP differences.

lizziel commented 1 month ago

It looks like there are hot spots of CO2 at high elevations in GCHP. I am not sure what would cause this but can look into it.

Aosrain commented 4 weeks ago

I turned off all the settings in HEMCO_Config.rc and geoschem_config.yml. It still shows some hot spots, especially at 500 hPa.

Also set CO2 value in restart file to 400 ppmv.

CO2_compare.pdf

msulprizio commented 4 weeks ago

Thanks @lizziel @Aosrain. I will merge in these fixes for now and we can add additional fixes for CO2 in GCHP separately.