124 virial%pv_total(j, i) = 0.5_dp*(virial%pv_total(i, j) + virial%pv_total(j, i))
125 virial%pv_total(i, j) = virial%pv_total(j, i)
126 virial%pv_kinetic(j, i) = 0.5_dp*(virial%pv_kinetic(i, j) + virial%pv_kinetic(j, i))
127 virial%pv_kinetic(i, j) = virial%pv_kinetic(j, i)
128 virial%pv_virial(j, i) = 0.5_dp*(virial%pv_virial(i, j) + virial%pv_virial(j, i))
129 virial%pv_virial(i, j) = virial%pv_virial(j, i)
130 virial%pv_xc(j, i) = 0.5_dp*(virial%pv_xc(i, j) + virial%pv_xc(j, i))
131 virial%pv_xc(i, j) = virial%pv_xc(j, i)
132 virial%pv_fock_4c(j, i) = 0.5_dp*(virial%pv_fock_4c(i, j) + virial%pv_fock_4c(j, i))
133 virial%pv_fock_4c(i, j) = virial%pv_fock_4c(j, i)
134 virial%pv_constraint(j, i) = 0.5_dp*(virial%pv_constraint(i, j) + virial%pv_constraint(j, i))
135 virial%pv_constraint(i, j) = virial%pv_constraint(j, i)
137 virial%pv_overlap(j, i) = 0.5_dp*(virial%pv_overlap(i, j) + virial%pv_overlap(j, i))
138 virial%pv_overlap(i, j) = virial%pv_overlap(j, i)
139 virial%pv_ekinetic(j, i) = 0.5_dp*(virial%pv_ekinetic(i, j) + virial%pv_ekinetic(j, i))
140 virial%pv_ekinetic(i, j) = virial%pv_ekinetic(j, i)
141 virial%pv_ppl(j, i) = 0.5_dp*(virial%pv_ppl(i, j) + virial%pv_ppl(j, i))
142 virial%pv_ppl(i, j) = virial%pv_ppl(j, i)
143 virial%pv_ppnl(j, i) = 0.5_dp*(virial%pv_ppnl(i, j) + virial%pv_ppnl(j, i))
144 virial%pv_ppnl(i, j) = virial%pv_ppnl(j, i)
145 virial%pv_ecore_overlap(j, i) = 0.5_dp*(virial%pv_ecore_overlap(i, j) + virial%pv_ecore_overlap(j, i))
146 virial%pv_ecore_overlap(i, j) = virial%pv_ecore_overlap(j, i)
147 virial%pv_ehartree(j, i) = 0.5_dp*(virial%pv_ehartree(i, j) + virial%pv_ehartree(j, i))
148 virial%pv_ehartree(i, j) = virial%pv_ehartree(j, i)
149 virial%pv_exc(j, i) = 0.5_dp*(virial%pv_exc(i, j) + virial%pv_exc(j, i))
150 virial%pv_exc(i, j) = virial%pv_exc(j, i)
151 virial%pv_exx(j, i) = 0.5_dp*(virial%pv_exx(i, j) + virial%pv_exx(j, i))
152 virial%pv_exx(i, j) = virial%pv_exx(j, i)
153 virial%pv_vdw(j, i) = 0.5_dp*(virial%pv_vdw(i, j) + virial%pv_vdw(j, i))
154 virial%pv_vdw(i, j) = virial%pv_vdw(j, i)
155 virial%pv_mp2(j, i) = 0.5_dp*(virial%pv_mp2(i, j) + virial%pv_mp2(j, i))
156 virial%pv_mp2(i, j) = virial%pv_mp2(j, i)
157 virial%pv_nlcc(j, i) = 0.5_dp*(virial%pv_nlcc(i, j) + virial%pv_nlcc(j, i))
158 virial%pv_nlcc(i, j) = virial%pv_nlcc(j, i)
159 virial%pv_gapw(j, i) = 0.5_dp*(virial%pv_gapw(i, j) + virial%pv_gapw(j, i))
160 virial%pv_gapw(i, j) = virial%pv_gapw(j, i)
161 virial%pv_lrigpw(j, i) = 0.5_dp*(virial%pv_lrigpw(i, j) + virial%pv_lrigpw(j, i))
162 virial%pv_lrigpw(i, j) = virial%pv_lrigpw(j, i)
175 LOGICAL,
INTENT(IN),
OPTIONAL :: reset
180 IF (
PRESENT(reset)) my_reset = reset
182 virial%pv_total = 0.0_dp
183 virial%pv_kinetic = 0.0_dp
184 virial%pv_virial = 0.0_dp
185 virial%pv_xc = 0.0_dp
186 virial%pv_fock_4c = 0.0_dp
187 virial%pv_constraint = 0.0_dp
189 virial%pv_overlap = 0.0_dp
190 virial%pv_ekinetic = 0.0_dp
191 virial%pv_ppl = 0.0_dp
192 virial%pv_ppnl = 0.0_dp
193 virial%pv_ecore_overlap = 0.0_dp
194 virial%pv_ehartree = 0.0_dp
195 virial%pv_exc = 0.0_dp
196 virial%pv_exx = 0.0_dp
197 virial%pv_vdw = 0.0_dp
198 virial%pv_mp2 = 0.0_dp
199 virial%pv_nlcc = 0.0_dp
200 virial%pv_gapw = 0.0_dp
201 virial%pv_lrigpw = 0.0_dp
204 virial%pv_availability = .false.
205 virial%pv_calculate = .false.
206 virial%pv_numer = .false.
207 virial%pv_diagonal = .false.
239 SUBROUTINE virial_set(virial, pv_total, pv_kinetic, pv_virial, pv_xc, pv_fock_4c, pv_constraint, &
240 pv_overlap, pv_ekinetic, pv_ppl, pv_ppnl, pv_ecore_overlap, pv_ehartree, &
241 pv_exc, pv_exx, pv_vdw, pv_mp2, pv_nlcc, pv_gapw, pv_lrigpw, &
242 pv_availability, pv_calculate, pv_numer, pv_diagonal)
245 REAL(kind=
dp),
DIMENSION(3, 3),
OPTIONAL :: pv_total, pv_kinetic, pv_virial, pv_xc, &
246 pv_fock_4c, pv_constraint, pv_overlap, pv_ekinetic, pv_ppl, pv_ppnl, pv_ecore_overlap, &
247 pv_ehartree, pv_exc, pv_exx, pv_vdw, pv_mp2, pv_nlcc, pv_gapw, pv_lrigpw
248 LOGICAL,
OPTIONAL :: pv_availability, pv_calculate, pv_numer, &
251 IF (
PRESENT(pv_total)) virial%pv_total = pv_total
252 IF (
PRESENT(pv_kinetic)) virial%pv_kinetic = pv_kinetic
253 IF (
PRESENT(pv_virial)) virial%pv_virial = pv_virial
254 IF (
PRESENT(pv_xc)) virial%pv_xc = pv_xc
255 IF (
PRESENT(pv_fock_4c)) virial%pv_fock_4c = pv_fock_4c
256 IF (
PRESENT(pv_constraint)) virial%pv_constraint = pv_constraint
258 IF (
PRESENT(pv_overlap)) virial%pv_overlap = pv_overlap
259 IF (
PRESENT(pv_ekinetic)) virial%pv_ekinetic = pv_ekinetic
260 IF (
PRESENT(pv_ppl)) virial%pv_ppl = pv_ppl
261 IF (
PRESENT(pv_ppnl)) virial%pv_ppnl = pv_ppnl
262 IF (
PRESENT(pv_ecore_overlap)) virial%pv_ecore_overlap = pv_ecore_overlap
263 IF (
PRESENT(pv_ehartree)) virial%pv_ehartree = pv_ehartree
264 IF (
PRESENT(pv_exc)) virial%pv_exc = pv_exc
265 IF (
PRESENT(pv_exx)) virial%pv_exx = pv_exx
266 IF (
PRESENT(pv_vdw)) virial%pv_vdw = pv_vdw
267 IF (
PRESENT(pv_mp2)) virial%pv_mp2 = pv_mp2
268 IF (
PRESENT(pv_nlcc)) virial%pv_nlcc = pv_nlcc
269 IF (
PRESENT(pv_gapw)) virial%pv_gapw = pv_gapw
270 IF (
PRESENT(pv_lrigpw)) virial%pv_lrigpw = pv_lrigpw
272 IF (
PRESENT(pv_availability)) virial%pv_availability = pv_availability
273 IF (
PRESENT(pv_calculate)) virial%pv_calculate = pv_calculate
274 IF (
PRESENT(pv_numer)) virial%pv_numer = pv_numer
275 IF (
PRESENT(pv_diagonal)) virial%pv_diagonal = pv_diagonal
subroutine, public virial_set(virial, pv_total, pv_kinetic, pv_virial, pv_xc, pv_fock_4c, pv_constraint, pv_overlap, pv_ekinetic, pv_ppl, pv_ppnl, pv_ecore_overlap, pv_ehartree, pv_exc, pv_exx, pv_vdw, pv_mp2, pv_nlcc, pv_gapw, pv_lrigpw, pv_availability, pv_calculate, pv_numer, pv_diagonal)
...