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-Apr-24 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/5A Star Clusters and Associations, Selected Data (Alter+ 1970) *================================================================================ *Excerpt from the Catalogue of Stars Clusters and Associations * Alter G., Ruprecht J., Vanysek V. * <Akad. Kiado, Budapest, 3086 p., 2nd edition (1970)> C============================================================================= C Internal variables integer*4 i__ c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - C Declarations for 'catalog' ! The Catalogue integer*4 nr__ parameter (nr__=1039) ! Number of records character*85 ar__ ! Full-size record C 1950.0 position composed of: RAh RAm DE- DEd DEm real*8 RAdeg ! (deg) Right Ascension 1950.0 real*8 DEdeg ! (deg) Declination 1950.0 C ---------------------------------- ! (position vector(s) in degrees) real*4 GLON ! (deg) Galactic longitude real*4 GLAT ! (deg) Galactic latitude integer*4 RAh ! (h) Hours RA, equinox 1950.0 real*4 RAm ! (min) Minutes RA, equinox 1950.0 character*1 DE_ ! Sign Dec, equinox 1950.0 integer*4 DEd ! (deg) Degrees Dec, equinox 1950.0 integer*4 DEm ! (arcmin) Minutes Dec, equinox 1950.0 character*17 Name ! Cluster name character*4 Class ! Trumbler class. codes, see below. * The following coding is used: * 32p = III 2 p * 43pn = IV 3 p n, etc. real*4 Diam ! (arcmin) []? Angular diameter integer*4 Dist ! (pc) []? Cluster distance real*4 Mag1 ! (mag) []? Magnitude of brightest stars in cluster character*2 SpType ! Spectral type character*1 Code1 ! Unidentified code real*4 IntMag ! (mag) []? Total or integrated magnitude * of the cluster character*1 Code2 ! Unidentified code real*4 ColorEx ! (mag) []? Color excess of the cluster in UBV system character*1 Code3 ! Unidentified code C============================================================================= C Loading file 'catalog' ! The Catalogue C Format for file interpretation 1 format( + F6.2,F6.2,1X,I2,1X,F4.1,A1,I2,1X,I2,1X,A17,1X,A4,1X,F5.1,1X, + I5,1X,F4.1,1X,A2,1X,A1,1X,F4.1,1X,A1,1X,F4.2,1X,A1) C Effective file loading open(unit=1,status='old',file= +'catalog') write(6,*) '....Loading file: catalog' do i__=1,1039 read(1,'(A85)')ar__ read(ar__,1) + GLON,GLAT,RAh,RAm,DE_,DEd,DEm,Name,Class,Diam,Dist,Mag1, + SpType,Code1,IntMag,Code2,ColorEx,Code3 if(ar__(51:55) .EQ. '') Diam = rNULL__ if(ar__(57:61) .EQ. '') Dist = iNULL__ if(ar__(63:66) .EQ. '') Mag1 = rNULL__ if(ar__(73:76) .EQ. '') IntMag = rNULL__ if(ar__(80:83) .EQ. '') ColorEx = rNULL__ 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(DEd .GE. 0) DEdeg=DEd if(DEm .GE. 0) DEdeg=DEdeg+DEm/60. if(DE_.EQ.'-'.AND.DEdeg.GE.0) DEdeg=-DEdeg c ..............Just test output........... write(6,1) + GLON,GLAT,RAh,RAm,DE_,DEd,DEm,Name,Class,Diam,Dist,Mag1, + SpType,Code1,IntMag,Code2,ColorEx,Code3 write(6,'(6H Pos: 2F8.4)') RAdeg,DEdeg c .......End.of.Just test output........... end do close(1) C============================================================================= stop end