Conversion of standardized ReadMe file for
file /./ftp/cats/J/A_A/592/A126 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-Jul-13
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/592/A126 Transition disk survey (van der Marel+, 2016)
*================================================================================
*The (w)hole survey: An unbiased sample study of transition disk candidates
*based on Spitzer catalogs.
* van der Marel N., Verhaar B.W., van Terwisga S., Merin B., Herczeg G.,
* Ligterink N.F.W., van Dishoeck E.F.
* <Astron. Astrophys. 592, A126 (2016)>
* =2016A&A...592A.126V
C=============================================================================
C Internal variables
integer*4 i__
c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C Declarations for 'apex.dat' ! Derived APEX photometry (table 4)
integer*4 nr__
parameter (nr__=32) ! Number of records
character*34 ar__ ! Full-size record
integer*4 ID ! ID target
real*4 F350 ! (Jy) ? 350 micron flux APEX-SABOCA
real*4 e_F350 ! (Jy) ? Error 350 micron flux APEX-SABOCA
character*1 l_F350 ! Upper limit flag 350 micron flux APEX-SABOCA
real*4 F870 ! (mJy) ? 870 micron flux APEX-LABOCA
real*4 e_F870 ! (mJy) ? Error 870 micron flux APEX-LABOCA
character*1 l_F870 ! Upper limit flag 870 micron flux APEX-LABOCA
character*1 cont ! [Y] Flag contamination cloud emission (1)
*Note (1): Y: the flux is contaminated by extended emission near the source
* position.
c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C Declarations for 'jcmt.dat' ! Derived JCMT photometry (table 5)
integer*4 nr__1
parameter (nr__1=40) ! Number of records
character*19 ar__1 ! Full-size record
integer*4 ID_1 ! ID target
real*4 F850 ! (mJy) 850 micron flux JCMT-SCUBA2
real*4 e_F850 ! (mJy) Error 850 micron flux JCMT-SCUBA2
character*1 l_F850 ! Upper limit flag 850 micron flux JCMT-SCUBA2
character*1 cont_1 ! [Y] Flag contamination cloud emission (1)
*Note (1): Y: the flux is contaminated by extended emission near the source
* position.
c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C Declarations for 'table.dat' ! Target properties (tables 8, A1-A3, C1, D1)
integer*4 nr__2
parameter (nr__2=213) ! Number of records
character*394 ar__2 ! Full-size record
C J2000 position composed of: RAh RAm RAs DE- DEd DEm DEs
real*8 RAdeg ! (deg) Right Ascension J2000
real*8 DEdeg ! (deg) Declination J2000
C ---------------------------------- ! (position vector(s) in degrees)
integer*4 ID_2 ! ID target
character*20 Name ! Name
character*17 AName ! Alternative name
integer*4 RAh ! (h) Right ascension (J2000)
integer*4 RAm ! (min) Right ascension (J2000)
real*4 RAs ! (s) Right ascension (J2000)
character*1 DE_ ! Declination sign (J2000)
integer*4 DEd ! (deg) Declination (J2000)
integer*4 DEm ! (arcmin) Declination (J2000)
real*4 DEs ! (arcsec) Declination (J2000)
character*18 Region ! Star forming region
integer*4 d ! (pc) Distance
character*6 Color ! Color criterium used to select
character*7 Origin ! Origin Spitzer data (1)
character*5 PrevCl ! Previous literature classification (2)
character*5 r_PrevCl ! Reference for previous classification,
* in refs.dat file
character*8 SpType ! MK spectral type
integer*4 Teff ! (K) ?=- Effective temperature
real*4 Av ! (mag) ?=- Visual extinction
real*4 L_ ! (Lsun) ?=- Stellar luminosity
real*4 M_ ! (Msun) ?=- Stellar mass
real*4 EW_Ha ! (0.1nm) ?=- Equivalent width of H{alpha}
integer*4 FW10 ! (km/s) ?=- Full width at 10% of peak of H{alpha}
character*1 Accret ! [YNU] Accretion
* (Y=accretor, N=non-accretor, U=unknown)
character*1 Accder ! [NWX] Derivation accretion (4)
character*5 r_Stel ! Reference for stellar properties,
* in refs.dat file
real*4 PACS70 ! (mJy) ? Flux Herschel-PACS 70 micron
real*4 e_PACS70 ! (mJy) ? Error flux Herschel-PACS 70 micron
character*1 l_PACS70 ! Upper limit flag on PACS70
real*4 PACS100 ! (mJy) ? Flux Herschel-PACS 100 micron
real*4 e_PACS100 ! (mJy) ? Error flux Herschel-PACS 100 micron
character*1 l_PACS100 ! Upper limit flag on PACS100
real*4 PACS160 ! (mJy) ? Flux Herschel-PACS 160 micron
real*4 e_PACS160 ! (mJy) ? Error flux Herschel-PACS 160 micron
character*1 l_PACS160 ! Upper limit flag on PACS160
character*1 confPACS ! [Y] Cloud confusion (6)
integer*4 S350 ! (mJy) ? Flux SABOCA 350 micron
integer*4 e_S350 ! (mJy) ? Error flux SABOCA 350 micron
character*1 l_S350 ! Upper limit flag on S350
integer*4 L870 ! (mJy) ? Flux LABOCA 870 micron
integer*4 e_L870 ! (mJy) ? Error flux LABOCA 870 micron
character*1 l_L870 ! Upper limit flag on L870
integer*4 SC450 ! (mJy) ? Flux SCUBA2 450 micron
integer*4 e_SC450 ! (mJy) ? Error flux SCUBA2 450 micron
character*1 l_SC450 ! Upper limit flag on SC450
integer*4 SC850 ! (mJy) ? Flux SCUBA2 850 micron
integer*4 e_SC850 ! (mJy) ? Error flux SCUBA2 850 micron
character*1 l_SC850 ! Upper limit flag SCUBA2 850 micron flux
integer*4 SM880 ! (mJy) ? Flux SMA 880 micron
integer*4 e_SM880 ! (mJy) ? Error flux SMA 880 micron
real*4 Fl1300 ! (mJy) ? Flux 1300 micron
real*4 e_Fl1300 ! (mJy) ? Error flux 1300 micron
character*1 l_Fl1300 ! Upper limit flag on Fl1300
real*4 Fl3300 ! (mJy) ? Flux 3300 micron
real*4 e_Fl3300 ! (mJy) ? Error flux 3300 micron
character*1 l_Fl3300 ! Upper limit flag on Fl3300
character*7 r_Fl3300 ! Reference (sub)millimeter fluxes,
* in refs.dat file
character*1 l_Sep_as ! Limit flag on Sep(as)
real*4 Sep_as ! (arcsec) ?=- Binary separation limit (arcsecond)
character*1 l_Sep_AU ! Limit flag on Sep
real*4 Sep_AU ! (AU) ? Binary separation limit (AU)
integer*4 r_mp ! ? References of multiplicity studies,
* in refs.dat file
integer*4 rcav ! (AU) ? Cavity radius
integer*4 Brcav ! (AU) ? Upper range cavity radius
integer*4 brcav_1 ! (AU) ? Lower range cavity radius
real*4 Sigc ! (g/cm2) ? Dust surface density at rc (Sigma_c)
real*4 Mdiskfit ! (MJup) ? Total disk mass of best fit model
real*4 Mdiskmm ! (MJup) ?=- Total disk mass using (sub)millimeter
* flux
character*1 l_Mdiskmm ! Upper limit flag of total disk mass using
* (sub)millimeter flux
real*4 ddust ! ? Dust depletion factor of inner disk
* (delta dust)
real*4 hc ! ? Scale height at rc (h_c)
character*3 psi ! Flaring angle (psi)
real*4 Ld_Ls ! ? Disk luminosity over stellar luminosity
* ratio (L_disk/L_*)
character*2 Class ! Classification disk (9)
*Note (1): Origin Spitzer data code as follows:
* c2d = Evans et al. (2009, Cat. J/ApJS/181/321)
* GB = Dunham et al. (2015, Cat. J/ApJS/220/11)
* Taurus = Rebull et al. (2010, Cat. J/ApJS/186/259),
* Luhman et al. (2010, Cat. J/ApJS/186/111L)
* HREL = IRSA HREL catalog
* Other = for {eta} Cham (IRAC), Megeath et al. (2005ApJ...634L.113M)
* for {eta} Cham (MIPS), Sicilia-Aguilar et al. (2009ApJ...701.1188S)
* for Cham I , Luhman et al. (2008, Cat. J/ApJ/684/654)
* for {lambda} Orionis , Hernandez et al. (2010, J/ApJ/722/1226)
* for Orion , Megeath et al. (2012, Cat. J/AJ/144/192)
* for FEPS , Carpenter et al. (2008ApJS..179..423C)
*Note (2): Previous literature classification as follows:
* Im = confirmed by interferometric imaging
* PF = Planet-forming disk
* GG = Grain-growth dominated disk
* PE = Photoevaportive disk
* L = low-infrared excess or anemic disk
* H = high-infrared excess
* T = T Tauri-like infrared excess
* PTD = pretransitional disk
* V = seesaw variability
*Note (4): Derivation accretion flag as follows:
* W = the accretion was derived using the Halpha line width
* X = The accretion properties were derived using a full X-shooter
* spectrum rather than only fitting the H-alpha line
* N = The accretion properties were derived using other lines (e.g., Br-gamma).
*Note (6): Upper limit due to cloud confusion
*Note (9): Classification disk flag as follows:
* NH = disk without holes
* ML = massive disk with large cavity (rcav>10AU, Mdisk>5MJup)
* MS = massive disk with small cavity (rcav<10AU, Mdisk>5MJup)
* LL = low-mass disk with large cavity (rcav>10AU, Mdisk<5MJup)
* LS = low-mass disk with small cavity (rcav<10AU, Mdisk<5MJup)
* DD = low-mass disk with large cavity and low scale height
* (rcav>100AU, Mdisk<5MJup, hc~0.01)
c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C Declarations for 'refs.dat' ! References
integer*4 nr__3
parameter (nr__3=131) ! Number of records
character*68 ar__3 ! Full-size record
integer*4 Ref ! Reference number
character*19 BibCode ! BibCode
character*22 Aut ! Author's name
character*18 Com ! Comments
C=============================================================================
C Loading file 'apex.dat' ! Derived APEX photometry (table 4)
C Format for file interpretation
1 format(I3,2X,F4.2,2X,F4.2,1X,A1,1X,F5.1,1X,F5.1,1X,A1,2X,A1)
C Effective file loading
open(unit=1,status='old',file=
+'apex.dat')
write(6,*) '....Loading file: apex.dat'
do i__=1,32
read(1,'(A34)')ar__
read(ar__,1)ID,F350,e_F350,l_F350,F870,e_F870,l_F870,cont
if(ar__(6:9) .EQ. '') F350 = rNULL__
if(ar__(12:15) .EQ. '') e_F350 = rNULL__
if(ar__(19:23) .EQ. '') F870 = rNULL__
if(ar__(25:29) .EQ. '') e_F870 = rNULL__
c ..............Just test output...........
write(6,1)ID,F350,e_F350,l_F350,F870,e_F870,l_F870,cont
c .......End.of.Just test output...........
end do
close(1)
C=============================================================================
C Loading file 'jcmt.dat' ! Derived JCMT photometry (table 5)
C Format for file interpretation
2 format(I3,1X,F5.1,1X,F4.1,1X,A1,2X,A1)
C Effective file loading
open(unit=1,status='old',file=
+'jcmt.dat')
write(6,*) '....Loading file: jcmt.dat'
do i__=1,40
read(1,'(A19)')ar__1
read(ar__1,2)ID_1,F850,e_F850,l_F850,cont_1
c ..............Just test output...........
write(6,2)ID_1,F850,e_F850,l_F850,cont_1
c .......End.of.Just test output...........
end do
close(1)
C=============================================================================
C Loading file 'table.dat' ! Target properties (tables 8, A1-A3, C1, D1)
C Format for file interpretation
3 format(
+ I3,1X,A20,1X,A17,1X,I2,1X,I2,1X,F5.2,2X,A1,I2,1X,I2,1X,F4.1,
+ 1X,A18,1X,I3,1X,A6,1X,A7,1X,A5,1X,A5,1X,A8,1X,I5,1X,F4.1,1X,
+ F5.1,1X,F3.1,1X,F5.1,1X,I3,1X,A1,1X,A1,1X,A5,1X,F6.2,1X,F6.2,
+ 1X,A1,1X,F6.2,1X,F6.2,1X,A1,1X,F6.2,1X,F6.2,1X,A1,1X,A1,1X,I4,
+ 1X,I4,1X,A1,1X,I4,1X,I4,1X,A1,1X,I4,1X,I4,1X,A1,1X,I4,1X,I4,
+ 1X,A1,1X,I4,1X,I4,1X,F6.1,1X,F6.1,1X,A1,1X,F5.1,1X,F5.1,1X,A1,
+ 1X,A7,1X,A1,F5.3,1X,A1,F5.1,2X,I3,1X,I3,1X,I4,1X,I4,1X,E7.1,
+ 1X,F5.1,1X,F5.1,1X,A1,1X,E7.1,1X,F4.2,1X,A3,1X,F5.3,1X,A2)
C Effective file loading
open(unit=1,status='old',file=
+'table.dat')
write(6,*) '....Loading file: table.dat'
do i__=1,213
read(1,'(A394)')ar__2
read(ar__2,3)
+ ID_2,Name,AName,RAh,RAm,RAs,DE_,DEd,DEm,DEs,Region,d,Color,
+ Origin,PrevCl,r_PrevCl,SpType,Teff,Av,L_,M_,EW_Ha,FW10,Accret,
+ Accder,r_Stel,PACS70,e_PACS70,l_PACS70,PACS100,e_PACS100,
+ l_PACS100,PACS160,e_PACS160,l_PACS160,confPACS,S350,e_S350,
+ l_S350,L870,e_L870,l_L870,SC450,e_SC450,l_SC450,SC850,e_SC850,
+ l_SC850,SM880,e_SM880,Fl1300,e_Fl1300,l_Fl1300,Fl3300,
+ e_Fl3300,l_Fl3300,r_Fl3300,l_Sep_as,Sep_as,l_Sep_AU,Sep_AU,
+ r_mp,rcav,Brcav,brcav_1,Sigc,Mdiskfit,Mdiskmm,l_Mdiskmm,ddust,
+ hc,psi,Ld_Ls,Class
if (Teff .EQ. 45) Teff = iNULL__
if (idig(ar__2(134:137)).EQ.0) Av = rNULL__
if (idig(ar__2(139:143)).EQ.0) L_ = rNULL__
if (idig(ar__2(145:147)).EQ.0) M_ = rNULL__
if (idig(ar__2(149:153)).EQ.0) EW_Ha = rNULL__
if (FW10 .EQ. 45) FW10 = iNULL__
if(ar__2(169:174) .EQ. '') PACS70 = rNULL__
if(ar__2(176:181) .EQ. '') e_PACS70 = rNULL__
if(ar__2(185:190) .EQ. '') PACS100 = rNULL__
if(ar__2(192:197) .EQ. '') e_PACS100 = rNULL__
if(ar__2(201:206) .EQ. '') PACS160 = rNULL__
if(ar__2(208:213) .EQ. '') e_PACS160 = rNULL__
if(ar__2(219:222) .EQ. '') S350 = iNULL__
if(ar__2(224:227) .EQ. '') e_S350 = iNULL__
if(ar__2(231:234) .EQ. '') L870 = iNULL__
if(ar__2(236:239) .EQ. '') e_L870 = iNULL__
if(ar__2(243:246) .EQ. '') SC450 = iNULL__
if(ar__2(248:251) .EQ. '') e_SC450 = iNULL__
if(ar__2(255:258) .EQ. '') SC850 = iNULL__
if(ar__2(260:263) .EQ. '') e_SC850 = iNULL__
if(ar__2(267:270) .EQ. '') SM880 = iNULL__
if(ar__2(272:275) .EQ. '') e_SM880 = iNULL__
if(ar__2(277:282) .EQ. '') Fl1300 = rNULL__
if(ar__2(284:289) .EQ. '') e_Fl1300 = rNULL__
if(ar__2(293:297) .EQ. '') Fl3300 = rNULL__
if(ar__2(299:303) .EQ. '') e_Fl3300 = rNULL__
if (idig(ar__2(316:320)).EQ.0) Sep_as = rNULL__
if(ar__2(323:327) .EQ. '') Sep_AU = rNULL__
if(ar__2(330:332) .EQ. '') r_mp = iNULL__
if(ar__2(334:336) .EQ. '') rcav = iNULL__
if(ar__2(338:341) .EQ. '') Brcav = iNULL__
if(ar__2(343:346) .EQ. '') brcav_1 = iNULL__
if(ar__2(348:354) .EQ. '') Sigc = rNULL__
if(ar__2(356:360) .EQ. '') Mdiskfit = rNULL__
if (idig(ar__2(362:366)).EQ.0) Mdiskmm = rNULL__
if(ar__2(370:376) .EQ. '') ddust = rNULL__
if(ar__2(378:381) .EQ. '') hc = rNULL__
if(ar__2(387:391) .EQ. '') Ld_Ls = 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(RAs .GT. -180) RAdeg=RAdeg+RAs/240.
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,3)
+ ID_2,Name,AName,RAh,RAm,RAs,DE_,DEd,DEm,DEs,Region,d,Color,
+ Origin,PrevCl,r_PrevCl,SpType,Teff,Av,L_,M_,EW_Ha,FW10,Accret,
+ Accder,r_Stel,PACS70,e_PACS70,l_PACS70,PACS100,e_PACS100,
+ l_PACS100,PACS160,e_PACS160,l_PACS160,confPACS,S350,e_S350,
+ l_S350,L870,e_L870,l_L870,SC450,e_SC450,l_SC450,SC850,e_SC850,
+ l_SC850,SM880,e_SM880,Fl1300,e_Fl1300,l_Fl1300,Fl3300,
+ e_Fl3300,l_Fl3300,r_Fl3300,l_Sep_as,Sep_as,l_Sep_AU,Sep_AU,
+ r_mp,rcav,Brcav,brcav_1,Sigc,Mdiskfit,Mdiskmm,l_Mdiskmm,ddust,
+ hc,psi,Ld_Ls,Class
write(6,'(6H Pos: 2F8.4)') RAdeg,DEdeg
c .......End.of.Just test output...........
end do
close(1)
C=============================================================================
C Loading file 'refs.dat' ! References
C Format for file interpretation
4 format(I3,1X,A19,1X,A22,4X,A18)
C Effective file loading
open(unit=1,status='old',file=
+'refs.dat')
write(6,*) '....Loading file: refs.dat'
do i__=1,131
read(1,'(A68)')ar__3
read(ar__3,4)Ref,BibCode,Aut,Com
c ..............Just test output...........
write(6,4)Ref,BibCode,Aut,Com
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