Index: /trunk/Ohana/src/perl/src/normalize
===================================================================
--- /trunk/Ohana/src/perl/src/normalize	(revision 40)
+++ /trunk/Ohana/src/perl/src/normalize	(revision 41)
@@ -1,5 +1,5 @@
 #!/usr/bin/env perl
 
-$version = "1.0";
+$version = "\$Revision: 1.2 $";
 
 # default variable values
@@ -74,7 +74,7 @@
     }	
     
-    print MANA "keyword a COMMENT -ws \"Elixir:normalize version $version\"\n";
+    print MANA "keyword a COMMENT -ws \"Elixir:normalize $version\"\n";
     print MANA "keyword a COMMENT -ws \"no renormalization needed for $type\"\n";
-    print MANA "wd a $output -bitpix 16 -bzero 32768.0 -bscale 1.0\n";
+    print MANA "wd a $output -bitpix 16 -bzero 32668.0 -bscale 1.0\n";
     print MANA "echo normlized done ($input to $output)\n";
     print MANA "exit 0\n";
@@ -110,22 +110,32 @@
 	$mode = $words[-1];
     } else {
-	$answer = `echo $ref | fields DATAMODE`; 
-	($junk, $refmode) = split (" ", $answer);
-	$answer = `echo $input | fields DATAMODE`; 
-	($junk, $mode) = split (" ", $answer);
-    }
-    $answer = `echo $ref | fields $ccdword`;
-    ($junk, $refccd) = split (" ", $answer);
-    
-    # check for valid values
-    if ("$refmode" == "") { 
-	print STDERR "ERROR: can't get reference mode value\n";
-	exit 1;
-    }
-    if ("$mode" == "") {
-	print STDERR "ERROR: can't get image mode value\n";
-	exit 1;
-    }
-
+	# various options for datamode, refmode:
+	
+	# check for readout mode
+	($junk, $amplist)    = split (" ", `echo $input | fields AMPLIST`, 2);
+	if ($? == 0) {
+	    # multiamp mode, expect IMMODE$amp, create FLATSCL$amp
+	    @amps = split (" ", $amplist);
+	    foreach $amp (@amps) {
+		($junk, $mode)    = split (" ", `echo $input | fields IMMODE$amp`);
+		if ($?) { die "ERROR: missing IMMODE$amp\n"; }
+		@ampmode = (@ampmode, $mode);
+	    }
+	}
+	# try new IMMODE keyword:
+	$modeword = "IMMODE";
+	($junk, $mode)    = split (" ", `echo $input | fields $modeword`);
+	if ($?) {
+	    if (@amps) { die "ERROR: multiamp mode missing IMMODE\n"; }
+	    $modeword = "DATAMODE";
+	    ($junk, $mode)    = split (" ", `echo $input | fields $modeword`);
+	    if ($?) { die "ERROR: missing DATAMODE & IMMODE\n"; }
+	}
+	($junk, $refmode) = split (" ", `echo $ref   | fields $modeword`);
+	if ($?) { die "ERROR: ref file missing $modeword\n"; }
+    }
+    ($junk, $refccd) = split (" ", `echo $ref | fields $ccdword`);
+    if ($?) { die "ERROR: ref file missing $ccdword in ref\n"; }
+    
     # grab mask file
     $mask = `detsearch -quiet -image $input 0 split -type mask`; chop ($mask);
@@ -150,6 +160,16 @@
     $scale = $refmode / $mode;
     $newmode = $mode / $refmode;
-    print MANA "keyword b DATAMODE -wf $newmode\n";
+    print MANA "keyword b $modeword -wf $newmode\n";
     print MANA "keyword b FLATSCAL -wf $scale\n";
+
+    if (@amps) {
+	for ($i = 0; $i < @amps; $i++) {
+	    $amp = $amps[$i];
+	    $scale   = $refmode / $ampmode[$i];
+	    $newmode = $ampmode[$i] / $refmode;
+	    print MANA "keyword b IMMODE$amp -wf $newmode\n";
+	    print MANA "keyword b FLATSCL$amp -wf $scale\n";
+	}
+    }
     print MANA "keyword b $typeword -w $type\n";
     if ($addtime == 1) {
