Changeset 18873
- Timestamp:
- 11/28/14 09:43:51 (10 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Definition.h
r16388 r18873 13 13 virtual ~Definition(){}; 14 14 virtual char* Name()=0; 15 virtual int DefinitionEnum()=0; 15 16 virtual IssmDouble Response(FemModel*)=0; 16 17 -
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateOutputDefinitions.cpp
r18812 r18873 30 30 int numgates; 31 31 char **gatenames = NULL; 32 int *gatedefinitionenums = NULL; 32 33 IssmDouble **gatesegments = NULL; 33 34 int *gatesegments_M = NULL; … … 36 37 /*Fetch segments and names: */ 37 38 iomodel->FetchMultipleData(&gatenames,&numgates,MassfluxatgateNameEnum); 39 iomodel->FetchMultipleData(&gatedefinitionenums,&numgates,MassfluxatgateDefinitionenumEnum); 38 40 iomodel->FetchMultipleData(&gatesegments,&gatesegments_M,NULL,&numgates,MassfluxatgateSegmentsEnum); 39 41 40 42 for(j=0;j<numgates;j++){ 41 output_definitions->AddObject(new Massfluxatgate<IssmDouble>(gatenames[j],gate segments_M[j],gatesegments[j]));43 output_definitions->AddObject(new Massfluxatgate<IssmDouble>(gatenames[j],gatedefinitionenums[j],gatesegments_M[j],gatesegments[j])); 42 44 } 43 45 /*Free ressources:*/ … … 49 51 xDelete<IssmDouble*>(gatesegments); 50 52 xDelete<int>(gatesegments_M); 53 xDelete<int>(gatedefinitionenums); 51 54 /*}}}*/ 52 55 } … … 57 60 int nummisfits; 58 61 char** misfit_name_s = NULL; 62 int* misfit_definitionenums_s = NULL; 59 63 int* misfit_model_enum_s = NULL; 60 64 IssmDouble** misfit_observation_s = NULL; … … 70 74 /*Fetch name, model_enum, observation, observation_enum, etc ... (see src/m/classes/misfit.m): */ 71 75 iomodel->FetchMultipleData(&misfit_name_s,&nummisfits,MisfitNameEnum); 76 iomodel->FetchMultipleData(&misfit_definitionenums_s,&nummisfits,MisfitDefinitionenumEnum); 72 77 iomodel->FetchMultipleData(&misfit_model_enum_s,&nummisfits,MisfitModelEnumEnum); 73 78 iomodel->FetchMultipleData(&misfit_observation_s,&misfit_observation_M_s,&misfit_observation_N_s,&nummisfits,MisfitObservationEnum); … … 80 85 81 86 /*First create a misfit object for that specific enum (misfit_model_enum_s[j]):*/ 82 output_definitions->AddObject(new Misfit(misfit_name_s[j],misfit_ model_enum_s[j],misfit_observation_enum_s[j],misfit_timeinterpolation_s[j],misfit_weights_enum_s[j]));87 output_definitions->AddObject(new Misfit(misfit_name_s[j],misfit_definitionenums_s[j],misfit_model_enum_s[j],misfit_observation_enum_s[j],misfit_timeinterpolation_s[j],misfit_weights_enum_s[j])); 83 88 84 89 /*Now, for this particular misfit object, make sure we plug into the elements: the observation, and the weights.*/ … … 120 125 int nummasscons; 121 126 char** masscon_name_s = NULL; 127 int* masscon_definitionenum_s = NULL; 122 128 IssmDouble** masscon_levelset_s = NULL; 123 129 int* masscon_levelset_M_s = NULL; … … 126 132 /*Fetch name and levelset, etc ... (see src/m/classes/masscon.m): */ 127 133 iomodel->FetchMultipleData(&masscon_name_s,&nummasscons,MassconNameEnum); 134 iomodel->FetchMultipleData(&masscon_definitionenum_s,&nummasscons,MassconDefinitionenumEnum); 128 135 iomodel->FetchMultipleData(&masscon_levelset_s,&masscon_levelset_M_s,&masscon_levelset_N_s,&nummasscons,MassconLevelsetEnum); 129 136 for(j=0;j<nummasscons;j++){ 130 137 131 138 /*Create a masscon object: */ 132 output_definitions->AddObject(new Masscon(masscon_name_s[j],masscon_ levelset_s[j],masscon_levelset_M_s[j]));139 output_definitions->AddObject(new Masscon(masscon_name_s[j],masscon_definitionenum_s[j],masscon_levelset_s[j],masscon_levelset_M_s[j])); 133 140 134 141 } … … 146 153 xDelete<int>(masscon_levelset_M_s); 147 154 xDelete<int>(masscon_levelset_N_s); 155 xDelete<int>(masscon_definitionenum_s); 148 156 /*}}}*/ 149 157 } … … 153 161 /*masscon variables: */ 154 162 char** masscon_name_s = NULL; 163 int* masscon_definitionenum_s = NULL; 155 164 char** masscon_namex_s = NULL; 156 165 char** masscon_namey_s = NULL; … … 161 170 /*Fetch names and multiplicators, etc ... (see src/m/classes/masscon_axpby.m): */ 162 171 iomodel->FetchMultipleData(&masscon_name_s,&num,MassconaxpbyNameEnum); 172 iomodel->FetchMultipleData(&masscon_definitionenum_s,&num,MassconaxpbyDefinitionenumEnum); 163 173 iomodel->FetchMultipleData(&masscon_namex_s,&num,MassconaxpbyNamexEnum); 164 174 iomodel->FetchMultipleData(&masscon_namey_s,&num,MassconaxpbyNameyEnum); … … 168 178 169 179 /*Create a masscon axpyb object: */ 170 output_definitions->AddObject(new Massconaxpby(masscon_name_s[j],masscon_ namex_s[j],masscon_namey_s[j],masscon_alpha_s[j],masscon_beta_s[j]));180 output_definitions->AddObject(new Massconaxpby(masscon_name_s[j],masscon_definitionenum_s[j],masscon_namex_s[j],masscon_namey_s[j],masscon_alpha_s[j],masscon_beta_s[j])); 171 181 172 182 } … … 182 192 xDelete<char*>(masscon_namex_s); 183 193 xDelete<char*>(masscon_namey_s); 194 xDelete<int>(masscon_definitionenum_s); 184 195 xDelete<IssmDouble>(masscon_alpha_s); 185 196 xDelete<IssmDouble>(masscon_beta_s);
Note:
See TracChangeset
for help on using the changeset viewer.