Die Programmbibliothek BDATPro.DLL

Das Sorten- und Volumenprogramm BDAT 2.0 wurde als Kern zusammen mit anderen Programmen zur Berechnung von Durchmesserreihen, von Abschnitts­volumen und Rindenstärken als Dynamic-Link-Library (DLL) in der Programm­bibliothek  BDATPro.DLL zusammengefasst. Die Programm­schnitt­stellen und Bedeutung der formalen Programmparameter werden nachfolgend schematisch dokumentiert.

Volumen- und Sortenberechnung - BDAT

 

*******************************************************************************************

SUBROUTINE BDAT20 â(   BDATBArtNr, D1, H1, D2, H2, H,Hxh, Hkz, Skz, Az, Hsh, Zsh, Zab, Sokz,

                                               Skl, Vol, Bhd, IFeh,FixLngDef, NMaxFixLng, FixLng, NfixLng  ) *******************************************************************************************

SUBROUTINE BDAT10(      BDATBArtNr, D1, H1, D2, H2, H, Hxh, Hkz, Skz, Az, Hsh, Zsh, Zab, Sokz,

                                               Skl, Vol, Bhd, IFeh )

*******************************************************************************************

 

Zweck:

Volumen- und Sortenberechnung bei den BWI - Probebäumen

 

Interne Programmparameter

Felddimensionen Fixlängen:

 

Parameter        (NParFixLngDef=4, NParFixLng=6, MMaxFixLng=30)

                        Parameter        (MFixLng=NParFixLng*MMaxFixLng)

 

Stockabschnitt am Stammfuß:

                        Parameter        (StammFussPrz =1)   (H*0.01 [m])

 

Formale Parameter - Datentypen und Dimensionierung

 

BDATBArtNr

Ein

Int*2

Baumart: 1 – 14 Nadelholz

              15 – 36 Laubholz

D1

E

Real*4

Unterer Durchmesser m. R. [cm]

H1

E

Real*4

Höhe unterer Durchmesser [m]

            0 – H1 = 1.3 m

D2

E

Real*4

 > 0      - Oberer Durchmesser m. R. [cm]

 = 0 und H2 =0

            - Massentafel äquivalente Formigkeit

 = 0 und 0 < H2 < 100

BWI Formigkeit mit <<H2>> % -  Perzentilwerte der q0.30-Verteilung (BWI) als q*0.30 .

H2       = 50     -  BWI äquivalente Formigkeit

                        < 50     -  abholzige Formen

                        > 50     - vollholzige Formen

= 0 und H2 ≥ 100

             - BWI äquivalente Formigkeit

-1 < D2 < 0     - Formquotient q0.30     = ABS(D2)

       D2 ≤-1     - BWI äquivalente Formigkeit             

H2

E

Real*4

D2 > 0 und H2 > 0      - Höhe D2  [m]

D2 > 0 und H2 = 0      - Höhe D2 = 7m

D2 ≤ 0 s.o.

H

E

Real*4

Baumhöhe [m]

Hxh

E

Real*4

Länge X-Holz am Stammfuß [m]

Hkz

E

Int*2

Höhenkennziffer:

1 - Wipfelbruch; H = H + 2 m

2 - Gipfelbruch;
            BHD < 30 m Ò H = Du
            BHD > 30 m Ò H = 30 + (Du-30) * .3

Skz

E

Int*2

Stammkennziffer :

1 - Wipfelschäftigkeit bei Laubbäumen
            Höhe Stammholz (Hsh) = H * .7

2 - Zwieselung zwischen Brusthöhe und 7 m
          Hsh = 0 Ò Hsh   = 5 m
            Nadelholz: Grenzhöhe für
            Stammholzzopf (Hshz) = 5 m
            Abschnittszopf (Habz)  = 5 m

3 - kein ausgeprägter Stamm;
            Fußpunkt bis Kronenansatz < 3 m
            Nadelholz:        Hsh    =  0.1 m
                                   Hshz  =  0.1 m
                                   Habz  =  0.1 m     

4 - abgestorbener oder gebrochener Stamm;
            Holz noch verwertbar; Stammlänge bei Bruch
            mindestens 2/3 der gesamten Baumhöhe. Festlegung
            der Grenzhöhe für den Aufarbeitungszopf mit H * .7

5 - Baum abgestorben, Holz nicht mehr verwertbar oder
            Stammlänge < 2/3 der gesamten Baumhöhe: keine             Sortierung

Az

E

Real*4

Grenzzopf für die Aufarbeitung m. R. [cm]

            0 – Verwendung von Tabellenwerten

Hsh

E

Real*4

Stammhöhe [m]

Zsh

E

Real*4

Mindestzopf für Stammholz  o. R. [cm]
            0 – Tabellenwerte

Zab

E

Real*4

Mindestzopf für oberen Stammholzabschnitt o. R. [cm]

            0 – 14 cm

Sokz

E

Int*2

Sortierkennziffer
   0 – keine Sortierung

   1 – Mittenstärke

   2 – Heilbronner

Skl(1:6)

Aus

Int*2

Klassen der Stärkesortierung

(1)

 

 

Stärkeklasse X-Holzabschnitt

(2)

 

 

   Unterklasse 0-a, 1-b

(3)

 

 

Stärkeklasse Stammholz

(4)

 

 

   Unterklasse 0-a, 1-b

(5)

 

 

Stärkeklasse oberer Abschnitt

(6)

 

 

    Unterklasse 0-a, 1-b

Vol(1:7)

A

Real*4

Volumen

(1)

 

 

Vfm m. R.

(2)

 

 

X-Holz Efm o. R.

(3)

 

 

Stammholz Efm o. R.

(4)

 

 

oberer Abschnitt Efm o. R.

(5)

 

 

Industrieholz Efm o. R.

(6)

 

 

Nicht verwertetes Derbholz o. R.

(7)

 

 

Ernteverlust Efm o. R.

BHD

A

Real*4

Gemessener oder geschätzter Brusthöhendurchmesser in cm m. R. BHD = D1 falls H1 = 1.3 m

IFeh

A

Int*2

Fehlerindikator

1 - Unzulässiger Baumartenschlüssel
            BDATBArtNr  < 1 oder BDATBArtNr  > 36

2 - fehlende Baumhöhe:
            H <  0

3 - unterer Durchmesser fehlt:
            D1 < 0

4 - Höhe unterer Durchmesser falsch:
            H1 > 2.5 m

5 - (nicht verwendet)

6 - Stammhöhe > 0
            bei wipfelschäftigem Laubholz:
            Skz = 1 und Hsh > 0; BDATBArtNr  > 14

7 - Zwieselung unterhalb 7 m und Stammhöhe > 7 m bei             Laubholz:
            Skz = 2 und Hsh > 7; BDATBArtNr  > 14

8 - Laubbäume ohne erkennbaren Stamm aber mit Angabe             einer Stammhöhe:
            Skz = 3 und (Hsh > 3 m oder
            Hsh < 1.3 m); BDATBArtNr  < 14

9 - Falsche Stammhöhe bei gebrochenem oder             abgestorbenem Laubbaum:
            Skz = 4 und H < Hsh; BDATBArtNr  > 14

10 - Wipfelschäftiges Nadelholz mit pos. Stammhöhe:
            Skz = 0, 1 und Hsh > 0; BDATBArtNr  < 15

11 - Abgestorbenes oder gebrochenes Nadelholz ohne             Angabe eines Wipfel- oder Gipfelbruchs:
            Skz = 4 und Hkz =  0; BDATBArtNr  < 15

12 - Zu vorgegebenen Stammdimensionen H, BHD; keine             q0.30-Schätzung möglich (D0 = 0)

13 - Zu vorgegebenen Stammdimensionen H, BHD; kein             Massentafelwert vorhanden (D0 = 0)

14 - q*0.30 ungenau, Iteration geht nicht durch D7m 

15 - Dimensionen zu klein (H, BHD) keine Massentafeln

            BHD<7 cm

 

Parameter für die Fixlängensortierung in BDAT20â 

 

FixLngDef(1:4)

E

Real*4

Festlegung des Fixlängensortiments

(1)

 

 

Mindestzopf o.R. [cm]

(2)

 

 

Sortimentslänge [m]

(3)

 

 

Längenzugabe [cm]

(4)

 

 

Längenzugabe [%]

            Falls beide Längenzugaben > 0 wird die größere von             beiden verwendet (Mindestlängenzugabe)

NMaxFixLng

E

Int*2

Maximal Anzahl auszuformender Fixlängen (≤30) (Eingabe)

FixLng(1:180)

A

Real*4

Ausgeformte Fixlängensortimente

(1)

 

 

Lfd. Nummer (1. Fixlängensortiment)

(2)

 

 

Position (Fuß) des Sortiments [m] im Stamm

(3)

 

 

Fixlänge [m]

(4)

 

 

Mittendurchmesser o.R. [cm]

(5)

 

 

Zopfdurchmesser o.R. [cm]

(6)

 

 

Volumen o.R.

(7)

 

 

Lfd. Nummer (2. Fixlängensortiment)

...

 

 

 

(180)

 

 

Volumen o.R. (30. Fixlängensortiment)

NFixLng

A

Int*2

Anzahl ausgeformte Fixlängensortimente

            Die Komponenten des Feldes

            FixLng (NFixLng*6+1:180) sind mit 0 besetzt.

                                  

Durchmesserberechnung - BDATDmRHx BDATDoRHx

 

******************************************************************************************

Subroutine BDATDmRHx (BDATBArtNr, D1, H1, D2, H2, H, Hx, IFeh, DmRHx)

Real*4 Function FNBDATDmRHx (BDATBArtNr, D1, H1, D2, H2, H, Hx, IFeh,   DmRHx)

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

Subroutine BDATDoRHx (BDATBArtNr, D1, H1, D2, H2, H, Hx, IFeh, DoRHx)

Real*4 Function FNBDATDoRHx (BDATBArtNr, D1, H1, D2, H2, H, Hx, IFeh,    DoRHx)

*****************************************************************************************

Zweck:

Für einen Baum mit den Dimensionsdaten <<D1,H1,D2,H2,H>> wird der Durchmes­sers m.R. / o.R. [cm] in <<Hx>> Metern Höhe über dem Stammfuß berechnet

 

Formale Parameter – Datentypen

Ein:      Int*2                BDATBArtNr

Real*4             D1                  

Real*4             H1                  

Real*4             D2

Real*4             H2

Real*4             H                    

Real*4             Hx                               Höhe [m] für den Durchmesser

Aus:     Int*2                IFeh

Real*4             DmRHx                       Durchmesser m. R. bei <<Hx>>         

Real*4             DoRHx                        Durchmesser o. R. bei <<Hx>> 

Real*4             FNBDATDmRHx       ./.

Real*4             FNBDATDoRHx        ./.

 

Die Bedeutung von D1,H1,D2,H2,H und IFeh wie in BDAT20          


Lage Grenzdurchmesser - FNBDATHxDx

 

*********************************************************************************************

Real*4 Function FNBDATHxDx (      BDATBArtNr, D1, H1, D2, H2, H,    Hx, Dx, IFeh)

*********************************************************************************************

 

Zweck:

Baumhöhe (Hx) mit gegebenem Durchmesser (Dx) iterativ bestimmen.

 

Formale Parameter – Datentypen

Ein:      Int*2                BDATBArtNr 

Real*4 D1

Real*4 H1

Real*4 D2

Real*4 H2

Real*4 H

Real*4 Dx                   Grenzdurchmesser [cm]

 

Aus:     Real*4 Hx                   Lage des Grenzdurchmessers Dx [m]

            Int*2                IFeh                 Fehlerindikator

                                                                       1 – falsche Startwerte

2 – Max. Anzahl (100) Iterationen erreicht

      ohne Konvergenz

 

Die Bedeutung von D1,H1,D2,H2,H wie in BDAT20


 

3.1      Derbholzvolumen – BDATVolDHmR

 

********************************************************************************************

subroutine BDATVolDHmR       ( BDATBArtNr, D1, H1, D2, H2, H, DHGrz,

                                                                       HDHGrz, SekLng, IFeh, VolDHmR )

real*4 function FNBDATVolDHmR  ( BDATBArtNr, D1, H1, D2, H2, H, DHGrz, HDHGrz, SekLng, IFeh, VolDHmR )

********************************************************************************************

Zweck:

Für einen Baum mit den Dimensionsdaten <<D1,H1,D2,H2,H>> wird das Derbholz­volumen über sektionsweise Kubierung berechnet. Die Länge der Sektionen wird durch <<SekLng>> vorgegeben. (BDAT: SekLng = 2). Die Festlegung der Derbholz­grenze erfolgt über den Derbholzzopf (DHGrz).

Formale Parameter – Datentypen

EIN:     Int*2                BDATBArtNr 

Real*4             D1

Real*4             H1

Real*4             D2

Real*4             H2

Real*4             H

Real*4             DHGrz Derbholzgrenze [cm]

Real*4             HDHGrz          Höhe der Derbholzgrenze (Ausgabe)

Real*4             SekLng            Sektionslänge [m] für die Kubierung

Aus:     Int*2                IFeh

Real*4             VolDHmR       Derbholzvolumen                     (Ausgabe)

Real*4             FNBDATVolDHmR               ./.

 

Die Bedeutung von D1,H1,D2,H2,H und IFeh wie in BDAT20


 

3.2      Abschnittsvolumen -  BDATVolABmR BDATVolABoR

 

********************************************************************************************

subroutine BDATVolABmR       ( BDATBArtNr, D1, H1, D2, H2, H, A, B, SekLng, IFeh, VolABmR )

real*4 Function FNBDATVolABmR ( BDATBArtNr, D1, H1, D2, H2, H,A, B, SekLng, IFeh, VolABmR )

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

subroutine BDATVolABoR                   ( BDATBArtNr, D1, H1, D2, H2, H,A, B, SekLng, IFeh, VolABoR )

real*4 Function FNBDATVolABoR ( BDATBArtNr, D1, H1, D2, H2, H, A, B, SekLng, IFeh, VolABoR )

********************************************************************************************

 

Zweck:

Für einen Baum mit den Dimensionsdaten <<D1,H1,D2,H2,H>> wird das Abschnitts­volumen über sektionsweise Kubierung berechnet. Die Länge der Sektionen wird durch <<SekLng>> vorgegeben. (BDAT: SekLng = 2). Der Abschnitt wird durch die Lage <<A>> und <<B>> der Unter- bzw. Obergrenze definiert.

 

Formale Parameter – Datentypen

Ein:      Int*2                BDATBArtNr 

Real*4 D1

Real*4 H1

Real*4 D2

Real*4 H2

Real*4 H

Real*4 A                     Abschnittsuntergrenze [m]

Real*4 B                     Abschnittsobergrenze  [m]

Real*4 SekLng            Sektionslänge [m] für die Kubierung

Aus:     Int*2                IFeh

Real*4 VolABmR        Abschnittsvolumen       m. R.    (Ausgabe)

Real*4 FNBDATVolABmR                ./.

Real*4 VolABoR        Abschnittsvolumen       o. R.    (Ausgabe)

Real*4 FNBDATVolABoR                ./.

 

Die Bedeutung von D1,H1,D2,H2,H und IFeh wie in BDAT20

 

3.3      Formquotienten Verteilung (BWI) -  BDATMwQ03BWI, BDATPctQ03BWI

 

*********************************************************************************************

subroutine BDATMwQ03BWI (BDATBArtNr, D, H, Q03Pct,MwQ03BWI, StDevQ03BWI, MwQ03BWIPct)

********************************************************************************************

Zweck:

Berechnet innerhalb einer <<BHD,H>> - Klasse den Mittelwert (MwQ03BWI), die Streuung (StDevQ03BWI ) und den Formquotienten q0.30 = D0.30/D0.05 (BWI) zum Percentilwert << Q03Pct >>.  Der Mittelwert entspricht dem BWI – äquivalenten Formquotienten:  

 

Formale Parameter – Datentypen

Ein:      Int*2                BDATBArtNr

Real*4 D                                 BHD [cm]

            Real*4 H                                 Baumhöhe [m]

            Real*4 Q03Pct                       Percentilwert (0,1) für das geschätzte q0.30

Percentil (MwQ03BWIPct)

 

Aus:     Real*4 MwQ03BWI               Mittelwert q0.30  (BWI äquivalent)

            Real*4 StDevQ03BWI           Standardabweichung q0.30 - Verteilung

Real*4 MwQ03BWIPct          q0.30 – Percentil zu <<Q03Pct>>.


 

*********************************************************************************************

subroutine BDATPctQ03BWI (BDATBArtNr, D, H, Q03,MwQ03BWI, StDevQ03BWI, MwQ03BWIPct)

********************************************************************************************

 

Zweck:

Berechnet innerhalb einer <<D,H>> - Klasse den Mittelwert (MwQ03BWI), die Streuung (StDevQ03BWI ) und den Per­centilwert  für die Formquotienten <<Q03>>  .  Der Mittelwert entspricht dem BWI – äquivalenten Formquotienten:

 

Formale Parameter – Datentypen

Ein:      Int*2                BDATBArtNr

Real*4 D                                 BHD    [cm]

            Real*4 H                                 Baumhöhe [m]

            Real*4 Q03                            Formquotient (q0.30 = D0.30/D0.05)

 

Aus:     Real*4 MwQ03BWI               Mittelwert q0.30  (BWI äquivalent)

Real*4 StDevQ03BWI           Standardabweichung q0.30 - Verteilung

Real*4 PctQ03BWI                Percentilwert zum Formquotienten <<Q03>>

innerhalb der <<D,H>> - Stufe


 

3.4      Volumenäquivalenter Formquotienten - FNBDATQ03VHDx

 

*********************************************************************************************

real*4 function FNBDATQ03VHDx (BDATBArtNr, D1, H1, H,

                                               Dx, VolHDx, MIt, q031, q032, q03x, NIt, IFeh)

*********************************************************************************************

 

Zweck:

Iterative Berechnung des Formquotienten q03x, so dass das über die Schaftkurve bis zum Grenz­durch­messer integrierte Volumen mit dem Normvolumen <<VolHDx>> übereinstimmt:

Formale Parameter – Datentypen

Ein:      Int*2                BDATBArtNr

Real*4 D1                               unterer Durchmesser [cm]

            Real*4 H1                               Höhe D1 [m]

            Real*4 H                                 Baumhöhe [m]

            Real*4 Dx                               Grenzdurchmesser Normvolumen

                                                                       bei Derbholzvolumen  = 7

            Real*4 VolHDx                       Normvolumen

            Int*2                MIt                              Maximale Anzahl Iterationen

            Real*4 q031                           unterer Startwert  für q03x

            Real*4            q032                          oberer Startwert mit Vol(<<q031>>)<=

VolHDx <= Vol(<<q032>>)

Aus:     Real*4 q03x                            volumenäquivalenter Formquotient

            Real*4             FNBDATQ03VHDx   ./.

            Int*2                Nit                               Anzahl Iteration

            Int*2                IFeh                            Fehlerindikator

                                                                       1 – falsche Startwerte

2 – Max. Anzahl Iterationen erreicht ohne

      Konvergenz


 

3.5      Fortschreibung der Schaftform  - FNBDATEstQ032

 

*********************************************************************************************

real*4 function FNBDATEstQ032(BDATBArtNr, BHD1, D71, H1, BHD2, H2,      Estq032, EstD72, IFeh)

*********************************************************************************************

 

Zweck:

Fortschreibung der Schaftform (q0.30 & D7m) bei Wiederholungsinventuren:

.

 

Formale Parameter – Datentypen

Ein:      Int*2                BDATBArtNr

Real*4 BHD1                         BHD 1. Aufnahme       [cm]

            Real*4 D71                             D7m   ./.

                                                                       D71 = 0 à Estq032

            Real*4 H1                               Höhe ./.                       [m]

Real*4 BHD2                         BHD 2. Aufnahme       [cm]

            Real*4 H2                               Höhe ./.                       [m]

 

Aus:     Real*4 Estq032                       q0.30 Fortschreibung

            Real*4 EstD72                        D7m   ./.

D71 = 0 à EstD72

            Int*2                IFeh                            Fehlerindikator

            Real*4             FNBDATEstQ032      q0.30 Fortschreibung


 

3.6      Formparameter (D2,H2)  - BDATD2H2Trans

 

*********************************************************************************************

subroutine BDATD2H2Trans (BDATBArtNr, D1, H1, D2, H2, H) *********************************************************************************************

Zweck:

Umsetzung der in BDAT20 (vgl. 3.1) beschriebenen Interpretation von D2 und H2

 

Formale Parameter – Datentypen

Ein:      Int*2                BDATBArtNr

            Real*4 D1

            Real*4 H1

            Real*4 D2 (Aus)

            Real*4 H2 (Aus)

            Real*4 H

 

Die Bedeutung von D1, H1, D2, H2, H wie in BDAT20


 

3.7      Modellparameter q0.30-Regression  - EQ03ParIni

 

*********************************************************************************************

subroutine EQ03ParIni(EQP,SQP) *********************************************************************************************

Zweck:

Ausgabe der Parameter für die Regression zur Schätzung der BWI – äquivalenten Formquotienten  

 

Formale Parameter – Datentypen

Aus:     Real*4             EQP(1:8,1:2,1:7)

Real*4             SQP(1:8,1:6)

3.8      Rindenstärken - BDATRinde2Hx

 

********************************************************************************************

subroutine BDATRinde2Hx ( BDATBArtNr, D1, H1, D2, H2, H, Hx, IFeh,                                                                         Rinde2Hx)

********************************************************************************************

 

Zweck

Für einen Baum mit den Dimensionsdaten <<D1,H1,D2,H2,H>> wird die dop­pelte Rindenstärke [cm] an der Stelle Hx [m] berechnet.

 

Formale Parameter – Datentypen

            Int*2                BDATBArtNr

            Real*4 D1

            Real*4 H1

            Real*4 D2

            Real*4 H2

            Real*4 H

            Real*4 Hx

            Int*2                IFeh

            Real*4 Rinde2Hx        Doppelte Rindenstärke [cm] Ausgabe

 

Die Bedeutung von D1,H1,D2,H2,H und IFeh wie in BDAT20



â Für die Version BDAT 2.0 muss die Freigabe vom BMVEL eingeholt werden.   

â Für die Version BDAT 2.0 muss die Freigabe vom BMVEL eingeholt werden.