/[escript]/trunk/dudley/src/Assemble_CopyElementData.c
ViewVC logotype

Diff of /trunk/dudley/src/Assemble_CopyElementData.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2748 by gross, Tue Nov 17 07:32:59 2009 UTC revision 2770 by jfenwick, Wed Nov 25 01:24:51 2009 UTC
# Line 61  void Finley_Assemble_CopyElementData(Fin Line 61  void Finley_Assemble_CopyElementData(Fin
61    
62      if (Finley_noError()) {      if (Finley_noError()) {
63           if (isExpanded(in)) {           if (isExpanded(in)) {
          void* buffer=allocSampleBuffer(in);  
64               len_size=numComps*numQuad*sizeof(double);               len_size=numComps*numQuad*sizeof(double);
65           requireWrite(out);           requireWrite(out);
66           #pragma omp parallel private(n)           #pragma omp parallel private(n)
67           {           {
68                 # pragma omp for schedule(static)                 # pragma omp for schedule(static)
69                 for (n=0;n<numElements;n++)                 for (n=0;n<numElements;n++)
70                   memcpy(getSampleDataRW(out,n),getSampleDataRO(in,n,buffer), len_size);                   memcpy(getSampleDataRW(out,n),getSampleDataRO(in,n), len_size);
71           }           }
          freeSampleBuffer(buffer);  
72           } else {           } else {
          void* buffer=allocSampleBuffer(in);  
73               len_size=numComps*sizeof(double);               len_size=numComps*sizeof(double);
74           requireWrite(out);           requireWrite(out);
75           #pragma omp parallel private(q,n,out_array,in_array)           #pragma omp parallel private(q,n,out_array,in_array)
76           {           {
77                 # pragma omp for schedule(static)                 # pragma omp for schedule(static)
78                 for (n=0;n<numElements;n++) {                 for (n=0;n<numElements;n++) {
79                   in_array=getSampleDataRO(in,n,buffer);                   in_array=getSampleDataRO(in,n);
80                   out_array=getSampleDataRW(out,n);                   out_array=getSampleDataRW(out,n);
81                   for (q=0;q<numQuad;q++) memcpy(out_array+q*numComps,in_array,len_size);                   for (q=0;q<numQuad;q++) memcpy(out_array+q*numComps,in_array,len_size);
82                 }                 }
83           }           }
          freeSampleBuffer(buffer);  
84           }           }
85      }      }
86      return;      return;

Legend:
Removed from v.2748  
changed lines
  Added in v.2770

  ViewVC Help
Powered by ViewVC 1.1.26