From 29657753bced7bd5ad5d55dce1516d2c400f7d4b Mon Sep 17 00:00:00 2001 From: Peter Colarco Date: Mon, 27 Feb 2023 11:49:47 -0500 Subject: [PATCH 01/36] prc: code and resource updates to get data instance for GOCART2G working --- .../AMIP.20C/CA2G_GridComp_ExtData.rc | 32 +++++----- .../AMIP/CA2G_GridComp_ExtData.rc | 32 +++++----- .../AMIP/CA2G_GridComp_ExtData.yaml | 48 +++++++++++++-- .../CA2G_GridComp/CA2G_GridCompMod.F90 | 17 +++--- .../CA2G_GridComp/CA2G_GridComp_ExtData.rc | 46 +++++++++------ .../CA2G_GridComp/CA2G_GridComp_ExtData.yaml | 48 +++++++++++++-- .../AMIP/DU2G_GridComp_ExtData.yaml | 12 ++-- .../DU2G_GridComp/DU2G_GridComp_ExtData.rc | 58 +++++++++---------- .../DU2G_GridComp/DU2G_GridComp_ExtData.yaml | 12 ++-- .../AMIP.20C/NI2G_GridComp_ExtData.rc | 6 +- .../AMIP/NI2G_GridComp_ExtData.rc | 6 +- .../NI2G_GridComp/NI2G_GridComp_ExtData.rc | 6 +- .../AMIP/SS2G_GridComp_ExtData.yaml | 12 ++-- .../SS2G_GridComp/SS2G_GridCompMod.F90 | 18 +++--- .../SS2G_GridComp/SS2G_GridComp_ExtData.rc | 50 ++++++++-------- .../SS2G_GridComp/SS2G_GridComp_ExtData.yaml | 12 ++-- .../AMIP.20C/SU2G_GridComp_ExtData.rc | 24 ++++---- .../AMIP/SU2G_GridComp_ExtData.rc | 24 ++++---- .../AMIP/SU2G_GridComp_ExtData.yaml | 8 +-- .../SU2G_GridComp/SU2G_GridComp_ExtData.rc | 24 ++++---- .../SU2G_GridComp/SU2G_GridComp_ExtData.yaml | 8 +-- 21 files changed, 300 insertions(+), 203 deletions(-) diff --git a/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP.20C/CA2G_GridComp_ExtData.rc b/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP.20C/CA2G_GridComp_ExtData.rc index 14ff068e..228a00d6 100644 --- a/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP.20C/CA2G_GridComp_ExtData.rc +++ b/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP.20C/CA2G_GridComp_ExtData.rc @@ -6,30 +6,30 @@ PrimaryExports%% #========== Data Instance ========================================================== -climBCphobic 'kg kg-1' Y N 0 0.0 1.0 BCphobic ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 -climBCphilic 'kg kg-1' Y N 0 0.0 1.0 BCphilic ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 -climOCphobic 'kg kg-1' Y N 0 0.0 1.0 OCphobic ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 -climOCphilic 'kg kg-1' Y N 0 0.0 1.0 OCphilic ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climBCphobic 'kg kg-1' Y N 0 0.0 1.0 BCPHOBIC ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climBCphilic 'kg kg-1' Y N 0 0.0 1.0 BCPHILIC ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climOCphobic 'kg kg-1' Y N 0 0.0 1.0 OCPHOBIC ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climOCphilic 'kg kg-1' Y N 0 0.0 1.0 OCPHILIC ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 -climBCDP001 'kg m-2 s-1' Y N 0 0.0 1.0 BCDP001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climBCWT001 'kg m-2 s-1' Y N 0 0.0 1.0 BCWT001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climBCDP001 'kg m-2 s-1' Y N 0 0.0 1.0 BCDP001 /dev/null +climBCWT001 'kg m-2 s-1' Y N 0 0.0 1.0 BCWT001 /dev/null climBCSD001 'kg m-2 s-1' Y N 0 0.0 1.0 BCSD001 /dev/null -climBCSV001 'kg m-2 s-1' Y N 0 0.0 1.0 BCSV001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climBCSV001 'kg m-2 s-1' Y N 0 0.0 1.0 BCSV001 /dev/null -climBCDP002 'kg m-2 s-1' Y N 0 0.0 1.0 BCDP002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climBCWT002 'kg m-2 s-1' Y N 0 0.0 1.0 BCWT002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climBCDP002 'kg m-2 s-1' Y N 0 0.0 1.0 BCDP002 /dev/null +climBCWT002 'kg m-2 s-1' Y N 0 0.0 1.0 BCWT002 /dev/null climBCSD002 'kg m-2 s-1' Y N 0 0.0 1.0 BCSD002 /dev/null -climBCSV002 'kg m-2 s-1' Y N 0 0.0 1.0 BCSV002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climBCSV002 'kg m-2 s-1' Y N 0 0.0 1.0 BCSV002 /dev/null -climOCDP001 'kg m-2 s-1' Y N 0 0.0 1.0 OCDP001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climOCWT001 'kg m-2 s-1' Y N 0 0.0 1.0 OCWT001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climOCDP001 'kg m-2 s-1' Y N 0 0.0 1.0 OCDP001 /dev/null +climOCWT001 'kg m-2 s-1' Y N 0 0.0 1.0 OCWT001 /dev/null climOCSD001 'kg m-2 s-1' Y N 0 0.0 1.0 OCSD001 /dev/null -climOCSV001 'kg m-2 s-1' Y N 0 0.0 1.0 OCSV001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climOCSV001 'kg m-2 s-1' Y N 0 0.0 1.0 OCSV001 /dev/null -climOCDP002 'kg m-2 s-1' Y N 0 0.0 1.0 OCDP002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climOCWT002 'kg m-2 s-1' Y N 0 0.0 1.0 OCWT002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climOCDP002 'kg m-2 s-1' Y N 0 0.0 1.0 OCDP002 /dev/null +climOCWT002 'kg m-2 s-1' Y N 0 0.0 1.0 OCWT002 /dev/null climOCSD002 'kg m-2 s-1' Y N 0 0.0 1.0 OCSD002 /dev/null -climOCSV002 'kg m-2 s-1' Y N 0 0.0 1.0 OCSV002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climOCSV002 'kg m-2 s-1' Y N 0 0.0 1.0 OCSV002 /dev/null #=========== Carbonaceous aerosol sources =========================================== diff --git a/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP/CA2G_GridComp_ExtData.rc b/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP/CA2G_GridComp_ExtData.rc index 9c8fabe2..1c9eb46f 100644 --- a/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP/CA2G_GridComp_ExtData.rc +++ b/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP/CA2G_GridComp_ExtData.rc @@ -6,30 +6,30 @@ PrimaryExports%% #========== Data Instance ========================================================== -climBCphobic 'kg kg-1' Y N 0 0.0 1.0 BCphobic ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 -climBCphilic 'kg kg-1' Y N 0 0.0 1.0 BCphilic ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 -climOCphobic 'kg kg-1' Y N 0 0.0 1.0 OCphobic ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 -climOCphilic 'kg kg-1' Y N 0 0.0 1.0 OCphilic ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climBCphobic 'kg kg-1' Y N 0 0.0 1.0 BCPHOBIC ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climBCphilic 'kg kg-1' Y N 0 0.0 1.0 BCPHILIC ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climOCphobic 'kg kg-1' Y N 0 0.0 1.0 OCPHOBIC ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climOCphilic 'kg kg-1' Y N 0 0.0 1.0 OCPHILIC ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 -climBCDP001 'kg m-2 s-1' Y N 0 0.0 1.0 BCDP001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climBCWT001 'kg m-2 s-1' Y N 0 0.0 1.0 BCWT001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climBCDP001 'kg m-2 s-1' Y N 0 0.0 1.0 BCDP001 /dev/null +climBCWT001 'kg m-2 s-1' Y N 0 0.0 1.0 BCWT001 /dev/null climBCSD001 'kg m-2 s-1' Y N 0 0.0 1.0 BCSD001 /dev/null -climBCSV001 'kg m-2 s-1' Y N 0 0.0 1.0 BCSV001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climBCSV001 'kg m-2 s-1' Y N 0 0.0 1.0 BCSV001 /dev/null -climBCDP002 'kg m-2 s-1' Y N 0 0.0 1.0 BCDP002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climBCWT002 'kg m-2 s-1' Y N 0 0.0 1.0 BCWT002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climBCDP002 'kg m-2 s-1' Y N 0 0.0 1.0 BCDP002 /dev/null +climBCWT002 'kg m-2 s-1' Y N 0 0.0 1.0 BCWT002 /dev/null climBCSD002 'kg m-2 s-1' Y N 0 0.0 1.0 BCSD002 /dev/null -climBCSV002 'kg m-2 s-1' Y N 0 0.0 1.0 BCSV002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climBCSV002 'kg m-2 s-1' Y N 0 0.0 1.0 BCSV002 /dev/null -climOCDP001 'kg m-2 s-1' Y N 0 0.0 1.0 OCDP001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climOCWT001 'kg m-2 s-1' Y N 0 0.0 1.0 OCWT001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climOCDP001 'kg m-2 s-1' Y N 0 0.0 1.0 OCDP001 /dev/null +climOCWT001 'kg m-2 s-1' Y N 0 0.0 1.0 OCWT001 /dev/null climOCSD001 'kg m-2 s-1' Y N 0 0.0 1.0 OCSD001 /dev/null -climOCSV001 'kg m-2 s-1' Y N 0 0.0 1.0 OCSV001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climOCSV001 'kg m-2 s-1' Y N 0 0.0 1.0 OCSV001 /dev/null -climOCDP002 'kg m-2 s-1' Y N 0 0.0 1.0 OCDP002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climOCWT002 'kg m-2 s-1' Y N 0 0.0 1.0 OCWT002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climOCDP002 'kg m-2 s-1' Y N 0 0.0 1.0 OCDP002 /dev/null +climOCWT002 'kg m-2 s-1' Y N 0 0.0 1.0 OCWT002 /dev/null climOCSD002 'kg m-2 s-1' Y N 0 0.0 1.0 OCSD002 /dev/null -climOCSV002 'kg m-2 s-1' Y N 0 0.0 1.0 OCSV002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climOCSV002 'kg m-2 s-1' Y N 0 0.0 1.0 OCSV002 /dev/null #=========== Carbonaceous aerosol sources =========================================== diff --git a/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP/CA2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP/CA2G_GridComp_ExtData.yaml index 4813b4d1..c43006a2 100644 --- a/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP/CA2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP/CA2G_GridComp_ExtData.yaml @@ -220,11 +220,11 @@ Exports: climBCphilic: collection: CA2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: CA2G_sample_0 - variable: BCphilic + variable: BCPHILIC climBCphobic: collection: CA2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: CA2G_sample_0 - variable: BCphobic + variable: BCPHOBIC climOCDP001: collection: CA2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 sample: CA2G_sample_0 @@ -260,11 +260,51 @@ Exports: climOCphilic: collection: CA2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: CA2G_sample_0 - variable: OCphilic + variable: OCPHILIC climOCphobic: collection: CA2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: CA2G_sample_0 - variable: OCphobic + variable: OCPHOBIC + climBRDP001: + collection: /dev/null + sample: CA2G_sample_0 + variable: BRDP001 + climBRDP002: + collection: /dev/null + sample: CA2G_sample_0 + variable: BRDP002 + climBRSD001: + collection: /dev/null + sample: CA2G_sample_0 + variable: BRSD001 + climBRSD002: + collection: /dev/null + sample: CA2G_sample_0 + variable: BRSD002 + climBRSV001: + collection: /dev/null + sample: CA2G_sample_0 + variable: BRSV001 + climBRSV002: + collection: /dev/null + sample: CA2G_sample_0 + variable: BRSV002 + climBRWT001: + collection: /dev/null + sample: CA2G_sample_0 + variable: BRWT001 + climBRWT002: + collection: /dev/null + sample: CA2G_sample_0 + variable: BRWT002 + climBRphilic: + collection: /dev/null + sample: CA2G_sample_0 + variable: BRPHILIC + climBRphobic: + collection: /dev/null + sample: CA2G_sample_0 + variable: BRPHOBIC pSOA_ANTHRO_VOC: collection: /dev/null regrid: CONSERVE diff --git a/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridCompMod.F90 index 61f8c689..3f547efc 100644 --- a/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridCompMod.F90 @@ -138,8 +138,8 @@ subroutine SetServices (GC, RC) call ESMF_ConfigLoadFile (cfg, 'CA2G_instance_'//trim(comp_name)//'.rc', rc=status) if (status /= 0) then if (mapl_am_i_root()) print*,'CA2G_instance_'//trim(comp_name)//'.rc does not exist! & - Loading CA2G_instance_'//trim(comp_name)//'.rc instead' - call ESMF_ConfigLoadFile (cfg, 'CA2G_instance_'//trim(comp_name)//'.rc', __RC__) + Loading CA2G_instance_'//trim(comp_name(1:5))//'.rc instead' + call ESMF_ConfigLoadFile (cfg, 'CA2G_instance_'//trim(comp_name(1:5))//'.rc', __RC__) end if ! process generic config items @@ -430,10 +430,11 @@ subroutine Initialize (GC, import, export, clock, RC) ! Load resource file ! ------------------- cfg = ESMF_ConfigCreate (__RC__) - call ESMF_ConfigLoadFile (cfg, 'CA2G_instance_'//trim(COMP_NAME)//'.rc', rc=status) + call ESMF_ConfigLoadFile (cfg, 'CA2G_instance_'//trim(comp_name)//'.rc', rc=status) if (status /= 0) then - if (mapl_am_i_root()) print*,'ERROR: CA2G_instance_'//trim(COMP_NAME)//'.rc does not exist!' - return + if (mapl_am_i_root()) print*,'CA2G_instance_'//trim(comp_name)//'.rc does not exist! & + Loading CA2G_instance_'//trim(comp_name(1:5))//'.rc instead' + call ESMF_ConfigLoadFile (cfg, 'CA2G_instance_'//trim(comp_name(1:5))//'.rc', __RC__) end if ! Call Generic Initialize @@ -624,7 +625,7 @@ subroutine Run (GC, import, export, clock, rc) ! ----------------------------------- call MAPL_Get (MAPL, INTERNAL_ESMF_STATE=internal, __RC__) -! Is SS data driven? +! Is CA data driven? ! ------------------ call determine_data_driven (COMP_NAME, data_driven, __RC__) @@ -655,7 +656,7 @@ subroutine Run1 (GC, import, export, clock, RC) type (ESMF_Clock), intent(inout) :: clock ! The clock integer, optional, intent( out) :: RC ! Error code: -! !DESCRIPTION: Computes emissions/sources for Sea Salt +! !DESCRIPTION: Computes emissions/sources for Carbon !EOP !============================================================================ @@ -1074,7 +1075,7 @@ end subroutine Run2 !============================================================================ !BOP -! !IROUTINE: Run_data -- ExtData Sea Salt Grid Component +! !IROUTINE: Run_data -- ExtData Carbon Grid Component ! !INTERFACE: diff --git a/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridComp_ExtData.rc b/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridComp_ExtData.rc index 972bddf1..cd44f28d 100644 --- a/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridComp_ExtData.rc +++ b/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridComp_ExtData.rc @@ -6,30 +6,42 @@ PrimaryExports%% #========== Data Instance ========================================================== -climBCphobic 'kg kg-1' Y N 0 0.0 1.0 BCphobic ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 -climBCphilic 'kg kg-1' Y N 0 0.0 1.0 BCphilic ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 -climOCphobic 'kg kg-1' Y N 0 0.0 1.0 OCphobic ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 -climOCphilic 'kg kg-1' Y N 0 0.0 1.0 OCphilic ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 - -climBCDP001 'kg m-2 s-1' Y N 0 0.0 1.0 BCDP001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climBCWT001 'kg m-2 s-1' Y N 0 0.0 1.0 BCWT001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climBCphobic 'kg kg-1' Y N 0 0.0 1.0 BCPHOBIC ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climBCphilic 'kg kg-1' Y N 0 0.0 1.0 BCPHILIC ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climOCphobic 'kg kg-1' Y N 0 0.0 1.0 OCPHOBIC ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climOCphilic 'kg kg-1' Y N 0 0.0 1.0 OCPHILIC ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climBRphobic 'kg kg-1' Y N 0 0.0 1.0 BRPHOBIC /dev/null +climBRphilic 'kg kg-1' Y N 0 0.0 1.0 BRPHILIC /dev/null + +climBCDP001 'kg m-2 s-1' Y N 0 0.0 1.0 BCDP001 /dev/null +climBCWT001 'kg m-2 s-1' Y N 0 0.0 1.0 BCWT001 /dev/null climBCSD001 'kg m-2 s-1' Y N 0 0.0 1.0 BCSD001 /dev/null -climBCSV001 'kg m-2 s-1' Y N 0 0.0 1.0 BCSV001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climBCSV001 'kg m-2 s-1' Y N 0 0.0 1.0 BCSV001 /dev/null -climBCDP002 'kg m-2 s-1' Y N 0 0.0 1.0 BCDP002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climBCWT002 'kg m-2 s-1' Y N 0 0.0 1.0 BCWT002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climBCDP002 'kg m-2 s-1' Y N 0 0.0 1.0 BCDP002 /dev/null +climBCWT002 'kg m-2 s-1' Y N 0 0.0 1.0 BCWT002 /dev/null climBCSD002 'kg m-2 s-1' Y N 0 0.0 1.0 BCSD002 /dev/null -climBCSV002 'kg m-2 s-1' Y N 0 0.0 1.0 BCSV002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climBCSV002 'kg m-2 s-1' Y N 0 0.0 1.0 BCSV002 /dev/null -climOCDP001 'kg m-2 s-1' Y N 0 0.0 1.0 OCDP001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climOCWT001 'kg m-2 s-1' Y N 0 0.0 1.0 OCWT001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climOCDP001 'kg m-2 s-1' Y N 0 0.0 1.0 OCDP001 /dev/null +climOCWT001 'kg m-2 s-1' Y N 0 0.0 1.0 OCWT001 /dev/null climOCSD001 'kg m-2 s-1' Y N 0 0.0 1.0 OCSD001 /dev/null -climOCSV001 'kg m-2 s-1' Y N 0 0.0 1.0 OCSV001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climOCSV001 'kg m-2 s-1' Y N 0 0.0 1.0 OCSV001 /dev/null -climOCDP002 'kg m-2 s-1' Y N 0 0.0 1.0 OCDP002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climOCWT002 'kg m-2 s-1' Y N 0 0.0 1.0 OCWT002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climOCDP002 'kg m-2 s-1' Y N 0 0.0 1.0 OCDP002 /dev/null +climOCWT002 'kg m-2 s-1' Y N 0 0.0 1.0 OCWT002 /dev/null climOCSD002 'kg m-2 s-1' Y N 0 0.0 1.0 OCSD002 /dev/null -climOCSV002 'kg m-2 s-1' Y N 0 0.0 1.0 OCSV002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climOCSV002 'kg m-2 s-1' Y N 0 0.0 1.0 OCSV002 /dev/null + +climBRDP001 'kg m-2 s-1' Y N 0 0.0 1.0 BRDP001 /dev/null +climBRWT001 'kg m-2 s-1' Y N 0 0.0 1.0 BRWT001 /dev/null +climBRSD001 'kg m-2 s-1' Y N 0 0.0 1.0 BRSD001 /dev/null +climBRSV001 'kg m-2 s-1' Y N 0 0.0 1.0 BRSV001 /dev/null + +climBRDP002 'kg m-2 s-1' Y N 0 0.0 1.0 BRDP002 /dev/null +climBRWT002 'kg m-2 s-1' Y N 0 0.0 1.0 BRWT002 /dev/null +climBRSD002 'kg m-2 s-1' Y N 0 0.0 1.0 BRSD002 /dev/null +climBRSV002 'kg m-2 s-1' Y N 0 0.0 1.0 BRSV002 /dev/null #=========== Carbonaceous aerosol sources =========================================== diff --git a/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridComp_ExtData.yaml index 0ee57bb4..c5b6e3fb 100644 --- a/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridComp_ExtData.yaml @@ -220,11 +220,11 @@ Exports: climBCphilic: collection: CA2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: CA2G_sample_0 - variable: BCphilic + variable: BCPHILIC climBCphobic: collection: CA2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: CA2G_sample_0 - variable: BCphobic + variable: BCPHOBIC climOCDP001: collection: CA2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 sample: CA2G_sample_0 @@ -260,11 +260,51 @@ Exports: climOCphilic: collection: CA2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: CA2G_sample_0 - variable: OCphilic + variable: OCPHILIC climOCphobic: collection: CA2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: CA2G_sample_0 - variable: OCphobic + variable: OCPHOBIC + climBRDP001: + collection: /dev/null + sample: CA2G_sample_0 + variable: BRDP001 + climBRDP002: + collection: /dev/null + sample: CA2G_sample_0 + variable: BRDP002 + climBRSD001: + collection: /dev/null + sample: CA2G_sample_0 + variable: BRSD001 + climBRSD002: + collection: /dev/null + sample: CA2G_sample_0 + variable: BRSD002 + climBRSV001: + collection: /dev/null + sample: CA2G_sample_0 + variable: BRSV001 + climBRSV002: + collection: /dev/null + sample: CA2G_sample_0 + variable: BRSV002 + climBRWT001: + collection: /dev/null + sample: CA2G_sample_0 + variable: BRWT001 + climBRWT002: + collection: /dev/null + sample: CA2G_sample_0 + variable: BRWT002 + climBRphilic: + collection: /dev/null + sample: CA2G_sample_0 + variable: BRPHILIC + climBRphobic: + collection: /dev/null + sample: CA2G_sample_0 + variable: BRPHOBIC pSOA_ANTHRO_VOC: collection: /dev/null regrid: CONSERVE diff --git a/ESMF/GOCART2G_GridComp/DU2G_GridComp/AMIP/DU2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/DU2G_GridComp/AMIP/DU2G_GridComp_ExtData.yaml index a851a547..916e9fd9 100644 --- a/ESMF/GOCART2G_GridComp/DU2G_GridComp/AMIP/DU2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/DU2G_GridComp/AMIP/DU2G_GridComp_ExtData.yaml @@ -8,7 +8,7 @@ Collections: DU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4: template: ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4: - template: ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 + template: /dev/null DU2G_gocart.dust_source.v5a.x1152_y721.nc: template: ExtData/chemistry/DUST/v0.0.0/sfc/gocart.dust_source.v5a.x1152_y721.nc DU2G_qvi.006.%y4.nc4: @@ -150,21 +150,21 @@ Exports: climdu001: collection: DU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: DU2G_sample_2 - variable: du001 + variable: DU001 climdu002: collection: DU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: DU2G_sample_2 - variable: du002 + variable: DU002 climdu003: collection: DU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: DU2G_sample_2 - variable: du003 + variable: DU003 climdu004: collection: DU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: DU2G_sample_2 - variable: du004 + variable: DU004 climdu005: collection: DU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: DU2G_sample_2 - variable: du005 + variable: DU005 diff --git a/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridComp_ExtData.rc b/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridComp_ExtData.rc index 0a5e62ae..4293cbc3 100644 --- a/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridComp_ExtData.rc +++ b/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridComp_ExtData.rc @@ -15,37 +15,37 @@ DU_Z0 NA N Y - none none roughness ExtData/chemistry/DUST/v0.0.0/sfc/a DU_GVF NA N Y %y4-%m2-%d2t12:00:00 none none gvf ExtData/chemistry/NDVI/v1.0.r3/sfc/qvi.006.%y4.nc4 # DU data - 3D -climdu001 'kg kg-1' Y N 0 0.0 1.0 du001 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 -climdu002 'kg kg-1' Y N 0 0.0 1.0 du002 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 -climdu003 'kg kg-1' Y N 0 0.0 1.0 du003 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 -climdu004 'kg kg-1' Y N 0 0.0 1.0 du004 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 -climdu005 'kg kg-1' Y N 0 0.0 1.0 du005 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climdu001 'kg kg-1' Y N 0 0.0 1.0 DU001 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climdu002 'kg kg-1' Y N 0 0.0 1.0 DU002 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climdu003 'kg kg-1' Y N 0 0.0 1.0 DU003 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climdu004 'kg kg-1' Y N 0 0.0 1.0 DU004 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climdu005 'kg kg-1' Y N 0 0.0 1.0 DU005 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 # DU data - 2D -climDUDP001 'kg m-2 s-1' Y N 0 0.0 1.0 DUDP001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climDUWT001 'kg m-2 s-1' Y N 0 0.0 1.0 DUWT001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climDUSD001 'kg m-2 s-1' Y N 0 0.0 1.0 DUSD001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climDUSV001 'kg m-2 s-1' Y N 0 0.0 1.0 DUSV001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - -climDUDP002 'kg m-2 s-1' Y N 0 0.0 1.0 DUDP002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climDUWT002 'kg m-2 s-1' Y N 0 0.0 1.0 DUWT002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climDUSD002 'kg m-2 s-1' Y N 0 0.0 1.0 DUSD002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climDUSV002 'kg m-2 s-1' Y N 0 0.0 1.0 DUSV002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - -climDUDP003 'kg m-2 s-1' Y N 0 0.0 1.0 DUDP003 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climDUWT003 'kg m-2 s-1' Y N 0 0.0 1.0 DUWT003 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climDUSD003 'kg m-2 s-1' Y N 0 0.0 1.0 DUSD003 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climDUSV003 'kg m-2 s-1' Y N 0 0.0 1.0 DUSV003 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - -climDUDP004 'kg m-2 s-1' Y N 0 0.0 1.0 DUDP004 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climDUWT004 'kg m-2 s-1' Y N 0 0.0 1.0 DUWT004 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climDUSD004 'kg m-2 s-1' Y N 0 0.0 1.0 DUSD004 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climDUSV004 'kg m-2 s-1' Y N 0 0.0 1.0 DUSV004 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - -climDUDP005 'kg m-2 s-1' Y N 0 0.0 1.0 DUDP005 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climDUWT005 'kg m-2 s-1' Y N 0 0.0 1.0 DUWT005 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climDUSD005 'kg m-2 s-1' Y N 0 0.0 1.0 DUSD005 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climDUSV005 'kg m-2 s-1' Y N 0 0.0 1.0 DUSV005 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climDUDP001 'kg m-2 s-1' Y N 0 0.0 1.0 DUDP001 /dev/null +climDUWT001 'kg m-2 s-1' Y N 0 0.0 1.0 DUWT001 /dev/null +climDUSD001 'kg m-2 s-1' Y N 0 0.0 1.0 DUSD001 /dev/null +climDUSV001 'kg m-2 s-1' Y N 0 0.0 1.0 DUSV001 /dev/null + +climDUDP002 'kg m-2 s-1' Y N 0 0.0 1.0 DUDP002 /dev/null +climDUWT002 'kg m-2 s-1' Y N 0 0.0 1.0 DUWT002 /dev/null +climDUSD002 'kg m-2 s-1' Y N 0 0.0 1.0 DUSD002 /dev/null +climDUSV002 'kg m-2 s-1' Y N 0 0.0 1.0 DUSV002 /dev/null + +climDUDP003 'kg m-2 s-1' Y N 0 0.0 1.0 DUDP003 /dev/null +climDUWT003 'kg m-2 s-1' Y N 0 0.0 1.0 DUWT003 /dev/null +climDUSD003 'kg m-2 s-1' Y N 0 0.0 1.0 DUSD003 /dev/null +climDUSV003 'kg m-2 s-1' Y N 0 0.0 1.0 DUSV003 /dev/null + +climDUDP004 'kg m-2 s-1' Y N 0 0.0 1.0 DUDP004 /dev/null +climDUWT004 'kg m-2 s-1' Y N 0 0.0 1.0 DUWT004 /dev/null +climDUSD004 'kg m-2 s-1' Y N 0 0.0 1.0 DUSD004 /dev/null +climDUSV004 'kg m-2 s-1' Y N 0 0.0 1.0 DUSV004 /dev/null + +climDUDP005 'kg m-2 s-1' Y N 0 0.0 1.0 DUDP005 /dev/null +climDUWT005 'kg m-2 s-1' Y N 0 0.0 1.0 DUWT005 /dev/null +climDUSD005 'kg m-2 s-1' Y N 0 0.0 1.0 DUSD005 /dev/null +climDUSV005 'kg m-2 s-1' Y N 0 0.0 1.0 DUSV005 /dev/null %% diff --git a/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridComp_ExtData.yaml index a851a547..916e9fd9 100644 --- a/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridComp_ExtData.yaml @@ -8,7 +8,7 @@ Collections: DU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4: template: ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4: - template: ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 + template: /dev/null DU2G_gocart.dust_source.v5a.x1152_y721.nc: template: ExtData/chemistry/DUST/v0.0.0/sfc/gocart.dust_source.v5a.x1152_y721.nc DU2G_qvi.006.%y4.nc4: @@ -150,21 +150,21 @@ Exports: climdu001: collection: DU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: DU2G_sample_2 - variable: du001 + variable: DU001 climdu002: collection: DU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: DU2G_sample_2 - variable: du002 + variable: DU002 climdu003: collection: DU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: DU2G_sample_2 - variable: du003 + variable: DU003 climdu004: collection: DU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: DU2G_sample_2 - variable: du004 + variable: DU004 climdu005: collection: DU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: DU2G_sample_2 - variable: du005 + variable: DU005 diff --git a/ESMF/GOCART2G_GridComp/NI2G_GridComp/AMIP.20C/NI2G_GridComp_ExtData.rc b/ESMF/GOCART2G_GridComp/NI2G_GridComp/AMIP.20C/NI2G_GridComp_ExtData.rc index 366cb441..d09decb3 100644 --- a/ESMF/GOCART2G_GridComp/NI2G_GridComp/AMIP.20C/NI2G_GridComp_ExtData.rc +++ b/ESMF/GOCART2G_GridComp/NI2G_GridComp/AMIP.20C/NI2G_GridComp_ExtData.rc @@ -5,9 +5,9 @@ PrimaryExports%% # -------------|-------|-------|--------|----------------------|--------|--------|-------------|----------|----------- # ======= Nitrate Data Instance ========== -climNO3an1 'kg kg-1' N Y F0 none none NO3AN1 /discover/nobackup/projects/gmao/gmao_ops/pub/fp/das/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 2017-02-01T00:00:00P03:00 -climNO3an2 'kg kg-1' N Y F0 none none NO3AN2 /discover/nobackup/projects/gmao/gmao_ops/pub/fp/das/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 2017-02-01T00:00:00P03:00 -climNO3an3 'kg kg-1' N Y F0 none none NO3AN3 /discover/nobackup/projects/gmao/gmao_ops/pub/fp/das/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 2017-02-01T00:00:00P03:00 +climNO3an1 'kg kg-1' N Y F0 none none NO3AN1 /dev/null +climNO3an2 'kg kg-1' N Y F0 none none NO3AN2 /dev/null +climNO3an3 'kg kg-1' N Y F0 none none NO3AN3 /dev/null # ======= Nitrate Sources ======== EMI_NH3_BB 'kg m-2 s-1' N Y %y4-%m2-%d2T12:00:00 none 0.778 biomass ExtData/chemistry/HFED/v1.0/Y%y4/hfed.emis_nh3.x576_y361_t14.%y4.nc4 diff --git a/ESMF/GOCART2G_GridComp/NI2G_GridComp/AMIP/NI2G_GridComp_ExtData.rc b/ESMF/GOCART2G_GridComp/NI2G_GridComp/AMIP/NI2G_GridComp_ExtData.rc index de55d3c5..549bdca2 100644 --- a/ESMF/GOCART2G_GridComp/NI2G_GridComp/AMIP/NI2G_GridComp_ExtData.rc +++ b/ESMF/GOCART2G_GridComp/NI2G_GridComp/AMIP/NI2G_GridComp_ExtData.rc @@ -5,9 +5,9 @@ PrimaryExports%% # -------------|-------|-------|--------|----------------------|--------|--------|-------------|----------|----------- # ======= Nitrate Data Instance ========== -climNO3an1 'kg kg-1' N Y F0 none none NO3AN1 /discover/nobackup/projects/gmao/gmao_ops/pub/fp/das/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 2017-02-01T00:00:00P03:00 -climNO3an2 'kg kg-1' N Y F0 none none NO3AN2 /discover/nobackup/projects/gmao/gmao_ops/pub/fp/das/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 2017-02-01T00:00:00P03:00 -climNO3an3 'kg kg-1' N Y F0 none none NO3AN3 /discover/nobackup/projects/gmao/gmao_ops/pub/fp/das/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 2017-02-01T00:00:00P03:00 +climNO3an1 'kg kg-1' N Y F0 none none NO3AN1 /dev/null +climNO3an2 'kg kg-1' N Y F0 none none NO3AN2 /dev/null +climNO3an3 'kg kg-1' N Y F0 none none NO3AN3 /dev/null # ======= Nitrate Sources ======== EMI_NH3_BB 'kg m-2 s-1' N Y %y4-%m2-%d2T12:00:00 none 0.778 biomass ExtData/chemistry/QFED/v2.6r1/sfc/0.1/Y%y4/M%m2/qfed2.emis_nh3.061.%y4%m2%d2.nc4 diff --git a/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridComp_ExtData.rc b/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridComp_ExtData.rc index 8a84b024..2b571336 100644 --- a/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridComp_ExtData.rc +++ b/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridComp_ExtData.rc @@ -5,9 +5,9 @@ PrimaryExports%% # -------------|-------|-------|--------|----------------------|--------|--------|-------------|----------|----------- # ======= Nitrate Data Instance ========== -climNO3an1 'kg kg-1' N Y F0 none none NO3AN1 /discover/nobackup/projects/gmao/gmao_ops/pub/fp/das/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 2017-02-01T00:00:00P03:00 -climNO3an2 'kg kg-1' N Y F0 none none NO3AN2 /discover/nobackup/projects/gmao/gmao_ops/pub/fp/das/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 2017-02-01T00:00:00P03:00 -climNO3an3 'kg kg-1' N Y F0 none none NO3AN3 /discover/nobackup/projects/gmao/gmao_ops/pub/fp/das/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 2017-02-01T00:00:00P03:00 +climNO3an1 'kg kg-1' N Y F0 none none NO3AN1 /dev/null +climNO3an2 'kg kg-1' N Y F0 none none NO3AN2 /dev/null +climNO3an3 'kg kg-1' N Y F0 none none NO3AN3 /dev/null # ======= Nitrate Sources ======== EMI_NH3_BB 'kg m-2 s-1' N Y %y4-%m2-%d2T12:00:00 none 0.778 biomass ExtData/chemistry/QFED/v2.5r1-nrt/sfc/0.1/Y%y4/M%m2/qfed2.emis_nh3.006.%y4%m2%d2.nc4 diff --git a/ESMF/GOCART2G_GridComp/SS2G_GridComp/AMIP/SS2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/SS2G_GridComp/AMIP/SS2G_GridComp_ExtData.yaml index 251e1063..6d22a2a3 100644 --- a/ESMF/GOCART2G_GridComp/SS2G_GridComp/AMIP/SS2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/SS2G_GridComp/AMIP/SS2G_GridComp_ExtData.yaml @@ -2,7 +2,7 @@ Collections: SS2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4: template: ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4: - template: ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 + template: /dev/null Samplings: SS2G_sample_0: @@ -92,21 +92,21 @@ Exports: climss001: collection: SS2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: SS2G_sample_0 - variable: ss001 + variable: SS001 climss002: collection: SS2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: SS2G_sample_0 - variable: ss002 + variable: SS002 climss003: collection: SS2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: SS2G_sample_0 - variable: ss003 + variable: SS003 climss004: collection: SS2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: SS2G_sample_0 - variable: ss004 + variable: SS004 climss005: collection: SS2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: SS2G_sample_0 - variable: ss005 + variable: SS005 diff --git a/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridCompMod.F90 index c65a0407..1dfbab03 100644 --- a/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridCompMod.F90 @@ -167,6 +167,16 @@ subroutine SetServices ( GC, RC ) add2export=.true., __RC__) + call MAPL_AddInternalSpec(gc,& + & short_name='DEEP_LAKES_MASK', & + & units='1', & + & dims=MAPL_DimsHorzOnly, & + & vlocation=MAPL_VlocationNone, & + & add2export=.false., & + & long_name='Deep Lakes Mask', & + & _RC) + + ! Pressure at layer edges ! ----------------------- call MAPL_AddImportSpec(GC, & @@ -416,7 +426,7 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) call ESMF_StateGet (export, trim(COMP_NAME)//'_AERO_DP' , Bundle_DP, __RC__) call ESMF_StateGet (internal, 'SS', field, __RC__) - call ESMF_AttributeSet(field, NAME='klid', value=self%klid, __RC__) +! call ESMF_AttributeSet(field, NAME='klid', value=self%klid, __RC__) fld = MAPL_FieldCreate (field, 'SS', __RC__) call MAPL_StateAdd (aero, fld, __RC__) @@ -493,22 +503,17 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) ! call MAPL_StateAdd (aero, field, __RC__) ! call ESMF_StateGet (import, 'RH2', field, __RC__) ! call MAPL_StateAdd (aero, field, __RC__) - call add_aero (aero, label='extinction_in_air_due_to_ambient_aerosol', label2='EXT', grid=grid, typekind=MAPL_R8,__RC__) call add_aero (aero, label='single_scattering_albedo_of_ambient_aerosol', label2='SSA', grid=grid, typekind=MAPL_R8,__RC__) call add_aero (aero, label='asymmetry_parameter_of_ambient_aerosol', label2='ASY', grid=grid, typekind=MAPL_R8,__RC__) call add_aero (aero, label='monochromatic_extinction_in_air_due_to_ambient_aerosol', & label2='monochromatic_EXT', grid=grid, typekind=MAPL_R4,__RC__) call add_aero (aero, label='sum_of_internalState_aerosol', label2='aerosolSum', grid=grid, typekind=MAPL_R4, __RC__) - call ESMF_AttributeSet (aero, name='band_for_aerosol_optics', value=0, __RC__) call ESMF_AttributeSet (aero, name='wavelength_for_aerosol_optics', value=0., __RC__) - mieTable_pointer = transfer(c_loc(self), [1]) call ESMF_AttributeSet (aero, name='mieTable_pointer', valueList=mieTable_pointer, itemCount=size(mieTable_pointer), __RC__) - call ESMF_AttributeSet (aero, name='internal_variable_name', value='SS', __RC__) - call ESMF_MethodAdd (aero, label='aerosol_optics', userRoutine=aerosol_optics, __RC__) call ESMF_MethodAdd (aero, label='monochromatic_aerosol_optics', userRoutine=monochromatic_aerosol_optics, __RC__) call ESMF_MethodAdd (aero, label='get_mixR', userRoutine=get_mixR, __RC__) @@ -520,7 +525,6 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) call MAPL_GetPointer (internal, NAME='DEEP_LAKES_MASK', ptr=deep_lakes_mask, __RC__) call deepLakesMask (lons, lats, real(MAPL_RADIANS_TO_DEGREES), deep_lakes_mask, __RC__) - RETURN_(ESMF_SUCCESS) end subroutine Initialize diff --git a/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridComp_ExtData.rc b/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridComp_ExtData.rc index 94f1390f..f237f121 100644 --- a/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridComp_ExtData.rc +++ b/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridComp_ExtData.rc @@ -5,40 +5,40 @@ PrimaryExports%% # -------------|-------|-------|--------|----------------------|--------|--------|-------------|----------| # SS.data - 3D -climss001 'kg kg-1' Y N 0 0.0 1.0 ss001 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 -climss002 'kg kg-1' Y N 0 0.0 1.0 ss002 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 -climss003 'kg kg-1' Y N 0 0.0 1.0 ss003 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 -climss004 'kg kg-1' Y N 0 0.0 1.0 ss004 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 -climss005 'kg kg-1' Y N 0 0.0 1.0 ss005 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climss001 'kg kg-1' Y N 0 0.0 1.0 SS001 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climss002 'kg kg-1' Y N 0 0.0 1.0 SS002 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climss003 'kg kg-1' Y N 0 0.0 1.0 SS003 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climss004 'kg kg-1' Y N 0 0.0 1.0 SS004 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climss005 'kg kg-1' Y N 0 0.0 1.0 SS005 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 # SS.data - 2D -climSSDP001 'kg m-2 s-1' Y N 0 0.0 1.0 SSDP001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climSSWT001 'kg m-2 s-1' Y N 0 0.0 1.0 SSWT001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climSSSD001 'kg m-2 s-1' Y N 0 0.0 1.0 SSSD001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climSSSV001 'kg m-2 s-1' Y N 0 0.0 1.0 SSSV001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climSSDP001 'kg m-2 s-1' Y N 0 0.0 1.0 SSDP001 /dev/null +climSSWT001 'kg m-2 s-1' Y N 0 0.0 1.0 SSWT001 /dev/null +climSSSD001 'kg m-2 s-1' Y N 0 0.0 1.0 SSSD001 /dev/null +climSSSV001 'kg m-2 s-1' Y N 0 0.0 1.0 SSSV001 /dev/null -climSSDP002 'kg m-2 s-1' Y N 0 0.0 1.0 SSDP002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climSSWT002 'kg m-2 s-1' Y N 0 0.0 1.0 SSWT002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climSSSD002 'kg m-2 s-1' Y N 0 0.0 1.0 SSSD002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climSSSV002 'kg m-2 s-1' Y N 0 0.0 1.0 SSSV002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climSSDP002 'kg m-2 s-1' Y N 0 0.0 1.0 SSDP002 /dev/null +climSSWT002 'kg m-2 s-1' Y N 0 0.0 1.0 SSWT002 /dev/null +climSSSD002 'kg m-2 s-1' Y N 0 0.0 1.0 SSSD002 /dev/null +climSSSV002 'kg m-2 s-1' Y N 0 0.0 1.0 SSSV002 /dev/null -climSSDP003 'kg m-2 s-1' Y N 0 0.0 1.0 SSDP003 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climSSWT003 'kg m-2 s-1' Y N 0 0.0 1.0 SSWT003 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climSSSD003 'kg m-2 s-1' Y N 0 0.0 1.0 SSSD003 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climSSSV003 'kg m-2 s-1' Y N 0 0.0 1.0 SSSV003 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climSSDP003 'kg m-2 s-1' Y N 0 0.0 1.0 SSDP003 /dev/null +climSSWT003 'kg m-2 s-1' Y N 0 0.0 1.0 SSWT003 /dev/null +climSSSD003 'kg m-2 s-1' Y N 0 0.0 1.0 SSSD003 /dev/null +climSSSV003 'kg m-2 s-1' Y N 0 0.0 1.0 SSSV003 /dev/null -climSSDP004 'kg m-2 s-1' Y N 0 0.0 1.0 SSDP004 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climSSWT004 'kg m-2 s-1' Y N 0 0.0 1.0 SSWT004 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climSSSD004 'kg m-2 s-1' Y N 0 0.0 1.0 SSSD004 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climSSSV004 'kg m-2 s-1' Y N 0 0.0 1.0 SSSV004 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climSSDP004 'kg m-2 s-1' Y N 0 0.0 1.0 SSDP004 /dev/null +climSSWT004 'kg m-2 s-1' Y N 0 0.0 1.0 SSWT004 /dev/null +climSSSD004 'kg m-2 s-1' Y N 0 0.0 1.0 SSSD004 /dev/null +climSSSV004 'kg m-2 s-1' Y N 0 0.0 1.0 SSSV004 /dev/null -climSSDP005 'kg m-2 s-1' Y N 0 0.0 1.0 SSDP005 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climSSWT005 'kg m-2 s-1' Y N 0 0.0 1.0 SSWT005 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climSSSD005 'kg m-2 s-1' Y N 0 0.0 1.0 SSSD005 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climSSSV005 'kg m-2 s-1' Y N 0 0.0 1.0 SSSV005 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climSSDP005 'kg m-2 s-1' Y N 0 0.0 1.0 SSDP005 /dev/null +climSSWT005 'kg m-2 s-1' Y N 0 0.0 1.0 SSWT005 /dev/null +climSSSD005 'kg m-2 s-1' Y N 0 0.0 1.0 SSSD005 /dev/null +climSSSV005 'kg m-2 s-1' Y N 0 0.0 1.0 SSSV005 /dev/null %% diff --git a/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridComp_ExtData.yaml index 251e1063..6d22a2a3 100644 --- a/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridComp_ExtData.yaml @@ -2,7 +2,7 @@ Collections: SS2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4: template: ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4: - template: ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 + template: /dev/null Samplings: SS2G_sample_0: @@ -92,21 +92,21 @@ Exports: climss001: collection: SS2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: SS2G_sample_0 - variable: ss001 + variable: SS001 climss002: collection: SS2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: SS2G_sample_0 - variable: ss002 + variable: SS002 climss003: collection: SS2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: SS2G_sample_0 - variable: ss003 + variable: SS003 climss004: collection: SS2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: SS2G_sample_0 - variable: ss004 + variable: SS004 climss005: collection: SS2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: SS2G_sample_0 - variable: ss005 + variable: SS005 diff --git a/ESMF/GOCART2G_GridComp/SU2G_GridComp/AMIP.20C/SU2G_GridComp_ExtData.rc b/ESMF/GOCART2G_GridComp/SU2G_GridComp/AMIP.20C/SU2G_GridComp_ExtData.rc index 400a635a..ea89f3a1 100644 --- a/ESMF/GOCART2G_GridComp/SU2G_GridComp/AMIP.20C/SU2G_GridComp_ExtData.rc +++ b/ESMF/GOCART2G_GridComp/SU2G_GridComp/AMIP.20C/SU2G_GridComp_ExtData.rc @@ -10,25 +10,25 @@ climSO4 'kg kg-1' Y N 0 0.0 1.0 #climMSA 'kg kg-1' Y N - 0.0 1.0 none /dev/null #climSO2 'kg kg-1' Y N - 0.0 1.0 none /dev/null -climSUDP001 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climSUWT001 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climSUDP001 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP001 /dev/null +climSUWT001 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT001 /dev/null climSUSD001 'kg m-2 s-1' Y N 0 0.0 1.0 SUSD001 /dev/null -climSUSV001 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climSUSV001 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV001 /dev/null -climSUDP002 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climSUWT002 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climSUDP002 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP002 /dev/null +climSUWT002 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT002 /dev/null climSUSD002 'kg m-2 s-1' Y N 0 0.0 1.0 SUSD002 /dev/null -climSUSV002 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climSUSV002 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV002 /dev/null -climSUDP003 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP003 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climSUWT003 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT003 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climSUDP003 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP003 /dev/null +climSUWT003 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT003 /dev/null climSUSD003 'kg m-2 s-1' Y N 0 0.0 1.0 SUSD003 /dev/null -climSUSV003 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV003 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climSUSV003 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV003 /dev/null -climSUDP004 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP004 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climSUWT004 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT004 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climSUDP004 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP004 /dev/null +climSUWT004 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT004 /dev/null climSUSD004 'kg m-2 s-1' Y N 0 0.0 1.0 SUSD004 /dev/null -climSUSV004 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV004 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climSUSV004 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV004 /dev/null #====== Sulfate Sources ================================================= diff --git a/ESMF/GOCART2G_GridComp/SU2G_GridComp/AMIP/SU2G_GridComp_ExtData.rc b/ESMF/GOCART2G_GridComp/SU2G_GridComp/AMIP/SU2G_GridComp_ExtData.rc index 9bfe1831..7f5a9e02 100644 --- a/ESMF/GOCART2G_GridComp/SU2G_GridComp/AMIP/SU2G_GridComp_ExtData.rc +++ b/ESMF/GOCART2G_GridComp/SU2G_GridComp/AMIP/SU2G_GridComp_ExtData.rc @@ -10,25 +10,25 @@ climSO4 'kg kg-1' Y N 0 0.0 1.0 #climMSA 'kg kg-1' Y N - 0.0 1.0 none /dev/null #climSO2 'kg kg-1' Y N - 0.0 1.0 none /dev/null -climSUDP001 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climSUWT001 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climSUDP001 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP001 /dev/null +climSUWT001 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT001 /dev/null climSUSD001 'kg m-2 s-1' Y N 0 0.0 1.0 SUSD001 /dev/null -climSUSV001 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climSUSV001 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV001 /dev/null -climSUDP002 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climSUWT002 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climSUDP002 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP002 /dev/null +climSUWT002 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT002 /dev/null climSUSD002 'kg m-2 s-1' Y N 0 0.0 1.0 SUSD002 /dev/null -climSUSV002 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climSUSV002 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV002 /dev/null -climSUDP003 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP003 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climSUWT003 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT003 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climSUDP003 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP003 /dev/null +climSUWT003 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT003 /dev/null climSUSD003 'kg m-2 s-1' Y N 0 0.0 1.0 SUSD003 /dev/null -climSUSV003 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV003 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climSUSV003 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV003 /dev/null -climSUDP004 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP004 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climSUWT004 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT004 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climSUDP004 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP004 /dev/null +climSUWT004 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT004 /dev/null climSUSD004 'kg m-2 s-1' Y N 0 0.0 1.0 SUSD004 /dev/null -climSUSV004 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV004 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climSUSV004 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV004 /dev/null #====== Sulfate Sources ================================================= diff --git a/ESMF/GOCART2G_GridComp/SU2G_GridComp/AMIP/SU2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/SU2G_GridComp/AMIP/SU2G_GridComp_ExtData.yaml index 0df14b74..d6a8f195 100644 --- a/ESMF/GOCART2G_GridComp/SU2G_GridComp/AMIP/SU2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/SU2G_GridComp/AMIP/SU2G_GridComp_ExtData.yaml @@ -122,19 +122,19 @@ Exports: sample: SU2G_sample_0 variable: SUDP004 climSUSD001: - collection: /dev/null + collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 sample: SU2G_sample_0 variable: SUSD001 climSUSD002: - collection: /dev/null + collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 sample: SU2G_sample_0 variable: SUSD002 climSUSD003: - collection: /dev/null + collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 sample: SU2G_sample_0 variable: SUSD003 climSUSD004: - collection: /dev/null + collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 sample: SU2G_sample_0 variable: SUSD004 climSUSV001: diff --git a/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridComp_ExtData.rc b/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridComp_ExtData.rc index cbcedb56..d5ef60c0 100644 --- a/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridComp_ExtData.rc +++ b/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridComp_ExtData.rc @@ -10,25 +10,25 @@ climSO4 'kg kg-1' Y N 0 0.0 1.0 #climMSA 'kg kg-1' Y N - 0.0 1.0 none /dev/null #climSO2 'kg kg-1' Y N - 0.0 1.0 none /dev/null -climSUDP001 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climSUWT001 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climSUDP001 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP001 /dev/null +climSUWT001 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT001 /dev/null climSUSD001 'kg m-2 s-1' Y N 0 0.0 1.0 SUSD001 /dev/null -climSUSV001 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV001 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climSUSV001 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV001 /dev/null -climSUDP002 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climSUWT002 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climSUDP002 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP002 /dev/null +climSUWT002 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT002 /dev/null climSUSD002 'kg m-2 s-1' Y N 0 0.0 1.0 SUSD002 /dev/null -climSUSV002 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV002 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climSUSV002 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV002 /dev/null -climSUDP003 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP003 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climSUWT003 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT003 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climSUDP003 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP003 /dev/null +climSUWT003 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT003 /dev/null climSUSD003 'kg m-2 s-1' Y N 0 0.0 1.0 SUSD003 /dev/null -climSUSV003 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV003 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climSUSV003 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV003 /dev/null -climSUDP004 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP004 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 -climSUWT004 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT004 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climSUDP004 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP004 /dev/null +climSUWT004 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT004 /dev/null climSUSD004 'kg m-2 s-1' Y N 0 0.0 1.0 SUSD004 /dev/null -climSUSV004 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV004 ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 +climSUSV004 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV004 /dev/null #====== Sulfate Sources ================================================= diff --git a/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridComp_ExtData.yaml index fcef1bf0..7a53fe2d 100644 --- a/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridComp_ExtData.yaml @@ -122,19 +122,19 @@ Exports: sample: SU2G_sample_0 variable: SUDP004 climSUSD001: - collection: /dev/null + collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 sample: SU2G_sample_0 variable: SUSD001 climSUSD002: - collection: /dev/null + collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 sample: SU2G_sample_0 variable: SUSD002 climSUSD003: - collection: /dev/null + collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 sample: SU2G_sample_0 variable: SUSD003 climSUSD004: - collection: /dev/null + collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 sample: SU2G_sample_0 variable: SUSD004 climSUSV001: From f1998858237de0b03e7eb7fd9d52b15e7e2ddcd5 Mon Sep 17 00:00:00 2001 From: Peter Colarco Date: Mon, 27 Feb 2023 14:52:50 -0500 Subject: [PATCH 02/36] prc: forgot to check in needed data driven imports for brown carbon --- .../CA2G_GridComp/AMIP.20C/CA2G_GridComp_ExtData.rc | 12 ++++++++++++ .../CA2G_GridComp/AMIP/CA2G_GridComp_ExtData.rc | 12 ++++++++++++ 2 files changed, 24 insertions(+) diff --git a/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP.20C/CA2G_GridComp_ExtData.rc b/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP.20C/CA2G_GridComp_ExtData.rc index 228a00d6..736a0008 100644 --- a/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP.20C/CA2G_GridComp_ExtData.rc +++ b/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP.20C/CA2G_GridComp_ExtData.rc @@ -10,6 +10,8 @@ climBCphobic 'kg kg-1' Y N 0 0.0 1.0 climBCphilic 'kg kg-1' Y N 0 0.0 1.0 BCPHILIC ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 climOCphobic 'kg kg-1' Y N 0 0.0 1.0 OCPHOBIC ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 climOCphilic 'kg kg-1' Y N 0 0.0 1.0 OCPHILIC ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climBRphobic 'kg kg-1' Y N 0 0.0 1.0 BRPHOBIC /dev/null +climBRphilic 'kg kg-1' Y N 0 0.0 1.0 BRPHILIC /dev/null climBCDP001 'kg m-2 s-1' Y N 0 0.0 1.0 BCDP001 /dev/null climBCWT001 'kg m-2 s-1' Y N 0 0.0 1.0 BCWT001 /dev/null @@ -31,6 +33,16 @@ climOCWT002 'kg m-2 s-1' Y N 0 0.0 1.0 climOCSD002 'kg m-2 s-1' Y N 0 0.0 1.0 OCSD002 /dev/null climOCSV002 'kg m-2 s-1' Y N 0 0.0 1.0 OCSV002 /dev/null +climBRDP001 'kg m-2 s-1' Y N 0 0.0 1.0 BRDP001 /dev/null +climBRWT001 'kg m-2 s-1' Y N 0 0.0 1.0 BRWT001 /dev/null +climBRSD001 'kg m-2 s-1' Y N 0 0.0 1.0 BRSD001 /dev/null +climBRSV001 'kg m-2 s-1' Y N 0 0.0 1.0 BRSV001 /dev/null + +climBRDP002 'kg m-2 s-1' Y N 0 0.0 1.0 BRDP002 /dev/null +climBRWT002 'kg m-2 s-1' Y N 0 0.0 1.0 BRWT002 /dev/null +climBRSD002 'kg m-2 s-1' Y N 0 0.0 1.0 BRSD002 /dev/null +climBRSV002 'kg m-2 s-1' Y N 0 0.0 1.0 BRSV002 /dev/null + #=========== Carbonaceous aerosol sources =========================================== # ORGANIC CARBON diff --git a/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP/CA2G_GridComp_ExtData.rc b/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP/CA2G_GridComp_ExtData.rc index 1c9eb46f..43ed7284 100644 --- a/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP/CA2G_GridComp_ExtData.rc +++ b/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP/CA2G_GridComp_ExtData.rc @@ -10,6 +10,8 @@ climBCphobic 'kg kg-1' Y N 0 0.0 1.0 climBCphilic 'kg kg-1' Y N 0 0.0 1.0 BCPHILIC ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 climOCphobic 'kg kg-1' Y N 0 0.0 1.0 OCPHOBIC ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 climOCphilic 'kg kg-1' Y N 0 0.0 1.0 OCPHILIC ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climBRphobic 'kg kg-1' Y N 0 0.0 1.0 BRPHOBIC /dev/null +climBRphilic 'kg kg-1' Y N 0 0.0 1.0 BRPHILIC /dev/null climBCDP001 'kg m-2 s-1' Y N 0 0.0 1.0 BCDP001 /dev/null climBCWT001 'kg m-2 s-1' Y N 0 0.0 1.0 BCWT001 /dev/null @@ -31,6 +33,16 @@ climOCWT002 'kg m-2 s-1' Y N 0 0.0 1.0 climOCSD002 'kg m-2 s-1' Y N 0 0.0 1.0 OCSD002 /dev/null climOCSV002 'kg m-2 s-1' Y N 0 0.0 1.0 OCSV002 /dev/null +climBRDP001 'kg m-2 s-1' Y N 0 0.0 1.0 BRDP001 /dev/null +climBRWT001 'kg m-2 s-1' Y N 0 0.0 1.0 BRWT001 /dev/null +climBRSD001 'kg m-2 s-1' Y N 0 0.0 1.0 BRSD001 /dev/null +climBRSV001 'kg m-2 s-1' Y N 0 0.0 1.0 BRSV001 /dev/null + +climBRDP002 'kg m-2 s-1' Y N 0 0.0 1.0 BRDP002 /dev/null +climBRWT002 'kg m-2 s-1' Y N 0 0.0 1.0 BRWT002 /dev/null +climBRSD002 'kg m-2 s-1' Y N 0 0.0 1.0 BRSD002 /dev/null +climBRSV002 'kg m-2 s-1' Y N 0 0.0 1.0 BRSV002 /dev/null + #=========== Carbonaceous aerosol sources =========================================== # ORGANIC CARBON From 2022e4db3a8015a906b4bdd75c7373350ff691ff Mon Sep 17 00:00:00 2001 From: William Putman Date: Wed, 1 Mar 2023 12:53:40 -0500 Subject: [PATCH 03/36] MSTRF updates for GOCART --- .../GOCART2G_GridCompMod.F90 | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/ESMF/GOCART2G_GridComp/GOCART2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/GOCART2G_GridCompMod.F90 index c4096081..fd64626e 100644 --- a/ESMF/GOCART2G_GridComp/GOCART2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/GOCART2G_GridCompMod.F90 @@ -415,17 +415,12 @@ subroutine Initialize (GC, import, export, clock, RC) call ESMF_ConfigGetAttribute(CF, CCNtuning, default=1.8, label='CCNTUNING:', __RC__) call ESMF_AttributeSet(aero, name='ccn_tuning', value=CCNtuning, __RC__) - call ESMF_ConfigGetAttribute( CF, CLDMICRO, Label='CLDMICRO:', default="1MOMENT", RC=STATUS) + call ESMF_ConfigGetAttribute( CF, CLDMICRO, Label='CLDMICR_OPTION:', default="BACM_1M", RC=STATUS) call ESMF_AttributeSet(aero, name='cldmicro', value=CLDMICRO, __RC__) ! scaling factor for sea salt - if(adjustl(CLDMICRO)=="2MOMENT") then - call ESMF_ConfigGetAttribute(CF, f_aci_seasalt, default=4.0, label='SS_SCALE:', __RC__) - call ESMF_AttributeSet(aero, name='seasalt_scaling_factor', value=f_aci_seasalt, __RC__) - else - call ESMF_ConfigGetAttribute(CF, f_aci_seasalt, default=14.0, label='SS_SCALE:', __RC__) - call ESMF_AttributeSet(aero, name='seasalt_scaling_factor', value=f_aci_seasalt, __RC__) - endif + call ESMF_ConfigGetAttribute(CF, f_aci_seasalt, default=0.0, label='SS_SCALE:', __RC__) + call ESMF_AttributeSet(aero, name='seasalt_scaling_factor', value=f_aci_seasalt, __RC__) ! Add variables to AERO state call add_aero (aero, label='air_temperature', label2='T', grid=grid, typekind=MAPL_R4, __RC__) @@ -1695,7 +1690,7 @@ subroutine aerosol_activation_properties(state, rc) end if ! required by the aap_(...) - if((adjustl(cld_micro)/="2MOMENT") .and. (index(aeroList(i), 'SU') > 0)) then ! maintained for compatibility with the single moment + if((adjustl(cld_micro)/="MGB2_2M") .and. (index(aeroList(i), 'SU') > 0)) then ! maintained for compatibility with the single moment call ESMF_StateGet(state, trim(aeroList(i)), child_state, __RC__) call MAPL_GetPointer(child_state, ptr_3d, 'SO4', __RC__) end if @@ -1824,7 +1819,7 @@ subroutine aap_(mode, q, num, diameter, sigma, f_dust, f_soot, f_organic, dens_, f_soot = 0.0 f_organic = 0.0 - if(adjustl(cld_micro)=="2MOMENT") then + if(adjustl(cld_micro)=="MGB2_2M") then qaux=q !this corrects a bug else qaux = q_ !keep it to get zero diff with the single moment @@ -1834,7 +1829,7 @@ subroutine aap_(mode, q, num, diameter, sigma, f_dust, f_soot, f_organic, dens_, if (index(mode_, 'ss00') > 0) then - if(adjustl(cld_micro)=="2MOMENT") then + if(adjustl(cld_micro)=="MGB2_2M") then TPI (1) = 230e6 ! num fraction (reduced 091015) else TPI (1) = 100e6 ! num fraction (reduced 091015) @@ -2028,7 +2023,7 @@ subroutine ocean_correction_(f, f_land, t_air_sfc, ss_scale, i1, i2, j1, j2, km) do i = i1, i2 if (f_land(i,j) < 0.1) then !ocean - if(adjustl(cld_micro) .ne."2MOMENT") then + if(adjustl(cld_micro) .ne."MGB2_2M") then usurf = max(min((t_air_sfc(i,j) - 285.0) / 2.0, 10.0), -10.0) !smooth transition around some T value else usurf = max(min((t_air_sfc(i,j) - 285.0) / 2.0, 30.0), -30.0) !smooth transition around some T value From 5b651e64634dd5844a3be6f066453d7556fcf178 Mon Sep 17 00:00:00 2001 From: Peter Colarco Date: Thu, 2 Mar 2023 11:54:08 -0500 Subject: [PATCH 04/36] prc: fix climatology yaml files for working with GOCART data driven instances --- .../AMIP/CA2G_GridComp_ExtData.yaml | 116 +++++------------- .../CA2G_GridComp/CA2G_GridComp_ExtData.yaml | 116 +++++------------- .../AMIP/DU2G_GridComp_ExtData.yaml | 91 ++++---------- .../DU2G_GridComp/DU2G_GridComp_ExtData.yaml | 91 ++++---------- .../AMIP/NI2G_GridComp_ExtData.yaml | 18 +-- .../NI2G_GridComp/NI2G_GridComp_ExtData.yaml | 18 +-- .../AMIP/SS2G_GridComp_ExtData.yaml | 87 ++++--------- .../SS2G_GridComp/SS2G_GridComp_ExtData.yaml | 87 ++++--------- .../AMIP/SU2G_GridComp_ExtData.yaml | 70 +++-------- .../SU2G_GridComp/SU2G_GridComp_ExtData.yaml | 70 +++-------- 10 files changed, 218 insertions(+), 546 deletions(-) diff --git a/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP/CA2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP/CA2G_GridComp_ExtData.yaml index c43006a2..7f5b5c26 100644 --- a/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP/CA2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP/CA2G_GridComp_ExtData.yaml @@ -17,8 +17,7 @@ Collections: template: ExtData/chemistry/CEDS/v2021-04-21/sfc/OC-em-anthro_CMIP_CEDS_gn_shipping.x2304_y1441_t12.%y4.nc4 CA2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4: template: ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 - CA2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4: - template: ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 + valid_range: "2008-01-01T12:00:00/2008-12-15T12:00:00" CA2G_qfed2.emis_bc.061.%y4%m2%d2.nc4: template: ExtData/chemistry/QFED/v2.6r1/sfc/0.1/Y%y4/M%m2/qfed2.emis_bc.061.%y4%m2%d2.nc4 valid_range: "2000-02-29T12:00/2025-01-01" @@ -35,6 +34,9 @@ Collections: Samplings: CA2G_sample_0: extrapolation: clim + update_frequency: PT24H + update_offset: PT12H + update_reference_time: '0' CA2G_sample_1: update_frequency: PT24H update_offset: PT12H @@ -186,37 +188,21 @@ Exports: sample: CA2G_sample_1 variable: oc_shipping climBCDP001: - collection: CA2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: CA2G_sample_0 - variable: BCDP001 + collection: /dev/null climBCDP002: - collection: CA2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: CA2G_sample_0 - variable: BCDP002 + collection: /dev/null climBCSD001: collection: /dev/null - sample: CA2G_sample_0 - variable: BCSD001 climBCSD002: collection: /dev/null - sample: CA2G_sample_0 - variable: BCSD002 climBCSV001: - collection: CA2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: CA2G_sample_0 - variable: BCSV001 + collection: /dev/null climBCSV002: - collection: CA2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: CA2G_sample_0 - variable: BCSV002 + collection: /dev/null climBCWT001: - collection: CA2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: CA2G_sample_0 - variable: BCWT001 + collection: /dev/null climBCWT002: - collection: CA2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: CA2G_sample_0 - variable: BCWT002 + collection: /dev/null climBCphilic: collection: CA2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: CA2G_sample_0 @@ -225,86 +211,50 @@ Exports: collection: CA2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: CA2G_sample_0 variable: BCPHOBIC - climOCDP001: - collection: CA2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: CA2G_sample_0 - variable: OCDP001 - climOCDP002: - collection: CA2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: CA2G_sample_0 - variable: OCDP002 - climOCSD001: - collection: /dev/null - sample: CA2G_sample_0 - variable: OCSD001 - climOCSD002: - collection: /dev/null - sample: CA2G_sample_0 - variable: OCSD002 - climOCSV001: - collection: CA2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: CA2G_sample_0 - variable: OCSV001 - climOCSV002: - collection: CA2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: CA2G_sample_0 - variable: OCSV002 - climOCWT001: - collection: CA2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: CA2G_sample_0 - variable: OCWT001 - climOCWT002: - collection: CA2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: CA2G_sample_0 - variable: OCWT002 - climOCphilic: - collection: CA2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 - sample: CA2G_sample_0 - variable: OCPHILIC - climOCphobic: - collection: CA2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 - sample: CA2G_sample_0 - variable: OCPHOBIC climBRDP001: collection: /dev/null - sample: CA2G_sample_0 - variable: BRDP001 climBRDP002: collection: /dev/null - sample: CA2G_sample_0 - variable: BRDP002 climBRSD001: collection: /dev/null - sample: CA2G_sample_0 - variable: BRSD001 climBRSD002: collection: /dev/null - sample: CA2G_sample_0 - variable: BRSD002 climBRSV001: collection: /dev/null - sample: CA2G_sample_0 - variable: BRSV001 climBRSV002: collection: /dev/null - sample: CA2G_sample_0 - variable: BRSV002 climBRWT001: collection: /dev/null - sample: CA2G_sample_0 - variable: BRWT001 climBRWT002: collection: /dev/null - sample: CA2G_sample_0 - variable: BRWT002 climBRphilic: collection: /dev/null - sample: CA2G_sample_0 - variable: BRPHILIC climBRphobic: collection: /dev/null + climOCDP001: + collection: /dev/null + climOCDP002: + collection: /dev/null + climOCSD001: + collection: /dev/null + climOCSD002: + collection: /dev/null + climOCSV001: + collection: /dev/null + climOCSV002: + collection: /dev/null + climOCWT001: + collection: /dev/null + climOCWT002: + collection: /dev/null + climOCphilic: + collection: CA2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: CA2G_sample_0 - variable: BRPHOBIC + variable: OCPHILIC + climOCphobic: + collection: CA2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 + sample: CA2G_sample_0 + variable: OCPHOBIC pSOA_ANTHRO_VOC: collection: /dev/null regrid: CONSERVE diff --git a/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridComp_ExtData.yaml index c5b6e3fb..d759702d 100644 --- a/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridComp_ExtData.yaml @@ -17,8 +17,7 @@ Collections: template: ExtData/chemistry/CEDS/v2021-04-21/sfc/OC-em-anthro_CMIP_CEDS_gn_shipping.x2304_y1441_t12.%y4.nc4 CA2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4: template: ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 - CA2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4: - template: ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 + valid_range: "2008-01-01T12:00:00/2008-12-15T12:00:00" CA2G_qfed2.emis_bc.006.%y4%m2%d2.nc4: template: ExtData/chemistry/QFED/v2.5r1-nrt/sfc/0.1/Y%y4/M%m2/qfed2.emis_bc.006.%y4%m2%d2.nc4 valid_range: "2014-12-01T12:00/2021-11-01T12:00" @@ -35,6 +34,9 @@ Collections: Samplings: CA2G_sample_0: extrapolation: clim + update_frequency: PT24H + update_offset: PT12H + update_reference_time: '0' CA2G_sample_1: update_frequency: PT24H update_offset: PT12H @@ -186,37 +188,21 @@ Exports: sample: CA2G_sample_1 variable: oc_shipping climBCDP001: - collection: CA2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: CA2G_sample_0 - variable: BCDP001 + collection: /dev/null climBCDP002: - collection: CA2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: CA2G_sample_0 - variable: BCDP002 + collection: /dev/null climBCSD001: collection: /dev/null - sample: CA2G_sample_0 - variable: BCSD001 climBCSD002: collection: /dev/null - sample: CA2G_sample_0 - variable: BCSD002 climBCSV001: - collection: CA2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: CA2G_sample_0 - variable: BCSV001 + collection: /dev/null climBCSV002: - collection: CA2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: CA2G_sample_0 - variable: BCSV002 + collection: /dev/null climBCWT001: - collection: CA2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: CA2G_sample_0 - variable: BCWT001 + collection: /dev/null climBCWT002: - collection: CA2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: CA2G_sample_0 - variable: BCWT002 + collection: /dev/null climBCphilic: collection: CA2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: CA2G_sample_0 @@ -225,86 +211,50 @@ Exports: collection: CA2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: CA2G_sample_0 variable: BCPHOBIC - climOCDP001: - collection: CA2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: CA2G_sample_0 - variable: OCDP001 - climOCDP002: - collection: CA2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: CA2G_sample_0 - variable: OCDP002 - climOCSD001: - collection: /dev/null - sample: CA2G_sample_0 - variable: OCSD001 - climOCSD002: - collection: /dev/null - sample: CA2G_sample_0 - variable: OCSD002 - climOCSV001: - collection: CA2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: CA2G_sample_0 - variable: OCSV001 - climOCSV002: - collection: CA2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: CA2G_sample_0 - variable: OCSV002 - climOCWT001: - collection: CA2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: CA2G_sample_0 - variable: OCWT001 - climOCWT002: - collection: CA2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: CA2G_sample_0 - variable: OCWT002 - climOCphilic: - collection: CA2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 - sample: CA2G_sample_0 - variable: OCPHILIC - climOCphobic: - collection: CA2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 - sample: CA2G_sample_0 - variable: OCPHOBIC climBRDP001: collection: /dev/null - sample: CA2G_sample_0 - variable: BRDP001 climBRDP002: collection: /dev/null - sample: CA2G_sample_0 - variable: BRDP002 climBRSD001: collection: /dev/null - sample: CA2G_sample_0 - variable: BRSD001 climBRSD002: collection: /dev/null - sample: CA2G_sample_0 - variable: BRSD002 climBRSV001: collection: /dev/null - sample: CA2G_sample_0 - variable: BRSV001 climBRSV002: collection: /dev/null - sample: CA2G_sample_0 - variable: BRSV002 climBRWT001: collection: /dev/null - sample: CA2G_sample_0 - variable: BRWT001 climBRWT002: collection: /dev/null - sample: CA2G_sample_0 - variable: BRWT002 climBRphilic: collection: /dev/null - sample: CA2G_sample_0 - variable: BRPHILIC climBRphobic: collection: /dev/null + climOCDP001: + collection: /dev/null + climOCDP002: + collection: /dev/null + climOCSD001: + collection: /dev/null + climOCSD002: + collection: /dev/null + climOCSV001: + collection: /dev/null + climOCSV002: + collection: /dev/null + climOCWT001: + collection: /dev/null + climOCWT002: + collection: /dev/null + climOCphilic: + collection: CA2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: CA2G_sample_0 - variable: BRPHOBIC + variable: OCPHILIC + climOCphobic: + collection: CA2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 + sample: CA2G_sample_0 + variable: OCPHOBIC pSOA_ANTHRO_VOC: collection: /dev/null regrid: CONSERVE diff --git a/ESMF/GOCART2G_GridComp/DU2G_GridComp/AMIP/DU2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/DU2G_GridComp/AMIP/DU2G_GridComp_ExtData.yaml index 916e9fd9..e00b429e 100644 --- a/ESMF/GOCART2G_GridComp/DU2G_GridComp/AMIP/DU2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/DU2G_GridComp/AMIP/DU2G_GridComp_ExtData.yaml @@ -5,12 +5,11 @@ Collections: template: ExtData/chemistry/DUST/v0.0.0/sfc/_gldas-fao.soil_texture.x1152_y721_t1.nc4 DU2G_arlems-roughness.x1151_y720_t1.nc4: template: ExtData/chemistry/DUST/v0.0.0/sfc/arlems-roughness.x1151_y720_t1.nc4 - DU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4: - template: ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 - DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4: - template: /dev/null DU2G_gocart.dust_source.v5a.x1152_y721.nc: template: ExtData/chemistry/DUST/v0.0.0/sfc/gocart.dust_source.v5a.x1152_y721.nc + DU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4: + template: ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 + valid_range: "2008-01-01T12:00:00/2008-12-15T12:00:00" DU2G_qvi.006.%y4.nc4: template: ExtData/chemistry/NDVI/v1.0.r3/sfc/qvi.006.%y4.nc4 DU2G_veg20.x1152_y721_t1.nc4: @@ -25,6 +24,9 @@ Samplings: update_reference_time: '0' DU2G_sample_2: extrapolation: clim + update_frequency: PT24H + update_offset: PT12H + update_reference_time: '0' Exports: DU_CLAY: @@ -68,85 +70,45 @@ Exports: sample: DU2G_sample_0 variable: roughness climDUDP001: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUDP001 + collection: /dev/null climDUDP002: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUDP002 + collection: /dev/null climDUDP003: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUDP003 + collection: /dev/null climDUDP004: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUDP004 + collection: /dev/null climDUDP005: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUDP005 + collection: /dev/null climDUSD001: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUSD001 + collection: /dev/null climDUSD002: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUSD002 + collection: /dev/null climDUSD003: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUSD003 + collection: /dev/null climDUSD004: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUSD004 + collection: /dev/null climDUSD005: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUSD005 + collection: /dev/null climDUSV001: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUSV001 + collection: /dev/null climDUSV002: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUSV002 + collection: /dev/null climDUSV003: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUSV003 + collection: /dev/null climDUSV004: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUSV004 + collection: /dev/null climDUSV005: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUSV005 + collection: /dev/null climDUWT001: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUWT001 + collection: /dev/null climDUWT002: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUWT002 + collection: /dev/null climDUWT003: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUWT003 + collection: /dev/null climDUWT004: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUWT004 + collection: /dev/null climDUWT005: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUWT005 + collection: /dev/null climdu001: collection: DU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: DU2G_sample_2 @@ -168,3 +130,4 @@ Exports: sample: DU2G_sample_2 variable: DU005 + diff --git a/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridComp_ExtData.yaml index 916e9fd9..e00b429e 100644 --- a/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridComp_ExtData.yaml @@ -5,12 +5,11 @@ Collections: template: ExtData/chemistry/DUST/v0.0.0/sfc/_gldas-fao.soil_texture.x1152_y721_t1.nc4 DU2G_arlems-roughness.x1151_y720_t1.nc4: template: ExtData/chemistry/DUST/v0.0.0/sfc/arlems-roughness.x1151_y720_t1.nc4 - DU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4: - template: ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 - DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4: - template: /dev/null DU2G_gocart.dust_source.v5a.x1152_y721.nc: template: ExtData/chemistry/DUST/v0.0.0/sfc/gocart.dust_source.v5a.x1152_y721.nc + DU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4: + template: ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 + valid_range: "2008-01-01T12:00:00/2008-12-15T12:00:00" DU2G_qvi.006.%y4.nc4: template: ExtData/chemistry/NDVI/v1.0.r3/sfc/qvi.006.%y4.nc4 DU2G_veg20.x1152_y721_t1.nc4: @@ -25,6 +24,9 @@ Samplings: update_reference_time: '0' DU2G_sample_2: extrapolation: clim + update_frequency: PT24H + update_offset: PT12H + update_reference_time: '0' Exports: DU_CLAY: @@ -68,85 +70,45 @@ Exports: sample: DU2G_sample_0 variable: roughness climDUDP001: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUDP001 + collection: /dev/null climDUDP002: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUDP002 + collection: /dev/null climDUDP003: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUDP003 + collection: /dev/null climDUDP004: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUDP004 + collection: /dev/null climDUDP005: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUDP005 + collection: /dev/null climDUSD001: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUSD001 + collection: /dev/null climDUSD002: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUSD002 + collection: /dev/null climDUSD003: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUSD003 + collection: /dev/null climDUSD004: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUSD004 + collection: /dev/null climDUSD005: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUSD005 + collection: /dev/null climDUSV001: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUSV001 + collection: /dev/null climDUSV002: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUSV002 + collection: /dev/null climDUSV003: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUSV003 + collection: /dev/null climDUSV004: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUSV004 + collection: /dev/null climDUSV005: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUSV005 + collection: /dev/null climDUWT001: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUWT001 + collection: /dev/null climDUWT002: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUWT002 + collection: /dev/null climDUWT003: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUWT003 + collection: /dev/null climDUWT004: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUWT004 + collection: /dev/null climDUWT005: - collection: DU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: DU2G_sample_2 - variable: DUWT005 + collection: /dev/null climdu001: collection: DU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: DU2G_sample_2 @@ -168,3 +130,4 @@ Exports: sample: DU2G_sample_2 variable: DU005 + diff --git a/ESMF/GOCART2G_GridComp/NI2G_GridComp/AMIP/NI2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/NI2G_GridComp/AMIP/NI2G_GridComp_ExtData.yaml index 3018b116..e7596eed 100644 --- a/ESMF/GOCART2G_GridComp/NI2G_GridComp/AMIP/NI2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/NI2G_GridComp/AMIP/NI2G_GridComp_ExtData.yaml @@ -3,8 +3,6 @@ Collections: template: ExtData/chemistry/Masks/v0.0.0/sfc/ARCTAS.region_mask.x540_y361.2008.nc NI2G_GEIA.emis_NH3.ocean.x576_y361.t12.20080715_12z.nc4: template: ExtData/chemistry/GEIA/v0.0.0/sfc/GEIA.emis_NH3.ocean.x576_y361.t12.20080715_12z.nc4 - NI2G_GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4: - template: /discover/nobackup/projects/gmao/gmao_ops/pub/fp/das/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 NI2G_MERRA2_GMI.tavg24_3d_dac_Nv.x576_y361_t12.%y4.nc4: template: ExtData/chemistry/MERRA2GMI/v0.0.0/L72/MERRA2_GMI.tavg24_3d_dac_Nv.x576_y361_t12.%y4.nc4 NI2G_NH3-em-anthro_CMIP_CEDS_gn.x2304_y1441_t12.%y4.nc4: @@ -78,18 +76,10 @@ Exports: sample: NI2G_sample_3 variable: REGION_MASK climNO3an1: - collection: NI2G_GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 - regrid: CONSERVE - sample: NI2G_sample_0 - variable: NO3AN1 + collection: /dev/null climNO3an2: - collection: NI2G_GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 - regrid: CONSERVE - sample: NI2G_sample_0 - variable: NO3AN2 + collection: /dev/null climNO3an3: - collection: NI2G_GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 - regrid: CONSERVE - sample: NI2G_sample_0 - variable: NO3AN3 + collection: /dev/null + diff --git a/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridComp_ExtData.yaml index 97baa848..9a05461a 100644 --- a/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridComp_ExtData.yaml @@ -3,8 +3,6 @@ Collections: template: ExtData/chemistry/Masks/v0.0.0/sfc/ARCTAS.region_mask.x540_y361.2008.nc NI2G_GEIA.emis_NH3.ocean.x576_y361.t12.20080715_12z.nc4: template: ExtData/chemistry/GEIA/v0.0.0/sfc/GEIA.emis_NH3.ocean.x576_y361.t12.20080715_12z.nc4 - NI2G_GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4: - template: /discover/nobackup/projects/gmao/gmao_ops/pub/fp/das/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 NI2G_MERRA2_GMI.tavg24_3d_dac_Nv.x576_y361_t12.%y4.nc4: template: ExtData/chemistry/MERRA2GMI/v0.0.0/L72/MERRA2_GMI.tavg24_3d_dac_Nv.x576_y361_t12.%y4.nc4 NI2G_NH3-em-anthro_CMIP_CEDS_gn.x2304_y1441_t12.%y4.nc4: @@ -78,18 +76,10 @@ Exports: sample: NI2G_sample_3 variable: REGION_MASK climNO3an1: - collection: NI2G_GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 - regrid: CONSERVE - sample: NI2G_sample_0 - variable: NO3AN1 + collection: /dev/null climNO3an2: - collection: NI2G_GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 - regrid: CONSERVE - sample: NI2G_sample_0 - variable: NO3AN2 + collection: /dev/null climNO3an3: - collection: NI2G_GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 - regrid: CONSERVE - sample: NI2G_sample_0 - variable: NO3AN3 + collection: /dev/null + diff --git a/ESMF/GOCART2G_GridComp/SS2G_GridComp/AMIP/SS2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/SS2G_GridComp/AMIP/SS2G_GridComp_ExtData.yaml index 6d22a2a3..6d1df18b 100644 --- a/ESMF/GOCART2G_GridComp/SS2G_GridComp/AMIP/SS2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/SS2G_GridComp/AMIP/SS2G_GridComp_ExtData.yaml @@ -1,94 +1,56 @@ Collections: SS2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4: template: ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 - SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4: - template: /dev/null + valid_range: "2008-01-01T12:00:00/2008-12-15T12:00:00" Samplings: SS2G_sample_0: extrapolation: clim + update_frequency: PT24H + update_offset: PT12H + update_reference_time: '0' Exports: climSSDP001: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSDP001 + collection: /dev/null climSSDP002: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSDP002 + collection: /dev/null climSSDP003: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSDP003 + collection: /dev/null climSSDP004: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSDP004 + collection: /dev/null climSSDP005: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSDP005 + collection: /dev/null climSSSD001: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSSD001 + collection: /dev/null climSSSD002: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSSD002 + collection: /dev/null climSSSD003: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSSD003 + collection: /dev/null climSSSD004: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSSD004 + collection: /dev/null climSSSD005: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSSD005 + collection: /dev/null climSSSV001: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSSV001 + collection: /dev/null climSSSV002: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSSV002 + collection: /dev/null climSSSV003: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSSV003 + collection: /dev/null climSSSV004: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSSV004 + collection: /dev/null climSSSV005: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSSV005 + collection: /dev/null climSSWT001: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSWT001 + collection: /dev/null climSSWT002: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSWT002 + collection: /dev/null climSSWT003: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSWT003 + collection: /dev/null climSSWT004: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSWT004 + collection: /dev/null climSSWT005: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSWT005 + collection: /dev/null climss001: collection: SS2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: SS2G_sample_0 @@ -110,3 +72,4 @@ Exports: sample: SS2G_sample_0 variable: SS005 + diff --git a/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridComp_ExtData.yaml index 6d22a2a3..6d1df18b 100644 --- a/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridComp_ExtData.yaml @@ -1,94 +1,56 @@ Collections: SS2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4: template: ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 - SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4: - template: /dev/null + valid_range: "2008-01-01T12:00:00/2008-12-15T12:00:00" Samplings: SS2G_sample_0: extrapolation: clim + update_frequency: PT24H + update_offset: PT12H + update_reference_time: '0' Exports: climSSDP001: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSDP001 + collection: /dev/null climSSDP002: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSDP002 + collection: /dev/null climSSDP003: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSDP003 + collection: /dev/null climSSDP004: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSDP004 + collection: /dev/null climSSDP005: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSDP005 + collection: /dev/null climSSSD001: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSSD001 + collection: /dev/null climSSSD002: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSSD002 + collection: /dev/null climSSSD003: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSSD003 + collection: /dev/null climSSSD004: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSSD004 + collection: /dev/null climSSSD005: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSSD005 + collection: /dev/null climSSSV001: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSSV001 + collection: /dev/null climSSSV002: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSSV002 + collection: /dev/null climSSSV003: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSSV003 + collection: /dev/null climSSSV004: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSSV004 + collection: /dev/null climSSSV005: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSSV005 + collection: /dev/null climSSWT001: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSWT001 + collection: /dev/null climSSWT002: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSWT002 + collection: /dev/null climSSWT003: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSWT003 + collection: /dev/null climSSWT004: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSWT004 + collection: /dev/null climSSWT005: - collection: SS2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SS2G_sample_0 - variable: SSWT005 + collection: /dev/null climss001: collection: SS2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: SS2G_sample_0 @@ -110,3 +72,4 @@ Exports: sample: SS2G_sample_0 variable: SS005 + diff --git a/ESMF/GOCART2G_GridComp/SU2G_GridComp/AMIP/SU2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/SU2G_GridComp/AMIP/SU2G_GridComp_ExtData.yaml index d6a8f195..17af6006 100644 --- a/ESMF/GOCART2G_GridComp/SU2G_GridComp/AMIP/SU2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/SU2G_GridComp/AMIP/SU2G_GridComp_ExtData.yaml @@ -15,8 +15,7 @@ Collections: template: ExtData/chemistry/CEDS/v2021-04-21/sfc/SO4-em-anthro_CMIP_CEDS_gn_shipping.x2304_y1441_t12.%y4.nc4 SU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4: template: ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 - SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4: - template: ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 + valid_range: "2008-01-01T12:00:00/2008-12-15T12:00:00" SU2G_qfed2.emis_so2.061.%y4%m2%d2.nc4: template: ExtData/chemistry/QFED/v2.6r1/sfc/0.1/Y%y4/M%m2/qfed2.emis_so2.061.%y4%m2%d2.nc4 valid_range: "2000-02-29T12:00/2025-01-01" @@ -27,6 +26,9 @@ Collections: Samplings: SU2G_sample_0: extrapolation: clim + update_frequency: PT24H + update_offset: PT12H + update_reference_time: '0' SU2G_sample_1: update_frequency: PT24H update_offset: PT12H @@ -106,69 +108,37 @@ Exports: sample: SU2G_sample_0 variable: SO4 climSUDP001: - collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SU2G_sample_0 - variable: SUDP001 + collection: /dev/null climSUDP002: - collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SU2G_sample_0 - variable: SUDP002 + collection: /dev/null climSUDP003: - collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SU2G_sample_0 - variable: SUDP003 + collection: /dev/null climSUDP004: - collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SU2G_sample_0 - variable: SUDP004 + collection: /dev/null climSUSD001: - collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SU2G_sample_0 - variable: SUSD001 + collection: /dev/null climSUSD002: - collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SU2G_sample_0 - variable: SUSD002 + collection: /dev/null climSUSD003: - collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SU2G_sample_0 - variable: SUSD003 + collection: /dev/null climSUSD004: - collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SU2G_sample_0 - variable: SUSD004 + collection: /dev/null climSUSV001: - collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SU2G_sample_0 - variable: SUSV001 + collection: /dev/null climSUSV002: - collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SU2G_sample_0 - variable: SUSV002 + collection: /dev/null climSUSV003: - collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SU2G_sample_0 - variable: SUSV003 + collection: /dev/null climSUSV004: - collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SU2G_sample_0 - variable: SUSV004 + collection: /dev/null climSUWT001: - collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SU2G_sample_0 - variable: SUWT001 + collection: /dev/null climSUWT002: - collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SU2G_sample_0 - variable: SUWT002 + collection: /dev/null climSUWT003: - collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SU2G_sample_0 - variable: SUWT003 + collection: /dev/null climSUWT004: - collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SU2G_sample_0 - variable: SUWT004 + collection: /dev/null pSO2_OCS: collection: /dev/null regrid: CONSERVE diff --git a/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridComp_ExtData.yaml index 7a53fe2d..7b809634 100644 --- a/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridComp_ExtData.yaml @@ -15,8 +15,7 @@ Collections: template: ExtData/chemistry/CEDS/v2021-04-21/sfc/SO4-em-anthro_CMIP_CEDS_gn_shipping.x2304_y1441_t12.%y4.nc4 SU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4: template: ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 - SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4: - template: ExtData/chemistry/MERRA2/v0.0.0/sfc/merra2.aer_Nx.2003-2015.2008%m2clm.nc4 + valid_range: "2008-01-01T12:00:00/2008-12-15T12:00:00" SU2G_qfed2.emis_so2.006.%y4%m2%d2.nc4: template: ExtData/chemistry/QFED/v2.5r1-nrt/sfc/0.1/Y%y4/M%m2/qfed2.emis_so2.006.%y4%m2%d2.nc4 valid_range: "2014-12-01T12:00/2021-11-01T12:00" @@ -27,6 +26,9 @@ Collections: Samplings: SU2G_sample_0: extrapolation: clim + update_frequency: PT24H + update_offset: PT12H + update_reference_time: '0' SU2G_sample_1: update_frequency: PT24H update_offset: PT12H @@ -106,69 +108,37 @@ Exports: sample: SU2G_sample_0 variable: SO4 climSUDP001: - collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SU2G_sample_0 - variable: SUDP001 + collection: /dev/null climSUDP002: - collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SU2G_sample_0 - variable: SUDP002 + collection: /dev/null climSUDP003: - collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SU2G_sample_0 - variable: SUDP003 + collection: /dev/null climSUDP004: - collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SU2G_sample_0 - variable: SUDP004 + collection: /dev/null climSUSD001: - collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SU2G_sample_0 - variable: SUSD001 + collection: /dev/null climSUSD002: - collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SU2G_sample_0 - variable: SUSD002 + collection: /dev/null climSUSD003: - collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SU2G_sample_0 - variable: SUSD003 + collection: /dev/null climSUSD004: - collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SU2G_sample_0 - variable: SUSD004 + collection: /dev/null climSUSV001: - collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SU2G_sample_0 - variable: SUSV001 + collection: /dev/null climSUSV002: - collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SU2G_sample_0 - variable: SUSV002 + collection: /dev/null climSUSV003: - collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SU2G_sample_0 - variable: SUSV003 + collection: /dev/null climSUSV004: - collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SU2G_sample_0 - variable: SUSV004 + collection: /dev/null climSUWT001: - collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SU2G_sample_0 - variable: SUWT001 + collection: /dev/null climSUWT002: - collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SU2G_sample_0 - variable: SUWT002 + collection: /dev/null climSUWT003: - collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SU2G_sample_0 - variable: SUWT003 + collection: /dev/null climSUWT004: - collection: SU2G_merra2.aer_Nx.2003-2015.2008%m2clm.nc4 - sample: SU2G_sample_0 - variable: SUWT004 + collection: /dev/null pSO2_OCS: collection: /dev/null regrid: CONSERVE From 0f8296d4e507d513a2b92eb0398e9b1e3fbff33c Mon Sep 17 00:00:00 2001 From: Peter Colarco Date: Fri, 3 Mar 2023 12:19:42 -0500 Subject: [PATCH 05/36] prc: change yaml files to obtain zero-diff with rc files for GOCART data instances --- .../CA2G_GridComp/AMIP/CA2G_GridComp_ExtData.yaml | 3 --- .../GOCART2G_GridComp/CA2G_GridComp/CA2G_GridComp_ExtData.yaml | 3 --- .../DU2G_GridComp/AMIP/DU2G_GridComp_ExtData.yaml | 3 --- .../GOCART2G_GridComp/DU2G_GridComp/DU2G_GridComp_ExtData.yaml | 3 --- .../SS2G_GridComp/AMIP/SS2G_GridComp_ExtData.yaml | 3 --- .../GOCART2G_GridComp/SS2G_GridComp/SS2G_GridComp_ExtData.yaml | 3 --- .../SU2G_GridComp/AMIP/SU2G_GridComp_ExtData.yaml | 3 --- .../GOCART2G_GridComp/SU2G_GridComp/SU2G_GridComp_ExtData.yaml | 3 --- 8 files changed, 24 deletions(-) diff --git a/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP/CA2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP/CA2G_GridComp_ExtData.yaml index 7f5b5c26..c25be12c 100644 --- a/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP/CA2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP/CA2G_GridComp_ExtData.yaml @@ -34,9 +34,6 @@ Collections: Samplings: CA2G_sample_0: extrapolation: clim - update_frequency: PT24H - update_offset: PT12H - update_reference_time: '0' CA2G_sample_1: update_frequency: PT24H update_offset: PT12H diff --git a/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridComp_ExtData.yaml index d759702d..24c7a8e3 100644 --- a/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridComp_ExtData.yaml @@ -34,9 +34,6 @@ Collections: Samplings: CA2G_sample_0: extrapolation: clim - update_frequency: PT24H - update_offset: PT12H - update_reference_time: '0' CA2G_sample_1: update_frequency: PT24H update_offset: PT12H diff --git a/ESMF/GOCART2G_GridComp/DU2G_GridComp/AMIP/DU2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/DU2G_GridComp/AMIP/DU2G_GridComp_ExtData.yaml index e00b429e..69df0e8f 100644 --- a/ESMF/GOCART2G_GridComp/DU2G_GridComp/AMIP/DU2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/DU2G_GridComp/AMIP/DU2G_GridComp_ExtData.yaml @@ -24,9 +24,6 @@ Samplings: update_reference_time: '0' DU2G_sample_2: extrapolation: clim - update_frequency: PT24H - update_offset: PT12H - update_reference_time: '0' Exports: DU_CLAY: diff --git a/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridComp_ExtData.yaml index e00b429e..69df0e8f 100644 --- a/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridComp_ExtData.yaml @@ -24,9 +24,6 @@ Samplings: update_reference_time: '0' DU2G_sample_2: extrapolation: clim - update_frequency: PT24H - update_offset: PT12H - update_reference_time: '0' Exports: DU_CLAY: diff --git a/ESMF/GOCART2G_GridComp/SS2G_GridComp/AMIP/SS2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/SS2G_GridComp/AMIP/SS2G_GridComp_ExtData.yaml index 6d1df18b..ffc5b17a 100644 --- a/ESMF/GOCART2G_GridComp/SS2G_GridComp/AMIP/SS2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/SS2G_GridComp/AMIP/SS2G_GridComp_ExtData.yaml @@ -6,9 +6,6 @@ Collections: Samplings: SS2G_sample_0: extrapolation: clim - update_frequency: PT24H - update_offset: PT12H - update_reference_time: '0' Exports: climSSDP001: diff --git a/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridComp_ExtData.yaml index 6d1df18b..ffc5b17a 100644 --- a/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridComp_ExtData.yaml @@ -6,9 +6,6 @@ Collections: Samplings: SS2G_sample_0: extrapolation: clim - update_frequency: PT24H - update_offset: PT12H - update_reference_time: '0' Exports: climSSDP001: diff --git a/ESMF/GOCART2G_GridComp/SU2G_GridComp/AMIP/SU2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/SU2G_GridComp/AMIP/SU2G_GridComp_ExtData.yaml index 17af6006..bdeb7e32 100644 --- a/ESMF/GOCART2G_GridComp/SU2G_GridComp/AMIP/SU2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/SU2G_GridComp/AMIP/SU2G_GridComp_ExtData.yaml @@ -26,9 +26,6 @@ Collections: Samplings: SU2G_sample_0: extrapolation: clim - update_frequency: PT24H - update_offset: PT12H - update_reference_time: '0' SU2G_sample_1: update_frequency: PT24H update_offset: PT12H diff --git a/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridComp_ExtData.yaml index 7b809634..dbb6c462 100644 --- a/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridComp_ExtData.yaml @@ -26,9 +26,6 @@ Collections: Samplings: SU2G_sample_0: extrapolation: clim - update_frequency: PT24H - update_offset: PT12H - update_reference_time: '0' SU2G_sample_1: update_frequency: PT24H update_offset: PT12H From 1bd963421fd657708ad1bc3c03d3c5ea89ffeafd Mon Sep 17 00:00:00 2001 From: Peter Colarco Date: Fri, 3 Mar 2023 12:28:49 -0500 Subject: [PATCH 06/36] prc: update CHANGELOG --- CHANGELOG.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4f419b27..16790036 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Fixed +- Made needed code changes in SS2G_GridCompMod.F90 and + CA2G_GridCompMod.F90 to permit data instances of of GOCART + aerosols to run +- Added missing brown carbon (BR) climatology hooks to yaml and rc + files for data driven instances +- Changed pointers to climatological deposition inputs in yaml and + rc files to "/dev/null" since the files pointed to didn't provide + them anyway, and in any case they are being used presently in the + model +- Changed pointers to climatological nitrate inputs in yaml and rc + files to "/dev/null" since pointing to FP files was inconsistent + with MERRA-2 files used for other species +- Ensured zero-diff in performance of yaml vs. rc files for + ExtData2G vs. ExtData1g for data driven aerosols +- To do: remove hooks to old (legacy) GOCART.data instances in CHEM + and setup scripts + ### Added - Added `*` to CA State specs file to allow for ACG to substitute in the long name From 688ea5d8530a0b7ab92c9013c8af66532883bcb0 Mon Sep 17 00:00:00 2001 From: biljanaorescanin Date: Thu, 9 Mar 2023 13:17:56 -0500 Subject: [PATCH 07/36] update bcs path to new area --- ESMF/GOCART_GridComp/O3_GridComp/AMIP.20C/O3_GridComp.rc | 2 +- ESMF/GOCART_GridComp/O3_GridComp/AMIP/O3_GridComp.rc | 2 +- ESMF/GOCART_GridComp/O3_GridComp/O3_GridComp.rc | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ESMF/GOCART_GridComp/O3_GridComp/AMIP.20C/O3_GridComp.rc b/ESMF/GOCART_GridComp/O3_GridComp/AMIP.20C/O3_GridComp.rc index 2a5d767d..9c2e9e0d 100644 --- a/ESMF/GOCART_GridComp/O3_GridComp/AMIP.20C/O3_GridComp.rc +++ b/ESMF/GOCART_GridComp/O3_GridComp/AMIP.20C/O3_GridComp.rc @@ -3,7 +3,7 @@ # # Parameterized chemistry # ----------------------- -PCHEMs_file_name: /discover/nobackup/ltakacs/bcs/Ganymed-2_0_M/Shared/pchem.species.Clim_Prod_Loss.z_721x72.nc4 +PCHEMs_file_name: /discover/nobackup/projects/gmao/bcs_shared/legacy_bcs/Ganymed-2_0_M/Shared/pchem.species.Clim_Prod_Loss.z_721x72.nc4 pchem_clim_years: 1 # GMI chemistry diff --git a/ESMF/GOCART_GridComp/O3_GridComp/AMIP/O3_GridComp.rc b/ESMF/GOCART_GridComp/O3_GridComp/AMIP/O3_GridComp.rc index 2a5d767d..9c2e9e0d 100644 --- a/ESMF/GOCART_GridComp/O3_GridComp/AMIP/O3_GridComp.rc +++ b/ESMF/GOCART_GridComp/O3_GridComp/AMIP/O3_GridComp.rc @@ -3,7 +3,7 @@ # # Parameterized chemistry # ----------------------- -PCHEMs_file_name: /discover/nobackup/ltakacs/bcs/Ganymed-2_0_M/Shared/pchem.species.Clim_Prod_Loss.z_721x72.nc4 +PCHEMs_file_name: /discover/nobackup/projects/gmao/bcs_shared/legacy_bcs/Ganymed-2_0_M/Shared/pchem.species.Clim_Prod_Loss.z_721x72.nc4 pchem_clim_years: 1 # GMI chemistry diff --git a/ESMF/GOCART_GridComp/O3_GridComp/O3_GridComp.rc b/ESMF/GOCART_GridComp/O3_GridComp/O3_GridComp.rc index 2a5d767d..9c2e9e0d 100755 --- a/ESMF/GOCART_GridComp/O3_GridComp/O3_GridComp.rc +++ b/ESMF/GOCART_GridComp/O3_GridComp/O3_GridComp.rc @@ -3,7 +3,7 @@ # # Parameterized chemistry # ----------------------- -PCHEMs_file_name: /discover/nobackup/ltakacs/bcs/Ganymed-2_0_M/Shared/pchem.species.Clim_Prod_Loss.z_721x72.nc4 +PCHEMs_file_name: /discover/nobackup/projects/gmao/bcs_shared/legacy_bcs/Ganymed-2_0_M/Shared/pchem.species.Clim_Prod_Loss.z_721x72.nc4 pchem_clim_years: 1 # GMI chemistry From c51357e5a2a57576ddc601522758d397d0fb25c1 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Tue, 28 Mar 2023 12:57:58 -0400 Subject: [PATCH 08/36] Merge feature/pcolarco/GOCART2G_data_instance into sdr_v2.1.2.1 --- .circleci/config.yml | 4 +- .github/workflows/enforce-labels.yml | 29 +++++ .../AMIP.20C/CA2G_GridComp_ExtData.rc | 46 +++++--- .../AMIP/CA2G_GridComp_ExtData.rc | 46 +++++--- .../AMIP/CA2G_GridComp_ExtData.yaml | 99 +++++++--------- .../CA2G_GridComp/CA2G_GridCompMod.F90 | 17 +-- .../CA2G_GridComp/CA2G_GridComp_ExtData.rc | 46 +++++--- .../CA2G_GridComp/CA2G_GridComp_ExtData.yaml | 99 +++++++--------- .../AMIP/DU2G_GridComp_ExtData.yaml | 108 ++++++------------ .../DU2G_GridComp/DU2G_GridComp_ExtData.rc | 58 +++++----- .../DU2G_GridComp/DU2G_GridComp_ExtData.yaml | 108 ++++++------------ .../AMIP.20C/NI2G_GridComp_ExtData.rc | 6 +- .../AMIP/NI2G_GridComp_ExtData.rc | 6 +- .../AMIP/NI2G_GridComp_ExtData.yaml | 18 +-- .../NI2G_GridComp/NI2G_GridComp_ExtData.rc | 6 +- .../NI2G_GridComp/NI2G_GridComp_ExtData.yaml | 18 +-- .../AMIP/SS2G_GridComp_ExtData.yaml | 108 ++++++------------ .../SS2G_GridComp/SS2G_GridComp_ExtData.rc | 50 ++++---- .../SS2G_GridComp/SS2G_GridComp_ExtData.yaml | 108 ++++++------------ .../AMIP.20C/SU2G_GridComp_ExtData.rc | 26 ++--- .../AMIP/SU2G_GridComp_ExtData.rc | 26 ++--- .../AMIP/SU2G_GridComp_ExtData.yaml | 65 +++-------- .../SU2G_GridComp/SU2G_GridComp_ExtData.rc | 26 ++--- .../SU2G_GridComp/SU2G_GridComp_ExtData.yaml | 65 +++-------- components.yaml | 10 +- 25 files changed, 496 insertions(+), 702 deletions(-) create mode 100644 .github/workflows/enforce-labels.yml diff --git a/.circleci/config.yml b/.circleci/config.yml index 37bc9c57..c3925282 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,8 +1,8 @@ version: 2.1 # Anchors to prevent forgetting to update a version -baselibs_version: &baselibs_version v7.5.0 -bcs_version: &bcs_version v10.23.0 +baselibs_version: &baselibs_version v7.7.0 +bcs_version: &bcs_version v11.00.0 orbs: ci: geos-esm/circleci-tools@1 diff --git a/.github/workflows/enforce-labels.yml b/.github/workflows/enforce-labels.yml new file mode 100644 index 00000000..6e1720ef --- /dev/null +++ b/.github/workflows/enforce-labels.yml @@ -0,0 +1,29 @@ +name: Enforce PR Labels + +on: + pull_request: + types: [opened, labeled, unlabeled, edited, synchronize] + +jobs: + require-label: + runs-on: ubuntu-latest + steps: + - uses: mheap/github-action-required-labels@v2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + mode: minimum + count: 1 + labels: "0 diff,0 diff trivial,Non 0-diff,0 diff structural,0-diff trivial,Not 0-diff,0-diff,automatic,0-diff uncoupled" + add_comment: true + blocking-label: + runs-on: ubuntu-latest + steps: + - uses: mheap/github-action-required-labels@v2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + mode: exactly + count: 0 + labels: "Contingent - DNA,Needs Lead Approval,Contingent -- Do Not Approve" + add_comment: true diff --git a/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP.20C/CA2G_GridComp_ExtData.rc b/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP.20C/CA2G_GridComp_ExtData.rc index 6470a20c..736a0008 100644 --- a/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP.20C/CA2G_GridComp_ExtData.rc +++ b/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP.20C/CA2G_GridComp_ExtData.rc @@ -6,30 +6,42 @@ PrimaryExports%% #========== Data Instance ========================================================== -climBCphobic 'kg kg-1' Y N 0 0.0 1.0 BCphobic ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 -climBCphilic 'kg kg-1' Y N 0 0.0 1.0 BCphilic ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 -climOCphobic 'kg kg-1' Y N 0 0.0 1.0 OCphobic ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 -climOCphilic 'kg kg-1' Y N 0 0.0 1.0 OCphilic ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 - -climBCDP001 'kg m-2 s-1' Y N 0 0.0 1.0 BCDP001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climBCWT001 'kg m-2 s-1' Y N 0 0.0 1.0 BCWT001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climBCphobic 'kg kg-1' Y N 0 0.0 1.0 BCPHOBIC ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climBCphilic 'kg kg-1' Y N 0 0.0 1.0 BCPHILIC ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climOCphobic 'kg kg-1' Y N 0 0.0 1.0 OCPHOBIC ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climOCphilic 'kg kg-1' Y N 0 0.0 1.0 OCPHILIC ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climBRphobic 'kg kg-1' Y N 0 0.0 1.0 BRPHOBIC /dev/null +climBRphilic 'kg kg-1' Y N 0 0.0 1.0 BRPHILIC /dev/null + +climBCDP001 'kg m-2 s-1' Y N 0 0.0 1.0 BCDP001 /dev/null +climBCWT001 'kg m-2 s-1' Y N 0 0.0 1.0 BCWT001 /dev/null climBCSD001 'kg m-2 s-1' Y N 0 0.0 1.0 BCSD001 /dev/null -climBCSV001 'kg m-2 s-1' Y N 0 0.0 1.0 BCSV001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climBCSV001 'kg m-2 s-1' Y N 0 0.0 1.0 BCSV001 /dev/null -climBCDP002 'kg m-2 s-1' Y N 0 0.0 1.0 BCDP002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climBCWT002 'kg m-2 s-1' Y N 0 0.0 1.0 BCWT002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climBCDP002 'kg m-2 s-1' Y N 0 0.0 1.0 BCDP002 /dev/null +climBCWT002 'kg m-2 s-1' Y N 0 0.0 1.0 BCWT002 /dev/null climBCSD002 'kg m-2 s-1' Y N 0 0.0 1.0 BCSD002 /dev/null -climBCSV002 'kg m-2 s-1' Y N 0 0.0 1.0 BCSV002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climBCSV002 'kg m-2 s-1' Y N 0 0.0 1.0 BCSV002 /dev/null -climOCDP001 'kg m-2 s-1' Y N 0 0.0 1.0 OCDP001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climOCWT001 'kg m-2 s-1' Y N 0 0.0 1.0 OCWT001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climOCDP001 'kg m-2 s-1' Y N 0 0.0 1.0 OCDP001 /dev/null +climOCWT001 'kg m-2 s-1' Y N 0 0.0 1.0 OCWT001 /dev/null climOCSD001 'kg m-2 s-1' Y N 0 0.0 1.0 OCSD001 /dev/null -climOCSV001 'kg m-2 s-1' Y N 0 0.0 1.0 OCSV001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climOCSV001 'kg m-2 s-1' Y N 0 0.0 1.0 OCSV001 /dev/null -climOCDP002 'kg m-2 s-1' Y N 0 0.0 1.0 OCDP002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climOCWT002 'kg m-2 s-1' Y N 0 0.0 1.0 OCWT002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climOCDP002 'kg m-2 s-1' Y N 0 0.0 1.0 OCDP002 /dev/null +climOCWT002 'kg m-2 s-1' Y N 0 0.0 1.0 OCWT002 /dev/null climOCSD002 'kg m-2 s-1' Y N 0 0.0 1.0 OCSD002 /dev/null -climOCSV002 'kg m-2 s-1' Y N 0 0.0 1.0 OCSV002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climOCSV002 'kg m-2 s-1' Y N 0 0.0 1.0 OCSV002 /dev/null + +climBRDP001 'kg m-2 s-1' Y N 0 0.0 1.0 BRDP001 /dev/null +climBRWT001 'kg m-2 s-1' Y N 0 0.0 1.0 BRWT001 /dev/null +climBRSD001 'kg m-2 s-1' Y N 0 0.0 1.0 BRSD001 /dev/null +climBRSV001 'kg m-2 s-1' Y N 0 0.0 1.0 BRSV001 /dev/null + +climBRDP002 'kg m-2 s-1' Y N 0 0.0 1.0 BRDP002 /dev/null +climBRWT002 'kg m-2 s-1' Y N 0 0.0 1.0 BRWT002 /dev/null +climBRSD002 'kg m-2 s-1' Y N 0 0.0 1.0 BRSD002 /dev/null +climBRSV002 'kg m-2 s-1' Y N 0 0.0 1.0 BRSV002 /dev/null #=========== Carbonaceous aerosol sources =========================================== diff --git a/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP/CA2G_GridComp_ExtData.rc b/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP/CA2G_GridComp_ExtData.rc index 604755e8..eb566ca6 100644 --- a/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP/CA2G_GridComp_ExtData.rc +++ b/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP/CA2G_GridComp_ExtData.rc @@ -6,30 +6,42 @@ PrimaryExports%% #========== Data Instance ========================================================== -climBCphobic 'kg kg-1' Y N 0 0.0 1.0 BCphobic ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 -climBCphilic 'kg kg-1' Y N 0 0.0 1.0 BCphilic ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 -climOCphobic 'kg kg-1' Y N 0 0.0 1.0 OCphobic ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 -climOCphilic 'kg kg-1' Y N 0 0.0 1.0 OCphilic ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 - -climBCDP001 'kg m-2 s-1' Y N 0 0.0 1.0 BCDP001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climBCWT001 'kg m-2 s-1' Y N 0 0.0 1.0 BCWT001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climBCphobic 'kg kg-1' Y N 0 0.0 1.0 BCPHOBIC ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climBCphilic 'kg kg-1' Y N 0 0.0 1.0 BCPHILIC ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climOCphobic 'kg kg-1' Y N 0 0.0 1.0 OCPHOBIC ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climOCphilic 'kg kg-1' Y N 0 0.0 1.0 OCPHILIC ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climBRphobic 'kg kg-1' Y N 0 0.0 1.0 BRPHOBIC /dev/null +climBRphilic 'kg kg-1' Y N 0 0.0 1.0 BRPHILIC /dev/null + +climBCDP001 'kg m-2 s-1' Y N 0 0.0 1.0 BCDP001 /dev/null +climBCWT001 'kg m-2 s-1' Y N 0 0.0 1.0 BCWT001 /dev/null climBCSD001 'kg m-2 s-1' Y N 0 0.0 1.0 BCSD001 /dev/null -climBCSV001 'kg m-2 s-1' Y N 0 0.0 1.0 BCSV001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climBCSV001 'kg m-2 s-1' Y N 0 0.0 1.0 BCSV001 /dev/null -climBCDP002 'kg m-2 s-1' Y N 0 0.0 1.0 BCDP002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climBCWT002 'kg m-2 s-1' Y N 0 0.0 1.0 BCWT002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climBCDP002 'kg m-2 s-1' Y N 0 0.0 1.0 BCDP002 /dev/null +climBCWT002 'kg m-2 s-1' Y N 0 0.0 1.0 BCWT002 /dev/null climBCSD002 'kg m-2 s-1' Y N 0 0.0 1.0 BCSD002 /dev/null -climBCSV002 'kg m-2 s-1' Y N 0 0.0 1.0 BCSV002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climBCSV002 'kg m-2 s-1' Y N 0 0.0 1.0 BCSV002 /dev/null -climOCDP001 'kg m-2 s-1' Y N 0 0.0 1.0 OCDP001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climOCWT001 'kg m-2 s-1' Y N 0 0.0 1.0 OCWT001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climOCDP001 'kg m-2 s-1' Y N 0 0.0 1.0 OCDP001 /dev/null +climOCWT001 'kg m-2 s-1' Y N 0 0.0 1.0 OCWT001 /dev/null climOCSD001 'kg m-2 s-1' Y N 0 0.0 1.0 OCSD001 /dev/null -climOCSV001 'kg m-2 s-1' Y N 0 0.0 1.0 OCSV001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climOCSV001 'kg m-2 s-1' Y N 0 0.0 1.0 OCSV001 /dev/null -climOCDP002 'kg m-2 s-1' Y N 0 0.0 1.0 OCDP002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climOCWT002 'kg m-2 s-1' Y N 0 0.0 1.0 OCWT002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climOCDP002 'kg m-2 s-1' Y N 0 0.0 1.0 OCDP002 /dev/null +climOCWT002 'kg m-2 s-1' Y N 0 0.0 1.0 OCWT002 /dev/null climOCSD002 'kg m-2 s-1' Y N 0 0.0 1.0 OCSD002 /dev/null -climOCSV002 'kg m-2 s-1' Y N 0 0.0 1.0 OCSV002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climOCSV002 'kg m-2 s-1' Y N 0 0.0 1.0 OCSV002 /dev/null + +climBRDP001 'kg m-2 s-1' Y N 0 0.0 1.0 BRDP001 /dev/null +climBRWT001 'kg m-2 s-1' Y N 0 0.0 1.0 BRWT001 /dev/null +climBRSD001 'kg m-2 s-1' Y N 0 0.0 1.0 BRSD001 /dev/null +climBRSV001 'kg m-2 s-1' Y N 0 0.0 1.0 BRSV001 /dev/null + +climBRDP002 'kg m-2 s-1' Y N 0 0.0 1.0 BRDP002 /dev/null +climBRWT002 'kg m-2 s-1' Y N 0 0.0 1.0 BRWT002 /dev/null +climBRSD002 'kg m-2 s-1' Y N 0 0.0 1.0 BRSD002 /dev/null +climBRSV002 'kg m-2 s-1' Y N 0 0.0 1.0 BRSV002 /dev/null #=========== Carbonaceous aerosol sources =========================================== diff --git a/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP/CA2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP/CA2G_GridComp_ExtData.yaml index b36d56c6..b9c1f95e 100644 --- a/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP/CA2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/CA2G_GridComp/AMIP/CA2G_GridComp_ExtData.yaml @@ -15,10 +15,9 @@ Collections: template: ExtData/chemistry/CEDS/v2021-04-21/sfc/OC-em-anthro_CMIP_CEDS_gn_nonenergy.x2304_y1441_t12.%y4.nc4 CA2G_OC-em-anthro_CMIP_CEDS_gn_shipping.x2304_y1441_t12.%y4.nc4: template: ExtData/chemistry/CEDS/v2021-04-21/sfc/OC-em-anthro_CMIP_CEDS_gn_shipping.x2304_y1441_t12.%y4.nc4 - CA2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4: - template: ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 - CA2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4: - template: ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 + CA2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4: + template: ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 + valid_range: "2008-01-01T12:00:00/2008-12-15T12:00:00" CA2G_qfed2.emis_bc.006.%y4%m2%d2.nc4: template: ExtData/chemistry/QFED/v2.5r1/sfc/0.1/Y%y4/M%m2/qfed2.emis_bc.006.%y4%m2%d2.nc4 valid_range: "2000-02-29T12:00/2025-01-01" @@ -186,85 +185,73 @@ Exports: sample: CA2G_sample_1 variable: oc_shipping climBCDP001: - collection: CA2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: CA2G_sample_0 - variable: BCDP001 + collection: /dev/null climBCDP002: - collection: CA2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: CA2G_sample_0 - variable: BCDP002 + collection: /dev/null climBCSD001: collection: /dev/null - sample: CA2G_sample_0 - variable: BCSD001 climBCSD002: collection: /dev/null - sample: CA2G_sample_0 - variable: BCSD002 climBCSV001: - collection: CA2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: CA2G_sample_0 - variable: BCSV001 + collection: /dev/null climBCSV002: - collection: CA2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: CA2G_sample_0 - variable: BCSV002 + collection: /dev/null climBCWT001: - collection: CA2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: CA2G_sample_0 - variable: BCWT001 + collection: /dev/null climBCWT002: - collection: CA2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: CA2G_sample_0 - variable: BCWT002 + collection: /dev/null climBCphilic: - collection: CA2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 + collection: CA2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: CA2G_sample_0 - variable: BCphilic + variable: BCPHILIC climBCphobic: - collection: CA2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 + collection: CA2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: CA2G_sample_0 - variable: BCphobic + variable: BCPHOBIC + climBRDP001: + collection: /dev/null + climBRDP002: + collection: /dev/null + climBRSD001: + collection: /dev/null + climBRSD002: + collection: /dev/null + climBRSV001: + collection: /dev/null + climBRSV002: + collection: /dev/null + climBRWT001: + collection: /dev/null + climBRWT002: + collection: /dev/null + climBRphilic: + collection: /dev/null + climBRphobic: + collection: /dev/null climOCDP001: - collection: CA2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: CA2G_sample_0 - variable: OCDP001 + collection: /dev/null climOCDP002: - collection: CA2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: CA2G_sample_0 - variable: OCDP002 + collection: /dev/null climOCSD001: collection: /dev/null - sample: CA2G_sample_0 - variable: OCSD001 climOCSD002: collection: /dev/null - sample: CA2G_sample_0 - variable: OCSD002 climOCSV001: - collection: CA2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: CA2G_sample_0 - variable: OCSV001 + collection: /dev/null climOCSV002: - collection: CA2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: CA2G_sample_0 - variable: OCSV002 + collection: /dev/null climOCWT001: - collection: CA2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: CA2G_sample_0 - variable: OCWT001 + collection: /dev/null climOCWT002: - collection: CA2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: CA2G_sample_0 - variable: OCWT002 + collection: /dev/null climOCphilic: - collection: CA2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 + collection: CA2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: CA2G_sample_0 - variable: OCphilic + variable: OCPHILIC climOCphobic: - collection: CA2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 + collection: CA2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: CA2G_sample_0 - variable: OCphobic + variable: OCPHOBIC pSOA_ANTHRO_VOC: collection: /dev/null regrid: CONSERVE diff --git a/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridCompMod.F90 index d6047cc5..29428f2c 100644 --- a/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridCompMod.F90 @@ -132,8 +132,8 @@ subroutine SetServices (GC, RC) call ESMF_ConfigLoadFile (cfg, 'CA2G_instance_'//trim(comp_name)//'.rc', rc=status) if (status /= 0) then if (mapl_am_i_root()) print*,'CA2G_instance_'//trim(comp_name)//'.rc does not exist! & - Loading CA2G_instance_'//trim(comp_name)//'.rc instead' - call ESMF_ConfigLoadFile (cfg, 'CA2G_instance_'//trim(comp_name)//'.rc', __RC__) + Loading CA2G_instance_'//trim(comp_name(1:5))//'.rc instead' + call ESMF_ConfigLoadFile (cfg, 'CA2G_instance_'//trim(comp_name(1:5))//'.rc', __RC__) end if ! process generic config items @@ -424,10 +424,11 @@ subroutine Initialize (GC, import, export, clock, RC) ! Load resource file ! ------------------- cfg = ESMF_ConfigCreate (__RC__) - call ESMF_ConfigLoadFile (cfg, 'CA2G_instance_'//trim(COMP_NAME)//'.rc', rc=status) + call ESMF_ConfigLoadFile (cfg, 'CA2G_instance_'//trim(comp_name)//'.rc', rc=status) if (status /= 0) then - if (mapl_am_i_root()) print*,'ERROR: CA2G_instance_'//trim(COMP_NAME)//'.rc does not exist!' - return + if (mapl_am_i_root()) print*,'CA2G_instance_'//trim(comp_name)//'.rc does not exist! & + Loading CA2G_instance_'//trim(comp_name(1:5))//'.rc instead' + call ESMF_ConfigLoadFile (cfg, 'CA2G_instance_'//trim(comp_name(1:5))//'.rc', __RC__) end if ! Call Generic Initialize @@ -618,7 +619,7 @@ subroutine Run (GC, import, export, clock, rc) ! ----------------------------------- call MAPL_Get (MAPL, INTERNAL_ESMF_STATE=internal, __RC__) -! Is SS data driven? +! Is CA data driven? ! ------------------ call determine_data_driven (COMP_NAME, data_driven, __RC__) @@ -649,7 +650,7 @@ subroutine Run1 (GC, import, export, clock, RC) type (ESMF_Clock), intent(inout) :: clock ! The clock integer, optional, intent( out) :: RC ! Error code: -! !DESCRIPTION: Computes emissions/sources for Sea Salt +! !DESCRIPTION: Computes emissions/sources for Carbon !EOP !============================================================================ @@ -1056,7 +1057,7 @@ end subroutine Run2 !============================================================================ !BOP -! !IROUTINE: Run_data -- ExtData Sea Salt Grid Component +! !IROUTINE: Run_data -- ExtData Carbon Grid Component ! !INTERFACE: diff --git a/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridComp_ExtData.rc b/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridComp_ExtData.rc index 70f36e88..f4703b77 100644 --- a/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridComp_ExtData.rc +++ b/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridComp_ExtData.rc @@ -6,30 +6,42 @@ PrimaryExports%% #========== Data Instance ========================================================== -climBCphobic 'kg kg-1' Y N 0 0.0 1.0 BCphobic ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 -climBCphilic 'kg kg-1' Y N 0 0.0 1.0 BCphilic ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 -climOCphobic 'kg kg-1' Y N 0 0.0 1.0 OCphobic ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 -climOCphilic 'kg kg-1' Y N 0 0.0 1.0 OCphilic ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 - -climBCDP001 'kg m-2 s-1' Y N 0 0.0 1.0 BCDP001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climBCWT001 'kg m-2 s-1' Y N 0 0.0 1.0 BCWT001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climBCphobic 'kg kg-1' Y N 0 0.0 1.0 BCPHOBIC ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climBCphilic 'kg kg-1' Y N 0 0.0 1.0 BCPHILIC ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climOCphobic 'kg kg-1' Y N 0 0.0 1.0 OCPHOBIC ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climOCphilic 'kg kg-1' Y N 0 0.0 1.0 OCPHILIC ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climBRphobic 'kg kg-1' Y N 0 0.0 1.0 BRPHOBIC /dev/null +climBRphilic 'kg kg-1' Y N 0 0.0 1.0 BRPHILIC /dev/null + +climBCDP001 'kg m-2 s-1' Y N 0 0.0 1.0 BCDP001 /dev/null +climBCWT001 'kg m-2 s-1' Y N 0 0.0 1.0 BCWT001 /dev/null climBCSD001 'kg m-2 s-1' Y N 0 0.0 1.0 BCSD001 /dev/null -climBCSV001 'kg m-2 s-1' Y N 0 0.0 1.0 BCSV001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climBCSV001 'kg m-2 s-1' Y N 0 0.0 1.0 BCSV001 /dev/null -climBCDP002 'kg m-2 s-1' Y N 0 0.0 1.0 BCDP002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climBCWT002 'kg m-2 s-1' Y N 0 0.0 1.0 BCWT002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climBCDP002 'kg m-2 s-1' Y N 0 0.0 1.0 BCDP002 /dev/null +climBCWT002 'kg m-2 s-1' Y N 0 0.0 1.0 BCWT002 /dev/null climBCSD002 'kg m-2 s-1' Y N 0 0.0 1.0 BCSD002 /dev/null -climBCSV002 'kg m-2 s-1' Y N 0 0.0 1.0 BCSV002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climBCSV002 'kg m-2 s-1' Y N 0 0.0 1.0 BCSV002 /dev/null -climOCDP001 'kg m-2 s-1' Y N 0 0.0 1.0 OCDP001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climOCWT001 'kg m-2 s-1' Y N 0 0.0 1.0 OCWT001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climOCDP001 'kg m-2 s-1' Y N 0 0.0 1.0 OCDP001 /dev/null +climOCWT001 'kg m-2 s-1' Y N 0 0.0 1.0 OCWT001 /dev/null climOCSD001 'kg m-2 s-1' Y N 0 0.0 1.0 OCSD001 /dev/null -climOCSV001 'kg m-2 s-1' Y N 0 0.0 1.0 OCSV001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climOCSV001 'kg m-2 s-1' Y N 0 0.0 1.0 OCSV001 /dev/null -climOCDP002 'kg m-2 s-1' Y N 0 0.0 1.0 OCDP002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climOCWT002 'kg m-2 s-1' Y N 0 0.0 1.0 OCWT002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climOCDP002 'kg m-2 s-1' Y N 0 0.0 1.0 OCDP002 /dev/null +climOCWT002 'kg m-2 s-1' Y N 0 0.0 1.0 OCWT002 /dev/null climOCSD002 'kg m-2 s-1' Y N 0 0.0 1.0 OCSD002 /dev/null -climOCSV002 'kg m-2 s-1' Y N 0 0.0 1.0 OCSV002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climOCSV002 'kg m-2 s-1' Y N 0 0.0 1.0 OCSV002 /dev/null + +climBRDP001 'kg m-2 s-1' Y N 0 0.0 1.0 BRDP001 /dev/null +climBRWT001 'kg m-2 s-1' Y N 0 0.0 1.0 BRWT001 /dev/null +climBRSD001 'kg m-2 s-1' Y N 0 0.0 1.0 BRSD001 /dev/null +climBRSV001 'kg m-2 s-1' Y N 0 0.0 1.0 BRSV001 /dev/null + +climBRDP002 'kg m-2 s-1' Y N 0 0.0 1.0 BRDP002 /dev/null +climBRWT002 'kg m-2 s-1' Y N 0 0.0 1.0 BRWT002 /dev/null +climBRSD002 'kg m-2 s-1' Y N 0 0.0 1.0 BRSD002 /dev/null +climBRSV002 'kg m-2 s-1' Y N 0 0.0 1.0 BRSV002 /dev/null #=========== Carbonaceous aerosol sources =========================================== diff --git a/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridComp_ExtData.yaml index 67976db8..fc936624 100644 --- a/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridComp_ExtData.yaml @@ -15,10 +15,9 @@ Collections: template: ExtData/chemistry/CEDS/v2021-04-21/sfc/OC-em-anthro_CMIP_CEDS_gn_nonenergy.x2304_y1441_t12.%y4.nc4 CA2G_OC-em-anthro_CMIP_CEDS_gn_shipping.x2304_y1441_t12.%y4.nc4: template: ExtData/chemistry/CEDS/v2021-04-21/sfc/OC-em-anthro_CMIP_CEDS_gn_shipping.x2304_y1441_t12.%y4.nc4 - CA2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4: - template: ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 - CA2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4: - template: ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 + CA2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4: + template: ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 + valid_range: "2008-01-01T12:00:00/2008-12-15T12:00:00" CA2G_qfed2.emis_bc.006.%y4%m2%d2.nc4: template: ExtData/chemistry/QFED/vNRT/sfc/0.1/Y%y4/M%m2/qfed2.emis_bc.006.%y4%m2%d2.nc4 valid_range: "2014-12-01T12:00/2021-11-01T12:00" @@ -186,85 +185,73 @@ Exports: sample: CA2G_sample_1 variable: oc_shipping climBCDP001: - collection: CA2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: CA2G_sample_0 - variable: BCDP001 + collection: /dev/null climBCDP002: - collection: CA2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: CA2G_sample_0 - variable: BCDP002 + collection: /dev/null climBCSD001: collection: /dev/null - sample: CA2G_sample_0 - variable: BCSD001 climBCSD002: collection: /dev/null - sample: CA2G_sample_0 - variable: BCSD002 climBCSV001: - collection: CA2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: CA2G_sample_0 - variable: BCSV001 + collection: /dev/null climBCSV002: - collection: CA2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: CA2G_sample_0 - variable: BCSV002 + collection: /dev/null climBCWT001: - collection: CA2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: CA2G_sample_0 - variable: BCWT001 + collection: /dev/null climBCWT002: - collection: CA2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: CA2G_sample_0 - variable: BCWT002 + collection: /dev/null climBCphilic: - collection: CA2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 + collection: CA2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: CA2G_sample_0 - variable: BCphilic + variable: BCPHILIC climBCphobic: - collection: CA2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 + collection: CA2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: CA2G_sample_0 - variable: BCphobic + variable: BCPHOBIC + climBRDP001: + collection: /dev/null + climBRDP002: + collection: /dev/null + climBRSD001: + collection: /dev/null + climBRSD002: + collection: /dev/null + climBRSV001: + collection: /dev/null + climBRSV002: + collection: /dev/null + climBRWT001: + collection: /dev/null + climBRWT002: + collection: /dev/null + climBRphilic: + collection: /dev/null + climBRphobic: + collection: /dev/null climOCDP001: - collection: CA2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: CA2G_sample_0 - variable: OCDP001 + collection: /dev/null climOCDP002: - collection: CA2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: CA2G_sample_0 - variable: OCDP002 + collection: /dev/null climOCSD001: collection: /dev/null - sample: CA2G_sample_0 - variable: OCSD001 climOCSD002: collection: /dev/null - sample: CA2G_sample_0 - variable: OCSD002 climOCSV001: - collection: CA2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: CA2G_sample_0 - variable: OCSV001 + collection: /dev/null climOCSV002: - collection: CA2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: CA2G_sample_0 - variable: OCSV002 + collection: /dev/null climOCWT001: - collection: CA2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: CA2G_sample_0 - variable: OCWT001 + collection: /dev/null climOCWT002: - collection: CA2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: CA2G_sample_0 - variable: OCWT002 + collection: /dev/null climOCphilic: - collection: CA2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 + collection: CA2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: CA2G_sample_0 - variable: OCphilic + variable: OCPHILIC climOCphobic: - collection: CA2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 + collection: CA2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: CA2G_sample_0 - variable: OCphobic + variable: OCPHOBIC pSOA_ANTHRO_VOC: collection: /dev/null regrid: CONSERVE diff --git a/ESMF/GOCART2G_GridComp/DU2G_GridComp/AMIP/DU2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/DU2G_GridComp/AMIP/DU2G_GridComp_ExtData.yaml index c5d0b3f0..69df0e8f 100644 --- a/ESMF/GOCART2G_GridComp/DU2G_GridComp/AMIP/DU2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/DU2G_GridComp/AMIP/DU2G_GridComp_ExtData.yaml @@ -5,12 +5,11 @@ Collections: template: ExtData/chemistry/DUST/v0.0.0/sfc/_gldas-fao.soil_texture.x1152_y721_t1.nc4 DU2G_arlems-roughness.x1151_y720_t1.nc4: template: ExtData/chemistry/DUST/v0.0.0/sfc/arlems-roughness.x1151_y720_t1.nc4 - DU2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4: - template: ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 - DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4: - template: ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 DU2G_gocart.dust_source.v5a.x1152_y721.nc: template: ExtData/chemistry/DUST/v0.0.0/sfc/gocart.dust_source.v5a.x1152_y721.nc + DU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4: + template: ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 + valid_range: "2008-01-01T12:00:00/2008-12-15T12:00:00" DU2G_qvi.006.%y4.nc4: template: ExtData/chemistry/NDVI/v1.0.r3/sfc/qvi.006.%y4.nc4 DU2G_veg20.x1152_y721_t1.nc4: @@ -68,103 +67,64 @@ Exports: sample: DU2G_sample_0 variable: roughness climDUDP001: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUDP001 + collection: /dev/null climDUDP002: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUDP002 + collection: /dev/null climDUDP003: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUDP003 + collection: /dev/null climDUDP004: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUDP004 + collection: /dev/null climDUDP005: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUDP005 + collection: /dev/null climDUSD001: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUSD001 + collection: /dev/null climDUSD002: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUSD002 + collection: /dev/null climDUSD003: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUSD003 + collection: /dev/null climDUSD004: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUSD004 + collection: /dev/null climDUSD005: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUSD005 + collection: /dev/null climDUSV001: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUSV001 + collection: /dev/null climDUSV002: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUSV002 + collection: /dev/null climDUSV003: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUSV003 + collection: /dev/null climDUSV004: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUSV004 + collection: /dev/null climDUSV005: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUSV005 + collection: /dev/null climDUWT001: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUWT001 + collection: /dev/null climDUWT002: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUWT002 + collection: /dev/null climDUWT003: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUWT003 + collection: /dev/null climDUWT004: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUWT004 + collection: /dev/null climDUWT005: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUWT005 + collection: /dev/null climdu001: - collection: DU2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 + collection: DU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: DU2G_sample_2 - variable: du001 + variable: DU001 climdu002: - collection: DU2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 + collection: DU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: DU2G_sample_2 - variable: du002 + variable: DU002 climdu003: - collection: DU2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 + collection: DU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: DU2G_sample_2 - variable: du003 + variable: DU003 climdu004: - collection: DU2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 + collection: DU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: DU2G_sample_2 - variable: du004 + variable: DU004 climdu005: - collection: DU2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 + collection: DU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: DU2G_sample_2 - variable: du005 + variable: DU005 + diff --git a/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridComp_ExtData.rc b/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridComp_ExtData.rc index d563cf53..4293cbc3 100644 --- a/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridComp_ExtData.rc +++ b/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridComp_ExtData.rc @@ -15,37 +15,37 @@ DU_Z0 NA N Y - none none roughness ExtData/chemistry/DUST/v0.0.0/sfc/a DU_GVF NA N Y %y4-%m2-%d2t12:00:00 none none gvf ExtData/chemistry/NDVI/v1.0.r3/sfc/qvi.006.%y4.nc4 # DU data - 3D -climdu001 'kg kg-1' Y N 0 0.0 1.0 du001 ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 -climdu002 'kg kg-1' Y N 0 0.0 1.0 du002 ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 -climdu003 'kg kg-1' Y N 0 0.0 1.0 du003 ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 -climdu004 'kg kg-1' Y N 0 0.0 1.0 du004 ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 -climdu005 'kg kg-1' Y N 0 0.0 1.0 du005 ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 +climdu001 'kg kg-1' Y N 0 0.0 1.0 DU001 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climdu002 'kg kg-1' Y N 0 0.0 1.0 DU002 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climdu003 'kg kg-1' Y N 0 0.0 1.0 DU003 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climdu004 'kg kg-1' Y N 0 0.0 1.0 DU004 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climdu005 'kg kg-1' Y N 0 0.0 1.0 DU005 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 # DU data - 2D -climDUDP001 'kg m-2 s-1' Y N 0 0.0 1.0 DUDP001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climDUWT001 'kg m-2 s-1' Y N 0 0.0 1.0 DUWT001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climDUSD001 'kg m-2 s-1' Y N 0 0.0 1.0 DUSD001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climDUSV001 'kg m-2 s-1' Y N 0 0.0 1.0 DUSV001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - -climDUDP002 'kg m-2 s-1' Y N 0 0.0 1.0 DUDP002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climDUWT002 'kg m-2 s-1' Y N 0 0.0 1.0 DUWT002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climDUSD002 'kg m-2 s-1' Y N 0 0.0 1.0 DUSD002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climDUSV002 'kg m-2 s-1' Y N 0 0.0 1.0 DUSV002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - -climDUDP003 'kg m-2 s-1' Y N 0 0.0 1.0 DUDP003 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climDUWT003 'kg m-2 s-1' Y N 0 0.0 1.0 DUWT003 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climDUSD003 'kg m-2 s-1' Y N 0 0.0 1.0 DUSD003 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climDUSV003 'kg m-2 s-1' Y N 0 0.0 1.0 DUSV003 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - -climDUDP004 'kg m-2 s-1' Y N 0 0.0 1.0 DUDP004 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climDUWT004 'kg m-2 s-1' Y N 0 0.0 1.0 DUWT004 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climDUSD004 'kg m-2 s-1' Y N 0 0.0 1.0 DUSD004 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climDUSV004 'kg m-2 s-1' Y N 0 0.0 1.0 DUSV004 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - -climDUDP005 'kg m-2 s-1' Y N 0 0.0 1.0 DUDP005 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climDUWT005 'kg m-2 s-1' Y N 0 0.0 1.0 DUWT005 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climDUSD005 'kg m-2 s-1' Y N 0 0.0 1.0 DUSD005 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climDUSV005 'kg m-2 s-1' Y N 0 0.0 1.0 DUSV005 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climDUDP001 'kg m-2 s-1' Y N 0 0.0 1.0 DUDP001 /dev/null +climDUWT001 'kg m-2 s-1' Y N 0 0.0 1.0 DUWT001 /dev/null +climDUSD001 'kg m-2 s-1' Y N 0 0.0 1.0 DUSD001 /dev/null +climDUSV001 'kg m-2 s-1' Y N 0 0.0 1.0 DUSV001 /dev/null + +climDUDP002 'kg m-2 s-1' Y N 0 0.0 1.0 DUDP002 /dev/null +climDUWT002 'kg m-2 s-1' Y N 0 0.0 1.0 DUWT002 /dev/null +climDUSD002 'kg m-2 s-1' Y N 0 0.0 1.0 DUSD002 /dev/null +climDUSV002 'kg m-2 s-1' Y N 0 0.0 1.0 DUSV002 /dev/null + +climDUDP003 'kg m-2 s-1' Y N 0 0.0 1.0 DUDP003 /dev/null +climDUWT003 'kg m-2 s-1' Y N 0 0.0 1.0 DUWT003 /dev/null +climDUSD003 'kg m-2 s-1' Y N 0 0.0 1.0 DUSD003 /dev/null +climDUSV003 'kg m-2 s-1' Y N 0 0.0 1.0 DUSV003 /dev/null + +climDUDP004 'kg m-2 s-1' Y N 0 0.0 1.0 DUDP004 /dev/null +climDUWT004 'kg m-2 s-1' Y N 0 0.0 1.0 DUWT004 /dev/null +climDUSD004 'kg m-2 s-1' Y N 0 0.0 1.0 DUSD004 /dev/null +climDUSV004 'kg m-2 s-1' Y N 0 0.0 1.0 DUSV004 /dev/null + +climDUDP005 'kg m-2 s-1' Y N 0 0.0 1.0 DUDP005 /dev/null +climDUWT005 'kg m-2 s-1' Y N 0 0.0 1.0 DUWT005 /dev/null +climDUSD005 'kg m-2 s-1' Y N 0 0.0 1.0 DUSD005 /dev/null +climDUSV005 'kg m-2 s-1' Y N 0 0.0 1.0 DUSV005 /dev/null %% diff --git a/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridComp_ExtData.yaml index c5d0b3f0..69df0e8f 100644 --- a/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridComp_ExtData.yaml @@ -5,12 +5,11 @@ Collections: template: ExtData/chemistry/DUST/v0.0.0/sfc/_gldas-fao.soil_texture.x1152_y721_t1.nc4 DU2G_arlems-roughness.x1151_y720_t1.nc4: template: ExtData/chemistry/DUST/v0.0.0/sfc/arlems-roughness.x1151_y720_t1.nc4 - DU2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4: - template: ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 - DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4: - template: ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 DU2G_gocart.dust_source.v5a.x1152_y721.nc: template: ExtData/chemistry/DUST/v0.0.0/sfc/gocart.dust_source.v5a.x1152_y721.nc + DU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4: + template: ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 + valid_range: "2008-01-01T12:00:00/2008-12-15T12:00:00" DU2G_qvi.006.%y4.nc4: template: ExtData/chemistry/NDVI/v1.0.r3/sfc/qvi.006.%y4.nc4 DU2G_veg20.x1152_y721_t1.nc4: @@ -68,103 +67,64 @@ Exports: sample: DU2G_sample_0 variable: roughness climDUDP001: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUDP001 + collection: /dev/null climDUDP002: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUDP002 + collection: /dev/null climDUDP003: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUDP003 + collection: /dev/null climDUDP004: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUDP004 + collection: /dev/null climDUDP005: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUDP005 + collection: /dev/null climDUSD001: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUSD001 + collection: /dev/null climDUSD002: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUSD002 + collection: /dev/null climDUSD003: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUSD003 + collection: /dev/null climDUSD004: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUSD004 + collection: /dev/null climDUSD005: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUSD005 + collection: /dev/null climDUSV001: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUSV001 + collection: /dev/null climDUSV002: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUSV002 + collection: /dev/null climDUSV003: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUSV003 + collection: /dev/null climDUSV004: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUSV004 + collection: /dev/null climDUSV005: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUSV005 + collection: /dev/null climDUWT001: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUWT001 + collection: /dev/null climDUWT002: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUWT002 + collection: /dev/null climDUWT003: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUWT003 + collection: /dev/null climDUWT004: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUWT004 + collection: /dev/null climDUWT005: - collection: DU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: DU2G_sample_2 - variable: DUWT005 + collection: /dev/null climdu001: - collection: DU2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 + collection: DU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: DU2G_sample_2 - variable: du001 + variable: DU001 climdu002: - collection: DU2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 + collection: DU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: DU2G_sample_2 - variable: du002 + variable: DU002 climdu003: - collection: DU2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 + collection: DU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: DU2G_sample_2 - variable: du003 + variable: DU003 climdu004: - collection: DU2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 + collection: DU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: DU2G_sample_2 - variable: du004 + variable: DU004 climdu005: - collection: DU2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 + collection: DU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: DU2G_sample_2 - variable: du005 + variable: DU005 + diff --git a/ESMF/GOCART2G_GridComp/NI2G_GridComp/AMIP.20C/NI2G_GridComp_ExtData.rc b/ESMF/GOCART2G_GridComp/NI2G_GridComp/AMIP.20C/NI2G_GridComp_ExtData.rc index 366cb441..d09decb3 100644 --- a/ESMF/GOCART2G_GridComp/NI2G_GridComp/AMIP.20C/NI2G_GridComp_ExtData.rc +++ b/ESMF/GOCART2G_GridComp/NI2G_GridComp/AMIP.20C/NI2G_GridComp_ExtData.rc @@ -5,9 +5,9 @@ PrimaryExports%% # -------------|-------|-------|--------|----------------------|--------|--------|-------------|----------|----------- # ======= Nitrate Data Instance ========== -climNO3an1 'kg kg-1' N Y F0 none none NO3AN1 /discover/nobackup/projects/gmao/gmao_ops/pub/fp/das/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 2017-02-01T00:00:00P03:00 -climNO3an2 'kg kg-1' N Y F0 none none NO3AN2 /discover/nobackup/projects/gmao/gmao_ops/pub/fp/das/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 2017-02-01T00:00:00P03:00 -climNO3an3 'kg kg-1' N Y F0 none none NO3AN3 /discover/nobackup/projects/gmao/gmao_ops/pub/fp/das/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 2017-02-01T00:00:00P03:00 +climNO3an1 'kg kg-1' N Y F0 none none NO3AN1 /dev/null +climNO3an2 'kg kg-1' N Y F0 none none NO3AN2 /dev/null +climNO3an3 'kg kg-1' N Y F0 none none NO3AN3 /dev/null # ======= Nitrate Sources ======== EMI_NH3_BB 'kg m-2 s-1' N Y %y4-%m2-%d2T12:00:00 none 0.778 biomass ExtData/chemistry/HFED/v1.0/Y%y4/hfed.emis_nh3.x576_y361_t14.%y4.nc4 diff --git a/ESMF/GOCART2G_GridComp/NI2G_GridComp/AMIP/NI2G_GridComp_ExtData.rc b/ESMF/GOCART2G_GridComp/NI2G_GridComp/AMIP/NI2G_GridComp_ExtData.rc index 1f9d9774..3f450466 100644 --- a/ESMF/GOCART2G_GridComp/NI2G_GridComp/AMIP/NI2G_GridComp_ExtData.rc +++ b/ESMF/GOCART2G_GridComp/NI2G_GridComp/AMIP/NI2G_GridComp_ExtData.rc @@ -5,9 +5,9 @@ PrimaryExports%% # -------------|-------|-------|--------|----------------------|--------|--------|-------------|----------|----------- # ======= Nitrate Data Instance ========== -climNO3an1 'kg kg-1' N Y F0 none none NO3AN1 /discover/nobackup/projects/gmao/gmao_ops/pub/fp/das/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 2017-02-01T00:00:00P03:00 -climNO3an2 'kg kg-1' N Y F0 none none NO3AN2 /discover/nobackup/projects/gmao/gmao_ops/pub/fp/das/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 2017-02-01T00:00:00P03:00 -climNO3an3 'kg kg-1' N Y F0 none none NO3AN3 /discover/nobackup/projects/gmao/gmao_ops/pub/fp/das/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 2017-02-01T00:00:00P03:00 +climNO3an1 'kg kg-1' N Y F0 none none NO3AN1 /dev/null +climNO3an2 'kg kg-1' N Y F0 none none NO3AN2 /dev/null +climNO3an3 'kg kg-1' N Y F0 none none NO3AN3 /dev/null # ======= Nitrate Sources ======== EMI_NH3_BB 'kg m-2 s-1' N Y %y4-%m2-%d2T12:00:00 none 0.778 biomass ExtData/chemistry/QFED/v2.5r1/sfc/0.1/Y%y4/M%m2/qfed2.emis_nh3.006.%y4%m2%d2.nc4 diff --git a/ESMF/GOCART2G_GridComp/NI2G_GridComp/AMIP/NI2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/NI2G_GridComp/AMIP/NI2G_GridComp_ExtData.yaml index dfc88b73..633de226 100644 --- a/ESMF/GOCART2G_GridComp/NI2G_GridComp/AMIP/NI2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/NI2G_GridComp/AMIP/NI2G_GridComp_ExtData.yaml @@ -3,8 +3,6 @@ Collections: template: ExtData/chemistry/Masks/v0.0.0/sfc/ARCTAS.region_mask.x540_y361.2008.nc NI2G_GEIA.emis_NH3.ocean.x576_y361.t12.20080715_12z.nc4: template: ExtData/chemistry/GEIA/v0.0.0/sfc/GEIA.emis_NH3.ocean.x576_y361.t12.20080715_12z.nc4 - NI2G_GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4: - template: /discover/nobackup/projects/gmao/gmao_ops/pub/fp/das/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 NI2G_MERRA2_GMI.tavg24_3d_dac_Nv.x576_y361_t12.%y4.nc4: template: ExtData/chemistry/MERRA2GMI/v0.0.0/L72/MERRA2_GMI.tavg24_3d_dac_Nv.x576_y361_t12.%y4.nc4 NI2G_NH3-em-anthro_CMIP_CEDS_gn.x2304_y1441_t12.%y4.nc4: @@ -78,18 +76,10 @@ Exports: sample: NI2G_sample_3 variable: REGION_MASK climNO3an1: - collection: NI2G_GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 - regrid: CONSERVE - sample: NI2G_sample_0 - variable: NO3AN1 + collection: /dev/null climNO3an2: - collection: NI2G_GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 - regrid: CONSERVE - sample: NI2G_sample_0 - variable: NO3AN2 + collection: /dev/null climNO3an3: - collection: NI2G_GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 - regrid: CONSERVE - sample: NI2G_sample_0 - variable: NO3AN3 + collection: /dev/null + diff --git a/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridComp_ExtData.rc b/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridComp_ExtData.rc index 9ffed6ee..c002cdb1 100644 --- a/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridComp_ExtData.rc +++ b/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridComp_ExtData.rc @@ -5,9 +5,9 @@ PrimaryExports%% # -------------|-------|-------|--------|----------------------|--------|--------|-------------|----------|----------- # ======= Nitrate Data Instance ========== -climNO3an1 'kg kg-1' N Y F0 none none NO3AN1 /discover/nobackup/projects/gmao/gmao_ops/pub/fp/das/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 2017-02-01T00:00:00P03:00 -climNO3an2 'kg kg-1' N Y F0 none none NO3AN2 /discover/nobackup/projects/gmao/gmao_ops/pub/fp/das/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 2017-02-01T00:00:00P03:00 -climNO3an3 'kg kg-1' N Y F0 none none NO3AN3 /discover/nobackup/projects/gmao/gmao_ops/pub/fp/das/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 2017-02-01T00:00:00P03:00 +climNO3an1 'kg kg-1' N Y F0 none none NO3AN1 /dev/null +climNO3an2 'kg kg-1' N Y F0 none none NO3AN2 /dev/null +climNO3an3 'kg kg-1' N Y F0 none none NO3AN3 /dev/null # ======= Nitrate Sources ======== EMI_NH3_BB 'kg m-2 s-1' N Y %y4-%m2-%d2T12:00:00 none 0.778 biomass ExtData/chemistry/QFED/vNRT/sfc/0.1/Y%y4/M%m2/qfed2.emis_nh3.006.%y4%m2%d2.nc4 diff --git a/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridComp_ExtData.yaml index 14eebf64..d7ea1376 100644 --- a/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridComp_ExtData.yaml @@ -3,8 +3,6 @@ Collections: template: ExtData/chemistry/Masks/v0.0.0/sfc/ARCTAS.region_mask.x540_y361.2008.nc NI2G_GEIA.emis_NH3.ocean.x576_y361.t12.20080715_12z.nc4: template: ExtData/chemistry/GEIA/v0.0.0/sfc/GEIA.emis_NH3.ocean.x576_y361.t12.20080715_12z.nc4 - NI2G_GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4: - template: /discover/nobackup/projects/gmao/gmao_ops/pub/fp/das/Y%y4/M%m2/D%d2/GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 NI2G_MERRA2_GMI.tavg24_3d_dac_Nv.x576_y361_t12.%y4.nc4: template: ExtData/chemistry/MERRA2GMI/v0.0.0/L72/MERRA2_GMI.tavg24_3d_dac_Nv.x576_y361_t12.%y4.nc4 NI2G_NH3-em-anthro_CMIP_CEDS_gn.x2304_y1441_t12.%y4.nc4: @@ -78,18 +76,10 @@ Exports: sample: NI2G_sample_3 variable: REGION_MASK climNO3an1: - collection: NI2G_GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 - regrid: CONSERVE - sample: NI2G_sample_0 - variable: NO3AN1 + collection: /dev/null climNO3an2: - collection: NI2G_GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 - regrid: CONSERVE - sample: NI2G_sample_0 - variable: NO3AN2 + collection: /dev/null climNO3an3: - collection: NI2G_GEOS.fp.asm.inst3_3d_aer_Nv.%y4%m2%d2_%h2%n2.V01.nc4 - regrid: CONSERVE - sample: NI2G_sample_0 - variable: NO3AN3 + collection: /dev/null + diff --git a/ESMF/GOCART2G_GridComp/SS2G_GridComp/AMIP/SS2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/SS2G_GridComp/AMIP/SS2G_GridComp_ExtData.yaml index 82b49659..ffc5b17a 100644 --- a/ESMF/GOCART2G_GridComp/SS2G_GridComp/AMIP/SS2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/SS2G_GridComp/AMIP/SS2G_GridComp_ExtData.yaml @@ -1,8 +1,7 @@ Collections: - SS2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4: - template: ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 - SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4: - template: ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 + SS2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4: + template: ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 + valid_range: "2008-01-01T12:00:00/2008-12-15T12:00:00" Samplings: SS2G_sample_0: @@ -10,103 +9,64 @@ Samplings: Exports: climSSDP001: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSDP001 + collection: /dev/null climSSDP002: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSDP002 + collection: /dev/null climSSDP003: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSDP003 + collection: /dev/null climSSDP004: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSDP004 + collection: /dev/null climSSDP005: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSDP005 + collection: /dev/null climSSSD001: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSSD001 + collection: /dev/null climSSSD002: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSSD002 + collection: /dev/null climSSSD003: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSSD003 + collection: /dev/null climSSSD004: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSSD004 + collection: /dev/null climSSSD005: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSSD005 + collection: /dev/null climSSSV001: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSSV001 + collection: /dev/null climSSSV002: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSSV002 + collection: /dev/null climSSSV003: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSSV003 + collection: /dev/null climSSSV004: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSSV004 + collection: /dev/null climSSSV005: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSSV005 + collection: /dev/null climSSWT001: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSWT001 + collection: /dev/null climSSWT002: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSWT002 + collection: /dev/null climSSWT003: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSWT003 + collection: /dev/null climSSWT004: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSWT004 + collection: /dev/null climSSWT005: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSWT005 + collection: /dev/null climss001: - collection: SS2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 + collection: SS2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: SS2G_sample_0 - variable: ss001 + variable: SS001 climss002: - collection: SS2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 + collection: SS2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: SS2G_sample_0 - variable: ss002 + variable: SS002 climss003: - collection: SS2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 + collection: SS2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: SS2G_sample_0 - variable: ss003 + variable: SS003 climss004: - collection: SS2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 + collection: SS2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: SS2G_sample_0 - variable: ss004 + variable: SS004 climss005: - collection: SS2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 + collection: SS2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: SS2G_sample_0 - variable: ss005 + variable: SS005 + diff --git a/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridComp_ExtData.rc b/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridComp_ExtData.rc index 5f418288..f237f121 100644 --- a/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridComp_ExtData.rc +++ b/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridComp_ExtData.rc @@ -5,40 +5,40 @@ PrimaryExports%% # -------------|-------|-------|--------|----------------------|--------|--------|-------------|----------| # SS.data - 3D -climss001 'kg kg-1' Y N 0 0.0 1.0 ss001 ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 -climss002 'kg kg-1' Y N 0 0.0 1.0 ss002 ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 -climss003 'kg kg-1' Y N 0 0.0 1.0 ss003 ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 -climss004 'kg kg-1' Y N 0 0.0 1.0 ss004 ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 -climss005 'kg kg-1' Y N 0 0.0 1.0 ss005 ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 +climss001 'kg kg-1' Y N 0 0.0 1.0 SS001 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climss002 'kg kg-1' Y N 0 0.0 1.0 SS002 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climss003 'kg kg-1' Y N 0 0.0 1.0 SS003 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climss004 'kg kg-1' Y N 0 0.0 1.0 SS004 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 +climss005 'kg kg-1' Y N 0 0.0 1.0 SS005 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 # SS.data - 2D -climSSDP001 'kg m-2 s-1' Y N 0 0.0 1.0 SSDP001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climSSWT001 'kg m-2 s-1' Y N 0 0.0 1.0 SSWT001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climSSSD001 'kg m-2 s-1' Y N 0 0.0 1.0 SSSD001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climSSSV001 'kg m-2 s-1' Y N 0 0.0 1.0 SSSV001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climSSDP001 'kg m-2 s-1' Y N 0 0.0 1.0 SSDP001 /dev/null +climSSWT001 'kg m-2 s-1' Y N 0 0.0 1.0 SSWT001 /dev/null +climSSSD001 'kg m-2 s-1' Y N 0 0.0 1.0 SSSD001 /dev/null +climSSSV001 'kg m-2 s-1' Y N 0 0.0 1.0 SSSV001 /dev/null -climSSDP002 'kg m-2 s-1' Y N 0 0.0 1.0 SSDP002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climSSWT002 'kg m-2 s-1' Y N 0 0.0 1.0 SSWT002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climSSSD002 'kg m-2 s-1' Y N 0 0.0 1.0 SSSD002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climSSSV002 'kg m-2 s-1' Y N 0 0.0 1.0 SSSV002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climSSDP002 'kg m-2 s-1' Y N 0 0.0 1.0 SSDP002 /dev/null +climSSWT002 'kg m-2 s-1' Y N 0 0.0 1.0 SSWT002 /dev/null +climSSSD002 'kg m-2 s-1' Y N 0 0.0 1.0 SSSD002 /dev/null +climSSSV002 'kg m-2 s-1' Y N 0 0.0 1.0 SSSV002 /dev/null -climSSDP003 'kg m-2 s-1' Y N 0 0.0 1.0 SSDP003 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climSSWT003 'kg m-2 s-1' Y N 0 0.0 1.0 SSWT003 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climSSSD003 'kg m-2 s-1' Y N 0 0.0 1.0 SSSD003 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climSSSV003 'kg m-2 s-1' Y N 0 0.0 1.0 SSSV003 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climSSDP003 'kg m-2 s-1' Y N 0 0.0 1.0 SSDP003 /dev/null +climSSWT003 'kg m-2 s-1' Y N 0 0.0 1.0 SSWT003 /dev/null +climSSSD003 'kg m-2 s-1' Y N 0 0.0 1.0 SSSD003 /dev/null +climSSSV003 'kg m-2 s-1' Y N 0 0.0 1.0 SSSV003 /dev/null -climSSDP004 'kg m-2 s-1' Y N 0 0.0 1.0 SSDP004 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climSSWT004 'kg m-2 s-1' Y N 0 0.0 1.0 SSWT004 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climSSSD004 'kg m-2 s-1' Y N 0 0.0 1.0 SSSD004 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climSSSV004 'kg m-2 s-1' Y N 0 0.0 1.0 SSSV004 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climSSDP004 'kg m-2 s-1' Y N 0 0.0 1.0 SSDP004 /dev/null +climSSWT004 'kg m-2 s-1' Y N 0 0.0 1.0 SSWT004 /dev/null +climSSSD004 'kg m-2 s-1' Y N 0 0.0 1.0 SSSD004 /dev/null +climSSSV004 'kg m-2 s-1' Y N 0 0.0 1.0 SSSV004 /dev/null -climSSDP005 'kg m-2 s-1' Y N 0 0.0 1.0 SSDP005 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climSSWT005 'kg m-2 s-1' Y N 0 0.0 1.0 SSWT005 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climSSSD005 'kg m-2 s-1' Y N 0 0.0 1.0 SSSD005 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climSSSV005 'kg m-2 s-1' Y N 0 0.0 1.0 SSSV005 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climSSDP005 'kg m-2 s-1' Y N 0 0.0 1.0 SSDP005 /dev/null +climSSWT005 'kg m-2 s-1' Y N 0 0.0 1.0 SSWT005 /dev/null +climSSSD005 'kg m-2 s-1' Y N 0 0.0 1.0 SSSD005 /dev/null +climSSSV005 'kg m-2 s-1' Y N 0 0.0 1.0 SSSV005 /dev/null %% diff --git a/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridComp_ExtData.yaml index 82b49659..ffc5b17a 100644 --- a/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridComp_ExtData.yaml @@ -1,8 +1,7 @@ Collections: - SS2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4: - template: ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 - SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4: - template: ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 + SS2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4: + template: ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 + valid_range: "2008-01-01T12:00:00/2008-12-15T12:00:00" Samplings: SS2G_sample_0: @@ -10,103 +9,64 @@ Samplings: Exports: climSSDP001: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSDP001 + collection: /dev/null climSSDP002: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSDP002 + collection: /dev/null climSSDP003: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSDP003 + collection: /dev/null climSSDP004: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSDP004 + collection: /dev/null climSSDP005: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSDP005 + collection: /dev/null climSSSD001: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSSD001 + collection: /dev/null climSSSD002: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSSD002 + collection: /dev/null climSSSD003: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSSD003 + collection: /dev/null climSSSD004: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSSD004 + collection: /dev/null climSSSD005: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSSD005 + collection: /dev/null climSSSV001: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSSV001 + collection: /dev/null climSSSV002: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSSV002 + collection: /dev/null climSSSV003: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSSV003 + collection: /dev/null climSSSV004: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSSV004 + collection: /dev/null climSSSV005: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSSV005 + collection: /dev/null climSSWT001: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSWT001 + collection: /dev/null climSSWT002: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSWT002 + collection: /dev/null climSSWT003: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSWT003 + collection: /dev/null climSSWT004: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSWT004 + collection: /dev/null climSSWT005: - collection: SS2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SS2G_sample_0 - variable: SSWT005 + collection: /dev/null climss001: - collection: SS2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 + collection: SS2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: SS2G_sample_0 - variable: ss001 + variable: SS001 climss002: - collection: SS2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 + collection: SS2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: SS2G_sample_0 - variable: ss002 + variable: SS002 climss003: - collection: SS2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 + collection: SS2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: SS2G_sample_0 - variable: ss003 + variable: SS003 climss004: - collection: SS2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 + collection: SS2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: SS2G_sample_0 - variable: ss004 + variable: SS004 climss005: - collection: SS2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 + collection: SS2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: SS2G_sample_0 - variable: ss005 + variable: SS005 + diff --git a/ESMF/GOCART2G_GridComp/SU2G_GridComp/AMIP.20C/SU2G_GridComp_ExtData.rc b/ESMF/GOCART2G_GridComp/SU2G_GridComp/AMIP.20C/SU2G_GridComp_ExtData.rc index 68c6d773..ea89f3a1 100644 --- a/ESMF/GOCART2G_GridComp/SU2G_GridComp/AMIP.20C/SU2G_GridComp_ExtData.rc +++ b/ESMF/GOCART2G_GridComp/SU2G_GridComp/AMIP.20C/SU2G_GridComp_ExtData.rc @@ -5,30 +5,30 @@ PrimaryExports%% # -------------|-------|-------|--------|----------------------|--------|--------|-------------|----------| #===== Sulfate Data Instance ========================================== -climSO4 'kg kg-1' Y N 0 0.0 1.0 SO4 ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 +climSO4 'kg kg-1' Y N 0 0.0 1.0 SO4 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 #climDMS 'kg kg-1' Y N - 0.0 1.0 none /dev/null #climMSA 'kg kg-1' Y N - 0.0 1.0 none /dev/null #climSO2 'kg kg-1' Y N - 0.0 1.0 none /dev/null -climSUDP001 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climSUWT001 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climSUDP001 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP001 /dev/null +climSUWT001 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT001 /dev/null climSUSD001 'kg m-2 s-1' Y N 0 0.0 1.0 SUSD001 /dev/null -climSUSV001 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climSUSV001 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV001 /dev/null -climSUDP002 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climSUWT002 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climSUDP002 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP002 /dev/null +climSUWT002 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT002 /dev/null climSUSD002 'kg m-2 s-1' Y N 0 0.0 1.0 SUSD002 /dev/null -climSUSV002 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climSUSV002 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV002 /dev/null -climSUDP003 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP003 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climSUWT003 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT003 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climSUDP003 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP003 /dev/null +climSUWT003 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT003 /dev/null climSUSD003 'kg m-2 s-1' Y N 0 0.0 1.0 SUSD003 /dev/null -climSUSV003 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV003 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climSUSV003 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV003 /dev/null -climSUDP004 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP004 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climSUWT004 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT004 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climSUDP004 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP004 /dev/null +climSUWT004 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT004 /dev/null climSUSD004 'kg m-2 s-1' Y N 0 0.0 1.0 SUSD004 /dev/null -climSUSV004 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV004 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climSUSV004 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV004 /dev/null #====== Sulfate Sources ================================================= diff --git a/ESMF/GOCART2G_GridComp/SU2G_GridComp/AMIP/SU2G_GridComp_ExtData.rc b/ESMF/GOCART2G_GridComp/SU2G_GridComp/AMIP/SU2G_GridComp_ExtData.rc index 93d413d2..3dfd99a8 100644 --- a/ESMF/GOCART2G_GridComp/SU2G_GridComp/AMIP/SU2G_GridComp_ExtData.rc +++ b/ESMF/GOCART2G_GridComp/SU2G_GridComp/AMIP/SU2G_GridComp_ExtData.rc @@ -5,30 +5,30 @@ PrimaryExports%% # -------------|-------|-------|--------|----------------------|--------|--------|-------------|----------| #===== Sulfate Data Instance ========================================== -climSO4 'kg kg-1' Y N 0 0.0 1.0 SO4 ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 +climSO4 'kg kg-1' Y N 0 0.0 1.0 SO4 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 #climDMS 'kg kg-1' Y N - 0.0 1.0 none /dev/null #climMSA 'kg kg-1' Y N - 0.0 1.0 none /dev/null #climSO2 'kg kg-1' Y N - 0.0 1.0 none /dev/null -climSUDP001 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climSUWT001 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climSUDP001 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP001 /dev/null +climSUWT001 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT001 /dev/null climSUSD001 'kg m-2 s-1' Y N 0 0.0 1.0 SUSD001 /dev/null -climSUSV001 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climSUSV001 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV001 /dev/null -climSUDP002 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climSUWT002 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climSUDP002 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP002 /dev/null +climSUWT002 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT002 /dev/null climSUSD002 'kg m-2 s-1' Y N 0 0.0 1.0 SUSD002 /dev/null -climSUSV002 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climSUSV002 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV002 /dev/null -climSUDP003 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP003 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climSUWT003 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT003 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climSUDP003 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP003 /dev/null +climSUWT003 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT003 /dev/null climSUSD003 'kg m-2 s-1' Y N 0 0.0 1.0 SUSD003 /dev/null -climSUSV003 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV003 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climSUSV003 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV003 /dev/null -climSUDP004 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP004 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climSUWT004 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT004 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climSUDP004 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP004 /dev/null +climSUWT004 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT004 /dev/null climSUSD004 'kg m-2 s-1' Y N 0 0.0 1.0 SUSD004 /dev/null -climSUSV004 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV004 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climSUSV004 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV004 /dev/null #====== Sulfate Sources ================================================= diff --git a/ESMF/GOCART2G_GridComp/SU2G_GridComp/AMIP/SU2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/SU2G_GridComp/AMIP/SU2G_GridComp_ExtData.yaml index 5b1c29c3..f15dae57 100644 --- a/ESMF/GOCART2G_GridComp/SU2G_GridComp/AMIP/SU2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/SU2G_GridComp/AMIP/SU2G_GridComp_ExtData.yaml @@ -13,10 +13,9 @@ Collections: template: ExtData/chemistry/CEDS/v2021-04-21/sfc/SO2-em-anthro_CMIP_CEDS_gn_shipping.x2304_y1441_t12.%y4.nc4 SU2G_SO4-em-anthro_CMIP_CEDS_gn_shipping.x2304_y1441_t12.%y4.nc4: template: ExtData/chemistry/CEDS/v2021-04-21/sfc/SO4-em-anthro_CMIP_CEDS_gn_shipping.x2304_y1441_t12.%y4.nc4 - SU2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4: - template: ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 - SU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4: - template: ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 + SU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4: + template: ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 + valid_range: "2008-01-01T12:00:00/2008-12-15T12:00:00" SU2G_qfed2.emis_so2.006.%y4%m2%d2.nc4: template: ExtData/chemistry/QFED/v2.5r1/sfc/0.1/Y%y4/M%m2/qfed2.emis_so2.006.%y4%m2%d2.nc4 valid_range: "2000-02-29T12:00/2025-01-01" @@ -102,73 +101,41 @@ Exports: sample: SU2G_sample_1 variable: so4_shipping climSO4: - collection: SU2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 + collection: SU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: SU2G_sample_0 variable: SO4 climSUDP001: - collection: SU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SU2G_sample_0 - variable: SUDP001 + collection: /dev/null climSUDP002: - collection: SU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SU2G_sample_0 - variable: SUDP002 + collection: /dev/null climSUDP003: - collection: SU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SU2G_sample_0 - variable: SUDP003 + collection: /dev/null climSUDP004: - collection: SU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SU2G_sample_0 - variable: SUDP004 + collection: /dev/null climSUSD001: collection: /dev/null - sample: SU2G_sample_0 - variable: SUSD001 climSUSD002: collection: /dev/null - sample: SU2G_sample_0 - variable: SUSD002 climSUSD003: collection: /dev/null - sample: SU2G_sample_0 - variable: SUSD003 climSUSD004: collection: /dev/null - sample: SU2G_sample_0 - variable: SUSD004 climSUSV001: - collection: SU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SU2G_sample_0 - variable: SUSV001 + collection: /dev/null climSUSV002: - collection: SU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SU2G_sample_0 - variable: SUSV002 + collection: /dev/null climSUSV003: - collection: SU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SU2G_sample_0 - variable: SUSV003 + collection: /dev/null climSUSV004: - collection: SU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SU2G_sample_0 - variable: SUSV004 + collection: /dev/null climSUWT001: - collection: SU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SU2G_sample_0 - variable: SUWT001 + collection: /dev/null climSUWT002: - collection: SU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SU2G_sample_0 - variable: SUWT002 + collection: /dev/null climSUWT003: - collection: SU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SU2G_sample_0 - variable: SUWT003 + collection: /dev/null climSUWT004: - collection: SU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SU2G_sample_0 - variable: SUWT004 + collection: /dev/null pSO2_OCS: collection: /dev/null regrid: CONSERVE diff --git a/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridComp_ExtData.rc b/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridComp_ExtData.rc index 0e4394ad..c32cd4e8 100644 --- a/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridComp_ExtData.rc +++ b/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridComp_ExtData.rc @@ -5,30 +5,30 @@ PrimaryExports%% # -------------|-------|-------|--------|----------------------|--------|--------|-------------|----------| #===== Sulfate Data Instance ========================================== -climSO4 'kg kg-1' Y N 0 0.0 1.0 SO4 ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 +climSO4 'kg kg-1' Y N 0 0.0 1.0 SO4 ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 #climDMS 'kg kg-1' Y N - 0.0 1.0 none /dev/null #climMSA 'kg kg-1' Y N - 0.0 1.0 none /dev/null #climSO2 'kg kg-1' Y N - 0.0 1.0 none /dev/null -climSUDP001 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climSUWT001 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climSUDP001 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP001 /dev/null +climSUWT001 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT001 /dev/null climSUSD001 'kg m-2 s-1' Y N 0 0.0 1.0 SUSD001 /dev/null -climSUSV001 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV001 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climSUSV001 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV001 /dev/null -climSUDP002 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climSUWT002 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climSUDP002 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP002 /dev/null +climSUWT002 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT002 /dev/null climSUSD002 'kg m-2 s-1' Y N 0 0.0 1.0 SUSD002 /dev/null -climSUSV002 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV002 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climSUSV002 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV002 /dev/null -climSUDP003 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP003 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climSUWT003 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT003 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climSUDP003 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP003 /dev/null +climSUWT003 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT003 /dev/null climSUSD003 'kg m-2 s-1' Y N 0 0.0 1.0 SUSD003 /dev/null -climSUSV003 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV003 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climSUSV003 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV003 /dev/null -climSUDP004 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP004 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 -climSUWT004 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT004 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climSUDP004 'kg m-2 s-1' Y N 0 0.0 1.0 SUDP004 /dev/null +climSUWT004 'kg m-2 s-1' Y N 0 0.0 1.0 SUWT004 /dev/null climSUSD004 'kg m-2 s-1' Y N 0 0.0 1.0 SUSD004 /dev/null -climSUSV004 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV004 ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 +climSUSV004 'kg m-2 s-1' Y N 0 0.0 1.0 SUSV004 /dev/null #====== Sulfate Sources ================================================= diff --git a/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridComp_ExtData.yaml b/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridComp_ExtData.yaml index 3c7042c4..ef426aa6 100644 --- a/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridComp_ExtData.yaml +++ b/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridComp_ExtData.yaml @@ -13,10 +13,9 @@ Collections: template: ExtData/chemistry/CEDS/v2021-04-21/sfc/SO2-em-anthro_CMIP_CEDS_gn_shipping.x2304_y1441_t12.%y4.nc4 SU2G_SO4-em-anthro_CMIP_CEDS_gn_shipping.x2304_y1441_t12.%y4.nc4: template: ExtData/chemistry/CEDS/v2021-04-21/sfc/SO4-em-anthro_CMIP_CEDS_gn_shipping.x2304_y1441_t12.%y4.nc4 - SU2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4: - template: ExtData/chemistry/MERRAero/v0.0.0/L72/dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 - SU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4: - template: ExtData/chemistry/MERRAero/v0.0.0/sfc/dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 + SU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4: + template: ExtData/chemistry/MERRA2/v0.0.0/L72/merra2.aer_Nv.2003-2015.2008%m2clm.nc4 + valid_range: "2008-01-01T12:00:00/2008-12-15T12:00:00" SU2G_qfed2.emis_so2.006.%y4%m2%d2.nc4: template: ExtData/chemistry/QFED/vNRT/sfc/0.1/Y%y4/M%m2/qfed2.emis_so2.006.%y4%m2%d2.nc4 valid_range: "2014-12-01T12:00/2021-11-01T12:00" @@ -102,73 +101,41 @@ Exports: sample: SU2G_sample_1 variable: so4_shipping climSO4: - collection: SU2G_dR_MERRA-AA-r2.aer_Nv.2003_2014.2008clm.nc4 + collection: SU2G_merra2.aer_Nv.2003-2015.2008%m2clm.nc4 sample: SU2G_sample_0 variable: SO4 climSUDP001: - collection: SU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SU2G_sample_0 - variable: SUDP001 + collection: /dev/null climSUDP002: - collection: SU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SU2G_sample_0 - variable: SUDP002 + collection: /dev/null climSUDP003: - collection: SU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SU2G_sample_0 - variable: SUDP003 + collection: /dev/null climSUDP004: - collection: SU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SU2G_sample_0 - variable: SUDP004 + collection: /dev/null climSUSD001: collection: /dev/null - sample: SU2G_sample_0 - variable: SUSD001 climSUSD002: collection: /dev/null - sample: SU2G_sample_0 - variable: SUSD002 climSUSD003: collection: /dev/null - sample: SU2G_sample_0 - variable: SUSD003 climSUSD004: collection: /dev/null - sample: SU2G_sample_0 - variable: SUSD004 climSUSV001: - collection: SU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SU2G_sample_0 - variable: SUSV001 + collection: /dev/null climSUSV002: - collection: SU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SU2G_sample_0 - variable: SUSV002 + collection: /dev/null climSUSV003: - collection: SU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SU2G_sample_0 - variable: SUSV003 + collection: /dev/null climSUSV004: - collection: SU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SU2G_sample_0 - variable: SUSV004 + collection: /dev/null climSUWT001: - collection: SU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SU2G_sample_0 - variable: SUWT001 + collection: /dev/null climSUWT002: - collection: SU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SU2G_sample_0 - variable: SUWT002 + collection: /dev/null climSUWT003: - collection: SU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SU2G_sample_0 - variable: SUWT003 + collection: /dev/null climSUWT004: - collection: SU2G_dR_MERRA-AA-r2.aer_Nx.2003_2014.2008clm.nc4 - sample: SU2G_sample_0 - variable: SUWT004 + collection: /dev/null pSO2_OCS: collection: /dev/null regrid: CONSERVE diff --git a/components.yaml b/components.yaml index 4d79d1c1..715bcea1 100644 --- a/components.yaml +++ b/components.yaml @@ -5,19 +5,19 @@ GOCART: env: local: ./env@ remote: ../ESMA_env.git - tag: v4.2.0 + tag: v4.8.0 develop: main cmake: local: ./cmake@ remote: ../ESMA_cmake.git - tag: v3.17.0 + tag: v3.24.0 develop: develop ecbuild: local: ./cmake@/ecbuild@ remote: ../ecbuild.git - tag: geos/v1.2.0 + tag: geos/v1.3.0 HEMCO: local: ./ESMF/HEMCO_GridComp@ @@ -27,12 +27,12 @@ HEMCO: GMAO_Shared: local: ./ESMF/Shared/GMAO_Shared@ remote: ../GMAO_Shared.git - tag: v1.5.6 + tag: v1.6.3 sparse: ./config/GMAO_Shared.sparse develop: main MAPL: local: ./ESMF/Shared/MAPL@ remote: ../MAPL.git - tag: v2.23.1 + tag: v2.34.0 develop: develop From f4c7da3a2b1cedced27011dd66a7ef854c674630 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Tue, 28 Mar 2023 13:01:14 -0400 Subject: [PATCH 09/36] Donifan's 1MOM bug fixes for seasalt --- .../GOCART2G_GridCompMod.F90 | 203 ++++++------------ 1 file changed, 67 insertions(+), 136 deletions(-) diff --git a/ESMF/GOCART2G_GridComp/GOCART2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/GOCART2G_GridCompMod.F90 index fd64626e..998e63d2 100644 --- a/ESMF/GOCART2G_GridComp/GOCART2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/GOCART2G_GridCompMod.F90 @@ -58,8 +58,8 @@ module GOCART2G_GridCompMod ! !DESCRIPTION: ! -! {\tt GOCART} is a gridded component from the GOCART model and includes -! dust, sea salt, sulfates, nitrate, organic and black carbon. +! {\tt GOCART} is a gridded component from the GOCART model and includes +! dust, sea salt, sulfates, nitrate, organic and black carbon. ! ! @@ -67,7 +67,7 @@ module GOCART2G_GridCompMod ! ! 25feb2005 da Silva First crack. ! 19jul2006 da Silva First separate GOCART component. -! 14Oct2019 E.Sherman, A.Darmenov, A. da Silva, T. Clune First attempt at refactoring. +! 14Oct2019 E.Sherman, A.Darmenov, A. da Silva, T. Clune First attempt at refactoring. ! !EOP !============================================================================ @@ -89,11 +89,11 @@ subroutine SetServices (GC, RC) ! !DESCRIPTION: This version uses MAPL_GenericSetServices, which sets ! the Initialize and Finalize services to generic versions. It also -! allocates our instance of a generic state and puts it in the +! allocates our instance of a generic state and puts it in the ! gridded component (GC). Here we only set the two-stage run method and ! declare the data services. -! !REVISION HISTORY: +! !REVISION HISTORY: ! 14oct2019 Sherman, da Silva, Darmenov, Clune - First attempt at refactoring for ESMF compatibility @@ -102,7 +102,7 @@ subroutine SetServices (GC, RC) !============================================================================ ! ! Locals - character (len=ESMF_MAXSTR) :: COMP_NAME + character (len=ESMF_MAXSTR) :: COMP_NAME type (ESMF_Config) :: myCF ! GOCART2G_GridComp.rc type (ESMF_Config) :: cf ! universal config type (GOCART_State), pointer :: self @@ -180,7 +180,7 @@ subroutine SetServices (GC, RC) ! Define EXPORT states -! This state is needed by radiation and moist. It contains +! This state is needed by radiation and moist. It contains ! aerosols and callback methods ! -------------------------------------------------------- call MAPL_AddExportSpec(GC, & @@ -206,7 +206,7 @@ subroutine SetServices (GC, RC) ! Add connectivities for Nitrate component -! Nitrate currently only supports one Nitrate component. Nitrate only +! Nitrate currently only supports one Nitrate component. Nitrate only ! uses the first active dust and sea salt instance. if (size(self%NI%instances) > 0) then if ((self%DU%instances(1)%is_active)) then @@ -246,7 +246,7 @@ end subroutine SetServices subroutine Initialize (GC, import, export, clock, RC) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: import ! Import state type (ESMF_State), intent(inout) :: export ! Export state type (ESMF_Clock), intent(inout) :: clock ! The clock @@ -255,13 +255,13 @@ subroutine Initialize (GC, import, export, clock, RC) ! !DESCRIPTION: This initializes the GOCART Grid Component. It primarily creates ! its exports and births its children. -! !REVISION HISTORY: +! !REVISION HISTORY: ! 14oct2019 E.Sherman First attempt at refactoring !EOP !============================================================================ -! Locals +! Locals character (len=ESMF_MAXSTR) :: COMP_NAME type (MAPL_MetaComp), pointer :: MAPL @@ -277,7 +277,7 @@ subroutine Initialize (GC, import, export, clock, RC) type (wrap_) :: wrap integer :: n_modes - integer, parameter :: n_gocart_modes = 14 + integer, parameter :: n_gocart_modes = 14 integer :: dims(3) character(len=ESMF_MAXSTR) :: aero_aci_modes(n_gocart_modes) @@ -287,7 +287,7 @@ subroutine Initialize (GC, import, export, clock, RC) __Iam__('Initialize') !**************************************************************************** -! Begin... +! Begin... ! Get the target components name and set-up traceback handle. ! ----------------------------------------------------------- @@ -390,8 +390,8 @@ subroutine Initialize (GC, import, export, clock, RC) ! Attach the aerosol optics method. Used in Radiation. call ESMF_MethodAdd (aero, label='run_aerosol_optics', userRoutine=run_aerosol_optics, __RC__) - ! This attribute indicates if the aerosol optics method is implemented or not. - ! Radiation will not call the aerosol optics method unless this attribute is + ! This attribute indicates if the aerosol optics method is implemented or not. + ! Radiation will not call the aerosol optics method unless this attribute is ! explicitly set to true. call ESMF_AttributeSet(aero, name='implements_aerosol_optics_method', value=.true., __RC__) @@ -399,7 +399,7 @@ subroutine Initialize (GC, import, export, clock, RC) ! ------------------------------------------------------------ aero_aci_modes = (/'du001 ', 'du002 ', 'du003 ', & 'du004 ', 'du005 ', & - 'ss001 ', 'ss002 ', 'ss003 ', & + 'ss001 ', 'ss002 ', 'ss003 ', & 'sulforg01', 'sulforg02', 'sulforg03', & 'bcphilic ', 'ocphilic ', 'brcphilic'/) @@ -418,10 +418,6 @@ subroutine Initialize (GC, import, export, clock, RC) call ESMF_ConfigGetAttribute( CF, CLDMICRO, Label='CLDMICR_OPTION:', default="BACM_1M", RC=STATUS) call ESMF_AttributeSet(aero, name='cldmicro', value=CLDMICRO, __RC__) - ! scaling factor for sea salt - call ESMF_ConfigGetAttribute(CF, f_aci_seasalt, default=0.0, label='SS_SCALE:', __RC__) - call ESMF_AttributeSet(aero, name='seasalt_scaling_factor', value=f_aci_seasalt, __RC__) - ! Add variables to AERO state call add_aero (aero, label='air_temperature', label2='T', grid=grid, typekind=MAPL_R4, __RC__) call add_aero (aero, label='fraction_of_land_type', label2='FRLAND', grid=grid, typekind=MAPL_R4, __RC__) @@ -442,24 +438,24 @@ subroutine Initialize (GC, import, export, clock, RC) contains subroutine add_aero_states_(instances) - type(Instance), intent(in) :: instances(:) + type(Instance), intent(in) :: instances(:) type (ESMF_State) :: child_state type (ESMF_FieldBundle) :: child_bundle type (ESMF_Field), allocatable :: fieldList(:) - + integer :: i integer :: id integer :: fieldCount __Iam__('Initialize::add_aero_states_') - + do i = 1, size(instances) if (.not. instances(i)%is_active) cycle id = instances(i)%id - + call ESMF_GridCompGet (gcs(id), __RC__ ) call ESMF_StateGet (gex(id), trim(instances(i)%name)//'_AERO', child_state, __RC__) call ESMF_StateAdd (aero, [child_state], __RC__) - + if (instances(i)%name(1:2) /= 'NI') then call ESMF_StateGet (gex(id), trim(instances(i)%name)//'_AERO_DP', child_bundle, __RC__) call ESMF_FieldBundleGet (child_bundle, fieldCount=fieldCount, __RC__) @@ -473,10 +469,10 @@ subroutine add_aero_states_(instances) end subroutine add_aero_states_ end subroutine Initialize - + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !BOP -! !IROUTINE: RUN -- Run method for GOCART2G +! !IROUTINE: RUN -- Run method for GOCART2G ! !INTERFACE: @@ -484,13 +480,13 @@ end subroutine Initialize subroutine Run1 (GC, import, export, clock, RC) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: import ! Import state type (ESMF_State), intent(inout) :: export ! Export state type (ESMF_Clock), intent(inout) :: clock ! The clock integer, optional, intent( out) :: RC ! Error code: -! !DESCRIPTION: Run method +! !DESCRIPTION: Run method !EOP !============================================================================ @@ -508,7 +504,7 @@ subroutine Run1 (GC, import, export, clock, RC) __Iam__('Run1') !**************************************************************************** -! Begin... +! Begin... ! Get my name and set-up traceback handle @@ -545,7 +541,7 @@ end subroutine Run1 subroutine Run2 (GC, import, export, clock, RC) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: import ! Import state type (ESMF_State), intent(inout) :: export ! Export state type (ESMF_Clock), intent(inout) :: clock ! The clock @@ -606,7 +602,7 @@ subroutine Run2 (GC, import, export, clock, RC) real, pointer, dimension(:,:,:,:) :: suextcoefrh20, suextcoefrh80 real, pointer, dimension(:,:,:,:) :: suscacoefrh20, suscacoefrh80 real, pointer, dimension(:,:) :: suangstr, so4smass - real, pointer, dimension(:,:,:) :: bcexttau, bcstexttau, bcscatau, bcstscatau + real, pointer, dimension(:,:,:) :: bcexttau, bcstexttau, bcscatau, bcstscatau real, pointer, dimension(:,:,:,:) :: bcextcoef, bcscacoef real, pointer, dimension(:,:,:,:) :: bcextcoefrh20, bcextcoefrh80 real, pointer, dimension(:,:,:,:) :: bcscacoefrh20, bcscacoefrh80 @@ -631,7 +627,7 @@ subroutine Run2 (GC, import, export, clock, RC) __Iam__('Run2') !**************************************************************************** -! Begin... +! Begin... ! Get my name and set-up traceback handle ! --------------------------------------- @@ -701,7 +697,7 @@ subroutine Run2 (GC, import, export, clock, RC) end do if (ind550 == 0) then - print*,trim(Iam),' : 550nm wavelengths is not present in GOCART2G_GridComp.rc.',& + print*,trim(Iam),' : 550nm wavelengths is not present in GOCART2G_GridComp.rc.',& ' Cannot produce TOTANGSTR variable without 550nm wavelength.' VERIFY_(100) end if @@ -747,7 +743,7 @@ subroutine Run2 (GC, import, export, clock, RC) if(associated(totexttfm) .and. associated(duexttfm)) totexttfm(:,:,w) = totexttfm(:,:,w)+duexttfm(:,:,w) if(associated(totscatfm) .and. associated(duscatfm)) totscatfm(:,:,w) = totscatfm(:,:,w)+duscatfm(:,:,w) end do - + do w = 1, size(self%wavelengths_profile) if(associated(totextcoef) .and. associated(duextcoef)) totextcoef(:,:,:,w) = totextcoef(:,:,:,w)+duextcoef(:,:,:,w) if(associated(totextcoefrh20) .and. associated(duextcoefrh20)) totextcoefrh20(:,:,:,w) = totextcoefrh20(:,:,:,w)+duextcoefrh20(:,:,:,w) @@ -756,7 +752,7 @@ subroutine Run2 (GC, import, export, clock, RC) if(associated(totscacoefrh20) .and. associated(duscacoefrh20)) totscacoefrh20(:,:,:,w) = totscacoefrh20(:,:,:,w)+duscacoefrh20(:,:,:,w) if(associated(totscacoefrh80) .and. associated(duscacoefrh80)) totscacoefrh80(:,:,:,w) = totscacoefrh80(:,:,:,w)+duscacoefrh80(:,:,:,w) end do - + call MAPL_GetPointer (gex(self%DU%instances(n)%id), dusmass, 'DUSMASS', __RC__) call MAPL_GetPointer (gex(self%DU%instances(n)%id), dusmass25, 'DUSMASS25', __RC__) if(associated(pm) .and. associated(dusmass)) pm = pm + dusmass @@ -770,7 +766,7 @@ subroutine Run2 (GC, import, export, clock, RC) tau1 = tau1 + duexttau(:,:,ind550)*exp(c1*duangstr) tau2 = tau2 + duexttau(:,:,ind550)*exp(c2*duangstr) end if - end if + end if end do ! Sea Salt @@ -812,7 +808,7 @@ subroutine Run2 (GC, import, export, clock, RC) if(associated(totscacoefrh20) .and. associated(ssscacoefrh20)) totscacoefrh20(:,:,:,w) = totscacoefrh20(:,:,:,w)+ssscacoefrh20(:,:,:,w) if(associated(totscacoefrh80) .and. associated(ssscacoefrh80)) totscacoefrh80(:,:,:,w) = totscacoefrh80(:,:,:,w)+ssscacoefrh80(:,:,:,w) enddo - + call MAPL_GetPointer (gex(self%SS%instances(n)%id), sssmass, 'SSSMASS', __RC__) call MAPL_GetPointer (gex(self%SS%instances(n)%id), sssmass25, 'SSSMASS25', __RC__) if(associated(pm) .and. associated(sssmass)) pm = pm + sssmass @@ -868,7 +864,7 @@ subroutine Run2 (GC, import, export, clock, RC) if(associated(totscacoefrh20) .and. associated(niscacoefrh20)) totscacoefrh20(:,:,:,w) = totscacoefrh20(:,:,:,w)+niscacoefrh20(:,:,:,w) if(associated(totscacoefrh80) .and. associated(niscacoefrh80)) totscacoefrh80(:,:,:,w) = totscacoefrh80(:,:,:,w)+niscacoefrh80(:,:,:,w) end do - + call MAPL_GetPointer (gex(self%NI%instances(n)%id), nismass, 'NISMASS', __RC__) call MAPL_GetPointer (gex(self%NI%instances(n)%id), nismass25, 'NISMASS25', __RC__) call MAPL_GetPointer (gex(self%NI%instances(n)%id), nh4smass, 'NH4SMASS', __RC__) @@ -921,7 +917,7 @@ subroutine Run2 (GC, import, export, clock, RC) if(associated(totscacoefrh20) .and. associated(suscacoefrh20)) totscacoefrh20(:,:,:,w) = totscacoefrh20(:,:,:,w)+suscacoefrh20(:,:,:,w) if(associated(totscacoefrh80) .and. associated(suscacoefrh80)) totscacoefrh80(:,:,:,w) = totscacoefrh80(:,:,:,w)+suscacoefrh80(:,:,:,w) end do - + call MAPL_GetPointer (gex(self%SU%instances(n)%id), pso4, 'PSO4', __RC__) if(associated(pso4tot) .and. associated(pso4)) pso4tot = pso4tot + pso4 @@ -1026,7 +1022,7 @@ subroutine Run2 (GC, import, export, clock, RC) if(associated(totexttfm) .and. associated(ocexttau)) totexttfm(:,:,w) = totexttfm(:,:,w)+ocexttau(:,:,w) if(associated(totscatfm) .and. associated(ocscatau)) totscatfm(:,:,w) = totscatfm(:,:,w)+ocscatau(:,:,w) end do - + do w = 1, size(self%wavelengths_profile) if(associated(totextcoef) .and. associated(ocextcoef)) totextcoef(:,:,:,w) = totextcoef(:,:,:,w)+ocextcoef(:,:,:,w) if(associated(totextcoefrh20) .and. associated(ocextcoefrh20)) totextcoefrh20(:,:,:,w) = totextcoefrh20(:,:,:,w)+ocextcoefrh20(:,:,:,w) @@ -1035,12 +1031,12 @@ subroutine Run2 (GC, import, export, clock, RC) if(associated(totscacoefrh20) .and. associated(ocscacoefrh20)) totscacoefrh20(:,:,:,w) = totscacoefrh20(:,:,:,w)+ocscacoefrh20(:,:,:,w) if(associated(totscacoefrh80) .and. associated(ocscacoefrh80)) totscacoefrh80(:,:,:,w) = totscacoefrh80(:,:,:,w)+ocscacoefrh80(:,:,:,w) end do - + call MAPL_GetPointer (gex(self%CA%instances(n)%id), ocsmass, 'CA.ocSMASS', __RC__) if(associated(pm) .and. associated(ocsmass)) pm = pm + ocsmass if(associated(pm25) .and. associated(ocsmass)) pm25 = pm25 + ocsmass if(associated(pm_rh35) .and. associated(ocsmass)) pm_rh35 = pm_rh35 + 1.16*ocsmass ! needs to be revisited: OCpho + 1.16 OCphi - if(associated(pm25_rh35) .and. associated(ocsmass)) pm25_rh35 = pm25_rh35 + 1.16*ocsmass ! + if(associated(pm25_rh35) .and. associated(ocsmass)) pm25_rh35 = pm25_rh35 + 1.16*ocsmass ! if(associated(pm_rh50) .and. associated(ocsmass)) pm_rh50 = pm_rh50 + 1.24*ocsmass ! needs to be revisited: OCpho + 1.24 OCphi if(associated(pm25_rh50) .and. associated(ocsmass)) pm25_rh50 = pm25_rh50 + 1.24*ocsmass ! @@ -1083,12 +1079,12 @@ subroutine Run2 (GC, import, export, clock, RC) if(associated(totscacoefrh20) .and. associated(brscacoefrh20)) totscacoefrh20(:,:,:,w) = totscacoefrh20(:,:,:,w)+brscacoefrh20(:,:,:,w) if(associated(totscacoefrh80) .and. associated(brscacoefrh80)) totscacoefrh80(:,:,:,w) = totscacoefrh80(:,:,:,w)+brscacoefrh80(:,:,:,w) end do - + call MAPL_GetPointer (gex(self%CA%instances(n)%id), brsmass, 'CA.brSMASS', __RC__) if(associated(pm) .and. associated(brsmass)) pm = pm + brsmass if(associated(pm25) .and. associated(brsmass)) pm25 = pm25 + brsmass if(associated(pm_rh35) .and. associated(brsmass)) pm_rh35 = pm_rh35 + 1.16*brsmass ! needs to be revisited: OCpho + 1.16 OCphi - if(associated(pm25_rh35) .and. associated(brsmass)) pm25_rh35 = pm25_rh35 + 1.16*brsmass ! + if(associated(pm25_rh35) .and. associated(brsmass)) pm25_rh35 = pm25_rh35 + 1.16*brsmass ! if(associated(pm_rh50) .and. associated(brsmass)) pm_rh50 = pm_rh50 + 1.24*brsmass ! needs to be revisited: OCpho + 1.24 OCphi if(associated(pm25_rh50) .and. associated(brsmass)) pm25_rh50 = pm25_rh50 + 1.24*brsmass ! @@ -1100,7 +1096,7 @@ subroutine Run2 (GC, import, export, clock, RC) end do ! Finish calculating totangstr - if(associated(totangstr)) then + if(associated(totangstr)) then totangstr = log(tau1/tau2)/c3 end if @@ -1197,9 +1193,9 @@ subroutine createInstances_ (self, GC, rc) RETURN_(ESMF_SUCCESS) contains - + subroutine addChildren__ (gc, species, setServices, rc) - + type (ESMF_GridComp), intent(inout) :: gc type(Constituent), intent(inout) :: species external :: setServices @@ -1249,7 +1245,7 @@ subroutine serialize_bundle (state, rc) __Iam__('GOCART2G::serialize_bundle') -! !Description: Callback for AERO_RAD state used in GAAS module to provide a +! !Description: Callback for AERO_RAD state used in GAAS module to provide a ! serialized ESMF_Bundle of aerosol fields. !----------------------------------------------------------------------------------- ! Begin... @@ -1332,7 +1328,7 @@ subroutine run_aerosol_optics (state, rc) ! Description: Used in Radiation gridded components to provide aerosol properties !----------------------------------------------------------------------------------- -! Begin... +! Begin... ! Radiation band ! -------------- @@ -1343,7 +1339,7 @@ subroutine run_aerosol_optics (state, rc) call ESMF_AttributeGet(state, name='relative_humidity_for_aerosol_optics', value=fld_name, __RC__) call MAPL_GetPointer(state, RH, trim(fld_name), __RC__) -! Pressure at layer edges +! Pressure at layer edges ! ------------------------ call ESMF_AttributeGet(state, name='air_pressure_for_aerosol_optics', value=fld_name, __RC__) call MAPL_GetPointer(state, PLE, trim(fld_name), __RC__) @@ -1477,7 +1473,7 @@ subroutine aerosol_activation_properties(state, rc) ! Local ! --------- character(len=ESMF_MAXSTR) :: mode ! mode name - character(len=ESMF_MAXSTR) :: mode_ ! lowercase mode name + character(len=ESMF_MAXSTR) :: mode_ ! lowercase mode name type(ESMF_State) :: child_state @@ -1491,16 +1487,15 @@ subroutine aerosol_activation_properties(state, rc) real, dimension(:,:,:,:), pointer :: ptr_4d ! aerosol mass mixing ratio (temporary) real, dimension(:,:,:), pointer :: ptr_3d ! aerosol mass mixing ratio (temporary) - real, dimension(:,:,:), pointer :: num ! number concentration of aerosol particles + real, dimension(:,:,:), pointer :: num ! number concentration of aerosol particles real, dimension(:,:,:), pointer :: diameter ! dry size of aerosol real, dimension(:,:,:), pointer :: sigma ! width of aerosol mode real, dimension(:,:,:), pointer :: density ! density of aerosol - real, dimension(:,:,:), pointer :: hygroscopicity ! hygroscopicity of aerosol + real, dimension(:,:,:), pointer :: hygroscopicity ! hygroscopicity of aerosol real, dimension(:,:,:), pointer :: f_dust ! fraction of dust aerosol - real, dimension(:,:,:), pointer :: f_soot ! fraction of soot aerosol + real, dimension(:,:,:), pointer :: f_soot ! fraction of soot aerosol real, dimension(:,:,:), pointer :: f_organic ! fraction of organic aerosol - real :: ss_scale ! sea salt scaling factor real :: max_clean ! max mixing ratio before considered polluted real :: ccn_tuning ! tunes conversion factors for sulfate character(LEN=ESMF_MAXSTR) :: cld_micro @@ -1536,7 +1531,7 @@ subroutine aerosol_activation_properties(state, rc) __Iam__('GOCART2G::aerosol_activation_properties') -! Begin... +! Begin... ! Get list of child states within state and add to aeroList ! --------------------------------------------------------- @@ -1566,12 +1561,12 @@ subroutine aerosol_activation_properties(state, rc) ! ------------ call ESMF_AttributeGet(state, name='aerosol_mode', value=mode, __RC__) -! Land fraction +! Land fraction ! ------------- call ESMF_AttributeGet(state, name='fraction_of_land_type', value=fld_name, __RC__) call MAPL_GetPointer(state, f_land, trim(fld_name), __RC__) -! Pressure at layer edges +! Pressure at layer edges ! ------------------------ call ESMF_AttributeGet(state, name='air_pressure_for_aerosol_optics', value=fld_name, __RC__) call MAPL_GetPointer(state, ple, trim(fld_name), __RC__) @@ -1613,7 +1608,6 @@ subroutine aerosol_activation_properties(state, rc) ! Sea salt scaling fctor ! ---------------------- - call ESMF_AttributeGet(state, name='seasalt_scaling_factor', value=ss_scale, __RC__) call ESMF_AttributeGet(state, name='max_q_clean', value=max_clean, __RC__) call ESMF_AttributeGet(state, name='cldmicro', value=cld_micro, __RC__) call ESMF_AttributeGet(state, name='ccn_tuning', value=ccn_tuning, __RC__) @@ -1644,7 +1638,7 @@ subroutine aerosol_activation_properties(state, rc) else if (index(mode_, 'ss00') > 0) then ! Sea Salt ! compute the total mass mixing ratio and impose a tri-modal size distribution do i = 1, size(aeroList) - if (index(aeroList(i), 'SS') > 0) then + if (index(aeroList(i), 'SS') > 0) then call ESMF_StateGet(state, trim(aeroList(i)), child_state, __RC__) call MAPL_GetPointer(child_state, ptr_4d, 'SS', __RC__) do j = 1, ubound(ptr_4d, 4) @@ -1652,14 +1646,6 @@ subroutine aerosol_activation_properties(state, rc) ptr_3d => ptr_4d(:,:,:,j) end do - ! temperature correction over the ocean - allocate(f(i2,j2, km), __STAT__) - call ocean_correction_(f, f_land, temperature(1:i2,1:j2,km), ss_scale, 1, i2, 1, j2, km) - - ! apply the correction factor - q = f * q - deallocate(f, __STAT__) - hygroscopicity = k_SS density = densSS end if @@ -1689,11 +1675,6 @@ subroutine aerosol_activation_properties(state, rc) density = densORG * ptr_3d + density end if - ! required by the aap_(...) - if((adjustl(cld_micro)/="MGB2_2M") .and. (index(aeroList(i), 'SU') > 0)) then ! maintained for compatibility with the single moment - call ESMF_StateGet(state, trim(aeroList(i)), child_state, __RC__) - call MAPL_GetPointer(child_state, ptr_3d, 'SO4', __RC__) - end if end do where (q > 2.0e-12 .and. hygroscopicity > tiny(0.0)) @@ -1786,11 +1767,11 @@ subroutine aap_(mode, q, num, diameter, sigma, f_dust, f_soot, f_organic, dens_, real, intent(in), dimension(i1:i2,j1:j2,km) :: q_ ! auxiliary mass real, intent(in), dimension(i1:i2,j1:j2,km) :: dens_ ! density - real, intent(out), dimension(i1:i2,j1:j2,km) :: num ! number concentration of aerosol particles + real, intent(out), dimension(i1:i2,j1:j2,km) :: num ! number concentration of aerosol particles real, intent(out), dimension(i1:i2,j1:j2,km) :: diameter ! dry size of aerosol - real, intent(out), dimension(i1:i2,j1:j2,km) :: sigma ! width of aerosol mode + real, intent(out), dimension(i1:i2,j1:j2,km) :: sigma ! width of aerosol mode real, intent(out), dimension(i1:i2,j1:j2,km) :: f_dust ! fraction of dust aerosol - real, intent(out), dimension(i1:i2,j1:j2,km) :: f_soot ! fraction of soot aerosol + real, intent(out), dimension(i1:i2,j1:j2,km) :: f_soot ! fraction of soot aerosol real, intent(out), dimension(i1:i2,j1:j2,km) :: f_organic ! fraction of organic aerosol integer, intent(out) :: rc ! return code @@ -1819,22 +1800,10 @@ subroutine aap_(mode, q, num, diameter, sigma, f_dust, f_soot, f_organic, dens_, f_soot = 0.0 f_organic = 0.0 - if(adjustl(cld_micro)=="MGB2_2M") then - qaux=q !this corrects a bug - else - qaux = q_ !keep it to get zero diff with the single moment - max_clean = 5.0e-7 - ccn_tuning = 1.0 - end if - + qaux=q !this corrects a bug if (index(mode_, 'ss00') > 0) then - if(adjustl(cld_micro)=="MGB2_2M") then - TPI (1) = 230e6 ! num fraction (reduced 091015) - else - TPI (1) = 100e6 ! num fraction (reduced 091015) - end if - + TPI (1) = 230e6 ! num fraction (reduced 091015) DPGI (1) = 0.02e-6 ! modal diameter (m) SIGI (1) = log(1.6) ! geometric dispersion (sigma_g) ! accumulation @@ -1875,11 +1844,11 @@ subroutine aap_(mode, q, num, diameter, sigma, f_dust, f_soot, f_organic, dens_, ! fine TPIclean (1) = 1.0e9 ! total concentration (# m-3) DPGIclean (1) = 0.016e-6 ! modal diameter (m) - SIGIclean (1) = log(1.6) ! geometric dispersion (sigma_g) + SIGIclean (1) = log(1.6) ! geometric dispersion (sigma_g) ! accumulation TPIclean (2) = 8.0e8 ! total concentration (# m-3) DPGIclean (2) = 0.067e-6 ! modal diameter (m) - SIGIclean (2) = log(2.1) ! geometric dispersion (sigma_g) + SIGIclean (2) = log(2.1) ! geometric dispersion (sigma_g) !Coarse TPIclean (3) = 2.0e6 ! total concentration (# m-3) DPGIclean (3) = 0.93e-6 ! modal diameter (m) @@ -1946,7 +1915,7 @@ subroutine aap_(mode, q, num, diameter, sigma, f_dust, f_soot, f_organic, dens_, elsewhere sigma = SIGIclean(1) diameter = DPGIclean(1) - num = TPIclean(1) * qaux*ccn_tuning / (dens_*fmassclean) ! only sulfate + num = TPIclean(1) * qaux*ccn_tuning / (dens_*fmassclean) ! only sulfate end where case ('sulforg02') @@ -1999,44 +1968,6 @@ subroutine aap_(mode, q, num, diameter, sigma, f_dust, f_soot, f_organic, dens_, end subroutine aap_ - subroutine ocean_correction_(f, f_land, t_air_sfc, ss_scale, i1, i2, j1, j2, km) - - implicit none - - integer, intent(in) :: i1, i2 ! dimension bounds - integer, intent(in) :: j1, j2 ! ... // .. - integer, intent(in) :: km ! ... // .. - - real, intent(in ), dimension(i1:i2,j1:j2) :: f_land ! fraction of land - real, intent(in ), dimension(i1:i2,j1:j2) :: t_air_sfc ! air temperature in the surface model layer - real, intent(in ) :: ss_scale ! scaling factor for sea salt at low T - - real, intent(out), dimension(i1:i2,j1:j2, km) :: f ! correction factor - - ! local - integer :: i, j - real :: usurf - - f = 1.0 - - do j = j1, j2 - do i = i1, i2 - if (f_land(i,j) < 0.1) then !ocean - - if(adjustl(cld_micro) .ne."MGB2_2M") then - usurf = max(min((t_air_sfc(i,j) - 285.0) / 2.0, 10.0), -10.0) !smooth transition around some T value - else - usurf = max(min((t_air_sfc(i,j) - 285.0) / 2.0, 30.0), -30.0) !smooth transition around some T value - end if - usurf = min(ss_scale / (1.0 + exp(usurf)), 20.0) - - f(i,j,:) = (1.0 + usurf) - end if - end do - end do - - end subroutine ocean_correction_ - end subroutine aerosol_activation_properties @@ -2073,7 +2004,7 @@ subroutine get_monochromatic_aop (state, rc) ! Description: Used in GAAS gridded component to provide aerosol properties !----------------------------------------------------------------------------------- -! Begin... +! Begin... ! Radiation band ! -------------- @@ -2084,7 +2015,7 @@ subroutine get_monochromatic_aop (state, rc) call ESMF_AttributeGet(state, name='relative_humidity_for_aerosol_optics', value=fld_name, __RC__) call MAPL_GetPointer(state, RH, trim(fld_name), __RC__) -! Pressure at layer edges +! Pressure at layer edges ! ------------------------ call ESMF_AttributeGet(state, name='air_pressure_for_aerosol_optics', value=fld_name, __RC__) call MAPL_GetPointer(state, PLE, trim(fld_name), __RC__) @@ -2194,7 +2125,7 @@ subroutine get_mixRatioSum (state, rc) ! Description: Used in GAAS gridded component to provide sum of aerosol mixing ratio !-------------------------------------------------------------------------------------- -! Begin... +! Begin... call ESMF_AttributeGet(state, name='aerosolName', value=aeroName, __RC__) call ESMF_AttributeGet(state, name='im', value=im, __RC__) @@ -2320,7 +2251,7 @@ subroutine getAerosolSum (aeroToken, state, aeroList, aeroOut, rc) ! Begin... endInd = len_trim(aeroToken) - + aeroOut = 0.0 do i = 1, size(aeroList) if (trim(aeroList(i)(1:endInd)) == trim(aeroToken)) then From 63794dff554107d9fcc07145a125d705f441d082 Mon Sep 17 00:00:00 2001 From: Amidu Oloso Date: Tue, 4 Apr 2023 12:26:50 -0400 Subject: [PATCH 10/36] replace globalCellCountPerDim with localCellCountPerDim as appropriate to avoid excessive memory wastage --- .../CA2G_GridComp/CA2G_GridCompMod.F90 | 2 +- .../DU2G_GridComp/DU2G_GridCompMod.F90 | 2 +- .../NI2G_GridComp/NI2G_GridCompMod.F90 | 21 ++++++++++++------- .../SS2G_GridComp/SS2G_GridCompMod.F90 | 2 +- .../SU2G_GridComp/SU2G_GridCompMod.F90 | 2 +- 5 files changed, 18 insertions(+), 11 deletions(-) diff --git a/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridCompMod.F90 index 61f8c689..15ce1eb3 100644 --- a/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridCompMod.F90 @@ -406,7 +406,7 @@ subroutine Initialize (GC, import, export, clock, RC) ! Get dimensions ! --------------- - call MAPL_GridGet (grid, globalCellCountPerDim=dims, __RC__ ) + call MAPL_GridGet (grid, localCellCountPerDim=dims, __RC__ ) km = dims(3) self%km = km diff --git a/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridCompMod.F90 index b442198b..b8841a7d 100644 --- a/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridCompMod.F90 @@ -406,7 +406,7 @@ subroutine Initialize (GC, import, export, clock, RC) VERIFY_(STATUS) self => wrap%ptr - call MAPL_GridGet ( grid, globalCellCountPerDim=dims, __RC__ ) + call MAPL_GridGet (grid, localCellCountPerDim=dims, __RC__ ) ! Dust emission tuning coefficient [kg s2 m-5]. NOT bin specific. ! --------------------------------------------------------------- diff --git a/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 index 0305c43c..9fec5e31 100644 --- a/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 @@ -55,7 +55,6 @@ module NI2G_GridCompMod type, extends(GA_Environment) :: NI2G_GridComp !logical :: first logical :: recycle_HNO3 = .false. - !real, allocatable :: xhno3(:,:,:) ! buffer for NITRATE_HNO3 [kg/(m^2 sec)]; moved to ESMF internal state real, allocatable :: rmedDU(:), rmedSS(:) ! DU and SS radius real, allocatable :: fnumDU(:), fnumSS(:) ! DU and SS particles per kg mass type(ThreadWorkspace), allocatable :: workspaces(:) @@ -345,13 +344,10 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) ! Get dimensions ! --------------- - !call MAPL_GridGet (grid, globalCellCountPerDim=dims, __RC__ ) call MAPL_GridGet (grid, localCellCountPerDim=dims, __RC__ ) km = dims(3) self%km = km - !allocate(self%xhno3(dims(1),dims(2),dims(3)), __STAT__) - ! Get DTs ! ------- call MAPL_GetResource(mapl, HDT, Label='RUN_DT:', __RC__) @@ -378,9 +374,6 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) ! ----------------------------------- call MAPL_Get ( mapl, INTERNAL_ESMF_STATE = internal, __RC__) -! xhno3 is moved to ESMF internal state -! call MAPL_GetPointer(internal, NAME='XHNO3', ptr=xhno3, __RC__) - ! Is NI data driven? ! ------------------ call determine_data_driven (COMP_NAME, data_driven, __RC__) @@ -807,6 +800,7 @@ subroutine Run2 (GC, import, export, clock, RC) self%fnumDU, self%fnumSS, self%km, self%klid, & self%cdt, MAPL_GRAV, fMassHNO3, fMassNO3, NO3an1, NO3an2, & NO3an3, HNO3CONC, HNO3SMASS, HNO3CMASS, __RC__) +! Save local copy of HNO3 for first pass through run method regardless ! NI Settling @@ -822,6 +816,7 @@ subroutine Run2 (GC, import, export, clock, RC) call Chem_SettlingSimple (self%km, self%klid, rhFlag, self%cdt, MAPL_GRAV, & self%radius(nNH4a)*1.e-6, self%rhop(nNH4a), NH4a, t, & airdens, rh2, zle, delp, NH4SD, __RC__) +! Save local copy of HNO3 for first pass through run method regardless ! Nitrate bin 1 - settles like ammonium sulfate (rhflag = 3) rhflag = 3 @@ -833,6 +828,7 @@ subroutine Run2 (GC, import, export, clock, RC) call Chem_SettlingSimple (self%km, self%klid, rhFlag, self%cdt, MAPL_GRAV, & self%radius(nNO3an1)*1.e-6, self%rhop(nNO3an1), NO3an1, & t, airdens, rh2, zle, delp, flux_ptr, __RC__) +! Save local copy of HNO3 for first pass through run method regardless ! Nitrate bin 2 - settles like sea salt (rhflag = 2) rhflag = 2 @@ -844,6 +840,7 @@ subroutine Run2 (GC, import, export, clock, RC) call Chem_SettlingSimple (self%km, self%klid, rhFlag, self%cdt, MAPL_GRAV, & self%radius(nNO3an2)*1.e-6, self%rhop(nNO3an2), NO3an2, & t, airdens, rh2, zle, delp, flux_ptr, __RC__) +! Save local copy of HNO3 for first pass through run method regardless ! Nitrate bin 1 - settles like dust (rhflag = 0) rhflag = 0 @@ -855,6 +852,7 @@ subroutine Run2 (GC, import, export, clock, RC) call Chem_SettlingSimple (self%km, self%klid, rhFlag, self%cdt, MAPL_GRAV, & self%radius(nNO3an3)*1.e-6, self%rhop(nNO3an3), NO3an3, & t, airdens, rh2, zle, delp, flux_ptr, __RC__) +! Save local copy of HNO3 for first pass through run method regardless ! NI Deposition ! ----------- @@ -862,6 +860,7 @@ subroutine Run2 (GC, import, export, clock, RC) call DryDeposition(self%km, t, airdens, zle, lwi, ustar, zpbl, sh,& MAPL_KARMAN, cpd, MAPL_GRAV, z0h, drydepositionfrequency, __RC__ ) +! Save local copy of HNO3 for first pass through run method regardless ! NH3 dqa = 0. do i=1,ubound(lwi,1) @@ -873,6 +872,7 @@ subroutine Run2 (GC, import, export, clock, RC) end if end do end do +! Save local copy of HNO3 for first pass through run method regardless NH3(:,:,self%km) = NH3(:,:,self%km) - dqa if( associated(NH3DP) ) NH3DP = dqa*delp(:,:,self%km)/MAPL_GRAV/self%cdt @@ -912,6 +912,7 @@ subroutine Run2 (GC, import, export, clock, RC) call WetRemovalGOCART2G (self%km, self%klid, self%nbins, self%nbins, 1, self%cdt, 'NH3', & KIN, MAPL_GRAV, fwet, NH3, ple, t, airdens, & pfl_lsan, pfi_lsan, cn_prcp, ncn_prcp, fluxWT_ptr, __RC__) +! Save local copy of HNO3 for first pass through run method regardless if (associated(NH3WT)) NH3WT = fluxWT_ptr(:,:,1) ! NH4a @@ -946,6 +947,7 @@ subroutine Run2 (GC, import, export, clock, RC) KIN, MAPL_GRAV, fwet, NO3an3, ple, t, airdens, & pfl_lsan, pfi_lsan, cn_prcp, ncn_prcp, NIWT, __RC__) +! Save local copy of HNO3 for first pass through run method regardless ! Compute desired output diagnostics ! ---------------------------------- ! Certain variables are multiplied by 1.0e-9 to convert from nanometers to meters @@ -959,6 +961,7 @@ subroutine Run2 (GC, import, export, clock, RC) aerosol=aerosol, grav=MAPL_GRAV, tmpu=t, rhoa=airdens, rh=rh2, u=u, v=v, & delp=delp, ple=ple, tropp=tropp,& sfcmass=NH4SMASS, colmass=NH4CMASS, mass=NH4MASS, conc=NH4CONC, __RC__) +! Save local copy of HNO3 for first pass through run method regardless aerosol(:,:,:,1) = NH3 call Aero_Compute_Diags (mie=self%diag_Mie, km=self%km, klid=self%klid, nbegin=1, & @@ -968,6 +971,7 @@ subroutine Run2 (GC, import, export, clock, RC) aerosol=aerosol, grav=MAPL_GRAV, tmpu=t, rhoa=airdens, rh=rh2, u=u, v=v, & delp=delp, ple=ple, tropp=tropp,& sfcmass=NH3SMASS, colmass=NH3CMASS, mass=NH3MASS, conc=NH3CONC, __RC__) +! Save local copy of HNO3 for first pass through run method regardless aerosol(:,:,:,1) = NO3an1 call Aero_Compute_Diags (mie=self%diag_Mie, km=self%km, klid=self%klid, nbegin=1, & @@ -979,6 +983,7 @@ subroutine Run2 (GC, import, export, clock, RC) sfcmass=NISMASS25, colmass=NICMASS25, mass=NIMASS25, conc=NICONC25, & exttau25=NIEXTT25, scatau25=NISCAT25, exttaufm=NIEXTTFM, scataufm=NISCATFM, & NO3nFlag=.true., __RC__) +! Save local copy of HNO3 for first pass through run method regardless aerosol(:,:,:,1) = NO3an1 aerosol(:,:,:,2) = NO3an2 @@ -1009,6 +1014,7 @@ subroutine Run2 (GC, import, export, clock, RC) grav=MAPL_GRAV, tmpu=t, rhoa=airdens, & rh=rh20,u=u, v=v, delp=delp, ple=ple,tropp=tropp, & extcoef = NIEXTCOEFRH20, scacoef=NISCACOEFRH20, __RC__) +! Save local copy of HNO3 for first pass through run method regardless RH80(:,:,:) = 0.80 call Aero_Compute_Diags (mie=self%diag_Mie, km=self%km, klid=self%klid, nbegin=1, & @@ -1018,6 +1024,7 @@ subroutine Run2 (GC, import, export, clock, RC) grav=MAPL_GRAV, tmpu=t, rhoa=airdens, & rh=rh80,u=u, v=v, delp=delp, ple=ple,tropp=tropp, & extcoef = NIEXTCOEFRH80, scacoef=NISCACOEFRH80,__RC__) +! Save local copy of HNO3 for first pass through run method regardless deallocate(RH20,RH80) RETURN_(ESMF_SUCCESS) diff --git a/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridCompMod.F90 index c65a0407..e2f289ac 100644 --- a/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridCompMod.F90 @@ -355,7 +355,7 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) ! Get dimensions ! --------------- - call MAPL_GridGet (grid, globalCellCountPerDim=dims, __RC__ ) + call MAPL_GridGet (grid, localCellCountPerDim=dims, __RC__ ) km = dims(3) self%km = km diff --git a/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridCompMod.F90 index 430cf08c..148aac0d 100644 --- a/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridCompMod.F90 @@ -435,7 +435,7 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) ! Get dimensions ! --------------- - call MAPL_GridGet (grid, globalCellCountPerDim=dims, __RC__ ) + call MAPL_GridGet (grid, localCellCountPerDim=dims, __RC__ ) km = dims(3) self%km = km From b74cff61df416cabd15f67b8525f45a1ece72e70 Mon Sep 17 00:00:00 2001 From: Benjamin Auer Date: Wed, 5 Apr 2023 10:03:11 -0400 Subject: [PATCH 11/36] fix regression --- .../GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 | 9 ++------- ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_StateSpecs.rc | 2 +- .../GOCART2G_GridComp/SU2G_GridComp/SU2G_GridCompMod.F90 | 2 +- ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_StateSpecs.rc | 2 +- 4 files changed, 5 insertions(+), 10 deletions(-) diff --git a/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 index 0305c43c..e59c0fd5 100644 --- a/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 @@ -401,7 +401,6 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) call ESMF_AttributeGet(field, name='radius', valueList=self%rmedSS, __RC__) call ESMF_AttributeGet(field, name='fnum', valueList=self%fnumSS, __RC__) end if - ! Se HNO3 recycle alarm if (.not. data_driven) then call ESMF_ClockGet(clock, calendar=calendar, currTime=currentTime, __RC__) @@ -409,14 +408,10 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) call ESMF_TimeSet(ringTime, YY=year, MM=month, DD=day, H=0, M=0, S=0, __RC__) call ESMF_TimeIntervalSet(ringInterval, H=3, calendar=calendar, __RC__) - do while (ringTime < currentTime)! DO WE NEED THIS? - ringTime = currentTime + ringInterval - end do - alarm_HNO3 = ESMF_AlarmCreate(Clock = clock, & Name = 'HNO3_RECYCLE_ALARM', & RingInterval = ringInterval, & - RingTime = currentTime, & + RingTime = ringTime, & Enabled = .true. , & Sticky = .false. , __RC__) end if @@ -789,7 +784,7 @@ subroutine Run2 (GC, import, export, clock, RC) ! Recycle HNO3 every 3 hours if (alarm_is_ringing) then xhno3 = NITRATE_HNO3 - !call ESMF_AlarmRingerOff(alarm, __RC__) + call ESMF_AlarmRingerOff(alarm, __RC__) end if if (associated(NIPNO3AQ)) NIPNO3AQ(:,:) = 0. diff --git a/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_StateSpecs.rc b/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_StateSpecs.rc index 039fa4c7..cf42893a 100644 --- a/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_StateSpecs.rc +++ b/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_StateSpecs.rc @@ -112,7 +112,7 @@ category: INTERNAL NO3an1 |kg kg-1 | xyz | C | MAPL_RestartOptional | T | DYNAMICS:TURBULENCE:MOIST | Nitrate size bin 001 NO3an2 |kg kg-1 | xyz | C | MAPL_RestartOptional | T | DYNAMICS:TURBULENCE:MOIST | Nitrate size bin 002 NO3an3 |kg kg-1 | xyz | C | MAPL_RestartOptional | T | DYNAMICS:TURBULENCE:MOIST | Nitrate size bin 003 - XHNO3 |kg m-2 s-1| xyz | C | MAPL_RestartSkip | F | | buffer for NITRATE_HNO3 + XHNO3 |kg m-2 s-1| xyz | C | | F | | buffer for NITRATE_HNO3 #******************************************************** # diff --git a/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridCompMod.F90 index 430cf08c..fc5db05d 100644 --- a/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridCompMod.F90 @@ -1044,7 +1044,7 @@ subroutine Run2 (GC, import, export, clock, RC) ! recycle H2O2 every 3 hours if (alarm_is_ringing) then workspace%recycle_h2o2 = ESMF_AlarmIsRinging(alarm, __RC__) - !call ESMF_AlarmRingerOff(alarm, __RC__) + call ESMF_AlarmRingerOff(alarm, __RC__) end if allocate(xoh, mold=airdens, __STAT__) diff --git a/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_StateSpecs.rc b/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_StateSpecs.rc index 89756c6f..b8f051b4 100644 --- a/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_StateSpecs.rc +++ b/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_StateSpecs.rc @@ -112,7 +112,7 @@ category: INTERNAL SO2 |kg kg-1| xyz | C | MAPL_RestartOptional | T | DYNAMICS:TURBULENCE:MOIST | Sulphur dioxide SO4 |kg kg-1| xyz | C | MAPL_RestartOptional | T | DYNAMICS:TURBULENCE:MOIST | Sulphate aerosol MSA |kg kg-1| xyz | C | MAPL_RestartOptional | T | DYNAMICS:TURBULENCE:MOIST | Methanesulphonic acid - H2O2_INIT |kg kg-1| xyz | C | MAPL_RestartSkip | F | | private H2O2 that is saved and used to initialize + H2O2_INIT |kg kg-1| xyz | C | | F | | private H2O2 that is saved and used to initialize #******************************************************** From 3dfb668fd9eeec6a07fd1692c953d301b583bff4 Mon Sep 17 00:00:00 2001 From: Benjamin Auer Date: Wed, 5 Apr 2023 14:09:25 -0400 Subject: [PATCH 12/36] strip esmf alarm --- .../NI2G_GridComp/NI2G_GridCompMod.F90 | 68 +++++++++++------ .../SU2G_GridComp/SU2G_GridCompMod.F90 | 76 ++++++++++--------- 2 files changed, 86 insertions(+), 58 deletions(-) diff --git a/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 index e59c0fd5..d6e10773 100644 --- a/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 @@ -312,7 +312,6 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) type(ESMF_Calendar) :: calendar type(ESMF_Time) :: currentTime - type(ESMF_Alarm) :: alarm_HNO3 type(ESMF_Time) :: ringTime type(ESMF_TimeInterval) :: ringInterval integer :: year, month, day, hh, mm, ss @@ -401,20 +400,6 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) call ESMF_AttributeGet(field, name='radius', valueList=self%rmedSS, __RC__) call ESMF_AttributeGet(field, name='fnum', valueList=self%fnumSS, __RC__) end if -! Se HNO3 recycle alarm - if (.not. data_driven) then - call ESMF_ClockGet(clock, calendar=calendar, currTime=currentTime, __RC__) - call ESMF_TimeGet(currentTime, YY=year, MM=month, DD=day, H=hh, M=mm, S=ss, __RC__) - call ESMF_TimeSet(ringTime, YY=year, MM=month, DD=day, H=0, M=0, S=0, __RC__) - call ESMF_TimeIntervalSet(ringInterval, H=3, calendar=calendar, __RC__) - - alarm_HNO3 = ESMF_AlarmCreate(Clock = clock, & - Name = 'HNO3_RECYCLE_ALARM', & - RingInterval = ringInterval, & - RingTime = ringTime, & - Enabled = .true. , & - Sticky = .false. , __RC__) - end if ! If this is a data component, the data is provided in the import ! state via ExtData instead of the actual GOCART children @@ -728,7 +713,6 @@ subroutine Run2 (GC, import, export, clock, RC) real, pointer, dimension(:,:) :: flux_ptr real, pointer, dimension(:,:,:) :: fluxWT_ptr - type (ESMF_ALARM) :: alarm logical :: alarm_is_ringing integer :: i1, j1, i2, j2, km real, target,allocatable, dimension(:,:,:) :: RH20,RH80 @@ -744,6 +728,11 @@ subroutine Run2 (GC, import, export, clock, RC) !***************************************************************************** ! Begin... + block + type(ESMF_TIME) :: currtime + call ESMF_ClockGet(clock,currtime=currtime,_RC) + if (mapl_am_i_root()) call ESMF_TimePrint(currtime,options='string',prestring='bmaa ni run2 time ') + end block ! Get my name and set-up traceback handle ! --------------------------------------- call ESMF_GridCompGet (GC, NAME=COMP_NAME, __RC__) @@ -768,24 +757,22 @@ subroutine Run2 (GC, import, export, clock, RC) allocate(dqa, mold=lwi, __STAT__) allocate(drydepositionfrequency, mold=lwi, __STAT__) -! check hno3 alarm - call ESMF_ClockGetAlarm(clock, 'HNO3_RECYCLE_ALARM', alarm, __RC__) - alarm_is_ringing = ESMF_AlarmIsRinging(alarm, __RC__) + alarm_is_ringing = daily_alarm(clock,30000,_RC) ! Save local copy of HNO3 for first pass through run method regardless thread = MAPL_get_current_thread() workspace => self%workspaces(thread) - if (workspace%first) then - xhno3 = MAPL_UNDEF - workspace%first = .false. - end if + !if (workspace%first) then + !xhno3 = MAPL_UNDEF + !workspace%first = .false. + !end if ! Recycle HNO3 every 3 hours if (alarm_is_ringing) then xhno3 = NITRATE_HNO3 - call ESMF_AlarmRingerOff(alarm, __RC__) end if + if (mapl_am_i_root()) write(*,*)"bmaa ni alarm ring ",alarm_is_ringing if (associated(NIPNO3AQ)) NIPNO3AQ(:,:) = 0. if (associated(NIPNH4AQ)) NIPNH4AQ(:,:) = 0. @@ -1356,5 +1343,38 @@ subroutine monochromatic_aerosol_optics(state, rc) end subroutine monochromatic_aerosol_optics + function daily_alarm(clock,freq,rc) result(is_ringing) + logical :: is_ringing + type(ESMF_Clock), intent(in) :: clock + integer, intent(in) :: freq + integer, optional, intent(out) :: rc + + type(ESMF_Time) :: current_time + integer :: status,year,month,day,hour,minute,second,initial_time,int_seconds + integer :: nhh,nmm,nss,freq_sec + + type(ESMF_TimeInterval) :: new_diff,esmf_freq + type(ESMF_Time) :: reff_time,new_esmf_time + + call ESMF_ClockGet(clock,currTIme=current_time,_RC) + call ESMF_TimeGet(current_time,yy=year,mm=month,dd=day,h=hour,m=minute,s=second,_RC) + + int_seconds = 0 + call MAPL_UnpackTIme(freq,nhh,nmm,nss) + is_ringing = .false. + call ESMF_TimeSet(reff_time,yy=year,mm=month,dd=day,h=0,m=0,s=0,_RC) + new_esmf_time = reff_time + call ESMF_TimeIntervalSet(esmf_freq,h=nhh,m=nmm,s=nss ,_RC) + do while (int_seconds < 86400) + if ( new_esmf_time == current_time) then + is_ringing = .true. + exit + end if + new_esmf_time = new_esmf_time + esmf_freq + new_diff = new_esmf_time - reff_time + call ESMF_TimeIntervalGet(new_diff,s=int_seconds,_RC) + enddo + _RETURN(_SUCCESS) + end function end module NI2G_GridCompMod diff --git a/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridCompMod.F90 index fc5db05d..dfbdb98d 100644 --- a/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridCompMod.F90 @@ -386,7 +386,6 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) type (ESMF_FieldBundle) :: Bundle_DP type (wrap_) :: wrap type (SU2G_GridComp), pointer :: self - type (ESMF_Alarm) :: alarm_H2O2 integer, allocatable :: mieTable_pointer(:) integer :: i, dims(3), km @@ -482,26 +481,6 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) ! ------------------ call determine_data_driven (COMP_NAME, data_driven, __RC__) -! Set H2O2 recycle alarm -! ---------------------- - if (.not. data_driven) then - call ESMF_ClockGet(clock, calendar=calendar, currTime=currentTime, __RC__) - call ESMF_TimeGet(currentTime, YY=year, MM=month, DD=day, H=hh, M=mm, S=ss, __RC__) - call ESMF_TimeSet(ringTime, YY=year, MM=month, DD=day, H=0, M=0, S=0, __RC__) - call ESMF_TimeIntervalSet(ringInterval, H=3, calendar=calendar, __RC__) - - do while (ringTime < currentTime)! DO WE NEED THIS? - ringTime = currentTime + ringInterval - end do - - alarm_H2O2 = ESMF_AlarmCreate(Clock = clock, & - Name = 'H2O2_RECYCLE_ALARM', & - RingInterval = ringInterval, & - RingTime = currentTime, & - Enabled = .true. , & - Sticky = .false. , __RC__) - end if - ! If this is a data component, the data is provided in the import ! state via ExtData instead of the actual GOCART children ! ---------------------------------------------------------------- @@ -975,7 +954,6 @@ subroutine Run2 (GC, import, export, clock, RC) type (wrap_) :: wrap type (SU2G_GridComp), pointer :: self type (ESMF_Time) :: time - type (ESMF_Alarm) :: ALARM type(MAPL_VarSpec), pointer :: InternalSpec(:) integer :: nymd, nhms, iyr, imm, idd, ihr, imn, isc @@ -1039,12 +1017,10 @@ subroutine Run2 (GC, import, export, clock, RC) thread = MAPL_get_current_thread() workspace => self%workspaces(thread) - call ESMF_ClockGetAlarm(clock, 'H2O2_RECYCLE_ALARM', alarm, __RC__) - alarm_is_ringing = ESMF_AlarmIsRinging(alarm, __RC__) + alarm_is_ringing = daily_alarm(clock,30000,_RC) ! recycle H2O2 every 3 hours if (alarm_is_ringing) then - workspace%recycle_h2o2 = ESMF_AlarmIsRinging(alarm, __RC__) - call ESMF_AlarmRingerOff(alarm, __RC__) + workspace%recycle_h2o2 = .true. end if allocate(xoh, mold=airdens, __STAT__) @@ -1053,11 +1029,11 @@ subroutine Run2 (GC, import, export, clock, RC) xoh = 0.0 xno3 = 0.0 - if (workspace%firstRun) then - xh2o2 = MAPL_UNDEF - h2o2_init = MAPL_UNDEF - workspace%firstRun = .false. - end if + !if (workspace%firstRun) then + !xh2o2 = MAPL_UNDEF + !h2o2_init = MAPL_UNDEF + !workspace%firstRun = .false. + !end if xh2o2 = h2o2_init @@ -1479,6 +1455,38 @@ subroutine monochromatic_aerosol_optics(state, rc) end subroutine monochromatic_aerosol_optics - -end module SU2G_GridCompMod - + function daily_alarm(clock,freq,rc) result(is_ringing) + logical :: is_ringing + type(ESMF_Clock), intent(in) :: clock + integer, intent(in) :: freq + integer, optional, intent(out) :: rc + + type(ESMF_Time) :: current_time + integer :: status,year,month,day,hour,minute,second,initial_time,int_seconds + integer :: nhh,nmm,nss,freq_sec + + type(ESMF_TimeInterval) :: new_diff,esmf_freq + type(ESMF_Time) :: reff_time,new_esmf_time + + call ESMF_ClockGet(clock,currTIme=current_time,_RC) + call ESMF_TimeGet(current_time,yy=year,mm=month,dd=day,h=hour,m=minute,s=second,_RC) + + int_seconds = 0 + call MAPL_UnpackTIme(freq,nhh,nmm,nss) + is_ringing = .false. + call ESMF_TimeSet(reff_time,yy=year,mm=month,dd=day,h=0,m=0,s=0,_RC) + new_esmf_time = reff_time + call ESMF_TimeIntervalSet(esmf_freq,h=nhh,m=nmm,s=nss ,_RC) + do while (int_seconds < 86400) + if ( new_esmf_time == current_time) then + is_ringing = .true. + exit + end if + new_esmf_time = new_esmf_time + esmf_freq + new_diff = new_esmf_time - reff_time + call ESMF_TimeIntervalGet(new_diff,s=int_seconds,_RC) + enddo + _RETURN(_SUCCESS) + end function + +end module SU2G_GridCompMod From dc54ac91fd8ad2c8aef2d87593ad37dbdfebb0c1 Mon Sep 17 00:00:00 2001 From: Benjamin Auer Date: Wed, 5 Apr 2023 16:12:40 -0400 Subject: [PATCH 13/36] remove debugging prints --- ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 | 5 ----- 1 file changed, 5 deletions(-) diff --git a/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 index d6e10773..b1f61ee9 100644 --- a/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 @@ -728,11 +728,6 @@ subroutine Run2 (GC, import, export, clock, RC) !***************************************************************************** ! Begin... - block - type(ESMF_TIME) :: currtime - call ESMF_ClockGet(clock,currtime=currtime,_RC) - if (mapl_am_i_root()) call ESMF_TimePrint(currtime,options='string',prestring='bmaa ni run2 time ') - end block ! Get my name and set-up traceback handle ! --------------------------------------- call ESMF_GridCompGet (GC, NAME=COMP_NAME, __RC__) From b76cdf3363d927fbe561fb23d8074b64b2169f59 Mon Sep 17 00:00:00 2001 From: Benjamin Auer Date: Wed, 5 Apr 2023 16:13:32 -0400 Subject: [PATCH 14/36] remove debugging print --- ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 | 1 - 1 file changed, 1 deletion(-) diff --git a/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 index b1f61ee9..920f1dd6 100644 --- a/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 @@ -767,7 +767,6 @@ subroutine Run2 (GC, import, export, clock, RC) if (alarm_is_ringing) then xhno3 = NITRATE_HNO3 end if - if (mapl_am_i_root()) write(*,*)"bmaa ni alarm ring ",alarm_is_ringing if (associated(NIPNO3AQ)) NIPNO3AQ(:,:) = 0. if (associated(NIPNH4AQ)) NIPNH4AQ(:,:) = 0. From aa05ff6d93b152fefbbac9e1263d9301a1129944 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Thu, 6 Apr 2023 11:07:18 -0400 Subject: [PATCH 15/36] Fix memory issue in CA, DU, SS, SU --- ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridCompMod.F90 | 2 +- ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridCompMod.F90 | 2 +- ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridCompMod.F90 | 2 +- ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridCompMod.F90 | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridCompMod.F90 index 29428f2c..0d271c15 100644 --- a/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridCompMod.F90 @@ -400,7 +400,7 @@ subroutine Initialize (GC, import, export, clock, RC) ! Get dimensions ! --------------- - call MAPL_GridGet (grid, globalCellCountPerDim=dims, __RC__ ) + call MAPL_GridGet (grid, localCellCountPerDim=dims, __RC__ ) km = dims(3) self%km = km diff --git a/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridCompMod.F90 index 27e18784..3c1a4baa 100644 --- a/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridCompMod.F90 @@ -396,7 +396,7 @@ subroutine Initialize (GC, import, export, clock, RC) VERIFY_(STATUS) self => wrap%ptr - call MAPL_GridGet ( grid, globalCellCountPerDim=dims, __RC__ ) + call MAPL_GridGet (grid, localCellCountPerDim=dims, __RC__ ) ! Dust emission tuning coefficient [kg s2 m-5]. NOT bin specific. ! --------------------------------------------------------------- diff --git a/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridCompMod.F90 index b71faff9..02d10988 100644 --- a/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridCompMod.F90 @@ -353,7 +353,7 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) ! Get dimensions ! --------------- - call MAPL_GridGet (grid, globalCellCountPerDim=dims, __RC__ ) + call MAPL_GridGet (grid, localCellCountPerDim=dims, __RC__ ) km = dims(3) self%km = km diff --git a/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridCompMod.F90 index 37dac4fd..5b8cb930 100644 --- a/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridCompMod.F90 @@ -426,7 +426,7 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) ! Get dimensions ! --------------- - call MAPL_GridGet (grid, globalCellCountPerDim=dims, __RC__ ) + call MAPL_GridGet (grid, localCellCountPerDim=dims, __RC__ ) km = dims(3) self%km = km From d35a239e25079ba512bc11f98e99dcdb3742fb50 Mon Sep 17 00:00:00 2001 From: Amidu Oloso Date: Thu, 6 Apr 2023 16:07:54 -0400 Subject: [PATCH 16/36] Changeg global dims to local dims in NI2G_GridCompMod.F90 --- ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 index c068512c..54c14cc2 100644 --- a/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 @@ -335,7 +335,7 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) ! Get dimensions ! --------------- - call MAPL_GridGet (grid, globalCellCountPerDim=dims, __RC__ ) + call MAPL_GridGet (grid, localCellCountPerDim=dims, __RC__ ) km = dims(3) self%km = km From 184d909ea8b9e338b13ac7c676a249cbc5d4d89f Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Fri, 7 Apr 2023 12:15:46 -0400 Subject: [PATCH 17/36] Update Changelog --- CHANGELOG.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 44392772..8165da03 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +## [sdr_v2.1.2.3] - 2023-04-07 + +### Changed + +- Change global dims to local dims in G2G components (memory saving) + +## [sdr_v2.1.2.2] - 2023-03-28 + +### Changed + +- Merged in changes from `feature/pcolarco/GOCART2G_data_instance` to enable GOCART2G Data Driven +- Single-moment moist changes from Donifan + +## [sdr_v2.1.2.1] - 2023-03-01 + +### Changed + +- Change names of microphysics schemes to match refactored physics +- Set SS_SCALE default to 0.0 + ## [2.1.2] - 2022-10-07 ### Added From bebc4d525cee3834ed242afe4b28d9456acdfe44 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Tue, 18 Apr 2023 10:44:51 -0400 Subject: [PATCH 18/36] Fix ESMF Error on instance file read --- CHANGELOG.md | 6 + .../CA2G_GridComp/CA2G_GridCompMod.F90 | 104 +++++++++-------- .../DU2G_GridComp/DU2G_GridCompMod.F90 | 106 +++++++++-------- .../NI2G_GridComp/NI2G_GridCompMod.F90 | 106 +++++++++-------- .../SS2G_GridComp/SS2G_GridCompMod.F90 | 104 +++++++++-------- .../SU2G_GridComp/SU2G_GridCompMod.F90 | 109 +++++++++--------- 6 files changed, 282 insertions(+), 253 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8165da03..262a25a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +## [sdr_v2.1.2.4] - 2023-04-18 + +### Fixed + +- Fixed config file loads in GOCART2G to use inquire to avoid ESMF logging error + ## [sdr_v2.1.2.3] - 2023-04-07 ### Changed diff --git a/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridCompMod.F90 index 0d271c15..15c82f36 100644 --- a/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridCompMod.F90 @@ -3,7 +3,7 @@ !============================================================================= !BOP -! !MODULE: CA2G_GridCompMod - GOCART Carbonaceous Aerosol gridded component +! !MODULE: CA2G_GridCompMod - GOCART Carbonaceous Aerosol gridded component ! !INTERFACE: module CA2G_GridCompMod @@ -11,7 +11,7 @@ module CA2G_GridCompMod ! !USES: use ESMF use MAPL - use GOCART2G_MieMod + use GOCART2G_MieMod use Chem_AeroGeneric use iso_c_binding, only: c_loc, c_f_pointer, c_ptr @@ -58,7 +58,7 @@ module CA2G_GridCompMod pTop, & pEmis - end type CA2G_GridComp + end type CA2G_GridComp type wrap_ type (CA2G_GridComp), pointer :: PTR => null() @@ -69,7 +69,7 @@ module CA2G_GridCompMod !============================================================================ !BOP -! !IROUTINE: SetServices +! !IROUTINE: SetServices ! !INTERFACE: subroutine SetServices (GC, RC) @@ -80,11 +80,11 @@ subroutine SetServices (GC, RC) ! !DESCRIPTION: This version uses MAPL_GenericSetServices, which sets ! the Initialize and Finalize services to generic versions. It also -! allocates our instance of a generic state and puts it in the +! allocates our instance of a generic state and puts it in the ! gridded component (GC). Here we only set the two-stage run method ! and declare the data services. -! !REVISION HISTORY: +! !REVISION HISTORY: ! june2019 E.Sherman, A.Da Silva, A.Darmenov, T.Clune First attempt at refactoring !EOP @@ -102,6 +102,7 @@ subroutine SetServices (GC, RC) integer :: i, nbins real :: DEFVAL logical :: data_driven = .true. + logical :: file_exists __Iam__('SetServices') @@ -126,14 +127,16 @@ subroutine SetServices (GC, RC) allocate (self, __STAT__) wrap%ptr => self -! Load resource file +! Load resource file ! ------------------- cfg = ESMF_ConfigCreate (__RC__) - call ESMF_ConfigLoadFile (cfg, 'CA2G_instance_'//trim(comp_name)//'.rc', rc=status) - if (status /= 0) then - if (mapl_am_i_root()) print*,'CA2G_instance_'//trim(comp_name)//'.rc does not exist! & + inquire(file='CA2G_instance_'//trim(comp_name)//'.rc', exist=file_exists) + if (file_exists) then + call ESMF_ConfigLoadFile (cfg, 'CA2G_instance_'//trim(comp_name)//'.rc', __RC__) + else + if (mapl_am_i_root()) print*,'CA2G_instance_'//trim(comp_name)//'.rc does not exist! & Loading CA2G_instance_'//trim(comp_name(1:5))//'.rc instead' - call ESMF_ConfigLoadFile (cfg, 'CA2G_instance_'//trim(comp_name(1:5))//'.rc', __RC__) + call ESMF_ConfigLoadFile (cfg, 'CA2G_instance_'//trim(comp_name(1:5))//'.rc', __RC__) end if ! process generic config items @@ -209,7 +212,7 @@ subroutine SetServices (GC, RC) units = 'kg kg-1', & restart = MAPL_RestartOptional, & dims = MAPL_DimsHorzVert, & - vlocation = MAPL_VLocationCenter, __RC__) + vlocation = MAPL_VLocationCenter, __RC__) call MAPL_AddInternalSpec(GC, & short_name = trim(comp_name)//'philic', & @@ -217,7 +220,7 @@ subroutine SetServices (GC, RC) units = 'kg kg-1', & restart = MAPL_RestartOptional, & dims = MAPL_DimsHorzVert, & - vlocation = MAPL_VLocationCenter, __RC__) + vlocation = MAPL_VLocationCenter, __RC__) call MAPL_AddImportSpec(GC, & short_name = 'clim'//trim(GCsuffix)//'phobic', & @@ -225,7 +228,7 @@ subroutine SetServices (GC, RC) units = 'kg kg-1', & restart = MAPL_RestartOptional, & dims = MAPL_DimsHorzVert, & - vlocation = MAPL_VLocationCenter, __RC__) + vlocation = MAPL_VLocationCenter, __RC__) call MAPL_AddImportSpec(GC, & short_name = 'clim'//trim(GCsuffix)//'philic', & @@ -246,7 +249,7 @@ subroutine SetServices (GC, RC) vlocation = MAPL_VLocationCenter, & restart = MAPL_RestartSkip, __RC__) -! !wet deposition +! !wet deposition call MAPL_AddImportSpec(GC, & short_name = 'clim'//trim(GCsuffix)//'WT'//trim(field_name), & long_name = 'Organic Carbon Mixing Ratio (bin '//trim(field_name)//')', & @@ -322,22 +325,22 @@ end subroutine SetServices !============================================================================ !BOP -! !IROUTINE: Initialize +! !IROUTINE: Initialize ! !INTERFACE: subroutine Initialize (GC, import, export, clock, RC) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: import ! Import state type (ESMF_State), intent(inout) :: export ! Export state type (ESMF_Clock), intent(inout) :: clock ! The clock integer, optional, intent( out) :: RC ! Error code -! !DESCRIPTION: This initializes CA's Grid Component. It primaryily fills -! GOCART's AERO states with its carbonaceous aerosol fields. +! !DESCRIPTION: This initializes CA's Grid Component. It primaryily fills +! GOCART's AERO states with its carbonaceous aerosol fields. -! !REVISION HISTORY: +! !REVISION HISTORY: ! june2019 E.Sherman First attempt at refactoring !EOP @@ -369,11 +372,12 @@ subroutine Initialize (GC, import, export, clock, RC) integer, allocatable, dimension(:) :: channels_ integer :: nmom_ character(len=ESMF_MAXSTR) :: file_ + logical :: file_exists __Iam__('Initialize') !**************************************************************************** -! Begin... +! Begin... ! Get the target components name and set-up traceback handle. ! ----------------------------------------------------------- @@ -421,17 +425,19 @@ subroutine Initialize (GC, import, export, clock, RC) self%diurnal_bb = .false. end if -! Load resource file +! Load resource file ! ------------------- cfg = ESMF_ConfigCreate (__RC__) - call ESMF_ConfigLoadFile (cfg, 'CA2G_instance_'//trim(comp_name)//'.rc', rc=status) - if (status /= 0) then - if (mapl_am_i_root()) print*,'CA2G_instance_'//trim(comp_name)//'.rc does not exist! & + inquire(file='CA2G_instance_'//trim(comp_name)//'.rc', exist=file_exists) + if (file_exists) then + call ESMF_ConfigLoadFile (cfg, 'CA2G_instance_'//trim(comp_name)//'.rc', __RC__) + else + if (mapl_am_i_root()) print*,'CA2G_instance_'//trim(comp_name)//'.rc does not exist! & Loading CA2G_instance_'//trim(comp_name(1:5))//'.rc instead' - call ESMF_ConfigLoadFile (cfg, 'CA2G_instance_'//trim(comp_name(1:5))//'.rc', __RC__) + call ESMF_ConfigLoadFile (cfg, 'CA2G_instance_'//trim(comp_name(1:5))//'.rc', __RC__) end if -! Call Generic Initialize +! Call Generic Initialize ! ------------------------ call MAPL_GenericInitialize (GC, import, export, clock, __RC__) @@ -445,7 +451,7 @@ subroutine Initialize (GC, import, export, clock, RC) ! If this is a data component, the data is provided in the import ! state via ExtData instead of the actual GOCART children -! ---------------------------------------------------------------- +! ---------------------------------------------------------------- if ( data_driven ) then providerState = import prefix = 'clim' @@ -578,13 +584,13 @@ end subroutine Initialize !============================================================================ !BOP -! !IROUTINE: Run +! !IROUTINE: Run ! !INTERFACE: subroutine Run (GC, import, export, clock, rc) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: import ! Import state type (ESMF_State), intent(inout) :: export ! Export state type (ESMF_Clock), intent(inout) :: clock ! The clock @@ -605,7 +611,7 @@ subroutine Run (GC, import, export, clock, rc) __Iam__('Run') !***************************************************************************** -! Begin... +! Begin... ! Get my name and set-up traceback handle ! --------------------------------------- @@ -638,13 +644,13 @@ end subroutine Run !============================================================================ !BOP -! !IROUTINE: Run1 +! !IROUTINE: Run1 ! !INTERFACE: subroutine Run1 (GC, import, export, clock, RC) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: import ! Import state type (ESMF_State), intent(inout) :: export ! Export state type (ESMF_Clock), intent(inout) :: clock ! The clock @@ -685,7 +691,7 @@ subroutine Run1 (GC, import, export, clock, RC) __Iam__('Run1') !***************************************************************************** -! Begin... +! Begin... ! Get my name and set-up traceback handle ! --------------------------------------- @@ -698,7 +704,7 @@ subroutine Run1 (GC, import, export, clock, RC) ! Get parameters from generic state. ! ----------------------------------- - call MAPL_Get (mapl, INTERNAL_ESMF_STATE=internal, & + call MAPL_Get (mapl, INTERNAL_ESMF_STATE=internal, & LONS = LONS, & LATS = LATS, __RC__ ) @@ -709,7 +715,7 @@ subroutine Run1 (GC, import, export, clock, RC) else if (comp_name(1:5) == 'CA.bc') then GCsuffix = 'BC' else if (comp_name(1:5) == 'CA.br') then - GCsuffix = 'BR' + GCsuffix = 'BR' end if call MAPL_GetPointer (internal, intPtr_phobic, trim(comp_name)//'phobic', __RC__) @@ -768,7 +774,7 @@ subroutine Run1 (GC, import, export, clock, RC) aviation_cds_src = BC_AVIATION_CDS aviation_crs_src = BC_AVIATION_CRS allocate(biogvoc_src, mold=BC_BIOMASS, __STAT__) -! Black carbon has no biogvoc_src, so we set it to zero. +! Black carbon has no biogvoc_src, so we set it to zero. ! biogvoc_src is still needed for the call to CAEmissions, however it ! effectivly does nothing since we set all its values to zero. biogvoc_src = 0.0 @@ -865,14 +871,14 @@ end subroutine Run1 !============================================================================ !BOP -! !IROUTINE: Run2 +! !IROUTINE: Run2 ! !INTERFACE: subroutine Run2 (GC, import, export, clock, RC) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: import ! Import state type (ESMF_State), intent(inout) :: export ! Export state type (ESMF_Clock), intent(inout) :: clock ! The clock @@ -909,7 +915,7 @@ subroutine Run2 (GC, import, export, clock, RC) __Iam__('Run2') !***************************************************************************** -! Begin... +! Begin... ! Get my name and set-up traceback handle ! --------------------------------------- @@ -956,7 +962,7 @@ subroutine Run2 (GC, import, export, clock, RC) end if if (trim(comp_name) == 'CA.br') then - pSOA_VOC = pSOA_BIOB_VOC + pSOA_VOC = pSOA_BIOB_VOC where (1.01 * pSOA_VOC > MAPL_UNDEF) pSOA_VOC = 0.0 intPtr_philic = intPtr_philic + self%cdt * pSOA_VOC/airdens @@ -1065,13 +1071,13 @@ subroutine Run_data (GC, IMPORT, EXPORT, INTERNAL, RC) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: IMPORT ! Import state type (ESMF_State), intent(inout) :: EXPORT ! Export state type (ESMF_State), intent(inout) :: INTERNAL ! Interal state integer, optional, intent( out) :: RC ! Error code: -! !DESCRIPTION: Updates pointers in Internal state with fields from ExtData. +! !DESCRIPTION: Updates pointers in Internal state with fields from ExtData. !EOP !============================================================================ @@ -1088,7 +1094,7 @@ subroutine Run_data (GC, IMPORT, EXPORT, INTERNAL, RC) __Iam__('Run_data') !***************************************************************************** -! Begin... +! Begin... ! Get my name and set-up traceback handle ! --------------------------------------- @@ -1158,7 +1164,7 @@ subroutine aerosol_optics(state, rc) __Iam__('CA2G::aerosol_optics') -! Begin... +! Begin... ! Mie Table instance/index ! ------------------------ @@ -1175,7 +1181,7 @@ subroutine aerosol_optics(state, rc) band = 0 call ESMF_AttributeGet(state, name='band_for_aerosol_optics', value=band, __RC__) -! Pressure at layer edges +! Pressure at layer edges ! ------------------------ call ESMF_AttributeGet(state, name='air_pressure_for_aerosol_optics', value=fld_name, __RC__) call MAPL_GetPointer(state, ple, trim(fld_name), __RC__) @@ -1278,7 +1284,7 @@ subroutine mie_(mie, nbins, band, q, rh, bext_s, bssa_s, basym_s, rc) bext_s = bext_s + bext ! extinction bssa_s = bssa_s + (bssa*bext) ! scattering extinction - basym_s = basym_s + gasym*(bssa*bext) ! asymetry parameter multiplied by scatering extiction + basym_s = basym_s + gasym*(bssa*bext) ! asymetry parameter multiplied by scatering extiction end do @@ -1320,7 +1326,7 @@ subroutine monochromatic_aerosol_optics(state, rc) __Iam__('CA2G::monochromatic_aerosol_optics') -! Begin... +! Begin... ! Mie Table instance/index ! ------------------------ @@ -1337,7 +1343,7 @@ subroutine monochromatic_aerosol_optics(state, rc) call ESMF_AttributeGet(state, name='wavelength_for_aerosol_optics', value=wavelength, __RC__) -! Pressure at layer edges +! Pressure at layer edges ! ------------------------ call ESMF_AttributeGet(state, name='air_pressure_for_aerosol_optics', value=fld_name, __RC__) call MAPL_GetPointer(state, ple, trim(fld_name), __RC__) diff --git a/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridCompMod.F90 index 3c1a4baa..5434a119 100644 --- a/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridCompMod.F90 @@ -3,7 +3,7 @@ !============================================================================= !BOP -! !MODULE: DU2G_GridCompMod - GOCART refactoring of the DU gridded component +! !MODULE: DU2G_GridCompMod - GOCART refactoring of the DU gridded component ! !INTERFACE: module DU2G_GridCompMod @@ -11,14 +11,14 @@ module DU2G_GridCompMod ! !USES: use ESMF use MAPL - use GOCART2G_MieMod + use GOCART2G_MieMod use Chem_AeroGeneric use iso_c_binding, only: c_loc, c_f_pointer, c_ptr use GOCART2G_Process ! GOCART2G process library use GA_EnvironmentMod use MAPL_StringTemplate, only: StrTemplate - + implicit none private @@ -50,7 +50,7 @@ module DU2G_GridCompMod real :: Ch_DU_res(NHRES) ! resolutions used for Ch_DU real :: Ch_DU ! dust emission tuning coefficient [kg s2 m-5]. logical :: maringFlag=.false. ! maring settling velocity correction - integer :: day_save = -1 + integer :: day_save = -1 character(len=:), allocatable :: emission_scheme ! emission scheme selector integer :: clayFlag ! clay and silt term in K14 real :: f_swc ! soil mosture scaling factor @@ -77,7 +77,7 @@ module DU2G_GridCompMod !============================================================================ !BOP -! !IROUTINE: SetServices +! !IROUTINE: SetServices ! !INTERFACE: subroutine SetServices (GC, RC) @@ -88,11 +88,11 @@ subroutine SetServices (GC, RC) ! !DESCRIPTION: This version uses MAPL_GenericSetServices, which sets ! the Initialize and Finalize services to generic versions. It also -! allocates our instance of a generic state and puts it in the +! allocates our instance of a generic state and puts it in the ! gridded component (GC). Here we only set the two-stage run method ! and declare the data services. -! !REVISION HISTORY: +! !REVISION HISTORY: ! 16oct2019 E.Sherman, A.Da Silva, A.Darmenov, T.Clune First attempt at refactoring !EOP @@ -111,6 +111,7 @@ subroutine SetServices (GC, RC) integer :: i real :: DEFVAL logical :: data_driven = .true. + logical :: file_exists __Iam__('SetServices') @@ -127,14 +128,15 @@ subroutine SetServices (GC, RC) allocate (self, __STAT__) wrap%ptr => self -! Load resource file +! Load resource file ! ------------------- cfg = ESMF_ConfigCreate (__RC__) - call ESMF_ConfigLoadFile (cfg, 'DU2G_instance_'//trim(COMP_NAME)//'.rc', rc=status) - - if (status /= 0) then - if (mapl_am_i_root()) print*,'DU2G_instance_'//trim(COMP_NAME)//'.rc does not exist! Loading DU2G_GridComp_DU.rc instead' - call ESMF_ConfigLoadFile (cfg, 'DU2G_instance_DU.rc', __RC__) + inquire(file='DU2G_instance_'//trim(COMP_NAME)//'.rc', exist=file_exists) + if (file_exists) then + call ESMF_ConfigLoadFile (cfg, 'DU2G_instance_'//trim(COMP_NAME)//'.rc', __RC__) + else + if (mapl_am_i_root()) print*,'DU2G_instance_'//trim(COMP_NAME)//'.rc does not exist! Loading DU2G_GridComp_DU.rc instead' + call ESMF_ConfigLoadFile (cfg, 'DU2G_instance_DU.rc', __RC__) end if ! process generic config items @@ -233,7 +235,7 @@ subroutine SetServices (GC, RC) VLOCATION = MAPL_VLocationCenter, & RESTART = MAPL_RestartSkip, __RC__) - do i = 1, self%nbins + do i = 1, self%nbins write (field_name, '(A, I0.3)') '', i call MAPL_AddImportSpec(GC, & short_name = 'climdu'//trim(field_name), & @@ -252,7 +254,7 @@ subroutine SetServices (GC, RC) vlocation = MAPL_VLocationCenter, & restart = MAPL_RestartSkip, __RC__) -! !wet deposition +! !wet deposition call MAPL_AddImportSpec(GC, & short_name = 'climDUWT'//trim(field_name), & long_name = 'Dust Mixing Ratio (bin '//trim(field_name)//')', & @@ -328,22 +330,22 @@ end subroutine SetServices !============================================================================ !BOP -! !IROUTINE: Initialize +! !IROUTINE: Initialize ! !INTERFACE: subroutine Initialize (GC, import, export, clock, RC) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: import ! Import state type (ESMF_State), intent(inout) :: export ! Export state type (ESMF_Clock), intent(inout) :: clock ! The clock integer, optional, intent( out) :: RC ! Error code -! !DESCRIPTION: This initializes DU's Grid Component. It primaryily fills -! GOCART's AERO states with its dust fields. +! !DESCRIPTION: This initializes DU's Grid Component. It primaryily fills +! GOCART's AERO states with its dust fields. -! !REVISION HISTORY: +! !REVISION HISTORY: ! 16oct2019 E.Sherman, A.da Silva, T.Clune, A.Darmenov - First attempt at refactoring !EOP @@ -376,10 +378,11 @@ subroutine Initialize (GC, import, export, clock, RC) integer, allocatable, dimension(:) :: channels_ integer :: nmom_ character(len=ESMF_MAXSTR) :: file_ + logical :: file_exists __Iam__('Initialize') !**************************************************************************** -! Begin... +! Begin... ! Get the target components name and set-up traceback handle. ! ----------------------------------------------------------- @@ -417,21 +420,22 @@ subroutine Initialize (GC, import, export, clock, RC) ! Get DTs ! ------- - call MAPL_GetResource(mapl, HDT, Label='RUN_DT:', __RC__) + call MAPL_GetResource(mapl, HDT, Label='RUN_DT:', __RC__) call MAPL_GetResource(mapl, CDT, Label='GOCART_DT:', default=real(HDT), __RC__) self%CDT = CDT -! Load resource file +! Load resource file ! ------------------- cfg = ESMF_ConfigCreate (__RC__) - call ESMF_ConfigLoadFile (cfg, 'DU2G_instance_'//trim(COMP_NAME)//'.rc', RC=STATUS) - if (status /= 0) then - if (mapl_am_i_root()) print*,'DU2G_instance_'//trim(COMP_NAME)//'.rc does not exist! & - loading DU2G_instance_DU.rc instead' - call ESMF_ConfigLoadFile (cfg, 'DU2G_instance_DU.rc', __RC__) + inquire(file='DU2G_instance_'//trim(COMP_NAME)//'.rc', exist=file_exists) + if (file_exists) then + call ESMF_ConfigLoadFile (cfg, 'DU2G_instance_'//trim(COMP_NAME)//'.rc', __RC__) + else + if (mapl_am_i_root()) print*,'DU2G_instance_'//trim(COMP_NAME)//'.rc does not exist! Loading DU2G_GridComp_DU.rc instead' + call ESMF_ConfigLoadFile (cfg, 'DU2G_instance_DU.rc', __RC__) end if -! Call Generic Initialize +! Call Generic Initialize ! ------------------------ call MAPL_GenericInitialize (GC, import, export, clock, __RC__) @@ -445,7 +449,7 @@ subroutine Initialize (GC, import, export, clock, RC) ! If this is a data component, the data is provided in the import ! state via ExtData instead of the actual GOCART children -! ---------------------------------------------------------------- +! ---------------------------------------------------------------- if ( data_driven ) then providerState = import prefix = 'clim' @@ -573,13 +577,13 @@ end subroutine Initialize !============================================================================ !BOP -! !IROUTINE: Run +! !IROUTINE: Run ! !INTERFACE: subroutine Run (GC, import, export, clock, rc) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: import ! Import state type (ESMF_State), intent(inout) :: export ! Export state type (ESMF_Clock), intent(inout) :: clock ! The clock @@ -600,7 +604,7 @@ subroutine Run (GC, import, export, clock, rc) __Iam__('Run') !***************************************************************************** -! Begin... +! Begin... ! Get my name and set-up traceback handle ! --------------------------------------- @@ -633,13 +637,13 @@ end subroutine Run !============================================================================ !BOP -! !IROUTINE: Run1 +! !IROUTINE: Run1 ! !INTERFACE: subroutine Run1 (GC, import, export, clock, RC) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: import ! Import state type (ESMF_State), intent(inout) :: export ! Export state type (ESMF_Clock), intent(inout) :: clock ! The clock @@ -682,7 +686,7 @@ subroutine Run1 (GC, import, export, clock, RC) __Iam__('Run1') !***************************************************************************** -! Begin... +! Begin... ! Get my name and set-up traceback handle ! --------------------------------------- @@ -847,14 +851,14 @@ end subroutine Run1 !============================================================================ !BOP -! !IROUTINE: Run2 +! !IROUTINE: Run2 ! !INTERFACE: subroutine Run2 (GC, import, export, clock, RC) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: import ! Import state type (ESMF_State), intent(inout) :: export ! Export state type (ESMF_Clock), intent(inout) :: clock ! The clock @@ -884,7 +888,7 @@ subroutine Run2 (GC, import, export, clock, RC) __Iam__('Run2') !***************************************************************************** -! Begin... +! Begin... ! Get my name and set-up traceback handle ! --------------------------------------- @@ -978,8 +982,8 @@ subroutine Run2 (GC, import, export, clock, RC) wavelengths_vertint=self%wavelengths_vertint*1.0e-9, aerosol=DU, & grav=MAPL_GRAV, tmpu=t, rhoa=airdens, & rh=rh20, u=u, v=v, delp=delp, ple=ple,tropp=tropp, & - extcoef = DUEXTCOEFRH20, scacoef = DUSCACOEFRH20, NO3nFlag=.False., __RC__) - + extcoef = DUEXTCOEFRH20, scacoef = DUSCACOEFRH20, NO3nFlag=.False., __RC__) + RH80(:,:,:) = 0.80 call Aero_Compute_Diags (mie=self%diag_Mie, km=self%km, klid=self%klid, nbegin=1, & @@ -988,8 +992,8 @@ subroutine Run2 (GC, import, export, clock, RC) wavelengths_vertint=self%wavelengths_vertint*1.0e-9, aerosol=DU, & grav=MAPL_GRAV, tmpu=t, rhoa=airdens, & rh=rh80, u=u, v=v, delp=delp, ple=ple,tropp=tropp, & - extcoef = DUEXTCOEFRH80, scacoef = DUSCACOEFRH80, NO3nFlag=.False., __RC__) - + extcoef = DUEXTCOEFRH80, scacoef = DUSCACOEFRH80, NO3nFlag=.False., __RC__) + deallocate(RH20,RH80) RETURN_(ESMF_SUCCESS) @@ -1003,13 +1007,13 @@ end subroutine Run2 subroutine Run_data (GC, import, export, internal, RC) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: import ! Import state type (ESMF_State), intent(inout) :: export ! Export state type (ESMF_State), intent(inout) :: internal ! Interal state integer, optional, intent( out) :: RC ! Error code: -! !DESCRIPTION: Updates pointers in Internal state with fields from ExtData. +! !DESCRIPTION: Updates pointers in Internal state with fields from ExtData. ! Locals character (len=ESMF_MAXSTR) :: COMP_NAME @@ -1026,7 +1030,7 @@ subroutine Run_data (GC, import, export, internal, RC) !EOP !***************************************************************************** -! Begin... +! Begin... ! Get my name and set-up traceback handle ! --------------------------------------- @@ -1086,7 +1090,7 @@ subroutine aerosol_optics(state, rc) __Iam__('DU2G::aerosol_optics') -! Begin... +! Begin... ! Mie Table instance/index ! ------------------------ @@ -1097,7 +1101,7 @@ subroutine aerosol_optics(state, rc) band = 0 call ESMF_AttributeGet (state, name='band_for_aerosol_optics', value=band, __RC__) -! Pressure at layer edges +! Pressure at layer edges ! ------------------------ call ESMF_AttributeGet (state, name='air_pressure_for_aerosol_optics', value=fld_name, __RC__) call MAPL_GetPointer (state, ple, trim(fld_name), __RC__) @@ -1171,7 +1175,7 @@ subroutine aerosol_optics(state, rc) subroutine mie_(mie, nbins, band, q, rh, bext_s, bssa_s, basym_s, rc) implicit none - + type(GOCART2G_Mie), intent(inout) :: mie ! mie table integer, intent(in ) :: nbins ! number of bins integer, intent(in ) :: band ! channel @@ -1236,7 +1240,7 @@ subroutine monochromatic_aerosol_optics(state, rc) __Iam__('DU2G::monochromatic_aerosol_optics') -! Begin... +! Begin... ! Mie Table instance/index ! ------------------------ @@ -1247,7 +1251,7 @@ subroutine monochromatic_aerosol_optics(state, rc) wavelength = 0. call ESMF_AttributeGet (state, name='wavelength_for_aerosol_optics', value=wavelength, __RC__) -! Pressure at layer edges +! Pressure at layer edges ! ------------------------ call ESMF_AttributeGet (state, name='air_pressure_for_aerosol_optics', value=fld_name, __RC__) call MAPL_GetPointer (state, ple, trim(fld_name), __RC__) diff --git a/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 index 54c14cc2..2e646df7 100644 --- a/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 @@ -3,7 +3,7 @@ !============================================================================= !BOP -! !MODULE: NI2G_GridCompMod - GOCART Nitrate gridded component +! !MODULE: NI2G_GridCompMod - GOCART Nitrate gridded component ! !INTERFACE: module NI2G_GridCompMod @@ -11,7 +11,7 @@ module NI2G_GridCompMod ! !USES: use ESMF use MAPL - use GOCART2G_MieMod + use GOCART2G_MieMod use Chem_AeroGeneric use iso_c_binding, only: c_loc, c_f_pointer, c_ptr @@ -64,7 +64,7 @@ module NI2G_GridCompMod !============================================================================ !BOP -! !IROUTINE: SetServices +! !IROUTINE: SetServices ! !INTERFACE: subroutine SetServices ( GC, RC ) @@ -75,7 +75,7 @@ subroutine SetServices ( GC, RC ) ! DESCRIPTION: This version uses MAPL_GenericSetServices, which sets ! the Initialize and Finalize services to generic versions. It also -! allocates our instance of a generic state and puts it in the +! allocates our instance of a generic state and puts it in the ! gridded component (GC). Here we only set the two-stage run method ! and declare the data services. @@ -95,6 +95,7 @@ subroutine SetServices ( GC, RC ) real :: DEFVAL logical :: data_driven=.true. + logical :: file_exists __Iam__('SetServices') @@ -111,11 +112,13 @@ subroutine SetServices ( GC, RC ) allocate (self, __STAT__) wrap%ptr => self -! Load resource file +! Load resource file ! ------------------- cfg = ESMF_ConfigCreate (__RC__) - call ESMF_ConfigLoadFile (cfg, 'NI2G_instance_'//trim(COMP_NAME)//'.rc', rc=status) - if (status /= 0) then + inquire(file='NI2G_instance_'//trim(COMP_NAME)//'.rc', exist=file_exists) + if (file_exists) then + call ESMF_ConfigLoadFile (cfg, 'NI2G_instance_'//trim(COMP_NAME)//'.rc', __RC__) + else if (mapl_am_i_root()) print*,'NI2G_instance_'//trim(COMP_NAME)//'.rc does not exist! Loading NI2G_instance_NI.rc instead' call ESMF_ConfigLoadFile (cfg, 'NI2G_instance_NI.rc', __RC__) end if @@ -137,7 +140,7 @@ subroutine SetServices ( GC, RC ) DEFVAL = 0.0 -! Import and Internal states if data instance +! Import and Internal states if data instance ! ------------------------------------------- if (data_driven) then @@ -217,7 +220,7 @@ subroutine SetServices ( GC, RC ) end if ! (data_driven) -! Import, Export, Internal states for computational instance +! Import, Export, Internal states for computational instance ! ---------------------------------------------------------- if (.not. data_driven) then #include "NI2G_Export___.h" @@ -253,27 +256,27 @@ end subroutine SetServices !============================================================================ !BOP -! !IROUTINE: Initialize +! !IROUTINE: Initialize ! !INTERFACE: subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: IMPORT ! Import state type (ESMF_State), intent(inout) :: EXPORT ! Export state type (ESMF_Clock), intent(inout) :: CLOCK ! The clock integer, optional, intent( out) :: RC ! Error code -! !DESCRIPTION: This initializes the Nitrate gridded component. It primaryily -! fills GOCART's AERO states with its nitrate fields. +! !DESCRIPTION: This initializes the Nitrate gridded component. It primaryily +! fills GOCART's AERO states with its nitrate fields. -! !REVISION HISTORY: +! !REVISION HISTORY: ! 30June2020 E.Sherman First attempt at refactoring !EOP !============================================================================ -! !Locals +! !Locals character (len=ESMF_MAXSTR) :: COMP_NAME type (MAPL_MetaComp), pointer :: MAPL type (ESMF_Config) :: universal_cfg @@ -313,10 +316,11 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) integer, allocatable, dimension(:) :: channels_ integer :: nmom_ character(len=ESMF_MAXSTR) :: file_ + logical :: file_exists __Iam__('Initialize') !**************************************************************************** -! Begin... +! Begin... ! Get the target components name and set-up traceback handle. ! ----------------------------------------------------------- @@ -324,10 +328,10 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) Iam = trim(COMP_NAME) // '::' //trim(Iam) ! Get my internal MAPL_Generic state -! ----------------------------------- +! ----------------------------------- call MAPL_GetObjectFromGC (GC, MAPL, __RC__) - -! Get my internal private state + +! Get my internal private state ! ----------------------------- call ESMF_UserCompGetInternalState(GC, 'NI2G_GridComp', wrap, STATUS) VERIFY_(STATUS) @@ -347,19 +351,19 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) call MAPL_GetResource(mapl, CDT, Label='GOCART_DT:', default=real(HDT), __RC__) self%CDT = CDT -! Load resource file and get number of bins +! Load resource file and get number of bins ! ------------------------------------------- cfg = ESMF_ConfigCreate (__RC__) - call ESMF_ConfigLoadFile (cfg, 'NI2G_instance_'//trim(COMP_NAME)//'.rc', rc=status) - if (status /= 0) then - if (mapl_am_i_root()) print*,'NI2G_instance_'//trim(COMP_NAME)//'.rc does not exist! & - loading NI2G_instance_NI.rc instead' - call ESMF_ConfigLoadFile( cfg, 'NI2G_instance_NI.rc', __RC__) + if (file_exists) then + call ESMF_ConfigLoadFile (cfg, 'NI2G_instance_'//trim(COMP_NAME)//'.rc', __RC__) + else + if (mapl_am_i_root()) print*,'NI2G_instance_'//trim(COMP_NAME)//'.rc does not exist! Loading NI2G_instance_NI.rc instead' + call ESMF_ConfigLoadFile (cfg, 'NI2G_instance_NI.rc', __RC__) end if self%first = .true. -! Call Generic Initialize +! Call Generic Initialize ! ---------------------------------------- call MAPL_GenericInitialize (GC, import, export, clock, __RC__) @@ -477,7 +481,7 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) end if self%instance = instance - + ! Create Radiation Mie Table ! -------------------------- call ESMF_ConfigGetAttribute (cfg, file_, label="aerosol_radBands_optics_file:", __RC__ ) @@ -538,13 +542,13 @@ end subroutine Initialize !============================================================================ !BOP -! !IROUTINE: Run +! !IROUTINE: Run ! !INTERFACE: subroutine Run (GC, import, export, clock, rc) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: import ! Import state type (ESMF_State), intent(inout) :: export ! Export state type (ESMF_Clock), intent(inout) :: clock ! The clock @@ -565,7 +569,7 @@ subroutine Run (GC, import, export, clock, rc) __Iam__('Run') !***************************************************************************** -! Begin... +! Begin... ! Get my name and set-up traceback handle ! --------------------------------------- @@ -598,13 +602,13 @@ end subroutine Run !============================================================================ !BOP -! !IROUTINE: Run1 +! !IROUTINE: Run1 ! !INTERFACE: subroutine Run1 (GC, import, export, clock, RC) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: import ! Import state type (ESMF_State), intent(inout) :: export ! Export state type (ESMF_Clock), intent(inout) :: clock ! The clock @@ -627,7 +631,7 @@ subroutine Run1 (GC, import, export, clock, RC) __Iam__('Run1') !***************************************************************************** -! Begin... +! Begin... ! Get my name and set-up traceback handle ! --------------------------------------- @@ -685,14 +689,14 @@ end subroutine Run1 !============================================================================ !BOP -! !IROUTINE: Run2 +! !IROUTINE: Run2 ! !INTERFACE: subroutine Run2 (GC, import, export, clock, RC) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: import ! Import state type (ESMF_State), intent(inout) :: export ! Export state type (ESMF_Clock), intent(inout) :: clock ! The clock @@ -729,7 +733,7 @@ subroutine Run2 (GC, import, export, clock, RC) __Iam__('Run2') !***************************************************************************** -! Begin... +! Begin... ! Get my name and set-up traceback handle ! --------------------------------------- @@ -784,7 +788,7 @@ subroutine Run2 (GC, import, export, clock, RC) MAPL_PI, MAPL_RUNIV/1000., airdens, t, rh2, delp, DU, & SS, self%rmedDU*1.e-6, self%rmedSS*1.e-6, & self%fnumDU, self%fnumSS, self%km, self%klid, & - self%cdt, MAPL_GRAV, fMassHNO3, fMassNO3, NO3an1, NO3an2, & + self%cdt, MAPL_GRAV, fMassHNO3, fMassNO3, NO3an1, NO3an2, & NO3an3, HNO3CONC, HNO3SMASS, HNO3CMASS, __RC__) @@ -987,8 +991,8 @@ subroutine Run2 (GC, import, export, clock, RC) wavelengths_vertint=self%wavelengths_vertint*1.0e-9, aerosol=aerosol, & grav=MAPL_GRAV, tmpu=t, rhoa=airdens, & rh=rh20,u=u, v=v, delp=delp, ple=ple,tropp=tropp, & - extcoef = NIEXTCOEFRH20, scacoef=NISCACOEFRH20, __RC__) - + extcoef = NIEXTCOEFRH20, scacoef=NISCACOEFRH20, __RC__) + RH80(:,:,:) = 0.80 call Aero_Compute_Diags (mie=self%diag_Mie, km=self%km, klid=self%klid, nbegin=1, & nbins=3, & @@ -996,11 +1000,11 @@ subroutine Run2 (GC, import, export, clock, RC) wavelengths_vertint=self%wavelengths_vertint*1.0e-9, aerosol=aerosol, & grav=MAPL_GRAV, tmpu=t, rhoa=airdens, & rh=rh80,u=u, v=v, delp=delp, ple=ple,tropp=tropp, & - extcoef = NIEXTCOEFRH80, scacoef=NISCACOEFRH80,__RC__) - - deallocate(RH20,RH80) + extcoef = NIEXTCOEFRH80, scacoef=NISCACOEFRH80,__RC__) + + deallocate(RH20,RH80) RETURN_(ESMF_SUCCESS) - + end subroutine Run2 @@ -1014,13 +1018,13 @@ subroutine Run_data (GC, IMPORT, EXPORT, INTERNAL, RC) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: IMPORT ! Import state type (ESMF_State), intent(inout) :: EXPORT ! Export state type (ESMF_State), intent(inout) :: INTERNAL ! Interal state integer, optional, intent( out) :: RC ! Error code: -! !DESCRIPTION: Updates pointers in Internal state with fields from ExtData. +! !DESCRIPTION: Updates pointers in Internal state with fields from ExtData. !EOP !============================================================================ @@ -1034,7 +1038,7 @@ subroutine Run_data (GC, IMPORT, EXPORT, INTERNAL, RC) __Iam__('Run_data') !***************************************************************************** -! Begin... +! Begin... ! Get my name and set-up traceback handle ! --------------------------------------- @@ -1098,7 +1102,7 @@ subroutine aerosol_optics(state, rc) __Iam__('NI2G::aerosol_optics') -! Begin... +! Begin... ! Mie Table instance/index ! ------------------------ @@ -1115,7 +1119,7 @@ subroutine aerosol_optics(state, rc) band = 0 call ESMF_AttributeGet(state, name='band_for_aerosol_optics', value=band, __RC__) -! Pressure at layer edges +! Pressure at layer edges ! ------------------------ call ESMF_AttributeGet(state, name='air_pressure_for_aerosol_optics', value=fld_name, __RC__) call MAPL_GetPointer(state, ple, trim(fld_name), __RC__) @@ -1219,7 +1223,7 @@ subroutine mie_(mie, nbins, band, q, rh, bext_s, bssa_s, basym_s, rc) bext_s = bext_s + bext ! extinction bssa_s = bssa_s + (bssa*bext) ! scattering extinction - basym_s = basym_s + gasym*(bssa*bext) ! asymetry parameter multiplied by scatering extiction + basym_s = basym_s + gasym*(bssa*bext) ! asymetry parameter multiplied by scatering extiction end do @@ -1262,7 +1266,7 @@ subroutine monochromatic_aerosol_optics(state, rc) __Iam__('NI2G:: monochromatic_aerosol_optics') -! Begin... +! Begin... ! Mie Table instance/index ! ------------------------ @@ -1279,7 +1283,7 @@ subroutine monochromatic_aerosol_optics(state, rc) call ESMF_AttributeGet(state, name='wavelength_for_aerosol_optics', value=wavelength, __RC__) -! Pressure at layer edges +! Pressure at layer edges ! ------------------------ call ESMF_AttributeGet(state, name='air_pressure_for_aerosol_optics', value=fld_name, __RC__) call MAPL_GetPointer(state, ple, trim(fld_name), __RC__) diff --git a/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridCompMod.F90 index 02d10988..076788bb 100644 --- a/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridCompMod.F90 @@ -3,7 +3,7 @@ !============================================================================= !BOP -! !MODULE: SS2G_GridCompMod - GOCART refactoring of the SS gridded component +! !MODULE: SS2G_GridCompMod - GOCART refactoring of the SS gridded component ! !INTERFACE: module SS2G_GridCompMod @@ -11,7 +11,7 @@ module SS2G_GridCompMod ! !USES: use ESMF use MAPL - use GOCART2G_MieMod + use GOCART2G_MieMod use Chem_AeroGeneric use iso_c_binding, only: c_loc, c_f_pointer, c_ptr @@ -45,7 +45,7 @@ module SS2G_GridCompMod real, allocatable :: rlow(:) ! particle effective radius lower bound [um] real, allocatable :: rup(:) ! particle effective radius upper bound [um] real, allocatable :: rmed(:) ! number median radius [um] - integer :: sstEmisFlag ! Choice of SST correction to emissions: + integer :: sstEmisFlag ! Choice of SST correction to emissions: ! 0 - none; 1 - Jaegle et al. 2011; 2 - GEOS5 logical :: hoppelFlag ! Apply the Hoppel correction to emissions (Fan and Toon, 2011) logical :: weibullFlag ! Apply the Weibull distribution to wind speed for emissions (Fan and Toon, 2011) @@ -64,7 +64,7 @@ module SS2G_GridCompMod !============================================================================ !BOP -! !IROUTINE: SetServices +! !IROUTINE: SetServices ! !INTERFACE: subroutine SetServices ( GC, RC ) @@ -75,7 +75,7 @@ subroutine SetServices ( GC, RC ) ! DESCRIPTION: This version uses MAPL_GenericSetServices, which sets ! the Initialize and Finalize services to generic versions. It also -! allocates our instance of a generic state and puts it in the +! allocates our instance of a generic state and puts it in the ! gridded component (GC). Here we only set the two-stage run method ! and declare the data services. @@ -96,6 +96,7 @@ subroutine SetServices ( GC, RC ) integer :: i real :: DEFVAL logical :: data_driven=.true. + logical :: file_exists __Iam__('SetServices') @@ -112,11 +113,13 @@ subroutine SetServices ( GC, RC ) allocate (self, __STAT__) wrap%ptr => self -! Load resource file +! Load resource file ! ------------------- cfg = ESMF_ConfigCreate (__RC__) - call ESMF_ConfigLoadFile (cfg, 'SS2G_instance_'//trim(COMP_NAME)//'.rc', rc=status) - if (status /= 0) then + inquire(file='SS2G_instance_'//trim(COMP_NAME)//'.rc', exist=file_exists) + if (file_exists) then + call ESMF_ConfigLoadFile (cfg, 'SS2G_instance_'//trim(COMP_NAME)//'.rc', __RC__) + else if (mapl_am_i_root()) print*,'SS2G_instance_'//trim(COMP_NAME)//'.rc does not exist! loading SS2G_instance_SS.rc instead' call ESMF_ConfigLoadFile (cfg, 'SS2G_instance_SS.rc', __RC__) end if @@ -151,7 +154,7 @@ subroutine SetServices ( GC, RC ) DEFVAL = 0.0 -! Import and Internal states if data instance +! Import and Internal states if data instance ! ------------------------------------------- if (data_driven) then @@ -206,7 +209,7 @@ subroutine SetServices ( GC, RC ) VLOCATION = MAPL_VLocationCenter, & RESTART = MAPL_RestartSkip, __RC__) -! ! wet deposition +! ! wet deposition call MAPL_AddImportSpec(GC, & SHORT_NAME = 'climSSWT'//trim(field_name), & LONG_NAME = 'Sea Salt wet removal (bin '//trim(field_name)//')', & @@ -236,7 +239,7 @@ subroutine SetServices ( GC, RC ) end if ! (data_driven) -! Import, Export, Internal states for computational instance +! Import, Export, Internal states for computational instance ! ---------------------------------------------------------- if (.not. data_driven) then #include "SS2G_Export___.h" @@ -282,27 +285,27 @@ end subroutine SetServices !============================================================================ !BOP -! !IROUTINE: Initialize +! !IROUTINE: Initialize ! !INTERFACE: subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: IMPORT ! Import state type (ESMF_State), intent(inout) :: EXPORT ! Export state type (ESMF_Clock), intent(inout) :: CLOCK ! The clock integer, optional, intent( out) :: RC ! Error code -! !DESCRIPTION: This initializes SS' Grid Component. It primaryily fills -! GOCART's AERO states with its sea salt fields. +! !DESCRIPTION: This initializes SS' Grid Component. It primaryily fills +! GOCART's AERO states with its sea salt fields. -! !REVISION HISTORY: +! !REVISION HISTORY: ! 24oct2019 E.Sherman First attempt at refactoring !EOP !============================================================================ -! !Locals +! !Locals character (len=ESMF_MAXSTR) :: COMP_NAME type (MAPL_MetaComp), pointer :: MAPL type (ESMF_Grid) :: grid @@ -319,7 +322,7 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) integer :: instance type (ESMF_Field) :: field, fld character (len=ESMF_MAXSTR) :: prefix, bin_index - real, pointer, dimension(:,:) :: lats + real, pointer, dimension(:,:) :: lats real, pointer, dimension(:,:) :: lons real :: CDT ! chemistry timestep (secs) integer :: HDT ! model timestep (secs) @@ -331,10 +334,11 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) integer, allocatable, dimension(:) :: channels_ integer :: nmom_ character(len=ESMF_MAXSTR) :: file_ + logical :: file_exists __Iam__('Initialize') !**************************************************************************** -! Begin... +! Begin... ! Get the target components name and set-up traceback handle. ! ----------------------------------------------------------- @@ -368,17 +372,17 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) call MAPL_GetResource(mapl, CDT, Label='GOCART_DT:', default=real(HDT), __RC__) self%CDT = CDT -! Load resource file and get number of bins +! Load resource file and get number of bins ! ------------------------------------------- cfg = ESMF_ConfigCreate (__RC__) - call ESMF_ConfigLoadFile (cfg, 'SS2G_instance_'//trim(COMP_NAME)//'.rc', rc=status) - if (status /= 0) then - if (mapl_am_i_root()) print*,'SS2G_instance_'//trim(COMP_NAME)//'.rc does not exist! & - loading SS2G_instance_SS.rc instead' - call ESMF_ConfigLoadFile( cfg, 'SS2G_instance_SS.rc', __RC__) + if (file_exists) then + call ESMF_ConfigLoadFile (cfg, 'SS2G_instance_'//trim(COMP_NAME)//'.rc', __RC__) + else + if (mapl_am_i_root()) print*,'SS2G_instance_'//trim(COMP_NAME)//'.rc does not exist! loading SS2G_instance_SS.rc instead' + call ESMF_ConfigLoadFile (cfg, 'SS2G_instance_SS.rc', __RC__) end if -! Call Generic Initialize +! Call Generic Initialize ! ---------------------------------------- call MAPL_GenericInitialize (GC, import, export, clock, __RC__) @@ -523,13 +527,13 @@ end subroutine Initialize !============================================================================ !BOP -! !IROUTINE: Run +! !IROUTINE: Run ! !INTERFACE: subroutine Run (GC, import, export, clock, rc) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: import ! Import state type (ESMF_State), intent(inout) :: export ! Export state type (ESMF_Clock), intent(inout) :: clock ! The clock @@ -550,7 +554,7 @@ subroutine Run (GC, import, export, clock, rc) __Iam__('Run') !***************************************************************************** -! Begin... +! Begin... ! Get my name and set-up traceback handle ! --------------------------------------- @@ -583,13 +587,13 @@ end subroutine Run !============================================================================ !BOP -! !IROUTINE: Run1 +! !IROUTINE: Run1 ! !INTERFACE: subroutine Run1 (GC, import, export, clock, RC) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: import ! Import state type (ESMF_State), intent(inout) :: export ! Export state type (ESMF_Clock), intent(inout) :: clock ! The clock @@ -614,14 +618,14 @@ subroutine Run1 (GC, import, export, clock, RC) real(kind=DP), allocatable, dimension(:,:) :: gweibull - integer :: n + integer :: n #include "SS2G_DeclarePointer___.h" __Iam__('Run1') !***************************************************************************** -! Begin... +! Begin... ! Get my name and set-up traceback handle ! --------------------------------------- @@ -656,7 +660,7 @@ subroutine Run1 (GC, import, export, clock, RC) call jeagleSSTcorrection(self%sstEmisFlag, fsstemis, ts, __RC__) ! Apply a Weibull distribution to emissions wind speeds -! ----------------------------------------------------- +! ----------------------------------------------------- allocate(gweibull(ubound(u10m,1), ubound(u10m,2)), __STAT__ ) call weibullDistribution (gweibull, self%weibullFlag, u10m, v10m, __RC__) @@ -685,7 +689,7 @@ subroutine Run1 (GC, import, export, clock, RC) dz, ustar, self%rhFlag, airdens(:,:,self%km), t(:,:,self%km), & MAPL_GRAV, MAPL_KARMAN, fhoppel, __RC__) end if - + memissions = self%emission_scale * fgridefficiency * fsstemis * fhoppel * gweibull * memissions dqa = memissions * self%cdt * MAPL_GRAV / delp(:,:,self%km) SS(:,:,self%km,n) = SS(:,:,self%km,n) + dqa @@ -700,18 +704,18 @@ subroutine Run1 (GC, import, export, clock, RC) RETURN_(ESMF_SUCCESS) - end subroutine Run1 + end subroutine Run1 !============================================================================ !BOP -! !IROUTINE: Run2 +! !IROUTINE: Run2 ! !INTERFACE: subroutine Run2 (GC, import, export, clock, RC) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: import ! Import state type (ESMF_State), intent(inout) :: export ! Export state type (ESMF_Clock), intent(inout) :: clock ! The clock @@ -740,7 +744,7 @@ subroutine Run2 (GC, import, export, clock, RC) __Iam__('Run2') !***************************************************************************** -! Begin... +! Begin... ! Get my name and set-up traceback handle ! --------------------------------------- @@ -822,7 +826,7 @@ subroutine Run2 (GC, import, export, clock, RC) allocate(RH20(i1:i2,j1:j2,km), __STAT__) allocate(RH80(i1:i2,j1:j2,km), __STAT__) - RH20(:,:,:) = 0.20 + RH20(:,:,:) = 0.20 call Aero_Compute_Diags (mie=self%diag_Mie, km=self%km, klid=self%klid, nbegin=1, & nbins=self%nbins, rlow=self%rlow, & rup=self%rup, wavelengths_profile=self%wavelengths_profile*1.0e-9, & @@ -830,7 +834,7 @@ subroutine Run2 (GC, import, export, clock, RC) grav=MAPL_GRAV, tmpu=t, rhoa=airdens, & rh=rh20,u=u, v=v, delp=delp, ple=ple,tropp=tropp, & extcoef = SSEXTCOEFRH20, scacoef = SSSCACOEFRH20, NO3nFlag=.False., __RC__) - + RH80(:,:,:) = 0.80 call Aero_Compute_Diags (mie=self%diag_Mie, km=self%km, klid=self%klid, nbegin=1, & nbins=self%nbins, rlow=self%rlow, & @@ -840,7 +844,7 @@ subroutine Run2 (GC, import, export, clock, RC) rh=rh80,u=u, v=v, delp=delp, ple=ple,tropp=tropp, & extcoef = SSEXTCOEFRH80, scacoef = SSSCACOEFRH80, NO3nFlag=.False., __RC__) - deallocate(RH20,RH80) + deallocate(RH20,RH80) RETURN_(ESMF_SUCCESS) end subroutine Run2 @@ -855,13 +859,13 @@ subroutine Run_data (GC, IMPORT, EXPORT, INTERNAL, RC) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: IMPORT ! Import state type (ESMF_State), intent(inout) :: EXPORT ! Export state type (ESMF_State), intent(inout) :: INTERNAL ! Interal state integer, optional, intent( out) :: RC ! Error code: -! !DESCRIPTION: Updates pointers in Internal state with fields from ExtData. +! !DESCRIPTION: Updates pointers in Internal state with fields from ExtData. !EOP !============================================================================ @@ -879,7 +883,7 @@ subroutine Run_data (GC, IMPORT, EXPORT, INTERNAL, RC) __Iam__('Run_data') !***************************************************************************** -! Begin... +! Begin... ! Get my name and set-up traceback handle ! --------------------------------------- @@ -939,7 +943,7 @@ subroutine aerosol_optics(state, rc) __Iam__('SS2G::aerosol_optics') -! Begin... +! Begin... ! Mie Table instance/index ! ------------------------ @@ -950,7 +954,7 @@ subroutine aerosol_optics(state, rc) band = 0 call ESMF_AttributeGet(state, name='band_for_aerosol_optics', value=band, __RC__) -! Pressure at layer edges +! Pressure at layer edges ! ------------------------ call ESMF_AttributeGet(state, name='air_pressure_for_aerosol_optics', value=fld_name, __RC__) call MAPL_GetPointer(state, ple, trim(fld_name), __RC__) @@ -1054,7 +1058,7 @@ subroutine mie_(mie, nbins, band, q, rh, bext_s, bssa_s, basym_s, rc) bext_s = bext_s + bext ! extinction bssa_s = bssa_s + (bssa*bext) ! scattering extinction - basym_s = basym_s + gasym*(bssa*bext) ! asymetry parameter multiplied by scatering extiction + basym_s = basym_s + gasym*(bssa*bext) ! asymetry parameter multiplied by scatering extiction end do RETURN_(ESMF_SUCCESS) @@ -1091,7 +1095,7 @@ subroutine monochromatic_aerosol_optics(state, rc) __Iam__('SS2G::monochromatic_aerosol_optics') -! Begin... +! Begin... ! Mie Table instance/index ! ------------------------ @@ -1102,7 +1106,7 @@ subroutine monochromatic_aerosol_optics(state, rc) wavelength = 0. call ESMF_AttributeGet (state, name='wavelength_for_aerosol_optics', value=wavelength, __RC__) -! Pressure at layer edges +! Pressure at layer edges ! ------------------------ call ESMF_AttributeGet (state, name='air_pressure_for_aerosol_optics', value=fld_name, __RC__) call MAPL_GetPointer (state, ple, trim(fld_name), __RC__) diff --git a/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridCompMod.F90 index 5b8cb930..edd94b81 100644 --- a/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridCompMod.F90 @@ -3,7 +3,7 @@ !============================================================================= !BOP -! !MODULE: SU2G_GridCompMod - GOCART refactoring of the SU gridded component +! !MODULE: SU2G_GridCompMod - GOCART refactoring of the SU gridded component ! !INTERFACE: module SU2G_GridCompMod @@ -11,7 +11,7 @@ module SU2G_GridCompMod ! !USES: use ESMF use MAPL - use GOCART2G_MieMod + use GOCART2G_MieMod use Chem_AeroGeneric use iso_c_binding, only: c_loc, c_f_pointer, c_ptr @@ -96,7 +96,7 @@ module SU2G_GridCompMod !============================================================================ !BOP -! !IROUTINE: SetServices +! !IROUTINE: SetServices ! !INTERFACE: subroutine SetServices ( GC, RC ) @@ -107,7 +107,7 @@ subroutine SetServices ( GC, RC ) ! DESCRIPTION: This version uses MAPL_GenericSetServices, which sets ! the Initialize and Finalize services to generic versions. It also -! allocates our instance of a generic state and puts it in the +! allocates our instance of a generic state and puts it in the ! gridded component (GC). Here we only set the two-stage run method ! and declare the data services. @@ -130,6 +130,7 @@ subroutine SetServices ( GC, RC ) integer :: i real :: DEFVAL logical :: data_driven=.true. + logical :: file_exists __Iam__('SetServices') @@ -146,11 +147,13 @@ subroutine SetServices ( GC, RC ) allocate (self, __STAT__) wrap%ptr => self -! Load resource file +! Load resource file ! ------------------- cfg = ESMF_ConfigCreate (__RC__) - call ESMF_ConfigLoadFile (cfg, 'SU2G_instance_'//trim(COMP_NAME)//'.rc', rc=status) - if (status /= 0) then + inquire(file='SU2G_instance_'//trim(COMP_NAME)//'.rc', exist=file_exists) + if (file_exists) then + call ESMF_ConfigLoadFile (cfg, 'SU2G_instance_'//trim(COMP_NAME)//'.rc', __RC__) + else if (mapl_am_i_root()) print*,'SU2G_instance_'//trim(COMP_NAME)//'.rc does not exist! loading SU2G_instance_SU.rc instead' call ESMF_ConfigLoadFile (cfg, 'SU2G_instance_SU.rc', __RC__) end if @@ -192,7 +195,7 @@ subroutine SetServices ( GC, RC ) DEFVAL = 0.0 -! Import and Internal states if data instance +! Import and Internal states if data instance ! ------------------------------------------- if (data_driven) then @@ -232,7 +235,7 @@ subroutine SetServices ( GC, RC ) units='kg kg-1', & dims=MAPL_DimsHorzVert, & vlocation=MAPL_VlocationCenter, & - restart=MAPL_RestartOptional, __RC__) + restart=MAPL_RestartOptional, __RC__) do i = 1, self%nbins write(field_name, '(A, I0.3)') '', i @@ -245,7 +248,7 @@ subroutine SetServices ( GC, RC ) VLOCATION = MAPL_VLocationCenter, & RESTART = MAPL_RestartSkip, __RC__) -! ! wet deposition +! ! wet deposition call MAPL_AddImportSpec(GC, & SHORT_NAME = 'climSUWT'//trim(field_name), & LONG_NAME = 'Sulfate wet deposition (bin '//trim(field_name)//')', & @@ -282,7 +285,7 @@ subroutine SetServices ( GC, RC ) UNITS = '1', & DIMS = MAPL_DimsHorzVert, & VLOCATION = MAPL_VLocationCenter, & - RESTART = MAPL_RestartSkip, __RC__) + RESTART = MAPL_RestartSkip, __RC__) call MAPL_AddImportSpec(GC, & SHORT_NAME = 'SU_OH', & @@ -290,7 +293,7 @@ subroutine SetServices ( GC, RC ) UNITS = '1', & DIMS = MAPL_DimsHorzVert, & VLOCATION = MAPL_VLocationCenter, & - RESTART = MAPL_RestartSkip, __RC__) + RESTART = MAPL_RestartSkip, __RC__) call MAPL_AddImportSpec(GC, & SHORT_NAME = 'SU_NO3', & @@ -301,7 +304,7 @@ subroutine SetServices ( GC, RC ) RESTART = MAPL_RestartSkip, __RC__) end if -! Import, Export, Internal states for computational instance +! Import, Export, Internal states for computational instance ! ---------------------------------------------------------- if (.not. data_driven) then #include "SU2G_Export___.h" @@ -347,26 +350,26 @@ end subroutine SetServices !============================================================================ !BOP -! !IROUTINE: Initialize +! !IROUTINE: Initialize ! !INTERFACE: subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: IMPORT ! Import state type (ESMF_State), intent(inout) :: EXPORT ! Export state type (ESMF_Clock), intent(inout) :: CLOCK ! The clock integer, optional, intent( out) :: RC ! Error code -! !DESCRIPTION: This initializes SU Grid Component. +! !DESCRIPTION: This initializes SU Grid Component. -! !REVISION HISTORY: +! !REVISION HISTORY: ! 08July2019 E.Sherman First attempt at refactoring !EOP !============================================================================ -! !Locals +! !Locals character (len=ESMF_MAXSTR) :: COMP_NAME type (MAPL_MetaComp), pointer :: MAPL type (ESMF_Grid) :: grid @@ -404,10 +407,11 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) integer, allocatable, dimension(:) :: channels_ integer :: nmom_ character(len=ESMF_MAXSTR) :: file_ + logical :: file_exists __Iam__('Initialize') !**************************************************************************** -! Begin... +! Begin... ! Get the target components name and set-up traceback handle. ! ----------------------------------------------------------- @@ -447,17 +451,18 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) self%diurnal_bb = .false. end if -! Load resource file and get number of bins +! Load resource file and get number of bins ! ------------------------------------------- cfg = ESMF_ConfigCreate (__RC__) - call ESMF_ConfigLoadFile (cfg, 'SU2G_instance_'//trim(COMP_NAME)//'.rc', rc=status) - if (status /= 0) then - if (mapl_am_i_root()) print*,'SU2G_instance_'//trim(COMP_NAME)//'.rc does not exist! & - loading SU2G_instance_SU.rc instead' - call ESMF_ConfigLoadFile( cfg, 'SU2G_instance_SU.rc', __RC__) + inquire(file='SU2G_instance_'//trim(COMP_NAME)//'.rc', exist=file_exists) + if (file_exists) then + call ESMF_ConfigLoadFile (cfg, 'SU2G_instance_'//trim(COMP_NAME)//'.rc', __RC__) + else + if (mapl_am_i_root()) print*,'SU2G_instance_'//trim(COMP_NAME)//'.rc does not exist! loading SU2G_instance_SU.rc instead' + call ESMF_ConfigLoadFile (cfg, 'SU2G_instance_SU.rc', __RC__) end if -! Call Generic Initialize +! Call Generic Initialize ! ---------------------------------------- call MAPL_GenericInitialize (GC, import, export, clock, __RC__) @@ -631,13 +636,13 @@ end subroutine Initialize !============================================================================ !BOP -! !IROUTINE: Run +! !IROUTINE: Run ! !INTERFACE: subroutine Run (GC, import, export, clock, rc) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: import ! Import state type (ESMF_State), intent(inout) :: export ! Export state type (ESMF_Clock), intent(inout) :: clock ! The clock @@ -658,7 +663,7 @@ subroutine Run (GC, import, export, clock, rc) __Iam__('Run') !***************************************************************************** -! Begin... +! Begin... ! Get my name and set-up traceback handle ! --------------------------------------- @@ -691,13 +696,13 @@ end subroutine Run !============================================================================ !BOP -! !IROUTINE: Run1 +! !IROUTINE: Run1 ! !INTERFACE: subroutine Run1 (GC, import, export, clock, RC) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: import ! Import state type (ESMF_State), intent(inout) :: export ! Export state type (ESMF_Clock), intent(inout) :: clock ! The clock @@ -737,7 +742,7 @@ subroutine Run1 (GC, import, export, clock, RC) __Iam__('Run1') !***************************************************************************** -! Begin... +! Begin... ! Get my name and set-up traceback handle ! --------------------------------------- @@ -877,9 +882,9 @@ subroutine Run1 (GC, import, export, clock, RC) self%aviation_layers, & aviation_lto_src, & aviation_cds_src, & - aviation_crs_src, __RC__) + aviation_crs_src, __RC__) - if (associated(dms)) then + if (associated(dms)) then call DMSemission (self%km, self%cdt, MAPL_GRAV, t, u10m, v10m, lwi, delp, & fMassDMS, SU_DMSO, dms, SUEM, nDMS, __RC__) end if @@ -923,7 +928,7 @@ subroutine Run1 (GC, import, export, clock, RC) call updatePointwiseEmissions (self%km, self%pBase, self%pTop, self%pEmis, self%nPts, & self%pStart, self%pEnd, zle, & area, iPoint, jPoint, nhms, emissions_point, __RC__) - + SO4 = SO4 + self%cdt * MAPL_GRAV / delp * emissions_point end if @@ -933,14 +938,14 @@ end subroutine Run1 !============================================================================ !BOP -! !IROUTINE: Run2 +! !IROUTINE: Run2 ! !INTERFACE: subroutine Run2 (GC, import, export, clock, RC) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: import ! Import state type (ESMF_State), intent(inout) :: export ! Export state type (ESMF_Clock), intent(inout) :: clock ! The clock @@ -972,7 +977,7 @@ subroutine Run2 (GC, import, export, clock, RC) real, dimension(:,:), allocatable :: drydepositionf real, pointer, dimension(:,:,:) :: dummyMSA => null() ! this is so the model can run without MSA enabled - logical :: alarm_is_ringing + logical :: alarm_is_ringing integer :: i1, j1, i2, j2, km real, target, allocatable, dimension(:,:,:) :: RH20,RH80 @@ -981,7 +986,7 @@ subroutine Run2 (GC, import, export, clock, RC) __Iam__('Run2') !***************************************************************************** -! Begin... +! Begin... ! Get my name and set-up traceback handle ! --------------------------------------- @@ -1000,9 +1005,9 @@ subroutine Run2 (GC, import, export, clock, RC) LATS = LATS, __RC__ ) #include "SU2G_GetPointer___.h" - + call MAPL_GetPointer(internal, dummyMSA, 'MSA', rc=status) - + ! Extract nymd(yyyymmdd) from clock ! --------------------------------- call ESMF_ClockGet (clock, currTime=time, __RC__) @@ -1036,7 +1041,7 @@ subroutine Run2 (GC, import, export, clock, RC) self%firstRun = .false. end if - xh2o2 = self%h2o2_init + xh2o2 = self%h2o2_init call SulfateUpdateOxidants (nymd, nhms, LONS, LATS, airdens, self%km, self%cdt, & self%nymd_oxidants, MAPL_UNDEF, real(MAPL_RADIANS_TO_DEGREES), & @@ -1103,7 +1108,7 @@ subroutine Run2 (GC, import, export, clock, RC) allocate(RH80(i1:i2,j1:j2,km), __STAT__) RH20(:,:,:) = 0.20 - call SU_Compute_Diags ( km=self%km, klid=self%klid, rmed=self%radius(nSO4), sigma=self%sigma(nSO4),& + call SU_Compute_Diags ( km=self%km, klid=self%klid, rmed=self%radius(nSO4), sigma=self%sigma(nSO4),& rhop=self%rhop(nSO4), & grav=MAPL_GRAV, pi=MAPL_PI, nSO4=nSO4, mie=self%diag_Mie, & wavelengths_profile=self%wavelengths_profile*1.0e-9, & @@ -1113,7 +1118,7 @@ subroutine Run2 (GC, import, export, clock, RC) scacoef = SUSCACOEFRH20, __RC__) RH80(:,:,:) = 0.80 - call SU_Compute_Diags ( km=self%km, klid=self%klid, rmed=self%radius(nSO4), sigma=self%sigma(nSO4),& + call SU_Compute_Diags ( km=self%km, klid=self%klid, rmed=self%radius(nSO4), sigma=self%sigma(nSO4),& rhop=self%rhop(nSO4), & grav=MAPL_GRAV, pi=MAPL_PI, nSO4=nSO4, mie=self%diag_Mie, & wavelengths_profile=self%wavelengths_profile*1.0e-9, & @@ -1137,13 +1142,13 @@ subroutine Run_data (GC, IMPORT, EXPORT, INTERNAL, RC) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: IMPORT ! Import state type (ESMF_State), intent(inout) :: EXPORT ! Export state type (ESMF_State), intent(inout) :: INTERNAL ! Interal state integer, optional, intent( out) :: RC ! Error code: -! !DESCRIPTION: Updates pointers in Internal state with fields from ExtData. +! !DESCRIPTION: Updates pointers in Internal state with fields from ExtData. !EOP !============================================================================ @@ -1157,7 +1162,7 @@ subroutine Run_data (GC, IMPORT, EXPORT, INTERNAL, RC) __Iam__('Run_data') !***************************************************************************** -! Begin... +! Begin... ! Get my name and set-up traceback handle ! --------------------------------------- @@ -1215,7 +1220,7 @@ subroutine aerosol_optics(state, rc) __Iam__('SU2G::aerosol_optics') -! Begin... +! Begin... ! Mie Table instance/index ! ------------------------ @@ -1232,7 +1237,7 @@ subroutine aerosol_optics(state, rc) band = 0 call ESMF_AttributeGet(state, name='band_for_aerosol_optics', value=band, __RC__) -! Pressure at layer edges +! Pressure at layer edges ! ------------------------ call ESMF_AttributeGet(state, name='air_pressure_for_aerosol_optics', value=fld_name, __RC__) call MAPL_GetPointer(state, ple, trim(fld_name), __RC__) @@ -1336,7 +1341,7 @@ subroutine mie_(mie, nbins, band, q, rh, bext_s, bssa_s, basym_s, rc) bext_s = bext_s + bext ! extinction bssa_s = bssa_s + (bssa*bext) ! scattering extinction - basym_s = basym_s + gasym*(bssa*bext) ! asymetry parameter multiplied by scatering extiction + basym_s = basym_s + gasym*(bssa*bext) ! asymetry parameter multiplied by scatering extiction end do @@ -1378,7 +1383,7 @@ subroutine monochromatic_aerosol_optics(state, rc) __Iam__('SU2G::monochromatic_aerosol_optics') -! Begin... +! Begin... ! Mie Table instance/index ! ------------------------ @@ -1395,7 +1400,7 @@ subroutine monochromatic_aerosol_optics(state, rc) call ESMF_AttributeGet(state, name='wavelength_for_aerosol_optics', value=wavelength, __RC__) -! Pressure at layer edges +! Pressure at layer edges ! ------------------------ call ESMF_AttributeGet(state, name='air_pressure_for_aerosol_optics', value=fld_name, __RC__) call MAPL_GetPointer(state, ple, trim(fld_name), __RC__) From 07857a2054f1cf9112257513e0e1ed4d867e8c06 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Tue, 18 Apr 2023 12:46:08 -0400 Subject: [PATCH 19/36] Use inquire to avoid ESMF error --- .../CA2G_GridComp/CA2G_GridCompMod.F90 | 26 ++++++++++------- .../DU2G_GridComp/DU2G_GridCompMod.F90 | 28 +++++++++++-------- .../NI2G_GridComp/NI2G_GridCompMod.F90 | 22 +++++++++------ .../SS2G_GridComp/SS2G_GridCompMod.F90 | 22 +++++++++------ .../SU2G_GridComp/SU2G_GridCompMod.F90 | 23 +++++++++------ 5 files changed, 72 insertions(+), 49 deletions(-) diff --git a/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridCompMod.F90 index 3f547efc..d6fb71e4 100644 --- a/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridCompMod.F90 @@ -105,6 +105,7 @@ subroutine SetServices (GC, RC) integer :: i, nbins real :: DEFVAL logical :: data_driven = .true. + logical :: file_exists integer :: num_threads __Iam__('SetServices') @@ -132,14 +133,16 @@ subroutine SetServices (GC, RC) num_threads = MAPL_get_num_threads() allocate(self%workspaces(0:num_threads-1), __STAT__) -! Load resource file +! Load resource file ! ------------------- cfg = ESMF_ConfigCreate (__RC__) - call ESMF_ConfigLoadFile (cfg, 'CA2G_instance_'//trim(comp_name)//'.rc', rc=status) - if (status /= 0) then - if (mapl_am_i_root()) print*,'CA2G_instance_'//trim(comp_name)//'.rc does not exist! & + inquire(file='CA2G_instance_'//trim(comp_name)//'.rc', exist=file_exists) + if (file_exists) then + call ESMF_ConfigLoadFile (cfg, 'CA2G_instance_'//trim(comp_name)//'.rc', __RC__) + else + if (mapl_am_i_root()) print*,'CA2G_instance_'//trim(comp_name)//'.rc does not exist! & Loading CA2G_instance_'//trim(comp_name(1:5))//'.rc instead' - call ESMF_ConfigLoadFile (cfg, 'CA2G_instance_'//trim(comp_name(1:5))//'.rc', __RC__) + call ESMF_ConfigLoadFile (cfg, 'CA2G_instance_'//trim(comp_name(1:5))//'.rc', __RC__) end if ! process generic config items @@ -375,6 +378,7 @@ subroutine Initialize (GC, import, export, clock, RC) integer, allocatable, dimension(:) :: channels_ integer :: nmom_ character(len=ESMF_MAXSTR) :: file_ + logical :: file_exists __Iam__('Initialize') @@ -427,14 +431,16 @@ subroutine Initialize (GC, import, export, clock, RC) self%diurnal_bb = .false. end if -! Load resource file +! Load resource file ! ------------------- cfg = ESMF_ConfigCreate (__RC__) - call ESMF_ConfigLoadFile (cfg, 'CA2G_instance_'//trim(comp_name)//'.rc', rc=status) - if (status /= 0) then - if (mapl_am_i_root()) print*,'CA2G_instance_'//trim(comp_name)//'.rc does not exist! & + inquire(file='CA2G_instance_'//trim(comp_name)//'.rc', exist=file_exists) + if (file_exists) then + call ESMF_ConfigLoadFile (cfg, 'CA2G_instance_'//trim(comp_name)//'.rc', __RC__) + else + if (mapl_am_i_root()) print*,'CA2G_instance_'//trim(comp_name)//'.rc does not exist! & Loading CA2G_instance_'//trim(comp_name(1:5))//'.rc instead' - call ESMF_ConfigLoadFile (cfg, 'CA2G_instance_'//trim(comp_name(1:5))//'.rc', __RC__) + call ESMF_ConfigLoadFile (cfg, 'CA2G_instance_'//trim(comp_name(1:5))//'.rc', __RC__) end if ! Call Generic Initialize diff --git a/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridCompMod.F90 index b442198b..246cc0f6 100644 --- a/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridCompMod.F90 @@ -117,6 +117,7 @@ subroutine SetServices (GC, RC) integer :: i real :: DEFVAL logical :: data_driven = .true. + logical :: file_exists integer :: num_threads __Iam__('SetServices') @@ -137,14 +138,15 @@ subroutine SetServices (GC, RC) num_threads = MAPL_get_num_threads() allocate(self%workspaces(0:num_threads-1), __STAT__) -! Load resource file +! Load resource file ! ------------------- cfg = ESMF_ConfigCreate (__RC__) - call ESMF_ConfigLoadFile (cfg, 'DU2G_instance_'//trim(COMP_NAME)//'.rc', rc=status) - - if (status /= 0) then - if (mapl_am_i_root()) print*,'DU2G_instance_'//trim(COMP_NAME)//'.rc does not exist! Loading DU2G_GridComp_DU.rc instead' - call ESMF_ConfigLoadFile (cfg, 'DU2G_instance_DU.rc', __RC__) + inquire(file='DU2G_instance_'//trim(COMP_NAME)//'.rc', exist=file_exists) + if (file_exists) then + call ESMF_ConfigLoadFile (cfg, 'DU2G_instance_'//trim(COMP_NAME)//'.rc', __RC__) + else + if (mapl_am_i_root()) print*,'DU2G_instance_'//trim(COMP_NAME)//'.rc does not exist! Loading DU2G_GridComp_DU.rc instead' + call ESMF_ConfigLoadFile (cfg, 'DU2G_instance_DU.rc', __RC__) end if ! process generic config items @@ -386,6 +388,7 @@ subroutine Initialize (GC, import, export, clock, RC) integer, allocatable, dimension(:) :: channels_ integer :: nmom_ character(len=ESMF_MAXSTR) :: file_ + logical :: file_exists __Iam__('Initialize') !**************************************************************************** @@ -431,14 +434,15 @@ subroutine Initialize (GC, import, export, clock, RC) call MAPL_GetResource(mapl, CDT, Label='GOCART_DT:', default=real(HDT), __RC__) self%CDT = CDT -! Load resource file +! Load resource file ! ------------------- cfg = ESMF_ConfigCreate (__RC__) - call ESMF_ConfigLoadFile (cfg, 'DU2G_instance_'//trim(COMP_NAME)//'.rc', RC=STATUS) - if (status /= 0) then - if (mapl_am_i_root()) print*,'DU2G_instance_'//trim(COMP_NAME)//'.rc does not exist! & - loading DU2G_instance_DU.rc instead' - call ESMF_ConfigLoadFile (cfg, 'DU2G_instance_DU.rc', __RC__) + inquire(file='DU2G_instance_'//trim(COMP_NAME)//'.rc', exist=file_exists) + if (file_exists) then + call ESMF_ConfigLoadFile (cfg, 'DU2G_instance_'//trim(COMP_NAME)//'.rc', __RC__) + else + if (mapl_am_i_root()) print*,'DU2G_instance_'//trim(COMP_NAME)//'.rc does not exist! Loading DU2G_GridComp_DU.rc instead' + call ESMF_ConfigLoadFile (cfg, 'DU2G_instance_DU.rc', __RC__) end if ! Call Generic Initialize diff --git a/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 index 0305c43c..1a6e7984 100644 --- a/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 @@ -101,6 +101,7 @@ subroutine SetServices ( GC, RC ) real :: DEFVAL logical :: data_driven=.true. + logical :: file_exists integer :: num_threads __Iam__('SetServices') @@ -121,11 +122,13 @@ subroutine SetServices ( GC, RC ) num_threads = MAPL_get_num_threads() allocate(self%workspaces(0:num_threads-1), __STAT__) -! Load resource file +! Load resource file ! ------------------- cfg = ESMF_ConfigCreate (__RC__) - call ESMF_ConfigLoadFile (cfg, 'NI2G_instance_'//trim(COMP_NAME)//'.rc', rc=status) - if (status /= 0) then + inquire(file='NI2G_instance_'//trim(COMP_NAME)//'.rc', exist=file_exists) + if (file_exists) then + call ESMF_ConfigLoadFile (cfg, 'NI2G_instance_'//trim(COMP_NAME)//'.rc', __RC__) + else if (mapl_am_i_root()) print*,'NI2G_instance_'//trim(COMP_NAME)//'.rc does not exist! Loading NI2G_instance_NI.rc instead' call ESMF_ConfigLoadFile (cfg, 'NI2G_instance_NI.rc', __RC__) end if @@ -323,6 +326,7 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) integer, allocatable, dimension(:) :: channels_ integer :: nmom_ character(len=ESMF_MAXSTR) :: file_ + logical :: file_exists __Iam__('Initialize') !**************************************************************************** @@ -358,14 +362,14 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) call MAPL_GetResource(mapl, CDT, Label='GOCART_DT:', default=real(HDT), __RC__) self%CDT = CDT -! Load resource file and get number of bins +! Load resource file and get number of bins ! ------------------------------------------- cfg = ESMF_ConfigCreate (__RC__) - call ESMF_ConfigLoadFile (cfg, 'NI2G_instance_'//trim(COMP_NAME)//'.rc', rc=status) - if (status /= 0) then - if (mapl_am_i_root()) print*,'NI2G_instance_'//trim(COMP_NAME)//'.rc does not exist! & - loading NI2G_instance_NI.rc instead' - call ESMF_ConfigLoadFile( cfg, 'NI2G_instance_NI.rc', __RC__) + if (file_exists) then + call ESMF_ConfigLoadFile (cfg, 'NI2G_instance_'//trim(COMP_NAME)//'.rc', __RC__) + else + if (mapl_am_i_root()) print*,'NI2G_instance_'//trim(COMP_NAME)//'.rc does not exist! Loading NI2G_instance_NI.rc instead' + call ESMF_ConfigLoadFile (cfg, 'NI2G_instance_NI.rc', __RC__) end if !self%first = .true. diff --git a/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridCompMod.F90 index 1dfbab03..c5e329a9 100644 --- a/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridCompMod.F90 @@ -96,6 +96,7 @@ subroutine SetServices ( GC, RC ) integer :: i real :: DEFVAL logical :: data_driven=.true. + logical :: file_exists __Iam__('SetServices') @@ -112,11 +113,13 @@ subroutine SetServices ( GC, RC ) allocate (self, __STAT__) wrap%ptr => self -! Load resource file +! Load resource file ! ------------------- cfg = ESMF_ConfigCreate (__RC__) - call ESMF_ConfigLoadFile (cfg, 'SS2G_instance_'//trim(COMP_NAME)//'.rc', rc=status) - if (status /= 0) then + inquire(file='SS2G_instance_'//trim(COMP_NAME)//'.rc', exist=file_exists) + if (file_exists) then + call ESMF_ConfigLoadFile (cfg, 'SS2G_instance_'//trim(COMP_NAME)//'.rc', __RC__) + else if (mapl_am_i_root()) print*,'SS2G_instance_'//trim(COMP_NAME)//'.rc does not exist! loading SS2G_instance_SS.rc instead' call ESMF_ConfigLoadFile (cfg, 'SS2G_instance_SS.rc', __RC__) end if @@ -343,6 +346,7 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) integer, allocatable, dimension(:) :: channels_ integer :: nmom_ character(len=ESMF_MAXSTR) :: file_ + logical :: file_exists __Iam__('Initialize') !**************************************************************************** @@ -380,14 +384,14 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) call MAPL_GetResource(mapl, CDT, Label='GOCART_DT:', default=real(HDT), __RC__) self%CDT = CDT -! Load resource file and get number of bins +! Load resource file and get number of bins ! ------------------------------------------- cfg = ESMF_ConfigCreate (__RC__) - call ESMF_ConfigLoadFile (cfg, 'SS2G_instance_'//trim(COMP_NAME)//'.rc', rc=status) - if (status /= 0) then - if (mapl_am_i_root()) print*,'SS2G_instance_'//trim(COMP_NAME)//'.rc does not exist! & - loading SS2G_instance_SS.rc instead' - call ESMF_ConfigLoadFile( cfg, 'SS2G_instance_SS.rc', __RC__) + if (file_exists) then + call ESMF_ConfigLoadFile (cfg, 'SS2G_instance_'//trim(COMP_NAME)//'.rc', __RC__) + else + if (mapl_am_i_root()) print*,'SS2G_instance_'//trim(COMP_NAME)//'.rc does not exist! loading SS2G_instance_SS.rc instead' + call ESMF_ConfigLoadFile (cfg, 'SS2G_instance_SS.rc', __RC__) end if ! Call Generic Initialize diff --git a/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridCompMod.F90 index 430cf08c..2a5b2ad1 100644 --- a/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridCompMod.F90 @@ -136,6 +136,7 @@ subroutine SetServices ( GC, RC ) integer :: i real :: DEFVAL logical :: data_driven=.true. + logical :: file_exists integer :: num_threads __Iam__('SetServices') @@ -156,11 +157,13 @@ subroutine SetServices ( GC, RC ) num_threads = MAPL_get_num_threads() allocate(self%workspaces(0:num_threads-1), __STAT__) -! Load resource file +! Load resource file ! ------------------- cfg = ESMF_ConfigCreate (__RC__) - call ESMF_ConfigLoadFile (cfg, 'SU2G_instance_'//trim(COMP_NAME)//'.rc', rc=status) - if (status /= 0) then + inquire(file='SU2G_instance_'//trim(COMP_NAME)//'.rc', exist=file_exists) + if (file_exists) then + call ESMF_ConfigLoadFile (cfg, 'SU2G_instance_'//trim(COMP_NAME)//'.rc', __RC__) + else if (mapl_am_i_root()) print*,'SU2G_instance_'//trim(COMP_NAME)//'.rc does not exist! loading SU2G_instance_SU.rc instead' call ESMF_ConfigLoadFile (cfg, 'SU2G_instance_SU.rc', __RC__) end if @@ -413,6 +416,7 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) integer, allocatable, dimension(:) :: channels_ integer :: nmom_ character(len=ESMF_MAXSTR) :: file_ + logical :: file_exists __Iam__('Initialize') !**************************************************************************** @@ -456,14 +460,15 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) self%diurnal_bb = .false. end if -! Load resource file and get number of bins +! Load resource file and get number of bins ! ------------------------------------------- cfg = ESMF_ConfigCreate (__RC__) - call ESMF_ConfigLoadFile (cfg, 'SU2G_instance_'//trim(COMP_NAME)//'.rc', rc=status) - if (status /= 0) then - if (mapl_am_i_root()) print*,'SU2G_instance_'//trim(COMP_NAME)//'.rc does not exist! & - loading SU2G_instance_SU.rc instead' - call ESMF_ConfigLoadFile( cfg, 'SU2G_instance_SU.rc', __RC__) + inquire(file='SU2G_instance_'//trim(COMP_NAME)//'.rc', exist=file_exists) + if (file_exists) then + call ESMF_ConfigLoadFile (cfg, 'SU2G_instance_'//trim(COMP_NAME)//'.rc', __RC__) + else + if (mapl_am_i_root()) print*,'SU2G_instance_'//trim(COMP_NAME)//'.rc does not exist! loading SU2G_instance_SU.rc instead' + call ESMF_ConfigLoadFile (cfg, 'SU2G_instance_SU.rc', __RC__) end if ! Call Generic Initialize From 1bbb1396b7d790d9c7d2f6b4fd8daa5d52333b9c Mon Sep 17 00:00:00 2001 From: William Putman Date: Sat, 1 Apr 2023 13:25:42 -0400 Subject: [PATCH 20/36] updted moist_import to reduce rst size, alt FV3 sponge and new FV3 diagnostics --- ESMF/GOCART_GridComp/GOCART_GridCompMod.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ESMF/GOCART_GridComp/GOCART_GridCompMod.F90 b/ESMF/GOCART_GridComp/GOCART_GridCompMod.F90 index 7d872e15..f24add8e 100644 --- a/ESMF/GOCART_GridComp/GOCART_GridCompMod.F90 +++ b/ESMF/GOCART_GridComp/GOCART_GridCompMod.F90 @@ -1162,7 +1162,7 @@ subroutine Run1_ ( gc, impChem, expChem, clock, rc ) ! ---------------------------------------------------------------------------------------- ! Assume that DT is always an integral number of seconds ! Add a fraction to both (and then truncate to int), to avoid cases like 900 /= 899.999999 - _ASSERT(abs(cdt-hdt) < 0.1, 'Implementation of GOCART_DT is problematic; set GOCART_DT = HEARTBEAT_DT') +!! _ASSERT(abs(cdt-hdt) < 0.1, 'Implementation of GOCART_DT is problematic; set GOCART_DT = HEARTBEAT_DT') allocate(r4ZTH(SIZE(LATS,1), SIZE(LATS,2)), __STAT__) allocate( ZTH(SIZE(LATS,1), SIZE(LATS,2)), __STAT__) From 5ad87149ae4a34ac65e5f3fe59dc9477c2967f6e Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Thu, 4 May 2023 11:16:20 -0400 Subject: [PATCH 21/36] Update changelog --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 262a25a2..a89a5d83 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +## [sdr_v2.1.2.5] - 2023-05-04 + +### Changed + +- Comment out ASSERT to allow GOCART_DT to not match the HEARTBEAT_DT + ## [sdr_v2.1.2.4] - 2023-04-18 ### Fixed From 730fd26ae72ea7a07d7082301fafce070093c2c2 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Sat, 6 May 2023 07:18:49 -0400 Subject: [PATCH 22/36] Fix missing inquires --- CHANGELOG.md | 6 ++++++ ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 | 1 + ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridCompMod.F90 | 1 + 3 files changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a89a5d83..d8421e77 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +## [sdr_v2.1.2.6] - 2023-05-06 + +### Fixed + +- Fixed missing `inquire()` checks + ## [sdr_v2.1.2.5] - 2023-05-04 ### Changed diff --git a/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 index 2e646df7..8b77bd68 100644 --- a/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 @@ -354,6 +354,7 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) ! Load resource file and get number of bins ! ------------------------------------------- cfg = ESMF_ConfigCreate (__RC__) + inquire(file='NI2G_instance_'//trim(COMP_NAME)//'.rc', exist=file_exists) if (file_exists) then call ESMF_ConfigLoadFile (cfg, 'NI2G_instance_'//trim(COMP_NAME)//'.rc', __RC__) else diff --git a/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridCompMod.F90 index 076788bb..a14effdb 100644 --- a/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridCompMod.F90 @@ -375,6 +375,7 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) ! Load resource file and get number of bins ! ------------------------------------------- cfg = ESMF_ConfigCreate (__RC__) + inquire(file='SS2G_instance_'//trim(COMP_NAME)//'.rc', exist=file_exists) if (file_exists) then call ESMF_ConfigLoadFile (cfg, 'SS2G_instance_'//trim(COMP_NAME)//'.rc', __RC__) else From b3055d9ef1b9c7072aea16409397b9da47de71e8 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Mon, 8 May 2023 09:21:31 -0400 Subject: [PATCH 23/36] Fix missing inquire --- .../NI2G_GridComp/NI2G_GridCompMod.F90 | 85 ++++++++++--------- .../SS2G_GridComp/SS2G_GridCompMod.F90 | 83 +++++++++--------- 2 files changed, 85 insertions(+), 83 deletions(-) diff --git a/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 index 1a6e7984..a5adfd5b 100644 --- a/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/NI2G_GridComp/NI2G_GridCompMod.F90 @@ -3,7 +3,7 @@ !============================================================================= !BOP -! !MODULE: NI2G_GridCompMod - GOCART Nitrate gridded component +! !MODULE: NI2G_GridCompMod - GOCART Nitrate gridded component ! !INTERFACE: module NI2G_GridCompMod @@ -11,7 +11,7 @@ module NI2G_GridCompMod ! !USES: use ESMF use MAPL - use GOCART2G_MieMod + use GOCART2G_MieMod use Chem_AeroGeneric use iso_c_binding, only: c_loc, c_f_pointer, c_ptr @@ -70,7 +70,7 @@ module NI2G_GridCompMod !============================================================================ !BOP -! !IROUTINE: SetServices +! !IROUTINE: SetServices ! !INTERFACE: subroutine SetServices ( GC, RC ) @@ -81,7 +81,7 @@ subroutine SetServices ( GC, RC ) ! DESCRIPTION: This version uses MAPL_GenericSetServices, which sets ! the Initialize and Finalize services to generic versions. It also -! allocates our instance of a generic state and puts it in the +! allocates our instance of a generic state and puts it in the ! gridded component (GC). Here we only set the two-stage run method ! and declare the data services. @@ -150,7 +150,7 @@ subroutine SetServices ( GC, RC ) DEFVAL = 0.0 -! Import and Internal states if data instance +! Import and Internal states if data instance ! ------------------------------------------- if (data_driven) then @@ -230,7 +230,7 @@ subroutine SetServices ( GC, RC ) end if ! (data_driven) -! Import, Export, Internal states for computational instance +! Import, Export, Internal states for computational instance ! ---------------------------------------------------------- if (.not. data_driven) then #include "NI2G_Export___.h" @@ -266,27 +266,27 @@ end subroutine SetServices !============================================================================ !BOP -! !IROUTINE: Initialize +! !IROUTINE: Initialize ! !INTERFACE: subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: IMPORT ! Import state type (ESMF_State), intent(inout) :: EXPORT ! Export state type (ESMF_Clock), intent(inout) :: CLOCK ! The clock integer, optional, intent( out) :: RC ! Error code -! !DESCRIPTION: This initializes the Nitrate gridded component. It primaryily -! fills GOCART's AERO states with its nitrate fields. +! !DESCRIPTION: This initializes the Nitrate gridded component. It primaryily +! fills GOCART's AERO states with its nitrate fields. -! !REVISION HISTORY: +! !REVISION HISTORY: ! 30June2020 E.Sherman First attempt at refactoring !EOP !============================================================================ -! !Locals +! !Locals character (len=ESMF_MAXSTR) :: COMP_NAME type (MAPL_MetaComp), pointer :: MAPL type (ESMF_Config) :: universal_cfg @@ -330,7 +330,7 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) __Iam__('Initialize') !**************************************************************************** -! Begin... +! Begin... ! Get the target components name and set-up traceback handle. ! ----------------------------------------------------------- @@ -338,10 +338,10 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) Iam = trim(COMP_NAME) // '::' //trim(Iam) ! Get my internal MAPL_Generic state -! ----------------------------------- +! ----------------------------------- call MAPL_GetObjectFromGC (GC, MAPL, __RC__) - -! Get my internal private state + +! Get my internal private state ! ----------------------------- call ESMF_UserCompGetInternalState(GC, 'NI2G_GridComp', wrap, STATUS) VERIFY_(STATUS) @@ -365,6 +365,7 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) ! Load resource file and get number of bins ! ------------------------------------------- cfg = ESMF_ConfigCreate (__RC__) + inquire(file='NI2G_instance_'//trim(COMP_NAME)//'.rc', exist=file_exists) if (file_exists) then call ESMF_ConfigLoadFile (cfg, 'NI2G_instance_'//trim(COMP_NAME)//'.rc', __RC__) else @@ -374,7 +375,7 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) !self%first = .true. -! Call Generic Initialize +! Call Generic Initialize ! ---------------------------------------- call MAPL_GenericInitialize (GC, import, export, clock, __RC__) @@ -495,7 +496,7 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) end if self%instance = instance - + ! Create Radiation Mie Table ! -------------------------- call ESMF_ConfigGetAttribute (cfg, file_, label="aerosol_radBands_optics_file:", __RC__ ) @@ -556,13 +557,13 @@ end subroutine Initialize !============================================================================ !BOP -! !IROUTINE: Run +! !IROUTINE: Run ! !INTERFACE: subroutine Run (GC, import, export, clock, rc) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: import ! Import state type (ESMF_State), intent(inout) :: export ! Export state type (ESMF_Clock), intent(inout) :: clock ! The clock @@ -583,7 +584,7 @@ subroutine Run (GC, import, export, clock, rc) __Iam__('Run') !***************************************************************************** -! Begin... +! Begin... ! Get my name and set-up traceback handle ! --------------------------------------- @@ -616,13 +617,13 @@ end subroutine Run !============================================================================ !BOP -! !IROUTINE: Run1 +! !IROUTINE: Run1 ! !INTERFACE: subroutine Run1 (GC, import, export, clock, RC) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: import ! Import state type (ESMF_State), intent(inout) :: export ! Export state type (ESMF_Clock), intent(inout) :: clock ! The clock @@ -645,7 +646,7 @@ subroutine Run1 (GC, import, export, clock, RC) __Iam__('Run1') !***************************************************************************** -! Begin... +! Begin... ! Get my name and set-up traceback handle ! --------------------------------------- @@ -705,14 +706,14 @@ end subroutine Run1 !============================================================================ !BOP -! !IROUTINE: Run2 +! !IROUTINE: Run2 ! !INTERFACE: subroutine Run2 (GC, import, export, clock, RC) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: import ! Import state type (ESMF_State), intent(inout) :: export ! Export state type (ESMF_Clock), intent(inout) :: clock ! The clock @@ -751,7 +752,7 @@ subroutine Run2 (GC, import, export, clock, RC) __Iam__('Run2') !***************************************************************************** -! Begin... +! Begin... ! Get my name and set-up traceback handle ! --------------------------------------- @@ -809,7 +810,7 @@ subroutine Run2 (GC, import, export, clock, RC) MAPL_PI, MAPL_RUNIV/1000., airdens, t, rh2, delp, DU, & SS, self%rmedDU*1.e-6, self%rmedSS*1.e-6, & self%fnumDU, self%fnumSS, self%km, self%klid, & - self%cdt, MAPL_GRAV, fMassHNO3, fMassNO3, NO3an1, NO3an2, & + self%cdt, MAPL_GRAV, fMassHNO3, fMassNO3, NO3an1, NO3an2, & NO3an3, HNO3CONC, HNO3SMASS, HNO3CMASS, __RC__) @@ -1012,8 +1013,8 @@ subroutine Run2 (GC, import, export, clock, RC) wavelengths_vertint=self%wavelengths_vertint*1.0e-9, aerosol=aerosol, & grav=MAPL_GRAV, tmpu=t, rhoa=airdens, & rh=rh20,u=u, v=v, delp=delp, ple=ple,tropp=tropp, & - extcoef = NIEXTCOEFRH20, scacoef=NISCACOEFRH20, __RC__) - + extcoef = NIEXTCOEFRH20, scacoef=NISCACOEFRH20, __RC__) + RH80(:,:,:) = 0.80 call Aero_Compute_Diags (mie=self%diag_Mie, km=self%km, klid=self%klid, nbegin=1, & nbins=3, & @@ -1021,11 +1022,11 @@ subroutine Run2 (GC, import, export, clock, RC) wavelengths_vertint=self%wavelengths_vertint*1.0e-9, aerosol=aerosol, & grav=MAPL_GRAV, tmpu=t, rhoa=airdens, & rh=rh80,u=u, v=v, delp=delp, ple=ple,tropp=tropp, & - extcoef = NIEXTCOEFRH80, scacoef=NISCACOEFRH80,__RC__) - - deallocate(RH20,RH80) + extcoef = NIEXTCOEFRH80, scacoef=NISCACOEFRH80,__RC__) + + deallocate(RH20,RH80) RETURN_(ESMF_SUCCESS) - + end subroutine Run2 @@ -1039,13 +1040,13 @@ subroutine Run_data (GC, IMPORT, EXPORT, INTERNAL, RC) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: IMPORT ! Import state type (ESMF_State), intent(inout) :: EXPORT ! Export state type (ESMF_State), intent(inout) :: INTERNAL ! Interal state integer, optional, intent( out) :: RC ! Error code: -! !DESCRIPTION: Updates pointers in Internal state with fields from ExtData. +! !DESCRIPTION: Updates pointers in Internal state with fields from ExtData. !EOP !============================================================================ @@ -1059,7 +1060,7 @@ subroutine Run_data (GC, IMPORT, EXPORT, INTERNAL, RC) __Iam__('Run_data') !***************************************************************************** -! Begin... +! Begin... ! Get my name and set-up traceback handle ! --------------------------------------- @@ -1123,7 +1124,7 @@ subroutine aerosol_optics(state, rc) __Iam__('NI2G::aerosol_optics') -! Begin... +! Begin... ! Mie Table instance/index ! ------------------------ @@ -1140,7 +1141,7 @@ subroutine aerosol_optics(state, rc) band = 0 call ESMF_AttributeGet(state, name='band_for_aerosol_optics', value=band, __RC__) -! Pressure at layer edges +! Pressure at layer edges ! ------------------------ call ESMF_AttributeGet(state, name='air_pressure_for_aerosol_optics', value=fld_name, __RC__) call MAPL_GetPointer(state, ple, trim(fld_name), __RC__) @@ -1244,7 +1245,7 @@ subroutine mie_(mie, nbins, band, q, rh, bext_s, bssa_s, basym_s, rc) bext_s = bext_s + bext ! extinction bssa_s = bssa_s + (bssa*bext) ! scattering extinction - basym_s = basym_s + gasym*(bssa*bext) ! asymetry parameter multiplied by scatering extiction + basym_s = basym_s + gasym*(bssa*bext) ! asymetry parameter multiplied by scatering extiction end do @@ -1287,7 +1288,7 @@ subroutine monochromatic_aerosol_optics(state, rc) __Iam__('NI2G:: monochromatic_aerosol_optics') -! Begin... +! Begin... ! Mie Table instance/index ! ------------------------ @@ -1304,7 +1305,7 @@ subroutine monochromatic_aerosol_optics(state, rc) call ESMF_AttributeGet(state, name='wavelength_for_aerosol_optics', value=wavelength, __RC__) -! Pressure at layer edges +! Pressure at layer edges ! ------------------------ call ESMF_AttributeGet(state, name='air_pressure_for_aerosol_optics', value=fld_name, __RC__) call MAPL_GetPointer(state, ple, trim(fld_name), __RC__) diff --git a/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridCompMod.F90 index c5e329a9..153978a8 100644 --- a/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/SS2G_GridComp/SS2G_GridCompMod.F90 @@ -3,7 +3,7 @@ !============================================================================= !BOP -! !MODULE: SS2G_GridCompMod - GOCART refactoring of the SS gridded component +! !MODULE: SS2G_GridCompMod - GOCART refactoring of the SS gridded component ! !INTERFACE: module SS2G_GridCompMod @@ -11,7 +11,7 @@ module SS2G_GridCompMod ! !USES: use ESMF use MAPL - use GOCART2G_MieMod + use GOCART2G_MieMod use Chem_AeroGeneric use iso_c_binding, only: c_loc, c_f_pointer, c_ptr @@ -45,7 +45,7 @@ module SS2G_GridCompMod real, allocatable :: rlow(:) ! particle effective radius lower bound [um] real, allocatable :: rup(:) ! particle effective radius upper bound [um] real, allocatable :: rmed(:) ! number median radius [um] - integer :: sstEmisFlag ! Choice of SST correction to emissions: + integer :: sstEmisFlag ! Choice of SST correction to emissions: ! 0 - none; 1 - Jaegle et al. 2011; 2 - GEOS5 logical :: hoppelFlag ! Apply the Hoppel correction to emissions (Fan and Toon, 2011) logical :: weibullFlag ! Apply the Weibull distribution to wind speed for emissions (Fan and Toon, 2011) @@ -64,7 +64,7 @@ module SS2G_GridCompMod !============================================================================ !BOP -! !IROUTINE: SetServices +! !IROUTINE: SetServices ! !INTERFACE: subroutine SetServices ( GC, RC ) @@ -75,7 +75,7 @@ subroutine SetServices ( GC, RC ) ! DESCRIPTION: This version uses MAPL_GenericSetServices, which sets ! the Initialize and Finalize services to generic versions. It also -! allocates our instance of a generic state and puts it in the +! allocates our instance of a generic state and puts it in the ! gridded component (GC). Here we only set the two-stage run method ! and declare the data services. @@ -154,7 +154,7 @@ subroutine SetServices ( GC, RC ) DEFVAL = 0.0 -! Import and Internal states if data instance +! Import and Internal states if data instance ! ------------------------------------------- if (data_driven) then @@ -219,7 +219,7 @@ subroutine SetServices ( GC, RC ) VLOCATION = MAPL_VLocationCenter, & RESTART = MAPL_RestartSkip, __RC__) -! ! wet deposition +! ! wet deposition call MAPL_AddImportSpec(GC, & SHORT_NAME = 'climSSWT'//trim(field_name), & LONG_NAME = 'Sea Salt wet removal (bin '//trim(field_name)//')', & @@ -249,7 +249,7 @@ subroutine SetServices ( GC, RC ) end if ! (data_driven) -! Import, Export, Internal states for computational instance +! Import, Export, Internal states for computational instance ! ---------------------------------------------------------- if (.not. data_driven) then #include "SS2G_Export___.h" @@ -295,27 +295,27 @@ end subroutine SetServices !============================================================================ !BOP -! !IROUTINE: Initialize +! !IROUTINE: Initialize ! !INTERFACE: subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: IMPORT ! Import state type (ESMF_State), intent(inout) :: EXPORT ! Export state type (ESMF_Clock), intent(inout) :: CLOCK ! The clock integer, optional, intent( out) :: RC ! Error code -! !DESCRIPTION: This initializes SS' Grid Component. It primaryily fills -! GOCART's AERO states with its sea salt fields. +! !DESCRIPTION: This initializes SS' Grid Component. It primaryily fills +! GOCART's AERO states with its sea salt fields. -! !REVISION HISTORY: +! !REVISION HISTORY: ! 24oct2019 E.Sherman First attempt at refactoring !EOP !============================================================================ -! !Locals +! !Locals character (len=ESMF_MAXSTR) :: COMP_NAME type (MAPL_MetaComp), pointer :: MAPL type (ESMF_Grid) :: grid @@ -332,7 +332,7 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) integer :: instance type (ESMF_Field) :: field, fld character (len=ESMF_MAXSTR) :: prefix, bin_index - real, pointer, dimension(:,:) :: lats + real, pointer, dimension(:,:) :: lats real, pointer, dimension(:,:) :: lons real :: CDT ! chemistry timestep (secs) integer :: HDT ! model timestep (secs) @@ -350,7 +350,7 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) __Iam__('Initialize') !**************************************************************************** -! Begin... +! Begin... ! Get the target components name and set-up traceback handle. ! ----------------------------------------------------------- @@ -387,6 +387,7 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) ! Load resource file and get number of bins ! ------------------------------------------- cfg = ESMF_ConfigCreate (__RC__) + inquire(file='SS2G_instance_'//trim(COMP_NAME)//'.rc', exist=file_exists) if (file_exists) then call ESMF_ConfigLoadFile (cfg, 'SS2G_instance_'//trim(COMP_NAME)//'.rc', __RC__) else @@ -394,7 +395,7 @@ subroutine Initialize (GC, IMPORT, EXPORT, CLOCK, RC) call ESMF_ConfigLoadFile (cfg, 'SS2G_instance_SS.rc', __RC__) end if -! Call Generic Initialize +! Call Generic Initialize ! ---------------------------------------- call MAPL_GenericInitialize (GC, import, export, clock, __RC__) @@ -536,13 +537,13 @@ end subroutine Initialize !============================================================================ !BOP -! !IROUTINE: Run +! !IROUTINE: Run ! !INTERFACE: subroutine Run (GC, import, export, clock, rc) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: import ! Import state type (ESMF_State), intent(inout) :: export ! Export state type (ESMF_Clock), intent(inout) :: clock ! The clock @@ -563,7 +564,7 @@ subroutine Run (GC, import, export, clock, rc) __Iam__('Run') !***************************************************************************** -! Begin... +! Begin... ! Get my name and set-up traceback handle ! --------------------------------------- @@ -596,13 +597,13 @@ end subroutine Run !============================================================================ !BOP -! !IROUTINE: Run1 +! !IROUTINE: Run1 ! !INTERFACE: subroutine Run1 (GC, import, export, clock, RC) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: import ! Import state type (ESMF_State), intent(inout) :: export ! Export state type (ESMF_Clock), intent(inout) :: clock ! The clock @@ -627,14 +628,14 @@ subroutine Run1 (GC, import, export, clock, RC) real(kind=DP), allocatable, dimension(:,:) :: gweibull - integer :: n + integer :: n #include "SS2G_DeclarePointer___.h" __Iam__('Run1') !***************************************************************************** -! Begin... +! Begin... ! Get my name and set-up traceback handle ! --------------------------------------- @@ -671,7 +672,7 @@ subroutine Run1 (GC, import, export, clock, RC) call jeagleSSTcorrection(self%sstEmisFlag, fsstemis, ts, __RC__) ! Apply a Weibull distribution to emissions wind speeds -! ----------------------------------------------------- +! ----------------------------------------------------- allocate(gweibull(ubound(u10m,1), ubound(u10m,2)), __STAT__ ) call weibullDistribution (gweibull, self%weibullFlag, u10m, v10m, __RC__) @@ -700,7 +701,7 @@ subroutine Run1 (GC, import, export, clock, RC) dz, ustar, self%rhFlag, airdens(:,:,self%km), t(:,:,self%km), & MAPL_GRAV, MAPL_KARMAN, fhoppel, __RC__) end if - + memissions = self%emission_scale * fgridefficiency * fsstemis * fhoppel * gweibull * memissions dqa = memissions * self%cdt * MAPL_GRAV / delp(:,:,self%km) SS(:,:,self%km,n) = SS(:,:,self%km,n) + dqa @@ -715,18 +716,18 @@ subroutine Run1 (GC, import, export, clock, RC) RETURN_(ESMF_SUCCESS) - end subroutine Run1 + end subroutine Run1 !============================================================================ !BOP -! !IROUTINE: Run2 +! !IROUTINE: Run2 ! !INTERFACE: subroutine Run2 (GC, import, export, clock, RC) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: import ! Import state type (ESMF_State), intent(inout) :: export ! Export state type (ESMF_Clock), intent(inout) :: clock ! The clock @@ -755,7 +756,7 @@ subroutine Run2 (GC, import, export, clock, RC) __Iam__('Run2') !***************************************************************************** -! Begin... +! Begin... ! Get my name and set-up traceback handle ! --------------------------------------- @@ -837,7 +838,7 @@ subroutine Run2 (GC, import, export, clock, RC) allocate(RH20(i1:i2,j1:j2,km), __STAT__) allocate(RH80(i1:i2,j1:j2,km), __STAT__) - RH20(:,:,:) = 0.20 + RH20(:,:,:) = 0.20 call Aero_Compute_Diags (mie=self%diag_Mie, km=self%km, klid=self%klid, nbegin=1, & nbins=self%nbins, rlow=self%rlow, & rup=self%rup, wavelengths_profile=self%wavelengths_profile*1.0e-9, & @@ -845,7 +846,7 @@ subroutine Run2 (GC, import, export, clock, RC) grav=MAPL_GRAV, tmpu=t, rhoa=airdens, & rh=rh20,u=u, v=v, delp=delp, ple=ple,tropp=tropp, & extcoef = SSEXTCOEFRH20, scacoef = SSSCACOEFRH20, NO3nFlag=.False., __RC__) - + RH80(:,:,:) = 0.80 call Aero_Compute_Diags (mie=self%diag_Mie, km=self%km, klid=self%klid, nbegin=1, & nbins=self%nbins, rlow=self%rlow, & @@ -855,7 +856,7 @@ subroutine Run2 (GC, import, export, clock, RC) rh=rh80,u=u, v=v, delp=delp, ple=ple,tropp=tropp, & extcoef = SSEXTCOEFRH80, scacoef = SSSCACOEFRH80, NO3nFlag=.False., __RC__) - deallocate(RH20,RH80) + deallocate(RH20,RH80) RETURN_(ESMF_SUCCESS) end subroutine Run2 @@ -870,13 +871,13 @@ subroutine Run_data (GC, IMPORT, EXPORT, INTERNAL, RC) ! !ARGUMENTS: - type (ESMF_GridComp), intent(inout) :: GC ! Gridded component + type (ESMF_GridComp), intent(inout) :: GC ! Gridded component type (ESMF_State), intent(inout) :: IMPORT ! Import state type (ESMF_State), intent(inout) :: EXPORT ! Export state type (ESMF_State), intent(inout) :: INTERNAL ! Interal state integer, optional, intent( out) :: RC ! Error code: -! !DESCRIPTION: Updates pointers in Internal state with fields from ExtData. +! !DESCRIPTION: Updates pointers in Internal state with fields from ExtData. !EOP !============================================================================ @@ -894,7 +895,7 @@ subroutine Run_data (GC, IMPORT, EXPORT, INTERNAL, RC) __Iam__('Run_data') !***************************************************************************** -! Begin... +! Begin... ! Get my name and set-up traceback handle ! --------------------------------------- @@ -954,7 +955,7 @@ subroutine aerosol_optics(state, rc) __Iam__('SS2G::aerosol_optics') -! Begin... +! Begin... ! Mie Table instance/index ! ------------------------ @@ -965,7 +966,7 @@ subroutine aerosol_optics(state, rc) band = 0 call ESMF_AttributeGet(state, name='band_for_aerosol_optics', value=band, __RC__) -! Pressure at layer edges +! Pressure at layer edges ! ------------------------ call ESMF_AttributeGet(state, name='air_pressure_for_aerosol_optics', value=fld_name, __RC__) call MAPL_GetPointer(state, ple, trim(fld_name), __RC__) @@ -1069,7 +1070,7 @@ subroutine mie_(mie, nbins, band, q, rh, bext_s, bssa_s, basym_s, rc) bext_s = bext_s + bext ! extinction bssa_s = bssa_s + (bssa*bext) ! scattering extinction - basym_s = basym_s + gasym*(bssa*bext) ! asymetry parameter multiplied by scatering extiction + basym_s = basym_s + gasym*(bssa*bext) ! asymetry parameter multiplied by scatering extiction end do RETURN_(ESMF_SUCCESS) @@ -1106,7 +1107,7 @@ subroutine monochromatic_aerosol_optics(state, rc) __Iam__('SS2G::monochromatic_aerosol_optics') -! Begin... +! Begin... ! Mie Table instance/index ! ------------------------ @@ -1117,7 +1118,7 @@ subroutine monochromatic_aerosol_optics(state, rc) wavelength = 0. call ESMF_AttributeGet (state, name='wavelength_for_aerosol_optics', value=wavelength, __RC__) -! Pressure at layer edges +! Pressure at layer edges ! ------------------------ call ESMF_AttributeGet (state, name='air_pressure_for_aerosol_optics', value=fld_name, __RC__) call MAPL_GetPointer (state, ple, trim(fld_name), __RC__) From c463e8799d2e8944cfeba951728e5d791b597416 Mon Sep 17 00:00:00 2001 From: "Arlindo M. da Silva" <33208803+amdasilva@users.noreply.github.com> Date: Fri, 12 May 2023 14:44:20 -0400 Subject: [PATCH 24/36] Update CHANGELOG.md This mod is kind of irrelevant because O3 is scheduled to be retired. --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a2d479c4..787cc088 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed +Fixed rc file in legacy O3 component. + ### Changed From a0f024c244806ca251b3220ff5be6f0d9fb75f00 Mon Sep 17 00:00:00 2001 From: "Arlindo M. da Silva" <33208803+amdasilva@users.noreply.github.com> Date: Fri, 12 May 2023 14:56:17 -0400 Subject: [PATCH 25/36] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a0a54bb..749e00cd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed Fixed rc file in legacy O3 component. +Fixes issue #223 where Global dimension was being used for allocating a local array ### Changed From 46cf8cf8ae61707f2ad103f2683c8bca43c6423d Mon Sep 17 00:00:00 2001 From: "Arlindo M. da Silva" <33208803+amdasilva@users.noreply.github.com> Date: Fri, 12 May 2023 15:02:40 -0400 Subject: [PATCH 26/36] Update CHANGELOG.md Comestic formatting --- CHANGELOG.md | 31 +++++++++---------------------- 1 file changed, 9 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 749e00cd..81daae20 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,30 +8,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] ### Fixed -- Made needed code changes in SS2G_GridCompMod.F90 and - CA2G_GridCompMod.F90 to permit data instances of of GOCART - aerosols to run -- Added missing brown carbon (BR) climatology hooks to yaml and rc - files for data driven instances -- Changed pointers to climatological deposition inputs in yaml and - rc files to "/dev/null" since the files pointed to didn't provide - them anyway, and in any case they are being used presently in the - model -- Changed pointers to climatological nitrate inputs in yaml and rc - files to "/dev/null" since pointing to FP files was inconsistent - with MERRA-2 files used for other species -- Ensured zero-diff in performance of yaml vs. rc files for - ExtData2G vs. ExtData1g for data driven aerosols -- To do: remove hooks to old (legacy) GOCART.data instances in CHEM - and setup scripts - +- Made needed code changes in SS2G_GridCompMod.F90 and CA2G_GridCompMod.F90 to permit data instances of of GOCART aerosols to run +- Added missing brown carbon (BR) climatology hooks to yaml and rc files for data driven instances +- Changed pointers to climatological deposition inputs in yaml and rc files to "/dev/null" since the files pointed to didn't provide them anyway, and in any case they are being used presently in the model +- Changed pointers to climatological nitrate inputs in yaml and rc files to "/dev/null" since pointing to FP files was inconsistent with MERRA-2 files used for other species +- Ensured zero-diff in performance of yaml vs. rc files for ExtData2G vs. ExtData1g for data driven aerosols +- To do: remove hooks to old (legacy) GOCART.data instances in CHEM and setup scripts +- Fixed rc file in legacy O3 component. +- Fixed issue #223 where Global dimension was being used for allocating a local array +- ### Added -### Fixed - -Fixed rc file in legacy O3 component. -Fixes issue #223 where Global dimension was being used for allocating a local array - ### Changed ## [2.1.4] - 2023-05-04 From 34105b30ec9644ab68ae4d6572726f9a290edaea Mon Sep 17 00:00:00 2001 From: "Arlindo M. da Silva" <33208803+amdasilva@users.noreply.github.com> Date: Fri, 12 May 2023 15:38:37 -0400 Subject: [PATCH 27/36] Update CHANGELOG.md Fake it --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 81daae20..ef08b7bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,7 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - To do: remove hooks to old (legacy) GOCART.data instances in CHEM and setup scripts - Fixed rc file in legacy O3 component. - Fixed issue #223 where Global dimension was being used for allocating a local array -- +- ### Added ### Changed From ee03caed75222464d02c44393da12f3b5eef2c7b Mon Sep 17 00:00:00 2001 From: "Arlindo M. da Silva" <33208803+amdasilva@users.noreply.github.com> Date: Fri, 12 May 2023 15:41:10 -0400 Subject: [PATCH 28/36] Update CHANGELOG.md with Ben's 3 hour fixes --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ef08b7bd..aee1bf9d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,7 +16,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - To do: remove hooks to old (legacy) GOCART.data instances in CHEM and setup scripts - Fixed rc file in legacy O3 component. - Fixed issue #223 where Global dimension was being used for allocating a local array -- +- This fixes a long standing issue that one can not start and stop the model in anything less than 3 hour increments to test start/stop regression because of GOCART. +- ### Added ### Changed From 4edfff4171e134fc32073f5b715c941e04a1afda Mon Sep 17 00:00:00 2001 From: Scott Rabenhorst <53346946+sdrabenh@users.noreply.github.com> Date: Fri, 12 May 2023 16:31:13 -0400 Subject: [PATCH 29/36] Update CA2G_GridCompMod.F90 --- ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridCompMod.F90 | 5 ----- 1 file changed, 5 deletions(-) diff --git a/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridCompMod.F90 index a3d7ad89..9e66db2b 100644 --- a/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/CA2G_GridComp/CA2G_GridCompMod.F90 @@ -1367,12 +1367,7 @@ subroutine monochromatic_aerosol_optics(state, rc) ! -------------------- call ESMF_AttributeGet(state, name='wavelength_for_aerosol_optics', value=wavelength, __RC__) -<<<<<<< HEAD ! Pressure at layer edges -======= - -! Pressure at layer edges ->>>>>>> sdr_v2.1.2.6 ! ------------------------ call ESMF_AttributeGet(state, name='air_pressure_for_aerosol_optics', value=fld_name, __RC__) call MAPL_GetPointer(state, ple, trim(fld_name), __RC__) From 1497e79490c225106e4ed9f2ab0d019bc120c4a2 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Fri, 12 May 2023 18:06:42 -0400 Subject: [PATCH 30/36] Update Changelog --- CHANGELOG.md | 66 +++++++++++----------------------------------------- 1 file changed, 14 insertions(+), 52 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3e4b7254..4400b18d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,59 +8,29 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] ### Fixed -- Made needed code changes in SS2G_GridCompMod.F90 and CA2G_GridCompMod.F90 to permit data instances of of GOCART aerosols to run + +- Made needed code changes in `SS2G_GridCompMod.F90` and `CA2G_GridCompMod.F90` to permit data instances of of GOCART aerosols to run - Added missing brown carbon (BR) climatology hooks to yaml and rc files for data driven instances -- Changed pointers to climatological deposition inputs in yaml and rc files to "/dev/null" since the files pointed to didn't provide them anyway, and in any case they are being used presently in the model -- Changed pointers to climatological nitrate inputs in yaml and rc files to "/dev/null" since pointing to FP files was inconsistent with MERRA-2 files used for other species +- Changed pointers to climatological deposition inputs in yaml and rc files to `/dev/null` since the files pointed to didn't provide them anyway, and in any case they are being used presently in the model +- Changed pointers to climatological nitrate inputs in yaml and rc files to `/dev/null` since pointing to FP files was inconsistent with MERRA-2 files used for other species - Ensured zero-diff in performance of yaml vs. rc files for ExtData2G vs. ExtData1g for data driven aerosols - To do: remove hooks to old (legacy) GOCART.data instances in CHEM and setup scripts - Fixed rc file in legacy O3 component. -- Fixed issue #223 where Global dimension was being used for allocating a local array -- This fixes a long standing issue that one can not start and stop the model in anything less than 3 hour increments to test start/stop regression because of GOCART. -- -### Added - -### Changed - -## [sdr_v2.1.2.6] - 2023-05-06 - -### Fixed - -- Fixed missing `inquire()` checks - -## [sdr_v2.1.2.5] - 2023-05-04 - -### Changed - -- Comment out ASSERT to allow GOCART_DT to not match the HEARTBEAT_DT - -## [sdr_v2.1.2.4] - 2023-04-18 - -### Fixed - -- Fixed config file loads in GOCART2G to use inquire to avoid ESMF logging error - -## [sdr_v2.1.2.3] - 2023-04-07 +- Fixed issue #223 where Global dimension was being used for allocating a local array +- Fix a long standing issue that one can not start and stop the model in anything less than 3 hour increments to test start/stop regression because of GOCART. -### Changed - -- Change global dims to local dims in G2G components (memory saving) - -## [sdr_v2.1.2.2] - 2023-03-28 +### Added ### Changed -- Merged in changes from `feature/pcolarco/GOCART2G_data_instance` to enable GOCART2G Data Driven +- Comment out ASSERT to allow `GOCART_DT` to not match the `HEARTBEAT_DT` - Single-moment moist changes from Donifan - -## [sdr_v2.1.2.1] - 2023-03-01 - -### Changed - - Change names of microphysics schemes to match refactored physics -- Set SS_SCALE default to 0.0 +- Set `SS_SCALE` default to 0.0 +- Updates in CA2G for OpenMP +- Updates for CI -## [2.1.4] - 2023-05-04 +## [2.1.4] - 2023-05-12 ### Fixed @@ -70,10 +40,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - - Added `*` to CA State specs file to allow for ACG to substitute in the long name -- Changes were made so GOCART2G and its children can be run with component level -OpenMP threading. The key change is to create the data structure ThreadWorkspace +- Changes were made so GOCART2G and its children can be run with component level +OpenMP threading. The key change is to create the data structure ThreadWorkspace to hold variables that should be private to each thread to avoid race conditions. Additionally spatially distributed arrays that are not in any of the ESMF states were added to the ESMF internal state so they could be properly handled when @@ -83,8 +52,6 @@ option so they are not written to restart. - Aerosol single scattering backscatter coefficient for each instances and total at wavelengths_profile - Total (molecular + aerosols) attenuated backscatter coefficient from TOA and sfc at 532nm -### Fixed - ### Changed - Moved to use GitHub Action for label enforcement @@ -103,11 +70,6 @@ option so they are not written to restart. - Extinction/Scattering profile exports at model RH at wavelengths_profile - Extinction/Scattering profile exports with RH=20% and RH=80% at wavelengths_profile -### Fixed - -### Changed - - ## [2.1.1] - 2022-09-16 ### Fixed From d2165bee8a71d9c3753bddd161781e01aab66edd Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Fri, 12 May 2023 18:32:25 -0400 Subject: [PATCH 31/36] Fix bad merge --- ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridCompMod.F90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridCompMod.F90 index 2d4bb1bf..6c4abc37 100644 --- a/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/SU2G_GridComp/SU2G_GridCompMod.F90 @@ -1041,7 +1041,7 @@ subroutine Run2 (GC, import, export, clock, RC) !workspace%firstRun = .false. !end if - xh2o2 = self%h2o2_init + xh2o2 = h2o2_init call SulfateUpdateOxidants (nymd, nhms, LONS, LATS, airdens, self%km, self%cdt, & workspace%nymd_oxidants, MAPL_UNDEF, real(MAPL_RADIANS_TO_DEGREES), & @@ -1495,4 +1495,4 @@ function daily_alarm(clock,freq,rc) result(is_ringing) _RETURN(_SUCCESS) end function -end module SU2G_GridCompMod +end module SU2G_GridCompMod From 5defba545995d64e513ce7108049a6530cdcb5bd Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Fri, 12 May 2023 18:37:28 -0400 Subject: [PATCH 32/36] Update components to match v11 --- CHANGELOG.md | 2 ++ components.yaml | 11 ++++++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4400b18d..93d20f0c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Set `SS_SCALE` default to 0.0 - Updates in CA2G for OpenMP - Updates for CI + - Update BCs version + - Update components to match GEOSgcm v11.0.0 ## [2.1.4] - 2023-05-12 diff --git a/components.yaml b/components.yaml index 715bcea1..81aa3128 100644 --- a/components.yaml +++ b/components.yaml @@ -5,13 +5,13 @@ GOCART: env: local: ./env@ remote: ../ESMA_env.git - tag: v4.8.0 + tag: v4.9.1 develop: main cmake: local: ./cmake@ remote: ../ESMA_cmake.git - tag: v3.24.0 + tag: v3.28.0 develop: develop ecbuild: @@ -22,17 +22,18 @@ ecbuild: HEMCO: local: ./ESMF/HEMCO_GridComp@ remote: ../HEMCO.git - branch: geos/v2.2.3 + tag: geos/v2.2.3 + develop: geos/develop GMAO_Shared: local: ./ESMF/Shared/GMAO_Shared@ remote: ../GMAO_Shared.git - tag: v1.6.3 + tag: v1.9.0 sparse: ./config/GMAO_Shared.sparse develop: main MAPL: local: ./ESMF/Shared/MAPL@ remote: ../MAPL.git - tag: v2.34.0 + tag: v2.38.1 develop: develop From a932e8cc25f3459c1613f518d637a565234a2670 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Mon, 15 May 2023 15:40:22 -0400 Subject: [PATCH 33/36] Fix bug with totscacoefrh80 and ocscacoefrh80 --- .../GOCART2G_GridCompMod.F90 | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/ESMF/GOCART2G_GridComp/GOCART2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/GOCART2G_GridCompMod.F90 index c0d4ffd3..58fce249 100644 --- a/ESMF/GOCART2G_GridComp/GOCART2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/GOCART2G_GridCompMod.F90 @@ -640,7 +640,7 @@ subroutine Run2 (GC, import, export, clock, RC) real, allocatable :: tau_mol(:,:), tau_aer(:,:) real :: c1, c2, c3 real :: nifactor - real, parameter :: pi = 3.141529265 + real, parameter :: pi = 3.141529265 integer :: ind550, ind532 integer :: i1, i2, j1, j2, km, k,kk @@ -722,7 +722,7 @@ subroutine Run2 (GC, import, export, clock, RC) if (ind550 == 0) then !$omp critical (G2G_1) - print*,trim(Iam),' : 550nm wavelengths is not present in GOCART2G_GridComp.rc.',& + print*,trim(Iam),' : 550nm wavelengths is not present in GOCART2G_GridComp.rc.',& ' Cannot produce TOTANGSTR variable without 550nm wavelength.' !$omp end critical (G2G_1) VERIFY_(100) @@ -1065,7 +1065,7 @@ subroutine Run2 (GC, import, export, clock, RC) if(associated(totextcoefrh80) .and. associated(ocextcoefrh80)) totextcoefrh80(:,:,:,w) = totextcoefrh80(:,:,:,w)+ocextcoefrh80(:,:,:,w) if(associated(totscacoef) .and. associated(ocscacoef)) totscacoef(:,:,:,w) = totscacoef(:,:,:,w)+ocscacoef(:,:,:,w) if(associated(totscacoefrh20) .and. associated(ocscacoefrh20)) totscacoefrh20(:,:,:,w) = totscacoefrh20(:,:,:,w)+ocscacoefrh20(:,:,:,w) - if(associated(totscacoefrh20) .and. associated(ocscacoefrh20)) totscacoefrh20(:,:,:,w) = totscacoefrh20(:,:,:,w)+ocscacoefrh20(:,:,:,w) + if(associated(totscacoefrh80) .and. associated(ocscacoefrh80)) totscacoefrh80(:,:,:,w) = totscacoefrh80(:,:,:,w)+ocscacoefrh80(:,:,:,w) if(associated(totbckcoef) .and. associated(ocbckcoef)) totbckcoef(:,:,:,w) = totbckcoef(:,:,:,w)+ocbckcoef(:,:,:,w) end do @@ -1162,11 +1162,11 @@ subroutine Run2 (GC, import, export, clock, RC) VERIFY_(100) end if - ! Pressure at layer edges (ple shape (im,jm, km+1) on the edge + ! Pressure at layer edges (ple shape (im,jm, km+1) on the edge i1 = lbound(ple, 1); i2 = ubound(ple, 1) j1 = lbound(ple, 2); j2 = ubound(ple, 2) - km = ubound(ple, 3) ! km =72 index starts at 0 + km = ubound(ple, 3) ! km =72 index starts at 0 ! Pressure for each layer allocate(P(i1:i2,j1:j2,km), __STAT__) do k = 1, km @@ -1180,7 +1180,7 @@ subroutine Run2 (GC, import, export, clock, RC) ! tau mol for each layer allocate(tau_mol_layer(i1:i2,j1:j2,km), delz(i1:i2,j1:j2,km),__STAT__) delz = delp / (MAPL_GRAV * airdens) - tau_mol_layer = backscat_mol * 8.* pi /3. * delz + tau_mol_layer = backscat_mol * 8.* pi /3. * delz ! tau aer for each layer allocate(tau_aer_layer(i1:i2,j1:j2,km), __STAT__) @@ -1188,25 +1188,25 @@ subroutine Run2 (GC, import, export, clock, RC) allocate(tau_aer(i1:i2,j1:j2), __STAT__) allocate(tau_mol(i1:i2,j1:j2), __STAT__) - - ! TOTAL ABCK TOA - ! top layer + + ! TOTAL ABCK TOA + ! top layer totabcktoa(:,:,1) = (totbckcoef(:,:,1,ind532) + backscat_mol(:,:,1)) * exp(-tau_aer_layer(:,:,1)) * exp(-tau_mol_layer(:,:,1)) ! layer 2 to the layer at the surface(km) do k = 2, km tau_aer = 0. tau_mol = 0. ! for each layer - do kk = 1, k - tau_aer = tau_aer + tau_aer_layer(:,:,kk) - tau_mol = tau_mol + tau_mol_layer(:,:,kk) + do kk = 1, k + tau_aer = tau_aer + tau_aer_layer(:,:,kk) + tau_mol = tau_mol + tau_mol_layer(:,:,kk) enddo tau_aer = tau_aer + 0.5 * tau_aer_layer(:,:,k) tau_mol = tau_mol + 0.5 * tau_mol_layer(:,:,k) totabcktoa(:,:,k) = (totbckcoef(:,:,k,ind532) + backscat_mol(:,:,k)) * exp(-tau_aer) * exp(-tau_mol) enddo - - ! TOTAL ABCK SFC - ! bottom layer + + ! TOTAL ABCK SFC + ! bottom layer totabcksfc(:,:,km) = (totbckcoef(:,:,km,ind532) + backscat_mol(:,:,km)) * exp(-tau_aer_layer(:,:,km)) * exp(-tau_mol_layer(:,:,km)) ! layer 2nd from the surface to the top of the atmoshere (km) do k = km-1, 1, -1 From 329a2afb01e38a1bc87f56caa62fba90565848f3 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Mon, 15 May 2023 15:46:34 -0400 Subject: [PATCH 34/36] Fix for totscacoefrh80 and OC --- ESMF/GOCART2G_GridComp/GOCART2G_GridCompMod.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ESMF/GOCART2G_GridComp/GOCART2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/GOCART2G_GridCompMod.F90 index 79baa616..7b5d9790 100644 --- a/ESMF/GOCART2G_GridComp/GOCART2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/GOCART2G_GridCompMod.F90 @@ -1074,7 +1074,7 @@ subroutine Run2 (GC, import, export, clock, RC) if(associated(totextcoefrh80) .and. associated(ocextcoefrh80)) totextcoefrh80(:,:,:,w) = totextcoefrh80(:,:,:,w)+ocextcoefrh80(:,:,:,w) if(associated(totscacoef) .and. associated(ocscacoef)) totscacoef(:,:,:,w) = totscacoef(:,:,:,w)+ocscacoef(:,:,:,w) if(associated(totscacoefrh20) .and. associated(ocscacoefrh20)) totscacoefrh20(:,:,:,w) = totscacoefrh20(:,:,:,w)+ocscacoefrh20(:,:,:,w) - if(associated(totscacoefrh20) .and. associated(ocscacoefrh20)) totscacoefrh20(:,:,:,w) = totscacoefrh20(:,:,:,w)+ocscacoefrh20(:,:,:,w) + if(associated(totscacoefrh80) .and. associated(ocscacoefrh80)) totscacoefrh80(:,:,:,w) = totscacoefrh80(:,:,:,w)+ocscacoefrh80(:,:,:,w) if(associated(totbckcoef) .and. associated(ocbckcoef)) totbckcoef(:,:,:,w) = totbckcoef(:,:,:,w)+ocbckcoef(:,:,:,w) end do From 2eb4a388547f513eefb00174ec78e22a051076fe Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Mon, 15 May 2023 16:08:50 -0400 Subject: [PATCH 35/36] Update changelog --- CHANGELOG.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index aee1bf9d..60c43c02 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,9 +15,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Ensured zero-diff in performance of yaml vs. rc files for ExtData2G vs. ExtData1g for data driven aerosols - To do: remove hooks to old (legacy) GOCART.data instances in CHEM and setup scripts - Fixed rc file in legacy O3 component. -- Fixed issue #223 where Global dimension was being used for allocating a local array +- Fixed issue #223 where Global dimension was being used for allocating a local array - This fixes a long standing issue that one can not start and stop the model in anything less than 3 hour increments to test start/stop regression because of GOCART. -- +- Fix issue with scattering coefficient calculation with oc + ### Added ### Changed @@ -34,8 +35,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Added `*` to CA State specs file to allow for ACG to substitute in the long name -- Changes were made so GOCART2G and its children can be run with component level -OpenMP threading. The key change is to create the data structure ThreadWorkspace +- Changes were made so GOCART2G and its children can be run with component level +OpenMP threading. The key change is to create the data structure ThreadWorkspace to hold variables that should be private to each thread to avoid race conditions. Additionally spatially distributed arrays that are not in any of the ESMF states were added to the ESMF internal state so they could be properly handled when From ab6306f61d5d8a485d6c113c9346cdc5c0675a45 Mon Sep 17 00:00:00 2001 From: "Arlindo M. da Silva" <33208803+amdasilva@users.noreply.github.com> Date: Thu, 18 May 2023 12:00:09 -0400 Subject: [PATCH 36/36] Update CHANGELOG.md --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 34352324..73c57d12 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed +### Added + +### Changed + +## [v2.2.0] - 2023-05-18 + +### Fixed + - Made needed code changes in `SS2G_GridCompMod.F90` and `CA2G_GridCompMod.F90` to permit data instances of of GOCART aerosols to run - Added missing brown carbon (BR) climatology hooks to yaml and rc files for data driven instances - Changed pointers to climatological deposition inputs in yaml and rc files to `/dev/null` since the files pointed to didn't provide them anyway, and in any case they are being used presently in the model