Conversion of standardized ReadMe file for
file /./ftp/cats/II/156A 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 2026-Jun-10
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/156A IRAS Faint Source Catalog, |b| > 10, Version 2.0 (Moshir+ 1989)
*================================================================================
*IRAS Faint Source Catalog, |b| > 10 Degrees, Version 2.0
* Moshir, M., Copan, G., Conrow, T., McCallon, H., Hacking, P., Gregorich, D.,
* Rohrbach, G., Melnyk, M., Rice, W., Fullmer, L., and Chester, T.J.
* <Infrared Processing and Analysis Center (1989)>
* =1990IRASF.C......0M
C=============================================================================
C Internal variables
integer*4 i__
c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C Declarations for 'main.dat' ! IRAS Faint Sources
integer*4 nr__
parameter (nr__=173044) ! Number of records
character*227 ar__ ! Full-size record
C 1950.0 position composed of: RAh RAm RAds DE- DEd DEm DEs (Epoch=1983.5)
real*8 RAdeg ! (deg) Right Ascension 1950.0, Epoch=1983.5
real*8 DEdeg ! (deg) Declination 1950.0, Epoch=1983.5
C ---------------------------------- ! (position vector(s) in degrees)
character*12 IRAS ! IRAS faint source name (starts by F)
integer*4 RAh ! (h) Hours RA, equinox 1950.0, epoch 1983.5
integer*4 RAm ! (min) Minutes RA, equinox 1950.0, epoch 1983.5
integer*4 RAds ! (0.1s) Deci-seconds RA
character*1 DE_ ! Sign of DEC, equinox 1950.0, epoch 1983.5
integer*4 DEd ! (deg) Degrees Dec, equinox 1950.0, epoch 1983.5
integer*4 DEm ! (arcmin) Minutes Dec, equinox 1950.0, epoch 1983.5
integer*4 DEs ! (arcsec) Seconds Dec, equinox 1950.0, epoch 1983.5
integer*4 Major ! (arcsec) Uncertainty ellipse major axis
integer*4 Minor ! (arcsec) Uncertainty ellipse minor axis
integer*4 PosAng ! (deg) Uncertainty ellipse position angle
integer*4 o_Fnu12 ! ? Number of times observed at 12um
integer*4 o_Fnu25 ! ? Number of times observed at 25um
integer*4 o_Fnu60 ! ? Number of times observed at 60um
integer*4 o_Fnu100 ! ? Number of times observed at 100um
real*4 Fnu12 ! (Jy) Non-color corrected flux density at 12um
real*4 Fnu25 ! (Jy) Non-color corrected flux density at 25um
real*4 Fnu60 ! (Jy) Non-color corrected flux density at 60um
real*4 Fnu100 ! (Jy) Non-color corrected flux density at 100um
integer*4 q_Fnu12 ! Flux density quality at 12um
integer*4 q_Fnu25 ! Flux density quality at 25um
integer*4 q_Fnu60 ! Flux density quality at 60um
integer*4 q_Fnu100 ! Flux density quality at 100um
integer*4 e_Fnu12 ! (%) Relative flux density uncertainty at 12um
integer*4 e_Fnu25 ! (%) Relative flux density uncertainty at 25um
integer*4 e_Fnu60 ! (%) Relative flux density uncertainty at 60um
integer*4 e_Fnu100 ! (%) Relative flux density uncertainty at 100um
integer*4 Rel ! (%) Percent minimum source reliability
real*4 SNR12 ! ? Signal/Noise ratio at 12um
real*4 SNR25 ! ? Signal/Noise ratio at 25um
real*4 SNR60 ! ? Signal/Noise ratio at 60um
real*4 SNR100 ! ? Signal/Noise ratio at 100um
real*4 locSNR12 ! ? Local Signal/Noise ratio at 12um
real*4 locSNR25 ! ? Local Signal/Noise ratio at 25um
real*4 locSNR60 ! ? Local Signal/Noise ratio at 60um
real*4 locSNR100 ! ? Local Signal/Noise ratio at 100um
integer*4 A12 ! (pix) ? Number of pixels above threshold at 12um
integer*4 A25 ! (pix) ? Number of pixels above threshold at 25um
integer*4 A60 ! (pix) ? Number of pixels above threshold at 60um
integer*4 A100 ! (pix) ? Number of pixels above threshold at 100um
integer*4 Ncat ! Number of nearby catalog sources (6')
integer*4 Nx12 ! Number of nearby extractions at 12 um
integer*4 Nx25 ! Number of nearby extractions at 25 um
integer*4 Nx60 ! Number of nearby extractions at 60 um
integer*4 Nx100 ! Number of nearby extractions at 100 um
integer*4 Cir1 ! Number of nearby 100 um-only extractions
integer*4 Conf ! Confusion flag, 1 per band, bit-encoded (1)
real*4 NoisC12 ! ? Noise correction factor at 12um
real*4 NoisC25 ! ? Noise correction factor at 25um
real*4 NoisC60 ! ? Noise correction factor at 60um
real*4 NoisC100 ! ? Noise correction factor at 100um
integer*4 nID ! ? Number of positional associations
integer*4 Type ! ? Type of associated object (G1)
real*4 NoisR12 ! ? Ratio of 85% to 68% quantiles of flux
* distribution at 12um
real*4 NoisR25 ! ? Ratio of 85% to 68% quantiles of flux
* distribution at 25um
real*4 NoisR60 ! ? Ratio of 85% to 68% quantiles of flux
* distribution at 60um
real*4 NoisR100 ! ? Ratio of 85% to 68% quantiles of flux
* distribution at 100um
*Note (1): corresponding to 12, 25, 60 and 100um from lowest to highest bit.
* Therefore the confusion flags are set in the bands as follows:
* 1 = confusion in 12um band
* 2 = confusion in 25um band
* 4 = confusion in 60um band
* 8 = confusion in 100um band
* Confusion in multiple bands are expressed by a sum of the values,
* e.g. 12 (8+4) means a confusion in 60 and 100{mu}m bands.
c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C Declarations for 'assoc.dat' ! Associations
integer*4 nr__1
parameter (nr__1=235935) ! Number of records
character*64 ar__1 ! Full-size record
character*12 IRAS_1 ! IRAS source name
integer*4 RecNo ! Main data table record number for IRAS source
integer*4 catID ! Catalog number, details in file "meaning.txt"
character*15 Source ! Source identification
character*5 Type_1 ! Source type or spectral class, or association
* catalog type (G1)
integer*4 Dist ! (arcsec) Distance of IRAS source to association
integer*4 dPA ! (deg) Position angle from IRAS source to association
integer*4 dMaj ! (arcsec) Distance from IRAS source to association
* along major axis of IRAS uncertainty ellipse
integer*4 dMin ! (arcsec) Distance from IRAS source to association
* along minor axis of IRAS uncertainty ellipse
integer*4 Field1 ! ?=-999 Object data field 1, catalog dependent
integer*4 Field2 ! ?=-999 Object data field 2, catalog dependent
integer*4 Field3 ! ?=-999 Object data field 3, catalog dependent
C=============================================================================
C Loading file 'main.dat' ! IRAS Faint Sources
C Format for file interpretation
1 format(
+ A12,I2,I2,I3,A1,I2,I2,I2,I3,I3,I3,I3,I3,I3,I3,E9.3,E9.3,E9.3,
+ E9.3,I1,I1,I1,I1,I3,I3,I3,I3,I2,E7.1,E7.1,E7.1,E7.1,E7.1,E7.1,
+ E7.1,E7.1,I3,I3,I3,I3,I2,I2,I2,I2,I2,I2,I2,F5.2,F5.2,F5.2,
+ F5.2,I2,I2,F5.3,F5.3,F5.3,F5.3)
C Effective file loading
open(unit=1,status='old',file=
+'main.dat')
write(6,*) '....Loading file: main.dat'
do i__=1,173044
read(1,'(A227)')ar__
read(ar__,1)
+ IRAS,RAh,RAm,RAds,DE_,DEd,DEm,DEs,Major,Minor,PosAng,o_Fnu12,
+ o_Fnu25,o_Fnu60,o_Fnu100,Fnu12,Fnu25,Fnu60,Fnu100,q_Fnu12,
+ q_Fnu25,q_Fnu60,q_Fnu100,e_Fnu12,e_Fnu25,e_Fnu60,e_Fnu100,Rel,
+ SNR12,SNR25,SNR60,SNR100,locSNR12,locSNR25,locSNR60,locSNR100,
+ A12,A25,A60,A100,Ncat,Nx12,Nx25,Nx60,Nx100,Cir1,Conf,NoisC12,
+ NoisC25,NoisC60,NoisC100,nID,Type,NoisR12,NoisR25,NoisR60,
+ NoisR100
if(ar__(36:38) .EQ. '') o_Fnu12 = iNULL__
if(ar__(39:41) .EQ. '') o_Fnu25 = iNULL__
if(ar__(42:44) .EQ. '') o_Fnu60 = iNULL__
if(ar__(45:47) .EQ. '') o_Fnu100 = iNULL__
if(ar__(102:108) .EQ. '') SNR12 = rNULL__
if(ar__(109:115) .EQ. '') SNR25 = rNULL__
if(ar__(116:122) .EQ. '') SNR60 = rNULL__
if(ar__(123:129) .EQ. '') SNR100 = rNULL__
if(ar__(130:136) .EQ. '') locSNR12 = rNULL__
if(ar__(137:143) .EQ. '') locSNR25 = rNULL__
if(ar__(144:150) .EQ. '') locSNR60 = rNULL__
if(ar__(151:157) .EQ. '') locSNR100 = rNULL__
if(ar__(158:160) .EQ. '') A12 = iNULL__
if(ar__(161:163) .EQ. '') A25 = iNULL__
if(ar__(164:166) .EQ. '') A60 = iNULL__
if(ar__(167:169) .EQ. '') A100 = iNULL__
if(ar__(184:188) .EQ. '') NoisC12 = rNULL__
if(ar__(189:193) .EQ. '') NoisC25 = rNULL__
if(ar__(194:198) .EQ. '') NoisC60 = rNULL__
if(ar__(199:203) .EQ. '') NoisC100 = rNULL__
if(ar__(204:205) .EQ. '') nID = iNULL__
if(ar__(206:207) .EQ. '') Type = iNULL__
if(ar__(208:212) .EQ. '') NoisR12 = rNULL__
if(ar__(213:217) .EQ. '') NoisR25 = rNULL__
if(ar__(218:222) .EQ. '') NoisR60 = rNULL__
if(ar__(223:227) .EQ. '') NoisR100 = 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(RAds .GT. -180) RAdeg=RAdeg+RAds/2400.
if(DEd .GE. 0) DEdeg=DEd
if(DEm .GE. 0) DEdeg=DEdeg+DEm/60.
if(DEs .GE. 0) DEdeg=DEdeg+DEs/3600.
if(DE_.EQ.'-'.AND.DEdeg.GE.0) DEdeg=-DEdeg
c ..............Just test output...........
write(6,1)
+ IRAS,RAh,RAm,RAds,DE_,DEd,DEm,DEs,Major,Minor,PosAng,o_Fnu12,
+ o_Fnu25,o_Fnu60,o_Fnu100,Fnu12,Fnu25,Fnu60,Fnu100,q_Fnu12,
+ q_Fnu25,q_Fnu60,q_Fnu100,e_Fnu12,e_Fnu25,e_Fnu60,e_Fnu100,Rel,
+ SNR12,SNR25,SNR60,SNR100,locSNR12,locSNR25,locSNR60,locSNR100,
+ A12,A25,A60,A100,Ncat,Nx12,Nx25,Nx60,Nx100,Cir1,Conf,NoisC12,
+ NoisC25,NoisC60,NoisC100,nID,Type,NoisR12,NoisR25,NoisR60,
+ NoisR100
write(6,'(6H Pos: 2F8.4)') RAdeg,DEdeg
c .......End.of.Just test output...........
end do
close(1)
C=============================================================================
C Loading file 'assoc.dat' ! Associations
C Format for file interpretation
2 format(A12,I6,I2,A15,A5,I3,I3,I3,I3,I4,I4,I4)
C Effective file loading
open(unit=1,status='old',file=
+'assoc.dat')
write(6,*) '....Loading file: assoc.dat'
do i__=1,235935
read(1,'(A64)')ar__1
read(ar__1,2)
+ IRAS_1,RecNo,catID,Source,Type_1,Dist,dPA,dMaj,dMin,Field1,
+ Field2,Field3
c ..............Just test output...........
write(6,2)
+ IRAS_1,RecNo,catID,Source,Type_1,Dist,dPA,dMaj,dMin,Field1,
+ Field2,Field3
c .......End.of.Just test output...........
end do
close(1)
C=============================================================================
stop
end