123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- #!/bin/ksh
- #
- # Script to run the NEMO rebuild tool to rebuild NEMO
- # diagnostic or restart files.
- #
- # The scripts creates the nam_rebuild namelist based upon
- # the command line options you give it (see usage below)
- #
- # Ed Blockley, September 2011
- #
- #
- #set -ax
- usage ()
- {
- echo
- echo " NEMO Rebuild"
- echo " ************"
- echo
- echo " usage: ${0##*/} [-t -c] filebase ndomain [rebuild dimensions]"
- echo
- echo " flags: -t num use num threads"
- echo " -c num split 4D vars into time chuncks of size num"
- echo
- exit 1
- }
- while getopts c:t: opt
- do
- case ${opt} in
- t)
- OMP_NUM_THREADS=${OPTARG}
- ;;
- c)
- NCHUNKSIZE=${OPTARG}
- ;;
- esac
- done
- shift $(expr ${OPTIND} - 1)
- if [[ $# < 2 ]] ; then
- usage
- fi
- script_dir=$(dirname $0)
- file=$1
- ndomain=$2
- DIM1=$3
- DIM2=$4
- export OMP_NUM_THREADS=${OMP_NUM_THREADS:-16}
- if [[ -n ${DIM1} && -n ${DIM2} ]] ; then
- dim_str=" dims '${DIM1}','${DIM2}'"
- dims="dims='${DIM1}','${DIM2}'"
- echo ${dim_str} >> nam_rebuild
- fi
- echo "file ${file}, num_domains ${ndomain}, num_threads ${OMP_NUM_THREADS}${dim_str}"
- cat > nam_rebuild << EOC
- &nam_rebuild
- filebase='${file}'
- ndomain=${ndomain}
- EOC
- if [[ -n ${dims} ]] ; then
- echo ${dims} >> nam_rebuild
- fi
- if [[ -n ${NCHUNKSIZE} ]] ; then
- echo " nchunksize=${NCHUNKSIZE}" >> nam_rebuild
- fi
- echo "/" >> nam_rebuild
- # run the rebuild code
- ${script_dir}/rebuild_nemo.exe
|