Skip to content

Commit f3b9c2c

Browse files
authored
Merge pull request #109 from grantfirl/ufs-dev-PR98
UFS-dev PR#98
2 parents c96f7fe + 8132b91 commit f3b9c2c

File tree

142 files changed

+2839
-6482
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

142 files changed

+2839
-6482
lines changed

CICE-interface/CICE

Submodule CICE updated 39 files

CICE-interface/cice_files.cmake

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,6 @@ list(APPEND icepack_files
8686
CICE/icepack/columnphysics/icepack_wavefracspec.F90
8787
CICE/icepack/columnphysics/icepack_zbgc.F90
8888
CICE/icepack/columnphysics/icepack_zbgc_shared.F90
89-
CICE/icepack/columnphysics/icepack_zsalinity.F90
9089
)
9190

9291
list(APPEND cice_shared_files_c

CMEPS-interface/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ list(APPEND _nems_util_files
3131
CMEPS/ufs/ufs_kind_mod.F90
3232
CMEPS/ufs/perf_mod.F90
3333
CMEPS/ufs/ufs_const_mod.F90
34+
${PROJECT_SOURCE_DIR}/CDEPS-interface/CDEPS/share/shr_orb_mod.F90
35+
${PROJECT_SOURCE_DIR}/CDEPS-interface/CDEPS/share/shr_const_mod.F90
3436
${PROJECT_SOURCE_DIR}/CDEPS-interface/CDEPS/share/shr_abort_mod.F90
3537
${PROJECT_SOURCE_DIR}/CDEPS-interface/CDEPS/share/shr_strconvert_mod.F90
3638
${PROJECT_SOURCE_DIR}/CDEPS-interface/CDEPS/share/shr_log_mod.F90

doc/UsersGuide/build/.gitignore

Lines changed: 0 additions & 4 deletions
This file was deleted.

doc/UsersGuide/source/Configurations.rst

Lines changed: 443 additions & 3 deletions
Large diffs are not rendered by default.

doc/UsersGuide/source/Glossary.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ Glossary
5454
cron table
5555
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.
5656

57+
data assimilation
58+
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.
59+
5760
DATM
5861
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>`__.
5962

modulefiles/ufs_acorn.intel.lua

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,30 +2,20 @@ help([[
22
Load environment to build UFS on Acorn with Intel compiler
33
]])
44

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

8-
intel_ver=os.getenv("intel_ver") or "19.1.3.304"
9-
load(pathJoin("intel", intel_ver))
7+
load("stack-intel")
8+
load("stack-cray-mpich")
9+
load("stack-python")
1010

11-
craype_ver=os.getenv("craype_ver") or "2.7.13"
12-
load(pathJoin("craype", craype_ver))
13-
14-
cray_mpich_ver=os.getenv("cray_mpich_ver") or "8.1.9"
15-
load(pathJoin("cray-mpich", cray_mpich_ver))
16-
17-
cmake_ver=os.getenv("cmake_ver") or "3.20.2"
18-
load(pathJoin("cmake", cmake_ver))
19-
20-
prepend_path("MODULEPATH", "/lfs/h1/emc/nceplibs/noscrub/hpc-stack/libs/hpc-stack/modulefiles/stack")
21-
22-
hpc_ver=os.getenv("hpc_ver") or "1.2.0"
23-
hpc_intel_ver=os.getenv("hpc_intel_ver") or "19.1.3.304"
24-
hpc_cray_mpich_ver=os.getenv("hpc_cray_mpich_ver") or "8.1.9"
25-
load(pathJoin("hpc", hpc_ver))
26-
load(pathJoin("hpc-intel", hpc_intel_ver))
27-
load(pathJoin("hpc-cray-mpich", hpc_cray_mpich_ver))
11+
--Avoid production installations; use spack-stack only:
12+
remove_path("MODULEPATH", "/apps/ops/prod/libs/modulefiles/compiler/intel/19.1.3.304")
13+
remove_path("MODULEPATH", "/apps/ops/prod/libs/modulefiles/mpi/intel/19.1.3.304/cray-mpich/8.1.4")
14+
remove_path("MODULEPATH", "/apps/ops/prod/libs/modulefiles/mpi/intel/19.1.3.304/cray-mpich/8.1.7")
15+
remove_path("MODULEPATH", "/apps/prod/lmodules/intel/19.1.3.304")
16+
remove_path("MODULEPATH", "/apps/prod/lmodules/INTEL_cray_mpich/19.1.3.304/cray-mpich/8.1.4")
2817

18+
load("cmake")
2919
load("ufs_common")
3020

3121
prepend_path("MODULEPATH", "/lfs/h1/emc/nceplibs/noscrub/UPP_IFI/modulefiles")

modulefiles/ufs_cheyenne.gnu.lua

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,24 @@ load(pathJoin("hpc-gnu", hpc_gnu_ver))
3333
hpc_mpt_ver=os.getenv("hpc_mpt_ver") or "2.25"
3434
load(pathJoin("hpc-mpt", hpc_mpt_ver))
3535

36-
scotch_ver=os.getenv("scotch_ver") or "7.0.3"
37-
load(pathJoin("scotch", scotch_ver))
36+
load("jasper/2.0.25")
37+
load("zlib/1.2.11")
38+
load("hdf5/1.14.0")
39+
load("netcdf/4.9.2")
40+
load("pio/2.5.10")
41+
load("esmf/8.4.2")
42+
load("fms/2023.01")
43+
load("bacio/2.4.1")
44+
load("crtm/2.4.0")
45+
load("g2/3.4.5")
46+
load("g2tmpl/1.10.2")
47+
load("ip/3.3.3")
48+
load("sp/2.3.3")
49+
load("w3emc/2.9.2")
50+
load("gftl-shared/v1.5.0")
51+
load("mapl/2.35.2-esmf-8.4.2")
52+
load("scotch/7.0.3")
3853

39-
load("ufs_common")
4054

4155
setenv("CC", "mpicc")
4256
setenv("CXX", "mpicxx")

modulefiles/ufs_cheyenne.intel.lua

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,24 @@ load(pathJoin("hpc-intel", hpc_intel_ver))
3434
hpc_mpt_ver=os.getenv("hpc_mpt_ver") or "2.25"
3535
load(pathJoin("hpc-mpt", hpc_mpt_ver))
3636

37-
scotch_ver=os.getenv("scotch_ver") or "7.0.3"
38-
load(pathJoin("scotch", scotch_ver))
37+
load("jasper/2.0.25")
38+
load("zlib/1.2.11")
39+
load("hdf5/1.14.0")
40+
load("netcdf/4.9.2")
41+
load("pio/2.5.10")
42+
load("esmf/8.4.2")
43+
load("fms/2023.01")
44+
load("bacio/2.4.1")
45+
load("crtm/2.4.0")
46+
load("g2/3.4.5")
47+
load("g2tmpl/1.10.2")
48+
load("ip/3.3.3")
49+
load("sp/2.3.3")
50+
load("w3emc/2.9.2")
51+
load("gftl-shared/v1.5.0")
52+
load("mapl/2.35.2-esmf-8.4.2")
53+
load("scotch/7.0.3")
3954

40-
load("ufs_common")
4155

4256
setenv("CC", "mpicc")
4357
setenv("CXX", "mpicxx")

modulefiles/ufs_common.lua

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,25 @@ whatis("Description: UFS build environment common libraries")
33
help([[Load UFS Model common libraries]])
44

55
local ufs_modules = {
6-
{["jasper"] = "2.0.25"},
7-
{["zlib"] = "1.2.11"},
8-
{["libpng"] = "1.6.37"},
9-
{["hdf5"] = "1.14.0"},
10-
{["netcdf"] = "4.9.2"},
11-
{["pio"] = "2.5.10"},
12-
{["esmf"] = "8.4.2"},
13-
{["fms"] = "2023.01"},
14-
{["bacio"] = "2.4.1"},
15-
{["crtm"] = "2.4.0"},
16-
{["g2"] = "3.4.5"},
17-
{["g2tmpl"] = "1.10.2"},
18-
{["ip"] = "3.3.3"},
19-
{["sp"] = "2.3.3"},
20-
{["w3emc"] = "2.9.2"},
21-
{["gftl-shared"] = "v1.5.0"},
22-
{["mapl"] = "2.35.2-esmf-8.4.2"},
6+
{["jasper"] = "2.0.32"},
7+
{["zlib"] = "1.2.13"},
8+
{["libpng"] = "1.6.37"},
9+
{["hdf5"] = "1.14.0"},
10+
{["netcdf-c"] = "4.9.2"},
11+
{["netcdf-fortran"] = "4.6.0"},
12+
{["parallelio"] = "2.5.10"},
13+
{["esmf"] = "8.4.2"},
14+
{["fms"] = "2023.01"},
15+
{["bacio"] = "2.4.1"},
16+
{["crtm"] = "2.4.0"},
17+
{["g2"] = "3.4.5"},
18+
{["g2tmpl"] = "1.10.2"},
19+
{["ip"] = "3.3.3"},
20+
{["sp"] = "2.3.3"},
21+
{["w3emc"] = "2.9.2"},
22+
{["gftl-shared"] = "1.5.0"},
23+
{["mapl"] = "2.35.2-esmf-8.4.2"},
24+
{["scotch"] = "7.0.3"},
2325
}
2426

2527
for i = 1, #ufs_modules do

modulefiles/ufs_common_spack.lua

Lines changed: 0 additions & 57 deletions
This file was deleted.

modulefiles/ufs_gaea.intel.lua

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,32 @@ help([[
55

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

8-
load_any(pathJoin("cmake", os.getenv("cmake_ver") or "3.20.1"),"cmake")
8+
unload("intel")
9+
unload("cray-mpich")
10+
unload("cray-python")
11+
unload("darshan")
912

10-
prepend_path("MODULEPATH","/lustre/f2/dev/role.epic/contrib/hpc-stack/intel-classic-2022.0.2_ncdf492/modulefiles/stack")
11-
load(pathJoin("hpc", os.getenv("hpc_ver") or "1.2.0"))
13+
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")
14+
prepend_path("MODULEPATH", "/lustre/f2/pdata/esrl/gsd/spack-stack/modulefiles")
1215

13-
load(pathJoin("intel-classic", os.getenv("intel_classic_ver") or "2022.0.2"))
14-
load(pathJoin("cray-mpich", os.getenv("cray_mpich_ver") or "7.7.20"))
15-
load(pathJoin("hpc-intel-classic", os.getenv("hpc_intel_classic_ver") or "2022.0.2"))
16-
load(pathJoin("hpc-cray-mpich", os.getenv("hpc_cray_mpich_ver") or "7.7.20"))
17-
load(pathJoin("libpng", os.getenv("libpng_ver") or "1.6.37"))
16+
stack_intel_ver=os.getenv("stack_intel_ver") or "2022.0.2"
17+
load(pathJoin("stack-intel", stack_intel_ver))
18+
19+
stack_cray_mpich_ver=os.getenv("stack_cray_mpich_ver") or "7.7.20"
20+
load(pathJoin("stack-cray-mpich", stack_cray_mpich_ver))
21+
22+
stack_python_ver=os.getenv("stack_python_ver") or "3.9.12"
23+
load(pathJoin("stack-python", stack_python_ver))
24+
25+
cmake_ver=os.getenv("cmake_ver") or "3.23.1"
26+
load(pathJoin("cmake", cmake_ver))
1827

1928
-- Needed at runtime:
2029
load("alps")
2130

2231
load("ufs_common")
2332

2433
setenv("CC","cc")
25-
setenv("FC","ftn")
2634
setenv("CXX","CC")
35+
setenv("FC","ftn")
2736
setenv("CMAKE_Platform","gaea.intel")

modulefiles/ufs_hera.gnu.lua

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,33 +2,25 @@ help([[
22
loads UFS Model prerequisites for Hera/GNU
33
]])
44

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

8-
cmake_ver=os.getenv("cmake_ver") or "3.20.1"
9-
load(pathJoin("cmake", cmake_ver))
10-
11-
gnu_ver=os.getenv("gnu_ver") or "9.2.0"
12-
load(pathJoin("gnu", gnu_ver))
13-
14-
prepend_path("MODULEPATH", "/scratch1/NCEPDEV/nems/role.epic/hpc-stack/libs/gnu-9.2_ncdf492/modulefiles/stack")
8+
stack_gnu_ver=os.getenv("stack_gnu_ver") or "9.2.0"
9+
load(pathJoin("stack-gcc", stack_gnu_ver))
1510

16-
hpc_ver=os.getenv("hpc_ver") or "1.2.0"
17-
load(pathJoin("hpc", hpc_ver))
11+
stack_openmpi_ver=os.getenv("stack_openmpi_ver") or "4.1.5"
12+
load(pathJoin("stack-openmpi", stack_openmpi_ver))
1813

19-
hpc_gnu_ver=os.getenv("hpc_gnu_ver") or "9.2"
20-
load(pathJoin("hpc-gnu", hpc_gnu_ver))
14+
stack_python_ver=os.getenv("stack_python_ver") or "3.9.12"
15+
load(pathJoin("stack-python", stack_python_ver))
2116

22-
hpc_mpich_ver=os.getenv("hpc_mpich_ver") or "3.3.2"
23-
load(pathJoin("hpc-mpich", hpc_mpich_ver))
24-
25-
scotch_ver=os.getenv("scotch_ver") or "7.0.3"
26-
load(pathJoin("scotch", scotch_ver))
17+
cmake_ver=os.getenv("cmake_ver") or "3.23.1"
18+
load(pathJoin("cmake", cmake_ver))
2719

2820
load("ufs_common")
2921

3022
setenv("CC", "mpicc")
31-
setenv("CXX", "mpicxx")
23+
setenv("CXX", "mpic++")
3224
setenv("FC", "mpif90")
3325
setenv("CMAKE_Platform", "hera.gnu")
3426

modulefiles/ufs_hera.intel.lua

Lines changed: 10 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,20 @@ help([[
22
loads UFS Model prerequisites for Hera/Intel
33
]])
44

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

8-
cmake_ver=os.getenv("cmake_ver") or "3.20.1"
9-
load(pathJoin("cmake", cmake_ver))
10-
11-
intel_ver=os.getenv("intel_ver") or "2022.1.2"
12-
load(pathJoin("intel", intel_ver))
13-
14-
impi_ver=os.getenv("impi_ver") or "2022.1.2"
15-
load(pathJoin("impi", impi_ver))
16-
17-
prepend_path("MODULEPATH", "/scratch1/NCEPDEV/nems/role.epic/hpc-stack/libs/intel-2022.1.2_ncdf492/modulefiles/stack")
8+
stack_intel_ver=os.getenv("stack_intel_ver") or "2021.5.0"
9+
load(pathJoin("stack-intel", stack_intel_ver))
1810

19-
hpc_ver=os.getenv("hpc_ver") or "1.2.0"
20-
load(pathJoin("hpc", hpc_ver))
11+
stack_impi_ver=os.getenv("stack_impi_ver") or "2021.5.1"
12+
load(pathJoin("stack-intel-oneapi-mpi", stack_impi_ver))
2113

22-
hpc_intel_ver=os.getenv("hpc_intel_ver") or "2022.1.2"
23-
load(pathJoin("hpc-intel", hpc_intel_ver))
14+
stack_python_ver=os.getenv("stack_python_ver") or "3.9.12"
15+
load(pathJoin("stack-python", stack_python_ver))
2416

25-
hpc_impi_ver=os.getenv("hpc_impi_ver") or "2022.1.2"
26-
load(pathJoin("hpc-impi", hpc_impi_ver))
27-
28-
scotch_ver=os.getenv("scotch_ver") or "7.0.3"
29-
load(pathJoin("scotch", scotch_ver))
17+
cmake_ver=os.getenv("cmake_ver") or "3.23.1"
18+
load(pathJoin("cmake", cmake_ver))
3019

3120
load("ufs_common")
3221

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

38-
prepend_path("MODULEPATH", "/scratch2/BMC/ifi/modulefiles")
39-
try_load("ifi/20230118-intel-2022.1.2")
40-
4127
whatis("Description: UFS build environment")

0 commit comments

Comments
 (0)