Conversion of standardized ReadMe file for
file /./ftp/cats/II/378 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-Oct-11
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/378 XMM-OM Serendipitous Source Survey Catalogue (XMM-SUSS6.0) (Page+, 2023)
*================================================================================
*XMM-OM Serendipitous Source Survey Catalogue (XMM-SUSS6)
* Page M.J., Brindle C., Talavera A., Still M., Rosen S.R., Yershov V.N.,
* Ziaeepour H., Mason K.O., Cropper M.S., Breeveld A.A., Loiseau N.,
* Mignani R., Smith A., Murdin P.
* <Mon. Not. R. Astron. Soc. 426, 903 (2012)>
* =2012MNRAS.426..903P
* =2023yCat.2378....0P
C=============================================================================
C Internal variables
integer*4 i__
c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C Declarations for 'xmmom6s.dat' ! The XMM-Newton Optical Monitor Serendipitous
Source Survey Catalogue, Version 6.0
(XMM-SUSS6.0) "slim" version
integer*4 nr__
parameter (nr__=9920390) ! Number of records
character*582 ar__ ! Full-size record
C J2000 position composed of: RAdeg DEdeg
character*17 XMMOM (nr__) ! Source name (JHHMMSS.s+DDMMSSa)
* (IAUNAME) (1)
integer*4 IDsum (nr__) ! Index in the SUMMARY table for the source
* ObsiD (N_SUMMARY)
character*10 ObsID (nr__) ! Source OBSID number (OBSID)
integer*4 ID (nr__) ! Source number in this catalogue (SRCNUM)
real*8 UVW2r (nr__) ! (arcsec) ?=- Distance to the nearest source,
* UVW2 filter (UVW2_SRCDIST)
real*8 UVM2r (nr__) ! (arcsec) ?=- Distance to the nearest source,
* UVM2 filter (UVM2_SRCDIST)
real*8 UVM1r (nr__) ! (arcsec) ?=- Distance to the nearest source,
* UVW1 filter (UVW1_SRCDIST)
real*8 Ur (nr__) ! (arcsec) ?=- Distance to the nearest source,
* U filter (U_SRCDIST)
real*8 Br (nr__) ! (arcsec) ?=- Distance to the nearest source,
* B filter (B_SRCDIST)
real*8 Vr (nr__) ! (arcsec) ?=- Distance to the nearest source,
* V filter (V_SRCDIST)
real*8 RAdeg (nr__) ! (deg) Source Right Ascension (J2000) (RA)
real*8 DEdeg (nr__) ! (deg) Source Declination (J2000) (DEC)
real*8 ePos (nr__) ! (arcsec) Source positional error (POSERR)
integer*4 Nobs (nr__) ! Number of observation IDs for this source
* (N_OBSID)
real*8 sig_UVW2 (nr__) ! ?=- Significance in UVW2 (UVW2_SIGNIF)
real*8 sig_UVM2 (nr__) ! ?=- Significance in UVM2 (UVM2_SIGNIF)
real*8 sig_UVW1 (nr__) ! ?=- Significance in UVW1 (UVW1_SIGNIF)
real*8 sig_U (nr__) ! ?=- Significance in U source (U_SIGNIF)
real*8 sig_B (nr__) ! ?=- Significance in B (B_SIGNIF)
real*8 sig_V (nr__) ! ?=- Significance in V (V_SIGNIF)
real*4 F_UVW2 (nr__) ! (cW/m2/nm) ?=- Source flux in XMM-OM/UVW2 filter, in
* erg/cm^2^/s/{AA} (UVW2_AB_FLUX)
real*4 e_F_UVW2 (nr__) ! (cW/m2/nm) ?=- Error in F(UVW2) (UVW2_AB_FLUX_ERR)
real*4 F_UVM2 (nr__) ! (cW/m2/nm) ?=- Source flux in XMM-OM/UVM2 filter, in
* erg/cm^2^/s/{AA} (UVM2_AB_FLUX)
real*4 e_F_UVM2 (nr__) ! (cW/m2/nm) ?=- Error in F(UVM2) (UVM2_AB_FLUX_ERR)
real*4 F_UVW1 (nr__) ! (cW/m2/nm) ?=- Source flux in XMM-OM/UVW1 filter, in
* erg/cm^2^/s/{AA} (UVW1_AB_FLUX)
real*4 e_F_UVW1 (nr__) ! (cW/m2/nm) ?=- Error in F(UVW1) (UVW1_AB_FLUX_ERR)
real*4 F_U (nr__) ! (cW/m2/nm) ?=- Source flux in XMM-OM/U filter, in
* erg/cm^2^/s/{AA} (U_AB_FLUX)
real*4 e_F_U (nr__) ! (cW/m2/nm) ?=- Error in F(U) (U_AB_FLUX_ERR)
real*4 F_B (nr__) ! (cW/m2/nm) ?=- Source flux in XMM-OM/B filter, in
* erg/cm^2^/s/{AA} (B_AB_FLUX)
real*4 e_F_B (nr__) ! (cW/m2/nm) ?=- Error in F(B) (B_AB_FLUX_ERR)
real*4 F_V (nr__) ! (cW/m2/nm) ?=- Source flux in XMM-OM/V filter, in
* erg/cm^2^/s/{AA} (V_AB_FLUX)
real*4 e_F_V (nr__) ! (cW/m2/nm) ?=- Error in F(V) (V_AB_FLUX_ERR)
real*8 UVW2mAB (nr__) ! (mag) ?=- Source AB magnitude in XMM-OT/UVW2
* filter (UVW2_AB_MAG)
real*8 e_UVW2mAB (nr__) ! (mag) ?=- Error on UVW2mAB (UVW2_AB_MAG_ERR)
real*8 UVM2mAB (nr__) ! (mag) ?=- Source AB magnitude in XMM-OT/UVM2
* filter (UVM2_AB_MAG)
real*8 e_UVM2mAB (nr__) ! (mag) ?=- Error on UVM2mAB (UVM2_AB_MAG_ERR)
real*8 UVW1mAB (nr__) ! (mag) ?=- Source AB magnitude in XMM-OT/UVW1
* filter (UVW1_AB_MAG)
real*8 e_UVW1mAB (nr__) ! (mag) ?=- Error on UVW1mAB (UVW1_AB_MAG_ERR)
real*8 UmAB (nr__) ! (mag) ?=- Source AB magnitude in XMM-OT/U
* (U_AB_MAG)
real*8 e_UmAB (nr__) ! (mag) ?=- Error on UmAB (U_AB_MAG_ERR)
real*8 BmAB (nr__) ! (mag) ?=- Source AB magnitude in XMM-OT/B
* (B_AB_MAG)
real*8 e_BmAB (nr__) ! (mag) ?=- Error on BmAB (B_AB_MAG_ERR)
real*8 VmAB (nr__) ! (mag) ?=- Source AB magnitude in XMM-OT/V
* (V_AB_MAG)
real*8 e_VmAB (nr__) ! (mag) ?=- Error on VmAB (V_AB_MAG_ERR)
character*13 q_UVW2 (nr__) ! [TF] Source quality flag string,
* filter UVW2 (UVW2_QUALITY_FLAG_ST) (2)
character*13 q_UVM2 (nr__) ! [TF] Source quality flag string,
* filter UVM2 (UVM2_QUALITY_FLAG_ST) (2)
character*13 q_UVW1 (nr__) ! [TF] Source quality flag string,
* filter UVW1 (UVW1_QUALITY_FLAG_ST) (2)
character*13 q_U (nr__) ! [TF] Source quality flag string, filter U
* (U_QUALITY_FLAG_ST) (2)
character*13 q_B (nr__) ! [TF] Source quality flag string, filter B
* (B_QUALITY_FLAG_ST) (2)
character*13 q_V (nr__) ! [TF] Source quality flag string, filter V
* (V_QUALITY_FLAG_ST) (2)
integer*4 xUVW2 (nr__) ! [0/1]? Source extended flag in filter UVW2
* (UVW2_EXTENDED_FLAG) (3)
integer*4 xUVM2 (nr__) ! [0/1]? Source extended flag in filter UVM2
* (UVM2_EXTENDED_FLAG) (3)
integer*4 xUVW1 (nr__) ! [0/1]? Source extended flag in filter UVW1
* (UVW1_EXTENDED_FLAG) (3)
integer*4 xU (nr__) ! [0/1]? Source extended flag in filter U
* (U_EXTENDED_FLAG) (3)
integer*4 xB (nr__) ! [0/1]? Source extended flag in filter B
* (B_EXTENDED_FLAG) (3)
integer*4 xV (nr__) ! [0/1]? Source extended flag in filter V
* (V_EXTENDED_FLAG) (3)
character*3 UVW2img (nr__) ! [YES] Source detected in stacked images
* filter UVW2 (UVW2_SKY_IMAGE)
character*3 UVM2img (nr__) ! [YES] Source detected in stacked images
* filter UVM2 (UVM2_SKY_IMAGE)
character*3 UVW1img (nr__) ! [YES] Source detected in stacked images
* filter UVW1 (UVW1_SKY_IMAGE)
character*3 Uimg (nr__) ! [YES] Source detected in stacked images
* filter U (U_SKY_IMAGE)
character*3 Bimg (nr__) ! [YES] Source detected in stacked images
* filter B (B_SKY_IMAGE)
character*3 Vimg (nr__) ! [YES] SoVrce detected in stacked images
* filter U (V_SKY_IMAGE)
*Note (1): Sources are designated as "XMMOM JHHMMSS.s+DDMMSSa", conform to
* the IAU Working Group on Designations (old IAU Commission 5). There are
* over 1173 non-unique names. The last character is optional, and only
* used to distinguish sources which otherwise would have the same name.
*Note (2): the quality flags are as a set of the corresponding T/F (True/False)
* characters.
* 1 : T = source on a bad pixel
* 2 : T = source on a readout streak
* 3 : T = source on a smoke-ring
* 4 : T = source on a diffraction spike
* 5 : T = source affected by Mod-8 pattern
* 6 : T = source within the central enhancement
* 7 : T = source lies near a bright source
* 8 : T = source near the edge
* 9 : T = point source within an extended source
* 10 : T = very bight pixel within photometry aperture
* 11 : T = multiple exposure values within photometry aperture
* 12 : T = the source is too bright (rate>0.97ct/frame)
*Note (3): the flag is 1 for an extended source and 0 for a point source.
C=============================================================================
C Loading file 'xmmom6s.dat' ! The XMM-Newton Optical Monitor Serendipitous
* Source Survey Catalogue, Version 6.0
* (XMM-SUSS6.0) "slim" version
C Format for file interpretation
1 format(
+ 6X,A17,I5,1X,A10,1X,I7,1X,F10.6,1X,F11.6,1X,F10.6,1X,F10.6,1X,
+ F10.6,1X,F10.6,1X,F10.6,1X,F10.6,1X,F8.6,1X,I3,1X,F8.2,1X,
+ F8.2,1X,F8.2,1X,F8.2,1X,F8.2,1X,F8.2,1X,E12.6,1X,E12.6,1X,
+ E12.6,1X,E12.6,1X,E12.6,1X,E12.6,1X,E12.6,1X,E12.6,1X,E12.6,
+ 1X,E12.6,1X,E12.6,1X,E12.6,1X,F8.5,1X,F8.6,1X,F7.4,1X,F8.6,1X,
+ F7.4,1X,F8.6,1X,F7.4,1X,F8.6,1X,F7.4,1X,F8.6,1X,F7.4,1X,F8.6,
+ 1X,A13,1X,A13,1X,A13,1X,A13,1X,A13,1X,A13,1X,I1,1X,I1,1X,I1,
+ 1X,I1,1X,I1,1X,I1,1X,A3,1X,A3,1X,A3,1X,A3,1X,A3,1X,A3)
C Effective file loading
open(unit=1,status='old',file=
+'xmmom6s.dat')
write(6,*) '....Loading file: xmmom6s.dat'
do i__=1,9920390
read(1,'(A582)')ar__
read(ar__,1)
+ XMMOM(i__),IDsum(i__),ObsID(i__),ID(i__),UVW2r(i__),
+ UVM2r(i__),UVM1r(i__),Ur(i__),Br(i__),Vr(i__),RAdeg(i__),
+ DEdeg(i__),ePos(i__),Nobs(i__),sig_UVW2(i__),sig_UVM2(i__),
+ sig_UVW1(i__),sig_U(i__),sig_B(i__),sig_V(i__),F_UVW2(i__),
+ e_F_UVW2(i__),F_UVM2(i__),e_F_UVM2(i__),F_UVW1(i__),
+ e_F_UVW1(i__),F_U(i__),e_F_U(i__),F_B(i__),e_F_B(i__),
+ F_V(i__),e_F_V(i__),UVW2mAB(i__),e_UVW2mAB(i__),UVM2mAB(i__),
+ e_UVM2mAB(i__),UVW1mAB(i__),e_UVW1mAB(i__),UmAB(i__),
+ e_UmAB(i__),BmAB(i__),e_BmAB(i__),VmAB(i__),e_VmAB(i__),
+ q_UVW2(i__),q_UVM2(i__),q_UVW1(i__),q_U(i__),q_B(i__),
+ q_V(i__),xUVW2(i__),xUVM2(i__),xUVW1(i__),xU(i__),xB(i__),
+ xV(i__),UVW2img(i__),UVM2img(i__),UVW1img(i__),Uimg(i__),
+ Bimg(i__),Vimg(i__)
if (idig(ar__(49:58)).EQ.0) UVW2r(i__) = rNULL__
if (idig(ar__(60:70)).EQ.0) UVM2r(i__) = rNULL__
if (idig(ar__(72:81)).EQ.0) UVM1r(i__) = rNULL__
if (idig(ar__(83:92)).EQ.0) Ur(i__) = rNULL__
if (idig(ar__(94:103)).EQ.0) Br(i__) = rNULL__
if (idig(ar__(105:114)).EQ.0) Vr(i__) = rNULL__
if (idig(ar__(151:158)).EQ.0) sig_UVW2(i__) = rNULL__
if (idig(ar__(160:167)).EQ.0) sig_UVM2(i__) = rNULL__
if (idig(ar__(169:176)).EQ.0) sig_UVW1(i__) = rNULL__
if (idig(ar__(178:185)).EQ.0) sig_U(i__) = rNULL__
if (idig(ar__(187:194)).EQ.0) sig_B(i__) = rNULL__
if (idig(ar__(196:203)).EQ.0) sig_V(i__) = rNULL__
if (idig(ar__(205:216)).EQ.0) F_UVW2(i__) = rNULL__
if (idig(ar__(218:229)).EQ.0) e_F_UVW2(i__) = rNULL__
if (idig(ar__(231:242)).EQ.0) F_UVM2(i__) = rNULL__
if (idig(ar__(244:255)).EQ.0) e_F_UVM2(i__) = rNULL__
if (idig(ar__(257:268)).EQ.0) F_UVW1(i__) = rNULL__
if (idig(ar__(270:281)).EQ.0) e_F_UVW1(i__) = rNULL__
if (idig(ar__(283:294)).EQ.0) F_U(i__) = rNULL__
if (idig(ar__(296:307)).EQ.0) e_F_U(i__) = rNULL__
if (idig(ar__(309:320)).EQ.0) F_B(i__) = rNULL__
if (idig(ar__(322:333)).EQ.0) e_F_B(i__) = rNULL__
if (idig(ar__(335:346)).EQ.0) F_V(i__) = rNULL__
if (idig(ar__(348:359)).EQ.0) e_F_V(i__) = rNULL__
if (idig(ar__(361:368)).EQ.0) UVW2mAB(i__) = rNULL__
if (idig(ar__(370:377)).EQ.0) e_UVW2mAB(i__) = rNULL__
if (idig(ar__(379:385)).EQ.0) UVM2mAB(i__) = rNULL__
if (idig(ar__(387:394)).EQ.0) e_UVM2mAB(i__) = rNULL__
if (idig(ar__(396:402)).EQ.0) UVW1mAB(i__) = rNULL__
if (idig(ar__(404:411)).EQ.0) e_UVW1mAB(i__) = rNULL__
if (idig(ar__(413:419)).EQ.0) UmAB(i__) = rNULL__
if (idig(ar__(421:428)).EQ.0) e_UmAB(i__) = rNULL__
if (idig(ar__(430:436)).EQ.0) BmAB(i__) = rNULL__
if (idig(ar__(438:445)).EQ.0) e_BmAB(i__) = rNULL__
if (idig(ar__(447:453)).EQ.0) VmAB(i__) = rNULL__
if (idig(ar__(455:462)).EQ.0) e_VmAB(i__) = rNULL__
if(ar__(548:548) .EQ. '') xUVW2(i__) = iNULL__
if(ar__(550:550) .EQ. '') xUVM2(i__) = iNULL__
if(ar__(552:552) .EQ. '') xUVW1(i__) = iNULL__
if(ar__(554:554) .EQ. '') xU(i__) = iNULL__
if(ar__(556:556) .EQ. '') xB(i__) = iNULL__
if(ar__(558:558) .EQ. '') xV(i__) = iNULL__
c ..............Just test output...........
write(6,1)
+ XMMOM(i__),IDsum(i__),ObsID(i__),ID(i__),UVW2r(i__),
+ UVM2r(i__),UVM1r(i__),Ur(i__),Br(i__),Vr(i__),RAdeg(i__),
+ DEdeg(i__),ePos(i__),Nobs(i__),sig_UVW2(i__),sig_UVM2(i__),
+ sig_UVW1(i__),sig_U(i__),sig_B(i__),sig_V(i__),F_UVW2(i__),
+ e_F_UVW2(i__),F_UVM2(i__),e_F_UVM2(i__),F_UVW1(i__),
+ e_F_UVW1(i__),F_U(i__),e_F_U(i__),F_B(i__),e_F_B(i__),
+ F_V(i__),e_F_V(i__),UVW2mAB(i__),e_UVW2mAB(i__),UVM2mAB(i__),
+ e_UVM2mAB(i__),UVW1mAB(i__),e_UVW1mAB(i__),UmAB(i__),
+ e_UmAB(i__),BmAB(i__),e_BmAB(i__),VmAB(i__),e_VmAB(i__),
+ q_UVW2(i__),q_UVM2(i__),q_UVW1(i__),q_U(i__),q_B(i__),
+ q_V(i__),xUVW2(i__),xUVM2(i__),xUVW1(i__),xU(i__),xB(i__),
+ xV(i__),UVW2img(i__),UVM2img(i__),UVW1img(i__),Uimg(i__),
+ Bimg(i__),Vimg(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