Upload
b-vrielynck
View
220
Download
3
Embed Size (px)
Citation preview
Computers & Geosciences Vol. 15, No. 5, pp. 789-797, 1989 0098-3004/89 $3.00 + 0.00 Printed in Great Britain. All rights reserved Copyright © 1989 Pergamon Press plc
GENETAB: A BASIC PROGRAM FOR EDITING STRATIGRAPHIC RANGE CHARTS
B. VRIELYNCK and A. GgANLUND
Laboratoire de Stratigraphie, CNRS UA 319, Universit6 P. et M. Curie, 75252 Paris Cedex 05, France
(Received 5 March 1988; accepted 16 August 1988)
Abstract--The program GENETAB draws stratigraphic range charts from information in any type of geologic database. It provides output on a standard microcomputer printer. The version described in this paper permits the use of data from Mesozoic strata, and draws cooccurrence intervals of both precise and imprecise ranges. The program is written in BASIC, and accepts input from dBase files.
Key Words: BASIC, Biostratigraphy, Range charts, Mesozoic.
INTRODUCTION
Paleontologists may have to draw stratigraphic range charts. Such charts assist with definition of the strati- graphic range of a taxon, or clarify the age of a sample that includes several taxa. This drafting may be tedious, and the result may not be revealed until final stages of the stratigraphic work.
The program GENETAB provides a quick way to obtain a printed graphic interpretation from a data file (STRATI. TXT) containing taxonomic and strati- graphic information about specific taxa. The program also provides a cooccurrence interval of the taxa sought. The program GENETAB is written in BASIC (BASICA), and can be compiled with the BASCOM compiler. It has been implemented on a IBM-XT with 256kbyte RAM. The output from the program is formatted for a 80-column wide printer, working with Epson control code. As it is listed here (Appendix 1), GENETAB works with Mesozoic strata, and the re- cord numbers in the STRATI.TXT file are limited to 500. Minor modifications in the initialization lines allow use of taxa of other era.
Some programs and methods concerned with range charts (Edwards, 1978; Dienes, 1978) have been published already. They handle well-sampled sections and assist to draw local range charts. GENETAB differs from them by being concerned with biblio- graphic data and shows the present state of know- ledge on one or several taxa ranges.
INPUT FILE: STRATI.TXT
The data file read by GENETAB has to be named STRATI.TXT. It is a sequential file readable in BASIC. GENETAB does not assume the creation of this file. In our application this file is a result from a selection within a database written in dBase III. The database program is not described here but is avail- able from one of the authors (B.V.) on request. Each record of STRATI. TXT has ten fields. An example of the input and its format is shown in Appendix 2.
Fields CI -C4 keep taxonomic data. CI holds the genus group name, C2 the species group name, C3 the taxon author name, and C4 the name of the author and the year of the bibliographic reference.
Fields C5-C10 contain stratigraphic data, three fields for the appearance and three for the disap- pearance levels. The reason for this is that in a section both the appearance as well as the disappearance of a taxon can be observed in either a "well-dated" level or in a "presumed-age" level (Fig. 1). In the latter situa- tion it might happen that, at either the top or the bottom of that strata, a taxon occurs in finely dated levels. Also, both range end points may be imprecise. The data definitions of fields C5-C10 therefore are formed as follows:
C5 : age of the lower boundary if it is the same as the section one,
C6 : age of the lower boundary if this age is im- precise,
C7 : age of the lower boundary if this age is well established or age of the first level well dated,
C8 : age of the upper boundary if this age is well established or age of the last level well dated,
C9 : age of the upper boundary if this age is im- precise,
CI0: age of the upper boundary if it is the same as the section one.
It will be obvious that fields C5-C10 cannot be filled at the same time. It also is illogical to name data in fields C5 and C6 as well as in C9 and CI0 at the same time. On the other hand, if there is data in field C7, there must be data in field C8 and vice versa.
The data format in the stratigraphic fields is com- posed of three alphanumeric and one numeric charac- ters (e.g. "Bat l") . The alphanumeric characters cor- respond to the three first letters of the stage name. The numeric characters range from 1 to 6, representing an arbitrary subdivision of a stage. In a sample, "Ba t l " indicates basal part of Bathonian, "Ca l 5" base of the upper part of Callovian. The user has to correlate these subdivisions with his own. A simple modifica-
789
790 B. VRIELYNCK and A. GRANLUND
,q t ~ z
)- ,a
--O
UPPER TURONIAN /
CENOMANO-TURONIAN
UPPER ALBIAN
LOWER ALBIAN
UPPER APTIAN
LOWER APTIAN
UPPER BARREMIAN
Figure 1. Theoretical section and range chart explaining particular stratigraphic from first level; we do not know if it occurs in older strata. It disappears in
imprecise datation; it could or could not occur in Turonian or in Upper
tion of the program would allow stages to be sub- stituted by zones.
PROGRAM
GENETAB is made of three parts of which the second one calls a subroutine. After the variable ini- tialization, and the reading of the "chronological order relation" array, the data file STRATI. TXT is read. The next step in the program GENETAB is to create the output file, termed FICHOUT. Finally the program prints the results.
The use of the chronological order relation array One of the characteristics of GENETAB is the use
of a chronological order relation. To make the strati- graphic data collection easy, they are put in as alph- anumeric characters. For this purpose an array (TEM$ (I)) is created (lines 1200-1260). Each geologi- cal stage (or zone), represented by a string made of its three first letters, corresponds to the array-element of which the ' T ' value equals the stage chronological order.
This array is used twice, first to check for the order of the oldest and of the most recent stages recorded in data file (lines 1610-1680), and secondly, to make the stratigraphic data numeric (lines 2300-2380).
As described here (Appendix 1), the oldest stage is the Scythian (TEM$ (1) = "Scy") and the most re- cent the Maestrichtian (TEM$ (28) = "Mac"). To adapt GENETAB to another era than the Mesozoic, this array has to be modified with respect to the relation of the chronological order.
Writing output file FICHOUT The first reading of STRATI. TXT gets the par-
ameters of the chart dimensions: NBFI, CTAX,
u.i (3
UPPER LOWER
UPPER O# iw~, 1~,~
LOWER C.,~ ~
UPPER , . ~
LOWER ~,.'~
uPPER
LOWER l>fl"~ ~" ~'~
uPPER ~£~\1~ ~
LOWER ~Iw
boundaries. Taxon occurs strata for which we have Cenomanian strata.
TMIN, and TMAX (lines 1350-1690). From these values, NCOL (width of chart in character columns) and NTABL (number of chart lines) are calculated (lines 1710-1790). Because NCOL can be bigger than 80, and even than 132, and because the GENETAB is written to run with a 80 characters/line printer, the chart has to be printed in several (NBLO) blocks, each of 80 characters width. This constraint has been sol- ved with a specific input subroutine that opens a direct access file called "F ICHOUT" , which stores records in 80 characters width. When a chart line is built, this subroutine (lines 3160-3250) puts the first 80 charac- ters in the record of which the order (D) equals the table line one (NOLTAB); then, up to the end of the range-chart line, it puts the next 80 characters in the record number D where D = D + NLTAB. Written in this manner, F ICHOUT can be printed from re- cord 1 to record N. The successive printed blocks have to be put side-by-side to obtain the final range chart.
Building of chart-data lines The data lines are made of two parts: the left one
with the taxonomic data and the right part with a graphic interpretation of the stratigraphic data. Each line corresponds to a record of the STRATI. TXT file. The taxonomic part is made by the simple concatena- tion of the fields C I - C 4 data (lines 2170-2180). The right part construction is a little more specific. The goal is the stratigraphic data transcription in a string made of characters as "-", "x" and "?" (Table I). The part made of "-" indicates imprecise range; part with "x" well dated range; the "?" indicates that we do not know if the range is bigger than the written one. Therefore we first have to make the data numeric (lines 2210-2370). In the same command lines we put at 1 the boolean Ci i fda ta occur in the C(i + 4)$ field. Then we calculate the positions (B1-B6) of each
Tab
le 1
. Ran
ge c
hart
pri
nted
out
wit
h G
EN
ET
AB
. T
his
rang
e ch
art
show
s 20
gra
phic
com
bina
tion
s. N
ote
that
in
all
pres
ent
rang
e ch
arts
str
atig
raph
ic r
ange
s ar
e im
agin
ary;
or
igin
al r
ecor
ds h
ave
been
mod
ifie
d fo
r ex
ampl
e sh
own
Podobursa
triacantha
(FISCHLI)
(in ESSAI
84)
Unuma
echinatua
~CNIKAWA
& YAO
(in ESSAI
84l
Emiluvia
sp.A.
KOCHER
(in ESSAI
84)
Spongocapsula
palmerae
PESSAGNO
(in ESSAI
84)
Saitoum
elegana
DE
NEVER
(in ESSAI
84)
Alievium
sp.
in KOCHER
(in ESSAI
84)
Syringocapsa
rotunda
(HINDE)
(in ESSAI
84)
Eueyrtidium ptyctum
RIEDEL
& SANFILIPPO
(in ESSAI
84)
Emiluvia
chica
FOREMAN
(in ESSAI
84)
Tetraditryma
corralitosensis
(PESSAGNO)
(in ESSAI
84)
Eucyrtis
micropora
SQUINABOL
(in ESSAI
84)
Podobursa
apinosa
(OZVOLDOVA)
{in ESSAI
84)
Parvicingula
sp.B
in WAKITA
(in ESSAI
84)
Triactoma
jonesi
PESSAGNO
(in ESSAI
84)
Saitoum
corniculum
DE
NEVER
(in ESSAI
84)
Pantanellium
sp.aff. P.inornatum PESSAGNO
& POISSON
(in ESSAI
84)
Acanthoeircus
tetraspinus
YAO
(in ESSAI
84)
Archaeodictyomitra
apiara
(RUST)
(in ESSAI
84)
Parvicingula
boesii
gr.
(PARONA)
(in ESSAI
84)
Andromeda
praepodbielensis
BAUMGARTNER
(in ESSAI
84)
CO-OCCURRENCE
INTERVAL
(Baj.
<Bat.
(Cal.
(Oxf.
<Kim.
<Tit.
<Ber.
<Val.
<Hau.
( (
xx Y~L~XXXX)L~XXXXXX XXXX ~V
.)~X
Y~X XX
~v~X
X~(Y.XX X <
? XXXXXXXXXXXX
XXXXXXX
( <
< <
<
( <
XX XXXXXXXXXX
X X
X~
.w
~(x:
~.My
~w/(
x ? <
<
< <
( ? XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
? (
( <
( ..................
XX~XX.XXXXXXX x
x~J~x x
( <
? - - -XXXXXXXXXXXXXX
( <
< <
( <
< ........................
XXXXXXXX
? <
< <
? ..... xxxxxxxxxxxxxxxxxx
? <
< (
( X
X X
XX
XX
XX
XX
XX
XX
XX
XX
X
..
..
..
..
..
.
( (
< XXXM--XXXXXXXX X~XXXXXXXXXXXXXXY~XX
..... ?
< <
< <
< ? XXX X
XXXXY.XXXXXXY~vO~XXXX~.KXX X ..........
< <
< ?XXXXX ..............
?(
< <
< - - - XXXXXXXXXX
..........
< <
( <
<
< <
? ............
XXXXXXXXY--XX.XXXXX ..... <
<
< <
Xx
~<
< <
<
( <
? ..........
X XX
Y..X
XXXXY.~..XX XX X XXX ..........
? <
................
< <
( (
<
< <
( ? ..............
< (
< <
< <
..............
? <
< (
( ?
..
..
..
..
..
.
?(
( (
<
<
<
++
0~
0~
m"
Tab
le 2
. Ran
ge c
hart
pri
nted
out
wit
h G
EN
ET
AB
. C
oocc
urre
ncc
inte
rval
is e
mpt
y: a
n "'
0" i
s wri
tten
on
that
line
. Sy
ring
ocap
sa r
otun
da (
HIN
DE
) oc
curs
fro
m "
Kim
l" w
here
as
IxJ
Unu
ma
echi
natu
s Ic
higa
wa
and
Yao
has
dis
appe
ared
aft
er "
Oxf
2";
thes
e tw
o ta
xa h
ave
no
t co
occu
rred
if
we
take
int
o ac
coun
t da
taba
se
Alievium
sp.
in KOCHER
[in ESSAI
84)
Tetraditryma
corralitosensis
(PESSAGNO)
(in ESSAI
84)
Andromeda
praepodbielensis
BAUMGARTNER
(in ESSAI
84)
Panganellium
sp.aff. P.inornatum
PESSAGNO
& POISSON
(in ESSAI
84)
Unuma
echinatus
ICHIKANA
& YAO
(in ESSAI
84)
Emiluvia
sp.A.
KOCHER
(in ESSAI
84)
<
<
Spongocapsula
palmerae
PESSAGNO
(in ESSAI
84)
<
<
Archaeodictyomitra
apiara
(RUST)
(in ESSAI
84)
<
<
Parvicingula
boeaii
gr.
[PARONA)
(in ESSAI
84)
(
<
Syringoeapsa
rotunda
(HINDE)
(in ESSAI
84)
<
<
Eucyrtis
micropora
SQUINABOL
(in ESSAI
84)
(
<
Podoburaa
spinosa
(OZVOLDOVA)
(in ESSAI
84)
<
¢
Eucyrtidium
ptyctum
RIEDEL
& SANFILIPPO
(in ESSAI
84)
<
<
Saitou~
eorniculum
DE WEVER
(in ESSAI
84)
<
<
Triactoma
jonesi
PESSAGNO
(in ESSAI
84)
<
CO-OCCURRENCE
INTERVAL
<Baj.
<Bat.
<Cal.
<Oxf.
<Kim.
<Tit.
<Ber.
<Val.
<Hau.
<
<
?-
--
~<
<
<
<
< x
x~
xx
xx
xx
xx
xx
x
....
. ?
<
<
<
? ....... ?
<
<
<
<
<
<
<
(
<
? .... xxxxxxxxxxxxxxxxx~xx
.........
?
? x
xx
xx
xx
xx
xx
xx
xx
xx
xx
<
<
<
<
<
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x ? <
<
<
? xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
?
(
<
? ..............
<
<
<
<
..............
?
<
<
<
<
(
..................
xxxxxxxx
?
<
? xxxxxxxxxxxxxxxxxxxxxxxxxxx
..........
<
?xxxxx ..............
?<
<
<
<
? ..... x
.xx
xx
xx
xx
xx
xx
xx
xx
x
? <
<
..
..
..
..
..
.
xx
..
..
?<
(
<
<
< ? ............
xxxxxxxxxxxxxxxx
..... <
<
OOOO
= <
Tab
le 3
. R
ange
cha
rt p
rint
ed o
ut w
ith
GE
NE
TA
B.
Coo
ccur
renc
e in
terv
al c
ann
ot
be d
eter
min
ed p
reci
sely
; al
l bo
unda
ries
are
cor
rela
ted
wit
h b
ott
om
or
top
of
sect
ions
¢)
c.
>
Andromeda
praepodbielensis
BAUMGARTNER
(in ESSAI
84)
Pantanellium
sp.aff.P.inornatum
PESSAGNO
& POISSON
(in ESSAI
84)
Spongocapsula
palmerae
PESSAGNO
(in ESSAI
84)
Podobursa
spinosa
(OZVOLDOVA)
(in ESSAI
84)
Eueyrtidium
ptyctum
RIEDEL
& SANFILIPPO
(in ESSAI
84)
CO-OCCURRENCE
INTERVAL
<Bat.
<Cal.
¢Oxf.
<Kim.
<Tit.
<Ber.
<Val.
<Hau.
.............
. ..................................
<? .........
?<
<
<
<
<
<
<
<
? .... x
xxxxxxxxxxxxxxxxxx
........ ?
(
<
? xxx X
XXXXXXX xxxxxx Xxxxxxxxxxxx
?
<
<
<
?xxxxx ..............
?<
<
<
<
<
? ..... xxxxxxxxxxxxxxxxxx
? <
<
88
88
88
88
88
88
8
88
88
88
88
88
88
88
88
88
88
88
88
88
88
88
8
>
Z
Tab
le 4
. R
ange
cha
rt p
rint
ed o
ut w
ith
GE
NE
TA
B.
Con
fide
nce
inte
rval
sho
ws
that
spe
cies
occ
ur in
wel
l dat
ed le
vels
fro
m C
al2
to C
al6,
in
bot
h w
ell d
ated
and
in
impr
ecis
ely
date
d be
ds f
rom
"B
atl"
to
"Cal
l" a
nd f
rom
"O
xfl
" to
"K
im6
", a
nd i
n im
prec
isel
y da
ted
stra
ta
befo
re "
Bat
l" a
nd a
fter
"O
xf6"
Andromeda
praepodbielensis
BAUMGARTNER
(in ESSAI
84)
Pantanellium
sp.aff. P.inornatum
PESSAGNO
& POISSON
(in ESSAI
84)
Spongocapsula
palmerae
PESSAGNO
(in ESSAI
84)
Podobursa
spinosa
(OZVOLDOVA)
(in ESSAI
84)
Eucyrtidium
ptyctum
RIEDEL
& SANFILIPPO
[in ESSAI
84)
CO-OCCURRENCE
INTERVAL
<Baj.
<Bat.
<Cal.
<Oxf.
<Kim.
............
xxxy~Kx .........
( ..
...
XX
XX
XX
X
XX
XX
XX
.
..
..
..
..
..
..
..
..
..
..
.
XX
XX
XX
XX
XX
XX
X
..
..
..
<
..
..
..
..
..
.
XX
XX
XX
XX
.
..
..
..
< ....... XXXXXXXXXXXX
.......
====+++++++HHHHH++++++===
Editing stratigraphic range charts
stratigraphic data on the range-chart line (lines 2390- 2430). At last the transcription is written. First, a string made o f " - " between the lower and upper limits is stored, then it is modified as a function of the boolean C3, C1, and C6. If C3 equals 1 (we need not test C4, because it is identical to C3) that indicates that we at least have a part of range which is well dated; thus between the positions B3 and B4 the previous string is replaced by a string of "x" charac- ters. At last, if C1 and/or C6 equals 1, "?" is put on BI and/or B6 positions.
Building o f cooccurrence line The cooccurrence line shows the overlap in range
for all the recorded references of all taxa from the "STRATI. TXT" file. The time limits of this line are the most recent appearance (LI) and the oldest disap- pearance (LS). For a more precise interpretation of the time limits for the cooccurrence line, information about the most recent "well-dated" appearance (BI), the oldest "well-dated" disappearance (BS) as well as information about the oldest appearance correlated with the base of the section (DD) and the most recent disappearance correlated with the top of the section (FF), need to be known. For each record read from the data file, comparisons are made for the appearan- ce/disappearance variables (lines 2570-2710). As a final stage in the interpretations of the cooccurrenee lines, the program tests if the interval, (1) exists, (2) exists, but is not precise, or (3) does not exist.
The situation, when an overlap in range does not exist (3), occurs when the appearance on one line is younger than the disappearance on another, that is when at least two taxa do not cooccur. For this situa- tion LI is greater than LS, and both have lost their initial value. The graphic interpretation of this situa- tion is a string o f "0" (the range is empty) between the position of LS and LI (line 2830) (Table 2).
In the second situation, when the interval exists, but is nonprecise, both CI and C6 are equal to 1 in all records. On the table, data lines for all extreme limits are marked by a "?". This situation can be tested because in such a condition the command lines 2600 and 2660 jump the modification of LI and LS. Thus if both LI and LS have kept their initial values, the cooccurrence interval cannot be precise; a string made of "8" and limited by DD and F F indicates that situation (Table 3).
In the third situation and in this one only, LI is
793
inferior or equal to LS. It has been made possible to point out the quality of the cooccurrence interval. The quality is indicated by using different characters (Table 4): the character " = " indicates that on its column there is only "-", the " + " character indicates that on the column we have "-" and "x" characters, at last "H" indicates that on its column we read only "x" characters. To build such a string we have to take into account the characters written in the data lines. To reach this goal a string made o f " = " characters is stored; then, after reading in each data record for which C3 equals 1, the part of this string between positions B3 and B4 is replaced by a string of " + " characters (line 2700). At last we get on this string the part between position LI and LS and place it on the range-chart line at the same position (line 2830). At this point the graphic interpretation is made of " = " and " + " . It must be tested now if some " + " have to be replaced by "H". This change has to be done if BI is less than or equal to BS and EG equal to 0. The second condition is true if all data records in the fields C75 (and C85) contain data in other words if there is a string made o f " x " in all range-chart lines. The "H" string has to be written between the positions BI and BS but in the interval LI-LS, therefore its limits de- pend on the positions of BI and BS in regard to the LI and LS positions; the different eventualities are treated in lines 2850-2890.
RANGE-CHART PRINT
The "F ICHOUT" file is printed as a sequential file (lines 2980-3080). The printer control codes are used to save paper if the range charts are small and to individualize the different blocks so as to make their assemblage easy.
LPRINT CHR$ (27); "C" CHR$ (n); set page length at n lines,
LPRINT CHR$ (27); "N"; CHR$ (n); selects skip- over perforation for n lines,
LPRINT CHR$ (10); advances the paper one line.
REFERENCES
Dienes, I., 1978, Methods of plotting temporal range charts and their application in age estimation: Computers & Geosciences, v. 4, no. 3, p. 269-272.
Edwards, L. E., 1978, Range charts and no-space graphs: Computers & Geosciences, v. 4, no. 3, p. 247-255.
Appendices 1 and 2 overleaf
794 B. VRIELYNCK and A. GRANLUND
APPENDIX 1
Program Listing
i000 REM GENETAB PROGRAM i010 REM 1020 REM STRATIGRAPHIC RANGE TABLE EDITION 1030 REM 1040 REM by D. VRIELYNCK CNRS UA 319 FRANCE 1050 REM 1060 REM ================================================================= 1070 REM 1080 REM ** VARIABLES INITIALIZATION 1090 REM II00 CLS:INPUT "ENTER TABLE NAME : ", ECH$:LECH=LEN(ECH$) 1110 TMIN=30:TMAX=0:NCTAX=0:NBFI=0:NC=S0:IN=I:EX=I:NOLTAB=I 1120 REM 1130 REM ** TABLE ELEMENT NUMBER INITIALIZATION 1140 REM 1150 OPTION BASE 1 1160 DIM TEM$(28),GN$(500),SP$(500),AT$(500),APS(500) 1170 REM 1180 REM ** CHRONOLOGICAL ORDER RELATION ARRAY 1190 REM 1200 TEM$ (i) ="Scy" :TEM$ (2) ="Ani" :TEM$ (3) ="La~" :TEM$ (4) ="Car" 1210 TEM$ (5) =°°Nor '° :TEM$ (6) ="Het" :TEM$ (7) ="Sin °° :TEM$ (8) ="Pli" 1220 TEM$ (9) ="Toa" :TEM$ (i0) ="Aal" :TEM$ (11) ="Baj" :TEM$ (12) ="Bat" 1230 TEM$(13)="CaI":TEM$(14)="Oxf":TEMS(15)="Kim":TEM$(16)="Tit" 1240 TEM$(17)="Ber":TEM$(18)="VaI":TEM$(19)="Hau":TEMS(20)="Bar" 1250 TEM$(21)="Apt":TEM$(22)="AIh":TEMS(23)="Cen":TEMS(24)="Tur" 1260 TEM$(25)="Con":TEM$(26)="San":TEM$(27)="Cam":TEM$(28)="Mae" 1270 REM 1280 REM ** STANDBY SCREEN 1290 REM 1300 COLOR 20,7:CLS:LOCATE 10,15,0 1310 PRINT " WAIT PLEASE ...... I'M WORKING ....... " 1320 COLOR 7,0 1330 REM 1340 REM ***************************************************************** 1350 REM READING INPUT DATA FILE "STRATI.TXT" 1360 REM ***************************************************************** 1370 REM 1380 REM Cx = field n°x of data file 1390 REM NBFI = number of read records 1400 REM CTAX = number of characters kept by taxonomic data 1410 REM NCTAX = number of characters to reserve for taxonomic data 1420 REM TMIN = chronological order of the oldest stage 1430 REM TMAX = chronological order of the most recent stage 1440 REM 1450 OPEN "STRATI.TXT" FOR INPUT AS #I 1460 WHILE NOT EOF(1) 1470 INPUT #1,C15,C25,C35,C45,C55,C65,C75,C85,C95,C105 1480 NBFI=NBFI+I 1490 GN$(IN)=MID$(CI$,2,LEN(CI$)-2) 1500 SP$ (IN) =MID$ (C25,2,LEN (C25) -2) 1510 AT$(IN)=MID$(C3$,2,LEN(C3$)-2) 1520 AP$(IN)=MID$(C4S,2,LEN(C4$)-2) 1530 LIMI$=MID$(C5$,2,3):APAS$=MID$(C6$,2,3} 1540 ASUR$=MID$(C7$,2,3):DSUR$=MID$(CS$,2,3) 1550 DPAS$=MID$(Cg$,2,3):LIMS$=MID$(CI0$,2,3) 1560 CTAX=LEN(GN$(IN))+LEN(SP$(IN))+LEN(ATS(IN))+LEN(APS(IN))+6 1570 IF CTAX>NCTAX THEN NCTAX=CTAX 1580 REM 1590 REM ** CHECK FOR THE OLDEST AND THE MOST RECENT STAGES 1600 REM 1610 FOR I=l TO 28
1620 IF LIMIS=TEM$(I) AND I<TMIN THEN TMIN=I 1630 IF APAS$=TEM$(I) AND I(TMIN THEN TMIN=I 1640 IF ASUR$=TEM$(I) AND I<TMIN THEN TMIN=I 1650 IF DSUR$=TEM$(I) AND I>TMAX THEN TMAX=I 1660 IF DPAS$=TEM$(I) AND I>TMAX THEN TMAX=I 1670 IF LIMS$=TEM$(I) AND I>TMAX THEN TMAX=I 1680 NEXT:IN=IN+I 1690 WEND:CLOSE #1 1700 REM 1710 REM ** DIMENSIONS OF TABLE TO EDIT 1720 REM NCOL = number of colums in width 1730 REM NBLO = number of blocs of NC characters
Editing stratigraphic range charts
1740 REM NLTAB = number of table lines 1750 REM N = number of lines to print 1760 NCOL=(((TMAX-TMIN)+I)*6)+NCTAX 1770 IF NCOL(NC THEN NHLO=I:GOTO 1790 1780 IF NCOL MOD NC <> 0 THEN NBLO=I+(NCOL/NC) ELSE NBLO=NCOL/NC 1790 NLTAB=NBFI+3:N=NBLO*NLTAB 1800 REM 1810 REM ** INITIALIZATION OF GRAPHIC LIMITS AND VARIABLES 1820 REM 1830 COOC$=STRING$(250,61):NX=NCTAX-I:PX=NCOL+I 1840 EG=0:BI=NX:LI=NX:FF=NX : BS=PX:LS=PX:DD=PX 1850 TI$=STRING$(170,45):PRS=STRING$(170,120):CR$=STRING$(170,43) 1860 REM 1870 REM ****************************************************************** 1880 REM WRITING OUTPUT FILE "FICHOUT" 1890 HEM ****************************************************************** 1900 HEM 1910 OPEN "R",2,"FICHOUT",NC:FIELD #2,NC AS SEGM$ 1920 HEM 1930 HEM ** BLANKING OUTPUT FILE 1940 REM 1950 BLAN$=SPACE$(80):FOR I=l TO N:LSET SEGM$=BLAN$:PUT #2,I:NEXT 1960 REM 1970 REM ** WRITING TABLE HEAD 1980 HEM 1990 LTAB$=SPACE$(250):MID$(LTABS,I,LECH)=ECH$:J=NCTAX+I 2000 FOR I=TMIN TO TMAX 2010 MID$(LTABS,J,I)="<":J=J+I 2020 MID$(LTAB$,J,3)=MID$(TEM$(I),I,3):J=J+3 2030 MID$(LTAB$,J,2)=". ":J=J+2 2040 NEXT:GOSUB 3160 2050 LTAB$=SPACE$(250) 2060 FOR I=NCTAX+I TO NCOL:MID$(LTAB$,I,I)=".":NEXT:GOSUB 3160 2070 REM 2080 REM ** WRITING TAXONOMIC AND STRATIGRAPHIC DATA 2090 REM 2100 OPEN "STRATI.TXT" FOR INPUT AS #i 2110 WHILE NOT EOF(1) 2120 2130 REM 2140 REM 2150 REM 2160 2170 2180 2190 2200 REM 2210 REM 2220 REM 2230
2240 2250 2260 REM 2270 REM 2280 REM 2290 REM 2300 2310 2320 2330 2340 2350 2360 2370 2380 2390 REM 2400 REM 2410 2420 2430 2440 REM 2450 REM 2460 REM 2470 2480 2490 2500 2510 2520 2530
INPUT #1,GN$,SP$,AT$,AP$,LIMI$,APAS$,ASUR$,DSUR$,DPASS,LIMS$
** WRITING TAXOXOMIC DATA AND STAGES LIMITS
LTAB$=SPACE$(250) DAT$=GNS(EX)+ .... +SP$(EX)+ .... +AT$(EX)+ .... +AP$(EX) C=LEN(DAT$):MID$(LTAB$,I,C)=MID$(DAT$,I,C) FOR I=NCTAX+I TO NCOL STEP 6:MID$(LTAB$,I,I}="<":NEXT
** READING STRATIGRAPHIC DATA
LIA$=MID$(LIMI$,5,1):APA$=MID$(APAS$,5,1)
ASU$=MID$(ASUR$,5,1):DSUS=MID$(DSUR$,5,1) DPA$=MID$(DPAS$,5,1):LIDS=MID$(LIMS$,5,1)
** MAKE STRATIGRAPHIC DATA NUMERIC Ci (i=1 to 6) = Boolean of data occurence in C(i+4)$ field H,I,J,K,L,M = chronological order of stages
CI=0:C2=0:C3=0:C4=0:C5=0:C6=0 : H=O:I=0:J=O:K=0:L=0:M=0 FOR A=TMIN TO TMAX
IF CI=0 AND TEM$(A)=MIDS(LIMI$,2,3) THEN H=A:LIA=VAL(LIA$):CI=I IF C2=0 AND TEM$(A)=MID$(APAS$,2,3) THEN I=A:APA=VAL(APA$):C2=I IF C3=0 AND TEM$(A)=NID$(ASUR$,2,3) THEN J=A:APP=VAL(ASU$):C3=I IF C4=0 AND TEM$(A)=MIDS(DSUR$,2,3) THEN K=A:DIS=VAL(DSU$):C4=I IF C5=0 AND TEM$(A)=MID$(DPAS$,2,3) THEN L=A:DIP=VAL(DPA$):C5=I IF C6=0 AND TEMS(A)=NID$(LIMS$,2,3) THEN M=A:LID=VAL(LID$):C6=I
NEXT ** CALCULATION OF GRAPHIC LIMITS
BI=NCTAX+((H-TMIN)*6)+LIA:B6=NCOL-((TMAX-M+I)*6)+LID B2=NCTAX+((I-TMIN)*6)+APA:B5=NCOL-((TMAX-L+I)*6)+DIP B3=NCTAX+((J-TMIN)*6)+APP:B4=NCOL-((TMAX-K+I)*6)+DIS
** GRAPHIC INTERPRETATION OF STRATIGRAPHIC DATA
IF C2=1 THEN D=B2 ELSE IF C1=1 THEN D=B1 ELSE D=H3 IF C5=I THEN F=B5 ELSE IF C6=1 THEN F=B6 ELSE F=H4 C=F-D+I:MID$(LTAB$,D,C)=MID$(TI$,I,C) IF C3=I THEN C=B4-B3+I:MID$(LTAB$,B3,C)=MIDS(PR$,I,C) IF CI=I THEN MID$(LTABS,BI)="?" IF C6=I THEN MID$(LTABS,B6)="?" GOSUB 3160:EX=EX+I
795
796 B. VRIELYNCK and A. GRANLUND
2540 2550 2560 2570 2580 2590 2600 2610 2620 2630 2640 2650 2660 2670 2680 2690 2700 2710 2720 2730 2740 2750 2760 2770 2780 2790 2800 2810 2820 2830 2840 2850 2860 2870 2880 2890 2900 2910 2920 2930 2940 2950 2960 2970 2980 2990 3000 3010 3020 3030 3040 3050 3060 3070 3080 3090 3100 3110 3120 3130 3140 3150 3160 3170 3180 3190 3200 3210 3220 3230 3240 3250
REM HEM ** CALCULATION OF CO-OCCURRENCE INTERVAL LIMITS REM
IF C3=0 THEN EG=I IF CI=I AND BI<DD THEN DD=BI IF CI=I AND C3=1 THEN IF BI<>B3 OR BI<>B3-1 THEN IF B3)BI THEN BI=B3 IF CI=1 THEN 2640 IF C2=0 AND C3=I AND B3>LI THEN LI=B3 IF C2=I AND B2>LI THEN LI=B2 IF C3=I AND B3>BI THEN BI=B3 IF C6=I AND B6>FF THEN FF=B6 IF C6=i AND C4=I THEN IF B4<>B6 OR B4+I(>B6 THEN IF B4<BS THEN BS=B4 IF C6=I THEN 2700 IF C5=0 AND C4=I AND B4(LS THEN LS=B4 IF C5=I AND BS(LS THEN LS=B5 IF C4=I AND B4(BS THEN BS=B4 IF C3=I THEN AB=B4-B3+I:MIDS(COOC$,B3,AB)=MID$(CR$,I,AB)
WEND HEM REM ** GRAPHIC INTERPRETATION OF CO-OCCURRENCE INTERVAL REM
LTAB$=SPACE$(250):MID$(LTAB$,I,27)=" CO-OCCURRENCE INTERVAL" IF LI=NX AND LS=PX THEN IF DD(FF THEN 2900 ELSE 2910 IF LS=PX THEN IF BS<>PX THEN LS=BS ELSE IF FF<>NX THEN LS=FF ELSE 2910 IF LI=NX THEN IF BI<>NX THEN LI=BI ELSE IF DD(>PX THEN LI=DD ELSE 2910 IF LI>LS THEN FOR I=LS+I TO LI-I:MID$(LTAB$,I,I)="O":NEXT:GOTO 2910 IF BI=NX AND BS=PX THEN 2910 IF BS=PX THEN IF LS~>PX THEN BS=LS ELSE IF FF(>NX THEN BS=FF IF BI=NX THEN IF LI<>NX THEN BI=LI ELSE IF DD(>PX THEN BI=DD A=LI:B=LS-LI+I:MIDS(LTAB$,A,B)=NID$(COOC$,A,B) IF BI(=BS AND EG=0 THEN A=BI:B=BS ELSE 2910 IF LI<=A AND B<=LS THEN Y=A:Z=B IF LI<=A AND LS(=B THEN Y=A:Z=LS IF A<=LI AND LS(=B THEN Y=LI:Z=LS IF A(=LI AND B<=LS THEN Y=LI:Z=B FOR I=V TO Z:MID$(LTAB$,I,1)="H":NEXT:GOTO 2910 FOR I=DD TO FF:MID$(LTABS,I,I)="8":NEXT GOSUB 3160
REM REN ****************************************************************** REM TABLE EDITION HEM ******************************************************************
REM EPSON CONTROL CODES REM
L=NLTAB LPRINT CHR$(27);"C";CHR$(72};:LPRINT CHR$(27);"N";CHR$(6); IF L>30 THEN 3030 ELSE Z=30-L LPRINT CHR$(27);"C";CNR$(36);:LPRINT CHR$(27);"N";CHR${6); GOTO 3040
IF L>30 AND L<67 THEN Z=66-L ELSE Z=66-(L MOD 66) FOR I=l TO N
GET #2,I:LPRINT SEGM$; IF I=L THEN FOR J=l TO Z:LPRINT CHR$(IO);:NEXT:L=L+NLTAB
NEXT LPRINT CHR$(27);"I";:CLOSE #2,#1:SYSTEM
REM REM ===== .... =============== END OF PROGRAM =========== .... =========== HEM REM ** SUBROUTINE : WRITING OUTPUT FILE HEM NOLTAB = order of the line in the table REM D = order of line segment in the output file REM S = position of first earacter of segment on the line
TRAM$=BLAN$:C=NC:D=NOLTAB:S=I IF NBLO>I THEN 3200 MID$(TRAM$,I,NCOL)=MID$(LTAB$,I,NCOL) LSET SEGM$=TRAM$:PUT #2,D:NOLTAB=NOLTAB+I:RETURN
FOR B=I TO NBLO MID$(TRAM$,I,C)=MIDS(LTAB$,S,C) LSET SEGM$=TRAN$:PUT #2,D:TRAM$=BLAN$ S=(C*B)+I:D=D+NLTAB IF B=NBLO-I THEN C=NCOL MOD NC
NEXT:NOLTAB=NOLTAB+I:RETURN
Editing stratigraphic range charts
A P P E N D I X 2
Example of Data File Used, GENETAB Edited Table 1
'Podobursa','triacantha',' (FISCHLI)',' (in ESSAI 84)','','','Bat6', Val6','',''
'Unuma','echinatus','ICHIKAWA & YAO',' (in ESSAI 84) ','Bajl','', Baj2','Oxf2', ....
'Emiluvia','sp.A. ,'KOCHER',' (in ESSAI 84)','','','Bat6','Ber5', ' 'Bet6'
'Spongocapsula','palmerae','PESSAGNO',° (in ESSAI 84)',~Ca14', '' , Cal5','Val3',' ,'Val4'
'Saitoum*,'elegans','DE WEVER',' (in ESSAI 84)','','Oxfl','Berl', HauS',' ',' '
'Alievium','sp.', in KOCHER',' (in ESSAI 84)','Cali', '','Cal5', Kim6', ....,
'Syringocapsa','rotunda',' (HINDE) ',' (in ESSAI 84) ',''0'Oxfl', Vall','Hau2',' ,'Hau3'
'Eucyrtidium','ptyctum','RIEDEL & SANFILIPPO',' (in ESSAI 84)', Cal6', '' , 'Oxf6' , 'Bet5 .... , , Ber6'
'Emiluvia','chica ,'FOREMAN',' (in ESSAI 84)', .... ,'Bat6','Titl', Bet6',''
°Tetraditryma','corralitosensis',' (PESSAGNO)',' (in ESSAI 84)','', ','Baj2','Titl ,'','Berl'
'Eucyrtis',"micropora','SQUINABOL',' (in ESSAI 84)','Ca14','', 'Cal5','Vall*,'Hau5',''
'Podobursa','spinosa',' (OZVOLDOVA)',' (in ESSAI 84)','Ca14','', 'Cal5','Oxf3','','Tit6'
'Parvicingula','sp.B','in WAKITA',' (in ESSAI 84)','',°Baj2 ' , 'Baj5','Cal2','Oxf6',''
'Triactoma','jonesi','PESSAGNO',' (in ESSAI 84)','Bat3',*','Oxf4', 'Berl','Ber6',''
'Saitoum','corniculum','DE WEVER',' (in ESSAI 84)','','Cali', 'Oxf6','Kiml','','Kim6'
'Pantanellium','sp.aff.P.inornatum','PESSAGNO & POISSON',' (in ESSAI 84) ','Call','','Oxf6','Ber6','','Hau5'
'Acanthocircus' , 'tetraspinus' , 'YAO',' (in ESSAI 84)','','Baj6','', '' ,'Oxf3',''
'Archaeodictyomitra','apiara',' (RUST)',' (in ESSAI 84)','Ca15','', '~ , '' , 'Titl',''
'Parvicingula','boesii gr.',' (PARONA)',' (in ESSAI 84)','','Ca15', '','', '*,'Titl'
'Andromeda','praepodbielensis','BAUMGARTNER',' (in ESSAI 84)', 'Baj6','',' ','','','Cal6'
797
~.AGI~O 1 5 : 5 - I