pro cat_form,input_files,output_file
;+
; NAME:
;  cat_form
; PURPOSE:
;  Concatinate files together but insert form feeds.
; CALLING SEQUENCE:
;  cat_form,Input_files,output_file
;  cat_form,'*.txt',summary.txt
;
; INPUTS:
;  Input_files	= A list of filenames (separated commas)
;		  Examples:  Input_files = 'a.txt,b.txt,c.txt,d*.txt'
;  output_file  = Name of the output file.
;
; MODIFICATION HISTORY:
;   3-jul-93, JRL, Written.
;-

files = str2arr(Input_files,",")
nfiles = n_elements(files)

if nfiles eq 0 then begin
  print,'**** cat_form error:  No files found ***'
  print,'     Input_files = ',Input_files
  return
end

files1 = ''
for i=0,nfiles-1 do begin
  xx = findfile(files(i))
  if strlen(xx(0)) gt 0 then files1 = [files1,xx]
endfor
if n_elements(files1) gt 1 then files1 = files1(1:*) else begin
  print,'**** cat_form error:  No files found ***'
  print,'     Input_files = ',Input_files
  return
end
nfiles = n_elements(files1)
print,'There are ',nfiles,' files specified',format='(a,i4,a)'


FF = string(12B)		; Form-feed character
openw,lun,output_file,/get_lun

for i=0,nfiles-1 do begin

   print,'Working on',i+1,' or',nfiles,'  ',files1(i),format='(a,i4,a,i4,2a)'
   if i gt 0 then printf,lun,FF		; Throw a formfeed

   openr,lun1,files1(i),/get_lun
   while not eof(lun1) do begin
      buff = '' & readf,lun1,buff & printf,lun,buff
   endwhile
   free_lun,lun1
endfor

free_lun,lun
print,'  *** Results written to:', output_file
return
end
