#!/bin/ksh



# Script to sum up DOS files from VASP for non-polarized calculations.
if [ $# -lt 3 ]; then
	echo "Usage: sum_dos [0] [start] [end]"
	echo "Or: sum_dos [1] [i] [j] [k] [l] ..."
	exit 1
fi


type=$1
shift 1

# Contiguous
if [ $type -eq 0 ]; then

	start=$1
	end=$2
	shift 2

	string=$start.to.$end
	echo $start
	echo $end


# First file
	i=$start
	nl=$(wc -l DOS$i | sed 's/://g' | awk '{print $1}')
echo $nl

	sed -n '2,'$nl' p' DOS$i | awk '{printf "%12.8f %12.8f %12.8f %12.8f %12.8f \n", $1, $2, $3, $4, $2+$3+$4}' >| DOS.tmp

	i=$((i+1))

	while [ $i -le $end ]; do

		sed -n '2,'$nl' p' DOS$i | awk '{printf "%12.8f %12.8f %12.8f %12.8f %12.8f \n", $1, $2, $3, $4, $2+$3+$4 }'  >| DOS.tmp2

		paste DOS.tmp DOS.tmp2 | awk '{printf "%15.8f %15.8f %15.8f %15.8f %15.8f \n", $1, $2+$7, $3+$8, $4+$9, $5+$10 }' >| DOS.tmp3

		mv -f DOS.tmp3 DOS.tmp

		i=$((i+1))

	done


else

	start=$1
	shift 1

# First file
	i=$start
	nl=$(wc -l DOS$i | sed 's/://g' | awk '{print $1}')
	echo $nl
	string=$start
	sed -n '2,'$nl' p' DOS$i | awk '{printf "%12.8f %12.8f %12.8f %12.8f %12.8f \n", $1, $2, $3, $4, $2+$3+$4 }' >| DOS.tmp
	for i in "$@"; do
		string=$(echo $string.$i)
		echo $i
		sed -n '2,'$nl' p' DOS$i | awk '{printf "%12.8f %12.8f %12.8f %12.8f %12.8f \n", $1, $2, $3, $4, $2+$3+$4 }'  >| DOS.tmp2

		paste DOS.tmp DOS.tmp2 | awk '{printf "%15.8f %15.8f %15.8f %15.8f %15.8f \n", $1, $2+$7, $3+$8, $4+$9, $5+$10 }' >| DOS.tmp3

		mv -f DOS.tmp3 DOS.tmp
	done


fi


mv DOS.tmp DOS.SUM.$string
rm -f DOS.tmp2


exit 0
