## Materials and Methods
### CCDAS Scheme  
CCDAS is based on a terrestrial biosphere model (BETHY) and a gradient-based optimization method [10; 16; 34; 35]. CCDAS can be run in a single-site, multi-site, or global-scale setup. BETHY simulates photosynthesis, autotrophic respiration, energy balance, and plant hydrological processes on an hourly scale, and phenology, soil hydrology, and heterotrophic respiration on a daily \begin{table}
\begin{tabular}{c c c c c c c} \hline \hline
**Site Name** & **Latitude** & **Longitude** & **PFT\_1** & **PFT\_2** & **PFT\_3** & **Texture** \\ \hline AU-DaS & \(-14.16\) & \(131.39\) & \(10\) (0.70) \({}^{\star}\) & \(7\) (0.30) & / & Sandy loam \\ CA-Gro & \(48.22\) & \(-82.16\) & \(5\) (0.85) & \(4\) (0.10) & \(9\) (0.05) & Loamy sand \\ CN-Sw2 & \(41.79\) & \(111.90\) & \(9\) (0.70) & \(10\) (0.30) & / & Loam \\ DK-Sor & \(55.49\) & \(11.64\) & \(4\) (0.95) & \(9\) (0.05) & / & Loamy sand \\ ES-LMa & \(39.94\) & \(-5.77\) & \(9\) (0.60) & \(3\) (0.40) & / & Sandy loam \\ FI-Sod & \(67.36\) & \(26.64\) & \(5\) (0.60) & \(4\) (0.40) & / & Sandy loam \\ FR-Pue & \(43.74\) & \(3.60\) & \(3\) (0.95) & \(9\) (0.05) & / & Sandy clay loam \\ NL-Luo & \(52.17\) & \(5.74\) & \(5\) (0.95) & \(9\) (0.05) & / & Loamy sand \\ US-Kfs & \(39.05\) & \(-95.19\) & \(9\) (0.95) & \(8\) (0.05) & / & Loam \\ US-Wkg & \(31.74\) & \(-109.94\) & \(10\) (0.90) & \(7\) (0.10) & / & Loam \\ \hline \hline \end{tabular} \({}^{\star}\) The fraction of each PFT is given after PFT number.  
\end{table} 
Table 1: Study site information, including latitude, longitude, PFTs, and textures. scale. BETHY has 13 plant functional types (PFTs) to globally describe vegetation, as shown in Table A1. Each grid cell can be characterized by up to 3 PFTs, with a fractional coverage assigned for each PFT. Most PFTs use the same set of basic equations in modeling carbon cycle processes with different parameter values assigned. However, C3 and C4 photosynthesis and the growing season onset and termination (phenology) of each PFT are described by PFT-specific equations [16]. BETHY is forced by daily meteorological data, namely maximum and minimum air temperatures, precipitation, and incoming shortwave radiation. Here, we used meteorological data derived from the CRUNCEP V7 dataset ([[https://www.earthsystemgrid.org](https://www.earthsystemgrid.org)]([https://www.earthsystemgrid.org](https://www.earthsystemgrid.org)), last accessed 6 July 2018) as input data for running the model because the meteorological data measured at the sites are incomplete over the simulation period of 2010-2015. The original CRUNCEP data with a 6-hourly temporal resolution was converted to daily values. Meteorological data for each study site was extracted from the 0.5\({}^{\circ}\)\(\times\) 0.5\({}^{\circ}\) gridded dataset. These data were then corrected by measured meteorological data from site meteorological stations to fill existing gaps in the site meteorology. The correction was done by using a linear regression method for air temperature and radiation. Precipitation was corrected by adjusting CRUNCEP gridded data to the total precipitation over the simulation period at the corresponding site. The model's hydrology was initialized by a spin-up run of the model using climatological forcing from 2009, which was sufficient for initializing the model as shown to be reasonable by [19]. CCDAS uses a probabilistic inversion method as described by [36]. A more detailed description of the optimization strategy can be found in [22]. In short, the system uses Gaussian Probability Density Functions (PDFs) to describe the state of the control vector, \(x\) (containing the model's process parameters), and the observations, d. The uncertainty covariance matrices of the model parameters and the observations are represented by \(C_{x}\) and \(C_{d}\), respectively. The model, \(M(x)\), includes appropriate observation operators and maps the parameters to observables. The assimilation was done by minimizing the following cost function:  
\[J_{total}(x)=\tfrac{1}{2}\left[