/
delete_unwanted.c
102 lines (85 loc) · 2.56 KB
/
delete_unwanted.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#include <stdio.h>
#include <string.h>
char name[120];
char foldername[120];
char path[120];
char folder[120];
char fullname_iter[120];
#define MAKE_FILENAME(full, file) \
{strcpy (full, foldername); \
strcat (full,file);}
#define TWRITE 50000
int main (int argc, char **argv){
double total_N;
int iteration_num;
FILE *iterkeeper, *source, *target;
char ch;
int argz = 1;
/* check for path */
if (strcmp(argv[argz], "-path") == 0) {
if (strcmp(argv[++argz], "isilon") == 0) {
strcpy(path,"/data/isilon/tretyakov/mf_lb/");
} else if (strcmp(argv[argz], "rocks") == 0) {
strcpy(path,"/home/tretyakov/mf_freen/");
} else if (strcmp(argv[argz], "mbpr") == 0) {
strcpy(path,"/Users/niktre/simulation/60_mf_lb_sh/");
} else {
printf ("Error! Unknown system specification!\n");
}
++argz;
} else {
printf ("Error! No path is given!\n");
}
/* check for folder */
if (strcmp(argv[argz], "-folder") == 0) {
strcpy(folder,argv[++argz]);
++argz;
} else {
printf ("Error! No folder is given!\n");
}
strcpy (foldername, path);
strcat (foldername, folder);
// read iteration number and total number of particles for restart
MAKE_FILENAME(fullname_iter,"iteration.dat");
iterkeeper = fopen(fullname_iter,"r");
fscanf(iterkeeper,"%d %lf\n",&iteration_num, &total_N);
fclose(iterkeeper);
char source_file[120], target_file[120];
/* copy the newest snapshot and Wfields file */
sprintf(name,"Wfields_%d.dat",iteration_num);
MAKE_FILENAME(source_file,name);
sprintf(name,"Wfields_final.dat");
MAKE_FILENAME(target_file,name);
source = fopen(source_file, "r");
target = fopen(target_file, "w");
while( ( ch = fgetc(source) ) != EOF )
fputc(ch, target);
fclose(source);
fclose(target);
sprintf(name,"snapshot_%d.dat",iteration_num);
MAKE_FILENAME(source_file,name);
sprintf(name,"snapshot_final.dat");
MAKE_FILENAME(target_file,name);
source = fopen(source_file, "r");
target = fopen(target_file, "w");
while( ( ch = fgetc(source) ) != EOF )
fputc(ch, target);
fclose(source);
fclose(target);
/* remove old snapshots and Wfields */
int remove_status, fileNumToDelete;
char fileToDel[120];
fileNumToDelete = iteration_num - 2 * TWRITE;
while (fileNumToDelete > 0) {
// make filename to delete the file
sprintf(name,"Wfields_%d.dat",fileNumToDelete);
MAKE_FILENAME(fileToDel,name);
remove_status = remove(fileToDel);
sprintf(name,"snapshot_%d.dat",fileNumToDelete);
MAKE_FILENAME(fileToDel,name);
remove_status = remove(fileToDel);
// reduce file_number
fileNumToDelete -= TWRITE;
}
return 0;
}