*+WTPHA2 subroutine wtpha2(ounit,chatter,nk_hist,hist,nk_comm, & comment,telescop,instrume,detnam,filter, & phaversn,hduclas2,fchan,texpos,qareasc,areascal, & backfil,qbacksc,backscal,corrfil, & corrscal,respfil,ancrfil,detchans,chantyp, & channel,counts,dtype,qerror,serr,qsys, & syserr,qqual,qualty,qgroup,grping,nchan, & ierr) IMPLICIT NONE integer ounit,chatter,nk_hist, nk_comm integer detchans, dtype, nchan, ierr integer channel(detchans),qualty(detchans),grping(detchans) integer fchan real texpos,corrscal real counts(detchans), serr(detchans), syserr(detchans) real areascal(*), backscal(*) character*(*) phaversn character*(*) telescop,instrume,detnam,filter character*(*) chantyp character*(*) hduclas2 character*(*) hist(nk_hist), comment(nk_comm) character*(*) backfil,corrfil,respfil,ancrfil logical qerror,qsys,qqual,qgroup logical qareasc,qbacksc c c Description c This subroutine writes the SPECTRUM extension for a PHA file in c one of the formats conforming to the HDUVERS='1.*.*' family. c Currently the following formats are supported (see OGIP/92-007a) c HDUVERS1 = '1.0.0' c HDUVERS1 = '1.1.0' c HDUVERS = '1.1.0' c HDUVERS = '1.2.0' c The requested format is checked, and if belonging to the '1.*.*' family, c but not included above, the extension is written in the last format listed. c !!! Note !!! the o/p file is assumed to have been opened, and wound to the c desired location. The file is left open at the end of the c newly written SPECTRUM extension on return and MUST be closed c using FTCLOS or another extension written starting with FTCRHD c in order that the mandatory END keyword is written c In all cases, the 1.*.* family of formats consists of a BINTABLE extension, c with the number of rows equal to the number of channels passed (this does c not have to be the total number of detector channels the instrument is c capable of). c c Passed Parameters c OUNIT i : FORTRAN unit number of open PHA file c CHATTER i : chattiness flag for o/p (5 quite,10 norm,>19 silly) c NK_HIST i : No. records to be written as HISTORY records c HIST i : Array of history record strings to be written c NK_COMM i : No. records to be written as COMMENT records c COMMENT i : Array of comment record strings to be written c TELESCOP i : String giving telescope/mission c INSTRUME i : String giving instrument/detector name c DETNAM i : String giving specific detector name/code (if any) c FILTER i : String giving instrument filetr in use (if any) c PHAVERSN i : String denoting OGIP HDUVERS family c HDUCLAS2 i : String containing HDUCLAS2 value c FCHAN i : First legal channel number (ie 0, 1 etc) c TEXPOS i : exposure (Live) time c QAREASC i : true if a vector AREASCAL is passed c AREASCAL i : area scaling factor c BACKFIL i : associated background filename c QBACKSC i : true if a vector BACKSCAL is passed c BACKSCAL i : background scaling factor c CORRFIL i : associated correction filename c CORRSCAL i : correction scaling factor c RESPFIL i : detector redistribution matrix file (RMF) c ANCRFIL i : ancillary response file (ARF) c DETCHANS i : total number of possible detector channels c CHANTYP i : type of detector channels (PHA, PI etc) c CHANNEL i : array of detector channel numbers c COUNTS i : array of obs'd counts (or count rate) per chan c DTYPE i : flag to denote counts (1) or count rates (2) c QERROR i : flag as to whether stat errors passed down c SERR i : array of statistical errors on COUNTS (for QERROR=T) c QSYS i : flag as to whether systematic errors passed down c SYSERR i : array of systematic errors on COUNTS (for QSYS=T) c QQUAL i : flag as to whether quality array passed down c QUALTY i : array of quality flags (for QQUAL=T) c QGROUP i : flag as to whether grouping array passed down c GRPING i : array of quality flags (for QGROUP=T) c NCHAN i : No. channels actually passed down c IERR o : Error Flag (0=OK) c c Format Written c Each row consists of the following columns/contents: c CHANNEL - (int) the channel number c either: COUNTS - (int) the number of counts/channel c or RATE - (real) the number of counts/channel/second c STAT_ERR- (real) the statistical error on COUNTS or RATE c SYS_ERR - (real) the fractional systematic error on COUNTS or RATE c QUALITY - (int) quality flag for the data in channel c GROUPING- (int) grouping flag for this channel c AREASCAL- (real) area scaling for this channel c BACKSCAL- (real) background scaling for this channel c If all the rows would contain the same value in the STAT_ERR,SYS_ERR, c QUALITY,GROUPING,AREASCAL, or BACKSCAL columns, then that column is c not written and the value supplied by a header keyword instead. c c The following keywords are written: c HDUCLASS='OGIP'-indicating the format conforms to OGIP standards c HDUCLAS1='SPECTRUM' - indicating major class in the heirarchy c HDUVERS - (passed) The phaversn to be written (must in '1.*.*' family) c HDUCLAS2- (passed) - Whether the spectrum is srce, bkgd, or both c HDUCLAS3- Indicating whether the data are stored as counts of count rates c TELESCOP- The mission/satellite name' c INSTRUME- The instrument/detector name' c DETNAM - The sub-detector in use c FILTER - The name of the filter in use c EXPOSURE- The exposure time (or "live-time") in seconds c BACKFIL - The name of the associated background file c CORRFIL - The name of the associated correction file c CORRSCAL- The correction file scaling factor c RESPFILE- The name of the associated redistrib matrix file c ANCRFILE- The name of the associated ancillary response file c PHAVERSN='1992a' - The OGIP classification of FITS format c DETCHANS- The total number possible detector channels c CHANTYPE- The channel type (PHA, PI etc) c POISSERR- Logical as the whether poissonian errors are to be assumed c c Called routines etc c subroutine FCECHO : (FTOOLS) Writes to standard o/p c subroutine FTOPEN : (FITSIO) Opens FITS file c subroutine FTCRHD : (FITSIO) Creates header c subroutine FTMAHD : (FITSIO) Move to specified header number c subroutine FTMCOM : (FITSIO) Modify comment of existing keyword c subroutine FTMRHD : (FITSIO) Move a specified number of headers c subroutine FTGHSP : (FITSIO) Obtain the number of keywords c subroutine FTPHIS : (FITSIO) Write history keywords c subroutine FTBDEF : (FITSIO) Define Binary header c subroutine FTPCLn : (FITSIO) Write FITS column of type n c subroutine WT_FERRMSG : (CALLIB) writes FITSIO error message c c Authors/modification history c kaa 3/19/01 modified from wrpha1.f v3.2.1 for HDUVERS=1.2.0 c ----------------------------------------------------------------------