29 #include "../base/base_uses.f90"
35 INTEGER,
PARAMETER,
PUBLIC :: &
49 INTEGER,
PARAMETER :: max_label_length = 12
51 LOGICAL,
PARAMETER :: debug_this_module = .false.
53 CHARACTER(len=*),
PARAMETER,
PRIVATE :: modulen =
'xc_derivative_desc'
65 CHARACTER(LEN=*),
INTENT(IN) :: desc
68 SELECT CASE (trim(desc))
94 cpabort(
"Unknown derivative variable: "//desc)
105 INTEGER,
INTENT(IN) :: id
106 CHARACTER(LEN=MAX_LABEL_LENGTH) :: desc
130 desc =
"laplace_rhoa"
132 desc =
"laplace_rhob"
134 cpabort(
"Unknown derivative id!")
145 INTEGER,
DIMENSION(:),
INTENT(IN) :: desc
146 INTEGER,
DIMENSION(:),
POINTER :: split_desc
148 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: indices
150 ALLOCATE (split_desc(
SIZE(desc)))
151 IF (
SIZE(desc) > 0)
THEN
152 ALLOCATE (indices(
SIZE(desc)))
154 CALL sort(split_desc,
SIZE(desc), indices)
166 INTEGER,
DIMENSION(:),
INTENT(IN) :: desc
167 INTEGER,
ALLOCATABLE,
DIMENSION(:),
INTENT(OUT) :: split_desc
169 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: indices
171 ALLOCATE (split_desc(
SIZE(desc)))
172 IF (
SIZE(desc) > 0)
THEN
173 ALLOCATE (indices(
SIZE(desc)))
175 CALL sort(split_desc,
SIZE(desc), indices)
All kind of helpful little routines.
Module with functions to handle derivative descriptors. derivative description are strings have the f...
integer, parameter, public deriv_norm_drho
integer, parameter, public deriv_laplace_rhob
integer, parameter, public deriv_norm_drhoa
integer, parameter, public deriv_rhob
integer, parameter, public deriv_rhoa
integer, parameter, public deriv_tau
integer, parameter, public deriv_tau_b
subroutine, public standardize_desc(desc, split_desc)
...
integer, parameter, public deriv_tau_a
integer, parameter, public deriv_laplace_rhoa
subroutine, public create_split_desc(desc, split_desc)
...
integer function, public desc_to_id(desc)
...
integer, parameter, public deriv_rho
integer, parameter, public deriv_norm_drhob
character(len=max_label_length) function, public id_to_desc(id)
...
integer, parameter, public deriv_laplace_rho