The BioCro C++ Library
sunML.h
Go to the documentation of this file.
1#ifndef SUNML_H
2#define SUNML_H
3
4#include "AuxBioCro.h" // for MAXLAY
5
7 double canopy_direct_transmission_fraction; // dimensionless
8 double height[MAXLAY]; // m
9 double shaded_absorbed_ppfd[MAXLAY]; // micromol / (m^2 leaf) / s
10 double shaded_absorbed_shortwave[MAXLAY]; // J / (m^2 leaf) / s
11 double shaded_fraction[MAXLAY]; // dimensionless
12 double shaded_incident_nir[MAXLAY]; // J / (m^2 leaf) / s
13 double shaded_incident_ppfd[MAXLAY]; // micromol / (m^2 leaf) / s
14 double sunlit_absorbed_ppfd[MAXLAY]; // micromol / (m^2 leaf) / s
15 double sunlit_absorbed_shortwave[MAXLAY]; // J / (m^2 leaf) / s
16 double sunlit_fraction[MAXLAY]; // dimensionless
17 double sunlit_incident_nir[MAXLAY]; // J / (m^2 leaf) / s
18 double sunlit_incident_ppfd[MAXLAY]; // micromol / (m^2 leaf) / s
19};
20
22 double leaf_reflectance, // dimensionless
23 double leaf_transmittance, // dimensionless
24 double incident_light // Light units such as `micromol / m^2 / s` or
25 // `J / m^2 / s`
26);
27
29 double leaf_reflectance, // dimensionless
30 double leaf_transmittance, // dimensionless
31 double incident_light // Light units such as `micromol / m^2 / s` or
32 // `J / m^2 / s`
33);
34
35double nir_from_ppfd(
36 double ppfd, // micromol / m^2 / s
37 double par_energy_content, // J / micromol
38 double par_energy_fraction // dimensionless
39);
40
42 double incident_nir, // J / m^2 / s
43 double incident_ppfd, // micromol / m^2 / s
44 double par_energy_content, // J / micromol
45 double leaf_reflectance_par, // dimensionless
46 double leaf_transmittance_par, // dimensionless
47 double leaf_reflectance_nir, // dimensionless
48 double leaf_transmittance_nir // dimensionless
49);
50
51double total_radiation(
52 double Q_o, // Light units such as `micromol / m^2 / s` or `J / m^2 / s`
53 double k, // dimensionless
54 double alpha, // dimensionless
55 double ell // dimensionless from m^2 leaf / m^2 ground
56);
57
59 double Q_ob, // Light units such as `micromol / m^2 / s` or `J / m^2 / s`
60 double k, // dimensionless
61 double alpha, // dimensionless
62 double ell // dimensionless from m^2 leaf / m^2 ground
63);
64
65double shaded_radiation(
66 double Q_ob, // Light units such as `micromol / m^2 / s` or `J / m^2 / s`
67 double Q_od, // same units as `Q_ob`
68 double k_direct, // dimensionless
69 double k_diffuse, // dimensionless
70 double alpha, // dimensionless
71 double ell // dimensionless from m^2 leaf / m^2 ground
72);
73
75 double ambient_ppfd_beam, // micromol / (m^2 beam) / s
76 double ambient_ppfd_diffuse, // micromol / m^2 / s
77 double chil, // dimensionless from m^2 / m^2
78 double cosine_zenith_angle, // dimensionless
79 double heightf, // m^-1 from m^2 leaf / m^2 ground / m height
80 double k_diffuse, // dimensionless
81 double lai, // dimensionless from m^2 / m^2
82 double leaf_reflectance_nir, // dimensionless
83 double leaf_reflectance_par, // dimensionless
84 double leaf_transmittance_nir, // dimensionless
85 double leaf_transmittance_par, // dimensionless
86 double par_energy_content, // J / micromol
87 double par_energy_fraction, // dimensionless
88 int nlayers // dimensionless
89);
90
91#endif
#define MAXLAY
Definition: AuxBioCro.h:13
double shaded_fraction[MAXLAY]
Definition: sunML.h:11
double sunlit_incident_nir[MAXLAY]
Definition: sunML.h:17
double shaded_incident_nir[MAXLAY]
Definition: sunML.h:12
double sunlit_absorbed_ppfd[MAXLAY]
Definition: sunML.h:14
double sunlit_fraction[MAXLAY]
Definition: sunML.h:16
double shaded_incident_ppfd[MAXLAY]
Definition: sunML.h:13
double height[MAXLAY]
Definition: sunML.h:8
double sunlit_incident_ppfd[MAXLAY]
Definition: sunML.h:18
double shaded_absorbed_shortwave[MAXLAY]
Definition: sunML.h:10
double sunlit_absorbed_shortwave[MAXLAY]
Definition: sunML.h:15
double canopy_direct_transmission_fraction
Definition: sunML.h:7
double shaded_absorbed_ppfd[MAXLAY]
Definition: sunML.h:9
double shaded_radiation(double Q_ob, double Q_od, double k_direct, double k_diffuse, double alpha, double ell)
Computes the radiation incident on shaded leaves using Equation 15.19 from Campbell & Norman (1998).
Definition: sunML.cpp:335
Light_profile sunML(double ambient_ppfd_beam, double ambient_ppfd_diffuse, double chil, double cosine_zenith_angle, double heightf, double k_diffuse, double lai, double leaf_reflectance_nir, double leaf_reflectance_par, double leaf_transmittance_nir, double leaf_transmittance_par, double par_energy_content, double par_energy_fraction, int nlayers)
Computes an n-layered light profile from the direct light, diffuse light, leaf area index,...
Definition: sunML.cpp:408
double absorbed_shortwave(double incident_nir, double incident_ppfd, double par_energy_content, double leaf_reflectance_par, double leaf_transmittance_par, double leaf_reflectance_nir, double leaf_transmittance_nir)
Computes total shortwave radiation absorbed by a leaf.
Definition: sunML.cpp:150
double thin_layer_absorption(double leaf_reflectance, double leaf_transmittance, double incident_light)
Computes absorbed light from incident light for a thin layer of material.
Definition: sunML.cpp:34
double total_radiation(double Q_o, double k, double alpha, double ell)
Computes total radiation (direct and downscattered) using Equation 15.15 from Campbell & Norman (1998...
Definition: sunML.cpp:216
double downscattered_radiation(double Q_ob, double k, double alpha, double ell)
Computes downscattered radiation using Equation 15.20 from Campbell & Norman (1998).
Definition: sunML.cpp:277
double nir_from_ppfd(double ppfd, double par_energy_content, double par_energy_fraction)
Computes energy flux in the near-infrared band (in J / m^2 / s) from the photosynthetically active ph...
Definition: sunML.cpp:101
double thick_layer_absorption(double leaf_reflectance, double leaf_transmittance, double incident_light)
Computes absorbed light from incident light for a thick layer of material.
Definition: sunML.cpp:79