From 2022e4db3a8015a906b4bdd75c7373350ff691ff Mon Sep 17 00:00:00 2001 From: William Putman Date: Wed, 1 Mar 2023 12:53:40 -0500 Subject: [PATCH 01/15] 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 c51357e5a2a57576ddc601522758d397d0fb25c1 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Tue, 28 Mar 2023 12:57:58 -0400 Subject: [PATCH 02/15] 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 03/15] 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 aa05ff6d93b152fefbbac9e1263d9301a1129944 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Thu, 6 Apr 2023 11:07:18 -0400 Subject: [PATCH 04/15] 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 05/15] 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 06/15] 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 07/15] 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 1bbb1396b7d790d9c7d2f6b4fd8daa5d52333b9c Mon Sep 17 00:00:00 2001 From: William Putman Date: Sat, 1 Apr 2023 13:25:42 -0400 Subject: [PATCH 08/15] 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 09/15] 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 10/15] 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 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 11/15] 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 12/15] 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 13/15] 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 14/15] 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 15/15] 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