xref: /phasta/phSolver/common/phIO.cc (revision 57517afc3ae70dec3fccacd42387f66ded38848e)
1064bab1dSCameron Smith #include <stdio.h>
2064bab1dSCameron Smith #include <stdlib.h>
3064bab1dSCameron Smith #include <string>
4d1293ce9SCameron Smith #include "phIO.h"
5d1293ce9SCameron Smith #include "phComm.h"
6064bab1dSCameron Smith #include "phio_base.h"
7064bab1dSCameron Smith #include "phio_sync.h"
8064bab1dSCameron Smith #include "phio_posix.h"
9f262839cSCameron Smith 
1082f286aaSCameron Smith void phio_readheader(
11064bab1dSCameron Smith     phio_fp f,
12d1293ce9SCameron Smith     const  char keyphrase[],
13d1293ce9SCameron Smith     void* valueArray,
14d1293ce9SCameron Smith     int*  nItems,
15d1293ce9SCameron Smith     const char  datatype[],
16d1293ce9SCameron Smith     const char  iotype[] ) {
17064bab1dSCameron Smith   f->ops->readheader(f->file, keyphrase, valueArray,
18064bab1dSCameron Smith       nItems, datatype, iotype);
19d1293ce9SCameron Smith }
20fa18c524SCameron Smith void phio_writeheader(
21*57517afcSCameron Smith     phio_fp f,
22fa18c524SCameron Smith     const char keyphrase[],
23fa18c524SCameron Smith     const void* valueArray,
24fa18c524SCameron Smith     const int* nItems,
25fa18c524SCameron Smith     const int* ndataItems,
26fa18c524SCameron Smith     const char datatype[],
27fa18c524SCameron Smith     const char iotype[] ) {
28*57517afcSCameron Smith   f->ops->writedatablock(f->file, keyphrase, valueArray,
29*57517afcSCameron Smith       nItems, datatype, iotype);
30fa18c524SCameron Smith }
31f262839cSCameron Smith void phio_readdatablock(
32064bab1dSCameron Smith     phio_fp f,
33f262839cSCameron Smith     const  char keyphrase[],
34f262839cSCameron Smith     void* valueArray,
35f262839cSCameron Smith     int*  nItems,
36f262839cSCameron Smith     const char  datatype[],
37f262839cSCameron Smith     const char  iotype[] ) {
38064bab1dSCameron Smith   f->ops->readdatablock(f->file, keyphrase, valueArray,
39064bab1dSCameron Smith       nItems, datatype, iotype);
40f262839cSCameron Smith }
4166a3fa2cSCameron Smith void phio_writedatablock(
4266a3fa2cSCameron Smith     const int* fileDescriptor,
4366a3fa2cSCameron Smith     const char keyphrase[],
4466a3fa2cSCameron Smith     const void* valueArray,
4566a3fa2cSCameron Smith     const int* nItems,
4666a3fa2cSCameron Smith     const char datatype[],
4766a3fa2cSCameron Smith     const char iotype[]) {
4866a3fa2cSCameron Smith }
4992bfab9aSCameron Smith void phio_openfile_read(
5082f286aaSCameron Smith     const char filename[],
5192bfab9aSCameron Smith     int* numFiles,
52064bab1dSCameron Smith     phio_fp* fileDescriptor) {
53064bab1dSCameron Smith   std::string fn(filename);
54064bab1dSCameron Smith   std::string syncSuffix("-dat");
55064bab1dSCameron Smith   std::string posixSuffix(".dat");
56064bab1dSCameron Smith   if( fn.find(syncSuffix) != std::string::npos )
57064bab1dSCameron Smith     sync_openfile_read(filename, numFiles, fileDescriptor);
58064bab1dSCameron Smith   else if( fn.find(posixSuffix) != std::string::npos )
59*57517afcSCameron Smith     posix_openfile_read(filename, fileDescriptor);
60064bab1dSCameron Smith   else {
61064bab1dSCameron Smith     fprintf(stderr,
62064bab1dSCameron Smith         "type of file %s is unknown... exiting\n", filename);
63064bab1dSCameron Smith     exit(1);
6492bfab9aSCameron Smith   }
65064bab1dSCameron Smith }
6692bfab9aSCameron Smith void phio_openfile_write(
6792bfab9aSCameron Smith     const char filename[],
6882f286aaSCameron Smith     int* numFiles,
69ade0e30fSCameron Smith     int* numFields,
70ade0e30fSCameron Smith     int* numPPF,
71*57517afcSCameron Smith     phio_fp* fileDescriptor) {
72*57517afcSCameron Smith   std::string fn(filename);
73*57517afcSCameron Smith   std::string syncSuffix("-dat");
74*57517afcSCameron Smith   std::string posixSuffix(".dat");
75*57517afcSCameron Smith   if( fn.find(syncSuffix) != std::string::npos )
76*57517afcSCameron Smith     sync_openfile_write(filename, numFiles, numFields, numPPF, fileDescriptor);
77*57517afcSCameron Smith   else if( fn.find(posixSuffix) != std::string::npos )
78*57517afcSCameron Smith     posix_openfile_write(filename, fileDescriptor);
79*57517afcSCameron Smith   else {
80*57517afcSCameron Smith     fprintf(stderr,
81*57517afcSCameron Smith         "type of file %s is unknown... exiting\n", filename);
82*57517afcSCameron Smith     exit(1);
83*57517afcSCameron Smith   }
8482f286aaSCameron Smith }
8582f286aaSCameron Smith void phio_restartname(int* step, char* filename) {
8682f286aaSCameron Smith }
87064bab1dSCameron Smith void phio_closefile_read(phio_fp f) {
88064bab1dSCameron Smith   f->ops->closefile_read(f);
89a7c8a483SCameron Smith }
90*57517afcSCameron Smith void phio_closefile_write(phio_fp f) {
91*57517afcSCameron Smith   f->ops->closefile_write(f);
92a7c8a483SCameron Smith }
93064bab1dSCameron Smith 
94