Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
L
loadbalancing
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Terraform modules
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
SLMS
loadbalancing
Merge requests
!6
MPI communicator handle must be converted
Code
Review changes
Check out branch
Download
Patches
Plain diff
Expand sidebar
Closed
MPI communicator handle must be converted
feature/fortran-interface-fixes
into
master
Overview
1
Commits
0
Pipelines
4
Changes
0
Closed
Stephan Schulz
requested to merge
feature/fortran-interface-fixes
into
master
6 years ago
Overview
1
Commits
0
Pipelines
4
Changes
2
The MPI communicator handle must be explicitly converted.
0
0
Merge request reports
Compare
master
version 2
837c510d
6 years ago
version 1
aab06d98
6 years ago
master (base)
and
version 2
latest version
4cb527ca
5 commits,
6 years ago
version 2
837c510d
4 commits,
6 years ago
version 1
aab06d98
1 commit,
6 years ago
2 files
+
63
−
3
Inline
Compare changes
Side-by-side
Inline
Show whitespace changes
Show one file at a time
Files
2
src/ALL_fortran.cpp
+
24
−
2
View file @ 837c510d
Edit in single-file editor
Open in Web IDE
Show full file
@@ -39,6 +39,21 @@ extern "C"
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
void
ALL_set_min_domain_size_f
(
ALL
<
double
,
double
>*
all_obj
,
ALL_LB_t
method
,
int
dim
,
double
*
domain_size
)
{
if
(
all_obj
->
get_dimension
()
!=
dim
)
throw
ALL_Invalid_Argument_Exception
(
__FILE__
,
__func__
,
__LINE__
,
"Length of array does not match dimension"
);
all_obj
->
set_min_domain_size
(
method
,
domain_size
);
}
// wrapper to set the work (scalar only for the moment)
void
ALL_set_work_f
(
ALL
<
double
,
double
>*
all_obj
,
double
work
)
{
@@ -52,9 +67,10 @@ extern "C"
}
// wrapper to set the communicator
void
ALL_set_communicator_f
(
ALL
<
double
,
double
>*
all_obj
,
MPI_
Comm
comm
)
void
ALL_set_communicator_f
(
ALL
<
double
,
double
>*
all_obj
,
MPI_
Fint
f
comm
)
{
all_obj
->
set_communicator
(
comm
);
MPI_Comm
ccomm
=
MPI_Comm_f2c
(
fcomm
);
all_obj
->
set_communicator
(
ccomm
);
}
// wrapper to setup routine
@@ -104,4 +120,10 @@ extern "C"
}
}
}
void
ALL_print_vtk_outlines_f
(
ALL
<
double
,
double
>*
all_obj
,
int
step
)
{
#ifdef ALL_VTK_OUTPUT
all_obj
->
print_vtk_outlines
(
step
);
#endif
}
}
Loading