diff options
Diffstat (limited to 'src/testWriter.cc')
-rw-r--r-- | src/testWriter.cc | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/src/testWriter.cc b/src/testWriter.cc new file mode 100644 index 0000000..d5c4ed2 --- /dev/null +++ b/src/testWriter.cc @@ -0,0 +1,80 @@ +#include <stdio.h> +#include <stdlib.h> +#include "IO.hh" +#include "IEEEIO.hh" +// #include "Reader.hh" +#include "Writer.hh" + +int main(int argc,char *argv[]){ + float data[40*40*40]; + double origin[3]={0,0,0}; + double dx[3]={0.25,0.25,0.25}; + int i,rank=3; + int dims[3]={40,40,40}; + Writer *writer; + IObase *outfile = new IEEEIO("data3d.raw",IObase::Create); + writer = new Writer(*outfile); + writer->setParams(rank,dims,IObase::Float32,origin,dx); + // data[0]=1.0; + for(i=0;i<40*40*40;i++) + data[i]=(float)i; + for(i=0;i<2;i++) + writer->write(data); + + delete writer; + delete outfile; +#if 0 + Reader *reader; + IObase *infile = new IEEEIO("data3d.raw",IObase::Read); + reader = new Reader(*infile); + + for(i=0;i<reader->ndatasets;i++){ + int j; + float buffer[40*40*40]; + for(j=0;j<40*40*40;j++) buffer[j]=0; + (*reader)[i].read(buffer); + for(j=0;j<10;j++) + printf("Data[%u]=%f\n",j,buffer[j]); + puts("***done printing data"); + for(j=0;j<(*reader)[i].nattributes;j++){ + //IOdataset ds=(*reader)[i]; + //char c1,c2; + //int attrlen; + //printf("\tnattribs=%u\n",ds.nattributes); + //c1=ds.attribute[j].name[0]; + //c2=ds.attribute[j].name[0]; + //printf("\tFirst two chars of name [%c][%c]\n",c1,c2); + //attrlen=ds.attribute[j].nelements; + printf("\tAttribute[%u] name=%s\n",j,(*reader)[i].attribute[j].name); + long length=(*reader)[i].attribute[j].nelements; + switch((*reader)[i].attribute[j].datatype){ + case IObase::Float32:{ + //float buf[5]; + puts("Float"); + printf("length=%u\n",length); + } break; + case IObase::Float64:{ + double buf[5]; + puts("Double"); + printf("length=%u\n",length); + (*reader)[i].attribute[j].read(buf); + for(int k=0;k<length;k++) + printf("\tElement[%u]=%lf\n",k,buf[k]); + } break; + case IObase::Int32:{ + //int buf[5]; + puts("Integer"); + printf("length=%u\n",length); + } break; + default: + puts("unknown type"); + break; + } + } + } + delete reader; + delete infile; +#endif + puts("done"); + return 0; +} |