8 void ProcessArguments2(
char** pbinfilename,
char** poutbinfilename,
char** plockfilename,
char** prootpath,
int argc,
char **argv);
11 int main(
int argc,
char **argv){
14 FILE *output_fid = NULL;
15 FILE *input_fid = NULL;
18 char *lockfilename = NULL;
19 char *binfilename = NULL;
20 char *outbinfilename = NULL;
21 char *rootpath = NULL;
43 ProcessArguments2(&binfilename,&outbinfilename,&lockfilename,&rootpath,argc,argv);
46 input_fid=
pfopen(binfilename,
"rb");
47 ProcessInputfile(&x,&y,&data,&nobs,&x_interp,&y_interp,&ninterp,&options,input_fid);
51 pKrigingx(&predictions,&error,x,y,data,nobs,x_interp,y_interp,ninterp,options);
56 output_fid=
pfopen0(outbinfilename,
"wb");
59 for(
int i=0;i<results->
Size();i++){
63 pfclose(output_fid,outbinfilename);
71 xDelete<char>(lockfilename);
72 xDelete<char>(binfilename);
73 xDelete<char>(outbinfilename);
74 xDelete<char>(rootpath);
75 xDelete<IssmDouble>(x);
76 xDelete<IssmDouble>(y);
77 xDelete<IssmDouble>(data);
78 xDelete<IssmDouble>(x_interp);
79 xDelete<IssmDouble>(y_interp);
80 xDelete<IssmDouble>(predictions);
81 xDelete<IssmDouble>(error);
94 void ProcessArguments2(
char** pbinfilename,
char** poutbinfilename,
char** plockfilename,
char** prootpath,
int argc,
char **argv){
95 char *modelname = NULL;
96 char *binfilename = NULL;
97 char *outbinfilename = NULL;
98 char *lockfilename = NULL;
99 char *rootpatharg = NULL;
100 char *rootpath = NULL;
102 if(argc<1)
_error_(
"Usage error: no execution path provided");
103 if(argc<2)
_error_(
"Usage error: missing model name");
106 if(strcmp(strstr(rootpatharg,
"/"),
"/")!=0){
107 rootpath = xNew<char>(strlen(rootpatharg)+2); sprintf(rootpath,
"%s/",rootpatharg);
110 rootpath = xNew<char>(strlen(rootpatharg)+1); sprintf(rootpath,
"%s",rootpatharg);
114 if(strstr(modelname,rootpath)==NULL){
115 binfilename = xNew<char>(strlen(rootpath)+strlen(modelname)+strlen(
".bin") +1); sprintf(binfilename,
"%s%s%s",rootpath,modelname,
".bin");
116 outbinfilename = xNew<char>(strlen(rootpath)+strlen(modelname)+strlen(
".outbin")+1); sprintf(outbinfilename,
"%s%s%s",rootpath,modelname,
".outbin");
117 lockfilename = xNew<char>(strlen(rootpath)+strlen(modelname)+strlen(
".lock") +1); sprintf(lockfilename,
"%s%s%s",rootpath,modelname,
".lock");
120 binfilename = xNew<char>(strlen(modelname)+strlen(
".bin") +1); sprintf(binfilename,
"%s%s",modelname,
".bin");
121 outbinfilename = xNew<char>(strlen(modelname)+strlen(
".outbin")+1); sprintf(outbinfilename,
"%s%s",modelname,
".outbin");
122 lockfilename = xNew<char>(strlen(modelname)+strlen(
".lock") +1); sprintf(lockfilename,
"%s%s",modelname,
".lock");
126 *pbinfilename=binfilename;
127 *poutbinfilename=outbinfilename;
128 *plockfilename=lockfilename;
146 iomodel->
FetchData(&x,&M,&N,
"md.x"); nobs=M*N;
149 iomodel->
FetchData(&x_interp,&M,&N,
"md.x_interp"); ninterp=M*N;
154 iomodel->
FetchData(options,
"md.y_interp");
161 *px_interp = x_interp;
162 *py_interp = y_interp;