15 char **responsedescriptors = NULL;
16 int numresponsedescriptors;
17 char **variabledescriptors = NULL;
18 int numvariabledescriptors;
19 char *descriptor = NULL;
20 double *dakota_parameter = NULL;
23 char *qmuinname = NULL;
24 char *qmuerrname = NULL;
25 char *qmuoutname = NULL;
30 bool dakota_analysis =
false;
32 int numberofresponses;
37 int *mdims_array = NULL;
38 int *ndims_array = NULL;
44 iomodel->
FindConstant(&dakota_analysis,
"md.qmu.isdakota");
51 iomodel->
FindConstant(&numberofresponses,
"md.qmu.numberofresponses");
54 qmuinname=xNew<char>((strlen(rootpath)+strlen(name)+strlen(
".qmu.in")+1));
55 sprintf(qmuinname,
"%s%s%s",rootpath,name,
".qmu.in");
58 qmuoutname=xNew<char>((strlen(rootpath)+strlen(name)+strlen(
".qmu.out")+1));
59 sprintf(qmuoutname,
"%s%s%s",rootpath,name,
".qmu.out");
62 qmuerrname=xNew<char>((strlen(rootpath)+strlen(name)+strlen(
".qmu.err")+1));
63 sprintf(qmuerrname,
"%s%s%s",rootpath,name,
".qmu.err");
67 iomodel->
FindConstant(&variabledescriptors,&numvariabledescriptors,
"md.qmu.variabledescriptors");
70 iomodel->
FindConstant(&responsedescriptors,&numresponsedescriptors,
"md.qmu.responsedescriptors");
76 iomodel->
FetchData(&array,&mdims_array,&ndims_array,&num_partitions,
"md.qmu.variablepartitions");
78 iomodel->
FetchData(&intarray,&M,&N,
"md.qmu.variablepartitions_npart");
80 xDelete<int>(intarray); iomodel->
FetchData(&intarray,&M,&N,
"md.qmu.variablepartitions_nt");
84 for(i=0;i<num_partitions;i++){
86 xDelete<IssmDouble>(matrix);
88 xDelete<int>(mdims_array);
89 xDelete<int>(ndims_array);
90 xDelete<IssmDouble*>(array);
91 xDelete<int>(intarray);
95 iomodel->
FetchData(&array,&mdims_array,&ndims_array,&num_partitions,
"md.qmu.responsepartitions");
97 iomodel->
FetchData(&intarray,&M,&N,
"md.qmu.responsepartitions_npart");
101 for(i=0;i<num_partitions;i++){
103 xDelete<IssmDouble>(matrix);
105 xDelete<int>(mdims_array);
106 xDelete<int>(ndims_array);
107 xDelete<IssmDouble*>(array);
108 xDelete<int>(intarray);
114 for(i=0;i<numvariabledescriptors;i++){
115 if (strncmp(variabledescriptors[i],
"scaled_",7)==0){
117 sscanf(variabledescriptors[i],
"scaled_%s",tag);
120 char* fieldname = NULL;
125 iomodel->
FetchData(&dakota_parameter,&nrows,&ncols,fieldname);
132 xDelete<double>(dakota_parameter);
133 xDelete<char>(fieldname);
137 delete dataset_variable_descriptors;
140 for(i=0;i<numresponsedescriptors;i++){
141 descriptor=responsedescriptors[i];
142 xDelete<char>(descriptor);
144 xDelete<char*>(responsedescriptors);
145 for(i=0;i<numvariabledescriptors;i++){
146 descriptor=variabledescriptors[i];
147 xDelete<char>(descriptor);
149 xDelete<char*>(variabledescriptors);
150 xDelete<char>(qmuinname);
151 xDelete<char>(qmuerrname);
152 xDelete<char>(qmuoutname);