Changeset 26481
- Timestamp:
- 10/13/21 17:34:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp
r26479 r26481 208 208 femmodel->parameters->FindParam(&arorder,SmbAutoregressiveOrderEnum); 209 209 IssmDouble tinit_ar; 210 IssmDouble* beta0 211 IssmDouble* beta1 212 IssmDouble* phi 213 IssmDouble* noiseterms 214 IssmDouble* covmat 210 IssmDouble* beta0 = xNew<IssmDouble>(numbasins); 211 IssmDouble* beta1 = xNew<IssmDouble>(numbasins); 212 IssmDouble* phi = xNew<IssmDouble>(numbasins*arorder); 213 IssmDouble* noiseterms = xNew<IssmDouble>(numbasins); 214 IssmDouble* covmat = xNew<IssmDouble>(numbasins*numbasins); 215 215 femmodel->parameters->FindParam(&tinit_ar,SmbAutoregressionInitialTimeEnum); 216 216 femmodel->parameters->FindParam(&beta0,&M,SmbBeta0Enum); _assert_(M==numbasins); … … 218 218 femmodel->parameters->FindParam(&phi,&M,&Nphi,SmbPhiEnum); _assert_(M==numbasins); _assert_(Nphi==arorder); 219 219 femmodel->parameters->FindParam(&covmat,&M,&N,SmbCovmatEnum); _assert_(M==numbasins); _assert_(N==numbasins); 220 IssmDouble telapsed_ar = time-tinit_ar; //time elapsed with respect to AR model initial time 220 221 /*time elapsed with respect to AR model initial time*/ 222 IssmDouble telapsed_ar = time-tinit_ar; 223 221 224 /*Before looping through elements: compute noise term specific to each basin from covmat*/ 222 225 multivariateNormal(&noiseterms,numbasins,0.0,covmat); 226 223 227 /*Loop over each element to compute SMB at vertices*/ 224 228 for(Object* &object:femmodel->elements->objects){ 225 Element* element = xDynamicCast<Element*>(object); //generate element object229 Element* element = xDynamicCast<Element*>(object); 226 230 element->Smbautoregression(isstepforar,arorder,telapsed_ar,beta0,beta1,phi,noiseterms); 227 231 } 232 228 233 /*Cleanup*/ 229 234 xDelete<IssmDouble>(beta0);
Note:
See TracChangeset
for help on using the changeset viewer.