Conversion of standardized ReadMe file for
file /./ftp/cats/IX/25 into FORTRAN code for reading data files line by line.
Note that special values are assigned to unknown or unspecified
numbers (also called NULL numbers);
when necessary, the coordinate components making up the right ascension
and declination are converted into floating-point numbers
representing these angles in degrees.
program load_ReadMe C============================================================================= C F77-compliant program generated by readme2f_1.81 (2015-09-23), on 2024-Apr-19 C============================================================================= * This code was generated from the ReadMe file documenting a catalogue * according to the "Standard for Documentation of Astronomical Catalogues" * currently in use by the Astronomical Data Centers (CDS, ADC, A&A) * (see full documentation at URL http://vizier.u-strasbg.fr/doc/catstd.htx) * Please report problems or questions to C============================================================================= implicit none * Unspecified or NULL values, generally corresponding to blank columns, * are assigned one of the following special values: * rNULL__ for unknown or NULL floating-point values * iNULL__ for unknown or NULL integer values real*4 rNULL__ integer*4 iNULL__ parameter (rNULL__=--2147483648.) ! NULL real number parameter (iNULL__=(-2147483647-1)) ! NULL int number integer idig ! testing NULL number C============================================================================= Cat. IX/25 Einstein Observatory IPC Parameters (HEAO-2, 1978-1981) *================================================================================ *Einstein Observatory Imaging Proportional Counter (IPC) Parameters * Giacconi et al. * <Einstein Observatory (HEAO-2), 1978-1981> C============================================================================= C Internal variables integer*4 i__ c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - C Declarations for 'ipcfield.dat' ! Field Parameters for the IPC integer*4 nr__ parameter (nr__=4295) ! Number of records character*243 ar__ ! Full-size record C B1950 position composed of: RAh RAm RAs DE- DEd DEm DEs real*8 RAdeg ! (deg) Right Ascension B1950 real*8 DEdeg ! (deg) Declination B1950 C ---------------------------------- ! (position vector(s) in degrees) integer*4 IPCseq ! IPC Sequence number (1) character*84 ObsTitle ! Title of the observation (1) integer*4 RAh ! (h) Right Ascension (B1950) (hour) integer*4 RAm ! (min) Right Ascension (B1950) (min) integer*4 RAs ! (s) Right Ascension (B1950) (sec) character*1 DE_ ! Declination sign (B1950) integer*4 DEd ! (deg) Declination (B1950) (deg) integer*4 DEm ! (arcmin) Declination (B1950) (arcmin) integer*4 DEs ! (arcsec) Declination (B1950) (arcsec) integer*4 RA2000h ! (h) Right Ascension (J2000) (hour) integer*4 RA2000m ! (min) Right Ascension (J2000) (min) integer*4 RA2000s ! (s) Right Ascension (J2000) (sec) character*1 DE2000_ ! Declination sign (J2000) integer*4 DE2000d ! (deg) Declination (J2000) (deg) integer*4 DE2000m ! (arcmin) Declination (J2000) (arcmin) integer*4 DE2000s ! (arcsec) Declination (J2000) (arcsec) real*8 GLON ! (rad) Galactic longitude of field center real*8 GLAT ! (rad) Galactic latitude of field center real*8 livetime ! (s) Live time of observation (2) integer*4 strt_Y ! (yr) Start date (year) of data (3) integer*4 strt_D ! (d) Start date (day) (3) integer*4 stop_Y ! (yr) Stop date (year) (3) integer*4 stop_D ! (d) Stop date (day) (3) real*4 nH ! (cm-2) Column Density (4) real*8 rollang ! (rad) Average roll angle of instrument (5) integer*4 f_rollang ! [0 1] Flag for bad roll angle 0=good; 1=bad (5) character*3 refid ! Field identification (6) character*3 fldflag ! Concatenation of all field flags (7) character*12 fitsfile ! Name of fits file from EOSCAT (8) character*27 comment ! Reason field not included in EOSCAT if no * fitsfile (9) *Note (1): These columns give the sequence number and the title of the * observation. The sequence number is a unique numeric identifier for * each observation which was allocated sequentially at the time of * proposal submission. It is an internal index used to key on all * references to an observation. Observation titles are, for the most * part, from the "Yellow Book" (Seward and Martenis 1986, Cat. IX/27). * Several observations have been given new titles in this catalog * because of misnaming or mispointing errors discovered since the last * revision of the "Yellow Book." *Note (2): The live time (given in seconds) is a measure of the effective * exposure time at the field center. It is the total number of seconds * during which the detectors gathered data. The live time has been * corrected for intervals lost because of Earth occultation, passage * through the South Atlantic Anomaly, unacceptable aspect solution, and * detector dead time. *Note (3): These columns give the start and stop date of the observation. * The year is given as a four digit number and the day is given as a * number between 1 and 365 (note that 1980 was a leap year). These two * dates bound the observation, but their difference is not the observing * time because of inter-observation gaps, Earth occultation, etc. *Note (4): This column gives the column density of neutral hydrogen in * atoms per cm^2^, integrated along the line of sight through our Galaxy * in the direction of the field center of the observation. Specified in * exponential notation, NH values are obtained from sky surveys of * neutral hydrogen using 21 cm radio observations. For declinations * north of -40 deg, they are from the Bell Lab survey of Stark et al., * private communication. For fields south of -40 degrees they come from * Heiles and Cleary (1979AuJPA..47....1H) and Cleary, Heiles, and Haslam * (1979A&AS...36...95C). *Note (5): The 'rollang' column gives the angle in radians which measures * the roll of the spacecraft about the axis pointing towards the field * center. It provides the angular orientation of the focal plane * detectors with respect to the celestial coordinate grid. A positive * value of the roll angle indicates a clockwise rotation of the * (detector's projected) field when viewing the celestial sphere. The * 'f_rollang' column (int) is a flag which is either 0 or 1, depending * on whether the roll angle given is meaningful. A "0" indicates a good * roll angle; a "1" indicates there is no unique roll angle which can be * ascribed to the observation. * * The algorithms in Rev 1B took the nominal roll angle of the first * observation interval ("HUT", which stands for "HEAO Universal Time", * and is used to name data segments which make up an observation) as the * nominal roll angle for the observation. For normal observations this * procedure was satisfactory, since the aspect solution compensated * subsequent HUTs for any differences, which were usually quite small. * However, there are occasions for which the first HUT had zero exposure * time, and/or subsequent HUTs were obtained with roll angles which were * significantly different from the nominal value for the first HUT. This * led to erroneous roll angle labels, even though the data were * correctly handled. * * In order to correct this problem, we have calculated a time-averaged * roll angle for each field by using the nominal roll angle for each HUT * together with the small offset from that value derived from the aspect * solution. Occasionally small data segments had roll angles which were * grossly different from the average. If any HUT had a roll angle which * differed from the average for the observation by more than 4 degrees, * it was considered to be "discrepant". If the exposure time of * discrepant HUTs was less than 5% of the total exposure, these HUTs * were ignored in calculating the final average roll angle. The roll * angle given in this column is this new average, not the Rev 1B value. * * However, if discrepant HUTs contributed more than 5% of the exposure * time, the concept of a unique roll angle for the observation loses its * significance, and the "bad aspect flag" is set to 1 because the given * roll angle is not an accurate description of the angle of the * instrument during the entire observation. The bad aspect flag will * also be set if HUTs comprising more than 5% of the exposure time had * pointing offsets which differed from the average by more than 2 * arcmin. *Note (6): This column gives the identification for the field which has * been taken from published papers which discuss Einstein data. In order * to reference papers which contain results on a particular field, or on * field sources which were not detected by Rev 1B processing or did not * pass our selection criteria, we provide a reference and identification * flag for the field similar to that used for the sources (see * <IX/23/srcids.dat>). This facilitates identification of parts of large * angular diameter sources (e.g., the Cygnus Loop) when there are no * discrete sources detected, and also accommodates papers which give * source names but no positions. * * Our list of papers is based on a bibliography of articles maintained * by F.D. Seward, Guest Observer Coordinator for the Einstein project, * rather than on a systematic literature search, and contains papers * published prior to January, 1988. We apologize to authors whose papers * may have been omitted. It should be noted that field identifications * have been transcribed from the references without evaluation; the user * should consult the references (see the tables <IX/23/srcids.dat> and * <IX/23/reflist.dat>) and use his or her own judgment as to their * accuracy. * * The main difference between the Ref/ID flags for fields and those for * sources is the addition of a new, nonspecific flag, "!", and the * omission of the "+" flag, germane only for sources. * * The "!" flag is used to alert users that there are entries in the * source identifications table (<IX/23/srcids.dat>) which refer to * sources in the field which are not in the source table * (<IX/23/source.dat>). These sources may be at the field center, but * more often are either large extended features such as parts of * supernova remnants or off-axis sources which were not detected with a * signal-to-noise ratio greater than 3.5. This type of entry pertains to * a source, but can only be tied to the field, since the source is not * "officially" in the catalog. When this happens, the entry in the * <IX/23/srcids.dat> table will have an "S" in the position code and may * be much more than 100 arcsec from the field center. * * The Ref/ID flags for fields are listed below: * * ------------------------------------------------------------------- * Flag Meaning * ------------------------------------------------------------------- * AGN Active galactic nucleus * BL BL Lac object * CLG Cluster (or group) of galaxies * CV Cataclysmic variable * G Galaxy * GLB Globular cluster * P Pulsar * Q Quasar * RS Radio source * S Star * SNR Supernova remnant * SY Seyfert galaxy * * Nonspecific indicator for separations < 100" * ! Nonspecific indicator for a source within the * field, but not contained in the source table * ------------------------------------------------------------------- *Note (7): This column gives the field flag, an indicator which denotes * observations which have additional information available, which have * been processed in a slightly nonstandard way, or which were found to * have a peculiarity. The format will be a string, of 1 or more * characters, which indicates where to find ancillary information. The * flags which are defined, and the number of occurrences is listed * below: * * --------------------------------------------------------------------------- * Flag Meaning # Description * --------------------------------------------------------------------------- * B Background suspect 4 An extremely rare flag, indicating that * a poor Mdetect background map may have * affected the reliability of M detect * sources (and the values of sizcor given * in <IX/23/source.dat>). Not a reference to * further information. * * C Combined field 451 The current observation is one of two or * more pointings that have been combined * to form a new sequence number. The * results of the analysis of the merged * data appear only in Appendix J of the * catalog, not in the source table. * * D Deleted sources 139 Detected sources have occasionally been * deleted from the catalog because they * were judged to be spurious. For the most * part this occurred for detections within * extended emission such as supernova * remnants and clusters. This flag * indicates that one or more deletions * have been made from this field. * Approximately 470 sources were deleted * through this process. For those cases * where discrete sources were expected a * priori to be embedded in extended * emission (e.g. M31, Orion), deletions * were not made. * * G Ghost image 3 Ghost Image from strong source just * outside the field of view. For details * see the description of the IPC instrument * under "Additional Information" section below. * * L Ldetect only 965 Indicates that Mdetect was not run. No * reference to further information. * * P Particle 1 Background contaminated by particle * contamination events. * * S Sources missed 257 Known sources were missed by the * detection algorithms. This flag * indicates that there are one or * more entries in the missed source * list (Appendix G of the Catalog, * see <IX/23/missedsrc.dat> table) * which pertain to this field. * * T Time correction 82 Rev 1B was redone to correct faulty * dead-time corrections. This condition * exists whenever the dead-time correction * used in Rev 1B was in error by 3% or * more. * --------------------------------------------------------------------------- *Note (8): The 'fitsfile' column gives the name of the FITS file of this * field from the FITS version of the catalog. The FITS version is * available on-line at the Center for Astrophysics through einline, or * from cdroms and tapes distributed throughout the astronomical * community. For more information, contact An * example of a FITS filename is I0458N41.XIA, where I indicates IPC, the * next four digits indicate the right ascension, N41 describes the * declination (41 degrees north), XI indicates this is the X-ray * intensity version of the map, and the last digit is a sequential * lettering for pointings close enough that the right ascension and * declination would not distinguish them. For instance, if there were * two pointings at this right ascension and declination, the other FITS * file would be called I0458N41.XIB. *Note (9): The comment column provides the explanation as to why the field * was not included in the Catalog, when there is no FITS filename given. * This is usually because the exposure time was less than 300 seconds. c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - C Declarations for 'ipcihut.dat' ! Component Huts for IPC Sequences integer*4 nr__1 parameter (nr__1=13265) ! Number of records character*153 ar__1 ! Full-size record C B1950 position composed of: RAh RAm RAs DE- DEd DEm DEs real*8 RAdeg_1 ! (deg) Right Ascension B1950 real*8 DEdeg_1 ! (deg) Declination B1950 C ---------------------------------- ! (position vector(s) in degrees) integer*4 IPCseq_1 ! IPC Sequence Number (1) integer*4 fieldno ! IPC hut number relative to field (1) integer*4 MinFno ! Minor frame number (2) integer*4 MajFno ! Absolute hut number (minor frame / 128) (2) integer*4 RAh_1 ! (h) Right Ascension (B1950) (hour) integer*4 RAm_1 ! (min) Right Ascension (B1950) (min) integer*4 RAs_1 ! (s) Right Ascension (B1950) (sec) character*1 DE__1 ! Declination sign (B1950) integer*4 DEd_1 ! (deg) Declination (B1950) (deg) integer*4 DEm_1 ! (arcmin) Declination (B1950) (arcmin) integer*4 DEs_1 ! (arcsec) Declination (B1950) (arcsec) real*4 hutroll ! (rad) Hut - nominal roll angle (3) real*8 aspyoff ! Aspect Y offset in pixels (4) real*8 aspzoff ! Aspect Z offset in pixels (4) real*4 asprot ! (rad) Aspect rotation (4) real*8 livetime_1 ! (s) Livetime (5) real*4 avgbal ! Time-averaged BAL (6) real*4 ustartim ! (us) Start time (7) integer*4 astartday ! Absolute start day (offset from 1978.0) (7) integer*4 start_Y ! (yr) Start year (8) integer*4 start_D ! (d) Start day of start year (8) integer*4 starttime ! (ms) Start time (8) integer*4 stop_Y_1 ! (yr) Stop year (8) integer*4 stop_D_1 ! (d) Stop day (8) integer*4 stoptime ! (ms) Stop time (8) *Note (1): The IPCseq column gives the sequence number of the observation, * a unique numeric identifier which was allocated sequentially at the * time of proposal submission. It is an internal index used to key on * all references to an observation. The 'fieldno' column gives the * sequential number of the HUT in this field. There will be one entry * for every hut in an observation. *Note (2): These columns list the minor frame number and the major frame * number of the beginning of the HUT. The major frame number is the * absolute HUT number (+/-) one, and is equal to the minor frame number * divided by 128. The major frame duration is 40.96 seconds; the major * frame counter was started somewhat prior to launch. *Note (3): The 'hutroll' column gives the angle in radians which measures * the roll of the spacecraft about the axis pointing towards the field * center for a given hut. It provides the angular orientation of the * focal plane detectors with respect to the celestial coordinate grid. A * positive value of the roll angle indicates a clockwise rotation of the * (detector's projected) field when viewing the celestial sphere. *Note (4): The first two columns give the aspect offset, (in pixels), which * is the average offset in Y and Z from the nominal values given in the * columns hutrarad and hutdecrad. The 'asprot' column gives the aspect * offset (in radians) of the roll angle from the nominal values given in * the column hutrollrad. *Note (5): This column gives the livetime, in seconds, a measure of the * effective exposure time at the field center for each hut. It is the * total number of seconds during which the detectors gathered data. The * live time has been corrected for intervals lost because of Earth * occultation, passage through the South Atlantic Anomaly, unacceptable * aspect solution, and detector dead time. *Note (6): This column contains the time-averaged BAL for the hut of the * given observation. The BAL is a measure of the gain of the IPC; it * gives the pulse height (out of 32) where the aluminum (1.49 keV) * calibration signal peaks. The centroid of the count distribution * across the pulse height channels from the on-board AL calibration * source (1.49 keV) is used to specify the IPC gain. *Note (7): The 'ustartim' (microstartime) column gives the start time (in * microseconds) of the observation. The 'astartday' column gives the * absolute day during which the observation started, offset from the * first day of 1978. *Note (8): These columns give the start (and stop) year, day, and time of * each observation. The year will be between 1978 and 1981; the day will * be the day number of that year (1 to 365) (note that 1980 was a leap * year); and the time will be the start and stop times (in milliseconds) * of that day. C============================================================================= C Loading file 'ipcfield.dat' ! Field Parameters for the IPC C Format for file interpretation 1 format( + 1X,I5,1X,A84,1X,I2,1X,I2,1X,I2,1X,A1,I2,1X,I2,1X,I2,1X,I2,1X, + I2,1X,I2,1X,A1,I2,1X,I2,1X,I2,1X,F7.5,1X,F8.5,1X,F8.2,1X,I4, + 1X,I3,1X,I4,1X,I3,1X,E9.4,1X,F8.5,1X,I1,1X,A3,1X,A3,1X,A12,1X, + A27) C Effective file loading open(unit=1,status='old',file= +'ipcfield.dat') write(6,*) '....Loading file: ipcfield.dat' do i__=1,4295 read(1,'(A243)')ar__ read(ar__,1) + IPCseq,ObsTitle,RAh,RAm,RAs,DE_,DEd,DEm,DEs,RA2000h,RA2000m, + RA2000s,DE2000_,DE2000d,DE2000m,DE2000s,GLON,GLAT,livetime, + strt_Y,strt_D,stop_Y,stop_D,nH,rollang,f_rollang,refid, + fldflag,fitsfile,comment RAdeg = rNULL__ DEdeg = rNULL__ c Derive coordinates RAdeg and DEdeg from input data c (RAdeg and DEdeg are set to rNULL__ when unknown) if(RAh .GT. -180) RAdeg=RAh*15. if(RAm .GT. -180) RAdeg=RAdeg+RAm/4. if(RAs .GT. -180) RAdeg=RAdeg+RAs/240. if(DEd .GE. 0) DEdeg=DEd if(DEm .GE. 0) DEdeg=DEdeg+DEm/60. if(DEs .GE. 0) DEdeg=DEdeg+DEs/3600. if(DE_.EQ.'-'.AND.DEdeg.GE.0) DEdeg=-DEdeg c ..............Just test output........... write(6,1) + IPCseq,ObsTitle,RAh,RAm,RAs,DE_,DEd,DEm,DEs,RA2000h,RA2000m, + RA2000s,DE2000_,DE2000d,DE2000m,DE2000s,GLON,GLAT,livetime, + strt_Y,strt_D,stop_Y,stop_D,nH,rollang,f_rollang,refid, + fldflag,fitsfile,comment write(6,'(6H Pos: 2F8.4)') RAdeg,DEdeg c .......End.of.Just test output........... end do close(1) C============================================================================= C Loading file 'ipcihut.dat' ! Component Huts for IPC Sequences C Format for file interpretation 2 format( + 1X,I5,1X,I2,1X,I9,1X,I7,1X,I2,1X,I2,1X,I2,1X,A1,I2,1X,I2,1X, + I2,1X,F6.3,1X,F8.3,1X,F8.3,1X,E11.5,1X,F8.3,1X,F5.2,1X,E13.8, + 1X,I4,1X,I4,1X,I3,1X,I8,1X,I4,1X,I3,1X,I8) C Effective file loading open(unit=1,status='old',file= +'ipcihut.dat') write(6,*) '....Loading file: ipcihut.dat' do i__=1,13265 read(1,'(A153)')ar__1 read(ar__1,2) + IPCseq_1,fieldno,MinFno,MajFno,RAh_1,RAm_1,RAs_1,DE__1,DEd_1, + DEm_1,DEs_1,hutroll,aspyoff,aspzoff,asprot,livetime_1,avgbal, + ustartim,astartday,start_Y,start_D,starttime,stop_Y_1, + stop_D_1,stoptime RAdeg_1 = rNULL__ DEdeg_1 = rNULL__ c Derive coordinates RAdeg_1 and DEdeg_1 from input data c (RAdeg_1 and DEdeg_1 are set to rNULL__ when unknown) if(RAh_1 .GT. -180) RAdeg_1=RAh_1*15. if(RAm_1 .GT. -180) RAdeg_1=RAdeg_1+RAm_1/4. if(RAs_1 .GT. -180) RAdeg_1=RAdeg_1+RAs_1/240. if(DEd_1 .GE. 0) DEdeg_1=DEd_1 if(DEm_1 .GE. 0) DEdeg_1=DEdeg_1+DEm_1/60. if(DEs_1 .GE. 0) DEdeg_1=DEdeg_1+DEs_1/3600. if(DE__1.EQ.'-'.AND.DEdeg_1.GE.0) DEdeg_1=-DEdeg_1 c ..............Just test output........... write(6,2) + IPCseq_1,fieldno,MinFno,MajFno,RAh_1,RAm_1,RAs_1,DE__1,DEd_1, + DEm_1,DEs_1,hutroll,aspyoff,aspzoff,asprot,livetime_1,avgbal, + ustartim,astartday,start_Y,start_D,starttime,stop_Y_1, + stop_D_1,stoptime write(6,'(6H Pos: 2F8.4)') RAdeg_1,DEdeg_1 c .......End.of.Just test output........... end do close(1) C============================================================================= stop end