Changeset 12442
- Timestamp:
- 06/18/12 09:56:03 (13 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/modules/Exp2Kmlx/Exp2Kmlx.cpp
r12098 r12442 11 11 #include "../modules.h" 12 12 13 int Exp2Kmlx(char* filexp,char* filkml, 14 int sgn, 15 bool holes){ 13 int Exp2Kmlx(char* filexp,char* filkml,int sgn,bool holes){ 16 14 17 15 double cm,sp; 18 16 19 17 Xy2lldef(&cm,&sp,sgn); 20 21 return(Exp2Kmlx(filexp,filkml, 22 sgn,cm,sp, 23 holes)); 18 return(Exp2Kmlx(filexp,filkml,sgn,cm,sp,holes)); 24 19 } 25 20 26 int Exp2Kmlx(char* filexp,char* filkml, 27 int sgn,double cm,double sp, 28 bool holes){ 29 30 int i,j,iret=0; 31 int lwidth=1; 32 double popac=0.50; 33 int nprof; 34 int *pnvert=NULL; 35 double **pprofx=NULL,**pprofy=NULL; 36 bool *closed=NULL; 37 double *lat=NULL,*lon=NULL; 21 int Exp2Kmlx(char* filexp,char* filkml,int sgn,double cm,double sp,bool holes){ 22 23 int i ,j,iret=0; 24 int lwidth = 1; 25 double popac = 0.50; 26 int nprof; 27 int *pnvert = NULL; 28 double **pprofx = NULL,**pprofy=NULL; 29 bool *closed = NULL; 30 double *lat = NULL, *lon=NULL; 38 31 39 32 char indent[81]=""; … … 59 52 _printf_(true,"\nExp2Kmlx Module -- %s",ctime(&time0)); 60 53 61 /*read exp file */54 /*read exp file */ 62 55 63 56 if (!DomainOutlineRead(&nprof,&pnvert,&pprofx,&pprofy,&closed,filexp)) … … 143 136 144 137 kring->ncoord =pnvert[i]-1; 145 lat= (double *) xmalloc(kring->ncoord*sizeof(double));146 lon= (double *) xmalloc(kring->ncoord*sizeof(double));138 lat=xNew<double>(kring->ncoord); 139 lon=xNew<double>(kring->ncoord); 147 140 Xy2llx(lat,lon,pprofx[i],pprofy[i],kring->ncoord,sgn,cm,sp); 148 kring->coords =(double (*)[3]) xmalloc(kring->ncoord*3*sizeof(double));141 kring->coords=xNew<double>(kring->ncoord*3); 149 142 for (j=0; j<kring->ncoord; j++) { 150 kring->coords[ j][0]=lon[j];151 kring->coords[ j][1]=lat[j];152 kring->coords[ j][2]=0.;143 kring->coords[3*j+0]=lon[j]; 144 kring->coords[3*j+1]=lat[j]; 145 kring->coords[3*j+2]=0.; 153 146 } 154 x free((void**)&lon);155 x free((void**)&lat);147 xDelete<double>(lon); 148 xDelete<double>(lat); 156 149 157 150 (kpoly ->outer )->AddObject((Object*)kring); … … 167 160 168 161 kring->ncoord =pnvert[i]-1; 169 lat= (double *) xmalloc(kring->ncoord*sizeof(double));170 lon= (double *) xmalloc(kring->ncoord*sizeof(double));162 lat=xNew<double>(kring->ncoord); 163 lon=xNew<double>(kring->ncoord); 171 164 Xy2llx(lat,lon,pprofx[i],pprofy[i],kring->ncoord,sgn,cm,sp); 172 kring->coords = (double (*)[3]) xmalloc(kring->ncoord*3*sizeof(double));165 kring->coords =xNew<double>(kring->ncoord*3); 173 166 for (j=0; j<kring->ncoord; j++) { 174 kring->coords[ j][0]=lon[j];175 kring->coords[ j][1]=lat[j];176 kring->coords[ j][2]=0.;177 } 178 x free((void**)&lon);179 x free((void**)&lat);167 kring->coords[3*j+0]=lon[j]; 168 kring->coords[3*j+1]=lat[j]; 169 kring->coords[3*j+2]=0.; 170 } 171 xDelete<double>(lon); 172 xDelete<double>(lat); 180 173 181 174 (kpoly ->inner )->AddObject((Object*)kring); … … 204 197 205 198 kring->ncoord =pnvert[i]-1; 206 lat= (double *) xmalloc(kring->ncoord*sizeof(double));207 lon= (double *) xmalloc(kring->ncoord*sizeof(double));199 lat=xNew<double>(kring->ncoord); 200 lon=xNew<double>(kring->ncoord); 208 201 Xy2llx(lat,lon,pprofx[i],pprofy[i],kring->ncoord,sgn,cm,sp); 209 kring->coords = (double (*)[3]) xmalloc(kring->ncoord*3*sizeof(double));202 kring->coords =xNew<double>(kring->ncoord*3); 210 203 for (j=0; j<kring->ncoord; j++) { 211 kring->coords[ j][0]=lon[j];212 kring->coords[ j][1]=lat[j];213 kring->coords[ j][2]=0.;204 kring->coords[3*j+0]=lon[j]; 205 kring->coords[3*j+1]=lat[j]; 206 kring->coords[3*j+2]=0.; 214 207 } 215 x free((void**)&lon);216 x free((void**)&lat);208 xDelete<double>(lon); 209 xDelete<double>(lat); 217 210 218 211 (kpoly ->outer )->AddObject((Object*)kring); … … 231 224 232 225 kline->ncoord =pnvert[i]; 233 lat= (double *) xmalloc(kline->ncoord*sizeof(double));234 lon= (double *) xmalloc(kline->ncoord*sizeof(double));226 lat=xNew<double>(kline->ncoord); 227 lon=xNew<double>(kline->ncoord); 235 228 Xy2llx(lat,lon,pprofx[i],pprofy[i],kline->ncoord,sgn,cm,sp); 236 kline->coords = (double (*)[3]) xmalloc(kline->ncoord*3*sizeof(double));229 kline->coords =xNew<double>(kline->ncoord*3); 237 230 for (j=0; j<kline->ncoord; j++) { 238 kline->coords[ j][0]=lon[j];239 kline->coords[ j][1]=lat[j];240 kline->coords[ j][2]=0.;231 kline->coords[3*j+0]=lon[j]; 232 kline->coords[3*j+1]=lat[j]; 233 kline->coords[3*j+2]=0.; 241 234 } 242 x free((void**)&lon);243 x free((void**)&lat);235 xDelete<double>(lon); 236 xDelete<double>(lat); 244 237 245 238 (kplace->geometry )->AddObject((Object*)kline); … … 251 244 kplace->visibility=true; 252 245 sprintf(kplace->styleurl ,"#RandomLineEmptyPoly"); 246 int one=1; 253 247 254 248 kpoint=new KML_Point(); 255 249 256 lat= (double *) xmalloc(sizeof(double));257 lon= (double *) xmalloc(sizeof(double));250 lat=xNew<double>(one); 251 lon=xNew<double>(one); 258 252 Xy2llx(lat,lon,pprofx[i],pprofy[i],1,sgn,cm,sp); 259 253 kpoint->coords[0]=lon[0]; 260 254 kpoint->coords[1]=lat[0]; 261 255 kpoint->coords[2]=0.; 262 x free((void**)&lon);263 x free((void**)&lat);256 xDelete<double>(lon); 257 xDelete<double>(lat); 264 258 265 259 (kplace->geometry )->AddObject((Object*)kpoint); … … 289 283 delete kfile; 290 284 for (i=nprof-1; i>=0; i--) { 291 x free((void**)&(pprofy[i]));292 x free((void**)&(pprofx[i]));293 } 294 x free((void**)&pnvert);285 xDelete<double>(pprofy[i]); 286 xDelete<double>(pprofx[i]); 287 } 288 xDelete<int>(pnvert); 295 289 296 290 clock1=clock(); -
issm/trunk-jpl/src/c/modules/InterpFromMesh2dx/InterpFromMesh2dx.cpp
r11695 r12442 84 84 } 85 85 else{ 86 incontour= (double*)xmalloc(nods_prime*sizeof(double));87 for (i=0;i<nods_prime;i++) incontour[i]=1 ;86 incontour=xNew<double>(nods_prime); 87 for (i=0;i<nods_prime;i++) incontour[i]=1.0; 88 88 } 89 89 … … 112 112 113 113 /*Assign output pointers:*/ 114 x free((void**)&incontour);114 xDelete<double>(incontour); 115 115 *pdata_prime=data_prime; 116 116 } -
issm/trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp
r9725 r12442 69 69 70 70 /*figure out times: */ 71 times= (double*)xmalloc(N*sizeof(double));71 times=xNew<double>(N); 72 72 for(j=0;j<N;j++){ 73 73 times[j]=doublevector[(M-1)*N+j]; … … 83 83 84 84 /*figure out times and values: */ 85 values= (double*)xmalloc(N*sizeof(double));85 values=xNew<double>(N); 86 86 spcpresent=false; 87 87 for(j=0;j<N;j++){ … … 94 94 count++; 95 95 } 96 x free((void**)&values);96 xDelete<double>(values); 97 97 } 98 98 } … … 103 103 104 104 /*Free ressources:*/ 105 x free((void**)&doublevector);106 x free((void**)×);107 x free((void**)&values);105 xDelete<double>(doublevector); 106 xDelete<double>(times); 107 xDelete<double>(values); 108 108 } -
issm/trunk-jpl/src/c/modules/KMLMeshWritex/KMLMeshWritex.cpp
r9761 r12442 9 9 #include "../../EnumDefinitions/EnumDefinitions.h" 10 10 11 void KMLMeshWritex(int* ierror, 12 char* name, 13 char* notes, 14 int* elem,int melem,int nelem, 15 int* nodecon,int mncon,int nncon, 16 double* lat, double* lng, 17 int* part, 18 double* data, int mdata, int ndata, 19 double* cmap, int mcmap, int ncmap, 20 FILE* fid){ 21 22 int i,j,k,ipt=0,jpt=0,nnodes; 23 int mxepg=25; 24 int lwidth=1; 25 double popac=0.50; 26 char indent[81]=" "; 27 char cstr[81]; 28 double* edata=NULL; 29 bool ncfree=false, 30 edfree=false; 31 KML_Document* kdoc=NULL; 32 KML_Style* kstyle; 33 KML_LineStyle* klsty; 34 KML_PolyStyle* kpsty; 11 void KMLMeshWritex(int* ierror,char* name,char* notes,int* elem,int melem,int nelem,int* nodecon,int mncon,int nncon,double* lat, double* lng,int* part,double* data, int mdata, int ndata,double* cmap, int mcmap, int ncmap,FILE* fid){ 12 13 int i,j,k,ipt=0,jpt=0,nnodes; 14 int mxepg = 25; 15 int lwidth = 1; 16 double popac = 0.50; 17 char indent[81] = " "; 18 char cstr[81]; 19 double *edata = NULL; 20 bool ncfree=false, edfree=false; 21 KML_Document *kdoc = NULL; 22 KML_Style *kstyle; 23 KML_LineStyle *klsty; 24 KML_PolyStyle *kpsty; 35 25 36 26 clock_t clock0,clock1,clock0a,clock0b,clock0c; … … 130 120 _printf_(true,"Creating the node connectivity table.\n"); 131 121 nncon=mxepg+1; 132 nodecon= (int *) xcalloc(mncon*nncon,sizeof(int));122 nodecon=xNewInit<int>(mncon*nncon,0); 133 123 ncfree=true; 134 124 … … 160 150 else if (mdata == mncon) { 161 151 _printf_(true,"Averaging nodal data to element data.\n"); 162 edata= (double *) xcalloc(melem*ndata,sizeof(double));152 edata=xNewInit<double>(melem*ndata,0); 163 153 edfree=true; 164 154 … … 194 184 cmap,mcmap,ncmap)); 195 185 196 if 197 if 186 if(edfree) xfree((void**)&edata); 187 if(ncfree) xfree((void**)&nodecon); 198 188 clock0a=clock(); 199 189 time0a =time(NULL); … … 344 334 kring=new KML_LinearRing(); 345 335 kring->ncoord =nelem+1; 346 kring->coords =(double (*)[3]) xmalloc((nelem+1)*3*sizeof(double));336 kring->coords =xNew<double>((nelem+1)*3); 347 337 348 338 /* write the nodal coordinates as a linear ring */ 349 339 350 340 for (j=0; j<nelem; j++) { 351 kring->coords[ j][0]=lng[elem[ipt]-1];352 kring->coords[ j][1]=lat[elem[ipt]-1];353 kring->coords[ j][2]=alt;341 kring->coords[3*j+0]=lng[elem[ipt]-1]; 342 kring->coords[3*j+1]=lat[elem[ipt]-1]; 343 kring->coords[3*j+2]=alt; 354 344 ipt++; 355 345 } 356 kring->coords[ nelem][0]=kring->coords[0][0];357 kring->coords[ nelem][1]=kring->coords[0][1];358 kring->coords[ nelem][2]=kring->coords[0][2];346 kring->coords[3*nelem+0]=kring->coords[3*0+0]; 347 kring->coords[3*nelem+1]=kring->coords[3*0+1]; 348 kring->coords[3*nelem+2]=kring->coords[3*0+2]; 359 349 // kring->DeepEcho(); 360 350 361 351 /* assemble the linear ring into polygon into placemark into folder */ 362 352 363 (kpoly ->outer 364 (kplace->geometry 365 (kfold ->feature 353 (kpoly ->outer )->AddObject((Object*)kring); 354 (kplace->geometry)->AddObject((Object*)kpoly); 355 (kfold ->feature )->AddObject((Object*)kplace); 366 356 367 357 // if (!(int)fmod((double)(i+1),1000)) -
issm/trunk-jpl/src/c/modules/Krigingx/pKrigingx.cpp
r12422 r12442 37 37 38 38 /*Allocate output*/ 39 predictions = (double*)xcalloc(n_interp,sizeof(double));40 error = (double*)xcalloc(n_interp,sizeof(double));39 predictions =xNewInit<double>(n_interp,0.0); 40 error =xNewInit<double>(n_interp,0.0); 41 41 42 42 /*Get output*/ … … 62 62 63 63 #ifdef _HAVE_MPI_ 64 double *sumpredictions = (double*)xmalloc(n_interp*sizeof(double));65 double *sumerror = (double*)xmalloc(n_interp*sizeof(double));64 double *sumpredictions =xNew<double>(n_interp); 65 double *sumerror =xNew<double>(n_interp); 66 66 MPI_Allreduce(predictions,sumpredictions,n_interp,MPI_DOUBLE,MPI_SUM,MPI_COMM_WORLD); 67 67 MPI_Allreduce(error,sumerror,n_interp,MPI_DOUBLE,MPI_SUM,MPI_COMM_WORLD); 68 x free((void**)&error); error=sumerror;69 x free((void**)&predictions); predictions=sumpredictions;68 xDelete<double>(error); error=sumerror; 69 xDelete<double>(predictions); predictions=sumpredictions; 70 70 #endif 71 71 } … … 80 80 81 81 #ifdef _HAVE_MPI_ 82 double *sumpredictions = (double*)xmalloc(n_interp*sizeof(double));82 double *sumpredictions =xNew<double>(n_interp); 83 83 MPI_Allreduce(predictions,sumpredictions,n_interp,MPI_DOUBLE,MPI_SUM,MPI_COMM_WORLD); 84 x free((void**)&predictions); predictions=sumpredictions;84 xDelete<double>(predictions); predictions=sumpredictions; 85 85 #endif 86 86 } … … 97 97 98 98 #ifdef _HAVE_MPI_ 99 double *sumpredictions = (double*)xmalloc(n_interp*sizeof(double));99 double *sumpredictions =xNew<double>(n_interp); 100 100 MPI_Allreduce(predictions,sumpredictions,n_interp,MPI_DOUBLE,MPI_SUM,MPI_COMM_WORLD); 101 x free((void**)&predictions); predictions=sumpredictions;101 xDelete<double>(predictions); predictions=sumpredictions; 102 102 #endif 103 103 } … … 109 109 delete variogram; 110 110 delete observations; 111 x free((void**)&output);111 xDelete<char>(output); 112 112 *ppredictions = predictions; 113 113 *perror = error; … … 131 131 132 132 /*Assign output pointer*/ 133 x free((void**)&model);133 xDelete<char>(model); 134 134 *pvariogram = variogram; 135 135 }/*}}}*/ -
issm/trunk-jpl/src/c/modules/Shp2Kmlx/Shp2Kmlx.cpp
r11401 r12442 39 39 int nshape,ncoord; 40 40 double cpsum; 41 int *pstype =NULL,*pnpart=NULL,**ppstrt=NULL,**pptype=NULL,*pnvert=NULL;42 double **pshapx=NULL,**pshapy=NULL,**pshapz=NULL,**pshapm=NULL;43 double *lat =NULL,*lon=NULL;41 int *pstype = NULL, *pnpart=NULL,**ppstrt=NULL,**pptype=NULL,*pnvert=NULL; 42 double **pshapx = NULL,**pshapy=NULL,**pshapz=NULL,**pshapm=NULL; 43 double *lat = NULL, *lon=NULL; 44 44 45 45 SHPHandle hSHP; … … 49 49 50 50 char indent[81]=""; 51 KML_File* kfile =NULL; 52 KML_Document* kdoc =NULL; 53 KML_Style* kstyle=NULL; 54 KML_LineStyle* klsty =NULL; 55 KML_PolyStyle* kpsty =NULL; 56 KML_Folder* kfold =NULL; 57 KML_Placemark* kplace=NULL; 58 KML_MultiGeometry* kmulti=NULL; 59 KML_Polygon* kpoly =NULL; 60 KML_LinearRing* kring =NULL; 61 KML_LineString* kline =NULL; 62 KML_Point* kpoint=NULL; 63 64 FILE* fid=NULL; 51 KML_File *kfile = NULL; 52 KML_Document *kdoc = NULL; 53 KML_Style *kstyle = NULL; 54 KML_LineStyle *klsty = NULL; 55 KML_PolyStyle *kpsty = NULL; 56 KML_Folder *kfold = NULL; 57 KML_Placemark *kplace = NULL; 58 KML_MultiGeometry *kmulti = NULL; 59 KML_Polygon *kpoly = NULL; 60 KML_LinearRing *kring = NULL; 61 KML_LineString *kline = NULL; 62 KML_Point *kpoint = NULL; 63 FILE *fid = NULL; 65 64 66 65 clock_t clock0,clock1; … … 97 96 98 97 nshape=nEntities; 99 pstype= (int *) xmalloc(nshape*sizeof(int));100 pnpart= (int *) xmalloc(nshape*sizeof(int));101 ppstrt= (int **) xmalloc(nshape*sizeof(int *));102 pptype= (int **) xmalloc(nshape*sizeof(int *));103 pnvert= (int *) xmalloc(nshape*sizeof(int));104 pshapx= (double **) xmalloc(nshape*sizeof(double *));105 pshapy= (double **) xmalloc(nshape*sizeof(double *));106 pshapz= (double **) xmalloc(nshape*sizeof(double *));107 pshapm= (double **) xmalloc(nshape*sizeof(double *));98 pstype=xNew<int>(nshape); 99 pnpart=xNew<int>(nshape); 100 ppstrt=xNew<int*>(nshape); 101 pptype=xNew<int*>(nshape); 102 pnvert=xNew<int>(nshape); 103 pshapx=xNew<double*>(nshape); 104 pshapy=xNew<double*>(nshape); 105 pshapz=xNew<double*>(nshape); 106 pshapm=xNew<double*>(nshape); 108 107 109 108 /* loop over the list of shapes */ … … 129 128 pnpart[i]=psShape->nParts; 130 129 if (pnpart[i]) { 131 ppstrt[i]= (int *) xmalloc(pnpart[i]*sizeof(int));132 pptype[i]= (int *) xmalloc(pnpart[i]*sizeof(int));130 ppstrt[i]=xNew<int>(pnpart[i]); 131 pptype[i]=xNew<int>(pnpart[i]); 133 132 } 134 133 else { … … 138 137 pnvert[i]=psShape->nVertices; 139 138 if (pnvert[i]) { 140 pshapx[i]= (double *) xmalloc(pnvert[i]*sizeof(double));141 pshapy[i]= (double *) xmalloc(pnvert[i]*sizeof(double));142 pshapz[i]= (double *) xmalloc(pnvert[i]*sizeof(double));143 pshapm[i]= (double *) xmalloc(pnvert[i]*sizeof(double));139 pshapx[i]=xNew<double>(pnvert[i]); 140 pshapy[i]=xNew<double>(pnvert[i]); 141 pshapz[i]=xNew<double>(pnvert[i]); 142 pshapm[i]=xNew<double>(pnvert[i]); 144 143 } 145 144 else { … … 296 295 kpoint=new KML_Point(); 297 296 298 lat= (double *) xmalloc(pnvert[i]*sizeof(double));299 lon= (double *) xmalloc(pnvert[i]*sizeof(double));297 lat=xNew<double>(pnvert[i]); 298 lon=xNew<double>(pnvert[i]); 300 299 if (sgn) { 301 300 Xy2llx(lat,lon,pshapx[i],pshapy[i],pnvert[i],sgn,cm,sp); … … 310 309 kpoint->coords[2]=pshapz[i][0]; 311 310 312 x free((void**)&lon);313 x free((void**)&lat);311 xDelete<double>(lon); 312 xDelete<double>(lat); 314 313 315 314 (kplace->geometry )->AddObject((Object*)kpoint); … … 337 336 /* convert to lat/lon, if necessary */ 338 337 339 lat= (double *) xmalloc(pnvert[i]*sizeof(double));340 lon= (double *) xmalloc(pnvert[i]*sizeof(double));338 lat=xNew<double>(pnvert[i]); 339 lon=xNew<double>(pnvert[i]); 341 340 if (sgn) { 342 341 Xy2llx(lat,lon,pshapx[i],pshapy[i],pnvert[i],sgn,cm,sp); … … 353 352 354 353 kline->ncoord =(j<pnpart[i]-1 ? ppstrt[i][j+1]-ppstrt[i][j] : pnvert[i]-ppstrt[i][j]); 355 kline->coords = (double (*)[3]) xmalloc(kline->ncoord*3*sizeof(double));354 kline->coords =xNew<double>(kline->ncoord*3); 356 355 for (k=0; k<kline->ncoord; k++) { 357 kline->coords[ k][0]=lon [ppstrt[i][j]+k];358 kline->coords[ k][1]=lat [ppstrt[i][j]+k];359 kline->coords[ k][2]=pshapz[i][ppstrt[i][j]+k];356 kline->coords[3*k+0]=lon [ppstrt[i][j]+k]; 357 kline->coords[3*k+1]=lat [ppstrt[i][j]+k]; 358 kline->coords[3*k+2]=pshapz[i][ppstrt[i][j]+k]; 360 359 } 361 362 360 (kmulti->geometry )->AddObject((Object*)kline); 363 kline = NULL;364 } 365 366 x free((void**)&lon);367 x free((void**)&lat);368 369 (kplace->geometry 361 kline = NULL; 362 } 363 364 xDelete<double>(lon); 365 xDelete<double>(lat); 366 367 (kplace->geometry)->AddObject((Object*)kmulti); 370 368 kmulti=NULL; 371 (kfold ->feature 369 (kfold ->feature )->AddObject((Object*)kplace); 372 370 kplace=NULL; 373 371 } … … 401 399 /* convert to lat/lon, if necessary */ 402 400 403 lat= (double *) xmalloc(pnvert[i]*sizeof(double));404 lon= (double *) xmalloc(pnvert[i]*sizeof(double));401 lat=xNew<double>(pnvert[i]); 402 lon=xNew<double>(pnvert[i]); 405 403 if (sgn) { 406 404 Xy2llx(lat,lon,pshapx[i],pshapy[i],pnvert[i],sgn,cm,sp); … … 438 436 439 437 kring->ncoord =(j<pnpart[i]-1 ? ppstrt[i][j+1]-ppstrt[i][j] : pnvert[i]-ppstrt[i][j]); 440 kring->coords = (double (*)[3]) xmalloc(kring->ncoord*3*sizeof(double));438 kring->coords =xNew<double>(kring->ncoord*3); 441 439 if (cpsum < 0) 442 440 for (k=0; k<kring->ncoord; k++) { 443 kring->coords[ kring->ncoord-1-k][0]=lon [ppstrt[i][j]+k];444 kring->coords[ kring->ncoord-1-k][1]=lat [ppstrt[i][j]+k];445 kring->coords[ kring->ncoord-1-k][2]=pshapz[i][ppstrt[i][j]+k];441 kring->coords[3*(kring->ncoord-1-k)+0]=lon [ppstrt[i][j]+k]; 442 kring->coords[3*(kring->ncoord-1-k)+1]=lat [ppstrt[i][j]+k]; 443 kring->coords[3*(kring->ncoord-1-k)+2]=pshapz[i][ppstrt[i][j]+k]; 446 444 } 447 445 else 448 446 for (k=0; k<kring->ncoord; k++) { 449 kring->coords[ k ][0]=lon [ppstrt[i][j]+k];450 kring->coords[ k ][1]=lat [ppstrt[i][j]+k];451 kring->coords[ k ][2]=pshapz[i][ppstrt[i][j]+k];447 kring->coords[3*k+0]=lon [ppstrt[i][j]+k]; 448 kring->coords[3*k+1]=lat [ppstrt[i][j]+k]; 449 kring->coords[3*k+2]=pshapz[i][ppstrt[i][j]+k]; 452 450 } 453 451 … … 470 468 471 469 kring->ncoord =(j<pnpart[i]-1 ? ppstrt[i][j+1]-ppstrt[i][j] : pnvert[i]-ppstrt[i][j]); 472 kring->coords = (double (*)[3]) xmalloc(kring->ncoord*3*sizeof(double));470 kring->coords =xNew<double>(kring->ncoord*3); 473 471 for (k=0; k<kring->ncoord; k++) { 474 kring->coords[ k][0]=lon [ppstrt[i][j]+k];475 kring->coords[ k][1]=lat [ppstrt[i][j]+k];476 kring->coords[ k][2]=pshapz[i][ppstrt[i][j]+k];472 kring->coords[3*k+0]=lon [ppstrt[i][j]+k]; 473 kring->coords[3*k+1]=lat [ppstrt[i][j]+k]; 474 kring->coords[3*k+2]=pshapz[i][ppstrt[i][j]+k]; 477 475 } 478 476 … … 487 485 } 488 486 489 x free((void**)&lon);490 x free((void**)&lat);487 xDelete<double>(lon); 488 xDelete<double>(lat); 491 489 492 490 (kplace->geometry )->AddObject((Object*)kmulti); … … 518 516 /* convert to lat/lon, if necessary */ 519 517 520 lat= (double *) xmalloc(pnvert[i]*sizeof(double));521 lon= (double *) xmalloc(pnvert[i]*sizeof(double));518 lat=xNew<double>(pnvert[i]); 519 lon=xNew<double>(pnvert[i]); 522 520 if (sgn) { 523 521 Xy2llx(lat,lon,pshapx[i],pshapy[i],pnvert[i],sgn,cm,sp); … … 541 539 } 542 540 543 x free((void**)&lon);544 x free((void**)&lat);541 xDelete<double>(lon); 542 xDelete<double>(lat); 545 543 546 544 (kplace->geometry )->AddObject((Object*)kmulti); … … 583 581 delete kfile; 584 582 for (i=nshape-1; i>=0; i--) { 585 x free((void**)&(pshapm[i]));586 x free((void**)&(pshapz[i]));587 x free((void**)&(pshapy[i]));588 x free((void**)&(pshapx[i]));589 } 590 x free((void**)&pshapm);591 x free((void**)&pshapz);592 x free((void**)&pshapy);593 x free((void**)&pshapx);594 x free((void**)&pnvert);583 xDelete<double>((pshapm[i])); 584 xDelete<double>((pshapz[i])); 585 xDelete<double>((pshapy[i])); 586 xDelete<double>((pshapx[i])); 587 } 588 xDelete<double*>(pshapm); 589 xDelete<double*>(pshapz); 590 xDelete<double*>(pshapy); 591 xDelete<double*>(pshapx); 592 xDelete<int>(pnvert); 595 593 for (i=nshape-1; i>=0; i--) { 596 x free((void**)&(pptype[i]));597 x free((void**)&(ppstrt[i]));598 } 599 x free((void**)&pptype);600 x free((void**)&ppstrt);601 x free((void**)&pnpart);602 x free((void**)&pstype);594 xDelete<int>((pptype[i])); 595 xDelete<int>((ppstrt[i])); 596 } 597 xDelete<int*>(pptype); 598 xDelete<int*>(ppstrt); 599 xDelete<int>(pnpart); 600 xDelete<int>(pstype); 603 601 604 602 clock1=clock(); -
issm/trunk-jpl/src/c/modules/TriMeshx/TriMeshx.cpp
r12098 r12442 57 57 58 58 /*fill in the point list: */ 59 in.pointlist = (REAL *) xmalloc(in.numberofpoints * 2 * sizeof(REAL));59 in.pointlist = xNew<REAL>(in.numberofpoints*2); 60 60 61 61 counter=0; … … 78 78 79 79 /*fill in the point attribute list: */ 80 in.pointattributelist = (REAL*)xmalloc(in.numberofpoints*in.numberofpointattributes*sizeof(REAL));80 in.pointattributelist = xNew<REAL>(in.numberofpoints*in.numberofpointattributes); 81 81 for (i=0;i<in.numberofpoints;i++) in.pointattributelist[i] = 0.0; 82 82 83 83 /*fill in the point marker list: */ 84 in.pointmarkerlist = (int *) xmalloc(in.numberofpoints * sizeof(int));84 in.pointmarkerlist = xNew<int>(in.numberofpoints); 85 85 for(i=0;i<in.numberofpoints;i++) in.pointmarkerlist[i] = 0; 86 86 … … 97 97 } 98 98 99 in.segmentlist = (int *) xmalloc(in.numberofsegments * 2 * sizeof(int));100 in.segmentmarkerlist = (int *)xcalloc(in.numberofsegments,sizeof(int));99 in.segmentlist = xNew<int>(in.numberofsegments*2); 100 in.segmentmarkerlist = (int*)xcalloc(in.numberofsegments,sizeof(int)); 101 101 counter=0; 102 102 backcounter=0; … … 135 135 in.numberofholes = domain->Size()-1; /*everything is a hole, but for the first profile.*/ 136 136 if(in.numberofholes){ 137 in.holelist = (REAL *) xmalloc(in.numberofholes * 2 * sizeof(REAL));137 in.holelist = xNew<REAL>(in.numberofholes*2); 138 138 for (i=0;i<domain->Size()-1;i++){ 139 139 contour=(Contour*)domain->GetObjectByOffset(i+1); … … 164 164 165 165 /*Allocate index, x and y: */ 166 index= (double*)xmalloc(3*out.numberoftriangles*sizeof(double));167 x= (double*)xmalloc(out.numberofpoints*sizeof(double));168 y= (double*)xmalloc(out.numberofpoints*sizeof(double));169 segments= (double*)xmalloc(3*out.numberofsegments*sizeof(double));170 segmentmarkerlist= (double*)xmalloc(out.numberofsegments*sizeof(double));166 index=xNew<double>(3*out.numberoftriangles); 167 x=xNew<double>(out.numberofpoints); 168 y=xNew<double>(out.numberofpoints); 169 segments=xNew<double>(3*out.numberofsegments); 170 segmentmarkerlist=xNew<double>(out.numberofsegments); 171 171 172 172 for (i = 0; i< out.numberoftriangles; i++) { -
issm/trunk-jpl/src/c/objects/KML/KML_LineString.cpp
r12365 r12442 37 37 KML_LineString::~KML_LineString(){ 38 38 39 if (coords) x free((void**)&coords);39 if (coords) xDelete<double>(coords); 40 40 41 41 coords =NULL; … … 86 86 _printf_(flag,"%s coords: (ncoord=%d)\n" ,indent,ncoord); 87 87 for (i=0; i<ncoord; i++) 88 _printf_(flag,"%s (%g,%g,%g)\n" ,indent, 89 coords[i][0],coords[i][1],coords[i][2]); 88 _printf_(flag,"%s (%g,%g,%g)\n" ,indent,coords[3*i+0],coords[3*i+1],coords[3*i+2]); 90 89 91 90 return; … … 112 111 113 112 for (i=0; i<ncoord; i++) 114 fprintf(filout,"%s %0.16g,%0.16g,%0.16g\n",indent, 115 coords[i][0],coords[i][1],coords[i][2]); 113 fprintf(filout,"%s %0.16g,%0.16g,%0.16g\n",indent, coords[3*i+0],coords[3*i+1],coords[3*i+2]); 116 114 117 115 fprintf(filout,"%s </coordinates>\n",indent); … … 191 189 lon=(double *) xmalloc(ncoord*sizeof(double)); 192 190 for (i=0; i<ncoord; i++) { 193 lon[i]=coords[ i][0];194 lat[i]=coords[ i][1];191 lon[i]=coords[3*i+0]; 192 lat[i]=coords[3*i+1]; 195 193 } 196 194 -
issm/trunk-jpl/src/c/objects/KML/KML_LineString.h
r12365 r12442 21 21 public: 22 22 23 bool extrude;24 bool tessellate;25 char altmode[KML_LINESTRING_ALTMODE_LENGTH+1];26 intncoord;27 double (*coords)[3];23 bool extrude; 24 bool tessellate; 25 char altmode[KML_LINESTRING_ALTMODE_LENGTH+1]; 26 int ncoord; 27 double *coords; 28 28 29 29 /*KML_LineString constructors, destructors {{{*/ -
issm/trunk-jpl/src/c/objects/KML/KML_LinearRing.cpp
r12365 r12442 37 37 KML_LinearRing::~KML_LinearRing(){ 38 38 39 if (coords) x free((void**)&coords);39 if (coords) xDelete<double>(coords); 40 40 41 41 coords =NULL; … … 62 62 } 63 63 /*}}}*/ 64 65 64 /*FUNCTION KML_LinearRing::DeepEcho {{{*/ 66 65 void KML_LinearRing::DeepEcho(){ … … 73 72 } 74 73 /*}}}*/ 75 76 74 /*FUNCTION KML_LinearRing::DeepEcho {{{*/ 77 75 void KML_LinearRing::DeepEcho(const char* indent){ … … 89 87 for (i=0; i<ncoord; i++) 90 88 _printf_(flag,"%s (%g,%g,%g)\n" ,indent, 91 coords[i][0],coords[i][1],coords[i][2]); 92 93 return; 94 } 95 /*}}}*/ 96 89 coords[3*i+0],coords[3*i+1],coords[3*i+2]); 90 91 return; 92 } 93 /*}}}*/ 97 94 /*FUNCTION KML_LinearRing::Write {{{*/ 98 95 void KML_LinearRing::Write(FILE* filout,const char* indent){ … … 115 112 116 113 for (i=0; i<ncoord; i++) 117 fprintf(filout,"%s %0.16g,%0.16g,%0.16g\n",indent, 118 coords[i][0],coords[i][1],coords[i][2]); 114 fprintf(filout,"%s %0.16g,%0.16g,%0.16g\n",indent,coords[3*i+0],coords[3*i+1],coords[3*i+2]); 119 115 120 116 fprintf(filout,"%s </coordinates>\n",indent); … … 124 120 } 125 121 /*}}}*/ 126 127 122 /*FUNCTION KML_LinearRing::Read {{{*/ 128 123 void KML_LinearRing::Read(FILE* fid,char* kstr){ 129 124 130 char * kstri;131 int ncom=0;132 char ** pcom=NULL;125 char *kstri = NULL; 126 int ncom = 0; 127 char **pcom = NULL; 133 128 134 129 /* get object attributes and check for solo tag */ 135 130 136 if (KMLFileTagAttrib(this, 137 kstr)) 138 return; 131 if (KMLFileTagAttrib(this,kstr)) return; 139 132 140 133 /* loop over and process fields within opening and closing tags */ 141 134 142 while (kstri=KMLFileToken(fid, 143 &ncom,&pcom)) { 144 if (!strncmp(kstri,"</LinearRing",12)) { 145 xfree((void**)&kstri); 135 while (kstri=KMLFileToken(fid,&ncom,&pcom)){ 136 if (!strncmp(kstri,"</LinearRing",12)){ 137 xDelete<char>(kstri); 146 138 break; 147 139 } … … 152 144 153 145 else if (!strcmp(kstri,"<extrude>")) 154 KMLFileTokenParse(&extrude , 155 kstri, 156 fid); 146 KMLFileTokenParse(&extrude,kstri,fid); 157 147 else if (!strcmp(kstri,"<tessellate>")) 158 KMLFileTokenParse(&tessellate, 159 kstri, 160 fid); 148 KMLFileTokenParse(&tessellate,kstri,fid); 161 149 else if (!strcmp(kstri,"<altitudeMode>")) 162 KMLFileTokenParse( altmode ,NULL,KML_LINEARRING_ALTMODE_LENGTH, 163 kstri, 164 fid); 150 KMLFileTokenParse(altmode,NULL,KML_LINEARRING_ALTMODE_LENGTH,kstri,fid); 165 151 else if (!strcmp(kstri,"<coordinates>")) 166 KMLFileTokenParse(&coords ,&ncoord ,0, 167 kstri, 168 fid); 169 152 KMLFileTokenParse(&coords,&ncoord,0,kstri,fid); 170 153 else if (!strncmp(kstri,"<",1)) 171 154 KML_Geometry::Read(fid,kstri); 172 155 173 x free((void**)&kstri);156 xDelete<char>(kstri); 174 157 } 175 158 176 159 this->AddCommnt(ncom,pcom); 177 160 178 for (ncom; ncom>0; ncom--) 179 xfree((void**)&(pcom[ncom-1])); 180 xfree((void**)&pcom); 181 182 return; 183 } 184 /*}}}*/ 185 161 for(ncom;ncom>0;ncom--) xDelete<char>((pcom[ncom-1])); 162 xDelete<char*>(pcom); 163 164 return; 165 } 166 /*}}}*/ 186 167 /*FUNCTION KML_LinearRing::WriteExp {{{*/ 187 168 void KML_LinearRing::WriteExp(FILE* fid,const char* nstr,int sgn,double cm,double sp){ … … 193 174 /* extract latitude and longitude into vectors */ 194 175 195 lat= (double *) xmalloc(ncoord*sizeof(double));196 lon= (double *) xmalloc(ncoord*sizeof(double));176 lat=xNew<double>(ncoord); 177 lon=xNew<double>(ncoord); 197 178 for (i=0; i<ncoord; i++) { 198 lon[i]=coords[ i][0];199 lat[i]=coords[ i][1];179 lon[i]=coords[3*i+0]; 180 lat[i]=coords[3*i+1]; 200 181 } 201 182 202 183 /* convert latitude and longitude to x and y */ 203 184 204 x = (double *) xmalloc(ncoord*sizeof(double));205 y = (double *) xmalloc(ncoord*sizeof(double));185 x =xNew<double>(ncoord); 186 y =xNew<double>(ncoord); 206 187 Ll2xyx(x,y,lat,lon,ncoord,sgn,cm,sp); 207 188 … … 233 214 fprintf(fid,"\n"); 234 215 235 xfree((void**)&y); 236 xfree((void**)&x); 237 xfree((void**)&lon); 238 xfree((void**)&lat); 239 240 return; 241 } 242 /*}}}*/ 243 216 xDelete<double>(y); 217 xDelete<double>(x); 218 xDelete<double>(lon); 219 xDelete<double>(lat); 220 221 return; 222 } 223 /*}}}*/ -
issm/trunk-jpl/src/c/objects/KML/KML_LinearRing.h
r12365 r12442 21 21 public: 22 22 23 bool extrude;24 bool tessellate;25 char altmode[KML_LINEARRING_ALTMODE_LENGTH+1];26 intncoord;27 double (*coords)[3];23 bool extrude; 24 bool tessellate; 25 char altmode[KML_LINEARRING_ALTMODE_LENGTH+1]; 26 int ncoord; 27 double *coords; 28 28 29 29 /*KML_LinearRing constructors, destructors {{{*/
Note:
See TracChangeset
for help on using the changeset viewer.