Conversion of standardized ReadMe file for
file /./ftp/cats/J/A_A/695/A139 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-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 (nr__) ! ? Designation number of asteroid (if available)
character*9 AName (nr__) ! Alternative/temporary asteroid designation
character*10 Date_init (nr__) ! ("date") Beginning of observing run series (DD-MM-YYYY)
character*10 Date_end (nr__) ! ("date") End of observing run series (DD-MM-YYYY)
integer*4 Nsessions (nr__) ! Number of observing sessions in the date span
integer*4 PA_init (nr__) ! (deg) Phase angle corresponding to date_init
integer*4 PA_end (nr__) ! (deg) Phase angle corresponding to date_fin
character*15 Inst (nr__) ! Instrument
integer*4 Ref (nr__) ! ? 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 (nr__1) ! ? Designation number of asteroid (if available)
character*9 AName_1 (nr__1) ! Alternative/temporary name of asteroid
integer*4 Nper (nr__1) ! Number of possible sidereal periods
integer*4 Npole (nr__1) ! ?=- Number of possible rotational pole
* directions
real*8 Psid (nr__1) ! (h) Best-fit sidereal period
real*8 E_Psid (nr__1) ! (h) Upper uncertainty of Psid (3 sigma)
real*8 e_Psid_1 (nr__1) ! (h) Lower uncertainty of Psid (3 sigma)
integer*4 lambda (nr__1) ! (deg) ?=- Ecliptic longitude
integer*4 beta (nr__1) ! (deg) ?=- Ecliptic latitude
integer*4 e_rpole (nr__1) ! (deg) ?=- Radius of pole uncertainty
integer*4 epsilon (nr__1) ! (deg) ?=- Obliquity
real*4 a_b (nr__1) ! (deg) ?=- a/b axis ratios of surface-fit ellipsoids
real*4 a_c (nr__1) ! (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 (nr__2) ! ? Designation number of asteroid (if available)
character*9 AName_2 (nr__2) ! Alternative/temporary name of asteroid
real*4 Psid_1 (nr__2) ! (h) Rough best-fit sidereal period
integer*4 Nper_1 (nr__2) ! Number of possible sidereal periods
integer*4 Npole_1 (nr__2) ! ?=- Number of possible rotational pole
* directions
real*4 App_gap12 (nr__2) ! (yr) Gaps between apparitions 1 and 2
real*4 App_gap23 (nr__2) ! (yr) ? Gaps between apparitions 2 and 3
real*4 App_gap34 (nr__2) ! (yr) ? Gaps between apparitions 3 and 4
real*4 App_gap45 (nr__2) ! (yr) ? Gaps between apparitions 4 and 5
real*4 App_gap56 (nr__2) ! (yr) ? Gaps between apparitions 5 and 6
integer*4 App_pts1 (nr__2) ! Number of data points for apparition 1
integer*4 App_pts2 (nr__2) ! Number of data points for apparition 2
integer*4 App_pts3 (nr__2) ! ? Number of data points for apparition 3
integer*4 App_pts4 (nr__2) ! ? Number of data points for apparition 4
integer*4 App_pts5 (nr__2) ! ? Number of data points for apparition 5
integer*4 App_pts6 (nr__2) ! ? Number of data points for apparition 6
integer*4 PABcov (nr__2) ! (%) Phase angle bi-sector coverage
real*4 lcampl (nr__2) ! (mag) Observed lightcurve amplitude
integer*4 Rating (nr__2) ! [0/2] Rating of model successfulness (1)
character*29 Comment (nr__2) ! Brief evaluation of model successfulness
character*8 FileName (nr__2) ! Name of the directory with light curves
integer*4 Nfiles (nr__2) ! 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(i__),AName(i__),Date_init(i__),Date_end(i__),
+ Nsessions(i__),PA_init(i__),PA_end(i__),Inst(i__),Ref(i__)
if(ar__(1:6) .EQ. '') Name(i__) = iNULL__
if(ar__(68:69) .EQ. '') Ref(i__) = iNULL__
c ..............Just test output...........
write(6,1)
+ Name(i__),AName(i__),Date_init(i__),Date_end(i__),
+ Nsessions(i__),PA_init(i__),PA_end(i__),Inst(i__),Ref(i__)
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(i__),AName_1(i__),Nper(i__),Npole(i__),Psid(i__),
+ E_Psid(i__),e_Psid_1(i__),lambda(i__),beta(i__),e_rpole(i__),
+ epsilon(i__),a_b(i__),a_c(i__)
if(ar__1(1:6) .EQ. '') Name_1(i__) = iNULL__
if (Npole(i__) .EQ. 45) Npole(i__) = iNULL__
if (lambda(i__) .EQ. 45) lambda(i__) = iNULL__
if (beta(i__) .EQ. 45) beta(i__) = iNULL__
if (e_rpole(i__) .EQ. 45) e_rpole(i__) = iNULL__
if (epsilon(i__) .EQ. 45) epsilon(i__) = iNULL__
if (idig(ar__1(67:70)).EQ.0) a_b(i__) = rNULL__
if (idig(ar__1(72:75)).EQ.0) a_c(i__) = rNULL__
c ..............Just test output...........
write(6,2)
+ Name_1(i__),AName_1(i__),Nper(i__),Npole(i__),Psid(i__),
+ E_Psid(i__),e_Psid_1(i__),lambda(i__),beta(i__),e_rpole(i__),
+ epsilon(i__),a_b(i__),a_c(i__)
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(i__),AName_2(i__),Psid_1(i__),Nper_1(i__),Npole_1(i__),
+ App_gap12(i__),App_gap23(i__),App_gap34(i__),App_gap45(i__),
+ App_gap56(i__),App_pts1(i__),App_pts2(i__),App_pts3(i__),
+ App_pts4(i__),App_pts5(i__),App_pts6(i__),PABcov(i__),
+ lcampl(i__),Rating(i__),Comment(i__),FileName(i__),Nfiles(i__)
if(ar__2(1:6) .EQ. '') Name_2(i__) = iNULL__
if (Npole_1(i__) .EQ. 45) Npole_1(i__) = iNULL__
if(ar__2(35:38) .EQ. '') App_gap23(i__) = rNULL__
if(ar__2(40:42) .EQ. '') App_gap34(i__) = rNULL__
if(ar__2(44:46) .EQ. '') App_gap45(i__) = rNULL__
if(ar__2(48:50) .EQ. '') App_gap56(i__) = rNULL__
if(ar__2(62:64) .EQ. '') App_pts3(i__) = iNULL__
if(ar__2(66:68) .EQ. '') App_pts4(i__) = iNULL__
if(ar__2(70:72) .EQ. '') App_pts5(i__) = iNULL__
if(ar__2(74:76) .EQ. '') App_pts6(i__) = iNULL__
c ..............Just test output...........
write(6,3)
+ Name_2(i__),AName_2(i__),Psid_1(i__),Nper_1(i__),Npole_1(i__),
+ App_gap12(i__),App_gap23(i__),App_gap34(i__),App_gap45(i__),
+ App_gap56(i__),App_pts1(i__),App_pts2(i__),App_pts3(i__),
+ App_pts4(i__),App_pts5(i__),App_pts6(i__),PABcov(i__),
+ lcampl(i__),Rating(i__),Comment(i__),FileName(i__),Nfiles(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