124
COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM TREE RINGS by Richard L. Phipps and Michael L Field U.S. GEOLOGICAL SURVEY Water-Resources Investisations Report 89 4028 1989

COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM TREE RINGS

by Richard L. Phipps and Michael L Field

U.S. GEOLOGICAL SURVEYWater-Resources Investisations Report 89 40281989

Page 2: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

DEPARTMENT OF THE INTERIORMANUEL LUJAN, JR., Secretary

U.S. GEOLOGICAL SURVEYDallas L Peck, Director

For additional information Copies of this report can bewrite to: purchased from:

Chief Hydrologist Western Distribution BranchU.S. Geological Survey Open-File Services SectionWater Resources Division U.S. Geological Survey461 National Center Box 25425, Federal CenterReston, Virginia 22092 Lakewood, Colorado 80225

Page 3: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

CONTENTS

Page

Abstract................................................................... 1

Introduction............................................................... 1

Calculations performed by program AREA..................................... 2

Running the programs ....................................................... 4

Input files........................................................... 5

Output files.......................................................... 7

Test run of tree-ring data from Signal Knob................................ 8

References cited........................................................... 8

Appendix A: Examples of AREA input and output files....................... 13

Appendix B: Source code listings for programs............................. 47

ILLUSTRATIONS

Figure 1

2.

3.

4.

Mean and 95-percent confidence limits of smoothed BAI (the nonclimatic component of BAI) of a pitch pine collection from Signal Knob near Front Royal, Virginia. Plot data are from the SIGNAL.CRN file created by AREA from the SIGNAL.RW and SIGNAL.RAD files. Data of the SIGNAL.RAD file are of incomplete radius lengths determined as the sum of the measured ring widths..........................

Mean and 95-percent confidence limits of smoothed BAI of the Signal Knob collection. Plot data are from the KNOB.CRN file created by AREA from the SIGNAL.RW file and measurements of total radius contained in the KNOB.RAD file............................................

Mean raw BAI of the Signal Knob collection. Based on ring width and total radius. Plot data are from the KNOB.CRN file......................................................

Mean tree-ring indices (climatic component) of the Signal Knob collection. Plot data are from the KNOB.CRN file..,

10

10

ill

Page 4: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Page

Figure 5. Ring widths of sample SIG 02-1 of the Signal Knob collec­ tion. Plot data are from the KNOB.IND file................. 11

6. Raw BAI of sample SIG 02-1 of the Signal Knob collection.Plot data are from the KNOB.IND file........................ 11

7. Smoothed BAI of sample SIG 02-1 of the Signal Knob collec­ tion. Plot data are from the KNOB.IND file................. 12

8. Tree-ring indices (climatic component) of sample SIG 02-1 of the Signal Knob collection. Plot data are from the KNOB.IND file............................................... 12

iv

Page 5: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

COMPUTER PROGRAMS TO CALCULATE BASAL-AREA INCREMENT FROM TREE RINGS

by Richard L. Phipps and Michael L. Field

ABSTRACT

Two major programs, AREA and PLOT, and two minor programs, MAKERAD and TRING, intended for use on personal computers, are de­ scribed. AREA performs preliminary data processing of ring-width data and calculates standardized ring widths and areas with and with­ out the variance attributable to climate. PLOT-provides a means of examining results from AREA graphically. MAKERAD calculates radius length from ring widths, and TRING arranges a string of ring-width data into a format acceptable by AREA Examples are given of input to, and output from, program AREA.

INTRODUCTION

AREA is a computer program to describe growth quantity from tree rings. The program has been written to handle the preliminary data processing of tree-ring data on desktop computers. AREA calculates basal-area increment, BAI (Phipps and Whiton, 1988). AREA also calculates standardized ring widths, or indices (Fritts, 1976), and sets up files that may be used as inputs to other programs such as PLOT. PLOT is a program that provides the means for graphically examining raw ring widths, standardized indices, and BAI data for individual cores and for collections (mean chronologies). TRING takes ring- width data from measurement equipment or directly from the keyboard and ar­ ranges it into a standard format for input to AREA. MAKERAD calculates radius lengths from ring-width data and creates a file in a format that may be used as input to program AREA. The basic calculations and the input and output files for AREA are described. AREA, PLOT, MAKERAD and TRING are interactive and are not intended to require operating instructions.

The original version of AREA was written in FORTRAN1 by Beth Cotter (pre­ sently with Electronic Data Systems, Herndon, Virginia). John C. Whiton (pre­ sently with the American Association of Dental Schools, Washington, D.C.) added some enhancements to AREA, including a routine to allow printer plots of results. The initial work of Cotter and Whiton provided the starting point from which the present programs have been developed. PLOT, MAKERAD, TRING, and the present version of AREA were all written by Michael Field.

The use of brand names is for information, and does not constitute endorse­ ment by the U.S. Geological Survey.

Page 6: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

CALCULATIONS PERFORMED BY PROGRAM AREA

A raw ring-width series may be thought of as year-to-year variation in tree growth, correlative with climatic and other environmental factors, and superimposed on a growth trend. Thus, in a very generalized way, the year-to- year variation may be regarded as the climatic component, and the growth trend may be regarded as the nonclimatic component. An estimation of the noncli- matic component may be obtained by fitting a smooth curve to the raw ring- width series. This is commonly accomplished with a cubic spline smoothing function (Cook and Peters, 1981). The climatic component, vc , can then be obtained by simply taking the difference between raw ring width, t/r , and the smoothed ring width, or nonclimatic component, w . A standardized climatic component, C, can be calculated by scaling the climatic component to the non- climatic component:

v - v - \r, and (1)

Because year-to-year variation in ring width is roughly proportional to ring width, standardization has the effect of more-or-less evenly distributing variance with time.

The mean of a standardized climatic component series is 0 if the smooth­ ing function has been perfectly applied. The minimum possible value of the standardized climatic component is -1.0 when v 0. By adding 1.0 to the standardized climatic component, a standardized ring-width index, I , that contains no negative values, may be calculated:

iw - c + i

(3)

This is a form of the equation that has been used for years in dendrochronol­ ogy to calculate indices. The indices may be thought of as an estimate of the standardized climatic component to which a constant of 1.0 has been added.

Because the indices are dimensionless, they are of little value in des­ cribing growth quantity. Though the nonclimatic component of ring width con­ tains one dimension, this is also of little value unless a second dimension is added. For example, a wide ring represents more growth than a narrow ring, but only so long as both rings are on radii of approximately equal length. Tree-ring area is two-dimensional and, like basal area, BA (total cross sec­ tional area at basal height), can be used to describe growth quantity. Just as ring width is an annual increment of radius length, tree-ring area can be referred to as basal -area increment, BAI .

Page 7: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Basal-area increment, BAI, is calculated from ring width, v, and radius length, R. BAI at year, t, is calculated from an equation of the difference in area between two circles:

BAI t - ir (Rt2 - Rt _i )

where ^t-1 " ^t " wf

BAI is calculated in AREA inward from the outside year. Ring widths and radii are both handled in AREA as hundredths of millimeters, whereas BAI is handled as square centimeters.

Just as raw ring widths were described, raw basal area increment, BAIr , may be thought of as composed of a climatic component superimposed on a non- climatic component. Again, as with ring widths, a cubic spline may be used to smooth BAI and produce an estimate of the nonclimatic component, BAI^. Indi­ ces, or the climatic component, Ig^j, can then be calculated as the ratio of raw BAI to smoothed BAI:

JBAI - BAIr / BAIs' < 6 >

This is the method of calculating indices used in AREA. Indices calcu­ lated from BAI data are nearly the same, but not exactly equal to indices calculated from ring widths; that is, Iv / *BAI' ^s alrea<*y stated, the smoothed widths or areas are but estimates, or approximations, of the true nonclimatic component. One might be hard pressed to judge which of the two methods gives results that more accurately represent the true climatic component.

In practice, there are essentially no differences in indices of the mean collection chronologies calculated by the two methods. However, in AREA, calculations from BAI may give erroneously large index values for the inner­ most 6-10 years of some individual cores. If the slope of the smoothed BAI trend is great and the initial values of the trend are near zero, then calcu­ lation of indices involves division by numbers near zero. Division by numbers near zero seems to be the cause of the erroneously large index values. Until this problem is resolved, the initial 6-10 index values for cores in which initial BAI values are near zero should be disregarded.

The manner of fitting a smooth curve to either ring-width or raw BAI data is a bit of a guessing game. The objective to the guessing game is to fit a curve to the data such that indices calculated from the curve contain as much of the climatic component as possible with as little of the nonclimatic com­ ponent as possible. Stating this in a different way, the more accurately the smooth curve represents the nonclimatic component, the more accurately the indices represent the climatic component. If the curve is too stiff, it might not include all of the nonclimatic component, meaning that the indices might contain considerably more than just climatic information. If the curve is too flexible, it might contain a significant portion of the climatic component, meaning that indices contain only a portion of the climatic information.

The climatic component (indices) can be correlated with climate. Intui­ tively, for any given tree-ring collection, the most accurate estimates of the nonclimatic component (smooth curves) are those that yield indices most highly

Page 8: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

correlated with climate. Indeed, for the time being, though the nonclimatic component of either BAI or widths can be estimated without calculating indi­ ces, the accuracy of the estimates can only be tested by correlating indices with climatic data.

Program AREA uses a cubic spline to smooth BAI. The cubic spline may be described as removing 50 percent of the variance of the raw BAI for cycles less than a given number of years. Thus, any given spline may be described in terms of years. For example, a 20-year spline yields a more flexible curve than does a 200-year spline. Biasing and others (1981) have shown that for the typical deciduous forest collection in which most sampled trees are 150 to 250 years old, a 60-year spline applied to ring-width data seems to remove the most nonclimatic information while retaining the most climatic information in the indices. For this reason, a 60-year spline is customarily used with the BAT data. Though any spline may be specified in AREA, the one chosen is ap­ plied to data of all cores of the collection. As more is learned regarding the nonclimatic component, improved approximations of the nonclimatic compo­ nent will no doubt be made, first by using a different spline for each core, and perhaps ultimately by using something other than a smoothing function. Because AREA can be run easily and quickly, certain insights may be gained into how certain trees are behaving by comparing results from a stiff spline (for example, 100-year), a more normal spline (60-year), and a flexible spline (20-year).

Smoothed BAI (the nonclimatic component) is individually determined for each core selected for calculation. The mean smoothed BAI is calculated by year as the mean of the smoothed BAI of all selected cores. The standard error of the mean of each year is calculated and adjusted by a multiplier from a t-table to give the 95-percent confidence limits of each yearly mean. This calculation is based on the number of cores, not the number of trees. If comparisons of data between cores within trees indicate less independence than data between trees, then a more accurate estimate of the 95-percent confidence limits could be obtained by basing the calculations on number of trees instead of number of cores.

BAI calculations are based on the assumption that the transverse area of a tree ring can be estimated as the difference between two perfect circles where ring width is the difference in radius length between the two circles (eq. 4). A better estimate may be obtained by using more than one ring width. However, the improved estimate is more accurate if the areas are individually calculated for each width and then averaged, rather than averaging the widths before calculating area.

RUNNING THE PROGRAMS

The programs may be placed on a single 360K floppy disk. Two minor pro­ grams that can also be included on the same disk are TRING and MAKERAD. Com­ piled versions of the programs are compact enough to allow inclusion on the program disk of a menu program enabling any of the programs to be accessed from a single menu. Source code listings of all four programs, AREA, PLOT, MAKERAD, and TRING, are included in Appendix B.

Page 9: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

The programs, AREA and PLOT, were written in C programming language, compiled using Microsoft C 5.0, and have been run with both DOS and MS-DOS. However, a graphics card is needed for PLOT. The screen plots are only in black and white with a CGA card, but are in selectable colors with an EGA card. PLOT was written for, and has only been run on, the HP-7475A plotter. PLOT should, however, work on a number of other HP plotter models and possibly on some other brands that use the HP-GL instruction set.

Input Files

Just as the area of a circle is a function of radius length, the area of a tree ring, BAI, is dependent upon radius length. Thus, in addition to a ring-width file, AREA requires radius data. Radius data may be input to AREA from a file created by either AREA or MAKERAD, or may be keyed in directly while executing AREA.

1. [NAME].RAD file. The radius file contains data of total radius length of each core to be used in calculations. A radius file may be created by either AREA or MAKERAD. These programs calculate radius length as the sum of ring widths of each core. Thus, this method of calculating radii is ac­ curate only if the cores are measured to pith. If the cores from which the width data were obtained were not measured to pith, or there are other reasons to use radius lengths not equal to the sum of the ring widths, radius lengths may be entered into AREA by hand (no radius file is needed or created), or entered into AREA as a special file. A radius file may be set up as follows:

a. File name -- 1-8 alphanumeric characters with a .RAD extension,

b. First line of file -- File title or message.

c. Data format -- The first 8 columns (left justified) are the core ID number. The next 6 columns (right justified) are the radius length in hundredths of millimeters. Enter data for one core per line. The following data are for two pairs of cores from a .RAD file created by MAKERAD of a white oak collection obtained at Limberlost in the Shenandoah National Park:

LIMBERLOST WHITE OAK10031 25553 361 1618 1978 177910032 31729 362 1617 1978 173210051 26234 392 1587 1978 169610052 27986 385 1594 1978 1690

In addition to core ID (identification number) and radius length, a .RAD file created by MAKERAD will include (unlabeled) number of rings, inside date, outside date, and year at which a radius length of 10 cm is reached. This last value is estimated to be the radius length at which many deciduous spe­ cies reach canopy size in a mixed-age stand.

A .RAD file created directly by AREA will contain the same information as one created by MAKERAD with the exception that the 10-cm radius is only a default value. That is, any length, including zero, may be specified.

Page 10: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

The Limberlost cores, used in the example above, were not measured to pith. Total radius of each core was measured with a millimeter rule, and the data were entered into a special .RAD file. Lines from the special file, corresponding to the example above, were:

LIMBERLOST WHITE OAK10031 2720010032 3400010051 3200010052 38000

oRadius is given in mm x 10" . Hence, the radius of core number 10031, measur­ ed to the nearest mm as 272, was entered into the special file as 27200.

AREA will only calculate data for cores specified in the radius file. Thus, even if a ring-width file is quite large, it is possible to calculate data for only a few selected cores by setting up a special radius file con­ taining only radii of the selected cores. For example, MAKERAD may be used to calculate radii of all the cores in the ring-width file of a collection. A word processor can then be used to edit the file to take out the radii of the cores in which there is no interest. Core ID's used in a radius file should be arranged in the same sequential order as the cores in the ring-width file.

2. [NAME] .RW file. The ring-width file is composed of measurement data usually generated from some type of tree-ring measurement equipment. Program TRING (included in Appendix B) takes ring-width measurements from either key­ board entry or measurement equipment and arranges the data into the following format:

a. File name -- 1-8 alphanumeric characters with a .RW extension.

b. Data format -- similar to the standard Arizona format for ring- width data. The Laboratory of Tree-Ring Research at the University of Arizona has established a format for input of ring-width data to all of their programs for standardizing tree rings.

The first line of the file is a file title or message. CAUTION: Arizona files may not include a file title line.

The rest of the file is composed of data. Originally, Arizona's data were input on punch cards for use in FORTRAN programs. Thus, the format is column dependent. The following example was modified from a ring-width file of pitch pine cores collected at Signal Knob near Front Royal, Virginia:

SIGNAL KNOB PITCH PINESIG022 1843 142 218 187 219 290 306 188SIG022 1850 192 207 280 300 229 178 156 208 225 141SIG022 1860 52 125 152 99900SIG131 1968 27 29SIG131 1970 32 24 26 31 36 15 5 23 19 16SIG131 1980 0 0 99900

The first 8 columns of each line (left justified) contain the cor'e ID number. The rest of the line contains data for a single decade. Columns 8-12 are the

Page 11: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

beginning year of data for the decade. In the example, the first year of data of the 1840's decade for sample SIG022 is 1843. Ring-width data (in mm X 102 ) are entered (right justified) in 10 fields of 6. If the year of the last ring width of a core is not a year ending in 9, then the following year is entered as 99900. Some Arizona-type files may use 999 instead of 99900.

In summary, if ring-width files created by an Arizona program are being used, the files should be checked to be sure that they contain:

1) a title line, and

2) 99900 as end of core code.

3. [NAMEJ.ELW file. AREA can handle ring-width data that have been separated into two measurements per ring. The format for the data file is similar to that described above for total ring width except that a full line contains data for a pentad, not a decade. On each line, the odd entries (1st, 3rd, and so forth) are for the inner portion of each ring (earlywood) and the even entries (2nd, 4th, and so forth) are for the outer portion (latewood). A few lines of data from a file of measurements of a loblolly pine collection from the Great Dismal Swamp on the Virginia - North Carolina border are given as an example:

Lynn Ditch loblolly - earlywood/latewood3562 1828 205 31 549 753562 1830 200 140 422 134 2423562 1835 273 150 180 111 83

6794

269139

13080

302147

123122

3562 19653562 1970

2714

226

255

2710

4114

The outside year of the example is 1973.

196

247

15 89 99900

18

Output Files

Program AREA always creates a mean collection chronology file (.CRN) in our own format and a mean chronology file of indices (.1X1) in the Arizona format.

1. [NAME].CRN file. Mean collection chronology file that contains num­ ber of cores by year, raw BAT, smooth BAI, upper and lower confidence limits of the yearly means of the smoothed data, and ring-width indices. Means are by year for the range of years specified while executing AREA. This file may be printed in two different formats from program PLOT.

2. [NAMEJ.IX1 file. Index file #1, composed of mean chronology indices for the range of years specified. This file is in the standard Arizona format for indices, and is intended for use as an input file for other programs (such as RESPONS).

3. [NAME].IND file. Program AREA will, as options, create files contain­ ing data of individual cores. This file contains original ring widths, raw

Page 12: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

BAI, smoothed BAI, and indices of all individual cores specified in the radius file. This file includes data of all years of each core regardless of what years were specified for the .CRN file. Because no means are calculated, no confidence limits are included. If the radius file contains data of many cores, and the ring-width data for these cores represent many years, this file can be quite long.

4. [NAME].1X2 file. Index file #2 contains indices of all individual cores in the standard Arizona format suitable for use as input to other pro­ grams (such as COFECHA).

TEST RUN OF TREE-RING DATA FROM SIGNAL KNOB

Tree-ring increment cores were taken from pitch pine (Pinus rigida Mill.) trees at Signal Knob at the northern end of Massanutten Mountain near Front Royal, Virginia. The samples were collected by John Whiton prior to the grow­ ing season in 1982. Two cores were collected from each of 16 trees. The cores were sanded, crossdated, and measured in accordance with standard pro­ cedures (Phipps, 1985; Stokes and Smiley, 1968). At least one core from each of four of the trees was unacceptable for measurement. The final collection is composed of 2 cores from each of 12 trees.

Signal Knob data were used as input data files to AREA and the output files from AREA were used in PLOT to create graphs of the results. Both the input and output files for the Signal Knob collection are contained in Appen­ dix A. Examples of graphs produced by PLOT of Signal Knob data calculated by AREA are presented in figures 1-8.

REFERENCES CITED

Biasing, T. J. and Duvick, D. N. , 1983, Filtering the effects of competition from ring-width series: Tree-Ring Bulletin, v. 43, p. 19-30.

Cook, E. R. and Peters, K. , 1981, The smoothing spline: a new approach to standardizing forest interior tree-ring width series for dendroclimatic studies. Tree-Ring Bulletin: v. 41, p. 45-53.

Fritts, H. C., 1976, Tree Rings and climate: Academic Press, London, 567p.

Phipps, R. L. , 1985, Collecting, preparing, crossdating, and measuring tree increment cores. U.S. Geological Survey Water Resources Investigations Report 85-4148, Reston, VA., 48p.

Phipps, R. L. and Whiton, J. C., 1988, Decline in long-term growth trends of white oak: Canadian Journal of Forest Research, v. 18, p. 24-32.

Stokes, M. A. and Smiley, T. L. , 1968, An introduction to tree-ring dating. University of Chicago Press, Chicago, 73p.

Page 13: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

LUsLU DC CJ

21

18

15

12

£ C/D<m

1895 1910 1925 1940 1955 1970 1985 2000

Figure 1. Mean and 95-percent confidence limits of smoothed BAI (the nonclimatic component of BAT) of a pitch pine collection from Signal Knob near Front Royal, Virginia. Plot data are from the SIGNAL.CRN file created by AREA from the SIGNAL.RW and SIGNAL.RAD files. Data of the SIGNAL.RAD file are of incomplete radius lengths determined as the sum of the measured ring widths.

LU SLU DC CJ

21

18

15

12

a C/D< CD

1895 1910 1925 1940 1955 1970 1985 2000

Figure 2. Mean and 95-percent confidence limits of smoothed BAI of the Signal Knob collection. Plot data are from the KNOB.CRN file created by AREA from the SIGNAL.RW file and measurements of total radius contained in the KNOB.RAD file.

Page 14: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

(D O

**1

rt

S"S

P 2

IND

EX

rt P> rt l-t

PJ

(D

i-c n>

0>

i

o <w

3H

«

s-a n> H-

o

W

(D

25

(A

O

O 3 (D 3

rt o M) ff (D §

rt

n>

o rt

u>

P>

BA

SAL

AREA INCREMENT

2 s

o

>.

rt £ CO

D* 9

-n>

g3^.

Os

°** o

o

-! ohh

ft

p.

M

O9

3 p> (A

(D a

o 3

Page 15: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

rt a

rcco

C

(D HI

n o So CO

M

O O ro 5- a> en

OQ ff o

BASA

L AREA IN

CREM

ENT

OD

ru

en

O

rt a *

dpo

rt

OQ

Pd

£

I"Spi

a>

Ml o

pa

rt O

Q P^

a>

<

MI

en o Mi a> en

OP ff § o o

WID

TH

(mm)

(i)

Jx

Ol

O)

-J

Page 16: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

28

2 ^

LU

S 20CECJ

LU CE

16

IS

cn a CD

4

1825 1850 1875 1900 1925 1950 1975 2000

Figure 7. Smoothed BAI of sample SIG 02-1 of the Signal Knob collection. Plot data are from the KNOB.IND file.

xLUa

1825 1850 1875 1900 1925 1950 1975 2000

Figure 8. Tree-ring indices (climatic component) of sample SIG 02-1 of the Signal Knob collection. Plot data are from the KNOB.IND file.

12

Page 17: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

APPENDIX A

EXAMPLES OF AREA INPUT AND OUTPUT FILES

Page Input files:

SIGNAL.RW............................................................. 15

SIGNAL.RAD............................................................ 19

KNOB.RAD.............................................................. 19

Output files:

SIGNAL.CRN............................................................ 20

KNOB.CRN.............................................................. 21

KNOB.IND.............................................................. 23

KNOB.1X1.............................................................. 42

KNOB.1X2 .............................................................. 42

13

Page 18: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Input file SIGNAL.RW

SIGNAL KNOB PITCH PINESIG01-1SIG01-1SIG01-1SIG01-1SIG01-SIG01-SIG01-SIG01-SIG01-SIG01-2SIG01-2SIG01-2SIG01-2SIG01-2SIG01-2SIG01-2SIG01-2SIG01-2SIG01-2SIG02-1SIG02-1SIG02-1SIG02-1SIG02-1SIG02-1SIG02-1SIG02-1SIG02-1SIG02-1SIG02-1SIG02-1SIG02-1SIG02-1SIG02-2SIG02-2SIG02-2SIG02-2SIG02-2SIG02-2SIG02-2SIG02-2SIG02-2SIG02-2SIG02-2SIG02-2SIG02-2SIG02-2SIG02-2SI 603- 1SIG03-1SIG03-SIG03-SIG03-SIG03-SIG03-SIG03-SIG03-SIG03-SIG03-2SIG03-2SIG03-2SIG03-2SIG03-2SIG03-2SIG03-2SIG03-2SIG03-2SIG03-2SIG03-2

190019101920193019401950196019701980189019001910192019301940195019601970198018501860187018801890190019101920193019401950196019701980184318501860187018801890190019101920193019401950196019701980189019001910192019301940195019601970198018801890190019101920193019401950196019701980

11914024413124024723211688

1159878

14910625917725310180

2848932

209907049

14782

119107

5026

01421925233

171723536846391977524

038818040

23511026392846971

5211194443

188100222131

556265

177109231107313258212

5942

13312848

14251

2401732104843

26916112895

112148

55162

087852740

21820712510094

1197540

1130

807353140

1754852

19735

273175843029

44511511035

18721

272114574015

13320417811118521314444

999001768995

14066

12217110762

9990026725011219014313410712983774934

599900

18728015260

122889463784563494918

9990014718015618460

11190

12529

999003771798781

14355

121716633

99900

349310198215187180181139

133156191174141172186145149

302148108149166116103198111

73645749

21930010880

1331124642574859555755

216171228217191124188127112

266183173111140121135120

9174

235183163168107197141106

145177127161157102206110123

25119025

193208117

911858948342323

290229156

211281246256605139452025

211232124192232

451437054

11727319598

14013752

1482847

3894

20920431725510577

1061354

193241287202103118

21231449

107492572

1129799492726

306178269

25109391348498771511434

31022821118721715511589

117

2218820

141123124131883256

9316220717928522911980

1344370

1761992471568669

14813667

18375

11112196867351254

18815610044

13652568346515961146

7192

2351901321801728884

33267

101206123

611461353262

210160244248288176255

58

16210099

164259243117220

44

1993041021511691501501037381327214

2082031031127284

116525672572718

108171243168189180118101

50

1792131521911029898975331

274191312322324214172102

26316693

22722134520217096

233254231259

93192162165137117623015

2251411861484595

1176896

102763917

248208221312281250137

5461

1721541841912381771621245633

28429331234626317811674

15516715820331122118312254

2061911423241061411362191579545

425

141156174236

418098

10310362551724

320203201286357200674312

25614218120821829314634449

15

Page 19: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Input file SIGNAL.RW, continued

SIG05-SIG05-SIG05-SIG05-SIG05-SIG05-SIG05-SIG05-SIG05-2SIG05-2SIG05-2SIG05-2SIG05-2SIG05-2SIG05-2SIG05-2SIG05-2SIG05-2SIG05-2SIG06-SIG06-SIG06-SIG06-SIG06-SIG06-SIG06-SIG06-SIG06-SIG06-SIG06-SIG06-2SIG06-2SIG06-2SIG06-2SIG06-2SIG06-2SIG06-2SIG06-2SIG06-2SIG06-2SIG06-2SIG08-SIG08-SIG08-SIG08-SIG08-SIG08-SIG08-SIG08-SIG08-SIG08-SIG08-SIG08-2SIG08-2SIG08-2SIG08-2SIG08-2SIG08-2SIG08-2SIG08-2SIG08-2SIG08-2SIG09-1SIG09-1SIG09-1SIG09-1SIG09-1SIG09-1SIG09-1SIG09-1

1910192019301940195019601970198018801890190019101920193019401950196019701980188218901900191019201930194019501960197019801880189019001910192019301940195019601970198018871890190019101920193019401950196019701980189019001910192019301940195019601970198018901900191019201930194019501960

32552916033073819111734

2844829

1142061802401841776517

48352

11413614196

171138826227

2891792

10611481

1371321004752

4711261461832101342072501391086858

1491391961581531901179956

179127182224

8418311093

362527145303376209

9519

350196996

199206266206158286

26859

182141126

0135112624122

30055

157105120

0115102874532

358148183171207172247184166384197

200107204119162138136

4118

181182159172

018512478

32949912617029224967

9990020511069

11415718225917314543

99900210107158155133

7285

1356533

999003411021261381076045977144

9990066120018117117112511616611188

999001791691421541211131779079

99900187122191110

161028485

512380243106262360110

13916712711620328515316813784

17214722621319012670

10291

100

1961102551551248676856580

228231199129174114196161128

200170125120173109179132116

2512012339682

12011490

319309242106216209104

223178157110161222136173110100

31319615911716314754985166

18920717882

13812146924455

23519515112216688

118118133

20522010194

15469

126120156

25614096

14782429346

28431932323728716568

2439915

120236208167227126

71

237119109167165159103954663

213134120129149131104864561

13615814284

12524917211547

12214713999

14819618110053

9762

17114611515212648

34627824927424812685

291116

51171209138182209

9647

230195204183158

81116924732

62715316114111189

133954552

1941591981311271401589675

1852291731391062111749380

881501561271121428643

41137929632821425647

21019113725621919318011814431

360263234218116124140

616638

27922419116886

119129736130

270248157114165141

9116169

26217714913018419496

14057

116200236130167124

70111

379438333395316213

99

26420812816130224128618310888

218293178184156147107

3153

2041962201321581481221065978

25527819318015123720813599

25818620719618425914011959

19222818319019814410699

35338537068118214540

3492121762112592181661106819

193160158185201127483820

23415815614515218798644836

1801831712202202071486330

225184199224251195865320

174137158175188106

7563

16

Page 20: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Input file SIGNAL.RW, continued

SIG09-1SIG09-1SIG09-2SIG09-2SIG09-2SIG09-2SIG09-2SIG09-2SIG09-2SIG09-2SIG09-2SIG09-2SIG11-1SIG11-1SIG11-1SIG11-1SIG11-1SIG11-1SIG11-1SIG11-1SIG11-1SIG11-1SIG11-1SIG11-1SIG11-1SIG11-2SIG11-2SIG11-2SIG11-2SIG11-2SIG11-2SIG11-2SIG11-2SIG11-2SIG11-2SIG11-2SIG11-2SIG12-1SIG12-1SIG12-1SIG12-1SIG12-1SIG12-SIG12-SIG12-SIG12-SIG12-SIG12-SIG12-2SIG12-2SIG12-2SIG12-2SIG12-2SIG12-2SIG12-2SIG12-2SIG12-2SIG13-1SIG13-1SIG13-1SIG13-1SIG13-1SIG13-1SIG13-1SIG13-1SIG13-1SIG13-1SIG13-1SIG13-1SIG13-2

1970198018901900191019201930194019501960197019801863187018801890190019101920193019401950196019701980187018801890190019101920193019401950196019701980188218901900191019201930194019501960197019801900191019201930194019501960197019801870188018901900191019201930194019501960197019801870

6734

3411542472462322132111351058265

20531421498

14614286

14216011056257

246157

411071075286

115496345

3026128

258264

9313712712480

12528

25118958

112123112744624

393212

9413314789

15816583329

35

030

2871272432491392421901167764

10515

239204114124167

01481639426

040

21912262

12083

0113113671416

31468

130207211

2111715812730

11691

18816622

10610396445570

32622713911317259

1651296429

064

4899900

31020623028668

228144120

1499900

8460

41319393

15614931

10013310048

9990058

37514680

136682489805226

99900300121116352177

51124120

7339

9990050

26116152

1361348259

99900138519252

7314217677

1031085523

99900111

38

25915224819811112714911090

15691

2502101951707880

10911710870

144216190148158834767

1058362

308141194227467288

11717474

108269

259983

13512585

19233329599

1531561251031176339

208

25

25520724620512499

1486872

16688

289224144106824876

1336396

11521421313864705242734966

20618519416750

13253

12277

107

9915038

14445

1296080

150391289

9182

135116

721224931

208

48

23819411819117725516360

103

2071381901411441369084

16413367

111

15913312497

1075571

106806275

30138

288248

7714376

11347

127

179210

65125110130

5577

18835118695

1091391271511083515

198

32

821181751831651761306876

22422227613615514210943

10913631

109

193263

7695

113813766

1033464

32337

27414112614440

1185679

226143130106107875335

25749415388

13513593

1151013019

242

20

135160171226203266

9811041

22020018317317910682

15110210028

234240174192114795178696540

32287

20121310616349808474

232206105143130628135

347388224140143116140145885619

290

40

12724622314621329317814459

3232341911841281801301791746054

38626214925199

10865

1201044139

189230230171180166178105114

3111801561321561419480

4594022011501191532111601822720

467

16

199208183237243214

9412062

2312581332251281581551861055042

261244112200110104110130

732946

1542091911741871521459349

227167152150141826720

3543461641231051481841271132917

404

17

Page 21: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Input file SIGNAL.RW, continued

SIG13-2SIG13-2SIG13-2SIG13-2SIG13-2SIG13-2SIG13-2SIG13-2SIG13-2SIG13-2SIG13-2SIG14-SIG14-SIG14-SIG14-SIG14-SIG14-SIG14-1SIG14-1SIG14-1SIG14-1SIG14-1SIGU-2SIG14-2SIG14-2SIG14-2SIG14-2SIGH-2SIG14-2SIG14-2SIG14-2SIG14-2SIG14-2SIG16-1SIG16-1SIG16-1SIG16-1SIG16-1SIG16-1SIG16-1SIG16-1SIG16-1SIG16-1SIG16-1SIG16-1SIG16-1SIG16-2SIG16-2SIG16-2SIG16-2SIG16-2SIG16-2SIG16-2SIG16-2SIG16-2SIG16-2SIG16-2SIG16-2SIG16-2SIG16-2

188018901900191019201930194019501960197019801880189019001910192019301940195019601970198018801890190019101920193019401950196019701980186218701880189019001910192019301940195019601970198018501860187018801890190019101920193019401950196019701980

3842584296

12287

108886232

056019246

143216134176172805741

507190

241162791742091611093724

26525

29449

10212215394

14994908941

2072620

216423181

13289

118103855341

3591984970

1386673

1027624

037910384

129201150161142733518

3781514576

349126179164110

218

42468

19410615794

16639

16885906744

3128834

13248

12589

128488893904130

57021762

113111

5152859626

9990031215986

14815811079

1258857

9990032116086

11022496

1171379334

999002411612811881311331089297719957

99900251248112179122

91101120

6171796129

99900

2792701111211298644787431

29518315919614116669

12310467

29627110718918921393

13912762

21219724421913716214215284789070

2031821591351861001101267071

1157737

331330

9369

1099139625236

17921519213412119673

1547467

269289158152171207

7814210253

15945

22925514581

12811358545453

19814959

1352018971

1208771864934

242173898390

11160

1023415

2842021721541611711201427573

3512191451581591911571288237

20566

172152182116132122137825366

29715178

135112101929297

1291103968

43519792

1021025746

13336

5

39021420715514883

1351116067

89725222020118269

133113

6144

2101602661721691201308694

1003544

18820717925710516092

10746

106892735

36716214480879071

1014623

340352248172170129147796748

441313223229182104195937431

19813322019621013411012395635414

30126711211713818713811086

115723212

44614917064

13312687

1194319

311285235223260174200107

7063

2952892952102951832241354344

2501772451861651531731211285777

2332222741651782341691171471351263271

42810313196

14212084763016

346271213265229228162684048

436289225182276196221922030

191215202217147148173136806637

20016916419510715012014312993773439

18

Page 22: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Input file SIGNAL.RAD

SIGNAL KNOB PITCHSIG01-1SIG01-2SIG02-1SIG02-2SIG03-1SIG03-2SIG05-1SIG05-2SIG06-1SIG06-2SIG08-1SIG08-2SIG09-1SIG09-2SIG11-1SIG11-2SIG12-1SIG12-2SIG13-1SIG13-2SIG14-1SIG14-2SIG16-1SIG16-2

15405136771514312673142511334819219162111332212640159131333911038154451620012150143979561166251443616196177861605415544

PINE829213213992102721021001029592929211911210082112112102102120132

190018901850184318901880191018801882188018871890189018901863187018821900187018701880188018621850

198119811981198119811981198119811981198119811981198119811981198119811981198119811981198119811981

19471953191419281941194119391937193919461938195019611940191919481939

0191419191926192019181915

Input file KNOB.RAD

SIGNAL KNOB PITCH PINESIG01-1 17500SIG01-2 19500SIG02-1 19500SIG02-2 16500SIG03-1 17500SIG03-2 13500SIG05-1 19500SIG05-2 17200SIG06-1 15000SIG06-2 14000SIG08-1 19000SIG08-2 16500SIG09-1 16500SIG09-2 19000SIG11-1 18200SIG11-2 17000SIG12-1 15000SIG12-2 12200SIG13-1 20500SIG13-2 18700SIG14-1 17200SIG14-2 21000SIG16-1 21000SIG16-2 18000

19

Page 23: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Output file SIGNAL.CRN

SIGNAL KNOB PITCH PINE

NUMBER OF CORES: HS= 0.220190019101920193019401950196019701980

232424242424242424

232424242424242424

2324242424242424

2324242424242424

2324242424242424

2324242424242424

2324242424242424

2324242424242424

2324242424242424

2324242424242424

BASAL AREA INCREMENT (not 1900 2.061 3.388 3.261 1910 4.367 4.000 5.528 1920 8.519 8.913 7.676 1930 6.316 3.636 4.458 1940 11.410 11.571 7.657 1950 13.057 11.369 9.542 1960 9.274 8.900 8.098 1970 6.037 3.374 3.713 1980 4.030 2.409

smoothed): 4.532 4.618

4.480 6.829 7.983 4.730 9.504

6.5167.2517.7906.777

10.22810.1987.126

3.6485.3176.8918.837

10.630

6.5496.426

4.7226.2567.2466.1459.499

10.669 10.3645.953 5.1085.978 4.916

6.217 7.493 6.535 7.394 7.454 7.429 7.291 10.715 11.098 8.587 11.343 13.285

10.736 14.176 13.039 7.588 12.217 7.884 8.934 7.332 5.169 3.30a 5.664 3.039

MEAN 1900 1910 1920 1930 1940 1950 1960 1970 1980

BAI TREND: 4.431 4.554 5.531 5.680 7.002 7.142 8.313 8.436 9.435 9.516 9.756 9.712 8.640 8.456 6.464 6.221 3.961 3.706

4.677 5.829 7.279 8.559 9.587 9.652 8.263 5.975

4. 5. 7. 8. 9. 9. 8. 5.

801 978 414 680 650 576 060 728

4.926 6.127 7.547 8.800 9.703 9.484 7.849 5.479

5.051 6.276 7.678 8.918 9.745 9.378 7.631 5.229

5.177 6.424 7.808 9.033 9.776 9.257 7.407 4.977

5.303 6.571 7.937 9.143 9.793 9.122 7.177 4.724

5.429 6.717 8.064 9.247 9.796 8.973 6.943 4.470

5.555 6.860 8.189 9.345 9.784 8.813 6.705 4.216

UPPER 95% CONFIDENCE LIMIT:1900 5.545 5.647 5.751 5.856 5.963 6.072 6.182 6.294 6.407 6.521 1910 6.495 6.622 6.753 6.887 7.025 7.167 7.312 7.461 7.612 7.764 1920 7.919 8.074 8.230 8.386 8.543 8.700 8.857 9.014 9.172 9.329 1930 9.485 9.642 9.800 9.957 10.114 10.269 10.421 10.569 10.712 10.849 1940 10.977 11.096 11.205 11.304 11.392 11.468 11.531 11.577 11.606 11.616 1950 11.606 11.574 11.523 11.450 11.358 11.247 11.117 10.968 10.803 10.621 1960 10.423 10.210 9.984 9.745 9.495 9.235 8.966 8.689 8.406 8.117 1970 7.825 7.530 7.233 6.935 6.638 6.341 6.045 5.752 5.462 5.176 1980 4.895 4.620

LOWER190019101920193019401950196019701980

INDEX190019101920193019401950196019701980

95% CONFIDENCE LIMIT:3.3174.5666.0867.1407.8927.9076.8575.1033.027

VALUE:0.4650.7901.2170.7601.2091.3381.0730.9341.017

3.4604.7376.2097.2307.9357.8496.7024.9122.793

0.7440.7041.2480.4311.2161.1711.0520.5420.650

3.6044.9056.3287.3177.9707.7816.5414.717

0.6970.9481.0550.5210.7990.9890.9800.621

3.5.6.

747069442

7.4037.7.6.4.

0.1.0.0.0.1.1.1.

996701374520

944090978898702068265244

3.8895.2296.5517.4878.0137.6106.2024.320

0.9370.7310.9050.9070.4881.0020.8341.173

4.0315.3856.6577.5688.0227.5086.0274.116

0.7220.8470.8970.9911.0911.1380.7801.143

4.1715.5366.7607.6448.0217.3975.8473.908

0.9120.9740.9280.6800.9721.1200.6900.988

4.3125.6816.8597.7168.0097.2755.6653.696

1.1721.1250.9190.9391.0960.8321.2450.699

4.4505.8226.9557.7827.9867.1445.4803.478

1.3801.110

.329

.227

.447

.361

.056

.267

4.5885.9567.0497.8417.9527.0055.2933.256

1.1771.0831.3551.4221.3330.8950.7710.721

20

Page 24: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Output file KNOB.CRN

SIGNAL KNOB PITCH PINE

NUMBER OF CORES: MS= 0.221190019101920193019401950196019701980

232424242424242424

232424242424242424

2324242424242424

2324242424242424

2324242424242424

2324242424242424

2324242424242424

2324242424242424

2324242424242424

2324242424242424

BASAL AREA INCREMENT (not smoothed):1900 3.725 5.671 5.417 7.383 7.414 5.653 7.162 9.490 11.442 9.820 1910 6.609 5.962 8.149 9.673 6.488 7.499 8.785 10.282 10.292 10.220 1920 11.657 12.045 10.290 9.765 9.209 9.208 9.656 9.624 13.986 14.480 1930 8.222 4.612 5.703 10.016 10.206 11.372 7.980 11.114 14.462 16.872 1940 14.415 14.574 9.605 8.591 5.897 13.476 11.880 13.365 17.554 15.801 1950 15.656 13.796 11.577 12.485 11.493 12.923 12.504 9.129 14.722 9.572 1960 11.246 10.731 9.662 12.070 7.770 7.085 6.078 10.703 8.758 6.159 1970 7.238 3.972 4.439 8.523 7.623 7.123 5.778 3.896 6.667 3.623 1980 4.768 2.861

MEAN BAI TREND:1900 7.531 7.611 7.695 7.781 7.871 7.964 8.059 8.158 8.258 8.3601910 8.227 8.356 8.487 8.620 8.754 8.889 9.025 9.160 9.295 9.4291920 9.561 9.691 9.819 9.945 10.070 10.193 10.315 10.436 10.556 10.6751930 10.792 10.910 11.027 11.144 11.259 11.373 11.482 11.587 11.685 11.7751940 11.856 11.926 11.985 12.034 12.071 12.095 12.106 12.101 12.079 12.0401950 11.982 11.905 11.809 11.696 11.564 11.415 11.250 11.069 10.873 10.6621960 10.439 10.202 9.955 9.697 9.431 9.156 8.875 8.589 8.297 8.0021970 7.703 7.401 7.098 6.793 6.486 6.177 5.867 5.556 5.244 4.9311980 4.618 4.305

UPPER 95X CONFIDENCE LIMIT:1900 8.927 8.970 9.016 9.068 9.126 9.188 9.256 9.329 9.406 9.4881910 9.394 9.491 9.593 9.701 9.815 9.935 10.060 10.191 10.325 10.4631920 10.604 10.747 10.892 11.038 11.185 11.334 11.484 11.635 11.786 11.9381930 12.089 12.242 12.396 12.550 12.704 12.856 13.004 13.149 13.286 13.4161940 13.535 13.644 13.740 13.825 13.896 13.954 13.995 14.018 14.021 14.0021950 13.960 13.894 13.806 13.695 13.562 13.407 13.232 13.036 12.822 12.5891960 12.339 12.074 11.793 11.499 11.192 10.875 10.549 10.215 9.875 9.5281970 9.178 8.825 8.471 8.116 7.762 7.408 7.055 6.705 6.359 6.0161980 5.679 5.347

LOWER 95X CONFIDENCE LIMIT:1900 6.134 6.253 6.373 6.494 6.616 6.739 6.863 6.987 7.110 7.2331910 7.059 7.222 7.382 7.539 7.693 7.843 7.989 8.130 8.265 8.3941920 8.517 8.634 8.746 8.852 8.954 9.052 9.146 9.238 9.326 9.4121930 9.495 9.577 9.658 9.738 9.815 9.890 9.960 10.025 10.084 10.1351940 10.176 10.209 10.231 10.243 10.245 10.236 10.216 10.184 10.138 10.0781950 10.004 9.915 9.813 9.696 9.567 9.424 9.269 9.102 8.924 8.7361960 8.538 8.331 8.117 7.896 7.669 7.437 7.201 6.962 6.720 6.4751970 6.227 5.977 5.725 5.469 5.210 4.947 4.679 4.406 4.129 3.8461980 3.557 3.262

INDEX 1900 1910 1920 1930 1940 1950 1960 1970 1980

VALUE: 0.495 0.803 1.219 0.762 1.216 1.307 1.077 0.940 1.032

0.745 0.714 1.243 0.423 1.222 1.159 1.052 0.537 0.665

0.704 0.960 1.048 0.517 0.801 0.980 0.971 0.625

0.949 1.122 0.982 0.899 0.714 1.068 1.245 1.255

0.942 0.741 0.915 0.906 0.489 0.994 0.824 1.175

0.710 0.844 0.903 1.000 1.114 1.132 0.774 1.153

0.889 0.973 0.936 0.695 0.981 1.111 0.685 0.985

1. 1. 0. 0. 1. 0. 1. 0.

163 122 922 959 104 825 246 701

1.386 1.107 1.325 1.238 1.453 1.354 1.055 1.271

1.175 1.084 1.356 1.433 1.312 0.898 0.770 0.735

21

Page 25: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Output file KNOB.IND

SIGNAL KNOB PITCH PINE

RING 1900 1910 1920 1930 1940 1950 1960 1970 1980

WIDTHS 0.119 0.140 0.244 0.131 0.240 0.247 0.232 0.116 0.088

SIG01-1 0.177 0 0.109 0 0.231 0 0.107 0 0.313 0 0.258 0 0.212 0 0.059 0 0.042

MS= .133 .204 .178 .111 .185 .213 .144 .044

0.344 0.349 0.310 0.198 0.215 0.187 0.180 0.181 0.139

1900= 0.235 0.183 0.163 0.168 0.107 0.197 0.141 0.106

0.00 0.038 0.094 0.209 0.204 0.317 0.255 0.105 0.077

CM. 0.093 0.162 0.207 0.179 0.285 0.229 0.119 0.080

0. 0. 0. 0. 0. 0. 0. 0.

210 160 244 248 288 176 255 058

0.274 0.191 0.312 0.322 0.324 0.214 0.172 0.102

0.284 0.293 0.312 0.346 0.263 0.178 0.116 0.074

AREA 1900 1910 1920 1930 1940 1950 1960 1970 1980

1.6113.5869.1606.763

15.53519.88721.79812.0799.629

SPLINE 1900 1.767 1910 4.807 1920 8.091 1930 11.794 1940 15.576 1950 17.723 1960 16.740 1970 13.088 1980 8.385

SIG012.5612.8779.0175.604

20.80421.18220.2156.1764.613

SIG012.0695.1198.443

12.18215.89817.77216.47312.6367.906

-1

2.054 5.586 7.177 5.889

12.586 17.803 13.892 4.620

-1

2.371 5.433 8.799

12.573 16.202 17.787 16.179 12.177

5.9178.9898.217

11.62812.94015.26717.64614.676

2.6735.7509.160

12.96516.48517.76915.86011.713

4.4165.5906.9499.2887.503

16.94213.88911.273

2.9756.0719.525

13.35716.74617.71815.51911.244

0.7472.9539.155

11.51722.65122.29210.4248.233

3.2776.3969.895

13.74716.98317.63415.15610.772

I.8655.2209.338

10.32120.90420.368II.898 8.593

3.5806.726

10.26914.13217.19317.51714.77510.297

4.4125.317

11.35314.63221.64215.87825.7956.255

3.8857.060

10.64614.51117.37417.36914.3769.821

6.1746.558

15.06119.57424.97119.56817.63011.052

4.1917.399

11.02714.88017.52317.18913.9609.343

6.89710.50615.67321.75920.75416.49511.9958.059

4.4987.743

11.40915.23517.64016.97913.5308.865

INDEX190019101920193019401950196019701980

SIG01-10.9120.7461.1320.5730.9971.1221.3020.9231.148

1.2380.5621.0680.4601.3091.1921.2270.4890.583

01000100

.866

.028

.816

.468

.777

.001

.859

.379

2.2141.5630.8970.8970.7850.8591.1131.253

1.4840.9210.7300.6950.4480.9560.8951.003

0.2280.4620.9250.8381.3341.2640.6880.764

0.5210.7760.9090.7301.2161.1630.8050.835

1.1360.7531.0661.0081.2460.9141.7940.637

1.4730.8861.3661.3151.4251.1381.2631.183

1.5331.3571.3741.4281.1770.9710.8870.909

RING 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980

WIDTHS 0.115 0.098 0.078 0.149 0.106 0.259 0.177 0.253 0.101 0.080

SIG01-2 MS= 0.133 0.176 0.128 0.089 0.048 0.095 0.142 0.140 0.051 0.066 0.240 0.122 0.173 0.171 0.210 0.107 0.048 0.062 0.043

0 0. 0. 0. 0. 0. 0. 0. 0. 0.

.399 133 156 191 174 141 172 186 14? 149

1890= 0.145 0.177 0.127 0.161 0.157 0.102 0.206 0.110 0.123

0.00 0.106 0.013 0.054 0.193 0.241 0.287 0.202 0.103 0.118

CM. 0.134 0.043 0.070 0.176 0.199 0.247 0.156 0.086 0.069

0.162 0.100 0.099 0.164 0.259 0.243 0.117 0.220 0.044

0.263 0.166 0.093 0.227 0.221 0.345 0.202 0.170 0.096

0.155 0.167 0.158 0.203 0.311 0.221 0.183 0.122 0.054

AREA 1890 1900 1910 1920 1930

4.2494.5534.1768.9597.511

1940 21.3271950 17.0181960 27.2041970 11.7801980 9.760

SIG01-5.0186.0372.5898.6683.639

20.13916.82422.886

5.6215.263

26.8114.2595.1668.6704.733

10.37616.81411.7687.282

5.2767.585

10.55910.94710.20414.78718.49816.06217.599

5.8798.7917.148

10.29911.5098.857

20.74012.27314.633

4.3810.6533.070

12.56017.96725.27220.59711.56114.128

5.6392.1694.007

11.65815.11122.16416.0829.7048.302

6.9685.0895.719

11.03820.04022.17912.16225.0355.309

11.6648.5865.429

15.55717.43332.12621.19919.55311.626

7.0788.8129.348

14.18725.05220.97219.42714.1446.565

23

Page 26: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Output file KNOB.IND, continued

SPLINE 1890 4.902 1900 5.490 1910 6.534 1920 8.956 1930 12.662 1940 16.560 1950 18.476 1960 17.326 1970 13.765 1980 9.157

SIG01-4.9595.5576.7049.283

13.06916.87318.49617.05713.3308.681

25.0175.6286.8899.623

13.48017.16218.48416.76412.886

5.0745.7077.0909.974

13.89317.42818.44116.44912.436

5.1325.7927.307

10.33614.30517.66918.36816.11411.979

5.1895.8877.541

10.70614.71217.88218.26515.76111.516

5.2475.9927.791

11.08515.11118.06618.13315.39111.049

5.3066.1088.059

11.47115.49818.21817.97315.00610.578

5.3666.2378.342

11.86315.87118.33817.78414.60510.106

5.4266.3788.642

12.26016.22618.42317.56914.1919.632

INDEX1890190019101920193019401950196019701980

0.8670.8290.6391.0000.5931.2880.9211.5700.8561.066

SIG01-2 1.012 1.358 1.087 0.757 0.386 0.750 0.934 0.901 0.278 0.351 1.194 0.605 0.910 0.910 1.342 0.702 0.422 0.565 0.606

1. 1. 1. 1. 0. 0. 1. 0. 1.

040 329 489 098 734 848 003 976 415

1.146 1.518 0.978 0.996 0.805 0.501 1.129 0.762 1.222

0.844 0.111 0.407 1.173 1.221 1.413 1.128 0.734 1.227

1 0 0 1 1 1 0 0 0

.075

.362

.514

.052

.000

.227

.887

.630

.751

1 0 0 0 1 1 0 1 0

.313

.833

.710

.962

.293

.217

.677

.668

.502

2.174 1.377 0.651 1.311 1.098 1.752 1.192 1.339 1.150

1.304 1.382 1.082 1.157 1.544 1.138 1.106 0.997 0.682

RING WIDTHS18501860187018801890190019101920193019401950196019701980

0.2840.0890.0320.2090.0900.0700.0490.1470.0820.1190.1070.0500.0260.000

SIG02-1 MS=0.2690.1610.1280.0950.1120.1480.0550.1620.0000.0870.0850.0270.0040.000

0.2670.2500.1120.1900.1430.1340.1070.1290.0830.0770.0490.0340.005

0.5330.3020.1480.1080.1490.1660.1160.1030.1980.1110.0730.0640.0570.049

1850=0.2510.1900.0250.1930.2080.1170.0910.1850.0890.0480.0340.0230.023

0.000.2120.3140.0490.1070.0490.0250.0720.1120.0970.0990.0490.0270.026

CM.0.1480.1360.0670.1830.0750.1110.1210.0960.0860.0730.0510.0250.004

0000000000000

.199

.304

.102

.151

.169

.150

.150

.103

.073

.081

.032

.072

.014

0.2330.2540.2310.2590.0930.1920.1620.1650.1370.1170.0620.0300.015

0.2060.1910.1420.3240.1060.1410.1360.2190.1570.0950.0450.0040.025

AREA 1850 1860 1870 1880 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980

8.0283.7871.766

12.9556.5975.6594.329

13.9988.573

13.13912.3945.9643.1560.000

SIG02-8.0716.9777.1265.9798.281

12.067 4.877

15.584 0.000 9.662 9.897 3.227 0.486 0.000

18.461

11.1576.320

12.12910.68711.0449.542

12.5278.7208.5915.7264.0700.608

10.1106.7906.1699.670

12.5679.6519.254

19.43111.7308.1797.5026.8405.963

SPLINE 1850 8.023 1860 8.254 1870 8.558 1880 9.284 1890 10.038 1900 10.270 1910 10.863 1920 11.774 1930 11.683 1940 10.449 1950 8.334 1960 5.706

SIG028.0448.2828.5989.38110.07310.30310.95211.83111.59910.2738.0815.445

-18.065 8.311 8.645 9.476

10.102 10.341 11.046 11.874 11.507 10.089 7.823 5.185

8.0878.3418.7009.568

10.12510.38511.14411.90311.4059.8977.5624.927

8.8398.9191.438

12.73315.9919.8208.231

18.3789.4615.3963.9962.7662.804

8.1088.3718.7639.657

10.14510.43511.24311.91511.2959.6967.2984.671

7.77415.2372.8317.1603.8072.1096.549

11.23110.36811.1765.7713.2513.174

8.1308.4018.8349.740

10.16210.49211.34311.91311.1779.4887.0324.417

5.5946.7923.895

12.4135.8569.414

11.0809.6899.2428.2806.0233.0140.489

7.73915.6025.984

10.40113.32512.84413.86310.4607.8819.2273.7878.7041.711

8.1538.4308.9149.816

10.17910.55511.44211.89511.0509.2726.7664.166

8.1768.4609.0019.885

10.19710.62511.53711.86210.9149.0496.5003.916

9.37813.48113.79418.1737.409

16.64715.13116.89514.88113.4007.3563.6361.835

8.2018.4909.0929.945

10.21810.69911.62511.81610.7698.8186.2343.667

8.57510.4048.646

23.3288.511

12.37212.83022.68817.19810.9445.3540.4853.061

8.2278.5229.1889.996

10.24210.77911.70511.75610.6148.5795.9703.421

24

Page 27: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Output file KNOB.IND, continued

19701980

30

.176

.783

INDEX18501860187018801890190019101920193019401950196019701980

RING184318501860187018801890190019101920193019401950196019701980

AREA184318501860187018801890190019101920193019401950196019701980

10010001011100

.001

.459

.206

.395

.657

.551

.399

.189

.734

.257

.487

.045

.994

.000

WIDTHS000000000000000

.142

.192

.052

.033

.171

.072

.035

.036

.084

.063

.091

.097

.075

.024

.000

2.9330.544

2.692 2.452 2.213 1.975 1.736 1.498 1.260 1.021

SIG02-11.0030.8430.8290.6370.8221.1710.4451.3170.0000.9401.2250.5930.1660.000

.049

.3420.731

.280

.058

.0680.8641.0550.7580.8520.7320.7850.226

SIG02-2 MS=0.2180.2070.1250.1000.0940.1190.0750.0400.1130.0000.0800.0730.0530.0140.000

0.1870.2800.1520.0600.1220.0880.0940.0630.0780.0450.0630.0490.0490.018

1.2500.8140.7091.0111.2410.9290.8301.6321.0280.8260.9921.3882.432

0.4370.2190.3000.1080.0800.1330.1120.0460.0420.0570.0480.0590.0550.0570.055

1.0901.0650.1641.3191.5760.9410.7321.5420.8380.5570.5480.5921.267

1843=0.2900.2290.1560.0210.1280.1240.0620.0560.0600.0510.0390.0450.0200.025

0.9561.8140.3200.7350.3750.2010.5770.9430.9281.1780.8210.7361.607

0.000.3060.1780.2690.0250.1090.0390.0130.0480.0490.0870.0710.0510.0140.034

0.6860.8060.4371.2650.5750.8920.9680.8150.8360.8930.8900.7240.281

CM.0.1880.1560.1000.0440.1360.0520.0560.0830.0460.0510.0590.0610.0140.006

0.9471.8440.6651.0521.3071.2091.2020.8820.7221.0200.5832.2231.142

0.2080.2030.1030.1120.0720.0840.1160.0520.0560.0720.0570.0270.018

1.1431.5881.5171.8270.7251.5561.3021.4301.3821.5201.1800.9911.457

0.2250.1410.1860.1480.0450.0950.1170.0680.0960.1020.0760.0390.017

1.0421.2210.9412.3340.831

.148

.096

.930

.620

.2760.8970.1422.998

0.1410.1560.1740.2360.0410.0800.0980.1030.1030.0620.0550.0170.024

SIG02-23621

105227589720

.478

.602

.457

.860

.601

.069

.628

.848

.027

.548

.364

.343

.510

.455

.000

SPLINE184318501860187018801890190019101920193019401950196019701980

677766555565431

.971

.258

.288

.038

.994

.637

.786

.478

.713

.956

.230

.971

.834

.092

.213

5.5867.3785.9755.6795.9068.4505.6583.1749.5240.0007.3967.0705.3291.4330.000

5.02910.4087.3983.4377.7486.3067.1415.0206.6213.9785.8534.7654.9421.845

6.16911.6985.3454.6188.5538.0963.5153.3604.8624.2575.5045.3665.7685.650

8.6339.3107.8491.2198.3369.0564.7584.4985.1404.5393.6504.4042.0292.574

9.6827.464

13.8941.4557.1802.8681.0013.8714.2157.7816.6705.0071.4223.507

6.2406.7055.2812.5709.0633.8394.3236.7283.9704.5835.5666.0101.4230.620

9.17810.9146.0647.5515.3446.5229.4754.5045.0516.8225.6372.7471.860

10.2357.733

11.11910.0993.3567.4299.6425.9168.7059.7217.5483.9771.759

6.5768.701

10.59816.3883.0696.3008.1439.0169.4045.9415.4851.7362.486

SIG02-27.0177.2867.2687.0176.9906.5585.7205.4865.7385.9866.2385.8974.6772.9081.022

7.0637.3087.2477.0006.9816.4735.6625.5005.7616.0176.2395.8134.5132.724

7.1077.3257.2236.9886.9656.3845.6125.5205.7836.0496.2335.7204.3452.538

7.1507.3357.1996.9816.9436.2935.5695.5435.8056.0816.2205.6184.1722.352

7.1907.3397.1726.9796.9136.2015.5355.5705.8286.1136.2005.5083.9962.164

7.2267.3387.1456.9816.8746.1105.5095.5995.8516.1446.1725.3893.8181.975

7.3327.1176.9866.8286.0215.4915.6295.8766.1726.1365.2633.6381.786

7.3217.0896.9916.7735.9375.4805.6585.9016.1976.0905.1283.4571.595

7.3067.0626.9946.7095.8585.4755.6865.9286.2166.0354.9853.2751.405

25

Page 28: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Output file KNOB.IND, continued

INDEX184318501860187018801890190019101920193019401950196019701980

SIG02-20.4990.9100.3370.2641.5160.7640.4540.5201.2300.9311.3431.5651.5540.7940.000

0.7961.0130.8220.8090.8451.2890.9890.5791.6600.0001.1861.1991.1390.4930.000

0.7121.4241.0210.4911.1100.9741.2610.9131.1490.6610.9380.8201.0950.677

0.8681.5970.7400.6611.2281.2680.6260.6090.8410.7040.8830.9381.3282.226

1.2071.2691.0900.1751.2011.4390.8540.8110.8850.7460.5870.7840.4861.095

1.3471.0171.9370.2081.0390.4630.1810.6950.7231.2731.0760.9090.3561.621

0.8640.9140.7390.3681.3180.6280.7851.2010.6790.7460.9021.1150.3730.314

1.2521.5330.8681.1060.8871.1881.6830.7670.8181.1121.0710.7551.042

1111011111111

.398

.091

.591

.491

.565

.356

.704

.002

.405

.596

.472

.150

.103

0.9001.2321.5152.4430.5241.1511.4321.5211.5130.9841.1000.5301.770

RING 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980

WIDTHS 0.388 0.180 0.040 0.235 0.110 0.263 0.092 0.084 0.069 0.071

SIG03-1 0.175 0 0.048 0 0.052 0 0.197 0 0.035 0 0.273 0 0.175 0 0.084 0 0.030 0 0.029

MS= .147 .180 .156 .184 .060 .111 .090 .125 .029

0.486 0.216 0.171 0.228 0.217 0.191 0.124 0.188 0.127 0.112

0 0 0 0 0 0 0 0 0

1890= .211 .232 .124 .192 .232 .045 .143 .070 .054

0.00 0.310 0.228 0.211 0.187 0.217 0.155 0.115 0.089 0.117

CM. 0.071 0.092 0.235 0.190 0.132 0.180 0.172 0.088 0.084

0.108 0.171 0.243 0.168 0.189 0.180 0.118 0.101 0.050

0.248 0.208 0.221 0.312 0.281 0.250 0.137 0.054 0.061

0.320 0.203 0.201 0.286 0.357 0.200 0.067 0.043 0.012

AREA 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980

8.3946.2581.804

13.2667.665

21.4338.4788.4237.2917.778

SIG03-4.0951.7032.360

11.3882.455

22.70816.2738.4673.1793.186

13.5896.5167.181

10.8574.2269.3678.444

12.6823.079

SPLINE 1890 4.536 1900 6.282 1910 8.424 1920 11.066 1930 13.341 1940 14.533 1950 13.706 1960 11.222 1970 8.143 1980 5.109

SIG034.7046.4718.674

11.32413.52314.54213.51810.9237.8384.804

-1

4.873 6.665 8.931

11.577 13.695 14.528 13.314 10.620 7.534

5.5206.378

10.77013.07813.60410.55517.80212.98611.939

5.0426.8649.193

11.82413.85814.49313.09510.3147.232

5.6758.9475.995

11.81816.8323.854

13.6907.2015.785

5.2137.0699.459

12.06414.00814.43812.86110.0056.931

8.8459.123

10.42211.73316.05013.37411.1039.200

12.596

5.3857.2799.729

12.29814.14314.36412.6149.6946.629

2.1113.774

11.93712.1469.908

15.72116.7619.1459.096

3.2717.155

12.70810.92814.37715.92411.60610.5565.436

5.5597.4949.999

12.52414.26314.27212.3559.3826.326

5.7357.717

10.27012.74214.36314.15912.0849.0706.023

7.7908.951

11.88020.76621.79022.45513.5855.6706.653

5.9147.946

10.53812.95114.44314.02711.8048.7605.718

10.6228.998

11.07119.57328.39918.2466.6874.5281.311

6.0968.181

10.80413.15114.50013.87611.5168.4505.414

INDEX 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980

1.851 0.996 0.214 1.199 0.575 1.475 0.619 0.751 0.895 1.523

SIG03-1 0.871 0.263 0.272 1.006 0.182 1.562 1.204 0.775 0.406 0.663

0.737 0.978 0.804 0.938 0.309 0.645 0.634 1.194 0.409

1 0 1 1 0 0 1 1 1

.095

.929

.172

.106

.982

.728

.359

.259

.651

1.089 1.266 0.634 0.980 1.202 0.267 1.064 0.720 0.835

1.643 1.253 1.071 0.954 1.135 0.931 0.880 0.949 1.900

0.380 0.504 1.194 0.970 0.695 1.102 1.357 0.975 1.438

0.570 0.927 1.237 0.858 1.001 1.125 0.960 1.164 0.903

1.317 1.127 1.127 1.603 1.509 1.601 1.151 0.647 1.163

1.742 1.100 1.025 1.488 1.958 1.315 0.581 0.536 0.242

RING WIDTHS SIG03-2 HS= 0.480 1880= 0.00 CM.1880 0.521 0.445 0.377 0.266 0.117 0.221 0.332 0.179 0.172 0.2561890 0.119 0.115 0.179 0.183 0.273 0.088 0.067 0.213 0.154 0.1421900 0.044 0.110 0.087 0.173 0.195 0.020 0.101 0.152 0.184 0.1811910 0.043 0.035 0.081 0.111 0.098 0.141 0.206 0.191 0.191 0.208

26

Page 29: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Output file KNOB.IND, continued

1920193019401950196019701980

AREA 1880 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980

0.1880.1000.2220.1310.0550.0620.065

1.3502.3161.2701.5788.5255.513

13.9819.4354.3155.0665.494

0.1870.0210.2720.1140.0570.0400.015

SI GO3 2.504 2.323 3.228 1.293 8.700 1.166

17.552 8.298 4.492 3.281 1.272

0.1430.0550.1210.0710.0660.033

-23.0953.7812.6073.0216.8013.0667.9575.2095.2272.714

0.1400.1210.1350.1200.0910.074

2.7214.0735.3254.2076.7836.8138.9878.8777.2516.112

0.1400.1370.0520.1480.0280.047

I.338 6.468 6.227 3.779 6.906 7.825 3.492

II.072 2.242 3.900

0.1230.1240.1310.0880.0320.056

2.7612.1850.6525.5436.1697.1848.8736.6492.5684.665

0.1230.0610.1460.1350.0320.062

4.7251.6963.3328.3236.2643.570

10.01610.2952.5745.187

0.1020.0980.0980.0970.0530.031

2.8355.5795.1357.9555.2675.7846.7987.4684.2782.603

0.2380.1770.1620.1240.0560.033

2.9144.2116.4118.184

12.54310.59911.3709.6324.5392.777

0.2180.2930.1460.0340.0440.009

4.6814.0156.5149.173

11.80217.97810.3882.6583.5800.759

SPLINE 1880 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980

2.277 3.068 3.897 5.073 6.593 7.862 8.650 8.139 6.418 4.426 2.575

SIG03-2 2.357 2.437 3.145 3.224 3.994 4.095 5.216 5.364 6.737 6.877 7.968 8.071 8.667 8.668 8.010 7.870 6.214 6.009 4.238 4.051 2.390

2.517 3.303 4.201 5.516 7.013 8.170 8.652 7.718 5.804 3.866

2.597 3.382 4.311 5.671 7.145 8.265 8.622 7.556 5.600 3.681

2.676 3.462 4.426 5.827 7.274 8.353 8.577 7.384 5.398 3.497

2.755 3.545 4.546 5.984 7.399 8.434 8.518 7.204 5.199 3.312

2.834 3.629 4.671 6.140 7.521 8.507 8.444 7.015 5.002 3.128

2 34 6 7 8 8 6 4 2

.912

.715

.800

.294

.639

.568

.356

.820

.808

.944

2.990 3.805 4.934 6.445 7.752 8.616 8.254 6.621 4.616 2.759

INDEX18801890190019101920193019401950196019701980

SIG03-20.5930.7550.3260.3111.2930.7011.6161.1590.6721.1452.134

1.0620.7380.8080.2481.2910.1462.0251.0360.7230.7740.532

1.2701.1730.6360.5630.9890.3800.9180.6620.8700.670

1.0811.2331.2670.7630.9670.8341.0391.1501.2491.581

0.5151.9121.4440.6660.9670.9470.4051.4650.4001.059

1.0320.6310.1470.9510.8480.8601.0340.9000.4761.334

1.7150.4780.7331.3910.8470.4231.1761.4290.4951.566

1.1.1.1.0.0.0.1.0.0.

000537099296700680805

.001

.133

.335

.300

.642

.237

.361064 1.412855 0.944832 0.944

1.5661.0551.3201.4231.5222.0871.2590.4010.7760.275

RING WIDTHS1910 0.3251920193019401950196019701980

AREA 1910 1920 1930 1940 1950 1960 1970 1980

0.5290.1600.3300.7380.1910.1170.034

SIG05-10.3620.5270.1450.3030.3760.2090.0950.019

MS= 0.329 0.499 0.126 0.170 0.292 0.249 0.067

0.288 1910= 0.512 0.319 0.380 0.309 0.243 0.106 0.262 0.360 0.110

0.2420.1060.2160.2090.104

0.00 CM. 0.284 0.346 0.319 0.278 0.323 0.237 0.287 0.165 0.068

0.2490.2740.2480.1260.085

0.4110.3790.2960.3280.2140.2560.047

0.3790.4380.3330.3950.3160.2130.099

SIG05-10.906 1.790 2.341 4.996 3.946

13.845 15.541 16.324 13.480 11.6318.067 7.449 6.580 12.973 13.288

21.970 20.775 11.909 7.517 7.588 63.666 33.753 26.825 24.525 20.543 19.906 22.045 26.623 39.179 23.119 13.727 11.210 7.940 13.097 12.4524.158 2.327

0.3530.3850.3700.6810.1820.1450.040

4.051 5.620 7.653 7.998 8.26112.636 11.534 16.506 20.200 18.75118.309 14.562 17.817 20.702 23.82017.221 20.349 24.980 30.980 55.71327.750 24.396 21.362 32.070 18.75518.446 14.201 29.160 24.576 16.8938.179 10.264 5.695 12.041 4.883

SPLINE SIG05-11910 2.767 3.439 4.111 4.782 5.452 6.119 6.784 7.446 8.102 8.7521920 9.395 10.030 10.656 11.273 11.881 12.481 13.075 13.663 14.247 14.826

27

Page 30: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Output file KNOB.IND, continued

1930 15.403 15.980 16.558 17.137 17.718 18.298 18.875 19.448 20.015 20.5721940 21.118 21.649 22.165 22.662 23.138 23.587 24.002 24.375 24.699 24.9641950 25.165 25.298 25.362 25.361 25.294 25.166 24.977 24.729 24.423 24.0611960 23.645 23.176 22.656 22.086 21.467 20.802 20.096 19.350 18.569 17.7571970 16.917 16.054 15.172 14.275 13.365 12.445 11.517 10.583 9.645 8.7041980 7.762 6.819

INDEX19101920193019401950196019701960

0.3271.4740.5241.0402.5300.8420.8110.536

SIG05-10.520 0.5691.5490.4660.9601.3340.9510.698

1.5320.3970.5371.0581.1750.523

1.0451.1960.7570.3320.9671.7740.917

0.7240.9790.7500.3280.8121.0770.932

0.662 0.828 1.028 0.987 0.9441.0121.0010.7301.1030.8870.657

0.8820.7710.8480.9770.7070.891

1.2080.9161.0250.8641.5070.538

1.4181.0341.2541.3131.3231.248

1.2651.1582.2320.7790.9510.561

0.341

RING 1880 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980

WIDTHS 0.284 0.048 0.029 0.114 0.206 0.180 0.240 0.184 0.177 0.065 0.017

SI 605- 2 MS= 0.350 0.205 0.019 0.110 0.069 0.069 0.096 0.114 0.199 0.157 0.206 0.182 0.266 0.259 0.206 0.173 0.158 0.145 0.028 0.043 0.006

0.461 0.139 0.167 0.127 0.116 0.203 0.285 0.153 0.168 0.137 0.084

1880= 0.223 0.178 0.157 0.110 0.161 0.222 0.136 0.173 0.110 0.100

0. 0. 0. 0. 0. 0. 0. 0. 0. 0.

0.00 243 099 015 120 236 208 167 227 126 071

CM. 0.291 0.116 0.051 0.171 0.209 0.138 0.182 0.209 0.096 0.047

0.210 0.191 0.137 0.256 0.219 0.193 0.180 0.118 0.144 0.031

0.264 0.208 0.128 0.161 0.302 0.241 0.286 0.183 0.108 0.088

0.349 0.212 0.176 0.211 0.259 0.218 0.166 0.110 0.068 0.019

AREA 1880 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980

2.0181.0770.8954.2339.610

10.81517.59215.80717.1496.7931.836

2.3872.9773.8405.7739.078

SPLINE 1880 1890 1900 1910 1920 1930 12.682 1940 15.187 1950 15.687 1960 13.632 1970 9.341 1980 4.134

SIG05-3.1840.4302.1503.6289.537

12.62819.92117.95015.4752.9340.648

SIG05-2.4463.0403.9706.0499.449

13.00015.33815.60313.2868.8413.600

22.2232.5362.1804.3847.700

11.37819.82315.28014.3404.516

22.5053.1064.1136.3409.823

13.30515.46815.49212.9178.335

1.6573.9954.0904.544

10.18518.23611.90815.01913.6708.856

2.5643.1774.2686.645

10.19713.59715.57515.35312.5277.823

2.9124.4515.1964.3878.262

14.55810.70915.65111.06110.600

2.6223.2524.4376.964

10.56913.87415.66115.18812.1187.307

3.5292.5620.5054.873

12.40513.92113.30920.82212.7637.564

2.6813.3324.6217.294

10.93914.13615.72514.99511.6906.785

4.7153.080I.726 7.100

II.2789.386

14.70419.4579.7925.025

2.7403.4184.8217.636

11.30414.38215.76614.77411.2476.260

3.7335.2564.718

10.97312.11213.32814.74711.10614.7963.322

2.7983.5115.0367.987

11.66214.61115.78414.52710.7885.731

5.0865.9844.5147.112

17.19716.97123.85017.39711.1829.463

2.8573.6125.2668.345

12.01214.82215.77814.25310.3165.201

7.3956.3796.3759.567

15.20515.66614.07910.5597.0782.049

2.9163.7215.5128.709

12.35315.01515.74613.9559.8334.668

INDEX18801890190019101920193019401950196019701980

0.8450.3620.2330.7331.0590.8531.1581.0081.2580.7270.444

SI 605-1.3020.1420.5410.6001.0090.9711.2991.1501.1650.3320.180

20.8870.8160.5300.6910.7840.8551.2820.9861.1100.542

0.6461.2580.9580.6840.9991.3410.7650.9781.0911.132

1.1111.3691.1710.6300.7821.0490.6841.0310.9131.451

1.3160.7690.1090.6681.1340.9850.8461.3891.0921.115

1.7210.9010.3580.9300.9980.6530.9331.3170.8710.803

1101100010

.334 1

.497

.937 (

.374 (

.039

.912

.934

.765

.371

.580

.780

.657).8573.852.432.145.512.221.084.820

2.5361.7141.1571.0991.2311.0430.8940.7570.7200.439

28

Page 31: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Output file KNOB.IND, continued

RING WIDTHS18821890190019101920193019401950196019701980

AREA18821890190019101920193019401950196019701980

0.4830.0520.1140.1360.1410.0960.1710.1380.0820.0620.027

5.8251.2993.9806.3298.0406.402

12.69311.2247.1645.6382.539

SPLINE18821890190019101920193019401950196019701980

INDEX18821890190019101920193019401950196019701980

RING18801890190019101920193019401950196019701980

AREA1880189019001910

3.6734.8176.4027.8748.7969.1109.0648.3806.8525.0223.163

1.5860.2700.6220.8040.9140.7031.4001.3391.0461.1230.803

WIDTHS0.2890.0170.0920.1060.1140.0810.1370.1320.1000.0470.052

SIG06-10.2680.0590.1820.1410.1260.0000.1350.1120.0620.0410.022

SIG06-13.8651.4956.5246.6857.2910.000

10.150

HS= 0.396000000000

.210

.107

.158

.155

.133

.072

.085

.135

.0650.033

3257746

9.198 115.4453.7422.072

SIG06-13.8144.9676.5637.9948.8529.1209.0298.2636.6724.8412.973

SIG06-11.0130.3010.9940.8360.8240.0001.1241.1130.8160.7730.697

53

3568898864

0000000100

SIG06-20.3000.0550.1570.1050.1200.0000.1150.1020.0870.0450.032

0000000000

.344

.767

.832

.493

.804

.840

.450

.191

.734

.019

.955

.119

.722

.109

.902

.127

.987

.135

.490

.658

.845

.540

.868

.924

.877

.530

.718

.376

.884

.648

0.1720.1470.2260.2130.1900.1260.0700.1020.0910.100

2.9453.9188.615

10.54311.3418.5485.3468.5318.0739.192

4.0965.2746.8808.2188.9469.1348.9387.9996.3064.476

0.7190.7431.2521.2831.2680.9360.5981.0671.2802.054

MS= 0.384.341.102.126.138.107.060.045.097.071.044

0.1960.1100.2550.1550.1240.0860.0760.0850.0650.080

1882=0.3130.1960.1590.1170.1630.1470.0540.0980.0510.066

5.8365.4366.2535.9129.910

10.0984.1458.2584.5476.101

4.2385.4327.0358.3208.9849.1378.8827.8536.1224.291

1.3771.0010.8890.7111.1031.1050.4671.0520.7431.422

1880=0.1890.2070.1780.0820.1380.1210.0460.0920.0440.055

0.000.2370.1190.1090.1670.1650.1590.1030.0950.0460.063

4.8283.4184.3798.588

10.20211.0767.9578.0634.1155.849

4.3815.5927.1868.4179.0179.1388.8207.7005.9384.106

1.1020.6110.6091.0201.1311.2120.9021.0470.6931.425

0.000.2130.1340.1200.1290.1490.1310.1040.0860.0450.061

CM.0.2300.1950.2040.1830.1580.0810.1160.0920.0470.032

5.0235.7938.3969.6129.9295.7039.0417.8634.2182.981

4.5255.7537.3348.5069.0449.1348.7507.5415.7533.919

1.1101.0071.1451.1301.0980.6241.0331.0430.7330.761

CM.0.6270.1530.1610.1410.1110.0890.1330.0950.0450.052

0.3600.2630.2340.2180.1160.1240.1400.0610.0660.038

8.5308.1929.952

11.7257.3908.811

11.0245.2435.9473.548

4.6705.9157.4778.5899.0669.1268.6727.3755.5703.731

1.8261.3851.3311.3650.8150.9651.2710.7111.0680.951

0.2790.2240.1910.1680.0860.1190.1290.0730.0610.030

0.2180.2930.1780.1840.1560.1470.1070.0310.053

7.12012.9479.795

11.89511.22211.7079.2532.8034.963

6.0787.6158.6659.0859.1128.5857.2055.3873.542

1.1711.7001.1301.3091.2321.3641.2840.5201.401

0.2040.1960.2200.1320.1580.1480.1220.1060.0590.078

0.1930.1600.1580.1850.2010.1270.0480.0380.020

6.5537.2988.861

12.17414.68510.2244.1743.4441.878

6.2407.7478.7339.0999.0928.4877.0305.2043.353

1.0500.9421.0151.3381.6151.2050.5940.6620.560

0.2340.1580.1560.1450.1520.1870.0980.0640.0480.036

SIG06-22.7320.4533.2574.860

3.3911.4785.6814.884

4246

.541

.791

.671

.524

2.9413.0839.7587.470

3.0646.0087.0544.013

3.7234.0334.8686.399

12.6124.7436.6737.114

6.4067.2098.1288.639

4.9946.5669.6466.912

6.0505.4697.0247.719

29

Page 32: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Output file KNOB.IND, continued

1920193019401950196019701980

6.1615.0109.3789.8678.0513.9614.555

6.5740.0007.9637.7007.0553.8052.812

5.9383.7383.1397.3835.7933.733

6.9725.3975.3306.5185.3316.818

7.8727.6723.2437.1063.6244.711

8.6348.4107.3826.6913.7195.247

6.5235.7759.5407.4453.7324.491

5.1077.8009.3595.7595.0792.599

9.504 9.2919.825 12.6108.947 7.2558.422 5.1194.934 4.0306.783 3.144

SPLINE 1880 3.867 1890 4.761 1900 5.671 1910 6.409 1920 6.830 1930 7.074 1940 7.277 1950 7.051 1960 6.162 1970 4.975 1980 3.844

SIG06-2 3.960 4. 4.848 4. 5.759 5. 6.463 6. 6.859 6. 7.097 7. 7.279 7. 6.991 6. 6.046 5. 4.860 4. 3.731

052 937 845 514 887 121 276 923 928 746

4.144 5.028 5.928 6.562 6.913 7.147 7.268 6.849 5.808 4.633

4.235 5.119 6.009 6.607 6.939 7.173 7.256 6.767 5.687 4.520

4.325 5.212 6.085 6.650 6.962 7.197 7.239 6.680 5.566 4.408

4.415 5.305 6.158 6.691 6.985 7.220 7.215 6.586 5.446 4.295

4.502 5.397 6.227 6.729 7.008 7.241 7.185 6.487 5.326 4.183

4.589 5.490 6.292 6.765 7.030 7.257 7.148 6.383 5.208 4.070

4.675 5.581 6.352 6.799 7.052 7.269 7.104 6.274 5.091 3.957

INDEX 1880 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980

0.706 0.095 0.574 0.758 0.902 0.708 1.289 1.399 1.307 0.796 1.185

SIG06-2 0.856 0.305 0.986 0.756 0.958 0.000 1.094 1.101 1.167 0.783 0.754

1.121 0.565 0.799 1.002 0.862 0.525 0.431 1.066 0.977 0.786

0 0 1 1 1 0 0 0 0 1

.710

.613

.646

.138

.008

.755

.733

.952

.918

.472

0.724 1.174 1.174 0.607 1.135 1.070 0.447 1.050 0.637 1.042

0.861 0.774 0.800 0.962 1.240 1.168 1.020 1.002 0.668 1.190

2.857 0.894 1.084 1.063 0.934 0.800 1.322 1.130 0.685 1.046

1.423 1.336 1.305 1.284 0.729 1.077 1.302 0.888 0.953 0.621

1.088 1.196 1.533 1.022 1.352 1.354 1.252 1.320 0.947 1.667

1.294 0.980 1.106 1.135 1.318 1.735 1.021 0.816 0.792 0.794

RING 1887 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980

WIDTHS 0.471 0.126 0.146 0.183 0.210 0.134 0.207 0.250 0.139 0.108 0.068

SIG08-1 0.358 0.148 0.183 0.171 0.207 0.172 0.247 0.184 0.166 0.038 0.041

MS= 0.661 0.200 0.181 0.171 0.171 0.125 0.116 0.166 0.111 0.088

0.336

0.228 0.231 0.199 0.129 0.174 0.114 0.196 0.161 0.128

1887=

0.235 0.195 0.151 0.122 0.166 0.088 0.118 0.118 0.133

0.00

0.136 0.158 0.142 0.084 0.125 0.249 0.172 0.115 0.047

CM.

0.194 0.159 0.198 0.131 0.127 0.140 0.158 0.096 0.075

0.270 0.248 0.157 0.114 0.165 0.141 0.091 0.161 0.069

0 0 0 0 0 0 0 0 0

.255

.278

.193

.180

.151

.237

.208

.135

.099

0.180 0.183 0.171 0.220 0.220 0.207 0.148 0.063 0.030

AREA 1887 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980

9.8333.6736.0759.891

13.65910.00417.52923.94714.74312.3038.086

SPLINE 1887 7.742 1890 7.891 1900 8.587 1910 9.626 1920 10.829 1930 12.458 1940 14.463 1950 15.647 1960 14.708

SI COS8.4064.4427.8039.433

13.73513.00621.26917.87617.7664.3464.889

SIG087.7917.9438.6799.737

10.96512.65314.64315.65814.494

-117.6366.2227.9259.617

11.5509.569

10.12116.31011.97610.100

-17.841 7.998 8.775 9.850

11.105 12.853 14.813 15.645 14.261

7.39910.41311.4238.834

13.48310.02919.48017.50814.777

8.0578.8749.964

11.25013.05614.97215.60714.010

7.9689.0518.8338.451

13.0417.797

11.84412.93515.464

8.1208.977

10.08011.40213.26015.11915.54613.741

4.7707.5098.4385.8739.934

22.32617.42112.6915.491

7.0057.715

11.9779.248

10.19412.72416.16710.6588.791

8.1879.081

10.19911.56013.46615.25315.46213.457

8.2589.188

10.31911.72613.67215.37115.35513.159

10.14312.3519.6728.136

13.39512.9399.382

18.0048.119

8.3349.296

10.44311.90013.87715.47115.22512.847

10.00014.30412.10213.01212.40822.03121.64115.22211.701

8.4149.405

10.56812.08014.07815.55215.07412.523

7.3059.681

10.91816.18018.33519.53115.5647.1433.558

8.4989.515

10.69712.26614.27415.61114.90112.188

30

Page 33: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Output file KNOB.IND, continued

1970 11.844 11.492 11.133 10.768 10.397 10.021 9.642 9.259 8.874 8.4871980 8.100 7.712

INDEX1887 '1890 (1900 (191019201930 (19401950196019701980 (

II. 270 '3.466 ().707 (.028 (.261

3.803.212.530.002.039 (

3.998 (

JIG08-11. 079J.5591.8991.969.253.028.452.142.226

J.3781.634

2.2490.7780.9030.9761.0400.7440.6831.0420.8400.907

0.9181.1731.1460.7851.0330.6701.2481.2501.372

0.9811.0080.8760.7410.9830.5160.7620.9411.487

000001100

.583

.827

.827

.508

.738

.464

.127

.943

.548

0.8480.8401.1610.7890.7460.8281.0530.8100.912

1.2171.3290.9260.6840.9650.8360.6161.4010.877

1.188 (1.5211.1451.0770.8811.4171.4361.215 (1.319 (

3.860.017.021.319.284.251.044

3.586J.419

RING 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980

WIDTHS 0.058 0.149 0.139 0.196 0.158 0.153 0.190 0.117 0.099 0.056

SIG08-2 MS= 0.097 0.179 0.200 0.169 0.107 0.142 0.204 0.154 0.119 0.121 0.162 0.113 0.138 0.177 0.136 0.090 0.041 0.079 0.018

0.286 0.200 0.170 0.125 0.120 0.173 0.109 0.179 0.132 0.116

1890= 0.205 0.220 0.101 0.094 0.154 0.069 0.126 0.120 0.156

0. 0. 0. 0. 0. 0. 0. 0. 0.

0.00 122 147 139 099 148 196 181 100 053

CM. 0.185 0.229 0.173 0.139 0.106 0.211 0.174 0.093 0.080

0.262 0.177 0.149 0.130 0.184 0.194 0.096 0.140 0.057

0.258 0.186 0.207 0.196 0.184 0.259 0.140 0.119 0.059

0.225 0.184 0.199 0.224 0.251 0.195 0.086 0.053 0.020

AREA 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980

I.163 4.706 5.985

10.298 9.827

II.05015.72710.7519.7765.789

SPLINE 1890 3.617 1900 5.425 1910 6.930 1920 8.430 1930 10.137 1940 11.857 1950 12.663 1960 11.596 1970 9.128 1980 5.897

SIG08-1.9916.5364.690

10.9757.505

11.86011.56512.6054.0671.865

SI 608-3.8055.5897.0728.588

10.31811.99812.64311.4008.8305.558

23.8305.7196.3358.4587.7228.371

15.0098.4057.865

23.9935.7507.2168.749

10.50012.12912.60311.1918.526

4.5185.9345.6816.694

11.2018.150

15.37812.42011.620

4.1805.9077.3618.912

10.68112.24912.54110.9708.214

4.8917.9484.6625.307

10.1295.198

10.94611.38615.760

4.3666.0607.5089.079

10.86112.35812.45910.7377.897

3.0365.4806.5215.6499.875

14.92815.8989.5575.389

4.5506.2117.6579.248

11.03912.45412.35810.4937.573

4.7838.8088.2868.0357.157

16.34115.4778.9458.168

4.7326.3587.8089.422

11.21412.53412.23910.2397.243

7.1417.0347.2877.625

12.59115.2718.621

13.5685.844

4.9106.5037.9629.598

11.38512.59612.1019.9756.910

7.4547.603

10.35511.69712.80420.75612.67611.6296.071

5.0866.6478.1169.776

11.55012.64011.9479.7016.574

6.8427.735

10.20913.66317.80915.9057.8485.2082.063

5.2586.7898.2729.956

11.70812.66211.7799.4186.236

INDEX 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980

0.321 0.867 0.864 1.222 0.969 0.932 1.242 0.927 1.071 0.982

SIG08-2 0.523 0.959 1.169 0.995 0.663 0.878 1.278 0.967 0.727 0.735 0.989 0.690 0.915 1.191 1.106 0.751 0.461 0.923 0.336

1 1 0 0 1 0 1 1 1

.081

.005

.772

.751

.049

.665

.226

.132

.415

1 1 0 0 0 0 0 1 1

.120

.312

.621

.585

.933

.421

.879

.060

.996

0 0 0 0 01 10 0

.667

.882

.852

.611

.894

.199

.286

.911

.712

1.011 1.385 1.061 0.853 0.638 1.304 1.265 0.874 1.128

1.454 1.082 0.915 0.794 1.106 1.212 0.712 1.360 0.846

.466

.144

.276

.196

.109

.642

.301

.139

.234

.372

.521

.256.061 0.666.199 0.553

0.923 0.331

RING WIDTHS 1890 0.179 1900 0.127 1910 0.182 1920 0.224 1930 0.084

SIG09-1 MS= 0.481 1890= 0.00 CM. 0.181 0.187 0.251 0.256 0.097 0.088 0.182 0.122 0.201 0.140 0.062 0.150 0.159 0.1720.000

0.1910.1100.016

0.2330.0960.082

0.0960.1470.082

0.1710.1460.115

0.1560.1270.112

0.1160.2000.2360.1300.167

0.1920.2280.1830.1900.198

0.1740.1370.1580.1750.188

31

Page 34: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Output file KNOB.IND, continued

1940195019601970

0.1830.1100.0930.067

0.1850.1240.0780.000

1980 0.034 0.030

AREA 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980

6.2445.782

10.08914.9316.363

15.1209.9628.9946.7933.515

SPLINE 1890 6.357 1900 7.684 1910 9.039 1920 9.870 1930 10.118 1940 10.371 1950 9.786 1960 8.067 1970 5.583 1980 2.829

SIG09-6.5188.4638.985

11.6790.000

15.49911.3217.5860.0003.107

SIG09- 6.488 7.823 9.156 9.909

10.142 10.365 9.662 7.845 5.310 2.554

0.1020.0840.0850.048

16.9505.790

11.0037.5671.2178.6377.7248.3104.884

16.6187.9629.2679.943

10.17010.3479.5267.6165.036

0.1200.1140.0900.038

9.6759.743

13.7336.6666.263

10.24510.5538.8483.877

6.7488.1029.3709.971

10.20110.3179.3797.3814.761

0.0420.0930.0460.025

10.2756.9365.757

10.3196.3053.6078.6694.5422.555

6.8798.2429.4669.997

10.23410.2779.2217.1394.485

0.1520.1260.0480.048

4.0013.111

10.39910.3838.913

13.14711.8324.7544.917

7.0108.3819.554

10.01910.26810.2269.0526.8914.209

0.1420.0860.0430.032

3.6817.6279.6479.1418.761

12.4138.1334.2713.286

0.1240.0700.1110.020

4.92610.38914.8859.462

13.20910.9436.655

11.0782.057

7.1428.5199.634

10.04010.30110.1628.8736.6393.932

7.2758.6559.706

10.05910.33010.0878.6856.3823.656

0.1440.1060.0990.040

8.34012.15011.78314.02015.88812.83010.1359.9464.122

7.4108.7889.769

10.07810.3539.9998.4876.1203.380

0.1060.0750.0630.016

7.7587.458

10.34213.11415.3149.5277.2146.3611.652

7.5478.9169.823

10.09710.3679.8998.2815.8533.105

INDEX 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980

0.982 0.752 1.116 1.513 0.629 1.458 1.018 1.115 1.217 1.242

SIG09-1 1.005 1.050 1.082 0.727 0.981 1.187 1.179 0.761 0.000 0.120 1.495 0.835 1.172 0.811 0.967 1.091 0.000 0.970 1.217

1 1 1 0 0 0 1 1 0

.434

.202

.466

.668

.614

.993

.125

.199

.814

1 0 0 1 0 0 0 0 0

.494

.842

.608

.032

.616

.351

.940

.636

.570

0 0 1 1 0 1 1 0 1

.571

.371

.088

.036

.868

.286

.307

.690

.168

0 0 1 0 0 1 0 0 0

.515

.895

.001

.911

.850

.221

.917

.643

.836

0.677 1.200 1.534 0.941 1.279 1.085 0.766 1.736 0.563

.125 1.028

.383 0.836

.206 1.053

.391 1.299

.535 1.477

.283 0.962

.194 0.871

.625 1.087

.219 0.532

RING 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980

WIDTHS 0.341 0.154 0.247 0.246 0.232 0.213 0.211 0.135 0.105 0.082

SIG09-2 0.287 0.127 0.243 0.249 0.139 0.242 0.190 0.116 0.077 0.064

MS= 0.310 0.206 0.230 0.286 0.068 0.228 0.144 0.120 0.014

0.277 0.259 0.152 0.248 0.198 0.111 0.127 0.149 0.110 0.090

1890= 0.255 0.207 0.246 0.205 0.124 0.099 0.148 0.068 0.072

0.00 0.238 0.194 0.118 0.191 0.177 0.255 0.163 0.060 0.103

CM. 0.082 0.118 0.175 0.183 0.165 0.176 0.130 0.068 0.076

0. 0. 0. 0. 0. 0. 0. 0. 0.

135 160 171 226 203 266 098 110 041

0.127 0.246 0.223 0.146 0.213 0.293 0.178 0.144 0.059

0.199 0.208 0.183 0.237 0.243 0.214 0.094 0.120 0.062

AREA 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980

7.9825.675

11.92415.09617.38618.19120.82014.56512.0129.735

SIG09-7.2844.792

12.10515.66810.57921.01418.98712.6078.8537.627

28.4497.989

11.79918.4775.219

20.13514.54213.1311.614

7.5226.065

13.09513.0938.582

11.35715.18412.11610.403

7.8188.494

13.37213.8159.6798.923

15.2207.5288.359

7.6658.2056.549

13.10913.98323.26816.9226.666

12.014

2.7235.1069.873

12.77513.21316.29813.6157.5838.908

4.5767.0639.834

16.06716.49025.00110.33412.3274.821

4.40911.17413.10010.55017.58128.05418.92516.2536.955

7.1139.744

10.98417.41120.40520.83110.07413.6437.333

SPLINE SIG09-21890 5.523 5.705 5.887 6.070 6.255 6.442 6.633 6.829 7.030 7.238 1900 7.453 7.674 7.903 8.138 8.379 8.626 8.878 9.134 9.394 9.656 1910 9.919 10.182 10.444 10.705 10.964 11.221 11.476 11.729 11.978 12.224

32

Page 35: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Output file KNOB.IND, continued

1920 12.465 12.701 12.931 13.155 13.373 13.586 13.794 13.998 14.198 14.3951930 14.589 14.780 14.969 15.156 15.341 15.522 15.697 15.863 16.018 16.1581940 16.282 16.387 16.472 16.535 16.576 16.592 16.583 16.545 16.479 16.3831950 16.257 16.105 15.927 15.725 15.502 15.260 15.000 14.726 14.439 14.1401960 13.831 13.515 13.193 12.866 12.536 12.205 11.872 11.539 11.205 10.8701970 10.534 10.199 9.864 9.530 9.198 8.866 8.536 8.207 7.878 7.5511980 7.224 6.897

INDEX SIG09-21890190019101920193019401950196019701980

RING1863187018801890190019101920193019401950196019701980

AREA186318701880189019001910192019301940

1.4450.7611.2021.2111.1921.1171.2811.0531.1401.348

WIDTHS0.0650.2050.3140.2140.0980.1460.1420.0860.1420.1600.1100.0560.025

1.2770.6241.1891.2340.7161.2821.1790.9330.8681.106

111101000

SIG11-10.1050.0150.2390.2040.1140.1240.1670.0000.1480.1630.0940.0260.000

000000000000

.435

.011

.130

.429

.349

.222

.913

.995

.164

MS=.084.060.413.193.093.156.149.031.100.133.100.048

1.2390.7451.2230.9950.5660.6870.9660.9421.092

0.3910.1560.0910.2500.2100.1950.1700.0780.0800.1090.1170.1080.070

1.2501.0141.2201.0330.6310.5380.9820.6000.909

1863=0.1660.0880.2890.2240.1440.1060.0820.0480.0760.1330.0630.096

1.1900.9510.5840.9650.9011.4021.1090.5461.355

0.000.2070.1380.1900.1410.1440.1360.0900.0840.1640.1330.0670.111

0.4110.5750.8600.9260.8420.9830.9080.6391.044

CM.0.2240.2220.2760.1360.1550.1420.1090.0430.1090.1360.0310.109

0.6700.7730.8381.1481.0401.5110.7021.0680.587

0.2200.2000.1830.1730.1790.1060.0820.1510.1020.1000.028

0.6271.1891.0940.7431.0981.7021.3111.4500.883

0.3230.2340.1910.1840.1280.1800.1300.1790.1740.0600.054

0.9831.0090.8991.2101.2631.2720.7121.2550.971

0.2310.2580.1330.2250.1280.1580.1550.1860.1050.0500.042

SIG11-10.8304.0059.3859.9105.6299.806

10.7987.206

12.583

1.3970.3037.5599.7156.6238.434

12.8620.000

13.249

11

1395

101129

.167

.228

.908

.431

.464

.748

.623

.609

.030

2.2861.9058.939

10.52811.63311.8866.1406.7619.914

2.6001.892

10.82311.5358.7447.5036.4964.0766.957

3.4853.0657.4027.4238.8749.7307.1797.167

15.136

4.0755.182

11.1567.2789.698

10.2848.7633.686

10.153

5.4418.3839.976

11.00213.1448.5937.062

14.189

8.53910.12710.63711.9089.522

14.75411.28217.006

6.50911.5657.542

14.8509.625

13.11813.59017.884

1950 15.558 16.015 13.191 11.696 13.400 13.511 13.931 10.525 18.105 11.0171960 11.616 9.987 10.685 11.611 6.807 7.266 3.372 10.917 6.580 5.5011970 6.180 2.876 5.320 7.785 10.726 12.475 12.325 3.178 6.143 4.7911980 2.857 0.000

SPLINE 1863 1.258 1870 3.638 1880 6.861 1890 8.922 1900 9.636 1910 9.787 1920 9.527 1930 9.513

SIG11-1 1.599 3.975 7.138 9.041 9.669 9.775 9.497 9.568

1.940 4.312 7.401 9.147 9.699 9.758 9.469 9.638

2.280 4.648 7.648 9.240 9.725 9.738 9.445 9.723

2.620 4.981 7.879 9.322 9.748 9.714 9.428 9.823

2.960 5.312 8.093 9.393 9.766 9.687 9.418 9.936

3. 5. 8. 9. 9. 9. 9.

10.

299 638 291 455 781 657 417 062

5.958 8.473 9.510 9.790 9.626 9.425

10.198

6.269 8.638 9.557 9.795 9.593 9.443

10.341

6.571 8.788 9.599 9.793 9.560 9.472

10.4891940 10.63840.787 10.931 11.070 11.202 11.322 11.430 11.521 11.594 11.6461950 11.676 11.682 11.664 11.623 11.558 11.469 11.357 11.223 11.068 10.8931960 10.699 10.488 10.263 10.024 9.774 9.516 9.249 8.977 8.700 8.4191970 8.134 7.846 7.556 7.261 6.963 6.661 6.353 6.041 5.726 5.4091980 5.090 4.770

INDEX1863187018801890

SIG11-10.6601.1011.3681.111

0.8740.0761.0591.074

0.6020.2851.8791.031

1011

.002

.410

.169

.139

0.9920.3801.3741.237

1.1770.5770.9150.790

1.2350.9191.3460.770

0.9130.9891.049

1.3621.1721.113

0.9911.3160.786

33

Page 36: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Output file KNOB.IND, continued

1900 1910 1920 1930 1940 1950 1960 1970 1980

0.584 1.002 1.133 0.757 1.183 1.333 1.086 0.760 0.561

RING WIDTHS187018801890190019101920193019401950196019701980

AREA187018801890190019101920193019401950196019701980

0.0070.2460.1570.0410.1070.1070.0520.0860.1150.0490.0630.045

0.685 0.863 1.354 0.000 1.228 1.371 0.952 0.367 0.000

0.563 1.101 1.228 0.271 0.826 1.131 1.041 0.704

1.196 1.221 0.650 0.695 0.896 1.006 1.158 1.072

SIG11-2 MS= 0.3890.0400.2190.1220.0620.1200.0830.0000.1130.1130.0670.0140.016

0.0580.3750.1460.0800.1360.0680.0240.0890.0800.0520.026

0.1440.2160.1900.1480.1580.0830.0470.0670.1050.0830.062

0.897 0.772 0.689 0.415 0.621 1.159 0.696 1.540

1870=0.1150.2140.2130.1380.0640.0700.0520.0420.0730.0490.066

0.909 1.005 0.762 0.721 1.337 1.178 0.764 1.873

0.991 1.065 0.931 0.366 0.888 1.227 0.365 1.940

1.124 1.365 0.912 0.692 1.232 0.938 1.216 0.526

1.216 0.993 1.562 1.091 1.467 1.636 0.756 1.073

1.516 1.007 1.385 1.296 1.536 1.011 0.653 0.886

0.00 CM.0.1590.1330.1240.0970.1070.0550.0710.1060.0800.0620.075

0.1930.2630.0760.0950.1130.0810.0370.0660.1030.0340.064

0.2340.2400.1740.1920.1140.0790.0510.0780.0690.0650.040

0.3860.2620.1490.2510.0990.1080.0650.1200.1040.0410.039

0.2610.2440.1120.2000.1100.1040.1100.1300.0730.0290.046

SIG11-20.213

10.1558.8162.6647.8528.6104.4497.643

10.8794.9076.5224.796

SPLINE187018801890190019101920193019401950196019701980

INDEX187018801890190019101920193019401950196019701980

RING188218901900

5.4358.2589.5319.3568.7307.5886.7647.0107.4656.9075.6524.308

1.2269.3606.9584.0498.8926.7290.000

10.11310.7706.7341.4531.708

1.79516.7288.4505.260

10.1875.5452.0598.0217.6745.2462.701

4.54810.03611.1979.838

11.9806.8074.0436.071

10.1338.4086.458

3.72610.23212.8229.2974.8975.7754.4903.8207.0854.9846.901

5.2886.5047.5966.6068.2454.5596.1579.6917.8036.3287.876

6.63313.1894.7036.5278.7866.7493.2216.070

10.1063.4806.748

8.35612.41510.90413.3658.9456.6224.4547.2096.8076.6744.231

14.53513.9669.489

17.8227.8349.1165.701

11.16510.3174.2234.135

10.35813.3957.224

14.4848.7778.8489.708

12.1977.2822.9944.889

SIG11-25.7418.4749.5589.3108.6337.4726.7387.0737.4626.7975.5194.169

6.0478.6709.5719.2628.5307.3616.7247.1357.4476.6825.388

6.3518.8469.5729.2128.4217.2566.7247.1977.4196.5625.256

6.6519.0029.5619.1598.3077.1586.7377.2557.3796.4375.124

6.9469.1399.5429.1038.1907.0676.7617.3107.3276.3104.990

7.2349.2559.5159.0428.0706.9866.7967.3587.2636.1804.856

7.5119.3529.4818.9767.9496.9156.8407.4007.1886.0494.720

7.7759.4309.4438.9027.8286.8546.8927.4327.1035.9164.583

8.0259.4899.4018.8207.7076.8036.9497.4547.0095.7844.446

SIG11-20.0391.2300.9250.2850.8991.1350.6581.0901.4570.7101.1541.113

WIDTHS0.3020.0610.028

0.2131.1050.7280.4351.0300.9010.0001.4301.4430.9910.2630.410

0.2971.9290.8830.5681.1940.7530.3061.1241.0300.7850.501

0.7161.1351.1701.0681.4230.9380.6010.8441.3661.2811.229

SIG12-1 MS= 0.4450.3140.0680.130

0.3000.1210.116

0.3080.1410.194

0.5601.1371.3411.0150.5900.8070.6660.5270.9600.7741.347

1882=0.2060.1850.194

0.7610.7120.7960.7261.0070.6450.9111.3261.0651.0031.578

0.9171.4250.4940.7221.0890.9660.4740.8251.3910.5631.390

.112

.328

.150

.489

.1250.9580.6510.9740.9471.1030.896

1.8691.4811.0052.0021.0011.3300.8271.5021.4520.7140.902

1.2911.4120.7681.6421.1391.3011.3971.6361.0390.5181.100

0.00 CH.0.3010.0380.288

0.3230.0370.274

0.3220.0870.201

0.1890.230

0.1540.209

34

Page 37: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Output file KNOB.IND, continued

19101920193019401950196019701980

AREA18821890190019101920193019401950196019701980

0.2580.2640.0930.1370.1270.1240.0800.125

1.4311.1530.7179.812

13.7515.6139.3099.425

10.1977.050

11.641

SPLINE18821890190019101920193019401950196019701980

INDEX18821890190019101920193019401950196019701980

RING190019101920193019401950196019701980

AREA190019101920193019401950196019701980

1.6503.0955.1427.2108.0628.0218.1718.4358.4488.1318.137

0.8670.3730.1391.3611.7060.7001.1391.1171.2070.8671.431

WIDTHS0.0280.2510.1890.0580.1120.1230.1120.0740.046

0.2070.2110.0210.1170.1580.1270.0300.116

SIG12-12.0951.3133.392

0.3520.1770.0510.1240.1200.0730.039

2.5812.4093.117

8.175 14.52011.3051.2758.043

11.86710.5442.654

10.890

SIG12-11.8303.2815.3677.3638.0738.0238.1928.4598.4198.1148.148

SIG12-11.1450.4000.6321.1101.4000.1590.9821.4031.2520.3271.337

9.6993.1088.6199.1186.1073.459

2.0103.4705.5947.5018.0758.0288.2138.4798.3878.103

1.2840.6940.5571.9361.2010.3871.0491.0750.7280.427

0.2270.0460.0720.0880.1170.1740.074

3.2382.9235.4019.7762.5534.4166.1758.977

14.6906.589

2.1903.6635.8197.6248.0728.0398.2358.4948.3518.096

1.4790.7980.9281.2820.3160.5490.7501.0571.7590.814

SIG12-2 MS= 0.3900.0910.1880.1660.0220.1060.1030.0960.0440.055

0.0500.2610.1610.0520.1360.1340.0820.059

0.1080.2690.0250.0990.0830.1350.1250.085

0.1670.0500.1320.0530.1220.0770.107

2.4984.0255.6387.3992.7908.1803.7439.4526.5629.589

2.3703.8616.0417.7308.0648.0538.2608.5058.3148.094

1.0541.0420.9330.9570.3461.0160.4531.1110.7891.185

0.2480.0770.1430.0760.1130.0470.127

4.1300.8538.805

11.3114.3278.9855.3978.8384.023

11.474

2.5504.0636.2587.8218.0558.0708.2878.5098.2778.096

1.6200.2101.4071.4460.5371.1130.6511.0390.4861.417

1900= 0.000.0990.1500.0380.1440.0450.1290.0600.080

0.1790.2100.0650.1250.1100.1300.0550.077

0000000

5086792947

24678

.141

.126

.144

.040

.118

.056

.079

.065

.840

.861

.603

.162

.178

.855

.315

.812

.189

.731

.270

.469

.897

.0468.0908888

1010010100

.316

.509

.242

.100

.855

.197

.370

.836

.890

.135

.343

.095

.584

.888

0.2130.1060.1630.0490.0800.0840.074

5.7012.0086.800

10.2126.102

10.5463.5116.3657.2556.769

2.9124.4826.6717.9598.0378.1108.3468.5028.2098.107

1.9580.4481.0191.2830.7591.3000.4210.7490.8840.835

0.2300.1710.1800.1660.1780.1050.114

4.5268.093

11.3479.993

11.84012.00814.3079.131

10.496

4.6986.8628.0068.0298.1318.3778.4908.1798.115

0.963.179.417.245.456.433.685.116.293

0.1910.1740.1870.1520.1450.0930.049

3.8547.6429.676

10.35712.51611.14711.8018.1454.536

4.9197.0438.0408.0248.1518.4078.4728.1538.125

0.7841.0851.2031.2911.5361.3261.3930.9990.558

CM.00000000

.226

.143

.130

.106

.107

.087

.053

.035

0.2320.2060.1050.1430.1300.0620.0810.035

0.3110.1800.1560.1320.1560.1410.0940.080

0.2270.1670.1520.1500.1410.0820.0670.020

SIG12-20.4676.8067.4932.7085.9747.4357.5595.3693.504

1.5515.3576.7661.0335.7266.2996.5423.2094.207

0.8747.8056.7282.4537.4508.2955.6334.322

1.9428.4921.0594.7174.6048.4718.6696.264

1.8454.9331.6186.9712.5148.2014.1965.937

3.4927.1442.7886.1576.2008.3713.8665.753

4555

.696

.023

.656

.2986.103532

.661

.744

.627

5.1547.4624.6467.2597.5124.0635.7552.635

7.4406.7387.0306.8159.1559.3316.7316.051

5.8146.4346.9977.8778.4065.4844.8311.519

35

Page 38: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Output file KNOB.IND, continued

SPLINE1900 3.1741910192019301940195019601970

4.6845.4135.7086.2266.5906.2235.199

1980 3.930

INDEX190019101920193019401950196019701980

0.1471.4531.3840.4740.9591.1281.2151.0330.892

SIG12-23.337 3.501

4.905 5.472 5.795 6.329 6.587 6.056 4.955

4.7995.4455.7506.2796.5936.1435.0783.800

SIG12-20.465 0.250

1.591 1.229 0.423 1.177 1.259 0.930

1.1161.2430.1800.9120.9551.0650.6321.107

3.6635.0015.4975.8446.3776.5725.9634.831

3.8245.0865.5225.8956.4226.5485.8654.705

3.9815.1625.5485.9496.4646.5145.7624.577

4.1355.2285.5756.0056.5026.4725.6564.449

4.2835.2865.6056.0616.5356.4225.5464.319

4.4255.3355.6366.1176.5616.3635.4334.190

4.5595.3775.6716.1726.5796.2975.3174.060

0.872

0.5301.6980.1930.8070.7221.2891.4541.297

0.4820.9700.2931.1820.3911.2530.7151.262

0.8771.3840.5031.0350.9591.2850.6711.257

1.1360.9611.0140.8820.9390.8750.6620.591

1.203 '1.412 10.829 11.1981.1500.6331.0380.610

1 .681.263.247.114.395.466.239.444

1.2751.1961.2341.2761.2780.8710.9090.374

RING 1870 1880 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980

WIDTHS 0.024 0.393 0.212 0.094 0.133 0.147 0.089 0.158 0.165 0.083 0.032 0.009

SIG13-1 0.070 0.326 0.227 0.139 0.113 0.172 0.059 0.165 0.129 0.064 0.029 0.000

MS= 0.138 0.519 0.252 0.073 0.142 0.176 0.077 0.103 0.108 0.055 0.023

0.243 0.192 0.333 0.295 0.099 0.153 0.156 0.125 0.103 0.117 0.063 0.039

0 0 0 0 0 0 0 0 0 0 0

1870= .150 .391 .289 .091 .082 .135 .116 .072 .122 .049 .031

0.00 0.188 0.351 0.186 0.095 0.109 0.139 0.127 0.151 0.108 0.035 0.015

CM. 0.257 0.494 0.153 0.088 0.135 0.135 0.093 0.115 0.101 0.030 0.019

0.347 0.388 0.224 0.140 0.143 0.116 0.140 0.145 0.088 0.056 0.019

0.459 0.402 0.201 0.150 0.119 0.153 0.211 0.160 0.182 0.027 0.020

0.354 0.346 0.164 0.123 0.105 0.148 0.184 0.127 0.113 0.029 0.017

AREA 1870 1880 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980

0.58615.43413.4587.233

11.16313.4848.974

17.17719.28910.3244.0741.159

SPLINE 1870 7.650 1880 12.661 1890 14.752 1900 13.419 1910 12.079 1920 12.283 1930 13.244 1940 14.124 1950 13.408 1960 10.231 1970 5.576 1980 0.833

INDEX1870 0.0771880 1.21918901900

SIG131.730

13.53914.72310.7989.572

15.9505.976

18.10615.1997.9913.6980.000

SIG13-8.187

13.05314.73013.22812.03412.36313.35214.14713.2029.7985.0990.360

-13.501

22.93316.7235.719

12.14216.5147.833

11.38912.8066.8872.936

18.722

13.41014.67313.04412.00512.44913.46114.15112.9699.3524.622

5.07015.60520.0847.810

13.22414.80012.79511.45613.9557.9134.987

9.25613.72914.58512.87011.99312.53913.56914.13612.7108.8964.147

4.12219.21320.2067.2337.148

12.93111.9618.048

14.6436.1723.971

9.78414.00714.46812.70811.99512.63313.67414.10112.4258.4313.672

5.36618.06613.2827.6079.567

13.43413.19216.98313.0414.4171.923

7.69526.73711.0887.097

11.95313.1639.725

13.03012.2623.7932.438

1910

0.9120.5390.924

SIG13-10.211 0.401

1.710 1.140 0.438

1.0371.0000.8160.795 1.011

0.5481.1371.3770.6071.103

0.4211.3721.3970.5690.596

10.30514.24214.32712.56112.01312.72913.77514.04512.1167.9613.198

0.5211.2680.9270.6060.796

10.81514.43314.16712.43112.04412.82813.86913.96711.7827.4872.724

11.04822.07516.49911.39112.78611.40214.74216.54810.7367.0952.441

11.31014.57813.99112.31712.08812.92913.95413.86611.4267.0112.251

15.77723.86915.07412.34110.73815.16822.45118.41322.3583.4282.572

11.78514.67913.80512.22112.14413.03314.02613.73911.0476.5331.778

13.07221.35712.48710.2259.549

14.81319.80614.73013.9873.6872.188

12.23714.73613.61312.14212.20913.13814.08413.58710.6486.0541.305

0.7121.8530.7830.5710.992

0.9771.5141.1790.9251.058

1.3391.6261.0921.0100.884

1.0681.4490.9170.8420.782

36

Page 39: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Output file KNOB.IND, continued

1920193019401950196019701980

1.0980.6781.2161.4391.0090.7311.392

1.2900.4481.2801.1510.8160.7250.000

1.3260.5820.8050.9870.7360.635

1.1800.9430.8101.0980.8901.203

1.0240.8750.5711.1790.7321.081

1.0550.9581.2091.0760.5550.602

1.0260.7010.9331.0410.5070.895

0.8821.0561.1930.9401.0121.084

1.1641.6011.3402.0240.5251.446

1.1271.4061.0841.3140.6091.676

RING 1870 1880 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980

WIDTHS 0.035 0.384 0.258 0.042 0.096 0.122 0.087 0.108 0.088 0.062 0.032 0.000

SIG13-2 0.064 0 0.359 0 0.198 0 0.049 0 0.070 0 0.138 0 0.066 0 0.073 0 0.102 0 0.076 0 0.024 0 0.000

MS= .111 .570 .217 .062 .113 .111 .051 .052 .085 .096 .026

0.283 0.208 0.279 0.270 0.111 0.121 0.129 0.086 0.044 0.078 0.074 0.031

1870= 0.208 0.331 0.330 0.093 0.069 0.109 0.091 0.039 0.062 0.052 0.036

0.00 0.198 0.242 0.173 0.089 0.083 0.090 0.111 0.060 0.102 0.034 0.015

CM. 0.242 0.435 0.197 0.092 0.102 0.102 0.057 0.046 0.133 0.036 0.005

0.290 0.367 0.162 0.144 0.080 0.087 0.090 0.071 0.101 0.046 0.023

0.467 0.446 0.149 0.170 0.064 0.133 0.126 0.087 0.119 0.043 0.019

0.404 0.428 0.103 0.131 0.096 0.142 0.120 0.084 0.076 0.030 0.016

AREA 1870 1880 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980

0.94216.12416.9583.2758.095

10.9828.458

11.1079.4126.9943.7170.000

SPLINE 1870 8.623 1880 13.171 1890 14.626 1900 12.422 1910 10.132 1920 9.178193019401950196019701980

8.9528.8148.5697.3624.6421.365

SIG13- 1.742

15.91313.298 3.835 5.939

12.535 6.448 7.549

10.970 8.607 2.792 0.000

SIG13-9.117

13.50814.52612.1439.9769.1428.9378.7968.5167.1464.3251.031

23.082

26.92914.8574.8749.652

10.1705.0015.3989.192

10.9243.029

29.609

13.80814.38811.8719.8359.1108.9238.7778.4516.9154.004

5.98313.92518.8998.786

10.42411.9168.4714.5818.4758.4603.617

10.09914.06814.21611.6099.7089.0838.9108.7598.3736.6683.681

6.25517.15523.720

421986150

9.0144.0706.763

6.20712.97812.7097.1527.2408.437

11.065281180

6.11.

5.965 3.9104.208 1.756

10.58414.28514.01211.3589.5959.0598.8978.7408.2816.4073.354

11.06014.45713.78311.1209.4969.0388.8858.7208.1736.1353.025

7.92024.25314.7017.4468.9569.6245.7124.830

14.6754.1480.586

11.52414.58513.53210.8959.4109.0198.8728.6998.0475.8522.695

9.97621.38612.27211.7617.0708.2609.0617.482

11.2195.3112.696

11.97214.66513.26610.6849.3369.0018.8598.6767.9045.5602.364

17.17627.12911.43214.0525.685

12.71912.7719.211

13.3004.9772.229

12.39914.69812.98810.4879.2748.9848.8468.6477.7415.2602.031

15.96427.2097.984

10.9538.576

13.70312.2558.9398.5413.4791.879

12.80014.68512.70510.3039.2228.9688.8308.6127.5614.9541.698

INDEX 1870 1880 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980

0.109 1.224 1.159 0.264 0.799 1.197 0.945 1.260 1.098 0.950 0.801 0.000

SIG13-2 0.191 0.321 1.178 1.950 0.915 1.033 0.316 0.411 0.595 0.981 1.371 1.116 0.721 0.561 0.858 0.615 1.288 1.088 1.204 1.580 0.646 0.756 0.000

0.592 0.990 1.329 0.757 1.074 1.312 0.951 0.523 1.012 1.269 0.983

0 1 1 0 0 1 1 0 0 0 1

.591

.201

.693

.653

.624

.120

.013

.466

.817

.931

.255

0.561 0.898 0.922 0.643 0.762 0.933 1.245 0.720 1.368 0.637 0.580

0 1 1 0 0 1 0 0 1 0 0

.687

.663

.086

.683

.952

.067

.644

.555

.824

.709

.217

0.833 1.458 0.925 1.101 0.757 0.918 1.023 0.862 1.419 0.955 1.141

RING WIDTHS1880 0.5601890190019101920

0.1920.0460.1430.216

SIG14-1 MS= 0.261 1880= 0.00 CM. 0.379 0.312 0.295 0.179 0.284 0.390 0.103 0.159 0.183 0.215 0.202 0.214 0.084 0.1290.2C1

0.0860.1480.158

0.1590.1960.141

0.1920.1340.121

0.1720.1540.161

0.2070.1550.148

0.3400.3520.2480.1720.170

1.3851.8460.8801.3400.6131.4161.4441.0651.7180.9461.098

0.3110.2850.2350.2230.260

1.2471.8530.6281.0630.9301.5281.3881.0381.1300.7021.107

0.3460.2710.2130.2650.229

37

Page 40: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Output file KNOB.IND, continued

1930194019501960

0.1340.1760.1720.080

0.1500.1610.1420.073

0.1100.0790.1250.088

0.1660.0690.1230.104

0.1960.0730.1540.074

0.1710.1200.1420.075

0.0830.1350.1110.060

0.1290.1470.0790.067

0.1740.2000.1070.070

0.2280.1620.0680.040

1970 0.057 0.035 0.057 0.067 0.067 0.073 0.067 0.048 0.063 0.0481980 0.041 0.018

AREA 1880 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980

4.5185.4241.9077.448

13.6339.943

14.78615.8777.9765.9414.421

SPLINE 1880 4.488 1890 6.174 1900 7.789 1910 9.478 1920 11.089 1930 12.118 1940 12.281 1950 11.495 1960 9.489 1970 6.987 1980 4.516

SIG144.1763.0053.5176.829

12.94911.26413.69613.2487.3133.658I.944

SIG14-4.6596.3377.9519.648

II.22512.17412.24611.3489.2456.7394.266

-14.1154.7703.6477.964

10.3578.3506.780

11.7668.8615.974

14.8306.5008.1169.817

11.35412.22212.20211.1878.9986.493

4.4535.6866.865

10.7589.375

12.7455.954

11.67410.5347.048

5.0016.6628.2839.986

11.47612.26112.14911.0128.7486.248

2.9696.9508.5017.4948.145

15.2716.332

14.7507.5377.076

5.1726.8258.452

10.15411.59112.29112.08810.8248.4966.002

5.1236.7947.8128.752

10.98013.52010.48113.7337.6747.742

5.3426.9878.622

10.31911.69912.31212.01810.6248.2435.756

7.8617.4779.6498.959

10.2376.629

11.89910.8236.1657.135

5.5117.1488.794

10.48311.80012.32411.93910.4137.9915.510

7.63312.92511.91410.11911.92910.38813.0877.7506.9105.129

5.6797.3098.965

10.64211.89312.32811.84810.1937.7385.263

7.61811.03511.64613.39618.59614.17818.02410.5597.2506.754

9.18910.96710.85616.32516.73018.86514.7846.7484.1575.162

5.8467.4699.137

10.79811.97812.32211.7449.9647.4865.015

6.0107.6299.307

10.94712.05212.30611.6279.7297.2364.766

INDEX 1880 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980

1.007 0.878 0.245 0.786 1.229 0.820 1.204 1.381 0.841 0.850 0.979

SIG14-1 0.896 0.474 0.442 0.708 1.154 0.925 1.118 1.167 0.791 0.543 0.456

0.852 0.734 0.449 0.811 0.912 0.683 0.556 1.052 0.985 0.920

0.890 0.854 0.829 1.077 0.817 1.039 0.490 1.060 1.204 1.128

0.574 1.018 1.006 0.738 0.703 1.242 0.524 1.363 0.887 1.179

0.959 0.972 0.906 0.848 0.939 1.098 0.872 1.293 0.931 1.345

1.426 1.046 1.097 0.855 0.868 0.538 0.997 1.039 0.771 1.295

1.344 1.768 1.329 0.951 1.003 0.843 1.105 0.760 0.893 0.975

1 1 1 1 1 1 1 1 0 1

.303

.477

.275

.241

.553

.151

.535

.060

.968

.347

1.529 1.437 1.166 1.491 1.388 1.533 1.272 0.694 0.574 1.083

RING 1880 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980

WIDTHS 0.507 0.190 0.024 0.116 0.279 0.174 0.209 0.161 0.109 0.037 0.024

SIG14-2 0.378 0.151 0.045 0.076 0.349 0.126 0.179 0.164 0.110 0.021 0.008

MS= 0.321 0.160 0.086 0.110 0.224 0.096 0.117 0.137 0.093 0.034

0.355 0.296 0.271 0.107 0.189 0.189 0.213 0.093 0.139 0.127 0.062

1880= 0.269 0.289 0.158 0.152 0.171 0.207 0.078 0.142 0.102 0.053

0.00 0.351 0.219 0.145 0.158 0.159 0.191 0.157 0.128 0.082 0.037

CM. 0.897 0.252 0.220 0.201 0.182 0.069 0.133 0.113 0.061 0.044

0.441 0.313 0.223 0.229 0.182 0.104 0.195 0.093 0.074 0.031

0 0 0 0 0 0 0 0 0 0

.295

.289

.295

.210

.295

.183

.224

.135

.043

.044

0.436 0.289 0.225 0.182 0.276 0.196 0.221 0.092 0.020 0.030

AREA 1880 1890 1900 1910 1920 1930 1940 1950 1960

11.0468.9541.4848.319

22.99716.80622.25718.74513.566

SIG14-9.2867.2772.7925.496

29.45512.28819.28019.26213.766

28.5917.8685.3718.019

19.3099.430

12.71116.22011.698

8.49613.6936.748

13.95616.53721.12910.16516.57816.063

8.19815.11110.09511.38715.15520.8078.567

17.06112.974

11.38111.8009.403

11.99014.25719.43717.36015.48710.478

32.60213.95114.51815.48016.5147.078

14.82813.7587.822

17.88217.88415.02717.94616.72210.72521.94111.3839.520

12.64417.05920.35816.74727.54619.03725.49816.6215.548

19.68917.58415.89514.73826.26720.62325.46611.3922.584

38

Page 41: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Output file KNOB.IND, continued

19701980

4.7883.164

SPLINE 1880 12.040 1890 12.218 1900 12.362 1910 13.712 1920 16.045 1930 17.499 1940 17.574 1950 16.275 1960 12.810 1970 7.925 1980 2.874

2.7211.055

SIG14- 12.069 12.216 12.424 13.923 16.257 17.560 17.516 16.027 12.363 7.417 2.369

4.411 8.063 6.912 4.836 5.762 4.067 5.782 3.950

212.09712.21512.50214.14416.45517.60817.44515.75511.9036.910

12.12612.21612.59814.37516.63817.64317.36115.45911.4316.405

12.15212.22012.71214.61416.80717.66717.26315.14010.9475.900

12.17612.22712.84314.85716.96117.67917.14914.79910.4545.396

12.19512.23912.99015.10317.10017.68017.01814.4389.9554.892

12.20812.25613.15215.34717.22417.67016.86714.0579.4504.387

12.21512.28213.32615.58817.33217.65016.69413.6588.9433.883

12.21812.31613.51315.82117.42317.61816.49713.2428.4343.379

INDEX 18801890190019101920193019401950196019701980

0.9170.7330.1200.6071.4330.9601.2661.1521.0590.6041.101

SIG14-2 0.769 0.7100.5960.2250.3951.8120.7001.1011.2021.1130.3670.446

0.6440.4300.5671.1730.5360.7291.0300.9830.638

0.7011.1210.5360.9710.9941.1980.5851.0721.4051.259

0.6751.2370.7940.7790.9021.1780.4961.1271.1851.171

0.9350.9650.7320.8070.8411.0991.0121.0461.0020.896

2.6731.14011000001

.118

.025

.966

.400

.871

.953

.786

.178

1.4651.4591.1431.1690.9710.6071.3010.8101.0070.927

1.0351.3891.5281.0741.5891.0791.5271.2170.6201.489

1.6111.4281.1760.9321.5081.1711.5440.8600.3061.169

RING1862187018801890190019101920193019401950196019701980

WIDTHS0.2650.0250.2940.0490.1020.1220.1530.0940.1490.0940.0900.0890.041

SIG16-1 MS=0.4240.0680.1940.1060.1570.0940.1660.0390.1680.0850.0900.0670.044

0.2410.1610.2810.1880.1310.1330.1080.0920.0970.0710.0990.057

0.357 1862=0.2120.1970.2440.2190.1370.1620.1420.1520.0840.0780.0900.070

0.1590.0450.2290.2550.1450.0810.1280.1130.0580.0540.0540.053

000000000000

0.00.205.066.172.152.182.116.132.122.137.082.053.066

CM.0.2100.1600.2660.1720.1690.1200.1300.0860.0940.1000.0350.044

0.1980.1330.2200.1960.2100.1340.1100.1230.0950.0630.0540.014

0.2500.1770.2450.1860.1650.1530.1730.1210.1280.0570.077

0.1910.2150.2020.2170.1470.1480.1730.1360.0800.0660.037

AREA 1862 1870 1880 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980

8.456I.080

15.3383.2247.872

10.677 14.6309.780 16.621II.14211.13911.4005.393

SPLINE 1862 7.044 1870 8.152 1880 10.114 1890 11.883 1900 12.869 1910 13.144 1920 13.124 1930 13.015 1940 12.673 1950 11.540

SIG16 14.4472.956

10.4187.026

12.2448.291

16.0394.074

18.907 10.123 11.1908.6155.800

SIG16 7.174 8.316

10.323 12.019 12.923 13.144 13.119 12.998 12.596 11.391

-18.7157.115 15.510 12.636 10.335 11.825 10.5289.648 10.9988.491 12.3687.351

-17.304 8.489 10.527 12.147 12.970 13.143 13.112 12.981 12.509 11.238

7.9688.928

13.87014.99910.92414.55413.95416.0579.5719.364

11.2979.056

7.4368.671

10.72412.26813.01213.14013.10412.96212.41311.081

6.1612.073

13.35817.84511.6907.339

12.68712.0316.6356.5056.8026.877

7.5698.861

10.91412.38013.04813.13813.09412.94012.30910.922

8.1783.064

10.24910.83114.86010.58113.19113.08015.7569.9136.6948.588

7.7079.059

11.09612.48313.07813.13613.08412.91312.19810.760

8.6527.542

16.21712.43113.98511.03513.0989.276

10.87912.1474.4305.741

7.8499.264

11.27012.57813.10213.13413.07212.88112.07910.595

8.4116.392

13.74814.39317.62812.43011.16613.34811.0517.6856.8511.829

7.9979.474

11.43512.66313.12113.13213.06012.84311.95410.427

12.31511.28218.33015.84515.46015.65818.93514.15715.6907.251

10.082

9.68711.59212.74013.13413.13113.04612.79611.82210.256

9.67313.96915.39718.76013.91815.28619.12316.0229.8598.4224.858

9.90111.74112.80913.14113.12813.03112.74011.68410.080

39

Page 42: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Output file KNOB.IND, continued

1960 9.900 1970 7.973 1980 5.933

INDEX1862187018801890190019101920193019401950196019701980

RING18501860187018801890190019101920193019401950196019701980

AREA18501860187018801890190019101920193019401950196019701980

1.2000.1321.5170.2710.6120.8121.1150.7511.3110.9661.1251.4300.909

WIDTHS0.2070.0260.0200.2160.0420.0310.0810.1320.0890.1180.1030.0850.0530.041

9.717 9.530 7.773 7.573 5.727

SIG16-12.0140.3551.0090.5850.9480.6311.2230.3131.5010.8891.1521.1081.013

1.1930.8381.4731.0400.7970.9000.8030.7430.8790.7561.2980.971

SIG16-2 MS=0.3120.0880.0340.1320.0480.1250.0890.1280.0480.0880.0930.0900.0410.030

0.2510.2480.1120.1790.1220.0910.1010.1200.0610.0710.0790.0610.029

9.340 7.371

1.0721.0301.2931.2230.8401.1081.0651.2390.7710.8451.2101.229

0.4100.2030.1820.1590.1350.1860.1000.1100.1260.0700.0710.1150.0770.037

9.147 7.167

0.8140.2341.2241.4410.8960.5590.9690.9300.5390.5960.7440.960

1850=0.1980.1490.0590.1350.2010.0890.0710.1200.0870.0710.0860.0490.034

8.953 6.962

1.0610.3380.9240.8681.1360.8061.0081.0131.2920.9210.7481.234

0.000.2970.1510.0780.1350.1120.1010.0920.0920.0970.1290.1100.0390.068

8.758 6.757

1.1020.8141.4390.9881.0670.8401.0020.7200.9011.1460.5060.850

CM.0.1880.2070.1790.2570.1050.1600.0920.1070.0460.1060.0890.0270.035

8.563 6.551

1.0520.6751.2021.1371.3440.9460.8551.0390.9240.7370.8000.279

0.3010.2670.1120.1170.1380.1870.1380.1100.0860.1150.0720.0320.012

8.367 6.345

1.2710.9731.4391.2061.1771.2001.4801.1981.5300.8671.589

0.2330.2220.2740.1650.1780.2340.1690.1170.1470.1350.1260.0320.071

8.170 6.139

0.9771.1901.2021.4281.0601.1731.5011.3710.9781.0310.791

0.2000.1690.1640.1950.1070.1500.1200.1430.1290.0930.0770.0340.039

SIG16-23.3290.7940.825

10.6592.4892.0786.087

10.8227.953

11.19210.4109.0935.8404.624

SPLINE18501860187018801890190019101920193019401950196019701980

4.6345.4196.2397.2247.9768.4868.9689.2629.3119.4129.1257.7155.6143.672

INDEX18501860

0.7180.146

5.5262.7181.4086.6582.8588.4396.735

10.5984.3108.4049.4579.6784.5303.390

4.8907.9224.6909.2047.3306.2057.704

10.0295.4986.8168.0766.5883.210

4.2446.0606.7947.075

11.3566.8798.463

10.6286.3386.848

11.8268.3504.104

4.3895.1162.5617.189

12.5166.1755.503

10.2157.9206.8798.8985.3333.778

7.0455.3273.4207.3047.0847.0687.1787.8938.886

12.58011.4494.2557.579

4.7467.5357.993

14.2216.713

11.3287.2319.2464.235

10.4159.3192.9523.912

8.06110.1175.1036.6118.928

13.44310.9469.5817.953

11.3797.5753.5041.343

6.6318.753

12.8179.470

11.69317.13213.56810.27413.70213.46413.3353.5117.965

5.9646.8717.897

11.4127.125

11.1639.743

12.67412.1369.3428.1983.7374.389

SIG16-24.7145.4986.3287.3178.0338.5369.0059.2779.3149.4169.0397.5165.4113.483

4.7945.5776.4227.4078.0888.5879.0409.2889.3199.4158.9417.3105.210

4.8735.6576.5187.4938.1428.6399.0749.2979.3279.4098.8297.1005.012

4.9535.7386.6177.5748.1948.6929.1069.3039.3389.3978.7066.8864.817

5.0315.8196.7197.6518.2448.7449.1389.3069.3509.3778.5696.6714.624

5.1105.9016.8227.7248.2938.7949.1689.3089.3649.3498.4206.4564.432

5.1875.9846.9257.7928.3418.8439.1969.3099.3799.3108.2606.2424.241

5.2656.0677.0277.8578.3898.8889.2219.3109.3929.2608.0886.0304.051

5.3426.1527.1277.9188.4378.9309.2449.3109.4049.1997.9065.8203.862

SIG16-21.1720.494

1.0201.420

0.8711.071

0.8860.892

1.4000.915

0.9291.277

1.5541.691

1.2601.443

1.1161.117

40

Page 43: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Output file KNOB.IND, continued

187018801890190019101920193019401950196019701980

0.1321.4760.3120.2450.6791.1680.8541.1891.1411.1791.0401.259

0.2230.9100.3560.9890.7481.1420.4630.8931.0461.2880.8370.973

0.7301.2430.9060.7230.8521.0800.5900.7240.9030.9010.616

1.0420.9441.3950.7960.9331.1430.6790.7281.3391.1760.819

0.3870.9491.5280.7100.6041.0980.8480.7321.0220.7740.784

0.5090.9550.8590.8080.7850.8480.9501.3421.3360.6381.639

11010001100

.172

.841

.809

.288

.789

.993

.452

.114

.107

.457

.883

0.7370.8481.0701.5201.1901.0290.8481.2220.9170.561 (0.317

.824

.205

.394

.927

.471

.104

.459

.454

.649).5821 .966

1.1081.4410.8441.2501.0541.3611.2911.0161.0370.6421.136

Output file KNOB.IX1

SIGNAL KNOB PITCH PINECRNIDX1900 494 23 745 23 703 23 948 23 941 23 709 23 888 231163 231385 231174 23CRNIDX1910 803 24 713 24 960 241122 24 741 24 843 24 973 241122 241107 241083 24CRNIDX19201219 241242 241048 24 981 24 914 24 903 24 936 24 922 241324 241356 24CRNIDX1930 761 24 422 24 517 24 898 24 906 24 999 24 694 24 959 241237 241432 24CRN IDX19401215 241222 24 801 24 713 24 488 241114 24 981 241104 241453 241312 24CRNIDX19501306 241158 24 980 241067 24 993 241132 241111 24 824 241354 24 897 24CRN IDX19601077 241051 24 970 241244 24 823 24 773 24 684 241246 241055 24 769 24CRNIDX1970 939 24 536 24 625 241254 241175 241153 24 984 24 701 241271 24 734 24CRNIDX19801032 24 664 249990 09990 09990 09990 09990 09990 09990 09990 0

41

Page 44: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Output file KNOB.1X2

SIGNAL KNOB PITCH PINESIG01-1900 911SIG01-1910 746SIG01- 19201 132SIG01-1930 573SIG01-1940 997SIG01 -19501 122SIG01-19601302SIG01-1970 922SIG01- 19801 148SIG01-1890 866SIG01-1900 829SIG01-1910 639SIG01-19201000SIG01-1930 593SIG01-19401287SIG01-1950 921SIG01-19601570SIG01-1970 855SIG01 -19801065SIG02-18501000SIG02-1860 458SIG02-1870 206SIG02-18801395SIG02-1890 657SIG02-1900 551SIG02-1910 398SIG02-19201188SIG02-1930 733SIG02- 19401 257SIG02-19501487SIG02-19601045SIG02-1970 993SIG02-1980 0S I G02- 18439990SIG02-1850 909SIG02-1860 337SIG02-1870 264SIG02-18801515SIG02-1890 763SIG02-1900 454SIG02-1910 519SIG02-19201230SIG02-1930 931SIG02-19401342SIG02-19501564SIG02-19601553SIG02-1970 793SIG02-1980 0SIG03-18901850SIG03-1900 996SIG03-1910 214SIG03-19201198SIG03-1930 574SIG03-19401474SIG03-1950 618SIG03-1960 750SIG03-1970 895SIG03-19801522SIG03-1880 593SIG03-1890 755SIG03-1900 325SIG03-1910 310SIG03-19201293SIG03-1930 701SIG03-19401616SIG03-19501159SIG03-1960 672SIG03- 19701 144

012370 562010680 4600130801191012270 4880 58301011010860 3860 9330 278011930 909013410 4210 606010030 8420 8280 6370 822011710 445013170 00 940012240 5920 1650 009990010120 8220 8090 844012880 9890 578016590 00118501199011390 4920 00 8700 2630 272010050 18101561012030 7750 4050 663010620 7380 8080 247012910 14602025010350 7220 774

0 866010280 8150 4680 776010000 8580 37909990013570 7560 7490 9000 3510 6040 9090 7010 5650999001049013420 7310127901057010670 863010540 7570 8510 7310 7850 225099900999001424010200 491011090 974012610 912011490 6610 9380 819010950 677099900 7360 9770 8040 9370 3080 6440 634011940 4080999001269011720 6360 5630 9890 3790 9180 6610 8690 669

02213015630 8970 8960 7840 859011120125209990010390132901489010970 7340 848010030 9760141509990012500 8140 70901010012410 9290 83001632010280 8260 9920138802431099900 498015970 7390 66001227012680 6260 6080 8400 7030 8820 938013270222509990010940 92901171011060 9810 728013590125901650099900108101233012670 7620 9670 83301038011500124901580

014840 9200 7290 6950 4480 9560 894010020999001145015170 9780 9960 8040 501011290 761012210999001090010650 16401318015760 9410 732015420 8370 5560 5470 59201267099900 79501269010900 17401200014390 8540 8110 8850 7460 5860 7830 486010940999001088012650 6330 979012010 266010640 7190 834099900 51501912014440 6660 9660 9460 405014650 40001059

0 2270 4610 9250 83701333012640 6870 764099900 8440 1100 407011730122101413011270 73301226099900 956018130 3200 7350 3740 2010 5770 9420 927011770 8200 73501607099900 71201017019370 208010380 4620 1800 6940 72301272010750 9090 35501620099900164201253010710 954011340 9310 8800 9490190009990010310 6300 1470 9510 8480 860010340 9000 47501333

0 5210 7760 9090 73001215011620 8050 83409990010740 3610 5140105101000012260 8860 6300 751099900 6860 8050 436012640 5750 8910 9680 8140 8360 8920 8900 7230 281099900 8680 9130 7390 368013180 6280 784012010 6780 7450 901011150 3720 313099900 3790 503011930 9690 69401101013560 9740143709990017150 4780 732013900 8460 42301175014290 49501565

011350 7530106601008012450 914017940 63609990013130 8330 7090 96201293012170 676016680 501099900 946018440 664010520130601208012010 8810 722010190 5820222201142099900120701251015330 868011050 88701187016830 7660 81801111010710 75501041099900 5700 927012370 85701000011240 960011630 90209990010000153701099012950 7000 6790 805010640 8550 832

014730 8860136501315014240113801262011820999002173013760 65001311010980175101192013380115009990011430158701517018270 7250155501301014290138101519011790 991014560999001346013970109001590014910 565013550170401002014040159601472011500110209990013170112601127016030150801600011500 647011630999001000011330133501300016420123701360014120 9440 943

01533013560137301428011760 9710 8860 90909990013040138101081011570154301138011050 9960 6810999001042012200 941023330 83101147010960193001620012750 8960 14102997099900 8630 9000123201515024420 523011500143101520015120 984011000 53001770099900174201099010240148801958013140 5800 5350 24209990015650105501320014230152202086012580 4010 7750 274

00000000000000000000000000000000000000000000000000000000000000000000

43

Page 45: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Output file KNOB.1X2, continued

SIG03-19802133SIG05-1910 327SIG05-19201473SIG05-1930 523SIG05-19401040S I G05- 19502529SIG05-1960 841SIG05-1970 811SIG05-1980 535SIG05-1880 845SIG05-1890 361SIG05-1900 232SIG05-1910 733SIG05-19201058SIG05-1930 852SIG05-19401158SIG05-19501007SIG05-19601258SIG05-1970 727SIG05-1980 444S I G06- 18829990SIG06-1890 269SIG06-1900 621SIG06-1910 803SIG06-1920 914SIG06-1930 702SIG06-19401400SIG06- 19501339SIG06-19601045SIG06-19701122SIG06-1980 802SIG06-1880 706SIG06-1890 95SIG06-1900 574SIG06-1910 758SIG06-1920 902SIG06-1930 708SIG06-19401288SIG06-19501399SIG06- 19601306SIG06-1970 796SIG06- 19801 185S I G08- 18879990SIG08-1890 465SIG08-1900 707SIG08-19101027SIG08-19201261SIG08-1930 803SIG08- 19401 211SIG08- 19501 530SIG08-19601002SIG08-19701038SIG08-1980 998SIG08-1890 321SIG08-1900 867SIG08-1910 863SIG08-19201221SIG08-1930 969SIG08-1940 931SIG08-19501241SIG08-1960 927SIG08-19701070SIG08-1980 981SIG09-1890 982SIG09-1900 752SIG09-19101116SIG09-19201512SIG09-1930 628

0 5310 520015490 4660 959013340 9510 6980 341013010 1410 5410 599010090 9710129801150011640 3310 180099900 3000 9940 8360 8230 001124011130 8160 7730 6960 8560 3040 9860 7550 9580 00109401101011660 7820 753099900 5590 8990 96801252010270145201141012250 3780 6330 523011690 663012770 7270 9880 914011050 4600 33501004010810 981011780 0

099900 569015310 3970 53701057011750 523099900 8870 8160 5290 6910 7830 855012810 986011100 54109990015850 5400 8670 9230 8760 5300 717013750 8830 64809990011200 5650 799010010 8620 5240 431010660 9770 78609990099900 7770 9030 976010400 7440 683010420 8390 907099900 9590 9940 8770 9660 7350 690011900 7510 92209990010500 727011870 7610 119

0999001044011950 7560 3310 967017730 917099900 646012570 9580 6830 998013410 7640 978010910113109990010130 7420125201282012670 9350 598010660128002053099900 7090 6130164601138010080 7550 7330 9510 9170147109990099900 91801173011460 785010320 6690124801249013720999001080010040 7710 751010480 665012260113201414099900143301202014650 6680 613

099900 7230 9780 7490 3270 812010760 931099900111001368011710 6300 781010490 683010300 91201450099900 845010000 8880 71001103011050 466010510 74201421099900 72301173011730 60701134010690 447010500 6370104209990099900 981010080 8760 7410 9830 5150 7610 941014870999001120013110 6200 5840 9320 4200 878010600199509990014930 8410 608010320 616

099900 66101012010000 730011020 8860 65709990013160 7680 1090 668011340 9840 846013880109101114099900 7180 6110 6090102001131012120 902010470 69301424099900 8600 7730 7990 962012400116801019010010 6680119009990099900 5820 8260 8270 5080 73701463011260 9430 547099900 6670 8820 8510 6100 89401198012860 9100 711099900 5700 37101088010360 868

099900 8280 8820 7710 8470 9760 7060 89109990017200 9010 3580 9290 9970 6520 932013160 8700 8020999001376010070114401129010970 62401033010420 7330 76009990028560 89401083010630 9330 79901322011300 6850104509990099900 8480 839011600 7880 7450 827010520 8090 911099900101001385010610 8520 63801303012640 87301127099900 5150 895010010 9100 850

0999001027012080 916010240 863015060 5380999001333014960 93601373010380 9120 9340 764013710 57909990011020138401330013650 8150 965012710 710010670 95009990014220133501305012830 72801077013020 8870 9530 621099900126901217013280 9260 6830 9650 8360 616014010 8760999001454010810 9150 79401105012120 712013600 845099900 67701200015330 94001278

099900 9870141701034012540131301323012480999001780016560 8570 8520143101144015110122001083018190999001110011710170001130013090123101363012840 520014010999001088011960153301021013510135301251013190 947016660999001078011880152001145010770 881014160143501215013180999001465011430127501196011080164201060011980 923099900112501382012060139101534

099900 9430126401157022310 7790 9510 560099900253501714011560109801230010430 8940 7560 7190 4390999001826010500 941010140133701615012040 5930 6610 56009990012940 97901105011350131701734010210 8150 7910 79409990022490 8590101701020013190128401251010440 5860 419099900130101139012340137201521012560 6660 5520 33009990010270 836010520129801477

00000000000000000000000000000000000000000000000000000000000000000000

44

Page 46: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Output file KNOB.1X2, continued

S I G09- 19401457SIG09-19501017SI G09- 19601 114SIG09-19701216SIG09-19801242SIG09-18901445SIG09-1900 761SIG09-19101202SIG09-19201211SIG09-19301191SIG09-19401117SIG09-19501280SIG09-19601053SIG09- 19701 140SIG09-19801347SIG1 1-18639990SIGH-18701101SIG1 1-18801367SIGH-18901110SIG11-1900 584SIGH-19101002SIGH-19201133SIG1 1-1930 757SIGH-19401182SIGH -19501 332SIG11 -19601085SIGH-1970 759SIGH-1980 561SIGH-1870 39SIGH -18801229SIGH-1890 925SIGH-1900 284SIGH-1910 899SIGH-19201134SIG1 1-1930 657SIG11 -19401090SIGH-19501457SIGH-1960 710SIGH-19701153SIGH-19801113SIG12-18829990SIG12-1890 372SIG12-1900 139SIG12-19101360SIG12-19201705SIG12-1930 699SIG12-19401139SIG12-19501117SIG12-19601207SIG12-1970 867SIG12-19801430SIG12-1900 147SIG12-19101453SIG12-19201384SIG12-1930 474SIG12-1940 959SIG12-19501128SIG12-19601214SIG12-19701032SIG12-1980 891SIG13-1870 76SIG13-18801219SIG13-1890 912SIG13-1900 539SIG13-1910 924SIG13-19201097SIG13-1930 677SIG13-19401216

01495011710 9660 001216012760 62401188012330 71501282011780 9320 86801105099900 7601058010740 6850 862013540 001228013700 9520 3660 00 213011040 7270 434010290 9000 001429014430 9900 2630 409099900 4000 63201110014000 1580 98101402012520 327013360 46401116012420 1790 9120 955010640 631011060 211010370 9990 8160 795012900 44701279

0 8340 810010910 96909990014350101001129014280 348012220 9130 9950 16309990099900 28401879010310 56301101012270 2700 82601130010410 704099900 296019290 8820 567011940 7530 30601124010300 7850 501099900 8670 6940 55701935012010 38701049010750 7280 426099900 24901591012290 42301177012590 9300 872099900 40101710011390 43801011013260 5810 804

0 99201125011980 81409990012390 745012230 9950 5660 6860 9650 94101091099900 6590 409011680113901196012200 6500 6950 895010060115801072099900 716011340116901067014220 9380 6010 84301365012810122809990011450 7970 928012820 3160 5490 74901056017590 813099900 530016980 1920 8070 721012880145301296099900 54701136013770 60601102011800 9420 810

0 3500 9400 6360 56909990012490101301219010330 6300 5380 9810 6000 908099900 8730 37901373012370 8970 7720 6890 4140 621011590 69601540099900 5600113601340010140 5890 8060 6660 5260 9600 774013460999001284010420 9330 9570 345010150 453011110 78901184099900 4820 9690 292011820 391012520 71501261099900 42101371013960 5690 595010230 8740 570

01285013070 6890116809990011890 9510 5830 9640 90001402011080 54601355099900 6010 5770 9140 7900 908010040 7620 72101336011780 76301872099900 7610 7110 7960 725010060 6450 9100132501065010020157809990014780 21001406014460 537011130 651010380 48601417099900 876013830 502010340 959012840 67001256099900 520012680 9270 6050 796010550 95701209

012210 9160 6430 835099900 4100 5750 8600 9260 8410 9820 9070 6380104309990010020 919013450 7690 991010640 9300 3660 888012260 36401940099900 916014250 4940 721010880 9650 4730 824013910 5630138909990010540 196013690 8360 890011340 343010940 5830 88709990011350 960010140 8820 9380 8740 6610 590099900 711018520 7820 5700 992010260 7010 932

010840 766017350 562099900 6700 7730 8380114701039015110 701010680 587099900 9920 9130 9890104901123013650 9110 692012310 937012160 5260999001112013270115001489011250 9570 6510 9740 946011030 89609990016190 44801019012830 759013000 4200 7480 8830 8350999001203014110 82801197011490 632010370 609099900 97601514011790 924010570 8810105601193

01283011940162501219099900 62701189010930 743010970170201310014500 8820999001177013620117201112012150 992015620109001466016350 75601072099900186901481010040200201000013300 82701502014520 7130 90209990018540 963011790141701244014560143301685011160129309990016810126301247011140139501466012380144409990013380162601091010090 884011630160001340

0 9620 871010860 531099900 982010090 8980120901262012710 712012550 97109990012340 990013160 7850151601006013840129501535010110 6530 8850999001290014110 7680164201138013000139601636010380 5170109909990019570 7830108501203012900153501325013930 9990 5580999001275011960123301276012770 8700 9080 3740999001068014490 9170 8420 782011270140601084

00000000000000000000000000000000000000000000000000000000000000000000

45

Page 47: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Output file KNOB.1X2, continued

SIG13-19501438SIG13-19601009SIG13-1970 730SIG13-19801392SIG13-1870 109SIG13-18801224SIG13-18901159SIG13-1900 263SIG13-1910 798SIG13-19201196SIG13-1930 944SIG13-19401260SIG13-19501098SIG13-1960 950SIG13-1970 800SIG13-1980 0SIG14-18801006SIG14-1890 878SIG14-1900 244SIG14-1910 785SIG14-19201229SIG14-1930 820SIG14-19401203SIG14-19501381SIG14-1960 840SIG14-1970 850SIG14-1980 978SIG14-1880 917SIG14-1890 732SIG14-1900 120SIG14-1910 606SIG14-19201433SIG14-1930 960SIG14-19401266SIG14-19501151SIG14-19601059SIG14-1970 604SIG14-19801100S I G16- 18629990SIG16-1870 132SIG16-18801516SIG16-1890 271SIG16-1900 611SIG16-1910 812SIG16-19201114SIG16-1930 751SIG16-19401311SIG16-1950 965SI G16- 19601 125SIG16- 19701429SIG16-1980 908SIG16-1850 718SIG16-1860 146SIG16-1870 132SIG16-18801475SIG16-1890 312SIG16-1900 244SIG16-1910 678SIG16-19201168SIG16-1930 854SIG16-19401189SIG16-19501140SIG16- 19601 178SIG16-19701040SIG16-19801259

011510 8150 7250 00 191011770 9150 3150 595013710 7210 85801288012040 6450 00 8960 4740 4420 707011530 92501118011670 7910 5420 4550 7690 5950 2240 394018110 6990110001201011130 3660 445099900 355010090 5840 9470 630012220 313015010 888011510110801012011720 4940 2220 9090 3550 9880 747011420 4620 89201046012870 8370 973

0 9870 7360 635099900 32001950010320 4100 981011160 5600 61401087015790 756099900 8510 7330 4490 8110 9120 6830 555010510 9840 919099900 7100 6440 4290 566011730 5350 728010290 9820 63809990012000 83801473010400 7960 8990 8020 7430 8790 755012970 9700999001020014200 730012420 9060 7220 852010790 5890 7230 9030 9010 61609990

010970 88901202099900 5920 989013290 75601073013110 9500 52201012012680 982099900 8900 8530 828010770 816010390 490010600120401128099900 700011200 5350 9700 993011970 58501072014050125809990020130102901293012220 8390110701064012380 7710 8450120901228099900 87001071010420 944013940 7960 932011430 6790 72701339011760 81809990

011780 73101081099900 59001200016920 6530 62301120010130 4650 8160 93101254099900 57401018010050 7380 702012420 523013620 88701178099900 674012360 7940 7790 901011770 49601126011850117109990011930 23401223014410 8950 5580 9680 9290 5390 5950 7430 959099900 8860 8910 3870 949015270 7100 604010980 8480 732010220 7740 78409990

010760 5540 601099900 5610 8970 9220 6430 7620 933012450 720013670 6370 580099900 9590 9720 9060 8480 938010980 872012920 93001344099900 9340 9650 7320 8070 840010990101201046010020 89609990010710 3380 9230 867011360 8050100801012012910 9210 7470123309990014000 9150 5080 9540 8590 8080 7850 8480 95001341013360 6370163909990

010400 5060 895099900 68701662010860 6830 951010670 6430 555018230 7080 217099900142601046010970 8540 8670 5370 996010390 7710129409990026730113901117010240 9650 4000 8710 9520 78501177099900 8140 814014380 988010670 840010010 7200 900011460 5050 849099900 9280127601171018410 809012880 7880 9930 45201114011060 4570 88209990

0 9390101101084099900 833014580 925011000 7570 917010220 862014190 95501140099900134401768013280 950010030 842011040 7600 8930 97409990014640145901142011690 9700 606013000 809010070 92609990010610 6740120201136013430 9460 855010390 9240 7360 8000 2790999001554016900 7360 848010700152001190010290 847012220 9170 5610 31609990

020230 524014460999001385018450 880013400 613014150144301065017180 946010970999001303014770127401240015520115001534010590 968013460999001035013880152701074015890107801527012160 620014890999001102012710 973014380120601177012000147901197015290 866015880999001259014420182301205013930192701471011030145801453016480 5820196609990

013130 608016760999001247018520 628010630 929015270138701037011290 7020110609990015280143701166014910138801532012710 6930 57401083099900161101427011760 9310150701170015430 8600 3060116909990010510 976011890120201427010600117301501013710 978010300 79109990011160111601108014410 8440125001054013610129001015010360 6420113609990

00000000000000000000000000000000000000000000000000000000000000000

46

Page 48: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

APPENDIX B

SOURCE-CODE LISTINGS FOR PROGRAMS

Page Program AREA.............................................................. 49

Program PLOT.............................................................. 65

Program MAKERAD........................................................... 115

Program TRING............................................................. 117

47

Page 49: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program AREA

/**/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*

Program namePurpose

InputOutput

ProgrammerCreated for

Files used

Date CreatedModifications

PurposeDateProgrammer

****** ******************************************AREA.CCreates area and index files from a standardring width file and radius data. Radius datamay be created by AREA or from a MAKERAD file.Standard ring width file in MM./100Raw and smoothed BAI data for input to PLOTand standard index files.Michael L. FieldTree-Ring LaboratoryMail Stop #461U.S. Geological SurveyReston, Virginia 22029BAREA.CGETRADS.CGETRINGS.CNORMAL. CSPLINE.CURT FLS.CCOMMON. C

i

'

i

*/V*/*/*/*/*/V*/*/*/*/*/*/*/*/*/*/*/*/*/V*/*/*/

^****************************************»*»*«***«***********»»****»*^

^include <stdio.h> fldefine TRUE 1 fldefine FALSE 0 JWefine CR 013 JWefine LF 010

mainO <static double rbaiMOOO]; static double sbai [10003; static double ringwidth[2000]; static double iindex[10003; static int cores[1000]; static double average[1000]; static double means[1000]; static double upperHOOO]; static double lower[1000]; static double sum[1000][3]; static double sum[1000] [2]; static double stdevMOOO];

static float ttable valsD = {0.0,12.706, 4.303, 3.182, 2.776, 2.571, 2.447, 2.365, 2.306, 2.262, 2.228, 2.201, 2.179, 2.160, 2.145, 2.131, 2.120, 2.110, 2.101, 2.093, 2.086, 2.080, 2.074, 2.069, 2.064, 2.060, 2.056, 2.052, 2.048, 2.045, 2.042>;

char rwfile[41],radfile[41],bafile[41],crnfile[41],outfile[41],idx1file[41];char inline[81], id[9], idrw[9], idrad[9], title[81], temp str[93;char ixfile[41], default_nam[4l3;char *cf, c, answ, *cp;int syr, eyr, subl, file_len, rdone, elw;int i, j, k, basp, rad, Torm, qdone, ci, nyr, n2, tt;int first yr, last yr, year cnt, crit yr*0, canopy, canopy year;int ind fTle=FALSE, idx file=FALSE, sta file=FALSE;int all_ok = TRUE;double radius, spline Ien, ttable, crit va1=0.0, ms, ynf, sdv;FILE *rwd, *rdd, *bd,~*sd, *ixd, *ixd1;~FILE *setupinf(), *setupout();char *fgets(), *gets(), *strcat(), *strcpy();char version[19];double atofO, fabs(), sqrt();

49

Page 50: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source -code of program AREA, continued.

extern int indexO;

pr i ntf ( "\n\n\n\n\n\n" ) ;printf (N BASAL AREA INCREMENT PROGRAM\nN); printf(" TREE-RING LABORATORYW); printf(N U.S. GEOLOGICAL SURVEY\n">; printf(N WATER RESOURCES DIVISIONW); printf(" RESTON, VIRGIN I A\n\n\n"); printf(N (Press enter to continue)"); gets(temp_str);

printf ( M **** Press enter to select default answers ****\n\n");printf ("Enter the name of the ring-uidth(.RU) file: ");gets(rwfile);if ((rwd * setupinf(rwfile, "rb")) == (FILE *)NULL)

exitO; elu = 0; cp = rwfile; i = 0; while (i<41 && *cp != '.' && *cp != '\0')

default_nam[i++] = *cp++; default_nam[il = '\0'; fgets(tTtlef 80, rwd); i = strlen(title); while ((c=titleti]) ~ ' ' \ \ c == '\010' || c « '\013' || c = '\n' )

i--;title[i-2] = '\0';printf ("\nThis is the included title:\nXs\n", title);printf (" Title OK? (Y/N f default=Y)");gets(temp_str);if (temp str[0] == 'n' || temp_str[0] == 'N')

{printf ("Enter new title: ");gets(title);>

printf ("\nOoes the ring-width file contain Early and Late rings?"); printf("\n (Y/N f default=N) "); gets(temp_str); if (temp_str[01 « 'y' || temp_str[0] « 'Y')

{printf ("Do you want to process (E)arly or (L)ate rings (E/L)? ");gets(temp_str);if (temp str[0] == 'e' || temp_str[0] ~ 'E')

elw = T;else

elw = 2;>

printf ("\nOutput file name will be : Xs\n",default_nam); printf (" Name OK? (Y/N f default=Y)"); gets(temp_str); if (temp_str[0] = 'n' || temp_str[0] = 'N')

{printf (" Enter the name of the output files: ");gets(default_nam);>

file_len = index(default_namr "."); if (file_len 1= -1)default_nam[file_len] = '\0';

strcpy(crnfilef default_nam); strcat(crnfile, ".crn"); strcpy(idx1filef default_nam); strcat(idx1filef H .ix1");printf ("\nThe mean chronology file will be named Xs.\n",crnfile); if ((sd = setupout(crnf i le f "w")) «= (FILE *)NULL)exit();

fprintf(sdf "Xs\n" f title); ixdl = fopen(idx1filef "w"); sta_file = TRUE;

50

Page 51: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code of program AREA, continued.

printf("\nCreate individual cores(.IND) file? (Y/N, default=Y>»>;gets(temp_str);if (temp_str[0] != 'n' && temp_str[0] != 'N')

{strcpy(bafile, default_nam);strcat(bafile, ».ind">;if «bd = setupout(bafile, "w")) == (FILE *)NULL> exitO;

fprintfCbd, "%s\n",title);ind_file = TRUE;>

printf("\nCreate index(.IX2) file? (Y/N, default=Y>">; gets(temp str); if (tempjstrEO] != 'n' && temp str[0] != 'N')

{strcpyd'xfile, default nam);strcat(ixfile, ».1x2">7if ((ixd = setupoutd'xfile, "w")) == (FILE *>NULL> exitO;

fprintf(ixd,"%s\n",title);idx file = TRUE;>

canopy = FALSE; canopy_year = 0;printf7"\nDo you want to use the estimated canopy radius(Y/N, default=N>? ">; gets(temp str); if (temp str[0] == 'Y' || temp str[0] = 'y'>

Cprintf("\nDo you want trees (I)n the canopy or (U)nder the canopy? ">;gets(temp str);if (temp_str[0] == 'I' || temp_str[0] == 'i')

canopy~= 1;else

canopy = 2;printf("\nRadius length to enter canopy (default=10 cm.): ");gets(temp_str);if((i=strlen(temp_str)) > 0) crit_val = atof(temp_str);

else crit_val = 10.0;

printf( M\nDo you want to use a year for the canopy value(Y/N, default=N)? ");gets(temp str);if (temp str[0] == 'Y' || temp strCO] == 'y')

Cprintf(" Enter canopy year: "); gets(temp_str); canopy year = atoi(temp str); >

>spline_len = 60;printf("\nEnter spline length in years(default=60 years): "); gets(temp str); if (temp_str[0] != '\0')

spline_len = atof(temp_str);printf("\nEnter first year for mean chronology(.CRN) file: "); gets(temp_str); syr = atoT(temp_str);printf("Enter last year for mean chronology(.CRN) file: "); gets(temp_str); eyr = atoi(temp_str); n2 = eyr-syr+1; rdone = FALSE; qdone = FALSE; while (!rdone)

Cprintf(M\nYou must select a radius file from the following:\n\n");printf(" 1. TerminateXn 2. Enter old file name\n");printf(" 3. Create and use new file\n 4. Manually enter info\n\n">;printf(M Choice: M );

51

Page 52: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code of program AREA, continued.

while «answ = getcharO) < '0' && answ > '5'); c = getcharO; if (answ == '1')exitO;

if (answ != '4') <.if (answ == '2' || answ '3')

{printf ("Enter radius file name(default=%s.RAD): ",default_nam); gets(radfile); if (strlen(radfile) < 2)

<.strcpy(radfile, default nam); strcat(radfile, ".rad")7

if (answ == '2') <. if ((rdd=setupinf(radfile, »r"» != (FILE *)NULL)

<.rdone = TRUE;cf = fgetsd'nline, 80, rdd); /* discard title of radius file */>

>if (answ == '3')

<. if ((rdd=setupout(radfile, "w")) != (FILE *)NULL)

<.rdone = TRUE;fprintf(rddf "%s\n», title);getrads(rwd, rdd, crit val, elw);f close (rdd);rdd = fopen(radfile,f close (rwd);rwd = fopen(rwfile,cf = fgetsd'nline, 80, rdd); /* discard title of radius file */cf = fgetsd'nline, 80, rwd);

else <.rdone = TRUE; break;

while (iqdone) <.all ok = TRUE; if Tansw != '4')

<.cf » fgetsd'nline, 85, rdd); if (feof(rdd)) qdone - TRUE;

else <i = strlen(inline); inline [i-1] = '\0'; substrd'drad, inline, 1, 8); substr(temp str, inline, 10, 6); radius = at of (temp str)/1000.0; inline [42] = '\0';" printf ("\nWorking core %s", inline);

else <.printf ("Enter core id - (<ret> to quit): "); gets(idrad);

52

Page 53: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source -code of program AREA, continued.

if ((ci=strlen(idrad)) > 0 ) C for (i=ci; i<8; i++)

idradtij « ' '; idrad[8] * '\0'; printfC'Enter radius: "); gets(temp_str);radius * at of (temp str)/1000.0; >

elseqdone = TRUE;

>if (! qdone)

Cif (all ok)

C getrings(rwd, idrad, &first_yr, &last_yr,

ringwidth, &all_pk7 &year_cnt, &crit_yr, crit_yal, elw); if (canopy != 0)

Cprintf(" X4d»,crit_yr); if (canopy *= 1)

if (crit yr = 0 j j (canopy year > 0 && crit yr >= canopy year))

printf(" NOT USED\07»); all ok = FALSE;

else Cif (canopy == 2 && crit yr > 0)

Cif (canopy year == 0 || canopy year >= crit yr)

printfC1 NOT USEDX0711 ); all ok = FALSE;

if (all ok) Cb_area(year_cnt, ringwidth, radius, rbai, elw); splin(rbai, sbai, year cnt, spline ten, &all ok); if (all ok)

Cms=0.0;for (i=1; i <= year_cnt; i-M-)

i index [i] = rbaiti] / sbai[i];for (i=2; i< year cnt; i

if ((i index! i] == 0) && (i index [i>1] == 0))ms = ms+1;

elsems=ms + fabs(2*(iindex[i]-iindex[i-1])/(iindex[i]+iindex[i+1]));

>ms= ms/(year cnt-1); if (ind fileT

C fprintf(bd, "\nRING WIDTHS %s MS=%7.3f %4d=X7.2f CM.\n»,

idrad, ms, crit yr, crit val); if (elw < 2)

writef(bd, ringwidth, year_cnt+1 , first_yr, last_yr); else

writef(bd, &ringwidth[1000], year cnt+1, first yr, last yr); fprintf(bd, M\nRBAI %s\n", idrad); writef(bd, rbai, year cnt+1, first yr, last yr); fprintf(bd, M\nSBAI ~ %s\n», idrad);

53

Page 54: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source -code of program AREA, continued.

writef(bd, sbai, year cnt+1, first_vr, last yr); fprintf(bd, "\nINDEX ~ Xs\n", idrad); writef(bd, i index, year cnt+1, first yr, last yr); if (idx file)

{wrtidxd'xd, i index, cores, year cnt+1, first yr, last yr, idrad);>

fprintf(bd, "\nNORMAL INDEX Xs\n", idrad); normal (year_cnt, i index, &ynf, &sdv); writef(bd, i index, year cnt+1, first_yr, last yr); >

nyr = first_yr; for <k=1; k~<= year cnt; k++)

<. if (nyr >= syr && nyr <= eyr)

<.subl = nyr-syr+1;sum[sub1] [1] = sun[sub1] [1]+sbai Ck];sum[sub1] [2] = sun[sub1] [2]+ (sbai [k]*sbai [k] );sum[sub1][3] = suntsubU C3]+1;summCsubl] [1] = summ[sub1] [1]+rbai[k];sumnCsubl] [2] = sumnCsubl] [2]+(rbai tk]*rbai [k] );>

nyr = nyr+1;

> /* end qdone */ ms = 0.0;for <k=1; k <= n2; k++)

<. if <sum[k] [3] > 0)

<.means [k] = sun[k] [1] / sun[k][31;average [k] = sunm[k] [1] / sun[k] [3] ;iindex[k] = average [k] / means [k];>

else<means [k] = 0;average [k] = 0;i index [k] =1;>

if (sun[k] [3] < 30.0)<tt = sun[k][3];ttable = ttable valsCtt];>

elsettable = 2.0;

if (sun[k][3J <= 1.0)stdevCk] = 0.0;

else<.stdevCk] =sqrt((sun[k] [2]-((sun[k] [1]*sun[k] [1] )/sum[k] [3]))

/(sun[k][3]-1));stdevCk] =ttable/sqrt(sun[k] [3] )* stdevCk] ;>

upper [k] = stdevCk] + means Ck]; lower Ck] = means Ck] - stdevCk]; cores Ck] = sumCk]C3]; >

for <i=2; i<n2; i

if ((i index [i] == 0) && (iindexCi+1] == 0)) ms = ms+1;

54

Page 55: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code of program AREA, continued.

else ms=ms -i- fabs(2*(iindex[i]-iindex[i-1])/(iindex[i]-n-index[i>1]));

>ms=ms/(n2-1);fprintf(ixd1 f "%s\n", title);wrtidx(ixd1 f i index, cores, n2+1, syr, eyr, "CRNIDX11 ); if (sta file)

CfprintfCsd, "\nNUHBER OF CORES: MS=X7.3f\n",ms);writei(sd, cores, n2+1, syr, eyr);fprintf(sd, "\nRBAI\n");writef(sd, average, n2+1, syr, eyr);fprintfCsd, "\nSBAI\n");writef(sd, means, n2+1, syr, eyr);fprintfCsd, "\hUPPER 9SXX CONFIDENCE LIMIT:\n");writef(sd, upper, n2+1, syr, eyr);fprintf(sd, "\nLOUER 9SXX CONFIDENCE LIMIT:\n");writef(sd, lower, n2+1, syr, eyr);fprintf(sd, "\nINDEX VALUE:\n»);writef(sd, i index, n2+1, syr, eyr);fprintf(sd, "\nNORMALIZED INDEX:\n");normal (n2, i index, &ynf, &sdv);writef(sd, i index, n2+1, syr, eyr);>

printfC'Xn11 ); fclose(rwd); f close (rdd) ; fclose(bd); fclose(sd); fclose(ixd); f closed* xd1);

index(s, t)char stl, t[];Cint i, j, k;for(i=0; s[i] != '\0'; i

for(j=i, k=0; t[k] !='\0' && s[j]==t[k]; j++,if <t[k] == '\0') return(i);

> return(-1);

cls()<.printf ("\033C2J11 );fflush(stdout);

I* File name : BARE A. C */

b_area(years, rw, radius, a, elw)

int years; double *rw; double radius; double *a; int elw;

int i;double rlen_prev, rlen_curr;rlen_prev = radius;

55

Page 56: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code of program AREA, continued.

for (i=years-1; i>«0; i--)

if (elw = 0)

rlen_curr = rlenjjrev - rw[i+1];a[i+T] » 3.14159*((rlenjjrev*rlenjjrev) - (rlen_curr*rlen_curr));rlenjjrev » rlen_curr;

else

if (elw >- 1)

rlen_curr » rlenjjrev - rw[i+1+1000];rlenjjrev » rlen_curr;rlen curr * rlenjjrev - rw[i+1];aCi+T] = 3.14159*((rlenjjrev*rlenjjrev) - (rlen_curr*rlen_curr)>;rlenjjrev = rlen_curr;

else

rlen curr » rlenjjrev - rw[i+1+1000];aCi+T] » 3.14159*((rlenjjrev*rlenjjrev) - (rlen_curr*rlen_curr));rlenjjrev » rlen_curr;rlen_curr = rlenjjrev - rwCi+1];rlenjjrev * rlen_curr;

/* Filename : GETRADS.C/^

^include <stdio.h> #define TRUE 1 fttefine FALSE 0

getradsd'd, od, c_val, elw)

FILE *id, *od; float c_val; int elw;

char idnunber[91, line[101]; char c * ' '; char tempstr[9] f *cf; char *fgets(), *substr();

int i, j, value, years; int ci, first year, last year, crit year; int done » FALSE, first * TRUE; int ci_val; unsigned int total; crit_year » 0; years » 0;ci val = c val*1000; while (Idone)

<.cf > fgetsOine, 100, id); lineBO] - '\0'; if (feof(id))

<. fprintf(od,»%s X6u X4d X4d X4d X4d\n",

idnunber, total, years, first year, last year, crit year); done » TRUE;

56

Page 57: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code of program AREA, continued.

break;>

substr(tempstr, I ine, 1,8); if (strcmp(tempstr, idnumber) != 0)

{if ( ! first ) { fprintf(od,"Xs X6u X4d X4d X4d X4d\n".

idnumber, total, years, first year, last year, crit year); >

substr( idnumber, line, 1,8);substr(tempstr,line,9,4);first_year = atoi(tempstr);last year = first_year-1;total * 0;crit_year = 0;years * 0;first * FALSE;>

substr(tempstr, line, 12, 1); if (!elw)

j = 10 - (atoi(tempstr)XIO); else

j = (5 - (atoi(tempstr)X5))*2; for (i=1; i<j+1; i

substr(tempstr, line, (7+(i*6)), 6); if(strcmp(teinpstr, " 99900") == 0)break;

total = total + atoi(tempstr); if(elw > 0)

substr(tempstr, line, (7+(i*6)), 6);total 3 total + atoi(tempstr);>

last_year » last_year+1; years * years +1; if(crit_year == 0 && total >= ci_val)crit year = last year;

>> /* end while */

> /* end */

/A******************************************** ***********************/ /* File name : GETRINGS.C */

^include <stdio.h> ^define TRUE 1 ^define FALSE 0

getrings(rwd, idrad, first_yr, last_yr, rw, all_ok, year_cnt, cyr, cval, elw)

FILE *rwd;char idradl];int *first_yr, *last_yr;

double *rw;int *all_ok, *year_cnt, *cyr, elw;double cval;

int i, j, rend, rwdone=FALSE, first=TRUE; int ci, lyr, yrs, temp_yr, atoiO; char *fgets();char check_end[7],idrw[9], c, *cf; char rwline[101], tempstr[10];

57

Page 58: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code of program AREA, continued.

double atofO, cvt = 0.0;

strcpy(check_end, » 99900");*first yr = 0; lyr = 0; yrs = 0;*cyr » 0; while <! rwdone)

<cf = fgets(rwline, 100, rwd); /* read ringwidth line */ rwline [80] = '\0';if (feof(rwd)) /* EOF means id not found - ERROR */ <*all ok = FALSE; rwdone = TRUE; break; >

else <substr(idrw, rwline, 1, 8);if ((rend = strcmp(idrw, idrad)) == 0) /* rw id */

<if (*first yr <= 0)

<substr(tempstr, rwline, 9, 4);*first_yr = atoi(tempstr); /* first year of core */ lyr = atoi(tempstr); first = FALSE; if (!elw)

i = 10-(lyrX10>; else

i = (5-(lyr%5»*2; >

elsei = (strlen(rwline>-13>/6;

for (j = 1; j<=i;

substr(tempstr, rwline, 13+((j-1)*6>, 6); if (strcnp(tempstr, check end) == 0)

<.lyr = lyr + yrs - 1;*last_yr = lyr;*ycar_cnt = yrs; rwdone = TRUE; break; >

else <.yrs = yrs + 1; /* number of years in core */ rw[yrs] = atof(tempstr)/1000.0; cvt=cvt+rw[yrs]; if (elw != 0)

substr(tempstr, rwline, 13+((j-1)*6), 6); rw[yrs+1000] = atof (tempstr)/! 000.0;

cvt=cvt+rw[yrs]; >

if( *cyr == 0 && cvt >= cval)*cyr=lyr»yrs-1;

>> /* end for */

> /* end compare id */ if ((first && rend != 0)

<i=strlen( rwline);j=fseek(rwd, ((long)(i*(-1))), SEEK_CUR); rwdone = TRUE;

58

Page 59: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source -code of program AREA, continued.

lyr = lyr + yrs - 1;*last_yr = lyr;*year_cnt = yrs; break; >

> /* end not EOF */ > /* end while */

> /* end getrings */

/ a******************************************************************/

/* File name : NORMAL. C */ /«*******************************************************************/

^include <math.h>

normal (n, x, xm, sd>int n;double *x, *xm, *sd;

double an, sun, sumsq, var; double sqrtO; int i;

if (n <= 1)<puts ("\nNumber of years is one or less. Program is terminal ing.\n\n">;exitO;>

an = (double)n; sum = 0.0; sumsq = 0.0; for (i=1; i<=n; i+*>

sum = sum*x[i];sumsq=sumsq*((x[i])*(x[i]»;>

*xm - sum/an;var = (sumsq-an*((*xm)*(*xm»)/(an-1.0); if (var < 0.0)

var = var*(-1.0);*sd = sqrt((double>var>; if (*sd =» 0.0)

return; for (i=1; i<=n; i+O

x[i] = (x[i]-(*xm»/(*sd); return;

**** a*********************************************** *****»//* File name : SPLINE. C */ /********************************************************************/

ftfefine TRUE 1

ftfefine FALSE 0

splin(y, spl, n, spline, all_ok>

double *y» *spl; int n;double spline; int *all_pk;

int i, j, k, nc, ncpl, nm2, m, i1, i2, I, jm1; int imncpl, nc1, iw, kl, nl, k1;

59

Page 60: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source -code of program AREA, continued.

double a [1000] [3], b[1000]; double d1, d2, rn, tot, p; double pet = 0.50000000; double pi = 3.1415926535897935; double p1,p2,p3,p4,p5; double c1[5], c2[4]; double cos(), sqrtO, fabsO;

cl [11=1. 000000;c1 [2] =-4. 000000;d 01=6.000000;c1 [4] =-2. 000000;c2 [11=0.000000;c2 [21 =0.33333333333333;c2 [3] =1 .33333333333333;

if ( n > 1800 M n < 4) {if (n > 1800)

{printf ("XnXcXcSpline capacity (1800) exceeded. \n\A7"); printf (" Program terminating.\n"); all_ok = FALSE; return; >

>nm2 = n-2; p= ((1.0/(1.0-pct)-1.0)*6.0*((cos(pi*2.0/spline)-1.0)*(cos(pi*2.0/spline)-1.0)))

/(cos(pi*2.0/spline)+2.0); for (i=1; i<=nm2;

<.for (j=1; j<4;

<.c1[j]+p*c2[j];

c1[4] *

nc = 2;/* Begin LUDAPB */rn = 1.0/(rm2*16.0);d1 = 1.0;d2 = 0.0;ncp! = nc + 1;for (i=1; i<=nm2;

imncpl = i-ncp1; if ( 1-iimcp1 > 1)

elsei1 = 1;

for (j=i1; j<=ncp1; j<.I = imncpl + j;i2 = ncpl - j;tot = a[i][j];jm1 = j - 1;if (jm1 > 0)

for (k=1; k<=jm1; k++) <m = i2 + k; tot = tot - (a[i][k] * a[l][m]);

60

Page 61: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code of program AREA, continued.

if (j « ncpD

if (a[i] [j] + tot * rn <= a[i] [j])

spl[1] = 9999.0;printf("%c%cSpline matrix not positive def inite. \n\A7");printf(" Program is terminating.\n");all_ok = FALSE;return;

else

a[i][j] « 1.0 / sqrt(tot); /* Update the determinant */ d1 = d1 * tot; if (fabs(d1) > 1.00000)

while (fabs(d1) > 1.000)

d1 = d1 * 0.062500; cE = d2 + 4.0;

if (fabs(d1) <= 0.062500)

while (fabs(d1) <= 0.062500)

d1 = d1 * 16.0; d2 » cE - 4.0;

a[i][j] = tot * a[l][ncp1];

else t a[i][j] = tot * a[l][ncp1];

/* End LUDAPB / Begin LUELPB */ /* Solution LY = B */ if (all ok)

nc1 * nc + 1; iw = 0; I =0; for (i=1; i <= nm2; i

ttot = b[i]; if (nc > 0)

t if (iw \- 0)

1=1+1; if (I > nc)

I =nc; k = ncl - I; kl = i - I;

for (j=k; j <= nc; j

tot = tot - (b[kl] * a[i][j]); kl = kl + 1;

elseif (tot != 0.0)

iw = 1;

61

Page 62: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code of program AREA, continued.

bCi] * tot * a[i][nc1];

/* Solution UX = Y */ if (all ok)

Cb[nm2] = b[nm2] * a[nm2] nl « nm2 + 1; for (i=2; i <= nm2; i

Ck = n1 - i; tot = b[k] ; if (nc > 0.0)

Ckl = k + 1; if(k+nc > nm2)

k1 * ra2; else

k1 = k+nc;I - 1;for (j=kl; j<=k1;

Ctot = tot - <b[j] * a[j][nc1-U);1=1+1;

b[k] - tot * a[k][nc1];

/* end LUELPB */ if (all ok)

Cfor (i = 3; i <= nm2; i

splCi] » b[i-2]

splC2] = d[4] * b[1] + b[2]; spl[n-1] * b[rm2-1] + c1[4] * b[nm2]; spUn] = b[nm2]; for (i=1; i <=n; i

/*»*»»«*»*»*»*»*«*»*»*»»****»*»*******»*»*»*»*****»*»*»*»*»*****»*»**//* File name : URT FLS.C */ /****************************************^

#include <stdio.h>#define TRUE 1 ftdefine FALSE 0

writef(fp, prtarr, j, fyM, IdecD int j, fyrl, Idecl; FILE *fp; double prtarr[];

Cint I, i, jb, je; int done = FALSE; prtarr[j] = 99.99; jb = 1;je » (10 - (fyM X 10)); while (Idone)

Cif (i ~ j)Cdone = TRUE;break;

62

Page 63: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code of program AREA, continued.

fprintf(fp, "%4d",fyr1); for (i=jb; i <= je; i++)

if (i « j)

<done * TRUE; break; >

fprintf(fp, "X7.3f ", prtarr [i] );

fprintf(fp, "\n"); if (i <« 10)

fyrl « fyr! + i - 1; else

fyrl « fyr! + 10; jb = je + 1; je = je + 10;

writei(fp, prtarr, j, fyrl, Idee!) int j, fyrl, Idecl; FILE *fp; int prtarr rj;

int I, i, jb, je, tenp; int done = FALSE; prtarr [j] « 9999; jb « 1;je « (10 - (fyrl X 10)); while (Idone)

if (i =» j)

done = TRUE; break; >

fprintf(fp, «%4dH ,fyr1); for (i=jb; i <- je; i++)

if (i -- j)

done = TRUE; break; >

temp = prtarr [i]; fprintf(fp, "X7d",tenp); >

fprintf(fp, «\n"); if (i <- 10)

fyrl * fyrl + i - 1; else

fyrl = fyrl + 10; jb = je + 1; je * je + 10;

wrtidx (fp, prtarr, cor, j, fyr, lyr, id)

FILE *fp;double prtarr [];int cor[], j, fyr, lyr;char id[];

int I, i, jb, je, fdec, Idee, tempi;

63

Page 64: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code of program AREA, continued.

int done » FALSE;

fdec * (fyr/10>*10; Idee = (lyr/10)*10; id [6] = '\0'; jb * 1;je * fyr X 10; if (je ! = 0)

<fprintf(fp, "XsXAd", id, fyr);for (i«jb; i<=jt; i++)

fppintf(fp, "9990 0");>

for (i«1; i<=j

if«(fyp+i-1)%10) *» 0)fprintf<fp, "X8X4d" f id, fyr+i-1);

tempi = prtarr[i]*1000; fprintf(fp, "nWcBOd", tempi, cor[i]); if (((fyr*i-1)%10) « 9)

fprintf(fp, if (i « j-1)

break; >

je * 10-(lyrX10); if (je != 0)

for (i=1; i<je;fprintf(fp, "9990 0");

fprintf(fp, "\n");

64

Page 65: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT.

/**/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*

ft***************-

Program namePurposeInputOutput

ProgrammerCreated for

Files used

Date CreatedModifications

PurposeDateProgrammer

>**********************»*****«***»»***»******»*<PLOT.CMenu-driven program to plot tree-ring data.Data file created by program AREA.To HP 7475A plotter.Michael L. FieldTree-Ring LaboratoryMai I Stop #461U.S. Geological SurveyReston, Virginia 22092

: CHNG ALL.CFIL ARRS.CLIST ALL.CPLT UTIL.CPRINT_ALL.CP PLOT.CREAD FLS.CS PLOT.CURITEF.CCOMMON. C

:

:::

Mr*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/

*/*/*/*/*/*/*/*/*/*/

^include <stdio.h> ^include <graph.h> ^include <string.h> ^include <math.h> #include <bios.h> ^include <stdlib.h> include "plot^ver.h"

/* Functions - prototypes and macros */

int menu(int, int, char* []); /* Menus */void box(int, int, int, int);void itemized'nt, int, char*, int);

/* Control pen and color */

unsigned cursor(unsigned);

/* Constants */

ftfefine^defineftfefine^defineMdefine^define TCURSOROFF^define LASTATR 15^define NLASTATR 14

/* Scan codes */

fldefine ^define ^define ^define ftfefine

PIDEFAULT TRUE FALSE NULL

0x2020

3.141593

100

-1

UP 72DOWN 80LEFT 75RIGHT 77ENTER 28

/* Structures for configuration and other data */

struct videoconfig vc;

65

Page 66: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

/* Initial and work arrays for remapable colors. */

long i Colors [] = {BLACK, BLUE, GREEN, CYAN,

"RED, "MAGENTA, BROUN, WHITE,"GRAY, "LIGHTBLUE, LIGHTGREEN, LIGHTCYAN.ILIGHTRED, "LIGHTMAGENTA. _LIGHTYELLOU, _BRIGHTWHITE >;

long wColors[256];

/* Array and enum for main menu */

char *mnuMain[] = C"1. Read Chronology(.CRN) file.", "2. Read Individual(.IND) file.", "3. Read Tektronics data file.", "4. Read Other Data(.DAT) file.", "5. Input datum from keyboard.", "6. Directory listing.", "7. Set up plotter port.", "8. Quit.",

NULL >;

enum C READS, READI, READT, READD, KYBD, DIRL, PORT, QUIT >;

/* Array for plot menu */

char *mnuPlot[] = <"1. Change title.","2. Change labels, axis or window values.","3. Plot and graph routines.","4. List data, status info, or ascii file.","5. Save keyboard file to disk.","6. Main menu.","7 . Quit.",NULL >;

char *mnuDevice[] = {"1. Screen Plot.","2. HP-7475 8-1/2 x 11.","3. HP-7475 11 x 14.","4. Prev menu. 11 ,NULL >;

char *mnuchng[] = "1. Change X label.", "2. Change Y label.", "3. Change X axis.", "4. Change Y axis.", "5. Change X data window.", "6. Change Y data window.", "7. Prev menu.", NULL >;

char *mnuPgraph[] = { "1. Plot BAI.", "2. Plot Ring widths.", "3. Plot Indices.", "4. Prev menu.", NULL >;

char *mnulndtyp[] = {"1. Standard index.", "2. Normalized index.", "3. Previous menu.", NULL >;

66

Page 67: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

char *mnuLmain[] = <."1. List data.", "2. List status.", "3. List ascii file.", "4. Prev menu. 11 , NULL >;

char *mnuLdata[] * < "1. Screen.", "2. Printer.", "3. Prev menu.", NULL >;

char *mnuPort[] = <. "1. Port.", "2. * Characters.", "3. Stop bits.", "4. Parity.", "5. Baud rate.", "6. Main menu.", NULL >;

char *mnuPport[] = < "1. Coral.", "2. Com2.", "3. Prev menu.", 4. Main menu.", NULL >;

char *mnuChar[] H {"1. 7 characters. 11 , "2. 8 CHARACTERS.", "3. Prev menu.", "4. Main menu.", NULL >;

char *mnuStop[] = {"1. 1 stop bit.", "2. 2 stop bits.", "3. Prev menu.", 4. Main menu11 , NULL >;

char *mnuParity[] * { "1. None.", "2. Odd.", "3. Even.", "4. Prev menu.", "5. Main menu.", NULL >;

char *mnuBaud[] = { "1. 300", "2. 600", "3. 1200", "4. 2400", "5. 4800", "6. 9600", "7. Prev menu.", "8. Main menu.", NULL >;

/* Arrays for video modes */

char "imuModesn = { "MRES4COLOR ", "MRESNOCOLOR", "HRESBW", "MRES16COLOR",

67

Page 68: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

"HRES16COLOR",MERESCOLORM ,MVRES2COLOR","VRES16COLOR 11 ,"MRES256COLOR",NULL >;

/* Array for modes */

int modest] = {MRES4COLOR,

~MRESNCCOLOR, "HRESBU,MRES16COLOR,HRES16COLOR,

"ERESCOLOR, "VRES2COLOR,VRES16COLOR,

~MRES256COLOR, ~ERESNOCOLOR,DEFAULT >;

/* Structure for menu attributes (variables for color and monochrome) */

struct mnuAtr {int fgNormal, fgSelect, fgBorder;long bgNormal, bgSelect, bgBorder;int centered;char nw[2], ne[2], se[2], sw[2], ns[2], ew[2l;

> menus = {0, 15, 4,3, 4, 3,TRUE,

M\xda", "\xbf», "\xd9", "\xcO", "\xb3", "\xc4"

struct mnuAtr bwmenus = { 0x70, Oxf, 0x70, 0x7, 0x70, 0x7, TRUE,

"\xda", M\xbf", "\xd9", "\xcO", "\xb3", "\xc4"

char mess1[] = { "Basal Area plotting routines" > ; char mess2[] = <.

"Move to menu selection with cursor keys, press ENTER to select" >; char mess3[] { "(Press enter key to continue)\n" >; char mess4[] = <. "File successfully read.\n" >; char messSQ = C "\nEnter Chronology file name: " >; char mess6[] - { "\nEnter Individual file name: " >; char messoaC] = { "\nEnter Individual file name (default=" >; char mess6b[] = { '): " >;char mess7[] = { "\nEnter TEKTRONICS file name: " >; char mess9[] = { "\nEnter Other Data file name: " >; char mess8[] = { "\nPROBLEM READING FILE.W >; char mess10[] = { "\n File successfully written." >;

int Imess1 = sizeof(messl), Imess2 = sizeof(mess2), Imess3 = sizeof(mess3), Imess4 = sizeof(messA);

short style[16] = C0x1, 0x3, 0x7, Oxf, Ox1f, Ox3f, Ox7f, Oxff, Oxlff, Ox3ff, Ox7ff, Oxfff, Oxlfff, Ox3fff, Ox7fff, Oxffff>;

/* COM PORT SETUP */

static int port; static int rxtx; static int stop; static int parity; static int baud;

68

Page 69: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

main ()<static char title[81], rsname[41], temp ind[41];static char x lab[41] « "YEAR";static char yjab[41] * "BASAL AREA INCREMENT";static char core[9];static int t1, t2, t3, x1, x2, y1, y2, sc, cxy, Imnu, pmnu;static int years, first_yr, last_yr, Ipt;static int all_ok * TRIE, Pdone,~Mdone, Idone, Bdone, Cdone;static int Ddone, Ldone, Lmdone;static int i, j, k, I, m, line_cnt, cyr;static int first;static int tempi;static int p1, p2;static int w1, w2, w3, w4, q1, q2, q3;static int chngd x1 x2 = FALSE, chngd y1 y2 = FALSE;static int chngd~w1_w2 = FALSE, chngd_w3_w4 = FALSE;static float ys, xs, xadd, yadd, yscale, xscale;static double y min, y max;static double rings[750], rbai[750], sbai[750];static double up[750], low[750], index[7501;static double nindex[750];static double q4, ms, cval;

char *gets(), *p;char c;char c4;char temp[5];char temp_str[8];char temp~dir[41];char dirnam[128];char choice3 [2], choice4[2];

int choice, choice2, crow, ccol; int tmode, vmode, done; long bcolor;

FILE *rs;FILE *setupinf(), *setupout();

int idunyl, idumy2, iduny3, idumy4, indtyp; double ddumyl, dduir/2, ddumy3; char cdumy1[81], cdumy2[9];

indtyp * 0;port * 0;rxtx « 3;stop * 0;parity » 24;baud * 224;_bios_serialcom(_COM_INIT, port, (rxtx | stop | parity | baud));_getvTdeoconf i g(Ivc);crow * vc.numtextrows / 2;ccol * vc.numtextcols / 2;

/* Select best text and graphics modes and adjust menus

switch (vc.adapter) { case _MDPA :

putsC'No graphics mode available.\n">;exit(O);

case _CGA :mnuModes[3] * NULL;vmode * _HRESBU;break;

case EGA :mnuNodes[6] * NULL;

69

Page 70: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source -code listing for program PLOT, continued

if (vc. memory > 64) vmode = _ERESCOLOR;

else vmode = _HRES16COLOR;

break; case VGA :

vmode = J/RES16COLOR;break;

case HCGA :vmode = _MRES256COLOR;break;

>switch (vc.mode)

case _TEXTBW80 :

menus = bwmenus; case TEXTBW40 :

Isetvideomode(_TEXTBU80);break;

case TEXTC40 :tmode = JTEXTC80;break;

case TEXTHONO : case _ERESNOCOLOR :

menus = bwmenus;tmode = TEXTC80;vmode = ~ERESNOCOLOR;mnuMaintT] = NULL;break;

default:tmode = TEXTC80;

set vi deomode< tmode); ~settextposition(7,40 - (Imess! / 2»; _outtext(mess1 );_settextposition(9,40-(sizeof(version)/2)); _out text ( ver s i on ) ;"set textpositiond 1,40 - (Imess3 / 2)); _outtext(mess3); gets (temp str);

_settextposition(2,40 - (Imess2 / 2»; _outtext(mess2);

/* Select and branch to menu choices */ for (;;)

Mdone = FALSE; while (! Mdone)

chngd x1 x2 = FALSE; chngd~y1~y2 = FALSE; chngd~w1~w2 = FALSE; chngd~w3~w4 = FALSE; tempJndTO] = '\0'; choice = menu(crow,ccol,nruMain);

if (vmode = 6 1 1 vmode = 14 1 1 vmode « 16 1 1 vmode = 18) xs = 2;

elsexs * 1;

if (vmode ==15 || vmode == 16)ys = 1.75;

else if (vmode =» 17)ys = 2.4;

elseif (vmode = 18) ys = 2.0;

70

Page 71: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

else ys = 1;

setvideomode ( DEFAULTNGDE); switch (choice)"

case QUIT :exit(O);break;

case READS : /* read chron file */all ok = TRUE;.setvideomode (_DEFAULTMOOE);_outtext(mess5)J

if «rs = setupinf( rsname, "r"» != (FILE *)NULL) < read_crn(rs, rings, rbei, sbai, up, low, index, n index, &years,

&first_yr, &last_yr, &y_max, title, &all_ok, fans); fclose(rs); if (all ok)

<tempi = strlen(rsname); for (i=tempi; i>=0; i--)

tif (rsnameCi] == '.')

tsubstr(temp ind, rsname, 1, i+1); strcat(temp~ind, "ind"); break; ~

clsO;_settextposition(10,40 - (ImessA / 2));outtext (messA);

~settextposition(11,40 - (Imess3 / 2»; _outtext(mess3); gets(temp_str); Ndone = TRUE; >

else < puts("\a");

_outtext (messS);outtext (" File may be wrong type.");

~settextposition(11,40 - (Imess3 / 2)); _outtext(mess3); gets(temp str);

elsetputs("\a»);cls(>;cntnueO;>

break;case READ I : /* read individual file */

all ok = TRUE;_setvideomode (_DEFAULTMODE); ~outtext(mess6)7 gets( rsname); if ((rs = setupinf( rsname, »r")) != (FILE *)NULL)

<:read_ind(rs, up, rbai, sbai, index, n index, &years,

&first_yr, &last_yr, &y_max, title, fans, &cyr, &cval7 &all_ok, core);

fclose(rs);

71

Page 72: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

if (all ok) C strcpy(temp_ind, rsname);

_outtext (mess4);~settextposition(11,40 (Imess3 / 2)); "out text (mess3); gets(tenp str); Mdone = TRUE;

else

puts("\a»);_outtext(mess8);~outtext(" End of file reached before finding core.\n");~outtext(" File may be wrong type or\n");_outtext(" core may not be in file.Xn11 );~outtext(mess3);get s( temp str);

else{puts(»\a»);cls();cntnueO;>

break;case READT : /* read tektronics file */

_setvideom>de (_DEFAULTMOOE); ~outtext(mess7)7 gets( rsname); if <(rs = seti4>inf( rsname, Mr")) != (FILE *)NULL)

Cread_tek(rs, rbei, &years f fcfirst^yr, &last_yr, &y_max f title);fclose(rs);

outtext (mess4);~settextposition(11,40 - (Imess3 / 2));~outtext(mess3);get s( temp str);Mdone * TRUE;>

else<put*(»\a");cls();cntnueO;>

break;case REAOD : /* read other data file */

all ok * TRUE;_setvideomode (_DEFAULTMOOE); _outtext(mess9)7 gets( rsname); if ((rs * seti4>inf( rsname, »r")) != (FILE *)NULL)<read_oth(rs f rbai, &years f &first_yr, &la8t_yr f

&y_max, title, &all_ok);""fclose(rs);if (all ok)

_outtext (messA);~settextposition(11 f40 - (Imess3 / 2));_outtext(mess3);gets(tenp_str);cntnueO;"

72

Page 73: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source -code listing for program PLOT, continued.

Ndone TRUE; >

else < puts<"\a");

_outtext (messS);_outtext (" File may be wrong type.");cntnueO;

else{puts< M\a");cls();cntnueO;>

break; case KYBD : /* get data from keyboard */

setvideomode ( DEFAULTMODE); put s< "Enter title: "); gets(title);

puts( "Enter first year: ");gets(temp_str);first_yr * atoi(temp_str);last_yr * first_yr-ljyears = 0;yjnin « 0.0;y~max = 0.0;

done = FALSE;puts( N\n Enter QUIT to terminate values. \n">;whileOdone)

- «. last_yr+1); gets(temp str); if (tefflp_str[0] « 'Q' || temp_str[0] == 'q')done = TRUE;

else{years * years+1;last^yr « last_yr+1;rbaiTyears] = atof(temp_str);if ( r be i [years] > yjnax)

y max = rbai [years] ;

cntnueO; Mdone = TRUE; break;

case DIRL : /* list directory */ ^setvideomode <J>EFAULTMODE);print f( M\n\n\nEnter full pathname (enter=current): M ); gets(temp_dir);

strcpy(dirnam, "dir M );if «i = strlen(tefflp_dir)) != 0)

strcat(dirnam, temp dir); strcat(dirnamt « /p")7 i * systenKdirnam); cntnueO; gets(temp_str); break;

case PORT : /* set up plotter port */ setvideomode( tmode);

_outtext( M\nRoutine not completed yet\n");

73

Page 74: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

cntnueO; Cdone = FALSE; while (! Cdone)

pi = menu(crou, ccol, mnuPort); suitch(pl)

<.case 5 : Cdone = TRUE; break;

case 0 : Bdone = FALSE; uhi led Bdone)

p2 = menu(crow, ccol, mnuPport); suitch(p2)

<. case 3 :

Bdone = TRUE;Cdone = TRUE;break;

case 0 :port = 0;break;

case 1 :port = 1;break;

case 2 :Bdone = TRUE;break;

default :break;

break; case 1 :

Bdone = FALSE; uhi led Bdone)

C

p2 = menu(crou, ccol, mnuChar); suitch(p2)

<. case 3 :

Bdone = TRUE;Cdone = TRUE;break;

case 0 :rxtx = COM CHR7;break; "

case 1 :rxtx = _COM_CHR8;break;

case 2 :Bdone = TRUE;break;

break; case 2 :

Bdone = FALSE; uhi le(! Bdone)

p2 = menu(crou, ccol, mnuStop); suitch(p2)

74

Page 75: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

case 3 :Bdone = TRUE;Cdone = TRUE;break;

case 0 :stop = COM STOP1;break; ~

case 1 :stop « _COM_STOP2;break;

case 2 :Bdone = TRUE;break;

default :break;

break; case 3 :Bdone = FALSE; whi led Bdone)

p2 « menu(crow, ccol, mnuParity); suitch(p2)

C case 4 :

Bdone * TRUE;Cdone = TRUE;break;

case 0 :parity = _COM_NOPARITY;break; " "

case 1 :parity = COM OODPARITY;break;

case 2 :parity = COM EVENPARITY;break;

case 3 :Bdone « TRUE;break;

default :break;

break; case 4 :

Bdone » FALSE; while (! Bdone)

p2 « Menu(crow, ccol, mnuBaud); suitch(p2)

< case 7 :

Bdone = TRUE;Cdone = TRUE;break;

case 0 :baud = COM 300;break; ~

case 1 :baud » _COM_600;break; "

case 2 :baud » _COM_1200;break;

75

Page 76: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PTJDT, continued.

case 3 :baud * COM 2400;break; ~

case 4 :baud * _COM_4800;break;

case 5 :baud = _COM_9600;break;

case 6 :Bdone = TRUE;break;

default :break;

break; >

_bios serialcom(_COM INIT, port, (rxtx | stop | parity | baud)); >

default : break;

> /* end switch choice */

> /* end while Mdone */ indtyp = 0; y1 = 0;y_tics(&t2, y_maxf &y2); x~tics(&t1, &x1, &x2, years, first yr); qT = x1; q2 - x2; q3 * y2; w1 = x1; w2 = x2; w3 = y1; w4 - y2;idumyl = f irst_yr; iduny4 = years; listjnf (title, x_lab, y_lab, first_yr, last_yr, yjnax, q1, q2, q3,

x1, x2, y2, w1, w2, w3, w4, ms, cyr, cval, choice); gets(temp);

_settextposition(2,40 - (Imess2 / 2)); out text (mess2); Pdone = FALSE; i = strlen(title); title[i+1] = '\0'; while (! Pdone)

<.choiceZ = menu(crow,ccol,mnuPlot); _setvideonode (_DEFAULTMCOE); switch (choiceZT

case 6 : /* QUIT */

exit(O);case 0 : /* CHNG T */

chng_t(title);~ break;

case 1 : /* CHNG */ Cdone = FALSE; while (! Cdone)

cxy = menu(crow, ccol, itnuchng); cxy = cxy+10; switch (cxy)

76

Page 77: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

case 16 :Cdone = TRUE;break;

case 10 : /* change x label */chng_x(x_lab);break;

case 11 : /* change y label */chng_y(y_lab);break;

case 12 : /* change x axis values */chngd_x1_x2 = TRUE;chng_x_vals(&x1, 4x2, &t1);break;

case 13 : /* change y axis values */chngd_y1_y2 = TRUE;chng_y_vals(&y1, &y2, &t2);break;

case 14 : /* change x window */chngd_w1_w2 = TRUE;chng_x_win(&w1, &w2, &x1, &x2);break;

case 15 : /* change y window */chngd_w3_w4 = TRUE;chng_y_win(&w3, &w4, &y1, &y2);break;

default :break;

break;case 2 : /* plot and graph routines

Ddone = FALSE; while (! Ddone)

pnrtu = menu(crow, ccol, mnuPgraph); pmnu = pmnu+20; switch(pmnu)

<case 23 : /* prev menu */

Ddone = TRUE; break;

case 20 : /* bai */ Cdone = FALSE; while (! Cdone)

<_setvi deomode( tmode) ; sc = menu(crow, ccol, mnuDevice); first = TRUE; if (sc == 3)

<plot_stp(x2, y2, &port); Cdone = TRUE; break; >

if (!chngd_y1_y2) <y_tics(&t2, y_max, &y2); y1 = y min; >

if (Ichngd_w3 w4) <w3 = y1; w4 = y2; >

if (!chngd_x1_x2) x_tics(&t1, &x1, &x2, idumy4, idumyD;

77

Page 78: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

if (Ichngd w1 w2)<:w1 = x1;w2 = x2;>

_setvideomode (vmode); If (sc == 0)

<:yscale = (16.0*ys)/t2;xscale = (40.0*xs)/t1;_settextcolor( RED);g labs(title, x lab, y lab, x1, y2, t1, t2, 2, 0);_settextcolor(_UHITE);~g_tics(xs, ys,~4.0, 28, 16.0, 7, w1, w2, w3, w4,

xscale, yscale, xl, x2, yl, y2, tl, t2); g xyadd (&xadd, &yadd, idumyV, xl, y2, &j); J~= 1; >

else t/* DO PLOT */ setvideomode ( DEFAULTMODE);

pj)lot(title, x_lab, y_lab, x1, x2, y1, y2, t1, t2, 4, FALSE,u1, w2, w3, u4,~sc, &port, FALSE);

setvideomode ( DEFAULTMODE); >

p = itoa(choice, choice3, 10); c4 - / /.while <c4 != '?' && c4 != 'p')

<.settextcolor( RED);

switch (choice3[0])<:case '0' :

_outtext("(R)bai (S)bai (U)pper (L)ow\n"); break;

case '1' :_outtext("(R)bai <S)bai\n"); break;

case '2' : case '3' : case '4' :

c4 = 'X';_outtext(" \n"); break;

default : break;

> /* end switch choices */ settextcolor( WHITE);

If (choices [0]~== '2' \\ choice3[0] == '3' || choice3[0] " ' <. if (Ifirst)c4 = getch();

> else

c4 = getchO; switch(c4)

<.case 'R' : case f r f : case 'X' :

if <c4 == 'X')first = FALSE;

if (sc = 0)g_line(j,xadd, yadd, xscale, yscale, iduny4,

rbai, vmode, 1);

78

Page 79: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

else {/* DO PLOT */pit lne(rbai, idumyl, idumy4, x2, y2, 1.0, Sport); clsb; >

break; case '$' : case 's' :

if (sc == 0) g_line(j,xadd, yadd, xscale, yscale, idumy4,

sbai, vmode, 1); else

C/* DO PLOT */pit lne(sbai, idumyl, idumy4, x2, y2, 1.0, Sport); clsb; >

break; case 'U' : case 'u' :

if (sc ~ 0) g_line(j,xadd, yadd, xscale, yscale, idumy4,

up, vmode, 1); else

{/* DO PLOT */pit lne(up, idumyl, idumy4, x2, y2, 1.0, Sport); clsb; >

break; case 'L' : case 'I' :

if (sc == 0) g_line(j, xadd, yadd, xscale, yscale, idum/4,

low, vmode,1); else

{/* DO PLOT */pit lne(low, idumyl, idumy4, x2, y2, 1.0, &port); clsb; >

break;/* DO PLOT */

case 'C' : case 'c' :

choices[0] = '0'; c4 = '0'; _outtext(mess5); gets(rsname);if ((rs = setupinf(rsname, "r")) != (FILE *)NULL)

{all_ok = TRUE; choice = READS; chngd x1 x2 = TRUE; chngd~y1~y2 = TRUE; chngd~w1~w2 = TRUE; Chngd~w3~w4 = TRUE; read_crn(rs, rings, rbai, sbai, up, low, index,

nindex, &idum/4, &idumy1, &idum/2, &dduny1, cdumyl, &all_ok, &ddumy2>;

fclose(rs); if (all ok)

{if (sc == 0) g_xyadd (&xadd, &yadd, idum/1, x1, y2, &j);

79

Page 80: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

else

puts(»\a»); _outtext(mess8) ; gets(temp);

else{putsC'\a»);gets(temp);>

break; case 'I' : case '}' :

choices [0] = 'V;_outtext(mess6a);_outtext( tenp_i nd) ;_outtext(mess6b);get s( rsname);if <rsname[0] == '\0')strcpy( rsname, temp_ind);

elsestrcpyCtemp ind, rsname);

if ((rs = setupinf( rsname, "r")) != (FILE *)NULL)<:choice = READ I; chngd x1 x2 = TRUE; chngd~y1~y2 = TRUE; chngd~w1~w2 = TRUE; chngd~w3~w4 = TRUE;read_ind?rs, op, rbai, sbai, index, nindex, &iduny4,

&idumy1, &idumy2, &ddumy1, cdum/1, &ddumy2, &iduny3, &ddumy3, &all_ok, cduny2);

fclose(rs); ~ if (all ok){if (sc == 0) g xyadd (&xadd, &yadd, idunyl, x1, y2, &j);

> else

{puts(»\a»);_outtext (mess8);gets(tenf));

else {puts(»\a»); gets(tenp); >

break; case 'T' : case 't' :

_outtext(mess7); gets( rsname);if ((rs = setipinf( rsname, »r")) != (FILE *)NULL)

<choice = REAOT; chngd x1 x2 = TRUE; chngd~yl"y2 = TRUE;

!wCw2 = TRUE; lwSj* = TRUE;

read_tek?rs, rbai, &idumy4, & idunyl, &idumy2,&ddumy1, cdumyl);

fclose(rs);

80

Page 81: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

if (sc == 0)g xyadd (&xadd, &yadd, idunyl, x1, y2, &j);

> else

{puts(»\a»);gets(temp);>

if (sc == 0)g_line(j,xadd, yadd, xscale, yscale, idumy4,

rbai, vmode, 1); else

<:/* DO PLOT */pit lne(rbai t idumyl, idumy4, x2, y2, 1.0, &port); clsb; >

break; case '0' : case 'o' :

_outtext(mess9>; gets(rsname);if ((rs = setupinf(rsname. "r"» != (FILE *)NULL)

{choice = READD; chngd_x1 x2 = TRUE; chngd_y1~y2 = TRUE; chngd_w1~w2 = TRUE; chngd_w32«4 = TRUE; read_oth(rs, rbai, &idum/4, & idunyl, &idum/2,

&ddum/1, cdum/1, &all_ok); fclose(rs); if (sc == 0) g_xyadd (&xadd, &yadd, idum/1, x1, y2, &j);

> else

<:puts(«\a«);gets(temp);>

if (sc == 0)g_line( j,xadd, yadd, xscale, yscale, iduny4,

rbai, vmode, 1); else

{/* DO PLOT */plt_lne(rbai, idum/1, idum/4, x2, y2, 1.0, Sport);

gets(terap); break;

case 'P' : case 'p' :

plot_stp(x2, y2, &port); break;

default : break;

> /* end switch choice4 */_outtext("\nFiles[(C)hron (I)nd (T)ek (O)ther] (P)rev menu "); > /* end while */

>break;

case 21 : /* ring-widths */ Cdone = FALSE; while (! Cdone)

_setvideomode( tmode) ;sc = menu(crow, ccol, mnuDevice);

81

Page 82: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

if (sc == 3){Cdone = TRUE;break;>

all ok = TRUE; if ^choice == READ I)

{q4 = 0;for (i=1; i<=idumy4; i

if (up[i] > q4) q4 =

strcpy(y lab, "WIDTH (mm)"); Idone = ?ALSE; if ("chngd y1 y2)

q4 = 0;for (i=1; i<=idumy4;

if (up[il > q4)q4 = upti];

>y_tics(&t2, q4*10, &y2);

y1 = y min; >

if (! chngd w3 w4) {w3 = y1; w4 = y2; >

if (!chngd_x1_x2)x tics(&t1, &x1, &x2, i dun/4, idunr/1);

if ?! chngd w1 w2) <.w1 = x1; u2 = x2; >

if (sc == 0) {setvideomode (vmode);

yscale = (16.0*ys)/t2; xscale = (40.0*xs)/t1;g_labs(title, x_lab, y_lab, x1, y2, t1, t2, 2, 0); g_tics(xs, ys, 4.0, 28, 16.0, 7, w1, w2, w3, w4,

xscale, yscale, x1, x2, y1, y2, t1, t2); g xyadd (&xadd, &yadd, idumyl, x1, y2, &j); >~

else <I* DO PLOT */ _setvideomode (_DEFAULTMODE); p_plot(title, x~lab, y lab, x1, x2, y1, y2, t1, t2, 4,

FALSE, wT, w2, w3, w4, sc. Sport, FALSE); out text (mess3);

>while (! Idone)

{if (all ok) if (sc == 0)

{g_xyadd (&xadd, &yadd, idumyl, x1, y2, &j); g~line(j,xadd, yadd, xscale, yscale, idunr/4,

up, vmode, 10);

82

Page 83: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

else {/* DO PLOT */ plt_lne(up, idumyl, idumyt, x2, y2, 10.0, &port);

_outtext("\nFiles[(I)ncn (P)rev menu\n"); c = getchO; switch (c)

{case 'P' : case 'p' :

plot_stp(x2, y2, Sport); I done = TRUE; break;

case 'I' : case 'i' :

_outtext(mess6a);_outtext(temp_ind);_outtext (mess6b) ;gets(rsname);if <rsname[0] == '\0')

strcpy(rsname, temp_ind); else

strcpy(temp_ind, rsname); if ((rs = setupinf( rsname, "r"» != (FILE *)NULL)

<:choice = READ I;chngd_x1_x2 = TRUE;chngd_y1_y2 = TRUE;chngd_w1_w2 = TRUE;chngd_w3_w4 = TRUE;read_ind(rs, up, rbai, sbai, index, n index, &idumy4,

&idum/1, &idumy2, &ddumy1, cdum/1, &ddumy2, &idumy3, &ddumy3, &all_ok, cdumy2);

fclose(rs);if (all_ok)

else {puts(»\a»); _outtext (messS); get s( temp); >

> /* end good file */ else

<.puts(»\a»); gets(temp); >

break; default :

break; >

> /* end whi le */ > /* end if READI */

else <._setvideomode (_DEFAULTMODE);_outtext("\nOnly Individual (.IND) files contain r ing- widths. \n") ; gets (temp); Cdone = TRUE; >

strcpy(y_lab, "BAI"); chngd_x1_x2 = FALSE; chngd_y1_y2 = FALSE;

83

Page 84: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued

chngd w1 w2 = FALSE;chngd~w3~w4 = FALSE;>

break;case 22 : /* indices */

Cdone = FALSE; while (ICdooe)

_setvideomode(tmode);Tndtyp = 0;indtyp = menu(crou, ccol, mnulndtyp);

if (indtyp == 2) {Cdone = TRUE; break; >

sc = menu(crow, ccol, mnuDevice); cls();if (sc == 3)

{Cdone = TRUE; break; >

if (choice != READT) {if (choice == READD || choice == KYBD)

for (i=0; i<=idumy4; i++)index [i] = rbai[ij;

strcpy(y lab, "INDEX"); if (! chngd u3 w4)

w3 = y1; ifd'ndtyp = 0)

w4 = 2; else

u4 = 4; >

if (!chngd_x1_x2)x tics(&t1, &x1, &x2, idum/4, idum/1);

if 7 ! chngd u1 w2)<:w1 = x1; w2 = x2; >

if (sc == 0) {_set vi deomcxte( vmode) ; ifd'ndtyp = 0)

yscale = 56*ys; elseyscale = 18.66*ys;

xscale = (40.0*xs)/t1; ifd'ndtyp == 0)

g_labs(title, x_lab,y_lab, x1, 2, t1, 1, 7, 0);g_tics(xs, ys, 5.6, 20, 55.75, 0, u1, w2, w3, w4,

xscale, yscale, x1, x2, y1, 2, t1, 1);>

else g_labs(title, x_lab,y lab, x1, 2, t1, 1, 7, 1);g_tics(xs, ys, T.866,~60, 18.66, 6, w1, w2, w3, w4,

xscale, yscale, x1, x2, y1, 4, t1, 1);>

g_xyadd (&xadd, &yadd, idumyl, x1, 2, &j); _setlinestyle(style[12] );

84

Page 85: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

ifd'ndtyp == 0)moveto(0, (int)(55.5*ys»; ~lineto«int)(312*xs) f (int)(55.5*ys»; >

else {moveto(0, (int)(37.32*ys»; ~lineto((int)(312*xs), (int)(37.32*ys»; moveto(0, (int)(74.64*ys»; Jineto((int)(312*xs), (int)(74.64*ys»; >

_setlinestyle(style[15] ); >

else {/* DO PLOT */ ifd'ndtyp == 0) p_plot(title, x_lab, y_lab, x1, x2, y1, 2, t1, 1, 10,

TRUE, wl7 w2, w3, w4, sc, Sport, indtyp); else

p_plot(title, x_lab, y_lab, x1, x2, -3, 3, t1, 1, 10,TRUE, wC w2, -3, 3, sc, &port, indtyp);

>I done = FALSE; all_ok = TRUE; while (Hdone)

<if (all_ok)

< if(indtyp == 0)yadd = 2;

elseyadd = 4;

if (sc == 0) {if (indtyp == 0)

{g_xyadd (&xadd, &yadd, idum/1, x1, 2, &j); g_line(j, xadd, yadd, xscale, yscale, iduin/4,

index, vmode, 1); >

else g_xyadd (&xadd, &yadd, idum/1, x1, 3, &j); g_line(j, xadd, yadd, xscale, yscale, idumy4,

n index, vmode, 1);

else {/* DO PLOT */ if(indtyp == 0) pit lne( index, idumyl, idumy4, x2, 2,

1.0, &port); else

pit lne(nindex, idumyl, idumy4, x2, 3, 1.0, &port);

_outtext("\nFiles[(C)hron (I)nd (O)ther] (P)rev menu\n">;c = getchO;if (c == 'P' || c == 'p')

<plot stp(x2, y2, &port);Idone = TRUE;break;

85

Page 86: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

else

if (c = 'c' Me == 'C')

_puttext(mess5);gets(rsname);all ok = TRUE;if T(rs = setupinf(rsname, "r"» != (FILE *)NULL)

<choice = READS;chngd x1 x2 = TRUE;chngd~Hl~H2 = TRUE;chngcfw3j<4 = TRUE;read_crn(rs, rings, rbai, sbai, up, low, index, n index,

&idumy4, &idumy1, &idunry2, &ddumy1, cdumyl, &all_ok, &ddumy2);

fcloseCrs);if (all ok)

else {puts("\a">; _outtext (messS); gets(temp);

else <puts("\a»); gets(temp);

else<:if (c == 'I' || c == 'i')

<_outtext(mess6a); _out text < temp_i nd) ; _out text (messob) ; gets(rsname); all ok = TRUE; if TrsnameEO] == '\0')strcpy(rsname, temp_ind);

else ~strcpy(temp ind, rsname);

if «rs = setupinf( rsname, "r"» != (FILE *)NULL)<choice = READ I;chngd_x1_x2 = TRUE;chngdlw1~w2 = TRUE;chngdlw3_w4 = TRUE;read_ind(rs, up, rbai, sbai, index, nindex, &idum/4,

&idumy1, &idum/2, &ddumy1, cdumyl, &ddum/2, &idum/3, &ddumy3, &all_ok, cdumy2);

fclose(rs);if (all_ok)

else {puts("\a">; _outtext (messS); gets(temp);

86

Page 87: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

else{puts(»\a»);gets (temp);>

> /* end of if i */ else

{ if (c == '0' || c == 'o'>

{_outtext(mess9);gets(rsname);all_ok = TRUE;if «rs = setupinf(rsname, "r")) != (FILE *)NULL)

<.choice = READT;read_oth(rs, index, &idumy4, &idumy1, &idumy2,

&ddumy1, cdumyl, &all_ok);fclose(rs);if (all_ok)

<.y

else {putsO'Xa11 ); _outtext (messS); gets (temp);

else <.puts(»\a»); gets (temp);

> /* end check i */ > /* end check input */

> /* end idone */ >

else {puts("\a»);_outtext ("\nCannot be TEKTRONICS file.\n»); gets(temp); >

strcpy(y_lab, "BAI"); >

chngd_x1_x2 = FALSE; chngd_y1_y2 = FALSE; chngd_w1_w2 = FALSE; chngd_w3_w4 = FALSE; break;

>> /* end ddone */

break;case 3 : /* Listing routines */

Lmdone = FALSE; while (! Lmdone)

Imnu = menu (crow, ccol, mnuLmain); Imnu = lmnu+30; switch(lmnu)

{ case 33 :

Lmdone = TRUE; break;

87

Page 88: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

case 30 : /* LDATAS */ Ldone = FALSE; while (! Ldone)

Ipt = menu(crow, ccol, mnuLdata); if (Ipt == 2)

{Ldone = TRUE;break;

if (Ipt == 0) Cif (choice == READS)

list_crn(first_yr, years, rings, rbai, sbai, up, low, index, n index, title);

else {if (choice == READ I)

list_ind(first_yr, years, up, rbai, sbai, index,nindex, title, core);

else {if (choice > READI && choice < DIRL)

list tek(rbai, years, first_yr, title);

else{if (choice == READS) prnt_crn(f irst_yr, years, rings, rbai, sbai,

up, low, index, nindex, title); else

{if (choice == READI) prnt_ind(first_yr, years, up, rbai, sbai, index,

nindex, title); else

{if (choice > READI && choice < DIRL) prnt_tek(rbai, years, first_yr, title);

break;case 31 : /* LSTAT */

Ldone = FALSE; while (! Ldone)

Ipt = menu(crow, ccol, mnuLdata); if (Ipt == 2)

<Ldone = TRUE; break; >

if (Ipt == 0)list_inf(title, x_lab, y_lab, first_yr, last_yr, y_max,

q1, q2, q3, x1, x2, y2, w1, w2, w3, w4, ms, cyr, cval, choice);

elseprnt_inf( title, x_lab, y_lab, first_yr, last_yr, y_max,

q1, q2, q3, xl, x2, y2, wl7 w2, w3, w4, ms, cyr, cval, choice);

88

Page 89: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

gets (temp);>

break; case 32 :

Ldone = FALSE; while (! Ldone)

C

Ipt = menu(crow, ccol, mnuLdata); if (Ipt == 2)

CLdone = TRUE;break;>

if (Ipt < 2)C

dirnamtO] = '\0';printf ("\n\nEnter file name (including full path): ");gets(temp dir);if (Ipt == 0)

Cstrcpy(dirnam, "type ");street (dirnam, temp_dir);street (dirnam, " | more");>

else strcpy(dirnam, "print ");street (dirnam, temp dir);

i = system(dirnam);cntnueO;gets (temp dir);

break; > /* end switch Imnu */

> /* end while Undone */ break;

case 4 : /* SKEYF */ if (choice == 4)

<all_ok = TRUE; _outtext(mess9); gets(rsname);if ((rs = setupout(rsname, "w")) != (FILE *)NULL)

fprintf(rs, "Xs\n\n", title) ; writef(rs, rbai, years+1, first_yr, last^yr); fclose(rs); if (all ok) <puts("\a"); _clearscreen(0); _outtext (messlO); _outtext (mess3); Mdone = TRUE; >

else puts("\a"); _outtext (messS);_outtext (" File may be wrong type."); out text (mess3);

89

Page 90: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

else

puts(»\a»); _outtext (mess3);

else t_outtext( "\nOnly Keyboard entries can be saved. 11 ); >

gets(temp); break;

case 5 : /* MAIN */ Pdone = TRUE; break;

default : break;

>_setvideomode (tmode); >

/* end pmenu */ > /* end main for */

/* Put menu on screen.Starting <row> and <column>.Array of menu <items> strings.Global structure variable <menus> determines:

Colors of border, normal items, and selected item. Centered or left justfied. Border characters.

Returns number of item selected. */

int menu (row, col, items) int row, col; char *i terns []; t

int i, nun, max = 2, prev, curr = 0, choice, c, d;int I item [25];long bcolor;

cursor (TCURSOROFF); bcolor = _getbkcolor();

/* Count items, find longest, and put length of each in array */

for (nun = 0; i terns [num]; nunH-+) tI item [num] = strlen< items [num] );max = (t item [num] > max) ? I item [num] : max;

> max += 2;

if (menus. centered) { row -= num / 2; col -= max / 2;

/* Draw menu box */

_settextcolor(menus. fgBorder ); _setbkco lor ( menus . bgBorder ); box ( row++ , co I ++ , num, max ) ;

/* Put items in menu */

for (i = 0; i < num; +-M") { if (i == curr) t

_settextcolor(menus.fgSelect); ~setbkcolor(menus.bg Select);

90

Page 91: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

> else {_settextcolor(menus. f gNormal ); setbkcolor(menus.bgNormal);

itemize(row+i,col,items[i],max - li

/* Get selection */

for (;;) {switch (c = ((_bios_keybrd( KEYBRD_READ) & OxffOO) » 8»

{ case UP:

prev = curr;curr = (curr > 0) ? (--curr % num) : num-1; break;

case DOWN :prev = curr;curr = (curr < num) ? (++curr % num) : 0; break;

case ENTER :_setbkcolor(bcolor); return(curr);

default :if (c > 0 && c < 12)

Cc = c-2; if (c < num) return (c);

>continue;

>_settextcolor(menus.fgSelect); _setbkco I or (menus . bgSe I ect ) ;itemize(row+curr,col,items[curr],max - I item [curr]), _settextcolor(menus.fgNormal); _setbkcolor(menus.bgNormal ); itemize(row+prev, col, items [prev], max - I item [prev] );

/* Draw menu box.<row> and <col> are upper left of box. <hi> and <wid> are height and width. */

void box(row, col, hi, wid) int row, col, hi, wid; C

int i;char temp[80];

_settextposition(row,col);temp[0] = *menus.nw;memset(temp* 1,"menus.ew,wid);temp[wid+1] = *menus.ne;temp[wid+2] = NULL;_outtext(temp);for (i = 1; i <= hi; ++i) {

_settextposition(row+i,col);_outtext(menus.ns);_settextposition(row+i,col+wicH-1);_outtext(menus.ns);

>_settextposition(row+hi+1,col); temp[0] = *menus.sw; memset(temp* 1,*menus.ew,wid); temp[wid+1] = *menus.se; temp[wid+2] = NULL;

91

Page 92: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

_outtext(temp);

/* Put an item in menu.<row> and <col> are left position.<str> is the string item.<len> is the number of blanks to fill. */

void itemize(row,col,str,len) int row, col, I en; char str[];<:

char temp[80],

_settextposition(row,col); _outtext(" "); _outtext(str); memset(temp,' ',len-->; temp[Ien] = NULL; _outtext(temp);

/* Change the cursor shape.<value> has starting line in upper byte, ending line in lower byte.

Returns the previous cursor value. */

unsigned cursor(value) unsigned value;<:

union REGS inregs, outregs; int ret;

inregs.h.ah = 3; /* Get old cursor */inregs.h.bh = 0;int86(0x10,&inregs,Soutregs);ret = outregs.x.ex;

inregs.h.ah =1; /* Set new cursor */ inregs.x.ex = value; int86(0x10,&inregs,&outregs);

return(ret);

/********************************************************************//* File name : CHNG_ALL.C */ /***************************************** ***************************/

^include <stdio.h>

#define TRUE 1#define FALSE 0

chng_t(title)

char title[];<:int done = FALSE; char temp[81l;

printf("This is the current title:\n %s\n", title); while (Idone)

Cprintf ("\nEnter the new title: \n");gets (temp);if (temp[0] != '\0')

strcpy(title, temp);

92

Page 93: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source -code listing for program PLOT, continued,

printfC'This is the new Title: \n %s\n", title); printf("\n\n Is this correct (Y/N)? "); gets (temp);if (tempEO] == 'Y' || temp[0] == 'y' | | temp[0] == '\0')

done = TRUE;

chng_x(x_lab)

char x lab[];<int done = FALSE;char temp[41];

puts ("\n\nTh is is the current X label: "); puts(x lab); while Tldone)

<puts ("\nEnter new X label: ");gets (temp);if (temp[0] != '\0')

strcpyCx lab, temp);puts("This~is the new X label: ");puts(x lab);puts("\n\n Is this correct (Y/N)? ");gets(temp);if (tempEO] == 'Y' || temp[0] == 'y');

done = TRUE;

chng_y(y_lab)

char y_lab[] ;<int done = FALSE;char temp[41];

puts ("\n\nTh is is the current Y label: ");puts(y_lab);while Tldone)

<puts( H\nEnter new Y label: ");gets (temp);if (tempEO] != '\0')

strcpy(y lab, temp);puts("This is the new Y label: ");puts(y_lab);puts("\n\n Is this correct (Y/N)? ");gets (temp);if (tempEO] == 'Y' || temp[0] == 'y'); done = TRUE;

chng_x_vals(x1, x2,

int *x1, *x2, *t1;

int done = FALSE; char temp[5] ; char tempx[5]; char tempt [71;

93

Page 94: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

puts < "Current X axis info:\n");printf ("First year: %4d Last year: %4d Years/Major interval: %3d\n\n",

*x1, *x2, *t1);puts(" You will only be allowed to specify the first year"); puts<" and the years per Major interval.W); while (idone)

printf ("First year: ");gets(tempx);printf ("Interval (yrs): ");gets (tempt);if (tempxCO] != '\0')*x1 = atoi(tempx);

if (temptCO] != '\0')*t1 = atoi (tempt);

*x2 = *x1 + (*t1 * 7); puts ("\nThe new values are:\n"); printf ("First year: %4d Last year: %4d Years/Major interval: %3d\n\n",

*x1 *x2 *t1)*puts("\n 'is this correct (Y/N)? »); gets (temp); if (temptO] != 'N' && temp[0] != 'n')

done = TRUE;

chng_x_win(w1, w2, x1, x2)

int *w1, *w2, *x1, *x2;

int done = FALSE; char temp[5]; char tempx[5]; char tempt [71;

putsC'Current X window info:\n");printf ("First year: %d Last year: %d\n\n",

*w1, *w2); while (Idone)

printf ("First year: ");gets(tempx);printf ("Last year : ");gets (tempt);if (tempx[0] != '\0')*w1 = atoi(tempx);

if (*w1 < *x1)*w1 = *x1;

if (tempt [0] != '\0')*w2 = atoi (tempt );

if (*w2 > *x2)*w2 = *x2;

puts ("\nThe new values are:\n"); printf ("First year: %d Last year: %d\n\n",

*w1 *w2);printf("\n Is this correct (Y/N)? »); gets (temp); if (temp[0] != 'N' && te»rp[0] != 'n')done = TRUE;

chng_y_vals(y1, y2, t2)

int *y1, *y2, *t2;

94

Page 95: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

int done = FALSE; char temp [5]; char tempx[5]; char tempt [7];

puts ("Current Y axis info:\n">;printfC'Y minimum: %d Y maximum: %d Major interval: %d\n\n",

*y1, *y2, *t2>;puts(" You will only be allowed to specify the Y maximum value"); puts(" and the value per Major interval.\n">; while (idone)

<printf("Y minimum: ");gets(tempx);printf(»Interval : ' );gets (tempt );if (tempx[0] != '\0'>*y1 = atoi(tempx);

if (tempt [0] != '\0'>*t2 = at oi( tempt);

*y2 = *t2 * 7;puts("\nThe new values are:\n"); printf("Y minimum: %d Y maximum: %d Major interval: 56d\n\n",

*y1, *y2, *t2);printf("\n Is this correct (Y/N>? ">; gets(temp); if (temp[0] != 'N' && temp[0] != 'n')done = TRUE;

chng_y_win(w3, w4, y1, y2>

int *w3, *w4, *y1, *y2;

int done = FALSE; char temp [5]; char tempx[5]; char tempt [71;

puts ("Current Y window info:\n">;printfC'Y minimum: %d Y maximum: %d\n\n",

*w3, *w4>; while (Idone)

<printfC'Y minimum: ">;gets(tempx);printfC'Y maximum: ' );gets(tempt);if (tempx[0] != '\0'>*w3 = atoi(tempx);

if (*w3 < *yD*w3 = *y1;

if (tempt [0] != '\0'>*w4 = atoi( tempt);

if (*w4 > *y2>*w4 = *y2;

puts ("\nThe new values are:\n">; printfC'Y minimum: %d Y maximum: %d\n\n",

*w3, *w4>;printf("\n Is this correct (Y/N>? ' >; gets(temp); if (temp[01 != 'N' && temp[0] != 'n')done = TRUE;

95

Page 96: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

I***********-*********************************************************/I* File name : FIL ARRS.C */ /********************************************************************/

^include <stdfo.h> ^define TRUE 1 fldefine FALSE 0

fill_sarray(id, a, q2, first_yr, last_yr, years)

FILE *id;double *a, *q2;int *first_yr, *last_yr, *years;

char *cf, *fgets();double atofO;int done, first, line_len, cnt, i, j;char temp_str[10], line [801;

done = FALSE; cnt = 1; first = TRUE; while (idone)

<cf = fgets(line, 80, id);

line_len = strlen(line); if <(line_len > 4) && (ifeof(id)))

{if (first)

<substr(temp_str, line, 1, 4); *first yr =~atoi(temp_str); first = FALSE; >

j = (line_len-4)/7; for (i=1; i<=j; i

substr(temp_str, line, 5+«i-1)*7), 7); a [cnt] = atof(temp_str); if (a [cnt] > *q2 )

*q2 = a [cnt]; cnt = cnt + 1;

else

done = TRUE;"years = cnt-1;*last_yr = *first yr+*years- 1 ;

fill_tarray(id, a, q2, first_yr)

FILE *id; double *a, *q2; int *first_yr;

char *cf, *fgets();double atofO;int done, cnt, i, j, tyr;char temp_str[10], line[80];done = FALSE;cnt = 1;while (idone)

cf = fgetsdine, 80, id);

96

Page 97: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

substr(temp_str, line, 2, 4);tyr = atoi(temp_str);if «tyr-*first_yr >= 0) && (Ifeof(id)))

<:substr(temp_str, line, 19, 6); a[cnt] = atof(temp_str); if (a[cnt] > *q2 )

*q2 = a[cnt]; cnt = cnt + 1; >

else done = TRUE;

/********************************************************************y/* Filename : LIST_ALL.C */ /***************************»****************************************/

^include <stdio.h>

^define TRUE 1 #define FALSE 0

list_crn(fyr, years, r, a, m, u, I, ia, in, title)

int fyr,years;double *r, *a, *m, *u, *l, *ia, *in;char title [];

int i, line_cnt, rint; char temp[5f;

line_cnt = 4;printf("%s\n\n", title);printf("YEAR AREA MEAN UPPER LOWER INDEX N INDEX CORES \n");for (i=1; i<=years; i++)

<:if (line_cnt > 23)

<:printf(" (Press enter to continue.)"); gets(temp);

printf("%s\n\n", title);printf("YEAR AREA MEAN UPPER LOWER INDEX NINDEX CORES \n") ; line_cnt = 4; >

rint = r[i]; printf(»%4d %7.3f %7.3f %7.3f X7.3f %7.3f %7.3f %7d\n», fyr,

m[i], u[i], l[i], ia[i], in[i], rint); line_cnt = line_cnt+1; fyr = fyr+1; >

cntnueO; gets (temp); >

list_ind(fyr, years, a, m, u, I, in, title, core)int fyr, years;double *a, *m, *u, *l, *in;char title[], core[];

int i, line_cnt; char temp[5];

97

Page 98: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLQT, continued.

line cnt = 4;printf("%s ( %s >\n\nll f title, core)|printf ("YEAR WIDTH AREA SPLINE INDEX NINDEX\n"); for (i=1; i<=years; i++)

{if (line cnt > 23)

{printf (" (Press enter to continue.)"); gets (temp);

printf("%s ( %s )\n\n" f title, core);printf ("YEAR WIDTH AREA SPLINE INDEX N INDEX \n") ; line cnt = 4; >

printf ("X4d %7.3f %7.3f %7.3f %7.3f %7.3f\n", fyr, a[i] tm[f] ( u[i] t l[i]

line_cnt = line_cnt+1; fyr = fyr+1; >

cntnueO; gets(temp);

list_tek(prtarr f j, fyr1 f title) int 7, fyrl; double prtarr[]; char titled;

int I, i, jb, je, line_cnt;int done = FALSE;char temp [5];jb= 1;je = (10 - (fyrl % 10));line_cnt = 0;

printf ("%s\n\n" f title); white (Idone)

{if (i == j+1)

done = TRUE;break;>

printf ("%4d",fyr1) ; for (i=jb; i <= je; i

if (i

done = TRUE;break;>

printf ("%7.3f» t prtarr[i] );>

printf("\n"); if (i <= 10)

fyrl = fyr! + i - 1; else

fyr! = fyr! + 10; jb = je + 1; je = je + 10; line cnt = line cnt+1; if (Tine cnt > 23)

{line_cnt = 1;cntnue( ) ;gets (temp);

printf("\n%s\n\n" f title);

98

Page 99: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

cntnueO; gets(temp); >list_inf(title f x_lab, y_lab, fyr f lyr f y_maxf q1, q2, q3,

x1 f x2, y2, w1 f w2 f n3 f w4 f ms f cyr f cval, choice)

char *titl*[], *xjab[] f *y_lab[];int fyr f lyr f q1,~q2, q3, xT, x2 f y2 f w1, w2, n3, n4, cyr, choice;double yjnax, ms, cval;

char temp[5];

printf("\n\n\n Xs\n»,title);printf( N X Label: Xs\n" ( x lab);printf(" Y Label: Xs\n\n"7y lab);printf( H\n ~ DATA VALUESW);printf( M First Year : X4d",fyr);printf(M Last Year : X4d\n" f lyr);printf(" Years : X4d" f (lyr-fyr)+1);printf(" Maximun Y :X7.3f\n",y_max);if (choice == 0 || choice == 1)

printf(" if (choice

printf(" else

printf("\n"); printf("\n printfC1 printf( M printf( M printf( M printf( M printf( M printf( M printf( M cntnueO;

M.S.1)

Min X axis Max X axis

X units Min Y axis Max Y axis

Y units

: %6.3f",ms);

X4d =%7.3f Cm.\n" f cyr, cval);

PLOT VALUESNn");DEFAULT CURRENT\n");

AXIS/WIND AXIS DATA WINDOU\n");%4d X4d %4d\n",q1, x1, i%4d X4d %4d\n»,q2, x2, iX4d %4d\n" f (q2-q1)/7, (x2-x1)/7);

0 0 %4d\n", u3);%4d %4d %4d\n",q3, y2, iX4d X4d\n",q3/7f y2/7);

^***************** a**************************************************//* File name : PLTJJTL.C " */ /************* ***************** ******************************** *******^

^include <stdio.h>#define TRUE 1#define FALSE 0

cls() <.printf("\033[2J"); f flush (stdout) ;

cntnueO<.char temp[2];

printf(" (Press enter to continue.)");

index(s, t)char s[] f t[];<.int i f j, k;

99

Page 100: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued

for(i=0; s[i] != '\0'; i<for(j=i, k=0; t[k] !='\0' && s[j]==t[k]; j++,if <t[k] == '\0') return(i);>

return(-1);

y_tics(t2, q2, y2>

int *t2, *y2; double q2;

*t2 =*y2 = *t2 * 7;

x_tics(t1, x1, x2, years, fyr)

int *t1, *x1, *x2; int years, fyr;

int diff, fdec; double t1_temp;

t1_temp = (double) (years )/30.0; if (t1_temp < 1.0)

C*t1 = 5; >

else C*t1 = ((int)(t1 temp)+1)*5; >

diff = (*t1*7) - years;*x1 = (fyr-(diff/2));*x2 = *x1+(*t1*7);

subs tr(subst ring, string, start, length)char * substring;char *string;int start;int length;Cint i;start--;string += start;for (i=0; i < length && *string != '\n' && *string != '\0';

*substring++ = *string++; *substring = '\0';

y*«*«*«*****«***********************************************»********//* File name : PRINT_ALL.C */ /***«*«*****«***************»*******«******»**«*«*«»******«**********/

#include <stdio.h>

^define TRUE 1 ^define FALSE 0

prnt_crn(fyr, years, r, a, m, u, I, ia, in, title)

100

Page 101: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

int fyr,years;double *r, *a, *m, *u, *l, *ia, *in;char titled;

int i, line_cnt, rint; char tempCSj;

line cnt = 6;fprintf(stdprn, "\n\n Xs\n\n", title);fprintf(stdprn, " YEAR AREA MEAN UPPER LOWER INDEX NINDEX CORESXn11 ); for (i=1; i<=years; i++)

<if (line cnt > 56)

<fprintf(stdprn, "\f\n\n Xs\n\n", title);fprintf(stdprn, " YEAR AREA MEAN UPPER LOWER INDEX NINDEX CORES\n»); line cnt = 6; }

rint = r[i]; fprintf(stdprn, » %4d %7.3f %7.3f %7.3f %7.3f %7.3f %7.3f %7d\n",

fyr, a[i], m[i], u[i], l[i], ia[i], in[i], rint); line_cnt = line_cnt+1; fyr = fyr+1; }

fprintf(stdprn, "\f"); cntnueO; >

prnt_ind(fyr, years, a, m, u, I, in, title, core)

int fyr,years;double *a, *m, *u, *l, *in;char titled, core[];

int i, line_cnt; char temp[5];

line cnt = 6;fprintf(stdprn, "\n\n Xs ( %s )\n\n", title, core);fprintf(stdprn, " YEAR WIDTH AREA SPLINE INDEX NINDEX\n\n"); for (i=1; i<=years; i++)

<if (line cnt > 56)

<fprintf(stdprn, "\f\n\n Xs ( %s )\n\n", title, core); fprintf(stdprn, " YEAR WIDTH AREA SPLINE INDEX NINDEX\n"); line cnt = 6; >

fprintf(stdprn, " %4d %7.3f %7.3f %7.3f %7.3f %7.3f\n", fyr, aCi],m[i], u[i]

line_cnt = line_cnt+1; fyr = fyr+1; >

fprintf(stdprn, "\f"); cntnueO; }

prnt_tek(prtarr, j, fyrl, title) int T, fyrl; double prtarrH; char titleQ;

<int I, i, jb, je, line cnt; int done = FALSE;

101

Page 102: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source -code listing for program PLOT, continued.

char temp [53;jb = 1;je = (10 - (fyrl X 10));line cnt = 6;fprintf(stdprn, "\n\n Xs\n\n", title);while (idone)

if (f =Cdone = TRUE;break;>

fprintf(stdprn, M %4d",fyr1); for (i=jb; i <= je; 1++)

{if (i == j+i)

<done = TRUE;break;>

fprintf(stdprn, "%7.3f",prtarr[i]);>

fprintf(stdprn, "\n"); if (i <= 10)

fyrl = fyrl + i - 1; else

fyrl = fyrl + 10; jb = je + 1; je = je + 10; line cnt = line cnt+1; if (Tine cnt > 56)

iline cnt = 6;fprintf(stdprn, "\f\n\n Xs\n\n", title);

fprintf(stdprn, cntnueO;

prnt_inf (title, x_lab, y_lab, fyr, lyr, y_max, q1, q2, q3, xl, x2, y2, w1, w2, w3, w4, ms, cyr, cval, choice)

char *title[], *x_lab[], *y_lab[];int fyr, lyr, ql, q2, q3, x1, x2, y2, wl, u2, w3, w4, cyr, choice;double yjnax, ms, cval;

char temp[5];

fprintf(stdprn, "\n\n\n Xs\n", title);fprintf(stdprn, "X Label: Xs\n",x lab);fprintf(stdprn, "Y Label: Xs\n\n"7y lab);fprintf(stdprn, "\n ~ DATA VALUES\n");fprintf(stdprn, "First Year : %4d",fyr);fprintf(stdprn, " Last Year : %4d\n",lyr);fprintf(stdprn, "Years : %4d",(lyr-fyr)+1);fprintf(stdprn, " Maximum Y :%7.3f\n",y_max);if (choice == 0 || choice ==1)fprintf(stdprn, "M.S. :%7.3f",ms);

if (choice ==1)fprintf(stdprn, " %4d =%7.3f Cm.\n",cyr, cval);

elsefprintf(stdprn, "\n");

fprintf(stdprn, "\n PLOT VALUES\n"); fprintf(stdprn, " DEFAULT CURRENT\n"); fprintf(stdprn, " AXIS/WIND AXIS DATA WINDOWW');

102

Page 103: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

fprintf(stdprn, "Min X axisfprintf(stdprn, "Max X axisfprintf(stdprn, " X unitsfprintf(stdprn, "Min Y axisfprintf(stdprn, "Max Y axisfprintf(stdprn, " Y unitsfprintf(stdprn, "Nf"); cntnueO;

%4d %4d %4d\n",q1, x1, w1);%4d %4d %4d\n",q2, x2, w2>;%4d %4d\n",<q2-q1)/7, <x2-x1)/7);

0 0 %4d\n", w3);%4d %4d %4d\n",q3, y2 f w4);%4d %4d\n»,q3/7, y2/7);

^«****««*«*«*«*«««*«*«*«***«*«*«*«*«««**««********««*****************//* File name : P_PLOT.C */ /«****««*************** »*********************************************/

^include <conio.h> ^include <string.h> ^include <stdio.h> ^include <dos.h> ^include <bios.h>

^define XON 0x11 ^define XOFF 0x13 fldefine TRUE 1 fldefine FALSE 0

pjalot(title, x_lab, y_lab, x1, x2, y1, y2, t1, t2, t3, idx, w1, w2, w3, w4, choice, port, indtyp)

char title[] f x_lab[], y_lab[];int x1, x2, y1, y2, t1, it2, t3, idx, choice;int w1, w2, w3, w4, indtyp;int *port;<unsigned incr;char plot_string[500], y_lab1[17];int i, j f~p1, p2, p3, p4jdouble x3, x4, y3, y4;

strcpy(y Iab1, "NORMALIZED INDEX"); bios serialconK COM INIT, 0, ( COM CHR8 | COM STOP1 | COM EVENPARITY |

~COM~9600»;plot_str("\xlB.I81;;T7:\x1B.N;19: 11 , port); if (choice ==1)

{sprintf(plot_string, "IN;PS4;IP1200,1200,9500.6750;SC%df %d,%df %d" f

x1, x2, y1, y2);plot str(plot_string, port);p1 =~<1200+((8300/<x2-x1))*(w1-x1))) f-p2 = (9500-((8300/<x2-x1))*(x2-w2)));p3 = (1200+«5550/(y2-y1))*(w3-y1)));p4 = <6750-«5550/<y2-y1))*<y2-w4))>;>

else<:sprintf(plot_string, "IN;PSO;IP2560,1260,14300,6750;SC%d,%ct%df %d",

x1, x2, y1, y2); plot str(plot string, port); p1 =~(2560+«Tl740/(x2-x1))*(w1-x1))); p2 = <14300-«11740/<x2-x1))*(x2-w2))); p3 = <1260+((7890/(y2-y1))*(w3-y1))); p4 = <6750-«7890/(y2-y1))*(y2-w4))); >

sprintf(plot_string, "PU;SP1;PA %d,%d;SI .3,.5;CP%d,1.0;LB%s\3» f (x2+x1)/2, y2, -<strlen(title)/2), title);

plot_str(plot_string, port); if (Tndtyp ==~0)

sprintf(plot string, "PU;PA%d,%d;SI.3 f .5;DIO,1;CP%d,2.0;LB%s\3", x1, <y2-y1)/2, -<strlen(y_lab)/2)+1, y_lab);

103

Page 104: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

else

sprintfCplot string, "PU;PA%d,0;SI.3,.5;DlO,1;CP%d,2.0;LB%s\3»,x1, -<strlen(y_lab1)/2)+1, y_lab1);

plot str(plot string, port); sprintfCplot string, »PU;DI1,0;PA%d,%d;SI.3,.5;CP%d,-1.5;LB%s\3",

Cx2+x1)/2, y1, -<strlen(xJab)/2), x_lab); plot str(plot string, port); sprintfCplot string, »PU;SP2;PA%d,%d;PD;PA%d,%d,%d,%d,%d,%d,%d,%d",

x1, y1, x1, y2, x2, y2, x2, y1, x1, y1); plot str(plot string, port); sprintf(plot_string, "PU;SI.2,.3;TL1.5,0"); plot_str(plot_string, port);

/* LOWER X TICS AND AXIS LABEL */x3 = x1;x4 = (doii>le)(t1)/5;for (i=x1; i<=x2; i+=t1)

{sprintf(plot_string, "PU;TLO,1.5;PA%d,%d;CP-2.0,-1.0;LBX4d\3",i, y1, i);plot str(plot string, port);if (T<x2 && i>x1)

<:sprintf(plot_string, »PU;TL1.5,0;PA%d,%d;XT», i, y1); plot str(plot string, port); >

for»(j=1; j<=5; j

if (x3<=i+t1 && x3>i && x3<x2)Csprintf(plot_string, »PU;TL.75,0;PA%6.2f,%d;XT",x3,plot str(plot string, port);>

x3 = x3+x4;

/* RIGHT Y TICS */V3 = yl;if (idx && indtyp == 0)y4 = 0.1;

elsey4 = (doible)(t2)/(double)(t3);

for (i=y1; i<=y2; i+=t2)

if ((i>y1 && i<y2) && !idx)<:sprintf(plot_string, "PU;TLO,1.25;PA%d,%d;YT",x2, i); plot str(plot string, port);

for (j=1; j<=t3; j<:if ((y3>i && y3<i+t2) && y3<y2)

<:sprintf(plot_string, "PU;TLO,.5;PA%d,%6.2f;YT;",x2, y3); plot str(plot string, port); >

y3 = y3+y4;

/* LEFT TICS AND LABELS */

y3 = yl;for (i=y1; i<=y2; i+=t2)

if (i > 9)sprintf(plot_string, »PU;TL1.5,0;PA%d,%d;CP-3.0,-.2;LB%2d\3",

x1, i, i);

104

Page 105: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source -code listing for program PLOT, continued.

elsesprintf(plot_string, "PU;TL1.5,0;PA%d,%d;CP-2.0,-.2;LB%1d\3",

x1, i, i);plot_str(plot_string, port); if ((i>y1 && i<y2) && !idx)

<.sprintf(plot_string, "PU;TU.25,0;PA%d,%d;YT",x1, i);plot_str(plot_string, port);

for (j=1; j<=t3; <. if ((y3>i && y3<i+t2) && y3<y2)

< sprintf(plot_string, "PU;TL.5,0;PA%d,%6.2f;YT",x1, y3);

plot str(pTot_string, port);>

y3 = y3+y4;

/* UPPER X TICS */

x3 = xl;for (i=x1; i<=x2; i+=t1)

<if (i<x2 && i>x1)

<sprintf(plot_string, "PU;TLO,1.5;PA%d,%d;XT",i,y2); plot str(plot_string, port);

for (j=0; j<=4; <if (x3<i+t1 && x3>i && x3<x2)

<sprintf(plot_string, »PU;TLO,.75;PA%6.2f,%d;XT",x3; y2); plot str(plot_string, port); >

x3 = x3+x4; >

>if (idx)

<sprintf(plot_string, "PU;LT3,4;SP3;PA%d,1.0;PD;PA%d,1.0;PU;LT;SPO",x1, x2); plot_str(plot string, port); >

if (indtyp == 1) <sprintf(plot_string, »PU;LT3,4;SP3;PA%d,-1.0;PD;PA%d,-1.0;PU;LT;SPO»,x1, x2); plot str(plot string, port); >

sprintf(plot_string, »IW%d,%d,%d,%d;PU;SPO;PA%d,%d'',p1, p3, p2, p4, x2, y2); plot str(plot string, port); >plot_str(plot_string, port) int *port; char *plot string; <unsigned far *com_base; char outchar; int out_element;

if (*port == 0)com_base = (unsigned far *) 0x000004 OOL;

elsecom_base = (unsigned far *) 0x000004021;

for (out element = 0; out element < strlen(plot string); -n-out element)

5if ((unsigned char) inp(*com base + 5) & 0x01)

if ((unsigned char)inp(*com~base) == XOFF)

105

Page 106: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source -code listing for program PLOT, continued.

while ((unsigned char)inp<*com_base) != XON); while (((unsigned char)inp(*com_base + 5) & 0x20) == NULL); outp(*com base, plot string [exit element]); >

strcpy(plot string, "");

plt_lne(arr, inc, years, x2, y2, scale, port)

double arr[], scale; int inc, years, x2, y2; int *port;

int pc, i. Done; char temp [5]; char plot_string[500l; char c;

Done = FALSE; while (IDone)

<.printf("\n\nSelect pen color:\n");printf( ll (U)ide black (N)arrow black (R)ed (G)reen (B)lue (H)agenta "); c = getch(); switch(c)

Ccase 'W : case 'w' :

pc = 1;Done = TRUE;break;

case 'N' : case 'n' :

pc = 2;Done = TRUE;break;

case 'R' : case T' :

pc = 3;Done = TRUE;break;

case 'G' : case 'g' :

pc = 4;Done = TRUE;break;

case 'B' : case 'b' :

pc = 5;Done ='TRUE;break;

case 'M' : case 'm' :

pc = 6;Done = TRUE;break;

default :printf ("\alnval id pen choice. Try again. \n");break;

sprintf(plot_string, "SP%d;PA%d,%7.3f;PD",pc, inc, (arr[1]*scale)); plot_str(plot_string, port);

for (i=2; i<=years; <.sprintf(plot_string, "PA%d,%7.3f",inc, (arr[i]*scale)); plot_str(plot_string, port);

106

Page 107: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

sprintf(plot_string, "PU;SPO;PA%d,%d",x2,y2); plot str(plot string, port);

plot_stp<x2, y2, port)

int x2, y2; int *port;

char plot_string[50);

sprintf(plot_string, »PA%d,%d;IN;",x2, y2); plot str(plot string, port);

/* Filename : READ FLS.C */ /*****»*****»*****»******»*****«*****«******************************«/

include <stdio.h> ^include <io.h> ^include <graph.h>

#define TRUE 1#define FALSE 0

read_crn(id, r, a, m, u, I, ia, in, years, first_yr, last_yr, q2, title, all_ok, ms)

FILE *id;double *r, *a, *m, *u, *l, *ia, *in;int *years, *first_yr, *last_yr;double *q2, *ms;char title [];int *all ok;<.char temp_str[10], line[81], iname[41];char *fgets();int i, strcmpO;char *cf;double atof(), ddumy;

#q2 = 0.0; _clearscreen; cf = fgetsdine, 80, id); for <i=0; i<=80; i++)

Cif <line[i] != '\n')

title[i] = line[i]; else

{title[i] = '\0'; break;

temp str[0] = '\0';while (((i=strcmp(temp str, "NUMB")) != 0) && Ifeof(id))

Ccf = fgetsdine, 80, id);subs tr( temp str, line, 1, 4);>

if (!feof(id))<:substr(temp_str, line, 24, 7);

107

Page 108: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued

*ms = atof(temp_str); temp_str[0] » '\0';fill~sarray(id, r, &cJduny, first_yr, last_yr, years); cf =~fgets(line, 80, id);fill sarrayCid, a, q2, first_yr, last_yr, years); cf =~fgets(line, 80, id);fill_sarray(id, m, q2, first_yr, last_yr, years); cf =~fgets(line, 80, id);fill_sarray(id, u, q2, first_yr, last_yr, years); cf =~fgets(line, 80, id);fill sarray(id, I, q2, first_yr, last_yr, years); cf =~fgets(line, 80, id);fill sarray(id, ia, q2, first_yr, last_yr, years); cf =~fgets(line, 80, id);fill sarrayO'd, in, q2, first yr, last yr, years); printf(»\a»); return; >

else*all_ok = FALSE;

return;

read_ind(id, a, m, u, I, in, years, first_yr, last_yr, q2, title, ms, cyr, cval, found, idrw)

FILE *id;double *a, *m, *u, *l, *in; int *years, *first_yr, *last_yr; double *q2, *ms, *cval; char title[], idrw[];

* *,

int *cyr, *found;

char temp_str[10], line[81], i name [41];char *fgets();int i, slen, strcmp<);char *cf, c;double atofO;*q2 = 0.0;*found = FALSE;_clearscreen;_outtext("\nEnter core id number: ");gets(idrw);slen = strlen(idrw);if (slen < 2)

{*found = FALSE;return;>

cf = fgetsUine, 80, id); for (i=0; i<=80;

if (line[i] != '\n')title[i] = line[i]

else{title[i] = '\0';break;

temp_str[0] = '\0';while (((i=strcmp<temp str, idrw)) != 0) && (Ifeof(id)))

<.cf = fgetsUine, 80, id);substr(temp str, line, 14, slen);>

if (ifeof(id))

108

Page 109: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued

*found = TRUE; substr(temp_str, line, 27, 7);*ms = atof(temp str); substr(temp_str7 line, 36, 4);*cyr = atoi(temp_str); substr(temp_str,~line, 42, 6);*cval * ato?(temp_str);fill sarrayd'd, a7 q2, first yr, last_yr, years);cf *~fgetsdine, 80, id);fill sarraydd, m, q2, first_yr, last_yr, years);cf *~fgets(line, 80, id);fill sarray(id, u, q2, first yr, last yr, years);cf =~fgets(line, 80, id);fill sarrayd'd, I, q2, first_yr, last_yr, years);cf =~fgets(line, 80, id);fill sarrayd'd, in, q2, first yr, last yr, years);printf("\a");return;

read_tek(id, a, years, first_yr, last_yr, q2, title)

FILE *id;double *a;int *years, *first yr, Mast yr;double *q2;char title 0;

char temp_str[10], line[81];char temp~linet80], c;char *fgeTs();int i;char *cf;extern int index();*q2 = 0.0;_clearscreen;cf = fgetsdine, 80, id);substr(temp_str, line, 1, 4);*years = atoi(temp_str); substr(temp_str, line, 56, 4);*first yr = atoiCtemp^str); cf = fgetsdine, 80, Td); substr(temp_str, line, 2, 4);*last_yr = atoi(temp_str);cf = fgetsdine, 80,~id);fill tarrayd'd, a, q2, first yr);cf =~fgets(line, 80, id);cf = fgetsdine, 80, id);substr(temp line, line, 19, 80);i = index(temp_line, " ");substr(title, temp line, 1, i);printf(»\a'«);return;

read_oth(id, a, years, first_yr, last_yr, q2, title, all_ok)

FILE *id;double *a;int *years, *first yr, *last yr;double *q2;char title[];int *all_ok;

char temp_str[10], line[81]; char *fgets();

109

Page 110: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

int i, strcmpO; char *cf; ckxjble atof();

*q2 = 0.0; clearscreen;

cf = fgets(title, 80, id); i = strlen(title); titled'] = '\0'; cf = fgetsdine, 80, id); if (Ifeof(id))

{fill sarrayd'd, a, q2, first yr, last_yr, years);printf("\a");return;>

else*all_ok = FALSE;

returnj

/it*******************************************************************/ /* Filename : S_PLOT.C */

^include <stdio.h> ^include <graph.h>

^define TRUE 1 fttefine FALSE 0

g_line(j, xadd, yadd, xscale, yscale, years, arr, vmode, mult)

int j, years, vmode, mult;float xadd, yadd, xscale, yscale;double arr[];{int i;char c;

if (vmode > TEXTMONO) {

outtext ("\nSelect color (B)lue (G)reen (C)yan (R)ed (H)agenta w(H)ite\n"); lout text (" (P)ink (Y)ellow bro(W)n gr(A)y It.tXDue It.gree(N) 11 ); c = getchO;

>if (vmode > TEXTMONO) switch (c)

<.case 'B' : case 'b' :

_setcolor(1); break;

case 'G' : case 'g' :

_setcolor(2); break;

case 'C' : case 'c' :

_setcolor(3); break;

case 'R' : case 'r' :

_setcolor(4); break;

case 'M' :

110

Page 111: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

case 'm' :_setcolor(5);break;

case 'W : case 'W :

_setcolor(6);break;

case 'H' : case 'h' :

_setcolor(7);break;

case 'A' : case 'a' :

_setcolor(8);break;

case 'l> : case 'I' :

_setcolor(9);break;

case 'N' : case 'n' :

_setcolor(10);break;

case 'P' : case 'p' :

setcolor(12);break;

case 'Y' : case 'y' :

_setcolor(14);break;

default :break;

>jnoveto ((int)((xadd)*xscale), (int)«yadd-(arr[j]*mult))*yscale)); for (i=j+1; i<=years; i++) _lineto((int)((xadcH-i-1)*xscale),

(int)((yadd-(arr[i]*mult))*yscale»; _setcolor(8); > g_xyadd (xadd, yadd, first_yr, x1, y2, j)

float *xadd, *yadd;int first_yr, x1, y2, *j;

*xadd = first_yr-x1; if (first yr > x1)*j=1;

else*j= x1 -first yr;

*yadd = y2; outtext

g_labs(title, x_lab, y_lab, x1, y2, t1, t2, inc, choice)

char title[], x_lab[], y_lab[]; int x1, y2, t1, t2, inc, choice;

int i, j, k; char indx[11];

strcpy(indx, "NORMALIZED");_clearscreen(0);~settextposition(2, 46-(strlen(title)/2));printfC'Xs", title);_settextposition(21, 44-(strlen(x_lab)/2));

111

Page 112: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source -code listing for program PLOT, continued.

printf("%s",x_lab>; k = strlen(y Tab); if (k > 18) ~

k = 18; j = 0; for (i=11-(k/2); i<=<11-(k/2»+k;

<. settextposition(i,3);

printf("%c",y_lab[j]>;

j = y2;if(choice == 0)

<.for (i=4; i<=18; i+=inc)

<.settextpositiond", 5);

printf("SSd",j>; J = J-t2;

else {for (i=6; i<=16; i

Csettextpositiond' ,2);

pr i ntf ( "%c" , i ndx [ i -6] > ; >

set text posit ion(4, 5 ); printf(" 3">; set text posit ion(6, 5);

printf(" 2">; settextposition(9,5);

printf(» 1»); settextposition(11,5);

printf(" 0"); _settextposition(13,5>; printfC1 -1"); _settextposition(16,5); printfC1 -2"); settext posit ion( 18,5);

printfC' -3");

j = x1;for (i=7; i<=80; i+=10>

C settextposition(19, i);

printf(»%4d",j>;J = J+t1;

g_tics(xs,ys, j, k, I, m, w1,w2,w3,w4, xscale,yscale, x1, x2, y1, y2, t1, t2>

float xs, ys, j, I, xscale, yscale;int k, m;int wl, w2, w3, w4;int x1, x2, y1, y2, t1, t2;

int i, p;

_rectangle(2, (int)(32*xs>, (int)(28*ys>,(int)(312*xs>, (int)(140*ys»;

for (i=(int)(40*xs>; i<(int)(312*xs); i+=(int)(8*xs» <moveto(i, (int)(28*ys»;

~lineto(i, (int)(30*ys»;

112

Page 113: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

movetoU, <int)(139.5*ys)); ~lineto<i, (int)(138*ys»; >

for (i=(int)(72*xs); i<(int)(312*xs); i+=(int)(40*xs» Cmovetod", (int)(28*ys»;

"linetod", (int)(32*ys»; "movetod", <fnt)(139.5*ys»; ""linetod", (int)(136*ys»; >

for (i * 1; i<=k; i++) Cp = d"nt)((2»«-(d'-1)*j))*ys); moveto(d"nt)(32*xs), p);

Jineto(d"nt)<34*xs), p); ""moveto((int)(312*xs>, p);

lineto((int)(310*xs), p); >

for (i=1; i<=m; 1++) Cp= <int>«2&«-«i-1>*l»*ys>; moveto((int)(32*xs), p);

~lineto((int)(36*xs), p); ~moveto«int)(312*xs), p); ""lineto((int)(308*xs), p); >

_settextwindow(22, 1, 23, 80);"setviewport((int)(32*xs>, (int)(28*ys), (int)(312*xs), (int)(140*ys»; ~setcliprgn((int)(32*xs)+(int)<(w1-x1)*xscale),

(int)(28*vs)+(int)((y2-w4)*yscale), <int)(312*xs)-(int)«x2-u2)*xscale), (int)(140*ys)-(int)((w3-y1)*yscale»;

/*****»»»»****************»»»»**»»»*»»»»»»»»»»****************»»**»»»/ /* File name : WRITER. C *//***»******* ************ **<Mt***************«************»*»***»******y

#i nclude <stdio.h> ^define TRUE 1 ^define FALSE 0

writef(fp, prtarr, j, fyrl, Idecl) int j, fyrl, Idecl; FILE *fp; double prtarr [];

.int I, i, jb, je; int done = FALSE; prtarr [j] = 99.99; jb= 1;je = (10 - (fyM X 10)); while (Idone)

Cif (i == j)

<done = TRUE; break; >

fprintf(fp, "X4d",fyr1); for (i=jb; i <= je; i

Cif (i == j)

Cdone = TRUE; break;

113

Page 114: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program PLOT, continued.

fprintf(fp, M%7.3f",prtarr[i]>;>

fprintf(fp, H\n">; if (i <= 10)

fyM = fyr! + i - 1; else

fyr! = fyM + 10; jb = je + 1; je = je + 10;y

114

Page 115: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program MAKERAD.

***********************************************^/*

/* Program name/* Purpose/*/* Input/* Output/*/* Programmer/* Created for

MAKERAD.CThis subroutine creates a radius file from a */standard ring width file. */Standard ring width file in HM./100 */Standard radius file used with COFECHA and */other URD TRL programs. */Michael L. Field */Tree-Ring Laboratory */

/* Hail Stop *461 *//* U.S. Geological Survey *//* Reston, Virginia 22092 *//* Files used: COMMON. C *//* Date Created : 6/1/87 *//* Modifications *//* Purpose : *//* Date : *//* Programmer : */ /********************************************************************/

^include <stdio.h> ^define TRUE 1 fttefine FALSE 0

mainO

FILE *idf *od;FILE *setupinf() f *setupout<);char i name [41], oname[41], idnumber[9] , line[101];char c = ' ';char tempstr[9], *cf;char version [22];char *fgets<);int atoiO;

int i, j, value, years, elw; int ci, first year, last year, crit year; int done = FALSE, first = TRUE; unsigned int total;

crit_year = 0; years = 0;elw = 0;

pr i ntf < "\n\n\n\n\n\n") ;printf(" CREATE RADIUS FILE FROM RING-WIDTH FILE\n">; printf(" TREE -RING LABORATORY\n"); printf( H U.S. GEOLOGICAL SURVEY\n">; printf(" WATER RESOURCES DIVISIONW); printf(" RESTON, VIRGINIA\n\n\n\n"); printf(" (Press enter to continue)"); gets(tempstr);

printf<"\n\nRing width file name: ");gets( iname );if «id=setupinf< iname, "r")) == (FILE *)NULL) /* set up input file */

Cpri ntf ("Program is terminating.\n\a");exitO;>

printf("Does the file contain early and late ringwidths (Y/N, default=N)? "); gets(tempstr); if (tempstr[0] == 'Y' || tempstr[0] == 'y')

elw = 1;pri ntf ("Radius file name: "); gets( oname );

115

Page 116: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source -code listing for program MAKERAD, continued.

if ((od=setupout(oname, "w"» == (FILE *)NULL) /* set up output file */ <.printf( "Prog ram is ternrinating.\n\8"); exitO; >

fgets(line, 100, id); /* read and discard title */ lineCstrlen(line)-1] = '\0'; fprintf(od, »%s\n",line); while (idone)

<.cf = fgetsdine, 100, id); lineCSO] = '\0'; if(feof(id))

<. fprintf(od,»%s X6u %4d %4d %4d %4d\n",

idnumber, total, years, first_year, last year, crit_year); done » TRUE; break; >

substr(tempstr , I ine, 1 ,8); if (strcmp(tempstr, idnumber) != 0)

<.if ( "first )

{ fprintf(od,"%s X6u %4d %4d %4d %4d\n",

idninber, total, years, first_year, last_year, crit_year); >

substr( idnumber, line, 1,8); substr(tempstr, I ine, 9, 4); first_year = atoi(tempstr); last_year = first_year-1; total = 0; crit_year = 0; years = 0; first = FALSE; >

substr(tempstr, line, 12, 1); if (!elw)

j = 10 - (atoi(tempstr)%10); else

j = (5 - (atoi(tempstr)%5))*2; for (i=1; i

substr(tempstr, line, (7+(i*6)), 6); if(strcmp(tempstr, » 99900") == 0)break;

total = total + atoi(tempstr); if (elw)

substr(tempstr, line, (7+(i*6)), 6); total = total + atoi(tempstr); >

last_year = last_year+1; years = years +1; if(crit_year == 0 && total >= 10000)crit_year = last_year;

>> /* end while */

fclose (od); fclose (id); > /* end */

cls(){printf("\033[2J");fflush(stdout);

116

Page 117: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program TRING.

/»******************************»»******»*****»»******************»»»//*/*/*/*/*/*/*/*/*/*/*/*/*/*/*

Program namePurposeInputOutput

ProgrammerCreated for

Files usedDate Created

ModificationsPurposeDateProgrammer

TRING.CCreates a standard ring-width file.From keyboard or measurement machine.Standard ring-width file.Michael L. FieldTree-Ring LaboratoryMail Stop #461U.S. Geological SurveyReston, Virginia 22092COMMON.C

/*******

/* COMMAND DEFINITIONSfldefine fldefine fldefine fldefine fldefine

BOMEOMBVFVTRUE

-100-200-300-400

1

/* Beginning of Measurement Commend *//* End of measurement command *//* Command to back up one measurement *//* Command to go forward one measurements */

fldefine FALSE 0

^include "stdio.h" ^include <bios.h> ^include <dos.h> ^include <conio.h>

mainO{int finished, value, nvalues, max values, byr, lyear;int yrcnt, len_cnum, first, i, elw, fdone = FALSE;int getvalueO, fseekO, valueZ, dec, mach;int vdone = FALSE, apndr, apnde;long f dec, f dec I;

char oname[41], rname[41], answer [2], cnum[9], temp_str[5], temp_str2[5] ; char title[81]. Line [81], temp_name[41], e I name [41]; char *fgets();

FILE *od, *td, *rd, *eld; FILE *setupout();

/* Set line 0 for 9600, E, 1SB, 7BITS */

printf( "\n\n\n\nWi I I this be (M)achine input or (K)eyboard? »);gets(temp str);if <temp_str[0] == 'M' || tenp_str[0] == 'm')

mach = 1; else

mach = 0;

if (mach)bios serialcomC COMJNIT, 0, <_COM_CHR7 | _COM_STOP1 | _COM_EVENPARITY

J COM_9600»; while (! fdone)

{nvalues = 0; byr = 0; vdone = FALSE;printf("Will this file contain separate early and late wood\n"); printf(» measurements (Y/N)? "); gets(answer);if (answerEO] == 'Y' || answerEO] == 'y') < elw = TRUE;

117

Page 118: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program TRING, continued.

dec = 5;fdec = 7;fdecl = 9;lyear = FALSE;>

else<elw = FALSE;dec = 10;fdec = 11;>

apndr = FALSE; apnde = FALSE;printf ("Enter name of file to hold measurements(no .ext):"); gets( temp_name ) ; strcpy(oname, tempjiame); street (oname, ".rw"); strcpy(elname, temp_name); street (elname, ".elw");

/* Setup f i le to receive values and return a f i le descriptor ( od ) */ if ( ( od = setupout(oname, "w") ) == (FILE *)NULL )

<printf ("Do you want to append to this file? (Y/N) ");gets (answer);if (answer [0] == 'N' || answer [0] == 'n'>

<:apndr = FALSE; break; >

else {od = fopen(oname, "a"); apndr = TRUE;

if(elw) {if ( ( eld = setupout(elname, "w") ) == (FILE *)NULL )

<printf ("Do you want to append to this file? (Y/N) "); gets(answer); if (answer [0] == 'N' || answer [0] == 'n'>

<apnde = FALSE;break;>

else<eld = fopen( elname, "a");apnde = TRUE;

printf("Enter file description information (up to 80 characters)\n:"); gets( title ); if(!apndr)

fprintf(od, "%s\n",title); fclose(od); if (elw)

if ("apnde)fprintf(eld, "%s\n",title);

fclose(eld);

finished = FALSE; while ( {finished )

printfC'Enter control number: ");

118

Page 119: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program TRING, continued.

gets( cnun ); len_cnum = strlen(cnum); if(~len cnun < 8 )

< for( i=len cnum; i<8;

cnumCiJ = ' '; cnun[8] = '\0'; >

printfC'Enter starting year: "); gets(temp_str); byr - atoi(temp_str); yrcnt = byr;td = fopenC'tempfile.tmpVV1 );printf(M\nSend a -100 from the device's keypad to start recording.\n">; if (mach)

while ((value = getvalueO ) != BOM ); else

while ((value = gvalO) != BOH);printf ("Starting to record measurements -- send a -200 from the keypad to end recording session.\n">; nvalues = 0; maxvalues = 0; printf("Year-> X4d",yrcnt); if (elw)printf("\n Early value-> ");

elseprintf(" Value-> ");

while (Ivdone) < if (mach)value = getvalueO;

elsevalue = gvalO;

if (value == EOH) <vdone = TRUE; break; >

switch( value ) <case BOH: /* Another BOH command -- reposition to beginning*/

printf("\nBacking up to first year.\n"); nvalues = 0; maxvalues = 0; fseek( td, OL, 0); yrcnt = byr; if (elw) <printf("Year-> %4d\n Early value-> ",yrcnt); lyear = FALSE; >

elseprintf("Year-> %4d Value-> ",yrcnt);

break;case BV: /* Back up to previous value */

if( --nvalues < 0 ) <nvalues = 0; maxvalues = 0; fseek( td, OL, 0); yrcnt = byr; if (elw)

<.printf("Year-> %4d\n Early value-> " f yrcnt); lyear = FALSE; >

else printf("Year-> %4d Value-> ",yrcnt);

119

Page 120: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program TRING, continued,

else

if(elw)

ifUyear)

Iyear = FALSE;fseek< td, -fdecl, 1 );

else

Iyear = TRUE;yrcnt--;nvalues--;maxvalues--;fseek< td, -fdec, 1 );

else {nvalues--; yrcnt--; maxvalues--; fseek< td, -fdec, 1 );

printf<"Backing up to year %d.\n",yrcnt); if(elw)

<ifUyear)

<printf("Year-> %4d\n Late value-> ",yrcnt); >

elseprintf(»Year-> %4d\n Early value-> »,yrcnt);

>else

printf("Year-> %4d Value-> ",yrcnt);

break;default: /* This is a value, store it */

if (elw) <if (llyear)

<fprintf(td, "%4d %4d",yrcnt,value);

if (mach)printf("%4d Late value-> ",value);

elseprintf<" Late value-> ");

Iyear = TRUE; >else {

fprintf(td, " %4d\n",value); yrcnt++;

if (mach)printf("%4d\nYear-> %4d\n Early value-> ",value,yrcnt);

elseprintf("Year-> %4d\n Early value-> ",yrcnt);

nvalues++; lyear = FALSE;

120

Page 121: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program TRING, continued.

else<.fprintf( td,"%4d X4d\n" , yrcnt, value > ;nvalues++;yrcnt++;if (mach)

printf("X5d\nYear-> X4d Value-> ",value,yrcnt>;else

printf("Year-> X4d Value-> ", yrcnt);>

if( n values > max values )max values = n values;

uhile( nvalues++ < max values ) fprintf< td, "9999 999\n">;

valueZ = 0;printfO'End of recording session\n">; fprintf( td, "9999 999\n"); fclose( td ); first = 1;td = fopen("terapfile.tmp","r">; od = fopen(oname, "a"); if (elw)

eld = fopen(elname, "a"); while( value != 999)

<.f get s( line, 80, td); substr(temp_str, line, 6, 4); value = atoi(temp str); if (value == 999>~

break;substr(temp_str, line, 1,4); yrcnt = atoi(temp str); if (elw)

<.substr(temp_str, line, 11, 4);

valueZ = atoi(temp_str); if (value2 == 999)break;

if ((yrcnt X 5) == 0 || first == 1) <. if (Ifirst)

fprintf(eld, "\n"); fprintf(eld, "%s%4d",cnum, yrcnt); >

fprintf(eld, "%6d%6d", value, value2); >

if ((yrcnt X 10) == 0 || first == 1) < if( jfirst)

f print f(od,"\n") ; f pr i nt f( od, "%sX4d" , cnum, yrcnt ); first = 0; >

fprintf(od,"%6d",value+value2>; >

if (elw) <. if (yrcnt X 5 < 4)

fprintf(eld, " 99900\n">; else

fprintf(eld, "\n">; >

if (yrcnt X 10 < 9)fprintf(od," 99900\n">;

else f print f(od,"\n"> ;

121

Page 122: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for program TRING, continued.

fclose(td); fclose(od); if(elw)fclose(eld);

printfC'Do you want to record more measurements? (Y/N): "); gets(answer); if ( answer [0] == 'N' || answer [0] == 'n' )

finished = TRUE; else

<.vdone = FALSE;finished = FALSE;

printfC'Do you want to make another file <Y/N>? ");gets(answer);if ( answer [0] == 'N' || answertO] == 'n' )

fdone = TRUE; >

unlink ("tempf ile.tmp");

gvalO{char temp [5];int value;

gets (temp);value = atoi(temp);return value;

getvalueO<.unsigned far *com base;char buffer[4];int i, value, sign;

com base = (unsigned far *) 0x000004001;i =~0;while ( i < 4)

{if ((unsigned char) inp(*com_base+5) & 0x01) buffer[i++] = (unsigned char) inp(*com base);

>sign = 1; if (buffer[0] == ' ')

<.sign = -1;value = 0;>

elsevalue = buffer[0] - '0';

for (i=1; i<4; i++)value = (10*value) + (buffer[i] - '0');

value = sign * value; return (value);

cls()<:printf("\033[2J"); fflush(stdout);

122

Page 123: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for files common to all programs.

/*********************************************************************//* substr.c -- substr *//* *//* 'substr' extracts a substring from a string given a starting *//* position and length. */ /it********************************************************************/substr(substring, string, start, length)char ^substring;char *string;int start^int length;{int i;start--;string += start;for (i=0; i < length && *string != '\n' && *string != '\0'

*substring-H- = *string++; *substring = '\0';

^include "stdio.h"

^define TRUE 1 ^define FALSE 0

/********************************************************************//* setupinf.c setupinf(6file name) *//* sets up a file for reading *//* returns file number -- NULL if problems */f********************************************************************/

FILE *setupinf ( fname, mode )char *fname;char *mode;CFILE *fd;

char answer[5];char *gets();if ((fd = fopen (fname, mode)) != (FILE *)NULL )return (fd);

else{fclose ( fd );printf("Unable to open file <%s> -- file probably does not exist, try again. 11 );return((FILE *)NULL);

/******************************************+*************************!

I* setupout.c setupout(file name) */ /* sets up a file for writing *//* returns file number -- NULL if problems */ /********************************************************************r

FILE *setupout ( fname, mode ) char *fname; char *mode;

FILE *fd;

char answer [5];char *gets();if ((fd = fopen (fname, "r" )) == (FILE *)NULL )

fclose( fd );

123

Page 124: COMPUTER PROGRAMS, TO CALCULATE BASAL AREA INCREMENT FROM ... · to, and output from, program AREA. INTRODUCTION AREA is a computer program to describe growth quantity from tree rings

Source-code listing for files common to all programs, continued.

fd = fopen ( fname, mode ); >

else <fclose ( fd );printfC'File <Xs> already exists.\n", fname ); printf("Do you want to overwrite it? (Y/N, default=Y) "); gets (answer );if ( answertO] != 'N' && answertO] != 'n' )

<if (( fd = fopen(fname, mode)) == (FILE *)NULL )

<printf("Unable to open file <Xs>.\n",fname); return((FILE *)NULL); >

> else

return((FILE *)NULL); >

return(fd);

124