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) 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 class(system_t), pointer :: system
34 end interface
35
37
38!! Local Variables:
39!! mode: f90
40!! coding: utf-8
41!! End:
This module defines the abstract class for the system factory.
This module implements the abstract system type.
Definition: system.F90:118
Abstract class for systems.
Definition: system.F90:172