1#!/bin/bash
2# use: egap.sh n file.r
3#
4# compute Egap = E(n+1) - E(n)
5
6declare -i nocc=$1
7declare -i nl=nocc/5+1
8#echo "nl=" $nl
9declare -i nfrac=nocc-5*\(nocc/5\)
10#echo "nfrac=" $nfrac
11
12grep -A$nl '<eigenvalues ' $2| \
13 awk -v nl=$nl -v nfrac=$nfrac -v nocc=$nocc\
14  ' /<eigenvalues / {kpx=$3;kpy=$4;kpz=$5} \
15    NR%(nl+2)==nl {e[0] = $5;} \
16    NR%(nl+2)==(nl+1) \
17    { e[1]=$1; e[2]=$2; e[3]=$3; e[4]=$4; e[5]=$5; \
18      e_n = e[nfrac]; e_np1 = e[nfrac+1]; \
19      printf("E_%d= %-8.3f E_%d= %-8.3f Eg= %-8.3f  %6.3f %6.3f %6.3f\n",nocc,e_n,nocc+1,e_np1,e_np1-e_n,kpx,kpy,kpz);  }' -
20