Conversion of standardized ReadMe file for
file /./ftp/cats/J/A_A/695/A139 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-Aug-12
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/695/A139 Spins and shapes of 11 NEAs (Fatka+, 2025)
*================================================================================
*Spins and shapes of 11 near-Earth asteroids observed within the
*NEOROCKS Project.
* Fatka P., Pravec P., Scheirich P., Kusnirak P., Hornoch K., Kucakova H.,
* Ergashev K.E., Souza de Joode M., Burkhonov O.A., Ehgamberdiev S.A.,
* Galad A., Vilagi J., Reddy V., Dyvig R., Ries J.G., Snodgrass C.,
* Donaldson A., Peixinho N., Khalouei E.
* <Astron. Astrophys. 695, A139 (2025)>
* =2025A&A...695A.139F (SIMBAD/NED BibCode)
C=============================================================================
C Internal variables
integer*4 i__
c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C Declarations for 'tablea1.dat' ! Observational circumstances of studied asteroids
integer*4 nr__
parameter (nr__=95) ! Number of records
character*69 ar__ ! Full-size record
integer*4 Name ! ? Designation number of asteroid (if available)
character*9 AName ! Alternative/temporary asteroid designation
character*10 Date_init ! ("date") Beginning of observing run series (DD-MM-YYYY)
character*10 Date_end ! ("date") End of observing run series (DD-MM-YYYY)
integer*4 Nsessions ! Number of observing sessions in the date span
integer*4 PA_init ! (deg) Phase angle corresponding to date_init
integer*4 PA_end ! (deg) Phase angle corresponding to date_fin
character*15 Inst ! Instrument
integer*4 Ref ! ? Source of the data (1)
*Note (1): References as follows:
* 1 = Oey (2020, Minor Planet Bull., 47, 136)
* 2 = ATLAS, Tonry et al., 2018PASP..130f4505T
* 3 = Warner (2018, Minor Planet Bull., 45, 138)
* 4 = Warner & Stephens (2019, Minor Planet Bull., 46, 304)
* 5 = Warner et al. (2021, Minor Planet Bull., 48, 337)
* 6 = Pravec et al. (1996, Icarus, 124, 471)
* 7 = Waszczak et al. (2015AJ....150...75W, Cat. J/5AJ/150/75)
* 8 = Warner & Stephens (2020, Minor Planet Bull., 47, 290)
* 9 = Schmalz et al. (2023, Minor Planet Bull., 50, 43)
* 10 = Warner & Stephens (2022, Minor Planet Bull., 49, 274)
* 11 = Krugly et al. (2002, Icarus, 158, 294)
* 12 = Pravec et al. (1998, Icarus, 136, 124)
* 13 = Franco et al. (2022, Minor Planet Bull., 49, 200)
* 14 = Warner & Stephens (2020, Minor Planet Bul., 47, 200)
* 15 = Warner (2015, Minor Planet Bull., 42, 172)
* 16 = Warner & Stephens (2022, Minor Planet Bull., 49, 176)
* 17 = Polishook (2012, Minor Planet Bull., 39, 187)
* 18 = Polishook & Brosch (2008, Icarus, 194, 111)
* 19 = Ries & Varadi (2007, in AAS/Division for Planetary Sciences Meeting 6
* Abstracts, 39, AAS/Division for Planetary sciences Meeting Abstracts
* #39, 35.16)
* 20 = Warner (2013, Minor Planet Bull., 40, 137)
* 21 = Carbognani (2014, Minor Planet Bull., 41, 4)
* 22 = Warner & Stephens (2020, Minor Planet Bull., 47, 105)
* 23 = Benishek (2021, Minor Planet Bull., 48, 77)
* 24 = Carbognani (2008, Minor Planet Bull., 35, 109)
* 25 = Warner (2014, Minor Planet Bull., 41, 41)
* 26 = Vaduvescu et al. (2022, Earth, Moon and Planets, 126, 6)
* 27 = Warner & Stephens (2019, Minor Planet Bull., 46, 144)
* 28 = Thirouin et al. (2016AJ....152..163T, Cat. J/AJ/152/163)
c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C Declarations for 'tablea2.dat' ! Overview of the modelling results
integer*4 nr__1
parameter (nr__1=22) ! Number of records
character*75 ar__1 ! Full-size record
integer*4 Name_1 ! ? Designation number of asteroid (if available)
character*9 AName_1 ! Alternative/temporary name of asteroid
integer*4 Nper ! Number of possible sidereal periods
integer*4 Npole ! ?=- Number of possible rotational pole
* directions
real*8 Psid ! (h) Best-fit sidereal period
real*8 E_Psid ! (h) Upper uncertainty of Psid (3 sigma)
real*8 e_Psid_1 ! (h) Lower uncertainty of Psid (3 sigma)
integer*4 lambda ! (deg) ?=- Ecliptic longitude
integer*4 beta ! (deg) ?=- Ecliptic latitude
integer*4 e_rpole ! (deg) ?=- Radius of pole uncertainty
integer*4 epsilon ! (deg) ?=- Obliquity
real*4 a_b ! (deg) ?=- a/b axis ratios of surface-fit ellipsoids
real*4 a_c ! (deg) ?=- a/c axis ratios of surface-fit ellipsoids
c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C Declarations for 'tablea3.dat' ! Summary of asteroids observation circumstances
and success rate in modelling
integer*4 nr__2
parameter (nr__2=17) ! Number of records
character*128 ar__2 ! Full-size record
integer*4 Name_2 ! ? Designation number of asteroid (if available)
character*9 AName_2 ! Alternative/temporary name of asteroid
real*4 Psid_1 ! (h) Rough best-fit sidereal period
integer*4 Nper_1 ! Number of possible sidereal periods
integer*4 Npole_1 ! ?=- Number of possible rotational pole
* directions
real*4 App_gap12 ! (yr) Gaps between apparitions 1 and 2
real*4 App_gap23 ! (yr) ? Gaps between apparitions 2 and 3
real*4 App_gap34 ! (yr) ? Gaps between apparitions 3 and 4
real*4 App_gap45 ! (yr) ? Gaps between apparitions 4 and 5
real*4 App_gap56 ! (yr) ? Gaps between apparitions 5 and 6
integer*4 App_pts1 ! Number of data points for apparition 1
integer*4 App_pts2 ! Number of data points for apparition 2
integer*4 App_pts3 ! ? Number of data points for apparition 3
integer*4 App_pts4 ! ? Number of data points for apparition 4
integer*4 App_pts5 ! ? Number of data points for apparition 5
integer*4 App_pts6 ! ? Number of data points for apparition 6
integer*4 PABcov ! (%) Phase angle bi-sector coverage
real*4 lcampl ! (mag) Observed lightcurve amplitude
integer*4 Rating ! [0/2] Rating of model successfulness (1)
character*29 Comment ! Brief evaluation of model successfulness
character*8 FileName ! Name of the directory with light curves
integer*4 Nfiles ! Number of files in the subdirectory
*Note (1): Rating model code as follows:
* 0 = full model, period, pole and shape well constrained
* 1 = partially successfully model, ambiguity in period or pole
* 2 = unsuccessful model, too many period aliases
*--------------------------------------------------------------------------------
*
* Byte-by-byte Description of file: lcs/*/*
*--------------------------------------------------------------------------------
* Bytes Format Units Label Explanations
*--------------------------------------------------------------------------------
* 1- 13 F13.5 d JD Julian date (UT), no light-time correction
* 15- 20 F6.3 mag mag Relative brightness of target
* 22- 27 F6.3 mag e_mag ?=- Formal uncertainty of asteroid brightness
C=============================================================================
C Loading file 'tablea1.dat' ! Observational circumstances of studied asteroids
C Format for file interpretation
1 format(I6,1X,A9,1X,A10,1X,A10,1X,I2,1X,I3,1X,I3,1X,A15,2X,I2)
C Effective file loading
open(unit=1,status='old',file=
+'tablea1.dat')
write(6,*) '....Loading file: tablea1.dat'
do i__=1,95
read(1,'(A69)')ar__
read(ar__,1)
+ Name,AName,Date_init,Date_end,Nsessions,PA_init,PA_end,Inst,
+ Ref
if(ar__(1:6) .EQ. '') Name = iNULL__
if(ar__(68:69) .EQ. '') Ref = iNULL__
c ..............Just test output...........
write(6,1)
+ Name,AName,Date_init,Date_end,Nsessions,PA_init,PA_end,Inst,
+ Ref
c .......End.of.Just test output...........
end do
close(1)
C=============================================================================
C Loading file 'tablea2.dat' ! Overview of the modelling results
C Format for file interpretation
2 format(
+ I6,1X,A9,1X,I3,1X,I1,1X,F9.6,1X,F8.6,1X,F8.6,1X,I3,1X,I3,1X,
+ I2,1X,I3,1X,F4.2,1X,F4.2)
C Effective file loading
open(unit=1,status='old',file=
+'tablea2.dat')
write(6,*) '....Loading file: tablea2.dat'
do i__=1,22
read(1,'(A75)')ar__1
read(ar__1,2)
+ Name_1,AName_1,Nper,Npole,Psid,E_Psid,e_Psid_1,lambda,beta,
+ e_rpole,epsilon,a_b,a_c
if(ar__1(1:6) .EQ. '') Name_1 = iNULL__
if (Npole .EQ. 45) Npole = iNULL__
if (lambda .EQ. 45) lambda = iNULL__
if (beta .EQ. 45) beta = iNULL__
if (e_rpole .EQ. 45) e_rpole = iNULL__
if (epsilon .EQ. 45) epsilon = iNULL__
if (idig(ar__1(67:70)).EQ.0) a_b = rNULL__
if (idig(ar__1(72:75)).EQ.0) a_c = rNULL__
c ..............Just test output...........
write(6,2)
+ Name_1,AName_1,Nper,Npole,Psid,E_Psid,e_Psid_1,lambda,beta,
+ e_rpole,epsilon,a_b,a_c
c .......End.of.Just test output...........
end do
close(1)
C=============================================================================
C Loading file 'tablea3.dat' ! Summary of asteroids observation circumstances
* and success rate in modelling
C Format for file interpretation
3 format(
+ I6,1X,A9,1X,F5.2,1X,I3,1X,I1,1X,F4.1,1X,F4.1,1X,F3.1,1X,F3.1,
+ 1X,F3.1,1X,I4,1X,I4,1X,I3,1X,I3,1X,I3,1X,I3,1X,I2,1X,F4.2,1X,
+ I1,1X,A29,1X,A8,1X,I2)
C Effective file loading
open(unit=1,status='old',file=
+'tablea3.dat')
write(6,*) '....Loading file: tablea3.dat'
do i__=1,17
read(1,'(A128)')ar__2
read(ar__2,3)
+ Name_2,AName_2,Psid_1,Nper_1,Npole_1,App_gap12,App_gap23,
+ App_gap34,App_gap45,App_gap56,App_pts1,App_pts2,App_pts3,
+ App_pts4,App_pts5,App_pts6,PABcov,lcampl,Rating,Comment,
+ FileName,Nfiles
if(ar__2(1:6) .EQ. '') Name_2 = iNULL__
if (Npole_1 .EQ. 45) Npole_1 = iNULL__
if(ar__2(35:38) .EQ. '') App_gap23 = rNULL__
if(ar__2(40:42) .EQ. '') App_gap34 = rNULL__
if(ar__2(44:46) .EQ. '') App_gap45 = rNULL__
if(ar__2(48:50) .EQ. '') App_gap56 = rNULL__
if(ar__2(62:64) .EQ. '') App_pts3 = iNULL__
if(ar__2(66:68) .EQ. '') App_pts4 = iNULL__
if(ar__2(70:72) .EQ. '') App_pts5 = iNULL__
if(ar__2(74:76) .EQ. '') App_pts6 = iNULL__
c ..............Just test output...........
write(6,3)
+ Name_2,AName_2,Psid_1,Nper_1,Npole_1,App_gap12,App_gap23,
+ App_gap34,App_gap45,App_gap56,App_pts1,App_pts2,App_pts3,
+ App_pts4,App_pts5,App_pts6,PABcov,lcampl,Rating,Comment,
+ FileName,Nfiles
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