14 DataSet* output_definitions = NULL;
15 int* output_definition_enums = NULL;
16 int num_output_definitions;
19 output_definitions=
new DataSet();
20 char** out_strings = NULL;
21 iomodel->
FetchData(&out_strings,&num_output_definitions,
"md.outputdefinition.list");
22 if(num_output_definitions>0){
23 output_definition_enums=xNew<int>(num_output_definitions);
24 for(
int i=0;i<num_output_definitions;i++){
29 for(
int i=0;i<num_output_definitions;i++) xDelete<char>(out_strings[i]);
30 xDelete<char*>(out_strings);
32 if(num_output_definitions){
33 for (i=0;i<num_output_definitions;i++){
39 char **gatenames = NULL;
40 char **gatedefinitionstrings = NULL;
42 int *gatesegments_M = NULL;
47 iomodel->
FetchMultipleData(&gatesegments,&gatesegments_M,NULL,&temp,
"md.massfluxatgate.segments");
_assert_(temp==numgates);
49 for(j=0;j<numgates;j++){
53 for(j=0;j<numgates;j++){
54 char*
string = gatenames[j]; xDelete<char>(
string);
55 char* string2 = gatedefinitionstrings[j]; xDelete<char>(string2);
56 IssmDouble* gate = gatesegments[j]; xDelete<IssmDouble>(gate);
58 xDelete<char*>(gatenames);
59 xDelete<IssmDouble*>(gatesegments);
60 xDelete<int>(gatesegments_M);
61 xDelete<char*>(gatedefinitionstrings);
64 else if (output_definition_enums[i]==
MisfitEnum){
69 char** misfit_name_s = NULL;
70 char** misfit_definitionstring_s = NULL;
71 char** misfit_model_string_s = NULL;
73 char** misfit_observation_string_s = NULL;
74 int* misfit_observation_M_s = NULL;
75 int* misfit_observation_N_s = NULL;
76 int* misfit_local_s = NULL;
77 char** misfit_timeinterpolation_s = NULL;
79 int* misfit_weights_M_s = NULL;
80 int* misfit_weights_N_s = NULL;
81 char** misfit_weights_string_s = NULL;
85 iomodel->
FetchMultipleData(&misfit_definitionstring_s,&nummisfits,
"md.misfit.definitionstring");
86 iomodel->
FetchMultipleData(&misfit_model_string_s,&nummisfits,
"md.misfit.model_string");
87 iomodel->
FetchMultipleData(&misfit_observation_s,&misfit_observation_M_s,&misfit_observation_N_s,&nummisfits,
"md.misfit.observation");
88 iomodel->
FetchMultipleData(&misfit_observation_string_s,&nummisfits,
"md.misfit.observation_string");
89 iomodel->
FetchMultipleData(&misfit_timeinterpolation_s,&nummisfits,
"md.misfit.timeinterpolation");
91 iomodel->
FetchMultipleData(&misfit_weights_s,&misfit_weights_M_s,&misfit_weights_N_s,&nummisfits,
"md.misfit.weights");
92 iomodel->
FetchMultipleData(&misfit_weights_string_s,&nummisfits,
"md.misfit.weights_string");
94 for(j=0;j<nummisfits;j++){
96 int obs_vector_type=0;
104 _error_(
"misfit observation size not supported yet");
106 int weight_vector_type=0;
108 weight_vector_type=1;
111 weight_vector_type=2;
114 _error_(
"misfit weight size not supported yet");
120 for(
int k=0;k<elements->
Size();k++){
122 element->
InputCreate(misfit_observation_s[j],inputs2,iomodel,misfit_observation_M_s[j],misfit_observation_N_s[j],obs_vector_type,
StringToEnumx(misfit_observation_string_s[j]),7);
123 element->
InputCreate(misfit_weights_s[j],inputs2,iomodel,misfit_weights_M_s[j],misfit_weights_N_s[j],weight_vector_type,
StringToEnumx(misfit_weights_string_s[j]),7);
129 for(j=0;j<nummisfits;j++){
132 string = misfit_definitionstring_s[j]; xDelete<char>(
string);
133 string = misfit_observation_string_s[j]; xDelete<char>(
string);
134 string = misfit_model_string_s[j]; xDelete<char>(
string);
135 string = misfit_weights_string_s[j]; xDelete<char>(
string);
136 string = misfit_name_s[j]; xDelete<char>(
string);
137 string = misfit_timeinterpolation_s[j]; xDelete<char>(
string);
138 matrix = misfit_observation_s[j]; xDelete<IssmDouble>(matrix);
139 matrix = misfit_weights_s[j]; xDelete<IssmDouble>(matrix);
141 xDelete<char*>(misfit_name_s);
142 xDelete<char*>(misfit_model_string_s);
143 xDelete<char*>(misfit_definitionstring_s);
144 xDelete<IssmDouble*>(misfit_observation_s);
145 xDelete<char*>(misfit_observation_string_s);
146 xDelete<int>(misfit_observation_M_s);
147 xDelete<int>(misfit_observation_N_s);
148 xDelete<int>(misfit_local_s);
149 xDelete<char*>(misfit_timeinterpolation_s);
150 xDelete<IssmDouble*>(misfit_weights_s);
151 xDelete<int>(misfit_weights_M_s);
152 xDelete<int>(misfit_weights_N_s);
153 xDelete<char*>(misfit_weights_string_s);
160 int num_cfsurfacesquares;
161 char** cfsurfacesquare_name_s = NULL;
162 char** cfsurfacesquare_definitionstring_s = NULL;
163 char** cfsurfacesquare_model_string_s = NULL;
164 IssmDouble** cfsurfacesquare_observation_s = NULL;
165 char** cfsurfacesquare_observation_string_s = NULL;
166 int* cfsurfacesquare_observation_M_s = NULL;
167 int* cfsurfacesquare_observation_N_s = NULL;
168 IssmDouble** cfsurfacesquare_weights_s = NULL;
169 int* cfsurfacesquare_weights_M_s = NULL;
170 int* cfsurfacesquare_weights_N_s = NULL;
171 char** cfsurfacesquare_weights_string_s = NULL;
172 int* cfsurfacesquare_datatime_s = NULL;
175 iomodel->
FetchMultipleData(&cfsurfacesquare_name_s,&num_cfsurfacesquares,
"md.cfsurfacesquare.name");
176 iomodel->
FetchMultipleData(&cfsurfacesquare_definitionstring_s,&num_cfsurfacesquares,
"md.cfsurfacesquare.definitionstring");
177 iomodel->
FetchMultipleData(&cfsurfacesquare_model_string_s,&num_cfsurfacesquares,
"md.cfsurfacesquare.model_string");
178 iomodel->
FetchMultipleData(&cfsurfacesquare_observation_s,&cfsurfacesquare_observation_M_s,&cfsurfacesquare_observation_N_s,&num_cfsurfacesquares,
"md.cfsurfacesquare.observation");
179 iomodel->
FetchMultipleData(&cfsurfacesquare_observation_string_s,&num_cfsurfacesquares,
"md.cfsurfacesquare.observation_string");
180 iomodel->
FetchMultipleData(&cfsurfacesquare_weights_s,&cfsurfacesquare_weights_M_s,&cfsurfacesquare_weights_N_s,&num_cfsurfacesquares,
"md.cfsurfacesquare.weights");
181 iomodel->
FetchMultipleData(&cfsurfacesquare_weights_string_s,&num_cfsurfacesquares,
"md.cfsurfacesquare.weights_string");
182 iomodel->
FetchMultipleData(&cfsurfacesquare_datatime_s,&num_cfsurfacesquares,
"md.cfsurfacesquare.datatime");
184 for(j=0;j<num_cfsurfacesquares;j++){
186 int obs_vector_type=0;
194 _error_(
"cfsurfacesquare observation size not supported yet");
196 int weight_vector_type=0;
198 weight_vector_type=1;
201 weight_vector_type=2;
204 _error_(
"cfsurfacesquare weight size not supported yet");
210 for(
int k=0;k<elements->
Size();k++){
220 for(j=0;j<num_cfsurfacesquares;j++){
224 string = cfsurfacesquare_definitionstring_s[j]; xDelete<char>(
string);
225 string = cfsurfacesquare_observation_string_s[j]; xDelete<char>(
string);
226 string = cfsurfacesquare_model_string_s[j]; xDelete<char>(
string);
227 string = cfsurfacesquare_weights_string_s[j]; xDelete<char>(
string);
228 string = cfsurfacesquare_name_s[j]; xDelete<char>(
string);
229 matrix = cfsurfacesquare_observation_s[j]; xDelete<IssmDouble>(matrix);
230 matrix = cfsurfacesquare_weights_s[j]; xDelete<IssmDouble>(matrix);
232 xDelete<char*>(cfsurfacesquare_name_s);
233 xDelete<char*>(cfsurfacesquare_model_string_s);
234 xDelete<char*>(cfsurfacesquare_definitionstring_s);
235 xDelete<IssmDouble*>(cfsurfacesquare_observation_s);
236 xDelete<char*>(cfsurfacesquare_observation_string_s);
237 xDelete<int>(cfsurfacesquare_observation_M_s);
238 xDelete<int>(cfsurfacesquare_observation_N_s);
239 xDelete<IssmDouble*>(cfsurfacesquare_weights_s);
240 xDelete<int>(cfsurfacesquare_weights_M_s);
241 xDelete<int>(cfsurfacesquare_weights_N_s);
242 xDelete<char*>(cfsurfacesquare_weights_string_s);
243 xDelete<int>(cfsurfacesquare_datatime_s);
250 int num_cfdragcoeffabsgrads;
251 char** cfdragcoeffabsgrad_name_s = NULL;
252 char** cfdragcoeffabsgrad_definitionstring_s = NULL;
253 IssmDouble** cfdragcoeffabsgrad_weights_s = NULL;
254 int* cfdragcoeffabsgrad_weights_M_s = NULL;
255 int* cfdragcoeffabsgrad_weights_N_s = NULL;
256 char** cfdragcoeffabsgrad_weights_string_s = NULL;
259 iomodel->
FetchMultipleData(&cfdragcoeffabsgrad_name_s,&num_cfdragcoeffabsgrads,
"md.cfdragcoeffabsgrad.name");
260 iomodel->
FetchMultipleData(&cfdragcoeffabsgrad_definitionstring_s,&num_cfdragcoeffabsgrads,
"md.cfdragcoeffabsgrad.definitionstring");
261 iomodel->
FetchMultipleData(&cfdragcoeffabsgrad_weights_s,&cfdragcoeffabsgrad_weights_M_s,&cfdragcoeffabsgrad_weights_N_s,&num_cfdragcoeffabsgrads,
"md.cfdragcoeffabsgrad.weights");
262 iomodel->
FetchMultipleData(&cfdragcoeffabsgrad_weights_string_s,&num_cfdragcoeffabsgrads,
"md.cfdragcoeffabsgrad.weights_string");
264 for(j=0;j<num_cfdragcoeffabsgrads;j++){
266 int weight_vector_type=0;
268 weight_vector_type=1;
271 weight_vector_type=2;
274 _error_(
"cfdragcoeffabsgrad weight size not supported yet");
280 for(
int k=0;k<elements->
Size();k++){
291 for(j=0;j<num_cfdragcoeffabsgrads;j++){
295 string = cfdragcoeffabsgrad_definitionstring_s[j]; xDelete<char>(
string);
296 string = cfdragcoeffabsgrad_weights_string_s[j]; xDelete<char>(
string);
297 string = cfdragcoeffabsgrad_name_s[j]; xDelete<char>(
string);
298 matrix = cfdragcoeffabsgrad_weights_s[j]; xDelete<IssmDouble>(matrix);
300 xDelete<char*>(cfdragcoeffabsgrad_name_s);
301 xDelete<char*>(cfdragcoeffabsgrad_definitionstring_s);
302 xDelete<IssmDouble*>(cfdragcoeffabsgrad_weights_s);
303 xDelete<int>(cfdragcoeffabsgrad_weights_M_s);
304 xDelete<int>(cfdragcoeffabsgrad_weights_N_s);
305 xDelete<char*>(cfdragcoeffabsgrad_weights_string_s);
312 int num_cfsurfacelogvels;
313 char** cfsurfacelogvel_name = NULL;
314 char** cfsurfacelogvel_definitionstring = NULL;
317 char** cfsurfacelogvel_vxobs_string = NULL;
318 char** cfsurfacelogvel_vyobs_string = NULL;
319 int* cfsurfacelogvel_observation_M = NULL;
320 int* cfsurfacelogvel_observation_N = NULL;
322 int* cfsurfacelogvel_weights_M = NULL;
323 int* cfsurfacelogvel_weights_N = NULL;
324 char** cfsurfacelogvel_weightstring = NULL;
325 int* cfsurfacelogvel_datatime = NULL;
328 iomodel->
FetchMultipleData(&cfsurfacelogvel_name,&num_cfsurfacelogvels,
"md.cfsurfacelogvel.name");
329 iomodel->
FetchMultipleData(&cfsurfacelogvel_definitionstring,&num_cfsurfacelogvels,
"md.cfsurfacelogvel.definitionstring");
330 iomodel->
FetchMultipleData(&cfsurfacelogvel_vxobs,&cfsurfacelogvel_observation_M,&cfsurfacelogvel_observation_N,&num_cfsurfacelogvels,
"md.cfsurfacelogvel.vxobs");
331 iomodel->
FetchMultipleData(&cfsurfacelogvel_vxobs_string,&num_cfsurfacelogvels,
"md.cfsurfacelogvel.vxobs_string");
332 iomodel->
FetchMultipleData(&cfsurfacelogvel_vyobs,&cfsurfacelogvel_observation_M,&cfsurfacelogvel_observation_N,&num_cfsurfacelogvels,
"md.cfsurfacelogvel.vyobs");
333 iomodel->
FetchMultipleData(&cfsurfacelogvel_vyobs_string,&num_cfsurfacelogvels,
"md.cfsurfacelogvel.vyobs_string"); iomodel->
FetchMultipleData(&cfsurfacelogvel_weights,&cfsurfacelogvel_weights_M,&cfsurfacelogvel_weights_N,&num_cfsurfacelogvels,
"md.cfsurfacelogvel.weights");
334 iomodel->
FetchMultipleData(&cfsurfacelogvel_weightstring,&num_cfsurfacelogvels,
"md.cfsurfacelogvel.weights_string");
335 iomodel->
FetchMultipleData(&cfsurfacelogvel_datatime,&num_cfsurfacelogvels,
"md.cfsurfacelogvel.datatime");
337 for(j=0;j<num_cfsurfacelogvels;j++){
339 int obs_vector_type=0;
347 _error_(
"cfsurfacelogvel observation size not supported yet");
349 int weight_vector_type=0;
351 weight_vector_type=1;
354 weight_vector_type=2;
357 _error_(
"cfsurfacelogvel weight size not supported yet");
363 for(
int k=0;k<elements->
Size();k++){
367 element->
DatasetInputAdd(
StringToEnumx(cfsurfacelogvel_definitionstring[j]),cfsurfacelogvel_vxobs[j],inputs2,iomodel,cfsurfacelogvel_observation_M[j],cfsurfacelogvel_observation_N[j],obs_vector_type,
StringToEnumx(cfsurfacelogvel_vxobs_string[j]),7,
VxObsEnum);
368 element->
DatasetInputAdd(
StringToEnumx(cfsurfacelogvel_definitionstring[j]),cfsurfacelogvel_vyobs[j],inputs2,iomodel,cfsurfacelogvel_observation_M[j],cfsurfacelogvel_observation_N[j],obs_vector_type,
StringToEnumx(cfsurfacelogvel_vyobs_string[j]),7,
VyObsEnum);
376 for(j=0;j<num_cfsurfacelogvels;j++){
380 string = cfsurfacelogvel_definitionstring[j]; xDelete<char>(
string);
381 string = cfsurfacelogvel_vxobs_string[j]; xDelete<char>(
string);
382 string = cfsurfacelogvel_vyobs_string[j]; xDelete<char>(
string);
383 string = cfsurfacelogvel_weightstring[j]; xDelete<char>(
string);
384 string = cfsurfacelogvel_name[j]; xDelete<char>(
string);
385 matrix = cfsurfacelogvel_weights[j]; xDelete<IssmDouble>(matrix);
386 matrix = cfsurfacelogvel_vxobs[j]; xDelete<IssmDouble>(matrix);
387 matrix = cfsurfacelogvel_vyobs[j]; xDelete<IssmDouble>(matrix);
389 xDelete<char*>(cfsurfacelogvel_name);
390 xDelete<char*>(cfsurfacelogvel_definitionstring);
391 xDelete<int>(cfsurfacelogvel_observation_M);
392 xDelete<IssmDouble*>(cfsurfacelogvel_vxobs);
393 xDelete<IssmDouble*>(cfsurfacelogvel_vyobs);
394 xDelete<char*>(cfsurfacelogvel_vxobs_string);
395 xDelete<char*>(cfsurfacelogvel_vyobs_string);
396 xDelete<int>(cfsurfacelogvel_observation_N);
397 xDelete<IssmDouble*>(cfsurfacelogvel_weights);
398 xDelete<int>(cfsurfacelogvel_weights_M);
399 xDelete<int>(cfsurfacelogvel_weights_N);
400 xDelete<char*>(cfsurfacelogvel_weightstring);
401 xDelete<int>(cfsurfacelogvel_datatime);
409 char** nodalvalue_name_s = NULL;
410 char** nodalvalue_definitionstrings = NULL;
411 char** nodalvalue_modelstrings = NULL;
412 int* nodalvalue_node_s = NULL;
415 iomodel->
FetchMultipleData(&nodalvalue_name_s,&numnodalvalues,
"md.nodalvalue.name");
416 iomodel->
FetchMultipleData(&nodalvalue_definitionstrings,&numnodalvalues,
"md.nodalvalue.definitionenum");
417 iomodel->
FetchMultipleData(&nodalvalue_modelstrings,&numnodalvalues,
"md.nodalvalue.model_enum");
418 iomodel->
FetchMultipleData(&nodalvalue_node_s,&numnodalvalues,
"md.nodalvalue.node");
420 for(j=0;j<numnodalvalues;j++){
427 for(j=0;j<numnodalvalues;j++){
429 string = nodalvalue_name_s[j]; xDelete<char>(
string);
431 xDelete<char*>(nodalvalue_name_s);
432 xDelete<char*>(nodalvalue_modelstrings);
433 xDelete<char*>(nodalvalue_definitionstrings);
434 xDelete<int>(nodalvalue_node_s);
442 char** masscon_name_s = NULL;
443 char** masscon_definitionstring_s = NULL;
445 int* masscon_levelset_M_s = NULL;
446 int* masscon_levelset_N_s = NULL;
450 iomodel->
FetchMultipleData(&masscon_definitionstring_s,&nummasscons,
"md.masscon.definitionstring");
451 iomodel->
FetchMultipleData(&masscon_levelset_s,&masscon_levelset_M_s,&masscon_levelset_N_s,&nummasscons,
"md.masscon.levelset");
453 for(j=0;j<nummasscons;j++){
456 output_definitions->
AddObject(
new Masscon(masscon_name_s[j],
StringToEnumx(masscon_definitionstring_s[j]),masscon_levelset_s[j],masscon_levelset_M_s[j]));
461 for(j=0;j<nummasscons;j++){
465 string = masscon_name_s[j]; xDelete<char>(
string);
466 string = masscon_definitionstring_s[j]; xDelete<char>(
string);
467 matrix = masscon_levelset_s[j]; xDelete<IssmDouble>(matrix);
469 xDelete<char*>(masscon_name_s);
470 xDelete<IssmDouble*>(masscon_levelset_s);
471 xDelete<int>(masscon_levelset_M_s);
472 xDelete<int>(masscon_levelset_N_s);
473 xDelete<char*>(masscon_definitionstring_s);
481 char** masscon_name_s = NULL;
482 char** masscon_definitionstring_s = NULL;
483 char** masscon_namex_s = NULL;
484 char** masscon_namey_s = NULL;
491 iomodel->
FetchMultipleData(&masscon_definitionstring_s,&num,
"md.massconaxpby.definitionstring");
499 output_definitions->
AddObject(
new Massconaxpby(masscon_name_s[j],
StringToEnumx(masscon_definitionstring_s[j]),masscon_namex_s[j],masscon_namey_s[j],masscon_alpha_s[j],masscon_beta_s[j]));
506 string = masscon_definitionstring_s[j]; xDelete<char>(
string);
507 string = masscon_name_s[j]; xDelete<char>(
string);
508 string = masscon_namex_s[j]; xDelete<char>(
string);
509 string = masscon_namey_s[j]; xDelete<char>(
string);
511 xDelete<char*>(masscon_definitionstring_s);
512 xDelete<char*>(masscon_name_s);
513 xDelete<char*>(masscon_namex_s);
514 xDelete<char*>(masscon_namey_s);
515 xDelete<IssmDouble>(masscon_alpha_s);
516 xDelete<IssmDouble>(masscon_beta_s);
524 char** reg_name_s = NULL;
525 char** reg_definitionstring_s = NULL;
526 char** reg_outputnamestring_s = NULL;
528 int* reg_mask_M_s = NULL;
529 int* reg_mask_N_s = NULL;
533 iomodel->
FetchMultipleData(®_definitionstring_s,&numout,
"md.regionaloutput.definitionstring");
534 iomodel->
FetchMultipleData(®_outputnamestring_s,&numout,
"md.regionaloutput.outputnamestring");
535 iomodel->
FetchMultipleData(®_mask_s,®_mask_M_s,®_mask_N_s,&numout,
"md.regionaloutput.mask");
536 for(j=0;j<numout;j++){
544 for(j=0;j<numout;j++){
548 string = reg_name_s[j]; xDelete<char>(
string);
549 string = reg_definitionstring_s[j]; xDelete<char>(
string);
550 string = reg_outputnamestring_s[j]; xDelete<char>(
string);
551 matrix = reg_mask_s[j]; xDelete<IssmDouble>(matrix);
553 xDelete<char*>(reg_name_s);
554 xDelete<IssmDouble*>(reg_mask_s);
555 xDelete<int>(reg_mask_M_s);
556 xDelete<int>(reg_mask_N_s);
557 xDelete<char*>(reg_outputnamestring_s);
558 xDelete<char*>(reg_definitionstring_s);
566 char **ncf_name_s = NULL;
567 char **ncf_definitionstring_s = NULL;
568 char **cost_functions = NULL;
570 int* cost_functions_weights_M = NULL;
571 int* cost_functions_weights_N = NULL;
572 int cost_function,domaintype;
573 int num_cost_functions;
576 iomodel->
FindConstant(&num_cost_functions,
"md.numberedcostfunction.num_cost_functions");
577 iomodel->
FindConstant(&cost_functions,&num_cost_functions,
"md.numberedcostfunction.cost_functions");
578 if(num_cost_functions<1)
_error_(
"No cost functions found");
579 int* cost_function_enums=xNew<int>(num_cost_functions);
580 for(
int i=0;i<num_cost_functions;++i){
585 iomodel->
FetchMultipleData(&ncf_definitionstring_s,&numout2,
"md.numberedcostfunction.definitionstring");
_assert_(numout2 == numout);
586 iomodel->
FetchMultipleData(&cost_functions_weights,&cost_functions_weights_M,&cost_functions_weights_N,&numout2,
"md.numberedcostfunction.cost_functions_coefficients");
_assert_(numout2 == numout);
587 if(numout!=1)
_error_(
"not implemented yet, check code here");
590 iomodel->
FindConstant(&domaintype,
"md.mesh.domain_type");
591 for(
int i=0;i<num_cost_functions;i++){
592 cost_function=cost_function_enums[i];
605 for(j=0;j<numout;j++){
608 for(
int k=0;k<elements->
Size();k++){
616 iomodel->
DeleteData(2,
"md.numberedcostfunction.name",
"md.numberedcostfunction.definitionstring");
617 xDelete<int>(cost_function_enums);
618 for(
int i=0;i<num_cost_functions;i++) xDelete<char>(cost_functions[i]);
619 xDelete<char*>(cost_functions);
622 for(j=0;j<numout;j++){
623 xDelete<char>(ncf_name_s[j]);
624 xDelete<char>(ncf_definitionstring_s[j]);
625 xDelete<IssmDouble>(cost_functions_weights[j]);
627 xDelete<char*>(ncf_name_s);
628 xDelete<char*>(ncf_definitionstring_s);
629 xDelete<int>(cost_functions_weights_M);
630 xDelete<int>(cost_functions_weights_N);
631 xDelete<IssmDouble*>(cost_functions_weights);
635 else if (output_definition_enums[i]==
RadarEnum){
638 char **radar_name_s = NULL;
639 char **radar_definitionstring_s = NULL;
640 int **radar_ice_period_s = NULL;
643 iomodel->
FetchMultipleData(&radar_definitionstring_s,&numout,
"md.radar.definitionstring");
645 if(numout>1)
_error_(
"not suppored yet");
653 else _error_(
"output definition enum " <<
EnumToStringx(output_definition_enums[i]) <<
" not supported yet!");
659 delete output_definitions;
660 xDelete<int>(output_definition_enums);