// ERRMSG.C // Miscellaneous error messages // © 2021 Peter J. Meyer #include "iss.h" // Error codes from ARRAYS.H #define NO_ERROR 0 #define ZERO_ARRAY_SIZE -5 #define ZERO_ELEMENT_SIZE -6 #define INVALID_DIMENSIONALITY -11 #define NULL_POINTER -14 #define INSUFFICIENT_MEMORY -15 #define REQUEST_EXCEEDS_60MB -16 #define SIZE_NOT_MULT_4 -29 static char *array_name[] = { "sites", "bonds", "v_bonds", "initial_sites", "cluster_numbers", "spin_distances", "precomp_nn_sites" }; void query_re_display_input_data_format(void); /*--------------------------------------*/ void missing_code(char *file, int linenum) { printf("\nCode for %dd case missing in file %s at line %d.\n", dimensionality,file,linenum); exit(1); } /*--------------------------------------------*/ void display_file_error_message(char *operation, char *file_type, char *filename) { printf("\nCannot %s %s file %s.\n",operation,file_type,filename); exit(1); } /*------------------------------------------*/ void display_input_data_error(char *parameter) { printf("\nError in specification of %s in input file %s.\n",parameter,input_filepath); query_re_display_input_data_format(); } /*----------------------------------------------*/ void display_missing_data_message(char *parameter) { printf("\nIn input data file %s, %s is not specified.\n",input_filepath,parameter); query_re_display_input_data_format(); } /*-----------------------------------------*/ void query_re_display_input_data_format(void) { int ch; printf("\nPress spacebar for input data format, Escape to quit. "); ch = getch(); printf("\n"); if ( ch == SPACE ) display_input_data_format(); // Does not return; exit(1); } /*------------------------------------------*/ void display_array_allocation_error(int errno, int err_flag) { printf("\nError %d when allocating %dd array %s%d (size = %d).", err_flag,dimensionality,array_name[errno],dimensionality,size); switch ( err_flag ) { case ZERO_ARRAY_SIZE: printf("\nZero array size.\n"); break; case ZERO_ELEMENT_SIZE: printf("\nZero element size.\n"); break; case INVALID_DIMENSIONALITY: printf("\nInvalid dimensionality.\n"); break; case NULL_POINTER: printf("\nNull pointer.\n"); break; case INSUFFICIENT_MEMORY: printf("\nInsufficient memory.\n"); break; case REQUEST_EXCEEDS_60MB: printf("\nRequest exceeds 60MB.\n"); break; case SIZE_NOT_MULT_4: printf("\nSize not a multiple of 4.\n"); break; default: printf("\nUnknown error.\n"); } exit(1); } /*------------------------------------*/ void display_array_free_error(int errno) { printf("\nError when freeing array %s%d.\n",array_name[errno],dimensionality); }