Octopus
energy.F90
Go to the documentation of this file.
1!! Copyright (C) 2002-2006 M. Marques, A. Castro, A. Rubio, G. Bertsch
2!! Copyright (C) 2012 M. Oliveira
3!!
4!! This program is free software; you can redistribute it and/or modify
5!! it under the terms of the GNU General Public License as published by
6!! the Free Software Foundation; either version 2, or (at your option)
7!! any later version.
8!!
9!! This program is distributed in the hope that it will be useful,
10!! but WITHOUT ANY WARRANTY; without even the implied warranty of
11!! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12!! GNU General Public License for more details.
13!!
14!! You should have received a copy of the GNU General Public License
15!! along with this program; if not, write to the Free Software
16!! Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17!! 02110-1301, USA.
18!!
19
20#include "global.h"
21
22module energy_oct_m
23 use debug_oct_m
24 use global_oct_m
25
26 implicit none
27
28 private
29
30 public :: &
31 energy_t, &
33
34 type energy_t
35 ! Components are public by default
36 ! Energies
37 real(real64) :: total = m_zero
42 real(real64) :: eigenvalues = m_zero
43 real(real64) :: exchange = m_zero
44 real(real64) :: exchange_hf = m_zero
45 real(real64) :: correlation = m_zero
46 real(real64) :: vdw = m_zero
47 real(real64) :: xc_j = m_zero
48 real(real64) :: intnvxc = m_zero
49 real(real64) :: hartree = m_zero
50 real(real64) :: int_ee_pcm = m_zero
51 real(real64) :: int_en_pcm = m_zero
52 real(real64) :: int_ne_pcm = m_zero
53 real(real64) :: int_nn_pcm = m_zero
54 real(real64) :: int_e_ext_pcm = m_zero
55 real(real64) :: int_n_ext_pcm = m_zero
56 real(real64) :: pcm_corr = m_zero
57 real(real64) :: kinetic = m_zero
58 real(real64) :: extern = m_zero
59 real(real64) :: extern_local = m_zero
60 real(real64) :: extern_non_local = m_zero
61 real(real64) :: entropy = m_zero
62 real(real64) :: ts = m_zero
63 real(real64) :: berry = m_zero
64 real(real64) :: delta_xc = m_zero
65 real(real64) :: dft_u = m_zero
66 real(real64) :: int_dft_u = m_zero
67 real(real64) :: intnvstatic = m_zero
68 real(real64) :: photon_exchange = m_zero
69 end type energy_t
70
71contains
72
73 subroutine energy_copy(ein, eout)
74 type(energy_t), intent(in) :: ein
75 type(energy_t), intent(out) :: eout
76
77 push_sub(energy_copy)
78
79 eout%total = ein%total
80 eout%eigenvalues = ein%eigenvalues
81 eout%exchange = ein%exchange
82 eout%exchange_hf = ein%exchange_hf
83 eout%correlation = ein%correlation
84 eout%vdw = ein%vdw
85 eout%xc_j = ein%xc_j
86 eout%intnvxc = ein%intnvxc
87 eout%hartree = ein%hartree
88 eout%int_ee_pcm = ein%int_ee_pcm
89 eout%int_en_pcm = ein%int_en_pcm
90 eout%int_nn_pcm = ein%int_nn_pcm
91 eout%int_ne_pcm = ein%int_ne_pcm
92 eout%int_e_ext_pcm = ein%int_e_ext_pcm
93 eout%int_n_ext_pcm = ein%int_n_ext_pcm
94 eout%pcm_corr = ein%pcm_corr
95 eout%kinetic = ein%kinetic
96 eout%extern = ein%extern
97 eout%extern_local = ein%extern_local
98 eout%extern_non_local = ein%extern_non_local
99 eout%entropy = ein%entropy
100 eout%ts = ein%ts
101 eout%berry = ein%berry
102 eout%delta_xc = ein%delta_xc
103 eout%dft_u = ein%dft_u
104 eout%int_dft_u = ein%int_dft_u
105 eout%intnvstatic = ein%intnvstatic
106 eout%photon_exchange = ein%photon_exchange
107
108 pop_sub(energy_copy)
109 end subroutine energy_copy
110
111end module energy_oct_m
112
113!! Local Variables:
114!! mode: f90
115!! coding: utf-8
116!! End:
subroutine, public energy_copy(ein, eout)
Definition: energy.F90:167
real(real64), parameter, public m_zero
Definition: global.F90:187