Creates the backend and allocators for the backend this build targets, so that the solver driver (xcompact.f90) needs no backend-specific code.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| character(len=*), | public, | parameter | :: | backend_name | = | 'CUDA' |
Owns the backend and allocators. The pointer components alias concrete members of this same object, so instances must be declared with the TARGET attribute and must never be copied or assigned.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| class(base_backend_t), | public, | pointer | :: | backend | => | null() | |
| class(allocator_t), | public, | pointer | :: | allocator | => | null() | |
| type(allocator_t), | public, | pointer | :: | host_allocator | => | null() | |
| type(cuda_backend_t), | public | :: | cuda_backend | ||||
| type(cuda_allocator_t), | public | :: | cuda_allocator | ||||
| type(omptgt_backend_t), | public | :: | omptgt_backend | ||||
| type(omptgt_allocator_t), | public | :: | omptgt_allocator | ||||
| type(omp_backend_t), | public | :: | omp_backend | ||||
| type(allocator_t), | public | :: | omp_allocator |
| procedure, public :: init |