#!/bin/bash # by Guoqing Ge, 2018/9/19 # # Create a realease directory, link required components from ProdGSI # and make a tar ball # release=comGSIv3.7_EnKFv1.3 GSI="/glade/work/geguo/MPMC/git_ProdGSI" fixlist="/glade/work/geguo/MPMC/releases/fix.list" # # remove old tarball and its direcotry rm -rf $release rm -rf ${release}.tar.gz # ## declare an array variable declare -a fROOT=("cmake" "CMakeLists.txt" "libsrc") declare -a fUtil=("bufr_tools" "DTC/GEN_BE.comgsi" "gsienvreport.sh" "radar_process" "ndate") declare -a fBig_Endian=("cmaq_berror_big_endian" "cmaq_pm2_5_reg_berror_12z.bin" "wrf_chem_berror_big_endian" "nam_glb_berror.f77.gcv" "nam_nmmstat_na.gcv" "global_berror.l64y96.f77" ) # You can access them using echo "${arr[0]}", "${arr[1]}" mkdir -p $release; cd $release ## now loop through fROOT for i in "${fROOT[@]}"; do ln -sf $GSI/$i . done mkdir src ln -sf $GSI/src/* src rm src/enkf mkdir src/enkf ln -sf $GSI/src/enkf/* src/enkf #rm src/Make* src/enkf/Make* rm src/make* ln -sf $GSI/util/DTC/README.comgsi . ln -sf $GSI/util/DTC/README.GSI_Docker . ## link ush mkdir -p ush ln -sf $GSI/ush/com* ush ## link util mkdir -p util for i in "${fUtil[@]}"; do ln -sf $GSI/util/$i util done mkdir -p util/Analysis_Utilities ln -sf $GSI/util/Analysis_Utilities/plot_cost_grad/ util/Analysis_Utilities ln -sf $GSI/util/Analysis_Utilities/plots_ncl util/Analysis_Utilities ln -sf $GSI/util/Analysis_Utilities/read_diag util/Analysis_Utilities mkdir -p util/EnKF; ln -sf $GSI/util/EnKF/arw util/EnKF ln -sf $GSI/util/DTC/GEN_BE.comgsi util ## link basic fix files mkdir -p fix fix/Big_Endian for i in "${fBig_Endian[@]}"; do ln -sf $GSI/fix/Big_Endian/$i fix/Big_Endian done ### link fix files listed in "fix.list" while read line; do ln -sf $GSI/fix/$line fix/ done < $fixlist ## turn on BUILD_WRF and BUILD_CORE_LIBS by default sed -e 's/ SET(ENKF_MODE "GFS" CACHE STRING "EnKF build mode: GFS, WRF, NMMB")/ SET(ENKF_MODE "WRF" CACHE STRING "EnKF build mode: GFS, WRF, NMMB")\n option(BUILD_CORELIBS "Build the Core libraries " ON)/' CMakeLists.txt > tmp.txt rm CMakeLists.txt mv tmp.txt CMakeLists.txt # make a tarball cd .. echo "making a release tarball based on ${GSI}" tar hcvfz ${release}.tar.gz $release >/dev/null echo "Done!" set -x mv ${release}.tar.gz /glade/work/geguo/misc cd /glade/work/geguo/misc; scp ${release}.tar.gz geguo@mohawk.rap.ucar.edu://d2/www/dtcenter/com-GSI/users/downloads/GSI_releases exit