#! /usr/bin/wish -f
#----------------
#Version to include 15 bands for each of 4 windows.
#This is a very ugly, and clunky version because 
#speed was necessary and I'm not proud enough
#at TCL to worry about elegance... tough.
#----------------

# history:
# end of 2005 Erik's mops_vis script adapted to broad band observations including displaying the linewidths: J. Ott
# around 2005 Erik's mops_vis version


#set up parameters and initialise variables.

proc setup {} {
global b1 b2 b3 b4 freq

set rn 0

foreach {a b c d} $b1 {
incr rn
global vb1$a; label .b1$a -font {-size 7} -text [expr $freq+$b] -textvariable vb1$a
global vb1$c; label .b1$c -font {-size 7} -text [expr $freq+$d] -textvariable vb1$c
radiobutton .b1rb$a -variable setthis -value [expr $freq+($b+$d)/2]
grid .b1$a -in .bandlist -row $rn -column 2
grid .b1$c -in .bandlist -row $rn -column 3
#grid .b1rb$a -in .bandlist -row $rn -column 4
}
label .space1 -text " "
grid .space1 -in .bandlist -row [incr rn] 

foreach {a b c d} $b2 {
incr rn
global vb2$a; label .b2$a -font {-size 7} -text [expr $freq+$b] -textvariable vb2$a
global vb2$c; label .b2$c -font {-size 7} -text [expr $freq+$d] -textvariable vb2$c
radiobutton .b2rb$a -variable setthis -value [expr $freq+($b+$d)/2]
grid .b2$a -in .bandlist -row $rn -column 2
grid .b2$c -in .bandlist -row $rn -column 3
#grid .b2rb$a -in .bandlist -row $rn -column 4
}
label .space2 -text " "
grid .space2 -in .bandlist -row [incr rn] 

foreach {a b c d} $b3 {
incr rn
global vb3$a; label .b3$a -font {-size 7} -text [expr $freq+$b] -textvariable vb3$a
global vb3$c; label .b3$c -font {-size 7} -text [expr $freq+$d] -textvariable vb3$c
radiobutton .b3rb$a -variable setthis -value [expr $freq+($b+$d)/2]
grid .b3$a -in .bandlist -row $rn -column 2
grid .b3$c -in .bandlist -row $rn -column 3
#grid .b3rb$a -in .bandlist -row $rn -column 4
}
label .space3 -text " "
grid .space3 -in .bandlist -row [incr rn] 

foreach {a b c d} $b4 {
incr rn
global vb4$a; label .b4$a -font {-size 7} -text [expr $freq+$b] -textvariable vb4$a
global vb4$c; label .b4$c -font {-size 7} -text [expr $freq+$d] -textvariable vb4$c
radiobutton .b4rb$a -variable setthis -value [expr $freq+($b+$d)/2]
grid .b4$a -in .bandlist -row $rn -column 2
grid .b4$c -in .bandlist -row $rn -column 3
}
}


proc calculate {} {
global b1 b2 b3 b4 freq dopvel linewidth
global f1dop f2dop f3dop f4dop f5dop f6dop f7dop f8dop f9dop\
f10dop f11dop f12dop f13dop f14dop f15dop f16dop f17dop\
f18dop f19dop f20dop f21dop f22dop f23dop f24dop f25dop\
global f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 \
    f13 f14 f15 f16 f17 f18 f19 f20 f21 f22 f23 f24 f25

    if { $freq > 97400 } {
	set usb 1
	.sb_u configure -background yellow
	.sb_l configure -background grey
	set sign 1
	} else { 
	set lsb 1
	.sb_l configure -background yellow
	.sb_u configure -background grey
	set sign -1
    }
	set minfrq [expr $freq-4071]
	set maxfrq [expr $freq+4071]
        global x; global y ;set pixperm [expr $sign*$x/(2.0*4071.0)]



.fplot delete all

        set rn 0
	foreach {a b c d} $b1 {
	global vb1$a ; set vb1$a [expr $freq+($b*$sign)]
	global vb1$c ; set vb1$c [expr $freq+($d*$sign)]
        .fplot create line [expr ($b+($sign*4071))*$pixperm]m [expr $rn*4.2+5]m \
	[expr ($d+($sign*4071))*$pixperm]m [expr $rn*4.2+5]m -fill yellow -width 20
	incr rn
	}
        set rn 0
	foreach {a b c d} $b2 {
	global vb2$a ; set vb2$a [expr $freq+($b*$sign)]
	global vb2$c ; set vb2$c [expr $freq+($d*$sign)]
	.fplot create line [expr ($b+($sign*4071))*$pixperm]m [expr $rn*4.2+15]m \
        [expr ($d+($sign*4071))*$pixperm]m [expr $rn*4.2+15]m -fill red -width 20
	incr rn
	}
        set rn 0
	foreach {a b c d} $b3 {
	global vb3$a ; set vb3$a [expr $freq+($b*$sign)]
	global vb3$c ; set vb3$c [expr $freq+($d*$sign)]
        .fplot create line [expr ($b+($sign*4071))*$pixperm]m [expr $rn*4.2+25]m \
	[expr ($d+($sign*4071))*$pixperm]m [expr $rn*4.2+25]m -fill palegreen -width 20
	incr rn
	}
        set rn 0
	foreach {a b c d} $b4 {
	global vb4$a ; set vb4$a [expr $freq+($b*$sign)]
	global vb4$c ; set vb4$c [expr $freq+($d*$sign)]
	.fplot create line [expr ($b+($sign*4071))*$pixperm]m [expr $rn*4.2+35]m \
	[expr ($d+($sign*4071))*$pixperm]m [expr $rn*4.2+35]m -fill violet -width 20
	incr rn
    }

    if { $f1 != "" } { 
	set f1dop [expr $f1*(1-($dopvel/3e+5))] 
	set f1doplow [expr $f1*(1-(($dopvel+$linewidth/2)/3e+5))]
        set f1dophigh [expr $f1*(1-(($dopvel-$linewidth/2)/3e+5))]

	.fplot create line [expr ($f1dop-$minfrq)*$pixperm*$sign]m 1m \
	    [expr ($f1dop-$minfrq)*$pixperm*$sign]m $y\m -fill blue -width 2
	    .fplot create text [expr (($f1dop-$minfrq)*$pixperm*$sign)+3]m 3m -text 1 -fill blue

	.fplot create line [expr ($f1doplow-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f1dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2

	.fplot create line [expr ($f1dophigh-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f1dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2
        
	   
        }
    if { $f2 != "" } { 
	set f2dop [expr $f2*(1-($dopvel/3e+5))] 
        set f2doplow [expr $f2*(1-(($dopvel+$linewidth/2)/3e+5))]
        set f2dophigh [expr $f2*(1-(($dopvel-$linewidth/2)/3e+5))]
	.fplot create line [expr ($f2dop-$minfrq)*$pixperm*$sign]m 1m \
	    [expr ($f2dop-$minfrq)*$pixperm*$sign]m $y\m -fill blue -width 2
	    .fplot create text [expr (($f2dop-$minfrq)*$pixperm*$sign)+3]m 3m -text 2 -fill blue

	.fplot create line [expr ($f2doplow-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f2dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2

	.fplot create line [expr ($f2dophigh-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f2dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2

	}
    if { $f3 != "" } { 
	set f3dop [expr $f3*(1-($dopvel/3e+5))] 
        set f3doplow [expr $f3*(1-(($dopvel+$linewidth/2)/3e+5))]
        set f3dophigh [expr $f3*(1-(($dopvel-$linewidth/2)/3e+5))]
	.fplot create line [expr ($f3dop-$minfrq)*$pixperm*$sign]m 1m \
	    [expr ($f3dop-$minfrq)*$pixperm*$sign]m $y\m -fill blue -width 2
	    .fplot create text [expr (($f3dop-$minfrq)*$pixperm*$sign)+3]m 3m -text 3 -fill blue


	.fplot create line [expr ($f3doplow-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f3dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2

	.fplot create line [expr ($f3dophigh-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f3dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2

	}
    if { $f4 != "" } { 
	set f4dop [expr $f4*(1-($dopvel/3e+5))] 
	set f4doplow [expr $f4*(1-(($dopvel+$linewidth/2)/3e+5))]
        set f4dophigh [expr $f4*(1-(($dopvel-$linewidth/2)/3e+5))]
	.fplot create line [expr ($f4dop-$minfrq)*$pixperm*$sign]m 1m \
	    [expr ($f4dop-$minfrq)*$pixperm*$sign]m $y\m -fill blue -width 2
	    .fplot create text [expr (($f4dop-$minfrq)*$pixperm*$sign)+3]m 3m -text 4 -fill blue


	.fplot create line [expr ($f4doplow-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f4dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2

	.fplot create line [expr ($f4dophigh-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f4dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2


	}
    if { $f5 != "" } { 
	set f5dop [expr $f5*(1-($dopvel/3e+5))] 
	set f5doplow [expr $f5*(1-(($dopvel+$linewidth/2)/3e+5))]
        set f5dophigh [expr $f5*(1-(($dopvel-$linewidth/2)/3e+5))]
	.fplot create line [expr ($f5dop-$minfrq)*$pixperm*$sign]m 1m \
	    [expr ($f5dop-$minfrq)*$pixperm*$sign]m $y\m -fill blue -width 2
	    .fplot create text [expr (($f5dop-$minfrq)*$pixperm*$sign)+3]m 3m -text 5 -fill blue


	.fplot create line [expr ($f5doplow-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f5dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2

	.fplot create line [expr ($f5dophigh-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f5dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2


	}
    if { $f6 != "" } { 
	set f6dop [expr $f6*(1-($dopvel/3e+5))] 
	set f6doplow [expr $f6*(1-(($dopvel+$linewidth/2)/3e+5))]
        set f6dophigh [expr $f6*(1-(($dopvel-$linewidth/2)/3e+5))]
	.fplot create line [expr ($f6dop-$minfrq)*$pixperm*$sign]m 1m \
	    [expr ($f6dop-$minfrq)*$pixperm*$sign]m $y\m -fill blue -width 2
	    .fplot create text [expr (($f6dop-$minfrq)*$pixperm*$sign)+3]m 3m -text 6 -fill blue



	.fplot create line [expr ($f6doplow-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f6dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2

	.fplot create line [expr ($f6dophigh-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f6dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2

	}
    if { $f7 != "" } { 
	set f7dop [expr $f7*(1-($dopvel/3e+5))] 
	set f7doplow [expr $f7*(1-(($dopvel+$linewidth/2)/3e+5))]
        set f7dophigh [expr $f7*(1-(($dopvel-$linewidth/2)/3e+5))]
	.fplot create line [expr ($f7dop-$minfrq)*$pixperm*$sign]m 1m \
	    [expr ($f7dop-$minfrq)*$pixperm*$sign]m $y\m -fill blue -width 2
	    .fplot create text [expr (($f7dop-$minfrq)*$pixperm*$sign)+3]m 3m -text 7 -fill blue


	.fplot create line [expr ($f7doplow-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f7dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2

	.fplot create line [expr ($f7dophigh-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f7dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2


	}
    if { $f8 != "" } { 
	set f8dop [expr $f8*(1-($dopvel/3e+5))] 
	set f8doplow [expr $f8*(1-(($dopvel+$linewidth/2)/3e+5))]
        set f8dophigh [expr $f8*(1-(($dopvel-$linewidth/2)/3e+5))]
	.fplot create line [expr ($f8dop-$minfrq)*$pixperm*$sign]m 1m \
	    [expr ($f8dop-$minfrq)*$pixperm*$sign]m $y\m -fill blue -width 2
	    .fplot create text [expr (($f8dop-$minfrq)*$pixperm*$sign)+3]m 3m -text 8 -fill blue


	.fplot create line [expr ($f8doplow-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f8dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2

	.fplot create line [expr ($f8dophigh-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f8dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2


	}
    if { $f9 != "" } { 
	set f9dop [expr $f9*(1-($dopvel/3e+5))] 
	set f9doplow [expr $f9*(1-(($dopvel+$linewidth/2)/3e+5))]
        set f9dophigh [expr $f9*(1-(($dopvel-$linewidth/2)/3e+5))]
	.fplot create line [expr ($f9dop-$minfrq)*$pixperm*$sign]m 1m \
	    [expr ($f9dop-$minfrq)*$pixperm*$sign]m $y\m -fill blue -width 2
	    .fplot create text [expr (($f9dop-$minfrq)*$pixperm*$sign)+3]m 3m -text 9 -fill blue


	.fplot create line [expr ($f9doplow-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f9dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2

	.fplot create line [expr ($f9dophigh-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f9dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2


	}
    if { $f10 != "" } { 
	set f10dop [expr $f10*(1-($dopvel/3e+5))] 
	set f10doplow [expr $f10*(1-(($dopvel+$linewidth/2)/3e+5))]
        set f10dophigh [expr $f10*(1-(($dopvel-$linewidth/2)/3e+5))]
	.fplot create line [expr ($f10dop-$minfrq)*$pixperm*$sign]m 1m \
	    [expr ($f10dop-$minfrq)*$pixperm*$sign]m $y\m -fill blue -width 2
	    .fplot create text [expr (($f10dop-$minfrq)*$pixperm*$sign)+3]m 3m -text 10 -fill blue


	.fplot create line [expr ($f10doplow-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f10dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2

	.fplot create line [expr ($f10dophigh-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f10dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2


	}
    if { $f11 != "" } { 
	set f11dop [expr $f11*(1-($dopvel/3e+5))] 
	set f11doplow [expr $f11*(1-(($dopvel+$linewidth/2)/3e+5))]
        set f11dophigh [expr $f11*(1-(($dopvel-$linewidth/2)/3e+5))]
	.fplot create line [expr ($f11dop-$minfrq)*$pixperm*$sign]m 1m \
	    [expr ($f11dop-$minfrq)*$pixperm*$sign]m $y\m -fill blue -width 2
	    .fplot create text [expr (($f11dop-$minfrq)*$pixperm*$sign)+3]m 3m -text 11 -fill blue


	.fplot create line [expr ($f11doplow-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f11dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2

	.fplot create line [expr ($f11dophigh-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f11dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2


	}
    if { $f12 != "" } { 
	set f12dop [expr $f12*(1-($dopvel/3e+5))] 
	set f12doplow [expr $f12*(1-(($dopvel+$linewidth/2)/3e+5))]
        set f12dophigh [expr $f12*(1-(($dopvel-$linewidth/2)/3e+5))]
	.fplot create line [expr ($f12dop-$minfrq)*$pixperm*$sign]m 1m \
	    [expr ($f12dop-$minfrq)*$pixperm*$sign]m $y\m -fill blue -width 2
	    .fplot create text [expr (($f12dop-$minfrq)*$pixperm*$sign)+3]m 3m -text 12 -fill blue


	.fplot create line [expr ($f12doplow-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f12dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2

	.fplot create line [expr ($f12dophigh-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f12dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2


	}
    if { $f13 != "" } { 
	set f13dop [expr $f13*(1-($dopvel/3e+5))] 
	set f13doplow [expr $f13*(1-(($dopvel+$linewidth/2)/3e+5))]
        set f13dophigh [expr $f13*(1-(($dopvel-$linewidth/2)/3e+5))]
	.fplot create line [expr ($f13dop-$minfrq)*$pixperm*$sign]m 1m \
	    [expr ($f13dop-$minfrq)*$pixperm*$sign]m $y\m -fill blue -width 2
	    .fplot create text [expr (($f13dop-$minfrq)*$pixperm*$sign)+3]m 3m -text 13 -fill blue


	.fplot create line [expr ($f13doplow-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f13dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2

	.fplot create line [expr ($f13dophigh-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f13dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2


	}
    if { $f14 != "" } { 
	set f14dop [expr $f14*(1-($dopvel/3e+5))] 
	set f14doplow [expr $f14*(1-(($dopvel+$linewidth/2)/3e+5))]
        set f14dophigh [expr $f14*(1-(($dopvel-$linewidth/2)/3e+5))]
	.fplot create line [expr ($f14dop-$minfrq)*$pixperm*$sign]m 1m \
	    [expr ($f14dop-$minfrq)*$pixperm*$sign]m $y\m -fill blue -width 2
	    .fplot create text [expr (($f14dop-$minfrq)*$pixperm*$sign)+3]m 3m -text 14 -fill blue


	.fplot create line [expr ($f14doplow-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f14dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2

	.fplot create line [expr ($f14dophigh-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f14dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2


	}
    if { $f15 != "" } { 
	set f15dop [expr $f15*(1-($dopvel/3e+5))] 
	set f15doplow [expr $f15*(1-(($dopvel+$linewidth/2)/3e+5))]
        set f15dophigh [expr $f15*(1-(($dopvel-$linewidth/2)/3e+5))]
	.fplot create line [expr ($f15dop-$minfrq)*$pixperm*$sign]m 1m \
	    [expr ($f15dop-$minfrq)*$pixperm*$sign]m $y\m -fill blue -width 2
	    .fplot create text [expr (($f15dop-$minfrq)*$pixperm*$sign)+3]m 3m -text 15 -fill blue



	.fplot create line [expr ($f15doplow-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f15dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2

	.fplot create line [expr ($f15dophigh-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f15dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2

	}
    if { $f16 != "" } { 
	set f16dop [expr $f16*(1-($dopvel/3e+5))] 
	set f16doplow [expr $f16*(1-(($dopvel+$linewidth/2)/3e+5))]
        set f16dophigh [expr $f16*(1-(($dopvel-$linewidth/2)/3e+5))]
	.fplot create line [expr ($f16dop-$minfrq)*$pixperm*$sign]m 1m \
	    [expr ($f16dop-$minfrq)*$pixperm*$sign]m $y\m -fill blue -width 2
	    .fplot create text [expr (($f16dop-$minfrq)*$pixperm*$sign)+3]m 3m -text 16 -fill blue


	.fplot create line [expr ($f16doplow-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f16dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2

	.fplot create line [expr ($f16dophigh-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f16dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2


	}
    if { $f17 != "" } { 
	set f17dop [expr $f17*(1-($dopvel/3e+5))] 
	set f17doplow [expr $f17*(1-(($dopvel+$linewidth/2)/3e+5))]
        set f17dophigh [expr $f17*(1-(($dopvel-$linewidth/2)/3e+5))]
	.fplot create line [expr ($f17dop-$minfrq)*$pixperm*$sign]m 1m \
	    [expr ($f17dop-$minfrq)*$pixperm*$sign]m $y\m -fill blue -width 2
	    .fplot create text [expr (($f17dop-$minfrq)*$pixperm*$sign)+3]m 3m -text 17 -fill blue



	.fplot create line [expr ($f17doplow-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f17dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2

	.fplot create line [expr ($f17dophigh-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f17dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2

	}
    if { $f18 != "" } { 
	set f18dop [expr $f18*(1-($dopvel/3e+5))] 
	set f18doplow [expr $f18*(1-(($dopvel+$linewidth/2)/3e+5))]
        set f18dophigh [expr $f18*(1-(($dopvel-$linewidth/2)/3e+5))]
	.fplot create line [expr ($f18dop-$minfrq)*$pixperm*$sign]m 1m \
	    [expr ($f18dop-$minfrq)*$pixperm*$sign]m $y\m -fill blue -width 2
	    .fplot create text [expr (($f18dop-$minfrq)*$pixperm*$sign)+3]m 3m -text 18 -fill blue


	.fplot create line [expr ($f18doplow-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f18dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2

	.fplot create line [expr ($f18dophigh-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f18dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2


	}
    if { $f19 != "" } { 
	set f19dop [expr $f19*(1-($dopvel/3e+5))] 
	set f19doplow [expr $f19*(1-(($dopvel+$linewidth/2)/3e+5))]
        set f19dophigh [expr $f19*(1-(($dopvel-$linewidth/2)/3e+5))]
	.fplot create line [expr ($f19dop-$minfrq)*$pixperm*$sign]m 1m \
	    [expr ($f19dop-$minfrq)*$pixperm*$sign]m $y\m -fill blue -width 2
	    .fplot create text [expr (($f19dop-$minfrq)*$pixperm*$sign)+3]m 3m -text 19 -fill blue

	.fplot create line [expr ($f19doplow-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f19dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2

	.fplot create line [expr ($f19dophigh-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f19dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2



	}
    if { $f20 != "" } { 
	set f20dop [expr $f20*(1-($dopvel/3e+5))] 
	set f20doplow [expr $f20*(1-(($dopvel+$linewidth/2)/3e+5))]
        set f20dophigh [expr $f20*(1-(($dopvel-$linewidth/2)/3e+5))]
	.fplot create line [expr ($f20dop-$minfrq)*$pixperm*$sign]m 1m \
	    [expr ($f20dop-$minfrq)*$pixperm*$sign]m $y\m -fill blue -width 2
	    .fplot create text [expr (($f20dop-$minfrq)*$pixperm*$sign)+3]m 3m -text 20 -fill blue


	.fplot create line [expr ($f20doplow-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f20dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2

	.fplot create line [expr ($f20dophigh-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f20dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2


	}
    if { $f21 != "" } { 
	set f21dop [expr $f21*(1-($dopvel/3e+5))] 
	set f21doplow [expr $f21*(1-(($dopvel+$linewidth/2)/3e+5))]
        set f21dophigh [expr $f21*(1-(($dopvel-$linewidth/2)/3e+5))]
	.fplot create line [expr ($f21dop-$minfrq)*$pixperm*$sign]m 1m \
	    [expr ($f21dop-$minfrq)*$pixperm*$sign]m $y\m -fill blue -width 2
	    .fplot create text [expr (($f21dop-$minfrq)*$pixperm*$sign)+3]m 3m -text 21 -fill blue


	.fplot create line [expr ($f21doplow-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f21dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2

	.fplot create line [expr ($f21dophigh-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f21dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2


	}
    if { $f22 != "" } { 
	set f22dop [expr $f22*(1-($dopvel/3e+5))] 
	set f22doplow [expr $f22*(1-(($dopvel+$linewidth/2)/3e+5))]
        set f22dophigh [expr $f22*(1-(($dopvel-$linewidth/2)/3e+5))]
	.fplot create line [expr ($f22dop-$minfrq)*$pixperm*$sign]m 1m \
	    [expr ($f22dop-$minfrq)*$pixperm*$sign]m $y\m -fill blue -width 2
	    .fplot create text [expr (($f22dop-$minfrq)*$pixperm*$sign)+3]m 3m -text 22 -fill blue



	.fplot create line [expr ($f22doplow-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f22dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2

	.fplot create line [expr ($f22dophigh-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f22dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2

	}
    if { $f23 != "" } { 
	set f23dop [expr $f23*(1-($dopvel/3e+5))] 
	set f23doplow [expr $f23*(1-(($dopvel+$linewidth/2)/3e+5))]
        set f23dophigh [expr $f23*(1-(($dopvel-$linewidth/2)/3e+5))]
	.fplot create line [expr ($f23dop-$minfrq)*$pixperm*$sign]m 1m \
	    [expr ($f23dop-$minfrq)*$pixperm*$sign]m $y\m -fill blue -width 2
	    .fplot create text [expr (($f23dop-$minfrq)*$pixperm*$sign)+3]m 3m -text 23 -fill blue


	.fplot create line [expr ($f23doplow-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f23dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2

	.fplot create line [expr ($f23dophigh-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f23dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2


	}
    if { $f24 != "" } { 
	set f24dop [expr $f24*(1-($dopvel/3e+5))] 
	set f24doplow [expr $f24*(1-(($dopvel+$linewidth/2)/3e+5))]
        set f24dophigh [expr $f24*(1-(($dopvel-$linewidth/2)/3e+5))]
	.fplot create line [expr ($f24dop-$minfrq)*$pixperm*$sign]m 1m \
	    [expr ($f24dop-$minfrq)*$pixperm*$sign]m $y\m -fill blue -width 2
	    .fplot create text [expr (($f24dop-$minfrq)*$pixperm*$sign)+3]m 3m -text 24 -fill blue


	.fplot create line [expr ($f24doplow-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f24dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2

	.fplot create line [expr ($f24dophigh-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f24dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2


	}
    if { $f25 != "" } { 
	set f25dop [expr $f25*(1-($dopvel/3e+5))] 
	set f25doplow [expr $f25*(1-(($dopvel+$linewidth/2)/3e+5))]
        set f25dophigh [expr $f25*(1-(($dopvel-$linewidth/2)/3e+5))]
	.fplot create line [expr ($f5dop-$minfrq)*$pixperm*$sign]m 1m \
	    [expr ($f5dop-$minfrq)*$pixperm*$sign]m $y\m -fill blue -width 2
	    .fplot create text [expr (($f25dop-$minfrq)*$pixperm*$sign)+3]m 3m -text 25 -fill blue


	.fplot create line [expr ($f25doplow-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f25dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2

	.fplot create line [expr ($f25dophigh-$minfrq)*$pixperm*$sign]m [expr $y/2]m \
	    [expr ($f25dop-$minfrq)*$pixperm*$sign]m [expr $y/2]m -fill blue -width 2



	}

.fplot create line 1m 1m    1m $y\m   $x\m $y\m  $x\m 1m  1m 1m 
.fplot create line [expr $x/2]m 1m [expr $x/2]m $y\m -fill grey
.fplot create line [expr $x/4]m 1m [expr $x/4]m $y\m -fill grey
.fplot create line [expr 3*$x/4]m 1m [expr 3*$x/4]m $y\m -fill grey

.fplot create text [expr $x/2]m [expr $y-3]m -text [format "%5.2f" $freq]
.fplot create text [expr $x/4]m [expr $y-3]m -text \
    [format "%5.2f" [expr $freq-(4071/2)]]
.fplot create text [expr 3*$x/4]m [expr $y-3]m -text \
    [format "%5.2f" [expr $freq+(4071/2)]]




}

set b1 [list \
{w1_0} {-4140.000000}	{w1_1} {-1932.000000} \
]

set b2 [list \
{w1_0} {-2070.000000}   {w1_1} {138.000000} \
]

set b3 [list \
{w1_0} {-138.000000}	{w1_1} {2070.000000} \
]

set b4 [list \
{w1_0} {1932.000000}	{w1_1} {4140.000000} \
]

set freq 97600
set dopvel 0
set linewidth 0

#--------------
#Define Important buttons and frames
frame .bandlist
frame .topstuff
frame .sb
frame .canvas
frame .pmfreq
button .quit_button -text "Exit!" -command exit -background pink
button .calculate -text "Calculate!" -command calculate -background green
label .sb_l -text "Lower" -background grey
label .sb_u -text "Upper" -background grey
button .save -text "File Save" -command { save $fname}
button .restore -text "File Restore" -command { restore $fname }
button .pl10 -text "+10" -command { set freq [expr $freq +10];calculate }
button .m10 -text "-10" -command { set freq [expr $freq -10];calculate }
entry .fname -text fname
grid .sb_l .sb_u -in .sb
grid .pl10 -in .pmfreq -column 1 -row 1
grid .m10 -in .pmfreq -column 2 -row 1

#-----------
#Define the rest of the gui band.
label .b1_lab1 -text "Sub-band 1: " -font {-size 7}
label .b1_lab2 -text "Sub-band 2: " -font {-size 7}
label .b1_lab3 -text "Sub-band 3: " -font {-size 7}
label .b1_lab4 -text "Sub-band 4:" -font {-size 7}
entry .freq_in -text freq -width 10
label .freq_lab -text "Central freq \[MHz\]"
#----------------
#Define the canvas.
set y 45
set x 270
#set y 270
#set x 290
canvas .fplot -height $y\m -width $x\m
label .dummy -text ""
grid .dummy -in .canvas -row 1
grid .fplot -in .canvas -row 2
#----------------
#Make the optional frequency lines.


frame .lines
label .f0lab -text "f"
label .fplab -text "f\'"
button .freq_clear -text "Clear Freqs" -background pink -command {
    foreach flab {f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 \
    f13 f14 f15 f16 f17 f18 f19 f20 f21 f22 f23 f24 f25} {
	set $flab ""
	set $flab\dop ""
	}
}

grid .f0lab -in .lines -column 1 -row 5
grid .fplab -in .lines -column 3 -row 5
grid .freq_clear -in .lines -column 1 -row 6 -columnspan 3
set rn 1
    foreach flab {f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 \
    f13 f14 f15 f16 f17 f18 f19 f20 f21 f22 f23 f24 f25} {
entry .$flab -width 10 -text $flab
label .$flab\l -text "Freq $rn" -foreground blue
entry .$flab\dop -width 10 -text $flab\dop
grid .$flab -in .lines -column 1 -row [expr $rn+7]
grid .$flab\l -in .lines -column 2 -row [expr $rn+7]
grid .$flab\dop -in .lines -column 3 -row [expr $rn+7]
incr rn
}

#-----------
frame .dopcor
label .dopvellab1 -text "Calculate doppler for"
label .dopvellab2 -text "this velocity \[km/s\]"
label .dum 
entry .dopvel -text dopvel

grid .dopvellab1 -in .dopcor   -column 1 -row 1
grid .dopvellab2 -in .dopcor   -column 1 -row 2
grid .dopvel -in .dopcor   -column 1 -row 3
grid .dum -in .dopcor -column 1 -row 4
grid .dopcor   -in .lines -row 1 -column 1 -columnspan 3
#--------------


##jott stuff linewidth
frame .lwidth
label .lwidthlab1 -text "Line Width \[km/s\]"
entry .linewidth -text linewidth
 grid .lwidthlab1 -in .lwidth   -column 1 -row 1
grid .linewidth -in .lwidth   -column 1 -row 3
grid .lwidth   -in .lines -row 2 -column 1 -columnspan 3
##end jott stuff


#Grid it all up into frames.

#--Topstuff
grid .freq_lab -in .topstuff -row 1 -column 1
grid .freq_in -in .topstuff -row 1 -column 2
grid .pmfreq -in .topstuff -row 1 -column 3
grid .sb -in .topstuff -row 1 -column 5
grid .calculate -in .topstuff -row 1 -column 4
#--Bandlist
grid .b1_lab1 -in .bandlist -column 1 -row 1
grid .b1_lab2 -in .bandlist -column 1 -row 3
grid .b1_lab3 -in .bandlist -column 1 -row 5
grid .b1_lab4 -in .bandlist -column 1 -row 7
setup
#----------
#
grid .restore -in .topstuff -row 2 -column 1
grid .fname -in .topstuff -row 2 -column 2
grid .save -in .topstuff -row 2 -column 3

#----------
#Grid up the frames and important buttons
grid .topstuff -in . -row 1 -column 1 -columnspan 3 
grid .bandlist -in . -row 2 -column 1
grid .lines -in . -row 2 -column 4
grid .quit_button -in . -row 1 -column 4
#--------
#Grid up the canvas
grid .canvas -in . -row 2 -column 2 -columnspan 2
wm title . "Mops_vis v II.I"

calculate

proc restore {fname} {
global f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11\
f12 f13 f14 f15 f16 f17 f18 f19 f20 f21 f22 \
f23 f24 f25 freq dopvel linewidth
set fnameid [open $fname]
gets $fnameid freq
gets $fnameid dopvel
gets $fnameid linewidth
gets $fnameid f1
gets $fnameid f2
gets $fnameid f3
gets $fnameid f4
gets $fnameid f5
gets $fnameid f6
gets $fnameid f7
gets $fnameid f8
gets $fnameid f9
gets $fnameid f10
gets $fnameid f11
gets $fnameid f12
gets $fnameid f13
gets $fnameid f14
gets $fnameid f15
gets $fnameid f16
gets $fnameid f17
gets $fnameid f18
gets $fnameid f19
gets $fnameid f20
gets $fnameid f21
gets $fnameid f22
gets $fnameid f23
gets $fnameid f24
gets $fnameid f25
close $fnameid
calculate
}
proc save {fname} {
global f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11\
f12 f13 f14 f15 f16 f17 f18 f19 f20 f21 f22 \
f23 f24 f25 freq dopvel linewidth
set fnameid [open $fname w 0600]
puts $fnameid $freq
puts $fnameid $dopvel
puts $fnameid $linewidth
puts $fnameid $f1
puts $fnameid $f2
puts $fnameid $f3
puts $fnameid $f4
puts $fnameid $f5
puts $fnameid $f6
puts $fnameid $f7
puts $fnameid $f8
puts $fnameid $f9
puts $fnameid $f10
puts $fnameid $f11
puts $fnameid $f12
puts $fnameid $f13
puts $fnameid $f14
puts $fnameid $f15
puts $fnameid $f16
puts $fnameid $f17
puts $fnameid $f18
puts $fnameid $f19
puts $fnameid $f20
puts $fnameid $f21
puts $fnameid $f22
puts $fnameid $f23
puts $fnameid $f24
puts $fnameid $f25
close $fnameid
}


