g0.c 765 B

1234567891011121314151617181920212223242526272829303132
  1. #include<stdio.h>
  2. #include<math.h>
  3. #include<stdlib.h>
  4. double g_0(double bbalb, double ndvi, double tempk, double rnet,
  5. double time, int roerink)
  6. {
  7. double a, b, result;
  8. double r0_coef;
  9. if (time <= 9.0 || time > 15.0)
  10. r0_coef = 1.1;
  11. else if (time > 9.0 && time <= 11.0)
  12. r0_coef = 1.0;
  13. else if (time > 11.0 && time <= 13.0)
  14. r0_coef = 0.9;
  15. else if (time > 13.0 && time <= 15.0)
  16. r0_coef = 1.0;
  17. a = (0.0032 * (bbalb / r0_coef) +
  18. 0.0062 * (bbalb / r0_coef) * (bbalb / r0_coef));
  19. b = (1 - 0.978 * pow(ndvi, 4));
  20. /* Spain (Bastiaanssen, 1995) */
  21. result = (rnet * (tempk - 273.15) / bbalb) * a * b;
  22. /* HAPEX-Sahel (Roerink, 1995) */
  23. if (roerink)
  24. result = result * 1.430 - 0.0845;
  25. return result;
  26. }