xref: /phasta/M2NFixBnd/src/setsyncioparam.cc (revision 595995161822a203c8467e0e4a253d7bd7d6df32)
1 #include <fstream>
2 #include <stdio.h>
3 #include <stdlib.h>
4 #include <vector>
5 #include <string.h>
6 #include <cstring>
7 #include <sys/types.h>
8 #include <dirent.h> // For opendir(),readdir(),...
9 #include <mpi.h>
10 #include "phastaIO.h"
11 
12 #include "commonM2NFixBnd_c.h"
13 #include "setsyncioparamM2NFixBnd.h"
14 
15 
16 using namespace std; //useful for ifstream. Other solution is std::ifstream
17 
18 // extern void queryphmpiio_(const char[], int*, int*);
19 // void queryphmpiio_(const char filename[],int *nfields, int *nppf)
20 
setIOparam()21 void setIOparam()
22 {
23   int count;
24   int nfields;
25   int nppf;
26   int stepno;
27   int part;
28   char fname[255];
29   DIR *d;
30   struct dirent *filename;
31 
32 
33 //Number of geombc files
34   if(workfc.myrank == 0){
35     if( (d = opendir(".")) != NULL) {
36       count=0;
37       while(filename=readdir(d)) {
38         //printf("%s\n", filename->d_name);
39         if(strncmp(filename->d_name,"geombcRed-dat",13)==0) {
40           count=count+1;
41         }
42       }
43       closedir(d);
44     }
45     else {
46       printf("ERROR when counting geombcRed-dat\n");
47     }
48   }
49 
50   MPI_Bcast( &count, 1, MPI_INT, 0, MPI_COMM_WORLD );
51   //printf("Here we gogo: %d %d\n",workfc.myrank,count);
52 
53   outpar.nsynciofiles = count;
54   if(workfc.myrank == 0) {
55     printf("Number of geombcRed-dat and restartRed-dat files to read: %d\n", count);
56   }
57 
58 }
59 
detectd2wallfiles(int * numd2wallfiles)60 void detectd2wallfiles(int* numd2wallfiles)
61 {
62   int count;
63   int nfields;
64   int nppf;
65   int stepno;
66   int part;
67   char fname[255];
68   DIR *d;
69   struct dirent *filename;
70 
71 //Number of d2wall files
72   if(workfc.myrank == 0){
73     if( (d = opendir(".")) != NULL) {
74       count=0;
75       while(filename=readdir(d)) {
76         //printf("%s\n", filename->d_name);
77         if(strncmp(filename->d_name,"d2wall",6)==0) {
78           count=count+1;
79         }
80       }
81       closedir(d);
82     }
83   }
84 
85   MPI_Bcast( &count, 1, MPI_INT, 0, MPI_COMM_WORLD );
86   //printf("Here we gogo: %d %d\n",workfc.myrank,count);
87 
88   *numd2wallfiles = count;
89   if(workfc.myrank == 0) {
90     printf("Number of d2wall files present in the proc_case directory: %d\n", count);
91   }
92 
93 }
94 
95 
96 // void countfieldstowriterestart() //See new_interface.c
97