FORTRAN Generation
(/./ftp/cats/VI/90)

Conversion of standardized ReadMe file for file /./ftp/cats/VI/90 into FORTRAN code for loading all data files into arrays.

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. VI/90               Wide-Field Plate Database   (Tsvetkov+ 1997)
*================================================================================
*Wide-Field Plate Database
*     Tsvetkov M.K., Stavrev K.Y., Tsvetkova K.P., Mutafov A.S., Semkov E.H.
*    <Institute of Astronomy, Bulgarian Academy of Sciences (1997)>
C=============================================================================

C  Internal variables

      integer*4 i__

c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

C  Declarations for 'maindata'	! Main data file

      integer*4 nr__
      parameter (nr__=323635)	! Number of records
      character*104 ar__   	! Full-size record

C  J2000.0 position composed of: RAh RAm RAs DE- DEd DEm DEs
      real*8        RAdeg      (nr__) ! (deg) Right Ascension J2000.0
      real*8        DEdeg      (nr__) ! (deg)     Declination J2000.0
C  ---------------------------------- ! (position vector(s) in degrees)

      character*3   IDobs      (nr__) ! *WFPDB observatory identifier
      integer*4     IDins      (nr__) ! (cm) *Instrument aperture
      character*1   IDsuf1     (nr__) ! *[A-Z] Suffix to the instrument identifier
      integer*4     IDno       (nr__) ! *Original plate number
      character*1   IDsuf2     (nr__) ! *[A-Z] Suffix to the original plate number
      integer*4     RAh        (nr__) ! (h) ? Right ascension (hours)  (J2000.0)
      integer*4     RAm        (nr__) ! (min) ? Right ascension (minutes)
      integer*4     RAs        (nr__) ! (s) ? Right ascension (seconds)
      character*1   DE_        (nr__) ! ? Declination sign         (J2000.0)
      integer*4     DEd        (nr__) ! (deg) ? Declination, degrees
      integer*4     DEm        (nr__) ! (arcmin) ? Declination, arcminutes
      integer*4     DEs        (nr__) ! (arcsec) ? Declination, arcseconds
      character*1   CCOD       (nr__) ! [EMU] Code for Error, Missing data, or
*                                      Uncertainty of coordinates
      integer*4     DATEy      (nr__) ! (yr) ? Date of observation, year  (UT)
      integer*4     DATEm      (nr__) ! (month) ? Date of observation, month
      integer*4     DATEd      (nr__) ! (d) ? Date of observation, day
      integer*4     UTh        (nr__) ! (h) ? Observation time (hour)  (UT)
      integer*4     UTm        (nr__) ! (min) ? Observation time (min)
      integer*4     UTs        (nr__) ! (s) ? Observation time (sec)
      character*1   TCOD       (nr__) ! [EMU] Code for Error, Missing data, or
*                                      Uncertainty of observation time
      character*20  OBJNAM     (nr__) ! Object or field designation
      character*2   OBJTYP     (nr__) ! *Object type code
      integer*4     METHOD     (nr__) ! *? Method of observation code
      integer*4     MULTEX     (nr__) ! ? Multiplicity of exposure
      real*4        EXP        (nr__) ! (min) *? Exposure time
      character*11  EMULS      (nr__) ! Emulsion type
      character*7   FILT       (nr__) ! Filter type
      character*2   SPEC       (nr__) ! Spectral band
      integer*4     DIMx       (nr__) ! (cm) ? X dimension of plate
      integer*4     DIMy       (nr__) ! (cm) ? Y dimension of plate
      integer*4     PQUAL      (nr__) ! [0,1] Pointer to file 'quality'
      integer*4     PNOT       (nr__) ! [0,1] Pointer to file 'notes'
      integer*4     POBS       (nr__) ! [0,1] Pointer to file 'observer'
      integer*4     PAVA       (nr__) ! *[0,9] Pointer to file 'availability'
      integer*4     PDIG       (nr__) ! *[0,1] Pointer to file 'digitisation'
*Note on IDobs, IDins, IDsuf1, IDno, IDsuf2:
*   Fields from byte 1 to byte 14, taken together, constitute the WFPDB plate
*   identifier. Fields from byte 1 to byte 7 constitute the WFPDB instrument
*   identifier.
*Note on OBJTYP: Object type in WFPDB is coded as follows:
*                A1 - planet
*                A2 - moon
*                A3 - sun
*                A4 - asteroid
*                A5 - comet
*                S1 - star
*                S2 - double star
*                S3 - variable star
*                S4 - star cluster
*                S5 - HII region
*                S6 - nebula
*                S7 - planetary nebula
*                S8 - supernova
*                S9 - fundamental star
*                SR - reference star around a radio source
*                G1 - galaxy
*                G2 - QSO
*                G3 - group of galaxies
*                G4 - cluster of galaxies
*                G5 - supercluster
*                G6 - void
*                F  - field
*
*   Remark: Object type for most of the observations is not yet available in
*   the WFPDB.
*Note on METHOD: Method of observation in WFPDB is coded as follows:
*                 1 - direct photograph
*                 2 - direct photograph, multiexposure
*                 3 - stellar tracks
*                 4 - objective prism
*                 5 - objective prism, multiexposure
*                 6 - Metcalf's method
*                 7 - proper motions
*                 8 - no guiding
*                 9 - out of focus
*                10 - test plate
*                11 - Hartmann test
*                12 - with mask
*                14 - sub-beam (Pickering) prism
*                24 - objective grating
*Note on EXP:
*   For multiexposures with different duration of the separate exposures
*   the 2nd, 3rd, ... exposures are given in file 'notes', if available
*   in the original plate catalogs.
*Note on PAVA, PDIG:
*   Files 'availability' and 'digitisation' are not available.

c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

C  Declarations for 'archives'	! List of plate archives

      integer*4 nr__1
      parameter (nr__1=294)	! Number of records
      character*212 ar__1  	! Full-size record

      character*3   IDobs_1    (nr__1) ! *WFPDB observatory identifier
      integer*4     IDins_1    (nr__1) ! (cm) *Instrument aperture
      character*1   IDsuf1_1   (nr__1) ! *[A-Z ] Suffix to the instrument identifier
      character*17  LOCs       (nr__1) ! Location of the plate archive, town (site)
      character*14  LOCc       (nr__1) ! Location of the plate archive, country
      character*23  OBSn       (nr__1) ! Observatory, name
      character*18  OBSs       (nr__1) ! Observatory, site
      character*11  OBSc       (nr__1) ! Observatory, country
      integer*4     MNo        (nr__1) ! ? Marsden's number
      character*1   TZ_        (nr__1) ! Time zone, sign
      integer*4     TZ         (nr__1) ! (h) ? Time zone
      character*1   LON_       (nr__1) ! ? Observatory longitude, sign
      integer*4     LONd       (nr__1) ! (deg) ? Observatory longitude, deg
      real*4        LONm       (nr__1) ! (arcmin) ? Observatory longitude, arcmin
      character*1   LAT_       (nr__1) ! ? Observatory latitude, sign
      integer*4     LATd       (nr__1) ! (deg) ? Observatory latitude, deg
      real*4        LATm       (nr__1) ! (arcmin) ? Observatory latitude, arcmin
      integer*4     ALT        (nr__1) ! (m) ? Observatory altitude
      integer*4     MULT       (nr__1) ! ? Multiplicity of telescope cameras
      real*4        APR        (nr__1) ! (m) ? Clear aperture of the telescope
      real*4        MD         (nr__1) ! (m) ? Diameter of telescope mirror
      real*4        FL         (nr__1) ! (m) ? Focal length of the telescope
      integer*4     SCL        (nr__1) ! (arcsec/mm) ? Plate scale
      character*3   ITYPE      (nr__1) ! *Instrument type
      real*4        FIELD      (nr__1) ! (deg) ? Field angular dimension
      integer*4     YEAR1      (nr__1) ! (yr) ? Year of beginning of telescope operation
      integer*4     YEAR2      (nr__1) ! (yr) ? Year of end of telescope operation
      character*1   PF         (nr__1) ! [F ] Indication 'F' for 'film'
      integer*4     NPd        (nr__1) ! ? Number of direct plates
      character*1   NPUNd      (nr__1) ! [: ] Uncertainty of the number of plates
      character*2   CFORMd     (nr__1) ! *Plate catalog form (direct plates)
      integer*4     NPs        (nr__1) ! ?Number of objective prism plates
      character*1   NPUNs      (nr__1) ! [: ] Uncertainty of the number of plates
      character*2   CFORMs     (nr__1) ! *Plate catalog form (obj. prism plates)
      character*2   QUAL       (nr__1) ! *[ABD ] Code for quality of the plate archive
      character*14  ANAME      (nr__1) ! Astronomer in charge
*Note on IDobs, IDins, IDsuf1:
*   Fields from byte 1 to byte 7, taken together, constitute the WFPDB
*   instrument identifier.
*Note on ITYPE:
*   Ast - astrograph, Cam - camera, FEC - fish eye camera, Men - meniscus,
*   RCr - Ritchey-Chretien, Rfl - reflector, Rfr - refractor, Sch - Schmidt
*Note on CFORMd, CFORMs:
*   C - computer-readable form, T - printed table form, TC - computer-readable
*   form in preparation
*Note on QUAL:
*   A - very good, B - good, D - distributed

c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

C  Declarations for 'quality'	! Plate quality data

      integer*4 nr__2
      parameter (nr__2=51549)	! Number of records
      character*80 ar__2  	! Full-size record

      character*3   IDobs_2    (nr__2) ! *WFPDB observatory identifier
      integer*4     IDins_2    (nr__2) ! (cm) *Instrument aperture
      character*1   IDsuf1_2   (nr__2) ! *[A-Z] Suffix to the instrument identifier
      integer*4     IDno_1     (nr__2) ! *Original plate number
      character*1   IDsuf2_1   (nr__2) ! *[A-Z] Suffix to the original plate number
      character*1   CONT       (nr__2) ! Continuation sign (1, 2, ...) or blank
      character*65  QTEXT      (nr__2) ! Text of quality information
*Note on IDobs, IDins, IDsuf1, IDno, IDsuf2:
*   See notes to description of file 'maindata'.

c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

C  Declarations for 'notes'	! Notes

      integer*4 nr__3
      parameter (nr__3=53217)	! Number of records
      character*80 ar__3  	! Full-size record

      character*3   IDobs_3    (nr__3) ! *WFPDB observatory identifier
      integer*4     IDins_3    (nr__3) ! (cm) *Instrument aperture
      character*1   IDsuf1_3   (nr__3) ! *[A-Z] Suffix to the instrument identifier
      integer*4     IDno_2     (nr__3) ! *Original plate number
      character*1   IDsuf2_2   (nr__3) ! *[A-Z] Suffix to the original plate number
      character*1   CONT_1     (nr__3) ! Continuation sign (1, 2, ...) or blank
      character*65  NTEXT      (nr__3) ! Text of note
*Note on IDobs, IDins, IDsuf1, IDno, IDsuf2:
*   See notes to the description of file 'maindata'.

c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

C  Declarations for 'observer'	! Observers' names

      integer*4 nr__4
      parameter (nr__4=35993)	! Number of records
      character*57 ar__4  	! Full-size record

      character*3   IDobs_4    (nr__4) ! *WFPDB observatory identifier
      integer*4     IDins_4    (nr__4) ! (cm) *Instrument aperture
      character*1   IDsuf1_4   (nr__4) ! *[A-Z] Suffix to the instrument identifier
      integer*4     IDno_3     (nr__4) ! *Original plate number
      character*1   IDsuf2_3   (nr__4) ! *[A-Z] Suffix to the original plate number
      character*1   CONT_2     (nr__4) ! Continuation sign (1, 2, ...) or blank
      character*42  OBSNAM     (nr__4) ! Observer's name(s)
*Note on IDobs, IDins, IDsuf1, IDno, IDsuf2:
*   See notes to the description of file 'maindata'.

C=============================================================================

C  Loading file 'maindata'	! Main data file

C  Format for file interpretation

    1 format(
     +  A3,I3,A1,I6,A1,I2,I2,I2,A1,I2,I2,I2,A1,I4,I2,I2,I2,I2,I2,A1,
     +  A20,A2,I2,I2,F6.1,A11,A7,A2,I2,I2,I1,I1,I1,I1,I1)

C  Effective file loading

      open(unit=1,status='old',file=
     +'maindata')
      write(6,*) '....Loading file: maindata'
      do i__=1,323635
        read(1,'(A104)')ar__
        read(ar__,1)
     +  IDobs(i__),IDins(i__),IDsuf1(i__),IDno(i__),IDsuf2(i__),
     +  RAh(i__),RAm(i__),RAs(i__),DE_(i__),DEd(i__),DEm(i__),
     +  DEs(i__),CCOD(i__),DATEy(i__),DATEm(i__),DATEd(i__),UTh(i__),
     +  UTm(i__),UTs(i__),TCOD(i__),OBJNAM(i__),OBJTYP(i__),
     +  METHOD(i__),MULTEX(i__),EXP(i__),EMULS(i__),FILT(i__),
     +  SPEC(i__),DIMx(i__),DIMy(i__),PQUAL(i__),PNOT(i__),POBS(i__),
     +  PAVA(i__),PDIG(i__)
        if(ar__(15:16) .EQ. '') RAh(i__) = iNULL__
        if(ar__(17:18) .EQ. '') RAm(i__) = iNULL__
        if(ar__(19:20) .EQ. '') RAs(i__) = iNULL__
        if(ar__(22:23) .EQ. '') DEd(i__) = iNULL__
        if(ar__(24:25) .EQ. '') DEm(i__) = iNULL__
        if(ar__(26:27) .EQ. '') DEs(i__) = iNULL__
        if(ar__(29:32) .EQ. '') DATEy(i__) = iNULL__
        if(ar__(33:34) .EQ. '') DATEm(i__) = iNULL__
        if(ar__(35:36) .EQ. '') DATEd(i__) = iNULL__
        if(ar__(37:38) .EQ. '') UTh(i__) = iNULL__
        if(ar__(39:40) .EQ. '') UTm(i__) = iNULL__
        if(ar__(41:42) .EQ. '') UTs(i__) = iNULL__
        if(ar__(66:67) .EQ. '') METHOD(i__) = iNULL__
        if(ar__(68:69) .EQ. '') MULTEX(i__) = iNULL__
        if(ar__(70:75) .EQ. '') EXP(i__) = rNULL__
        if(ar__(96:97) .EQ. '') DIMx(i__) = iNULL__
        if(ar__(98:99) .EQ. '') DIMy(i__) = iNULL__
        RAdeg(i__) = rNULL__
        DEdeg(i__) = rNULL__
c  Derive coordinates RAdeg and DEdeg from input data
c  (RAdeg and DEdeg are set to rNULL__ when unknown)
        if(RAh(i__) .GT. -180) RAdeg(i__)=RAh(i__)*15.
        if(RAm(i__) .GT. -180) RAdeg(i__)=RAdeg(i__)+RAm(i__)/4.
        if(RAs(i__) .GT. -180) RAdeg(i__)=RAdeg(i__)+RAs(i__)/240.
        if(DEd(i__) .GE. 0) DEdeg(i__)=DEd(i__)
        if(DEm(i__) .GE. 0) DEdeg(i__)=DEdeg(i__)+DEm(i__)/60.
        if(DEs(i__) .GE. 0) DEdeg(i__)=DEdeg(i__)+DEs(i__)/3600.
        if(DE_(i__).EQ.'-'.AND.DEdeg(i__).GE.0) DEdeg(i__)=-DEdeg(i__)
c    ..............Just test output...........
        write(6,1)
     +  IDobs(i__),IDins(i__),IDsuf1(i__),IDno(i__),IDsuf2(i__),
     +  RAh(i__),RAm(i__),RAs(i__),DE_(i__),DEd(i__),DEm(i__),
     +  DEs(i__),CCOD(i__),DATEy(i__),DATEm(i__),DATEd(i__),UTh(i__),
     +  UTm(i__),UTs(i__),TCOD(i__),OBJNAM(i__),OBJTYP(i__),
     +  METHOD(i__),MULTEX(i__),EXP(i__),EMULS(i__),FILT(i__),
     +  SPEC(i__),DIMx(i__),DIMy(i__),PQUAL(i__),PNOT(i__),POBS(i__),
     +  PAVA(i__),PDIG(i__)
        write(6,'(6H Pos: 2F8.4)') RAdeg(i__),DEdeg(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

C=============================================================================

C  Loading file 'archives'	! List of plate archives

C  Format for file interpretation

    2 format(
     +  A3,I3,A1,1X,A17,1X,A14,1X,A23,1X,A18,1X,A11,1X,I3,1X,A1,I2,1X,
     +  A1,I3,1X,F4.1,1X,A1,I2,1X,F4.1,1X,I4,1X,I2,1X,F4.2,1X,F4.2,1X,
     +  F5.2,1X,I4,1X,A3,1X,F5.1,1X,I4,1X,I4,1X,A1,1X,I6,A1,1X,A2,1X,
     +  I5,A1,1X,A2,1X,A2,1X,A14)

C  Effective file loading

      open(unit=1,status='old',file=
     +'archives')
      write(6,*) '....Loading file: archives'
      do i__=1,294
        read(1,'(A212)')ar__1
        read(ar__1,2)
     +  IDobs_1(i__),IDins_1(i__),IDsuf1_1(i__),LOCs(i__),LOCc(i__),
     +  OBSn(i__),OBSs(i__),OBSc(i__),MNo(i__),TZ_(i__),TZ(i__),
     +  LON_(i__),LONd(i__),LONm(i__),LAT_(i__),LATd(i__),LATm(i__),
     +  ALT(i__),MULT(i__),APR(i__),MD(i__),FL(i__),SCL(i__),
     +  ITYPE(i__),FIELD(i__),YEAR1(i__),YEAR2(i__),PF(i__),NPd(i__),
     +  NPUNd(i__),CFORMd(i__),NPs(i__),NPUNs(i__),CFORMs(i__),
     +  QUAL(i__),ANAME(i__)
        if(ar__1(97:99) .EQ. '') MNo(i__) = iNULL__
        if(ar__1(102:103) .EQ. '') TZ(i__) = iNULL__
        if(ar__1(106:108) .EQ. '') LONd(i__) = iNULL__
        if(ar__1(110:113) .EQ. '') LONm(i__) = rNULL__
        if(ar__1(116:117) .EQ. '') LATd(i__) = iNULL__
        if(ar__1(119:122) .EQ. '') LATm(i__) = rNULL__
        if(ar__1(124:127) .EQ. '') ALT(i__) = iNULL__
        if(ar__1(129:130) .EQ. '') MULT(i__) = iNULL__
        if(ar__1(132:135) .EQ. '') APR(i__) = rNULL__
        if(ar__1(137:140) .EQ. '') MD(i__) = rNULL__
        if(ar__1(142:146) .EQ. '') FL(i__) = rNULL__
        if(ar__1(148:151) .EQ. '') SCL(i__) = iNULL__
        if(ar__1(157:161) .EQ. '') FIELD(i__) = rNULL__
        if(ar__1(163:166) .EQ. '') YEAR1(i__) = iNULL__
        if(ar__1(168:171) .EQ. '') YEAR2(i__) = iNULL__
        if(ar__1(175:180) .EQ. '') NPd(i__) = iNULL__
        if(ar__1(186:190) .EQ. '') NPs(i__) = iNULL__
c    ..............Just test output...........
        write(6,2)
     +  IDobs_1(i__),IDins_1(i__),IDsuf1_1(i__),LOCs(i__),LOCc(i__),
     +  OBSn(i__),OBSs(i__),OBSc(i__),MNo(i__),TZ_(i__),TZ(i__),
     +  LON_(i__),LONd(i__),LONm(i__),LAT_(i__),LATd(i__),LATm(i__),
     +  ALT(i__),MULT(i__),APR(i__),MD(i__),FL(i__),SCL(i__),
     +  ITYPE(i__),FIELD(i__),YEAR1(i__),YEAR2(i__),PF(i__),NPd(i__),
     +  NPUNd(i__),CFORMd(i__),NPs(i__),NPUNs(i__),CFORMs(i__),
     +  QUAL(i__),ANAME(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

C=============================================================================

C  Loading file 'quality'	! Plate quality data

C  Format for file interpretation

    3 format(A3,I3,A1,I6,A1,A1,A65)

C  Effective file loading

      open(unit=1,status='old',file=
     +'quality')
      write(6,*) '....Loading file: quality'
      do i__=1,51549
        read(1,'(A80)')ar__2
        read(ar__2,3)
     +  IDobs_2(i__),IDins_2(i__),IDsuf1_2(i__),IDno_1(i__),
     +  IDsuf2_1(i__),CONT(i__),QTEXT(i__)
c    ..............Just test output...........
        write(6,3)
     +  IDobs_2(i__),IDins_2(i__),IDsuf1_2(i__),IDno_1(i__),
     +  IDsuf2_1(i__),CONT(i__),QTEXT(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

C=============================================================================

C  Loading file 'notes'	! Notes

C  Format for file interpretation

    4 format(A3,I3,A1,I6,A1,A1,A65)

C  Effective file loading

      open(unit=1,status='old',file=
     +'notes')
      write(6,*) '....Loading file: notes'
      do i__=1,53217
        read(1,'(A80)')ar__3
        read(ar__3,4)
     +  IDobs_3(i__),IDins_3(i__),IDsuf1_3(i__),IDno_2(i__),
     +  IDsuf2_2(i__),CONT_1(i__),NTEXT(i__)
c    ..............Just test output...........
        write(6,4)
     +  IDobs_3(i__),IDins_3(i__),IDsuf1_3(i__),IDno_2(i__),
     +  IDsuf2_2(i__),CONT_1(i__),NTEXT(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

C=============================================================================

C  Loading file 'observer'	! Observers' names

C  Format for file interpretation

    5 format(A3,I3,A1,I6,A1,A1,A42)

C  Effective file loading

      open(unit=1,status='old',file=
     +'observer')
      write(6,*) '....Loading file: observer'
      do i__=1,35993
        read(1,'(A57)')ar__4
        read(ar__4,5)
     +  IDobs_4(i__),IDins_4(i__),IDsuf1_4(i__),IDno_3(i__),
     +  IDsuf2_3(i__),CONT_2(i__),OBSNAM(i__)
c    ..............Just test output...........
        write(6,5)
     +  IDobs_4(i__),IDins_4(i__),IDsuf1_4(i__),IDno_3(i__),
     +  IDsuf2_3(i__),CONT_2(i__),OBSNAM(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

C=============================================================================
      stop
      end