From 709c4564c6f8532efcf0020c31aa807377a95bc8 Mon Sep 17 00:00:00 2001 From: arcan1s Date: Wed, 17 Jul 2013 03:58:22 +0400 Subject: [PATCH] Added Makefile Added lib 'int2str.c' Added 'main.c' --- stat_new/Makefile | 20 +++ stat_new/coords | Bin 13554 -> 0 bytes stat_new/coords.c | 36 +---- stat_new/int2str.c | 26 +++ stat_new/main.c | 342 ++++++++++++++++++++++++++++++++++++++++ stat_new/stat | Bin 8005 -> 0 bytes stat_new/stat_print.c | 11 +- stat_new/stat_select.c | 6 - stat_new/stat_sort.c | 6 - stat_new/summary_stat.c | 8 +- 10 files changed, 391 insertions(+), 64 deletions(-) create mode 100644 stat_new/Makefile delete mode 100755 stat_new/coords create mode 100644 stat_new/int2str.c create mode 100644 stat_new/main.c delete mode 100755 stat_new/stat diff --git a/stat_new/Makefile b/stat_new/Makefile new file mode 100644 index 0000000..7eeaca2 --- /dev/null +++ b/stat_new/Makefile @@ -0,0 +1,20 @@ +PROJECT=STATGEN + +CC=gcc +CFLAGS=-c -Wall -fPIC +LDFLAGS=-lm +SOURCES=main.c coords.c int2str.c stat_print.c stat_select.c stat_sort.c summary_stat.c +OBJECTS=$(SOURCES:.c=.o) +EXECUTABLE=statgen + +$(STATGEN): $(SOURCES) $(EXECUTABLE) + +$(EXECUTABLE): $(OBJECTS) + $(CC) $(LDFLAGS) $(OBJECTS) -o $@ + +.c.o: + $(CC) $(CFLAGS) $< -o $@ + +clean: + rm -f *.o + diff --git a/stat_new/coords b/stat_new/coords deleted file mode 100755 index fc2e2bba43ef71d12e3b6e92d67641d7c0f71205..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13554 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 diff --git a/stat_new/coords.c b/stat_new/coords.c index 2639307..8e7a82d 100644 --- a/stat_new/coords.c +++ b/stat_new/coords.c @@ -11,22 +11,6 @@ #include -char conv (int fnumb, int dig_pos) -{ - int d, h, o; - char const digit[] = "0123456789"; - - h = fnumb / 100; - d = (fnumb % 100) / 10; - o = fnumb % 10; - - if (dig_pos == 1) return digit[o]; - if (dig_pos == 2) return digit[d]; - if (dig_pos == 3) return digit[h]; - else return digit[0]; -} - - int reading_coords (char *filename, int type_inter, const int *label_atom, const float *cell, int *num_mol, int *num_atoms, int *true_label_mol, int *label_mol, @@ -44,7 +28,7 @@ int reading_coords (char *filename, int type_inter, const int *label_atom, */ { char file_string[256]; - int atoms, i, j, tr_num_atoms, ref_mol, x, y, z; + int atoms, i, j, tr_num_atoms, ref_mol, x, y; float not_tr_coords[750000], ref[3]; FILE *inp; /* file_string - temp string variable @@ -291,23 +275,5 @@ int reading_coords (char *filename, int type_inter, const int *label_atom, } } - return 0; -} - - -int main (int argc, char *argv[]) -{ -// int i, label_atom[5], label_mol[200000], num_atoms, num_mol, type_atoms[200000]; -// float a[600000], cell[3]; -// -// for (i=0; i<5; i++) -// label_atom[i] = 0; -// label_atom[0] = 1; -// cell[0] = 34.8616; -// cell[1] = 34.7930; -// cell[2] = 34.7925; -// -// reading_coords ("oct.001", 1, label_atom, cell, &num_mol, &num_atoms, label_mol, type_atoms, a); -// return 0; } \ No newline at end of file diff --git a/stat_new/int2str.c b/stat_new/int2str.c new file mode 100644 index 0000000..7e74363 --- /dev/null +++ b/stat_new/int2str.c @@ -0,0 +1,26 @@ +/* Library for converting integer to string + * Usage + * char = conv (number, position) + */ + +#include +#include + + +char conv (int fnumb, int dig_pos) +/* fnumb - integer + * dig_pos - position + */ +{ + int d, h, o; + char const digit[] = "0123456789"; + + h = fnumb / 100; + d = (fnumb % 100) / 10; + o = fnumb % 10; + + if (dig_pos == 1) return digit[o]; + if (dig_pos == 2) return digit[d]; + if (dig_pos == 3) return digit[h]; + else return digit[0]; +} \ No newline at end of file diff --git a/stat_new/main.c b/stat_new/main.c new file mode 100644 index 0000000..9ce5876 --- /dev/null +++ b/stat_new/main.c @@ -0,0 +1,342 @@ +#include +#include +#include +#include + + +int error_checking (const float *cell, int from, const char *input, + int num_of_inter, const char *output, int to, int type_inter) +{ + if ((type_inter == 0) || (type_inter > 4)) + return 11; + if ((cell[0] == 0.0) || (cell[1] == 0.0) || (cell[2] == 0.0)) + return 12; + if ((to == -1) || (from == -1)) + return 13; + if (num_of_inter == 0) + return 14; + if (input[0] == '#') + return 15; + if (output[0] == '#') + return 16; + + return 0; +} + + +int printing_head (const char *output, int log, int quiet, const char *input, + int from, int to, const float *cell, int type_inter, + const int *label_atom, int num_of_inter, const float *crit) +{ + int i; + FILE *f_out; + + f_out = fopen (output, "w"); + fprintf (f_out, "statgen ::: V.1.0.0 ::: 2013-07-17\n\n"); + fprintf (f_out, "CONFIGURATION\n"); + + fprintf (f_out, "LOG=%i\nQUIET=%i\n", log, quiet); + fprintf (f_out, "MASK=%s\nFIRST=%i\nLAST=%i\n", input, from, to); + fprintf (f_out, "CELL=%.4f,%.4f,%.4f\n", cell[0], cell[1], cell[2]); + fprintf (f_out, "ATOMS=%i", label_atom[0]); + for (i=1; i 0) + { + crit = (float *) malloc ( 16 * num_of_inter * sizeof (float)); + for (i=0; i<16*num_of_inter; i++) + crit[i] = 0.0; + num_of_inter = 0; + } + +// reading arguments + for (i=1; i to) + { + to += from; + from = to - from; + to -= from; + } + step = to - from + 1; + i++; + } + else if ((argv[i][0] == '-') && (argv[i][1] == 'c')) +// cell size + { + sscanf (argv[i+1], "%f,%f,%f", &cell[0], &cell[1], &cell[2]); + i++; + } + else if ((argv[i][0] == '-') && (argv[i][1] == 'a')) +// atom types + { + type_inter = 1; + for (j=0; j 1) + { + printf ("Something wrong (error code: %i)!\nSee 'statgen -h' for more details\n", error); + return 1; + } + +// processing +// initial variables + k = strlen (input); + strcpy (filename, input); + filename[k] = '.'; + filename[k+1] = conv (from, 3); + filename[k+2] = conv (from, 2); + filename[k+3] = conv (from, 1); + filename[k+4] = '\0'; + f_inp = fopen (filename, "r"); + if (f_inp == NULL) + return 1; + fscanf (f_inp, "%i", &num_atoms); + fclose (f_inp); + coords = (float *) malloc (3 * num_atoms * sizeof (float)); + label_mol = (int *) malloc (num_atoms * sizeof (int)); + true_label_mol = (int *) malloc (num_atoms * sizeof (int)); + type_atoms = (int *) malloc (num_atoms * sizeof (int)); + +// head + printing_head (output, log, quiet, input, from, to, cell, type_inter, label_atom, + num_of_inter, crit); + +// main cycle + for (i=from; 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 R5_0Ti7MEluGl1iQ0RZdlluiHu diff --git a/stat_new/stat_print.c b/stat_new/stat_print.c index 9a32d37..ac0054c 100644 --- a/stat_new/stat_print.c +++ b/stat_new/stat_print.c @@ -33,13 +33,10 @@ int printing_agl (char *input, char *output, const int *connect, int num_mol, * f_out - output file */ - type_agl[0] = 0; - type_agl[1] = 0; - f_out = fopen (output, "a"); // head - fprintf (f_out, "FILE=%s\nSTATISTIC:\n| n | N |\n-----------------", input); + fprintf (f_out, "FILE=%s\nSTATISTIC:\n| n | N |\n-----------------\n", input); for (i=0; i