AMMA icon
  ALMIP-2 Home
  Executive Summary
  Input Data
  Output Data
  ALMIP (Phase 1)
  ALMIP2 Workshop
  AMMA Related:
  AMMA International
ALMIP title banner

Requested Output Data

Page Contents:

  1. General Overview
  2. Output File Name Convention
  3. Experiment Output Summary
  4. Output Variables to Report
    1. Example Output NetCDF Headers
    2. Average or instantaneous outputs
    3. Estimate of Output File Sizes
    4. Server Information for Downloading/Submission of Results


    The output variable listing here has been taken from the ALMA Standard Model Output site using the Version-2 convention, with the exception that the cold-season variables have been removed. Carbon variables use the PILPS Carbon convention. The ALMA convention defines output units, variable names, expected ranges and sign conventions. It also defines whether a variable must be reported as an instantaneous or time averaged value (this distinction is critical for computing water and energy budget closure and diagnostics). See the ALMA site for more information.

Output File Name Convention

The output file naming convention is currently:

where SVAT=the scheme acronym, DOMAIN=Niger, Mali or Oueme (note that Oueme is used in place of Benin since both the Oueme and Donga basins are in Benin, and runs for the Donga sub catchment might still be optionally done), PRECIPITATION-FORCING=T (Theissen), L (LaGrangian-krigged) or R (radar-based: potential optional run), and YEAR=2005 to 2008. Note that an additional tag, XXXX, can be defined by the participant if they do additional runs with different options, etc.

Experiment Output Summary

Below is a Table of the mesoscale experiments to run. Please report one file per year per experiment (i.e. per row). Modelers are also welcome to submit additional results using other model-specific inputs or options.

SiteYearsRainfall ForcingECOCLIMAP version Additional tests
Oueme (Benin) 2005-2007 Theissen default
Oueme (Benin) 2005-2007 Lagrangian default
Oueme (Benin) 2005-2008 Theissen Version2
Oueme (Benin) 2005-2008 Lagrangian Version2
Niger 2005-2007 Theissen default
Niger 2005-2007 Lagrangian default
Niger 2005-2008 Theissen Version2
Niger 2005-2008 Lagrangian Version2
Mali 2006-2007 Theissen default
Mali 2006-2008 Theissen Version2
Mali 2008 Lagrangian Version2
Mali 2006-2007 Theissen default MG-Soil
Mali 2006-2008 Theissen Version2 MG-Soil
Mali 2008 Lagrangian Version2 MG-Soil

Note: MG-Soil represents the alternate soil parameters proposed by the Mali group. Both the MG-Soil experiments and the ECOCLIMAP Version2 experiments are optional (although recommended).

Output Variables to report

The output variables are to be reported in NetCDF format. A sample output NetCDF header for the ALMIP2 mesoscale experiments is provided below. A model can report either missing values for variables which do not apply, or they do not need to be reported (e.g. a single energy budget type model would not report QhVeg or QleVeg).

Output NetCDF template

An updated output template is shown below (as of Sep. 6, 2012). The difference with the previous version is a more standard set of dimensions for lat, lon and time and the addition of attributes for lev (in order to facilitate post-processing using standard NetCDF software). If you have already written the results using the previous template and do not wish to rewrite your results, just let us know and we will do the transform ourselves.

netcdf ISBA_Oueme_L_2007 {
	lat = 25 ;
	lon = 28 ;
	time = UNLIMITED ; // (17520 currently)
	lev = 3 ;
	double lat(lat) ;
		lat:long_name = "latitude" ;
		lat:units = "degrees_north" ;
	double lon(lon) ;
		lon:long_name = "longitude" ;
		lon:units = "degrees_east" ;
        int lev(lev) ;
                lev:long_name = "level" ;
                lev:positive = "down" ;
                lev:units = "level" ;
	double time(time) ;
		time:units = "seconds since 2005-01-01 00:00:00" ;
	float SoilThick(lev, lat, lon) ;
		SoilThick:units = "m" ;
		SoilThick:long_name = "soil layer thicknesses" ;
		SoilThick:missing_value = 1.e+20f ;
	float RootDist(lev, lat, lon) ;
		RootDist:units = "-" ;
		RootDist:long_name = "cumulative root fraction" ;
		RootDist:missing_value = 1.e+20f ;
	float SoilSat(lev, lat, lon) ;
		SoilSat:units = "m^3/m^3" ;
		SoilSat:long_name = "soil porosity" ;
		SoilSat:missing_value = 1.e+20f ;
	float SoilWilt(lev, lat, lon) ;
		SoilWilt:units = "m^3/m^3" ;
		SoilWilt:long_name = "soil wilting point" ;
		SoilWilt:missing_value = 1.e+20f ;
	float SoilFC(lev, lat, lon) ;
		SoilFC:units = "m^3/m^3" ;
		SoilFC:long_name = "soil field capacity" ;
		SoilFC:missing_value = 1.e+20f ;
	float Rainf(time, lat, lon) ;
		Rainf:units = "kg/m^2/s" ;
		Rainf:long_name = "Rainfall rate" ;
		Rainf:missing_value = 1.e+20f ;
		Rainf:time_representation = "average over past output interval" ;
	float SWdown(time, lat, lon) ;
		SWdown:units = "W/m^2" ;
		SWdown:long_name = "Total downwelling shortwave radiation" ;
		SWdown:missing_value = 1.e+20f ;
		SWdown:time_representation = "average over past output interval" ;
	float LWdown(time, lat, lon) ;
		LWdown:units = "W/m^2" ;
		LWdown:long_name = "Total downwelling longwave radiation" ;
		LWdown:missing_value = 1.e+20f ;
		LWdown:time_representation = "average over past output interval" ;
	float SWnet(time, lat, lon) ;
		SWnet:units = "W/m^2" ;
		SWnet:long_name = "Net shortwave radiation" ;
		SWnet:missing_value = 1.e+20f ;
	float LWnet(time, lat, lon) ;
		LWnet:units = "W/m^2" ;
		LWnet:long_name = "Net longwave radiation" ;
		LWnet:missing_value = 1.e+20f ;
	float SWnetVeg(time, lat, lon) ;
		SWnetVeg:units = "W/m^2" ;
		SWnetVeg:long_name = "Net shortwave radiation of vegetation canopy" ;
		SWnetVeg:missing_value = 1.e+20f ;
	float LWnetVeg(time, lat, lon) ;
		LWnetVeg:units = "W/m^2" ;
		LWnetVeg:long_name = "Net longwave radiation of vegetation canopy" ;
		LWnetVeg:missing_value = 1.e+20f ;
	float RadT(time, lat, lon) ;
		RadT:units = "K" ;
		RadT:long_name = "Total Surface radiative temperature" ;
		RadT:missing_value = 1.e+20f ;
	float Qle(time, lat, lon) ;
		Qle:units = "W/m^2" ;
		Qle:long_name = "Average latent heat flux" ;
		Qle:missing_value = 1.e+20f ;
	float Qh(time, lat, lon) ;
		Qh:units = "W/m^2" ;
		Qh:long_name = "Average sensible heat flux" ;
		Qh:missing_value = 1.e+20f ;
	float QleVeg(time, lat, lon) ;
		QleVeg:units = "W/m^2" ;
		QleVeg:long_name = "Average latent heat flux from vegetation" ;
		QleVeg:missing_value = 1.e+20f ;
	float QhVeg(time, lat, lon) ;
		QhVeg:units = "W/m^2" ;
		QhVeg:long_name = "Average sensible heat flux from vegetation" ;
		QhVeg:missing_value = 1.e+20f ;
	float Qg(time, lat, lon) ;
		Qg:units = "W/m^2" ;
		Qg:long_name = "Average soil heat flux" ;
		Qg:missing_value = 1.e+20f ;
	float DelSoilHeat(time, lat, lon) ;
		DelSoilHeat:units = "J/m^2" ;
		DelSoilHeat:long_name = "Average soil heat content change" ;
		DelSoilHeat:missing_value = 1.e+20f ;
	float DelPond(time, lat, lon) ;
		DelPond:units = "kg/m^2" ;
		DelPond:long_name = "Ponded surface water storage change" ;
		DelPond:missing_value = 1.e+20f ;
		DelPond:time_representation = "change over past output interval" ;
	float DelIntercept(time, lat, lon) ;
		DelIntercept:units = "kg/m^2" ;
		DelIntercept:long_name = "Vegetation Interception storage change" ;
		DelIntercept:missing_value = 1.e+20f ;
		DelIntercept:time_representation = "change over past output interval" ;
	float Qs(time, lat, lon) ;
		Qs:units = "kg/m^2/s" ;
		Qs:long_name = "Surface runoff" ;
		Qs:missing_value = 1.e+20f ;
		Qs:time_representation = "average over past output interval" ;
	float Qsb(time, lat, lon) ;
		Qsb:units = "kg/m^2/s" ;
		Qsb:long_name = "Subsurface runoff" ;
		Qsb:missing_value = 1.e+20f ;
		Qsb:time_representation = "average over past output interval" ;
	float Qrec(time, lat, lon) ;
		Qrec:units = "kg/m^2/s" ;
		Qrec:long_name = "Recharge from river to the flood plain" ;
		Qrec:missing_value = 1.e+20f ;
		Qrec:time_representation = "average over past output interval" ;
	float WaterTableD(time, lat, lon) ;
		WaterTableD:units = "m" ;
		WaterTableD:long_name = "Depth of the water table (LSM)" ;
		WaterTableD:missing_value = 1.e+20f ;
	float BaresoilT(time, lat, lon) ;
		BaresoilT:units = "K" ;
		BaresoilT:long_name = "Temperature for bare soil" ;
		BaresoilT:missing_value = 1.e+20f ;
	float VegT(time, lat, lon) ;
		VegT:units = "K" ;
		VegT:long_name = "Vegetation temperature" ;
		VegT:missing_value = 1.e+20f ;
	float CanopInt(time, lat, lon) ;
		CanopInt:units = "kg/m^2" ;
		CanopInt:long_name = "Canopy interception depth" ;
		CanopInt:missing_value = 1.e+20f ;
	float ECanop(time, lat, lon) ;
		ECanop:units = "kg/m^2/s" ;
		ECanop:long_name = "Interception evaporation" ;
		ECanop:missing_value = 1.e+20f ;
		ECanop:time_representation = "average over past output interval" ;
	float EPondInt(time, lat, lon) ;
		EPondInt:units = "kg/m^2/s" ;
		EPondInt:long_name = "Interception evaporation from ponded surface water" ;
		EPondInt:missing_value = 1.e+20f ;
		EPondInt:time_representation = "average over past output interval" ;
	float TVeg(time, lat, lon) ;
		TVeg:units = "kg/m^2/s" ;
		TVeg:long_name = "Vegetation transpiration" ;
		TVeg:missing_value = 1.e+20f ;
		TVeg:time_representation = "average over past output interval" ;
	float ESoil(time, lat, lon) ;
		ESoil:units = "kg/m^2/s" ;
		ESoil:long_name = "Bare soil evaporation" ;
		ESoil:missing_value = 1.e+20f ;
		ESoil:time_representation = "average over past output interval" ;
	float GPP(time, lat, lon) ;
		GPP:units = "kg/m^2/s" ;
		GPP:long_name = "Gross Primary Production" ;
		GPP:missing_value = 1.e+20f ;
		GPP:time_representation = "average over past output interval" ;
	float NPP(time, lat, lon) ;
		NPP:units = "kg/m^2/s" ;
		NPP:long_name = "Net Primary Production" ;
		NPP:missing_value = 1.e+20f ;
		NPP:time_representation = "average over past output interval" ;
	float NEE(time, lat, lon) ;
		NEE:units = "kg/m^2/s" ;
		NEE:long_name = "Net Ecosystem Exchange" ;
		NEE:missing_value = 1.e+20f ;
		NEE:time_representation = "average over past output interval" ;
	float AutoResp(time, lat, lon) ;
		AutoResp:units = "kg/m^2/s" ;
		AutoResp:long_name = "Autotrophic Respiration" ;
		AutoResp:missing_value = 1.e+20f ;
		AutoResp:time_representation = "average over past output interval" ;
	float HeteroResp(time, lat, lon) ;
		HeteroResp:units = "kg/m^2/s" ;
		HeteroResp:long_name = "Heterotrophic Respiration" ;
		HeteroResp:missing_value = 1.e+20f ;
		HeteroResp:time_representation = "average over past output interval" ;
	float TotSoilCarb(time, lat, lon) ;
		TotSoilCarb:units = "kg/m^2/s" ;
		TotSoilCarb:long_name = "Total Soil Carbon" ;
		TotSoilCarb:missing_value = 1.e+20f ;
	float TotLivBiom(time, lat, lon) ;
		TotLivBiom:units = "kg/m^2/s" ;
		TotLivBiom:long_name = "Total Living Biomass" ;
		TotLivBiom:missing_value = 1.e+20f ;
	float LAI(time, lat, lon) ;
		LAI:units = "m^2/m^2" ;
		LAI:long_name = "Leaf Area Index" ;
		LAI:missing_value = 1.e+20f ;
	float SoilTemp(time, lev, lat, lon) ;
		SoilTemp:units = "K" ;
		SoilTemp:long_name = "soil temperature" ;
		SoilTemp:missing_value = 1.e+20f ;
	float SoilMoist(time, lev, lat, lon) ;
		SoilMoist:units = "kg/m^2" ;
		SoilMoist:long_name = "soil moisture content per layer" ;
		SoilMoist:missing_value = 1.e+20f ;
	float DelSoilMoist(time, lat, lon) ;
		DelSoilMoist:units = "Kg/m^2" ;
		DelSoilMoist:long_name = "total soil moisture content change" ;
		DelSoilMoist:missing_value = 1.e+20f ;

// global attributes:
		:modelID = "ISBA" ;
		:versionID = "SURFEX7.2" ;
		:SurfSgn_convention = "Mathematical" ;
		:history = "Draft 2" ;

Output: Average or instantaneous

Whether the reported values should be instantaneous or averaged over the output time interval is provided below:

time value at the end of the current time step
Rainf average over time step
SWdown average over time step
LWdown average over time step
SWnet average over time step
LWnet average over time step
SWnetVeg average over time step
LWnetVeg average over time step
RadT average over time step
Qle average over time step
Qh average over time step
QleVeg average over time step
QhVeg average over time step
Qg average over time step
DelSoilHeat average over time step
DelPond average over time step
DelIntercept average over time step
Qs average over time step
Qsb average over time step
Qrec average over time step
WaterTableD instantaneous value at end of time step
BaresoilT instantaneous value at end of time step
VegT instantaneous value at end of time step
CanopInt instantaneous value at end of time step
ECanop average over time step
EPondInt average over time step
ESoil average over time step
TVeg average over time step
GPP average over time step
NPP average over time step
NEE average over time step
AutoResp average over time step
HeteroResp average over time step
TotSoilCarb instantaneous value at end of time step
TotLivBiom instantaneous value at end of time step
LAI instantaneous value at end of time step
SoilTemp instantaneous value at end of time step
SoilMoist instantaneous value at end of time step
DelSoilMoist average over time step
DelGroundWat average over time step

Estimate of Output File Sizes

The sample NetCDF template is used here to give an approximate estimate of output file sizes for the mantatory mesoscale experiments (in 32-bit binary, which would correspond to an approximate minimum NetCDF filesize) for 1 year assuming a 30 minute timestep output and 5 soil layers. The actual outputs may vary depending on the version of NetCDF (since more recent versions offer compression options) and if gzip or some other compression is used.

The output filesize for a single 366 day year assuming a DT=1800 s for Niger is approximately 2.2 gigabytes per file per year. So for the Niger mesoscale site, the mandatory experiments total 4 years x 2 Experiments so we have approximately 17.8 gigabytes (note, this is a slight overestimate since 3 of 4 years have 365 days). Using the same model, the 8 mandatory runs for Benin total approximately 15 gigabytes and the 8 mandatory runs for Mali total approximately 4.2 gigabytes. Thus, the grand total for the mandatory runs for the 3 sites for all years is approximately 37 gigabytes (in single precision binary). And again, the file sizes will be less if a model reports fewer variables or has less than 5 soil layers etc.

The output filesize estimates for the local scale simulations is not given here as they will be much smaller. However, the same NetCDF template is to be used but with no horizontal spatial dimension.

Output Server

Data will be uploaded to the ALMIP2 server using ftp ( Participants will be given login and password information. For further questions, please contact us. The server has been set up and maintained by Karim Ramage and Sophie Bouffiès-Cloché at IPSL, Paris, France. Model outputs will be checked by us for errors or any unusual behavior, and also results will be checked for energy and water budget closure (so please verify this before reporting results in order to save time). We will contact groups with problems, and they will be given the opportunity to correct the identified problem(s).