From d12499ec13d7ee44f96657cc3caf9dc0438705c9 Mon Sep 17 00:00:00 2001 From: MB <michael.blaschek@univie.ac.at> Date: Fri, 16 Dec 2022 09:55:58 +0100 Subject: [PATCH] wrf update --- ...ty.miniconda3-py39-4.9.2-ubuntu-18.04-OMPI | 89 --- definition-files/MPI/Singularity.py39.ompi | 52 ++ definition-files/debian/Singularity.texlive | 2 +- models/ICON/Singularity.gcc6 | 1 + models/WRF/README.md | 50 ++ models/WRF/Singularity.dev | 72 ++ models/WRF/Singularity.gsi | 82 +++ models/WRF/Singularity.sandbox.dev | 2 +- models/WRF/Singularity.wrf | 6 + models/WRF/Singularity.wrf.py | 44 ++ models/WRF/dtc_nwp_flow_3.png | Bin 0 -> 95458 bytes models/WRF/hurricane-sandy-example.sh | 277 ++++++++ models/WRF/hurricane-sany-example.sh | 99 --- models/WRF/scripts/run-help | 13 +- models/WRF/scripts/run_gsi.ksh | 656 ++++++++++++++++++ models/WRF/scripts/runscript | 17 +- 16 files changed, 1259 insertions(+), 203 deletions(-) delete mode 100644 definition-files/MPI/Singularity.miniconda3-py39-4.9.2-ubuntu-18.04-OMPI create mode 100644 definition-files/MPI/Singularity.py39.ompi create mode 100644 models/WRF/README.md create mode 100644 models/WRF/Singularity.dev create mode 100644 models/WRF/Singularity.gsi create mode 100644 models/WRF/Singularity.wrf.py create mode 100644 models/WRF/dtc_nwp_flow_3.png create mode 100755 models/WRF/hurricane-sandy-example.sh delete mode 100755 models/WRF/hurricane-sany-example.sh create mode 100755 models/WRF/scripts/run_gsi.ksh diff --git a/definition-files/MPI/Singularity.miniconda3-py39-4.9.2-ubuntu-18.04-OMPI b/definition-files/MPI/Singularity.miniconda3-py39-4.9.2-ubuntu-18.04-OMPI deleted file mode 100644 index 635e63d..0000000 --- a/definition-files/MPI/Singularity.miniconda3-py39-4.9.2-ubuntu-18.04-OMPI +++ /dev/null @@ -1,89 +0,0 @@ -Bootstrap: library -From: mblaschek/imgw/ubuntu:18.04 - -%labels - - APPLICATION_NAME miniconda3 - APPLICATION_VERSION py39-4.9.2-Linux-x86_64 - APPLICATION_URL https://docs.conda.io - - AUTHOR_NAME Michael Blaschek - AUTHOR_EMAIL michael.blaschek@univie.ac.at - - LAST_UPDATED 20211118 - -%setup - -%environment - - # Set the conda distribution type, its version number, the python - # version it utilizes, the root and installation directories where - # the distribution will be installed within the container, and the - # root URL to the installer - export CONDA_DISTRIBUTION='miniconda' - export CONDA_VERSION='3' - export CONDA_PYTHON_VERSION='py39' - export CONDA_INSTALLER_VERSION='4.9.2' - export CONDA_ARCH='Linux-x86_64' - export CONDA_INSTALL_DIR="/opt/${CONDA_DISTRIBUTION}${CONDA_VERSION}" - - # Set PATH to conda distribution - export PATH="${CONDA_INSTALL_DIR}/bin:${PATH}" - -%post -c /bin/bash - - # Set operating system mirror URL - export MIRRORURL='http://at.archive.ubuntu.com/ubuntu' - - # Set operating system version - export OSVERSION='bionic' - - # Set system locale - export LC_ALL='C' - - # Set debian frontend interface - export DEBIAN_FRONTEND='noninteractive' - - # Upgrade all software packages to their latest versions - apt-get -y update && apt-get -y upgrade - - cd /tmp - - # Set the conda distribution type, its version number, the python - # version it utilizes, the root and installation directories where - # the distribution will be installed within the container, and the - # root URL to the installer - export CONDA_DISTRIBUTION='miniconda' - export CONDA_VERSION='3' - export CONDA_PYTHON_VERSION='py39' - export CONDA_INSTALLER_VERSION='4.9.2' - export CONDA_ARCH='Linux-x86_64' - export CONDA_INSTALLER="${CONDA_DISTRIBUTION^}${CONDA_VERSION}-${CONDA_PYTHON_VERSION}_${CONDA_INSTALLER_VERSION}-${CONDA_ARCH}.sh" - export CONDA_INSTALL_DIR="/opt/${CONDA_DISTRIBUTION}${CONDA_VERSION}" - export CONDA_ROOT_URL='https://repo.anaconda.com' - - # Download and install conda distribution - wget "${CONDA_ROOT_URL}/${CONDA_DISTRIBUTION}/${CONDA_INSTALLER}" - chmod +x "${CONDA_INSTALLER}" - "./${CONDA_INSTALLER}" -b -p "${CONDA_INSTALL_DIR}" - - # Remove conda installer - rm "${CONDA_INSTALLER}" - - # Add MPI Package from conda-forge - # ucx - # openmpi - $CONDA_INSTALL_DIR/bin/conda install -y -c conda-forge ucx openmpi mpi4py - - # Cleanup - apt-get -y autoremove --purge - apt-get -y clean - - # Update database for mlocate - updatedb - -%files - -%runscript - -%test diff --git a/definition-files/MPI/Singularity.py39.ompi b/definition-files/MPI/Singularity.py39.ompi new file mode 100644 index 0000000..96f0a87 --- /dev/null +++ b/definition-files/MPI/Singularity.py39.ompi @@ -0,0 +1,52 @@ +Bootstrap: docker +From: mambaorg/micromamba:latest + +%labels + maintainer IT-IMGW <it.img-wien@univie.ac.at> + +%files + $PWD/definition-files/runscript /.singularity.d/runscript + $PWD/definition-files/run-help /.singularity.d/runscript.help + + +%apprun mpitest + nproc=4 + if [ $# -eq 1 ]; then + nproc=$1 + fi + echo "Running MPITest : $nproc" + exec mpirun -np $nproc mpitest.x + +%appfiles mpitest + ./definition-files/MPI/mpitest.c ./mpitest.c + +%appinstall mpitest + export PATH=/opt/conda/bin:$PATH + export LIBRARY=/opt/conda/lib + export INCLUDE=/opt/conda/include + mpicc mpitest.c -o mpitest.x + +%environment + export LANG=C.UTF-8 + export PATH=/opt/conda/bin:$PATH + export LIBRARY=/opt/conda/lib + export INCLUDE=/opt/conda/include + +%post + micromamba -q install -y -n base -c conda-forge \ + python=3.9 \ + ucx \ + openmpi \ + mpi4py \ + && micromamba clean --all --yes + # command prompt name + CNAME=m.ompi + # does not work goes into /.singularity.d/env/91-environment.sh + echo "export PS1=\"[IMGW-$CNAME]\w\$ \"" >> /.singularity.d/env/99-zz-custom-env.sh + # add some labels + echo "libc $(ldd --version | head -n1 | cut -d' ' -f4)" >> "$SINGULARITY_LABELS" + echo "linux $(cat /etc/os-release | grep PRETTY_NAME | cut -d'=' -f2)" >> "$SINGULARITY_LABELS" + +%test + mpicc --version + diff --git a/definition-files/debian/Singularity.texlive b/definition-files/debian/Singularity.texlive index 496770b..9c767e2 100644 --- a/definition-files/debian/Singularity.texlive +++ b/definition-files/debian/Singularity.texlive @@ -1,5 +1,5 @@ Bootstrap: docker -From: texlive:latest +From: texlive/texlive:latest %labels maintainer IT-IMGW <it.img-wien@univie.ac.at> diff --git a/models/ICON/Singularity.gcc6 b/models/ICON/Singularity.gcc6 index 40e9dec..99d6eb4 100644 --- a/models/ICON/Singularity.gcc6 +++ b/models/ICON/Singularity.gcc6 @@ -11,6 +11,7 @@ apt install -y \ python3 \ gcc-6 \ gfortran-6 \ + libopenmpi-dev \ libmpich-dev \ libhdf5-dev \ libnetcdf-dev \ diff --git a/models/WRF/README.md b/models/WRF/README.md new file mode 100644 index 0000000..5437351 --- /dev/null +++ b/models/WRF/README.md @@ -0,0 +1,50 @@ +# WRF in a container + + +:construction: + +This is still experimental. No guarantees. + + +Please find the following containers available for download: +- WRF +- GSI +- WRFpy +- WRF.dev + + +## Design + +build a container with all requirements installed and make it easily available to users to further develop. We will use a two stage build to complete the development + + +1. WRF sandbox / requirements +2. Build container +3. Final container + +Build some special containers, that are most requested, e.g. em_real and em_les + + +## Example: Hurricane Sandy + +## Performance tests + +We ran the same container: +- VSC +- JET +- SRVX1 + +Multi-Node? + +# Development + +If you like to build your own WRF container with customized source code or a different setting/purpose, then you can find here some guidance on how to do this. + +Steps: +1. Pull the WRF development container from +2. Pull the source code of WRF / WPS ... +3. Configure the Source code to use the libraries inside the container +4. Test your settings / compilation +5. Build your own container from the WRF development container and your SRC Code. + + diff --git a/models/WRF/Singularity.dev b/models/WRF/Singularity.dev new file mode 100644 index 0000000..3bd8b04 --- /dev/null +++ b/models/WRF/Singularity.dev @@ -0,0 +1,72 @@ +Bootstrap: localimage +From: ../../containers/alma8.base.sif + +%labels +maintainer IT-IMGW <it.img-wien@univie.ac.at> +baseimage AlmaLinux8 + + +%post +# Every line will be a layer in the container +# See https://fedoraproject.org/wiki/EPEL#Quickstart for powertools +# yum --enablerepo epel groupinstall -y "Development Tools" \ +yum update -y \ +&& yum install -y dnf-plugins-core \ +&& dnf config-manager --set-enabled powertools \ +&& yum install -y epel-release \ +&& yum update -y \ +&& yum --enablerepo epel install -y \ + curl wget \ + file \ + findutils \ + gcc-c++ \ + gcc \ + gcc-gfortran \ + glibc.i686 libgcc.i686 \ + libpng-devel jasper-libs jasper-devel \ + m4 make perl cmake \ + flex flex-devel bison bison-devel \ + libcurl-devel \ + libxml2 libxml2-devel perl-XML-LibXML ImageMagick \ + python3 python3-pip python3-devel \ + tar bash tcsh time which zlib zlib-devel \ + git scl \ + gnupg2 \ + hostname \ + iproute \ + patch \ + openmpi-devel \ + openmpi \ + hdf5-openmpi-devel \ + hdf5-openmpi-static \ + netcdf-openmpi-devel \ + netcdf-openmpi-static \ + netcdf-fortran-openmpi-devel \ + netcdf-fortran-openmpi-static \ + openblas-devel.x86_64 \ + openblas-openmp.x86_64 \ +&& rm -rf /var/cache/yum \ +&& yum clean all \ +&& dnf clean all \ +&& rm -rf /usr/share/doc \ +&& rm -rf /usr/share/man \ +&& ln -s /usr/include/openmpi-x86_64/ /usr/lib64/openmpi/include + + +# command prompt name +CNAME=wrf.dev +# does not work goes into /.singularity.d/env/91-environment.sh +echo "export PS1=\"[IMGW-$CNAME]\w\$ \"" >> /.singularity.d/env/99-zz-custom-env.sh +# not sure why that does not happen as default +echo "export PKG_CONFIG_PATH=/usr/lib64/openmpi/lib/pkgconfig/" >> $SINGULARITY_ENVIRONMENT + +%environment +export LD_LIBRARY_PATH=/usr/lib64/openmpi/lib:/usr/lib64:/lib64:/lib +export PATH=/usr/lib64/openmpi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +export LIBRARY=/usr/lib64/openmpi/lib:/usr/lib64:/lib64:/lib +export INCLUDE=/usr/include/openmpi-x86_64/:/usr/lib64/gfortran/modules/openmpi:/usr/include +export NETCDF=/usr/lib64/openmpi +export NETCDF_ROOT=/usr/lib64/openmpi +export HDF5_ROOT=/usr/lib64/openmpi +export JASPERINC=/usr/include/jasper/ +export JASPERLIB=/usr/lib64/ diff --git a/models/WRF/Singularity.gsi b/models/WRF/Singularity.gsi new file mode 100644 index 0000000..03a2fc5 --- /dev/null +++ b/models/WRF/Singularity.gsi @@ -0,0 +1,82 @@ +Bootstrap: localimage +From: sandbox.wrf.dev +Stage: build + +# Two Stage Build of GSI +# use the sandbox development image +# 1. Compile the target +# 2. Copy relevant exe to target GSI container +# Make sure the ldd / linking and inputs are ok + +%labels +maintainer IT-IMGW <it.img-wien@univie.ac.at> + +%files +./scripts/runscript /.singularity.d/runscript +./scripts/run_gsi.ksh /wrf/bin + +%apprun init +echo "Please modify run_gsi.ksh to your needs and settings or use set_env.ksh" +cp -uv /wrf/bin/run_gsi.ksh . + +%apphelp init +Use this app to copy the run_gsi.ksh to your current directory. +This is a modified version from dtcenter container version. +Please update either the run_gsi.ksh or the set_env.ksh in your local directory. + +%post +# GSI requires cmake and openblas + lapack +yum -y install cmake openblas-devel.x86_64 openblas-openmp.x86_64 +# Build a WRF release from the sandbox +WRF_BUILD_TARGET=em_real +LDFLAGS="-lm" +NETCDF=/usr/lib64/openmpi/ +HDF5_ROOT=$NETCDF + +export GSI_VERSION=3.7 +export ENKF_VERSION=1.3 + +mkdir -p /wrf/gsi \ +&& curl -SL https://dtcenter.org/sites/default/files/comGSIv${GSI_VERSION}_EnKFv${ENKF_VERSION}.tar.gz | tar -xzC /wrf/gsi +# +# +# +ln -s /usr/lib64/gfortran/modules/openmpi/* /usr/lib64/openmpi/include/ +# +# prep GSI build +# +mkdir -p /wrf/gsi/build \ +&& cd /wrf/gsi/build \ +&& cmake /wrf/gsi/comGSIv${GSI_VERSION}_EnKFv${ENKF_VERSION} +# +# Fix a few GSI bugs +# +RUN umask 0002 \ + && sed -i 's/wij(1)/wij/g' /wrf/gsi/comGSIv3.7_EnKFv1.3/src/setuplight.f90 \ + && sed -i "s,\$, -L$NETCDF,g" /wrf/gsi/build/src/CMakeFiles/gsi.x.dir/link.txt \ + && sed -i "s,\$, -L$NETCDF,g" /wrf/gsi/build/src/enkf/CMakeFiles/enkf_wrf.x.dir/link.txt +# +# Build GSI +# +cd /wrf/gsi/build \ +&& make -j 4 +# +# Fix all wired paths +# +# sed -i 's,/comsoftware/gsi/,/wrf/gsi/' /wrf/bin/run_gsi.ksh \ +# && sed -i 's,/gsi_build,/build' /wrf/bin/run_gsi.ksh \ +# && sed -i 's,/data,./data,g' /wrf/bin/run_gsi.ksh \ +# && sed -i 's,/home/scripts/case,.,g' /wrf/bin/run_gsi.ksh \ +# && sed -i 's,/home/wrfprd,.,g' /wrf/bin/run_gsi.ksh \ +# && sed -i 's,/home/gsiprd,.,g' /wrf/bin/run_gsi.ksh +# +# Wrap it up +# +echo "export GSI_VERSION=$GSI_VERSION" >> $SINGULARITY_ENVIRONMENT +echo "export ENKF_VERSION=$ENKF_VERSION" >> $SINGULARITY_ENVIRONMENT +CNAME=alma8.gsi +# does not work goes into /.singularity.d/env/91-environment.sh +echo "export PS1=\"[IMGW-$CNAME]\w\$ \"" >> /.singularity.d/env/99-zz-custom-env.sh + +%environment +export PATH=/wrf/gsi/build/bin:/wrf/bin:$PATH \ No newline at end of file diff --git a/models/WRF/Singularity.sandbox.dev b/models/WRF/Singularity.sandbox.dev index 71e138f..f8d1b1f 100644 --- a/models/WRF/Singularity.sandbox.dev +++ b/models/WRF/Singularity.sandbox.dev @@ -72,7 +72,7 @@ echo "export PKG_CONFIG_PATH=/usr/lib64/openmpi/lib/pkgconfig/" >> $SINGULARITY_ export LD_LIBRARY_PATH=/usr/lib64/openmpi/lib:/usr/lib64:/lib64:/lib export PATH=/usr/lib64/openmpi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin export LIBRARY=/usr/lib64/openmpi/lib:/usr/lib64:/lib64:/lib -export INCLUDE=/usr/include/openmpi-x86_64/:/usr/lib64/gfortran/modules:/usr/include +export INCLUDE=/usr/include/openmpi-x86_64/:/usr/lib64/gfortran/modules/openmpi:/usr/include export NETCDF=/usr/lib64/openmpi export NETCDF_ROOT=/usr/lib64/openmpi export JASPERINC=/usr/include/jasper/ diff --git a/models/WRF/Singularity.wrf b/models/WRF/Singularity.wrf index ef6277b..db66903 100644 --- a/models/WRF/Singularity.wrf +++ b/models/WRF/Singularity.wrf @@ -48,8 +48,14 @@ Stage: final # Copy only executables from WRF to directory /wrf/bin /wrf/bin /wrf/run /wrf/run + # WPS /wrf/WPS/link_grib.csh /wrf/bin /wrf/WPS/ungrib/Variable_Tables /wrf/run + /wrf/WPS/geogrid/GEOGRID* /wrf/run/geogrid/ + /wrf/WPS/geogrid/gribmap.txt /wrf/run/geogrid/ + /wrf/WPS/metgrid/METGRID* /wrf/run/metgrid/ + /wrf/WPS/metgrid/gribmap.txt /wrf/run/metgrid/ + # Log files /wrf/WRF/compile_wrf_arw_opt34.1.log /wrf /wrf/WPS/compile_wps.log /wrf diff --git a/models/WRF/Singularity.wrf.py b/models/WRF/Singularity.wrf.py new file mode 100644 index 0000000..014af8e --- /dev/null +++ b/models/WRF/Singularity.wrf.py @@ -0,0 +1,44 @@ +Bootstrap: docker +From: mambaorg/micromamba:latest + +%labels +maintainer IT-IMGW <it.img-wien@univie.ac.at> + +%files +../../definition-files/runscript /.singularity.d/runscript +../../definition-files/run-help /.singularity.d/runscript.help + +%post +# install curl +apt -y update && apt -y install curl && apt -y clean +# install python packages +micromamba -q install -y -n base -c conda-forge \ + pygrib=2.1.4 \ + cartopy=0.21 \ + netCDF4=1.5.8 \ + pyyaml=6.0 +# include WRF/WPS scripts +mkdir -p /opt/wrf && cd /opt/wrf +curl -sL https://github.com/NCAR/container-dtc-nwp/archive/refs/tags/v4.1.0.tar.gz | tar --strip-components=5 -zxC . container-dtc-nwp-4.1.0/components/scripts/common/python/ +# fix wired paths +sed -i 's,/home/pythonprd,./,g' *.py +sed -i 's,/home/postprd/,./,g' *.py +sed -i 's,/home/scripts/case/,./,g' *.py +sed -i 's,cartopy.config,#cartopy.config,g' *.py + +# final +CNAME=wrfpy +# does not work goes into /.singularity.d/env/91-environment.sh +echo "export PS1=\"[IMGW-$CNAME]\w\$ \"" >> /.singularity.d/env/99-zz-custom-env.sh +# add some labels +echo "libc $(ldd --version | head -n1 | cut -d' ' -f4)" >> "$SINGULARITY_LABELS" +echo "linux $(cat /etc/os-release | grep PRETTY_NAME | cut -d'=' -f2)" >> "$SINGULARITY_LABELS" + +%environment +export MPLCONFIGDIR=. +export LANG=C.UTF-8 +export PATH=/opt/conda/bin:$PATH +export LIBRARY=/opt/conda/lib +export INCLUDE=/opt/conda/include +export PYTHONDONTWRITEBYTECODE=1 +export PYTHONPATH=/opt/wrf:$PYTHONPATH diff --git a/models/WRF/dtc_nwp_flow_3.png b/models/WRF/dtc_nwp_flow_3.png new file mode 100644 index 0000000000000000000000000000000000000000..5bcfea5826de26d3e5c43da12d660fde3ec112bf GIT binary patch literal 95458 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 z%0D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%0APr3KZK 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 literal 0 HcmV?d00001 diff --git a/models/WRF/hurricane-sandy-example.sh b/models/WRF/hurricane-sandy-example.sh new file mode 100755 index 0000000..c5e5e94 --- /dev/null +++ b/models/WRF/hurricane-sandy-example.sh @@ -0,0 +1,277 @@ +#!/bin/bash +# By MB +# Based on the Example from DTCenter, Boulder NCAR. +# https://dtcenter.org/nwp-containers-online-tutorial +# https://dtcenter.org/nwp-containers-online-tutorial/hurricane-sandy-case-27-oct-2012 + +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +NC='\033[0m' + +pause() { + if $DEBUG; then + read -n1 -rsp $'Press any key to continue or Ctrl+C to exit...\n' + fi +} + +warning() { + printf "%-68s[$YELLOW%10s$NC]\n" "$@" "SKIPPED" + return 0 +} + +report() { + if [ $? -eq 0 ]; then + printf "%-68s[$GREEN%10s$NC]\n" "$@" "OK" + return 0 + else + printf "%-68s[$RED%10s$NC]\n" "$@" "FAILED" + return 1 + fi +} + +question() { + read -p "$@ (y/n)" yn + case $yn in + [Yy]*) return 0 ;; + *) + warning "skipping" + return 1 + ;; + esac +} + +INAME="SANDY" +CPATH=$(dirname $0) +case_name=sandy +WRFCONTAINER=$CPATH/WRF-4.4.1-em_real.sif +PYCONTAINER=$CPATH/WRFpy.sif +GISCONTAINER=$CPATH/GSI-3.7.sif +NPROC=1 +if [ $NPROC -gt 1 ]; then + warning "[$INAME] Trying to run with n=$NPROC processes." + echo "[$INAME] Make sure mpirun can be accessed!" + command -v mpirun + report "[$INAME] mpirun command works" || exit 1 + # Check if Versions are similar ? + # MPI Version outside needs to be newer! + +fi + +# Check if we have the container? + +# test -f Makefile +# report "[$INAME] Makefile found" +# if [ $? -eq 0 ]; then +# echo "[$INAME] Building WRF ..." +# make em_real +# fi + +# Do a pull request from the IMGW library to retrieve the container +test -f $WRFCONTAINER +report "[$INAME] WRF em_real [$WRFCONTAINER]" +if [ $? -ne 0 ]; then + # Try to pull + echo "Manual: https://cloud.sylabs.io/library/mblaschek/models/wrf" + singularity pull $WRFCONTAINER library://mblaschek//models/wrf-emreal:4.4.1 + report "[$INAME] WRF em_real pulled from library" || exit 1 +fi + +test -f $PYCONTAINER +report "[$INAME] WRF python [$PYCONTAINER]" || exit 1 + +test -f $GISCONTAINER +report "[$INAME] GIS [$GISCONTAINER]" || exit 1 + +PROJ_PATH= +read -p "[$INAME] Where do you want to place all files? [$PWD] :" PROJ_PATH +if [ -z "$PROJ_PATH" ]; then + PROJ_PATH=. +fi + +INPUT_DIR=$PROJ_PATH/data + +mkdir -vp $PROJ_PATH/sandy/data/ +report "[$INAME] using $PROJ_PATH" +cd $PROJ_PATH/sandy/data/ +# curl -SL https://dtcenter.ucar.edu/dfiles/container_nwp_tutorial/tar_files/container-dtc-nwp-derechodata_20120629.tar.gz | tar zxC . +# curl -SL https://dtcenter.ucar.edu/dfiles/container_nwp_tutorial/tar_files/container-dtc-nwp-snowdata_20160123.tar.gz | tar zxC . + +test -d model_data +report "[$INAME] Sandy input data" +if [ $? -ne 0 ]; then + curl -SL https://dtcenter.ucar.edu/dfiles/container_nwp_tutorial/tar_files/container-dtc-nwp-sandydata_20121027.tar.gz | tar zxC . + report "[$INAME] using Sandy input data" || exit 1 +fi +test -d obs_data +report "[$INAME] Sandy obs data" +if [ $? -ne 0 ]; then + curl -SL https://dtcenter.ucar.edu/dfiles/container_nwp_tutorial/tar_files/CRTM_v2.3.0.tar.gz | tar zxC . + report "[$INAME] using Sandy obs data" || exit 1 +fi +test -d WPS_GEOG +report "[$INAME] Sandy geogrid data" +if [ $? -ne 0 ]; then + curl -SL https://dtcenter.ucar.edu/dfiles/container_nwp_tutorial/tar_files/wps_geog.tar.gz | tar zxC . + report "[$INAME] using Sandy geogrid data" || exit 1 +fi +test -d shapefiles +report "[$INAME] Sandy natural earth data" +if [ $? -ne 0 ]; then + curl -SL https://dtcenter.ucar.edu/dfiles/container_nwp_tutorial/tar_files/shapefiles.tar.gz | tar zxC . + report "[$INAME] using Sandy natural earth data" || exit 1 +fi +# return back +cd $PROJ_PATH/sandy + +# +# dtcenter +# https://github.com/NCAR/container-dtc-nwp +# + +# +# Setup Case files for SANDY +# +# Get sandy case files +curl -sL https://github.com/NCAR/container-dtc-nwp/archive/refs/tags/v4.1.0.tar.gz | tar --strip-components=4 -zxC . container-dtc-nwp-4.1.0/components/scripts/sandy_20121027 +# fix paths +sed -i 's,/data/,./data/,g' set_env.ksh +sed -i 's,/data/,./data/,g' namelist.wps +sed -i 's,/comsoftware/wrf/WPS-4.3,./g' namelist.wps + +# Optional run plot +# needs cartopy and python +# /home/scripts/common/run_python_domain.ksh + +# +# Get default em_real configuration files from /wrf/run +# WRF/run and WPS/geogrid. WPS/metgrid, WPS/ungrib +# +echo "[$INAME] CP em_real files to current directory [no overwriting]" +./$WRFCONTAINER init +report "[$INAME] WRF init complete" || exit 1 + +# Check if Variable Tables are present / depends on input files +source set_env.ksh +# input_data must be sourced +test -d Vtable.${input_data} +report "[$INAME] Varible Table Vtable.${input_data} found" || {echo "Please provide Variable Table!" +exit 1} +# Link Grib files to here +link_grib.csh $INPUT_DIR/model_data/${case_name}/* +report "[$INAME] Model input data from: $INPUT_DIR/model_data/${case_name}/" + +# +# geogrid data +# +# Remove old files +if [ -e geo_em.d*.nc ]; then + rm -rf geo_em.d*.nc +fi + +# Command for geogrid +echo "[$INAME] Running geogrib ..." +singularity exec $WRFCONTAINER geogrid.exe >run_geogrid.log 2>&1 + +test -f geo_em.d01.nc +report "[$INAME] WPS geogrid ready." || exit 1 + +# +# ungrib data +# +file_date=$(cat namelist.wps | grep -i start_date | cut -d"'" -f2 | cut -d":" -f1) +# remove old files +if [ -e PFILE:${file_date} ]; then + rm -rf PFILE* +fi +if [ -e FILE:${file_date} ]; then + rm -rf FILE* +fi + +# Command for ungrib +echo "[$INAME] Running ungrib ..." +singularity exec $WRFCONTAINER ungrib.exe >run_ungrib.log 2>&1 + +ls -ls FILE:* +report "[$INAME] WPS ungrib ready." || exit 1 + +# +# metgrid data +# + +# Remove old files +if [ -e met_em.d*.${file_date}:00:00.nc ]; then + rm -rf met_em.d* +fi + +# Command for metgrid +echo "[$INAME] Running metgrid ..." +singularity exec $WRFCONTAINER metgrid.exe >run_metgrid.log 2>&1 + +ls -ls met_em.d01.* +report "[$INAME] WPS metgrid ready." || exit 1 + +echo "[$INAME] WPS setup complete. Ready for WRF" + +# +# WRF +# + +sed -e '/nocolons/d' namelist.input >nml +cp namelist.input namelist.nocolons +mv nml namelist.input + +# Remove old files +if [ -e wrfinput_d* ]; then + rm -rf wrfi* wrfb* +fi + +# Command for real +echo "[$INAME] Running real ..." +# This can be run with MPI or serial? +if [ $NPROC -gt 1 ]; then + # MPI + module load openmpi/ + mpirun -np $NPROC singularity exec $WRFCONTAINER real.exe >run_real.log 2>&1 +else + # Serial run + singularity exec $WRFCONTAINER real.exe >run_real.log 2>&1 +fi +test -f wrfinput_d01 && test -f wrfbdy_d01 +report "[$INAME] WRF run finished" + +# +# GSI Data Assimilation +# +if false; then + echo "[$INAME] Running gsi ..." + singularity run --app init $GISCONTAINER + test -f run_gsi.ksh + report "[$INAME] GSI run script ready" || exit 1 + # add the correct run Command + if [ $NPROC -gt 1 ]; then + echo "export RUN_COMMAND=\"mpirun -np $NPROC singularity exec $GISCONTAINER \$GIS_EXE\"" >>set_env.ksh + else + echo "export RUN_COMMAND=\"singularity exec $GISCONTAINER \$GIS_EXE\"" >>set_env.ksh + fi + # Execute GSI + ./run_gsi.ksh +fi +# +# run WRF +# +# If wrfinput_d01.orig exists, rename it to wrfinput_d01 to reset the state +if [[ -e wrfinput_d01.orig ]]; then + mv wrfinput_d01.orig wrfinput_d01 +fi + +# If GSI was run, update the wrfinput file +if [[ -e ./wrf_inout ]]; then + mv wrfinput_d01 wrfinput_d01.orig + cp ./wrf_inout wrfinput_d01 +fi +if [ $NPROC -gt 1 ]; then + mpirun -np $NPROC singularity exec $WRFCONTAINER wrf.exe >run_wrf.log 2>&1 +else + singularity exec $WRFCONTAINER wrf.exe >run_wrf.log 2>&1 +fi diff --git a/models/WRF/hurricane-sany-example.sh b/models/WRF/hurricane-sany-example.sh deleted file mode 100755 index f5b7371..0000000 --- a/models/WRF/hurricane-sany-example.sh +++ /dev/null @@ -1,99 +0,0 @@ -#!/bin/bash -# By MB -# Based on the Example from DTCenter, Boulder NCAR. -# https://dtcenter.org/nwp-containers-online-tutorial -# https://dtcenter.org/nwp-containers-online-tutorial/hurricane-sandy-case-27-oct-2012 - -CPATH=$(dirname $0) -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[1;33m' -NC='\033[0m' - -pause() { - if $DEBUG; then - read -n1 -rsp $'Press any key to continue or Ctrl+C to exit...\n' - fi -} - -warning() { - printf "%-68s[$YELLOW%10s$NC]\n" "$@" "SKIPPED" - return 0 -} - -report() { - if [ $? -eq 0 ]; then - printf "%-68s[$GREEN%10s$NC]\n" "$@" "OK" - return 0 - else - printf "%-68s[$RED%10s$NC]\n" "$@" "FAILED" - return 1 - fi -} - -question(){ - read -p "$@ (y/n)" yn - case $yn in - [Yy]*) return 0;; - * ) warning "skipping"; return 1;; - esac -} - -INAME="SANDY" -# Check if we have the container? - -test -f Makefile -report "[$INAME] Makefile found" -if [ $? -eq 0 ]; then - echo "[$INAME] Building WRF ..." - make em_real -fi - -test -f WRF-4.4.1-em_real.sif -report "[$INAME] WRF em_real container available" || exit 1 - -PROJ_PATH= -read -p "[$INAME] Where do you want to place all files? [$PWD] :" PROJ_PATH -if [ -z "$PROJ_PATH" ]; then - PROJ_PATH=. -fi - -mkdir -vp $PROJ_PATH/sandy/data/ -report "[$INAME] using $PROJ_PATH" -cd $PROJ_PATH/sandy/data/ -# curl -SL https://dtcenter.ucar.edu/dfiles/container_nwp_tutorial/tar_files/container-dtc-nwp-derechodata_20120629.tar.gz | tar zxC . -# curl -SL https://dtcenter.ucar.edu/dfiles/container_nwp_tutorial/tar_files/container-dtc-nwp-snowdata_20160123.tar.gz | tar zxC . - -test -d model_data -report "[$INAME] Sandy input data" -if [ $? -ne 0 ]; then - curl -SL https://dtcenter.ucar.edu/dfiles/container_nwp_tutorial/tar_files/container-dtc-nwp-sandydata_20121027.tar.gz | tar zxC . - report "[$INAME] using Sandy input data" || exit 1 -fi -test -d obs_data -report "[$INAME] Sandy obs data" -if [ $? -ne 0 ]; then - curl -SL https://dtcenter.ucar.edu/dfiles/container_nwp_tutorial/tar_files/CRTM_v2.3.0.tar.gz | tar zxC . - report "[$INAME] using Sandy obs data" || exit 1 -fi -test -d WPS_GEOG -report "[$INAME] Sandy geogrid data" -if [ $? -ne 0 ]; then - curl -SL https://dtcenter.ucar.edu/dfiles/container_nwp_tutorial/tar_files/wps_geog.tar.gz | tar zxC . - report "[$INAME] using Sandy geogrid data" || exit 1 -fi -test -d shapefiles -report "[$INAME] Sandy trajectory data" -if [ $? -ne 0 ]; then - curl -SL https://dtcenter.ucar.edu/dfiles/container_nwp_tutorial/tar_files/shapefiles.tar.gz | tar zxC . - report "[$INAME] using Sandy trajectory data" || exit 1 -fi - -exit 0 -/home/scripts/common/run_python_domain.ksh - -WPS_GEOG -/home/scripts/common/run_wps.ksh - - -/home/scripts/common/run_real.ksh \ No newline at end of file diff --git a/models/WRF/scripts/run-help b/models/WRF/scripts/run-help index a0351f7..ef55af8 100644 --- a/models/WRF/scripts/run-help +++ b/models/WRF/scripts/run-help @@ -16,16 +16,19 @@ bind special directories development using includes and libraries from inside the container > ./image.sif gfortran -I\$INCLUDE -L\$LIBRARY -o test.x test.f90 - WRF Simulations - Example default run files are located in /wrf/run executables are located in /wrf/bin -Default simulation of the container (still requires input) -1. copies /wrf/run files to the local directory -2. No local files will be overwritten (e.g. namelists ) -3. Execute real.exe +Default simulation of the container (still requires input), will do +1. It will copy /wrf/run files to the local directory (.) +2. No local files will be overwritten (e.g. namelists), just missing files. +3. Execute real.exe, run: > ./image.sif real.exe +> ./image.sif wrf.exe + +Using OpenMPI (requires an openmpi version on the host system) +> mpirun -np 8 ./image.sif real.exe Manually copy run files to current directory > ./image.sif init diff --git a/models/WRF/scripts/run_gsi.ksh b/models/WRF/scripts/run_gsi.ksh new file mode 100755 index 0000000..a94f27b --- /dev/null +++ b/models/WRF/scripts/run_gsi.ksh @@ -0,0 +1,656 @@ +#!/bin/ksh +##################################################### +# machine set up (users should change this part) +##################################################### +set -x +# +# Constants +INPUT_DIR="./data/gsi" +CASE_DIR="." +WRFPRD_DIR="." +##################################################### +# case set up (users should change this part) +##################################################### +# +# ANAL_TIME= analysis time (YYYYMMDDHH) +# WORK_ROOT= working directory, where GSI runs +# PREPBUFR = path of PreBUFR conventional obs +# BK_FILE = path and name of background file +# OBS_ROOT = path of observations files +# FIX_ROOT = path of fix files +# GSI_EXE = path and name of the gsi executable +# ENS_ROOT = path where ensemble background files exist +WORK_ROOT=. +BK_ROOT=${WRFPRD_DIR} +CRTM_ROOT=./data/gsi/CRTM_v2.3.0 +GSI_ROOT=/wrf/gsi/comGSIv3.7_EnKFv1.3 +GSI_BUILD=/wrf/gsi/build +FIX_ROOT=${GSI_ROOT}/fix/ +GSI_EXE=${GSI_BUILD}/bin/gsi.x +RUN_COMMAND=$GSI_EXE +GSI_NAMELIST=${GSI_ROOT}/ush/comgsi_namelist.sh +##################################################### +# +# Include case-specific settings +# +# +# This can overwrite all above directory/settings +# +##################################################### +. $CASE_DIR/set_env.ksh +##################################################### +# +# Extract START_DATE +# +BK_FILE=${BK_ROOT}/wrfinput_d01 +YYYY=$(ncdump -h ${BK_FILE} | grep ":START_DATE" | cut -f2 -d"=" | cut -c3-6) +MM=$(ncdump -h ${BK_FILE} | grep ":START_DATE" | cut -f2 -d"=" | cut -c8-9) +DD=$(ncdump -h ${BK_FILE} | grep ":START_DATE" | cut -f2 -d"=" | cut -c11-12) +HH=$(ncdump -h ${BK_FILE} | grep ":START_DATE" | cut -f2 -d"=" | cut -c14-15) +ANAL_TIME=${YYYY}${MM}${DD}${HH} +# using tm06 NDAS prepbufr here, so need have proper date for the observation file, which is ANAL_TIME + 6 hour +OBSTIME=$(${GSI_BUILD}/bin/ndate.x +6 ${ANAL_TIME}) +HHH=$(echo $OBSTIME | cut -c9-10) +PREPBUFR=${PREPBUFR:-./data/obs_data/prepbufr/$OBSTIME/ndas.t${HHH}z.prepbufr.tm06.nr} +# +#------------------------------------------------ +# bk_core= which WRF core is used as background (NMM or ARW or NMMB) +# bkcv_option= which background error covariance and parameter will be used +# (GLOBAL or NAM) +# if_clean = clean : delete temperal files in working directory (default) +# no : leave running directory as is (this is for debug only) +# if_observer = Yes : only used as observation operater for enkf +# if_hybrid = Yes : Run GSI as 3D/4D EnVar +# if_4DEnVar = Yes : Run GSI as 4D EnVar +# if_nemsio = Yes : The GFS background files are in NEMSIO format +# if_oneob = Yes : Do single observation test +if_hybrid=No # Yes, or, No -- case sensitive ! +if_4DEnVar=No # Yes, or, No -- case sensitive (set if_hybrid=Yes first)! +if_observer=No # Yes, or, No -- case sensitive ! +if_nemsio=No # Yes, or, No -- case sensitive ! +if_oneob=No # Yes, or, No -- case sensitive ! + +bk_core=ARW +bkcv_option=NAM +if_clean=clean + +# Check if background file exists in the right place and is non-zero size + +if [[ ! -s $BK_FILE ]]; then + echo + echo ERROR: The background file $BK_FILE does not exist! + echo + exit 1 +fi + +# +# setup whether to do single obs test +if [ ${if_oneob} = Yes ]; then + if_oneobtest='.true.' +else + if_oneobtest='.false.' +fi +# +# setup for GSI 3D/4D EnVar hybrid +if [ ${if_hybrid} = Yes ]; then + PDYa=$(echo $ANAL_TIME | cut -c1-8) + cyca=$(echo $ANAL_TIME | cut -c9-10) + gdate=$(date -u -d "$PDYa $cyca -6 hour" +%Y%m%d%H) #guess date is 6hr ago + gHH=$(echo $gdate | cut -c9-10) + datem1=$(date -u -d "$PDYa $cyca -1 hour" +%Y-%m-%d_%H:%M:%S) #1hr ago + datep1=$(date -u -d "$PDYa $cyca 1 hour" +%Y-%m-%d_%H:%M:%S) #1hr later + if [ ${if_nemsio} = Yes ]; then + if_gfs_nemsio='.true.' + ENSEMBLE_FILE_mem=${ENS_ROOT}/gdas.t${gHH}z.atmf006s.mem + else + if_gfs_nemsio='.false.' + ENSEMBLE_FILE_mem=${ENS_ROOT}/sfg_${gdate}_fhr06s_mem + fi + + if [ ${if_4DEnVar} = Yes ]; then + BK_FILE_P1=${BK_ROOT}/wrfout_d01_${datep1} + BK_FILE_M1=${BK_ROOT}/wrfout_d01_${datem1} + + if [ ${if_nemsio} = Yes ]; then + ENSEMBLE_FILE_mem_p1=${ENS_ROOT}/gdas.t${gHH}z.atmf009s.mem + ENSEMBLE_FILE_mem_m1=${ENS_ROOT}/gdas.t${gHH}z.atmf003s.mem + else + ENSEMBLE_FILE_mem_p1=${ENS_ROOT}/sfg_${gdate}_fhr09s_mem + ENSEMBLE_FILE_mem_m1=${ENS_ROOT}/sfg_${gdate}_fhr03s_mem + fi + fi +fi + +# The following two only apply when if_observer = Yes, i.e. run observation operator for EnKF +# no_member number of ensemble members +# BK_FILE_mem path and base for ensemble members +no_member=20 +BK_FILE_mem=${BK_ROOT}/wrfarw.mem +# +# +##################################################### +# Users should NOT make changes after this point +##################################################### +# +BYTE_ORDER=Big_Endian +# BYTE_ORDER=Little_Endian + +################################################################################## +# Check GSI needed environment variables are defined and exist +# + +# Make sure ANAL_TIME is defined and in the correct format +if [ ! "${ANAL_TIME}" ]; then + echo "ERROR: \$ANAL_TIME is not defined!" + exit 1 +fi + +# Make sure WORK_ROOT is defined and exists +if [ ! "${WORK_ROOT}" ]; then + echo "ERROR: \$WORK_ROOT is not defined!" + exit 1 +fi + +# Make sure the background file exists +if [ ! -r "${BK_FILE}" ]; then + echo "ERROR: ${BK_FILE} does not exist!" + exit 1 +fi + +# Make sure OBS_ROOT is defined and exists +if [ ! "${OBS_ROOT}" ]; then + echo "ERROR: \$OBS_ROOT is not defined!" + exit 1 +fi +if [ ! -d "${OBS_ROOT}" ]; then + echo "ERROR: OBS_ROOT directory '${OBS_ROOT}' does not exist!" + exit 1 +fi + +# Set the path to the GSI static files +if [ ! "${FIX_ROOT}" ]; then + echo "ERROR: \$FIX_ROOT is not defined!" + exit 1 +fi +if [ ! -d "${FIX_ROOT}" ]; then + echo "ERROR: fix directory '${FIX_ROOT}' does not exist!" + exit 1 +fi + +# Set the path to the CRTM coefficients +if [ ! "${CRTM_ROOT}" ]; then + echo "ERROR: \$CRTM_ROOT is not defined!" + exit 1 +fi +if [ ! -d "${CRTM_ROOT}" ]; then + echo "ERROR: fix directory '${CRTM_ROOT}' does not exist!" + exit 1 +fi + +# Make sure the GSI executable exists +if [ ! -x "${GSI_EXE}" ]; then + echo "ERROR: ${GSI_EXE} does not exist!" + exit 1 +fi + +# Check to make sure the number of processors for running GSI was specified +if [ -z "${GSIPROC}" ]; then + echo "ERROR: The variable $GSIPROC must be set to contain the number of processors to run GSI" + exit 1 +fi + +# +################################################################################## +# Create the ram work directory and cd into it + +workdir=${WORK_ROOT} +echo " Create working directory:" ${workdir} + +if [ -d "${workdir}" ]; then + rm -rf ${workdir}/* +fi +mkdir -p ${workdir} +cd ${workdir} + +# +################################################################################## + +echo " Copy GSI executable, background file, and link observation bufr to working directory" + +# Save a copy of the GSI executable in the workdir +# cp ${GSI_EXE} gsi.x + +# Bring over background field (it's modified by GSI so we can't link to it) +cp ${BK_FILE} ./wrf_inout +if [ ${if_4DEnVar} = Yes ]; then + cp ${BK_FILE_P1} ./wrf_inou3 + cp ${BK_FILE_M1} ./wrf_inou1 +fi + +# Link to the prepbufr data +ln -s ${PREPBUFR} ./prepbufr + +# ln -s ${OBS_ROOT}/gdas1.t${HH}z.sptrmm.tm00.bufr_d tmirrbufr +# Link to the radiance data +srcobsfile[1]=${OBS_ROOT}/gdas1.t${HH}z.satwnd.tm00.bufr_d +gsiobsfile[1]=satwnd +srcobsfile[2]=${OBS_ROOT}/gdas1.t${HH}z.1bamua.tm00.bufr_d +gsiobsfile[2]=amsuabufr +srcobsfile[3]=${OBS_ROOT}/gdas1.t${HH}z.1bhrs4.tm00.bufr_d +gsiobsfile[3]=hirs4bufr +srcobsfile[4]=${OBS_ROOT}/gdas1.t${HH}z.1bmhs.tm00.bufr_d +gsiobsfile[4]=mhsbufr +srcobsfile[5]=${OBS_ROOT}/gdas1.t${HH}z.1bamub.tm00.bufr_d +gsiobsfile[5]=amsubbufr +srcobsfile[6]=${OBS_ROOT}/gdas1.t${HH}z.ssmisu.tm00.bufr_d +gsiobsfile[6]=ssmirrbufr +# srcobsfile[7]=${OBS_ROOT}/gdas1.t${HH}z.airsev.tm00.bufr_d +gsiobsfile[7]=airsbufr +srcobsfile[8]=${OBS_ROOT}/gdas1.t${HH}z.sevcsr.tm00.bufr_d +gsiobsfile[8]=seviribufr +srcobsfile[9]=${OBS_ROOT}/gdas1.t${HH}z.iasidb.tm00.bufr_d +gsiobsfile[9]=iasibufr +srcobsfile[10]=${OBS_ROOT}/gdas1.t${HH}z.gpsro.tm00.bufr_d +gsiobsfile[10]=gpsrobufr +srcobsfile[11]=${OBS_ROOT}/gdas1.t${HH}z.amsr2.tm00.bufr_d +gsiobsfile[11]=amsrebufr +srcobsfile[12]=${OBS_ROOT}/gdas1.t${HH}z.atms.tm00.bufr_d +gsiobsfile[12]=atmsbufr +srcobsfile[13]=${OBS_ROOT}/gdas1.t${HH}z.geoimr.tm00.bufr_d +gsiobsfile[13]=gimgrbufr +srcobsfile[14]=${OBS_ROOT}/gdas1.t${HH}z.gome.tm00.bufr_d +gsiobsfile[14]=gomebufr +srcobsfile[15]=${OBS_ROOT}/gdas1.t${HH}z.omi.tm00.bufr_d +gsiobsfile[15]=omibufr +srcobsfile[16]=${OBS_ROOT}/gdas1.t${HH}z.osbuv8.tm00.bufr_d +gsiobsfile[16]=sbuvbufr +srcobsfile[17]=${OBS_ROOT}/gdas1.t${HH}z.eshrs3.tm00.bufr_d +gsiobsfile[17]=hirs3bufrears +srcobsfile[18]=${OBS_ROOT}/gdas1.t${HH}z.esamua.tm00.bufr_d +gsiobsfile[18]=amsuabufrears +srcobsfile[19]=${OBS_ROOT}/gdas1.t${HH}z.esmhs.tm00.bufr_d +gsiobsfile[19]=mhsbufrears +srcobsfile[20]=${OBS_ROOT}/rap.t${HH}z.nexrad.tm00.bufr_d +gsiobsfile[20]=l2rwbufr +srcobsfile[21]=${OBS_ROOT}/rap.t${HH}z.lgycld.tm00.bufr_d +gsiobsfile[21]=larcglb +srcobsfile[22]=${OBS_ROOT}/gdas1.t${HH}z.glm.tm00.bufr_d +gsiobsfile[22]= +# ii=1 +# while [[ $ii -le 21 ]]; do +# if [ -r "${srcobsfile[$ii]}" ]; then +# # ln -s ${srcobsfile[$ii]} ${gsiobsfile[$ii]} +# echo "link source obs file ${srcobsfile[$ii]}" +# fi +# ((ii = $ii + 1)) +# done + +# +################################################################################## + +ifhyb=.false. +if [ ${if_hybrid} = Yes ]; then + ls ${ENSEMBLE_FILE_mem}* >filelist02 + if [ ${if_4DEnVar} = Yes ]; then + ls ${ENSEMBLE_FILE_mem_p1}* >filelist03 + ls ${ENSEMBLE_FILE_mem_m1}* >filelist01 + fi + + nummem=$(more filelist02 | wc -l) + nummem=$((nummem - 3)) + + if [[ ${nummem} -ge 5 ]]; then + ifhyb=.true. + ${ECHO} " GSI hybrid uses ${ENSEMBLE_FILE_mem} with n_ens=${nummem}" + fi +fi +if4d=.false. +if [[ ${ifhyb} = .true. && ${if_4DEnVar} = Yes ]]; then + if4d=.true. +fi +# +################################################################################## + +echo " Copy fixed files and link CRTM coefficient files to working directory" + +# Set fixed files +# berror = forecast model background error statistics +# specoef = CRTM spectral coefficients +# trncoef = CRTM transmittance coefficients +# emiscoef = CRTM coefficients for IR sea surface emissivity model +# aerocoef = CRTM coefficients for aerosol effects +# cldcoef = CRTM coefficients for cloud effects +# satinfo = text file with information about assimilation of brightness temperatures +# satangl = angle dependent bias correction file (fixed in time) +# pcpinfo = text file with information about assimilation of prepcipitation rates +# ozinfo = text file with information about assimilation of ozone data +# errtable = text file with obs error for conventional data (regional only) +# convinfo = text file with information about assimilation of conventional data +# lightinfo= text file with information about assimilation of GLM lightning data +# bufrtable= text file ONLY needed for single obs test (oneobstest=.true.) +# bftab_sst= bufr table for sst ONLY needed for sst retrieval (retrieval=.true.) + +if [ ${bkcv_option} = GLOBAL ]; then + echo ' Use global background error covariance' + BERROR=${FIX_ROOT}/${BYTE_ORDER}/nam_glb_berror.f77.gcv + OBERROR=${FIX_ROOT}/prepobs_errtable.global + if [ ${bk_core} = NMM ]; then + ANAVINFO=${FIX_ROOT}/anavinfo_ndas_netcdf_glbe + fi + if [ ${bk_core} = ARW ]; then + ANAVINFO=${FIX_ROOT}/anavinfo_arw_netcdf_glbe + fi + if [ ${bk_core} = NMMB ]; then + ANAVINFO=${FIX_ROOT}/anavinfo_nems_nmmb_glb + fi +else + echo ' Use NAM background error covariance' + BERROR=${FIX_ROOT}/${BYTE_ORDER}/nam_nmmstat_na.gcv + OBERROR=${FIX_ROOT}/nam_errtable.r3dv + if [ ${bk_core} = NMM ]; then + ANAVINFO=${FIX_ROOT}/anavinfo_ndas_netcdf + fi + if [ ${bk_core} = ARW ]; then + ANAVINFO=${FIX_ROOT}/anavinfo_arw_netcdf + fi + if [ ${bk_core} = NMMB ]; then + ANAVINFO=${FIX_ROOT}/anavinfo_nems_nmmb + fi +fi + +SATANGL=${FIX_ROOT}/global_satangbias.txt +SATINFO=${FIX_ROOT}/global_satinfo.txt +CONVINFO=${FIX_ROOT}/global_convinfo.txt +OZINFO=${FIX_ROOT}/global_ozinfo.txt +PCPINFO=${FIX_ROOT}/global_pcpinfo.txt +LIGHTINFO=${FIX_ROOT}/global_lightinfo.txt + +# copy Fixed fields to working directory +cp $ANAVINFO anavinfo +cp $BERROR berror_stats +cp $SATANGL satbias_angle +cp $SATINFO satinfo +cp $CONVINFO convinfo +cp $OZINFO ozinfo +cp $PCPINFO pcpinfo +cp $LIGHTINFO lightinfo +cp $OBERROR errtable +# +# # CRTM Spectral and Transmittance coefficients +CRTM_ROOT_ORDER=${CRTM_ROOT}/${BYTE_ORDER} +emiscoef_IRwater=${CRTM_ROOT_ORDER}/Nalli.IRwater.EmisCoeff.bin +emiscoef_IRice=${CRTM_ROOT_ORDER}/NPOESS.IRice.EmisCoeff.bin +emiscoef_IRland=${CRTM_ROOT_ORDER}/NPOESS.IRland.EmisCoeff.bin +emiscoef_IRsnow=${CRTM_ROOT_ORDER}/NPOESS.IRsnow.EmisCoeff.bin +emiscoef_VISice=${CRTM_ROOT_ORDER}/NPOESS.VISice.EmisCoeff.bin +emiscoef_VISland=${CRTM_ROOT_ORDER}/NPOESS.VISland.EmisCoeff.bin +emiscoef_VISsnow=${CRTM_ROOT_ORDER}/NPOESS.VISsnow.EmisCoeff.bin +emiscoef_VISwater=${CRTM_ROOT_ORDER}/NPOESS.VISwater.EmisCoeff.bin +emiscoef_MWwater=${CRTM_ROOT_ORDER}/FASTEM6.MWwater.EmisCoeff.bin +aercoef=${CRTM_ROOT_ORDER}/AerosolCoeff.bin +cldcoef=${CRTM_ROOT_ORDER}/CloudCoeff.bin + +ln -s $emiscoef_IRwater ./Nalli.IRwater.EmisCoeff.bin +ln -s $emiscoef_IRice ./NPOESS.IRice.EmisCoeff.bin +ln -s $emiscoef_IRsnow ./NPOESS.IRsnow.EmisCoeff.bin +ln -s $emiscoef_IRland ./NPOESS.IRland.EmisCoeff.bin +ln -s $emiscoef_VISice ./NPOESS.VISice.EmisCoeff.bin +ln -s $emiscoef_VISland ./NPOESS.VISland.EmisCoeff.bin +ln -s $emiscoef_VISsnow ./NPOESS.VISsnow.EmisCoeff.bin +ln -s $emiscoef_VISwater ./NPOESS.VISwater.EmisCoeff.bin +ln -s $emiscoef_MWwater ./FASTEM6.MWwater.EmisCoeff.bin +ln -s $aercoef ./AerosolCoeff.bin +ln -s $cldcoef ./CloudCoeff.bin +# Copy CRTM coefficient files based on entries in satinfo file +for file in $(awk '{if($1!~"!"){print $1}}' ./satinfo | sort | uniq); do + ln -s ${CRTM_ROOT_ORDER}/${file}.SpcCoeff.bin ./ + ln -s ${CRTM_ROOT_ORDER}/${file}.TauCoeff.bin ./ +done + +# Only need this file for single obs test +bufrtable=${FIX_ROOT}/prepobs_prep.bufrtable +cp $bufrtable ./prepobs_prep.bufrtable + +# for satellite bias correction +# Users may need to use their own satbias files for correct bias correction +cp ${GSI_ROOT}/fix/comgsi_satbias_in ./satbias_in +cp ${GSI_ROOT}/fix/comgsi_satbias_pc_in ./satbias_pc_in + +# +################################################################################## +# Set some parameters for use by the GSI executable and to build the namelist +echo " Build the namelist " + +# default is NAM +# as_op='1.0,1.0,0.5 ,0.7,0.7,0.5,1.0,1.0,' +vs_op='1.0,' +hzscl_op='0.373,0.746,1.50,' +if [ ${bkcv_option} = GLOBAL ]; then + # as_op='0.6,0.6,0.75,0.75,0.75,0.75,1.0,1.0' + vs_op='0.7,' + hzscl_op='1.7,0.8,0.5,' +fi +if [ ${bk_core} = NMMB ]; then + vs_op='0.6,' +fi + +# default is NMM +bk_core_arw='.false.' +bk_core_nmm='.true.' +bk_core_nmmb='.false.' +bk_if_netcdf='.true.' +if [ ${bk_core} = ARW ]; then + bk_core_arw='.true.' + bk_core_nmm='.false.' + bk_core_nmmb='.false.' + bk_if_netcdf='.true.' +fi +if [ ${bk_core} = NMMB ]; then + bk_core_arw='.false.' + bk_core_nmm='.false.' + bk_core_nmmb='.true.' + bk_if_netcdf='.false.' +fi + +if [ ${if_observer} = Yes ]; then + nummiter=0 + if_read_obs_save='.true.' + if_read_obs_skip='.false.' +else + nummiter=2 + if_read_obs_save='.false.' + if_read_obs_skip='.false.' +fi + +# Build the GSI namelist on-the-fly +. $GSI_NAMELIST + +# modify the anavinfo vertical levels based on wrf_inout for WRF ARW and NMM +if [ ${bk_core} = ARW ] || [ ${bk_core} = NMM ]; then + bklevels=$(ncdump -h wrf_inout | grep "bottom_top =" | awk '{print $3}') + bklevels_stag=$(ncdump -h wrf_inout | grep "bottom_top_stag =" | awk '{print $3}') + anavlevels=$(cat anavinfo | grep ' sf ' | tail -1 | awk '{print $2}') # levels of sf, vp, u, v, t, etc + anavlevels_stag=$(cat anavinfo | grep ' prse ' | tail -1 | awk '{print $2}') # levels of prse + sed -i 's/ '$anavlevels'/ '$bklevels'/g' anavinfo + sed -i 's/ '$anavlevels_stag'/ '$bklevels_stag'/g' anavinfo +fi + +# +################################################### +# run GSI +################################################### +echo ' Run GSI with' ${bk_core} 'background' + +# case $ARCH in +# 'IBM_LSF') +# ${RUN_COMMAND} ./gsi.x <gsiparm.anl >stdout 2>&1 +# ;; + +# *) +# ${RUN_COMMAND} ./gsi.x >stdout 2>&1 +# ;; +# esac +$RUN_COMMAND >stdout 2>&1 + +################################################################## +# run time error check +################################################################## +error=$? + +if [ ${error} -ne 0 ]; then + echo "ERROR: ${GSI} crashed Exit status=${error}" + exit ${error} +fi + +# +################################################################## +# +# GSI updating satbias_in +# +# GSI updating satbias_in (only for cycling assimilation) + +# Copy the output to more understandable names +ln -s stdout stdout.anl.${ANAL_TIME} +ln -s wrf_inout wrfanl.${ANAL_TIME} +ln -s fort.201 fit_p1.${ANAL_TIME} +ln -s fort.202 fit_w1.${ANAL_TIME} +ln -s fort.203 fit_t1.${ANAL_TIME} +ln -s fort.204 fit_q1.${ANAL_TIME} +ln -s fort.207 fit_rad1.${ANAL_TIME} + +# Loop over first and last outer loops to generate innovation +# diagnostic files for indicated observation types (groups) +# +# NOTE: Since we set miter=2 in GSI namelist SETUP, outer +# loop 03 will contain innovations with respect to +# the analysis. Creation of o-a innovation files +# is triggered by write_diag(3)=.true. The setting +# write_diag(1)=.true. turns on creation of o-g +# innovation files. +# + +loops="01 03" +for loop in $loops; do + + case $loop in + 01) string=ges ;; + 03) string=anl ;; + *) string=$loop ;; + esac + + # Collect diagnostic files for obs types (groups) below + # listall="conv amsua_metop-a mhs_metop-a hirs4_metop-a hirs2_n14 msu_n14 \ + # sndr_g08 sndr_g10 sndr_g12 sndr_g08_prep sndr_g10_prep sndr_g12_prep \ + # sndrd1_g08 sndrd2_g08 sndrd3_g08 sndrd4_g08 sndrd1_g10 sndrd2_g10 \ + # sndrd3_g10 sndrd4_g10 sndrd1_g12 sndrd2_g12 sndrd3_g12 sndrd4_g12 \ + # hirs3_n15 hirs3_n16 hirs3_n17 amsua_n15 amsua_n16 amsua_n17 \ + # amsub_n15 amsub_n16 amsub_n17 hsb_aqua airs_aqua amsua_aqua \ + # goes_img_g08 goes_img_g10 goes_img_g11 goes_img_g12 \ + # pcp_ssmi_dmsp pcp_tmi_trmm sbuv2_n16 sbuv2_n17 sbuv2_n18 \ + # omi_aura ssmi_f13 ssmi_f14 ssmi_f15 hirs4_n18 amsua_n18 mhs_n18 \ + # amsre_low_aqua amsre_mid_aqua amsre_hig_aqua ssmis_las_f16 \ + # ssmis_uas_f16 ssmis_img_f16 ssmis_env_f16 mhs_metop_b \ + # hirs4_metop_b hirs4_n19 amusa_n19 mhs_n19 goes_glm_16" + listall=$(ls pe* | cut -f2 -d"." | awk '{print substr($0, 0, length($0)-3)}' | sort | uniq) + + for type in $listall; do + count=$(ls pe*${type}_${loop}* | wc -l) + if [[ $count -gt 0 ]]; then + cat pe*${type}_${loop}* >diag_${type}_${string}.${ANAL_TIME} + fi + done +done + +# Clean working directory to save only important files +ls -l * >list_run_directory +if [[ ${if_clean} = clean && ${if_observer} != Yes ]]; then + echo ' Clean working directory after GSI run' + rm -f *Coeff.bin # all CRTM coefficient files + rm -f pe0* # diag files on each processor + rm -f obs_input.* # observation middle files + rm -f siganl sigf0? # background middle files + rm -f fsize_* # delete temperal file for bufr size +fi +# +# +################################################# +# start to calculate diag files for each member +################################################# +# +if [ ${if_observer} = Yes ]; then + string=ges + for type in $listall; do + count=0 + if [[ -f diag_${type}_${string}.${ANAL_TIME} ]]; then + mv diag_${type}_${string}.${ANAL_TIME} diag_${type}_${string}.ensmean + fi + done + mv wrf_inout wrf_inout_ensmean + + # Build the GSI namelist on-the-fly for each member + nummiter=0 + if_read_obs_save='.false.' + if_read_obs_skip='.true.' + . $GSI_NAMELIST + + # Loop through each member + loop="01" + ensmem=1 + while [[ $ensmem -le $no_member ]]; do + + rm pe0* + + print "\$ensmem is $ensmem" + ensmemid=$(printf %3.3i $ensmem) + + # get new background for each member + if [[ -f wrf_inout ]]; then + rm wrf_inout + fi + + BK_FILE=${BK_FILE_mem}${ensmemid} + echo $BK_FILE + ln -s $BK_FILE wrf_inout + + # run GSI + echo ' Run GSI with' ${bk_core} 'for member ', ${ensmemid} + + # case $ARCH in + # 'IBM_LSF') + # ${RUN_COMMAND} ./gsi.x <gsiparm.anl >stdout_mem${ensmemid} 2>&1 + # ;; + + # *) + # ${RUN_COMMAND} ./gsi.x >stdout_mem${ensmemid} 2>&1 + # ;; + # esac + + $RUN_COMMAND >stdout_mem${ensmemid} 2>&1 + + # run time error check and save run time file status + error=$? + + if [ ${error} -ne 0 ]; then + echo "ERROR: ${GSI} crashed for member ${ensmemid} Exit status=${error}" + exit ${error} + fi + + ls -l * >list_run_directory_mem${ensmemid} + + # generate diag files + + for type in $listall; do + count=$(ls pe*${type}_${loop}* | wc -l) + if [[ $count -gt 0 ]]; then + cat pe*${type}_${loop}* >diag_${type}_${string}.mem${ensmemid} + fi + done + + # next member + ((ensmem += 1)) + + done + +fi + +exit 0 diff --git a/models/WRF/scripts/runscript b/models/WRF/scripts/runscript index f02abe0..0f733b6 100644 --- a/models/WRF/scripts/runscript +++ b/models/WRF/scripts/runscript @@ -14,16 +14,17 @@ if [ $# -gt 0 ]; then echo "[WRF] no automatic copying" fi # run cmd line options - echo "Executing" + echo "[WRF] Executing" exec "$@" - echo "Finished inside the container." + echo "[WRF] Finished inside the container." else # interactive - echo "Welcome inside an IMGW container!" - echo "Get help: singularity run-help $SINGULARITY_NAME" - echo "WRF ($WRF_VERSION, $WRF_BUILD_TARGET)" - echo "WRF $WRF_BUILD_TARGET -> /wrf/run" - echo "WRF exe -> /wrf/bin" - cd /wrf/run + echo "[WRF] Welcome inside an IMGW container!" + echo "[WRF] Get help: singularity run-help $SINGULARITY_NAME" + echo "[WRF] $WRF_VERSION, $WRF_BUILD_TARGET" + echo "[WRF] $WRF_BUILD_TARGET -> /wrf/run" + echo "[WRF] exe -> /wrf/bin" + echo "[WRF] Automatic copy of /wrf/run to current directory: ./$(basename $SINGULARITY_CONTAINER) init" + echo "[WRF] e.g. run real.exe from outside: ./$(basename $SINGULARITY_CONTAINER) real.exe" exec /.singularity.d/actions/shell "$@" fi \ No newline at end of file -- GitLab