Octopus
time_dependent.F90
Go to the documentation of this file.
1!! Copyright (C) 2019-2020 M. Oliveira, H. Appel, N. Tancogne-Dejean
2!!
3!! This program is free software; you can redistribute it and/or modify
4!! it under the terms of the GNU General Public License as published by
5!! the Free Software Foundation; either version 2, or (at your option)
6!! any later version.
7!!
8!! This program is distributed in the hope that it will be useful,
9!! but WITHOUT ANY WARRANTY; without even the implied warranty of
10!! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11!! GNU General Public License for more details.
12!!
13!! You should have received a copy of the GNU General Public License
14!! along with this program; if not, write to the Free Software
15!! Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
16!! 02110-1301, USA.
17!!
18
19#include "global.h"
20
22 use debug_oct_m
24 use global_oct_m
29 use parser_oct_m
32 use system_oct_m
33 use td_oct_m
35
36 implicit none
37
38 private
39 public :: time_dependent_run
40
41contains
42
43 ! ---------------------------------------------------------
44 subroutine time_dependent_run(electrons, from_scratch)
45 class(electrons_t), intent(inout) :: electrons
46 logical, intent(inout) :: from_scratch
47
48 push_sub(time_dependent_run)
49
50 call td_init(electrons%td, electrons%namespace, electrons%space, electrons%gr, electrons%ions, electrons%st, electrons%ks, &
51 electrons%hm, electrons%ext_partners, electrons%outp)
52 call td_init_run(electrons%td, electrons%namespace, electrons%mc, electrons%gr, electrons%ions, electrons%st, electrons%ks, &
53 electrons%hm, electrons%ext_partners, electrons%outp, electrons%space, from_scratch)
54 call td_run(electrons%td, electrons%namespace, electrons%mc, electrons%gr, electrons%ions, electrons%st, electrons%ks, &
55 electrons%hm, electrons%ext_partners, electrons%outp, electrons%space, from_scratch)
56 call td_end_run(electrons%td, electrons%st, electrons%hm)
57 call td_end(electrons%td)
58
59 pop_sub(time_dependent_run)
60 end subroutine time_dependent_run
61
62end module time_dependent_oct_m
This module implements the basic mulsisystem class, a container system for other systems.
This module implements the multisystem debug functionality.
This module implements the abstract system type.
Definition: system.F90:118
Definition: td.F90:114
subroutine, public td_end(td)
Definition: td.F90:610
subroutine, public td_end_run(td, st, hm)
Definition: td.F90:625
subroutine, public td_init(td, namespace, space, gr, ions, st, ks, hm, ext_partners, outp)
Definition: td.F90:247
subroutine, public td_run(td, namespace, mc, gr, ions, st, ks, hm, ext_partners, outp, space, from_scratch)
Definition: td.F90:645
subroutine, public td_init_run(td, namespace, mc, gr, ions, st, ks, hm, ext_partners, outp, space, from_scratch)
Definition: td.F90:493
subroutine, public time_dependent_run(electrons, from_scratch)
This module provices a simple timer class which can be used to trigger the writing of a restart file ...
Definition: walltimer.F90:121