Values are to reported at each 3 hour forcing time step for the core
two-year period (2004-2005) at each grid point over the regional
domain
(-20 to 30 E, and -5 to 20 N: for Exp.s 1 and 2).

Note that for convenience (and possible use by other projects), the atmospheric forcing
and surface parameter data have been provided on a rectangular grid.
Note that while there are 5151 grid points, only 3650 correspond to land
points (i.e. those containing a non-negligible fraction of
land using the provided ECOCLIMAP land mask).
Results only need be reported for these points. However, one may
report results on grids with all 5151 points with the non-land points
flagged.

0UTC, June 1 to 24 UTC, Sep. 30

__Output file naming convention__

Participants should prepare 2 output files for Exp.1. They should
be named using the following convention:

*scheme-acronym*_Exp*X*_yyyy.nc

where yyyy=2004 or 2005, and *X*=1. There should be 2 Exp.2 files
which should use the same convention as above: but note that
the file

*scheme-acronym*_Exp2_2004.nc

need only contain output data from June 1, 2004, through December 31,
2004. The file

*scheme-acronym*_Exp2_2005.nc

should contain data for the entire year (i.e. as the Exp.1 files).
Any ancillary files (containing the soil grid information, soil
hydrological parameters, etc...) should named as

*scheme-acronym*_Exp*X*.nc

where *X* corresponds to Exp.1 or 2. If the values are the
same
for both experiments (which is presumably the case), just one file is needed.

Tile schemes are requested to report grid box average values in the
aforementioned
standard output files. They are also to report an additional file for
each experiment over a significantly smaller sub-domain (to be
defined). The naming convention is

*scheme-acronym*_Exp*X*_tile_yyyy.nc

netcdf TESSEL_exp1_2004 {
dimensions:
y = 51 ;
x = 101 ;
time = UNLIMITED ; // (2928 currently)
nlevs = 4 ;
variables:
double lat(y) ;
lat:units = "degrees_north" ;
lat:long_name = "latitude" ;
double lon(x) ;
lon:units = "degrees_east" ;
lon:long_name = "longitude" ;
double time(time) ;
time:units = "seconds" ;
time:long_name = "Time in seconds" ;
time:Time_label = "Start of output interval" ;
int timestp(time) ;
timestp:units = "-" ;
timestp:long_name = "model time step" ;
timestp:Time_label = "Start of output interval" ;
float SWnet(time, y, x) ;
SWnet:units = "W/m^2" ;
SWnet:long_name = "Net shortwave radiation" ;
SWnet:associate = "time y x" ;
SWnet:missing_value = 1.e+20f ;
float LWnet(time, y, x) ;
LWnet:units = "W/m^2" ;
LWnet:long_name = "Net longwave radiation" ;
LWnet:associate = "time y x" ;
LWnet:missing_value = 1.e+20f ;
float Qle(time, y, x) ;
Qle:units = "W/m^2" ;
Qle:long_name = "Average latent heat flux" ;
Qle:associate = "time y x" ;
Qle:missing_value = 1.e+20f ;
float Qh(time, y, x) ;
Qh:units = "W/m^2" ;
Qh:long_name = "Average sensible heat flux" ;
Qh:associate = "time y x" ;
Qh:missing_value = 1.e+20f ;
float Qg(time, y, x) ;
Qg:units = "W/m^2" ;
Qg:long_name = "Average soil heat flux" ;
Qg:associate = "time y x" ;
Qg:missing_value = 1.e+20f ;
float Qf(time, y, x) ;
Qf:units = "W/m^2" ;
Qf:long_name = "Average soil fusion flux" ;
Qf:associate = "time y x" ;
Qf:missing_value = 1.e+20f ;
float DelSoilHeat(time, y, x) ;
DelSoilHeat:units = "W/m^2" ;
DelSoilHeat:long_name = "soil heat content change" ;
DelSoilHeat:associate = "time y x" ;
DelSoilHeat:missing_value = 1.e+20f ;
float DelColdCont(time, y, x) ;
DelColdCont:units = "W/m^2" ;
DelColdCont:long_name = "snow heat content change" ;
DelColdCont:associate = "time y x" ;
DelColdCont:missing_value = 1.e+20f ;
float LWup(time, y, x) ;
LWup:units = "W/m^2" ;
LWup:long_name = "Net longwave radiation" ;
LWup:associate = "time y x" ;
LWup:missing_value = 1.e+20f ;
float DelIntercept(time, y, x) ;
DelIntercept:units = "kg/m^2" ;
DelIntercept:long_name = "Interception storage change" ;
DelIntercept:missing_value = 1.e+20f ;
DelIntercept:associate = "time y x" ;
DelIntercept:time_representation = "change over past output interval" ;
float DelSWE(time, y, x) ;
DelSWE:units = "kg/m^2" ;
DelSWE:long_name = "Snow water storage change" ;
DelSWE:associate = "time y x" ;
DelSWE:missing_value = 1.e+20f ;
DelSWE:time_representation = "change over past output interval" ;
float DelSoilMoist(time, y, x) ;
DelSoilMoist:units = "kg/m^2" ;
DelSoilMoist:long_name = "Soil water storage change" ;
DelSoilMoist:associate = "time y x" ;
DelSoilMoist:missing_value = 1.e+20f ;
DelSoilMoist:time_representation = "change over past output interval" ;
float Evap(time, y, x) ;
Evap:units = "kg/m^2/s" ;
Evap:long_name = "Total evapotranspiration" ;
Evap:associate = "time y x" ;
Evap:missing_value = 1.e+20f ;
Evap:time_representation = "average over past output interval" ;
float Qs(time, y, x) ;
Qs:units = "kg/m^2/s" ;
Qs:long_name = "Surface runoff" ;
Qs:associate = "time y x" ;
Qs:missing_value = 1.e+20f ;
Qs:time_representation = "average over past output interval" ;
float Qsb(time, y, x) ;
Qsb:units = "kg/m^2/s" ;
Qsb:long_name = "Subsurface runoff" ;
Qsb:associate = "time y x" ;
Qsb:missing_value = 1.e+20f ;
Qsb:time_representation = "average over past output interval" ;
float Qsm(time, y, x) ;
Qsm:units = "kg/m^2/s" ;
Qsm:long_name = "Snowmelt" ;
Qsm:associate = "time y x" ;
Qsm:missing_value = 1.e+20f ;
Qsm:time_representation = "average over past output interval" ;
float Rainf(time, y, x) ;
Rainf:units = "kg/m^2/s" ;
Rainf:long_name = "Rainfall rate" ;
Rainf:associate = "time y x" ;
Rainf:missing_value = 1.e+20f ;
Rainf:time_representation = "average over past output interval" ;
float Snowf(time, y, x) ;
Snowf:units = "kg/m^2/s" ;
Snowf:long_name = "Snowfall rate" ;
Snowf:associate = "time y x" ;
Snowf:missing_value = 1.e+20f ;
Snowf:time_representation = "average over past output interval" ;
double nlevs(nlevs) ;
nlevs:units = "m" ;
nlevs:long_name = "soil level centre" ;
float Albedo(time, y, x) ;
Albedo:units = "-" ;
Albedo:long_name = "Average albedo" ;
Albedo:associate = "time y x" ;
Albedo:missing_value = 1.e+20f ;
float AvgSurfT(time, y, x) ;
AvgSurfT:units = "K" ;
AvgSurfT:long_name = "Average surface temperature" ;
AvgSurfT:associate = "time y x" ;
AvgSurfT:missing_value = 1.e+20f ;
float BaresoilT(time, y, x) ;
BaresoilT:units = "K" ;
BaresoilT:long_name = "Skin temperature bare soil" ;
BaresoilT:associate = "time y x" ;
BaresoilT:missing_value = 1.e+20f ;
float RadT(time, y, x) ;
RadT:units = "K" ;
RadT:long_name = "Surface radiative temperature" ;
RadT:associate = "time y x" ;
RadT:missing_value = 1.e+20f ;
float SWE(time, y, x) ;
SWE:units = "kg/m^2" ;
SWE:long_name = "Snow water equivalent" ;
SWE:associate = "time y x" ;
SWE:missing_value = 1.e+20f ;
float SnowT(time, y, x) ;
SnowT:units = "K" ;
SnowT:long_name = "Snow temperature" ;
SnowT:associate = "time y x" ;
SnowT:missing_value = 1.e+20f ;
float VegT(time, y, x) ;
VegT:units = "K" ;
VegT:long_name = "Skin temperature low vegetationV" ;
VegT:associate = "time y x" ;
VegT:missing_value = 1.e+20f ;
float CanopInt(time, y, x) ;
CanopInt:units = "kg/m^2" ;
CanopInt:long_name = "Canopy interception depth" ;
CanopInt:associate = "time y x" ;
CanopInt:missing_value = 1.e+20f ;
float ECanop(time, y, x) ;
ECanop:units = "kg/m^2/s" ;
ECanop:long_name = "Interception evaporation" ;
ECanop:associate = "time y x" ;
ECanop:missing_value = 1.e+20f ;
ECanop:time_representation = "average over past output interval" ;
float ESoil(time, y, x) ;
ESoil:units = "kg/m^2/s" ;
ESoil:long_name = "Bare soil evaporation" ;
ESoil:associate = "time y x" ;
ESoil:missing_value = 1.e+20f ;
ESoil:time_representation = "average over past output interval" ;
float RootMoist(time, y, x) ;
RootMoist:units = "kg/m^2" ;
RootMoist:long_name = "Root zone soil moisture" ;
RootMoist:associate = "time y x" ;
RootMoist:missing_value = 1.e+20f ;
float SubSnow(time, y, x) ;
SubSnow:units = "kg/m^2/s" ;
SubSnow:long_name = "Snow sublimation" ;
SubSnow:associate = "time y x" ;
SubSnow:missing_value = 1.e+20f ;
SubSnow:time_representation = "average over past output interval" ;
float TVeg(time, y, x) ;
TVeg:units = "kg/m^2/s" ;
TVeg:long_name = "Vegetation transpiration" ;
TVeg:associate = "time y x" ;
TVeg:missing_value = 1.e+20f ;
TVeg:time_representation = "average over past output interval" ;
// global attributes:
:modelID = "TESSEL " ;
:versionID = "1.1 " ;
:start_day = 20010101 ;
:start_hour = 0 ;
:SurfSgn_convention = "Mathematical" ;
:history = "Thu Jul 27 09:10:51 2006: ncks -A o_eva.nc output.nc\n",
"Thu Jul 27 09:00:35 2006: ncks -A o_sus.nc output.nc\n",
"Thu Jul 27 08:52:29 2006: ncks -A o_wat.nc output.nc" ;
}

netcdf TESSEL_exp1_layers_2004 {
dimensions:
y = 51 ;
x = 101 ;
nlevs = 4 ;
time = UNLIMITED ; // (2928 currently)
variables:
double lat(y) ;
lat:units = "degrees_north" ;
lat:long_name = "latitude" ;
double lon(x) ;
lon:units = "degrees_east" ;
lon:long_name = "longitude" ;
double nlevs(nlevs) ;
nlevs:units = "m" ;
nlevs:long_name = "soil level centre" ;
double time(time) ;
time:units = "seconds" ;
time:long_name = "Time in seconds" ;
time:Time_label = "Start of output interval" ;
int timestp(time) ;
timestp:units = "-" ;
timestp:long_name = "model time step" ;
timestp:Time_label = "Start of output interval" ;
float SoilTemp(time, nlevs, y, x) ;
SoilTemp:units = "K" ;
SoilTemp:long_name = "soil temperature" ;
SoilTemp:associate = "time nlevs y x" ;
SoilTemp:missing_value = 1.e+20f ;
float SoilMoist(time, nlevs, y, x) ;
SoilMoist:units = "kg/m^2" ;
SoilMoist:long_name = "soil moisture content per layer" ;
SoilMoist:associate = "time nlevs y x" ;
SoilMoist:missing_value = 1.e+20f ;
float LSoilMoist(time, nlevs, y, x) ;
LSoilMoist:units = "kg/m^2" ;
LSoilMoist:long_name = "diagnostic liquid soil moisture content per layer" ;
LSoilMoist:associate = "time nlevs y x" ;
LSoilMoist:missing_value = 1.e+20f ;
float SoilWet(time, y, x) ;
SoilWet:units = "-" ;
SoilWet:long_name = "Total soil wetness" ;
SoilWet:associate = "time y x" ;
SoilWet:missing_value = 1.e+20f ;
// global attributes:
:modelID = "TESSEL " ;
:versionID = "1.1 " ;
:start_day = 20010101 ;
:start_hour = 0 ;
:SurfSgn_convention = "Mathematical" ;
}

netcdf TESSEL_exp1 {
dimensions:
x = 101 ;
y = 51 ;
month = 12 ;
variables:
float lat(y) ;
lat:units = "degrees_north" ;
lat:long_name = "latitude" ;
float lon(x) ;
lon:units = "degrees_east" ;
lon:long_name = "longitude" ;
int month(month) ;
month:units = "-" ;
month:long_name = "month" ;
float Mask(y, x) ;
Mask:units = "-" ;
Mask:long_name = "Catchment mask" ;
Mask:missing_value = 1.e+20f ;
float geopot(y, x) ;
geopot:units = "m2/s2" ;
geopot:long_name = "Geopotential height" ;
geopot:missing_value = 1.e+20f ;
float Malbedo(month, y, x) ;
Malbedo:units = "-" ;
Malbedo:long_name = "Monthly background albedo" ;
Malbedo:missing_value = 1.e+20f ;
float z0m(y, x) ;
z0m:units = "m" ;
z0m:long_name = "Momentum roughness length" ;
z0m:missing_value = 1.e+20f ;
float lz0h(y, x) ;
lz0h:units = "m" ;
lz0h:long_name = "Heat roughness length" ;
lz0h:missing_value = 1.e+20f ;
float landsea(y, x) ;
landsea:units = "-" ;
landsea:long_name = "Fraction land" ;
landsea:missing_value = 1.e+20f ;
float tvh(y, x) ;
tvh:units = "-" ;
tvh:long_name = "High vegetation type" ;
tvh:missing_value = 1.e+20f ;
float tvl(y, x) ;
tvl:units = "-" ;
tvl:long_name = "Low vegetation type" ;
tvl:missing_value = 1.e+20f ;
float cvh(y, x) ;
cvh:units = "-" ;
cvh:long_name = "High vegetation cover" ;
cvh:missing_value = 1.e+20f ;
float cvl(y, x) ;
cvl:units = "-" ;
cvl:long_name = "Low vegetation cover" ;
cvl:missing_value = 1.e+20f ;
}