37  use, 
intrinsic :: iso_fortran_env
 
   80    class(subspace_t),    
intent(out) :: this
 
   81    type(namespace_t),    
intent(in)  :: namespace
 
   82    type(states_elec_t),  
intent(in)  :: st
 
  107    default = option__subspacediagonalization__standard
 
  110    if (st%parallel_in_states) default = option__subspacediagonalization__scalapack
 
  113    call parse_variable(namespace, 
'SubspaceDiagonalization', default, this%method)
 
  122    if (this%method == option__subspacediagonalization__scalapack) 
then 
  124      message(1) = 
'The scalapack subspace diagonalization can only be used with MPI parallelization.' 
  127#ifndef HAVE_SCALAPACK 
  128      message(1) = 
'The scalapack subspace diagonalization requires scalapack.' 
  131      if (st%dom_st_mpi_grp%size == 1) 
then 
  132        message(1) = 
'The scalapack subspace diagonalization is designed to be used with domain or state parallelization.' 
  136      if (st%d%kpt%parallel) 
then 
  137        message(1) = 
'Currently the scalapack subspace diagonalization does not use k-point parallelization.' 
  148#include "subspace_inc.F90" 
  151#include "complex.F90" 
  152#include "subspace_inc.F90" 
This module implements batches of mesh functions.
 
This module implements common operations on batches of mesh functions.
 
This module contains interfaces for BLACS routines Interfaces are from http:
 
This module provides the BLACS processor grid.
 
This module contains interfaces for BLAS routines You should not use these routines directly....
 
This module is intended to contain "only mathematical" functions and procedures.
 
This module defines functions over batches of mesh functions.
 
This module defines the meshes, which are used in Octopus.
 
subroutine, public messages_warning(no_lines, all_nodes, namespace)
 
character(len=256), dimension(max_lines), public message
to be output by fatal, warning
 
subroutine, public messages_fatal(no_lines, only_root_writes, namespace)
 
subroutine, public messages_input_error(namespace, var, details, row, column)
 
This module contains interfaces for ScaLAPACK routines Interfaces are from http:
 
This module provides routines for communicating states when using states parallelization.
 
subroutine subspace_init(this, namespace, st)
Initialize Subspace type.
 
subroutine, public dsubspace_diag(this, namespace, mesh, st, hm, ik, eigenval, diff, nonortho)
Diagonalises the Hamiltonian in the subspace defined by the states.
 
subroutine, public zsubspace_diag(this, namespace, mesh, st, hm, ik, eigenval, diff, nonortho)
Diagonalises the Hamiltonian in the subspace defined by the states.