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.
103 if (
associated(this%strsclr))
then
104 if (this%master)
deallocate (this%strsclr)
105 nullify (this%strsclr)
108 if (
associated(this%logicalsclr))
then
109 if (this%master)
deallocate (this%logicalsclr)
110 nullify (this%logicalsclr)
113 if (
associated(this%intsclr))
then
114 if (this%master)
deallocate (this%intsclr)
115 nullify (this%intsclr)
118 if (
associated(this%dblsclr))
then
119 if (this%master)
deallocate (this%dblsclr)
120 nullify (this%dblsclr)
123 if (
associated(this%astr1d))
then
124 if (this%master)
deallocate (this%astr1d)
125 nullify (this%astr1d)
128 if (
associated(this%aint1d))
then
129 if (this%master)
deallocate (this%aint1d)
130 nullify (this%aint1d)
133 if (
associated(this%aint2d))
then
134 if (this%master)
deallocate (this%aint2d)
135 nullify (this%aint2d)
138 if (
associated(this%aint3d))
then
139 if (this%master)
deallocate (this%aint3d)
140 nullify (this%aint3d)
143 if (
associated(this%adbl1d))
then
144 if (this%master)
deallocate (this%adbl1d)
145 nullify (this%adbl1d)
148 if (
associated(this%adbl2d))
then
149 if (this%master)
deallocate (this%adbl2d)
150 nullify (this%adbl2d)
153 if (
associated(this%adbl3d))
then
154 if (this%master)
deallocate (this%adbl3d)
155 nullify (this%adbl3d)
158 if (
associated(this%acharstr1d))
then
159 if (this%master)
deallocate (this%acharstr1d)
160 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 ...