Conversion of standardized ReadMe file for
file /./ftp/cats/VII/34C 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 2026-Sep-09
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. VII/34C ESO/Uppsala Survey of the ESO(B) Atlas (Lauberts 1982)
*================================================================================
*The ESO/Uppsala Survey of the ESO(B) Atlas
* Lauberts A.
* <European Southern Observatory (1982)>
* =1982ESO...C......0L
C=============================================================================
C Internal variables
integer*4 i__
c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C Declarations for 'catalog.dat' ! The Catalogue
integer*4 nr__
parameter (nr__=18422) ! Number of records
character*188 ar__ ! Full-size record
C 1950 position composed of: RAh RAm RAs DE- DEd DEm
real*8 RAdeg (nr__) ! (deg) Right Ascension 1950
real*8 DEdeg (nr__) ! (deg) Declination 1950
C ---------------------------------- ! (position vector(s) in degrees)
integer*4 RAh (nr__) ! (h) Hours RA, equinox 1950
integer*4 RAm (nr__) ! (min) Minutes RA, equinox 1950
integer*4 RAs (nr__) ! (s) Seconds RA, equinox 1950
character*1 DE_ (nr__) ! Sign Dec, equinox 1950
integer*4 DEd (nr__) ! (deg) Degrees Dec, equinox 1950
real*4 DEm (nr__) ! (arcmin) Minutes Dec, equinox 1950
character*10 ESO (nr__) ! ESO/Uppsala descriptive identifier (1)
character*23 ID (nr__) ! Other identifier (2)
real*4 GLON (nr__) ! (deg) Galactic longitude
real*4 GLAT (nr__) ! (deg) Galactic latitude
real*4 X (nr__) ! (mm) X plate coordinate (positive toward East)
real*4 Y (nr__) ! (mm) Y plate coordinate (positive toward North)
integer*4 MajAxis (nr__) ! (0.1arcmin) ? Major axis diameter
character*1 u_MajAxis (nr__) ! [: ] ':' if major axis is uncertain
integer*4 MinAxis (nr__) ! (0.1arcmin) ? Minor axis diameter
character*1 u_MinAxis (nr__) ! [: ] ':' if minor axis is uncertain
integer*4 PA (nr__) ! (deg) ? Position angle of major axis from
* north through east
character*1 u_PA (nr__) ! [: ] ':' if position angle is uncertain
integer*4 MType (nr__) ! ? Morphological type in RC2 system
* (de Vaucouleurs et al., 1976)
character*27 Class (nr__) ! Estimated Hubble class
character*27 Desc (nr__) ! Description
character*1 FlagN (nr__) ! [ *] '*' if note exists in file "notes.dat"
character*1 FlagM (nr__) ! [ 1] '1' if galaxy listed in MCG
character*1 FlagRC (nr__) ! [ 2] '2' if galaxy listed in RC2
character*1 FlagV (nr__) ! [ V] 'V' if galaxy listed in
* Vorontsov-Velyaminov (1959)
character*1 FlagA (nr__) ! [ A] 'A' if galaxy listed in Arp (1966)
real*4 Bmag (nr__) ! (mag) ? B magnitude in the UBV system
real*4 e_Bmag (nr__) ! (mag) ? Mean error in Bmag
integer*4 apBmag (nr__) ! (arcsec) ? Aperture for Bmag
character*2 r_Bmag (nr__) ! ? Reference code for Bmag magnitude (3)
real*4 B_V (nr__) ! (mag) ? B-V color in the UBV system
real*4 U_B (nr__) ! (mag) ? U-B color in the UBV system
character*2 r_B_V (nr__) ! ? Reference to U-B and B-V (3)
integer*4 RV (nr__) ! (km/s) ? Radial velocity
integer*4 e_RV (nr__) ! (km/s) ? Radial velocity mean error
character*2 r_RV (nr__) ! ? Radial velocity reference (3)
*Note (1): ESO designation is written FFF-oooNNN, where
* FFF = Field (plate) number, see file "plates.dat"
* ooo = Object class with
* * = star ** = double or multiple star
* SC = star cluster N = nebula
* A = asteroid C = comet
* G = galaxy IG = interacting galaxy
* EN = emission nebula PN = planetary nebula
* RN = reflection nebula SNR = supernova remnant
* ? = questionable object
* NNN = number within field
*Note (2): Some common abbreviations include: N for NGC, I for IC,
* M for Messier, PK for Perek-Kohoutek planetary nebulae,
* and GCl or OCl for star clusters from the Budapest catalog.
* References to these and other abbreviations are detailed in
* file "idrefs.dat"
*Note (3): See explanation in file "refs.dat"
c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C Declarations for 'idrefs.dat' ! Identifications References
integer*4 nr__1
parameter (nr__1=107) ! Number of records
character*80 ar__1 ! Full-size record
character*10 ID_1 (nr__1) ! Identification, see ID in table catalog.dat
character*70 Text (nr__1) ! Text of bibliographic reference
c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C Declarations for 'refs.dat' ! Magnitude, Color and Radial Velocity References
integer*4 nr__2
parameter (nr__2=202) ! Number of records
character*80 ar__2 ! Full-size record
character*2 Code (nr__2) ! Reference code (columns
* r_Bmag, r_B-V, r_RV of catalog.dat)
character*9 Data (nr__2) ! Type of data taken from reference:
* Z = reference for radial velocity
* other = magnitude bandpass, e.g. 'UBV'
character*67 Text_1 (nr__2) ! Text of bibliographic reference
c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C Declarations for 'notes.dat' ! Notes to catalog
integer*4 nr__3
parameter (nr__3=1405) ! Number of records
character*80 ar__3 ! Full-size record
C 1950 position composed of: RAh RAm RAs DE- DEd DEm
real*8 RAdeg_1 (nr__3) ! (deg) Right Ascension 1950
real*8 DEdeg_1 (nr__3) ! (deg) Declination 1950
C ---------------------------------- ! (position vector(s) in degrees)
integer*4 RAh_1 (nr__3) ! (h) Hours RA, equinox 1950
integer*4 RAm_1 (nr__3) ! (min) Minutes RA, equinox 1950
integer*4 RAs_1 (nr__3) ! (s) Seconds RA, equinox 1950
character*1 DE__1 (nr__3) ! Sign Dec, equinox 1950
integer*4 DEd_1 (nr__3) ! (deg) Degrees Dec, equinox 1950
real*4 DEm_1 (nr__3) ! (arcmin) Minutes Dec, equinox 1950
character*10 ESO_1 (nr__3) ! ESO/Uppsala identifier
character*55 Text_2 (nr__3) ! Text of note
c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C Declarations for 'plates.dat' ! Plate centers
integer*4 nr__4
parameter (nr__4=612) ! Number of records
character*80 ar__4 ! Full-size record
C 1950.0 position composed of: RAh RAm RAs DE- DEd DEm
real*8 RAdeg_2 (nr__4) ! (deg) Right Ascension 1950.0
real*8 DEdeg_2 (nr__4) ! (deg) Declination 1950.0
C ---------------------------------- ! (position vector(s) in degrees)
integer*4 Field (nr__4) ! Field number
integer*4 NPC_RAh (nr__4) ! (h) Hours RA, 1950.0, of nominal plate center
integer*4 NPC_RAm (nr__4) ! (min) Minutes RA, 1950.0, of nominal plate center
integer*4 NPC_DEdeg (nr__4) ! (deg) Degrees Dec, 1950.0, of nominal plate center
integer*4 Plate (nr__4) ! Plate number
integer*4 RAh_2 (nr__4) ! (h) Hours RA, 1950.0, of plate center
integer*4 RAm_2 (nr__4) ! (min) Minutes RA, 1950.0, of plate center
integer*4 RAs_2 (nr__4) ! (s) Seconds RA, 1950.0, of plate center
character*1 DE__2 (nr__4) ! Sign Dec, 1950.0, of plate center
integer*4 DEd_2 (nr__4) ! (deg) Degrees Dec, 1950.0, of plate center
real*4 DEm_2 (nr__4) ! (arcmin) Minutes Dec, 1950.0, of plate center
real*4 Diff_X (nr__4) ! (mm) Center difference, X
real*4 Diff_Y (nr__4) ! (mm) Center difference, Y
integer*4 Exp_Y (nr__4) ! (a) Exposure start time, year, Universal Time
integer*4 Exp_M (nr__4) ! Exposure start time, month, Universal Time
real*8 Exp_d (nr__4) ! (d) Exposure start time, day, Universal Time
integer*4 ExpST_h (nr__4) ! (h) Exposure start time, hour, Sideral Time
integer*4 ExpST_m (nr__4) ! (min) Exposure start time, minutes, Sideral Time
integer*4 Seeing (nr__4) ! Seeing quality (1)
character*3 Obs_Code (nr__4) ! Observer code (2)
character*1 Note (nr__4) ! Note (3)
*Note (1): Seeing judged on a 5-step scale; the corresponding
* approximate image diameters are as follows:
* 1 - <25 microns (156 plates)
* 2 - 20-30 microns (182 plates)
* 3 - 25-35 microns (141 plates)
* 4 - 30-40 microns ( 79 plates)
* 5 - >35 microns ( 48 plates)
*Note (2): the Observer code is:
* GPA - Guido Pizarro (186 plates)
* OPA - Oscar Pizarro (180 plates)
* HES - Hans-Emil Schuster (167 plates)
* DBA - Dominique Ballereau ( 72 plates)
* AZU - Alberto Zuniga ( 1 plate )
*Note (3): the coded notes stand for:
* 1 - Clouds
* 2 - Wind
* 3 - Cirrus
* 4 - Humidity
* 5 - Wind and clouds
* 6 - Image motion
* 7 - (not used)
* 8 - No grid on plate (plate number < 400)
* 9 - Plate not used in ESO/Uppsala Survey.
C=============================================================================
C Loading file 'catalog.dat' ! The Catalogue
C Format for file interpretation
1 format(
+ I2,I2,I2,A1,I2,F4.1,1X,A10,1X,A23,F6.2,F6.2,F6.1,F6.1,1X,I3,
+ A1,I3,A1,I3,A1,1X,I2,1X,A27,A27,A1,A1,A1,A1,A1,F6.2,F4.2,I2,
+ 1X,A2,F5.2,F5.2,1X,A2,I5,I4,1X,A2)
C Effective file loading
open(unit=1,status='old',file=
+'catalog.dat')
write(6,*) '....Loading file: catalog.dat'
do i__=1,18422
read(1,'(A188)')ar__
read(ar__,1)
+ RAh(i__),RAm(i__),RAs(i__),DE_(i__),DEd(i__),DEm(i__),
+ ESO(i__),ID(i__),GLON(i__),GLAT(i__),X(i__),Y(i__),
+ MajAxis(i__),u_MajAxis(i__),MinAxis(i__),u_MinAxis(i__),
+ PA(i__),u_PA(i__),MType(i__),Class(i__),Desc(i__),FlagN(i__),
+ FlagM(i__),FlagRC(i__),FlagV(i__),FlagA(i__),Bmag(i__),
+ e_Bmag(i__),apBmag(i__),r_Bmag(i__),B_V(i__),U_B(i__),
+ r_B_V(i__),RV(i__),e_RV(i__),r_RV(i__)
if(ar__(74:76) .EQ. '') MajAxis(i__) = iNULL__
if(ar__(78:80) .EQ. '') MinAxis(i__) = iNULL__
if(ar__(82:84) .EQ. '') PA(i__) = iNULL__
if(ar__(87:88) .EQ. '') MType(i__) = iNULL__
if(ar__(149:154) .EQ. '') Bmag(i__) = rNULL__
if(ar__(155:158) .EQ. '') e_Bmag(i__) = rNULL__
if(ar__(159:160) .EQ. '') apBmag(i__) = iNULL__
if(ar__(164:168) .EQ. '') B_V(i__) = rNULL__
if(ar__(169:173) .EQ. '') U_B(i__) = rNULL__
if(ar__(177:181) .EQ. '') RV(i__) = iNULL__
if(ar__(182:185) .EQ. '') e_RV(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(DE_(i__).EQ.'-'.AND.DEdeg(i__).GE.0) DEdeg(i__)=-DEdeg(i__)
c ..............Just test output...........
write(6,1)
+ RAh(i__),RAm(i__),RAs(i__),DE_(i__),DEd(i__),DEm(i__),
+ ESO(i__),ID(i__),GLON(i__),GLAT(i__),X(i__),Y(i__),
+ MajAxis(i__),u_MajAxis(i__),MinAxis(i__),u_MinAxis(i__),
+ PA(i__),u_PA(i__),MType(i__),Class(i__),Desc(i__),FlagN(i__),
+ FlagM(i__),FlagRC(i__),FlagV(i__),FlagA(i__),Bmag(i__),
+ e_Bmag(i__),apBmag(i__),r_Bmag(i__),B_V(i__),U_B(i__),
+ r_B_V(i__),RV(i__),e_RV(i__),r_RV(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 'idrefs.dat' ! Identifications References
C Format for file interpretation
2 format(A10,A70)
C Effective file loading
open(unit=1,status='old',file=
+'idrefs.dat')
write(6,*) '....Loading file: idrefs.dat'
do i__=1,107
read(1,'(A80)')ar__1
read(ar__1,2)ID_1(i__),Text(i__)
c ..............Just test output...........
write(6,2)ID_1(i__),Text(i__)
c .......End.of.Just test output...........
end do
close(1)
C=============================================================================
C Loading file 'refs.dat' ! Magnitude, Color and Radial Velocity References
C Format for file interpretation
3 format(A2,1X,A9,1X,A67)
C Effective file loading
open(unit=1,status='old',file=
+'refs.dat')
write(6,*) '....Loading file: refs.dat'
do i__=1,202
read(1,'(A80)')ar__2
read(ar__2,3)Code(i__),Data(i__),Text_1(i__)
c ..............Just test output...........
write(6,3)Code(i__),Data(i__),Text_1(i__)
c .......End.of.Just test output...........
end do
close(1)
C=============================================================================
C Loading file 'notes.dat' ! Notes to catalog
C Format for file interpretation
4 format(I2,I2,I2,A1,I2,F4.1,1X,A10,1X,A55)
C Effective file loading
open(unit=1,status='old',file=
+'notes.dat')
write(6,*) '....Loading file: notes.dat'
do i__=1,1405
read(1,'(A80)')ar__3
read(ar__3,4)
+ RAh_1(i__),RAm_1(i__),RAs_1(i__),DE__1(i__),DEd_1(i__),
+ DEm_1(i__),ESO_1(i__),Text_2(i__)
RAdeg_1(i__) = rNULL__
DEdeg_1(i__) = 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(i__) .GT. -180) RAdeg_1(i__)=RAh_1(i__)*15.
if(RAm_1(i__) .GT. -180) RAdeg_1(i__)=RAdeg_1(i__)+RAm_1(i__)/4.
if(RAs_1(i__) .GT. -180) RAdeg_1(i__)=RAdeg_1(i__)+RAs_1(i__)/240.
if(DEd_1(i__) .GE. 0) DEdeg_1(i__)=DEd_1(i__)
if(DEm_1(i__) .GE. 0) DEdeg_1(i__)=DEdeg_1(i__)+DEm_1(i__)/60.
if(DE__1(i__).EQ.'-'.AND.DEdeg_1(i__).GE.0) DEdeg_1(i__)=-DEdeg_1(i__)
c ..............Just test output...........
write(6,4)
+ RAh_1(i__),RAm_1(i__),RAs_1(i__),DE__1(i__),DEd_1(i__),
+ DEm_1(i__),ESO_1(i__),Text_2(i__)
write(6,'(6H Pos: 2F8.4)') RAdeg_1(i__),DEdeg_1(i__)
c .......End.of.Just test output...........
end do
close(1)
C=============================================================================
C Loading file 'plates.dat' ! Plate centers
C Format for file interpretation
5 format(
+ I3,2X,I2,1X,I2,1X,I3,1X,I4,1X,I2,1X,I2,1X,I2,1X,A1,I2,1X,F4.1,
+ F6.2,F6.2,I5,I3,F9.5,I3,I3,1X,I1,1X,A3,1X,A1)
C Effective file loading
open(unit=1,status='old',file=
+'plates.dat')
write(6,*) '....Loading file: plates.dat'
do i__=1,612
read(1,'(A80)')ar__4
read(ar__4,5)
+ Field(i__),NPC_RAh(i__),NPC_RAm(i__),NPC_DEdeg(i__),
+ Plate(i__),RAh_2(i__),RAm_2(i__),RAs_2(i__),DE__2(i__),
+ DEd_2(i__),DEm_2(i__),Diff_X(i__),Diff_Y(i__),Exp_Y(i__),
+ Exp_M(i__),Exp_d(i__),ExpST_h(i__),ExpST_m(i__),Seeing(i__),
+ Obs_Code(i__),Note(i__)
RAdeg_2(i__) = rNULL__
DEdeg_2(i__) = rNULL__
c Derive coordinates RAdeg_2 and DEdeg_2 from input data
c (RAdeg_2 and DEdeg_2 are set to rNULL__ when unknown)
if(RAh_2(i__) .GT. -180) RAdeg_2(i__)=RAh_2(i__)*15.
if(RAm_2(i__) .GT. -180) RAdeg_2(i__)=RAdeg_2(i__)+RAm_2(i__)/4.
if(RAs_2(i__) .GT. -180) RAdeg_2(i__)=RAdeg_2(i__)+RAs_2(i__)/240.
if(DEd_2(i__) .GE. 0) DEdeg_2(i__)=DEd_2(i__)
if(DEm_2(i__) .GE. 0) DEdeg_2(i__)=DEdeg_2(i__)+DEm_2(i__)/60.
if(DE__2(i__).EQ.'-'.AND.DEdeg_2(i__).GE.0) DEdeg_2(i__)=-DEdeg_2(i__)
c ..............Just test output...........
write(6,5)
+ Field(i__),NPC_RAh(i__),NPC_RAm(i__),NPC_DEdeg(i__),
+ Plate(i__),RAh_2(i__),RAm_2(i__),RAs_2(i__),DE__2(i__),
+ DEd_2(i__),DEm_2(i__),Diff_X(i__),Diff_Y(i__),Exp_Y(i__),
+ Exp_M(i__),Exp_d(i__),ExpST_h(i__),ExpST_m(i__),Seeing(i__),
+ Obs_Code(i__),Note(i__)
write(6,'(6H Pos: 2F8.4)') RAdeg_2(i__),DEdeg_2(i__)
c .......End.of.Just test output...........
end do
close(1)
C=============================================================================
stop
end