summaryrefslogtreecommitdiffstats
path: root/fortran/src/H5Ef.c
diff options
context:
space:
mode:
Diffstat (limited to 'fortran/src/H5Ef.c')
-rw-r--r--fortran/src/H5Ef.c169
1 files changed, 169 insertions, 0 deletions
diff --git a/fortran/src/H5Ef.c b/fortran/src/H5Ef.c
new file mode 100644
index 0000000..0ae4255
--- /dev/null
+++ b/fortran/src/H5Ef.c
@@ -0,0 +1,169 @@
+#include "H5f90.h"
+
+
+/*----------------------------------------------------------------------------
+ * Name: h5eclear_c
+ * Purpose: Call H5Eclear to clear the error stack for the current thread
+ * Inputs:
+ * Outputs:
+ * Returns: 0 on success, -1 on failure
+ * Programmer: Xiangyang Su
+ * Wednesday, March 29, 2000
+ * Modifications:
+ *---------------------------------------------------------------------------*/
+
+int_f
+nh5eclear_c( )
+{
+ int ret_val = -1;
+ herr_t status;
+
+ /*
+ * Call H5Eclear function.
+ */
+ status = H5Eclear();
+ if(status < 0) return ret_val;
+ ret_val = 0;
+ return ret_val;
+}
+
+/*----------------------------------------------------------------------------
+ * Name: h5eprint_c1
+ * Purpose: Call H5Eprint to print the error stack in a default manner.
+ * Inputs: name - file name
+ * namelen - length of name
+ * Outputs:
+ * Returns: 0 on success, -1 on failure
+ * Programmer: Xiangyang Su
+ * Wednesday, March 29, 2000
+ * Modifications:
+ *---------------------------------------------------------------------------*/
+int_f
+nh5eprint_c1(_fcd name, int_f* namelen)
+{
+ int ret_val = -1;
+ herr_t status;
+ FILE * file;
+ char* c_name;
+ int c_namelen;
+ c_namelen = *namelen;
+ c_name = (char*)HD5f2cstring(name, c_namelen);
+ file = fopen(c_name, "w");
+
+ /*
+ * Call H5Eprint function.
+ */
+ status = H5Eprint(file);
+ if(status < 0) return ret_val;
+ ret_val = 0;
+ return ret_val;
+}
+
+
+/*----------------------------------------------------------------------------
+ * Name: h5eprint_c2
+ * Purpose: Call H5Eprint to print the error stack to stderr
+ * in a default manner.
+ * Inputs:
+ * Outputs:
+ * Returns: 0 on success, -1 on failure
+ * Programmer: Xiangyang Su
+ * Wednesday, March 29, 2000
+ * Modifications:
+ *---------------------------------------------------------------------------*/
+int_f
+nh5eprint_c2()
+{
+ int ret_val = -1;
+ herr_t status;
+
+ /*
+ * Call H5Eprint function.
+ */
+ status = H5Eprint(NULL);
+ if(status < 0) return ret_val;
+ ret_val = 0;
+ return ret_val;
+}
+
+/*----------------------------------------------------------------------------
+ * Name: h5eget_major_c
+ * Purpose: Call H5Eget_major to get a character string
+ * describing an error specified by a major error number.
+ * Inputs: error_no - Major error number
+ * Outputs: name - character string describing the error
+ * Returns: 0 on success, -1 on failure
+ * Programmer: Xiangyang Su
+ * Wednesday, March 29, 2000
+ * Modifications:
+ *---------------------------------------------------------------------------*/
+int_f
+nh5eget_major_c(int_f* error_no, _fcd name)
+{
+ int ret_val = -1;
+ const char* c_name;
+ H5E_major_t c_error_no;
+ c_error_no = (H5E_major_t)*error_no;
+
+ /*
+ * Call H5Eget_major function.
+ */
+ c_name = H5Eget_major(c_error_no);
+ HDpackFstring((char*)c_name, _fcdtocp(name), strlen(c_name));
+
+ if(!strcmp(c_name, "Invalid major error number")) return ret_val;
+ ret_val = 0;
+ return ret_val;
+}
+
+/*----------------------------------------------------------------------------
+ * Name: h5eget_minor_c
+ * Purpose: Call H5Eget_minor to get a character string
+ * describing an error specified by a minor error number.
+ * Inputs: error_no - Major error number
+ * Outputs: name - character string describing the error
+ * Returns: 0 on success, -1 on failure
+ * Programmer: Xiangyang Su
+ * Wednesday, March 29, 2000
+ * Modifications:
+ *---------------------------------------------------------------------------*/
+int_f
+nh5eget_minor_c(int_f* error_no, _fcd name)
+{
+ int ret_val = -1;
+ const char* c_name;
+ H5E_minor_t c_error_no;
+ c_error_no = (H5E_minor_t)*error_no;
+
+ /*
+ * Call H5Eget_minor function.
+ */
+ c_name = H5Eget_minor(c_error_no);
+ HDpackFstring((char*)c_name, _fcdtocp(name), strlen(c_name));
+
+ if(!strcmp(c_name, "Invalid minor error number")) return ret_val;
+ ret_val = 0;
+ return ret_val;
+}
+
+/*----------------------------------------------------------------------------
+ * Name: h5eset_auto_c
+ * Purpose: Call H5Eset_auto to turn automatic error printing on or off.
+ * Inputs: printflag - flag to turn automatic error printing on or off.
+ * Outputs:
+ * Returns: 0 on success, -1 on failure
+ * Programmer: Xiangyang Su
+ * Wednesday, March 29, 2000
+ * Modifications:
+ *---------------------------------------------------------------------------*/
+int_f
+nh5eset_auto_c(int_f* printflag)
+{
+ int ret_val = -1;
+ herr_t status;
+
+ if (*printflag == 1)
+ status = H5Eset_auto((H5E_auto_t)H5Eprint, stderr);
+ if (status >= 0) ret_val = 0;
+ return ret_val;
+}