Changeset 3043
- Timestamp:
- 02/16/10 14:22:28 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/ModelProcessorx/Qmu/CreateParametersQmu.cpp
r2333 r3043 47 47 int num_qmu_mass_flux_segments=0; 48 48 int my_num_qmu_mass_flux_segments=0; 49 50 /*parameters for misfit: */ 51 double* u_g_obs=NULL; 52 double* vx_obs=NULL; 53 double* vy_obs=NULL; 54 double* fit=NULL; 49 55 50 56 #ifdef _SERIAL_ … … 272 278 xfree((void**)&my_qmu_mass_flux_segments); 273 279 } 280 if (strcmp(descriptor,"misfit")==0){ 281 282 /*We need the observed velocity: */ 283 IoModelFetchData(&vx_obs,NULL,NULL,iomodel_handle,"vx_obs"); 284 IoModelFetchData(&vy_obs,NULL,NULL,iomodel_handle,"vy_obs"); 285 286 /*Now, recover fit: */ 287 IoModelFetchData(&iomodel->fit,NULL,NULL,iomodel_handle,"fit"); 288 289 u_g_obs=(double*)xcalloc(iomodel->numberofnodes*2,sizeof(double)); 290 if(vx_obs)for(i=0;i<iomodel->numberofnodes;i++)u_g_obs[2*i+0]=vx_obs[i]/iomodel->yts; 291 if(vy_obs)for(i=0;i<iomodel->numberofnodes;i++)u_g_obs[2*i+1]=vy_obs[i]/iomodel->yts; 292 293 count++; 294 param= new Param(count,"velocity_obs",DOUBLEVEC); 295 param->SetDoubleVec(u_g_obs,2*iomodel->numberofnodes,2); 296 parameters->AddObject(param); 297 298 count++; 299 param= new Param(count,"fit",DOUBLEVEC); 300 param->SetDoubleVec(iomodel->fit,iomodel->nsteps); 301 parameters->AddObject(param); 302 303 xfree((void**)&u_g_obs); 304 xfree((void**)&vx_obs); 305 xfree((void**)&vy_obs); 306 xfree((void**)&fit); 307 } 274 308 } 275 309
Note:
See TracChangeset
for help on using the changeset viewer.