Octopus
system_factory_abst.F90
Go to the documentation of this file.
1!! Copyright (C) 2020 M. Oliveira
2!!
3!! This Source Code Form is subject to the terms of the Mozilla Public
4!! License, v. 2.0. If a copy of the MPL was not distributed with this
5!! file, You can obtain one at https://mozilla.org/MPL/2.0/.
6!!
7
11 use system_oct_m
12 implicit none
13
14 private
15 public :: &
17
19 type, abstract :: system_factory_abst_t
20 contains
21 procedure(system_factory_abst_create), deferred :: create
23
24 abstract interface
25 function system_factory_abst_create(this, namespace, type, calc_mode_id) result(system)
26 import :: system_factory_abst_t
27 import system_t
28 import namespace_t
29 class(system_factory_abst_t), intent(in) :: this
30 type(namespace_t), intent(in) :: namespace
31 integer, intent(in) :: type
32 integer, intent(in) :: calc_mode_id
33 class(system_t), pointer :: system
35 end interface
36
38
39!! Local Variables:
40!! mode: f90
41!! coding: utf-8
42!! End:
This module defines the abstract class for the system factory.
This module implements the abstract system type.
Definition: system.F90:120
Abstract class for systems.
Definition: system.F90:174