summaryrefslogtreecommitdiffstats
path: root/fortran/test/t.c
blob: ed18c0ffeab1c232d33c3a61d5c26060c17ea727 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  * Copyright by the Board of Trustees of the University of Illinois.         *
  * All rights reserved.                                                      *
  *                                                                           *
  * This file is part of HDF5.  The full HDF5 copyright notice, including     *
  * terms governing use, modification, and redistribution, is contained in    *
  * the files COPYING and Copyright.html.  COPYING can be found at the root   *
  * of the source code distribution tree; Copyright.html can be found at the  *
  * root level of an installed copy of the electronic HDF5 document set and   *
  * is linked from the top-level documents page.  It can also be found at     *
  * http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html.  If you do not have     *
  * access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. *
  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

#include "t.h"

/*----------------------------------------------------------------------------
 * Name:        h5_fixname_c
 * Purpose:     Call h5_fixname to modify file name
 * Inputs:      base_name - name of the file     
 *              base_namelen - name length
 *              fapl - file access property list 
 *              full_name - buffer to return full name
 *              full_namelen - name length
 * Returns:     0 on success, -1 on failure
 * Programmer:  Elena Pourmal
 *              Friday, September 13, 2002
 * Modifications:
 *---------------------------------------------------------------------------*/
int_f
nh5_fixname_c(_fcd base_name, int_f *base_namelen, hid_t_f* fapl, _fcd full_name, int_f *full_namelen)
{
     int ret_value = -1;
     char *c_base_name;
     int c_base_namelen;
     int c_full_namelen;
     char *c_full_name;
     hid_t c_fapl;

     /*
      * Define ifile access property list
      */
     c_fapl = (hid_t)*fapl;
     /*
      * Convert FORTRAN name to C name
      */
     c_base_namelen = *base_namelen;
     c_base_name = (char *)HD5f2cstring(base_name, c_base_namelen); 
     if (c_base_name == NULL) goto DONE;
     c_full_name = (char *) HDmalloc(*full_namelen + 1);
     if (c_full_name == NULL) goto DONE;

     /*
      * Call h5_fixname function.
      */
     if (NULL != h5_fixname(c_base_name, c_fapl, c_full_name, *full_namelen + 1)) {
     HD5packFstring(c_full_name, _fcdtocp(full_name), *full_namelen);         
     ret_value = 0;
     goto DONE;
     }
DONE:
     if (NULL != c_base_name) HDfree(c_base_name);
     if (NULL != c_full_name) HDfree(c_full_name);
     return ret_value; 
} 

/*----------------------------------------------------------------------------
 * Name:        h5_cleanup_c
 * Purpose:     Call h5_cleanup to clean temporary files.
 * Inputs:      base_name - name of the file     
 *              base_namelen - name length
 *              fapl - file access property list 
 * Returns:     0 on success, -1 on failure
 * Programmer:  Elena Pourmal
 *              Thursday, September 19, 2002
 * Modifications:
 *---------------------------------------------------------------------------*/
int_f
nh5_cleanup_c(_fcd base_name, int_f *base_namelen, hid_t_f* fapl)
{
     char filename[1024];
     int ret_value = -1;
     char *c_base_name[1];
     int c_base_namelen;
     hid_t c_fapl;

     /*
      * Define ifile access property list
      */
     c_fapl = (hid_t)*fapl;
     /*c_fapl = H5Pcreate(H5P_FILE_ACCESS);*/
     /*
      * Convert FORTRAN name to C name
      */
     c_base_namelen = *base_namelen;
     c_base_name[0] = (char *)HD5f2cstring(base_name, c_base_namelen); 
     if (c_base_name[0] == NULL) goto DONE;

     /*
      * Call h5_cleanup function.
      */
     /*if (h5_cleanup(c_base_name, c_fapl) != 0) {
     ret_value = 0;
     goto DONE;
     }
*/
     h5_fixname(c_base_name[0], c_fapl, filename, sizeof(filename)); 
     remove(filename);
     ret_value =0;
DONE:
     if (NULL != c_base_name[0]) HDfree(c_base_name[0]);
     return ret_value; 
    
}