20#include "../base/base_uses.f90"
28 INTEGER :: io_stack_level = 0
30 INTEGER,
POINTER,
DIMENSION(:) :: io_stack_channel => null(), &
31 io_stack_lineno => null()
32 CHARACTER(len=default_path_length), &
33 POINTER,
DIMENSION(:) :: io_stack_filename => null()
36 INTEGER :: num_variables = 0
38 CHARACTER(len=default_path_length), &
39 POINTER,
DIMENSION(:) :: variable_name => null()
40 CHARACTER(len=default_path_length), &
41 POINTER,
DIMENSION(:) :: variable_value => null()
45 CHARACTER(len=*),
PARAMETER,
PRIVATE :: modulen =
'cp_parser_inpp_types'
58 CHARACTER(len=default_path_length), &
59 DIMENSION(:, :),
POINTER :: initial_variables
61 cpassert(.NOT.
ASSOCIATED(inpp))
64 IF (
ASSOCIATED(initial_variables))
THEN
65 inpp%num_variables =
SIZE(initial_variables, 2)
66 ALLOCATE (inpp%variable_name(inpp%num_variables))
67 inpp%variable_name = initial_variables(1, :)
68 ALLOCATE (inpp%variable_value(inpp%num_variables))
69 inpp%variable_value = initial_variables(2, :)
83 cpassert(
ASSOCIATED(inpp))
85 IF (
ASSOCIATED(inpp%io_stack_channel))
THEN
86 DEALLOCATE (inpp%io_stack_channel)
88 IF (
ASSOCIATED(inpp%io_stack_lineno))
THEN
89 DEALLOCATE (inpp%io_stack_lineno)
91 IF (
ASSOCIATED(inpp%io_stack_filename))
THEN
92 DEALLOCATE (inpp%io_stack_filename)
95 IF (
ASSOCIATED(inpp%variable_name))
THEN
96 DEALLOCATE (inpp%variable_name)
98 IF (
ASSOCIATED(inpp%variable_value))
THEN
99 DEALLOCATE (inpp%variable_value)
a module to allow simple internal preprocessing in input files.
subroutine, public create_inpp_type(inpp, initial_variables)
creates the internal preprocessing type
subroutine, public release_inpp_type(inpp)
releases the internal preprocessing type
Defines the basic variable types.
integer, parameter, public default_path_length