Compute secondary large-scale field difference between value of learning field at analog date vs model field at downscaled date. More...
#include <dsclim.h>
Go to the source code of this file.
Functions | |
void | compute_secondary_large_scale_diff (double *delta, double **delta_dayschoice, analog_day_struct analog_days, double *sup_field_index, double *sup_field_index_learn, double sup_field_var, double sup_field_var_learn, int ntimes) |
Compute secondary large-scale field difference between value of learning field at analog date vs model field at downscaled date. |
Compute secondary large-scale field difference between value of learning field at analog date vs model field at downscaled date.
Definition in file compute_secondary_large_scale_diff.c.
void compute_secondary_large_scale_diff | ( | double * | delta, | |
double ** | delta_dayschoice, | |||
analog_day_struct | analog_days, | |||
double * | sup_field_index, | |||
double * | sup_field_index_learn, | |||
double | sup_field_var, | |||
double | sup_field_var_learn, | |||
int | ntimes | |||
) |
Compute secondary large-scale field difference between value of learning field at analog date vs model field at downscaled date.
[out] | delta | Difference between value of secondary large-scale learning field at analog date vs model field at downscaled date |
[out] | delta_dayschoice | Difference between value of secondary large-scale learning field at analog date vs model field at downscaled date, for ndayschoice analog days |
[in] | analog_days | Analog days time indexes and dates with corresponding dates being downscaled |
[in] | sup_field_index | Secondary large-scale field index of days to downscale |
[in] | sup_field_index_learn | Secondary large-scale field index of learning period |
[in] | sup_field_var | Secondary large-scale field index variance of days to downscale |
[in] | sup_field_var_learn | Secondary large-scale field index variance of learning period |
[in] | ntimes | Number of times of days to downscale for this period |
Compute normalized secondary large-scale field difference (delta)
Definition at line 60 of file compute_secondary_large_scale_diff.c.
References analog_day_struct::ndayschoice, analog_day_struct::tindex, and analog_day_struct::tindex_dayschoice.
Referenced by wt_downscaling().
00061 { 00073 int t; /* Time loop counter */ 00074 int ii; /* ndayschoice loop counter */ 00075 // double sup_diff; /**< Secondary large-scale field difference. */ 00076 // int count = 0; 00077 00078 /* Process each downscaled day */ 00079 for (t=0; t<ntimes; t++) { 00081 delta[t] = (sup_field_index[t] * sqrt(sup_field_var)) - 00082 (sup_field_index_learn[analog_days.tindex[t]] * sqrt(sup_field_var_learn)); 00083 for (ii=0; ii<analog_days.ndayschoice[t]; ii++) 00084 delta_dayschoice[t][ii] = (sup_field_index[t] * sqrt(sup_field_var)) - 00085 (sup_field_index_learn[analog_days.tindex_dayschoice[t][ii]] * sqrt(sup_field_var_learn)); 00086 00087 // if (fabs(sup_diff) > 2.0) { 00088 // delta[t] = sup_diff; 00089 // printf("%d %lf\n",t,delta[t]); 00090 // count++; 00091 // } 00092 // else 00093 // delta[t] = 0.0; 00094 // if (t == (ntimes-1)) 00095 // printf("%d %lf %lf %lf %d %d %d\n",count,delta[t],sup_field_index[t],sup_field_index_learn[analog_days.tindex[t]],analog_days.year[t],analog_days.month[t],analog_days.day[t]); 00096 00097 } 00098 }