Conversion of standardized ReadMe file for
file /./ftp/cats/J/A_A/476/L17 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-Mar-28 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/476/L17 86 and 43GHz observations of NRAO 150 (Agudo+, 2007) *================================================================================ *Superluminal non-ballistic jet swing in the quasar NRAO 150 revealed by mm-VLBI. * Agudo I., Bach U., Krichbaum T.P., Marscher A.P., Gonidakis I., * Diamond P.J., Perucho M., Alef W., Graham D.A., Witzel A., Zensus J.A., * Bremer M., Acosta-Pulido J.A., Barrena R. * <Astron. Astrophys., 476, L17-L20 (2007)> * =2007A&A...476L..17A C============================================================================= C Internal variables integer*4 i__ c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - C Declarations for 'table1.dat' ! 86GHz and 43GHz image information integer*4 nr__ parameter (nr__=40) ! Number of records character*53 ar__ ! Full-size record character*6 Image ! Image information (86GHz, 43GHz or 8.4GHz) real*8 Epoch ! (yr) Epoch of observation integer*4 Tint ! (min) Intergation time integer*4 Dnuobs ! (MHz) Observing frequency bandwidth integer*4 Bits ! Number of bits used for the signal * digitalisation sampling integer*4 FWHMb ! (uarcsec) FWHM minor axes of the restoring beam integer*4 FWHMa ! (uarcsec) FWHM major axes of the restoring beam real*4 PA ! (deg) [-90/90] Orientation angle of the restoring beam real*4 Sint ! (Jy) Integrated total flux density (86, 43 or 8.4GHz) real*4 Speak ! (Jy) Peak flux density (in Jy/beam) real*4 Noise ! (mJy) Noise level of the resulting images (in mJy/beam) c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - C Declarations for 'table2.dat' ! 86GHz, 43GHz and 8.4GHz circular-Gaussian model-fit parameters integer*4 nr__1 parameter (nr__1=140) ! Number of records character*69 ar__1 ! Full-size record character*6 Image_1 ! Image information (86GHz, 43GHz or 8.4GHz) real*8 Epoch_1 ! (yr) Epoch of observation character*4 Comp ! Model component character*2 l_S ! [<~ ] Limit flag on S (1) real*4 S ! (Jy) Flux density real*4 e_S ! (Jy) ? rms uncertainty on S real*4 r ! (mas) ?=- Projected distance to the core real*4 e_r ! (mas) ? rms uncertainty on r real*4 PA_1 ! (deg) [-170/170]?=- Position angle with respect * to the core real*4 e_PA ! (deg) ? rms uncertainty on PA character*1 l_FWHM ! Limit flag on FWHM (1) real*4 FWHM ! (mas) ?=- FWHM size real*4 e_FWHM ! (mas) ? rms uncertainty on FWHM *Note (1): Upper limits on the FWHM size and S correspond to fits of * unresolved jet regions. For such fits, the upper limit of the sizes * were imposed in Difmap to estimate the corresponding flux density * upper limits. The latter are close approximations to the actual flux * densities of the unresolved regions. c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - C Declarations for 'table3.dat' ! Proper motion results (for Q1, Q2 and Q3) integer*4 nr__2 parameter (nr__2=3) ! Number of records character*80 ar__2 ! Full-size record character*2 Comp_1 ! Model component (Q1, Q2 and Q3) integer*4 N ! Number of data points for the fit of the * trajectory real*4 v_PA_ ! (deg) Mean position angle real*4 e__PA_ ! (deg) rms uncertainty on <PA> real*4 v_PA_dt_ ! (deg/yr) Mean angular speed real*4 e__PA_dt_ ! (deg/yr) rms uncertainty on <PA/dt> real*4 v_pm_ ! (mas/yr) Mean proper motion real*4 e__pm_ ! (mas/yr) rms uncertainty on <pm> real*4 b_pm_ ! (c) Superluminal apparent speed for <pm> real*4 e_b_pm_ ! (c) rms uncertainty on b<pm> real*4 v_pmrad_ ! (mas/yr) Mean radial component of proper motion real*4 e__pmrad_ ! (mas/yr) rms uncertainty on <pmrad> real*4 v_pmnor_ ! (mas/yr) Mean normal component of proper motion real*4 e__pmnor_ ! (mas/yr) rms uncertainty on <pmnor> real*4 b_pmnor_ ! (c) Superluminal apparent speed for <pmnor> real*4 e_b_pmnor_ ! (c) rms uncertainty on b<pmnor> C============================================================================= C Loading file 'table1.dat' ! 86GHz and 43GHz image information C Format for file interpretation 1 format( + A6,1X,F7.2,1X,I3,1X,I3,1X,I1,1X,I4,1X,I3,1X,F5.1,1X,F4.2,1X, + F4.2,1X,F3.1) C Effective file loading open(unit=1,status='old',file= +'table1.dat') write(6,*) '....Loading file: table1.dat' do i__=1,40 read(1,'(A53)')ar__ read(ar__,1) + Image,Epoch,Tint,Dnuobs,Bits,FWHMb,FWHMa,PA,Sint,Speak,Noise c ..............Just test output........... write(6,1) + Image,Epoch,Tint,Dnuobs,Bits,FWHMb,FWHMa,PA,Sint,Speak,Noise c .......End.of.Just test output........... end do close(1) C============================================================================= C Loading file 'table2.dat' ! 86GHz, 43GHz and 8.4GHz circular-Gaussian * model-fit parameters C Format for file interpretation 2 format( + A6,1X,F7.2,1X,A4,1X,A2,F5.3,1X,F5.3,1X,F5.2,1X,F4.2,1X,F6.1, + 1X,F4.1,1X,A1,F5.3,1X,F5.3) C Effective file loading open(unit=1,status='old',file= +'table2.dat') write(6,*) '....Loading file: table2.dat' do i__=1,140 read(1,'(A69)')ar__1 read(ar__1,2) + Image_1,Epoch_1,Comp,l_S,S,e_S,r,e_r,PA_1,e_PA,l_FWHM,FWHM, + e_FWHM if(ar__1(29:33) .EQ. '') e_S = rNULL__ if (idig(ar__1(35:39)).EQ.0) r = rNULL__ if(ar__1(41:44) .EQ. '') e_r = rNULL__ if (idig(ar__1(46:51)).EQ.0) PA_1 = rNULL__ if(ar__1(53:56) .EQ. '') e_PA = rNULL__ if (idig(ar__1(59:63)).EQ.0) FWHM = rNULL__ if(ar__1(65:69) .EQ. '') e_FWHM = rNULL__ c ..............Just test output........... write(6,2) + Image_1,Epoch_1,Comp,l_S,S,e_S,r,e_r,PA_1,e_PA,l_FWHM,FWHM, + e_FWHM c .......End.of.Just test output........... end do close(1) C============================================================================= C Loading file 'table3.dat' ! Proper motion results (for Q1, Q2 and Q3) C Format for file interpretation 3 format( + A2,1X,I2,1X,F5.1,1X,F3.1,1X,F4.1,1X,F3.1,1X,F5.3,1X,F5.3,1X, + F4.2,1X,F4.2,1X,F5.3,1X,F5.3,1X,F5.3,1X,F5.3,1X,F4.2,1X,F4.2) C Effective file loading open(unit=1,status='old',file= +'table3.dat') write(6,*) '....Loading file: table3.dat' do i__=1,3 read(1,'(A80)')ar__2 read(ar__2,3) + Comp_1,N,v_PA_,e__PA_,v_PA_dt_,e__PA_dt_,v_pm_,e__pm_,b_pm_, + e_b_pm_,v_pmrad_,e__pmrad_,v_pmnor_,e__pmnor_,b_pmnor_, + e_b_pmnor_ c ..............Just test output........... write(6,3) + Comp_1,N,v_PA_,e__PA_,v_PA_dt_,e__PA_dt_,v_pm_,e__pm_,b_pm_, + e_b_pm_,v_pmrad_,e__pmrad_,v_pmnor_,e__pmnor_,b_pmnor_, + e_b_pmnor_ 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