United States

Department of

Agriculture

Forest Service

Southern Forest

Experiment Station

New Orleans,

Louisiana

Research Paper

SO-241

Comprehensive Outlook for

Managed Pines Using Simulated

Treatment’ Experiments-Planted

Loblolly Pine (COMPUTE-P-LOB):

A User’s Guide

R. B. Ferguson and V. C. Baldwin, Jr.
SUMMARY

“Comprehensive outlook for managed pines using simulated treatment

experiments-planted loblolly pine” (COMPUTE P-LOB) is a computerized

growth and yield prediction program designed to-&e information from either

thinned or unthinned stands to predict growth and yield. A variety of entry

options allows the user to examine the effects of thinning a stand or growing

the stand in an unthinned condition. The minimum initial variables required

to run the program are age, a measure of density, and a measure of site quality.

A highly detailed set of stand tables may be requested by the user for unthinned, before-thinned and after-thinned stands. The user may also obtain a

table of the stand components removed by thinning to aid in merchandizing the

stand. The generated tables may reflect either volume, green-weight, or dryweight predictions.

ACKNOWLEDGMENT

Partial funding for this work was provided through

a cooperative agreement with the U.S. Department of

Energy and administered by the Tennessee Valley

Authority (contract number TV-64328a).

September 1987
Comprehensive Outlook for Managed Pines Using

Simulated Treatment Experiments-Planted Loblolly

Pine (COMPUTE P-LOB): A User’s Guide -

R. B. Ferguson and V. C. Baldwin, Jr.

INTRODUCTION

COMPUTE-P-LOB is an interactive program for

predicting the performance of thinned and unthinned

loblolly pine plantations in the west gulf region. The

program operates the growth and yield prediction system developed by Baldwin and Feduccia (1987), which

utilizes the whole stand projection-parameter recovery-diameter distribution approach of Matney and

Sullivan (1982). COMPUTE-P-LOB has some things

in common with the USLYCOWG model (Feduccia

and others 1979); for example, both systems use similar input format and were developed from the same

data set for the unthinned condition through age 30.

However, COMPUTE-P-LOB models the unthinned

stand beyond age 30, as well as thinned stands with

data through age 45.

The Weibull function is used to predict the distribution of diameters. Values for the function’s parameters are obtained after each growth projection by solving a set of equations in which the minimum (DMIN),

quadratic mean (QMD), and 93rd percentile diameters

(P93) are predicted as functions of age (A), site index

(SI) or height of the dominant and codominant (HD)

trees, and number of trees surviving (TS). Total stand

values of volume, weight, and so forth are obtained by

summation of the corresponding values predicted for

each diameter class.

The data for the prediction system came from 859

measurements of thinned and unthinned long-term

research study plots on cutover sites located in east

Texas, Louisiana, and southern Mississippi. In all the

thinned stand studies, the thinning interval was

5 years unless insufficient growth had occurred during that period. Selective thinning was generally from

below, although a few plots were row thinned.

Readers are advised to refer to Baldwin and Feduccia (1987) for further details pertaining to their modeling rationale, the data base utilized, mathematical

models selected, and equation coefficients. This paper

describes the computer program and how to use it.

PROGRAM DESCRIPTION

Program options permit the user to obtain predictions of volume (cubic- and board-foot) or weight per

acre yields (green- or oven-dry pounds, with or without bark) for all aboveground tree components (total

stem, stem to any top diameter limit, branches, and

foliage). Entry information is kept to a minimum, but

the user has a variety of available options for processing and generating stand predictions. This diversity

allows the user to investigate the effects of a large

number of such potential treatments as: thinning

levels, site indices, planting densities, thinning intervals, or even no thinning. The diversity of available

options also helps generate extensive stand table information using l-inch diameter classes. The age of

the data set modeled limits predictions to plantations

from 10 to 50 years old.

The program directs the user into one of three general situations: starting and ending with an unthinned stand; starting with an unthinned stand,

thinning at some age, and ending with a stand

thinned a variable number of times; or starting with

a previously thinned stand and ending with a stand

thinned a variable number of times. The required initial values and the prediction process are summarized

schematically in figure 1.

Individual program runs may be initiated with as

little information as the age of the stand, a measure

of either the mean height of the dominant and codominant stand component or the site index, and an

estimate of either current trees surviving, basal area,

or trees planted. Although optional, the inclusion of

more initial information will produce more precise

stand projections. This additional information would

be used to key different equations available in the

system that require more initial information but are

mathematically more reliable in their predictions. To

efficiently use the model, the user should organize the

available entry data prior to using the program.

The thinned stand growth projection equations in

R. B. Ferguson is forester, Southern Forest Experiment Station, Forest Service-USDA, Pineville, LA 71360. V. C. Baldwin Jr. is principal

mensurationist, Southern Forest Experiment Station, Forest Service-USDA, Pineville, LA 71360.

1
INITIAL STAND INITIAL STAND

UNTHINNED PREVIOUSLY THINNED

1 . 1

/ENTER A; HD OR sI; AND EITHER TS, BA, 0~ TP +

,+--I J

I I

STIMATE INITIAL WEIBULL PARAMETERS

I I

I

I I

Hz;F' pf:~:E:;%~ 1

7 ' I

I

9 1

U

I I T

SIMULATE GROWTH AND A

PREDICT HD2, TS2, DMIN2, T

QMD2 t AND P93, FOR A2 I

I

0

N

I

ESTIMATE INTERMEDIATE WEIBULL PARAMETERS IS

I I

I

I 1 I

PREDICT UNTHINNED PREDICT STAND THIN STAND AND PREDICT GROWTH

STAND GROWTH AFTER INITIAL PREDICT GROWTH (NO ADDITIONAL

THINNING THINNING)

, .

PRINT OR DISPLAY VOLUME OR WEIGHT TABLES IN T

EITHER FULL OR SUMMARIZED FORMAT AND STORE 4 P

I THIS OUTPUT ON A FILE IF SO DESIRED I U

T

Figure l.-Generalized schematic representation of the loblollypine growth and yield prediction system COMPUTE P-LOB (*This

initial input is required for all stands, ** these inputs are required only when starting with a previously Thinned stand).

Meanings of abbreviations are also given in the text.

2
this system are not time invariant. Therefore, to allow true list directed I/O responses to be entered

achieve the most reliable and consistent predictions, either as a string separated by commas or individuafter-thinning growth projection intervals should be

in &year multiples. If necessary, the final projection

ally. The IBM-PC FORTRAN version is one such systern. However, the IBM-PC BASIC version requires

should be done over the remaining years. If the user multiple responses to be entered as a string.

chooses a longer interval, the program will automati- The program produces organized stand tables in eitally divide the chosen interval into &year segments ther a detailed or summarized format. Current output

and compute the prediction in a stepwise manner. format produces tables that are 80 characters wide to

This procedure will not be visible to the user. conform to the majority of printers now in use. Stand

The COMPUTE-P-LOB program is currently avail- and stock tables may ‘be specified for volume, dryable in FORTRAN-77 for use on the IBM-PC/XT with weight, or green-weight output. The user also has the

the Microsoft DOS 2.10 or later version operating sys- option of printing cut tables that will provide a quick

tern; the Data General MV/XOOO j series computers; reference of what was actually removed from the

the Digital Equipment Corporation’s PDP 11/23 and ’ stand by the model during a specified thinning treatMicroVAX II computers. A BASIC version is cur- ment. The printing of cut tables does not reduce the

rently available for the IBM-PC and another is being 15-stand table limit imposed on the user for any given

developed for the Apple Computer Company’s Apple run cycle of the program.

IIc lvlicrocomputer. Examples of output stand tables are presented in

A listing of the program FORTRAN source code‘ is Appendix A. Stand tables for weight components are

presented in Appendix B. The current compiled pro- similar in form. If only summary information is degram occupies approximately 130K bytes indicating sired, summary tables that give only the total values

that the user’s system would need a 256K RAM ma- can be printed. Summary tables, although suitable for

chine. It is possible to use segmentation and’ overlay -broad planning purposes, lack the detailed stand

techniques to provide a usable program for a smaller structure information needed by the silviculturist. All

capacity machine. Early’ attempts at this with the cut tables are presented as full tables regardless of the

Apple IIc produced a prototype ‘version that worked form of stand table requested.

but was extremely slow. ‘Because of the modular structure of COMPUTE PLOB, users may be tempted to change the programto I

include their own equations. However, any modiflcaPROGRAM OPERATION’ ’

tion of our prediction equations or substitution of

equations by the user may drastically affect the reliOnly the necessary instructions for operating the ability of the stand predictions. Our equations were

loaded program at execution time are reported in this all developed from a common data base. Equations

paper; the peculiarities of loading and operating the developed by others from differing data sets may not

‘user’s particular computer system are not addressed. be compatible with this model and may result in unreFour examples are provided in Appendix A to repre-.

liable stand predictions. Any user changes made to

sent the more common situations encountered by the the program are the sole responsibility of the user.

user. These examples are based on the IBM-PC/XT Reformatting the output to conform to a different

version of the model. Versions of the program comprinter width or some special report format is the

piled on other systems do not differ significantly in

user’s responsibility.

either input or output. Any problems encountered by

the user should be referred directly to’us if the user LITERATURE CITED

can not determine the- procedure to use.

Normal program operation involves responding to a

set of questions keyed to the user’s particular situation. Responses to these questions in the examples are

enclosed in brackets 1 I. The brackets are used in,this

paper for clarity only and are not used. to respond to

questions during the actual execution of the program.

The questions are designated by a Q-number in the

examples. These Q-numbers are presented in this

guide for clarity and do not actually appear in the

program. Certain other explanatory information is

also included; these remarks, as well as Q-numbers

are enclosed in parentheses ( ).

The user should note that some queries require

more than one response. Some systems require each

response item to be entered separately rather than in

a string separated by commas. Other systems may

Baldwin, V. C., Jr. and Feduccia, D. P. 1987. Loblolly

pine growth and yield prediction for managed west

gulf plantations. Res. Pap. SO-236 New Orleans,

LA: U. S. Department of Agriculture, Forest Service, Southern Forest Experiment Station; 32 p.

Feduccia, D. .P., Dell, T. R.; Mann, Jr., W. F.; Campbell, T. E.; and Polmer, B. H. 1979. Yields of unthinned loblolly pine plantations on cutover sites in

the west gulf region. Res. Pap. SO-147. New

Orleans, LA: U. S. Department of Agriculture,

Forest Service, Southern Forest Experiment Station; 84 p.

Matney, T. G.; Sullivan, A. D. 1982. Compatible

stand and stock tables for thinned and unthinned

loblolly pine stands. Forest Science. 28 (1): 161-

171.

3
APPENDIX A - Examples

Example 1. Initial stand condition unthinned and no future thinnings,

Situation: Assume a 15 year-old stand with a site index of 60 feet (base

age 25) and trees surviving of 500 stems per acre. The owner wants to know

what will happen if the stand is grown unthinned to age 20 before any

decision is made on thinning. The owner is interested in volume

(cubic-foot and board-foot in International-l/4 inch) for both ages. The

merchantable limits are to be set at 0- ,4- ,and 8-inch top diameters. The

following set of queries illustrate how COMPUTE-P-LOB will process this

information.

Inputs for Example 1.:

(Ql) Choose your output device

s = Screen output

H = Hardcopy printer

CSI

(Q2) Enter a label for your output (60 characters or less)

[EXAMPLE i]

(Q3) Describe the stand by answering the following questions. Enter a

zero (0) if you do not know the answer to a question requiring a

numeric response. Use the designated character responses where

indicated. Certain questions have a preset default response

(Indicated by an asterisk (*) following the default). If you accept

the default, just press the RETURN key.

At the very least you must provide STAND AGE, a measure of DOM/CODOM

HEIGHT, and a measure of STAND DENSITY. If you are starting with the

closing values of a previous run of the model, the answers must come

from that output in order to set up the new run.

Are you starting with the closing values for a previous run of this

program?

Y = Yes

N = No (")

CNI

(Q4) Stand age?

1151

(Q5) Height of dominants and codominants?

co1

(Q6) Site index?

C601

(Q7) Site index base age?

C251

(Q8) Surviving trees per acre?

c5001

4
(QV) Has this stand been thinned before?

Y = Yes

N = No (*I

CNI

(QlO) Are ;otrY;E;f;l stand inputs entered correctly?

N = No

PI

(all) How many new thinnings? -- (Must be LE 10)

II01

(Q12) Choose form of output:

V = Volume (*)

G = Green weight

D = Dry weight

I31

(Q13) Enter three top diameter limits for volume tables

(O=total volume).

(Example 0,4,8: for total volume, volume to a Q-inch top,

and volume to an 8-inch top, respectively.)

CoA81

(Ql4) Do yc~u want single table per page or continuous output:

= Single table per page

C = Continuous feed (*)

cc1

(Q15) Choose form of output tables:

F = Full tables (*)

S = Summary tables

CFI

(Q16) Choose a board foot volume rule:

I = International l/4 (*)

s = Scribner

D = Doyle

[II

(Q17) Number of stand tables (Do not include any cut tables

in your count)? NOTE: You must run the before-thin

situation at a given age before you can run the after thin.

c21

(Q18) For each stand table requested enter the age and

the thinning code:

N = No thinning

B = Before thinning

A = After thinning

(Example of input: 10,N; for age 10,

no-thin table)

5
(Q18a) For stand table# 1, enter age and thinning code

[15,N1

(Q18b) For stand table# 2, enter age and thinning code

L-20.N

(Qlg) Are your stand table specifications correct?

Y = Yes (*) . .

N = No

I31 .,

Please wait. Your request is being processed.

(The program will now process the user's request and return the finished

stand tables as specified by the user. ,After:all tables have been output the

user will be asked about storing the'-output on'a disk file. If you want to

store this information, you must specify a proper file name and storage device

as required by your system.)

*

(Q20) Do you want to save your output on a disk file?

Y = Yes

N =' No (")

L-1

(Q21) Enter output file name.

[EXAMPLE~.DAT] li -.

,:

(In this case ExAMPLEl.DAT will be stored on.the system default drive.)

(Q22) Do you want to continue?'

Y

= ygs .(") ." -

N =No

L-u _, ~. ‘), ,’

(Q23) Is thi s a continuation of the run 'just completed?

Y = Yes (")

N = No I ,._, .1

ITI

(This response will cause the program to recycle for a new run using the

final values of this run to initiate the next run. This will reduce the

required user responses considerably. Answer "Y" only if you want to start with

these values.)
Output for Example 1.

EXAMPLE1

LOBLOLLY PINE

NO THINNING THIS YEAR

(PER ACRE)

AGE= 15

DOMINANT HEIGq= 44.5 FEET

QUADRATIC MEAN DBH= 6.337 INCHES

---------------------------'--r= _----_----__--------------------------- IIPIII==IPPDPII=='PIpI===p==o===============

CUBIC FOOT VOLUME OF STEM!3 INTER.1/4

DBH STEMS BASAL AV. TO AN O.B. TOP DIAMETER OF B.F. VOL.

CLASS AREA HT. 0 INCHES 4 INCHES 8 INCHES ~-IN. TOP

WI. -----------w ---c--m.----- ------------

in. no. ft. ft. o.b. i.b. o.b. i.b. o.b. i.b. i.b.

------------------- ------------------------------------------------------------

2 1 0.0 19 0 . 0 . 0 . 0 . 0 .

0.8 28

4.7 35 ii: 63:

i' 0. 0. 0. ;.

0 .

0 .

0 . 0 . 0.

101 13.8 39

; 129 25.3 42

281. 204. 1840: 129. 0 . 0 : 0.

403. 456. 332. 0 . 0 . 0.

ii

110 29.4 44 488. 444. 0 . 0 . 0.

62 21.6 46 374. 0 .

9 22 9.7 47 225. 170. g;: 6;:

1 0 5 2.7 48 64. 48. ‘63. 48: 38. 28.

0.

151.

-------------- --------------------____________________-------------------------

500 108.1 2365. 1758. 1995 l 1473. 135* 97. 151.

__---__---_-------------------- __________,,,,,,,,,,,,,,,,,,,,,,,,,,,3pI~~===~=============~---------------- ------ ----------------===

SI(BA~E AGE 25)= 60 FEET; 93RD PERCENTILE= 8.353

WEIBULL PARAMETERS: "A"= 1.703; "B"= 4.969; “Cl”= 3.359
EXAMPLE1

LOBLOLLY PINE

NO THINNING THIS YEAR

(PER ACRE)

AGE= 20

DOMINANT HEIGHT= 52.9 FEET

QUADRATIC MEAN DBH= 7.304 INCHES

================r==============================================================

CUBIC FOOT VOLUME OF STEMS INTER.1/4

DBH STEMS BASAL AV. TO AN O.B. TOP DIAMETER OF B.F. VOL.

ZLASS AREA HT. 0 INCHES 4 INCHES 8 INCHES 8-1~. TOP

wt. ------------ ------------ ------------

in. no. ft ft. o.b. i.b. o.b. i.b. o.b. i.b. i.b.

-------------------------------------------------------------------------------

5 0.2 32 0 . 0 . 0 . 0 . 0.

t 4:: 32: 0 . 0. 0. 0.

;t 7':; 2: 169. 127. 111. 8:: 0 . 0 . 0 .

2 86 16.9 48 416. 318.

ii%

261. 0. 0. 0.

7 101 27.0 50 683. 525. 478. 0 . 0 . 0 .

;z 2: ;f

806. 625. 77& : 594. 0. 0.

i 6%. 515.

%*

28:: 210.

1 0 25 13:6 55 366. 287. 360: 219. 166. ;;$:

1 1 7 4.6 57 127. 100. 126. ;;: ‘3x$ 71.

1 2 2 1.6 57 43. 34. 43. . . 27. 146:

-------------------------------------------------------------------------------

449 129.2 3317. 2566. 3025. 2328. 629. 474. 1444.

===============================================================================

SI(BASE AGE 25)= 60 FEET: g3RD PERCENTILE= 9.615

WEIBULL PARAMETERS: "A" = 2.067; "B"= 5.619; "C"= 3.315
Example 2. Initial stand condition unthinned with future thinnings.

Situation: Assume the same stand used for Example 1 above. The owner has

decided to thin the stand at age 15 to 80 square feet of basal area, check

the volume removed and the residual stand and then project stand growth to

age 20.

(Ql) Choose your output device

S = Screen output

H = Hardcopy printer

ES1

(Q2) Enter a label for your output (60 characters or less)

[EXAMPLE 23

(Q3) Describe the stand by answering the following questions. Enter a

zero (0) if you do not know the answer to a question requiring a

numeric response. Use the designated character responses where

indicated. Certain questions have a preset default response

(Indicated by an asterisk (") following the default). If you accept

the default, just press the RETURN key.

At the very least you must provide STAND AGE, a measure of DOM/CODOM

HEIGHT, and a measure of STAND DENSITY. If you are starting with the

closing values of a previous run of the model, the answers must come

from that output in order to set up the new run.

Are you starting with the closing values for a previous run of this

program?

Y = Yes

N = No (")

ENI

(Q4) Stand age?

Cl51

(Q5) Height of dominants and codominants?

co1

(Q6) Site index?

Wol

(Q7) Site index base age?

C251

(Q8) Surviving trees per acre?

L-5001

(Q9) Has thi s stand been thinned before?

Y = Yes (*)

N = No

[NJ
(QlO) Are ;oyyt;iM;l stand inputs entered correctly?

N = No

PI

(all) How many new thinnings? -- (Must be LE 10)

Cl1

(Q12) Choose form of output:

v = Volume (")

G = Green weight

D = Dry weight

WI

(Q13) Choose method of thinning:

B = Thinning by residual BA per acre (*)

T = Thinning by residual trees per acre

CBI

(Ql4) For thinning# 1 enter -- thinning age and residual BA per acre

(Example: 15.80)

C15,801

(Q15) Do yr=wan; ;I& tables?

N = No

CYI

(Q16) Enter three top diameter limits for volume tables

(O=total volume).

(Example: 0,4,8 for total volume, volume to a Q-inch top

and volume to an 8-inch top, respectively.)

lW+,81

(Ql7) Do ye want single table per page or continuous output:

= Single table per page

C = Continuous feed (*)

cc1

(Q18) Choose form of output tables:

F = Full tables (*)

S = Summary tables

I31

(Qlg) Choose a board foot volume rule:

I= International l/4 (*)

s= Scribner

D = Doyle

[II

(820) Number of stand tables (Do not include any cut tables

in your count)? NOTE: You must run the before-thin

situation at a given age before you can run the after thin.

L-31

1 0
(Q21) For each stand table requested,enter the age and the

thinning code:

N = No thinning

B = Before thinning

D = After thinning

(Example of input:. lO,N;,for age-lo,

no-thin table)

(Q21a) For stand table# 1, enter age and thinning code

C15,Bl

(Q21b) For stand table# 2, enter age and thinning code

C15,Al

(Q21c) For stand table# 3, enter age and thinning,code

C20,Nl I

'

(Q22) Are yoFrYz;anf)table specifications correct?

Y

N = No . . _, L-y1

Please wait. Your request is being processed.

(The program will now process the user's request and'return the finished

stand tables as specified by the user. After all tables have been output the

user will be asked about storing the output on a disk file. If you want to

store this information you must specify a proper file name,and storage device as

required by your system.)

(Q23) Do you want to save your output on a disk file?

Y = Yes

N = No (")

PI 1 ‘+ “ , ,”

(Q24) Enter output file name. ,

[EXAMPLE2.DAT]

(In this case EXAMPLE2.DAT will be stored on the system default drive.)

(Q25) Do you want to continue?

Y = Yes (*)

N = No

I31

(The program will terminate.) *> i

../” j ‘.

-

,

1 1
Output For Example 2.

EXAMPLE 2

LOBLOLLY FINE

BEFORE THINNING INFORMATION

(PER ACRE)

AGE= 15

DOMINANT HEIGHT= 44.5 FEET

QUADRATIC MEAN DBH- 6.337 INCHES

======================I===I=P======P=IE========================================

CUBIC FOOT VOLUME OF STEMS INTER.1/4

DBH STEMS BASAL AV. TO AN O.B. TOP DIAMETER OF B.F. VOL.

CLASS AREA HT. 0 INCHES 4 INCHES 8 INCHES ~-IN. TOP

WI. c----------- ------------ ------------

in. no. ft. ft. o.b. i.b. o.b. i.b. o.b, i.b. i.b.

-------------------------------------------------------------------------------

:

1 0.0 19 0 .

ii*

0 . 0 . 0 . 0 . 0 .

0.8 28 0 . 0 . 0 . 0 . 0.

4 546 4.7 35 ii: 63: 0 . 0 . 0 . 0.

101 13.8 39

2 129 25.3 42

281. 204. 1840: 129. 0 . 0. 0.

403. 456. 332. 0 . 0 . 0.

ii

110 29.4 44 g*

496:

488. 599 l 444. 0 . 0 . 0.

62 21.6 46 374. 474.

:%;* 970. _ ;;:

0.

9 22 9.7 47 225. 170. 219.

1 0 5 2.7 48 64. 48. 63. 48: 38:

0 .

. 151.

--_-_---------------_________________L__---------------------------------------

500 108.1 2365. 1758. 1995 l 1473. 135. 97. 151.

========================P==E===‘=f==P==E=======================================

SI(BASE AGE 25)= 60 FEET; g3RD PERCENTILE= 8.353

WEIBULL PARAMETERS: "A"= 1.703; "B"= 4.969; "C"= 3.359

1 2
EXAMPLE 2

LOBLOLLY PINE

RESIDUAL STAND -- AFTER THINNING

(PER ACRE)

AGE= 1 5

DOMINANT HEIGHT= 44.5 FEET

QUADRATIC MEAN DBH= 6.522 INCHES

-----------------------------------------------------------------============== _______---_------------------------------------------------------

CUBIC FOOT VOLUME OF STEMS INTER.1/4

DBH STEMS BASAL AV. TO AN O.B. TOP DIAMETER OF B.F. VOL.

CLASS AREA HT. 0 INCHES 4 INCHES 8 INCHES ~-IN. TOP

w. ------------ ------------ ------------

in. no. ft. ft. o.b. i.b. o.b. i.b. o.b. i.b. i.b.

__--_--------------------------------------------------------------------------

z 7 0.3 28 49. 5. 35. 4. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.

2 178.376. 278.129. 3159 117.229.82. 0. 0. 0. 0. 0. 0.

493 * 368. 452. 335. 0. 0. 0 .

400. 301. -382. 287. 0. 0. 0 .

9 184. 139. 179 ’ 135. 79. 57. 0.

1 0 4 2:2 48 51. 39. 50. 38. 31. 22. 121.

345 78.9 1736. 1293 - 1495l 1106. 110. 79* 121.

-------------------------------------------------============================== __--_---------_----------------------------------

SI(BASE AGE 25)= 60 FEET; g3RD mxm3mILE= 8.501

WEIBULL PARAMETERS: A

11 tt= 2.014; "B"= 4.844; “C”= 3.349
EXAMPLE 2

LOBLOLLY PINE

STAND COMPONENT REMOVED BY THINNING

(PER ACRE)

AGE= 15

DOMINANT HEIGHT= 44.5 FEET

QUADRATIC MEAN DBH= 5.874 INCHES

======================================----------------------------------------- -----------------------------------------

CUBIC FOOT VOLUME OF STEMS INTER.1/4

DBH STEMS BASAL AV. TO AN O.B. TOP DIAMETER OF B.F. VOL.

ZLASS AREA HT. 0 INCHES 4 INCHES 8 INCHES ~-IN. TOP

------------ ------------ ------------

in. no. "f : : ft. o.b. i.b. o.b. i.b. o.b. i.b. i.b.

-------------------------------------------------------------------------------

0.0 19 0 . 0 . 0 . 0 . 0.

: ii 0.4 28 ;: t : 0 . 0 . 0. 0. 0.

4 2 4 2.1 35 39. 28. 0 . 0 . 0.

37 5.0 39 103. 75. 6;: 4;: 0. 0. 0.

;

4o E E

170. 125. 141. 103. 0 . 0. 0.

7 27 160. 120. 147. 109. 0. 0. 0.

8 1 2 4:2 46 96. 73. 68. 0.

9 4 1.8 47 41. 31. 2:: 30. 1:: 1::

1 0 1 0.5 48 13. 9. 13. 10. 7. 6. 3::

-------------------------------------------------------------------------------

155 29.2 629. 465. 500. 367. 25. 18. 0.

===============================================================================
EXAMPLE 2

LOBLOLLY PINE

NO THINNING THIS YEAR

(PER ACRE)

AGE= 20

DOMINANT HEIGHT= 52.9 FEET

QUADRATIC MEAN DBH= 7.902 INCHES

===============================================================================

CUBIC FOOT VOLUME OF STEMS INTER.1/4

DBH STEMS BASAL AV. TO AN O.B. TOP DIAMETER OF B.F. VOL.

CLASS ACRE HT. 0 INCHES 4 INCHES 8 INCHES ~-IN. TOP

.%I* ------------ --d--------- ------------

in no. ft. ft. o.b. i.b. o.b. i.b. o.b. i.b. i.b.

-------------------------------------------------------------------------------

4

6 z 2:

0 . 0. 0.

5 2 4 ::: 5:: 4:: 2:: 0. 0. 0.

6 48 9:4 48 220. 163. 180. 130. 0 . 0 . 0 .

7 67 17.9 51 446. 335. 408.

t;;*

0 . 0 . 0.

8

'5: 5",*; ;;

634. 480. 607. 0 . 0.

9

30 1614 56

645. 491. 629. 478: 25:: 181. 0.

1 0 451. 345. 445. 340. 266. 195. 1149.

11 12 7.9 57 223. 171. 221. 170. 162. 122. 701.

1 2 3 2.4 58 68. 52. 67. 52. 55. 42. 240.

13 1 0.9 59 27. 21. 27. 21. 24. 18. 103.

-__--_------------------------------------------------------------------------

315 107.0 2794. 2116. 2625. 1979. 763. 558, 2193.

===============================================================================

SI(BASE AGE 25)= 60 FEET; 93RD PERCENTILE= 10.230

WEIBULL PARAMETERS: "A"= 2.808; "B"= 5.485: “C”= 3.233
Example 3. Starting with a previously thinned stand.

Situation: Assume a 20 year old stand with a site index of 60 feet (base

age 25) and trees surviving of 320 stems per acre. The stand was thinned

at age 15 to 80 square feet of basal area and 350 trees per acre. The

owner wants to thin again at age 20 to 80 square feet of basal area,

examine the current stand before and after thinning, and project the growth

of the residual stand to age 25.

Inputs for Example 1.:

(Ql) Choose your output device

S = Screen output

H = Hardcopy printer

CSI

(Q2) Enter a label for your output (60 characters or less)

[EXAMPLE 31

(Q3) Describe the stand by answering the following questions. Enter a

zero (0) if you do not know the answer to a question requiring a

numeric response. Use the designated character responses where

indicated. Certain questions have a preset default response

(Indicated by an asterisk (") following the default). If you accept

the default, just press the RETURN key.

At the very least you must provide STAND AGE, a measure of DOM/CODOM

HEIGHT, and a measure of STAND DENSITY. If you are starting with the

closing values of a previous run of the model, the answers must come

from that output in order to set up the new run.

Are you starting with the closing values for a previous run of this

program?

Y = Yes

N = No (*)

WI

(Q4) Stand age?

c201

(Q5) Height of dominants and codominants?

co1

(Q6) Site index?

t-601

(Q7) Site index base age?

L-251

(Q8) Surviving trees per acre?

C3201

1 6
(Q(j) Has this stand been thinned before?

Y = Yes

N = No (*)

t-y1

(QlO) Times previously thinned?

El1

(all) Age last thinned?

Cl51

(Q12) Residual BA per acre after the last thinning?

WI

(Q13) Residual trees per acre after the last thinning?

c3501

(Ql4) Are yourY;;i;$l stand inputs entered correctly?

Y=

N = No

PI

(Q15) How many new thinnings? -- (Must be LE 10)

Cl1

(Q16) Choose form of output:

V = Volume (")

G = Green weight

D = Dry weight

CVI

(Q17) Choose method of thinning:

B = Thinning to a residual BA per acre (*)

T = Thinning to residual trees per acre

PI

(Q18) For thinning# 1 enter -- thinning age and residual BA per acre

(Example: 15980)

L-20,801

(Qlg) Do you want cut tables?

Y = Yes (*)

N = No

PI

(Q20) Enter three top diameter limits for volume tables

(O=total volume).

(Example: 0,4,8 for total volume, volume to a 4-inch top,

and volume to a 8-inch top, respectively.)

coA81
(Q21)

L-Cl

(Q22)

CFI

(Q23)

[II

(a.241

131

(Q25)

Do you want single table per page or continuous output:

S = Single table per page

c = Continuous feed (*)

Choose form of output tables:

F = Full tables (*)

s = Summary tables

Choose a board foot volume rule:

I = International l/4 (")

S = Scribner

D = Doyle

Number of stand tables (Do not include any cut tables

in your count)? NOTE: You must run the before-thin

situation at a given age before you can run the after thin.

For each stand table requested enter the age and the

thinning code:

N = No thinning

B = Before thinning

A = After thinning

(Example of input: 10,N; for age 10,

no thin table)

(Q25a) For stand table# 1, enter age and thinning code

C20,Bl

(Q25b) For stand table# 2, enter age and thinning code

C20,Al

(82%) For stand table# 3, enter age and thinning code

[25.W

(Q26) Are yoyryi;ani)table specifications correct?

Y

N = No

CYI

Please wait. Your request is being processed.

(The program will now process the user's request and return the finished

stand tables as specified by the user. After all tables have been output the

user will be asked about storing the output on a disk file. If you want to

store this information you must specify a proper file name and storage device as

required by your system.)

1 8
(Q27) Do you want to save your output on a disk file?

Y = Yes

N = No (*)

CNI

(In this case the output will not be stored on a disk file.)

(Q28) Do you want to continue?

Y = Yes (")

N = No

CNI

(This response will cause the program to terminate. A new run using the

final values of this run to initiate the next run may be started again by

entering the values of this output or by specifying a new set of initial

values.)

Output For Example 3.

EXAMPLE 3

LOBLOLLY PINE

BEFORE THINNING INFORMATION

(PER ACRE)

AGE= 20

DOMINANT HEIGHT= 52.9 FEET

QUADRATIC MEAN DBH= 7.609 INCHES

===============================================================================

CUBIC FOOT VOLUME OF STEMS INTER.1/4

DBH STEMS BASAL AV. TO AN O.B. TOP DIAMETER OF B.F. VOL.

CLASS AREA HT. 0 INCHES 4 INCHES 8 INCHES ~-IN. TOP

WI. ----------__ ------------ ------------

in. no. ft. ft. o.b. i.b. o.b. i.b. o.b. i.b. i.b.

__________---------------------------------------------------------------------

4 6 0.5 3 9 i;:

4;: 3;: 2;:

0. 0. 0.

5 23 3.1 4 4 0. 0. 0.

6 51 10.0 48 234. 173. 191. 138. 0. 0. 0.

ii 81 21.6 5 1

;;

761. 539. 404.

9 ;; $93

576. 728. 493. 366. 0. 0. 0. 0. 0. 0.

IO 18 918

645. 491. 629. '%* 256. 181.

5 6 271. 207. 267. 204: 159. 117. 69::

11 3 2.0 5 7 56. 43. 55. 42. 40. 30. 175. __________----------__I_________________---------------------------------------

320 100.3 2583. 1950. 2402. 1803. 455. 328. 865.

____________________-----------------------------------------------------------

SI(BASE AGE 25)= 60 FEET; 93RD PERCENTILE= 9.495

WEIBULL PARAMETERS: "A"= 1.968; "B"= 6.043; "C"= 4.453
EXAMPLE 3

L~BL~LLY PINE

RESIDUAL STAND -- AFTER THINNING

(PER ACRE)

AGE= 20

DOMINANT HEIGHT= 52.9 FEET

QUADRATIC MEAN DBH= 8.010 INCHES

___---------------------------------------------------------------------------- _______________----------------------------------------------------------------

CUBIC FOOT VOLUME OF STEMS INTER.l/Q

DBH STEMS BASAL AV. TO AN O.B. TOP DIAMETER OF B.F. VOL.

CLASS AREA HT. 0 INCHES 4 INCHES 8 INCHES 8-1~. TOP

a* ------------ -,----------- ------------

in. no. ft. ft. o.b. i.b. o.b. i.b. o.b. i.b. i.b.

4 2 3. 2 . 0 . 0 . 0 . 0 .

5 9

K is

26. 0 . 0 .

6 26 5:1 48 119.

3: ;;: :::

0 . 0 .

i 51 6g 24.1 13.6 51 53 255.

9 5 1 22.5 5 5 22’

230. 450. 0. 0. 0. 0.

452. 242. 171.

1 0 1 8 9.8 56 271. 207:

55:

204. 159 l 117.

11 3 2.0 57 56. 43. 42. 40. 30.

0.

0.

0.

0 .

0 .

69;:

175.

zg 78.6 2049. 1551. 19%l 1458. 441. 318. 865.

===============================o=’================================================

SI(BASE AGE 25)= 60 FEET; g3RD PERCENTILE= 9.782

WEIBULL PARAMETERS: "A"= 2.581; clot*= 5.823; v= 4.604

2 0
EXAMPLE 3

LOBLOLLY PINE

STAND COMPONENT REMOVED BY THINNING

(PER ACRE)

AGE= 20

DOMINANT HEIGHT= 52.9 FEET

QUADRATIC MEAN DBH= 6.619 INCHES

=========e============E-=====r==============~=====~================================

CUBIC FOOT VOLUME OF STEMS INTER.1/4

DBH STEMS BASAL AV. TO AN O.B. TOP DIAMETER OF B.F. VOL.

CLASS AREA HT. 0 INCHES 4 INCHES 8 INCHES ~-IN. TOP

=I. ------------ ------w---4- ------------

in. no. ft. ft. o.b. i.b. o,b. i.b. o.b. i.b. i.b.

-------------------------------------------------------------------------------

4

4 3 3 4::

5. 0 . 0 . 0 . 0 . 0.

14

Z 25 4:g 48

0 . 0 . 0.

115. 2;: ;Z: 2: 0 . 0 . 0.

30

ii 15

8.0 51 199 l 149. 183. 136. 0 . 0 . 0.

5.2 53 136. 103. 130. 0.

9 3 1.3 55 36. 27. 35. 2. 1:: 1:: 0.

-------------------------------------------------------------------------------

91 21.7 534. 399 l 466. 345. 14. 10. 0.

================t===P==f=P=PIIIIP=====----------------------------------------- -----------------------------------------

2 1
EXAMPLE 3

LOBLOLLY PINE

NO THINNING THIS YEAR

(PER YEAR)

AGE= 25

DOMINANT HEIGHT= 60.0 FEET

QUADRATIC MEAN DBH= 9.186 INCHES

===============================================================================

CUBIC FOOT VOLUME OF STEMS INTER.1/4

DBH STEMS BASAL AV. TO AN O.B. TOP DIAMETER OF B.F. VOL.

CLASS AREA HT. 0 INCHES 4 INCHES 8 INCHES ~-IN. TOP

WI. ------------ ------------ ------------

in. no. ft. ft. o.b. i.b. o.b. i.b. o.b. i.b. i.b.

-------------------------------------------------------------------------------

2 1:

0.4 46

2.0 51 4;: 376: 4:: 2;:

0. 0. 0.

0 . 0. 0.

ii

24 6.4 54 169. 128. 154. 116. 0 . 0 . 0 .

9 2: 2: ;;

408. 313. 390. 298. 0. 0. 0.

10 48 26:2 61 ;:2*

542. 685. 528. 279 * 200. 0.

544:

610. 773. 601. 461. 345. 2038.

11 27 17.8 62 424.

:;z*

421. 394. 301. 1752.

1 2 8 6.3 63 195. 153. 152. 159 * 123. 704.

1 3 1 0.9 64, 29. 23. 29: 23. 26. 20. 114.

-------------------------------------------------------------------------------

218 98.9 2889. 2236. 2809. 2172. 1319. 989. 4608.

===============================================================================

SI(BASE AGE 25)= 60 FEET; g3RD PERCENTILE= ii.242

WEIBULL PARAMETERS: "A"= 3.137; "B"= 6.497; "C"= 4.423

2 2
Example 4. Starting with closing information from a previous run.

Situation: Assume a 25-year-old stand with a site index of 60 feet (base

age 25) that you have run the program on previously. The stand was thinned

at ages 15 and 20 to 80 square feet of basal area per acre. The owner wants

to thin again at age 25 to 80 square feet of basal area and examine the

current stand before and after thinning and project the growth of the

residual stand to age 30. The owner has run the model before and wants to

begin the model with the final computed stand values without rerunning the

full set of previous tables.

(Ql) Choose your output device

S = Screen output

H = Hardcopy printer

CSI

(Q2) Enter a label for your output (60 characters or less)

[EXAMPLE 43

(Q3) Describe the stand by answering the following questions. Enter a

zero (0) if you do not know the answer to a question requiring a

numeric response. Use the designated character responses where

indicated. Certain questions have a preset default response

(Indicated by an asterisk (*) following the default). If you accept

the default, just press the RETURN key.

At the very least you must provide STAND AGE, a measure of DOM/CODOM

HEIGHT, and a measure of STAND DENSITY. If you are starting with the

closing values of a previous run of the model, the answers must come

from that output in order to set up the new run.

Are you starting with the closing values for a previous run of this

program?

Y = Yes

N = No (")

I31

(Q4) Enter "A" parameter

lI3.1371

(Q5) Enter quadratic mean diameter

C9.1861

(86) Enter diameter of the 93rd percentile

[11.242]

(Q7) Stand age?

C251

(Q8) Height of dominants and codominants?

co1

2 3
(Qg) Site index?

C601

(QlO) Site index base age?

C251

(all) Surviving trees per acre?

t-2181

(Q12) Has thi s stand been thinned before?

Y = Yes

N = No (*)

PI

(Ql3) Times previously thinned?

II21

(Q14) Age last thinned?

r201

(Q15) Are yorr,;;iU;l stand inputs entered correctly?

Y

N = No

I31

(Q16) How many new thinnings? -- (Must be LE 10)

Cl1

(Q17) Choose form of output:

v = Volume (*)

G = Green weight

D = Dry weight

WI

(Q18) Choose method of thinning:

B = Thinning to a residual BA per acre (")

T = Thinning to residual trees per acre

PI

(Qlg) For thinning# 1 enter -- thinning age and residual BA per acre

(Example: 15,80)

E25.801

(Q20) Do you want cut tables?

Y = Yes (*)

N = No

PI

(Q21) Enter three top diameter limits for volume tables

(O=total volume).

(Example: 0,4,8 for total volume, volume to a Q-inch top,

and volume to an 8-inch top, respectively.)

WA81

2 4
(Q22) Do you want single table table per page or continuous output:

s = Single table per page

c = Continuous feed (*)

CSI

(Q23) Choose form of output tables:

F = Full tables (")

S = Summary tables

CFI

(Q24) Choose a board foot volume rule:

I = International l/4 (")

s = Scribner

D = Doyle

L-11

(Q25) Number of stand tables (Do not include any cut tables

in your count)? NOTE: You must run the before-thin

situation at a given age before you can run the after thin.

II31

(Q26) For each stand table requested enter the age and the

thinning code:

N = No thinning

B = Before thinning

A = After thinning

(Example of input: 10.1; for age 10,

no-thin table)

(Q26a) For stand table# 1, enter age and thinning code

[25,Bl

(Q26b) For stand table# 2, enter age and thinning code

[25,Al

(~26~) For stand table# 3, enter age and thinning code

C309Nl

(Q27) Are yoyry;;anz)table specifications correct?

Y

N = No

PI

Please wait. Your request is being processed.

(The requested information is now processed and the desired output is

printed. The user may then examine the results and decide whether to store the

results on a disk file. After that the user decides whether to continue the

program for additional cycles of this example, or a new run with new inputs or

to terminate the program.)

25
(Q28) Do you want to save your output on a disk file?

Y = Yes

N = No (")

CYI

(Q29) Enter output file name

EXAMPLE4,DAT

(The output will now be stored in file EXAMPLE4.DAT on the user's system

default drive.)

(Q30) Do you want to continue?

Y = Yes (*)

N = No

IN

Output For Example 4.

EXAMPLE 4

LOBLOLLY PINE

BEFORE THINNING INFORMATION

(PER ACRE)

AGE= 25

DOMINANT HEIGHT= 60.0 FEET

QUADRATIC MEAN DBH= 9.186 INCHES

___________-________----------------------------------------------------------- ________-----____-_------------------------------------------------------------

CUBIC FOOT VOLUME OF STEMS INTER.1/4

DBH STEMS BASAL AV. TO AN O.B. TOP DIAMETER OF B.F. VOL.

ZLASS AREA HT. 0 INCHES 4 INCHES 8 INCHES ~-IN. TOP

sq. ------------ ------------ ------------

in. no. ft. ft. o.b. i.b. o.b. i.b. o.b. i.b. i.b.

-------------------------------------------------------------------------------

5 3 .4 46

4;: 3:: 4;: 2;:

0 . 0 . 0.

6 1 0 2.0 51 0. 0. 0.

73

24 6.4 54 169. 128. 154. 116. 0 . 0 . 0.

2; :t: ;;

408. 313.

ii:;*

298. 0 . 0 . 0.

9

48 26:2 61 ;:c

542.

773:

528. 279 l 200. 0 .

1 0

544:

610. 601. 461. 345. 2038.

1 1 27 17.8 62 424. 421. 394. 301. 1752.

1 2

1 3 8 2 2

195. 153. :;z* 152. 159 l 123.

1 29. 23. 29: 23. 26. 20.

704.

114.

-------------------------------------------------------------------------------

218 98.9 2889. 2236. 2809. 2172. 1319 l 989. 4608.

-------------------------------------------------------======================== --------------------___________________c---------------

SI(BASE AGE 25)= 60 FEET; g3RD PERCENTILE= 11.242

WEIBULL PARAMETERS: "A"=3.137; "B"=6.497; "C"=4.422

2 6
EXAMPLE 4

LOBLOLLY PINE

RESIDUAL STAND -- AFTER THINNING

(PER ACRE)

AGE= 25

DOMINANT HEIGHT= 60.0 FEET

QUADRATIC MEAN DBH= 9.571 INCHES

------------------------------------------------=============================== ____________________----------------------------

CUBIC FOOT VOLUME OF STEMS INTER.1/4

DBH STEMS BASAL AV. TO AN O.B. TOP DIAMETER OF B.F. VOL.

ZLASS AREA HT. 0 INCHES 4 INCHES 8 INCHES ~-IN. TOP

WI. ------------ ------------ ------------

in. no. ft. ft. o.b. i.b. o.b. i.b. o.b. i.b. i.b.

______----____-----_------------------ -----------------------------------------

2 ;

.I 46 3. 2. 2.

;*

0 . 0. 0.

.6 51 0 . 0. 0.

7 1 1 2.9 54 :;: ;;: ::: 53: 0 . 0. 0.

8 26 9.1 57 253. 194. 242. 184. 0. 0. 0.

9 40 17.7 59 510. 394. 498. 384. 203. 146. 0.

1 0 43 23.5 61

;tt

546. 692. 538. 413. 309. 1826.

1 1 27 17.8 62 424. 539. 421. 394. 301. 1752.

1 2 8 6.3 63 195: 153. 194. 152. 159. 123.

1 3 1 .v 64 29. 23. 29. 23. 26. 20. :%.

____________________------------------------------------------------------ -----

160 78.9 2328. 1806. 2279. 1765. 1195. 899. 4396.

-_------_------------------------ __-----~___----____-----~~~~~~~-~~~~~~~~~~~~-- -------------==========================--------------

SI(BASE AGE 25)= 60 FEET; 93~~ PERCENTILE= 11.476

WEIBULL PARAMETERS: "A"= 3.719; "B"= 6.286; "C"= 4.651

2 7
EXAMPLE 4

LOBLOLLY PINE

STAND COMPONENT REMOVED BY THINNING

(PER ACRE)

AGE= 25

DOMINANT HEIGHT= 60.0 FEET

QUADRATIC MEAN DBH= 7.963 INCHES

=================================tZ===================--------------------------- -------------__-_----------

CUBIC FOOT VOLUME OF STEMS INTER.1/4

DBH STEMS BASAL AV. TO AN O.B. TOP DIAMETER OF B.F. VOL.

CLASS AREA HT. 0 INCHES 4 INCHES 8 INCHES ~-IN. TOP

sq* ------------ ----------e- ------------

in. no. ft. ft. o.b. i.b. o.b. i.b. o.b. i.b. i.b.

----------------- ------------------------------c---------------------------------

ii ;

.3 46 6. 5. 3. 3* 0 . 0 . 0.

1.4 51 34. 25. 0 . 0 . 0.

1 3

i 16

3.5 54 69. ii: '6;: 0 . 0 . 0 .

5.6 57 1;:: 119. 148. 114,

9 15 6.6 5 9 192. 148. 187. 144. 7:: 5::

0;

0 .

1 0 5 2.7 61 82. 64. 81. 63. 48. 36. 212.

-------------- -----------------------------------------------------------------

58 20.1 561. 430. 530. 407. 134. go. 212.

-------------------------------I __---__---_-------------------- II===III'===llt'P------------------------------ ------------------------------

2 8
EXAMPLE 4

LOBLOLLY PINE

NO THINNING THIS YEAR

(PER YEAR)

AGE= 30

DOMINANT HEIGHT= 66.0 FEET

QUADRATIC MEAN DBH= 10.608 INCHES

___________________------------------------------------------------------------ _____________-__-_-------------------------------------------------------------

CUBIC FOOT VOLUME, OF STEMS INTER,1/4

DBH STEMS BASAL AV. TO AN O.B. TOP DIAMETER OF B.F. VOL.

CLASS AREA HT. 0 INCHES 4 INCHES 8 INCHES ~-IN. TOP

2

------------ ------------ ------------

in. no. : ft. o.b. i.b. o.b. i.b. o.b. i.b. i.b.

-------------------------------------------------------------------------------

.2 53 4. 4 .

1.3 57 3;: 28. 34.

3. 0 . 0 . 0.

0 . 0. 0.

4.2 60 122. 95. 117. 0 . 0 . 0 .

9 24 10.6 62 321. 251. 313. 244. 128. 92. 0.

10 35 lg.1 64 598. 470. 590. 463. 266. 1573.

11 38 25.1 66 812. 642. 805. 636. 2667.

12 26 20.4 68 682. 543. 679. 2522.

13 11 10.1 6g 345. 275. 343. 302. 1378.

14 3 3.2 70 111. 89. 111. 101. 81. 467.

-------------------------------------------------------------------------------

155 94.3 3033. 2397 l 29%. 2364. 2029. 1570. 8607.

===============================================================================

SI(BASE AGE 25)= 60 FEET; g3RD Fmmmr;L;;g12.75g

WEIBULL PARAMETERS: "A"= 4.086; B . ; "C"= 4.587 8, w=

29
APPENDIX B - FORTRAN Program Listing

~*YY**~~*******+**w+~~******~******~~**~**~~*~****~*****~~~*****~%~~****

* *

*

COMPUTE-PLOB Y

+ *

* ( COMPREHENSIVE OUTLOOK FOR MANAGED PINES USING SIMULATED *

* TREATMENT EXPERIMENTS-PLANTED LOBLOLLY PINE ) +

Y *

* BY: *

* V.C. BALDWIN, JR., PRINCIPAL MENSURATIONIST *

+ D.P. FEDUCCIA, SILVICULTURIST *

+ R.B. FERGUSON, FORESTER/PROGRAMMER *

* *

* SILVICULTURE OF SOUTHERN PINES RESEARCH WORK UNIT *

* SOUTHERN FOREST EXPERIMENT STATION *

* 2500 SHREVEPORT HIGHWAY, PINEVILLE, LOUISIANA 71360 *

*

(318)~473-7216 *

* *

***+******Y******************~~**********~******~*************~~********

C

C The main program for this prediction system consists of minimum

C source code necessary to begin and direct the flow to the major

C processing subroutines. The major variables in this section are:

C

C IERCD - An error test variable used to detect a fatal error

C requiring a complete restart of the program.

C

C OUT - A character variable used to. designate the output device

C for the final results.

C

C TITLE - A character variable allowing the user to enter a title

C header for the final results (60 Character Limit).

C

C The main program allows the user to begin a new run without having

C to restart the entire process.

C

C The user is cautioned that any alterations made to this program may

C result in erroneous or unreliable results.

C

Y**+*****+w************~*~***********************~***~~************~****

PROGRAM PLOB

CHARACTER"5 OUT,ANS

CHARACTER*60 TITLE

COMMON /OUTPUT/ OUT,TITLE

I=0

II=0

100 WRITE(*,200)

200 FORMAT(/,/,6X,'Choose your output device',/,lOX,'S = Screen'

1,' output',/,lOX,'H = Hardcopy printer',/)

READ( *,'(A5)') ANS

IF((ANS.EQ.'S').OR.(ANS.EQ.'s')) OUT='CON:'

IF((ANS.EQ.'H').OR.(ANS.EQ.'h')) OUT='LPTl:'

3 0
OPEN(l,FILE=OUT)

5 WRITE(l,ll)

11 FORMAT(/,/)

IF((I.GT.O).OR.(II.GT.O)) GOT0 10

WRITE(1,12)

12 FORMAT(lOX,61('*'))

WRITE(1,16)

16 FORMAT(2(10X,'*',59X,'"',/),lOX,'"' ,gX,'Loblolly Pine Plantation'

l,lX,'Growth and Yield',gX,'"',/,lOX,'*"gX,'Prediction System'

2,1X,'for the West Gulf Regiont,8~,'"',/,10X,'*',59X,'"' '/,10X,'"'

3,28X,'By',29X,'*',/,lOX,'"',59X,'"',/,lOX,'~',lOX,'V.C. Baldwin'

Q,lX,'Jr., Principal Mensurationistt,7X,'*',/,10X,'*',10X,'D.P. Fe'

5,'duccia, Silviculturist',20X,'"',/,1OX,'"',1OX,'R.B. Ferguson, F'

6,'orester/Programmer',l5X,'"',/,lOX,'"',5gX,'~',/,lOX,'*',5X,'Sil'

7,'viculture of Southern Pines Research Work Unit',5X,'*',/,lOX

8, '"',13X,'Southern Forest Experiment Station',l2X,'*',/,lOX,'*'

9,4X,'2500 Shreveport Highway, Pineville, Louisiana 71360',4X,'*

WRITE(1.21)

21 F0RMAT(10X,'"',22X,'(~18)-~7~-7216',2~X,'*',2(/,10X,'*',5~X,'~'

WRITE(1,12)

WRITE(1.11)

10 WRITE(*,17) _

‘1

))

17 FORMAT(6X,'Enter a label for your output (60 characters or less)')

READ(*,'(A60)') TITLE

CALL INPUT(IERCD,I)

IF(IERCD.GT.0) GOT0 25

IF(IERCD.EQ.2) GOT0 35

CALL DECIDE(IERCD)

IF(IERCD.GT.0) GOT0 25

IF(IERCD.EQ.2) GOT0 35

CALL STDTBL

15 WRITE(",20)

20 FORMAT(/,/,GX,'Do you want to continue?',/,lOX,'Y = Yes (*)'

l,/,lOX,'N = No',/)

READ (*,'(A5)') ANS

IF((ANS.EQ.'N').OR.(ANS.EQ.'n')) GOT0 35

WRITE(*,22)

22 FORMAT(/,6X,'Is this a continuation of the run just completed?'

l,/,lOX,'Y = Yes (*)',/,lOX,'N = No',/)

READ(",'(A5)') ANS

II=1

I=1

IF((ANS.EQ.'N').OR.(ANS.EQ.'n')) I=0

GOT0 100

25 WRITE(",xO)

30 FORMAT(/,/,6X,'You made a mistake. Do you want to try again?',/,

110x, 'Y = Yes (*)',/,lOX,'N = No',/)

READ(",'(A5)') ANS

I=0

IF((ANS.EQ.'N').OR.(ANS.EQ.'n')) GOT0 35

GOT0 100

35 STOP

3 1
C

c The INPUT subroutine consists of a set of questions used to set the

C initial stand condition and subsequent treatments. Certain values

C are required to run the program. These inputs are protected by

C error traps to insure their entry. Other requested information is

C optional but may result in more accurate predictions. The equations

c used by the program are determined by this subroutine.

C

C ---------------------------- -------------------------------------------

C

C

c

C

c

C

C

C

C

c

c

C

C

C

C

C

C

C

C

c

C

C

C

C

c

c

C

C

C

C

C

C

C

C

C

C

C

C

C

c

C

C

c

COMMON Variable Definitions

/INFO/

NTAB - Number of tables requested in this run

TCODE - Thinning code array

Basal area array

Site index to a base age 25

Age array

BA -

BH -

AGE -

BFCD -

QMD -

p93 -

STC -

IPTHIN -

ICTCD -

IK -

ITAB -

TD -

ITHIN -

B -

TS -

HD -

IWEIB -

BTTS -

ITAGE -

BSAG -

SI -

IPG -

Board-foot volume code option selected

Quadratic mean Dbh array

Diameter of the 93rd percentile

Stand table code - full or summary table output

Number of previous thinnings before starting the run

Option to either print or not print cut tables

Tracks the stand thinning history during a run

Sets the option for volume, green weight, or dry weight

Top diameter(s) for the output tables

Thinning method - by residual BA or residual trees/at

Weibull parameter array

Trees surviving array

Mean dominant and co-dominant height of the stand

Set the program to begin with final values

from a previous run

Before-thin trees surviving from the previous run

Age of the last thinning for a previously thinned stand

Base age of a user supplied site index

Site index supplied by the user

Output page option - one table per page or continuous

printing

AINP - Array used to hold the values of the last run

/TNTYPE/

DMIN -

ITT -

Minimum-diameter array

TARGET -

IBA -

ITPA -

Sets the program to start the run with a stand that was

thinned at some age prior to the current age

Thinning age and matching target thinning level

Residual BA after the last thinning of a previously

thinned stand

Trees per acre after the last thinning of a previously

thinned stand

NTHIN - Number of thinnings to be done during the run (0 to 10)

3 2
CHARACTER*5 ANS,OUT

CHARACTER"60 TITLE

INTEGER AGE(16),TCODE(16),STC,BFCD

REAL BA(16),TS(16),HD(16),QMD(16),DMIN(16),P~~(l6)~B(~,l6),IBA

l,ITPA,TARGET(2,10),TD(3),AINP(l6)

COMMON /INFO/NTAB,TCODE,BA,BH,AGE,BFCD,QMD,P93,STC,IPTHIN

1,ICTCD,IK,ITAB,TD,ITHIN,B,TS,HD,IWEIB,B~S~ITAGE,BSAG~SI,IPG,AINP

COMMON /TNTYPE/DMIN,ITT,TARGET,IBA,ITPA,NTHIN

COMMON /OUTPUT/OUT,TITLE

NN=16

IF(ICNT.GE.l) NN=15

DO 5 I=l,NN

BA(I)=O.

TS(I)=O.

HD(I)=O.

QMD(I)=O.

AGE(I)=0

DMIN(I)=O.

5 CONTINUE

BA(16)=0.

IF(ICNT.GE.l) GOT0 7

DO 6 1=1,16

AINP(I)=O.

6 BA(I)=O.

7 IPG=O

IK=O

ITAB=l

ITHIN=l

STC=l

BFCD=l

ICTCD=l

AGE(16)=AINP(l)

HD(16)=AINP(2)

SI=AINP(j)

BSAG=AINP(b)

TS(16)=AINP(5)

TP=AINP(7)

ITT=NINT(AINP(8))

IPTHIN=NINT(AINP(V))

ITAGE=NINT(AINP(lO))

IBA=AINP(ll)

ITPA=AINP(l2)

B(1,16)=AINP(13)

QMD(lG)=AINP(lh)

P93(16)=AINP(15)

IWEIB=ICNT

TD(l)=o.

TD(2)=0.

_ .-- TD(3)=0.

BTTS=O.

BH=O.

IF(ICNT.GE.1) GOT0 117

WRITE(",25)

3 3
25 FORMAT(/,6X,'Describe the stand by answering the following'

1,' questions. Enter a',/,6X,'zero (0) if you do not know the'

2,’ answer to a question requiring a',/,6X,'numeric response.'

'

;*'

Use the designated character responses where',/,6X,'indicated'

Certain questions have a preset default response',/,6~

5:'iIndicated by a asterisk (*) following the default).'

6” If you accept',/,6X,' the default, press the RETURN Key.'

7,/,/,6X,'At the very least you must provide STAND AGE,'

8,’ a measure of DOM/CODOM',/,6X,'HEIGHT, and a measure of STAND '

9,'DENSITY. If you are starting with the')

WRITE(",26)

26 FORMAT(6X,'closing values of a previous run of the'

1,' model, the answers must come',/,6~,'from that output in order'

' to set up the new run.',/)

2g 2W~I~~(* 50)

50 FORMAT(kX,'Are you starting with the closing values for a'

1,' previous run of this',/,6X,'program?',/,lOX,'Y = Yes',/,lOX

2,'N = No (*)'I

30

3 5

4 0

5 5

6 0

6 4

2:

70

7 2

READ (*,'(A$') ANS

IF((ANS.EQ.'Y').OR.(ANS.EQ.'y')) IWEIB=l

AINP(16)=FLOAT(IWEIB)

IF(IWEIB.EQ.0) GOT0 55

WRITE(",sO)

FORMAT(6X,'Enter "A" parameter')

READ (*,")B(1,16)

AINP(13)=B(1,16)

WRITE(“,35)

FORMAT(/,6X,'Enter quadratic mean diameter')

READ (",")QMD(16)

AINP(lQ)=QMD(16)

WRITE(*,QO)

FORMAT(/,6X,'Enter diameter of the 93rd percentile')

READ P,*)p%(16)

AINP(15)=P93(16)

WRITE(",60)

FORMAT(/,6X,'Stand age?')

READ (*,")AGE(16)

IF((AGE(16).GE.lO).AND.(AGE(16).LE.50)) GOT0 64

WRITE(“s355)

GOT0 55

AG=FLOAT(AGE(lG))

AINP(l)=AG

WRITE(*,65)

FORMAT(/,GX,'Height of dominants and codominants?')

READ (+,*) HD(16)

AINP(2)=HD(16)

IF(HD(16).GT.O.) GOT0 75

WRITE(*,70)

FORMAT(/,6X,'Site index?')

READ (",*) SI

AINP(x)=SI

WRITE(*,72)

FORMAT(/,GX,'Site index base age?')

READ (",*)BSAG

3 4
AINP(4)=BSAG

IF((HD(16).GT.O.).OR.(SI.GT.O.)) GOT0 75

WRITE(*,400)

GOT0 31

75 WRITE(*,80)

80 FORMAT(/,6X,'Surviving trees per acre?')

READ (+,*c) TS(16)

AINP(5)=TS(16)

IF(TS(lG).GT.O.) GOT0 100

IF(IWEIB.NE.~) GOTO 85

WRITE(",401)

GOT0 75

85 WRITE(*,gO)

90 FORMAT(/,GX,'Basal area per acre?')

READ (*,*) BA(16)

AINP(6)=BA(16)

IF(TS(lG).GT.O.) GOT0 100

WRITE(“t95)

95 FORMAT(/,6X,'Trees planted per acre?')

READ (*,*) TP

AINP(7)=TP

IF((TS(l6).GT.O.).OR.(TP.GT.O.).OR.(BA(16).GT.O.)) GOT0 100

WRITE(*,402)

GOT0 75

100 WRITE(*,105)

105 FORMAT(/,GX,'Has this stand been thinned before?',/,lOX,'Y = Yes'

l,/,lOX,'N = No (*)')

READ (*,'(A5)') ANS

IF((ANS.EQ.'Y').OR.(ANS.EQ.'y')) ITT=1

AINP(8)=FLOAT(ITT)

IF(I'IT.NE.1) GOT0 135

109 WRITE(*,llO)

110 FORMAT(/,6X,'How many times previously thinned?')

READ (*,*)IPTHIN

AINP(g)=FLOAT(IPTHIN)

IF(IPTHIN.GT.0) GOT0 114

WRITE(*,lll)

111 FORMAT(3X,'ERROR! Give the number of previous thinnings.',/)

GOT0 109

114 WRITE(*,115)

115 FORMAT(/,GX,'Age last thinned?',/)

READ (*,")ITAGE

AINP(lO)=FLOAT(ITAGE)

IF(ITAGE.GT.0) GOT0 117

WRITE("J16)

116 FORMAT(sX,'ERROR! Give the stand age at the last thinning.',/)

GOT0 114

117 IF(ITAGE.LT.AGE(16)) TCODE(16)=2

IF(ITAGE.EQ.AGE(16)) TCODE(16)=3

IF(ICNT.GE.l) GOT0 181

IF((IWEIB.GT.O).AND.(ITAGE.LT.AGE(16))) GOT0 140

IF(ITAGE.NE.AGE(16)) GOT0 120

IBA=BA(16)

ITPA=TS(16)

35
AINP(ll)=IBA

AINP(12)=ITPA

GOT0 140

120 WRITE(*,125)

125 FORMAT(/,6X,'Residual BA per acre after the last thinning?')

READ (",*)IBA

WRITE(",130)

130 FORMAT(/,6X,'Residual trees per acre after the last thinning?')

READ (*,*)ITPA

IF((IBA.LE.O.).AND.(ITPA.LE.O.)) GOT0 131

AINP(ll)=IBA

AINP(12)=ITPA

GOT0 140

131 WRITE(*,132)

132 FORMAT(3X,'ERROR! Give residual BA per acre or trees per acre'

1,' after the last thinning.',/)

GOT0 120

135 TCODE(16)=1

140 WRITE("J45)

145 FORMAT(/,6X,'Are your initial stand inputs entered correctly?'

l,/,lOX,'Y = Yes (*)',/,lOX,'N = No')

READ (*,'(A5)') ANS

IF((ANS.EQ.'N').OR.(ANS.EQ.'n')) GOT0 146

GOT0 181

146 WRITE("J47)

147 FORMAT(/,6X,'Can you correct them?',/,lOx,'Y = Yes (")',/,lOX

1, 'N = No')

148

181

215

190

195

200

205

221

225

227

')) GOT0 148

READ (*,'(A5)') ANS

IF((ANS.EQ.'N').OR.(ANS.EQ.'n

GOT0 29

IERCD=2

RETURN

IF(SI.GT.0.) BH=VAL(SI,BSAG,l

IF(SI.LE.0.) BH=VAL(HD(16),AG

IF(SI.LE.0.) BSAG=25.

IF(SI.LE.0.) SI=BH

1

91)

IF(HD(16).LE.O.) HD(16)=VAL(BH,AG,2)

IF(ITT.EQ.l) GOT0 200

IF((TS(l6).EQ.O.).AND.((TP.NE.O.).OR.(BA(l6).NE.O.))) GOT0 195

GOT0 221

CALL TPA(TS(16),TP,AGE(16),HD(16),BA(16))

GOT0 221

IF((TS(l6).EQ.O.).AND.((BA(16).NE.O.).OR.(IBA.NE.O.).OR.

~(ITPA.NE.~.))) ~0~0 205

GOT0 221

CALL TNTPA(TS(16),IBA,ITPA,ITAGE,AGE(16),BA(16),HD(16))

IF((TS(16).NE.O.).AND.(BA(16).NE.O.)) QMD(lG)=VAL(BA(16),TS(16),4)

WRITE(*,225)

FORMAT(/,6X,'How many new thinnings? -- (Must be LE 10)')

READ (",*) NTHIN

IF(NTHIN.GT.lO) GOT0 227

GOT0 229

WRITE(",228) ,.

228 FORMAT(3X,'ERROR! Too many thinnings requested.',/)

3 6
GOT0 221

229 WRITE(",241)

241 FORMAT(/,6X,'Choose form of output:',/,lOX,'V = Volume (*)',/,lOX

1,'G = Green weight',/,lOX,'D = Dry weight')

READ (*,'(A5)') ANS

IF((ANS.EQ.'G').OR,(ANS.EQ.'g')) ITAB=

IF((ANS.EQ.'D').OR.(ANS.EQ.'d')) ITAB=

IF(NTHIN.LE.0) GOT0 296

232 WRITE("'235)

235 FORMAT(/,GX,'Choose method of thinning:',/,lOX,'B = Thinning to a'

1,' residual BA per acre (*)',/,lOX,'T = Thinning to a residual'

2,’ trees per acre')

READ (",'(A5)') MS

IF((ANS.EQ.'T').OR.(ANS.EQ.'t')) ITHIN=

IF((ITHIN.LT.l).OR.(ITHIN.GT.2)) GOT0 236

GOT0 239

236 WRITE(*,237)

237 FORMAT(3X,'ERROR! Your choice of thinning method is incorrect.')

GOTO 232

239 ~0 265 I=~,NTHIN

240 WRITE("'245) I

IF(ITHIN.EQ.l) WRITE("'275)

IF(ITHIN.EQ.2) WRITE(*,280)

245 FORMAT(/,6X,'For Thinning',I3,' enter -- thinning age',\)

275 FORMAT(' and residual BA per acre',/,lOX,'(Example: 15,80)')

280 FORMAT(' and residual trees per acre',/,lOX,'Example: 15,400)')

READ (+,*) TARGET(l,I),TARGET(2,1)

IF((TARGET(1,I).LT.lO.).OR.(TARGET(l,I).GT.5O.)) GOT0 255

GOTO 265

255 WRITE(",260)

260 FORMAT(6X,'ERROR? Age limits violated -- TRY AGAIN!',/)

GOT0 240

265 CONTINUE

WRITE(",231)

231 FORMAT(/,GX,'Do you want cut tables?',/,lOX,'Y = Yes (*)',/,

llOX,'N = No')

READ( *,'(A5)') ANS

IF((ANS.EQ.'N').OR.(ANS.E&.'n')) ICTCD=O

296 IF(ITAB.EQ.l) GOT0 396

WRITE(",297)

297 FORMAT(/,6X,'Enter the top diameter limit for weight tables.')

READ (",*)TD(l)

GOT0 311

396 WRITE("t397)

397 FORMAT(/,GX,'Enter three top diameter limits for volume tables'

1,/,6X,'(O=total volume)',/,lOX,'(Example: 0,4,8 for total volume'

2,’ 1 volume to a 4-inch top,' ,/,2OX,'and volume to an 8-inch top,'

39' respectively.)',/)

READ( *,*c) TD(l) ,TD(2) ,TD(3)

311 IF(OUT.EQ.'CON:') GOT0 315

WRITE(*,312)

312 FORMAT(/,6X,'Do you want single table per page or continuous'

',/,lOX,'S =

::'t~%~~,"'feed (*)',/)

Single table per page',/,lOx,'C = Con'

3 7
READ(*,'(A5)') ANS

IF((ANS.EQ.'S').OR.(ANS.EQ.'s')) IPG=l

315 WRITE(*,316)

316 FORMAT(/,6X,'Choose form of output tables:',/,lOX,'F = Full'

1,' tables (*)',/,lOX,'S = Summary tables')

READ (*,'(A5)') ANS

IF((ANS.EQ.'S').OR.(ANS.EQ.'s')) STC=2

IF(ITAB.NE.l) GOT0 309

WRITE(*,317)

317 FORMAT(/,6X,'Choose a board-foot volume rule:',/,lOX,'I = Interna'

1,'tional l/4 (*)',/,lOX,'S = Scribner',/,lOX,'D = Doyle')

READ ( *,'(A5)') ANS

IF((ANS.EQ.'S').OR.(ANS.EQ.'s')) BFCD=2

IF((ANS.EQ.'D').OR.(ANS.EQ.'d')) BFCD=3

309 WRITE(*,310)

310 FORMAT(/,6X,'Number of stand tables (Do not include any cut'

1,' tables',/,6X,'in your count)? NOTE: You must run the '

2,'before-thin',/,GX,'situation at a given age before you can'

3" run the after thin.',/)

READ(*,") NTAB

IF(NTAB.GT.15) GOT0 361

318 WRITE(*,320)

320 FORMAT(/,GX,'For each stand table requested, enter the age and,'

l,'the',/,6X,'thinning code:',/,lOX,'N = No thinning',/,lOX

2, 'B = Before thinning',/,lOX,'A = After thinning',/,20X,'(Example'

3" of input: 10.N; for age 10,' ,/,20X,'no-thinning table)',/)

IF(NTHIN.LE.0) TCODE(16)=1

IF((NTHIN.LE.O).AND.(ITT.GE.l).AND.(AGE(l6).EQ.ITAGE)) TCODE(16)=3

~0 360 I=~,NTAB

325 WRITE(*,330)1

330 FORMAT(/,/,6X,'For stand table#',I2,', enter age and thinning'

1,' code.')

READ (*,'(13,A5)') AGE(I),ANS

IF((ANS.EQ.'N').OR.(ANS.EQ.'n')) &ODE(I)=1

IF((ANS.EQ.'B').OR.(ANS.EQ.'b')) TCODE(I)=2

IF((ANS.EQ.'A').OR.(ANS.EQ.'a')) TCODE(I)=3

IF((AGE(I).LT.lO).OR.(AGE(I).GT.50)) GOT0 350

IF((AGE(I).EQ.AGE(16)).AND.(TCODE(I).EQ.l)) TCODE(l6)=1

IF((AGE(I).EQ.AGE(16)).AND.(ITT.NE.l).AND.(TCODE(I).EQ.3))

lTCODE(16)=2

IF((ITT.EQ.l).AND.(AGE(I).LT.AGE(16))) GOT0 340

IF(I.EQ.l) GOT0 360

IF((TCODE(I).EQ.3).AND.((TCODE(I-1).EQ.3).OR~(AGE(I-l).NE

l.AGE(I)))) GOT0 356

GOTO 360

340 WRITE(*,345)

345 FORMAT(GX,'ERROR! Previously thinned stand. You can not work'

l,lX,'backward.' ,/,6X,'Age must be GE the current age input.',/)

GOT0 325

350 WRITE(“t355)

355 FOR&l'T~~,~,;~OR! Age limits violated. -- (Must be LE 50 or'

1,' I

GOT0 325' ' 356 WRITE(“v357)

3 8
357

365

366

367

368

400

401

402

380

82

361

362

499

500

370

FORMAT(/,6X,'ERROR! You can not run the after thin situation'

1,' without first',/,' running the before thin.',/)

GOT0 325

CONTINUE

WRITE("'364)

FORMAT(/,/,6X,'Are your stand table specifications correct?'

l,/,lOX,'Y = Yes (*)',/,lOX,'N = No')

READ( *,'(As)')ANS

IF((ANS.EQ.'N').OR.(ANS.EQ.'n')) GOT0 365

GOT0 380

WRITE(",366)

FORMAT(/,6X,'Give stand table# to correct. (Enter 999 to end'

1,' corrections.)',/)

READ(*,*) JJ

IF(JJ.GT.15) GOT0 380

WRITE(*,330) JJ

READ(",'(I3,A'j)') AGE(JJ),ANS

IF((ANS.EQ.'N').OR.(ANS.EQ.'n')) TCODE(JJ)=l

IF((ANS.EQ.'B').OR.(ANS.EQ.'b')) TCODE(JJ)=2

IF((ANS.EQ.'A').OR.(ANS.EQ.'a')) TCODE(JJ)=3

IF((AGE(JJ).GE.lO).AND.(AGE(JJ).LE/jO)) GOT0 368

;;g;;;3551

IF((AGE(JJ).EQ.AGE(16)).AND.(TCODE(JJ).EQ.l)) TCODE(lG)=l

IF((AGE(JJ).EQ.AGE(16)).AND.(ITT.NE.l).AND.(TCODE(JJ).EQ.3))

1 TCODE(16)=2

IF((TCODE(JJ).EQ.3).AND.((TCODE(JJ-l).EQ.3).OR.(AGE(JJ-l).NE

l.AGE(JJ)))) WRITE(*,357)

IF((TCODE(JJ).EQ.3).AND.((TCODE(JJ-l).EQ.3).OR.(AGE(JJ-l).NE

l.AGE(JJ)))) GOT0 367

GOT0 363

FORMAT(/,6X,'ERROR! Give either height of Dom. & Codom. or SI',/)

FORMAT(/,6X,'ERROR! Trees surviving is required',/)

FORMAT(/,6X,'ERROR! Give either trees planted or trees surviving’

It/)

IF((IWEIB.EQ.O).OR.(TCODE(l6).NE.3)) GOT0 499

WRITE(",82)

FORMAT(6X"Give the before thin trees per acre from your previous'

1,' run. '1

READ(*,") B'ITS

GOT0 '499

WRITE(*,362)

FORMAT(6X,'ERROR! The maximum number of tables is 15’,/)

GOT0 309

IERCD=O

WRITE(",500)

FORMAT(/,/,/,6X,'Please wait. Your request is being processed.'

It/)

RETURN

IERCD=l

RETURN

END

#####*#*##***#####*******###*####*#***#****##*#*****#*#***#*#***########

C

39
C The DECIDE subroutine examines the set of options entered in INFWT

C subroutine and decides which functions and subroutines to call.

C

C The COMMON variables in this subroutine are defined in the INPUT

C subroutine.

C

 ~++Y** wY+~*~+www*~**~~~~~~~~~~~~~~~~~~~~~~~~**~*******~~~~~~********

SUBROUTINE DECIDE(IERCD)

INTEGER AGE(16),TCODE(16),STC,BFCD

REAL HD(16),TS(16),B(3,16),BA(16),&MD(16),DM1N(16),P~3(16)

l,TARGET(2,10),IBA,ITPA,TD(3),AINP(l6)

COMMON /INFO/NTAB,TCODE,BA,BH,AGE,BFCD,QMD,Pg3,STC,IPTHIN

1,ICTCD,IK,ITAB,TD,ITHIN,B,TS,HD,IWEIB,B~S,ITAGE~BSAG~SI,IPG,AINP

COMMON/TNTYPE/ DMIN,ITT,TARGET,IBA,ITPA,NTHIN

IT=0

1=16

Al=FLOAT(AGE(I))

A2=FLOAT(ITAGE)

IF(ITT.EQ.l) IT=IT+IPTHIN

IF(I'IT.EQ.l) IK=IK+l

IF(IWEIB.GE.l) DMIN(16)=B(1,16)/.6

IF(IWEIB.EQ.l) GOT0 20

IF(IIT.EQ.l) GOT0 10

CALL MOMENT(DMIN(I),QMD(I),P93(I),A1,HD(I),TS(I))

GOT0 15

10 CALL THMOM(DMIN(I),&MD(I),P~3(I),A1,A2,HD(I),TS(I),BA(I)

l,IBA,ITPA,IPTHIN)

15 CALL SOLVE(DMIN(I),QMD(I),P93(I),BA(I),TS(I),B~I,2)

GOT0 25

20 CALL SOLVE(DMIN(I),QMD(I),P~3(I),BA(I),TS(I),B,I,IWEIB)

2 5 DO 135 I=l,NTAB

IF((I.GT.l).AND.(AGE(I).GT.AGE(16))) KK=I-1

IF((I.GT.l).AND.(AGE(I).EQ.AGE(16))) KK=16

IF((I.EQ.l).OR.(AGE(I).LT.AGE(16))) KK=16

IAl=AGE(KK)

IA2=AGE(I)

DMl=DMIN(KK)

TSl=TS(KK)

QMl=QMD(KK)

QM2=0.

Pgl=P93(KK)

Al=FLOAT(IAl)

A2=FLOAT(IA2)

Hl=VAL(BH,A1,2)

H2=VAL(BH,A2,2)

Bl=BA(KK)

IF((IA2-IAl).GT.5) GOT0 315

II=1

IR=O

GOT0 320

315 II=0

IQ=(IA2-IAl)/

IR=MOD((IA2-IA1),5)

IF(IR.GE.l) II=II+l

4 0
II=II+IQ

320 IAG=IAl

IF(TCODE(I).EQ.3) IK=IK+l

IF((AGE(I).NE.AGE(16)).OR.(TCODE(I).NE.TCODE(l6))) GOT0 3 0

~=16

GOT0 130

30 IF(TCODE(I).NE.3) GOT0 95

DO 35 J=l,NTHIN

IF((ITHIN.EQ.1).AND.(AGE(I).EQ.INT(TARGET(l,J))))

lBA(I)=TARGET(2,J)

IF((ITHIN.EQ.2).AND.(AGE(I).EQ.INT(TARGET(l,J))))

lTS(I)=TARGET(2,J)

35 CONTINUE

IT=IT+l

IF(I.NE.l) GOT0 50

IF(TCODE(16).EQ.3) GOT0 55

IF(AGE(16).LT.AGE(I)) GOT0 60

40 IF(Bl.LE.0.) Bl=VAL(TSl,QM1,3)

CALL CHANGE(DMIN(I),QMD(I),Pg3(I),BA(I),TS(I),IT,DMl~QMl,Pgl,Bl

1,TS1,H1,ITHIN,TCODE(I),IK,ITT)

50

55

60

325

330

331

65

340

350

70

HD(I)=Hl

GOT0 45

IF(TCODE(I-l).EQ.3) GOT0 60

IF((TCODE(I-l).EQ.2).OR.(IK.GE.l)) GOT0 40

IF(AGE(16).GT.AGE(I)) GOT0 70

DO 350 JJ=l,II

IF(II.EQ.l) IAG=IA2

IF(II.EQ.l) GOT0 330

IF((JJ.EQ.II).AND.(IR.GT.O)) GOT0 325

IAG=IAG+5

GOT0 330

IAG=IAG+IR

Al=FLOAT(IAl)

A2=FLOAT(IAG)

IF((ITT.EQ.~).oR.(IK.GE.~)) GOTO 65

CALL UNTGRO(DM2,QM2,Pg2,B2,Al,A2,BH,Bl,TSl,TS2)

IF(DM2.LT.DMl) DM2=DMl+(DMl"(.O3"(A2-Al)))

IF(QM2.LT.QMl) QM2=QMl

IF(Pg2.LT.Pgl) Pg2=Pgl

GOT0 340

CALL THNGRO(DM2,QM2,Pg2,B2,DMl,QMl,Pgl,Al,A2,BH,TSl,TS2)

IF(ANINT(B2).LT.125.) GOT0 340

IK=O

ITT=0

GOT0 331

IAl=IAG

DMl=DM2

QMl=QM2

Pgl=Pg2

TSl=TS2

Bl=B2

CONTINUE

GOT0 81 ,'

WRITE(“v75)

4 1
75 FORMAT(3X,'ERROR! You can not estimate backwards in this case.')

GOT0 140

8 1 CALL CHANGE(DMIN(I),aMD(I),Pg3(I),BA(I),TS(I),IT,DM2,~2,Pg2,B2

l,TS2,H2,ITHIN,TCODE(I),IK,ITT)

HD(I)=H2

45 IBA=BA(I)

ITPA=TS(I)

ITAGE=AGE(I)

IF(TCODE(I).EQ.4) GOT0 125

IF(ITHIN.EQ.~) GOTO 85

BA(I)=VAL(TS(I),QMD(I),3)

GOT0 125

85 TS(I)=VAL(BA(I) ,QMD(I) 15)

GOT0 125

95 DO 450 JJ=l,II

IF(II.EQ.l) IAG=IA2

IF(II.EQ.l) GOT0 430

IF((JJ.EQ.II).AND.(IR.GT.O)) GOT0 425

IAG=IAG+5

GOT0 430

425 IAG=IAG+IR

430 Al=FLOAT(IAl)

A2=FLOAT(IAG)

IF((ITT.EQ.l).OR.(IK.GE.l)) GOT0 115

110 CALL UNTGRO(DM2,QM2,Pg2,B2,Al,A2,BH,Bl,TSl,TS2)

IF(DM2.LT.DMl) DM2=DMl+(DMl*(.O3*(A2-Al)))

IF(QM2.LT.QMl) QM2=QMl

IF(Pg2.LT.Pgl) Pg2=Pgl

GOT0 440

115 CALL THNGRO(DM2,~2,P92,B2,DMl,~l,Pgl,Al,A2,BH,TSl,TS2)

IF(ANINT(B2).LT.125.) GOT0 440

IK=O

ITT=0

GOT0 110

440 IAl=IAG

DMl=DM2

QMl=QM2

Pgl=Pg2

TSl=TS2

Bl=B2

450 CONTINUE

121 BA(I)=B2

DMIN(I)=DM2

TS(I)=TS2

QMD(I) =QM2

P93(I)=P92

HD(I)=H2

125 CALL SOLVE(DMIN(I),QMD(I),Pg3(I),BA(I),TS(I),B,I,2)

GOT0 135

130 HD(I)=HD(L)

TS(I)=TS(L)

P93(I)=P93(L)

DMIN(I)=DMIN(L)

QMD(I)=QMD(L)

42
BA(I)=BA(L)

B(l,I)=B(l,L)

B(2,I)=B(2,L)

B(3,I)=B(3,L)

135 CONTINUE

IERCD=O

RETURN

140 IERCD=l

RETURN

END

****+Yw*************************************~**~*~~~**~**~ ~~~~** ****

C

C THMOM subroutine calculates the quadratic mean dbh, the minimum dbh,

C and the diameter of the 93rd percentile for an initial stand which

C has been previously thinned. This subroutine will only be used once

C during any run to get the initial start-up values.

C

Y*****YY~#*+~+**Y~+*******~**~~~**~************~ ~** ****~~**~********

5

1 0

1 5

20

25

3 0

;z

4 5

5 0

5 5

SUBROUTINE THMOM(DM,QM,Pg,Al,A2,H,Tl,Bl,B2,T2,IP)

P=FLOAT(IP)

IF(A2.LT.Al) GOT0 10

IF(B2.NE.0.) GOT0 5

P~=EXP(1.~2~~6-.20~~~*ALOG(T1)-6.~~~68/Al+.~6~4l*ALOG(H)-.O2~~~*P)

GOT0 20

P~=EXP(2.~~250-.3919~*ALOG(T1)-~.~022~/Al+.O~l86~ALOG(H)

1+.4#+4*ALOG(Bl)-.01569"P)

GOT0 20

IF(B2.NE.0.) GOT0 15

P~=EXP(1.62~1~-.200~O*ALOG(T2)-6.21844/Al+.~~68l*ALOG(H)-.O28~O*P)

GOT0 20

P~=EXP(2.~1821+.2~~6~*ALOG(B2)-.~~~6~*ALOG(Tl)-~.O~88O/Al

1+.1923*ALOG(H)-.02193"P)

IF(A2.LT.Al) GOT0 30

IF(B2.NE.0.) ~0~0 25

DM=-1.87098*ALOG(T1)+3.57714"ALOG(H)

GOT0 40

DM=-2.~~6~~*ALOG(Tl)+2.1~6~2*ALOG(H)+2.0688~*ALOG(B2)

GOT0 40

IF(B2.NE.0.) GOT0 35

DM=-2.23250*ALOG(T2)+4.30786*ALOG(H)-.44~~8*P

GOT0 40

DM=2.~0~81*ALOG(B2)-2.~~~O~*ALOG(T1)+1.8~~O~*ALOG(H)

IF(QM.LE.0.) GOT0 45

GOTO 65

IF(A2.LT.Al) GOT0 55

IF(B2.NE.0.) GOT0 50

QM~~~~(~;~1~8~-.28~08*ALOG(T1)-2.16~~1/A1+.~~l6~*ALOG(H)-.Ol~l9~P)

Bl=B2

GOTO 65

IF(B2.NE.0.) GOT0 60

Bl=EXP(-1.~~~64+O.~~~6~*ALOG(T2)-~.0~~~~/Al+l.l~626*ALOG(H)

l-.03388"P)

GOTO 65

4 3
60 Bl=EXP(.76~44*ALOG(B2)+.06726"ALOG(T1)+2.9llll/Al+,l8~~~~ALOG(H))

65 IF(QM.GT.0.) GOT0 70

QM=VAL(Bl,Tl&)

70 RETURN

C

C MOMENT subroutine is used to estimate the quadratic mean dbh, the

C minimum dbh, and the diameter of the 93rd percentile for an initial

C unthinned stand. This subroutine will only be used once for any

C given stand.

C

w**+***+w*****Y***+***********~~~~*~~~***~**~ ~~~~~~~~~** **~~~~~~~~~~

SUBROUTINE MOMENT(DM,QM,Py,A,H,T)

P9=2.24213"H"". 71401"T**(-.22932)*EXP(&967/A)

DM=2 14462*H"*.70266*T**(-.36282)*EXP(-l.96895/A)

IF(QM.LE.0.) QM=2.14462"H"* .70266*~**(-.25968) %xP(. 45967/~)

REXURN

END

C

C UNTGRO subroutine computes the stand values of an unthinned stand

C that is grown to a given age. This subroutine will be used each

C time the stand is grown until such time as the stand is thinned. I t

C will again be used on a thinned stand as soon as the stand recovers

C to carry a BA per acre of 125 sq. ft.

C

********ww*****Y****+wwwuwou++wwuuw+++++~*~*~~~~~~~~***~******~~~*****~~

SUBROUTINE UNTGRO(DM,QM,P9,B2,Al,A2,S,Bl,Tl,T2)

T2=100.~((T1/100.)**(-.87~72)+(.018~9-.~9120/S)~((A2/10.)

1**2.11947-(Al/lO.)*"2.11947))""(-1.14454)

H2=VAL(S,A2,2)

DM=2.14462*H2**.70266*T2**(-.36282)*EXP(-1.96895/~2)

QM=2.14462'+H2*" .70266*~2**(-.25968) *EXP(. 459671~2)

P9=2.24213*H2"*. 71401*T2"W(-.22932)"EXP(.4~967/A2)

B2=VAL(T2,QM,j)

IF(B2.GE.Bl) GOT0 50

B2=Bl

T2=VAL(B2,QM,5)

50 TESTl=QM/P9

IF(TESTl.GT.O.9) QM=P9*.9

TEST=DM/QM

IF(TEST.GT.0.9) DM=QM*.9

RETURN

END

*w*******~***+************~~~~*****~~~*~~~*~**~************~*~~~~~~*****

C

C SOLVE subroutine solves for the Weibull Parameters for each age.

C

**w****************Y*******~~~~***~*~*~**~**************~**~~***********

SUBROUTINE SOLVE(DM,QM,P9,Bl,T,B,J,K)

REAL B(3,16),MEAN,R1(51),R2(51)

IF(K.EQ.l) AHAT=B(l,J)

IF(K.NE.l) AHAT=DM".6

44
QM2=QM**2

Rl(l)=l.

R2(1)=16.

CHAT=O.

F=P9

COEF=2.65926

DO 15 1=1,50

MEAN=(Rl(I)+R2(1))/2.

TRIAL1=AHAT""2-QM2+(2.*AHAT*(F-AHAT)*GAMMA(l.+l./Rl(I)))

l/(COEF"*(1./R1(I)))+(F-AHAT)**2~(GAMMA(l.+2,/Rl(I)))

2/(COEF*"(2./Rl(I)))

TRIAL2=AHAT"*2-BM2+(2."AHAT"(F-AHAT)*GAMMA(l.+l./M~))

l/(COEF*"(l./MEAN))+(F-AHAT)""2"(GAMMA(l.+2./MEAN))

2/(COEF**(2./MEAN))

IF((TRIALl+TRIAL2).LE.O.) GOT0 5

Rl(I+l)=MEAN

R2(I+l)=R2(1)

GOT0 10

5 Rl(I+l)=Rl(I)

R2(I+l)=MEAN

10 1F((R2(1+1)-R1(1+1)).LE.1.0E-4) GOT0 25

1 5 CONTINUE

IF(CHAT.EQ.0.) WRITE(1.20) I

20 FORMAT(/,/,5X,'A unique CHAT was not found for table#',Is,/,/)

CHAT=lOO.

GOT0 30

25 CHAT=(R2(I+l)+R1(1+1))/2.

30 IF(K.NE.l) B(l,J)=AHAT

B(2,J)=(F-AHAT)/(COEF**(l./CHAT))

B(s,J)=CHAT

35 IF(Bl.LE.0.) B1=~.4~41~4E-~*T*(B(1,J)**2+2.*B(1,J)*B(2~J)*GA~A

l(l./B(3,J)+l.)+B(2,J)**2*GAMMA(2./B(3,J)+l.))

IF(DM.LE.0.) DM=B(l,J)/.6

RETURN

END *#****##**###**####*****################*#*######**# #** #*###********

C

c THNGRO subroutine is used to estimate the survival and growth of a

C thinned stand for each growth period until the BA per acre recovers

c t0 125 sq. ft. The program then switches back to use the UNTGRO

C subroutine.

C

 ##** *###**####***######**********######*##*#************************

SUBROUTINE THNGRO(DM,QM,P9,B2,DMl&8'%P91,A1,A2,S,Tl,T2)

AGR=A2/Al

T2=100.0*((T1/100.0)**(-1.06699)+(.00941+1~.4~1~/S)*

1((A2/10.0)**.2968~-(A1/10.0)**.2968~))**(-.9~~22)

IF(T2.GT.Tl) T2=Tl

DM=(-529.896+.59995*T1+529.896*AGR-.59995*Tl*AGR+AGR*DMl

1**3.39763)**(1./3.39763)

~=(-lO9.98~+.12169*T1+109.98~*AGR-.12169*T1*AGR+AGR*BMl

1**2.39998)**(1./2.39998)

Pg=(-146.841+.1~~98*T1+146.841*AGR-.1~~98*T1*AGR+AGR*P91

1""2.33778)""U./2.33778)

45
TESTl=QM/Pg

IF(TESTl.GT.0.9) QM=Pg*.g

B2=VAL(T2,QM,j)

TEST=DM/QM

IF(TEST.GT.0.9) DM=O.g*QM

2 0 RETURN

END

**************Y~ YYYYYYYYY+YYYYYYIWWY** *********~~~*********~~~**~~**

C

C CHANGE subroutine computes the change in the stand values that occur

C due to the effects of thinning.

C

+***Y~~**++~Y*Y**+********~~*~~****~~ ~~** **********~*****~~ ~** **

SUBROUTINE CHANGE(DM2,QM2,P92,B2,T2,IT,DMl,QMl,P~l,Bl,Tl,Hl

l,ITHIN,ITCD,IK,ITT)

IF((ITHIN.EQ.l).AND.(Bl.LE.B2)) GOT0 20

IF((ITHIN.EQ.2).AND.(Tl.LE.T2)) GOT0 20

IF((ITHIN.EQ.2).AND.(IT.EQ.l)) B2=Bl"(l.-(l.-T2/Tl)"".83888)

1"" -71395

IF((ITHIN.EQ.2).AND.(IT.GE.2)) B2=Bl*(l.-(l.-T2/Tl)"".85566)

1"". 56963

BR=B2/Bl

IF(IT.GE.2) GOT0 5

c

C First thinning

C

DM2=1.28767"DMl-.4104O*BR

C

C A1

C

5

QM2=1.27816+.95387*QM1+.008~8*H1-1.26501*BR

IF(ITHIN.EQ.l) T2=VAL(B2,QM2,5)

IF(ITHIN.EQ.2) B2=VAL(T2,QM2,3)

P92=1.08464+.g7212*Pgl-.67~33*BR

GOT0 25

c

C Settings if there is insufficient BA/ac or trees/at to thin

QM2=1.06959*QMl-.35092"BR

IF(ITHIN.EQ.l) T2=VAL(B2,QM2,5)

IF(ITHIN.EQ.2) B2=VAL(T2,QM2,3)

P92=.g5074"P~l+.Ol~4g*Hl-.29853*BR

GOT0 25

I thinnings after the first thinning

DM2=2.63243+.'76635*DM1+.06102*Hl-5.14425*BR . .

C

20 ITCD=4

DM2=DMl

QM2=QMl

Pg2=Pgl

B2=Bl

T2=T1

IT-IT-1

GOT0 30

c

c Test for crossover
C

25 TESTl=QM2/P92

IF(TESTl.GT.0.9) QM2=P92*.9

IF((TESTl.GT.O.g).AND.(IT.EQ.l)) T2=VAL(B2,QM,5)

IF((TESTl.GT.O.g).AND.(IT.EQ.2)) B2=VAL(T2,QM2,3)

TEST=DM2/QM2

IF(TEST.GT.0.9) DM2=QM2*.9

C

C Test for stand recovery from previous thinning effects

C

30 IF(ANINT(B2).LT.125.) GOT0 35

IK=O

ITT=0

3 5 RETURN

END

**YYYw***wYw**w+wYY ~~~** ~~**********~~***~*****~*~~***~*~***********

C

C The STDTBL subroutine constructs the output stand tables requested

C by the user by computing the final table values and then adjusting

C these values for rounding error or the loss of partial trees in the

C distribution. This subroutine also calls the subroutines and

C functions to determine the volume or weight values.

C

C -----------------------------------------------------------------------

C

C

C

C

C

C

C

C

C

C

C

C

C

C

C

C

C

C

C

COMMON Variable Definitions

/INFO/ (These variables were defined in the INPUT subroutine)

/TNTYPE/ (These variables were defined in the INPUT subroutine)

/STTAB/

SUMT - Total adjusted number of trees in a stand table

SUM - Total adjusted BA per acre for a stand table

BBA - Adjusted BA for a given diameter class

IDM - Array to hold the values of the minimum & maximum Dbh

/TABVAL/

TC - Total trees within a diameter class

H - Height of a given diameter class

TL - The values of a given table line

BL - The bottom line values of a the stand tables

Y++~*Y*++**w~+***+++~*~***~ ~** ******~******~~*****~~~********~~****~

SUBROUTINE STDTBL

CHARACTER"5 OUT,ANS

CHARACTER*60 TITLE

CHARACTER"15 DSKF

INTEGER AGE(16),TCODE(16),STC,BFCD,SUMT(l~),IDM(2,1~)

REAL B(3,16),HD(16),TS(16),BAo,QMDo,TL(35,7,15~,~~~7,~5~

l,CL(7),CT(7),BBA(35,2,15),TC(35,2,15),P93(16),SUM(l5),TD(3)

2,H(3~,1~),AINP(16),TARGET(2,lO),DMIN(l6),IBA,ITPA

COMMON/OUTPUT/OUT,TITLE

47
COMMON /INFO/NTAB,TCODE,BA,BH,AGE,BFCD,QMD,P93,STC,IPTHIN

1,ICTCD,IK,ITAB,TD,ITHIN,B,TS,HD,IWEIB,B~S,ITAGE,BSAG~SI,IPG,AI~

COMMON /STTAB/ SUMT,SUM,BBA,IDM

COMMON /TABVAL/ TC,H,TL,BL

COMMON /TNTYPE/ DMIN,ITT,TARGET,IBA,ITPA,NTHIN

K=l

KCOUNT=O

DO 5 L=1,15

SUMT(L)=O

SUM(L)=O.

DO 4 1=1,35

H(I,L)=O.

DO 2 J=1,7

TL(I,J,L)=O.

BL(J,L)=O.

2 CONTINUE

DO 3 N=1,2

IDM(N,L)=O

BBA(I,N,L)=O.

TC(I,N,L)=O.

z

CONTINUE

CONTINUE

5 CONTINUE

IT=IPTHIN

DO 160 L=l,NTAB

C

C Cumulative Distribution Function

C

CUML=O.

IF(TCODE(L).EQ.3) N=2

IF(TCODE(L).NE.3) N=l

DO 30 1=1,35

IF(TS(L)-CUML-l.OE-5)30,20,20

20 DU=FLOAT(I)+.55

IF(DU.LE.B(l,L)) GOT0 30

EX=((DU-B(l,L))/B(2,L))**B(3.L)

PROB=l.

IF(EX.LT.85.)PROB=l.-EXP(-EX)

CUMU=TS(L)"PROB

TC(I,N,L)=CUMU-CUML

CUML=CUMU

30 CONTINUE

C

c Determine the minimum and maximum Dbh from the distribution

C

IDM(l,L)=gg

IDM(2,L)=-1

DO 35 I=1935

IF(TC(I,N,L).LT.0.5) GOT0 35

IDM(l,L)=MINO(IDM(l,L),I)

IDM(2,L)=MAXO(IDM(2,L),I)

35 CONTINUE

IF(L.EQ.l) GOT0 800

C

4 8
C Determine if the estimate of trees within a diameter class for the

C after thin stand exceeds the number within that class before

c thinning and adjust accordingly.

C

IF((TCODE(L).EQ.~).AND.(IDM(1,L).LT.IDM(l,L-l)).AND.(TCODE(L-l)

l.EQ.2)) IDM(l,L)=IDM(l,L-1)

IF((TCODE(L).EQ.3).AND.(IDM(2,L).GT.IDM(2,L-l)).AND.(TCODE(L-l)

l.EQ.2)) IDM(2,L)=IDM(2,L-1)

C

C Recover any partial trees in diameter classes less than the minimum

C

800 TCl=O.

IM=IDM(l,L)-1

IF(IM.LE.0) GOT0 1000

DO 900 I=l,IM

TCl=TCl+TC(I,N,L)

TC(I,N,L)=O.

900 CONTINUE

IF(TCl.LT.0.5) TC(IM+l,N,L)=TC(IM+l,N,L)+TCl

IF((TCl.GE.O.5).AND.((TCODE(L).NE.3).0R.(L.EQ.l))) IDM(l,L)=IM

IF((TCl.GE.O.5).AND.((TCODE(L).NE.3).0R.(L.EQ.l))) TC(IM,N,L)=TCl

IF(L.EQ.l) GOT0 1000

IF((TCl.GE.O.5).AND.(TCODE(L).EQ.3).AND.(TCODE(L-l).EQ.2).AND.

l(IDM(l,L).GT.IDM(l,L-1))) TC(IM,N,L)=TCl

IF((TCl.GE.O.5).AND.(TCODE(L).EQ.3).AND.(TCODE(L-l).EQ.2).AND.

l(IDM(l,L).EQ.IDM(l,L-1))) TC(IM+l,N,L)=TC(IM+l,N,L)+TCl

IF((TCl.GE.O.5).AND.(TCODE(L).EQ.~).AND.((TCODE(L-l).NE.2).OR.

l(IDM(l,L).LT.IDM(l,L-1)))) TC(IM+l,N,L)=TC(IM+l,N,L)+TCl

IF((TCl.GE.O.5).AND.(TCODE(L).EQ.3).AND.(TCODE(L-l).EQ.2).AND.

l(IDM(l,L).GT.IDM(l,L-1))) IDM(l,L)=IM

IF((IDM(l,L).LT.IDM(1,L-1)).AND.(TCODE(L).EQ.~).AND.(TCODE(L-l)

l.EQ.2)) IDM(l,L)=IDM(l,L-1)

C

C Recover any partial trees in diameter classes greater than the

c maximum

C

1000 TC2=0.

IX=IDM(2,L)+l

IF(IX.GT.35) GOT0 1100

DO 1050 1=1X,35

TC2=TC2+TC(I,N,L)

TC(I,N,L)=O.

1050 CONTINUE

IF(TC2.LT.0.5) TC(IX-l,N,L)=TC(IX-l,N,L)+TC2

IF((TC2.GE.O.5).AND.((TCODE(L).NE.3).0R.(L.EQ.l))) IDM(2,L)=IX

IF((TC2.GE.O.5).AND.((TCODE(L).NE.3).0R.(L.EQ.l))) TC(IX,N,L)=TC2

IF(L.EQ.l) GOT0 1100

IF((TC2.GE.O.5).AND.(TCODE(L).EQ.3).AND.(TCODE(L-l).EQ.2).AND.

l(IDM(2,L).LT.IDM(2,L-1))) TC(IX,N,L)=TC2

IF((TC2.GE.O.5).AND.(TCODE(L).EQ.3).AND.(TCODE(L-l).EQ.2).AND.

l(IDM(2,L).EQ.IDM(2.L-1))) TC(IX-l,N,L)=TC(IX-l,N,L)+TC2

IF((TC2.GE.O.5).AND.(TCODE(L).EQ.3).AND.((TCODE(L-l).NE.2).OR.

l(IDM(2,L).GT.IDM(2,L-1)))) TC(IX-l,N,L)=TC(IX-l,N,L)+TC2

49
IF((TC2.GE.O.5).AND.(TCODE(L).EQ.3).AND.(TCODE(L-l).EQ.2).AND.

l(IDM(2,L).LT.IDM(2,L-1))) IDM(2,L)=IX

IF((IDM(2,L).GT.IDM(2,L-l)).AND.(TCODE(L).EQ.3).AND.(TCODE(L-l)

l.EQ.2)) IDM(2,L)=IDM(2,L-1)

C

C Determine which Height x Dbh class equation to use

C

1100 A=FLOAT(AGE(L))

TRS=TS(L)

IF(TCODE(L).EQ.3) IT=IT+l

IF(TCODE(L).EQ.3) ITT=1

M=O

IF(TCODE(L).EQ.3) M=l

IF((M.EQ.O).AND.(IT.LE.O)) II=1

IF((M.EQ.O).AND.(IT.GE.l)) II=2

IF((M.GE.l).AND.(IT.LE.O)) II=2

IF((M.GE.l),AND.(IT.GE.l)) II=3

IF((M.GE.l).AND.(L.EQ.l)) II=4

IF(L.GT.l) GOT0 1150

IF((M.EQ.l).AND.(IT.GE.1).AND.(IWEIB.GE.l).AND.(IP~IN.LE.O)) II=1

IF((M.EQ.1).AND.(IT.GE.1).AND.(IWEIB.GE.l).AND.(IP~IN.GE.l)) II=2

IF((L.EQ.1).AND.(M.EQ.1).AND.(IT.GE.1).AND.(IWEIB.GE.l).AND

l.(IPTHIN.EQ.l).AND.(ITAGE.EQ.AGE(L))) II=1

IF((L.EQ.l).AND.(IWEIB.GE.l).AND.(TCODE(L).EQ.3)) TRS=BTTS

1150 DO 40 I=IDM(l,L),IDM(2,L)

DBH=FLOAT(I)

GOTO(36,37,38,39) ,I1

C

C Heights for an unthinned stand

C

36 H(I,L)=EXP(1.20324+.~5123*ALOG(HD(L))-1.~6~~5/A+.O48~l

1"ALOG(TRS/DBH)+g.O5758/(A*DBH)-3.ll4OO/DBH)

GOT0 40

C

C Heights for a thinned stand grown to the next age before thinning

C again

C

37 H(I,L)=EXP(1.12436+.80562*ALOG(HD(L))-3.88O53/A+.O4~33

l"ALOG(TRS/DBH)+42.2794/(A*DBH)-4.816%/DBH)

GOT0 40

C

C Heights for a stand immediately following thinning

C

38 ;;&“l,““.L-1’

C

C Heights for an initial thinned stand with no closing values from

C a previous run of this program

C

39 H(I,L)=EXP(.g3576+.8342l*ALOG(HD(L))-2,45172/A+.O4747

l"ALOG(TRS/DBH)+24.5897/(A*DBH)-3.84592/DBH)

40 CONTINUE

C

C Adjustments for rounding error

50
C

4 5

1250

1300

1301

1375

1400

1450

600

1500

1350

1200

IF((L.EQ.l).OR.(TCODE(L).NE.3).0R.(AGE(L).NE.AGE(L-l))) GOT0 1250

DO 45 1=1,35

IF(TC(I,N,L).GT.TC(I,N-l,L-1)) TC(I,N,L)=TC(I,N-l,L-1)

CONTINUE

TTr=o.

DO 1300 1=1.35

H(I,L)=ANINT(H(I,L))

TC(I,N,L)=ANINT(TC(I,N,L))

TTT=TTT+TC(I,N,L)

CONTINUE

IQM=NINT(QMD(L))

N2=IDM(2,L)

ISTP=l

TT=ANINT(TS(L))-TTT

IF(lT) 1400,50,1301

IF((TCODE(L).EQ.3).AND.(L.GT.l)) GOT0 1350

DO 1375 I=IQM,IDM(Z,L)

IF(TT.GT.2.) AA=2.

IF(TT.LE.2.) AA=TT

TC(I,N,L)=TC(I,N,L)+AA

'M'=lT-AA

IF(TT.LE.0.) GOT0 600

CONTINUE

GOT0 600

DO 1450 I=IDM(l,L),IDM(2,L)

IF(ABS(TT).GT.2.) AA=2.

IF(ABS(TT).LE.2.) AA=ABS(TT)

IF(AA.GT.TC(I,N,L)) AA=TC(I,N,L)

TC(I,N,L)=TC(I,N,L)-AA

TT=TT+AA

IF(TT.GE.0.) GOT0 600

CONTINUE

IDM(l,L)=VV

IDM(2,L)=-1

DO 1500 I=1135

IF(TC(I,N,L).LT.0.5) GOT0 1500

IDM(l,L)=MINO(IDM(l,L),I)

IDM(2,L)=MAXO(IDM(2,L),I)

CONTINUE

GOT0 50

DO 1200 I=IQM,N2,ISTP

IF(TT.GT.2.) AA=2.

IF(TT.LE.2.) AA=TT

A2=TC(I,N-l,L-l)-TC(1,N.L)

IF((A2.LE.2.).AND.(A2.LE.AA)) TC(I,N,L)=TC(I,N,L)+A2

IF(((A2.LE.2.).AND.(A2.GT.AA)).OR.(A2.GT.2.))

1 TC(I,N,L)=TC(I,N,L)+AA

IF((A2.LE.2.).AND.(A2.LE.AA)) TT=TT-A2

IF(((A2.LE.2.).AND.(A2.GT.AA)).OR.(A2.GT.2.)) TT=TT-AA

IF(TT.LE.0.) GOT0 600

CONTINUE

N2=IDM(l,L)

ISTP=-1

5 1
GOT0 1350

C

C Calculate the final values for the stand table

C

50 DO 46 I=IDM(l,L),IDM(2,L)

D=FLOAT(I)

BBA(I,N,L)=VAL(TC(I,N,L),D,s)

SUM(L)=SUM(L)+BBA(I,N,L)

SUMT(L)=SUMT(L)+NINT(TC(I,N,L))

46 CONTINUE

GOT0(51,55,55),ITAB

51 CALL VOLUME(IDM(1,L),IDM(2,L),TD,L,N,IT,IPTHIN,II)

IF(IDM(2,L).LT.10) GOT0 159

CALL BFVOL(IDM(2,L),BFCD,L,N,II,IT)

GOT0 159

55 CALL WEIGHT(IDM(1,L),IDM(2,L),A,TD(1),L,N,ITAB,IT,IPTHIN,II)

159 IF(IT.GE.l) IPTHIN=IPTHIN+l

160 CONTINUE

C

C Output the finished stand table

C

161 KCOUNT=KCOUNT+l

WRITE(K,'(lH1,/,/,6X,A60,/)') TITLE

WRITE(K.500) NINT(AINP(l))

IF(AINP(2).LE.O.) GOT0 162

WRITE(K.501) AINP(2)

GOT0 163

162 WRITE(K.502) NINT(AINP(3)),NINT(AINP(4))

163 IF(AINP(5).LE.O.) GOT0 164

;;;~;;i503) AINP(5)

164 IF(AINP(6).LE.O.) GOT0 165

WRITE(K,504) AINP(6)

GOT0 166

165 WRITE(K,505) NINT(AINP(7))

166 IF(AINP(8).LE.O.) WRITE(K,506)

IF(AINP(8).GT.O.) WRITE(K,507) NINT(AINP(9))

IF(AINP(g).LE.O.) GOT0 167

WRITE(K,508) NINT(AINP(lO))

IF(AINP(ll).GT.O.) WRITE(K,509) AINP(ll)

IF(AINP(12).GT.O.) WRITE(K,510) AINP(12)

IF(AINP(13).LE.O.) GOT0 167

WRITE(K.511) AINP(13),AINP(14),AINP(15)

500 FORMAT(/,GX,'Original Inputs:',/,lOX,'Age =',Ij)

501 FORMAT(lOX,'Height of dominants and codominants =',F5.1)

502 FORMAT(lOX,'Site index =',I3,' ( Base age',Is,')')

503 FORMAT(lOX,'Trees surviving =',F5.0)

504 FORMAT(lOX,'Basal area =',F6.1)

505 FORMAT(lOX,'Trees planted =',14)

506 FORMAT(lOX,'Previously unthinned stand')

507 FORMAT(lOX,'Previously thinned ',12,' times')

508 FORMAT(lOX,'Age at last thinning =',I3)

509 FORMAT(lOX,'Basal area after the last thinning =',F6.1)

510 FORMAT(lOx,'Trees surviving after the last thinning =',F6.1)

52
511 FORMAT(6X,'Closing Values From Previous Run:',/,lOX,'A = ‘,F’7.3,/

l,lOX,'Quadratic mean =' ,F7.3,/,10X,'Diameter of the 93rd percent'

2,'ile =',F7.3)

167 WRITEWt’(/./,/)‘)

IF (KCOUNT.GT.l) GOT0 168

IF(OUT.EQ.'CON:') PAUSE

168 DO 80 L=l,NTAB

IF(KCOUNT.GT.l) GOT0 60

IF(IPG.EQ.l) WRITE(K,'(lHl)')

60 WRITE(K,'(/,6X,A60)') TITLE

IF(TCODE(L).EQ.3) N=2

IF(TCODE(L).NE.3) N=l

65 IF((TCODE(L).EQ.l).OR.(TCODE(L).EQ.4)) WRITE(K&)

IF(TCODE(L).EQ.2) WRITE(K.150)

IF(TCODE(L).EQ.3) WRITE(K.155)

IF((TCODE(L).EQ.4).AND.(ITHIN.EQ.l)) WRITE(K,146)

IF((TCODE(L).EQ.4).AND.(ITHIN,EQ.2)) WRITE(K,147)

IF(ITAB.EQ.2) WRITE(K.310)

IF(ITAB.EQ.3) WRITE(K,320)

IF(STC.GE.2) WRITE(K,120)

WRITE(K,127) AGE(L),HD(L),QMD(L)

IF(ITAB.GT.l) GOT0 376

IF(BFCD.EQ.l) WRITE(K.130)

IF(BFCD.EQ.2) WRITE(K,135)

IF(BFCD.EQ.3) WRITE(K.140)

IF(STC.LE.l) WRITE(K,lbl) NINT(TD(l)),NINT(TD(2)),NINT(TD(3))

IF(STC.GE.2) WRITE(K,142) NINT(TD(l)),NINT(TD(2)),NINT(TD(3))

IF(STC.LE.l) WRITE(K,143)

IF(STC.GE.2) WRITE(K$$+)

GOTO 377

376 WRITE(K, 340)

IF(STC.LE.l) WRITE(K,341) NINT(TD(l))

IF(STC.GE.2) WRITE(K,342) NINT(TD(l))

377 IF(STC.GE.2) GOT0 86

DO 85 I=IDM(l,L),IDM(2,L)

BB=BBA(I,N,L)

IF(ITAB.EQ.l) WRITE(K,115)I,NINT(TC(I,N,L)),BB,NINT(H(I~L))

l,(TL(I,J,L),J=l,7)

IF(ITAB.GT.l) WRITE(K,325) I,NINT(TC(I,N,L)),BB,NINT(H(I,L))

l,(TL(I,J,L), J=1,7)

8 5 CONTINUE

86 IF(ITAB.GT.l) GOT0 350

IF(STC.EQ.l) WRITE(K,105)SUMT(L),SUM(L),(BL(J,L),J=1,7)

IF(STC.GE.2) WRITE(K,llO)SUMT(L),SUM(L),(BL(J,L),J=l,7)

GOT0 351

350 IF(STC.EQ.l) WRITE(K.330) SUMT(L),SUM(L),(BL(J,L), J-1.7)

IF(STC.EQ.2) WRITE(K,335) SUMT(L).SU;&).(BL(J.L), J-1,7)

351 WRITE(K,125) NINT(BSAG),NINT(SI),Pg3

WRITE(K,126) B(l,L),B(2,L),B(3,L)

IF(KCOUNT.GT.l) GOT0 352

IF(OUT.EQ.'CON:') WRITE(K,'(/)')

IF(OUT.EQ.'CON:') PAUSE

352 IF((TCODE(L).EQ.3).AND.(ICTCD.EQ.l))

GOT0 80

GOT0 100
C

C Construct the cut table

c

100

101

IF(KCOUNT.GT.l) GOT0 101

IF(IPG.EQ.l) WRITE(K,'(lHl)')

IF((L.EQ.l).OR.(TCODE(L-l).NE.2).0R.(AGE(L-l).NE.AGE(L))) GOT0 104

XSUM=SUM(L-l)-SUM(L)

ISUMT=SUMT(L-l)-SUMT(L)

Q=VAL(XSUM,FLOAT(ISUMT),4)

WRITE(K,'(/,6X,A60)') TITLE

WRITE(K,148)

IF(ITAB.EQ.2) WRITE(K.310)

IF(ITAB.EQ.3) WRITE(K,320)

WRITE(K.127) AGE(L),HD(L),Q

IF(ITAB.GT.l) GOT0 374

IF(BFCD.EQ.l) WRITE(K,130)

IF(BFCD.EQ.2) WRITE(K,135)

IF(BFCD.EQ.3) WRITE(K,140)

WRITE(K,141) NINT(TD(l)),NINT(TD(2)),NINT(TD(3))

WRITE(K,143)

GOTO 375

WRITE(K,340)

WRITE(K,341) NINT(TD(l))

DO 200 I=IDM(l,L-l),IDM(2,L-1)

IPA=NINT(TC(I,l,L-l)-TC(I,2,L))

IF(IPA.LE.0) GOT0 200

BB=BBA(I,l,L-l)-BBA(I.2.L)

IF(H(I,L).GT.O.) Hl=(H(I,L-l)+H(I,L))/2.

IF(H(I,L).LE.O.) Hl=H(I,L-1)

DO 102 J=1,7

CL(J)=TL(I,J,L-l)-TL(I,J,L)

IF(ITAB.GT.l) GOT0 201

WRITE(K,115) I,IPA,BB,NINT(Hl),(CL(J), J=1,7)

GOT0 200

WRITE(K,325) I,IPA,BB,NINT(Hl),(CL(J), J=1,7)

CONTINUE

DO 103 J=1,7

CT(J)=BL(J,L-l)-BL(J,L)

IF(ITAB.GT.l) GOT0 203

WRITE(K,105)ISUMT,XSUM,(CT(J), J=1,7)

GOT0 79

WRITE(K,330) ISUMT,XSUM,(CT(J), J=1,7)

GOT0 79

WRITE(K,204)

FORMATt/,/,3Xt77( '*'),/,3X,'No cut table can be output without '

1,'both the before and after thinned tables',/,3X,77('*'),/)

IF(KCOUNT.GT.l) GOT0 80

IF(OUT.EQ.'CON:') WRITE(K,'(/)')

IF(OUT,EQ.'CON:') PAUSE

CONTINUE

IF(KCOUNT.GT.l) GOT0 81

WRITE(*,400)

FORMAT(6X,'Do you want to save your output on a disk file?',/

1,10x, 'Y = Yes',/,lOX,'N = No (")',/)

374

375

102

201

200

103

203

104

204

7 9

80

400

54
READ(*,' (A5)‘) ANS

IF((ANS.EQ.'N').OR.(ANS.EQ.'n').OR.(ANS.EQ.' ')) GOT0 82

WRITE(",401)

401 FORMAT(GX,'Enter output file name.',/)

READ(*,' (A15)') DSKF

OPEN(K,FILE=DSKF,STATUS='NEW')

GOT0 161

81 CLOSE(2)

82 L=NTAB

AINP(l)=FLOAT(AGE(L))

AINP(2)=HD(L)

AINP(3)=SI

AINP(4)=BSAG

AINP(5)=TS(L)

AINP(G)=O,

AINP(7)=0.

AINP(8)=FLOAT(ITT)

AINP(g)=FLOAT(IT)

AINP(lO)=FLOAT(ITAGE)

AINP(ll)=IBA

AINP(12)=ITPA

AINP(13)=B(l,L)

AINP(14)=QMD(L)

AINP(l5)=P93(L)

AINP(16)=IWEIB

C

C Stand table FORMAT specifications

C

310 FORMAT(30X,'GREEN WEIGHT(POUNDS)')

320 FORMAT(31X"DRY WEIGHT(POUNDS)')

325 F0RMAT(215,F6.1,14,F8.0,1X,3(F8.0,1X,F8.0))

330 lFy4;(80(’ -'),/,5X,15,F6.1,4X,F8.0,1X,3(F8.0,1X,F8.0)

'z'))

335 ~0~MAT(5X.I5,F6.1.4X.F8.0,1X,3(F8.0,1X,F8.0),/,80('='))

340 FORMAT(22X,'TOTAL', 6x ,2('TOTAL WEIGHT', 5X) ,' WEIGHT OF',/,22X

l,'CROWN',llX,'OF',l5X,'OF',llX,'MERCH STEM')

341 FORMAT(?X,'DBH STEMS BASAL AV. WEIGHT',9X,'WOODY',12X,'BOLEt,13X

1,12,",' ,/,lX,'CLASS AREA HT. W/FOL. COMPONENT',25X,

2'TOP DIA.',/,13X,'sq.',l6X,14('-'),3X,14('-'),3X'l4('-'),/'

in. no. ft. ft. o.b. o.b. i.b.

2"

o.b. i.b.'

.

',/ 80(‘-‘))

342 ~oRMAT;)&~'STEM~%SAL'AV. WEIGHT,,~~,,W~~DY,,~~~"B~LE',~~~,I~,

1 "",/,12X,'AREA HT. W/FOL. COMPONENT',25X,'TOP DIA.',/,

213x,‘sq.‘,16x,14(‘-‘),3x,14(‘-‘),3x,15(’-’ i :./,7X,'no. ft. ft.'

o.b. o.b. i.b. o.b.

;iO('-'))

. . o.b. i.b.',/

120 ;ORMAT(29X,'(SUMMARY INFORMATION)"/)

105 FORMAT(80('-' ),/'7X,14,F6.1,4X,6(1X,F7.0),2X,F7.0,/,80('='))

110 F0RMAT(/,7X,14,F6.1,4X,6(1X,F7.0),2X,F7.0,/,80('~'))

115 FORMAT(2X,I3,2X,I4,F6.l,lX,I3,6(2X,F6.0),3X,F6.O)

125 FORMAT(3X,'SI(BASE AGE ',13,')='$+,' FEET;',' 93RD PERCEN'

l,'TILE=',F7.3)

126 FORMAT(3X,'WEIBULL PARAMETERS: 'A'=',F7.3,'; ‘B’=‘,F7.3

1,‘; ‘tct’=’ ‘F7.3)
127 FORMAT(35X,'(PER ACRE)',/,/,6X,'AGE=',I5,/,6X,'DOMINANT HEIGHT='

l,F5.1,’ FEET',/,6X,'QUADRATIC MEAN DBH=',F7.3,' INCHES',/,80('='))

130 FORMAT(34X,'CUBIC FOOT VOLUME OF STEMS',llX,'INTER.1/4')

135 FORMAT(34X,'CUBIC FOOT VOLUME OF STEMS',12X,'SCRIBNER')

140 FORMAT(34X,'CUBIC FOOT VOLUME OF STEMS',13X,'DOYLE')

141 FORMAT(2X,'DBH STEMS BASAL AV.',12X,'TO AN O.B. TOP DIAMETER OF'

l,llX,'B.F. VOL.',/,' CLASS',7X,'AREA HT. ',3(3X,12,' INCHES',4X)

2,'8-IN. TOP')

142 FORMAT(TX,'STEMS BASAL AV.', 12X,'TO AN O.B. TOP DIAMETER OF',llX,

1'B.F. VOL.',/,13X,'AREA HT.

143 FORMAT(14X,'sq.'J'X,3( ------------

1' ft. o.b.

144 FORMAT(14X,'sq.' ------------

1' o.b. i.b.'.2i' o.b.

145 FORMAT(/,/,33X,'LOBLOLLY PINE',/,29X,'NO THINNING THIS YEAR')

146 FORMAT(21X,'(INSUFFICIENT BASAL AREA/ACRE TO THIN)')

147 FORMAT(24X,'(INSUFFICIENT TREES/ACRE TO THIN)')

148 FORMAT(/,/,33X,'LOBLOLLY PINE',/,23X,'STAND COMPONENT REMOVED BY'

l,lX,'THINNING')

150 FORMAT(/,/,33X,'LOBLOLLY PINE',/,26X,'BEFORE THINNING'

1,' INFORMATION')

155 FORMAT(/,/,33X,'LOBLOLLY PINE',/,24X,'RESIDUAL STAND -- AFTER'

l,lX,'THINNING')

RETURN

END

************************************************************************

C

C GAMMA function used by SOLVE subroutine to solve for the Weibull

C parameters.

C

*******************#****************************************************

FUNCTION GAMMA(AA)

G=l.

IF(AA-1.) 4,5,1

1 AA=AA-1.

IF(AA-1.) 3,3,2

2 G=G*AA

GOT0 1

3 CALL POLMUL(AA,V)

GAMMA=G*V

RETURN

4 CALL POLMUL(AA,V)

GAMMA=V/AA

5 RETURN

END

************************************************************************

C

C POLMUL subroutine is used by the GAMMA function

C

************************************************************************

SUBROUTINE POLMUL(A,V)

REAL W(g),A,V

56
DATA W/l.O,- .577191652,.9882o5891,-.897056937

1,.918206857,- .756704078,.4821g93g4,-.lg~~2~818

2, -0358683431

;;";8~+;*;'9'

5 "=W(g-$A*"

RETURN

END

~~****+~*Y++******++~*~******~~~************~****~~*~****~**~****~~~~~*~

C

C VOLUME subroutine computes the cubic-foot volumes both inside and

c outside bark for either a thinned or unthinned stand to the given

C top diameters specified in INPUT subroutine.

C

+++++**+Y*w+*w**+++***~*~*******~*************~***~**********~*******~**

SUBROUTINE VOLUME(MN,MX,TD,L,N,IT,IP,II)

REAL TL(35,7,15),TD(3),TC(35,2,15),H(35,15),BL(7,15)

COMMON /TABVAL/ TC,H,TL,BL

DO 50 M=MN,MX

D=FLOAT(M)

DL=ALOG(D)

Hl=ALOG(H(M,L))

IF(II.EQ.1) GOT0 15

IF((IT.GT.l).OR.(IP.GE.l)) GOT0 16

C

C Total volume -- unthinned stands

C

15 Vl=EXP(-5.73174+1.89645*DL+l.OlO25*Hl)*TC(M,N,L)

V2=EXP(-6.8971g+1.88683"DL+1.24584*Hl)*TC(M,~,L)

GOT0 20

C

C Total volume -- thinned stands

C

16 Vl=EXP(-5.81609+2.0364*DL+.g5354*Hl)*TC(M,N,L)

V2=EXP(-6.88533+2.04100*DL+1.15002*H1)*TC(M,N,L)

20 J=l

DO 100 1=1,3

VMO=O.

VMI=O.

GD=TD(I)+l.

IF(D.LT.GD) GOT0 30

C

C Merchantable volume to a top diameter of TD(1) -- unthinned stands

C

IF(II.EQ.~) ~0~0 25

IF((IT.GT.~).oR.(IP.GE.~)) GOTO 26

25 vMO=EXP(-.79902"(TD(I)""4.~7575/D""4.68617))*Vl

VM1=EXP(-.93801*(TD(1)**4.~5034/D**~.70603))*V2

GOT0 30

C

C Merchantable volume to a top diameter of TD(1) -- thinned stands

C

26 VMO=EXP(-1.71891*(TD(I)**5.26l78/D**5.262~O))*Vl

VMI=EXP(-2.17744"(TD(I)**5.239~6/D""5.31~08))*V2

5 7
30 TL(M,J,L)=ANINT(VMO)

TL(M,J+l,L)=ANINT(VMI 1

J=J+2

100 CONTINUE

50 CONTINUE

DO 150 M=MN,MX

DO 125 5=1,6

IF(TL(M,J,L).LT.O.) TL(M,J,L)=O.

BL(J,L)=BL(J,L)+TL(M,J,L)

125 CONTINUE

150 CONTINUE

RETURN

END

C

C The WEIGHT subroutine computes either the green or dry weights for

C the stand both inside and outside bark to the top diameter given in

C the INPUT subroutine. Equations used will depend upon whether the

C stand is thinned or unthinned.

C

*ww+ow**YYY*YwYw*w+YYWWOOOWOYW+*YYYWYY+W*~~~~~*~~~~~~~******~~*~~*~~*~**

SUBROUTINE WEIGHT(MN,MX,AG,TD,L,N,ITAB,IT,IP,II)

REAL TL(35,7,15),BL(7,15)(TC(35,2,15),H(35,15)

COMMON /TABVAL/ TC,H,TL,BL

DO 100 M=MN,MX

D=FLOAT(M)

DL=ALOG(D)

Hl=ALOG(H(M,L))

IF(ITAB.EQ.3) GOT0 20

C -----------------------------------------------------------------------

C

C Green-weight estimates

C

C -----------------------------------------------------------------------

C

C Total bole weight -- inside and outside bark

C

TL(M,4,L)=EXP(-2.06033+1.~3~26*DL+1.0~0~~*H1+.00006~AG**2)

TL(M1~~L)=EXP(-2.~3232+1.~6~24*DL+1.126~1*H1+.00006*AG*~2)

IF(II.EQ.l) GOT0 5

IF((IT.GT.l).OR.(IP.GE.l)) GOT0 10

C

C Weight ratio to a given top diameter -- unthinned stands

C

5 RO=EXP(-1.15373"(TD""4.91154/DY*4.72388))

RI=EXP(-1.17135"(TD**4.95718/D""4.772!92))

GOT0 15

C

C Weight ratio to a given top diameter -- thinned stands

C

10 RO=EXP(-2.05891"(TD**5.1248~/D**51~042))

R1=EXP(-2.0~504*(TD**5.17200/D""5.2181~))

C

C Weight of the merchantable stem to a given top diameter

5 8
C

15 TL(M,6,L)=TL(M,&L)"RO

TL(M,T,L)=TL(M,S,L)*RI

C

C Total crown weight with foliage

C

TL(M,1,L)=EXP(3.4~415+3.23016*DL-1.36525*H1)

C

C Calculate total weight of the woody component

I c

CGWW=EXP(l.73522+3.4922~*DL-l.24339"H1)

TL(M,3,L)=CGWW+TL(M,5,L)

CGWB=EXP(l.20315+3.02391"DL-l.l3603*Hl)

TL(M,2,L)=CGWW+CGWB+TL(M&L)

GOT0 50

C -----------------------------------------------------------------------

C

C Dry-weight calculations

C

C -----------------------------------------------------------------------

C

C Total weight of the bole

C

20 TL(M,~,L)=EXP(-3.31353+1.~102~*DL+1.1~118~H1+.00008*AG~*2)

TL(M,5,L)=EXP(-~.20~13+1.8~66~*DL+1.38064*H1+.0000~*AG**2)

IF(II.EQ.~) GOTO 25

IF((IT.GT.O).OR.(IP.GE.l)) GOT0 30

C

C Weight ratios -- unthinned stands

C

25 RO=EXP(-.84251*(TD*"5.12820/D**4.85489))

R1=EXP(-.93273"(TD"*5.10185/D""4.85745))

GOT0 35

C

C Weight ratios -- thinned stands

C

30 RO=EXP(-l.87520"(TD""5.34603/D""5.3g776))

R1=EXP(-2.02028*(TD"*5.36731/D*"5.43664))

C

C Weight of merchantable stem to a given top diameter

C

35 TL(M,6,L)=TL(M&L)*RO

TL(MJ,L)=TL(M,5,L)*RI

C

C Total crown weight with foliage

C

TL(M,l,L)=EXP(2.47216+3.2563O*DL-1.32822*Hl)

C

C Total weight of the woody component

C

cDww=m'(.37g05+3.45439"DL-l.O8845"H1)

TL(M,3,L)=CDWW+TL(M,5,L)

CDwB=EXP(.26483+3.03393"DL-l.l0982*Hl)

TL(M,2,L)=CDWW+CDWB+TL(M,%L)
50 DO 75 511.7

IF(TL(M,J,L).LT.O.) TL(M,J,L)=O,

TL(M,J,L)=ANINT(TL(M,J,L)"TC(M,N,L))

BL(J,L)=BL(J,L)+TL(M,J,L)

75 CONTINUE

100 CONTINUE

FwrmN

END

**+*********************~~*********~*~***~**~*~~~~~~*********~~~~~~*~*~~

C

C BFVOL subroutine computes the board-foot volume using the board-foot

C volume rule selected by the user in INPUT subroutine.

C

**+*o*w*ww*+******ww+w**w*w***~~~***~~*~*~~~~~*~~~~*~~*~******#~*~~~~~~~~~

SUBROUTINE BFVOL(MX,IBF,L,N,IH,ITH)

RE& TC(35,2~15).T~T(8),HLOG(8),SE~~B(8),TL(35,7,~5~~~~~7,~5~

l,H(35,15)

COMMON /TABVAL/ TC,H,TL,BL

DO 90 M=lO,MX

D=FLOAT(M)

VOLBF-0.

JJ-0

GDt8.0

DO 2 11-1.8

HLOG(II)=O.

TEST(II)=O.

2 SEDIB(II)=O.

C

C Get merchantable heights and small-end diameter inside bark for each

C log by DBH class

C

21

25

30

35

40

C

6 0

CALL HTEST(HMERCH,H(M,L),GD,D,IH,ITH)

IF(HMERCH.LT.8.8) GOT0 90

IF(HMERCH.LE.16.8) GOT0 35

HLOG(1)=16.8

JJ=l

SEDIB(l)=DIB(D,H(M,L),HLOG(l),IH,ITH)

KT(I-~)=HMERcH-HLOG(I-1)

IF(TEST(I-l).EQ.O.) GOT0 40 ,

IF(TEST(I-l).LT.16.3) GOT0 30

HLOG(I)=HLOG(I-1)+16.3

JJ=I

SEDIB(I)=DIB(D,H(M,L),HLOG(I),IH,ITH)

I=I+l

GOTO 25

HLOG(I)=HMERCH

SEDIB(I)=DIB(D,H(M,L),HLOG(I),IH,ITH)

I=I+l

cm0 25

HLOG(l)=HMERCH

SEDIB(l)=DIB(D,H(M,L),HLOG(l),IH,ITH)

cOW75&L45) ,IBF
C Doyle log rule

C

45 IF(JJ.EQ.0) GOT0 55

DO 50 J=l,JJ

50 VOLBF=VOLBF+(SEDIB(J)-4.)**2

VOLBF=VOLBF+((HMERCH-HLOG(JJ))*(SEDIB(JJ+l)-4.)**2/16.)

GOT0 88

55 VOLBF=(HMERCH-.a)*(SEDIB(l)-4.)**2/16.

GOT0 88

C

C Scribner log rule

C

60 IF(JJ.EQ.0) GOT0 70

Do 65 J=~,JJ

65 VOLBF=VOLBF+(.79'SEDIB(J)"+2-2.*SEDIB(J)-4.)

VOLBF=VOLBF+(HMERCH-HLOG(JJ))*(.O~~~~SEDIB(JJ+l)**2-.l2~

l"SEDIB(JJ+1)+.269)

GOT0 88

70 VOLBF=(HM~CH-.8)"(.O~~~*SEDIB(l)**2-.12~*SEDIB(l)+.26~)

GOT0 88

C

C International-l/h inch log rule

C

75 IF(JJ.EQ.O) GOTO 85

DO 80 J=l,JJ

80 VOLBF=VOLBF+(0.~~6"SEDIB(J)""2-l.~~~"SEDIB(J)-l.2~O)

VOLBF=VOLBF+(.O~~8"(SEDIB(JJ+1))**2*(HMERCH-HLOG(JJ))-.l8~

l"SEDIB(JJ+1)*(HM~CH-HLOG(JJ))+.0~22*(HMERCH-HLOG(JJ))+.OO622

2YSEDIB(JJ+1)"(HMERCH-HLOG(JJ))*~2+.OOO26*(HMERCH-HLOG(JJ))**~

~-.;;CW~~-HLOG(JJ))**~)

85 VOLBF=.O~~8"SEDIB(1)*~2*(HMERCH-.8)-.18~~SEDIB(l)~(HM~CH-.8)

1+.0~22*(HMERCH-.8)+.OO622"SEDIB(l)~(HMERCH-.8)~~2+.OOO26

2*(HMERCH-.8)**3-.0116*(HMERCH-.a)**2

88 TL(M,7,L)=ANINT(VOLBF*TC(M,N,L))

BL(7,L)=BL(7,L)+TL(M,7,L)

90 CONTINUE

RETURN

END

*****++***+++w*w+w++++++++++++++++++++++~~*~~~*~~**********~~~~*~~******

C

C HTEST subroutine computes the merchantable height of a tree of a

C given total height and dbh to a top diameter of 8 inches.

C

++w+Y***w++**+++ww*+***~~~~~~~~~~~~~~~~~*~~~~~*~**~**~*~~~******~~~~~~~~

SUBROUTINE HTEST(HMERCH,Hl,GD,D,IH,ITH)

REAL 11,12

IF(((IH.EQ.l).OR.(IH.EQ.3)).AND.(ITH.LE.l)) GOT0 10

IF((IH.EQ.2).OR.((IH.EQ.3).AND.(ITH.GE.2))) GOT0 20

C

C Coefficients for unthinned stands

C

10 Al=.89406

A2=.05703

61
Bl=-8.07778

B2=4.02542

B3=-3.65499

B4=229.739

GOT0 17

c

c Coefficients for thinned stands

C

20 Al=.91195

A2=. 06035

Bl=-13.3139

B2=6.73098

B3=-6.65501

B4=203.959

17 D1=D*SQRT(B1*(A1-1.)+B2*(Al**2-1.))

D2=D*SQRT(B1*(A2-1.)+B2*(A2**2-1.)+B~*(Al-A2)**2)

IF(GD.GE.Dl) GOT0 11

Il=O.

GOT0 12

11 Il=l.

12 IF(GD.GE.D2) GOT0 13

12=0.

GOT0 14

13 12=1.

14 A=B2+Il"B3+12*B4

B=B1-2*11*A1*B3-2*12*A2*B4

C=-B1-B2-(GD**2)/(D*"2)+Il*Al*Al*B3+I2*A2*A2*B~

RHTl=(-B+SQRT(B"*2-Q.*A*C))/(2*A)

RHT2=(-B-SQRT(B**2-Q.*A*C))/(2*A)

IF((RHTl.GE.l.).OR.(RHTl.LE.O.)) GOT0 15

IF((RHTl.LT.RHT2).AND.(RHT2.LT.l.)) GOT0 15

HMERCH=Hl*RHTl

GOT0 16

15 IF((RHT2.GE.l.).OR.(RHT2.LE.O.)) GOT0 18

HMERCH=Hl"RHT2

GOT0 16

18 HMERCH=-1.

16 RETURN

END

*~***Y+ Y** *+*******~*~******~~**~~*~~***~*~~~~*~*~**~**~*~*****~**~*

C

C The DIB function computes the diameter inside bark at the small end

C of a log

c

*x9**+ +Y** ~w*~~+*~*~~~~~~~~~~~***~***~ ~~~** ~**~*~~**~~~~**~~*~*~

FUNCTION DIB(D,Hl,HLOG,I,J)

X=HLOG/Hl

IF(((I.EQ.l).OR.(I.EQ.3)).AND.(J.LE.l)) GOT0 10

IF((I.EQ.2).OR.((I.EQ.j).AND.(J.GE.2))) GOT0 20

10 Al=. 80645

A2=.05980

xl=-4.58266*(x-1.)+2.24195"(X**2-1.)

IF((X.LE.Al).AND.(X.LE.A2)) DIB=D*SQRT(Xl-2.3@78*(Al-X)""2

1+138.546*(A2-X)**2)
IF((x.LE.Al).AND.(X.GT.A2)) DIB=D*SQRT(Xl-2.34978*(Al-X)**2)

IF(Xl.GT.0.) GOT0 15

DIB=.OOOOl

RETURN

15 IF((X.GT.Al).AND.(X.GT.A2)) DIB=D*SQRT(Xl)

RETURN

20 Al=.85190

A2=.04833

x1=-7.43322*(x-1.)+3.7407g*(x**2-1.)

IF((X.LE.Al).AND.(X.LE.A2)) DIB=D*SQRT(Xl-4.03112"0""2

1+191.149*(A2-X)**2)

IF((X.LE.Al).AND.(X.GT.A2)) DIB=D*SQRT(Xl-4.03112*(Al-:()**2)

1F(xl.G~.0.) G0~0 25

DIB=.OOOOl

RETURN

25 IF((X.GT.Al).AND.(X.GT.A2)) DIB=D*SQRT(xl)

21 RETURN

END

*****************************************************#***#*###***##*#*##

C

C Function VAL is a collection of commonly used and related equations

C used throughout the program.

C

They are grouped here for simplicity.

****************************#*#****#**#******#*******#*#**#**********##*

FUNCTION VAL(Vl,V2,K)

COEF=5.454154E-3

GOTW,2,3,4,5), K

* K=l=SIF; K=2=HTF; K=3=BAF; K=4=QMF; K=5=TSURV

1 VAL=V1*(.4653/(1.-EXP(-.02504*V2)))**.75587

RETURN

2 VAL=V1*(2.14915*(1.-EXP(-.02504*V2)))**.75587

RETURN

3 VAL=Vl*COEF*V2**2

RETURN

4 VAL=SQRT(Vl/(COEF*V2))

RETURN

5 VAL=Vl/(COEF*V2**2)

RETURN

END

**#*####***#####****##*#######******************************************

C

C Subroutine TPA estimates the initial stand survival when not given

C by the user. This subroutine is used only once in any given run.

C

*#####****###***####*******#*##*****************************************

SUBROUTINE TPA(TSl,TP,IAG,HDl,BAl)

AG=FLOAT(IAG)

IF((BAl.GT.O.).AND.(TP.LE.O.)) GOT0 5

IF((BAl.LE.O.).AND.(TP.GT.O.)) GOT0 10

IF((BAl.GT.O.).AND.(TP.GT.O.)) GOT0 15

C

C Compute survival when initial BA per acre is known and number of trees

C planted is unknown.

C

6 3
5 TS1=~70.~~~"BA1**1.~~102~AG"".20~2~*HD1**(-2.06002)

RETURN

C

C Compute survival when initial BA per acre is unknown and number of trees

C trees planted is known.

C

10 TSl=TP/(EXP(AG*(.Ol~~8*ALOG(TP)+.OOl~O*HDl-.Ol~~~*HDl*~.~)))

RETURN

C

C Compute survival when BA per acre and trees planted are both known.

C

15 TS1=54,282g"TP**.~8~~2*HD1*"(-1.21868)"BAl*~.~~999"EXP(-.~4826/AG)

RETURN

END

++~***+ ~++** ~**+ ~~~** *********~********~*******~~*********~*****

C

C Subroutine TNTPA computes the initial stand survival of a stand

C thinned in the past when the current survival is unknown. The value

C is based upon the stand immediately following the last thinning.

C

*Y~*~**+~**~~*Y~~~+***~~~~~ ~** *****~***~*******~ ~** ******~~*****

SUBROUTINE TNTPA(T2,B2,Tl,IA2,IAl,Bl,Hl)

Al=FLOAT(IAl)

A2=FLOAT(IA2)

IF(A2.LT.Al) GOT0 10

IF(Tl.NE.0.) GOT0 5

Bl=B2

Al=A2

T2=EXP(8.88~~0+1.~616l~ALOG(B1)+~.~~660/Al-2.~~~~~*ALOG(Hl))

RETURN

5 T2=Tl

RETURN

10 IF(Tl.NE.0.) GOT0 15

T2=EXP(g.360gO+1.36683"ALOG(B2)-2.50256"ALOG(Hl))

RETURN

15 T2=(T1**(-.~~1~~)+.0261~*(A1**.22~2~-A2"*.22~2~))~~(1./.~~1~~)

RETURN

END

r2U.S.COVERNMENTPRINTINGOAICE:1987 -761 -086/ 60045

64’
Ferguson, R. B.; Baldwin, V. C., Jr. 1987. Comprehensive

outlook for managed pines using simulated treatment

experiments-planted loblolly pine (COMPUTE-P-LOB): A

user’s guide. Res. Pap. SO-241. New Orleans, LA: U.S. Department of Agriculture, Forest Service, Southern Forest Experiment Station. 64 p.

Complete instructions for user operation of COMPUT-PLOB to include detailed examples of computer input and

output, of a growth and yield prediction system providing

volume and weight yields in stand and stock table format. A

complete program listing is provided.

Additional keywords: Pinus tuecla L., volume predictions,

weight predictions, unthinned or thinned plantation yields,

Weibull distribution, diameter distribution moments,

parameter recovery, problem free sites, FORTRAN computer

program.

The computer program is available on request with the understanding that

the U.S. Department of Agriculture cannot assure its accuracy, completeness,

reliability, or suitability for any other purpose than that reported. The recipient may not assert any proprietary rights thereto nor represent it to anyone as

other than a Government-produced computer program. For cost information,

please write to either of the authors at the Southern Forest Experiment Station, 2500 Shreveport Highway, Pineville, LA 71360.

The use of trade, firm, or corporation names in this paper is for the information and convenience of the reader. Such use does not constitute official endorsement or approval by the U.S. Department of Agriculture of any product

or service to the exclusion of others that may be suitable.