#!/bin/awk -f

BEGIN{
	if (ARGC != 3) {
		print "usage:  repselect <reps> <file>"
		print 
		print "<reps> is a comma separated list of rep numbers"	
		print "<file> is an xdphys data file"
		print 
		print " The resulting file is written to fixed.<file>"
		exit
	} else {
		# parse the rep list
		repstr=ARGV[1]
		split(repstr, reps, ",")
		nreps=0
		for (i in reps) {
			nreps=nreps+1
			print reps[i]
		}
		ARGV[1]=""
	}

	FS = "="
}
	

{
	if (FNR == 1) {
		xdphys_file = match($0,/^;; [xd]/);
		if (xdphys_file == 0) {
			print "repselect: " FILENAME " is not an xdphys data file. Skipping." > "/dev/stderr"
			nextfile
		} else {
			# This is the start of a new file
			done_header=0
			print_em=1
			delete depvars
			if (FILENAME == "-")
				filename = "/dev/stdout"
			else {
				filename = FILENAME
				sub(/[^\/]*$/,"fixed.&",filename)
			}
			print "repselect: Writing to: " filename > "/dev/stderr"
		}
	}
}

/^Reps/ {
	if (done_header==0) {
		real_nreps=$2
		print "Reps=" nreps > filename
		next
	}
}

/^nrasters/ {
	done_header=1
	printf "nrasters=%d\n", (($2 / real_nreps) * nreps) > filename
	next
}

/^depvar/ {
	if (done_header != 0) {
		line=$0
		sub(/<.*>/,"",$2)
		if ($2 in depvars) {
			depvars[$2]=depvars[$2]+1
		} else {
			depvars[$2]=1
		}
		found=0
		for (i in reps) {
			if (depvars[$2] == reps[i]) 
				found=1
		}
		print depvars[$2] " " found
		if (found==0) {	
			print_em=0
		} else {
			print_em=1
			print line > filename
		}
		next
	}
}

{
	if ((done_header == 0) || ((done_header == 1) && (print_em == 1))) {
		print $0 > filename
	}
}
