34 const int nentities,
const int nvaluesperentity,
const int nconstituentpervalue,
37 med_size _start=start-1,_blockstart = 0,_blocksize=blocksize,_allblocksize=0,_index=0;
38 med_int (*_profilearrayfunc)(int)=0;
39 int _blocknum=0,_i=0,_j=0,_k=0;
44 if ( profilearray == NULL ) {
MESSAGE(
"Error, profilesize > 0 && profilearray == 0"); }
59 *valuesarray = (
med_float *) calloc(nentities*nvaluesperentity*nconstituentpervalue,sizeoftype);
60 for (_blocknum=0; _blocknum< count; ++_blocknum) {
61 _blockstart=_blocknum*stride;
63 if ( (count > 1) && (_blocknum == (count-1) ) && (myrank == lastrank) ) _blocksize=lastblocksize;
65 for (_i=0; _i<_blocksize; ++_i)
66 for (_j=0; _j < nvaluesperentity; ++_j)
67 for (_k=0; _k < nconstituentpervalue; ++_k) {
68 _index = _profilearrayfunc(_start+_blockstart+_i)*nvaluesperentity*nconstituentpervalue
69 +_j*nconstituentpervalue+_k;
70 (*valuesarray)[_index]= (myrank+1)*1000+_blocknum*100+_i+0.1*_j+0.01*_k;
81 if ( (myrank == lastrank) ) _allblocksize=blocksize*count+lastblocksize;
else _allblocksize = blocksize*count;
82 *valuesarray = (
med_float *) calloc(_allblocksize*nvaluesperentity*nconstituentpervalue,sizeoftype);
85 for (_blocknum=0; _blocknum< count; ++_blocknum) {
86 if ( (count > 1) && (_blocknum == (count-1) ) && (myrank == lastrank) ) _blocksize=lastblocksize;
87 for (_i=0; _i<_blocksize; ++_i)
88 for (_j=0; _j < nvaluesperentity; ++_j)
89 for (_k=0; _k < nconstituentpervalue; ++_k) {
90 (*valuesarray)[_index]= (myrank+1)*1000+_blocknum*100+_i+0.1*_j+0.01*_k;
106 const int nentities,
const int nvaluesperentity,
const int nconstituentpervalue,
109 med_size _start=start-1,_blockstart = 0,_blocksize=blocksize,_allblocksize=0,_index=0,_dim=0;
110 med_int (*_profilearrayfunc)(int)=0;
111 int _blocknum=0,_i=0,_j=0,_k=0;
114 if (profilearraysize) {
116 if ( profilearray == NULL ) {
MESSAGE(
"Error, profilearraysize > 0 && profilearray == 0"); }
122 switch(storagemode) {
129 *valuesarray = (
med_float *) calloc(nentities*nvaluesperentity*nconstituentpervalue,sizeoftype);
131 for (_dim=0; _dim< nconstituentpervalue; ++_dim) {
132 _blocksize = blocksize;
133 for (_blocknum=0; _blocknum< count; ++_blocknum) {
134 _blockstart=_blocknum*stride;
135 if ( (count > 1) && (_blocknum == (count-1) ) && (myrank == lastrank) ) _blocksize=lastblocksize;
136 for (_i=0; _i<_blocksize; ++_i)
137 for (_j=0; _j < nvaluesperentity; ++_j) {
138 _index = ( _dim*nentities
139 +_profilearrayfunc(_start+_blockstart+_i) )
140 *nvaluesperentity + _j;
141 (*valuesarray)[_index]= (myrank+1)*1000+_blocknum*100+_i+0.1*_j+0.01*_dim;
150 if ( (myrank == lastrank) ) _allblocksize=blocksize*count+lastblocksize;
else _allblocksize = blocksize*count;
151 *valuesarray = (
med_float *) calloc(_allblocksize*nvaluesperentity*nconstituentpervalue,sizeoftype);
154 for (_dim=0; _dim< nconstituentpervalue; ++_dim) {
155 _blocksize = blocksize;
156 for (_blocknum=0; _blocknum< count; ++_blocknum) {
157 if ( (count > 1) && (_blocknum == (count-1) ) && (myrank == lastrank) ) _blocksize=lastblocksize;
158 for (_i=0; _i<_blocksize; ++_i)
159 for (_j=0; _j < nvaluesperentity; ++_j) {
160 (*valuesarray)[_index]= (myrank+1)*1000+_blocknum*100+_i+0.1*_j+0.01*_dim;