Subject: (1) Revision of FINDAG logic
         (2) Addition of READCORH logic to AK, BM, CA, EC, NC,and WC variants
         (3) Correction to logic determining whether a stand is even-aged or uneven-aged
             in the TT and UT variants

Name: Gary Dixon
Date: 01/19/11

Variants affected: All variants

Description: (1) Expansion of the WS variant from 11 to 43 species requires a revision
                 of the FINDAG calling logic. The code, while working correctly, was calling 
FINDAG for every tree record several times each projection cycle whether FINDAG needed to be 
called or not. Since one of the routines calling FINDAG is base/src/comcup.f, changes needed 
to be made throughout all variants. The FINDAG logic was rewritten and standardized across all 
variants.

(2) Large tree height growth multipliers entered using the READCORH keyword were
not being used in the AK, BM, CA, EC, NC, or WC variants. This has been corrected.

(3) The determination of whether a stand was even-aged or uneven-aged was not including 
trees of all species in the TT and UT variants. This has been corrected.

Impact on users: (1) None. These changes do not affect projection results.
                 (2) Affects the AK, BM, CA, EC, NC, and WC variants if the READCORH 
                     keyword if being used.
                 (3) May be some growth impacts on the species using surrogate equations from
                     the Central Rockies variant, depending on the even-aged or uneven-aged
                     stand determination.

Files:
base/src     comcup.f  changed date of revison; cleaned up the variable declaration section;
                       changed the FINDAG argument list; rearranged the FINDAG calling logic

ak/src       cratet.f  changed date of revision; modified the variable declaration section;
an/src                 modifed the FINDAG call logic
             findag.f  changed date of revision; modified the argument list; modified the 
                       variable declaration section; deleted species and tree loops;
             htgf.f    changed date of revision; modified variable declaration section; moved
                       call to FINDAG inside species and tree loops; modified FINDAG argument
                       list and logic; added code to use the READCORH value entered via keyword

bm/src       cratet.f  changed the date of revison; modified variable declarations; modified
                       FINDAG calling logic; modified the FINDAG argument list
             findag.f  changed the date of revison; modified variable declarations; took out
                       species and tree looping
             htgf.f    changed the date of revison; modified variable declarations; moved 
                       the call to FINDAG inside species and tree loops; modified FINDAG 
                       argument list and logic; added code to use the READCORH value entered
                       via keyword
             regent.f  changed the date of revison; modified variable declarations; moved 
                       the call to FINDAG inside the quaking aspen case; modified the FINDAG
                       argument list

ca/src       cratet.f  changed the date of revision; changed the FINDAG argument list; modified
                       variable declarations; rearranged the FINDAG calling logic; changed 11 to
                       MAXSP in the DO 160 loop
             findag.f  changed the date of revision; moved the Dunning-Levitan site equations
                       to HTCALC; took out the species and tree looping; modified variable declarations
             htcalc.f  changed the date of revision; added site equations for Region 5; added the
                       forest index to the argument list; deleted GOTO statements and restructured
                       with CASE statements; deleted the CONTRL common block include
             htgf.f    changed the date of revision; moved the call to FINDAG inside the tree loop;
                       modified the FINDAG argument list; moved the Dunning-Levitan mapping to HTCALC;
                       deleted the Dunning-Levitan site curve calculations; modified variable declarations;
                       added code to use the READCORH value entered via keyword
                       
ca/obj       makefile  deleted CONTRL from the dependency list for HTCALC                       

ci/src       cratet.f  changed date of revision; modified variable declarations; changed the FINDAG
                       argument list; rearranged the FINDAG calling logic
             findag.f  changed date of revision; modified argument list; modified variable
                       declarations
                       
cr/src       cratet.f  changed date of revision; modified variable declarations; changed the FINDAG
                       argument list; rearranged the FINDAG calling logic; added the GGCOM include
             findag.f  changed date of revision; modified argument list; modified variable
                       declarations; moved the age range calculation to CRATET; deleted the ARRAYS
                       common block include
                       
cr/src       makefile  deleted the ARRAYS dependency for FINDAG; added the GGCOM dependency for CRATET                       

cs/src |   | cratet.f  changed the date of revision; modified the variable declarations section;
ls/src |---|           modified the FINDAG logic and argument list
ne/src |   | findag.f  changed the date of revision; modified the argument list and variable
           |           declaration section; took out species and tree looping; delete the include
           |           for the ARRAYS common block
           | rgnthw.f  changed the date of revision; modified the variable declarations section;
           |           modified the FINDAG logic and argument list and moved the call inside the 
           |           species and tree loops

cs/obj-|     
ls/obj |-    makefile  deleted ARRAYS from the dependency list for FINDAG
ne/obj-|

cs_new/src | cratet.f  changed the date of revision; modified the variable declarations section;
ls_new/src |           modified the FINDAG logic and argument list
ne_new/src | findag.f  changed the date of revision; modified the argument list and variable
           |           declaration section; took out species and tree looping

ec/src       cratet.f  changed the date of revision; changed the FINDAG argument list; modified
                       variable declarations; rearranged the FINDAG calling logic
             findag.f  changed date of revision; modified the argument list;
                       took out the species and tree looping; modified variable declarations
             htcalc.f  changed date of revision; modified the argument list; modified the variable
                       declaration section; deleted GOTO statements and restructured
                       with CASE statements; deleted the CONTRL common block include
             htgf.f    changed the date of revision; moved the call to FINDAG inside the species and
                       tree loops; modified the FINDAG argument list; modified variable declarations;
                       added code to use the READCORH value entered via keyword
             sitset.f  changed the date of revision; changed the argument list for HTCALC; modified the
                       variable declaration section

ec/obj       makefile  deleted CONTRL from the dependency list for HTCALC                       

em/src       cratet.f  changed the date of revision; changed the FINDAG argument list; modified
                       variable declarations; rearranged the FINDAG calling logic
             findag.f  changed date of revison; changed argument list and variable declarations;
                       took out species and tree looping

ie/src       cratet.f  changed the date of revision; changed the FINDAG argument list; modified
                       variable declarations; rearranged the FINDAG calling logic
             findag.f  changed date of revison; changed argument list and variable declarations;
                       took out species and tree looping; took out ARRAYS common include
                       
ie/obj       makefile  deleted the ARRAYS dependency for FINDAG

kt/src       cratet.f  changed the date of revision; changed the FINDAG argument list; modified
                       variable declarations; rearranged the FINDAG calling logic

nc/src       cratet.f  changed the date of revision; modifed the variable declaration section;
                       changed the FINDAG argument list; rearranged the FINDAG calling logic
             findag.f  changed the date of revision; changed the argument list; changed the
                       argument list for HTCALC; modified the variable declaration section;
                       deleted the species and tree looping;
             htcalc.f  changed the date of revision; changed the argument list; deleted the 
                       CONTRL include; took out the GO TO statements and inserted CASE structure
             htgf.f    changed the date of revision; changed the argument list for HTCALC;
                       modified the variable declaration section; moved the call to FINDAG
                       inside the species and tree loops; added code to use the READCORH value 
                       entered via keyword
             sitset.f  changed the date of revision; changed the argument list for HTCALC;
                       modified the variable declaration section

nc/obj       makefile  deleted CONTRL from the dependency list for HTCALC; deleted the ARRAYS
                       dependency for FINDAG

ni/src       cratet.f  changed the date of revision; changed the FINDAG argument list; modified
                       variable declarations; rearranged the FINDAG calling logic
             findag.f  changed the date of revision; changed the argument list and variable
                       declarations; modified the exit write statement
                       
pn/src       htcalc.f  changed the date of revision; modified the argument list; modified
                       variable declaration section; deleted the CONTRL common include; deleted
                       GOTO statements and inserted CASE statements
             sitset.f  changed the date of revision; changed the argument list for HTCALC; modified the
                       variable declaration section

pn/obj       makefile  deleted CONTRL from the dependency list for HTCALC                       

sn/src       cratet.f  changed the date of revision; changed the FINDAG argument list; modified
                       variable declarations; rearranged the FINDAG calling logic
             findag.f  changed the date of revision; changed the argument list and variable
                       declarations; took out the species and tree looping; modified the exit
                       debug write statements

so/src       cratet.f  changed the date of revision; changed the FINDAG argument list; modified
                       variable declarations; rearranged the FINDAG calling logic
             findag.f  changed date of revision; moved the Dunning-Levitan equations
                       to HTCALC; took out the species and tree looping; modified variable 
                       declarations
             htcalc.f  changed date of revision; added site equations for Region 5; added
                       forest index to the argument list
             htgf.f    changed the date of revision; moved the call to FINDAG inside the tree loop;
                       modified the FINDAG argument list; moved the Dunning-Levitan mapping to HTCALC;
                       deleted the Dunning-Levitan site curve calculations; modified variable declarations;
                       added READCORH multiplier to case where H >= HTMAX
             regent.f  changed the date of revision; modified the variable declaration section;
                       moved the call to FINDAG inside the species 24 tree loop and modified the 
                       logic to eliminate unnecessary calls
             sitset.f  changed the date of revision; changed the argument list for HTCALC; modified the
                       variable declaration section

tt/src       cratet.f  changed date of revision; added include of GGCOM; modified variable
                       declarations; added and corrected the AGERNG computation;
             findag.f  changed date of revision; modified the argument list;
                       took out the species and tree looping; modified variable declarations;
                       took out the ARRAYS include; moved AGERNG computation to CRATET
             htgf.f    changed date of revision; modified the variable declaration section;
                       moved the call to FINDAG inside the species and tree loops;
                       added READCORH and HTGMULT multipliers to case where H >= HTMAX
             regent.f  changed date of revision; modified variable declarations; moved the
                       call to FINDAG inside species and tree loops
             smhtgf.f  change the date of revision; modified the variable declarations; move
                       the call to FINDAG inside the aspen tree loop

tt/obj       makefile  deleted ARRAYS from the dependency list for FINDAG; added GGCOM to the
                       dependency list for CRATET                       

ut/src       cratet.f  changed date of revision; added include of GGCOM; modified variable
                       declarations; added and corrected the AGERNG computation;
             findag.f  changed date of revision; modified the argument list;
                       took out the species and tree looping; modified variable declarations;
                       took out the ARRAYS include; moved AGERNG computation to CRATET
             htgf.f    changed date of revision; modified the variable declaration section;
                       moved the call to FINDAG inside the species and tree loops;
                       added READCORH and HTGMULT multipliers to case where H >= HTMAX
             regent.f  changed date of revision; modified variable declarations; moved the
                       call to FINDAG inside species and tree loops

ut/obj       makefile  deleted ARRAYS from the dependency list for FINDAG; added GGCOM to the
                       dependency list for CRATET                       

wc/src       cratet.f  changed the date of revision; changed the FINDAG argument list; modified
                       variable declarations; rearranged the FINDAG calling logic
             findag.f  changed date of revision; modified the argument list;
                       took out the species and tree looping; modified variable declarations
             htcalc.f  changed the date of revision; modified the argument list; modified
                       variable declaration section; deleted the CONTRL common include; deleted
                       GOTO statements and inserted CASE statements
             htgf.f    changed the date of revision; moved the call to FINDAG inside the species and
                       tree loops; modified the FINDAG and HTCALC argument lists; modified variable 
                       declarations; added code to use the READCORH value entered via keyword
             sitset.f  changed the date of revision; changed the argument list for HTCALC; modified the
                       variable declaration section

wc/obj       makefile  deleted CONTRL from the dependency list for HTCALC                       

ws/src       cratet.f  changed the date of revision; changed the FINDAG argument list; modified
                       variable declarations; rearranged the FINDAG calling logic
             findag.f  changed date of revision; modified the argument list;
                       modified variable declarations and the exit write statement
             htcalc.f  changed date of revision; replaced GOTO statements with CASE statements;
                       added an exit write statement
             