9
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© 1989PergamonPress 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. "Batl"). 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, "Batl" indicates basal part of Bathonian, "Cal 5" base of the upper part of Callovian. The user has to correlate these subdivisions with his own. A simple modifica- 789

GENETAB: a basic program for editing stratigraphic range charts

Embed Size (px)

Citation preview

Page 1: GENETAB: a basic program for editing stratigraphic range charts

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

Page 2: GENETAB: a basic program for editing stratigraphic range charts

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

Page 3: GENETAB: a basic program for editing stratigraphic range charts

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"

Page 4: GENETAB: a basic program for editing stratigraphic range charts

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++++++===

Page 5: GENETAB: a basic program for editing stratigraphic range charts

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

Page 6: GENETAB: a basic program for editing stratigraphic range charts

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

Page 7: GENETAB: a basic program for editing stratigraphic range charts

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

Page 8: GENETAB: a basic program for editing stratigraphic range charts

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

Page 9: GENETAB: a basic program for editing stratigraphic range charts

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