! ! Distributed Linear Algebra with Future (DLAF) ! ! Copyright (c) ETH Zurich ! All rights reserved. ! ! Please, refer to the LICENSE file in the root directory. ! SPDX-License-Identifier: BSD-3-Clause ! module dlaf_fortran !! DLA-Future Fortran interface use iso_fortran_env, only: dp => real64, sp => real32, i8 => int64 use iso_c_binding, only: & c_char, & c_double, & c_int, & c_loc, & c_ptr, & c_ptrdiff_t, & c_signed_char, & c_null_char implicit none private public :: dlaf_initialize, dlaf_finalize public :: dlaf_create_grid_from_blacs, dlaf_free_grid, dlaf_free_all_grids public :: dlaf_pspotrf, dlaf_pdpotrf, dlaf_pcpotrf, dlaf_pzpotrf public :: dlaf_pssyevd, dlaf_pdsyevd, dlaf_pcheevd, dlaf_pzheevd public :: dlaf_pssyevd_partial_spectrum, dlaf_pdsyevd_partial_spectrum public :: dlaf_pcheevd_partial_spectrum, dlaf_pzheevd_partial_spectrum public :: dlaf_pssygvd, dlaf_pdsygvd, dlaf_pchegvd, dlaf_pzhegvd public :: dlaf_pssygvd_partial_spectrum, dlaf_pdsygvd_partial_spectrum public :: dlaf_pchegvd_partial_spectrum, dlaf_pzhegvd_partial_spectrum public :: dlaf_pssygvd_factorized, dlaf_pdsygvd_factorized, dlaf_pchegvd_factorized, dlaf_pzhegvd_factorized public :: dlaf_pssygvd_partial_spectrum_factorized, dlaf_pdsygvd_partial_spectrum_factorized public :: dlaf_pchegvd_partial_spectrum_factorized, dlaf_pzhegvd_partial_spectrum_factorized contains subroutine dlaf_initialize() !! Initialize DLA-Future and pika !! !! @note !! If DLA-Future has already been initialized, this function does nothing. !! @endnote integer, parameter :: dlaf_argc = 1, pika_argc = 1 character(len=5, kind=c_char), allocatable, target :: dlaf_argv(:), pika_argv(:) type(c_ptr), allocatable, dimension(:) :: dlaf_argv_ptr, pika_argv_ptr interface subroutine dlaf_initialize_c(pika_argc_, pika_argv_, dlaf_argc_, dlaf_argv_) bind(C, name='dlaf_initialize') import :: c_ptr, c_int type(c_ptr), dimension(*) :: pika_argv_ type(c_ptr), dimension(*) :: dlaf_argv_ integer(kind=c_int), value :: pika_argc_ integer(kind=c_int), value :: dlaf_argc_ end subroutine dlaf_initialize_c end interface allocate (pika_argv(pika_argc)) pika_argv(1) = "dlaf"//c_null_char allocate (dlaf_argv(dlaf_argc)) dlaf_argv(1) = "dlaf"//c_null_char allocate (pika_argv_ptr(pika_argc)) pika_argv_ptr(1) = c_loc(pika_argv(1)) allocate (dlaf_argv_ptr(dlaf_argc)) dlaf_argv_ptr(1) = c_loc(dlaf_argv(1)) call dlaf_initialize_c(pika_argc, pika_argv_ptr, dlaf_argc, dlaf_argv_ptr) end subroutine dlaf_initialize subroutine dlaf_finalize() !! Finalize DLA-Future and pika !! !! @note !! If DLA-Future has already been finalized, this function does nothing. !! @endnote interface subroutine dlaf_finalize_c() bind(C, name='dlaf_finalize') end subroutine dlaf_finalize_c end interface call dlaf_finalize_c() end subroutine dlaf_finalize subroutine dlaf_create_grid_from_blacs(blacs_context) !! Create DLA-Future grid from existing BLACS context !! !! @warning !! The grid ordering is automatically inferred from the BLACS grid ordering. Only row-major and column-major !! grids are supported (created with `blacs_gridinit`). Grids created with `blacs_gridmap` are _not_ supported. !! @endwarning integer, intent(in) :: blacs_context !! BLACS context interface subroutine dlaf_create_grid_from_blacs_c(blacs_contxt) bind(C, name='dlaf_create_grid_from_blacs') import :: c_int integer(kind=c_int), value :: blacs_contxt end subroutine dlaf_create_grid_from_blacs_c end interface call dlaf_create_grid_from_blacs_c(blacs_context) end subroutine dlaf_create_grid_from_blacs subroutine dlaf_free_grid(blacs_context) !! Free DLA-Future grid corresponding to given BLACS context !! !! @warning !! Only the DLA-Future internal grid is freed. The associated BLACS grid will need to be freed explicitly !! with `blacs_gridexit`. !! @endwarning integer, intent(in) :: blacs_context !! BLACS context interface subroutine dlaf_free_grid_c(blacs_contxt) bind(C, name='dlaf_free_grid') import :: c_int integer(kind=c_int), value :: blacs_contxt end subroutine dlaf_free_grid_c end interface call dlaf_free_grid_c(blacs_context) end subroutine dlaf_free_grid subroutine dlaf_free_all_grids() !! Free all DLA-Future grids !! !! @warning !! Only the DLA-Future internal grid is freed. The associated BLACS grid will need to be freed separately !! @endwarning interface subroutine dlaf_free_all_grids_c() bind(C, name='dlaf_free_all_grids') end subroutine dlaf_free_all_grids_c end interface call dlaf_free_all_grids_c() end subroutine dlaf_free_all_grids subroutine dlaf_pspotrf(uplo, n, a, ia, ja, desca, info) !! Cholesky decomposition for a distributed single-precision real symmetric positive definite matrix \(\mathbf{A}\) !! {!docs/snippets/note-host-matrix.md!} character, intent(in) :: uplo !! {!docs/snippets/uplo.md!} integer, intent(in) :: n !! {!docs/snippets/n.md!} real(kind=sp), dimension(:, :), target, intent(inout) :: a !! {!docs/snippets/a.md!} integer, intent(in) :: ia !! {!docs/snippets/ia.md!} integer, intent(in) :: ja !! {!docs/snippets/ja.md!} integer, dimension(9), intent(in) :: desca !! {!docs/snippets/desca.md!} integer, target, intent(out) :: info !! {!docs/snippets/info.md!} interface subroutine dlaf_pspotrf_c(uplo_, n_, a_, ia_, ja_, desca_, info_) & bind(C, name='dlaf_pspotrf') import :: c_ptr, c_int, c_signed_char integer(kind=c_signed_char), value :: uplo_ integer(kind=c_int), value :: ia_, ja_, n_ type(c_ptr), value :: info_ integer(kind=c_int), dimension(*) :: desca_ type(c_ptr), value :: a_ end subroutine dlaf_pspotrf_c end interface call dlaf_pspotrf_c(iachar(uplo, c_signed_char), n, c_loc(a(1, 1)), ia, ja, desca, c_loc(info)) end subroutine dlaf_pspotrf subroutine dlaf_pdpotrf(uplo, n, a, ia, ja, desca, info) !! Cholesky decomposition for a distributed double-precision real symmetric positive definite matrix \(\mathbf{A}\) !! {!docs/snippets/note-host-matrix.md!} character, intent(in) :: uplo !! {!docs/snippets/uplo.md!} integer, intent(in) :: n !! {!docs/snippets/n.md!} real(kind=dp), dimension(:, :), target, intent(inout) :: a !! {!docs/snippets/a.md!} integer, intent(in) :: ia !! {!docs/snippets/ia.md!} integer, intent(in) :: ja !! {!docs/snippets/ja.md!} integer, dimension(9), intent(in) :: desca !! {!docs/snippets/desca.md!} integer, target, intent(out) :: info !! {!docs/snippets/info.md!} interface subroutine dlaf_pdpotrf_c(uplo_, n_, a_, ia_, ja_, desca_, info_) & bind(C, name='dlaf_pdpotrf') import :: c_ptr, c_int, c_double, c_signed_char integer(kind=c_signed_char), value :: uplo_ integer(kind=c_int), value :: ia_, ja_, n_ type(c_ptr), value :: info_ integer(kind=c_int), dimension(*) :: desca_ type(c_ptr), value :: a_ end subroutine dlaf_pdpotrf_c end interface call dlaf_pdpotrf_c(iachar(uplo, c_signed_char), n, c_loc(a(1, 1)), ia, ja, desca, c_loc(info)) end subroutine dlaf_pdpotrf subroutine dlaf_pcpotrf(uplo, n, a, ia, ja, desca, info) !! Cholesky decomposition for a distributed single-precision complex Hermitian positive definite matrix \(\mathbf{A}\) !! {!docs/snippets/note-host-matrix.md!} character, intent(in) :: uplo !! {!docs/snippets/uplo.md!} integer, intent(in) :: n !! {!docs/snippets/n.md!} complex(kind=sp), dimension(:, :), target, intent(inout) :: a !! {!docs/snippets/a.md!} integer, intent(in) :: ia !! {!docs/snippets/ia.md!} integer, intent(in) :: ja !! {!docs/snippets/ja.md!} integer, dimension(9), intent(in) :: desca !! {!docs/snippets/desca.md!} integer, target, intent(out) :: info !! {!docs/snippets/info.md!} interface subroutine dlaf_pcpotrf_c(uplo_, n_, a_, ia_, ja_, desca_, info_) & bind(C, name='dlaf_pcpotrf') import :: c_ptr, c_int, c_signed_char integer(kind=c_signed_char), value :: uplo_ integer(kind=c_int), value :: ia_, ja_, n_ type(c_ptr), value :: info_ integer(kind=c_int), dimension(*) :: desca_ type(c_ptr), value :: a_ end subroutine dlaf_pcpotrf_c end interface call dlaf_pcpotrf_c(iachar(uplo, c_signed_char), n, c_loc(a(1, 1)), ia, ja, desca, c_loc(info)) end subroutine dlaf_pcpotrf subroutine dlaf_pzpotrf(uplo, n, a, ia, ja, desca, info) !! Cholesky decomposition for a distributed double-precision complex Hermitian positive definite matrix \(\mathbf{A}\) !! {!docs/snippets/note-host-matrix.md!} character, intent(in) :: uplo !! {!docs/snippets/uplo.md!} integer, intent(in) :: n !! {!docs/snippets/n.md!} complex(kind=dp), dimension(:, :), target, intent(inout) :: a !! {!docs/snippets/a.md!} integer, intent(in) :: ia !! {!docs/snippets/ia.md!} integer, intent(in) :: ja !! {!docs/snippets/ja.md!} integer, dimension(9), intent(in) :: desca !! {!docs/snippets/desca.md!} integer, target, intent(out) :: info !! {!docs/snippets/info.md!} interface subroutine dlaf_pzpotrf_c(uplo_, n_, a_, ia_, ja_, desca_, info_) & bind(C, name='dlaf_pzpotrf') import :: c_ptr, c_int, c_signed_char integer(kind=c_signed_char), value :: uplo_ integer(kind=c_int), value :: ia_, ja_, n_ type(c_ptr), value :: info_ integer(kind=c_int), dimension(*) :: desca_ type(c_ptr), value :: a_ end subroutine dlaf_pzpotrf_c end interface call dlaf_pzpotrf_c(iachar(uplo, c_signed_char), n, c_loc(a(1, 1)), ia, ja, desca, c_loc(info)) end subroutine dlaf_pzpotrf subroutine dlaf_pssyevd(uplo, n, a, ia, ja, desca, w, z, iz, jz, descz, info) !! {!docs/snippets/pssyevd.md!} !! {!docs/snippets/note-host-matrix.md!} !! {!docs/snippets/note-local-evals.md!} !! {!docs/snippets/note-pika.md!} character, intent(in) :: uplo !! {!docs/snippets/uplo-w-note.md!} integer, intent(in) :: n !! {!docs/snippets/n.md!} real(kind=sp), dimension(:, :), target, intent(inout) :: a !! {!docs/snippets/a.md!} integer, intent(in) :: ia !! {!docs/snippets/ia.md!} integer, intent(in) :: ja !! {!docs/snippets/ja.md!} integer, dimension(9), intent(in) :: desca !! {!docs/snippets/desca.md!} real(kind=sp), dimension(:), target, intent(out) :: w !! {!docs/snippets/w.md!} real(kind=sp), dimension(:, :), target, intent(inout) :: z !! {!docs/snippets/z.md!} integer, intent(in) :: iz !! {!docs/snippets/iz.md!} integer, intent(in) :: jz !! {!docs/snippets/jz.md!} integer, dimension(9), intent(in) :: descz !! {!docs/snippets/descz.md!} integer, target, intent(out) :: info !! {!docs/snippets/info.md!} interface subroutine dlaf_pssyevd_c(uplo_, n_, a_, ia_, ja_, desca_, w_, z_, iz_, jz_, descz_, info_) & bind(C, name='dlaf_pssyevd') import :: c_int, c_ptr, c_signed_char integer(kind=c_signed_char), value :: uplo_ integer(kind=c_int), value :: n_, ia_, ja_, iz_, jz_ type(c_ptr), value :: a_, w_, z_ integer(kind=c_int), dimension(9) :: desca_, descz_ type(c_ptr), value :: info_ end subroutine dlaf_pssyevd_c end interface info = -1 call dlaf_pssyevd_c(iachar(uplo, c_signed_char), n, & c_loc(a(1, 1)), ia, ja, desca, & c_loc(w(1)), & c_loc(z(1, 1)), iz, jz, descz, & c_loc(info) & ) end subroutine dlaf_pssyevd subroutine dlaf_pssyevd_partial_spectrum(uplo, n, a, ia, ja, desca, w, z, iz, jz, descz, il, iu, info) !! {!docs/snippets/pssyevd.md!} !! {!docs/snippets/note-host-matrix.md!} !! {!docs/snippets/note-local-evals.md!} !! {!docs/snippets/note-pika.md!} character, intent(in) :: uplo !! {!docs/snippets/uplo-w-note.md!} integer, intent(in) :: n !! {!docs/snippets/n.md!} real(kind=sp), dimension(:, :), target, intent(inout) :: a !! {!docs/snippets/a.md!} integer, intent(in) :: ia !! {!docs/snippets/ia.md!} integer, intent(in) :: ja !! {!docs/snippets/ja.md!} integer, dimension(9), intent(in) :: desca !! {!docs/snippets/desca.md!} real(kind=sp), dimension(:), target, intent(out) :: w !! {!docs/snippets/w.md!} real(kind=sp), dimension(:, :), target, intent(inout) :: z !! {!docs/snippets/z.md!} integer, intent(in) :: iz !! {!docs/snippets/iz.md!} integer, intent(in) :: jz !! {!docs/snippets/jz.md!} integer, dimension(9), intent(in) :: descz !! {!docs/snippets/descz.md!} integer(kind=i8), intent(in) :: il !! {!docs/snippets/il.md!} integer(kind=i8), intent(in) :: iu !! {!docs/snippets/iu.md!} integer, target, intent(out) :: info !! {!docs/snippets/info.md!} interface subroutine dlaf_pssyevd_ps_c(uplo_, n_, a_, ia_, ja_, desca_, w_, z_, iz_, jz_, descz_, il_, iu_, info_) & bind(C, name='dlaf_pssyevd_partial_spectrum') import :: c_int, c_ptr, c_signed_char, c_ptrdiff_t integer(kind=c_signed_char), value :: uplo_ integer(kind=c_int), value :: n_, ia_, ja_, iz_, jz_ integer(kind=c_ptrdiff_t), value :: il_, iu_ type(c_ptr), value :: a_, w_, z_ integer(kind=c_int), dimension(9) :: desca_, descz_ type(c_ptr), value :: info_ end subroutine dlaf_pssyevd_ps_c end interface info = -1 call dlaf_pssyevd_ps_c(iachar(uplo, c_signed_char), n, & c_loc(a(1, 1)), ia, ja, desca, & c_loc(w(1)), & c_loc(z(1, 1)), iz, jz, descz, & il, iu, & c_loc(info) & ) end subroutine dlaf_pssyevd_partial_spectrum subroutine dlaf_pdsyevd(uplo, n, a, ia, ja, desca, w, z, iz, jz, descz, info) !! {!docs/snippets/pdsyevd.md!} !! {!docs/snippets/note-host-matrix.md!} !! {!docs/snippets/note-local-evals.md!} !! {!docs/snippets/note-pika.md!} character, intent(in) :: uplo !! {!docs/snippets/uplo-w-note.md!} integer, intent(in) :: n !! {!docs/snippets/n.md!} real(kind=dp), dimension(:, :), target, intent(inout) :: a !! {!docs/snippets/a.md!} integer, intent(in) :: ia !! {!docs/snippets/ia.md!} integer, intent(in) :: ja !! {!docs/snippets/ja.md!} integer, dimension(9), intent(in) :: desca !! {!docs/snippets/desca.md!} real(kind=dp), dimension(:), target, intent(out) :: w !! {!docs/snippets/w.md!} real(kind=dp), dimension(:, :), target, intent(inout) :: z !! {!docs/snippets/z.md!} integer, intent(in) :: iz !! {!docs/snippets/iz.md!} integer, intent(in) :: jz !! {!docs/snippets/jz.md!} integer, dimension(9), intent(in) :: descz !! {!docs/snippets/descz.md!} integer, target, intent(out) :: info !! {!docs/snippets/info.md!} interface subroutine dlaf_pdsyevd_c(uplo_, n_, a_, ia_, ja_, desca_, w_, z_, iz_, jz_, descz_, info_) & bind(C, name='dlaf_pdsyevd') import :: c_int, c_ptr, c_signed_char integer(kind=c_signed_char), value :: uplo_ integer(kind=c_int), value :: n_, ia_, ja_, iz_, jz_ type(c_ptr), value :: a_, w_, z_ integer(kind=c_int), dimension(9) :: desca_, descz_ type(c_ptr), value :: info_ end subroutine dlaf_pdsyevd_c end interface info = -1 call dlaf_pdsyevd_c(iachar(uplo, c_signed_char), n, & c_loc(a(1, 1)), ia, ja, desca, & c_loc(w(1)), & c_loc(z(1, 1)), iz, jz, descz, & c_loc(info) & ) end subroutine dlaf_pdsyevd subroutine dlaf_pdsyevd_partial_spectrum(uplo, n, a, ia, ja, desca, w, z, iz, jz, descz, il, iu, info) !! {!docs/snippets/pdsyevd.md!} !! {!docs/snippets/note-host-matrix.md!} !! {!docs/snippets/note-local-evals.md!} !! {!docs/snippets/note-pika.md!} character, intent(in) :: uplo !! {!docs/snippets/uplo-w-note.md!} integer, intent(in) :: n !! {!docs/snippets/n.md!} real(kind=dp), dimension(:, :), target, intent(inout) :: a !! {!docs/snippets/a.md!} integer, intent(in) :: ia !! {!docs/snippets/ia.md!} integer, intent(in) :: ja !! {!docs/snippets/ja.md!} integer, dimension(9), intent(in) :: desca !! {!docs/snippets/desca.md!} real(kind=dp), dimension(:), target, intent(out) :: w !! {!docs/snippets/w.md!} real(kind=dp), dimension(:, :), target, intent(inout) :: z !! {!docs/snippets/z.md!} integer, intent(in) :: iz !! {!docs/snippets/iz.md!} integer, intent(in) :: jz !! {!docs/snippets/jz.md!} integer, dimension(9), intent(in) :: descz !! {!docs/snippets/descz.md!} integer(kind=i8), intent(in) :: il !! {!docs/snippets/il.md!} integer(kind=i8), intent(in) :: iu !! {!docs/snippets/iu.md!} integer, target, intent(out) :: info !! {!docs/snippets/info.md!} interface subroutine dlaf_pdsyevd_ps_c(uplo_, n_, a_, ia_, ja_, desca_, w_, z_, iz_, jz_, descz_, il_, iu_, info_) & bind(C, name='dlaf_pdsyevd_partial_spectrum') import :: c_int, c_ptr, c_signed_char, c_ptrdiff_t integer(kind=c_signed_char), value :: uplo_ integer(kind=c_int), value :: n_, ia_, ja_, iz_, jz_ integer(kind=c_ptrdiff_t), value :: il_, iu_ type(c_ptr), value :: a_, w_, z_ integer(kind=c_int), dimension(9) :: desca_, descz_ type(c_ptr), value :: info_ end subroutine dlaf_pdsyevd_ps_c end interface info = -1 call dlaf_pdsyevd_ps_c(iachar(uplo, c_signed_char), n, & c_loc(a(1, 1)), ia, ja, desca, & c_loc(w(1)), & c_loc(z(1, 1)), iz, jz, descz, & il, iu, & c_loc(info) & ) end subroutine dlaf_pdsyevd_partial_spectrum subroutine dlaf_pcheevd(uplo, n, a, ia, ja, desca, w, z, iz, jz, descz, info) !! {!docs/snippets/pcheevd.md!} !! {!docs/snippets/note-host-matrix.md!} !! {!docs/snippets/note-local-evals.md!} !! {!docs/snippets/note-pika.md!} character, intent(in) :: uplo !! {!docs/snippets/uplo-w-note.md!} integer, intent(in) :: n !! {!docs/snippets/n.md!} complex(kind=sp), dimension(:, :), target, intent(inout) :: a !! {!docs/snippets/a.md!} integer, intent(in) :: ia !! {!docs/snippets/ia.md!} integer, intent(in) :: ja !! {!docs/snippets/ja.md!} integer, dimension(9), intent(in) :: desca !! {!docs/snippets/desca.md!} real(kind=sp), dimension(:), target, intent(out) :: w !! {!docs/snippets/w.md!} complex(kind=sp), dimension(:, :), target, intent(inout) :: z !! {!docs/snippets/z.md!} integer, intent(in) :: iz !! {!docs/snippets/iz.md!} integer, intent(in) :: jz !! {!docs/snippets/jz.md!} integer, dimension(9), intent(in) :: descz !! {!docs/snippets/descz.md!} integer, target, intent(out) :: info !! {!docs/snippets/info.md!} interface subroutine dlaf_pcheevd_c(uplo_, n_, a_, ia_, ja_, desca_, w_, z_, iz_, jz_, descz_, info_) & bind(C, name='dlaf_pcheevd') import :: c_int, c_ptr, c_signed_char integer(kind=c_signed_char), value :: uplo_ integer(kind=c_int), value :: n_, ia_, ja_, iz_, jz_ type(c_ptr), value :: a_, w_, z_ integer(kind=c_int), dimension(9) :: desca_, descz_ type(c_ptr), value :: info_ end subroutine dlaf_pcheevd_c end interface info = -1 call dlaf_pcheevd_c(iachar(uplo, c_signed_char), n, & c_loc(a(1, 1)), ia, ja, desca, & c_loc(w(1)), & c_loc(z(1, 1)), iz, jz, descz, & c_loc(info) & ) end subroutine dlaf_pcheevd subroutine dlaf_pcheevd_partial_spectrum(uplo, n, a, ia, ja, desca, w, z, iz, jz, descz, il, iu, info) !! {!docs/snippets/pcheevd.md!} !! {!docs/snippets/note-host-matrix.md!} !! {!docs/snippets/note-local-evals.md!} !! {!docs/snippets/note-pika.md!} character, intent(in) :: uplo !! {!docs/snippets/uplo-w-note.md!} integer, intent(in) :: n !! {!docs/snippets/n.md!} complex(kind=sp), dimension(:, :), target, intent(inout) :: a !! {!docs/snippets/a.md!} integer, intent(in) :: ia !! {!docs/snippets/ia.md!} integer, intent(in) :: ja !! {!docs/snippets/ja.md!} integer, dimension(9), intent(in) :: desca !! {!docs/snippets/desca.md!} real(kind=sp), dimension(:), target, intent(out) :: w !! {!docs/snippets/w.md!} complex(kind=sp), dimension(:, :), target, intent(inout) :: z !! {!docs/snippets/z.md!} integer, intent(in) :: iz !! {!docs/snippets/iz.md!} integer, intent(in) :: jz !! {!docs/snippets/jz.md!} integer, dimension(9), intent(in) :: descz !! {!docs/snippets/descz.md!} integer(kind=i8), intent(in) :: il !! {!docs/snippets/il.md!} integer(kind=i8), intent(in) :: iu !! {!docs/snippets/iu.md!} integer, target, intent(out) :: info !! {!docs/snippets/info.md!} interface subroutine dlaf_pcheevd_ps_c(uplo_, n_, a_, ia_, ja_, desca_, w_, z_, iz_, jz_, descz_, il_, iu_, info_) & bind(C, name='dlaf_pcheevd_partial_spectrum') import :: c_int, c_ptr, c_signed_char, c_ptrdiff_t integer(kind=c_signed_char), value :: uplo_ integer(kind=c_int), value :: n_, ia_, ja_, iz_, jz_ integer(kind=c_ptrdiff_t), value :: il_, iu_ type(c_ptr), value :: a_, w_, z_ integer(kind=c_int), dimension(9) :: desca_, descz_ type(c_ptr), value :: info_ end subroutine dlaf_pcheevd_ps_c end interface info = -1 call dlaf_pcheevd_ps_c(iachar(uplo, c_signed_char), n, & c_loc(a(1, 1)), ia, ja, desca, & c_loc(w(1)), & c_loc(z(1, 1)), iz, jz, descz, & il, iu, & c_loc(info) & ) end subroutine dlaf_pcheevd_partial_spectrum subroutine dlaf_pzheevd(uplo, n, a, ia, ja, desca, w, z, iz, jz, descz, info) !! {!docs/snippets/pzheevd.md!} !! {!docs/snippets/note-host-matrix.md!} !! {!docs/snippets/note-local-evals.md!} !! {!docs/snippets/note-pika.md!} character, intent(in) :: uplo !! {!docs/snippets/uplo-w-note.md!} integer, intent(in) :: n !! {!docs/snippets/n.md!} complex(kind=dp), dimension(:, :), target, intent(inout) :: a !! {!docs/snippets/a.md!} integer, intent(in) :: ia !! {!docs/snippets/ia.md!} integer, intent(in) :: ja !! {!docs/snippets/ja.md!} integer, dimension(9), intent(in) :: desca !! {!docs/snippets/desca.md!} real(kind=dp), dimension(:), target, intent(out) :: w !! {!docs/snippets/w.md!} complex(kind=dp), dimension(:, :), target, intent(inout) :: z !! {!docs/snippets/z.md!} integer, intent(in) :: iz !! {!docs/snippets/iz.md!} integer, intent(in) :: jz !! {!docs/snippets/jz.md!} integer, dimension(9), intent(in) :: descz !! {!docs/snippets/descz.md!} integer, target, intent(out) :: info !! {!docs/snippets/info.md!} interface subroutine dlaf_pzheevd_c(uplo_, n_, a_, ia_, ja_, desca_, w_, z_, iz_, jz_, descz_, info_) & bind(C, name='dlaf_pzheevd') import :: c_int, c_ptr, c_signed_char integer(kind=c_signed_char), value :: uplo_ integer(kind=c_int), value :: n_, ia_, ja_, iz_, jz_ type(c_ptr), value :: a_, w_, z_ integer(kind=c_int), dimension(9) :: desca_, descz_ type(c_ptr), value :: info_ end subroutine dlaf_pzheevd_c end interface info = -1 call dlaf_pzheevd_c(iachar(uplo, c_signed_char), n, & c_loc(a(1, 1)), ia, ja, desca, & c_loc(w(1)), & c_loc(z(1, 1)), iz, jz, descz, & c_loc(info) & ) end subroutine dlaf_pzheevd subroutine dlaf_pzheevd_partial_spectrum(uplo, n, a, ia, ja, desca, w, z, iz, jz, descz, il, iu, info) !! {!docs/snippets/pzheevd.md!} !! {!docs/snippets/note-host-matrix.md!} !! {!docs/snippets/note-local-evals.md!} !! {!docs/snippets/note-pika.md!} character, intent(in) :: uplo !! {!docs/snippets/uplo-w-note.md!} integer, intent(in) :: n !! {!docs/snippets/n.md!} complex(kind=dp), dimension(:, :), target, intent(inout) :: a !! {!docs/snippets/a.md!} integer, intent(in) :: ia !! {!docs/snippets/ia.md!} integer, intent(in) :: ja !! {!docs/snippets/ja.md!} integer, dimension(9), intent(in) :: desca !! {!docs/snippets/desca.md!} real(kind=dp), dimension(:), target, intent(out) :: w !! {!docs/snippets/w.md!} complex(kind=dp), dimension(:, :), target, intent(inout) :: z !! {!docs/snippets/z.md!} integer, intent(in) :: iz !! {!docs/snippets/iz.md!} integer, intent(in) :: jz !! {!docs/snippets/jz.md!} integer, dimension(9), intent(in) :: descz !! {!docs/snippets/descz.md!} integer(kind=i8), intent(in) :: il !! {!docs/snippets/il.md!} integer(kind=i8), intent(in) :: iu !! {!docs/snippets/iu.md!} integer, target, intent(out) :: info !! {!docs/snippets/info.md!} interface subroutine dlaf_pzheevd_ps_c(uplo_, n_, a_, ia_, ja_, desca_, w_, z_, iz_, jz_, descz_, il_, iu_, info_) & bind(C, name='dlaf_pzheevd_partial_spectrum') import :: c_int, c_ptr, c_signed_char, c_ptrdiff_t integer(kind=c_signed_char), value :: uplo_ integer(kind=c_int), value :: n_, ia_, ja_, iz_, jz_ integer(kind=c_ptrdiff_t), value :: il_, iu_ type(c_ptr), value :: a_, w_, z_ integer(kind=c_int), dimension(9) :: desca_, descz_ type(c_ptr), value :: info_ end subroutine dlaf_pzheevd_ps_c end interface info = -1 call dlaf_pzheevd_ps_c(iachar(uplo, c_signed_char), n, & c_loc(a(1, 1)), ia, ja, desca, & c_loc(w(1)), & c_loc(z(1, 1)), iz, jz, descz, & il, iu, & c_loc(info) & ) end subroutine dlaf_pzheevd_partial_spectrum subroutine dlaf_pssygvd(uplo, n, a, ia, ja, desca, b, ib, jb, descb, w, z, iz, jz, descz, info) !! {!docs/snippets/pssygvd.md!} !! {!docs/snippets/note-host-matrix.md!} !! {!docs/snippets/note-local-evals.md!} !! {!docs/snippets/note-pika.md!} character, intent(in) :: uplo !! {!docs/snippets/uplo-w-note.md!} integer, intent(in) :: n !! {!docs/snippets/n.md!} real(kind=sp), dimension(:, :), target, intent(inout) :: a !! {!docs/snippets/a.md!} integer, intent(in) :: ia !! {!docs/snippets/ia.md!} integer, intent(in) :: ja !! {!docs/snippets/ja.md!} integer, dimension(9), intent(in) :: desca !! {!docs/snippets/desca.md!} real(kind=sp), dimension(:, :), target, intent(inout) :: b !! {!docs/snippets/b.md!} integer, intent(in) :: ib !! {!docs/snippets/ib.md!} integer, intent(in) :: jb !! {!docs/snippets/jb.md!} integer, dimension(9), intent(in) :: descb !! {!docs/snippets/descb.md!} real(kind=sp), dimension(:), target, intent(out) :: w !! {!docs/snippets/w.md!} real(kind=sp), dimension(:, :), target, intent(inout) :: z !! {!docs/snippets/z.md!} integer, intent(in) :: iz !! {!docs/snippets/iz.md!} integer, intent(in) :: jz !! {!docs/snippets/jz.md!} integer, dimension(9), intent(in) :: descz !! {!docs/snippets/descz.md!} integer, target, intent(out) :: info !! {!docs/snippets/info.md!} interface subroutine dlaf_pssygvd_c(uplo_, n_, a_, ia_, ja_, desca_, b_, ib_, jb_, descb_, w_, z_, iz_, jz_, descz_, info_) & bind(C, name='dlaf_pssygvd') import :: c_int, c_ptr, c_signed_char integer(kind=c_signed_char), value :: uplo_ integer(kind=c_int), value :: n_, ia_, ja_, ib_, jb_, iz_, jz_ type(c_ptr), value :: a_, b_, w_, z_ integer(kind=c_int), dimension(9) :: desca_, descb_, descz_ type(c_ptr), value :: info_ end subroutine dlaf_pssygvd_c end interface info = -1 call dlaf_pssygvd_c(iachar(uplo, c_signed_char), n, & c_loc(a(1, 1)), ia, ja, desca, & c_loc(b(1, 1)), ib, jb, descb, & c_loc(w(1)), & c_loc(z(1, 1)), iz, jz, descz, & c_loc(info) & ) end subroutine dlaf_pssygvd subroutine dlaf_pssygvd_partial_spectrum(uplo, n, a, ia, ja, desca, b, ib, jb, descb, w, z, iz, jz, descz, il, iu, info) !! {!docs/snippets/pssygvd.md!} !! {!docs/snippets/note-host-matrix.md!} !! {!docs/snippets/note-local-evals.md!} !! {!docs/snippets/note-pika.md!} character, intent(in) :: uplo !! {!docs/snippets/uplo-w-note.md!} integer, intent(in) :: n !! {!docs/snippets/n.md!} real(kind=sp), dimension(:, :), target, intent(inout) :: a !! {!docs/snippets/a.md!} integer, intent(in) :: ia !! {!docs/snippets/ia.md!} integer, intent(in) :: ja !! {!docs/snippets/ja.md!} integer, dimension(9), intent(in) :: desca !! {!docs/snippets/desca.md!} real(kind=sp), dimension(:, :), target, intent(inout) :: b !! {!docs/snippets/b.md!} integer, intent(in) :: ib !! {!docs/snippets/ib.md!} integer, intent(in) :: jb !! {!docs/snippets/jb.md!} integer, dimension(9), intent(in) :: descb !! {!docs/snippets/descb.md!} real(kind=sp), dimension(:), target, intent(out) :: w !! {!docs/snippets/w.md!} real(kind=sp), dimension(:, :), target, intent(inout) :: z !! {!docs/snippets/z.md!} integer, intent(in) :: iz !! {!docs/snippets/iz.md!} integer, intent(in) :: jz !! {!docs/snippets/jz.md!} integer, dimension(9), intent(in) :: descz !! {!docs/snippets/descz.md!} integer(kind=i8), intent(in) :: il !! {!docs/snippets/il.md!} integer(kind=i8), intent(in) :: iu !! {!docs/snippets/iu.md!} integer, target, intent(out) :: info !! {!docs/snippets/info.md!} interface subroutine dlaf_pssygvd_ps_c(uplo_, n_, a_, ia_, ja_, desca_, b_, ib_, jb_, descb_, w_, z_, iz_, jz_, descz_, il_, iu_, info_) & bind(C, name='dlaf_pssygvd_partial_spectrum') import :: c_int, c_ptr, c_signed_char, c_ptrdiff_t integer(kind=c_signed_char), value :: uplo_ integer(kind=c_int), value :: n_, ia_, ja_, ib_, jb_, iz_, jz_ integer(kind=c_ptrdiff_t), value :: il_, iu_ type(c_ptr), value :: a_, b_, w_, z_ integer(kind=c_int), dimension(9) :: desca_, descb_, descz_ type(c_ptr), value :: info_ end subroutine dlaf_pssygvd_ps_c end interface info = -1 call dlaf_pssygvd_ps_c(iachar(uplo, c_signed_char), n, & c_loc(a(1, 1)), ia, ja, desca, & c_loc(b(1, 1)), ib, jb, descb, & c_loc(w(1)), & c_loc(z(1, 1)), iz, jz, descz, & il, iu, & c_loc(info) & ) end subroutine dlaf_pssygvd_partial_spectrum subroutine dlaf_pssygvd_factorized(uplo, n, a, ia, ja, desca, b, ib, jb, descb, w, z, iz, jz, descz, info) !! {!docs/snippets/pssygvd.md!} !! {!docs/snippets/note-host-matrix.md!} !! {!docs/snippets/note-local-evals.md!} !! {!docs/snippets/note-pika.md!} !! {!docs/snippets/note-b-factorized.md!} character, intent(in) :: uplo !! {!docs/snippets/uplo-w-note.md!} integer, intent(in) :: n !! {!docs/snippets/n.md!} real(kind=sp), dimension(:, :), target, intent(inout) :: a !! {!docs/snippets/a.md!} integer, intent(in) :: ia !! {!docs/snippets/ia.md!} integer, intent(in) :: ja !! {!docs/snippets/ja.md!} integer, dimension(9), intent(in) :: desca !! {!docs/snippets/desca.md!} real(kind=sp), dimension(:, :), target, intent(inout) :: b !! {!docs/snippets/b.md!} integer, intent(in) :: ib !! {!docs/snippets/ib.md!} integer, intent(in) :: jb !! {!docs/snippets/jb.md!} integer, dimension(9), intent(in) :: descb !! {!docs/snippets/descb.md!} real(kind=sp), dimension(:), target, intent(out) :: w !! {!docs/snippets/w.md!} real(kind=sp), dimension(:, :), target, intent(inout) :: z !! {!docs/snippets/z.md!} integer, intent(in) :: iz !! {!docs/snippets/iz.md!} integer, intent(in) :: jz !! {!docs/snippets/jz.md!} integer, dimension(9), intent(in) :: descz !! {!docs/snippets/descz.md!} integer, target, intent(out) :: info !! {!docs/snippets/info.md!} interface subroutine dlaf_pssygvd_factorized_c( & uplo_, n_, a_, ia_, ja_, desca_, b_, ib_, jb_, descb_, w_, z_, iz_, jz_, descz_, info_ & ) & bind(C, name='dlaf_pssygvd_factorized') import :: c_int, c_ptr, c_signed_char integer(kind=c_signed_char), value :: uplo_ integer(kind=c_int), value :: n_, ia_, ja_, ib_, jb_, iz_, jz_ type(c_ptr), value :: a_, b_, w_, z_ integer(kind=c_int), dimension(9) :: desca_, descb_, descz_ type(c_ptr), value :: info_ end subroutine dlaf_pssygvd_factorized_c end interface info = -1 call dlaf_pssygvd_factorized_c(iachar(uplo, c_signed_char), n, & c_loc(a(1, 1)), ia, ja, desca, & c_loc(b(1, 1)), ib, jb, descb, & c_loc(w(1)), & c_loc(z(1, 1)), iz, jz, descz, & c_loc(info) & ) end subroutine dlaf_pssygvd_factorized subroutine dlaf_pssygvd_partial_spectrum_factorized(uplo, n, a, ia, ja, desca, b, ib, jb, descb, w, z, iz, jz, descz, il, iu, info) !! {!docs/snippets/pssygvd.md!} !! {!docs/snippets/note-host-matrix.md!} !! {!docs/snippets/note-local-evals.md!} !! {!docs/snippets/note-pika.md!} !! {!docs/snippets/note-b-factorized.md!} character, intent(in) :: uplo !! {!docs/snippets/uplo-w-note.md!} integer, intent(in) :: n !! {!docs/snippets/n.md!} real(kind=sp), dimension(:, :), target, intent(inout) :: a !! {!docs/snippets/a.md!} integer, intent(in) :: ia !! {!docs/snippets/ia.md!} integer, intent(in) :: ja !! {!docs/snippets/ja.md!} integer, dimension(9), intent(in) :: desca !! {!docs/snippets/desca.md!} real(kind=sp), dimension(:, :), target, intent(inout) :: b !! {!docs/snippets/b.md!} integer, intent(in) :: ib !! {!docs/snippets/ib.md!} integer, intent(in) :: jb !! {!docs/snippets/jb.md!} integer, dimension(9), intent(in) :: descb !! {!docs/snippets/descb.md!} real(kind=sp), dimension(:), target, intent(out) :: w !! {!docs/snippets/w.md!} real(kind=sp), dimension(:, :), target, intent(inout) :: z !! {!docs/snippets/z.md!} integer, intent(in) :: iz !! {!docs/snippets/iz.md!} integer, intent(in) :: jz !! {!docs/snippets/jz.md!} integer, dimension(9), intent(in) :: descz !! {!docs/snippets/descz.md!} integer(kind=i8), intent(in) :: il !! {!docs/snippets/il.md!} integer(kind=i8), intent(in) :: iu !! {!docs/snippets/iu.md!} integer, target, intent(out) :: info !! {!docs/snippets/info.md!} interface subroutine dlaf_pssygvd_ps_factorized_c( & uplo_, n_, a_, ia_, ja_, desca_, b_, ib_, jb_, descb_, w_, z_, iz_, jz_, descz_, il_, iu_, info_ & ) & bind(C, name='dlaf_pssygvd_partial_spectrum_factorized') import :: c_int, c_ptr, c_signed_char, c_ptrdiff_t integer(kind=c_signed_char), value :: uplo_ integer(kind=c_int), value :: n_, ia_, ja_, ib_, jb_, iz_, jz_ integer(kind=c_ptrdiff_t), value :: il_, iu_ type(c_ptr), value :: a_, b_, w_, z_ integer(kind=c_int), dimension(9) :: desca_, descb_, descz_ type(c_ptr), value :: info_ end subroutine dlaf_pssygvd_ps_factorized_c end interface info = -1 call dlaf_pssygvd_ps_factorized_c(iachar(uplo, c_signed_char), n, & c_loc(a(1, 1)), ia, ja, desca, & c_loc(b(1, 1)), ib, jb, descb, & c_loc(w(1)), & c_loc(z(1, 1)), iz, jz, descz, & il, iu, & c_loc(info) & ) end subroutine dlaf_pssygvd_partial_spectrum_factorized subroutine dlaf_pdsygvd(uplo, n, a, ia, ja, desca, b, ib, jb, descb, w, z, iz, jz, descz, info) !! {!docs/snippets/pdsygvd.md!} !! {!docs/snippets/note-host-matrix.md!} !! {!docs/snippets/note-local-evals.md!} !! {!docs/snippets/note-pika.md!} character, intent(in) :: uplo !! {!docs/snippets/uplo-w-note.md!} integer, intent(in) :: n !! {!docs/snippets/n.md!} real(kind=dp), dimension(:, :), target, intent(inout) :: a !! {!docs/snippets/a.md!} integer, intent(in) :: ia !! {!docs/snippets/ia.md!} integer, intent(in) :: ja !! {!docs/snippets/ja.md!} integer, dimension(9), intent(in) :: desca !! {!docs/snippets/desca.md!} real(kind=dp), dimension(:, :), target, intent(inout) :: b !! {!docs/snippets/b.md!} integer, intent(in) :: ib !! {!docs/snippets/ib.md!} integer, intent(in) :: jb !! {!docs/snippets/jb.md!} integer, dimension(9), intent(in) :: descb !! {!docs/snippets/descb.md!} real(kind=dp), dimension(:), target, intent(out) :: w !! {!docs/snippets/w.md!} real(kind=dp), dimension(:, :), target, intent(inout) :: z !! {!docs/snippets/z.md!} integer, intent(in) :: iz !! {!docs/snippets/iz.md!} integer, intent(in) :: jz !! {!docs/snippets/jz.md!} integer, dimension(9), intent(in) :: descz !! {!docs/snippets/descz.md!} integer, target, intent(out) :: info !! {!docs/snippets/info.md!} interface subroutine dlaf_pdsygvd_c(uplo_, n_, a_, ia_, ja_, desca_, b_, ib_, jb_, descb_, w_, z_, iz_, jz_, descz_, info_) & bind(C, name='dlaf_pdsygvd') import :: c_int, c_ptr, c_signed_char integer(kind=c_signed_char), value :: uplo_ integer(kind=c_int), value :: n_, ia_, ja_, ib_, jb_, iz_, jz_ type(c_ptr), value :: a_, b_, w_, z_ integer(kind=c_int), dimension(9) :: desca_, descb_, descz_ type(c_ptr), value :: info_ end subroutine dlaf_pdsygvd_c end interface info = -1 call dlaf_pdsygvd_c(iachar(uplo, c_signed_char), n, & c_loc(a(1, 1)), ia, ja, desca, & c_loc(b(1, 1)), ib, jb, descb, & c_loc(w(1)), & c_loc(z(1, 1)), iz, jz, descz, & c_loc(info) & ) end subroutine dlaf_pdsygvd subroutine dlaf_pdsygvd_partial_spectrum(uplo, n, a, ia, ja, desca, b, ib, jb, descb, w, z, iz, jz, descz, il, iu, info) !! {!docs/snippets/pdsygvd.md!} !! {!docs/snippets/note-host-matrix.md!} !! {!docs/snippets/note-local-evals.md!} !! {!docs/snippets/note-pika.md!} character, intent(in) :: uplo !! {!docs/snippets/uplo-w-note.md!} integer, intent(in) :: n !! {!docs/snippets/n.md!} real(kind=dp), dimension(:, :), target, intent(inout) :: a !! {!docs/snippets/a.md!} integer, intent(in) :: ia !! {!docs/snippets/ia.md!} integer, intent(in) :: ja !! {!docs/snippets/ja.md!} integer, dimension(9), intent(in) :: desca !! {!docs/snippets/desca.md!} real(kind=dp), dimension(:, :), target, intent(inout) :: b !! {!docs/snippets/b.md!} integer, intent(in) :: ib !! {!docs/snippets/ib.md!} integer, intent(in) :: jb !! {!docs/snippets/jb.md!} integer, dimension(9), intent(in) :: descb !! {!docs/snippets/descb.md!} real(kind=dp), dimension(:), target, intent(out) :: w !! {!docs/snippets/w.md!} real(kind=dp), dimension(:, :), target, intent(inout) :: z !! {!docs/snippets/z.md!} integer, intent(in) :: iz !! {!docs/snippets/iz.md!} integer, intent(in) :: jz !! {!docs/snippets/jz.md!} integer, dimension(9), intent(in) :: descz !! {!docs/snippets/descz.md!} integer(kind=i8), intent(in) :: il !! {!docs/snippets/il.md!} integer(kind=i8), intent(in) :: iu !! {!docs/snippets/iu.md!} integer, target, intent(out) :: info !! {!docs/snippets/info.md!} interface subroutine dlaf_pdsygvd_ps_c(uplo_, n_, a_, ia_, ja_, desca_, b_, ib_, jb_, descb_, w_, z_, iz_, jz_, descz_, il_, iu_, info_) & bind(C, name='dlaf_pdsygvd_partial_spectrum') import :: c_int, c_ptr, c_signed_char, c_ptrdiff_t integer(kind=c_signed_char), value :: uplo_ integer(kind=c_int), value :: n_, ia_, ja_, ib_, jb_, iz_, jz_ integer(kind=c_ptrdiff_t), value :: il_, iu_ type(c_ptr), value :: a_, b_, w_, z_ integer(kind=c_int), dimension(9) :: desca_, descb_, descz_ type(c_ptr), value :: info_ end subroutine dlaf_pdsygvd_ps_c end interface info = -1 call dlaf_pdsygvd_ps_c(iachar(uplo, c_signed_char), n, & c_loc(a(1, 1)), ia, ja, desca, & c_loc(b(1, 1)), ib, jb, descb, & c_loc(w(1)), & c_loc(z(1, 1)), iz, jz, descz, & il, iu, & c_loc(info) & ) end subroutine dlaf_pdsygvd_partial_spectrum subroutine dlaf_pdsygvd_factorized(uplo, n, a, ia, ja, desca, b, ib, jb, descb, w, z, iz, jz, descz, info) !! {!docs/snippets/pdsygvd.md!} !! {!docs/snippets/note-host-matrix.md!} !! {!docs/snippets/note-local-evals.md!} !! {!docs/snippets/note-pika.md!} !! {!docs/snippets/note-b-factorized.md!} character, intent(in) :: uplo !! {!docs/snippets/uplo-w-note.md!} integer, intent(in) :: n !! {!docs/snippets/n.md!} real(kind=dp), dimension(:, :), target, intent(inout) :: a !! {!docs/snippets/a.md!} integer, intent(in) :: ia !! {!docs/snippets/ia.md!} integer, intent(in) :: ja !! {!docs/snippets/ja.md!} integer, dimension(9), intent(in) :: desca !! {!docs/snippets/desca.md!} real(kind=dp), dimension(:, :), target, intent(inout) :: b !! {!docs/snippets/b.md!} integer, intent(in) :: ib !! {!docs/snippets/ib.md!} integer, intent(in) :: jb !! {!docs/snippets/jb.md!} integer, dimension(9), intent(in) :: descb !! {!docs/snippets/descb.md!} real(kind=dp), dimension(:), target, intent(out) :: w !! {!docs/snippets/w.md!} real(kind=dp), dimension(:, :), target, intent(inout) :: z !! {!docs/snippets/z.md!} integer, intent(in) :: iz !! {!docs/snippets/iz.md!} integer, intent(in) :: jz !! {!docs/snippets/jz.md!} integer, dimension(9), intent(in) :: descz !! {!docs/snippets/descz.md!} integer, target, intent(out) :: info !! {!docs/snippets/info.md!} interface subroutine dlaf_pdsygvd_factorized_c( & uplo_, n_, a_, ia_, ja_, desca_, b_, ib_, jb_, descb_, w_, z_, iz_, jz_, descz_, info_ & ) & bind(C, name='dlaf_pdsygvd_factorized') import :: c_int, c_ptr, c_signed_char integer(kind=c_signed_char), value :: uplo_ integer(kind=c_int), value :: n_, ia_, ja_, ib_, jb_, iz_, jz_ type(c_ptr), value :: a_, b_, w_, z_ integer(kind=c_int), dimension(9) :: desca_, descb_, descz_ type(c_ptr), value :: info_ end subroutine dlaf_pdsygvd_factorized_c end interface info = -1 call dlaf_pdsygvd_factorized_c(iachar(uplo, c_signed_char), n, & c_loc(a(1, 1)), ia, ja, desca, & c_loc(b(1, 1)), ib, jb, descb, & c_loc(w(1)), & c_loc(z(1, 1)), iz, jz, descz, & c_loc(info) & ) end subroutine dlaf_pdsygvd_factorized subroutine dlaf_pdsygvd_partial_spectrum_factorized(uplo, n, a, ia, ja, desca, b, ib, jb, descb, w, z, iz, jz, descz, il, iu, info) !! {!docs/snippets/pdsygvd.md!} !! {!docs/snippets/note-host-matrix.md!} !! {!docs/snippets/note-local-evals.md!} !! {!docs/snippets/note-pika.md!} !! {!docs/snippets/note-b-factorized.md!} character, intent(in) :: uplo !! {!docs/snippets/uplo-w-note.md!} integer, intent(in) :: n !! {!docs/snippets/n.md!} real(kind=dp), dimension(:, :), target, intent(inout) :: a !! {!docs/snippets/a.md!} integer, intent(in) :: ia !! {!docs/snippets/ia.md!} integer, intent(in) :: ja !! {!docs/snippets/ja.md!} integer, dimension(9), intent(in) :: desca !! {!docs/snippets/desca.md!} real(kind=dp), dimension(:, :), target, intent(inout) :: b !! {!docs/snippets/b.md!} integer, intent(in) :: ib !! {!docs/snippets/ib.md!} integer, intent(in) :: jb !! {!docs/snippets/jb.md!} integer, dimension(9), intent(in) :: descb !! {!docs/snippets/descb.md!} real(kind=dp), dimension(:), target, intent(out) :: w !! {!docs/snippets/w.md!} real(kind=dp), dimension(:, :), target, intent(inout) :: z !! {!docs/snippets/z.md!} integer, intent(in) :: iz !! {!docs/snippets/iz.md!} integer, intent(in) :: jz !! {!docs/snippets/jz.md!} integer, dimension(9), intent(in) :: descz !! {!docs/snippets/descz.md!} integer(kind=i8), intent(in) :: il !! {!docs/snippets/il.md!} integer(kind=i8), intent(in) :: iu !! {!docs/snippets/iu.md!} integer, target, intent(out) :: info !! {!docs/snippets/info.md!} interface subroutine dlaf_pdsygvd_ps_factorized_c( & uplo_, n_, a_, ia_, ja_, desca_, b_, ib_, jb_, descb_, w_, z_, iz_, jz_, descz_, il_, iu_, info_ & ) & bind(C, name='dlaf_pdsygvd_partial_spectrum_factorized') import :: c_int, c_ptr, c_signed_char, c_ptrdiff_t integer(kind=c_signed_char), value :: uplo_ integer(kind=c_int), value :: n_, ia_, ja_, ib_, jb_, iz_, jz_ integer(kind=c_ptrdiff_t), value :: il_, iu_ type(c_ptr), value :: a_, b_, w_, z_ integer(kind=c_int), dimension(9) :: desca_, descb_, descz_ type(c_ptr), value :: info_ end subroutine dlaf_pdsygvd_ps_factorized_c end interface info = -1 call dlaf_pdsygvd_ps_factorized_c(iachar(uplo, c_signed_char), n, & c_loc(a(1, 1)), ia, ja, desca, & c_loc(b(1, 1)), ib, jb, descb, & c_loc(w(1)), & c_loc(z(1, 1)), iz, jz, descz, & il, iu, & c_loc(info) & ) end subroutine dlaf_pdsygvd_partial_spectrum_factorized subroutine dlaf_pchegvd(uplo, n, a, ia, ja, desca, b, ib, jb, descb, w, z, iz, jz, descz, info) !! {!docs/snippets/pchegvd.md!} !! {!docs/snippets/note-host-matrix.md!} !! {!docs/snippets/note-local-evals.md!} !! {!docs/snippets/note-pika.md!} character, intent(in) :: uplo !! {!docs/snippets/uplo-w-note.md!} integer, intent(in) :: n !! {!docs/snippets/n.md!} complex(kind=sp), dimension(:, :), target, intent(inout) :: a !! {!docs/snippets/a.md!} integer, intent(in) :: ia !! {!docs/snippets/ia.md!} integer, intent(in) :: ja !! {!docs/snippets/ja.md!} integer, dimension(9), intent(in) :: desca !! {!docs/snippets/desca.md!} complex(kind=sp), dimension(:, :), target, intent(inout) :: b !! {!docs/snippets/b.md!} integer, intent(in) :: ib !! {!docs/snippets/ib.md!} integer, intent(in) :: jb !! {!docs/snippets/jb.md!} integer, dimension(9), intent(in) :: descb !! {!docs/snippets/descb.md!} real(kind=sp), dimension(:), target, intent(out) :: w !! {!docs/snippets/w.md!} complex(kind=sp), dimension(:, :), target, intent(inout) :: z !! {!docs/snippets/z.md!} integer, intent(in) :: iz !! {!docs/snippets/iz.md!} integer, intent(in) :: jz !! {!docs/snippets/jz.md!} integer, dimension(9), intent(in) :: descz !! {!docs/snippets/descz.md!} integer, target, intent(out) :: info !! {!docs/snippets/info.md!} interface subroutine dlaf_pchegvd_c(uplo_, n_, a_, ia_, ja_, desca_, b_, ib_, jb_, descb_, w_, z_, iz_, jz_, descz_, info_) & bind(C, name='dlaf_pchegvd') import :: c_int, c_ptr, c_signed_char integer(kind=c_signed_char), value :: uplo_ integer(kind=c_int), value :: n_, ia_, ja_, ib_, jb_, iz_, jz_ type(c_ptr), value :: a_, b_, w_, z_ integer(kind=c_int), dimension(9) :: desca_, descb_, descz_ type(c_ptr), value :: info_ end subroutine dlaf_pchegvd_c end interface info = -1 call dlaf_pchegvd_c(iachar(uplo, c_signed_char), n, & c_loc(a(1, 1)), ia, ja, desca, & c_loc(b(1, 1)), ib, jb, descb, & c_loc(w(1)), & c_loc(z(1, 1)), iz, jz, descz, & c_loc(info) & ) end subroutine dlaf_pchegvd subroutine dlaf_pchegvd_partial_spectrum(uplo, n, a, ia, ja, desca, b, ib, jb, descb, w, z, iz, jz, descz, il, iu, info) !! {!docs/snippets/pchegvd.md!} !! {!docs/snippets/note-host-matrix.md!} !! {!docs/snippets/note-local-evals.md!} !! {!docs/snippets/note-pika.md!} character, intent(in) :: uplo !! {!docs/snippets/uplo-w-note.md!} integer, intent(in) :: n !! {!docs/snippets/n.md!} complex(kind=sp), dimension(:, :), target, intent(inout) :: a !! {!docs/snippets/a.md!} integer, intent(in) :: ia !! {!docs/snippets/ia.md!} integer, intent(in) :: ja !! {!docs/snippets/ja.md!} integer, dimension(9), intent(in) :: desca !! {!docs/snippets/desca.md!} complex(kind=sp), dimension(:, :), target, intent(inout) :: b !! {!docs/snippets/b.md!} integer, intent(in) :: ib !! {!docs/snippets/ib.md!} integer, intent(in) :: jb !! {!docs/snippets/jb.md!} integer, dimension(9), intent(in) :: descb !! {!docs/snippets/descb.md!} real(kind=sp), dimension(:), target, intent(out) :: w !! {!docs/snippets/w.md!} complex(kind=sp), dimension(:, :), target, intent(inout) :: z !! {!docs/snippets/z.md!} integer, intent(in) :: iz !! {!docs/snippets/iz.md!} integer, intent(in) :: jz !! {!docs/snippets/jz.md!} integer, dimension(9), intent(in) :: descz !! {!docs/snippets/descz.md!} integer(kind=i8), intent(in) :: il !! {!docs/snippets/il.md!} integer(kind=i8), intent(in) :: iu !! {!docs/snippets/iu.md!} integer, target, intent(out) :: info !! {!docs/snippets/info.md!} interface subroutine dlaf_pchegvd_ps_c(uplo_, n_, a_, ia_, ja_, desca_, b_, ib_, jb_, descb_, w_, z_, iz_, jz_, descz_, il_, iu_, info_) & bind(C, name='dlaf_pchegvd_partial_spectrum') import :: c_int, c_ptr, c_signed_char, c_ptrdiff_t integer(kind=c_signed_char), value :: uplo_ integer(kind=c_int), value :: n_, ia_, ja_, ib_, jb_, iz_, jz_ integer(kind=c_ptrdiff_t), value :: il_, iu_ type(c_ptr), value :: a_, b_, w_, z_ integer(kind=c_int), dimension(9) :: desca_, descb_, descz_ type(c_ptr), value :: info_ end subroutine dlaf_pchegvd_ps_c end interface info = -1 call dlaf_pchegvd_ps_c(iachar(uplo, c_signed_char), n, & c_loc(a(1, 1)), ia, ja, desca, & c_loc(b(1, 1)), ib, jb, descb, & c_loc(w(1)), & c_loc(z(1, 1)), iz, jz, descz, & il, iu, & c_loc(info) & ) end subroutine dlaf_pchegvd_partial_spectrum subroutine dlaf_pchegvd_factorized(uplo, n, a, ia, ja, desca, b, ib, jb, descb, w, z, iz, jz, descz, info) !! {!docs/snippets/pchegvd.md!} !! {!docs/snippets/note-host-matrix.md!} !! {!docs/snippets/note-local-evals.md!} !! {!docs/snippets/note-pika.md!} !! {!docs/snippets/note-b-factorized.md!} character, intent(in) :: uplo !! {!docs/snippets/uplo-w-note.md!} integer, intent(in) :: n !! {!docs/snippets/n.md!} complex(kind=sp), dimension(:, :), target, intent(inout) :: a !! {!docs/snippets/a.md!} integer, intent(in) :: ia !! {!docs/snippets/ia.md!} integer, intent(in) :: ja !! {!docs/snippets/ja.md!} integer, dimension(9), intent(in) :: desca !! {!docs/snippets/desca.md!} complex(kind=sp), dimension(:, :), target, intent(inout) :: b !! {!docs/snippets/b.md!} integer, intent(in) :: ib !! {!docs/snippets/ib.md!} integer, intent(in) :: jb !! {!docs/snippets/jb.md!} integer, dimension(9), intent(in) :: descb !! {!docs/snippets/descb.md!} real(kind=sp), dimension(:), target, intent(out) :: w !! {!docs/snippets/w.md!} complex(kind=sp), dimension(:, :), target, intent(inout) :: z !! {!docs/snippets/z.md!} integer, intent(in) :: iz !! {!docs/snippets/iz.md!} integer, intent(in) :: jz !! {!docs/snippets/jz.md!} integer, dimension(9), intent(in) :: descz !! {!docs/snippets/descz.md!} integer, target, intent(out) :: info !! {!docs/snippets/info.md!} interface subroutine dlaf_pchegvd_factorized_c( & uplo_, n_, a_, ia_, ja_, desca_, b_, ib_, jb_, descb_, w_, z_, iz_, jz_, descz_, info_ & ) & bind(C, name='dlaf_pchegvd_factorized') import :: c_int, c_ptr, c_signed_char integer(kind=c_signed_char), value :: uplo_ integer(kind=c_int), value :: n_, ia_, ja_, ib_, jb_, iz_, jz_ type(c_ptr), value :: a_, b_, w_, z_ integer(kind=c_int), dimension(9) :: desca_, descb_, descz_ type(c_ptr), value :: info_ end subroutine dlaf_pchegvd_factorized_c end interface info = -1 call dlaf_pchegvd_factorized_c(iachar(uplo, c_signed_char), n, & c_loc(a(1, 1)), ia, ja, desca, & c_loc(b(1, 1)), ib, jb, descb, & c_loc(w(1)), & c_loc(z(1, 1)), iz, jz, descz, & c_loc(info) & ) end subroutine dlaf_pchegvd_factorized subroutine dlaf_pchegvd_partial_spectrum_factorized(uplo, n, a, ia, ja, desca, b, ib, jb, descb, w, z, iz, jz, descz, il, iu, info) !! {!docs/snippets/pchegvd.md!} !! {!docs/snippets/note-host-matrix.md!} !! {!docs/snippets/note-local-evals.md!} !! {!docs/snippets/note-pika.md!} !! {!docs/snippets/note-b-factorized.md!} character, intent(in) :: uplo !! {!docs/snippets/uplo-w-note.md!} integer, intent(in) :: n !! {!docs/snippets/n.md!} complex(kind=sp), dimension(:, :), target, intent(inout) :: a !! {!docs/snippets/a.md!} integer, intent(in) :: ia !! {!docs/snippets/ia.md!} integer, intent(in) :: ja !! {!docs/snippets/ja.md!} integer, dimension(9), intent(in) :: desca !! {!docs/snippets/desca.md!} complex(kind=sp), dimension(:, :), target, intent(inout) :: b !! {!docs/snippets/b.md!} integer, intent(in) :: ib !! {!docs/snippets/ib.md!} integer, intent(in) :: jb !! {!docs/snippets/jb.md!} integer, dimension(9), intent(in) :: descb !! {!docs/snippets/descb.md!} real(kind=sp), dimension(:), target, intent(out) :: w !! {!docs/snippets/w.md!} complex(kind=sp), dimension(:, :), target, intent(inout) :: z !! {!docs/snippets/z.md!} integer, intent(in) :: iz !! {!docs/snippets/iz.md!} integer, intent(in) :: jz !! {!docs/snippets/jz.md!} integer, dimension(9), intent(in) :: descz !! {!docs/snippets/descz.md!} integer(kind=i8), intent(in) :: il !! {!docs/snippets/il.md!} integer(kind=i8), intent(in) :: iu !! {!docs/snippets/iu.md!} integer, target, intent(out) :: info !! {!docs/snippets/info.md!} interface subroutine dlaf_pchegvd_ps_factorized_c( & uplo_, n_, a_, ia_, ja_, desca_, b_, ib_, jb_, descb_, w_, z_, iz_, jz_, descz_, il_, iu_, info_ & ) & bind(C, name='dlaf_pchegvd_partial_spectrum_factorized') import :: c_int, c_ptr, c_signed_char, c_ptrdiff_t integer(kind=c_signed_char), value :: uplo_ integer(kind=c_int), value :: n_, ia_, ja_, ib_, jb_, iz_, jz_ integer(kind=c_ptrdiff_t), value :: il_, iu_ type(c_ptr), value :: a_, b_, w_, z_ integer(kind=c_int), dimension(9) :: desca_, descb_, descz_ type(c_ptr), value :: info_ end subroutine dlaf_pchegvd_ps_factorized_c end interface info = -1 call dlaf_pchegvd_ps_factorized_c(iachar(uplo, c_signed_char), n, & c_loc(a(1, 1)), ia, ja, desca, & c_loc(b(1, 1)), ib, jb, descb, & c_loc(w(1)), & c_loc(z(1, 1)), iz, jz, descz, & il, iu, & c_loc(info) & ) end subroutine dlaf_pchegvd_partial_spectrum_factorized subroutine dlaf_pzhegvd(uplo, n, a, ia, ja, desca, b, ib, jb, descb, w, z, iz, jz, descz, info) !! {!docs/snippets/pzhegvd.md!} !! {!docs/snippets/note-host-matrix.md!} !! {!docs/snippets/note-local-evals.md!} !! {!docs/snippets/note-pika.md!} character, intent(in) :: uplo !! {!docs/snippets/uplo-w-note.md!} integer, intent(in) :: n !! {!docs/snippets/n.md!} complex(kind=dp), dimension(:, :), target, intent(inout) :: a !! {!docs/snippets/a.md!} integer, intent(in) :: ia !! {!docs/snippets/ia.md!} integer, intent(in) :: ja !! {!docs/snippets/ja.md!} integer, dimension(9), intent(in) :: desca !! {!docs/snippets/desca.md!} complex(kind=dp), dimension(:, :), target, intent(inout) :: b !! {!docs/snippets/b.md!} integer, intent(in) :: ib !! {!docs/snippets/ib.md!} integer, intent(in) :: jb !! {!docs/snippets/jb.md!} integer, dimension(9), intent(in) :: descb !! {!docs/snippets/descb.md!} real(kind=dp), dimension(:), target, intent(out) :: w !! {!docs/snippets/w.md!} complex(kind=dp), dimension(:, :), target, intent(inout) :: z !! {!docs/snippets/z.md!} integer, intent(in) :: iz !! {!docs/snippets/iz.md!} integer, intent(in) :: jz !! {!docs/snippets/jz.md!} integer, dimension(9), intent(in) :: descz !! {!docs/snippets/descz.md!} integer, target, intent(out) :: info !! {!docs/snippets/info.md!} interface subroutine dlaf_pzhegvd_c(uplo_, n_, a_, ia_, ja_, desca_, b_, ib_, jb_, descb_, w_, z_, iz_, jz_, descz_, info_) & bind(C, name='dlaf_pzhegvd') import :: c_int, c_ptr, c_signed_char integer(kind=c_signed_char), value :: uplo_ integer(kind=c_int), value :: n_, ia_, ja_, ib_, jb_, iz_, jz_ type(c_ptr), value :: a_, b_, w_, z_ integer(kind=c_int), dimension(9) :: desca_, descb_, descz_ type(c_ptr), value :: info_ end subroutine dlaf_pzhegvd_c end interface info = -1 call dlaf_pzhegvd_c(iachar(uplo, c_signed_char), n, & c_loc(a(1, 1)), ia, ja, desca, & c_loc(b(1, 1)), ib, jb, descb, & c_loc(w(1)), & c_loc(z(1, 1)), iz, jz, descz, & c_loc(info) & ) end subroutine dlaf_pzhegvd subroutine dlaf_pzhegvd_partial_spectrum(uplo, n, a, ia, ja, desca, b, ib, jb, descb, w, z, iz, jz, descz, il, iu, info) !! {!docs/snippets/pzhegvd.md!} !! {!docs/snippets/note-host-matrix.md!} !! {!docs/snippets/note-local-evals.md!} !! {!docs/snippets/note-pika.md!} character, intent(in) :: uplo !! {!docs/snippets/uplo-w-note.md!} integer, intent(in) :: n !! {!docs/snippets/n.md!} complex(kind=dp), dimension(:, :), target, intent(inout) :: a !! {!docs/snippets/a.md!} integer, intent(in) :: ia !! {!docs/snippets/ia.md!} integer, intent(in) :: ja !! {!docs/snippets/ja.md!} integer, dimension(9), intent(in) :: desca !! {!docs/snippets/desca.md!} complex(kind=dp), dimension(:, :), target, intent(inout) :: b !! {!docs/snippets/b.md!} integer, intent(in) :: ib !! {!docs/snippets/ib.md!} integer, intent(in) :: jb !! {!docs/snippets/jb.md!} integer, dimension(9), intent(in) :: descb !! {!docs/snippets/descb.md!} real(kind=dp), dimension(:), target, intent(out) :: w !! {!docs/snippets/w.md!} complex(kind=dp), dimension(:, :), target, intent(inout) :: z !! {!docs/snippets/z.md!} integer, intent(in) :: iz !! {!docs/snippets/iz.md!} integer, intent(in) :: jz !! {!docs/snippets/jz.md!} integer, dimension(9), intent(in) :: descz !! {!docs/snippets/descz.md!} integer(kind=i8), intent(in) :: il !! {!docs/snippets/il.md!} integer(kind=i8), intent(in) :: iu !! {!docs/snippets/iu.md!} integer, target, intent(out) :: info !! {!docs/snippets/info.md!} interface subroutine dlaf_pzhegvd_ps_c( & uplo_, n_, a_, ia_, ja_, desca_, b_, ib_, jb_, descb_, w_, z_, iz_, jz_, descz_, il_, iu_, info_ & ) & bind(C, name='dlaf_pzhegvd_partial_spectrum') import :: c_int, c_ptr, c_signed_char, c_ptrdiff_t integer(kind=c_signed_char), value :: uplo_ integer(kind=c_int), value :: n_, ia_, ja_, ib_, jb_, iz_, jz_ integer(kind=c_ptrdiff_t), value :: il_, iu_ type(c_ptr), value :: a_, b_, w_, z_ integer(kind=c_int), dimension(9) :: desca_, descb_, descz_ type(c_ptr), value :: info_ end subroutine dlaf_pzhegvd_ps_c end interface info = -1 call dlaf_pzhegvd_ps_c(iachar(uplo, c_signed_char), n, & c_loc(a(1, 1)), ia, ja, desca, & c_loc(b(1, 1)), ib, jb, descb, & c_loc(w(1)), & c_loc(z(1, 1)), iz, jz, descz, & il, iu, & c_loc(info) & ) end subroutine dlaf_pzhegvd_partial_spectrum subroutine dlaf_pzhegvd_factorized(uplo, n, a, ia, ja, desca, b, ib, jb, descb, w, z, iz, jz, descz, info) !! {!docs/snippets/pzhegvd.md!} !! {!docs/snippets/note-host-matrix.md!} !! {!docs/snippets/note-local-evals.md!} !! {!docs/snippets/note-pika.md!} !! {!docs/snippets/note-b-factorized.md!} character, intent(in) :: uplo !! {!docs/snippets/uplo-w-note.md!} integer, intent(in) :: n !! {!docs/snippets/n.md!} complex(kind=dp), dimension(:, :), target, intent(inout) :: a !! {!docs/snippets/a.md!} integer, intent(in) :: ia !! {!docs/snippets/ia.md!} integer, intent(in) :: ja !! {!docs/snippets/ja.md!} integer, dimension(9), intent(in) :: desca !! {!docs/snippets/desca.md!} complex(kind=dp), dimension(:, :), target, intent(inout) :: b !! {!docs/snippets/b.md!} integer, intent(in) :: ib !! {!docs/snippets/ib.md!} integer, intent(in) :: jb !! {!docs/snippets/jb.md!} integer, dimension(9), intent(in) :: descb !! {!docs/snippets/descb.md!} real(kind=dp), dimension(:), target, intent(out) :: w !! {!docs/snippets/w.md!} complex(kind=dp), dimension(:, :), target, intent(inout) :: z !! {!docs/snippets/z.md!} integer, intent(in) :: iz !! {!docs/snippets/iz.md!} integer, intent(in) :: jz !! {!docs/snippets/jz.md!} integer, dimension(9), intent(in) :: descz !! {!docs/snippets/descz.md!} integer, target, intent(out) :: info !! {!docs/snippets/info.md!} interface subroutine dlaf_pzhegvd_factorized_c( & uplo_, n_, a_, ia_, ja_, desca_, b_, ib_, jb_, descb_, w_, z_, iz_, jz_, descz_, info_ & ) & bind(C, name='dlaf_pzhegvd_factorized') import :: c_int, c_ptr, c_signed_char integer(kind=c_signed_char), value :: uplo_ integer(kind=c_int), value :: n_, ia_, ja_, ib_, jb_, iz_, jz_ type(c_ptr), value :: a_, b_, w_, z_ integer(kind=c_int), dimension(9) :: desca_, descb_, descz_ type(c_ptr), value :: info_ end subroutine dlaf_pzhegvd_factorized_c end interface info = -1 call dlaf_pzhegvd_factorized_c(iachar(uplo, c_signed_char), n, & c_loc(a(1, 1)), ia, ja, desca, & c_loc(b(1, 1)), ib, jb, descb, & c_loc(w(1)), & c_loc(z(1, 1)), iz, jz, descz, & c_loc(info) & ) end subroutine dlaf_pzhegvd_factorized subroutine dlaf_pzhegvd_partial_spectrum_factorized( & uplo, n, a, ia, ja, desca, b, ib, jb, descb, w, z, iz, jz, descz, il, iu, info & ) !! {!docs/snippets/pzhegvd.md!} !! {!docs/snippets/note-host-matrix.md!} !! {!docs/snippets/note-local-evals.md!} !! {!docs/snippets/note-pika.md!} !! {!docs/snippets/note-b-factorized.md!} character, intent(in) :: uplo !! {!docs/snippets/uplo-w-note.md!} integer, intent(in) :: n !! {!docs/snippets/n.md!} complex(kind=dp), dimension(:, :), target, intent(inout) :: a !! {!docs/snippets/a.md!} integer, intent(in) :: ia !! {!docs/snippets/ia.md!} integer, intent(in) :: ja !! {!docs/snippets/ja.md!} integer, dimension(9), intent(in) :: desca !! {!docs/snippets/desca.md!} complex(kind=dp), dimension(:, :), target, intent(inout) :: b !! {!docs/snippets/b.md!} integer, intent(in) :: ib !! {!docs/snippets/ib.md!} integer, intent(in) :: jb !! {!docs/snippets/jb.md!} integer, dimension(9), intent(in) :: descb !! {!docs/snippets/descb.md!} real(kind=dp), dimension(:), target, intent(out) :: w !! {!docs/snippets/w.md!} complex(kind=dp), dimension(:, :), target, intent(inout) :: z !! {!docs/snippets/z.md!} integer, intent(in) :: iz !! {!docs/snippets/iz.md!} integer, intent(in) :: jz !! {!docs/snippets/jz.md!} integer, dimension(9), intent(in) :: descz !! {!docs/snippets/descz.md!} integer(kind=i8), intent(in) :: il !! {!docs/snippets/il.md!} integer(kind=i8), intent(in) :: iu !! {!docs/snippets/iu.md!} integer, target, intent(out) :: info !! {!docs/snippets/info.md!} interface subroutine dlaf_pzhegvd_ps_factorized_c( & uplo_, n_, a_, ia_, ja_, desca_, b_, ib_, jb_, descb_, w_, z_, iz_, jz_, descz_, il_, iu_, info_ & ) & bind(C, name='dlaf_pzhegvd_partial_spectrum_factorized') import :: c_int, c_ptr, c_signed_char, c_ptrdiff_t integer(kind=c_signed_char), value :: uplo_ integer(kind=c_int), value :: n_, ia_, ja_, ib_, jb_, iz_, jz_ integer(kind=c_ptrdiff_t), value :: il_, iu_ type(c_ptr), value :: a_, b_, w_, z_ integer(kind=c_int), dimension(9) :: desca_, descb_, descz_ type(c_ptr), value :: info_ end subroutine dlaf_pzhegvd_ps_factorized_c end interface info = -1 call dlaf_pzhegvd_ps_factorized_c(iachar(uplo, c_signed_char), n, & c_loc(a(1, 1)), ia, ja, desca, & c_loc(b(1, 1)), ib, jb, descb, & c_loc(w(1)), & c_loc(z(1, 1)), iz, jz, descz, & il, iu, & c_loc(info) & ) end subroutine dlaf_pzhegvd_partial_spectrum_factorized end module dlaf_fortran