CDS.headStuff2
FORTRAN Generation
Conversion of standardized ReadMe file for
catalog 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-May-12 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. III/86 SKYLAB S-019 Far-UV Objective-Prism Spectrophotometry (Henize+ 1979) *================================================================================ *Catalog of Far-Ultraviolet Objective-Prism Spectrophotometry: Skylab Experiment *S-019, Ultraviolet Stellar Astronomy * Henize K.G., Wray J.D., Parsons S.B., Benedict G.F. * <NASA Ref. Publ. 1031 (1979)> * =1979cfuo.book.....H * =1979NASAR1031....1H C============================================================================= C Internal variables integer*4 i__ c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - C Declarations for 'frames.dat' ! Summary of frames observed for S-019 Experiment integer*4 nr__ parameter (nr__=469) ! Number of records character*100 ar__ ! Full-size record C 1950 position composed of: RAh RAm DEdeg real*8 RAdeg ! (deg) Right Ascension 1950 real*8 DEdeg ! (deg) Declination 1950 C ---------------------------------- ! (position vector(s) in degrees) character*7 Fnum ! *Frame number integer*4 RAh ! (h) *? Right ascension (1950) of field center integer*4 RAm ! (min) *? Minutes of right ascension real*4 DEdeg_1 ! (deg) *? Declination (1950) of field center character*1 u_DEdeg ! [)] ")" if the field center is uncertain character*5 Field ! *Field designation. integer*4 Expo_Y ! (yr) Calendar year of exposure (offset 1900) integer*4 Expo_M ! ("month") Month of exposure integer*4 Expo_D ! (d) Day of exposure integer*4 Expo_YD ! (d) *?Day in year (1 to 365) integer*4 Expo_h ! (h) *? UT of exposure, hours integer*4 Expo_m_1 ! (min) *? UT of exposure, minutes integer*4 Expo_s ! (s) *? UT of exposure, seconds integer*4 CanNum ! Serial number of the film canister. real*4 Tangle ! (deg) *? Tilt angle integer*4 PA ! (deg) *? Position angle integer*4 Etime ! (s) ?The planned, nominal exposure time character*1 Com ! *[UN] Blank, or comment about exposure type integer*4 Mtime ! (s) *? Actual measured exposure time character*1 u_Mtime ! [)] ")" if the actual exposure t is uncertain character*23 rem ! *Remarks. *Note on Fnum: * Frame number. Each exposure has 8 unique identifier which is referred * to in the data file (see data.dat, bytes 21-205). Each exposure * number, also called a frame number, consists of a mission number (SL2, * SL3, or SL4), and an integer exposure sequence number. *Note on RAh, RAm, DEdeg: * Field center. "The celestial orientation of Skylab was often uncertain * by 1 degree or more, so all field centers were determined with the * Becvar atlases (Becvar 1962, 1964). On the prism exposures, the highly * compressed optical end (head) of the spectrum, ending near 5000 A, was * used for positional reference." This field is blank if the frame was * for calibration or was unusable because of defects, fogging, bad * exposure, etc. *Note on Field: * Field designation. Five character designation for internal use by the * S-019 investigators (indicates the SkyLab mission number 2, 3 or 4) *Note on Expo.YD, Expo.h, Expo.m, Expo.s: * Universal Time (UT) for the start of each exposure. Bytes 37-48 are * blank for calibration exposures. "Start and end times could be * determined to the nearest second from verbal 'marks' given by the * astronaut and recorded on two-track tape, the second track containing * a time signal. (Approximately 25 percent of) this information is lost, * in which case the start time is given to the nearest minute and should * be within 2 minutes of the actual start of the observation." *Note on Tangle: * Tilt angle, which refers to the Articulated Mirror System (Henize et * al. 1979). At 0 degree tilt, the line of sight makes a 30 degree angle * with the spacecraft wall. Bytes 56-77 are blank for calibration * exposures. *Note on PA: * Position angle, defining the orientation of north on the frame. With * the print oriented so that shorter wavelengths are toward the left, * the zero point of position angle is toward the top. The angle is * measured clockwise in degrees. *Note on Com: * Blank, or the following comment character: * U = unwidened spectra * N = no prism, direct photograph *Note on Mtime: * Actual measured exposure time when determinable from the voice marks * (see bytes 37-48). *Note on rem: * Two exposures have extremely long remarks which are not included in the * machine-readable version and are as follows: * RECORD * NO. FRAME REMARK * 377 SL4-050 Started before comet rise, total 253 sec * 417 SL4-090 Resembles very short U expo. According to transcript, * it may have been terminated after 10 sec., <- 219. * The following are the explanations given by Heinze et al. (1979) for * abbreviations appearing in the remarks: * --------------------------------------------------------------------- * REMARK MEANING * --------------------------------------------------------------------- * ATM.EXT Indicates spectra are affected by atmospheric extinction. * END: Gives end time of exposure to nearest second when known, * if start time was not recorded. * (FOGGED) Indicates plate has narrow streak of fog, * or general fog greater than normal. * FOGGED Indicates plate has heavy fog, but images * may be usable. * HIFOG Indicates plate has severe fog, images not * usable. * NO IMD Indicates the spectra are trailed due to * failure to inhibit momentum dumping. * <- Indicates field was renumbered from the * pad designation. * -> Indicates this field now shared between * two adjacent fields. C============================================================================= C Loading file 'frames.dat' ! Summary of frames observed for S-019 Experiment C Format for file interpretation 1 format( + A7,2X,I2,1X,I2,1X,F5.1,A1,1X,A5,1X,I2,I2,I2,2X,I3,1X,I2,1X,I2, + 1X,I2,2X,I3,2X,F4.1,2X,I3,2X,I3,A1,2X,I3,A1,1X,A23) C Effective file loading open(unit=1,status='old',file= +'III/86/frames.dat') write(6,*) '....Loading file: frames.dat' do i__=1,469 read(1,'(A100)')ar__ read(ar__,1) + Fnum,RAh,RAm,DEdeg_1,u_DEdeg,Field,Expo_Y,Expo_M,Expo_D, + Expo_YD,Expo_h,Expo_m_1,Expo_s,CanNum,Tangle,PA,Etime,Com, + Mtime,u_Mtime,rem if(ar__(10:11) .EQ. '') RAh = iNULL__ if(ar__(13:14) .EQ. '') RAm = iNULL__ if(ar__(16:20) .EQ. '') DEdeg_1 = rNULL__ if(ar__(37:39) .EQ. '') Expo_YD = iNULL__ if(ar__(41:42) .EQ. '') Expo_h = iNULL__ if(ar__(44:45) .EQ. '') Expo_m_1 = iNULL__ if(ar__(47:48) .EQ. '') Expo_s = iNULL__ if(ar__(56:59) .EQ. '') Tangle = rNULL__ if(ar__(62:64) .EQ. '') PA = iNULL__ if(ar__(67:69) .EQ. '') Etime = iNULL__ if(ar__(73:75) .EQ. '') Mtime = iNULL__ 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(DEdeg_1 .GE. 0) DEdeg=DEdeg_1 c ..............Just test output........... write(6,1) + Fnum,RAh,RAm,DEdeg_1,u_DEdeg,Field,Expo_Y,Expo_M,Expo_D, + Expo_YD,Expo_h,Expo_m_1,Expo_s,CanNum,Tangle,PA,Etime,Com, + Mtime,u_Mtime,rem write(6,'(6H Pos: 2F8.4)') RAdeg,DEdeg c .......End.of.Just test output........... end do close(1) C============================================================================= stop end