From 30630ca54106321b6eec2810e7b50538b0dc8c24 Mon Sep 17 00:00:00 2001 From: arcan1s Date: Tue, 28 Jan 2014 04:44:30 +0400 Subject: [PATCH] fixed envir and radf --- mathmech/agl/src/add_main.c | 1 + mathmech/envir/src/add_main.c | 60 ++-------- mathmech/envir/src/add_main.h | 65 ++++++++++- mathmech/envir/src/main.c | 68 +++++------ mathmech/mm/include/mathmech/var_types.h | 8 +- mathmech/mm/src/radf_proc.c | 6 +- mathmech/radf/src/add_main.c | 142 +++++------------------ mathmech/radf/src/add_main.h | 98 ++++++++++++++-- mathmech/radf/src/main.c | 132 +++++++++------------ 9 files changed, 280 insertions(+), 300 deletions(-) diff --git a/mathmech/agl/src/add_main.c b/mathmech/agl/src/add_main.c index 253f4b3..277668e 100644 --- a/mathmech/agl/src/add_main.c +++ b/mathmech/agl/src/add_main.c @@ -4,6 +4,7 @@ #include +#include "add_main.h" #include #include diff --git a/mathmech/envir/src/add_main.c b/mathmech/envir/src/add_main.c index 2034b81..d375788 100644 --- a/mathmech/envir/src/add_main.c +++ b/mathmech/envir/src/add_main.c @@ -4,30 +4,18 @@ #include +#include "add_main.h" #include +#include /** * @fn error_checking */ -int error_checking (const float *cell, const char *input, const char *output) -/** - * @brief function that checks errors in input variables - * @code - * error_checking (cell, input, output); - * @endcode - * - * @param cell massive of cell size - * @param input input file name - * @param output output file name - * - * @return 11 - error in 'cell' - * @return 12 - error in 'input' - * @return 13 - error in 'output' - * @return 0 - exit without errors - */ +int error_checking (const system_info _system_info, const char *input, + const char *output) { - if ((cell[0] == 0.0) || (cell[1] == 0.0) || (cell[2] == 0.0)) + if ((_system_info.cell[0] == 0.0) || (_system_info.cell[1] == 0.0) || (_system_info.cell[2] == 0.0)) return 11; if (input[0] == '#') return 12; @@ -43,21 +31,6 @@ int error_checking (const float *cell, const char *input, const char *output) */ int print_message (const int quiet, FILE *std_output, const int log, FILE *f_log, const int mode, const char *str) -/** - * @brief function that prints message in log and stdout - * @code - * print_message (quiet, stdout, log, f_log, 0, str); - * @endcode - * - * @param quiet status of quiet-mode - * @param std_output stdout - * @param log status of log-mode - * @param f_log log file - * @param mode number of message in "messages.c" - * @param str additional text in message - * - * @return 0 - exit without errors - */ { if ((quiet != 1) && (std_output != stderr)) message (0, mode, str, std_output); @@ -71,30 +44,13 @@ int print_message (const int quiet, FILE *std_output, const int log, FILE *f_log /** * @fn set_defaults */ -int set_defaults (float *cell, char *input, int *log, int *num_of_mol, char *output, - int *quiet, float *rad) -/** - * @brief function that sets default values of variables - * @code - * set_defaults (cell, &from, input, &log, &max_depth, &num_of_inter, output, &to, - * &type_inter, &quiet); - * @endcode - * - * @param cell massive of cell size - * @param input mask of trajectory files - * @param log status of log-mode - * @param num_of_mol number of molecule - * @param output output file name - * @param quiet status of quiet-mode - * @param rad radius of environment sphere - * - * @return 0 - exit without errors - */ +int set_defaults (system_info *_system_info, char *input, int *log, int *num_of_mol, + char *output, int *quiet, float *rad) { int i; for (i=0; i<3; i++) - cell[i] = 0.0; + (*_system_info).cell[i] = 0.0; input[0] = '#'; *log = 0; *num_of_mol = 1; diff --git a/mathmech/envir/src/add_main.h b/mathmech/envir/src/add_main.h index 785a7b3..ca94408 100644 --- a/mathmech/envir/src/add_main.h +++ b/mathmech/envir/src/add_main.h @@ -5,18 +5,75 @@ #ifndef ADD_MAIN_H #define ADD_MAIN_H +#include + + /** * @fn error_checking */ +int error_checking (const system_info _system_info, const char *input, + const char *output); +/** + * @brief function that checks errors in input variables + * @code + * error_checking (_system_info, input, output); + * @endcode + * + * @param _system_info system information structure + * @param input input file name + * @param output output file name + * + * @return 11 - error in 'cell' + * @return 12 - error in 'input' + * @return 13 - error in 'output' + * @return 0 - exit without errors + */ + + /** * @fn print_message */ +int print_message (const int quiet, FILE *std_output, const int log, FILE *f_log, + const int mode, const char *str); +/** + * @brief function that prints message in log and stdout + * @code + * print_message (quiet, stdout, log, f_log, 0, str); + * @endcode + * + * @param quiet status of quiet-mode + * @param std_output stdout + * @param log status of log-mode + * @param f_log log file + * @param mode number of message in "messages.c" + * @param str additional text in message + * + * @return 0 - exit without errors + */ + + /** * @fn set_defaults */ +int set_defaults (system_info *_system_info, char *input, int *log, int *num_of_mol, + char *output, int *quiet, float *rad); +/** + * @brief function that sets default values of variables + * @code + * set_defaults (&_system_info, &from, input, &log, &max_depth, &num_of_inter, output, &to, + * &type_inter, &quiet); + * @endcode + * + * @param _system_info system information structure + * @param input mask of trajectory files + * @param log status of log-mode + * @param num_of_mol number of molecule + * @param output output file name + * @param quiet status of quiet-mode + * @param rad radius of environment sphere + * + * @return 0 - exit without errors + */ -int error_checking (const float *, const char *, const char *); -int print_message (const int, FILE *, const int, FILE *, const int, const char *); -int set_defaults (float *, char *, int *, int *, char *, int *, float *); -#endif /* ADD_MAIN_H */ \ No newline at end of file +#endif /* ADD_MAIN_H */ diff --git a/mathmech/envir/src/main.c b/mathmech/envir/src/main.c index abca909..4ad4095 100644 --- a/mathmech/envir/src/main.c +++ b/mathmech/envir/src/main.c @@ -14,6 +14,7 @@ #include #include #include +#include /** @@ -32,33 +33,31 @@ int main(int argc, char *argv[]) int error, i, *tmp_int; FILE *f_inp, *f_log; - char *ch_type_atoms, input[256], logfile[256], output[256]; - float cell[3], *centr_coords, *coords, rad; - int *label_mol, log, num_atoms, num_mol, num_needed_mol, num_of_mol, - *needed_mol, quiet, *true_label_mol; + char input[256], logfile[256], output[256]; + float *centr_coords, rad; + int log, num_needed_mol, num_of_mol, *needed_mol, quiet, *true_label_mol; + atom_info *_atom_info; + system_info _system_info; -/* ch_type_atoms massive of char atom types - * input input file name +/* input input file name * logfile log file name * output output file name * - * cell massive of cell size * centr_coords massive of centered coordinates - * coords massive of coordinates * rad radius of environment sphere * - * label_mol massive of numbers of molecule for atoms * log status of log-mode - * num_atoms number of atoms - * num_mol number of molecules * num_needed_mol number of needed molecules * num_of_mol number of molecule * needed_mol massive of number of needed molecules * quiet status of quiet-mode * true_label_mol massive of true numbers of molecule for atoms + * + * _atom_info atom information file + * _system_info system information file */ - set_defaults (cell, input, &log, &num_of_mol, output, &quiet, &rad); + set_defaults (&_system_info, input, &log, &num_of_mol, output, &quiet, &rad); for (i=1; i +#include "add_main.h" #include #include +#include /** * @fn error_checking */ -int error_checking (const float *cell, const int from, const char *input, - const int num_needed_at, const int *needed_at, - const char *output, const int to) -/** - * @brief function that checks errors in input variables - * @code - * error_checking (cell, from, input, num_needed_at, needed_at, output, to); - * @endcode - * - * @param cell massive of cell size - * @param from first trajectory step - * @param input input file name - * @param num_needed_at number of needed atom types - * @param needed_at massive of number of needed atom types - * @param output output file name - * @param to last trajectory step - * - * @return 11 - error in 'cell' - * @return 12 - error in 'input' - * @return 13 - error in 'output' - * @return 14 - error in 'from' or 'to' - * @return 15 - error in 'num_needed_at' - * @return 16 - error in 'needed_at' - * @return 0 - exit without errors - */ +int error_checking (const char *input, const int num_needed_at, const int *needed_at, + const char *output, const system_info _system_info) { - if ((cell[0] == 0.0) || (cell[1] == 0.0) || (cell[2] == 0.0)) + if ((_system_info.cell[0] == 0.0) || (_system_info.cell[1] == 0.0) || (_system_info.cell[2] == 0.0)) return 11; if (input[0] == '#') return 12; if (output[0] == '#') return 13; - if ((from == -1) || (to == -1)) + if ((_system_info.from == -1) || (_system_info.to == -1)) return 14; if ((num_needed_at != 2) && (num_needed_at != 6)) return 15; @@ -65,21 +44,6 @@ int error_checking (const float *cell, const int from, const char *input, */ int print_message (const int quiet, FILE *std_output, const int log, FILE *f_log, const int mode, const char *str) -/** - * @brief function that prints message in log and stdout - * @code - * print_message (quiet, stdout, log, f_log, 0, str); - * @endcode - * - * @param quiet status of quiet-mode - * @param std_output stdout - * @param log status of log-mode - * @param f_log log file - * @param mode number of message in "messages.c" - * @param str additional text in message - * - * @return 0 - exit without errors - */ { if ((quiet != 1) && (std_output != stderr)) message (0, mode, str, std_output); @@ -94,36 +58,8 @@ int print_message (const int quiet, FILE *std_output, const int log, FILE *f_log * @fn printing_head */ int printing_head (const char *output, const int log, const int quiet, const int matrix, - const char *input, const int from, const int to, const float *cell, - const int mode, const double r_min, const double r_max, - const double r_step, const double ang_min, const double ang_max, - const double ang_step, const int *needed_at) -/** - * @brief function that prints header in output file - * @code - * printing_head (output, log, quiet, matrix, input, from, to, cell, mode, r_min, - * r_max, r_step, ang_min, ang_max, ang_step, needed_at); - * @endcode - * - * @param output output file nams - * @param log status of log-mode - * @param quiet status of quiet-mode - * @param matrix status of matrix-mode - * @param input mask of trajectory files - * @param from first trajectory step - * @param to last trajectory step - * @param cell massive of cell size - * @param mode 0 - if RDF, 1 - if RDF for center mass, 2 - if RADF - * @param r_max maximal radius - * @param r_min minimal radius - * @param r_step radius step - * @param ang_max maximal angle for RADF - * @param ang_min minimal angle for RADF - * @param ang_step anlge step for RADF - * @param needed_at massive of number of needed atom types - * - * @return 0 - exit without errors - */ + const char *input, const system_info _system_info, const int mode, + const radf_info _radf_info, const int *needed_at) { FILE *f_out; @@ -132,10 +68,13 @@ int printing_head (const char *output, const int log, const int quiet, const int fprintf (f_out, "CONFIGURATION\n"); fprintf (f_out, "LOG=%i\nQUIET=%i\nMATRIX=%i\n", log, quiet, matrix); - 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, "MASK=%s\nFIRST=%i\nLAST=%i\n", input, _system_info.from, + _system_info.to); + fprintf (f_out, "CELL=%.4f,%.4f,%.4f\n", _system_info.cell[0], _system_info.cell[1], + _system_info.cell[2]); fprintf (f_out, "MODE=%i\n", mode); - fprintf (f_out, "R_MIN=%.3f\nR_MAX=%.3f\nR_STEP=%.3f\n", r_min, r_max, r_step); + fprintf (f_out, "R_MIN=%.3f\nR_MAX=%.3f\nR_STEP=%.3f\n", _radf_info.r_min, + _radf_info.r_max, _radf_info.r_step); switch (mode) { case 0: @@ -143,12 +82,12 @@ int printing_head (const char *output, const int log, const int quiet, const int break; case 1: fprintf (f_out, "ATOM=%i,%i,%i-%i,%i,%i\n", needed_at[0], needed_at[1], -needed_at[2], needed_at[3], needed_at[4], needed_at[5]); + needed_at[2], needed_at[3], needed_at[4], needed_at[5]); break; case 2: fprintf (f_out, "ANG_MIN=%.2f\nANG_MAX=%.2f\nANG_STEP=%.2f\n\ -ATOM=%i,%i,%i-%i,%i,%i\n",ang_min, ang_max, ang_step, needed_at[0], needed_at[1], -needed_at[2], needed_at[3], needed_at[4], needed_at[5]); +ATOM=%i,%i,%i-%i,%i,%i\n", _radf_info.ang_min, _radf_info.ang_max, _radf_info.ang_step, +needed_at[0], needed_at[1], needed_at[2], needed_at[3], needed_at[4], needed_at[5]); break; } @@ -162,50 +101,25 @@ needed_at[2], needed_at[3], needed_at[4], needed_at[5]); /** * @fn set_defaults */ -int set_defaults (float *ang_max, float *ang_min, float *ang_step, float *cell, - int *from, char *input, int *log, int *matrix, float *r_max, - float *r_min, float *r_step, char *output, int *to, int *quiet) -/** - * @brief function that sets default values of variables - * @code - * set_defaults (&ang_max, &ang_min, &ang_step, cell, &from, input, &log, &r_max, - * &r_min, &r_step, output, &to, &quiet); - * @endcode - * - * @param ang_max maximal angle for RADF - * @param ang_min minimal angle for RADF - * @param ang_step angle step - * @param cell massive of cell size - * @param from first trajectory step - * @param input mask of trajectory files - * @param log status of log-mode - * @param matrix status of matrix-mode - * @param r_max maximal radius - * @param r_min minimal radius - * @param r_step radius step - * @param output output file name - * @param to last trajectory step - * @param quiet status of quiet-mode - * - * @return 0 - exit without errors - */ +int set_defaults (system_info *_system_info, radf_info *_radf_info, char *input, + int *log, int *matrix, char *output, int *quiet) { int i; - *ang_max = 90.0; - *ang_min = 0.0; - *ang_step = 0.0; + (*_radf_info).ang_max = 90.0; + (*_radf_info).ang_min = 0.0; + (*_radf_info).ang_step = 0.0; for (i=0; i<3; i++) - cell[i] = 0.0; - *from = -1; + (*_system_info).cell[i] = 0.0; + (*_system_info).from = -1; input[0] = '#'; *log = 0; *matrix = 0; - *r_max = 15.0; - *r_min = 2.0; - *r_step = 0.2; + (*_radf_info).r_max = 15.0; + (*_radf_info).r_min = 2.0; + (*_radf_info).r_step = 0.2; output[0] = '#'; - *to = -1; + (*_system_info).to = -1; *quiet = 0; return 0; diff --git a/mathmech/radf/src/add_main.h b/mathmech/radf/src/add_main.h index d604cda..3077d1b 100644 --- a/mathmech/radf/src/add_main.h +++ b/mathmech/radf/src/add_main.h @@ -5,27 +5,105 @@ #ifndef ADD_MAIN_H #define ADD_MAIN_H +#include + + /** * @fn error_checking */ +int error_checking (const char *input, const int num_needed_at, const int *needed_at, + const char *output, const system_info _system_info); +/** + * @brief function that checks errors in input variables + * @code + * error_checking (input, num_needed_at, needed_at, output, _system_info); + * @endcode + * + * @param input input file name + * @param num_needed_at number of needed atom types + * @param needed_at massive of number of needed atom types + * @param output output file name + * @param _system_info system information structure + * + * @return 11 - error in 'cell' + * @return 12 - error in 'input' + * @return 13 - error in 'output' + * @return 14 - error in 'from' or 'to' + * @return 15 - error in 'num_needed_at' + * @return 16 - error in 'needed_at' + * @return 0 - exit without errors + */ + + /** * @fn print_message */ +int print_message (const int quiet, FILE *std_output, const int log, FILE *f_log, + const int mode, const char *str); +/** + * @brief function that prints message in log and stdout + * @code + * print_message (quiet, stdout, log, f_log, 0, str); + * @endcode + * + * @param quiet status of quiet-mode + * @param std_output stdout + * @param log status of log-mode + * @param f_log log file + * @param mode number of message in "messages.c" + * @param str additional text in message + * + * @return 0 - exit without errors + */ + + /** * @fn printing_head */ +int printing_head (const char *output, const int log, const int quiet, const int matrix, + const char *input, const system_info _system_info, const int mode, + const radf_info _radf_info, const int *needed_at); +/** + * @brief function that prints header in output file + * @code + * printing_head (output, log, quiet, matrix, input, _system_info, mode, _radf_info, + * needed_at); + * @endcode + * + * @param output output file nams + * @param log status of log-mode + * @param quiet status of quiet-mode + * @param matrix status of matrix-mode + * @param input mask of trajectory files + * @param _system_info system information structure + * @param mode 0 - if RDF, 1 - if RDF for center mass, 2 - if RADF + * @param _radf_info radf information structure + * @param needed_at massive of number of needed atom types + * + * @return 0 - exit without errors + */ + + /** * @fn set_defaults */ +int set_defaults (system_info *_system_info, radf_info *_radf_info, char *input, + int *log, int *matrix, char *output, int *quiet); +/** + * @brief function that sets default values of variables + * @code + * set_defaults (&_system_info, &_radf_info, input, &log, &matrix, output, &quiet); + * @endcode + * + * @param _system_info system information structure + * @param _radf_info radf information structure + * @param input mask of trajectory files + * @param log status of log-mode + * @param output output file name + * @param quiet status of quiet-mode + * + * @return 0 - exit without errors + */ -int error_checking (const float *, const int, const char *, const int, const int *, - const char *, const int); -int print_message (const int, FILE *, const int, FILE *, const int, const char *); -int printing_head (const char *, const int, const int, const int, const char *, - const int, const int, const float *, const int, const double, - const double, const double, const double, const double, const double, - const int *); -int set_defaults (float *, float *, float *, float *, int *, char *, int *, int *, - float *, float *, float *, char *, int *, int *); -#endif /* ADD_MAIN_H */ \ No newline at end of file +#endif /* ADD_MAIN_H */ diff --git a/mathmech/radf/src/main.c b/mathmech/radf/src/main.c index 313a350..1cf96f3 100644 --- a/mathmech/radf/src/main.c +++ b/mathmech/radf/src/main.c @@ -13,6 +13,7 @@ #include #include #include +#include /** @@ -32,42 +33,30 @@ int main(int argc, char *argv[]) FILE *f_inp, *f_log; char input[256], logfile[256], output[256]; - float ang_max, ang_min, ang_step, cell[3], *coords, r_max, r_min, r_step; - int from, *label_mol, log, matrix, mode, num_atoms, num_mol, num_needed_at, - needed_at[6], quiet, *radf, step, to, *true_label_mol, *type_atoms; + int log, matrix, mode, num_needed_at, needed_at[6], quiet, *radf, *true_label_mol; + atom_info *_atom_info; + radf_info _radf_info; + system_info _system_info; /* input input file name * logfile log file name * output output file name * - * ang_max maximal angle for RADF - * ang_min minimal angle for RADF - * ang_step anlge step for RADF - * cell massive of cell size - * coords massive of coordinates - * r_max maximal radius - * r_min minimal radius - * r_step radius step - * - * from first trajectory step - * label_mol massive of numbers of molecule for atoms * log status of log-mode * matrix status of matrix-mode * mode 0 - if RDF, 1 - if RDF for center mass, 2 - if RADF - * num_atoms number of atoms - * num_mol number of molecules * num_needed_at number of needed atom types * needed_at massive of number of needed atom types * quiet status of quiet-mode * radf not normed RADF - * step $(to - from + 1) - * to last trajectory step * true_label_mol massive of true numbers of molecule for atoms - * type_atoms massive of atom types + * + * _atom_info atom information structure + * _radf_info radf information structure + * _system_info system information structure */ - set_defaults (&ang_max, &ang_min, &ang_step, cell, &from, input, &log, &matrix, - &r_max, &r_min, &r_step, output, &to, &quiet); + set_defaults (&_system_info, &_radf_info, input, &log, &matrix, output, &quiet); for (i=1; i to) + sscanf (argv[i+1], "%i,%i", &_system_info.from, &_system_info.to); + if (_system_info.from > _system_info.to) { - to += from; - from = to - from; - to -= from; + _system_info.to += _system_info.from; + _system_info.from = _system_info.to - _system_info.from; + _system_info.to -= _system_info.from; } - step = to - from + 1; i++; } else if ((argv[i][0] == '-') && (argv[i][1] == 'c') && (argv[i][2] == '\0')) // cell size { - sscanf (argv[i+1], "%f,%f,%f", &cell[0], &cell[1], &cell[2]); + sscanf (argv[i+1], "%f,%f,%f", &_system_info.cell[0], &_system_info.cell[1], &_system_info.cell[2]); i++; } else if ((argv[i][0] == '-') && (argv[i][1] == 'a') && (argv[i][2] == 't') && (argv[i][3] == '\0')) @@ -149,37 +137,37 @@ int main(int argc, char *argv[]) else if ((argv[i][0] == '-') && (argv[i][1] == 'r') && (argv[i][2] == '\0')) // radii { - sscanf (argv[i+1], "%f,%f", &r_min, &r_max); - if (r_min > r_max) + sscanf (argv[i+1], "%f,%f", &_radf_info.r_min, &_radf_info.r_max); + if (_radf_info.r_min > _radf_info.r_max) { - r_min += r_max; - r_max = r_min - r_max; - r_min -= r_max; + _radf_info.r_min += _radf_info.r_max; + _radf_info.r_max = _radf_info.r_min - _radf_info.r_max; + _radf_info.r_min -= _radf_info.r_max; } i++; } else if ((argv[i][0] == '-') && (argv[i][1] == 'r') && (argv[i][2] == 's') && (argv[i][3] == '\0')) // radius step { - sscanf (argv[i+1], "%f", &r_step); + sscanf (argv[i+1], "%f", &_radf_info.r_step); i++; } else if ((argv[i][0] == '-') && (argv[i][1] == 'a') && (argv[i][2] == '\0')) // angles { - sscanf (argv[i+1], "%f,%f", &ang_min, &ang_max); - if (ang_min > ang_max) + sscanf (argv[i+1], "%f,%f", &_radf_info.ang_min, &_radf_info.ang_max); + if (_radf_info.ang_min > _radf_info.ang_max) { - ang_min += ang_max; - ang_max = ang_min - ang_max; - ang_min -= ang_max; + _radf_info.ang_min += _radf_info.ang_max; + _radf_info.ang_max = _radf_info.ang_min - _radf_info.ang_max; + _radf_info.ang_min -= _radf_info.ang_max; } i++; } else if ((argv[i][0] == '-') && (argv[i][1] == 'a') && (argv[i][2] == 's') && (argv[i][3] == '\0')) // angle step { - sscanf (argv[i+1], "%f", &ang_step); + sscanf (argv[i+1], "%f", &_radf_info.ang_step); i++; } else if ((argv[i][0] == '-') && (argv[i][1] == 'm') && (argv[i][2] == '\0')) @@ -213,7 +201,7 @@ int main(int argc, char *argv[]) print_message (quiet, stdout, log, f_log, 1, argv[0]); // error check - error = error_checking (cell, from, input, num_needed_at, needed_at, output, to); + error = error_checking (input, num_needed_at, needed_at, output, _system_info); if (error != 0) { print_message (quiet, stderr, log, f_log, 17, argv[0]); @@ -225,14 +213,14 @@ int main(int argc, char *argv[]) // processing // initial variables // set mode - if ((num_needed_at == 6) && (ang_step != 0.0)) + if ((num_needed_at == 6) && (_radf_info.ang_step != 0.0)) mode = 2; else if (num_needed_at == 6) mode = 1; else if (num_needed_at == 2) mode = 0; - sprintf (filename, "%s.%03i", input, from); + sprintf (filename, "%s.%03i", input, _system_info.from); print_message (quiet, stdout, log, f_log, 3, filename); f_inp = fopen (filename, "r"); if (f_inp == NULL) @@ -240,29 +228,25 @@ int main(int argc, char *argv[]) print_message (quiet, stderr, log, f_log, 18, filename); return 2; } - fscanf (f_inp, "%i", &num_atoms); + fscanf (f_inp, "%i", &_system_info.num_atoms); fclose (f_inp); - coords = (float *) malloc (2 * 3 * 8 * num_atoms * sizeof (float)); - label_mol = (int *) malloc (2 * 8 * num_atoms * sizeof (int)); + _atom_info = (atom_info *) malloc (8 * _system_info.num_atoms * sizeof (atom_info)); if (mode == 2) { - i = (r_max - r_min) / r_step; - j = (ang_max - ang_min) / ang_step; + i = (_radf_info.r_max - _radf_info.r_min) / _radf_info.r_step; + j = (_radf_info.ang_max - _radf_info.ang_min) / _radf_info.ang_step; i *= j; } else - i = (r_max - r_min) / r_step; + i = (_radf_info.r_max - _radf_info.r_min) / _radf_info.r_step; radf = (int *) malloc (i * sizeof (int)); for (j=0; j