40 integer :: periodic_dim = 0
50 procedure space_constructor
58 type(namespace_t),
intent(in) :: namespace
60 integer,
parameter :: default_ndim = 3
73 call parse_variable(namespace,
'Dimensions', default_ndim, this%dim)
92 call parse_variable(namespace,
'PeriodicDimensions', 0, this%periodic_dim)
94 if ((this%periodic_dim < 0) .or. (this%periodic_dim > this%dim))
then
102 logical pure function space_is_periodic(this)
103 class(space_t),
intent(in) :: this
105 space_is_periodic = this%periodic_dim > 0
110 logical pure function space_has_mixed_periodicity(this)
111 class(space_t),
intent(in) :: this
119 class(space_t),
intent(in) :: this
120 type(namespace_t),
intent(in) :: namespace
124 call messages_print_with_emphasis(msg=
"Space", namespace=namespace)
126 write(message(1),
'(a,i1,a)')
'Octopus will run in ', this%dim,
' dimension(s).'
127 write(message(2),
'(a,i1,a)')
'Octopus will treat the system as periodic in ', this%periodic_dim,
' dimension(s).'
128 call messages_info(2, namespace=namespace)
130 call messages_print_with_emphasis(namespace=namespace)
141 write(
info,
'(a,i1,a,i1)')
'Dimensions = ', this%dim,
'; PeriodicDimensions = ', this%periodic_dim
subroutine, public messages_input_error(namespace, var, details, row, column)
type(space_t) function space_constructor(namespace)
logical pure function space_is_periodic(this)
subroutine space_write_info(this, namespace)
logical pure function space_has_mixed_periodicity(this)
character(len=40) function space_short_info(this)