#!/bin/bash

# usage: ./FindHighestLTerm 
# input assumed to be LS.txt
# output: Orbital_v.txt
# where "v" is given by "VERSION" 


	#check to see if all microstates have been used up
[ ! -s LS.txt ] && { echo "LS.txt is empty; no more microstates left"; exit -1;}

v=$(cat VERSION)
infile="LS.txt"
outfile="Orbital_"$v".txt"

awk '{++i; L[i]=$1; S[i]=$2; if ($1>Lmax){Lmax=$1}} 
    END{n=i; 
	for (j=1;j<=n;j++)
	  if (L[j]==Lmax){if (S[j]>=Smax){Smax=S[j]}}

	  for (l=-Lmax; l<=Lmax; l++)
	    {for (s=-Smax;s<=Smax;s++){print l,s}}}' \
	 $infile                       | 
	 sort -k1nr  | tee Orbital.txt | 
awk 'BEGIN{L[1]="S";L[2]="P";L[3]="D";L[4]="F";L[5]="G"}
        {if ($1>lmax){lmax=$1}; if($2>smax){smax=$2}}
     END{ns=2*smax+1
         printf ("term:^%d%s   L=%d, S=%3.1f", ns, L[lmax+1],lmax,smax)
         printf (" microstates:%d",NR)}' 

cp Orbital.txt $outfile; echo -n  "   $outfile "
echo $((v+1)) > VERSION
