17 character(len=LENVARNAME) :: name
18 character(len=LENVARNAME) :: mastername =
'none'
19 character(len=LENMEMPATH) :: path
20 character(len=LENMEMPATH) :: masterpath =
'none'
21 character(len=LENMEMTYPE) :: memtype
23 integer(I4B) :: nrealloc = 0
24 integer(I4B) :: isize = -1
25 integer(I4B) :: element_size = 0
26 integer(I4B) :: set_handler_idx = 0
27 logical(LGP) :: master = .true.
28 character(len=:),
pointer :: strsclr => null()
29 logical(LGP),
pointer :: logicalsclr => null()
30 integer(I4B),
pointer :: intsclr => null()
31 real(dp),
pointer :: dblsclr => null()
32 character(len=:),
dimension(:),
pointer,
contiguous :: astr1d => null()
33 integer(I4B),
dimension(:),
pointer,
contiguous :: aint1d => null()
34 integer(I4B),
dimension(:, :),
pointer,
contiguous :: aint2d => null()
35 integer(I4B),
dimension(:, :, :),
pointer,
contiguous :: aint3d => null()
36 real(dp),
dimension(:),
pointer,
contiguous :: adbl1d => null()
37 real(dp),
dimension(:, :),
pointer,
contiguous :: adbl2d => null()
38 real(dp),
dimension(:, :, :),
pointer,
contiguous :: adbl3d => null()
54 character(len=16) :: cmem
55 character(len=LENMEMADDRESS) :: cptr
60 ipos = index(this%memtype,
' (')
64 ipos = min(16, ipos - 1)
66 cmem = this%memtype(1:ipos)
70 if (.not. this%master)
then
75 call memtab%add_term(this%path)
76 call memtab%add_term(this%name)
77 call memtab%add_term(cmem)
78 call memtab%add_term(this%isize)
79 call memtab%add_term(cptr)
86 if (
associated(this%strsclr)) al = .true.
87 if (
associated(this%logicalsclr)) al = .true.
88 if (
associated(this%intsclr)) al = .true.
89 if (
associated(this%dblsclr)) al = .true.
90 if (
associated(this%astr1d)) al = .true.
91 if (
associated(this%aint1d)) al = .true.
92 if (
associated(this%aint2d)) al = .true.
93 if (
associated(this%aint3d)) al = .true.
94 if (
associated(this%adbl1d)) al = .true.
95 if (
associated(this%adbl2d)) al = .true.
96 if (
associated(this%adbl3d)) al = .true.
97 if (
associated(this%acharstr1d)) al = .true.
104 if (
associated(this%strsclr))
then
105 if (this%master)
deallocate (this%strsclr)
106 nullify (this%strsclr)
109 if (
associated(this%logicalsclr))
then
110 if (this%master)
deallocate (this%logicalsclr)
111 nullify (this%logicalsclr)
114 if (
associated(this%intsclr))
then
115 if (this%master)
deallocate (this%intsclr)
116 nullify (this%intsclr)
119 if (
associated(this%dblsclr))
then
120 if (this%master)
deallocate (this%dblsclr)
121 nullify (this%dblsclr)
124 if (
associated(this%astr1d))
then
125 if (this%master)
deallocate (this%astr1d)
126 nullify (this%astr1d)
129 if (
associated(this%aint1d))
then
130 if (this%master)
deallocate (this%aint1d)
131 nullify (this%aint1d)
134 if (
associated(this%aint2d))
then
135 if (this%master)
deallocate (this%aint2d)
136 nullify (this%aint2d)
139 if (
associated(this%aint3d))
then
140 if (this%master)
deallocate (this%aint3d)
141 nullify (this%aint3d)
144 if (
associated(this%adbl1d))
then
145 if (this%master)
deallocate (this%adbl1d)
146 nullify (this%adbl1d)
149 if (
associated(this%adbl2d))
then
150 if (this%master)
deallocate (this%adbl2d)
151 nullify (this%adbl2d)
154 if (
associated(this%adbl3d))
then
155 if (this%master)
deallocate (this%adbl3d)
156 nullify (this%adbl3d)
159 if (
associated(this%acharstr1d))
then
160 if (this%master)
then
161 do n = 1,
size(this%acharstr1d)
162 call this%acharstr1d(n)%destroy()
164 deallocate (this%acharstr1d)
166 nullify (this%acharstr1d)
This module contains simulation constants.
@ tabcenter
centered table column
@ tabright
right justified table column
@ tableft
left justified table column
integer(i4b), parameter lenmemaddress
maximum length of the full memory address, including variable name
@ tabstring
string table data
@ tabinteger
integer table data
integer(i4b), parameter lentimeseriesname
maximum length of a time series name
integer(i4b), parameter lenvarname
maximum length of a variable name
integer(i4b), parameter, public maxmemrank
maximum memory manager length (up to 3-dimensional arrays)
integer(i4b), parameter, public lenmemtype
maximum length of a memory manager type
integer(i4b), parameter lenmempath
maximum length of the memory path
This module defines variable data types.
character(len=lenmemaddress) function create_mem_address(mem_path, var_name)
returns the address string of the memory object
subroutine mt_deallocate(this)
subroutine table_entry(this, memtab)
logical function mt_associated(this)
This class is used to store a single deferred-length character string. It was designed to work in an ...