- Timestamp:
- 08/28/18 09:45:51 (7 years ago)
- Location:
- issm/trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk
- Property svn:mergeinfo changed
/issm/trunk-jpl merged: 22823-22871,22873-22887,22894-22903,22905-23090,23092-23185,23187
- Property svn:mergeinfo changed
-
issm/trunk/src
- Property svn:mergeinfo changed
-
issm/trunk/src/c/modules/ModelProcessorx/CreateOutputDefinitions.cpp
r22822 r23189 11 11 12 12 int i,j; 13 13 14 14 DataSet* output_definitions = NULL; 15 15 int* output_definition_enums = NULL; … … 65 65 else if (output_definition_enums[i]==MisfitEnum){ 66 66 /*Deal with misfits: {{{*/ 67 67 68 68 /*misfit variables: */ 69 69 int nummisfits; … … 115 115 _error_("misfit weight size not supported yet"); 116 116 117 118 117 /*First create a misfit object for that specific string (misfit_model_string_s[j]):*/ 119 118 output_definitions->AddObject(new Misfit(misfit_name_s[j],StringToEnumx(misfit_definitionstring_s[j]),StringToEnumx(misfit_model_string_s[j]),StringToEnumx(misfit_observation_string_s[j]),misfit_timeinterpolation_s[j],misfit_local_s[j],StringToEnumx(misfit_weights_string_s[j]))); … … 159 158 else if (output_definition_enums[i]==CfsurfacesquareEnum){ 160 159 /*Deal with cfsurfacesquare: {{{*/ 161 160 162 161 /*cfsurfacesquare variables: */ 163 162 int num_cfsurfacesquares; … … 214 213 215 214 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(k)); 216 215 217 216 element->DatasetInputAdd(StringToEnumx(cfsurfacesquare_definitionstring_s[j]),cfsurfacesquare_observation_s[j], iomodel,cfsurfacesquare_observation_M_s[j],cfsurfacesquare_observation_N_s[j],obs_vector_type,StringToEnumx(cfsurfacesquare_observation_string_s[j]),7,SurfaceObservationEnum); 218 217 element->DatasetInputAdd(StringToEnumx(cfsurfacesquare_definitionstring_s[j]),cfsurfacesquare_weights_s[j], iomodel,cfsurfacesquare_weights_M_s[j],cfsurfacesquare_weights_N_s[j],weight_vector_type,StringToEnumx(cfsurfacesquare_weights_string_s[j]),7,WeightsSurfaceObservationEnum); … … 251 250 else if (output_definition_enums[i]==CfdragcoeffabsgradEnum){ 252 251 /*Deal with cfdragcoeffabsgrad: {{{*/ 253 252 254 253 /*cfdragcoeffabsgrad variables: */ 255 254 int num_cfdragcoeffabsgrads; … … 260 259 int* cfdragcoeffabsgrad_weights_N_s = NULL; 261 260 char** cfdragcoeffabsgrad_weights_string_s = NULL; 262 int* cfdragcoeffabsgrad_datatime_s = NULL;263 261 264 262 /*Fetch name, model_string, observation, observation_string, etc ... (see src/m/classes/cfdragcoeffabsgrad.m): */ … … 267 265 iomodel->FetchMultipleData(&cfdragcoeffabsgrad_weights_s,&cfdragcoeffabsgrad_weights_M_s,&cfdragcoeffabsgrad_weights_N_s,&num_cfdragcoeffabsgrads, "md.cfdragcoeffabsgrad.weights"); 268 266 iomodel->FetchMultipleData(&cfdragcoeffabsgrad_weights_string_s,&num_cfdragcoeffabsgrads, "md.cfdragcoeffabsgrad.weights_string"); 269 iomodel->FetchMultipleData(&cfdragcoeffabsgrad_datatime_s,&num_cfdragcoeffabsgrads, "md.cfdragcoeffabsgrad.datatime");270 267 271 268 for(j=0;j<num_cfdragcoeffabsgrads;j++){ … … 282 279 283 280 /*First create a cfdragcoeffabsgrad object for that specific string (cfdragcoeffabsgrad_model_string_s[j]):*/ 284 output_definitions->AddObject(new Cfdragcoeffabsgrad(cfdragcoeffabsgrad_name_s[j],StringToEnumx(cfdragcoeffabsgrad_definitionstring_s[j]),StringToEnumx(cfdragcoeffabsgrad_weights_string_s[j]), cfdragcoeffabsgrad_datatime_s[j],false));281 output_definitions->AddObject(new Cfdragcoeffabsgrad(cfdragcoeffabsgrad_name_s[j],StringToEnumx(cfdragcoeffabsgrad_definitionstring_s[j]),StringToEnumx(cfdragcoeffabsgrad_weights_string_s[j]),false)); 285 282 286 283 /*Now, for this particular cfdragcoeffabsgrad object, make sure we plug into the elements: the observation, and the weights.*/ … … 288 285 289 286 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(k)); 290 287 291 288 element->DatasetInputAdd(StringToEnumx(cfdragcoeffabsgrad_definitionstring_s[j]),cfdragcoeffabsgrad_weights_s[j], iomodel,cfdragcoeffabsgrad_weights_M_s[j],cfdragcoeffabsgrad_weights_N_s[j],weight_vector_type,StringToEnumx(cfdragcoeffabsgrad_weights_string_s[j]),7,WeightsSurfaceObservationEnum); 292 289 … … 311 308 xDelete<int>(cfdragcoeffabsgrad_weights_N_s); 312 309 xDelete<char*>(cfdragcoeffabsgrad_weights_string_s); 313 xDelete<int>(cfdragcoeffabsgrad_datatime_s);314 310 /*}}}*/ 315 311 } 316 312 else if (output_definition_enums[i]==CfsurfacelogvelEnum){ 317 313 /*Deal with cfsurfacelogvel: {{{*/ 318 314 319 315 /*cfsurfacelogvel variables: */ 320 316 int num_cfsurfacelogvels; … … 372 368 373 369 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(k)); 374 370 375 371 element->DatasetInputAdd(StringToEnumx(cfsurfacelogvel_definitionstring[j]),cfsurfacelogvel_vxobs[j], iomodel,cfsurfacelogvel_observation_M[j],cfsurfacelogvel_observation_N[j],obs_vector_type,StringToEnumx(cfsurfacelogvel_vxobs_string[j]),7,VxObsEnum); 376 372 element->DatasetInputAdd(StringToEnumx(cfsurfacelogvel_definitionstring[j]),cfsurfacelogvel_vyobs[j], iomodel,cfsurfacelogvel_observation_M[j],cfsurfacelogvel_observation_N[j],obs_vector_type,StringToEnumx(cfsurfacelogvel_vyobs_string[j]),7,VyObsEnum); … … 412 408 else if (output_definition_enums[i]==NodalvalueEnum){ 413 409 /*Deal with nodal values: {{{*/ 414 410 415 411 /*nodal value variables: */ 416 412 int numnodalvalues; … … 431 427 output_definitions->AddObject(new Nodalvalue(nodalvalue_name_s[j],StringToEnumx(nodalvalue_definitionstrings[j]),StringToEnumx(nodalvalue_modelstrings[j]),nodalvalue_node_s[j]-1)); //-1 because matlab to c indexing. 432 428 } 433 429 434 430 /*Free ressources:*/ 435 431 for(j=0;j<numnodalvalues;j++){ … … 485 481 else if (output_definition_enums[i]==MassconaxpbyEnum){ 486 482 /*Deal with masscon combinations: {{{*/ 487 483 488 484 /*masscon variables: */ 489 485 char** masscon_name_s = NULL; … … 620 616 output_definitions->AddObject(new Numberedcostfunction(ncf_name_s[j],StringToEnumx(ncf_definitionstring_s[j]),num_cost_functions,cost_function_enums)); 621 617 } 622 618 623 619 /*Free data: */ 624 620 iomodel->DeleteData(2,"md.numberedcostfunction.name","md.numberedcostfunction.definitionstring");
Note:
See TracChangeset
for help on using the changeset viewer.