Daily_QC
new_read_qpf_grids.c
Go to the documentation of this file.
1 
2 #include "prototypes.h"
3 
4 int read_qpf_grids(int k,char *fname)
5 
6 {
7 extern int pcp_in_use[200];
8 FILE *fp;
9 extern struct hrap_grid *hrap_grid;
10 int i,j,h;
11 char kbuf[10000];
12 extern struct pcp *pcp;
13 int minhrapi,minhrapj,maxhrapi,maxhrapj;
14 int ghrapi,ghrapj;
15 int ii,jj;
16 int ier;
17 char *p;
18 int gmini,gminj,gmaxi,gmaxj;
19 
20 fp=fopen(fname,"r");
21 
22 
23 if(fp==NULL) {
24 
25  printf("could not open %s\n",fname);
26 
27  return(-1);
28 
29  }
30 
31 for(i=0;i<hrap_grid->maxi;i++) {
32 
33 for(j=0;j<hrap_grid->maxj;j++) {
34 
35  pcp->value[i][j]=0;
36 
37  }
38 
39 }
40 
41 minhrapi=hrap_grid->hrap_minx;
42 minhrapj=hrap_grid->hrap_miny;
43 maxhrapi=hrap_grid->hrap_minx + hrap_grid->maxi;
44 maxhrapj=hrap_grid->hrap_miny + hrap_grid->maxj;
45 
46 p=fgets(kbuf,100,fp);
47 
48 ier=sscanf(kbuf,"%d %d %d %d %d\n",&gmini,&gminj,&gmaxi,&gmaxj,&iflag);
49 
50 if(ier==4)
51  iflag=0;
52 
53 for(i=0;i<gmaxi;i++) {
54 
55  if(iflag==0)
56  fread(kbuf,sizeof(char),gmaxj*4,fp);
57 
58  else
59  fread(kbuf,sizeof(char),gmaxj*6,fp);
60 
61  /* get hrap coord of gridded data */
62 
63  ghrapi=gmini+i;
64 
65  ii=ghrapi-minhrapi;
66 
67  if(ghrapi >= minhrapi && ghrapi < maxhrapi) {
68 
69  h=0;
70 
71  for(j=0;j<gmaxj;j++) {
72 
73  ghrapj=gminj+j;
74 
75  jj=ghrapj-minhrapj;
76 
77 
78 
79  if(ghrapj >= minhrapj && ghrapj < maxhrapj) {
80 
81  pcp->value[ii][jj]=atoi(&kbuf[h]);;
82 
83 
84  }
85 
86  h=h+4;
87 
88 
89  }
90 
91  }
92 
93  }
94 
95 fclose(fp);
96 
97 /*copy to internal file */
98 
99 write_file("pcp",k,pcp);
100 
101 pcp_in_use[k]=1;
102 
103 return(1);
104 
105 }
106 
int pcp_in_use[500]
Definition: daily_qc.c:243
struct pcp * pcp
Definition: daily_qc.c:277
struct hrap_grid * hrap_grid
Definition: daily_qc.c:285
printf("pcp %d\n", pcp_in_use[103])
void write_file(char *, int, struct pcp *)
int read_qpf_grids(int k, char *fname)
short int hrap_miny
Definition: misc.h:510
short int hrap_minx
Definition: misc.h:509
short int maxi
Definition: misc.h:507
short int maxj
Definition: misc.h:508
Definition: misc.h:523
short int ** value
Definition: misc.h:526