Skip to content

Commit

Permalink
Merge pull request #109 from grantfirl/ufs-dev-PR98
Browse files Browse the repository at this point in the history
UFS-dev PR#98
  • Loading branch information
grantfirl authored Jan 24, 2024
2 parents c96f7fe + 8132b91 commit f3b9c2c
Show file tree
Hide file tree
Showing 142 changed files with 2,839 additions and 6,482 deletions.
2 changes: 1 addition & 1 deletion CICE-interface/CICE
Submodule CICE updated 39 files
+35 −8 .github/workflows/test-cice.yml
+3 −222 cicecore/cicedyn/analysis/ice_diagnostics_bgc.F90
+2 −2 cicecore/cicedyn/analysis/ice_history.F90
+17 −113 cicecore/cicedyn/analysis/ice_history_bgc.F90
+2 −6 cicecore/cicedyn/dynamics/ice_transport_driver.F90
+0 −10 cicecore/cicedyn/general/ice_flux.F90
+0 −6 cicecore/cicedyn/general/ice_flux_bgc.F90
+1 −1 cicecore/cicedyn/general/ice_init.F90
+15 −23 cicecore/cicedyn/general/ice_step_mod.F90
+1 −0 cicecore/cicedyn/infrastructure/ice_read_write.F90
+5 −15 cicecore/cicedyn/infrastructure/io/io_binary/ice_restart.F90
+2 −13 cicecore/cicedyn/infrastructure/io/io_netcdf/ice_restart.F90
+2 −12 cicecore/cicedyn/infrastructure/io/io_pio2/ice_restart.F90
+4 −7 cicecore/drivers/nuopc/cmeps/CICE_InitMod.F90
+23 −16 cicecore/drivers/nuopc/cmeps/CICE_RunMod.F90
+76 −8 cicecore/drivers/nuopc/cmeps/cice_wrapper_mod.F90
+24 −3 cicecore/drivers/nuopc/cmeps/ice_comp_nuopc.F90
+4 −6 cicecore/drivers/standalone/cice/CICE_InitMod.F90
+7 −12 cicecore/drivers/standalone/cice/CICE_RunMod.F90
+59 −16 cicecore/drivers/unittest/gridavgchk/CICE_InitMod.F90
+59 −16 cicecore/drivers/unittest/halochk/CICE_InitMod.F90
+4 −6 cicecore/drivers/unittest/opticep/CICE_InitMod.F90
+7 −12 cicecore/drivers/unittest/opticep/CICE_RunMod.F90
+21 −123 cicecore/drivers/unittest/opticep/ice_init_column.F90
+12 −20 cicecore/drivers/unittest/opticep/ice_step_mod.F90
+59 −17 cicecore/drivers/unittest/sumchk/CICE_InitMod.F90
+17 −58 cicecore/shared/ice_arrays_column.F90
+19 −119 cicecore/shared/ice_init_column.F90
+8 −86 cicecore/shared/ice_restart_column.F90
+4 −2 configuration/scripts/cice.batch.csh
+2 −2 configuration/scripts/cice.launch.csh
+0 −56 configuration/scripts/machines/Macros.badger_intel
+58 −0 configuration/scripts/machines/Macros.chicoma_intel
+6 −4 configuration/scripts/machines/Macros.conda_macos
+0 −47 configuration/scripts/machines/env.badger_intel
+71 −0 configuration/scripts/machines/env.chicoma_intel
+0 −8 configuration/scripts/options/set_nml.zsal
+2 −2 doc/source/user_guide/ug_case_settings.rst
+1 −1 icepack
1 change: 0 additions & 1 deletion CICE-interface/cice_files.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,6 @@ list(APPEND icepack_files
CICE/icepack/columnphysics/icepack_wavefracspec.F90
CICE/icepack/columnphysics/icepack_zbgc.F90
CICE/icepack/columnphysics/icepack_zbgc_shared.F90
CICE/icepack/columnphysics/icepack_zsalinity.F90
)

list(APPEND cice_shared_files_c
Expand Down
2 changes: 2 additions & 0 deletions CMEPS-interface/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ list(APPEND _nems_util_files
CMEPS/ufs/ufs_kind_mod.F90
CMEPS/ufs/perf_mod.F90
CMEPS/ufs/ufs_const_mod.F90
${PROJECT_SOURCE_DIR}/CDEPS-interface/CDEPS/share/shr_orb_mod.F90
${PROJECT_SOURCE_DIR}/CDEPS-interface/CDEPS/share/shr_const_mod.F90
${PROJECT_SOURCE_DIR}/CDEPS-interface/CDEPS/share/shr_abort_mod.F90
${PROJECT_SOURCE_DIR}/CDEPS-interface/CDEPS/share/shr_strconvert_mod.F90
${PROJECT_SOURCE_DIR}/CDEPS-interface/CDEPS/share/shr_log_mod.F90
Expand Down
2 changes: 1 addition & 1 deletion MOM6-interface/MOM6
4 changes: 0 additions & 4 deletions doc/UsersGuide/build/.gitignore

This file was deleted.

446 changes: 443 additions & 3 deletions doc/UsersGuide/source/Configurations.rst

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions doc/UsersGuide/source/Glossary.rst
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,9 @@ Glossary
cron table
Cron is a job scheduler accessed through the command-line on UNIX-like operating systems. It is useful for automating tasks such as regression testing. Cron periodically checks a cron table (aka crontab) to see if any tasks are are ready to execute. If so, it runs them.

data assimilation
Data assimilation is the process of combining observations, model data, and error statistics to achieve the best estimate of the state of a system. One of the major sources of error in weather and climate forecasts is uncertainty related to the initial conditions that are used to generate future predictions. Even the most precise instruments have a small range of unavoidable measurement error, which means that tiny measurement errors (e.g., related to atmospheric conditions and instrument location) can compound over time. These small differences result in very similar forecasts in the short term (i.e., minutes, hours), but they cause widely divergent forecasts in the long term. Errors in weather and climate forecasts can also arise because models are imperfect representations of reality. Data assimilation systems seek to mitigate these problems by combining the most timely observational data with a "first guess" of the atmospheric state (usually a previous forecast) and other sources of data to provide a "best guess" analysis of the atmospheric state to start a weather or climate simulation. When combined with an "ensemble" of model runs (many forecasts with slightly different conditions), data assimilation helps predict a range of possible atmospheric states, giving an overall measure of uncertainty in a given forecast.

DATM
DATM is the *Data Atmosphere* component of :term:`CDEPS`. It uses static atmospheric forcing files (derived from observations or previous atmospheric model runs) instead of output from an active atmospheric model. This reduces the complexity and computational cost associated with coupling to an active atmospheric model. The *Data Atmosphere* component is particularly useful when employing computationally intensive Data Assimilation (DA) techniques to update ocean and/or sea ice fields in a coupled model. In general, use of DATM in place of :term:`ATM` can be appropriate when users are running a coupled model and only want certain components of the model to be active. More information about DATM is available in the `CDEPS Documentation <https://escomp.github.io/CDEPS/versions/master/html/datm.html>`__.

Expand Down
32 changes: 11 additions & 21 deletions modulefiles/ufs_acorn.intel.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2,30 +2,20 @@ help([[
Load environment to build UFS on Acorn with Intel compiler
]])

PrgEnv_intel_ver=os.getenv("PrgEnv_intel_ver") or "8.1.0"
load(pathJoin("PrgEnv-intel", PrgEnv_intel_ver))
prepend_path("MODULEPATH", "/lfs/h1/emc/nceplibs/noscrub/spack-stack/spack-stack-1.4.1/envs/ufs-pio-2.5.10/install/modulefiles/Core")

intel_ver=os.getenv("intel_ver") or "19.1.3.304"
load(pathJoin("intel", intel_ver))
load("stack-intel")
load("stack-cray-mpich")
load("stack-python")

craype_ver=os.getenv("craype_ver") or "2.7.13"
load(pathJoin("craype", craype_ver))

cray_mpich_ver=os.getenv("cray_mpich_ver") or "8.1.9"
load(pathJoin("cray-mpich", cray_mpich_ver))

cmake_ver=os.getenv("cmake_ver") or "3.20.2"
load(pathJoin("cmake", cmake_ver))

prepend_path("MODULEPATH", "/lfs/h1/emc/nceplibs/noscrub/hpc-stack/libs/hpc-stack/modulefiles/stack")

hpc_ver=os.getenv("hpc_ver") or "1.2.0"
hpc_intel_ver=os.getenv("hpc_intel_ver") or "19.1.3.304"
hpc_cray_mpich_ver=os.getenv("hpc_cray_mpich_ver") or "8.1.9"
load(pathJoin("hpc", hpc_ver))
load(pathJoin("hpc-intel", hpc_intel_ver))
load(pathJoin("hpc-cray-mpich", hpc_cray_mpich_ver))
--Avoid production installations; use spack-stack only:
remove_path("MODULEPATH", "/apps/ops/prod/libs/modulefiles/compiler/intel/19.1.3.304")
remove_path("MODULEPATH", "/apps/ops/prod/libs/modulefiles/mpi/intel/19.1.3.304/cray-mpich/8.1.4")
remove_path("MODULEPATH", "/apps/ops/prod/libs/modulefiles/mpi/intel/19.1.3.304/cray-mpich/8.1.7")
remove_path("MODULEPATH", "/apps/prod/lmodules/intel/19.1.3.304")
remove_path("MODULEPATH", "/apps/prod/lmodules/INTEL_cray_mpich/19.1.3.304/cray-mpich/8.1.4")

load("cmake")
load("ufs_common")

prepend_path("MODULEPATH", "/lfs/h1/emc/nceplibs/noscrub/UPP_IFI/modulefiles")
Expand Down
20 changes: 17 additions & 3 deletions modulefiles/ufs_cheyenne.gnu.lua
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,24 @@ load(pathJoin("hpc-gnu", hpc_gnu_ver))
hpc_mpt_ver=os.getenv("hpc_mpt_ver") or "2.25"
load(pathJoin("hpc-mpt", hpc_mpt_ver))

scotch_ver=os.getenv("scotch_ver") or "7.0.3"
load(pathJoin("scotch", scotch_ver))
load("jasper/2.0.25")
load("zlib/1.2.11")
load("hdf5/1.14.0")
load("netcdf/4.9.2")
load("pio/2.5.10")
load("esmf/8.4.2")
load("fms/2023.01")
load("bacio/2.4.1")
load("crtm/2.4.0")
load("g2/3.4.5")
load("g2tmpl/1.10.2")
load("ip/3.3.3")
load("sp/2.3.3")
load("w3emc/2.9.2")
load("gftl-shared/v1.5.0")
load("mapl/2.35.2-esmf-8.4.2")
load("scotch/7.0.3")

load("ufs_common")

setenv("CC", "mpicc")
setenv("CXX", "mpicxx")
Expand Down
20 changes: 17 additions & 3 deletions modulefiles/ufs_cheyenne.intel.lua
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,24 @@ load(pathJoin("hpc-intel", hpc_intel_ver))
hpc_mpt_ver=os.getenv("hpc_mpt_ver") or "2.25"
load(pathJoin("hpc-mpt", hpc_mpt_ver))

scotch_ver=os.getenv("scotch_ver") or "7.0.3"
load(pathJoin("scotch", scotch_ver))
load("jasper/2.0.25")
load("zlib/1.2.11")
load("hdf5/1.14.0")
load("netcdf/4.9.2")
load("pio/2.5.10")
load("esmf/8.4.2")
load("fms/2023.01")
load("bacio/2.4.1")
load("crtm/2.4.0")
load("g2/3.4.5")
load("g2tmpl/1.10.2")
load("ip/3.3.3")
load("sp/2.3.3")
load("w3emc/2.9.2")
load("gftl-shared/v1.5.0")
load("mapl/2.35.2-esmf-8.4.2")
load("scotch/7.0.3")

load("ufs_common")

setenv("CC", "mpicc")
setenv("CXX", "mpicxx")
Expand Down
36 changes: 19 additions & 17 deletions modulefiles/ufs_common.lua
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,25 @@ whatis("Description: UFS build environment common libraries")
help([[Load UFS Model common libraries]])

local ufs_modules = {
{["jasper"] = "2.0.25"},
{["zlib"] = "1.2.11"},
{["libpng"] = "1.6.37"},
{["hdf5"] = "1.14.0"},
{["netcdf"] = "4.9.2"},
{["pio"] = "2.5.10"},
{["esmf"] = "8.4.2"},
{["fms"] = "2023.01"},
{["bacio"] = "2.4.1"},
{["crtm"] = "2.4.0"},
{["g2"] = "3.4.5"},
{["g2tmpl"] = "1.10.2"},
{["ip"] = "3.3.3"},
{["sp"] = "2.3.3"},
{["w3emc"] = "2.9.2"},
{["gftl-shared"] = "v1.5.0"},
{["mapl"] = "2.35.2-esmf-8.4.2"},
{["jasper"] = "2.0.32"},
{["zlib"] = "1.2.13"},
{["libpng"] = "1.6.37"},
{["hdf5"] = "1.14.0"},
{["netcdf-c"] = "4.9.2"},
{["netcdf-fortran"] = "4.6.0"},
{["parallelio"] = "2.5.10"},
{["esmf"] = "8.4.2"},
{["fms"] = "2023.01"},
{["bacio"] = "2.4.1"},
{["crtm"] = "2.4.0"},
{["g2"] = "3.4.5"},
{["g2tmpl"] = "1.10.2"},
{["ip"] = "3.3.3"},
{["sp"] = "2.3.3"},
{["w3emc"] = "2.9.2"},
{["gftl-shared"] = "1.5.0"},
{["mapl"] = "2.35.2-esmf-8.4.2"},
{["scotch"] = "7.0.3"},
}

for i = 1, #ufs_modules do
Expand Down
57 changes: 0 additions & 57 deletions modulefiles/ufs_common_spack.lua

This file was deleted.

27 changes: 18 additions & 9 deletions modulefiles/ufs_gaea.intel.lua
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,32 @@ help([[

whatis([===[Loads libraries needed for building the UFS Weather Model on Gaea ]===])

load_any(pathJoin("cmake", os.getenv("cmake_ver") or "3.20.1"),"cmake")
unload("intel")
unload("cray-mpich")
unload("cray-python")
unload("darshan")

prepend_path("MODULEPATH","/lustre/f2/dev/role.epic/contrib/hpc-stack/intel-classic-2022.0.2_ncdf492/modulefiles/stack")
load(pathJoin("hpc", os.getenv("hpc_ver") or "1.2.0"))
prepend_path("MODULEPATH", "/lustre/f2/dev/wpo/role.epic/contrib/spack-stack/spack-stack-1.4.1-c4/envs/ufs-pio-2.5.10/install/modulefiles/Core")
prepend_path("MODULEPATH", "/lustre/f2/pdata/esrl/gsd/spack-stack/modulefiles")

load(pathJoin("intel-classic", os.getenv("intel_classic_ver") or "2022.0.2"))
load(pathJoin("cray-mpich", os.getenv("cray_mpich_ver") or "7.7.20"))
load(pathJoin("hpc-intel-classic", os.getenv("hpc_intel_classic_ver") or "2022.0.2"))
load(pathJoin("hpc-cray-mpich", os.getenv("hpc_cray_mpich_ver") or "7.7.20"))
load(pathJoin("libpng", os.getenv("libpng_ver") or "1.6.37"))
stack_intel_ver=os.getenv("stack_intel_ver") or "2022.0.2"
load(pathJoin("stack-intel", stack_intel_ver))

stack_cray_mpich_ver=os.getenv("stack_cray_mpich_ver") or "7.7.20"
load(pathJoin("stack-cray-mpich", stack_cray_mpich_ver))

stack_python_ver=os.getenv("stack_python_ver") or "3.9.12"
load(pathJoin("stack-python", stack_python_ver))

cmake_ver=os.getenv("cmake_ver") or "3.23.1"
load(pathJoin("cmake", cmake_ver))

-- Needed at runtime:
load("alps")

load("ufs_common")

setenv("CC","cc")
setenv("FC","ftn")
setenv("CXX","CC")
setenv("FC","ftn")
setenv("CMAKE_Platform","gaea.intel")
30 changes: 11 additions & 19 deletions modulefiles/ufs_hera.gnu.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2,33 +2,25 @@ help([[
loads UFS Model prerequisites for Hera/GNU
]])

prepend_path("MODULEPATH", "/contrib/sutils/modulefiles")
load("sutils")
prepend_path("MODULEPATH", "/scratch1/NCEPDEV/nems/role.epic/spack-stack/spack-stack-1.4.1/envs/ufs-pio-2.5.10/install/modulefiles/Core")
prepend_path("MODULEPATH", "/scratch1/NCEPDEV/jcsda/jedipara/spack-stack/modulefiles")

cmake_ver=os.getenv("cmake_ver") or "3.20.1"
load(pathJoin("cmake", cmake_ver))

gnu_ver=os.getenv("gnu_ver") or "9.2.0"
load(pathJoin("gnu", gnu_ver))

prepend_path("MODULEPATH", "/scratch1/NCEPDEV/nems/role.epic/hpc-stack/libs/gnu-9.2_ncdf492/modulefiles/stack")
stack_gnu_ver=os.getenv("stack_gnu_ver") or "9.2.0"
load(pathJoin("stack-gcc", stack_gnu_ver))

hpc_ver=os.getenv("hpc_ver") or "1.2.0"
load(pathJoin("hpc", hpc_ver))
stack_openmpi_ver=os.getenv("stack_openmpi_ver") or "4.1.5"
load(pathJoin("stack-openmpi", stack_openmpi_ver))

hpc_gnu_ver=os.getenv("hpc_gnu_ver") or "9.2"
load(pathJoin("hpc-gnu", hpc_gnu_ver))
stack_python_ver=os.getenv("stack_python_ver") or "3.9.12"
load(pathJoin("stack-python", stack_python_ver))

hpc_mpich_ver=os.getenv("hpc_mpich_ver") or "3.3.2"
load(pathJoin("hpc-mpich", hpc_mpich_ver))

scotch_ver=os.getenv("scotch_ver") or "7.0.3"
load(pathJoin("scotch", scotch_ver))
cmake_ver=os.getenv("cmake_ver") or "3.23.1"
load(pathJoin("cmake", cmake_ver))

load("ufs_common")

setenv("CC", "mpicc")
setenv("CXX", "mpicxx")
setenv("CXX", "mpic++")
setenv("FC", "mpif90")
setenv("CMAKE_Platform", "hera.gnu")

Expand Down
34 changes: 10 additions & 24 deletions modulefiles/ufs_hera.intel.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,20 @@ help([[
loads UFS Model prerequisites for Hera/Intel
]])

prepend_path("MODULEPATH", "/contrib/sutils/modulefiles")
load("sutils")
prepend_path("MODULEPATH", "/scratch1/NCEPDEV/nems/role.epic/spack-stack/spack-stack-1.4.1/envs/ufs-pio-2.5.10/install/modulefiles/Core")
prepend_path("MODULEPATH", "/scratch1/NCEPDEV/jcsda/jedipara/spack-stack/modulefiles")

cmake_ver=os.getenv("cmake_ver") or "3.20.1"
load(pathJoin("cmake", cmake_ver))

intel_ver=os.getenv("intel_ver") or "2022.1.2"
load(pathJoin("intel", intel_ver))

impi_ver=os.getenv("impi_ver") or "2022.1.2"
load(pathJoin("impi", impi_ver))

prepend_path("MODULEPATH", "/scratch1/NCEPDEV/nems/role.epic/hpc-stack/libs/intel-2022.1.2_ncdf492/modulefiles/stack")
stack_intel_ver=os.getenv("stack_intel_ver") or "2021.5.0"
load(pathJoin("stack-intel", stack_intel_ver))

hpc_ver=os.getenv("hpc_ver") or "1.2.0"
load(pathJoin("hpc", hpc_ver))
stack_impi_ver=os.getenv("stack_impi_ver") or "2021.5.1"
load(pathJoin("stack-intel-oneapi-mpi", stack_impi_ver))

hpc_intel_ver=os.getenv("hpc_intel_ver") or "2022.1.2"
load(pathJoin("hpc-intel", hpc_intel_ver))
stack_python_ver=os.getenv("stack_python_ver") or "3.9.12"
load(pathJoin("stack-python", stack_python_ver))

hpc_impi_ver=os.getenv("hpc_impi_ver") or "2022.1.2"
load(pathJoin("hpc-impi", hpc_impi_ver))

scotch_ver=os.getenv("scotch_ver") or "7.0.3"
load(pathJoin("scotch", scotch_ver))
cmake_ver=os.getenv("cmake_ver") or "3.23.1"
load(pathJoin("cmake", cmake_ver))

load("ufs_common")

Expand All @@ -35,7 +24,4 @@ setenv("CXX", "mpiicpc")
setenv("FC", "mpiifort")
setenv("CMAKE_Platform", "hera.intel")

prepend_path("MODULEPATH", "/scratch2/BMC/ifi/modulefiles")
try_load("ifi/20230118-intel-2022.1.2")

whatis("Description: UFS build environment")
Loading

0 comments on commit f3b9c2c

Please sign in to comment.