modules_obs (10/06/15)

CRHM Borland

obs

Defined in Classobs. This module reads the climatic data from the observation data  file(s) into the model. The time step is determined by the observation file interval.  For normal use, the interval will be half or one hour. The module copies the observations to the HRU's with the requested corrections for redirection, height and climate change. One of the precipitation observations "p" and "ppt" must be present.   If both are used (e.g. "p" for rainfall and "ppt" for snowfall) they are  merged to generate "hru_p".  When both "p" and "ppt" are used together, both must be present in every interval and set to zero when not used. "ppt" can also be in a separate "daily" file containing the daily rainfall. When "ppt" is combined with the interval data only the first interval value of every day is read and used as the total precipitation for the day.   All other values are ignored.

Observations

  • u (m/s) - average wind speed over time step.
  • p (mm/int) - interval precipitation. Optional if ppt available. p and ppt values are merged.
  • ppt (mm/d) - daily precipitation. Optional if p available. p and ppt values are merged.
  • t_max (°C) - variation #1 daily maximum temperature. Only used for daily 24 hour time step.
  • t_min (°C) - variation #1 daily minimum temperature. Only used for daily 24 hour time step.
  • t (°C) - air temperature using the INTVL declobs function to read the entire days temperature data. Then modified in buffer by parameters lapse rate and ClimChng_t.
  • rh (%) - relative humidity using the INTVL declobs function to read the entire days relative humidity data.
  • ea (kPa) - vapour pressure using the INTVL declobs function to read the entire days vapour pressure data.

N.B. Either rh or ea are used. If both are available only rh is used. The other is calculated from the array of rh or ea values, using the adjusted temperature (lapse rate and climate change) and the parameter ElevChng_flag (maintain rh or ea with temperatue change).

Variables

The following are from interval observations.

  • tday_intvls (°C) - temperature array holding  interval values. Values have Dimensioned [interval][dim].
  • rhday_intvls  (%) -RH array holding  interval values. Dimensioned [interval][dim].
  • eaday_intvls  (kPa) - ea array holding  interval values. Values are calculated from above t and RH. Dimensioned [interval][dim].
  • t_obs (°C) - temperature array holding the original observation interval values before adjustment for lapse rate and climate warming. Note that HRU_OBS redirection have been applied. Access t-obs [period in day, dim].

The following variables are derived for each HRU from the observations.

  • hru_t (°C) - temperature
  • hru_rh (%) - relative humidity.
  • hru_ea (kPa) - vapour pressure
  • hru_u (m/s) - wind speed.
  • hru_p (mm/int) - precipitation. Calculated from the interval precipitation (p) and/or (daily precipitation (ppt) /frequency) or all the daily precipitation (ppt) during the first daily interval of the day as determined by the parameter "ppt_daily_distrib".
  • hru_rain (mm/int) - rain.
  • cumhru_rain (mm) - cumulative rain
  • hru_snow (mm/int) - snow.
  • cumhru_snow (mm) - cumulative snow.
  • cumhru_snow_meas (mm) - cumulative snow before catch adjustment.
  • hru_newsnow () - 0/1 for no/yes in the last interval.
  • hru_tmean (°C) - daily mean temperature.
  • hru_tmax (°C) - daily maximum temperature.
  • hru_tmin (°C) - daily minimum temperature.
  • hru_umean (m/s) - daily mean wind speed.
  • hru_rhmean (%) - daily mean RH.
  • hru_eamean (kPa) - daily mean vapour pressure.
  • Pa(kPa) - atmospheric pressure.

Parameters

  • basin_area (km^2) - basin area.
  • hru area (km^2) - HRU area.
  • hru_elev (m) - altitude.
  • obs_elev (m) - altitude.
  • HRU_OBS () - array[5][dim] of values indexing observations to HRUs. The order is 1) t, rh and ea; 2) p and ppt; 3) u; 4) Q; and 5) for special use.
  • snow_rain_determination() - snow/rain determination: 0 - air temperature, 1 - ice bulb temperature.
  • tmax_allrain (°C) - precipitation is all rain when the temperature is greater or equal to this value.
  • tmax_allsnow (°C) - precipitation is all snow when the temperature is less or equal to this value.
  • catchadjust () - none - 0/Nipher - 1/MacDonald-Alter (not recommended) - 2/Smith-Alter - 3.
  • ppt_daily_distrib () - 0/1 - daily precip all in first interval /equally divided over the day.
  • lapse_rate (°C/100m) - lapse rate correction.
  • ElevChng_flag () - Elevation change control; 0 - maintain RH, 1 - keep Vp within Vsat maximum.
  • precip_elev_adj () - precipitation height adjustment {adjusted p(or ppt) = p(or ppt)*(1.0 + precip_elev_adj*elev_difference/100)}.
  • ClimChng_t (°C) - Climate change additive temperature change.
  • ClimChng_flag () - Climate change control; 0 - maintain RH, 1 - keep Vp within Vsat maximum
  • ClimChng_precip () - Climate change multiplative p/ppt change {adjusted p(or ppt) = p(or ppt)*ClimChng_precip}.
  • Use_Observations_As_Supplied () - 0 -> CRHM handles observation corrections for lapse rate/allocation etc., 1 -> Externally corrected observation dataset.

Variable Inputs

  • none

Notes

    The parameter HRO_OBS applies to all observations. E.g t, rh, u, ea, Qsi, Qli, Tg etc..

    The parameter HRO_OBS is normally defined in the module "obs".

    The parameter HRO_OBS has a default value of 1 for every HRU.   This implies that there is only one set of observations and that all HRUs use this set of values.  However, if the observation file had six sets of temperature data, the observation has "t 6 (°C)" in its header then the following HRU_OBS settings are possible.

HRU_OBS = 1, 2, 3, 4, 5, 6 then the HRU1, HRU2 ... use temperatures T1, T2, T3 ... as driving inputs.

HRU_OBS = 4, 5, 6,1, 2, 3  then the HRU1, HRU2 ... use temperatures T4, T5, T6, T1, T2, T3 as driving inputs.

HRU_OBS = 4, 4, 4, 4, 4, 4  then the HRU1, HRU2 ... use only temperatures T4 as the driving input.

However, if the observation file has only three sets of temperature data, i.e. "t 3 (°C)" in its header, the last defined observation is duplicated for the higher values.

HRU_OBS = 4, 5, 6,1, 2, 3  then the HRU1, HRU2 ... use temperatures T3, T3, T3, T1, T2, T3 as driving inputs.

    When the observation variables are displayed in CRHM they are displayed in the same order as in the observation file.  When the observations are displayed from the HRU, e.g. hru_t, the order will be determined by the HRU_OBS values.