CDS.headStuff2 FORTRAN Generation
()

Conversion of standardized ReadMe file for catalog 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-May-07
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. II/294       The SDSS Photometric Catalog, Release 7  (Adelman-McCarthy+, 2009)
*================================================================================
*The SDSS Photometric Catalog, Release 7
*     Adelman-McCarthy J.K. et al.
*    <Astrophys. J. Suppl. 182, 543 (2009)>
*    =2009ApJS..182..543A
C=============================================================================

C  Internal variables

      integer*4 i__

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

C  Declarations for 'sdss7.sam'	! *Sample output of the SDSS photometric catalog

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

C  Position composed of: RAdeg DEdeg
      integer*4     mode       (nr__) ! [1,2] 1: primary  (357,175,411 sources),
*                                       2: secondary (96,670,822 sources).
      character*1   q_mode     (nr__) ! [+] '+' indicates clean photometry
*                                         (105,969,748 sources with mode 1+)
      integer*4     cl         (nr__) ! Type (class) of the object (type) (1)
      character*19  SDSS       (nr__) ! Recommended SDSS name, based on J2000 position
      character*1   m_SDSS     (nr__) ! [*] The asterisk indicates that 2 different
*                                     SDSS objects share the same SDSS name
      character*1   R          (nr__) ! [3457] Release inclusion (blank for new,
*                                       3,4,5 when already included in DR3/4/5)
      character*16  SDSS_ID    (nr__) ! [ 0-9.] SDSS object identifier (2)
      integer*8     objID      (nr__) ! SDSS unique object identifier (2)
      integer*8     SpObjID    (nr__) ! Pointer to the spectrum of object, or 0 (7)
      integer*8     parentID   (nr__) ! Pointer to parent (if object deblended)
      integer*4     rerun      (nr__) ! [40,651] Re-run number (2)
      integer*8     flags      (nr__) ! Photo Object Attribute flags (3)
      character*8   Status     (nr__) ! [0-9A-F] Hexadecimal  status (4)
      real*8        RAdeg      (nr__) ! (deg) Right Ascension of the object (ICRS) (ra)
      real*8        DEdeg      (nr__) ! (deg) Declination of the object (ICRS) (dec)
      real*4        e_RAdeg    (nr__) ! (arcsec) Mean error on RAdeg (raErr)
      real*4        e_DEdeg    (nr__) ! (arcsec) Mean error on DEdeg (decErr)
      real*4        ccPos      (nr__) ! Correlation between e_RAdeg/e_DEdeg (raDecCorr)
      real*8        ObsDate    (nr__) ! (yr) Mean Observation date
      integer*4     Q          (nr__) ! Quality of the observation:
*                                 1=bad 2=acceptable 3=good 4=missing 5=hole (6)
      real*8        zsp        (nr__) ! ?=- Spectroscopic redshift (when SpObjID>0) (7)
      real*4        e_zsp      (nr__) ! ?=- Mean error on zsp (7)
      real*4        umag       (nr__) ! (mag) ?=- Model magnitude in u filter (u) (5)
      real*4        e_umag     (nr__) ! (mag) ?=- Mean error on umag (err_u)
      real*4        gmag       (nr__) ! (mag) ?=- Model magnitude in g filter (g) (5)
      real*4        e_gmag     (nr__) ! (mag) ?=- Mean error on gmag (err_g)
      real*4        rmag       (nr__) ! (mag) ?=- Model magnitude in r filter (r) (5)
      real*4        e_rmag     (nr__) ! (mag) ?=- Mean error on rmag (err_r)
      real*4        imag       (nr__) ! (mag) ?=- Model magnitude in i filter (i) (5)
      real*4        e_imag     (nr__) ! (mag) ?=- Mean error on imag (err_i)
      real*4        zmag       (nr__) ! (mag) ?=- Model magnitude in z filter (z) (5)
      real*4        e_zmag     (nr__) ! (mag) ?=- Mean error on zmag (err_z)
*--------------------------------------------------------------------------------
      integer*8     uFlags     (nr__) ! Detection flags, u band (flags_u)(3)
      integer*4     us         (nr__) ! [0,2] 0=notStar, 1=Star in u band (probPSF_u)
      integer*4     uc         (nr__) ! [0,9] Phototype in u band, 6=Star (type_u) (1)
      real*8        uDate      (nr__) ! (yr) Date of observation in u band (6)
      real*4        u_mag      (nr__) ! (mag) ?=- Model magnitude in u filter (= umag) (5)
      real*4        e_u_mag    (nr__) ! (mag) ?=- Mean error on u'mag (= e_umag)
      real*4        upmag      (nr__) ! (mag) ?=- PSF magnitude in u band (psfMag_u)
      real*4        e_upmag    (nr__) ! (mag) ?=- Mean error on upmag (psfMagErr_u)
      real*4        uPmag_1    (nr__) ! (mag) ?=- Petrosian magnitude in u band (petroMag_u)
      real*4        e_uPmag_1  (nr__) ! (mag) ?=- Mean error on uPmag (petroMagErr_u)
      real*8        uPrad      (nr__) ! (arcsec) ? Petrosian radius in u band (petroRad_u)
      real*8        e_uPrad    (nr__) ! (arcsec) ?=- Mean error in uPrad (petroRadErr_u)
      real*4        uoRA       (nr__) ! (arcsec) ? Offset of u position along RA (offsetRa_u)
      real*4        uoDE       (nr__) ! (arcsec) ? Offset of u position along Dec (offsetDec_u)
      real*8        uisoA      (nr__) ! (arcsec) ?=- Isophotal major diameter in u band (isoA_u)
      real*8        uisoB      (nr__) ! (arcsec) ?=- Isophotal minor diameter in u band (isoB_u)
      real*4        uPA        (nr__) ! (deg) ?=- Position angle of uisoA in u band (isoPhi_u)
*--------------------------------------------------------------------------------
      integer*8     gFlags     (nr__) ! Detection flags, g band (flags_g)(3)
      integer*4     gs         (nr__) ! [0,2] 0=notStar, 1=Star in g band (probPSF_g)
      integer*4     gc         (nr__) ! [0,9] Phototype in g band, 6=Star (type_g) (1)
      real*8        gDate      (nr__) ! (yr) Date of observation in g band (6)
      real*4        g_mag      (nr__) ! (mag) ?=- Model magnitude in g filter (= gmag) (5)
      real*4        e_g_mag    (nr__) ! (mag) ?=- Mean error on g'mag (= e_gmag)
      real*4        gpmag      (nr__) ! (mag) ?=- PSF magnitude in g band (psfMag_g)
      real*4        e_gpmag    (nr__) ! (mag) ?=- Mean error on gpmag (psfMagErr_g)
      real*4        gPmag_1    (nr__) ! (mag) ?=- Petrosian magnitude in g band (petroMag_g)
      real*4        e_gPmag_1  (nr__) ! (mag) ?=- Mean error on  gPmag (petroMagErr_g)
      real*8        gPrad      (nr__) ! (arcsec) ?=- Petrosian radius in g band (petroMagErr_g)
      real*8        e_gPrad    (nr__) ! (arcsec) ?=- Mean error in gPrad (petroMagErr_g)
      real*4        goRA       (nr__) ! (arcsec) ? Offset of g position along RA (offsetRa_g)
      real*4        goDE       (nr__) ! (arcsec) ? Offset of g position along Dec (offsetDec_g)
      real*8        gisoA      (nr__) ! (arcsec) ?=- Isophotal major diameter in g band (isoA_g)
      real*8        gisoB      (nr__) ! (arcsec) ?=- Isophotal minor diameter in g band (isoB_g)
      real*4        gPA        (nr__) ! (deg) ?=- Position angle of gisoA in g band (isoPhi_g)
*--------------------------------------------------------------------------------
      integer*8     rFlags     (nr__) ! Detection flags, r band (flags_r)(3)
      integer*4     rs         (nr__) ! [0,2] 0=notStar, 1=Star in r band (probPSF_r)
      integer*4     rc         (nr__) ! [0,9] Phototype in r band, 6=Star (type_r) (1)
      real*8        rDate      (nr__) ! (yr) Date of observation in r band (6)
      real*4        r_mag      (nr__) ! (mag) ?=- Model magnitude in r filter (= rmag) (5)
      real*4        e_r_mag    (nr__) ! (mag) ?=- Mean error on r'mag (= e_rmag)
      real*4        rpmag      (nr__) ! (mag) ?=- PSF magnitude in r band (psfMag_r)
      real*4        e_rpmag    (nr__) ! (mag) ?=- Mean error on rpmag (psfMagErr_r)
      real*4        rPmag_1    (nr__) ! (mag) ?=- Petrosian magnitude in r band (petroMag_r)
      real*4        e_rPmag_1  (nr__) ! (mag) ?=- Mean error on  rPmag (petroMagErr_r)
      real*8        rPrad      (nr__) ! (arcsec) ? Petrosian radius in r band (petroMagErr_r)
      real*8        e_rPrad    (nr__) ! (arcsec) ?=- Mean error in rPrad (petroMagErr_r)
      real*4        roRA       (nr__) ! (arcsec) ? Offset of r position along RA (offsetRa_r)
      real*4        roDE       (nr__) ! (arcsec) ? Offset of r position along Dec (offsetDec_r)
      real*8        risoA      (nr__) ! (arcsec) ?=- Isophotal major diameter in r band (isoA_r)
      real*8        risoB      (nr__) ! (arcsec) ?=- Isophotal minor diameter in r band (isoB_r)
      real*4        rPA        (nr__) ! (deg) ?=- Position angle of risoA in r band (isoPhi_r)
*--------------------------------------------------------------------------------
      integer*8     iFlags     (nr__) ! Detection flags, i band (flags_i)(3)
      integer*4     is         (nr__) ! [0,2] 0=notStar, 1=Star in i band (probPSF_i)
      integer*4     ic         (nr__) ! [0,9] Phototype in i band, 6=Star (type_i) (1)
      real*8        iDate      (nr__) ! (yr) Date of observation in i band (6)
      real*4        i_mag      (nr__) ! (mag) ?=- Model magnitude in i filter (= imag) (5)
      real*4        e_i_mag    (nr__) ! (mag) ?=- Mean error on i'mag (= e_imag)
      real*4        ipmag      (nr__) ! (mag) ?=- PSF magnitude in i band (psfMag_i)
      real*4        e_ipmag    (nr__) ! (mag) ?=- Mean error on ipmag (psfMagErr_i)
      real*4        iPmag_1    (nr__) ! (mag) ?=- Petrosian magnitude in i band (petroMag_i)
      real*4        e_iPmag_1  (nr__) ! (mag) ?=- Mean error on  iPmag (petroMagErr_i)
      real*8        iPrad      (nr__) ! (arcsec) ? Petrosian radius in i band (petroMagErr_i)
      real*8        e_iPrad    (nr__) ! (arcsec) ?=- Mean error in iPrad (petroMagErr_i)
      real*4        ioRA       (nr__) ! (arcsec) ? Offset of i position along RA (offsetRa_i)
      real*4        ioDE       (nr__) ! (arcsec) ? Offset of i position along Dec (offsetDec_i)
      real*8        iisoA      (nr__) ! (arcsec) ?=- Isophotal major diameter in i band (isoA_i)
      real*8        iisoB      (nr__) ! (arcsec) ?=- Isophotal minor diameter in i band (isoB_i)
      real*4        iPA        (nr__) ! (deg) ?=- Position angle of iisoA in i band (isoPhi_i)
*--------------------------------------------------------------------------------
      integer*8     zFlags     (nr__) ! Detection flags, z band (flags_z)(3)
      integer*4     zs         (nr__) ! [0,2] 0=notStar, 1=Star in z band (probPSF_z)
      integer*4     zc         (nr__) ! [0,9] Phototype in z band, 6=Star (type_z) (1)
      real*8        zDate      (nr__) ! (yr) Date of observation in z band (6)
      real*4        z_mag      (nr__) ! (mag) ?=- Model magnitude in z filter (= zmag) (5)
      real*4        e_z_mag    (nr__) ! (mag) ?=- Mean error on z'mag (= e_zmag)
      real*4        zpmag      (nr__) ! (mag) ?=- PSF magnitude in z band (psfMag_z)
      real*4        e_zpmag    (nr__) ! (mag) ?=- Mean error on zpmag (psfMagErr_z)
      real*4        zPmag_1    (nr__) ! (mag) ?=- Petrosian magnitude in z band (petroMag_z)
      real*4        e_zPmag_1  (nr__) ! (mag) ?=- Mean error on  zPmag (petroMagErr_z)
      real*8        zPrad      (nr__) ! (arcsec) ?=- Petrosian radius in z band (petroMagErr_z)
      real*8        e_zPrad    (nr__) ! (arcsec) ?=- Mean error in zPrad (petroMagErr_z)
      real*4        zoRA       (nr__) ! (arcsec) ? Offset of z position along RA (offsetRa_z)
      real*4        zoDE       (nr__) ! (arcsec) ? Offset of z position along Dec (offsetDec_z)
      real*8        zisoA      (nr__) ! (arcsec) ?=- Isophotal major diameter in z band (isoA_z)
      real*8        zisoB      (nr__) ! (arcsec) ?=- Isophotal minor diameter in z band (isoB_z)
      real*4        zPA        (nr__) ! (deg) ?=- Position angle of zisoA in z band (isoPhi_z)
*--------------------------------------------------------------------------------
      integer*4     pmRA       (nr__) ! (mas/yr) ?=- Proper motion along RightAscension (pmRa) (8)
      integer*4     e_pmRA     (nr__) ! (mas/yr) ?=- Mean error on pmRA (pmRaErr) (8)
      integer*4     pmDE       (nr__) ! (mas/yr) ?=- Proper motion along Declination (pmDec) (8)
      integer*4     e_pmDE     (nr__) ! (mas/yr) ?=- Mean error on pmDE (pmDecErr) (8)
      real*4        sigRA      (nr__) ! (arcsec) ?=- RMS residual of proper motion fit in RA (8)
      real*4        sigDE      (nr__) ! (arcsec) ?=- RMS residual of proper motion fit in Dec (8)
      integer*4     M          (nr__) ! Number of USNO-B objects matched
*                                   within 1arcsec (match) (8)
      integer*4     N          (nr__) ! Number of detections used in the pm fit,
*                                   including SDSS (nFit) (8)
      real*4        g_O        (nr__) ! (mag) ?=- Magnitude from O plate recalibrated to g (8)
      real*4        r_E        (nr__) ! (mag) ?=- Magnitude from E plate recalibrated to r (8)
      real*4        g_J        (nr__) ! (mag) ?=- Magnitude from J plate recalibrated to g (8)
      real*4        r_F        (nr__) ! (mag) ?=- Magnitude from F plate recalibrated to r (8)
      real*4        i_N        (nr__) ! (mag) ?=- Magnitude from N plate recalibrated to i (8)
*Note (1): the type (class) is numbered as follows:
*      0 = Unknown: Object type is not known.
*      1 = Cosmic-ray track (not used).
*      2 = Defect (not used)
*      3 = Galaxy: An extended object composed of many stars and other matter.
*      4 = Ghost: Object created by reflected or refracted light. (not used)
*      5 = KnownObject: Object came from some other catalog (not yet used)
*      6 = Star: A a self-luminous gaseous celestial body.
*      7 = Trail: A satellite or asteroid or meteor trail. (not yet used)
*      8 = Sky: Blank sky spectrogram (no objects in this arcsecond area).
*      9 = NotAType
*Note (2): the SDSS identifier is composed of the skyVersion number,
*      run, rerun, camcol, field and object number. The SDSS-ID
*      is written run.cam.field.obj (4 numbers and 3 separator dots).
*      The objID is also combined from these numbers (the <<n operator
*      represent the left shift of n bits, i.e. a multiplication by 2^n^):
*      objID = skyVersion<<59 + rerun<<48 + run<<32
*            + camcol<<29 + field<<16 + obj
*Note (3): flags written in hexadecimal, full description available at
*      http://cas.sdss.org/astro/en/help/browser/enum.asp?n=PhotoFlags
* ------------------------------------------------------------------------------
* 0000000000000001 = CANONICAL_CENTER   Measurements used the center in r*
* 0000000000000002 = BRIGHT             Object detected in bright object-finding
* 0000000000000004 = EDGE               Object is too close to edge of frame
* 0000000000000008 = BLENDED            Multiple peaks detected
* 0000000000000010 = CHILD              Product of deblending a BLENDED object.
* 0000000000000020 = PEAKCENTER         Position of peak pixel rather than ML
* 0000000000000040 = NODEBLEND          No deblending attempted on BLENDED object
* 0000000000000080 = NOPROFILE          Radial profile could not be estimated
* 0000000000000100 = NOPETRO            No valid Petrosian radius found
* 0000000000000200 = MANYPETRO          More than one Petrosian radius found.
* 0000000000000400 = NOPETRO_BIG        Petrosian radius beyond radial profile.
* 0000000000000800 = DEBLEND_TOO_MANY_PEAKS More than 25 peaks in this object
* 0000000000001000 = COSMIC_RAY         Contains a pixel part of a cosmic ray.
* 0000000000002000 = MANYR50            More than one 50% light radius.
* 0000000000004000 = MANYR90            More than one 90% light radius.
* 0000000000008000 = BAD_RADIAL         Some points in radial profile S/N<0
* 0000000000010000 = INCOMPLETE_PROFILE Petrosian radius intersects frame edge
* 0000000000020000 = INTERP             Pixel(s) determined by interpolation.
* 0000000000040000 = SATURATED          Saturated pixel(s)
* 0000000000080000 = NOTCHECKED         Not checked for local peaks
* 0000000000100000 = SUBTRACTED         BRIGHT object, wings subtracted
* 0000000000200000 = NOSTOKES           No measured Stokes params
* 0000000000400000 = BADSKY             Sky level so bad that highest pixel <0.
* 0000000000800000 = PETROFAINT         Petrosian radius(es) rejected for low SB
* 0000000001000000 = TOO_LARGE          Object too large to measure its profile
* 0000000002000000 = DEBLENDED_AS_PSF   Deblender treated obj as PSF
* 0000000004000000 = DEBLEND_PRUNED     At least one child was removed
* 0000000008000000 = ELLIPFAINT         Object center fainter than the isophote
* 0000000010000000 = BINNED1            Object detected in 1x1 binned image
* 0000000020000000 = BINNED2            Object detected in 2x2 binned image
* 0000000040000000 = BINNED4            Object detected in 4x4 binned image
* 0000000080000000 = MOVED              Possibly moving object
* 0000000100000000 = DEBLENDED_AS_MOVING A MOVED object treated as moving.
* 0000000200000000 = NODEBLEND_MOVING    A MOVED object not treated as moving.
* 0000000400000000 = TOO_FEW_DETECTIONS Too few detections to deblend as moving.
* 0000000800000000 = BAD_MOVING_FIT     Moving fit too poor to be believable.
* 0000001000000000 = STATIONARY         Object consistent with being stationary.
* 0000002000000000 = PEAKS_TOO_CLOSE    Some peaks merged into a single peak.
* 0000004000000000 = MEDIAN_CENTER      Center given is of median-smoothed image.
* 0000008000000000 = LOCAL_EDGE         Center too close to an edge.
* 0000010000000000 = BAD_COUNTS_ERROR   Too few good pixels, error underestimated
* 0000020000000000 = BAD_MOVING_FIT_CHILD Moving child's velocity fit too poor
* 0000040000000000 = DEBLEND_UNASSIGNED_FLUX  After deblending flux not assigned
* 0000080000000000 = SATUR_CENTER        Center is close to saturated pixel(s)
* 0000100000000000 = INTERP_CENTER       Center is close to interpolated pixel(s)
* 0000200000000000 = DEBLENDED_AT_EDGE   Object close to edge was deblended
* 0000400000000000 = DEBLEND_NOPEAK      No detected peak within this child
* 0000800000000000 = PSF_FLUX_INTERP     PSF flux from interpolated pixels > 20%
* 0001000000000000 = TOO_FEW_GOOD_DETECTIONS Too few good detections
* 0002000000000000 = CENTER_OFF_AIMAGE   At least one peak's center lay off image
* 0004000000000000 = DEBLEND_DEGENERATE  Identical candidate children, 1 retained
* 0008000000000000 = BRIGHTEST_GALAXY_CHILD Brightest member classified as galaxy
* 0010000000000000 = CANONICAL_BAND       Band chosen as 'Canonical', generally r
* 0020000000000000 = AMOMENT_FAINT        Object too faint to measure moments
* 0040000000000000 = AMOMENT_SHIFT        Centroid shift too large
* 0080000000000000 = AMOMENT_MAXITER      Maximum number of iterations exceeded
* 0100000000000000 = MAYBE_CR             Object could actually be a cosmic ray
* 0200000000000000 = MAYBE_EGHOST         Object could actually be a ghost
* 0400000000000000 = NOTCHECKED_CENTER    Object center in a region not searched
* 0800000000000000 = OBJECT2_HAS_SATUR_DN Trails included in estimated flux.
* 1000000000000044 = OBJECT2_DEBLEND_PEEPHOLE Deblend modified by peephole
* 2000000000000044 = GROWN_MERGED         Growing led to a merger
* 4000000000000044 = HAS_CENTER           Object has a canonical center
* 8000000000000044 = RESERVED             Not used
* ------------------------------------------------------------------------------
*Note (4): status flags written in hexadecimal, full description available at
* http://cas.sdss.org/astro/en/help/browser/enum.asp?n=PhotoStatus
* ------------------------------------------------------------------------------
* 00000001 = SET         Object status has been set in reference to its own run
* 00000002 = GOOD        Object is good -- absence implies bad.
* 00000004 = DUPLICATE   Duplicate detections in an adjacent field
* 00000010 = OK_RUN      Object is usable
* 00000020 = RESOLVED    Object has been resolved against other runs.
* 00000040 = PSEGMENT    Object Belongs to a PRIMARY segment.
* 00000100 = FIRST_FIELD Object belongs to the first field in its segment.
* 00000200 = OK_SCANLINE Object lies within valid nu range for its scanline.
* 00000400 = OK_STRIPE   Object lies within valid eta range for its stripe.
* 00001000 = SECONDARY   This is a secondary survey object.
* 00002000 = PRIMARY     This is a primary survey object.
* 00004000 = TARGET      This is a spectroscopic target.
* ------------------------------------------------------------------------------
*Note (5):
*     The response curves of the SDSS filters (u g r i z) can be found on
*     the SDSS pages: http://www.sdss.org/dr5/instruments/imager/index.html
*     The central wavelength and FWHM are:
*     -----------------------------------------------
*      (nm)      u'      g'      r'      i'      z'
*     -----------------------------------------------
*     lambda   354.3    477.0   623.1   762.5   913.4
*     FWHM      56.7    138.7   137.3   152.6    95.0
*     -----------------------------------------------
*Note (6): column from the "Fields" table.
*     Dates of the observations for each colour, and their average.
*Note (7): column from the "SpecObjAll" table (see also Cat. III/255).
*     The "SpObjID" is composed of plate + mjd + fiber with formula
*     (the <<n operator represent the left shift of n bits, i.e. a
*     multiplication by 2^n^):
*       SpObjID = (plate<<48) + (mjd<<32) + (fiber<<22)
*Note (8): column from the "ProperMotions" table.

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

C  Loading file 'sdss7.sam'	! *Sample output of the SDSS photometric catalog

C  Format for file interpretation

    1 format(
     +  I1,A1,I1,1X,A19,A1,1X,A1,1X,A16,I18,1X,I18,1X,I18,I3,1X,I20,
     +  1X,A8,2X,F10.6,F10.6,1X,F5.3,1X,F5.3,1X,F5.2,1X,F9.4,1X,I1,1X,
     +  F7.5,1X,F6.5,1X,F6.3,1X,F5.3,1X,F6.3,1X,F5.3,1X,F6.3,1X,F5.3,
     +  1X,F6.3,1X,F5.3,1X,F6.3,1X,F5.3,1X,I20,1X,I1,1X,I1,1X,F9.4,1X,
     +  F6.3,1X,F6.3,1X,F6.3,1X,F6.3,1X,F6.3,1X,F6.3,1X,F7.3,1X,F7.3,
     +  2X,F6.2,1X,F6.2,1X,F7.3,1X,F7.3,1X,F5.1,1X,I20,1X,I1,1X,I1,1X,
     +  F9.4,1X,F6.3,1X,F6.3,1X,F6.3,1X,F6.3,1X,F6.3,1X,F6.3,1X,F7.3,
     +  1X,F7.3,2X,F6.2,1X,F6.2,1X,F7.3,1X,F7.3,1X,F5.1,1X,I20,1X,I1,
     +  1X,I1,1X,F9.4,1X,F6.3,1X,F6.3,1X,F6.3,1X,F6.3,1X,F6.3,1X,F6.3,
     +  1X,F7.3,1X,F7.3,2X,F6.2,1X,F6.2,1X,F7.3,1X,F7.3,1X,F5.1,1X,
     +  I20,1X,I1,1X,I1,1X,F9.4,1X,F6.3,1X,F6.3,1X,F6.3,1X,F6.3,1X,
     +  F6.3,1X,F6.3,1X,F7.3,1X,F7.3,2X,F6.2,1X,F6.2,1X,F7.3,1X,F7.3,
     +  1X,F5.1,1X,I20,1X,I1,1X,I1,1X,F9.4,1X,F6.3,1X,F6.3,1X,F6.3,1X,
     +  F6.3,1X,F6.3,1X,F6.3,1X,F7.3,1X,F7.3,2X,F6.2,1X,F6.2,1X,F7.3,
     +  1X,F7.3,1X,F5.1,1X,I6,1X,I3,1X,I6,1X,I3,1X,F5.3,1X,F5.3,1X,I1,
     +  1X,I1,1X,F4.1,1X,F4.1,1X,F4.1,1X,F4.1,1X,F4.1)

C  Effective file loading

      open(unit=1,status='old',file=
     +'sdss7.sam')
      write(6,*) '....Loading file: sdss7.sam'
      do i__=1,100
        read(1,'(A978)')ar__
        read(ar__,1)
     +  mode(i__),q_mode(i__),cl(i__),SDSS(i__),m_SDSS(i__),R(i__),
     +  SDSS_ID(i__),objID(i__),SpObjID(i__),parentID(i__),rerun(i__),
     +  flags(i__),Status(i__),RAdeg(i__),DEdeg(i__),e_RAdeg(i__),
     +  e_DEdeg(i__),ccPos(i__),ObsDate(i__),Q(i__),zsp(i__),
     +  e_zsp(i__),umag(i__),e_umag(i__),gmag(i__),e_gmag(i__),
     +  rmag(i__),e_rmag(i__),imag(i__),e_imag(i__),zmag(i__),
     +  e_zmag(i__),uFlags(i__),us(i__),uc(i__),uDate(i__),u_mag(i__),
     +  e_u_mag(i__),upmag(i__),e_upmag(i__),uPmag_1(i__),
     +  e_uPmag_1(i__),uPrad(i__),e_uPrad(i__),uoRA(i__),uoDE(i__),
     +  uisoA(i__),uisoB(i__),uPA(i__),gFlags(i__),gs(i__),gc(i__),
     +  gDate(i__),g_mag(i__),e_g_mag(i__),gpmag(i__),e_gpmag(i__),
     +  gPmag_1(i__),e_gPmag_1(i__),gPrad(i__),e_gPrad(i__),goRA(i__),
     +  goDE(i__),gisoA(i__),gisoB(i__),gPA(i__),rFlags(i__),rs(i__),
     +  rc(i__),rDate(i__),r_mag(i__),e_r_mag(i__),rpmag(i__),
     +  e_rpmag(i__),rPmag_1(i__),e_rPmag_1(i__),rPrad(i__),
     +  e_rPrad(i__),roRA(i__),roDE(i__),risoA(i__),risoB(i__),
     +  rPA(i__),iFlags(i__),is(i__),ic(i__),iDate(i__),i_mag(i__),
     +  e_i_mag(i__),ipmag(i__),e_ipmag(i__),iPmag_1(i__),
     +  e_iPmag_1(i__),iPrad(i__),e_iPrad(i__),ioRA(i__),ioDE(i__),
     +  iisoA(i__),iisoB(i__),iPA(i__),zFlags(i__),zs(i__),zc(i__),
     +  zDate(i__),z_mag(i__),e_z_mag(i__),zpmag(i__),e_zpmag(i__),
     +  zPmag_1(i__),e_zPmag_1(i__),zPrad(i__),e_zPrad(i__),zoRA(i__),
     +  zoDE(i__),zisoA(i__),zisoB(i__),zPA(i__),pmRA(i__),
     +  e_pmRA(i__),pmDE(i__),e_pmDE(i__),sigRA(i__),sigDE(i__),
     +  M(i__),N(i__),g_O(i__),r_E(i__),g_J(i__),r_F(i__),i_N(i__)
        if (idig(ar__(186:192)).EQ.0) zsp(i__) =  rNULL__
        if (idig(ar__(194:199)).EQ.0) e_zsp(i__) =  rNULL__
        if (idig(ar__(201:206)).EQ.0) umag(i__) =  rNULL__
        if (idig(ar__(208:212)).EQ.0) e_umag(i__) =  rNULL__
        if (idig(ar__(214:219)).EQ.0) gmag(i__) =  rNULL__
        if (idig(ar__(221:225)).EQ.0) e_gmag(i__) =  rNULL__
        if (idig(ar__(227:232)).EQ.0) rmag(i__) =  rNULL__
        if (idig(ar__(234:238)).EQ.0) e_rmag(i__) =  rNULL__
        if (idig(ar__(240:245)).EQ.0) imag(i__) =  rNULL__
        if (idig(ar__(247:251)).EQ.0) e_imag(i__) =  rNULL__
        if (idig(ar__(253:258)).EQ.0) zmag(i__) =  rNULL__
        if (idig(ar__(260:264)).EQ.0) e_zmag(i__) =  rNULL__
        if (idig(ar__(301:306)).EQ.0) u_mag(i__) =  rNULL__
        if (idig(ar__(308:313)).EQ.0) e_u_mag(i__) =  rNULL__
        if (idig(ar__(315:320)).EQ.0) upmag(i__) =  rNULL__
        if (idig(ar__(322:327)).EQ.0) e_upmag(i__) =  rNULL__
        if (idig(ar__(329:334)).EQ.0) uPmag_1(i__) =  rNULL__
        if (idig(ar__(336:341)).EQ.0) e_uPmag_1(i__) =  rNULL__
        if(ar__(343:349) .EQ. '') uPrad(i__) = rNULL__
        if (idig(ar__(351:357)).EQ.0) e_uPrad(i__) =  rNULL__
        if(ar__(360:365) .EQ. '') uoRA(i__) = rNULL__
        if(ar__(367:372) .EQ. '') uoDE(i__) = rNULL__
        if (idig(ar__(374:380)).EQ.0) uisoA(i__) =  rNULL__
        if (idig(ar__(382:388)).EQ.0) uisoB(i__) =  rNULL__
        if (idig(ar__(390:394)).EQ.0) uPA(i__) =  rNULL__
        if (idig(ar__(431:436)).EQ.0) g_mag(i__) =  rNULL__
        if (idig(ar__(438:443)).EQ.0) e_g_mag(i__) =  rNULL__
        if (idig(ar__(445:450)).EQ.0) gpmag(i__) =  rNULL__
        if (idig(ar__(452:457)).EQ.0) e_gpmag(i__) =  rNULL__
        if (idig(ar__(459:464)).EQ.0) gPmag_1(i__) =  rNULL__
        if (idig(ar__(466:471)).EQ.0) e_gPmag_1(i__) =  rNULL__
        if (idig(ar__(473:479)).EQ.0) gPrad(i__) =  rNULL__
        if (idig(ar__(481:487)).EQ.0) e_gPrad(i__) =  rNULL__
        if(ar__(490:495) .EQ. '') goRA(i__) = rNULL__
        if(ar__(497:502) .EQ. '') goDE(i__) = rNULL__
        if (idig(ar__(504:510)).EQ.0) gisoA(i__) =  rNULL__
        if (idig(ar__(512:518)).EQ.0) gisoB(i__) =  rNULL__
        if (idig(ar__(520:524)).EQ.0) gPA(i__) =  rNULL__
        if (idig(ar__(561:566)).EQ.0) r_mag(i__) =  rNULL__
        if (idig(ar__(568:573)).EQ.0) e_r_mag(i__) =  rNULL__
        if (idig(ar__(575:580)).EQ.0) rpmag(i__) =  rNULL__
        if (idig(ar__(582:587)).EQ.0) e_rpmag(i__) =  rNULL__
        if (idig(ar__(589:594)).EQ.0) rPmag_1(i__) =  rNULL__
        if (idig(ar__(596:601)).EQ.0) e_rPmag_1(i__) =  rNULL__
        if(ar__(603:609) .EQ. '') rPrad(i__) = rNULL__
        if (idig(ar__(611:617)).EQ.0) e_rPrad(i__) =  rNULL__
        if(ar__(620:625) .EQ. '') roRA(i__) = rNULL__
        if(ar__(627:632) .EQ. '') roDE(i__) = rNULL__
        if (idig(ar__(634:640)).EQ.0) risoA(i__) =  rNULL__
        if (idig(ar__(642:648)).EQ.0) risoB(i__) =  rNULL__
        if (idig(ar__(650:654)).EQ.0) rPA(i__) =  rNULL__
        if (idig(ar__(691:696)).EQ.0) i_mag(i__) =  rNULL__
        if (idig(ar__(698:703)).EQ.0) e_i_mag(i__) =  rNULL__
        if (idig(ar__(705:710)).EQ.0) ipmag(i__) =  rNULL__
        if (idig(ar__(712:717)).EQ.0) e_ipmag(i__) =  rNULL__
        if (idig(ar__(719:724)).EQ.0) iPmag_1(i__) =  rNULL__
        if (idig(ar__(726:731)).EQ.0) e_iPmag_1(i__) =  rNULL__
        if(ar__(733:739) .EQ. '') iPrad(i__) = rNULL__
        if (idig(ar__(741:747)).EQ.0) e_iPrad(i__) =  rNULL__
        if(ar__(750:755) .EQ. '') ioRA(i__) = rNULL__
        if(ar__(757:762) .EQ. '') ioDE(i__) = rNULL__
        if (idig(ar__(764:770)).EQ.0) iisoA(i__) =  rNULL__
        if (idig(ar__(772:778)).EQ.0) iisoB(i__) =  rNULL__
        if (idig(ar__(780:784)).EQ.0) iPA(i__) =  rNULL__
        if (idig(ar__(821:826)).EQ.0) z_mag(i__) =  rNULL__
        if (idig(ar__(828:833)).EQ.0) e_z_mag(i__) =  rNULL__
        if (idig(ar__(835:840)).EQ.0) zpmag(i__) =  rNULL__
        if (idig(ar__(842:847)).EQ.0) e_zpmag(i__) =  rNULL__
        if (idig(ar__(849:854)).EQ.0) zPmag_1(i__) =  rNULL__
        if (idig(ar__(856:861)).EQ.0) e_zPmag_1(i__) =  rNULL__
        if (idig(ar__(863:869)).EQ.0) zPrad(i__) =  rNULL__
        if (idig(ar__(871:877)).EQ.0) e_zPrad(i__) =  rNULL__
        if(ar__(880:885) .EQ. '') zoRA(i__) = rNULL__
        if(ar__(887:892) .EQ. '') zoDE(i__) = rNULL__
        if (idig(ar__(894:900)).EQ.0) zisoA(i__) =  rNULL__
        if (idig(ar__(902:908)).EQ.0) zisoB(i__) =  rNULL__
        if (idig(ar__(910:914)).EQ.0) zPA(i__) =  rNULL__
        if (pmRA(i__) .EQ. 45) pmRA(i__) =  iNULL__
        if (e_pmRA(i__) .EQ. 45) e_pmRA(i__) =  iNULL__
        if (pmDE(i__) .EQ. 45) pmDE(i__) =  iNULL__
        if (e_pmDE(i__) .EQ. 45) e_pmDE(i__) =  iNULL__
        if (idig(ar__(938:942)).EQ.0) sigRA(i__) =  rNULL__
        if (idig(ar__(944:948)).EQ.0) sigDE(i__) =  rNULL__
        if (idig(ar__(954:957)).EQ.0) g_O(i__) =  rNULL__
        if (idig(ar__(959:962)).EQ.0) r_E(i__) =  rNULL__
        if (idig(ar__(964:967)).EQ.0) g_J(i__) =  rNULL__
        if (idig(ar__(969:972)).EQ.0) r_F(i__) =  rNULL__
        if (idig(ar__(974:977)).EQ.0) i_N(i__) =  rNULL__
c    ..............Just test output...........
        write(6,1)
     +  mode(i__),q_mode(i__),cl(i__),SDSS(i__),m_SDSS(i__),R(i__),
     +  SDSS_ID(i__),objID(i__),SpObjID(i__),parentID(i__),rerun(i__),
     +  flags(i__),Status(i__),RAdeg(i__),DEdeg(i__),e_RAdeg(i__),
     +  e_DEdeg(i__),ccPos(i__),ObsDate(i__),Q(i__),zsp(i__),
     +  e_zsp(i__),umag(i__),e_umag(i__),gmag(i__),e_gmag(i__),
     +  rmag(i__),e_rmag(i__),imag(i__),e_imag(i__),zmag(i__),
     +  e_zmag(i__),uFlags(i__),us(i__),uc(i__),uDate(i__),u_mag(i__),
     +  e_u_mag(i__),upmag(i__),e_upmag(i__),uPmag_1(i__),
     +  e_uPmag_1(i__),uPrad(i__),e_uPrad(i__),uoRA(i__),uoDE(i__),
     +  uisoA(i__),uisoB(i__),uPA(i__),gFlags(i__),gs(i__),gc(i__),
     +  gDate(i__),g_mag(i__),e_g_mag(i__),gpmag(i__),e_gpmag(i__),
     +  gPmag_1(i__),e_gPmag_1(i__),gPrad(i__),e_gPrad(i__),goRA(i__),
     +  goDE(i__),gisoA(i__),gisoB(i__),gPA(i__),rFlags(i__),rs(i__),
     +  rc(i__),rDate(i__),r_mag(i__),e_r_mag(i__),rpmag(i__),
     +  e_rpmag(i__),rPmag_1(i__),e_rPmag_1(i__),rPrad(i__),
     +  e_rPrad(i__),roRA(i__),roDE(i__),risoA(i__),risoB(i__),
     +  rPA(i__),iFlags(i__),is(i__),ic(i__),iDate(i__),i_mag(i__),
     +  e_i_mag(i__),ipmag(i__),e_ipmag(i__),iPmag_1(i__),
     +  e_iPmag_1(i__),iPrad(i__),e_iPrad(i__),ioRA(i__),ioDE(i__),
     +  iisoA(i__),iisoB(i__),iPA(i__),zFlags(i__),zs(i__),zc(i__),
     +  zDate(i__),z_mag(i__),e_z_mag(i__),zpmag(i__),e_zpmag(i__),
     +  zPmag_1(i__),e_zPmag_1(i__),zPrad(i__),e_zPrad(i__),zoRA(i__),
     +  zoDE(i__),zisoA(i__),zisoB(i__),zPA(i__),pmRA(i__),
     +  e_pmRA(i__),pmDE(i__),e_pmDE(i__),sigRA(i__),sigDE(i__),
     +  M(i__),N(i__),g_O(i__),r_E(i__),g_J(i__),r_F(i__),i_N(i__)
c    .......End.of.Just test output...........
      end do
      close(1)

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

C Locate position of first digit in string; or return 0
      integer function idig(c)
      character*(*) c
      character*1 c1
      integer lc,i
      lc=len(c)
      idig=0
      do i=1,lc
         if(c(i:i).ne.' ') go to 1
      end do
    1 if(i.gt.lc) return
      c1=c(i:i)
      if(c1.eq.'.'.or.c1.eq.'-'.or.c1.eq.'+') i=i+1
      if(i.gt.lc) return
      c1=c(i:i)
      if(c1.ge.'0'.and.c1.le.'9') idig=i
      return
      end