Lines 205-231
Link Here
|
205 |
{ /* switch pflmod pout FULL_INTERLACE*/ |
205 |
{ /* switch pflmod pout FULL_INTERLACE*/ |
206 |
case MED_GLOBALE : |
206 |
case MED_GLOBALE : |
207 |
|
207 |
|
208 |
/* Creation d'un data space mémoire de dimension 1, de longeur size, et de longeur maxi size */ |
208 |
/* Creation d'un data space mémoire de dimension 1, de longeur size, et de longeur maxi size */ |
209 |
if ( (memspace = H5Screate_simple (1, size, NULL)) <0) |
209 |
if ( (memspace = H5Screate_simple (1, size, NULL)) <0) |
210 |
return -1; |
210 |
return -1; |
|
|
211 |
|
212 |
for (dim=firstdim; dim < lastdim; dim++) { |
213 |
|
214 |
for (i=0; i < psize; i++) /* i balaye les élements du profil */ |
215 |
for (j=0; j < ngauss; j++) { |
216 |
index = i*ngauss+j + (dim-firstdim)*(psize*ngauss); |
217 |
pflmem[index] = (pfltab[i]-1)*ngauss*nbdim + j*nbdim+dim; |
218 |
pfldsk[index] = dim*count[0] + (pfltab[i]-1)*ngauss+j; |
219 |
} |
220 |
} |
221 |
|
222 |
#ifdef HDF_NEW_API |
211 |
|
223 |
|
212 |
for (dim=firstdim; dim < lastdim; dim++) { |
224 |
#if H5_VERS_RELEASE < 7 |
213 |
|
|
|
214 |
for (i=0; i < psize; i++) /* i balaye les élements du profil */ |
215 |
for (j=0; j < ngauss; j++) { |
216 |
index = i*ngauss+j + (dim-firstdim)*(psize*ngauss); |
217 |
pflmem[index] = (pfltab[i]-1)*ngauss*nbdim + j*nbdim+dim; |
218 |
pfldsk[index] = dim*count[0] + (pfltab[i]-1)*ngauss+j; |
219 |
} |
220 |
} |
221 |
|
222 |
#ifdef HDF_NEW_API |
223 |
if ( (ret = H5Sselect_elements(memspace,H5S_SELECT_SET, pcount[0], (const hsize_t **) pflmem ) ) <0) |
225 |
if ( (ret = H5Sselect_elements(memspace,H5S_SELECT_SET, pcount[0], (const hsize_t **) pflmem ) ) <0) |
224 |
return -1; |
226 |
return -1; |
225 |
|
227 |
|
226 |
if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET, pcount[0], (const hsize_t **) pfldsk ) ) <0) |
228 |
if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET, pcount[0], (const hsize_t **) pfldsk ) ) <0) |
227 |
return -1; |
229 |
return -1; |
228 |
#else |
230 |
#else |
|
|
231 |
if ( (ret = H5Sselect_elements(memspace,H5S_SELECT_SET, pcount[0], (const hsize_t *) pflmem ) ) <0) |
232 |
return -1; |
233 |
|
234 |
if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET, pcount[0], (const hsize_t *) pfldsk ) ) <0) |
235 |
return -1; |
236 |
#endif |
237 |
|
238 |
#else |
229 |
if ( (ret = H5Sselect_elements(memspace,H5S_SELECT_SET, pcount[0], (const hssize_t **) pflmem ) ) <0) |
239 |
if ( (ret = H5Sselect_elements(memspace,H5S_SELECT_SET, pcount[0], (const hssize_t **) pflmem ) ) <0) |
230 |
return -1; |
240 |
return -1; |
231 |
|
241 |
|
Lines 255-266
Link Here
|
255 |
} |
265 |
} |
256 |
|
266 |
|
257 |
#ifdef HDF_NEW_API |
267 |
#ifdef HDF_NEW_API |
|
|
268 |
|
269 |
#if H5_VERS_RELEASE < 7 |
258 |
if ( (ret = H5Sselect_elements(memspace,H5S_SELECT_SET, pcount[0], (const hsize_t **) pflmem ) ) <0) |
270 |
if ( (ret = H5Sselect_elements(memspace,H5S_SELECT_SET, pcount[0], (const hsize_t **) pflmem ) ) <0) |
259 |
return -1; |
271 |
return -1; |
260 |
|
272 |
|
261 |
if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET, pcount[0], (const hsize_t **) pfldsk ) ) <0) |
273 |
if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET, pcount[0], (const hsize_t **) pfldsk ) ) <0) |
262 |
return -1; |
274 |
return -1; |
263 |
#else |
275 |
#else |
|
|
276 |
if ( (ret = H5Sselect_elements(memspace,H5S_SELECT_SET, pcount[0], (const hsize_t *) pflmem ) ) <0) |
277 |
return -1; |
278 |
|
279 |
if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET, pcount[0], (const hsize_t *) pfldsk ) ) <0) |
280 |
return -1; |
281 |
#endif |
282 |
|
283 |
#else |
264 |
if ( (ret = H5Sselect_elements(memspace,H5S_SELECT_SET, pcount[0], (const hssize_t **) pflmem ) ) <0) |
284 |
if ( (ret = H5Sselect_elements(memspace,H5S_SELECT_SET, pcount[0], (const hssize_t **) pflmem ) ) <0) |
265 |
return -1; |
285 |
return -1; |
266 |
|
286 |
|
Lines 326-364
Link Here
|
326 |
pfldsk = (med_size *) malloc(sizeof(med_size)*pcount[0]); |
346 |
pfldsk = (med_size *) malloc(sizeof(med_size)*pcount[0]); |
327 |
#else |
347 |
#else |
328 |
pfldsk = (med_ssize *) malloc(sizeof(med_ssize)*pcount[0]); |
348 |
pfldsk = (med_ssize *) malloc(sizeof(med_ssize)*pcount[0]); |
329 |
#endif |
349 |
#endif |
330 |
|
350 |
|
331 |
switch(pflmod) |
351 |
switch(pflmod) |
332 |
{ /*switch plfmod pour NO_INTERLACE */ |
352 |
{ /*switch plfmod pour NO_INTERLACE */ |
333 |
case MED_GLOBALE : |
353 |
case MED_GLOBALE : |
334 |
|
354 |
|
335 |
for (dim=firstdim; dim < lastdim; dim++) { |
355 |
for (dim=firstdim; dim < lastdim; dim++) { |
336 |
|
356 |
|
337 |
for (i=0; i < psize; i++) /* i balaye le nbre d'élements du profil */ |
357 |
for (i=0; i < psize; i++) /* i balaye le nbre d'élements du profil */ |
338 |
for (j=0; j < ngauss; j++) { |
358 |
for (j=0; j < ngauss; j++) { |
339 |
index = i*ngauss+j + (dim-firstdim)*(psize*ngauss); |
359 |
index = i*ngauss+j + (dim-firstdim)*(psize*ngauss); |
340 |
pfldsk[index] = dim*count[0]+(pfltab[i]-1)*ngauss+j; |
360 |
pfldsk[index] = dim*count[0]+(pfltab[i]-1)*ngauss+j; |
341 |
} |
361 |
} |
342 |
} |
362 |
} |
343 |
|
363 |
|
344 |
#ifdef HDF_NEW_API |
364 |
#ifdef HDF_NEW_API |
|
|
365 |
|
366 |
#if H5_VERS_RELEASE < 7 |
345 |
if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET,pcount[0], (const hsize_t **) pfldsk ) ) <0) |
367 |
if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET,pcount[0], (const hsize_t **) pfldsk ) ) <0) |
346 |
return -1; |
368 |
return -1; |
347 |
#else |
369 |
#else |
|
|
370 |
if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET,pcount[0], (const hsize_t *) pfldsk ) ) <0) |
371 |
return -1; |
372 |
#endif |
373 |
|
374 |
#else |
348 |
if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET,pcount[0], (const hssize_t **) pfldsk ) ) <0) |
375 |
if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET,pcount[0], (const hssize_t **) pfldsk ) ) <0) |
349 |
return -1; |
376 |
return -1; |
350 |
#endif |
377 |
#endif |
351 |
|
378 |
|
352 |
if ((ret = H5Dwrite(dataset,type_hdf,dataspace,dataspace,H5P_DEFAULT, val)) < 0) |
379 |
if ((ret = H5Dwrite(dataset,type_hdf,dataspace,dataspace,H5P_DEFAULT, val)) < 0) |
353 |
return -1; |
380 |
return -1; |
354 |
|
381 |
|
355 |
break; |
382 |
break; |
356 |
|
383 |
|
357 |
case MED_COMPACT : |
384 |
case MED_COMPACT : |
358 |
|
385 |
|
359 |
/* Creation d'un data space mémoire de dimension 1, de la longeur du profil */ |
386 |
/* Creation d'un data space mémoire de dimension 1, de la longeur du profil */ |
360 |
/* La dimension utilisée est ici nbdim, même pour un profil compact on suppose */ |
387 |
/* La dimension utilisée est ici nbdim, même pour un profil compact on suppose */ |
361 |
/* que l'utilisateur a toutes les coordonées stockées, même si il en demande qu'une */ |
388 |
/* que l'utilisateur a toutes les coordonées stockées, même si il en demande qu'une */ |
362 |
|
389 |
|
363 |
if ( (memspace = H5Screate_simple (1, pflsize, NULL)) <0) |
390 |
if ( (memspace = H5Screate_simple (1, pflsize, NULL)) <0) |
364 |
return -1; |
391 |
return -1; |
Lines 368-393
Link Here
|
368 |
#else |
395 |
#else |
369 |
pflmem = (med_ssize *) malloc (sizeof(med_ssize)*pcount[0]); |
396 |
pflmem = (med_ssize *) malloc (sizeof(med_ssize)*pcount[0]); |
370 |
#endif |
397 |
#endif |
371 |
|
398 |
|
372 |
/* Le profil COMPACT est contigüe, mais il est possible que l'on selectionne uniquemenent une dimension*/ |
399 |
/* Le profil COMPACT est contigüe, mais il est possible que l'on selectionne uniquemenent une dimension*/ |
373 |
|
400 |
|
374 |
for (dim=firstdim; dim < lastdim; dim++) { |
401 |
for (dim=firstdim; dim < lastdim; dim++) { |
375 |
|
402 |
|
376 |
for (i=0; i < psize; i++) /* i balaye le nbre d'élements du profil */ |
403 |
for (i=0; i < psize; i++) /* i balaye le nbre d'élements du profil */ |
377 |
for (j=0; j < ngauss; j++) { |
404 |
for (j=0; j < ngauss; j++) { |
378 |
index = i*ngauss+j + (dim-firstdim)*(psize*ngauss); |
405 |
index = i*ngauss+j + (dim-firstdim)*(psize*ngauss); |
379 |
pflmem[index] = dim*(psize*ngauss) + (pfltab[i]-1)*ngauss+j; |
406 |
pflmem[index] = dim*(psize*ngauss) + (pfltab[i]-1)*ngauss+j; |
380 |
pfldsk[index] = dim*count[0] + (pfltab[i]-1)*ngauss+j; |
407 |
pfldsk[index] = dim*count[0] + (pfltab[i]-1)*ngauss+j; |
381 |
} |
408 |
} |
382 |
} |
409 |
} |
383 |
|
410 |
|
384 |
#ifdef HDF_NEW_API |
411 |
#ifdef HDF_NEW_API |
|
|
412 |
|
413 |
#if H5_VERS_RELEASE < 7 |
385 |
if ( (ret = H5Sselect_elements(memspace ,H5S_SELECT_SET,pcount[0], (const hsize_t **) pflmem ) ) <0) |
414 |
if ( (ret = H5Sselect_elements(memspace ,H5S_SELECT_SET,pcount[0], (const hsize_t **) pflmem ) ) <0) |
386 |
return -1; |
415 |
return -1; |
387 |
|
416 |
|
388 |
if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET,pcount[0], (const hsize_t **) pfldsk ) ) <0) |
417 |
if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET,pcount[0], (const hsize_t **) pfldsk ) ) <0) |
389 |
return -1; |
418 |
return -1; |
390 |
#else |
419 |
#else |
|
|
420 |
if ( (ret = H5Sselect_elements(memspace ,H5S_SELECT_SET,pcount[0], (const hsize_t *) pflmem ) ) <0) |
421 |
return -1; |
422 |
|
423 |
if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET,pcount[0], (const hsize_t *) pfldsk ) ) <0) |
424 |
return -1; |
425 |
#endif |
426 |
|
427 |
#else |
391 |
if ( (ret = H5Sselect_elements(memspace ,H5S_SELECT_SET,pcount[0], (const hssize_t **) pflmem ) ) <0) |
428 |
if ( (ret = H5Sselect_elements(memspace ,H5S_SELECT_SET,pcount[0], (const hssize_t **) pflmem ) ) <0) |
392 |
return -1; |
429 |
return -1; |
393 |
|
430 |
|