Subject: Reading FSveg PV Codes
Name: R. Havis
Date: August 29, 2007
Variants affected: BM, CA, CI, CR, CS, EC, EM, IE, KT,
                   NC, NI, PN, SO, TT, UT, WC, WS
                   Regions 8, 9 and 10 do not use Habitat
                   type or ecoclass, with the exception of
                   the Fire and Fuels Extension (FFE) to the 
                   Lake States variant (LS)

Description: 
             FVS has been adapted to use Potential Vegetation
             code data and Reference code data from the FSveg
             data base to set habitat type or ecoclass if is
             used by the variant. The specification of a
             Potential Vegetation type by FSveg involves 2
             codes
             1) Potential Vegetation Code (PV Code), and
             2) Reference Code which indicates the reference
                document in which the PV code was described.
                
             In the original development of FVS variants, specific 
             references were used to describe the habitat / ecoclass
             types (or Potential Vegetation types) used in simulations.
             FVS has been enables to recognize these PV Code / Reference
             code pairs. Other PV Code Reference Codes pairs from FSveg
             are currently being cross walked to the FVS types by
             FS Regional experts. When the cross walks have been
             completed, all possible PV Code / Reference Code pairs
             from FSveg will be mapped to existing
             FVS habitat / ecoclass types.
             
             The STDINFO keyword will continue to be used to input
             habitat / ecoclass data in Field 2. Field 7 will be
             used to input the Reference Code, and the stand
             latitude will no longer be input in Field 7 of STDINFO.
             
Impact on users:

             ENTERING HABITAT / ECOCLASS TYPE

             This code update can potentially affect users who
             use FSveg to generate input data for FVS. The following
             describes likely input scenarios and how FVS will handle
             the input data.
             
             1) Valid FVS habitat / ecoclass code entered in F2 of STDINFO
                keyword, and F7 is blank - FVS will use the code
                
             2) Valid FVS habitat / ecoclass code entered in F2 of STDINFO
                keyword, and a valid Reference code in F7, used to develop the
                variant - FVS will use the code 

             3) Valid FVS habitat / ecoclass code entered in F2 of STDINFO
                keyword, and an invalid Reference code in F7 - FVS will use
                the default habitat / ecoclass type in the simulation. 
                
             4) Invalid FVS habitat / ecoclass type - FVS will use the
                default
                
             FIELD 7 OF STNDINFO KEYWORD
             
             This code update will require WS variant users and R9 FVS
             users to remove the latitude values from F7, if it is
             entered there, and enter the LATITUDE on F1 of the LOCATE
             keyword.
             
             1) The consequences to WS users of not making this
             change are that the habitat code will not be recognized
             and the model default will be used. Also, latitude is used in
             diameter increment calculations, so diameter growth values
             will possibly be biased.
             
             2) The consequences to R9 FVS usersnot makeing the above change
             is that crown width values may be in error.
             

Files: The CPVREF character variable was initialized in the GRINIT routines and
       added to the PLTCHR common block in the PLOT.F77 include file.

       The PVREF? (where ? refers to region number) routines are new and hold
       arrays and logic for mapping PV/Reference codes into FVS Habitat/Ecoclass
       variables. A fortran program DATA_PV
       (k:/FVS/fvs/dev/bobhtest/PV-Ref_Code/DATA_PV.F)
       may be used to build the arrays in the PVREF? routines.

       The HABTYP routines were adapted to call the PVREF? routine when a
       PV Reference code is entered, and to use the PV code (FVS habitat type code)
       otherwise.
       
       The FVS habitat code variable was changed from an array element (KARD(2),
       ARRAY(2)) to a scalar variable (KARD2, ARRAY2) in INITRE, CRDECD, HBDECD,
       and HABTYP routines.

./ak/src/grinit.f
./ak/src/habtyp.f
./base/src/hbdecd.f
./base/src/initre.f  - the logic for reading the STDINFO keyword was changes to
                       read the PV Reference Code in F7 rather than the stand latitude.
                       The HABTYP call arguments were changed to scalar variables.
                       The call to FORKOD was moved to before the call to HABTYP at line
                       333 and at line 758 in the STDINFO keyword processing.
./base/src/revise.f
./bin/makefile       - added PVREF? to appropriate link lists
./bm/obj/makefile    - added compile instructions for PVREF6
./bm/src/grinit.f
./bm/src/habtyp.f
./bm/src/pvref6.f
./ca/obj/makefile    - added compile instructions for PVREF5, and PVREF6
./ca/src/grinit.f
./ca/src/habtyp.f
./ca/src/pvref5.f
./ca/src/pvref6.f
./ci/obj/makefile
./ci/src/grinit.f
./ci/src/habtyp.f
./ci/src/pvref4.f
./common/PLOT.F77
./cr/obj/makefile    - added compile instructions for PVREF2, and PVREF3
./cr/src/crdecd.f
./cr/src/grinit.f
./cr/src/habtyp.f
./cr/src/pvref2.f
./cr/src/pvref3.f
./cs/src/grinit.f
./cs_new/src/grinit.f
./dbs/src/dbsstandin.f      - added logic to read PV Reference codes
./ec/obj/makefile    - added compile instructions for PVREF6
./ec/src/grinit.f
./ec/src/habtyp.f
./ec/src/pvref6.f
./em/obj/makefile    - added compile instructions for PVREF1
./em/src/grinit.f
./em/src/habtyp.f
./em/src/pvref1.f
./ie/obj/makefile
./ie/src/grinit.f
./kt/obj/makefile
./kt/src/grinit.f
./kt/src/habtyp.f
./kt/src/pvref1.f
./ls/obj/makefile    - added compile instructions for PVREF9
./ls/src/grinit.f
./ls/src/habtyp.f
./ls/src/pvref9.f
./ls_new/obj/makefile    - added compile instructions for PVREF9
./ls_new/src/grinit.f
./ls_new/src/habtyp.f
./ls_new/src/pvref9.f
./nc/obj/makefile    - added compile instructions for PVREF5, and PVREF6
./nc/src/grinit.f
./nc/src/habtyp.f
./nc/src/pvref5.f
./nc/src/pvref6.f
./ne/src/grinit.f
./ne_new/src/grinit.f
./ni/obj/makefile    - added compile instructions for PVREF1
./ni/src/grinit.f
./ni/src/habtyp.f
./ni/src/pvref1.f
./pn/obj/makefile    - added compile instructions for PVREF6
./pn/src/grinit.f
./pn/src/habtyp.f
./pn/src/pvref6.f
./ppbase/src/chget.f - added CPVREF
./ppbase/src/chput.f - added CPVREF
./se/src/grinit.f
./se/src/habtyp.f
./sn/src/grinit.f
./sn/src/habtyp.f
./so/obj/makefile    - added compile instructions for PVREF6
./so/src/grinit.f
./so/src/habtyp.f
./so/src/pvref6.f
./so33/obj/makefile    - added compile instructions for PVREF6
./so33/src/grinit.f
./so33/src/habtyp.f
./so33/src/pvref6.f
./tt/obj/makefile    - added compile instructions for PVREF4
./tt/src/grinit.f
./ut/obj/makefile
./ut/src/grinit.f
./ut/src/habtyp.f
./ut/src/pvref4.f
./wc/obj/makefile    - added compile instructions for PVREF6
./wc/src/grinit.f
./wc/src/habtyp.f
./wc/src/pvref6.f
./ws/obj/makefile    - added compile instructions for PVREF6
./ws/src/grinit.f
./ws/src/habtyp.f
./ws/src/pvref5.f
