MODFLOW 6  version 6.9.0.dev0
USGS Modular Hydrologic Model
memoryaliasmodule Module Reference

Previous variable names checked in as deprecated aliases. More...

Data Types

interface  mem_alias_deprecated
 

Functions/Subroutines

subroutine alias_int (sclr, name, mem_path, name2, mem_path2, version)
 Check in a deprecated name for an integer scalar. More...
 
subroutine alias_logical1d (alog, name, mem_path, name2, mem_path2, version)
 Check in a deprecated name for a 1d logical array. More...
 
subroutine alias_int1d (aint, name, mem_path, name2, mem_path2, version)
 Check in a deprecated name for a 1d integer array. More...
 
subroutine alias_int2d (aint, name, mem_path, name2, mem_path2, version)
 Check in a deprecated name for a 2d integer array. More...
 
subroutine alias_dbl1d (adbl, name, mem_path, name2, mem_path2, version)
 Check in a deprecated name for a 1d double precision array. More...
 
subroutine alias_dbl2d (adbl, name, mem_path, name2, mem_path2, version)
 Check in a deprecated name for a 2d double precision array. More...
 
subroutine alias_charstr1d (acharstr1d, ilen, name, mem_path, name2, mem_path2, version)
 Check in a deprecated name for a 1d character string array. More...
 
subroutine record_alias (name, mem_path, name2, mem_path2, version)
 Record the replacement and version of a deprecated name. More...
 
subroutine, public get_deprecated_alias (name, mem_path, found, replacement, version)
 Get the replacement and version of a deprecated name. More...
 
subroutine, public mem_alias_da ()
 Clear the recorded aliases. More...
 

Variables

integer(i4b), parameter lenversion = 16
 maximum length of a version string More...
 
type(hashtabletype), pointer alias_index => null()
 alias address to record number More...
 
integer(i4b) nalias = 0
 number of recorded aliases More...
 
character(len=lenmemaddress), dimension(:), allocatable replacements
 address of the replacement variable More...
 
character(len=lenversion), dimension(:), allocatable versions
 version the alias was deprecated in More...
 

Detailed Description

A package that renames or moves a variable checks in the previous name as an alias of the variable, so a program that addresses it through the API still resolves, and records the replacement for the API to report.

Function/Subroutine Documentation

◆ alias_charstr1d()

subroutine memoryaliasmodule::alias_charstr1d ( type(characterstringtype), dimension(:), intent(inout), pointer, contiguous  acharstr1d,
integer(i4b), intent(in)  ilen,
character(len=*), intent(in)  name,
character(len=*), intent(in)  mem_path,
character(len=*), intent(in)  name2,
character(len=*), intent(in)  mem_path2,
character(len=*), intent(in)  version 
)
private
Parameters
[in,out]acharstr1dthe replacement variable
[in]ilenstring length
[in]namedeprecated variable name
[in]mem_pathpath of the deprecated name
[in]name2replacement variable name
[in]mem_path2path of the replacement variable
[in]versionversion the name was deprecated in

Definition at line 140 of file MemoryAlias.f90.

142  type(CharacterStringType), dimension(:), &
143  pointer, contiguous, intent(inout) :: acharstr1d !< the replacement variable
144  integer(I4B), intent(in) :: ilen !< string length
145  character(len=*), intent(in) :: name !< deprecated variable name
146  character(len=*), intent(in) :: mem_path !< path of the deprecated name
147  character(len=*), intent(in) :: name2 !< replacement variable name
148  character(len=*), intent(in) :: mem_path2 !< path of the replacement variable
149  character(len=*), intent(in) :: version !< version the name was deprecated in
150  !
151  if (.not. associated(acharstr1d)) return
152  call mem_checkin(acharstr1d, ilen, name, mem_path, name2, mem_path2)
153  call record_alias(name, mem_path, name2, mem_path2, version)

◆ alias_dbl1d()

subroutine memoryaliasmodule::alias_dbl1d ( real(dp), dimension(:), intent(inout), pointer, contiguous  adbl,
character(len=*), intent(in)  name,
character(len=*), intent(in)  mem_path,
character(len=*), intent(in)  name2,
character(len=*), intent(in)  mem_path2,
character(len=*), intent(in)  version 
)
private
Parameters
[in,out]adblthe replacement variable
[in]namedeprecated variable name
[in]mem_pathpath of the deprecated name
[in]name2replacement variable name
[in]mem_path2path of the replacement variable
[in]versionversion the name was deprecated in

Definition at line 110 of file MemoryAlias.f90.

111  real(DP), dimension(:), pointer, contiguous, intent(inout) :: adbl !< the replacement variable
112  character(len=*), intent(in) :: name !< deprecated variable name
113  character(len=*), intent(in) :: mem_path !< path of the deprecated name
114  character(len=*), intent(in) :: name2 !< replacement variable name
115  character(len=*), intent(in) :: mem_path2 !< path of the replacement variable
116  character(len=*), intent(in) :: version !< version the name was deprecated in
117  !
118  if (.not. associated(adbl)) return
119  call mem_checkin(adbl, name, mem_path, name2, mem_path2)
120  call record_alias(name, mem_path, name2, mem_path2, version)

◆ alias_dbl2d()

subroutine memoryaliasmodule::alias_dbl2d ( real(dp), dimension(:, :), intent(inout), pointer, contiguous  adbl,
character(len=*), intent(in)  name,
character(len=*), intent(in)  mem_path,
character(len=*), intent(in)  name2,
character(len=*), intent(in)  mem_path2,
character(len=*), intent(in)  version 
)
private
Parameters
[in,out]adblthe replacement variable
[in]namedeprecated variable name
[in]mem_pathpath of the deprecated name
[in]name2replacement variable name
[in]mem_path2path of the replacement variable
[in]versionversion the name was deprecated in

Definition at line 125 of file MemoryAlias.f90.

126  real(DP), dimension(:, :), pointer, contiguous, intent(inout) :: adbl !< the replacement variable
127  character(len=*), intent(in) :: name !< deprecated variable name
128  character(len=*), intent(in) :: mem_path !< path of the deprecated name
129  character(len=*), intent(in) :: name2 !< replacement variable name
130  character(len=*), intent(in) :: mem_path2 !< path of the replacement variable
131  character(len=*), intent(in) :: version !< version the name was deprecated in
132  !
133  if (.not. associated(adbl)) return
134  call mem_checkin(adbl, name, mem_path, name2, mem_path2)
135  call record_alias(name, mem_path, name2, mem_path2, version)

◆ alias_int()

subroutine memoryaliasmodule::alias_int ( integer(i4b), intent(in), pointer  sclr,
character(len=*), intent(in)  name,
character(len=*), intent(in)  mem_path,
character(len=*), intent(in)  name2,
character(len=*), intent(in)  mem_path2,
character(len=*), intent(in)  version 
)
private
Parameters
[in]sclrthe replacement variable
[in]namedeprecated variable name
[in]mem_pathpath of the deprecated name
[in]name2replacement variable name
[in]mem_path2path of the replacement variable
[in]versionversion the name was deprecated in

Definition at line 45 of file MemoryAlias.f90.

46  integer(I4B), pointer, intent(in) :: sclr !< the replacement variable
47  character(len=*), intent(in) :: name !< deprecated variable name
48  character(len=*), intent(in) :: mem_path !< path of the deprecated name
49  character(len=*), intent(in) :: name2 !< replacement variable name
50  character(len=*), intent(in) :: mem_path2 !< path of the replacement variable
51  character(len=*), intent(in) :: version !< version the name was deprecated in
52  ! -- local
53  integer(I4B), pointer :: alias => null()
54  !
55  if (.not. associated(sclr)) return
56  !
57  ! -- a scalar has no checkin, so point a new entry at the replacement
58  call mem_allocate(alias, name, mem_path)
59  call mem_reassignptr(alias, name, mem_path, name2, mem_path2)
60  call record_alias(name, mem_path, name2, mem_path2, version)

◆ alias_int1d()

subroutine memoryaliasmodule::alias_int1d ( integer(i4b), dimension(:), intent(inout), pointer, contiguous  aint,
character(len=*), intent(in)  name,
character(len=*), intent(in)  mem_path,
character(len=*), intent(in)  name2,
character(len=*), intent(in)  mem_path2,
character(len=*), intent(in)  version 
)
private
Parameters
[in,out]aintthe replacement variable
[in]namedeprecated variable name
[in]mem_pathpath of the deprecated name
[in]name2replacement variable name
[in]mem_path2path of the replacement variable
[in]versionversion the name was deprecated in

Definition at line 80 of file MemoryAlias.f90.

81  integer(I4B), dimension(:), pointer, contiguous, intent(inout) :: aint !< the replacement variable
82  character(len=*), intent(in) :: name !< deprecated variable name
83  character(len=*), intent(in) :: mem_path !< path of the deprecated name
84  character(len=*), intent(in) :: name2 !< replacement variable name
85  character(len=*), intent(in) :: mem_path2 !< path of the replacement variable
86  character(len=*), intent(in) :: version !< version the name was deprecated in
87  !
88  if (.not. associated(aint)) return
89  call mem_checkin(aint, name, mem_path, name2, mem_path2)
90  call record_alias(name, mem_path, name2, mem_path2, version)

◆ alias_int2d()

subroutine memoryaliasmodule::alias_int2d ( integer(i4b), dimension(:, :), intent(inout), pointer, contiguous  aint,
character(len=*), intent(in)  name,
character(len=*), intent(in)  mem_path,
character(len=*), intent(in)  name2,
character(len=*), intent(in)  mem_path2,
character(len=*), intent(in)  version 
)
private
Parameters
[in,out]aintthe replacement variable
[in]namedeprecated variable name
[in]mem_pathpath of the deprecated name
[in]name2replacement variable name
[in]mem_path2path of the replacement variable
[in]versionversion the name was deprecated in

Definition at line 95 of file MemoryAlias.f90.

96  integer(I4B), dimension(:, :), pointer, contiguous, intent(inout) :: aint !< the replacement variable
97  character(len=*), intent(in) :: name !< deprecated variable name
98  character(len=*), intent(in) :: mem_path !< path of the deprecated name
99  character(len=*), intent(in) :: name2 !< replacement variable name
100  character(len=*), intent(in) :: mem_path2 !< path of the replacement variable
101  character(len=*), intent(in) :: version !< version the name was deprecated in
102  !
103  if (.not. associated(aint)) return
104  call mem_checkin(aint, name, mem_path, name2, mem_path2)
105  call record_alias(name, mem_path, name2, mem_path2, version)

◆ alias_logical1d()

subroutine memoryaliasmodule::alias_logical1d ( logical(lgp), dimension(:), intent(in), pointer, contiguous  alog,
character(len=*), intent(in)  name,
character(len=*), intent(in)  mem_path,
character(len=*), intent(in)  name2,
character(len=*), intent(in)  mem_path2,
character(len=*), intent(in)  version 
)
private
Parameters
[in]alogthe replacement variable
[in]namedeprecated variable name
[in]mem_pathpath of the deprecated name
[in]name2replacement variable name
[in]mem_path2path of the replacement variable
[in]versionversion the name was deprecated in

Definition at line 65 of file MemoryAlias.f90.

66  logical(LGP), dimension(:), pointer, contiguous, intent(in) :: alog !< the replacement variable
67  character(len=*), intent(in) :: name !< deprecated variable name
68  character(len=*), intent(in) :: mem_path !< path of the deprecated name
69  character(len=*), intent(in) :: name2 !< replacement variable name
70  character(len=*), intent(in) :: mem_path2 !< path of the replacement variable
71  character(len=*), intent(in) :: version !< version the name was deprecated in
72  !
73  if (.not. associated(alog)) return
74  call mem_checkin(alog, name, mem_path, name2, mem_path2)
75  call record_alias(name, mem_path, name2, mem_path2, version)

◆ get_deprecated_alias()

subroutine, public memoryaliasmodule::get_deprecated_alias ( character(len=*), intent(in)  name,
character(len=*), intent(in)  mem_path,
logical(lgp), intent(out)  found,
character(len=lenmemaddress), intent(out)  replacement,
character(len=*), intent(out)  version 
)
Parameters
[in]namevariable name
[in]mem_pathpath of the variable
[out]foundtrue when the name is deprecated
[out]replacementaddress of the replacement variable
[out]versionversion the name was deprecated in

Definition at line 176 of file MemoryAlias.f90.

177  character(len=*), intent(in) :: name !< variable name
178  character(len=*), intent(in) :: mem_path !< path of the variable
179  logical(LGP), intent(out) :: found !< true when the name is deprecated
180  character(len=LENMEMADDRESS), intent(out) :: replacement !< address of the replacement variable
181  character(len=*), intent(out) :: version !< version the name was deprecated in
182  ! -- local
183  integer(I4B) :: i
184  !
185  found = .false.
186  replacement = ''
187  version = ''
188  if (.not. associated(alias_index)) return
189  i = alias_index%get(create_mem_address(mem_path, name))
190  if (i == 0) return
191  found = .true.
192  replacement = replacements(i)
193  version = versions(i)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mem_alias_da()

subroutine, public memoryaliasmodule::mem_alias_da

The alias entries themselves are deallocated with the memory manager.

Definition at line 200 of file MemoryAlias.f90.

201  if (associated(alias_index)) call hash_table_da(alias_index)
202  if (allocated(replacements)) deallocate (replacements)
203  if (allocated(versions)) deallocate (versions)
204  nalias = 0
Here is the call graph for this function:
Here is the caller graph for this function:

◆ record_alias()

subroutine memoryaliasmodule::record_alias ( character(len=*), intent(in)  name,
character(len=*), intent(in)  mem_path,
character(len=*), intent(in)  name2,
character(len=*), intent(in)  mem_path2,
character(len=*), intent(in)  version 
)
private
Parameters
[in]namedeprecated variable name
[in]mem_pathpath of the deprecated name
[in]name2replacement variable name
[in]mem_path2path of the replacement variable
[in]versionversion the name was deprecated in

Definition at line 158 of file MemoryAlias.f90.

159  character(len=*), intent(in) :: name !< deprecated variable name
160  character(len=*), intent(in) :: mem_path !< path of the deprecated name
161  character(len=*), intent(in) :: name2 !< replacement variable name
162  character(len=*), intent(in) :: mem_path2 !< path of the replacement variable
163  character(len=*), intent(in) :: version !< version the name was deprecated in
164  !
165  if (.not. associated(alias_index)) call hash_table_cr(alias_index)
166  nalias = nalias + 1
167  call expandarray(replacements)
168  call expandarray(versions)
169  replacements(nalias) = create_mem_address(mem_path2, name2)
170  versions(nalias) = version
171  call alias_index%add(create_mem_address(mem_path, name), nalias)
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ alias_index

type(hashtabletype), pointer memoryaliasmodule::alias_index => null()
private

Definition at line 36 of file MemoryAlias.f90.

36  type(HashTableType), pointer :: alias_index => null() !< alias address to record number

◆ lenversion

integer(i4b), parameter memoryaliasmodule::lenversion = 16
private

Definition at line 23 of file MemoryAlias.f90.

23  integer(I4B), parameter :: LENVERSION = 16 !< maximum length of a version string

◆ nalias

integer(i4b) memoryaliasmodule::nalias = 0
private

Definition at line 37 of file MemoryAlias.f90.

37  integer(I4B) :: nalias = 0 !< number of recorded aliases

◆ replacements

character(len=lenmemaddress), dimension(:), allocatable memoryaliasmodule::replacements
private

Definition at line 38 of file MemoryAlias.f90.

38  character(len=LENMEMADDRESS), dimension(:), allocatable :: replacements !< address of the replacement variable

◆ versions

character(len=lenversion), dimension(:), allocatable memoryaliasmodule::versions
private

Definition at line 39 of file MemoryAlias.f90.

39  character(len=LENVERSION), dimension(:), allocatable :: versions !< version the alias was deprecated in