Daily_QC
check_consistency.c
Go to the documentation of this file.
1 #include "prototypes_new.h"
2 
3 void check_consistency(int j)
4 
5 {
6 
7 int k,m;
8 float rtotal;
9 extern int max_stations;
10 extern struct pdata pdata[10];
11 extern struct station station[3000];
12 int i,ii;
13 
14 for(k=0;k<max_stations;k++) {
15 
16  pdata[j].stn[k].tcons=1;
17 
18  if(pdata[j].stn[k].frain[4].data < 0 ||
19  pdata[j].stn[k].frain[4].qual==1)
20  continue;
21 
22  rtotal=0;
23  for(m=0;m<4;m++) {
24 
25  if(pdata[j].stn[k].frain[m].data >= 0)
26  rtotal=rtotal+pdata[j].stn[k].frain[m].data;
27 
28  }
29 
30  if(fabs(rtotal-pdata[j].stn[k].frain[4].data) > .01)
31  pdata[j].stn[k].tcons=-1;
32 
33 
34  }
35 
36 for(k=0;k<max_stations;k++) {
37 
38  station[k].lat;
39  station[k].lon;
40 
41  for(m=0;m<5;m++) {
42 
43  if(pdata[j].stn[k].frain[m].qual==1 ||
44  pdata[j].stn[k].frain[m].data < 0)
45  continue;
46 
47  pdata[j].stn[k].scons[m]=1;
48 
49  for(ii=0;ii<30;ii++){
50 
51  i=station[k].index[ii];
52 
53  if(station[i].lat == station[k].lat &&
54  station[i].lon == station[k].lon &&
55  pdata[j].stn[i].frain[m].qual != 1 &&
56  pdata[j].stn[i].frain[m].data >=0 &&
57  pdata[j].stn[i].frain[m].data !=
58  pdata[j].stn[k].frain[m].data) {
59 
60  pdata[j].stn[k].scons[m]=-1;
61 
62  }
63 
64  }
65 
66 
67  }
68 
69  }
70 
71 
72 }
73 
74 
int max_stations
Definition: daily_qc.c:199
void check_consistency(int j)
char qual[10]
Definition: display_data.c:29
Definition: misc.h:216
struct stn stn[1500]
Definition: misc.h:222
float data
Definition: misc.h:193
Definition: misc.h:232
float lat
Definition: misc.h:239
float lon
Definition: misc.h:240
short int index[30]
Definition: misc.h:238
Definition: misc.h:200
short int * scons
Definition: misc_new.h:380
short int tcons
Definition: misc_new.h:379
struct rain frain[5]
Definition: misc.h:203