#!/usr/bin/ksh

#------------------------------------------------------------
#launches qsub using tcsh wrapper
#syntax: launch_qsub script 
#------------------------------------------------------------ 

. $WFU_PATH/global.site.ksh
script=$1
grid_engine_wrapper=$script_path/grid_engine_wrapper
licensetype=$2
batchlog=$3
priority=$4
super_computer=$5
qflag=$6
resource1=$7
resource2=$8
resource3=$9

if test ${#licensetype} -eq 0
	then licensetype=`echo unix`
fi
if test ${#batchlog} -eq 0
	then batchlog=`echo $script.log`
fi
if [[ ${#priority} -eq 0 ]]; then
	if [[ ${#grid_engine_default_priority} -gt 0 ]]; then
		priority=$grid_engine_default_priority
	else
		priority=0
	fi
fi

#------------------------------------
#hardcode for supercomputer time
#------------------------------------
#if test ${#super_computer} -gt 1
#	then scomputer_request=`echo -l h_cpu=23:0:0`
#	     echo resource $scomputer_request1 >> $batchlog
#fi


qrequest=''
if test ${#qflag} -gt 1
	then qrequest=`echo -q ${qflag#qrequest=}`
	     echo $qrequest >> $batchlog
fi

#------------------------------------
#resource request1
#------------------------------------
resource_request1=''
if test ${#resource1} -gt 1
	then resource_request1=`echo -l ${resource1#resource_request1=}=1`
	 #    echo $resource_request1 >> $batchlog
fi


#------------------------------------
#resource request2
#------------------------------------
resource_request2=''
if test ${#resource2} -gt 1
	then resource_request2=`echo -l ${resource2#resource_request2=}=1`
	#     echo $resource_request2 >> $batchlog
fi



#------------------------------------
#resource request3
#------------------------------------
resource_request3=''
if test ${#resource3} -gt 1
	then resource_request3=`echo -l ${resource3#resource_request3=}=1`
	#     echo $resource_request3 >> $batchlog
fi


script_fname=`basename $script`

#script_sgename=`echo $script | tr -s '/' '_'`
#----------------------------------------------------
#script name can only be about 10 characters in GUI
#----------------------------------------------------
script_sgename=$script_fname

batchdir=`dirname $script`

#echo "qsub -l $licensetype=1 $resource_request -p $priority -N $script_fname -r y -o $script.sge_out -e $script.sge_error $grid_engine_wrapper $script"
#-------------------------------------------
#SGE cannot overwrite another user's output
#Must remove output files first
#------------------------------------------
rm -f $script.sge* >>$batchdir/output_qstat.$script_fname 2>>$batchdir/output_qstat.$script_fname
#---------------------------------------------------
#create new empty log files to keep current umask
#---------------------------------------------------
touch $script.sge_out $script.sge_error
#
#rep=`qsub -l $licensetype=1 $resource_request -p $priority -v WFU_PATH -v WFU_SPM5 -v SPM_PROC_TYPE -N $script_sgename -r y -o $script.sge_out -e $script.sge_error $grid_engine_wrapper $script`
rep=`qsub -p $priority -v WFU_PATH -v WFU_SPM5 -v SPM_PROC_TYPE -N $script_sgename $qrequest $resource_request1 $resource_request2 $resource_request3 -r y -o $script.sge_out -e $script.sge_error $grid_engine_wrapper $script`
echo $rep >> $batchdir/output_qsub
id=`echo $rep | cut -d ' ' -f3`
echo qdel -f $id > $batchdir/output_qsub.jobid
qstat -j $id >> $batchdir/output_qstat.$script_fname  2>>$batchdir/output_qstat.$script_fname
exit
