~ubuntu-branches/ubuntu/saucy/nwchem/saucy

« back to all changes in this revision

Viewing changes to src/tools/ga-5-1/pario/dra/drap.h

  • Committer: Package Import Robot
  • Author(s): Michael Banck, Michael Banck, Daniel Leidert
  • Date: 2012-02-09 20:02:41 UTC
  • mfrom: (1.1.1)
  • Revision ID: package-import@ubuntu.com-20120209200241-jgk03qfsphal4ug2
Tags: 6.1-1
* New upstream release.

[ Michael Banck ]
* debian/patches/02_makefile_flags.patch: Updated.
* debian/patches/02_makefile_flags.patch: Use internal blas and lapack code.
* debian/patches/02_makefile_flags.patch: Define GCC4 for LINUX and LINUX64
  (Closes: #632611 and LP: #791308).
* debian/control (Build-Depends): Added openssh-client.
* debian/rules (USE_SCALAPACK, SCALAPACK): Removed variables (Closes:
  #654658).
* debian/rules (LIBDIR, USE_MPIF4, ARMCI_NETWORK): New variables.
* debian/TODO: New file.
* debian/control (Build-Depends): Removed libblas-dev, liblapack-dev and
  libscalapack-mpi-dev.
* debian/patches/04_show_testsuite_diff_output.patch: New patch, shows the
  diff output for failed tests.
* debian/patches/series: Adjusted.
* debian/testsuite: Optionally run all tests if "all" is passed as option.
* debian/rules: Run debian/testsuite with "all" if DEB_BUILD_OPTIONS
  contains "checkall".

[ Daniel Leidert ]
* debian/control: Used wrap-and-sort. Added Vcs-Svn and Vcs-Browser fields.
  (Priority): Moved to extra according to policy section 2.5.
  (Standards-Version): Bumped to 3.9.2.
  (Description): Fixed a typo.
* debian/watch: Added.
* debian/patches/03_hurd-i386_define_path_max.patch: Added.
  - Define MAX_PATH if not defines to fix FTBFS on hurd.
* debian/patches/series: Adjusted.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*********************** "private" include file for DRA *****************/
 
2
#if HAVE_STRING_H
 
3
#   include <string.h>
 
4
#endif
 
5
 
 
6
#include "gacommon.h"
 
7
#include "draf2c.h"
 
8
#include "elio.h"
 
9
#include "macdecls.h"
 
10
 
 
11
#define MAXDIM GA_MAX_DIM
 
12
 
 
13
#ifdef FALSE
 
14
#undef FALSE
 
15
#endif
 
16
#ifdef TRUE
 
17
#undef TRUE
 
18
#endif
 
19
#define FALSE (logical) 0
 
20
#define TRUE  (logical) 1
 
21
 
 
22
/************************* common constants **********************************/
 
23
#define DRA_OFFSET     5000 /**< DRA handle offset            */
 
24
#define DRA_BRD_TYPE  30000 /**< msg type for DRA broadcast   */
 
25
#define DRA_GOP_TYPE  30001 /**< msg type for DRA sum         */
 
26
#define DRA_MAX_NAME     72 /**< max length of array name     */
 
27
#define DRA_MAX_FNAME   248 /**< max length of metafile name  */
 
28
 
 
29
/************************* common data structures **************************/
 
30
typedef struct {                 /**< stores basic DRA info */
 
31
    Integer ndim;                /**< dimension of array */
 
32
    Integer dims[MAXDIM];        /**< array dimensions */
 
33
    Integer chunk[MAXDIM];       /**< data layout chunking */
 
34
    Integer layout;              /**< date layout type */
 
35
    int type;                    /**< data type */
 
36
    int mode;                    /**< file/array access permissions */
 
37
    char name[DRA_MAX_NAME+8];   /**< array name */
 
38
    char fname[DRA_MAX_FNAME+8]; /**< metafile name */
 
39
    Integer actv;                /**< is array active ? */ 
 
40
    Integer indep;               /**< shared/independent files ? */
 
41
    Fd_t fd;                     /**< ELIO meta-file descriptor */
 
42
    Integer numfiles;            /**< # files on open file system */
 
43
    Integer ioprocs;             /**< number of IO procs per node */
 
44
} disk_array_t;
 
45
 
 
46
#define MAX_ALGN  1                /**< max # aligned subsections   */ 
 
47
#define MAX_UNLG  (2*(MAXDIM-1))   /**< max # unaligned subsections */
 
48
 
 
49
typedef struct {         /**< object describing DRA/GA section */
 
50
    Integer handle;
 
51
    Integer ndim;
 
52
    Integer lo[MAXDIM];
 
53
    Integer hi[MAXDIM];
 
54
} section_t;
 
55
 
 
56
 
 
57
typedef struct {         /**< structure stores arguments for callback f */
 
58
    int op;
 
59
    int transp;
 
60
    Integer ld[MAXDIM];
 
61
    section_t gs_a;
 
62
    section_t ds_a;
 
63
    section_t ds_chunk;
 
64
} args_t;
 
65
 
 
66
 
 
67
typedef struct {         /**< stores info associated with DRA request */
 
68
    Integer  d_a;       /**< disk array handle */
 
69
    int num_pending;    /**< number of pending  asynch. I/O ops */ 
 
70
    Integer list_algn[MAX_ALGN][2*MAXDIM];  /**< coordinates of aligned subsection */
 
71
    Integer list_unlgn[MAX_UNLG][2*MAXDIM]; /**< coordinates of unaligned subsections*/
 
72
    Integer list_cover[MAX_UNLG][2*MAXDIM]; /**< coordinates of "cover" subsections */
 
73
    int        nu;            
 
74
    int        na;
 
75
    int        call_id; /**< id of this request */
 
76
} request_t;
 
77
 
 
78
typedef struct {
 
79
    char *buf;
 
80
    int op;
 
81
    io_request_t io_req;
 
82
    Integer ga_movhdl;
 
83
    args_t args;
 
84
    int align;
 
85
    int callback;
 
86
} buf_info;
 
87
 
 
88
extern disk_array_t *DRA;
 
89
extern logical dra_debug_flag;
 
90
 
 
91
/**************************** common macros ********************************/
 
92
#define PARIO_MAX(a,b) (((a) >= (b)) ? (a) : (b))
 
93
#define PARIO_MIN(a,b) (((a) <= (b)) ? (a) : (b))
 
94
 
 
95
#define dai_error pnga_error
 
96
 
 
97
extern int     dai_read_param(char* filename, Integer d_a);
 
98
extern void    dai_write_param(char* filename, Integer d_a);
 
99
extern void    dai_delete_param(char* filename, Integer d_a);
 
100
extern int     dai_file_config(char* filename);
 
101
extern logical dai_section_intersect(section_t sref, section_t* sadj);
 
102
extern int     drai_get_num_serv(void);
 
103
 
 
104
/* internal fortran calls */
 
105
extern Integer drai_create(Integer *type, Integer *dim1, Integer *dim2, 
 
106
        char *name, char *filename, Integer *mode, 
 
107
        Integer *reqdim1, Integer *reqdim2, Integer *d_a);
 
108
 
 
109
extern Integer ndrai_create(Integer *type, Integer *ndim, Integer dims[], 
 
110
        char *name, char *filename, Integer *mode, 
 
111
        Integer reqdims[], Integer *d_a);
 
112
 
 
113
extern Integer drai_open(char *filename, Integer *mode, Integer *d_a);
 
114
 
 
115
extern Integer drai_inquire(Integer *d_a, Integer *type, Integer *dim1, 
 
116
        Integer *dim2, char *name, char *filename);
 
117
 
 
118
extern Integer ndrai_inquire(Integer *d_a, Integer *type, Integer *ndim,
 
119
        Integer dims[],char *name,char *filename);
 
120
 
 
121
extern Integer ndrai_create_config(Integer *type, Integer *ndim, Integer dims[],
 
122
        char *name, char *filename, Integer *mode, 
 
123
        Integer reqdims[], Integer *numfiles, 
 
124
        Integer *numioprocs,   Integer *d_a);
 
125
 
 
126
/* external fortran calls */
 
127
#ifdef F2C_HIDDEN_STRING_LENGTH_AFTER_ARGS
 
128
extern Integer FATR dra_create_(Integer *type, Integer *dim1, Integer *dim2,
 
129
        char *name, char *filename, Integer *mode, Integer *reqdim1,
 
130
        Integer *reqdim2, Integer *d_a, int nlen, int flen);
 
131
extern Integer FATR ndra_create_(Integer *type, Integer *ndim, Integer dims[],
 
132
        char *name, char *filename, Integer *mode, Integer  reqdims[],
 
133
        Integer *d_a, int nlen, int flen);
 
134
extern Integer FATR dra_open_(char *filename, Integer *mode, Integer *d_a,
 
135
        int flen);
 
136
extern Integer FATR dra_inquire_(Integer *d_a, Integer *type, Integer *dim1,
 
137
        Integer *dim2, char *name, char *filename, int nlen, int flen);
 
138
extern Integer FATR ndra_inquire_(Integer *d_a, Integer *type, Integer *ndim,
 
139
        Integer dims[], char *name, char *filename, int nlen, int flen);
 
140
extern Integer ndra_create_config_(Integer *type, Integer *ndim,
 
141
        Integer dims[], char *name, char *filename, Integer *mode,
 
142
        Integer reqdims[], Integer *numfiles, Integer *numioprocs,
 
143
        Integer *d_a, int nlen, int flen);
 
144
#else /* F2C_HIDDEN_STRING_LENGTH_AFTER_ARGS */
 
145
extern Integer FATR dra_create_(Integer *type, Integer *dim1, Integer *dim2,
 
146
        char *name, int nlen, char *filename, int flen, Integer *mode,
 
147
        Integer *reqdim1, Integer *reqdim2, Integer *d_a);
 
148
extern Integer FATR ndra_create_(Integer *type, Integer *ndim, Integer  dims[],
 
149
        char *name, int nlen, char *filename, int flen, Integer *mode,
 
150
        Integer  reqdims[], Integer *d_a);
 
151
extern Integer FATR dra_open_(char *filename, int flen, Integer *mode,
 
152
        Integer *d_a);
 
153
extern Integer FATR dra_inquire_(Integer *d_a, Integer *type, Integer *dim1,
 
154
        Integer *dim2, char *name, int nlen, char *filename, int flen);
 
155
extern Integer FATR ndra_inquire_(Integer *d_a, Integer *type, Integer *ndim,
 
156
        Integer dims[], char *name, int nlen, char *filename, int flen);
 
157
extern Integer ndra_create_config_(Integer *type, Integer *ndim,
 
158
        Integer dims[], char *name, int nlen, char *filename, int flen,
 
159
        Integer *mode, Integer reqdims[], Integer *numfiles,
 
160
        Integer *numioprocs, Integer *d_a);
 
161
#endif /* F2C_HIDDEN_STRING_LENGTH_AFTER_ARGS */
 
162
 
 
163
extern Integer FATR dra_terminate_();
 
164
 
 
165
extern Integer FATR dra_init_(
 
166
        Integer *max_arrays,              /* input */
 
167
        DoublePrecision *max_array_size,  /* input */
 
168
        DoublePrecision *tot_disk_space,  /* input */
 
169
        DoublePrecision *max_memory);     /* input */
 
170
 
 
171
extern Integer FATR dra_probe_(
 
172
        Integer *request,                  /*input*/
 
173
        Integer *status);                   /*output*/
 
174
 
 
175
extern Integer FATR ndra_write_(
 
176
        Integer *g_a,                      /*input:GA handle*/
 
177
        Integer *d_a,                      /*input:DRA handle*/
 
178
        Integer *request);                 /*output: handle to async oper.*/
 
179
 
 
180
extern Integer FATR ndra_write_section_(
 
181
        logical *transp,                   /*input:transpose operator*/
 
182
        Integer *g_a,                      /*input:GA handle*/
 
183
        Integer glo[],                     /*input*/
 
184
        Integer ghi[],                     /*input*/
 
185
        Integer *d_a,                      /*input:DRA handle*/
 
186
        Integer dlo[],                     /*input*/
 
187
        Integer dhi[],                     /*input*/
 
188
        Integer *request);                 /*output: async. request id*/
 
189
 
 
190
extern Integer FATR ndra_read_(Integer* g_a, Integer* d_a, Integer* request);
 
191
 
 
192
extern Integer FATR ndra_read_section_(
 
193
        logical *transp,                   /*input:transpose operator*/
 
194
        Integer *g_a,                      /*input:GA handle*/
 
195
        Integer glo[],                     /*input*/
 
196
        Integer ghi[],                     /*input*/
 
197
        Integer *d_a,                      /*input:DRA handle*/
 
198
        Integer dlo[],                     /*input*/
 
199
        Integer dhi[],                     /*input*/
 
200
        Integer *request);                  /*output: request id*/
 
201
 
 
202
extern void FATR dra_print_internals_(Integer *d_a);
 
203
 
 
204
extern void FATR dra_set_debug_(logical *flag);
 
205
 
 
206
extern void FATR dra_set_default_config_(Integer *numfiles, 
 
207
        Integer *numioprocs);
 
208
 
 
209
extern Integer FATR dra_delete_(Integer* d_a);
 
210
 
 
211
extern Integer FATR dra_close_(Integer* d_a);
 
212
 
 
213
extern void dra_flick_();
 
214
 
 
215
extern Integer FATR dra_wait_(Integer* request);