function parse_variable_length_records
{
# set -x
# Zero out the $OUTFILE

>$OUTFILE

# Associate standard output with file descriptor 4
# and redirect standard output to $OUTFILE

exec 4<&1
exec 1> $OUTFILE

while read RECORD
do
   # On each loop iteration extract the data fields
   # from the record as we process the record file
   # line by line

   echo $RECORD | awk -F : '{print $1, $2, $3, $4, $5, $6}' \
                | while read BRANCH ACCOUNT NAME TOTAL DATEDUE RECFILE
   do
       # Perform some action on the data

       process_variablelength_data_new_duedate $BRANCH $ACCOUNT $NAME \
               $TOTAL $DATEDUE $RECFILE $NEW_DATEDUE
       if (( $? != 0 ))
       then
           # Note that $LOGFILE is a global variable
           echo "Record Error: $RECORD" | tee -a $LOGFILE
       fi
   done

done < $MERGERECORDFILE

# Restore standard output and close file
# descriptor 4

exec 1<&4
exec 4>&-
}

