From 72701ab45165ae67a1c4b4d855e763bf5674dbd2 Mon Sep 17 00:00:00 2001 From: GeorgeGayno-NOAA <52789452+GeorgeGayno-NOAA@users.noreply.github.com> Date: Tue, 24 Oct 2023 12:42:55 -0400 Subject: [PATCH 1/3] Release Version 1.11.0 (#863) Fixes #862. --- VERSION | 2 +- docs/main.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 81c871de4..1cac385c6 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.10.0 +1.11.0 diff --git a/docs/main.md b/docs/main.md index 924055e72..80e6b5fdf 100644 --- a/docs/main.md +++ b/docs/main.md @@ -9,6 +9,7 @@ https://github.com/ufs-community/UFS_UTILS. ## Documentation for Previous Versions of UFS_UTILS +* [UFS_UTILS Version 1.11.0](ver-1.11.0/index.html) * [UFS_UTILS Version 1.10.0](ver-1.10.0/index.html) * [UFS_UTILS Version 1.9.0](ver-1.9.0/index.html) * [UFS_UTILS Version 1.8.0](ver-1.8.0/index.html) From 41f7ca923ec290a78fd525eecd524927ab16f255 Mon Sep 17 00:00:00 2001 From: Denise Worthen Date: Fri, 27 Oct 2023 08:36:20 -0400 Subject: [PATCH 2/3] cpld_gridgen: Fix weights generation for tripole->rectilinear output of ocean and ice (#858) When generating rectilinear destination grids, set lat_typ=cap in order to obtain a grid from 90S to 90N. Also, return an optional RouteHandle (un-used) when generating the ESMF Weights. This creates a weights file which properly generates values along the tripole seam. Fixes #857 Fixes #864 --- .../RegressionTests_hera.intel.log | 83 +++++++++- .../RegressionTests_jet.intel.log | 83 +++++++++- .../RegressionTests_orion.intel.log | 83 +++++++++- .../RegressionTests_wcoss2.intel.log | 143 ++++++++++++++++++ reg_tests/cpld_gridgen/rt.conf | 1 + reg_tests/cpld_gridgen/rt.sh | 11 +- sorc/cpld_gridgen.fd/charstrings.F90 | 2 +- sorc/cpld_gridgen.fd/gen_fixgrid.F90 | 32 +++- sorc/cpld_gridgen.fd/postwgts.F90 | 28 ++-- ush/cpld_gridgen.sh | 33 ++-- 10 files changed, 431 insertions(+), 68 deletions(-) create mode 100644 reg_tests/cpld_gridgen/RegressionTests_wcoss2.intel.log diff --git a/reg_tests/cpld_gridgen/RegressionTests_hera.intel.log b/reg_tests/cpld_gridgen/RegressionTests_hera.intel.log index 6e9632d61..1a9a8954d 100644 --- a/reg_tests/cpld_gridgen/RegressionTests_hera.intel.log +++ b/reg_tests/cpld_gridgen/RegressionTests_hera.intel.log @@ -1,8 +1,8 @@ -Sat Apr 23 17:52:41 UTC 2022 +Thu Oct 26 17:23:32 UTC 2023 Start Regression test -Working dir = /scratch1/NCEPDEV/stmp4/Minsuk.Ji/CPLD_GRIDGEN/rt_142841/025 -Baseline dir = /scratch1/NCEPDEV/nems/role.ufsutils/ufs_utils/reg_tests/cpld_gridgen/baseline_data/025 +Working dir = /scratch1/NCEPDEV/stmp4/Denise.Worthen/CPLD_GRIDGEN/rt_198243/025 +Baseline dir = /scratch1/NCEPDEV/nems/role.ufsutils/ufs_utils/reg_tests/cpld_gridgen/baseline_data/025.new Checking test 025 results .... Comparing Bu.mx025_SCRIP.nc........OK @@ -20,11 +20,26 @@ Comparing Cv.mx025_SCRIP.nc........OK Comparing grid_cice_NEMS_mx025.nc........OK Comparing kmtu_cice_NEMS_mx025.nc........OK Comparing mesh.mx025.nc........OK +Comparing rect.0p25_SCRIP.nc........OK +Comparing rect.0p5_SCRIP.nc........OK +Comparing rect.1p0_SCRIP.nc........OK +Comparing rect.5p0_SCRIP.nc........OK +Comparing tripole.mx025.Bu.to.Ct.bilinear.nc........OK +Comparing tripole.mx025.Ct.to.rect.0p25.bilinear.nc........OK +Comparing tripole.mx025.Ct.to.rect.0p25.conserve.nc........OK +Comparing tripole.mx025.Ct.to.rect.0p5.bilinear.nc........OK +Comparing tripole.mx025.Ct.to.rect.0p5.conserve.nc........OK +Comparing tripole.mx025.Ct.to.rect.1p0.bilinear.nc........OK +Comparing tripole.mx025.Ct.to.rect.1p0.conserve.nc........OK +Comparing tripole.mx025.Ct.to.rect.5p0.bilinear.nc........OK +Comparing tripole.mx025.Ct.to.rect.5p0.conserve.nc........OK +Comparing tripole.mx025.Cu.to.Ct.bilinear.nc........OK +Comparing tripole.mx025.Cv.to.Ct.bilinear.nc........OK Comparing tripole.mx025.nc........OK -Working dir = /scratch1/NCEPDEV/stmp4/Minsuk.Ji/CPLD_GRIDGEN/rt_142841/050 -Baseline dir = /scratch1/NCEPDEV/nems/role.ufsutils/ufs_utils/reg_tests/cpld_gridgen/baseline_data/050 +Working dir = /scratch1/NCEPDEV/stmp4/Denise.Worthen/CPLD_GRIDGEN/rt_198243/050 +Baseline dir = /scratch1/NCEPDEV/nems/role.ufsutils/ufs_utils/reg_tests/cpld_gridgen/baseline_data/050.new Checking test 050 results .... Comparing Bu.mx050_SCRIP.nc........OK @@ -43,12 +58,24 @@ Comparing Cv.mx050_SCRIP.nc........OK Comparing grid_cice_NEMS_mx050.nc........OK Comparing kmtu_cice_NEMS_mx050.nc........OK Comparing mesh.mx050.nc........OK +Comparing rect.0p5_SCRIP.nc........OK +Comparing rect.1p0_SCRIP.nc........OK +Comparing rect.5p0_SCRIP.nc........OK Comparing tripole.mx025.Ct.to.mx050.Ct.neareststod.nc........OK +Comparing tripole.mx050.Bu.to.Ct.bilinear.nc........OK +Comparing tripole.mx050.Ct.to.rect.0p5.bilinear.nc........OK +Comparing tripole.mx050.Ct.to.rect.0p5.conserve.nc........OK +Comparing tripole.mx050.Ct.to.rect.1p0.bilinear.nc........OK +Comparing tripole.mx050.Ct.to.rect.1p0.conserve.nc........OK +Comparing tripole.mx050.Ct.to.rect.5p0.bilinear.nc........OK +Comparing tripole.mx050.Ct.to.rect.5p0.conserve.nc........OK +Comparing tripole.mx050.Cu.to.Ct.bilinear.nc........OK +Comparing tripole.mx050.Cv.to.Ct.bilinear.nc........OK Comparing tripole.mx050.nc........OK -Working dir = /scratch1/NCEPDEV/stmp4/Minsuk.Ji/CPLD_GRIDGEN/rt_142841/100 -Baseline dir = /scratch1/NCEPDEV/nems/role.ufsutils/ufs_utils/reg_tests/cpld_gridgen/baseline_data/100 +Working dir = /scratch1/NCEPDEV/stmp4/Denise.Worthen/CPLD_GRIDGEN/rt_198243/100 +Baseline dir = /scratch1/NCEPDEV/nems/role.ufsutils/ufs_utils/reg_tests/cpld_gridgen/baseline_data/100.new Checking test 100 results .... Comparing Bu.mx100_SCRIP.nc........OK @@ -67,10 +94,50 @@ Comparing Cv.mx100_SCRIP.nc........OK Comparing grid_cice_NEMS_mx100.nc........OK Comparing kmtu_cice_NEMS_mx100.nc........OK Comparing mesh.mx100.nc........OK +Comparing rect.1p0_SCRIP.nc........OK +Comparing rect.5p0_SCRIP.nc........OK Comparing tripole.mx025.Ct.to.mx100.Ct.neareststod.nc........OK +Comparing tripole.mx100.Bu.to.Ct.bilinear.nc........OK +Comparing tripole.mx100.Ct.to.rect.1p0.bilinear.nc........OK +Comparing tripole.mx100.Ct.to.rect.1p0.conserve.nc........OK +Comparing tripole.mx100.Ct.to.rect.5p0.bilinear.nc........OK +Comparing tripole.mx100.Ct.to.rect.5p0.conserve.nc........OK +Comparing tripole.mx100.Cu.to.Ct.bilinear.nc........OK +Comparing tripole.mx100.Cv.to.Ct.bilinear.nc........OK Comparing tripole.mx100.nc........OK Comparing ufs.topo_edits_011818.nc........OK +Working dir = /scratch1/NCEPDEV/stmp4/Denise.Worthen/CPLD_GRIDGEN/rt_198243/500 +Baseline dir = /scratch1/NCEPDEV/nems/role.ufsutils/ufs_utils/reg_tests/cpld_gridgen/baseline_data/500.new + +Checking test 500 results .... +Comparing Bu.mx500_SCRIP.nc........OK +Comparing C48.mx500.tile1.nc........OK +Comparing C48.mx500.tile2.nc........OK +Comparing C48.mx500.tile3.nc........OK +Comparing C48.mx500.tile4.nc........OK +Comparing C48.mx500.tile5.nc........OK +Comparing C48.mx500.tile6.nc........OK +Comparing Ct.mx025_SCRIP.nc........OK +Comparing Ct.mx500_SCRIP_land.nc........OK +Comparing Ct.mx500_SCRIP.nc........OK +Comparing Ct.mx500.to.C48.nc........OK +Comparing Cu.mx500_SCRIP.nc........OK +Comparing Cv.mx500_SCRIP.nc........OK +Comparing grid_cice_NEMS_mx500.nc........OK +Comparing kmtu_cice_NEMS_mx500.nc........OK +Comparing mesh.mx500.nc........OK +Comparing rect.5p0_SCRIP.nc........OK +Comparing tripole.mx025.Ct.to.mx500.Ct.neareststod.nc........OK +Comparing tripole.mx500.Bu.to.Ct.bilinear.nc........OK +Comparing tripole.mx500.Ct.to.rect.5p0.bilinear.nc........OK +Comparing tripole.mx500.Ct.to.rect.5p0.conserve.nc........OK +Comparing tripole.mx500.Cu.to.Ct.bilinear.nc........OK +Comparing tripole.mx500.Cv.to.Ct.bilinear.nc........OK +Comparing tripole.mx500.nc........OK + + REGRESSION TEST WAS SUCCESSFUL -Sat Apr 23 17:57:15 UTC 2022 +Thu Oct 26 17:46:20 UTC 2023 +Elapsed time: 00h:24m:25s. Have a nice day! diff --git a/reg_tests/cpld_gridgen/RegressionTests_jet.intel.log b/reg_tests/cpld_gridgen/RegressionTests_jet.intel.log index 88b074661..a0d8ca735 100644 --- a/reg_tests/cpld_gridgen/RegressionTests_jet.intel.log +++ b/reg_tests/cpld_gridgen/RegressionTests_jet.intel.log @@ -1,8 +1,8 @@ -Mon Apr 25 14:59:30 GMT 2022 +Thu Oct 26 18:20:27 UTC 2023 Start Regression test -Working dir = /lfs4/HFIP/h-nems//Minsuk.Ji/CPLD_GRIDGEN/rt_25376/025 -Baseline dir = /lfs4/HFIP/hfv3gfs/emc.nemspara/role.ufsutils/ufs_utils/reg_tests/cpld_gridgen/baseline_data/025 +Working dir = /lfs4/HFIP/h-nems/Denise.Worthen/CPLD_GRIDGEN/rt_55026/025 +Baseline dir = /lfs4/HFIP/hfv3gfs/emc.nemspara/role.ufsutils/ufs_utils/reg_tests/cpld_gridgen/baseline_data/025.new Checking test 025 results .... Comparing Bu.mx025_SCRIP.nc........OK @@ -20,11 +20,26 @@ Comparing Cv.mx025_SCRIP.nc........OK Comparing grid_cice_NEMS_mx025.nc........OK Comparing kmtu_cice_NEMS_mx025.nc........OK Comparing mesh.mx025.nc........OK +Comparing rect.0p25_SCRIP.nc........OK +Comparing rect.0p5_SCRIP.nc........OK +Comparing rect.1p0_SCRIP.nc........OK +Comparing rect.5p0_SCRIP.nc........OK +Comparing tripole.mx025.Bu.to.Ct.bilinear.nc........OK +Comparing tripole.mx025.Ct.to.rect.0p25.bilinear.nc........OK +Comparing tripole.mx025.Ct.to.rect.0p25.conserve.nc........OK +Comparing tripole.mx025.Ct.to.rect.0p5.bilinear.nc........OK +Comparing tripole.mx025.Ct.to.rect.0p5.conserve.nc........OK +Comparing tripole.mx025.Ct.to.rect.1p0.bilinear.nc........OK +Comparing tripole.mx025.Ct.to.rect.1p0.conserve.nc........OK +Comparing tripole.mx025.Ct.to.rect.5p0.bilinear.nc........OK +Comparing tripole.mx025.Ct.to.rect.5p0.conserve.nc........OK +Comparing tripole.mx025.Cu.to.Ct.bilinear.nc........OK +Comparing tripole.mx025.Cv.to.Ct.bilinear.nc........OK Comparing tripole.mx025.nc........OK -Working dir = /lfs4/HFIP/h-nems//Minsuk.Ji/CPLD_GRIDGEN/rt_25376/050 -Baseline dir = /lfs4/HFIP/hfv3gfs/emc.nemspara/role.ufsutils/ufs_utils/reg_tests/cpld_gridgen/baseline_data/050 +Working dir = /lfs4/HFIP/h-nems/Denise.Worthen/CPLD_GRIDGEN/rt_55026/050 +Baseline dir = /lfs4/HFIP/hfv3gfs/emc.nemspara/role.ufsutils/ufs_utils/reg_tests/cpld_gridgen/baseline_data/050.new Checking test 050 results .... Comparing Bu.mx050_SCRIP.nc........OK @@ -43,12 +58,24 @@ Comparing Cv.mx050_SCRIP.nc........OK Comparing grid_cice_NEMS_mx050.nc........OK Comparing kmtu_cice_NEMS_mx050.nc........OK Comparing mesh.mx050.nc........OK +Comparing rect.0p5_SCRIP.nc........OK +Comparing rect.1p0_SCRIP.nc........OK +Comparing rect.5p0_SCRIP.nc........OK Comparing tripole.mx025.Ct.to.mx050.Ct.neareststod.nc........OK +Comparing tripole.mx050.Bu.to.Ct.bilinear.nc........OK +Comparing tripole.mx050.Ct.to.rect.0p5.bilinear.nc........OK +Comparing tripole.mx050.Ct.to.rect.0p5.conserve.nc........OK +Comparing tripole.mx050.Ct.to.rect.1p0.bilinear.nc........OK +Comparing tripole.mx050.Ct.to.rect.1p0.conserve.nc........OK +Comparing tripole.mx050.Ct.to.rect.5p0.bilinear.nc........OK +Comparing tripole.mx050.Ct.to.rect.5p0.conserve.nc........OK +Comparing tripole.mx050.Cu.to.Ct.bilinear.nc........OK +Comparing tripole.mx050.Cv.to.Ct.bilinear.nc........OK Comparing tripole.mx050.nc........OK -Working dir = /lfs4/HFIP/h-nems//Minsuk.Ji/CPLD_GRIDGEN/rt_25376/100 -Baseline dir = /lfs4/HFIP/hfv3gfs/emc.nemspara/role.ufsutils/ufs_utils/reg_tests/cpld_gridgen/baseline_data/100 +Working dir = /lfs4/HFIP/h-nems/Denise.Worthen/CPLD_GRIDGEN/rt_55026/100 +Baseline dir = /lfs4/HFIP/hfv3gfs/emc.nemspara/role.ufsutils/ufs_utils/reg_tests/cpld_gridgen/baseline_data/100.new Checking test 100 results .... Comparing Bu.mx100_SCRIP.nc........OK @@ -67,10 +94,50 @@ Comparing Cv.mx100_SCRIP.nc........OK Comparing grid_cice_NEMS_mx100.nc........OK Comparing kmtu_cice_NEMS_mx100.nc........OK Comparing mesh.mx100.nc........OK +Comparing rect.1p0_SCRIP.nc........OK +Comparing rect.5p0_SCRIP.nc........OK Comparing tripole.mx025.Ct.to.mx100.Ct.neareststod.nc........OK +Comparing tripole.mx100.Bu.to.Ct.bilinear.nc........OK +Comparing tripole.mx100.Ct.to.rect.1p0.bilinear.nc........OK +Comparing tripole.mx100.Ct.to.rect.1p0.conserve.nc........OK +Comparing tripole.mx100.Ct.to.rect.5p0.bilinear.nc........OK +Comparing tripole.mx100.Ct.to.rect.5p0.conserve.nc........OK +Comparing tripole.mx100.Cu.to.Ct.bilinear.nc........OK +Comparing tripole.mx100.Cv.to.Ct.bilinear.nc........OK Comparing tripole.mx100.nc........OK Comparing ufs.topo_edits_011818.nc........OK +Working dir = /lfs4/HFIP/h-nems/Denise.Worthen/CPLD_GRIDGEN/rt_55026/500 +Baseline dir = /lfs4/HFIP/hfv3gfs/emc.nemspara/role.ufsutils/ufs_utils/reg_tests/cpld_gridgen/baseline_data/500.new + +Checking test 500 results .... +Comparing Bu.mx500_SCRIP.nc........OK +Comparing C48.mx500.tile1.nc........OK +Comparing C48.mx500.tile2.nc........OK +Comparing C48.mx500.tile3.nc........OK +Comparing C48.mx500.tile4.nc........OK +Comparing C48.mx500.tile5.nc........OK +Comparing C48.mx500.tile6.nc........OK +Comparing Ct.mx025_SCRIP.nc........OK +Comparing Ct.mx500.to.C48.nc........OK +Comparing Ct.mx500_SCRIP.nc........OK +Comparing Ct.mx500_SCRIP_land.nc........OK +Comparing Cu.mx500_SCRIP.nc........OK +Comparing Cv.mx500_SCRIP.nc........OK +Comparing grid_cice_NEMS_mx500.nc........OK +Comparing kmtu_cice_NEMS_mx500.nc........OK +Comparing mesh.mx500.nc........OK +Comparing rect.5p0_SCRIP.nc........OK +Comparing tripole.mx025.Ct.to.mx500.Ct.neareststod.nc........OK +Comparing tripole.mx500.Bu.to.Ct.bilinear.nc........OK +Comparing tripole.mx500.Ct.to.rect.5p0.bilinear.nc........OK +Comparing tripole.mx500.Ct.to.rect.5p0.conserve.nc........OK +Comparing tripole.mx500.Cu.to.Ct.bilinear.nc........OK +Comparing tripole.mx500.Cv.to.Ct.bilinear.nc........OK +Comparing tripole.mx500.nc........OK + + REGRESSION TEST WAS SUCCESSFUL -Mon Apr 25 15:07:31 GMT 2022 +Thu Oct 26 18:50:56 UTC 2023 +Elapsed time: 00h:32m:10s. Have a nice day! diff --git a/reg_tests/cpld_gridgen/RegressionTests_orion.intel.log b/reg_tests/cpld_gridgen/RegressionTests_orion.intel.log index 2a7e3b8e0..ff7816ef9 100644 --- a/reg_tests/cpld_gridgen/RegressionTests_orion.intel.log +++ b/reg_tests/cpld_gridgen/RegressionTests_orion.intel.log @@ -1,8 +1,8 @@ -Sat Apr 23 12:52:18 CDT 2022 +Thu Oct 26 13:21:30 CDT 2023 Start Regression test -Working dir = /work/noaa/stmp/jminsuk/CPLD_GRIDGEN/rt_614/025 -Baseline dir = /work/noaa/nems/role-nems/ufs_utils/reg_tests/cpld_gridgen/baseline_data/025 +Working dir = /work/noaa/stmp/dworthen/CPLD_GRIDGEN/rt_121164/025 +Baseline dir = /work/noaa/nems/role-nems/ufs_utils/reg_tests/cpld_gridgen/baseline_data/025.new Checking test 025 results .... Comparing Bu.mx025_SCRIP.nc........OK @@ -20,11 +20,26 @@ Comparing Cv.mx025_SCRIP.nc........OK Comparing grid_cice_NEMS_mx025.nc........OK Comparing kmtu_cice_NEMS_mx025.nc........OK Comparing mesh.mx025.nc........OK +Comparing rect.0p25_SCRIP.nc........OK +Comparing rect.0p5_SCRIP.nc........OK +Comparing rect.1p0_SCRIP.nc........OK +Comparing rect.5p0_SCRIP.nc........OK +Comparing tripole.mx025.Bu.to.Ct.bilinear.nc........OK +Comparing tripole.mx025.Ct.to.rect.0p25.bilinear.nc........OK +Comparing tripole.mx025.Ct.to.rect.0p25.conserve.nc........OK +Comparing tripole.mx025.Ct.to.rect.0p5.bilinear.nc........OK +Comparing tripole.mx025.Ct.to.rect.0p5.conserve.nc........OK +Comparing tripole.mx025.Ct.to.rect.1p0.bilinear.nc........OK +Comparing tripole.mx025.Ct.to.rect.1p0.conserve.nc........OK +Comparing tripole.mx025.Ct.to.rect.5p0.bilinear.nc........OK +Comparing tripole.mx025.Ct.to.rect.5p0.conserve.nc........OK +Comparing tripole.mx025.Cu.to.Ct.bilinear.nc........OK +Comparing tripole.mx025.Cv.to.Ct.bilinear.nc........OK Comparing tripole.mx025.nc........OK -Working dir = /work/noaa/stmp/jminsuk/CPLD_GRIDGEN/rt_614/050 -Baseline dir = /work/noaa/nems/role-nems/ufs_utils/reg_tests/cpld_gridgen/baseline_data/050 +Working dir = /work/noaa/stmp/dworthen/CPLD_GRIDGEN/rt_121164/050 +Baseline dir = /work/noaa/nems/role-nems/ufs_utils/reg_tests/cpld_gridgen/baseline_data/050.new Checking test 050 results .... Comparing Bu.mx050_SCRIP.nc........OK @@ -43,12 +58,24 @@ Comparing Cv.mx050_SCRIP.nc........OK Comparing grid_cice_NEMS_mx050.nc........OK Comparing kmtu_cice_NEMS_mx050.nc........OK Comparing mesh.mx050.nc........OK +Comparing rect.0p5_SCRIP.nc........OK +Comparing rect.1p0_SCRIP.nc........OK +Comparing rect.5p0_SCRIP.nc........OK Comparing tripole.mx025.Ct.to.mx050.Ct.neareststod.nc........OK +Comparing tripole.mx050.Bu.to.Ct.bilinear.nc........OK +Comparing tripole.mx050.Ct.to.rect.0p5.bilinear.nc........OK +Comparing tripole.mx050.Ct.to.rect.0p5.conserve.nc........OK +Comparing tripole.mx050.Ct.to.rect.1p0.bilinear.nc........OK +Comparing tripole.mx050.Ct.to.rect.1p0.conserve.nc........OK +Comparing tripole.mx050.Ct.to.rect.5p0.bilinear.nc........OK +Comparing tripole.mx050.Ct.to.rect.5p0.conserve.nc........OK +Comparing tripole.mx050.Cu.to.Ct.bilinear.nc........OK +Comparing tripole.mx050.Cv.to.Ct.bilinear.nc........OK Comparing tripole.mx050.nc........OK -Working dir = /work/noaa/stmp/jminsuk/CPLD_GRIDGEN/rt_614/100 -Baseline dir = /work/noaa/nems/role-nems/ufs_utils/reg_tests/cpld_gridgen/baseline_data/100 +Working dir = /work/noaa/stmp/dworthen/CPLD_GRIDGEN/rt_121164/100 +Baseline dir = /work/noaa/nems/role-nems/ufs_utils/reg_tests/cpld_gridgen/baseline_data/100.new Checking test 100 results .... Comparing Bu.mx100_SCRIP.nc........OK @@ -67,10 +94,50 @@ Comparing Cv.mx100_SCRIP.nc........OK Comparing grid_cice_NEMS_mx100.nc........OK Comparing kmtu_cice_NEMS_mx100.nc........OK Comparing mesh.mx100.nc........OK +Comparing rect.1p0_SCRIP.nc........OK +Comparing rect.5p0_SCRIP.nc........OK Comparing tripole.mx025.Ct.to.mx100.Ct.neareststod.nc........OK +Comparing tripole.mx100.Bu.to.Ct.bilinear.nc........OK +Comparing tripole.mx100.Ct.to.rect.1p0.bilinear.nc........OK +Comparing tripole.mx100.Ct.to.rect.1p0.conserve.nc........OK +Comparing tripole.mx100.Ct.to.rect.5p0.bilinear.nc........OK +Comparing tripole.mx100.Ct.to.rect.5p0.conserve.nc........OK +Comparing tripole.mx100.Cu.to.Ct.bilinear.nc........OK +Comparing tripole.mx100.Cv.to.Ct.bilinear.nc........OK Comparing tripole.mx100.nc........OK Comparing ufs.topo_edits_011818.nc........OK +Working dir = /work/noaa/stmp/dworthen/CPLD_GRIDGEN/rt_121164/500 +Baseline dir = /work/noaa/nems/role-nems/ufs_utils/reg_tests/cpld_gridgen/baseline_data/500.new + +Checking test 500 results .... +Comparing Bu.mx500_SCRIP.nc........OK +Comparing C48.mx500.tile1.nc........OK +Comparing C48.mx500.tile2.nc........OK +Comparing C48.mx500.tile3.nc........OK +Comparing C48.mx500.tile4.nc........OK +Comparing C48.mx500.tile5.nc........OK +Comparing C48.mx500.tile6.nc........OK +Comparing Ct.mx025_SCRIP.nc........OK +Comparing Ct.mx500_SCRIP_land.nc........OK +Comparing Ct.mx500_SCRIP.nc........OK +Comparing Ct.mx500.to.C48.nc........OK +Comparing Cu.mx500_SCRIP.nc........OK +Comparing Cv.mx500_SCRIP.nc........OK +Comparing grid_cice_NEMS_mx500.nc........OK +Comparing kmtu_cice_NEMS_mx500.nc........OK +Comparing mesh.mx500.nc........OK +Comparing rect.5p0_SCRIP.nc........OK +Comparing tripole.mx025.Ct.to.mx500.Ct.neareststod.nc........OK +Comparing tripole.mx500.Bu.to.Ct.bilinear.nc........OK +Comparing tripole.mx500.Ct.to.rect.5p0.bilinear.nc........OK +Comparing tripole.mx500.Ct.to.rect.5p0.conserve.nc........OK +Comparing tripole.mx500.Cu.to.Ct.bilinear.nc........OK +Comparing tripole.mx500.Cv.to.Ct.bilinear.nc........OK +Comparing tripole.mx500.nc........OK + + REGRESSION TEST WAS SUCCESSFUL -Sat Apr 23 12:56:51 CDT 2022 +Thu Oct 26 13:41:16 CDT 2023 +Elapsed time: 00h:21m:06s. Have a nice day! diff --git a/reg_tests/cpld_gridgen/RegressionTests_wcoss2.intel.log b/reg_tests/cpld_gridgen/RegressionTests_wcoss2.intel.log new file mode 100644 index 000000000..08cef51ad --- /dev/null +++ b/reg_tests/cpld_gridgen/RegressionTests_wcoss2.intel.log @@ -0,0 +1,143 @@ +Thu Oct 26 18:28:37 UTC 2023 +Start Regression test + +Working dir = /lfs/h2/emc/stmp/denise.worthen/CPLD_GRIDGEN/rt_155737/025 +Baseline dir = /lfs/h2/emc/nems/noscrub/emc.nems/UFS_UTILS/reg_tests/cpld_gridgen/baseline_data/025.new + +Checking test 025 results .... +Comparing Bu.mx025_SCRIP.nc........OK +Comparing C384.mx025.tile1.nc........OK +Comparing C384.mx025.tile2.nc........OK +Comparing C384.mx025.tile3.nc........OK +Comparing C384.mx025.tile4.nc........OK +Comparing C384.mx025.tile5.nc........OK +Comparing C384.mx025.tile6.nc........OK +Comparing Ct.mx025_SCRIP_land.nc........OK +Comparing Ct.mx025_SCRIP.nc........OK +Comparing Ct.mx025.to.C384.nc........OK +Comparing Cu.mx025_SCRIP.nc........OK +Comparing Cv.mx025_SCRIP.nc........OK +Comparing grid_cice_NEMS_mx025.nc........OK +Comparing kmtu_cice_NEMS_mx025.nc........OK +Comparing mesh.mx025.nc........OK +Comparing rect.0p25_SCRIP.nc........OK +Comparing rect.0p5_SCRIP.nc........OK +Comparing rect.1p0_SCRIP.nc........OK +Comparing rect.5p0_SCRIP.nc........OK +Comparing tripole.mx025.Bu.to.Ct.bilinear.nc........OK +Comparing tripole.mx025.Ct.to.rect.0p25.bilinear.nc........OK +Comparing tripole.mx025.Ct.to.rect.0p25.conserve.nc........OK +Comparing tripole.mx025.Ct.to.rect.0p5.bilinear.nc........OK +Comparing tripole.mx025.Ct.to.rect.0p5.conserve.nc........OK +Comparing tripole.mx025.Ct.to.rect.1p0.bilinear.nc........OK +Comparing tripole.mx025.Ct.to.rect.1p0.conserve.nc........OK +Comparing tripole.mx025.Ct.to.rect.5p0.bilinear.nc........OK +Comparing tripole.mx025.Ct.to.rect.5p0.conserve.nc........OK +Comparing tripole.mx025.Cu.to.Ct.bilinear.nc........OK +Comparing tripole.mx025.Cv.to.Ct.bilinear.nc........OK +Comparing tripole.mx025.nc........OK + + +Working dir = /lfs/h2/emc/stmp/denise.worthen/CPLD_GRIDGEN/rt_155737/050 +Baseline dir = /lfs/h2/emc/nems/noscrub/emc.nems/UFS_UTILS/reg_tests/cpld_gridgen/baseline_data/050.new + +Checking test 050 results .... +Comparing Bu.mx050_SCRIP.nc........OK +Comparing C192.mx050.tile1.nc........OK +Comparing C192.mx050.tile2.nc........OK +Comparing C192.mx050.tile3.nc........OK +Comparing C192.mx050.tile4.nc........OK +Comparing C192.mx050.tile5.nc........OK +Comparing C192.mx050.tile6.nc........OK +Comparing Ct.mx025_SCRIP.nc........OK +Comparing Ct.mx050_SCRIP_land.nc........OK +Comparing Ct.mx050_SCRIP.nc........OK +Comparing Ct.mx050.to.C192.nc........OK +Comparing Cu.mx050_SCRIP.nc........OK +Comparing Cv.mx050_SCRIP.nc........OK +Comparing grid_cice_NEMS_mx050.nc........OK +Comparing kmtu_cice_NEMS_mx050.nc........OK +Comparing mesh.mx050.nc........OK +Comparing rect.0p5_SCRIP.nc........OK +Comparing rect.1p0_SCRIP.nc........OK +Comparing rect.5p0_SCRIP.nc........OK +Comparing tripole.mx025.Ct.to.mx050.Ct.neareststod.nc........OK +Comparing tripole.mx050.Bu.to.Ct.bilinear.nc........OK +Comparing tripole.mx050.Ct.to.rect.0p5.bilinear.nc........OK +Comparing tripole.mx050.Ct.to.rect.0p5.conserve.nc........OK +Comparing tripole.mx050.Ct.to.rect.1p0.bilinear.nc........OK +Comparing tripole.mx050.Ct.to.rect.1p0.conserve.nc........OK +Comparing tripole.mx050.Ct.to.rect.5p0.bilinear.nc........OK +Comparing tripole.mx050.Ct.to.rect.5p0.conserve.nc........OK +Comparing tripole.mx050.Cu.to.Ct.bilinear.nc........OK +Comparing tripole.mx050.Cv.to.Ct.bilinear.nc........OK +Comparing tripole.mx050.nc........OK + + +Working dir = /lfs/h2/emc/stmp/denise.worthen/CPLD_GRIDGEN/rt_155737/100 +Baseline dir = /lfs/h2/emc/nems/noscrub/emc.nems/UFS_UTILS/reg_tests/cpld_gridgen/baseline_data/100.new + +Checking test 100 results .... +Comparing Bu.mx100_SCRIP.nc........OK +Comparing C96.mx100.tile1.nc........OK +Comparing C96.mx100.tile2.nc........OK +Comparing C96.mx100.tile3.nc........OK +Comparing C96.mx100.tile4.nc........OK +Comparing C96.mx100.tile5.nc........OK +Comparing C96.mx100.tile6.nc........OK +Comparing Ct.mx025_SCRIP.nc........OK +Comparing Ct.mx100_SCRIP_land.nc........OK +Comparing Ct.mx100_SCRIP.nc........OK +Comparing Ct.mx100.to.C96.nc........OK +Comparing Cu.mx100_SCRIP.nc........OK +Comparing Cv.mx100_SCRIP.nc........OK +Comparing grid_cice_NEMS_mx100.nc........OK +Comparing kmtu_cice_NEMS_mx100.nc........OK +Comparing mesh.mx100.nc........OK +Comparing rect.1p0_SCRIP.nc........OK +Comparing rect.5p0_SCRIP.nc........OK +Comparing tripole.mx025.Ct.to.mx100.Ct.neareststod.nc........OK +Comparing tripole.mx100.Bu.to.Ct.bilinear.nc........OK +Comparing tripole.mx100.Ct.to.rect.1p0.bilinear.nc........OK +Comparing tripole.mx100.Ct.to.rect.1p0.conserve.nc........OK +Comparing tripole.mx100.Ct.to.rect.5p0.bilinear.nc........OK +Comparing tripole.mx100.Ct.to.rect.5p0.conserve.nc........OK +Comparing tripole.mx100.Cu.to.Ct.bilinear.nc........OK +Comparing tripole.mx100.Cv.to.Ct.bilinear.nc........OK +Comparing tripole.mx100.nc........OK +Comparing ufs.topo_edits_011818.nc........OK + + +Working dir = /lfs/h2/emc/stmp/denise.worthen/CPLD_GRIDGEN/rt_155737/500 +Baseline dir = /lfs/h2/emc/nems/noscrub/emc.nems/UFS_UTILS/reg_tests/cpld_gridgen/baseline_data/500.new + +Checking test 500 results .... +Comparing Bu.mx500_SCRIP.nc........OK +Comparing C48.mx500.tile1.nc........OK +Comparing C48.mx500.tile2.nc........OK +Comparing C48.mx500.tile3.nc........OK +Comparing C48.mx500.tile4.nc........OK +Comparing C48.mx500.tile5.nc........OK +Comparing C48.mx500.tile6.nc........OK +Comparing Ct.mx025_SCRIP.nc........OK +Comparing Ct.mx500_SCRIP_land.nc........OK +Comparing Ct.mx500_SCRIP.nc........OK +Comparing Ct.mx500.to.C48.nc........OK +Comparing Cu.mx500_SCRIP.nc........OK +Comparing Cv.mx500_SCRIP.nc........OK +Comparing grid_cice_NEMS_mx500.nc........OK +Comparing kmtu_cice_NEMS_mx500.nc........OK +Comparing mesh.mx500.nc........OK +Comparing rect.5p0_SCRIP.nc........OK +Comparing tripole.mx025.Ct.to.mx500.Ct.neareststod.nc........OK +Comparing tripole.mx500.Bu.to.Ct.bilinear.nc........OK +Comparing tripole.mx500.Ct.to.rect.5p0.bilinear.nc........OK +Comparing tripole.mx500.Ct.to.rect.5p0.conserve.nc........OK +Comparing tripole.mx500.Cu.to.Ct.bilinear.nc........OK +Comparing tripole.mx500.Cv.to.Ct.bilinear.nc........OK +Comparing tripole.mx500.nc........OK + + +REGRESSION TEST WAS SUCCESSFUL +Thu Oct 26 18:48:08 UTC 2023 +Elapsed time: 00h:20m:34s. Have a nice day! diff --git a/reg_tests/cpld_gridgen/rt.conf b/reg_tests/cpld_gridgen/rt.conf index 64b2a617f..d40b4d815 100644 --- a/reg_tests/cpld_gridgen/rt.conf +++ b/reg_tests/cpld_gridgen/rt.conf @@ -9,6 +9,7 @@ C384_025 | C192_050 | C384_025 C096_100 | C384_025 + C048_500 | C384_025 ################################################################# # Non-baseline configurations. diff --git a/reg_tests/cpld_gridgen/rt.sh b/reg_tests/cpld_gridgen/rt.sh index b08cbac7c..49f353963 100755 --- a/reg_tests/cpld_gridgen/rt.sh +++ b/reg_tests/cpld_gridgen/rt.sh @@ -108,7 +108,7 @@ TESTS_FILE="$PATHRT/rt.conf" export TEST_NAME= # for C3072 on hera, use WLCLK=60 and MEM="--exclusive" -WLCLK_dflt=10 +WLCLK_dflt=15 export WLCLK=$WLCLK_dflt MEM_dflt="--mem=12g" export MEM=$MEM_dflt @@ -125,7 +125,7 @@ rm -f fail_test* $COMPILE_LOG run_*.log nccmp_*.log summary.log if [[ $target = wcoss2 ]]; then STMP=${STMP:-/lfs/h2/emc/stmp/$USER} - export MOM6_FIXDIR=/lfs/h2/emc/nems/noscrub/emc.nems/UFS_UTILS/reg_tests/cpld_gridgen/fix_mom6 + export MOM6_FIXDIR=/lfs/h2/emc/global/noscrub/emc.global/FIX/fix/mom6/20220805 BASELINE_ROOT=/lfs/h2/emc/nems/noscrub/emc.nems/UFS_UTILS/reg_tests/cpld_gridgen/baseline_data ACCOUNT=${ACCOUNT:-GFS-DEV} export APRUN="mpiexec -n 1 -ppn 1 --cpu-bind core" @@ -134,7 +134,7 @@ if [[ $target = wcoss2 ]]; then NCCMP=/lfs/h2/emc/global/noscrub/George.Gayno/util/nccmp/nccmp-1.8.5.0/src/nccmp elif [[ $target = hera ]]; then STMP=${STMP:-/scratch1/NCEPDEV/stmp4/$USER} - export MOM6_FIXDIR=/scratch1/NCEPDEV/nems/role.ufsutils/ufs_utils/reg_tests/cpld_gridgen/fix_mom6 + export MOM6_FIXDIR=/scratch1/NCEPDEV/global/glopara/fix/mom6/20220805 BASELINE_ROOT=/scratch1/NCEPDEV/nems/role.ufsutils/ufs_utils/reg_tests/cpld_gridgen/baseline_data ACCOUNT=${ACCOUNT:-nems} QUEUE=${QUEUE:-batch} @@ -143,7 +143,7 @@ elif [[ $target = hera ]]; then SBATCH_COMMAND="./cpld_gridgen.sh" elif [[ $target = orion ]]; then STMP=${STMP:-/work/noaa/stmp/$USER} - export MOM6_FIXDIR=/work/noaa/nems/role-nems/ufs_utils/reg_tests/cpld_gridgen/fix_mom6 + export MOM6_FIXDIR=/work/noaa/global/glopara/fix/mom6/20220805 BASELINE_ROOT=/work/noaa/nems/role-nems/ufs_utils/reg_tests/cpld_gridgen/baseline_data ACCOUNT=${ACCOUNT:-nems} QUEUE=${QUEUE:-batch} @@ -153,13 +153,14 @@ elif [[ $target = orion ]]; then SBATCH_COMMAND="./cpld_gridgen.sh" elif [[ $target = jet ]]; then STMP=${STMP:-/lfs4/HFIP/h-nems/$USER} - export MOM6_FIXDIR=/lfs4/HFIP/hfv3gfs/emc.nemspara/role.ufsutils/ufs_utils/reg_tests/cpld_gridgen/fix_mom6 + export MOM6_FIXDIR=/lfs4/HFIP/hfv3gfs/glopara/git/fv3gfs/fix/mom6/20220805 BASELINE_ROOT=/lfs4/HFIP/hfv3gfs/emc.nemspara/role.ufsutils/ufs_utils/reg_tests/cpld_gridgen/baseline_data ACCOUNT=${ACCOUNT:-h-nems} QUEUE=${QUEUE:-batch} NCCMP=nccmp PARTITION=xjet ulimit -s unlimited + WLCLK=25 SBATCH_COMMAND="./cpld_gridgen.sh" fi NEW_BASELINE_ROOT=$STMP/CPLD_GRIDGEN/BASELINE diff --git a/sorc/cpld_gridgen.fd/charstrings.F90 b/sorc/cpld_gridgen.fd/charstrings.F90 index 00deab1b4..0e7b5a19b 100644 --- a/sorc/cpld_gridgen.fd/charstrings.F90 +++ b/sorc/cpld_gridgen.fd/charstrings.F90 @@ -15,7 +15,7 @@ module charstrings character(len=CL) :: dirout !< The directory where output files will be written character(len=CL) :: fv3dir !< The directory containing the FV3 mosaic files character(len=CS) :: res !< The Ocean/Ice resolution, e.g. 500 (5deg), 100 (1deg) - !! 050 (1/2deg), 025 (1/4deg) + !! 050 (1/2deg), 025 (1/4deg) character(len=CS) :: atmres !< The ATM resolution, e.g. C96, C192, C384 character(len=CL) :: logmsg !< An informational message diff --git a/sorc/cpld_gridgen.fd/gen_fixgrid.F90 b/sorc/cpld_gridgen.fd/gen_fixgrid.F90 index 2fcffb126..36f118eed 100644 --- a/sorc/cpld_gridgen.fd/gen_fixgrid.F90 +++ b/sorc/cpld_gridgen.fd/gen_fixgrid.F90 @@ -169,17 +169,22 @@ program gen_fixgrid if(xtype.eq. 6)dp4 = real(dp8,4) - !print *,minval(dp8),maxval(dp8) - !print *,minval(dp4),maxval(dp4) - if(editmask)then !--------------------------------------------------------------------- - ! apply topoedits run time mask changes if required for this config + ! apply topoedits run time mask changes if required for this config + ! this will create a modified topoedits file which accounts for any + ! land mask changes created at run time by MOM6 !--------------------------------------------------------------------- if(trim(editsfile) == 'none')then print '(a)', 'Need a valid editsfile to make mask edits ' - stop + call abort() + end if + inquire(file=trim(dirsrc)//'/'//trim(editsfile),exist=fexist) + if (.not. fexist) then + print '(a)', 'Required topoedits file '//trim(editsfile) & + //'for land mask changes is missing ' + call abort() end if fsrc = trim(dirsrc)//'/'//trim(editsfile) @@ -191,11 +196,22 @@ program gen_fixgrid ! MOM6 reads the depth file, applies the topo edits and then adjusts ! depth using masking_depth and min/max depth. This call mimics ! MOM6 routines apply_topography_edits_from_file and limit_topography + ! If the the topoedits file has been modified to account for MOM6 run + ! time land mask changes (above), then the depth will be created using + ! this modified topoedits file !--------------------------------------------------------------------- - fsrc = trim(dirsrc)//'/'//trim(editsfile) - if(editmask)fsrc = trim(dirout)//'/'//'ufs.'//trim(editsfile) - call apply_topoedits(fsrc) + fsrc = trim(dirsrc)//'/'//trim(editsfile) + if(editmask)fsrc = trim(dirout)//'/'//'ufs.'//trim(editsfile) + + if (trim(editsfile) /= 'none') then + inquire(file=trim(fsrc),exist=fexist) + if (.not. fexist) then + print '(a)', 'Required topoedits file '//trim(fsrc)//' is missing ' + call abort() + end if + end if + call apply_topoedits(fsrc) !--------------------------------------------------------------------- ! read MOM6 supergrid file diff --git a/sorc/cpld_gridgen.fd/postwgts.F90 b/sorc/cpld_gridgen.fd/postwgts.F90 index 4ff0bc0fa..0310d8db9 100644 --- a/sorc/cpld_gridgen.fd/postwgts.F90 +++ b/sorc/cpld_gridgen.fd/postwgts.F90 @@ -29,6 +29,7 @@ subroutine make_postwgts character(len=CM), dimension(2) :: methodname = (/'conserve', 'bilinear'/) + type(ESMF_RouteHandle) :: rh type(ESMF_RegridMethod_Flag) :: method ! the number of possible destination grids depends on the source grid resolution integer :: k,rc,nd,ndest @@ -38,22 +39,25 @@ subroutine make_postwgts ! set the destination grids !--------------------------------------------------------------------- - if(trim(res) .eq. '400')return - - if(trim(res) .eq. '100')then + if(trim(res) .eq. '500')then ndest = 1 allocate(destgrds(ndest)) - destgrds = (/'1p0 '/) + destgrds = (/'5p0 '/) end if - if(trim(res) .eq. '050')then + if(trim(res) .eq. '100')then ndest = 2 allocate(destgrds(ndest)) - destgrds = (/'1p0 ', '0p5 '/) + destgrds = (/'5p0 ', '1p0 '/) end if - if(trim(res) .eq. '025')then + if(trim(res) .eq. '050')then ndest = 3 allocate(destgrds(ndest)) - destgrds = (/'1p0 ', '0p5 ', '0p25'/) + destgrds = (/'5p0 ', '1p0 ', '0p5 '/) + end if + if(trim(res) .eq. '025')then + ndest = 4 + allocate(destgrds(ndest)) + destgrds = (/'5p0 ', '1p0 ', '0p5 ', '0p25'/) end if !--------------------------------------------------------------------- @@ -71,8 +75,8 @@ subroutine make_postwgts print '(a)',trim(logmsg) call ESMF_RegridWeightGen(srcFile=trim(fsrc),dstFile=trim(fdst), & - weightFile=trim(fwgt), regridmethod=method, & - ignoreDegenerate=.true., & + weightFile=trim(fwgt), regridmethod=method, & + ignoreDegenerate=.true., & unmappedaction=ESMF_UNMAPPEDACTION_IGNORE, rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, file=__FILE__)) call ESMF_Finalize(endflag=ESMF_END_ABORT) @@ -98,8 +102,8 @@ subroutine make_postwgts print '(a)',trim(logmsg) call ESMF_RegridWeightGen(srcFile=trim(fsrc),dstFile=trim(fdst), & - weightFile=trim(fwgt), regridmethod=method, & - ignoreDegenerate=.true., & + weightFile=trim(fwgt), regridmethod=method, & + ignoreDegenerate=.true., regridRouteHandle=rh, & unmappedaction=ESMF_UNMAPPEDACTION_IGNORE, rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, file=__FILE__)) call ESMF_Finalize(endflag=ESMF_END_ABORT) diff --git a/ush/cpld_gridgen.sh b/ush/cpld_gridgen.sh index 2573baf6e..2aafd621e 100755 --- a/ush/cpld_gridgen.sh +++ b/ush/cpld_gridgen.sh @@ -21,7 +21,7 @@ function edit_namelist { export RESNAME=${RESNAME:-$1} export DEBUG=.false. export MASKEDIT=.false. -export DO_POSTWGTS=.false. +export DO_POSTWGTS=.true. export OUTDIR_PATH=${OUTDIR_PATH:-/scratch1/NCEPDEV/climate/Denise.Worthen/grids-20220116} export MOSAICDIR_PATH=${MOSAICDIR_PATH:-$PATHTR/fix/orog} if [[ $MOSAICRES == C3072 ]]; then @@ -41,11 +41,7 @@ elif [[ $MOSAICRES == C048 ]]; then export MOSAICRES=C48 export NPX=48 fi -if [ $RESNAME = 500 ]; then - export FIXDIR_PATH=/scratch1/NCEPDEV/global/glopara/fix/mom6/20220805/500/ -else - export FIXDIR_PATH=${MOM6_FIXDIR}/${RESNAME} -fi +export FIXDIR_PATH=${MOM6_FIXDIR}/${RESNAME} APRUN=${APRUN:-"srun"} @@ -54,6 +50,10 @@ if [ $RESNAME = 500 ]; then export NJ=35 export TOPOGFILE=ocean_topog.nc export EDITSFILE='none' + if [ $DO_POSTWGTS == .true. ]; then + #pre-generate SCRIP files for dst rectilinear grids using NCO + $APRUN -n 1 ncremap -g ${OUTDIR_PATH}/rect.5p0_SCRIP.nc -G latlon=36,72#lon_typ=grn_ctr#lat_typ=cap + fi fi if [ $RESNAME = 100 ]; then @@ -64,9 +64,8 @@ if [ $RESNAME = 100 ]; then export EDITSFILE=topo_edits_011818.nc if [ $DO_POSTWGTS == .true. ]; then #pre-generate SCRIP files for dst rectilinear grids using NCO - # TODO: is the stagger really correct? The first pt is at 0.0E? - # should lat_type be cap? #lon_typ=grn_ctr#lat_typ=cap - ncremap -g ${OUTDIR_PATH}/rect.1p0_SCRIP.nc -G latlon=181,360#lon_typ=grn_ctr + $APRUN -n 1 ncremap -g ${OUTDIR_PATH}/rect.5p0_SCRIP.nc -G latlon=36,72#lon_typ=grn_ctr#lat_typ=cap + $APRUN -n 1 ncremap -g ${OUTDIR_PATH}/rect.1p0_SCRIP.nc -G latlon=181,360#lon_typ=grn_ctr#lat_typ=cap fi fi @@ -77,10 +76,9 @@ if [ $RESNAME = 050 ]; then export EDITSFILE='none' if [ $DO_POSTWGTS == .true. ]; then #pre-generate SCRIP files for dst rectilinear grids using NCO - # TODO: is the stagger really correct? The first pt is at 0.0E? - # should lat_type be cap? #lon_typ=grn_ctr#lat_typ=cap - ncremap -g ${OUTDIR_PATH}/rect.1p0_SCRIP.nc -G latlon=181,360#lon_typ=grn_ctr - ncremap -g ${OUTDIR_PATH}/rect.0p5_SCRIP.nc -G latlon=361,720#lon_typ=grn_ctr + $APRUN -n 1 ncremap -g ${OUTDIR_PATH}/rect.5p0_SCRIP.nc -G latlon=36,72#lon_typ=grn_ctr#lat_typ=cap + $APRUN -n 1 ncremap -g ${OUTDIR_PATH}/rect.1p0_SCRIP.nc -G latlon=181,360#lon_typ=grn_ctr#lat_typ=cap + $APRUN -n 1 ncremap -g ${OUTDIR_PATH}/rect.0p5_SCRIP.nc -G latlon=361,720#lon_typ=grn_ctr#lat_typ=cap fi fi @@ -91,11 +89,10 @@ if [ $RESNAME = 025 ]; then export EDITSFILE=All_edits.nc if [ $DO_POSTWGTS == .true. ]; then #pre-generate SCRIP files for dst rectilinear grids using NCO - # TODO: is the stagger really correct? The first pt is at 0.0E? - # should lat_type be cap? #lon_typ=grn_ctr#lat_typ=cap - ncremap -g ${OUTDIR_PATH}/rect.1p0_SCRIP.nc -G latlon=181,360#lon_typ=grn_ctr - ncremap -g ${OUTDIR_PATH}/rect.0p5_SCRIP.nc -G latlon=361,720#lon_typ=grn_ctr - ncremap -g ${OUTDIR_PATH}/rect.0p25_SCRIP.nc -G latlon=721,1440#lon_typ=grn_ctr + $APRUN -n 1 ncremap -g ${OUTDIR_PATH}/rect.5p0_SCRIP.nc -G latlon=36,72#lon_typ=grn_ctr#lat_typ=cap + $APRUN -n 1 ncremap -g ${OUTDIR_PATH}/rect.1p0_SCRIP.nc -G latlon=181,360#lon_typ=grn_ctr#lat_typ=cap + $APRUN -n 1 ncremap -g ${OUTDIR_PATH}/rect.0p5_SCRIP.nc -G latlon=361,720#lon_typ=grn_ctr#lat_typ=cap + $APRUN -n 1 ncremap -g ${OUTDIR_PATH}/rect.0p25_SCRIP.nc -G latlon=721,1440#lon_typ=grn_ctr#lat_typ=cap fi fi From 325c32f11d3c013366b1936f7b16d45e11d3c6ff Mon Sep 17 00:00:00 2001 From: GeorgeGayno-NOAA <52789452+GeorgeGayno-NOAA@users.noreply.github.com> Date: Fri, 27 Oct 2023 15:47:44 -0400 Subject: [PATCH 3/3] chgres_cube: Remove "-fallow-argument-mismatch compile" flag (#865) The "-fallow-argument-mismatch" compiler flag is needed when building chgres_cube using GNU v10. Make minor adjustments to the source code to eliminate the need for this flag. Also, remove this flag from build of other programs that don't require it. Fixes #471. --- CMakeLists.txt | 2 +- sorc/chgres_cube.fd/CMakeLists.txt | 5 ----- sorc/chgres_cube.fd/atm_input_data.F90 | 6 +++--- sorc/chgres_cube.fd/atmosphere.F90 | 4 ++-- sorc/chgres_cube.fd/chgres.F90 | 2 +- sorc/chgres_cube.fd/msis2.1.fd/msis_init.F90 | 2 +- sorc/chgres_cube.fd/search_util.F90 | 2 +- sorc/chgres_cube.fd/sfc_input_data.F90 | 2 +- sorc/chgres_cube.fd/surface.F90 | 2 +- sorc/chgres_cube.fd/utils.F90 | 4 ++-- sorc/cpld_gridgen.fd/CMakeLists.txt | 5 ----- sorc/gblevents.fd/CMakeLists.txt | 3 +++ sorc/lsm_routines.fd/noah.fd/CMakeLists.txt | 3 --- sorc/orog_mask_tools.fd/orog.fd/CMakeLists.txt | 2 +- sorc/orog_mask_tools.fd/orog_gsl.fd/CMakeLists.txt | 2 +- sorc/weight_gen.fd/CMakeLists.txt | 3 --- 16 files changed, 18 insertions(+), 31 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4278cc9f8..6a0d1a345 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -74,7 +74,7 @@ if(CMAKE_Fortran_COMPILER_ID MATCHES "^(Intel)$") elseif(CMAKE_Fortran_COMPILER_ID MATCHES "^(GNU)$") set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -g -fbacktrace") if(${CMAKE_Fortran_COMPILER_VERSION} VERSION_GREATER_EQUAL 10) - set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fallow-argument-mismatch -fallow-invalid-boz") + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fallow-invalid-boz") endif() set(CMAKE_Fortran_FLAGS_RELEASE "-O3") set(CMAKE_Fortran_FLAGS_DEBUG "-O0 -ggdb -Wall -fcheck=all") diff --git a/sorc/chgres_cube.fd/CMakeLists.txt b/sorc/chgres_cube.fd/CMakeLists.txt index e7e3c49cd..53fe3644d 100644 --- a/sorc/chgres_cube.fd/CMakeLists.txt +++ b/sorc/chgres_cube.fd/CMakeLists.txt @@ -29,11 +29,6 @@ if(CMAKE_Fortran_COMPILER_ID MATCHES "^(Intel)$") set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -r8 -assume byterecl") elseif(CMAKE_Fortran_COMPILER_ID MATCHES "^(GNU)$") set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -ffree-line-length-0 -fdefault-real-8") - - # Turn on this argument mismatch flag for gfortran10. - if(CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 10) - set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fallow-argument-mismatch") - endif() endif() set(exe_name chgres_cube) diff --git a/sorc/chgres_cube.fd/atm_input_data.F90 b/sorc/chgres_cube.fd/atm_input_data.F90 index bcb0e3782..7d995ee0a 100644 --- a/sorc/chgres_cube.fd/atm_input_data.F90 +++ b/sorc/chgres_cube.fd/atm_input_data.F90 @@ -1294,7 +1294,7 @@ end subroutine read_input_atm_restart_file !! @author George Gayno NCEP/EMC subroutine read_input_atm_gaussian_netcdf_file(localpet) - use mpi + use mpi_f08 implicit none @@ -1678,7 +1678,7 @@ end subroutine read_input_atm_gaussian_netcdf_file !! @author George Gayno NCEP/EMC subroutine read_input_atm_tiled_history_file(localpet) - use mpi + use mpi_f08 implicit none @@ -1969,7 +1969,7 @@ end subroutine read_input_atm_tiled_history_file !! @author George Gayno NCEP/EMC subroutine read_input_atm_grib2_file(localpet) - use mpi + use mpi_f08 use grib_mod use grib2_util, only : rh2spfh, rh2spfh_gfs, convert_omega diff --git a/sorc/chgres_cube.fd/atmosphere.F90 b/sorc/chgres_cube.fd/atmosphere.F90 index 68281e94c..c13e709b6 100644 --- a/sorc/chgres_cube.fd/atmosphere.F90 +++ b/sorc/chgres_cube.fd/atmosphere.F90 @@ -117,7 +117,7 @@ module atmosphere !! @author George Gayno subroutine atmosphere_driver(localpet) - use mpi + use mpi_f08 implicit none @@ -1761,7 +1761,7 @@ END SUBROUTINE VINTG_WAM !! !! @author Mark Iredell @date 92-10-31 SUBROUTINE VINTG - use mpi + use mpi_f08 IMPLICIT NONE diff --git a/sorc/chgres_cube.fd/chgres.F90 b/sorc/chgres_cube.fd/chgres.F90 index 8b01656f2..ba1a0394c 100644 --- a/sorc/chgres_cube.fd/chgres.F90 +++ b/sorc/chgres_cube.fd/chgres.F90 @@ -23,7 +23,7 @@ !! @return 0 for success, error code otherwise. program chgres - use mpi + use mpi_f08 use esmf use atmosphere, only : atmosphere_driver diff --git a/sorc/chgres_cube.fd/msis2.1.fd/msis_init.F90 b/sorc/chgres_cube.fd/msis2.1.fd/msis_init.F90 index e6dd54b25..5f4da6f25 100644 --- a/sorc/chgres_cube.fd/msis2.1.fd/msis_init.F90 +++ b/sorc/chgres_cube.fd/msis2.1.fd/msis_init.F90 @@ -370,7 +370,7 @@ end subroutine initparmspace !================================================================================================== subroutine loadparmset(name,iun) - use mpi + use mpi_f08 use msis_constants, only : maxnbf, csfxmod diff --git a/sorc/chgres_cube.fd/search_util.F90 b/sorc/chgres_cube.fd/search_util.F90 index fbab5e209..fbafcda32 100644 --- a/sorc/chgres_cube.fd/search_util.F90 +++ b/sorc/chgres_cube.fd/search_util.F90 @@ -45,7 +45,7 @@ module search_util !! @author George Gayno NCEP/EMC subroutine search (field, mask, idim, jdim, tile, field_num, latitude, terrain_land, soilt_climo) - use mpi + use mpi_f08 use esmf implicit none diff --git a/sorc/chgres_cube.fd/sfc_input_data.F90 b/sorc/chgres_cube.fd/sfc_input_data.F90 index 4ea4d7629..c5d5d7c0f 100644 --- a/sorc/chgres_cube.fd/sfc_input_data.F90 +++ b/sorc/chgres_cube.fd/sfc_input_data.F90 @@ -1762,7 +1762,7 @@ end subroutine read_input_sfc_netcdf_file !! @author Larissa Reames subroutine read_input_sfc_grib2_file(localpet) - use mpi + use mpi_f08 use grib_mod use program_setup, only : vgtyp_from_climo, sotyp_from_climo use model_grid, only : input_grid_type diff --git a/sorc/chgres_cube.fd/surface.F90 b/sorc/chgres_cube.fd/surface.F90 index b77f83f80..37ef6dc61 100644 --- a/sorc/chgres_cube.fd/surface.F90 +++ b/sorc/chgres_cube.fd/surface.F90 @@ -247,7 +247,7 @@ end subroutine surface_driver !! @author George Gayno NOAA/EMC subroutine interp(localpet) - use mpi + use mpi_f08 use esmf use sfc_input_data, only : canopy_mc_input_grid, & diff --git a/sorc/chgres_cube.fd/utils.F90 b/sorc/chgres_cube.fd/utils.F90 index c46540c5e..2f2eccc1b 100644 --- a/sorc/chgres_cube.fd/utils.F90 +++ b/sorc/chgres_cube.fd/utils.F90 @@ -11,7 +11,7 @@ module utilities !! @param[in] rc error status code subroutine error_handler(string, rc) - use mpi + use mpi_f08 implicit none @@ -33,7 +33,7 @@ end subroutine error_handler !! @param[in] string error message subroutine netcdf_err( err, string ) - use mpi + use mpi_f08 use netcdf implicit none diff --git a/sorc/cpld_gridgen.fd/CMakeLists.txt b/sorc/cpld_gridgen.fd/CMakeLists.txt index 0cdfc3540..c4e99ae63 100644 --- a/sorc/cpld_gridgen.fd/CMakeLists.txt +++ b/sorc/cpld_gridgen.fd/CMakeLists.txt @@ -25,11 +25,6 @@ if(CMAKE_Fortran_COMPILER_ID MATCHES "^(Intel)$") set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -r8 -assume byterecl") elseif(CMAKE_Fortran_COMPILER_ID MATCHES "^(GNU)$") set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -ffree-line-length-0 -fdefault-real-8") - - # Turn on this argument mismatch flag for gfortran10. - if(CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 10) - set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fallow-argument-mismatch") - endif() endif() set(exe_name cpld_gridgen) diff --git a/sorc/gblevents.fd/CMakeLists.txt b/sorc/gblevents.fd/CMakeLists.txt index ee39d9358..22086de19 100644 --- a/sorc/gblevents.fd/CMakeLists.txt +++ b/sorc/gblevents.fd/CMakeLists.txt @@ -4,6 +4,9 @@ if(CMAKE_Fortran_COMPILER_ID MATCHES "^(Intel)$") set(CMAKE_Fortran_FLAGS_RELEASE "-O3") elseif(CMAKE_Fortran_COMPILER_ID MATCHES "^(GNU)$") set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fdefault-real-8") + if(CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 10) + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fallow-argument-mismatch") + endif() set(CMAKE_Fortran_FLAGS_RELEASE "-O3") endif() diff --git a/sorc/lsm_routines.fd/noah.fd/CMakeLists.txt b/sorc/lsm_routines.fd/noah.fd/CMakeLists.txt index b971b9712..daa252e56 100644 --- a/sorc/lsm_routines.fd/noah.fd/CMakeLists.txt +++ b/sorc/lsm_routines.fd/noah.fd/CMakeLists.txt @@ -12,9 +12,6 @@ if(CMAKE_Fortran_COMPILER_ID MATCHES "^(Intel)$") set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -r8 -convert big_endian") elseif(CMAKE_Fortran_COMPILER_ID MATCHES "^(GNU)$") set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fdefault-real-8 -fconvert=big-endian") - if(CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 10) - set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fallow-argument-mismatch") - endif() endif() set(lib_name noah_lsm_routines) diff --git a/sorc/orog_mask_tools.fd/orog.fd/CMakeLists.txt b/sorc/orog_mask_tools.fd/orog.fd/CMakeLists.txt index 79fefcefb..04ab86742 100644 --- a/sorc/orog_mask_tools.fd/orog.fd/CMakeLists.txt +++ b/sorc/orog_mask_tools.fd/orog.fd/CMakeLists.txt @@ -6,7 +6,7 @@ if(CMAKE_Fortran_COMPILER_ID MATCHES "^(Intel)$") elseif(CMAKE_Fortran_COMPILER_ID MATCHES "^(GNU)$") set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fdefault-real-8 -fconvert=big-endian -fno-range-check") if(CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 10) - set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fallow-argument-mismatch -fallow-invalid-boz") + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fallow-invalid-boz") endif() endif() if(ip_VERSION GREATER_EQUAL 4.0.0) diff --git a/sorc/orog_mask_tools.fd/orog_gsl.fd/CMakeLists.txt b/sorc/orog_mask_tools.fd/orog_gsl.fd/CMakeLists.txt index 6499db583..8704e4d54 100644 --- a/sorc/orog_mask_tools.fd/orog_gsl.fd/CMakeLists.txt +++ b/sorc/orog_mask_tools.fd/orog_gsl.fd/CMakeLists.txt @@ -9,7 +9,7 @@ if(CMAKE_Fortran_COMPILER_ID MATCHES "^(Intel)$") elseif(CMAKE_Fortran_COMPILER_ID MATCHES "^(GNU)$") set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fdefault-real-8 -fno-range-check") if(CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 10) - set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fallow-argument-mismatch -fallow-invalid-boz") + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fallow-invalid-boz") endif() endif() diff --git a/sorc/weight_gen.fd/CMakeLists.txt b/sorc/weight_gen.fd/CMakeLists.txt index 8d8e05db7..6871c37cc 100644 --- a/sorc/weight_gen.fd/CMakeLists.txt +++ b/sorc/weight_gen.fd/CMakeLists.txt @@ -6,9 +6,6 @@ if(CMAKE_Fortran_COMPILER_ID MATCHES "^(Intel)$") set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -r8 -i4 -convert big_endian") elseif(CMAKE_Fortran_COMPILER_ID MATCHES "^(GNU)$") set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fdefault-real-8") - if(CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 10) - set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fallow-argument-mismatch") - endif() endif() set(exe_name weight_gen)