*+WT_SPEC
c --------------------------------------------------------------
subroutine wt_spec(infile,outfile,hduclas2,phaversn,fchan,
& channel,counts,rcts,dtype,qerror,serr,
& qsys,syserr,qqual,qualty,qgroup,grping,
& qascale,ascale,qbscale,bscale,
&
nchan,detchans,conv,phsize,specext,mnver,task,
& n_comm,comms,ckeys,cform,ckrec,cdesc,nckeys,
& cmpmode,ctype,errflg,chatter)
c --------------------------------------------------------------
c
c --- DESCRIPTION -------------------------------------------------
c
c This subroutine writes the SPECTRUM extension with the current
c changes. It is appended onto the Primary Header. In OGIP standard
c format. Written for the HEASARC FTOOLS tasks GRPPHA.
c
c --- VARIABLES ---------------------------------------------------
c
IMPLICIT NONE
character*(*) infile,outfile,ckeys(*),ckrec(*)
character*(*) cform(*),cdesc(*),cmpmode,ctype
character*(*) task, comms(*), hduclas2, phaversn
integer phsize,nchan,chatter,specext,nckeys,n_comm,fchan
integer channel(*),counts(*),qualty(*)
integer grping(*),dtype,errflg,detchans
integer*2 conv(*)
real serr(*),syserr(*),rcts(*),ascale(*),bscale(*)
logical qerror,qsys,qqual,qgroup,long_str
logical qascale,qbscale
character*5 mnver
c
c --- VARIABLE DIRECTORY ------------------------------------------
c
c Arguments ...
c
c infile char : PHA filename, user defined
c outfile char : Output filename, user defined
c chatter int : Chattines flag
c phsize int : Array dimensions
c channel int : Array of detector channels
c dtype int : Datatype, 1 if counts, 2 is rcts
c counts int : Array of observed counts
c rcts real : Array of count rate
c qualty int : Array of qualty flag
c grping int : Array of grouping flag
c serr real : Array of Observed statistical errors
c syserr real : Array of Fractional systematic error
c ascale real : Array of areascal values
c bscale real : Array of backscal values
c qgroup logical: True if data is grouped
c qqual logical: True if data has qualty flags
c qerror logical: True if statistical errors included
c qsys logical: True if systematic errors included
c qascale logical: True if vector areascal
c qbscale logical: True if vector backscal
c ckeys char : Keywords that can have their values changed
c cform char : contains keywords and their form ; "S" or "E"
c in the form RESPFILE S
c ckrec char : Records of ckeys
c cdesc char : CHKEY record descriptions
c nckeys int : counter for above
c
c --- CALLED ROUTINES ---------------------------------------------
c
c FTOPEN : (FITSIO) Opens FITS file
c FTCRHD : (FITSIO) Creates header
c FTMAHD : (FITSIO) Move to specified header number
c FTMRHD : (FITSIO) Move a specified number of headers
c forward or backward
c FTGHSP : (FITSIO) Obtain the number of keywords
c FTPHIS : (FITSIO) Write history keywords
c FTBDEF : (FITSIO) Define Binary header
c FTPCL(IE) : (FITSIO) Write (integer real) column
c FTCLOS : (FITSIO) Close FITS FILE
c
c --- AUTHORS/MODIFICATION HISTORY --------------------------------
c
c Rehana Yusaf (1993 April 7)
c Rehana Yusaf (1993 June 23) : Add history about this routine
c Rehana Yusaf (1993 July 6) : CKEYS, and CKREC are used
c Rehana Yusaf (1993 July 19) : Comment array is passed to routine
c Rehana Yusaf (1993 August 6) (1.0.4): Use FTPREC instead of CFTPREC,
c illegal characters in comments or
c history, no longer supported
c Rehana Yusaf (1993 Nov 18) 1.0.5; hduclas2,phaversn, detchans and
c fchan are passed to this subroutine
c In addition new keyword CREATOR is
c used to write taskname and version
c Rehana Yusaf (1993 Dec 1) 1.0.6; Fix getkeys related bug, some
keywords
c were written twice.
c Rehana Yusaf (1993 Dec 6) 1.0.7; Fix chkey bug - chkey keywords
c were not being written after last
c change
c Rehana Yusaf (1994 Feb 23) 1.0.8; Write counts column in J form
c prev written as I.
c Rehana Yusaf (1994 July 7) 1.0.9; additional argument, cform,cdesc
c Rehana Yusaf (1994 Sept 14) 1.1.0; use FTPKYL to write long strings
c Rehana Yusaf (1994 Oct 26) 1.1.1; If any of the chkeys are not in
the
c original file then still write
them
c Rehana Yusaf (1994 Dec 19) 1.1.2; POISERR = T when qerror = T
c POISERR = F when false
c bug fix, write 'CHANNEL' not '
CHANNEL'
c Rehana Yusaf (1995 Dec 14) 1.1.3; addd wtinfo and friends
c Rehana Yusaf (1996 Feb 22) 1.1.4; added cmpmode
c
c Banashree Mitra Seifert (1996, March) 1.2.0:
c . corrected call for wtwarm
c . variable sizes to carry over from calling routine instead
of
c defining fixed as phsize
c
c Banashree Mitra Seifert (1996, JulY) 1.3.0:
c . CHANTYPE included to write in the output file
c
c Banashree Mitra Seifert (1996, Sept12)1.4.0:
c . if POISSON error not applicable, then POISSERR=FALSE
c (it was by mistake TRUE)
c
c Banashree M Seifert (1997, May 15) 1.5.0:
c . parameter hist increased from charecter*80 to 200 so
c it can write long infile names
c kaa (2001 June 6) 1.6.0:
c . Added support for vector AREASCAL and BACKSCAL
c ------------------------------------------------------------------