#! /bin/csh -f
# bubble_sort.csh
# Example of a shell script to (bubble) sort some numbers
# RJM Programming 
# November, 2014
#

    set ASIZE=1000
    set IMIN=0
    set IMAX=250
    set SMODE=1
##                  save command line args in variables
    set jsize=$ASIZE
    set jmin=$IMIN
    set jmax=$IMAX
    set imode=$SMODE
    if ($#argv > 0) then
        if ($#argv >= 1) then
          set jsize=$1
        endif
        if ($#argv >= 2) then
          set jmin=$2
        endif
        if ($#argv >= 3) then
          set jmax=$3
        endif
        if ($#argv >= 4) then
          set imode=$4
        endif
    endif
##                  generate random numbers
    if (-f "./mybs.xxx") then
        echo "y" > ./mybs.xxx
        if ($status != 0) goto error
        set huhzero=`rm -f ./mybs.xxx < ./mybs.xxx`
        if ($status != 0) goto error
    endif
    set cnt=0
    set sarrayn=`date '+%S'`
tloop:
    if ($cnt < $jsize) then
	    set sarrayn=`echo "${jmin}:${jmax}:${jsize}" | awk -F: -v seed=$sarrayn 'BEGIN{srand(seed);} { print ((rand() * 10000.0) % ($2 + 1 - $1)) + (((rand() * 10000.0) % ($3 + 1)) * 0.0001) + $1; }'`
	    echo $sarrayn >> ./mybs.xxx
	    @ cnt++
	    set sarrayn=`echo $sarrayn | tr -d '.'`
	    goto tloop
	endif
	if ($imode == 0) then
	  set huhone=`cat ./mybs.xxx | sort -n | awk '{print "Ascending Number",NR,$1;}' > ./mybs.srt`
	else
	  set huhone=`cat ./mybs.xxx | sort -nr | awk '{print "Descending Number",NR,$1;}' > ./mybs.srt`
	endif
    if ($status != 0) goto error
    cat ./mybs.srt
    if (-f "./mybs.xxx") then
        echo "y" > ./mybs.xxx
        if ($status != 0) goto error
        set huhzero=`rm -f ./mybs.xxx < ./mybs.xxx`
        if ($status != 0) goto error
    endif
    if (-f "./mybs.srt") then
        echo "y" > ./mybs.srt
        if ($status != 0) goto error
        set huhzero=`rm -f ./mybs.srt < ./mybs.srt`
        if ($status != 0) goto error
    endif
    if ($status != 0) goto error
done:
     exit 0
error:
     exit 1
     