#!/bin/bash

if test -z "$2"; then
    echo Usage: addlevel \<atmosphere_file\|mol_file\> \<uvspec_input_file\> 
    exit
fi

# extract the minimum and maximum height from the profile
top=`gawk '!/#/{printf "%11.3f\n",$1}' $1 | head -n 1`
bottom=`gawk '!/#/{printf "%11.3f\n",$1}' $1 | tail -n 1`

# extract the lidar-relevant value from the input file
umu=`cat $2 | sed -n -e '/umu /p' | cut -f 1 -d'#' | sed -e 's/umu //' | sed -e 's/ //g'` 
range=`cat $2 | sed -n -e '/sslidar range /p' | cut -f 1 -d'#' | sed -e 's/sslidar range //' | sed -e 's/ //g'` 
position=`cat $2 | sed -n -e '/sslidar position /p' | cut -f 1 -d'#' | sed -e 's/sslidar position //' | sed -e 's/ //g'` 
nranges=`cat $2 | sed -n -e '/sslidar_nranges /p' | cut -f 1 -d'#' | sed -e 's/sslidar_nranges //' | sed -e 's/ //g'` 

zstep=`echo -${range}*${umu} | bc -l`

level_list=""
for i_range in `seq 0 $nranges`
do
  level=`echo $position+$zstep*$i_range | bc -l`
  inside=`echo \($level-$top\)*\($level-$bottom\) | bc -l | grep "-" | wc -l`
  if [ $inside -eq 1 ]; then
    level_list="$level_list $level"
  fi
done

../src/addlevel $1 $level_list
