wiki:Branches/Driver_Improvements

Version 3 (modified by nvuilsce, 12 years ago) (diff)

--

Improvements of the Driver of ORCHIDEE

These improvements will concern first the specifities of the driver (its capacity to read forcing files), not its performances that will be improved hopefully by the use of the IOServer. The focus is mainly on the use of forcing files at a 6 or 3-hourly time resolution (such as re-analysis), for which the driver interpolates the meteorological fields to calculate half-hourly fields.

Reminder

The driver of ORCHIDEE is expected to read forcing files with a very specific temporal structure. All time information are defined on UTC time.

The fields read at a certain time step t in the NetCdf? file correspond to:

the instantaneous value at t+1 for Temperature, Wind Speed, Air Pressure and Specific Humidity. the mean value between t and t+1 for Long and Short Wave Incomming Radiation and the Precipitation.

  • Interpolation
    • Instantaneous fields and the Long-Wave Radiation are then linearly interpolated for each t:t+1 time period in order to calculate half-hourly value.
    • The Precipitation field is downscaled to half-hourly resolution using a step distribution function with one parameter (nb_spread, that is the number of half-hourly time steps over which we spread the precipitation). nb_spread can vary from 1 (all precipitations over a forcing time period (3 ou 6 hours) are put on the first time step) to SPLIT_DT (number of integration time steps with a forcing time period, in that case, the precipitation are distributed uniformely). By default, nb_spread is set to 1.
    • The Short-Wave radiation is interpolated using a function distribution that corresponds to the solar angle distribution over a forcing time period.

Add an explicit time information within the forcing files

As described above, the driver of ORCHIDEE is relatively rigid because it only assumes one temporal specification for the forcing files. At first, we do not expect to develop a more flexible driver but we would like to add explicit time information in the driver in order to avoid misuse. We suggest to add a time_bounds attribute to the time variable stored in the NetCdf? forcing files. See here for instance for a possible use: http://www.cgd.ucar.edu/cms/eaton/netcdf/NCAR-CSM.html It is not clear how to use the time_bounds attribute within a multi-variables file, in which the variables have different time specifications (instantaneous vs cumulative variables). The use of a time_op attribute (average, point) for each variable could be a solution. The time specification of a forcing file (based on time_bounds and time_op attributes) should be read by the driver, in order to check for consistency. Questions that remain:

  • How to implement in detail such a solution
  • Is it an optional feature or do we request these specifications for any forcing file.

Restart the last forcing time step read

As the driver is built now, the first time step read (for the Temperature for instance) is valid for t+1. This means that for a yearly file at a 6-hourly time resolution, the first temperature read is for "1-JAN 06:00". For a simulation starting from scratch (no restart), the driver uses the first value for the second day ("2-JAN 00:00") in order to interpolate with the first one readed (and to calculate half-hourly values between "1-JAN 00:00" and "1-JAN 06:00". At the end of a simulation, the last forcing file read is not written in the restart file of the driver. When we perform monthly runs using a yearly forcing file, it is managed within the driver to use the appropriate time step in the forcing file but when we perform yearly runs using a yearly file, we process as for a run starting from scratch (while we could use the last values read during the last run). We suggest to restart the last time step read of the meteorological variables in order to be make possible this.

Attachments (12)