#!/bin/sh

# This shell runs a bunch of benchmarks on some specific files
# available at Unidata. If you want to run this shell, you need these
# data files.

# This script gets and benchmarks against some AR4 data.

# $Id: run_bm_ar4.sh,v 1.4 2010/01/11 19:27:11 ed Exp $

set -e
echo ""
#file_list="pr_A1.20C3M_8.CCSM.atmm.1870-01_cat_1999-12.nc tauu_A1.20C3M_8.CCSM.atmm.1870-01_cat_1999-12.nc thetao_O1.SRESA1B_2.CCSM.ocnm.2000-01_cat_2099-12.nc usi_O1.20C3M_8.CCSM.icem.1870-01_cat_1999-12.nc"
#file_list="pr_A1.20C3M_8.CCSM.atmm.1870-01_cat_1999-12.nc tauu_A1.20C3M_8.CCSM.atmm.1870-01_cat_1999-12.nc usi_O1.20C3M_8.CCSM.icem.1870-01_cat_1999-12.nc"
file_list="pr_A1.20C3M_8.CCSM.atmm.1870-01_cat_1999-12.nc"
echo " *** Getting sample AR4 files $file_list"

# Get the files.
for f1 in $file_list
do
    if ! test -f $f1; then
	wget ftp://ftp.unidata.ucar.edu/pub/netcdf/sample_data/ar4/$f1.gz
	gunzip $f1.gz
    fi
done

echo "SUCCESS!!!"

out='run_bm_ar4_pr_out.csv'
rm -rf $out
echo " *** Benchmarking pr_A1 file with various chunksizes (output to ${out})..."

# Create netCDF-4 versions of the file, with different chunksizes.
h=-h
s=0
pr_ar4_sample="pr_A1.20C3M_8.CCSM.atmm.1870-01_cat_1999-12.nc"

file_num=0
for d in -1
do
    for c0 in 4 8 16 32 64 
    do
	for c1 in 64
	do
	    for c2 in 128
	    do
		if test $d == -1; then
		    file_out="pr_A1_${c0}_${c1}_${c2}.nc"
		else
		    file_out="pr_A1_z${d}_${c0}_${c1}_${c2}.nc"
		fi
		out_files="$out_files $file_out"

		# If the output file does not yet exist, create it.
		if test -f $file_out; then
		    echo "found existing $file_out"
		else
		    cmd="./bm_file $h -f 3 -c 6:${d}:${s}:${c0}:${c1}:${c2} -o ${file_out} ${pr_ar4_sample}"
		    echo "cmd=$cmd"
# 	            bash ./clear_cache.sh
 		    if ! ($cmd >> $out); then
 			exit 1;
 		    fi
		fi

		# Turn off header next time around.
		h=
	    done
	done
    done
done

echo $out_files

# Do the horizonatal runs.
#bash ./clear_cache.sh
./tst_ar4 -h $pr_ar4_sample
for f1 in $out_files
do
#    bash ./clear_cache.sh
    ./tst_ar4 ${f1}
done

# Do the timeseries runs.
#bash ./clear_cache.sh
./tst_ar4 -t -h $pr_ar4_sample
for f1 in $out_files
do
#    bash ./clear_cache.sh
    ./tst_ar4 -t ${f1}
done

echo "SUCCESS!!!"
exit 0
