Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UFS-dev PR#98 #109

Merged
merged 12 commits into from
Jan 24, 2024
Merged
Show file tree
Hide file tree
Changes from 11 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
[submodule "FV3"]
path = FV3
url = https://github.com/NCAR/fv3atm
branch = main
#url = https://github.com/NCAR/fv3atm
#branch = main
url = https://github.com/grantfirl/fv3atm
branch = ufs-dev-PR98
[submodule "WW3"]
path = WW3
url = https://github.com/NOAA-EMC/WW3
Expand Down
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