16 #include "../base/base_uses.f90"
19 LOGICAL,
PRIVATE,
PARAMETER :: debug_this_module = .false.
20 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'xc_rho_cflags_types'
22 PUBLIC :: xc_rho_cflags_type
48 TYPE xc_rho_cflags_type
49 LOGICAL :: rho = .false., rho_spin = .false., drho = .false., drho_spin = .false., &
50 norm_drho = .false., norm_drho_spin = .false., &
51 rho_1_3 = .false., rho_spin_1_3 = .false., &
52 tau = .false., tau_spin = .false., laplace_rho = .false., laplace_rho_spin = .false.
53 END TYPE xc_rho_cflags_type
63 TYPE(xc_rho_cflags_type),
INTENT(out) :: cflags
64 LOGICAL,
INTENT(in) :: value
67 cflags%rho_spin =
value
69 cflags%drho_spin =
value
70 cflags%norm_drho =
value
71 cflags%norm_drho_spin =
value
72 cflags%rho_1_3 =
value
73 cflags%rho_spin_1_3 =
value
75 cflags%tau_spin =
value
76 cflags%laplace_rho =
value
77 cflags%laplace_rho_spin =
value
87 TYPE(xc_rho_cflags_type),
INTENT(in) :: cflags1, cflags2
90 equal = ((cflags1%rho .EQV. cflags2%rho) .AND. &
91 (cflags1%rho_spin .EQV. cflags2%rho_spin) .AND. &
92 (cflags1%drho .EQV. cflags2%drho) .AND. &
93 (cflags1%drho_spin .EQV. cflags2%drho_spin) .AND. &
94 (cflags1%norm_drho .EQV. cflags2%norm_drho) .AND. &
95 (cflags1%norm_drho_spin .EQV. cflags2%norm_drho_spin) .AND. &
96 (cflags1%rho_1_3 .EQV. cflags2%rho_1_3) .AND. &
97 (cflags1%rho_spin_1_3 .EQV. cflags2%rho_spin_1_3) .AND. &
98 (cflags1%tau .EQV. cflags2%tau) .AND. &
99 (cflags1%tau_spin .EQV. cflags2%tau_spin) .AND. &
100 (cflags1%laplace_rho .EQV. cflags2%laplace_rho) .AND. &
101 (cflags1%laplace_rho_spin .EQV. cflags2%laplace_rho_spin))
elemental logical function, public xc_rho_cflags_equal(cflags1, cflags2)
return true if the two cflags are equal
elemental subroutine, public xc_rho_cflags_setall(cflags, value)
sets all the flags to the given value