#!/bin/ksh
#
if [ $# -eq 0 -o "$1" == "-h" ] ; then
  printf "\n Usage: diffnml [file1] [file2] [namelist_name] \n"
  printf " ie: diffnml glbreg/gem_settings.nml lamwest/gem_settings.nml gem_cfgs\n\n"
  exit
fi

cat > $TMPDIR/getnmlv$$ <<EOF
 BEGIN{
      level = 0
      NAMELIST=toupper(NAMELIST)
      }
{
  nf = split(toupper(\$0),field,",")
  for (i=1; i<=nf; i++){
       if (index(field[i],"&") != 0){
           if (index(substr(field[i],index(field[i],"&")+1),NAMELIST)>0){
               level=level+1
               printf "&%s\n",NAMELIST
               }
               }
       else{
       if (index(field[1],"/") != 0) {
                level = 0
               }
       if (level > 0) {
       nf1 = split(field[i],field1," ")
       for (j=1; j<=nf1; j++){
       if (index(field1[j],"=")==1){
           printf "%s",toupper(field1[j])
           }
       else if (index(field1[j],"=") > 1){
           printf "\n%s",toupper(field1[j])
           }
       else{
            if (index(field1[j+1],"=") > 0){
               printf "\n%s",toupper(field1[j])
            }
            else if (index(field1[j-1],"=") > 0){
               printf "%s",toupper(field1[j])
            }
            else {
               printf ",%s",toupper(field1[j])
            }
           }
       }
       }
       }
       }
}
EOF

awk -v NAMELIST="$3" -f $TMPDIR/getnmlv$$ $1 | sort > $TMPDIR/gemlist1
echo " " >> $TMPDIR/gemlist1
awk -v NAMELIST="$3" -f $TMPDIR/getnmlv$$ $2 | sort > $TMPDIR/gemlist2
echo " " >> $TMPDIR/gemlist2

XXDIFF=xxdiff
[[ x$HOSTTYPE == xAIX ]] && XXDIFF=sdiff
$XXDIFF $TMPDIR/gemlist1 $TMPDIR/gemlist2

/bin/rm -f $TMPDIR/gemlist1 $TMPDIR/gemlist2 $TMPDIR/getnmlv$$

