Thin wrappers around the MPI calls used by s-dftd3.
This is the only place besides dftd3_feature that is preprocessed. Without MPI support every wrapper reports the missing feature in the error handler.
Sum a real quantity over all ranks of a communicator, in place
Sum an array over all ranks of a communicator
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | comm |
MPI communicator handle |
||
| real(kind=wp), | intent(inout), | contiguous | :: | val(:) |
Values to reduce |
|
| type(error_type), | intent(out), | allocatable | :: | error |
Error handling |
Sum a matrix over all ranks of a communicator
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | comm |
MPI communicator handle |
||
| real(kind=wp), | intent(inout), | contiguous, target | :: | val(:,:) |
Values to reduce |
|
| type(error_type), | intent(out), | allocatable | :: | error |
Error handling |
Determine rank and size of a communicator
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | comm |
MPI communicator handle, users of mpi_f08 pass comm%mpi_val |
||
| integer, | intent(out) | :: | rank |
Zero-based rank of the calling process |
||
| integer, | intent(out) | :: | nranks |
Number of processes in the communicator |
||
| type(error_type), | intent(out), | allocatable | :: | error |
Error handling |