| !/bin/csh -f#  set echo
 
 #
 # Put your input files for pregrid into the directory you specify 
                as DataDir:
 #
 
 set DataDir 
                = /usr/tmp/username/REGRID
 
 #
 # Specify the source of 3-d analyses
 #
 
 
 set SRC3D 
                = ON84  # Old ON84-formatted NCEP GDAS analyses
 #  set SRC3D = NCEP  # Newer GRIB-formatted NCEP GDAS 
                analyses
 #  set SRC3D = GRIB  # Many GRIB-format datasets
 
 
 #  InFiles:  Tell the program where you have put the 
                analysis files,
 #  and what you have called them.   If SRC3D has 
                the value "GRIB",
 #  then the Vtables you specify below in the script variable 
                VT3D will
 #  be used to interpret the files you specify in the ${InFiles} 
                variable.
 
 set InFiles = ( ${DataDir}/NCEP* 
                )
 #
 # Specify the source of SST analyses
 #
 
 #  set SRCSST = ON84
 #  set SRCSST = NCEP
 #  set SRCSST = NAVY
 set SRCSST = $SRC3D
 
 #
 #  InSST: Tell the program where the files with SST analyses 
                are.  Do
 #  this only if SST analyses are coming from files not named 
                above in
 #  InFiles.  If SRCSST has the value "GRIB", then the 
                Vtables you
 #  specify below in the script variable VTSST will be used 
                to interpret
 #  the files you specify in the ${InSST} variable.
 #
 
 set InSST = ( )
 
 #
 # Select the source of snow-cover analyses (entirely optional)
 #
 
 set SRCSNOW = $SRC3D
 #  set SRCSNOW = ON84
 #  set SRCSNOW = GRIB
 
 #  InSnow:  Set InSnow only if the snow-cover analyses 
                are from files
 #  not listed in InFiles.  If SRCSNOW has the value 
                "GRIB", then the
 #  Vtables you specify below in the script variable VTSNOW 
                will be used
 #  to interpret the files you specify in the ${InSnow} variable.
 
 set InSnow = ()
 
 #
 # Select the source of soil model analyses (entirely optional)
 #
 
 #   set SRCSOIL = $SRC3D
 
 #  InSoil:  Set InSoil only if the soil analyses are 
                from files
 #  not listed in InFiles.  If SRCSOIL has the value 
                "GRIB", then the
 #  Vtables you specify below in the script variable VTSOIL 
                will be
 #  used to interpret the files you specify in the ${InSoil} 
                variable.
 
 #   set InSoil = ()
 
 #
 #  Build the Namelist
 #
 if ( -e ./pregrid.namelist ) then
 rm ./pregrid.namelist
 endif
 cat << End_Of_Namelist | sed -e 's/#.*//; s/  *$//' 
                > ./pregrid.namelist
 &record1
 #
 # Set the starting date of the time period you want to process:
 #
 START_YEAR  = 1993   
                # Year (Four digits)
 START_MONTH = 03     
                # Month ( 01 - 12 )
 START_DAY   
                = 13     # Day ( 01 - 31 )
 START_HOUR  = 00     
                # Hour ( 00 - 23 )
 
 END_YEAR  = 1993   
                # Year (Four digits)
 END_MONTH = 03     
                # Month ( 01 - 12 )
 END_DAY   
                = 14     # Day ( 01 - 31 )
 END_HOUR  = 00     
                # Hour ( 00 - 23 )
 #
 # Define the time interval to process.
 #
 INTERVAL =  43200 
                # Time interval (seconds) to process.
 # This is most sanely the same as the time interval for
 # which the analyses were archived, but you can really
 # set this to just about anything, and pregrid will
 # interpolate in time and/or skip over time periods for
 # your regridding pleasure.
 
 /
 End_Of_Namelist
 
 #
 #  Tell the pregrid programs which 
                Vtables to use.  Do this only
 #  if you have selected GRIB-formatted input using SRC___ 
                = GRIB above.
 #  The directories referenced here are relative to REGRID/pregrid/.
 #
 #  The Vtable files specified in VT3D will be applied to 
                the files
 #  specified in the InFiles variable.  Similarly, the 
                Vtable files
 #  specified in VTSST, VTSNOW, and VTSOIL will be applied 
                to the files
 #  listed above in InSST, InSNOW, and InSoil, respectively.
 #
 set VT3D = ( grib.misc/Vtable.NNRP3D 
                )
 set VTSST = ( grib.misc/Vtable.NNRPSST 
                )
 set VTSNOW = ( grib.misc/Vtable.xxxxSNOW 
                )
 set VTSOIL = ( grib.misc/Vtable.xxxxSOIL 
                )
 
 ########################################################################
 ########################################################################
 ######                                                            
                ######
 ######                  
                END USER MODIFICATION                     
                ######
 ######                                                            
                ######
 ########################################################################
 ########################################################################
 
 if ( ! $?SRC3D ) then
 set SRC3D
 endif
 if ( ! $?SRCSST ) then
 set SRCSST
 endif
 if ( ! $?SRCSNOW ) then
 set SRCSNOW
 endif
 if ( ! $?SRCSOIL ) then
 set SRCSOIL
 endif
 if ( ! $?VTSOIL ) then
 set VTSOIL
 endif
 if ( ! $?VTSNOW ) then
 set VTSNOW
 endif
 if ( ! $?VTSST ) then
 set VTSST
 endif
 if ( ! $?VT3D ) then
 set VT3D
 endif
 if ( ! $?InFiles ) then
 set InFiles = ()
 endif
 if ( ! $?InSST ) then
 set InSST = ()
 endif
 if ( ! $?InSnow ) then
 set InSnow = ()
 endif
 if ( ! $?InSoil ) then
 set InSoil = ()
 endif
 
 if ( $SRCSST == $SRC3D) then
 if ( $#InSST == 0 ) then
 set InSST = ( ${InFiles} )
 endif
 endif
 
 if ( $SRCSNOW == $SRC3D) then
 if ( $#InSnow == 0 ) then
 set InSnow = ( ${InFiles} )
 endif
 endif
 
 if ( $SRCSOIL == $SRC3D) then
 if ( $#InSoil == 0 ) then
 set InSoil = ( ${InFiles} )
 endif
 endif
 
 set LETTERS = ( A B C D E F G H I J K L M N O P Q R S T U V W 
                X Y Z )
 
 foreach SourceType ( 3D SST SNOW SOIL)
 
 printf "\nProcessing for SourceType = %s\n\n" $SourceType
 
 if ( ( $SourceType == SOIL ) && ( $SRCSOIL == ON84) 
                ) then
 printf "\n\nSoil fields not available in ON84 
                Dataset.\n"
 printf "Do not request soil fields or select 
                another source for soil fields.\n\n"
 exit (1)
 endif
 
 if ( ( $SourceType == SOIL ) && ( $SRCSOIL == NCEP) 
                ) then
 printf "\n\nSoil fields not available in NCEP 
                GDAS Dataset."
 printf "Do not request soil fields or select 
                another source for soil fields.\n\n"
 exit (1)
 endif
 
 ###############################################################################
 
 if ( ( ( $SourceType == 3D   ) && ( $SRC3D   
                == ON84) ) || \
 ( ( $SourceType == SST  
                ) && ( $SRCSST  == ON84) ) || \
 ( ( $SourceType == SNOW ) 
                && ( $SRCSNOW == ON84) ) ) then
 
 printf "\n\nStarting ON84 processing for type 
                %s\n\n" $SourceType
 #
 #  Go down to the "on84" directory.
 #
 printf "cd %s\n\n" `pwd`/on84
 cd on84
 #
 #  Remove whatever files may be leftover from a prior job.  
                Redirect
 #  printout to supress warnings if there is nothing to remove.
 #
 rm ON84FILE* >&! /dev/null
 rm PSST:*    >&! /dev/null
 rm PSNOW:*   >&! /dev/null
 rm -f pregrid.namelist
 rm -f Vtable
 #
 #  Build the Vtable:
 #
 touch Vtable
 if ($SourceType == 3D) then
 cat Vtable.ON84 >> Vtable
 else if ($SourceType == SST) then
 cat Vtable.SST >> Vtable
 else if ($SourceType == SNOW) then
 cat Vtable.SNOW >> Vtable
 endif
 #
 #  Link the requested input files to "ON84FILE.A", "ON84FILE.B", 
                etc.
 #
 set Num = 0
 if ($SourceType == 3D) then
 foreach file ( $InFiles )
 @ Num ++
 printf 
                "       ln -s   %s   
                %s\n" $file ON84FILE${LETTERS[$Num]}
 ln -s $file 
                ON84FILE${LETTERS[$Num]}
 end
 endif
 
 if ($SourceType == SST) then
 foreach file ( $InSST )
 @ Num ++
 printf 
                "       ln -s   %s   
                %s\n" $file ON84FILE${LETTERS[$Num]}
 ln -s $file 
                ON84FILE${LETTERS[$Num]}
 end
 endif
 
 if ($SourceType == SNOW) then
 foreach file ( $InSnow )
 @ Num ++
 printf 
                "       ln -s   %s   
                %s\n" $file ON84FILE${LETTERS[$Num]}
 ln -s $file 
                ON84FILE${LETTERS[$Num]}
 end
 endif
 #
 # Link the pregrid.namelist file and run the program.
 #
 ln -s ../pregrid.namelist pregrid.namelist
 pregrid_on84.exe
 #
 # Move the output up to the "pregrid" directory.
 #
 if ($SourceType == 3D) then
 foreach file ( ON84:* )
 printf 
                "       mv %s ../%s\n" $file $file
 mv $file 
                ..
 end
 else if ($SourceType == SST) then
 foreach file ( SST:* )
 printf 
                "       mv %s ../ON84_%s\n" $file 
                $file
 mv $file 
                ../ON84_$file
 end
 else if ($SourceType == SNOW) then
 foreach file ( SNOW:* )
 printf 
                "       mv %s ../ON84_%s\n" $file 
                $file
 mv $file 
                ../ON84_$file
 end
 endif
 #
 # Go back up to the "pregrid" directory.
 #
 printf "\ncd %s\n" `pwd`/..
 cd ..
 
 printf "\nDone with ON84 processing for type 
                %s\n\n" $SourceType
 endif
 
 ###############################################################################
 
 if ( ( ( $SourceType == 3D   ) && ( $SRC3D   
                == NCEP) ) || \
 ( ( $SourceType == SST  
                ) && ( $SRCSST  == NCEP) ) || \
 ( ( $SourceType == SNOW ) 
                && ( $SRCSNOW == NCEP) ) ) then
 #
 #  Go down to the "ncep.grib" directory.
 #
 printf "\ncd %s\n" `pwd`/ncep.grib
 cd ncep.grib
 #
 #  Remove whatever files may be leftover from a prior job.  
                Redirect
 #  printout to supress warnings if there is nothing to remove.
 #
 rm GRIBFILE*             
                >&! /dev/null
 rm -f pregrid.namelist
 rm -f Vtable
 #
 #  Build the Vtable:
 #
 touch Vtable
 if ($SourceType == 3D) then
 cat Vtable.NCEP >> Vtable
 else if ($SourceType == SST) then
 cat Vtable.SST >> Vtable
 else if ($SourceType == SNOW) then
 cat Vtable.SNOW >> Vtable
 endif
 #
 #  Link the requested input files to "GRIBFILE.A", "GRIBFILE.B", 
                etc.
 #
 set Num = 0
 if ( $SourceType == 3D ) then
 foreach file ( $InFiles )
 @ Num ++
 ln -s $file 
                GRIBFILE${LETTERS[$Num]}
 end
 endif
 if ($SourceType == SST) then
 foreach file ( $InSST )
 @ Num ++
 ln -s $file 
                GRIBFILE${LETTERS[$Num]}
 end
 endif
 if ($SourceType == SNOW) then
 foreach file ( $InSnow )
 @ Num ++
 ln -s $file 
                GRIBFILE${LETTERS[$Num]}
 end
 endif
 #
 # Link the pregrid.namelist file and run the program.
 #
 ln -s ../pregrid.namelist pregrid.namelist
 pregrid_ncep.exe
 #
 # Move the output up to the "pregrid" directory.
 #
 if ($SourceType == 3D) then
 mv NCEP:* ..
 else if ($SourceType == SST) then
 foreach file ( SST:* )
 mv $file 
                ../NCEP_$file
 end
 else if ($SourceType == SNOW) then
 foreach file ( SNOW:* )
 mv $file 
                ../NCEP_$file
 end
 endif
 #
 # Go back up to the "pregrid" directory.
 #
 echo "cd `pwd`/.."
 cd ..
 
 endif
 
 ###############################################################################
 
 if ( ($SourceType == SST) && ( $SRCSST == NAVY 
                ) ) then
 
 printf "\n\nStarting NAVYSST processing.\n\n"
 #
 #  Go down to the "navysst" directory.
 #
 echo "cd `pwd`/navysst"
 cd navysst
 #
 #  Remove whatever files may be leftover from a prior job.  
                Redirect
 #  printout to supress warnings if there is nothing to remove.
 #
 rm -f pregrid.namelist
 rm NAVYFILE*        
                >&! /dev/null
 #
 #  Link the requested files to "NAVYFILE.A", "NAVYFILE.B", 
                etc.
 #
 set Num = 0
 foreach file ( $InSST )
 @ Num ++
 ln -s ${file} NAVYFILE${LETTERS[$Num]}
 end
 #
 # Link the pregrid.namelist file and run the program.
 #
 ln -s ../pregrid.namelist pregrid.namelist
 pregrid_navy.exe
 
 #
 # Move the output files up to the "pregrid" directory.
 #
 foreach file ( SST:* )
 mv $file ../NAVY_$file
 end
 #
 # Go back up to the "pregrid" directory.
 #
 echo "cd `pwd`/.."
 cd ..
 
 printf "\n\nDone with NAVYSST processing.\n\n"
 
 endif
 
 ###############################################################################
 
 if ( ( ( $SourceType == 3D   ) && ( $SRC3D   
                == GRIB) ) || \
 ( ( $SourceType == SST  
                ) && ( $SRCSST  == GRIB) ) || \
 ( ( $SourceType == SNOW ) 
                && ( $SRCSNOW == GRIB) ) || \
 ( ( $SourceType == SOIL ) 
                && ( $SRCSOIL == GRIB) ) ) then
 
 printf "\n\nStarting GRIB processing 
                for type %s\n\n" $SourceType
 
 #
 #  Go down to the "grib.misc" directory.
 #
 echo "cd `pwd`/grib.misc"
 cd grib.misc
 #
 #  Remove whatever files may be leftover from a prior job.  
                Redirect
 #  printout to supress warnings if there is nothing to remove.
 #
 rm FILE:*              
                >&! /dev/null
 rm GRIBFILE*           
                >&! /dev/null
 rm -f Vtable
 rm -f pregrid.namelist
 #
 #  Build the Vtable:
 #
 touch Vtable
 if ( $SourceType == 3D ) then
 foreach file ( $VT3D 
                )
 cat 
                ../$file >> Vtable
 end
 else if ( $SourceType == SST ) then
 foreach file ( $VTSST 
                )
 cat 
                ../$file >> Vtable
 end
 else if ( $SourceType == SNOW ) then
 foreach file ( $VTSNOW 
                )
 cat 
                ../$file >> Vtable
 end
 else if ( $SourceType == SOIL ) then
 foreach file ( $VTSOIL 
                )
 cat 
                ../$file >> Vtable
 end
 endif
 #
 #  Link the requested files to "GRIBFILE.AA", "GRIBFILE.AB", 
                etc.
 #
 set NUM = 0
 set num = 1
 
 if ( $SourceType == 3D ) then
 foreach file ( $InFiles 
                )
 @ 
                NUM ++
 if 
                ( $NUM == 27 ) then
 set NUM = 1
 @ num ++
 endif
 printf 
                "       ln -s   %s   
                %s\n" $file GRIBFILE.${LETTERS[$num]}${LETTERS[$NUM]}
 ln 
                -s ${file} GRIBFILE.${LETTERS[$num]}${LETTERS[$NUM]}
 end
 else if ( $SourceType == SST ) then
 foreach file ( $InSST 
                )
 @ 
                NUM ++
 if 
                ( $NUM == 27 ) then
 set NUM = 1
 @ num ++
 endif
 printf 
                "       ln -s   %s   
                %s\n" $file GRIBFILE.${LETTERS[$num]}${LETTERS[$NUM]}
 ln 
                -s ${file} GRIBFILE.${LETTERS[$num]}${LETTERS[$NUM]}
 end
 else if ( $SourceType == SNOW ) then
 foreach file ( $InSnow 
                )
 @ 
                NUM ++
 if 
                ( $NUM == 27 ) then
 set NUM = 1
 @ num ++
 endif
 printf 
                "       ln -s   %s   
                %s\n" $file GRIBFILE.${LETTERS[$num]}${LETTERS[$NUM]}
 ln 
                -s ${file} GRIBFILE.${LETTERS[$num]}${LETTERS[$NUM]}
 end
 else if ( $SourceType == SOIL ) then
 foreach file ( $InSoil 
                )
 @ 
                NUM ++
 if 
                ( $NUM == 27 ) then
 set NUM = 1
 @ num ++
 endif
 printf 
                "       ln -s   %s   
                %s\n" $file GRIBFILE.${LETTERS[$num]}${LETTERS[$NUM]}
 ln 
                -s ${file} GRIBFILE.${LETTERS[$num]}${LETTERS[$NUM]}
 end
 endif
 #
 # Link the pregrid.namelist file and run the program.
 #
 ln -s ../pregrid.namelist pregrid.namelist
 pregrid_grib.exe
 #
 # Move the output files up to the "pregrid" directory.
 #
 if ( $SourceType == 3D ) then
 mv FILE:* ..
 else
 foreach file ( FILE:* 
                )
 printf 
                "mv %s   %s\n" $file ../${SourceType}_${file}
 mv $file 
                ../${SourceType}_${file}
 end
 endif
 #
 # Go back to the "pregrid" directory.
 #
 echo "cd `pwd`/.."
 cd ..
 
 printf "\n\nDone with GRIB processing 
                for type %s\n\n" $SourceType
 endif
 
 #
 # Print out five lines of # as a delimiter between ${SourceType}s
 #
 repeat 5 printf \
 "################################################################################\n"
 
 end
 printf "\n"
 |