Conversion of standardized ReadMe file for
file /./ftp/cats/J/A_A/471/1105 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-Mar-29 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. J/A+A/471/1105 XMM-LSS at 240MHz and 610MHz (Tasse+, 2007) *================================================================================ *GMRT observations of the XMM Large Scale Structure Survey field. * Tasse C., Roettgering H.J.A., Best P.N., Cohen A.S., Pierre M., Wilman R. * <Astron. Astrophys. 471, 1105 (2007)> * =2007A&A...471.1105T C============================================================================= C Internal variables integer*4 i__ c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - C Declarations for 'table3.dat' ! The 240MHz source list integer*4 nr__ parameter (nr__=571) ! Number of records character*118 ar__ ! Full-size record C J2000 position composed of: RAh RAm RAs DE- DEd DEm DEs real*8 RAdeg (nr__) ! (deg) Right Ascension J2000 real*8 DEdeg (nr__) ! (deg) Declination J2000 C ---------------------------------- ! (position vector(s) in degrees) character*12 Name (nr__) ! Source Name (JHHMM.m+DDMM) integer*4 RAh (nr__) ! (h) Right ascension (J2000) integer*4 RAm (nr__) ! (min) Right ascension (J2000) real*4 RAs (nr__) ! (s) Right ascension (J2000) real*4 e_RAs (nr__) ! (arcsec) rms uncertainty on RA character*1 DE_ (nr__) ! Declination sign (J2000) integer*4 DEd (nr__) ! (deg) Declination (J2000) integer*4 DEm (nr__) ! (arcmin) Declination (J2000) real*4 DEs (nr__) ! (arcsec) Declination (J2000) real*4 e_DEs (nr__) ! (arcsec) rms uncertainty on DE character*1 Type (nr__) ! [SMC] Source type: (S)ingle, (M)ultiple or * (C)omponent of multiple source real*8 Sint (nr__) ! (mJy) ? Total integrated flux density at 240MHz * (table3) or 610MHz (table4) real*4 e_Sint (nr__) ! (mJy) ? rms uncertainty on Sint character*1 n_Sint (nr__) ! [*] *: flux calculated with pixel based method real*8 Scomp (nr__) ! (mJy) Integrated flux density of individual Gaussian * fitting component at 240MHz (table3) * or 610MHz (table4) real*4 e_Scomp (nr__) ! (mJy) rms uncertainty on Scomp character*1 l_amaj (nr__) ! Limit flag on amaj real*4 amaj (nr__) ! (arcsec) Deconvolved size of major axis, or the 2{sigma} * upper limit if the source is unresolved real*4 e_amaj (nr__) ! (arcsec) ? rms uncertainty on amaj character*1 l_amin (nr__) ! Limit flag on amin real*4 amin (nr__) ! (arcsec) ?=- Deconvolved size of minor axis, or 2{sigma} * upper limit if the source is unresolved real*4 e_amin (nr__) ! (arcsec) ? rms uncertainty on amin real*4 PA (nr__) ! (deg) ?=- Position angle of major axis real*4 e_PA (nr__) ! (deg) ? rms uncertainty on PA character*1 l_SI (nr__) ! Limit flag on SI real*4 SI (nr__) ! ? Spectral index, with respect to NVSS flux * density (1.4GHz) (1) *Note (1): Spectral index {alpha}_240_^1400^ for table3, * {alpha}_610_^1400^ for table4. c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - C Declarations for 'table4.dat' ! The 610MHz source list integer*4 nr__1 parameter (nr__1=1037) ! Number of records character*118 ar__1 ! Full-size record C J2000 position composed of: RAh RAm RAs DE- DEd DEm DEs real*8 RAdeg_1 (nr__1) ! (deg) Right Ascension J2000 real*8 DEdeg_1 (nr__1) ! (deg) Declination J2000 C ---------------------------------- ! (position vector(s) in degrees) character*12 Name_1 (nr__1) ! Source Name (JHHMM.m+DDMM) integer*4 RAh_1 (nr__1) ! (h) Right ascension (J2000) integer*4 RAm_1 (nr__1) ! (min) Right ascension (J2000) real*4 RAs_1 (nr__1) ! (s) Right ascension (J2000) real*4 e_RAs_1 (nr__1) ! (arcsec) rms uncertainty on RA character*1 DE__1 (nr__1) ! Declination sign (J2000) integer*4 DEd_1 (nr__1) ! (deg) Declination (J2000) integer*4 DEm_1 (nr__1) ! (arcmin) Declination (J2000) real*4 DEs_1 (nr__1) ! (arcsec) Declination (J2000) real*4 e_DEs_1 (nr__1) ! (arcsec) rms uncertainty on DE character*1 Type_1 (nr__1) ! [SMC] Source type: (S)ingle, (M)ultiple or * (C)omponent of multiple source real*8 Sint_1 (nr__1) ! (mJy) ? Total integrated flux density at 240MHz * (table3) or 610MHz (table4) real*4 e_Sint_1 (nr__1) ! (mJy) ? rms uncertainty on Sint character*1 n_Sint_1 (nr__1) ! [*] *: flux calculated with pixel based method real*8 Scomp_1 (nr__1) ! (mJy) Integrated flux density of individual Gaussian * fitting component at 240MHz (table3) * or 610MHz (table4) real*4 e_Scomp_1 (nr__1) ! (mJy) rms uncertainty on Scomp character*1 l_amaj_1 (nr__1) ! Limit flag on amaj real*4 amaj_1 (nr__1) ! (arcsec) Deconvolved size of major axis, or the 2{sigma} * upper limit if the source is unresolved real*4 e_amaj_1 (nr__1) ! (arcsec) ? rms uncertainty on amaj character*1 l_amin_1 (nr__1) ! Limit flag on amin real*4 amin_1 (nr__1) ! (arcsec) ?=- Deconvolved size of minor axis, or 2{sigma} * upper limit if the source is unresolved real*4 e_amin_1 (nr__1) ! (arcsec) ? rms uncertainty on amin real*4 PA_1 (nr__1) ! (deg) ?=- Position angle of major axis real*4 e_PA_1 (nr__1) ! (deg) ? rms uncertainty on PA character*1 l_SI_1 (nr__1) ! Limit flag on SI real*4 SI_1 (nr__1) ! ? Spectral index, with respect to NVSS flux * density (1.4GHz) (1) *Note (1): Spectral index {alpha}_240_^1400^ for table3, * {alpha}_610_^1400^ for table4. c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - C Declarations for 'table5.dat' ! Fitting parameters integer*4 nr__2 parameter (nr__2=318) ! Number of records character*131 ar__2 ! Full-size record C J2000 position composed of: RAh RAm RAs DE- DEd DEm DEs real*8 RAdeg_2 (nr__2) ! (deg) Right Ascension J2000 real*8 DEdeg_2 (nr__2) ! (deg) Declination J2000 C ---------------------------------- ! (position vector(s) in degrees) character*12 Name_2 (nr__2) ! Source Name (JHHMM.m+DDMM) integer*4 RAh_2 (nr__2) ! (h) Right ascension (J2000) integer*4 RAm_2 (nr__2) ! (min) Right ascension (J2000) real*4 RAs_2 (nr__2) ! (s) Right ascension (J2000) real*4 e_RAs_2 (nr__2) ! (arcsec) rms uncertainty on RA character*1 DE__2 (nr__2) ! Declination sign (J2000) integer*4 DEd_2 (nr__2) ! (deg) Declination (J2000) integer*4 DEm_2 (nr__2) ! (arcmin) Declination (J2000) real*4 DEs_2 (nr__2) ! (arcsec) Declination (J2000) real*4 e_DEs_2 (nr__2) ! (arcsec) rms uncertainty on DE real*4 S0 (nr__2) ! (mJy) Best fit S_0_ parameter value real*4 E_S0 (nr__2) ! (mJy) Upper limit of S0 68% confidence interval real*4 e_S0_1 (nr__2) ! (mJy) Lower limit of S0 68% confidence interval real*4 alpha (nr__2) ! Best fit spectral index {alpha} value real*4 E_alpha (nr__2) ! Upper limit of alpha 68% confidence interval real*4 e_alpha_1 (nr__2) ! Lower limit of alpha 68% confidence interval real*4 nu1 (nr__2) ! (MHz) ?=- Best fit {nu}_1_ parameter value real*4 E_nu1 (nr__2) ! (MHz) ? Upper limit of nu1 68% confidence interval. * See note (1) real*4 e_nu1_1 (nr__2) ! (MHz) ? Lower limit of nu1 68% confidence interval. * See note (1) character*1 n_e_nu1 (nr__2) ! [i] i for infinity real*4 nuc (nr__2) ! (MHz) ?=- Best fit {nu}_c_ parameter value real*4 E_nuc (nr__2) ! (MHz) ? Upper limit of nuc 68% confidence interval. * See note (2) character*1 n_e_nuc (nr__2) ! [i] i for infinity real*4 e_nuc_1 (nr__2) ! (MHz) ? Lower limit of nuc 68% confidence interval. * See note (2) real*4 log_chi2r (nr__2) ! Least {chi}^2^_reduced_ logarithmic value character*1 Class (nr__2) ! [0-3] Class indicator (3) *Note (1): "---" means that the upper bound of the 68% confidence interval lies * below the lowest available frequency. *Note (2): "---" means that the lower bound of the 68% confidence interval lies * above the highest available frequency. *Note (3): Class indicator as follows: * 1 = to fit the flux density points the model needs the presence of * self-absorption and no spectral aging * 2 = to fit the flux density points the model needs the presence of * spectral aging and no self-absorption * 3 = to fit the flux density points the model needs the presence of * self-absorption and spectral aging * 0 = all other cases C============================================================================= C Loading file 'table3.dat' ! The 240MHz source list C Format for file interpretation 1 format( + A12,1X,I2,1X,I2,1X,F5.2,1X,F4.2,1X,A1,I2,1X,I2,1X,F5.2,1X, + F4.2,1X,A1,1X,F7.1,1X,F6.1,A1,F7.1,1X,F6.1,1X,A1,F4.1,1X,F4.1, + 1X,A1,F4.1,1X,F3.1,1X,F5.1,1X,F4.1,1X,A1,F5.2) C Effective file loading open(unit=1,status='old',file= +'table3.dat') write(6,*) '....Loading file: table3.dat' do i__=1,571 read(1,'(A118)')ar__ read(ar__,1) + Name(i__),RAh(i__),RAm(i__),RAs(i__),e_RAs(i__),DE_(i__), + DEd(i__),DEm(i__),DEs(i__),e_DEs(i__),Type(i__),Sint(i__), + e_Sint(i__),n_Sint(i__),Scomp(i__),e_Scomp(i__),l_amaj(i__), + amaj(i__),e_amaj(i__),l_amin(i__),amin(i__),e_amin(i__), + PA(i__),e_PA(i__),l_SI(i__),SI(i__) if(ar__(51:57) .EQ. '') Sint(i__) = rNULL__ if(ar__(59:64) .EQ. '') e_Sint(i__) = rNULL__ if(ar__(87:90) .EQ. '') e_amaj(i__) = rNULL__ if (idig(ar__(93:96)).EQ.0) amin(i__) = rNULL__ if(ar__(98:100) .EQ. '') e_amin(i__) = rNULL__ if (idig(ar__(102:106)).EQ.0) PA(i__) = rNULL__ if(ar__(108:111) .EQ. '') e_PA(i__) = rNULL__ if(ar__(114:118) .EQ. '') SI(i__) = rNULL__ 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(DEs(i__) .GE. 0) DEdeg(i__)=DEdeg(i__)+DEs(i__)/3600. if(DE_(i__).EQ.'-'.AND.DEdeg(i__).GE.0) DEdeg(i__)=-DEdeg(i__) c ..............Just test output........... write(6,1) + Name(i__),RAh(i__),RAm(i__),RAs(i__),e_RAs(i__),DE_(i__), + DEd(i__),DEm(i__),DEs(i__),e_DEs(i__),Type(i__),Sint(i__), + e_Sint(i__),n_Sint(i__),Scomp(i__),e_Scomp(i__),l_amaj(i__), + amaj(i__),e_amaj(i__),l_amin(i__),amin(i__),e_amin(i__), + PA(i__),e_PA(i__),l_SI(i__),SI(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 'table4.dat' ! The 610MHz source list C Format for file interpretation 2 format( + A12,1X,I2,1X,I2,1X,F5.2,1X,F4.2,1X,A1,I2,1X,I2,1X,F5.2,1X, + F4.2,1X,A1,1X,F7.1,1X,F6.1,A1,F7.1,1X,F6.1,1X,A1,F4.1,1X,F4.1, + 1X,A1,F4.1,1X,F3.1,1X,F5.1,1X,F4.1,1X,A1,F5.2) C Effective file loading open(unit=1,status='old',file= +'table4.dat') write(6,*) '....Loading file: table4.dat' do i__=1,1037 read(1,'(A118)')ar__1 read(ar__1,2) + Name_1(i__),RAh_1(i__),RAm_1(i__),RAs_1(i__),e_RAs_1(i__), + DE__1(i__),DEd_1(i__),DEm_1(i__),DEs_1(i__),e_DEs_1(i__), + Type_1(i__),Sint_1(i__),e_Sint_1(i__),n_Sint_1(i__), + Scomp_1(i__),e_Scomp_1(i__),l_amaj_1(i__),amaj_1(i__), + e_amaj_1(i__),l_amin_1(i__),amin_1(i__),e_amin_1(i__), + PA_1(i__),e_PA_1(i__),l_SI_1(i__),SI_1(i__) if(ar__1(51:57) .EQ. '') Sint_1(i__) = rNULL__ if(ar__1(59:64) .EQ. '') e_Sint_1(i__) = rNULL__ if(ar__1(87:90) .EQ. '') e_amaj_1(i__) = rNULL__ if (idig(ar__1(93:96)).EQ.0) amin_1(i__) = rNULL__ if(ar__1(98:100) .EQ. '') e_amin_1(i__) = rNULL__ if (idig(ar__1(102:106)).EQ.0) PA_1(i__) = rNULL__ if(ar__1(108:111) .EQ. '') e_PA_1(i__) = rNULL__ if(ar__1(114:118) .EQ. '') SI_1(i__) = rNULL__ 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(DEs_1(i__) .GE. 0) DEdeg_1(i__)=DEdeg_1(i__)+DEs_1(i__)/3600. if(DE__1(i__).EQ.'-'.AND.DEdeg_1(i__).GE.0) DEdeg_1(i__)=-DEdeg_1(i__) c ..............Just test output........... write(6,2) + Name_1(i__),RAh_1(i__),RAm_1(i__),RAs_1(i__),e_RAs_1(i__), + DE__1(i__),DEd_1(i__),DEm_1(i__),DEs_1(i__),e_DEs_1(i__), + Type_1(i__),Sint_1(i__),e_Sint_1(i__),n_Sint_1(i__), + Scomp_1(i__),e_Scomp_1(i__),l_amaj_1(i__),amaj_1(i__), + e_amaj_1(i__),l_amin_1(i__),amin_1(i__),e_amin_1(i__), + PA_1(i__),e_PA_1(i__),l_SI_1(i__),SI_1(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 'table5.dat' ! Fitting parameters C Format for file interpretation 3 format( + A12,1X,I2,1X,I2,1X,F5.2,1X,F4.2,1X,A1,I2,1X,I2,1X,F5.2,1X, + F4.2,1X,F6.1,1X,F5.1,1X,F5.1,1X,F5.2,1X,F4.2,1X,F4.2,1X,F6.1, + 1X,F5.1,1X,F5.1,A1,1X,F6.1,1X,F5.1,A1,1X,F5.1,1X,F6.2,1X,A1) C Effective file loading open(unit=1,status='old',file= +'table5.dat') write(6,*) '....Loading file: table5.dat' do i__=1,318 read(1,'(A131)')ar__2 read(ar__2,3) + Name_2(i__),RAh_2(i__),RAm_2(i__),RAs_2(i__),e_RAs_2(i__), + DE__2(i__),DEd_2(i__),DEm_2(i__),DEs_2(i__),e_DEs_2(i__), + S0(i__),E_S0(i__),e_S0_1(i__),alpha(i__),E_alpha(i__), + e_alpha_1(i__),nu1(i__),E_nu1(i__),e_nu1_1(i__),n_e_nu1(i__), + nuc(i__),E_nuc(i__),n_e_nuc(i__),e_nuc_1(i__),log_chi2r(i__), + Class(i__) if (idig(ar__2(84:89)).EQ.0) nu1(i__) = rNULL__ if(ar__2(91:95) .EQ. '') E_nu1(i__) = rNULL__ if(ar__2(97:101) .EQ. '') e_nu1_1(i__) = rNULL__ if (idig(ar__2(104:109)).EQ.0) nuc(i__) = rNULL__ if(ar__2(111:115) .EQ. '') E_nuc(i__) = rNULL__ if(ar__2(118:122) .EQ. '') e_nuc_1(i__) = rNULL__ 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(DEs_2(i__) .GE. 0) DEdeg_2(i__)=DEdeg_2(i__)+DEs_2(i__)/3600. if(DE__2(i__).EQ.'-'.AND.DEdeg_2(i__).GE.0) DEdeg_2(i__)=-DEdeg_2(i__) c ..............Just test output........... write(6,3) + Name_2(i__),RAh_2(i__),RAm_2(i__),RAs_2(i__),e_RAs_2(i__), + DE__2(i__),DEd_2(i__),DEm_2(i__),DEs_2(i__),e_DEs_2(i__), + S0(i__),E_S0(i__),e_S0_1(i__),alpha(i__),E_alpha(i__), + e_alpha_1(i__),nu1(i__),E_nu1(i__),e_nu1_1(i__),n_e_nu1(i__), + nuc(i__),E_nuc(i__),n_e_nuc(i__),e_nuc_1(i__),log_chi2r(i__), + Class(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 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