1717 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
1818 ***************************************************************************/
1919
20+ #include < math.h>
21+
2022#include " bagrov.h"
2123
2224/*
3133 Mittlere reale Verdunstung [mm/a]
3234 =======================================================================================================================
3335 */
36+
37+ Bagrov::Bagrov ()
38+ {
39+ }
40+
3441void Bagrov::nbagro (float *bage, float *y, float *x)
3542{
36- /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
37- int _do0, i, i_, ia, ie, j, j_;
38- float bag, bag1;
39- float a, a0, a1, a2, b, c, epa, eyn, h, h13, h23, qbag1, s1, s2, w, w13, w23, y0;
40- static float aa[16 ] =
43+ int _do0, i, i_, ia, ie, j;
44+ float bag, bag1;
45+ float a, a0, a1, a2, b, c, epa, eyn, h, h13, h23, qbag1, s1, s2, w, w13, w23, y0;
46+ static float aa[16 ] =
4147 {
4248 0 .9946811499F ,
4349 1 .213648255F ,
@@ -56,7 +62,6 @@ void Bagrov::nbagro(float *bage, float *y, float *x)
5662 -24573 .23867F ,
5763 6515 .556685F
5864 };
59- /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
6065
6166 y0 = 0 .0F ;
6267 bag = *bage;
@@ -85,6 +90,7 @@ void Bagrov::nbagro(float *bage, float *y, float *x)
8590 b = 0 .5F * a1 - (float ) sqrt (0.25 * a1 * a1 - a2);
8691 else
8792 b = -(float ) sqrt (0 .5F * a1 * a1 - a2);
93+
8894 c = a1 - b;
8995 a = a0 / (b - c);
9096
@@ -101,7 +107,6 @@ void Bagrov::nbagro(float *bage, float *y, float *x)
101107 /* NUMERISCHE INTEGRATION FUER BAG<0.7 (2.Naeherungsloesung) */
102108 for (j = 1 ; j <= 30 ; j++)
103109 {
104- j_ = j - 1 ;
105110 eyn = (float ) exp (bag * log (y0));
106111 if (eyn > 0 .9F ) goto L_13;
107112 if (eyn >= 0 .7F && bag > 4 .0F ) goto L_13;
@@ -162,17 +167,13 @@ void Bagrov::nbagro(float *bage, float *y, float *x)
162167 */
163168void Bagrov::bagrov (float *bagf, float *x0, float *y0)
164169{
165- /* ~~~~~~~~~~~~~~~~~~~~~~~~*/
166- bool doloop; /* LOGICAL16 */
167- int _do0, i, ii, ii_, j;
168- /* ~~~~~~~~~~~~~~~~~~~~~~~~*/
170+ bool doloop; /* LOGICAL16 */
171+ int _do0, i, ii, j;
169172
170- /* meiko : initialisiere i (einzige Änderung ) */
173+ /* meiko : initialisiere i (einzige Aenderung ) */
171174 i = 0 ;
172175
173- /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
174176 float delta, du, h, s, s1, sg, si, su, u, x;
175- /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
176177
177178 if (*x0 == 0.0 ) goto L_10;
178179 *y0 = 0 .99F ;
@@ -198,9 +199,9 @@ void Bagrov::bagrov(float *bagf, float *x0, float *y0)
198199 u = du / 2 .0F ;
199200 sg = sg + su;
200201 su = 0 .0F ;
202+
201203 for (ii = 1 , _do0 = j; ii <= _do0; ii += 2 )
202204 {
203- ii_ = ii - 1 ;
204205 su = su + 1 .0F / (1 .0F - (float ) exp (*bagf * log (u)));
205206 u = u + du;
206207 }
0 commit comments