diff --git a/src/libAtoms/cutil.c b/src/libAtoms/cutil.c index 3098721f2..674323af2 100644 --- a/src/libAtoms/cutil.c +++ b/src/libAtoms/cutil.c @@ -202,13 +202,28 @@ void fwrite_array_d_(int *size, double *v, char *filename) { fclose(fp); } +void fwrite_array_d_bin_(int *size, double *v, char *filename) { + FILE *fp; + int i; + fp = fopen(filename, "w"); + fwrite(v, *size, sizeof(double), fp); + fclose(fp); +} + void fread_array_d_(int *size, double *v, char *filename) { FILE *fp; int i; fp = fopen(filename, "r"); for (i=0; i < *size; i++) { - fscanf(fp, "%lf", v+i); + int n_read = fscanf(fp, "%lf", v+i); + if (i == 0 && n_read <= 0) { + // try binary + fclose(fp); + fp = fopen(filename, "r"); + fread(v, *size, sizeof(double), fp); + break; + } } fclose(fp); } diff --git a/src/libAtoms/xyz.c b/src/libAtoms/xyz.c index 49234e753..a8e6861bb 100644 --- a/src/libAtoms/xyz.c +++ b/src/libAtoms/xyz.c @@ -49,7 +49,7 @@ #include "libatoms.h" -#define LINESIZE 2048 +#define LINESIZE 20480 #define MAX_ENTRY_COUNT 200 #define MAX_FIELD_COUNT 200 #define PROPERTY_STRING_LENGTH 10