//writen by: E. van der Goot and Giorgio Cifani
//JRC, I-21020 Ispra, Italy
//date: 1996//based on the original FORTRAN/SQL CGMS and WOFOST code
//produced by Tamme van der Wal, Kees van Diepen and Daniel van Kralingen
//Alterra, P.O. Box 6700 AA, Wageningen, The Netherlandsfloat RadFract(int nDay, float fAvgRad, float fAngot)
{
float fAtmTr;
float fFrDif = 0.0f;
float fDifPP;
if (fAngot != 0.0f)
{
fAtmTr = fAvgRad / fAngot;// Estimate fraction diffuse irradiation
if (fAtmTr > 0.75f)
fFrDif = 0.23f;
if (fAtmTr <= 0.75f && fAtmTr > 0.35f)
fFrDif = 1.33f - 1.46f * fAtmTr;
if (fAtmTr <= 0.35f && fAtmTr > 0.07f)
fFrDif = 1.0f - 2.3f * (float)pow((fAtmTr - 0.07f), 2);
if (fAtmTr <= 0.07f)
fFrDif = 1.0f;
fDifPP = fFrDif * fAtmTr * 0.5f * SolarConstant[nDay];
}
elsefDifPP = 0.0;
// Unit for fDiffPP: J
return fDifPP;
}