Skip to content
Snippets Groups Projects
Commit 837c510d authored by Stephan Schulz's avatar Stephan Schulz
Browse files

add set_proc_grid_params interface

parent 6ae1dbcb
No related branches found
No related tags found
No related merge requests found
Pipeline #21401 passed
...@@ -39,6 +39,14 @@ extern "C" ...@@ -39,6 +39,14 @@ extern "C"
return new ALL<double,double>(dim,gamma); return new ALL<double,double>(dim,gamma);
} }
// set grid parameters
void ALL_set_proc_grid_params_f(ALL<double,double>* all_obj, int nloc, int* loc, int nsize, int* size)
{
if(all_obj->get_dimension() != nloc) throw ALL_Invalid_Argument_Exception(__FILE__,__func__,__LINE__,"Length of index array does not match dimension");
if(all_obj->get_dimension() != nsize) throw ALL_Invalid_Argument_Exception(__FILE__,__func__,__LINE__,"Length of size array does not match dimension");
all_obj->set_proc_grid_params(loc,size);
}
// wrapper to set the minimum domain size // wrapper to set the minimum domain size
void ALL_set_min_domain_size_f(ALL<double,double>* all_obj, ALL_LB_t method, int dim, double* domain_size) void ALL_set_min_domain_size_f(ALL<double,double>* all_obj, ALL_LB_t method, int dim, double* domain_size)
{ {
......
...@@ -49,6 +49,14 @@ MODULE ALL_module ...@@ -49,6 +49,14 @@ MODULE ALL_module
REAL(c_double),VALUE :: gamma REAL(c_double),VALUE :: gamma
TYPE(c_ptr) :: this TYPE(c_ptr) :: this
END FUNCTION END FUNCTION
SUBROUTINE ALL_set_proc_grid_params_int(obj, nloc, loc, nsize, size) BIND(C,NAME="ALL_set_proc_grid_params_f")
USE ISO_C_BINDING
TYPE(c_ptr), VALUE :: obj
INTEGER(c_int), VALUE :: nloc
INTEGER(c_int), DIMENSION(nloc) :: loc
INTEGER(c_int), VALUE :: nsize
INTEGER(c_int), DIMENSION(nloc) :: size
END SUBROUTINE
SUBROUTINE ALL_set_min_domain_size_int(obj, method, dim, domain_size) BIND(C,NAME="ALL_set_min_domain_size_f") SUBROUTINE ALL_set_min_domain_size_int(obj, method, dim, domain_size) BIND(C,NAME="ALL_set_min_domain_size_f")
USE ISO_C_BINDING USE ISO_C_BINDING
INTEGER(c_int), VALUE :: dim INTEGER(c_int), VALUE :: dim
...@@ -117,6 +125,12 @@ MODULE ALL_module ...@@ -117,6 +125,12 @@ MODULE ALL_module
REAL(8) :: gamma REAL(8) :: gamma
obj%object = ALL_init_int(INT(dim,c_int),REAL(gamma,c_double)) obj%object = ALL_init_int(INT(dim,c_int),REAL(gamma,c_double))
END SUBROUTINE END SUBROUTINE
SUBROUTINE ALL_set_proc_grid_params(obj, loc, ranks)
TYPE(ALL_t) :: obj
INTEGER, DIMENSION(:) :: loc
INTEGER, DIMENSION(size(loc)) :: ranks
call ALL_set_proc_grid_params_int(obj%object, size(loc,1), loc, size(ranks,1), ranks)
END SUBROUTINE
SUBROUTINE ALL_set_min_domain_size(obj, method, dim, domain_size) SUBROUTINE ALL_set_min_domain_size(obj, method, dim, domain_size)
INTEGER(c_short) :: method INTEGER(c_short) :: method
INTEGER :: dim INTEGER :: dim
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment