Skip to content

Commit

Permalink
Merge branch 'ufs-community:develop' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
JeffBeck-NOAA authored Sep 2, 2022
2 parents 012640c + c721768 commit b851002
Show file tree
Hide file tree
Showing 103 changed files with 4,914 additions and 2,604 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/intel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
CXX: icpc
strategy:
matrix:
os: [ubuntu-20.04]
os: [ubuntu-latest]

steps:

Expand Down
13 changes: 7 additions & 6 deletions .github/workflows/linux-mac-nceplibs-mpi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
CXX: g++-9
strategy:
matrix:
os: [macos-10.15, ubuntu-20.04]
os: [macos-latest, ubuntu-latest]
compiler: [gcc-9]
nceplibs_version: [develop, 1.4.0]
mpi_type: [mpich, openmpi]
Expand All @@ -25,13 +25,14 @@ jobs:
- name: install-dependencies
run: |
echo "$HOME/mpi/bin" >> $GITHUB_PATH
if [[ ${{ matrix.os }} == "ubuntu-20.04" ]]; then
if [[ ${{ matrix.os }} == "ubuntu-latest" ]]; then
sudo apt-get update
sudo apt-get install libpng-dev
sudo apt-get install libjpeg-dev
elif [[ ${{ matrix.os }} == "macos-10.15" ]]; then
brew update
elif [[ ${{ matrix.os }} == "macos-latest" ]]; then
brew update
brew install wget
brew install jpeg-turbo
if [[ ${{ matrix.compiler }} == "gcc-9" ]]; then
sudo ln -sf /usr/local/bin/gfortran-9 /usr/local/bin/gfortran
elif [[ ${{ matrix.compiler }} == "gcc-10" ]]; then
Expand Down Expand Up @@ -61,9 +62,9 @@ jobs:
wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.1.tar.gz &> /dev/null
tar -xzf openmpi-4.1.1.tar.gz
cd openmpi-4.1.1
if [[ ${{ matrix.os }} == "ubuntu-20.04" ]]; then
if [[ ${{ matrix.os }} == "ubuntu-latest" ]]; then
./configure --prefix=$HOME/mpi --enable-mpi-fortran --enable-mpi-cxx
elif [[ ${{ matrix.os }} == "macos-10.15" ]]; then
elif [[ ${{ matrix.os }} == "macos-latest" ]]; then
./configure --prefix=$HOME/mpi --enable-mpi-fortran --enable-mpi-cxx --enable-two-level-namespace
fi
make -j2
Expand Down
6 changes: 0 additions & 6 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -70,12 +70,6 @@ find_package(ip 3.3.3 REQUIRED)
find_package(g2 3.4.3 REQUIRED)
find_package(sigio 2.3.0 REQUIRED)

# EMC requires executables in ./exec
set(exec_dir bin)
if(EMC_EXEC_DIR)
set(exec_dir exec)
endif()

# If doxygen documentation we enabled, build it. This must come before
# adding the source code directories; the main documentation build
# must happen before any of the utility document builds.
Expand Down
52 changes: 23 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ https://ufs-community.github.io/UFS_UTILS/.
Utility | Programmer(s)
--------|----------
chgres_cube | George Gayno, Jeff Beck, Larissa Reames
cpld_gridgen | Denise Worthen, Minsuk Ji
cpld_gridgen | Denise Worthen
emcsfc_ice_blend | George Gayno
emcsfc_snow2mdl | George Gayno
fre-nctools | GFDL progammer
Expand All @@ -27,6 +27,7 @@ grid_tools | R. J. Purser (regional_esg_grid), Tom Black/Ben Blake (shave.fd), G
orog_mask_tools | Ning Wang, Jordan Alpert, Shan Sun and Ning Wang
sfc_climo_gen | George Gayno
vcoord_gen | Fanglin Yang, Mark Iredell
weight_gen | George Gayno

UFS_UTILS Code managers: George Gayno, Kyle Gerheiser, Jeff Beck, Larissa Reames

Expand Down Expand Up @@ -58,6 +59,14 @@ It also uses the following repositories:

## Installing

On Orion, Jet, Hera and WCOSS2, invoke the build script:

```
./build_all.sh
```

Otherwise, do:

```
mkdir build
cd build
Expand All @@ -68,51 +77,36 @@ make install

## Contents

The UFS_UTILS package contains the following utilities (under the sorc
directory):
- chgres_cube
- cpld_gridgen
- emcsfc_ice_blend
- emcsfc_snow2mdl
- fre-nctools
- fvcom_tools
- gblevents
- global_cycle
- grid_tools
- orog_mask_tools
- sfc_climo_gen
- vcoord_gen

The reg_tests directory contains the consistency test code.

The fix directory is where we set links to directories containing
The `sorc` directory contains the source code.

The `reg_tests` directory contains the consistency test code.

The `fix` directory contains links to directories containing
large, static data files used by UFS_UTILS programs.

The tests directory contains unit tests.
The `tests` directory contains unit tests.

The ush directory contains scripts to run UFS_UTILS programs. Most
The `ush` directory contains scripts to run UFS_UTILS programs. Most
are called from driver scripts.

The util directory contains utility scripts to create coldstart
initial conditions for GFS parallels, and to run the vertical
coordinate generator.
The `util` directory contains utility scripts.

The parm directory contains variable mapping parameter tables used by
The `parm` directory contains variable mapping parameter tables used by
the chgres_cube program.

The driver_scripts directory contains high-level driver scripts to
The `driver_scripts` directory contains high-level driver scripts to
create a model grid on officially supported HPC platforms.

The modulefiles directory contains modules loaded when building
The `modulefiles` directory contains modules loaded when building
UFS_UTILS on supported HPC platforms. They are also loaded at runtime
by utility and consistency test scripts.

The docs directory contains the control file for the doxygen
The `docs` directory contains the control file for the doxygen
documentation build, as well as some markdown files which are part of
the documentation. It also contains (in the source subdirectory) the
ReadTheDocs documentation files.

The cmake directory contains CMake package find utilities, and utilities to
The `cmake` directory contains CMake package find utilities, and utilities to
run units tests on some supported HPC platforms.

## References
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.7.0
1.8.0
20 changes: 10 additions & 10 deletions build_all.sh
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
#! /usr/bin/env bash
#
# This build script is only used on NOAA WCOSS systems. All other
# users should set module files as needed, and build directly with
# CMake.
# This build script is only used on officially supported machines. All other
# users should set module files as needed, and build directly with CMake.
#
# George Gayno

Expand All @@ -26,17 +25,18 @@ else
set -x
fi


# The unit test data download is part of the build system. Not all machines can
# access the EMC ftp site, so turn off the build (-DBUILD_TESTING=OFF) of the units tests accordingly.
# Those with access to the EMC ftp site are: Orion, Hera, WCOSS-Cray, WCOSS-Dell.
# Those with access to the EMC ftp site are: Orion and Hera.

if [[ "$target" == "hera" || "$target" == "orion" || "$target" == "wcoss_cray" || "$target" == "wcoss_dell_p3" ]]; then
CMAKE_FLAGS="-DCMAKE_INSTALL_PREFIX=../ -DEMC_EXEC_DIR=ON -DBUILD_TESTING=OFF"
#CMAKE_FLAGS="-DCMAKE_INSTALL_PREFIX=../ -DEMC_EXEC_DIR=ON -DBUILD_TESTING=ON"
#CMAKE_FLAGS="-DCMAKE_INSTALL_PREFIX=../ -DEMC_EXEC_DIR=ON -DENABLE_DOCS=ON -DBUILD_TESTING=ON"
if [[ "$target" == "hera" || "$target" == "orion" || "$target" == "wcoss2" ]]; then
CMAKE_FLAGS="-DCMAKE_INSTALL_PREFIX=../ -DCMAKE_INSTALL_BINDIR=exec -DBUILD_TESTING=OFF"
#CMAKE_FLAGS="-DCMAKE_INSTALL_PREFIX=../ -DCMAKE_INSTALL_BINDIR=exec -DBUILD_TESTING=ON"
#CMAKE_FLAGS="-DCMAKE_INSTALL_PREFIX=../ -DCMAKE_INSTALL_BINDIR=exec -DENABLE_DOCS=ON -DBUILD_TESTING=ON"
else
CMAKE_FLAGS="-DCMAKE_INSTALL_PREFIX=../ -DEMC_EXEC_DIR=ON -DBUILD_TESTING=OFF"
#CMAKE_FLAGS="-DCMAKE_INSTALL_PREFIX=../ -DEMC_EXEC_DIR=ON -DENABLE_DOCS=ON -DBUILD_TESTING=OFF"
CMAKE_FLAGS="-DCMAKE_INSTALL_PREFIX=../ -DCMAKE_INSTALL_BINDIR=exec -DBUILD_TESTING=OFF"
#CMAKE_FLAGS="-DCMAKE_INSTALL_PREFIX=../ -DCMAKE_INSTALL_BINDIR=exec -DENABLE_DOCS=ON -DBUILD_TESTING=OFF"
fi

rm -fr ./build
Expand Down
2 changes: 1 addition & 1 deletion ccpp-physics
Submodule ccpp-physics updated 131 files
34 changes: 0 additions & 34 deletions cmake/LibMPI.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -45,40 +45,6 @@ function (platform_name RETURN_VARIABLE)

set (${RETURN_VARIABLE} "hera" PARENT_SCOPE)

# wcoss_cray (Luna)
elseif (SITENAME MATCHES "^llogin1" OR
SITENAME MATCHES "^llogin2" OR
SITENAME MATCHES "^llogin3")

set (${RETURN_VARIABLE} "wcoss_cray" PARENT_SCOPE)

# wcoss_cray (Surge)
elseif (SITENAME MATCHES "^slogin1" OR
SITENAME MATCHES "^slogin2" OR
SITENAME MATCHES "^slogin3")

set (${RETURN_VARIABLE} "wcoss_cray" PARENT_SCOPE)

# wcoss_dell_p3 (Venus)
elseif (SITENAME MATCHES "^v71a1.ncep.noaa.gov" OR
SITENAME MATCHES "^v71a2.ncep.noaa.gov" OR
SITENAME MATCHES "^v71a3.ncep.noaa.gov" OR
SITENAME MATCHES "^v72a1.ncep.noaa.gov" OR
SITENAME MATCHES "^v72a2.ncep.noaa.gov" OR
SITENAME MATCHES "^v72a3.ncep.noaa.gov")

set (${RETURN_VARIABLE} "wcoss_dell_p3" PARENT_SCOPE)

# wcoss_dell_p3 (Mars)
elseif (SITENAME MATCHES "^m71a1.ncep.noaa.gov" OR
SITENAME MATCHES "^m71a2.ncep.noaa.gov" OR
SITENAME MATCHES "^m71a3.ncep.noaa.gov" OR
SITENAME MATCHES "^m72a1.ncep.noaa.gov" OR
SITENAME MATCHES "^m72a2.ncep.noaa.gov" OR
SITENAME MATCHES "^m72a3.ncep.noaa.gov")

set (${RETURN_VARIABLE} "wcoss_dell_p3" PARENT_SCOPE)

# wcoss2
elseif (SITENAME MATCHES "^along01" OR
SITENAME MATCHES "^alogin02")
Expand Down
48 changes: 48 additions & 0 deletions docs/source/ufs_utils.rst
Original file line number Diff line number Diff line change
Expand Up @@ -600,3 +600,51 @@ Run script
----------

To run, use script ./util/vcoord_gen/run.sh

weight_gen
==========

Introduction
------------

Creates ESMF 'scrip' files for gaussian grids.

Code structure
--------------

Location of the source code: ./sorc/weight_gen.fd.

Program inputs
--------------

The global FV3 grid resolution from standard output. Valid choices are:

* C48
* C96
* C128
* C192
* C384
* C768
* C1152
* C3072

Program outputs
---------------

Two gaussian grid 'scrip' files in NetCDF format. One includes two extra rows for the poles.

* C48 => 192x94 and 192x96 gaussian files
* C96 => 384x192 and 384x194 gaussian files
* C128 => 512x256 and 512x258 gaussian files
* C192 => 768x384 and 768x386 gaussian files
* C384 => 1536x768 and 1536x770 gaussian files
* C768 => 3072x1536 and 3072x1538 gaussian files
* C1152 => 4608x2304 and 4608x2406 gaussian files
* C3072 => 12288x6144 and 12288x6146 gaussian files

Files contain center and corner point latitude and longitudes.

Run script
----------

To run, use the machine-dependent script under ./util/weight_gen
4 changes: 4 additions & 0 deletions docs/user_guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ https://github.com/ufs-community/UFS_UTILS.

## Documentation for Previous Versions of UFS_UTILS

* [UFS_UTILS Version 1.8.0](ver-1.8.0/index.html)
* [UFS_UTILS Version 1.7.0](ver-1.7.0/index.html)
* [UFS_UTILS Version 1.6.0](ver-1.6.0/index.html)
* [UFS_UTILS Version 1.5.0](ver-1.5.0/index.html)
Expand Down Expand Up @@ -75,3 +76,6 @@ https://github.com/ufs-community/UFS_UTILS.
- <a href="cpld_gridgen/index.html">cpld_gridgen</a> - Utility to
create the Fix and IC files for the S2SW and S2S applications

- <a href="weight_gen/index.html">weight_gen</a> - Utility to
create gaussian grid ESMF 'scrip' files for use in creating
ESMF interpolation weight files.
Loading

0 comments on commit b851002

Please sign in to comment.