Christiaanvandertol/SCOPE

Confusion between sunlit and shaded soil temperatures

marinebouchet opened this issue · 1 comments

Dear Prof. van der Tol,

I saw few confusions for soil thermal temperature Ts.
After ebal function in SCOPE.m l370, I have, for example, Ts = [ 22.5478, 39.2998 ]. With Ts(1) sunlit and Ts(2) shaded soil temperature, Tsun < Tshaded ...

Here are the errors :

  • ebal l190
    Rns = [Rnsh Rnsu]'; % Soil (sun+sh) net radiation
    => Rns = [Rnsu Rnsh]';
  • To be consistent at l279, l337... Fs need to be inverted Fs = [Ps(end), 1-Ps(end)] at ebal l149
  • ebal l173
    rad = RTMt_sb(spectral, rad, soil, leafopt, canopy, gap, angles, Tcu, Tch, Ts(2), Ts(1), 1);
    => rad = RTMt_sb(spectral, rad, soil, leafopt, canopy, gap, angles, Tcu, Tch, Ts(1), Ts(2), 1);
    cause RTMt_sb function is defined as [rad] = RTMt_sb(spectral, rad, soil, leafopt, canopy, gap, angles, Tcu, Tch, Tsu, Tsh, obsdir)

Now, Ts = [ 39.2998, 22.5478 ] so Tsun > Tshaded

Same mistakes on :

  • SCOPE l386
    rad = RTMt_planck(spectral, rad, soil, leafopt, canopy, gap, angles, thermal.Tcu, thermal.Tch, thermal.Ts(**2**), thermal.Ts(**1**), 1);
    => rad = RTMt_planck(spectral, rad, soil, leafopt, canopy, gap, angles, thermal.Tcu, thermal.Tch, thermal.Ts(**1**), thermal.Ts(**2**), 1);
    cause RTMt_planck function is defined as rad = RTMt_planck(spectral, rad, soil, leafopt, canopy, gap, angles, thermal.Tcu, thermal.Tch, **Tsu, Tsh**, obsdir)
  • calc_brdf l43
    directional_rad = RTMt_planck(spectral, directional_rad, soil,leafopt,canopy,directional_gap, sirectional_angles, thermal.Tcu, thermal.Tch, thermal.Ts(1), thermal.Ts(**1**),1);
    => directional_rad = RTMt_planck(spectral, directional_rad, soil, leafopt, canopy, directional_gap, directional_angles, thermal.Tcu, thermal.Tch, thermal.Ts(1), thermal.Ts(**2**), 1);
  • calc_brdf l49
    directional_rad = RTMt_sb(spectral, directional_rad, soil, leafopt, canopy, directional_gap, directional_angles,thermal.Tcu, thermal.Tch, thermal.Ts(1), thermal.Ts(**1**),1);
    => directional_rad = RTMt_sb(spectral, directional_rad, soil, leafopt, canopy, directional_gap, directional_angles, thermal.Tcu, thermal.Tch, thermal.Ts(1), thermal.Ts(**2**), 1);

Many thanks!

Best regards,
Marine Bouchet from CESBIO, Toulouse, France

In the code Ts(1) is systematically the shaded temperature, and Ts(2) the sunlit. It is possible to reverse this if it makes more sense. In that case they must also be reversed in the function output_data that saves the data to the text file surftemp.dat.
After you made the changes, the numerical values of the two temperatures were unchanged, but they were reversed in position, do you agree? It does not matter as long as it is consistent.
Perhaps the documentation causes the confusion:
https://scope-model.readthedocs.io/en/stable/structs/output/thermal.html
where it says that Ts is the sunlit and shaded temperature, whereas the right order is the shaded and sunlit temperature.
Christiaan