54 enumerator :: asagi_byte, asagi_int, asagi_long, asagi_float, asagi_double
69 asagi_unknown_param, &
70 asagi_invalid_value, &
71 asagi_not_initialized, &
72 asagi_already_initialized, &
74 asagi_var_not_found, &
76 asagi_unsupported_dimensions, &
77 asagi_invalid_var_size
86 use,
intrinsic :: iso_c_binding
87 integer( kind=c_int ), value ::
type
93 use,
intrinsic :: iso_c_binding
94 integer( kind=c_int ), value :: basictype
102 use,
intrinsic :: iso_c_binding
103 integer( kind=c_int ), value :: count
104 integer( kind=c_int ),
dimension(*),
intent(in) :: block_length
105 integer( kind=c_long ),
dimension(*),
intent(in) :: displacments
106 integer( kind=c_int ),
dimension(*),
intent(in) :: types
114 use,
intrinsic :: iso_c_binding
115 integer( kind=c_int ), value :: grid_id
116 integer( kind=c_int ), value ::
comm
123 use,
intrinsic :: iso_c_binding
124 integer( kind=c_int ), value :: grid_id
125 integer( kind=c_int ), value :: threads
130 use,
intrinsic :: iso_c_binding
131 integer( kind=c_int ), value :: grid_id
132 character( kind=c_char ),
dimension(*),
intent(in) :: name
133 character( kind=c_char ),
dimension(*),
intent(in) :: value
134 integer( kind=c_int ), value :: level
139 use,
intrinsic :: iso_c_binding
140 integer( kind=c_int ), value :: grid_id
141 character( kind=c_char ),
dimension(*),
intent(in) :: filename
142 integer( kind=c_int ), value :: level
150 use,
intrinsic :: iso_c_binding
151 integer( kind=c_int ), value :: grid_id
159 use,
intrinsic :: iso_c_binding
160 integer( kind=c_int ), value :: grid_id
161 integer( kind=c_int ), value :: n
169 use,
intrinsic :: iso_c_binding
170 integer( kind=c_int ), value :: grid_id
171 integer( kind=c_int ), value :: n
177 use,
intrinsic :: iso_c_binding
178 integer( kind=c_int ), value :: grid_id
179 integer( kind=c_int ), value :: n
180 integer( kind=c_int ), value :: level
188 use,
intrinsic :: iso_c_binding
189 integer( kind=c_int ), value :: grid_id
195 use,
intrinsic :: iso_c_binding
196 integer( kind=c_int ), value :: grid_id
197 real( kind=c_double ),
dimension(*),
intent(in) :: pos
198 integer( kind=c_int ), value :: level
204 use,
intrinsic :: iso_c_binding
205 integer( kind=c_int ), value :: grid_id
206 real( kind=c_double ),
dimension(*),
intent(in) :: pos
207 integer( kind=c_int ), value :: level
213 use,
intrinsic :: iso_c_binding
214 integer( kind=c_int ), value :: grid_id
215 real( kind=c_double ),
dimension(*),
intent(in) :: pos
216 integer( kind=c_int ), value :: level
222 use,
intrinsic :: iso_c_binding
223 integer( kind=c_int ), value :: grid_id
224 real( kind=c_double ),
dimension(*),
intent(in) :: pos
225 integer( kind=c_int ), value :: level
231 use,
intrinsic :: iso_c_binding
232 integer( kind=c_int ), value :: grid_id
233 real( kind=c_double ),
dimension(*),
intent(in) :: pos
234 integer( kind=c_int ), value :: level
240 use,
intrinsic :: iso_c_binding
241 integer( kind=c_int ), value :: grid_id
242 type( c_ptr
), value :: buf
243 real( kind=c_double ),
dimension(*),
intent(in) :: pos
244 integer( kind=c_int ), value :: level
251 use,
intrinsic :: iso_c_binding
252 integer( kind=c_int ), value :: grid_id
259 use,
intrinsic :: iso_c_binding
260 integer( kind=c_int ), value :: sched_cpu
261 integer( kind=c_int ), value ::
comm
269 use,
intrinsic :: iso_c_binding
276 use,
intrinsic :: iso_c_binding
277 integer( kind=c_int ), value ::
comm
289 integer,
optional,
intent(in) ::
type
295 if( present(
type ) ) then
308 integer,
optional,
intent(in) :: basictype
314 if( present( basictype ) )
then
327 use,
intrinsic :: iso_c_binding
328 integer,
intent(in) :: grid_id
329 character*(*),
intent(in) :: name
330 character*(*),
intent(in) :: value
331 integer,
optional,
intent(in) :: level
335 if( present( level ) )
then
342 value // c_null_char, l )
349 use,
intrinsic :: iso_c_binding
350 integer,
intent(in) :: grid_id
351 character*(*),
intent(in) :: filename
352 integer,
optional,
intent(in) :: level
357 if( present( level ) )
then
370 use,
intrinsic :: iso_c_binding
371 integer,
intent(in) :: grid_id
372 integer,
intent(in) :: n
373 integer,
optional,
intent(in) :: level
378 if( present( level ) )
then
391 use,
intrinsic :: iso_c_binding
392 integer,
intent(in) :: grid_id
393 real( kind=c_double ),
dimension(*),
intent(in) :: pos
394 integer,
optional,
intent(in) :: level
399 if( present( level ) )
then
412 use,
intrinsic :: iso_c_binding
413 integer,
intent(in) :: grid_id
414 real( kind=c_double ),
dimension(*),
intent(in) :: pos
415 integer,
optional,
intent(in) :: level
420 if( present( level ) )
then
433 use,
intrinsic :: iso_c_binding
434 integer,
intent(in) :: grid_id
435 real( kind=c_double ),
dimension(*),
intent(in) :: pos
436 integer,
optional,
intent(in) :: level
441 if( present( level ) )
then
454 use,
intrinsic :: iso_c_binding
455 integer,
intent(in) :: grid_id
456 real( kind=c_double ),
dimension(*),
intent(in) :: pos
457 integer,
optional,
intent(in) :: level
462 if( present( level ) )
then
475 use,
intrinsic :: iso_c_binding
476 integer,
intent(in) :: grid_id
477 real( kind=c_double ),
dimension(*),
intent(in) :: pos
478 integer,
optional,
intent(in) :: level
483 if( present( level ) )
then
496 use,
intrinsic :: iso_c_binding
497 integer,
intent(in) :: grid_id
499 real( kind=c_double ),
dimension(*),
intent(in) :: pos
500 integer,
optional,
intent(in) :: level
504 if( present( level ) )
then
integer(kind=c_long) function asagi_grid_get_long_c(grid_id, pos, level)
long asagi_grid_get_long(asagi_grid *handle, const double *pos, unsigned int level)
int asagi_grid_get_int(asagi_grid *handle, const double *pos, unsigned int level)
unsigned int asagi_grid_var_size(asagi_grid *handle)
double asagi_grid_get_double(asagi_grid *handle, const double *pos, unsigned int level)
void asagi_grid_close(asagi_grid *handle)
void asagi_grid_set_comm(asagi_grid *handle, MPI_Comm comm)
void asagi_grid_get_buf(asagi_grid *handle, void *buf, const double *pos, unsigned int level)
asagi_error asagi_grid_open(asagi_grid *handle, const char *filename, unsigned int level)
real(kind=c_double) function asagi_grid_delta_c(grid_id, n, level)
asagi_grid * asagi_grid_create_struct(unsigned int count, unsigned int blockLength[], unsigned long displacements[], asagi_type types[])
subroutine asagi_grid_get_buf_c(grid_id, buf, pos, level)
double asagi_grid_min(asagi_grid *handle, unsigned int n)
void asagi_stop_comm_thread()
int asagi_node_local_rank(MPI_Comm comm)
integer(kind=c_int) function asagi_grid_create_c(type)
double asagi_grid_delta(asagi_grid *handle, unsigned int n, unsigned int level)
real(kind=c_double) function asagi_grid_get_double_c(grid_id, pos, level)
asagi_grid * asagi_grid_create(asagi_type type)
integer(kind=c_int) function asagi_grid_get_int_c(grid_id, pos, level)
const mpi::MPIComm & comm() const
float asagi_grid_get_float(asagi_grid *handle, const double *pos, unsigned int level)
character(kind=c_char) function asagi_grid_get_byte_c(grid_id, pos, level)
subroutine asagi_grid_set_param_c(grid_id, name, value, level)
integer(kind=c_int) function asagi_grid_open_c(grid_id, filename, level)
asagi_error asagi_start_comm_thread(int sched_cpu, MPI_Comm comm)
double asagi_grid_max(asagi_grid *handle, unsigned int n)
void asagi_grid_set_threads(asagi_grid *handle, unsigned int threads)
const Type & type() const
void asagi_grid_set_param(asagi_grid *handle, const char *name, const char *value, unsigned int level)
unsigned int asagi_grid_dimensions(asagi_grid *handle)
asagi_grid * asagi_grid_create_array(asagi_type basic_type)
unsigned char asagi_grid_get_byte(asagi_grid *handle, const double *pos, unsigned int level)
integer(kind=c_int) function asagi_grid_create_array_c(basictype)
real(kind=c_float) function asagi_grid_get_float_c(grid_id, pos, level)