43    integer function iceil(inum, idenom)
 
   45      integer, 
intent(in) :: inum
 
   46      integer, 
intent(in) :: idenom
 
   51    subroutine descinit(desc, m, n, mb, nb, irsrc, icsrc, ictxt, lld, info)
 
   53      integer, 
intent(in)  :: desc
 
   54      integer, 
intent(in)  :: m
 
   55      integer, 
intent(in)  :: n
 
   56      integer, 
intent(in)  :: mb
 
   57      integer, 
intent(in)  :: nb
 
   58      integer, 
intent(in)  :: irsrc
 
   59      integer, 
intent(in)  :: icsrc
 
   60      integer, 
intent(in)  :: ictxt
 
   61      integer, 
intent(in)  :: lld
 
   62      integer, 
intent(out) :: info
 
   67    subroutine infog2l(grindx, gcindx, desc, nprow, npcol, myrow, mycol, lrindx, lcindx, rsrc, csrc)
 
   69      integer, 
intent(in)  :: grindx
 
   70      integer, 
intent(in)  :: gcindx
 
   71      integer, 
intent(in)  :: desc
 
   72      integer, 
intent(in)  :: nprow
 
   73      integer, 
intent(in)  :: npcol
 
   74      integer, 
intent(in)  :: myrow
 
   75      integer, 
intent(in)  :: mycol
 
   76      integer, 
intent(out) :: lrindx
 
   77      integer, 
intent(out) :: lcindx
 
   78      integer, 
intent(out) :: rsrc
 
   79      integer, 
intent(out) :: csrc
 
   88    subroutine pdgeqrf(m, n, a, ia, ja, desca, tau, work, lwork, info)
 
   90      integer            ia, info, ja, lwork, m, n
 
   92      double precision   a, tau, work
 
   93    end subroutine pdgeqrf
 
   95    subroutine pzgeqrf(m, n, a, ia, ja, desca, tau, work, lwork, info)
 
   96      use, 
intrinsic :: iso_fortran_env
 
   98      integer            ia, info, ja, lwork, m, n
 
  100      complex(real64)         a, tau, work
 
  101    end subroutine pzgeqrf
 
  114    subroutine pdorgqr(m, n, k, a, ia, ja, desca, tau, work, lwork, info)
 
  116      integer            ia, info, ja, k, lwork, m, n
 
  118      double precision   a, tau, work
 
  119    end subroutine pdorgqr
 
  121    subroutine pzungqr(m, n, k, a, ia, ja, desca, tau, work, lwork, info)
 
  122      use, 
intrinsic :: iso_fortran_env
 
  124      integer            ia, info, ja, k, lwork, m, n
 
  126      complex(real64)         a, tau, work
 
  127    end subroutine pzungqr
 
  131    subroutine pdgesv(n, nrhs, a, ia, ja, desca, ipiv, b, ib, jb, descb, info)
 
  133      integer            ia, ib, info, ja, jb, n, nrhs
 
  134      integer            desca, descb, ipiv
 
  135      double precision   a, b
 
  140    subroutine pzgesv(n, nrhs, a, ia, ja, desca, ipiv, b, ib, jb, descb, info)
 
  141      use, 
intrinsic :: iso_fortran_env
 
  143      integer            ia, ib, 
info, ja, jb, n, nrhs
 
  144      integer            desca, descb, ipiv
 
  170    subroutine pdsyev(jobz, uplo, n, a, ia, ja, desca, w, z, iz, jz, descz, work, lwork, info)
 
  171      use, 
intrinsic :: iso_fortran_env
 
  173      character,        
intent(in)    :: jobz
 
  174      character,        
intent(in)    :: uplo
 
  175      integer,          
intent(in)    :: n
 
  176      real(real64),          
intent(inout) :: a
 
  177      integer,          
intent(in)    :: ia
 
  178      integer,          
intent(in)    :: ja
 
  179      integer,          
intent(in)    :: desca
 
  180      real(real64),          
intent(out)   :: w
 
  181      real(real64),          
intent(out)   :: z
 
  182      integer,          
intent(in)    :: iz
 
  183      integer,          
intent(in)    :: jz
 
  184      integer,          
intent(in)    :: descz
 
  185      real(real64),          
intent(out)   :: work
 
  186      integer,          
intent(in)    :: lwork
 
  187      integer,          
intent(out)   :: info
 
  188    end subroutine pdsyev
 
  190    subroutine pzheev(jobz, uplo, n, a, ia, ja, desca, w, z, iz, jz, descz, work, lwork, rwork, lrwork, info)
 
  191      use, 
intrinsic :: iso_fortran_env
 
  193      character,        
intent(in)    :: jobz
 
  194      character,        
intent(in)    :: uplo
 
  195      integer,          
intent(in)    :: n
 
  196      complex(real64),       
intent(inout) :: a
 
  197      integer,          
intent(in)    :: ia
 
  198      integer,          
intent(in)    :: ja
 
  199      integer,          
intent(in)    :: desca
 
  200      real(real64),          
intent(out)   :: w
 
  201      complex(real64),       
intent(out)   :: z
 
  202      integer,          
intent(in)    :: iz
 
  203      integer,          
intent(in)    :: jz
 
  204      integer,          
intent(in)    :: descz
 
  205      complex(real64),       
intent(out)   :: work
 
  206      integer,          
intent(in)    :: lwork
 
  207      complex(real64),       
intent(out)   :: rwork
 
  208      integer,          
intent(in)    :: lrwork
 
  209      integer,          
intent(out)   :: info
 
  210    end subroutine pzheev
 
  219    subroutine pdsyevx( jobz, range, uplo, n, a, ia, ja, desca, vl, vu, il, iu, abstol, &
 
  220      m, nz, w, orfac, z, iz, jz, descz, work, lwork, iwork, liwork, ifail, iclustr, gap, info )
 
  221      use, 
intrinsic :: iso_fortran_env
 
  223      character(1), 
intent(in)    :: jobz
 
  224      character(1), 
intent(in)    :: range
 
  225      character(1), 
intent(in)    :: uplo
 
  226      integer,      
intent(in)    :: n
 
  227      real(real64),      
intent(inout) :: a
 
  228      integer,      
intent(in)    :: ia
 
  229      integer,      
intent(in)    :: ja
 
  230      integer,      
intent(in)    :: desca
 
  231      real(real64),      
intent(in)    :: vl
 
  232      real(real64),      
intent(in)    :: vu
 
  233      integer,      
intent(in)    :: il
 
  234      integer,      
intent(in)    :: iu
 
  235      real(real64) ,     
intent(in)    :: abstol
 
  236      integer,      
intent(out)   :: m
 
  237      integer,      
intent(out)   :: nz
 
  238      real(real64),      
intent(out)   :: w
 
  239      real(real64),      
intent(in)    :: orfac
 
  240      real(real64),      
intent(out)   :: z
 
  241      integer,      
intent(in)    :: iz
 
  242      integer,      
intent(in)    :: jz
 
  243      integer,      
intent(in)    :: descz
 
  244      real(real64),      
intent(out)   :: work
 
  245      integer,      
intent(in)    :: lwork
 
  246      integer,      
intent(inout) :: iwork
 
  247      integer,      
intent(in)    :: liwork
 
  248      integer,      
intent(out)   :: ifail
 
  249      integer,      
intent(out)   :: iclustr
 
  250      real(real64),      
intent(out)   :: gap
 
  251      integer,      
intent(out)   :: info
 
  253    end subroutine pdsyevx
 
  255    subroutine pzheevx(jobz, range, uplo, n, a, ia, ja, desca, vl, vu, il, iu, abstol, m, nz, w, orfac, z, iz, &
 
  256      jz, descz, work, lwork, rwork, lrwork, iwork, liwork, ifail, iclustr, gap, info)
 
  257      use, 
intrinsic :: iso_fortran_env
 
  259      character(1), 
intent(in)    :: jobz
 
  260      character(1), 
intent(in)    :: range
 
  261      character(1), 
intent(in)    :: uplo
 
  262      integer,      
intent(in)    :: n
 
  263      complex(real64),   
intent(inout) :: a
 
  264      integer,      
intent(in)    :: ia
 
  265      integer,      
intent(in)    :: ja
 
  266      integer,      
intent(in)    :: desca
 
  267      real(real64),      
intent(in)    :: vl
 
  268      real(real64),      
intent(in)    :: vu
 
  269      integer,      
intent(in)    :: il
 
  270      integer,      
intent(in)    :: iu
 
  271      real(real64),      
intent(in)    :: abstol
 
  272      integer,      
intent(out)   :: m
 
  273      integer,      
intent(out)   :: nz
 
  274      real(real64),      
intent(out)   :: w
 
  275      real(real64),      
intent(in)    :: orfac
 
  276      complex(real64),   
intent(out)   :: z
 
  277      integer,      
intent(in)    :: iz
 
  278      integer,      
intent(in)    :: jz
 
  279      integer,      
intent(in)    :: descz
 
  280      complex(real64),   
intent(out)   :: work
 
  281      integer,      
intent(in)    :: lwork
 
  282      real(real64),      
intent(out)   :: rwork
 
  283      integer,      
intent(in)    :: lrwork
 
  284      integer,      
intent(inout) :: iwork
 
  285      integer,      
intent(in)    :: liwork
 
  286      integer,      
intent(out)   :: ifail
 
  287      integer,      
intent(out)   :: iclustr
 
  288      real(real64),      
intent(out)   :: gap
 
  289      integer,      
intent(out)   :: info
 
  290    end subroutine pzheevx
 
  302    subroutine pdsygvx(ibtype, jobz, range, uplo, n, a, ia, ja,       &
 
  303      desca, b, ib, jb, descb, vl, vu, il, iu, abstol, m, nz, w, orfac, z, iz, jz, descz,  &
 
  304      work, lwork, iwork, liwork, ifail, iclustr, gap, info)
 
  305      use, 
intrinsic :: iso_fortran_env
 
  307      integer,             
intent(in)    :: ibtype
 
  308      character,           
intent(in)    :: jobz
 
  309      character,           
intent(in)    :: range
 
  310      character,           
intent(in)    :: uplo
 
  311      integer,             
intent(in)    :: n
 
  312      real(real64),             
intent(inout) :: a
 
  313      integer,             
intent(in)    :: ia
 
  314      integer,             
intent(in)    :: ja
 
  315      integer,             
intent(in)    :: desca
 
  316      real(real64),             
intent(inout) :: b
 
  317      integer,             
intent(in)    :: ib
 
  318      integer,             
intent(in)    :: jb
 
  319      integer,             
intent(in)    :: descb
 
  320      real(real64),             
intent(in)    :: vl
 
  321      real(real64),             
intent(in)    :: vu
 
  322      integer,             
intent(in)    :: il
 
  323      integer,             
intent(in)    :: iu
 
  324      real(real64),             
intent(in)    :: abstol
 
  325      integer,             
intent(out)   :: m
 
  326      integer,             
intent(out)   :: nz
 
  327      real(real64),             
intent(in)    :: w
 
  328      real(real64),             
intent(in)    :: orfac
 
  329      real(real64),             
intent(out)   :: z
 
  330      integer,             
intent(in)    :: iz
 
  331      integer,             
intent(in)    :: jz
 
  332      integer,             
intent(in)    :: descz
 
  333      real(real64),             
intent(out)   :: work
 
  334      integer,             
intent(in)    :: lwork
 
  335      integer,             
intent(out)   :: iwork
 
  336      integer,             
intent(in)    :: liwork
 
  337      integer,             
intent(out)   :: ifail
 
  338      integer,             
intent(out)   :: iclustr
 
  339      real(real64),             
intent(out)   :: gap
 
  340      integer,             
intent(out)   :: info
 
  341    end subroutine pdsygvx
 
  354    subroutine pzhegvx(ibtype, jobz, range, uplo, n, a, ia, ja,       &
 
  355      desca, b, ib, jb, descb, vl, vu, il, iu, abstol, m, nz, w, orfac, z, iz, jz, descz,  &
 
  356      work, lwork, rwork, lrwork, iwork, liwork, ifail, iclustr, gap, info)
 
  357      use, 
intrinsic :: iso_fortran_env
 
  359      integer,             
intent(in)    :: ibtype
 
  360      character,           
intent(in)    :: jobz
 
  361      character,           
intent(in)    :: range
 
  362      character,           
intent(in)    :: uplo
 
  363      integer,             
intent(in)    :: n
 
  364      complex(real64),          
intent(inout) :: a
 
  365      integer,             
intent(in)    :: ia
 
  366      integer,             
intent(in)    :: ja
 
  367      integer,             
intent(in)    :: desca
 
  368      complex(real64),          
intent(inout) :: b
 
  369      integer,             
intent(in)    :: ib
 
  370      integer,             
intent(in)    :: jb
 
  371      integer,             
intent(in)    :: descb
 
  372      real(real64),             
intent(in)    :: vl
 
  373      real(real64),             
intent(in)    :: vu
 
  374      integer,             
intent(in)    :: il
 
  375      integer,             
intent(in)    :: iu
 
  376      real(real64),             
intent(in)    :: abstol
 
  377      integer,             
intent(out)   :: m
 
  378      integer,             
intent(out)   :: nz
 
  379      real(real64),             
intent(in)    :: w
 
  380      real(real64),             
intent(in)    :: orfac
 
  381      complex(real64),          
intent(out)   :: z
 
  382      integer,             
intent(in)    :: iz
 
  383      integer,             
intent(in)    :: jz
 
  384      integer,             
intent(in)    :: descz
 
  385      complex(real64),          
intent(out)   :: work
 
  386      integer,             
intent(in)    :: lwork
 
  387      real(real64),             
intent(out)   :: rwork
 
  388      integer,             
intent(in)    :: lrwork
 
  389      integer,             
intent(out)   :: iwork
 
  390      integer,             
intent(in)    :: liwork
 
  391      integer,             
intent(out)   :: ifail
 
  392      integer,             
intent(out)   :: iclustr
 
  393      real(real64),             
intent(out)   :: gap
 
  394      integer,             
intent(out)   :: info
 
  395    end subroutine pzhegvx
 
  415    subroutine pdpotrf(uplo, n, a, ia, ja, desca, info)
 
  416      use, 
intrinsic :: iso_fortran_env
 
  418      character(1), 
intent(in)    :: uplo
 
  419      integer,      
intent(in)    :: n
 
  420      real(real64),      
intent(inout) :: a
 
  421      integer,      
intent(in)    :: ia
 
  422      integer,      
intent(in)    :: ja
 
  423      integer,      
intent(in)    :: desca
 
  424      integer,      
intent(out)   :: info
 
  425    end subroutine pdpotrf
 
  427    subroutine pzpotrf(uplo, n, a, ia, ja, desca, info)
 
  428      use, 
intrinsic :: iso_fortran_env
 
  430      character(1), 
intent(in)    :: uplo
 
  431      integer,      
intent(in)    :: n
 
  432      complex(real64),   
intent(inout) :: a
 
  433      integer,      
intent(in)    :: ia
 
  434      integer,      
intent(in)    :: ja
 
  435      integer,      
intent(in)    :: desca
 
  436      integer,      
intent(out)   :: info
 
  437    end subroutine pzpotrf
 
  441    subroutine pzlacp3(m, i, a, desca, b, ldb, ii, jj, rev)
 
  442      use, 
intrinsic :: iso_fortran_env
 
  444      integer            i, ii, jj, ldb, m, rev
 
  451    subroutine pdlacp3(m, i, a, desca, b, ldb, ii, jj, rev)
 
  452      use, 
intrinsic :: iso_fortran_env
 
  454      integer            i, ii, jj, ldb, m, rev
 
  461    integer function indxl2g(indxloc, nb, iproc, isrcproc, nprocs)
 
  463      integer            indxloc, iproc, isrcproc, nb, nprocs
 
  468    integer function indxg2l(indxglob, nb, iproc, isrcproc, nprocs)
 
  470      integer            indxglob, iproc, isrcproc, nb, nprocs
 
  475    integer function indxg2p(indxglob, nb, iproc, isrcproc, nprocs)
 
  477      integer            indxglob, iproc, isrcproc, nb, nprocs
 
Computes a QR factorization of a real distributed .
 
Computes all the eigenvalues, and optionally, the eigenvectors of a complex generalized Hermitian-def...
 
Generates an  real distributed matrix Q denoting A(IA:IA+M-1,JA:JA+N-1) with orthonormal columns,...
 
Computes the Cholesky factorization of an  real symmetric positive definite distributed matrix sub(A)...
 
Computes all eigenvalues and, optionally, eigenvectors of a real symmetric matrix A by calling the re...
 
Computes selected eigenvalues and, optionally, eigenvectors of a real symmetric matrix A by calling t...
 
Computes all the eigenvalues, and optionally, the eigenvectors of a real generalized SY-definite eige...
 
This module contains interfaces for ScaLAPACK routines Interfaces are from http: