|
subroutine | reallocate_int1d (aint, nrow, name, mem_path) |
| Reallocate a 1-dimensional integer array. More...
|
|
subroutine | reallocate_int2d (aint, ncol, nrow, name, mem_path) |
| Reallocate a 2-dimensional integer array. More...
|
|
subroutine | reallocate_dbl1d (adbl, nrow, name, mem_path) |
| Reallocate a 1-dimensional real array. More...
|
|
subroutine | reallocate_dbl2d (adbl, ncol, nrow, name, mem_path) |
| Reallocate a 2-dimensional real array. More...
|
|
subroutine | reallocate_str1d (astr, ilen, nrow, name, mem_path) |
| Reallocate a 1-dimensional defined length string array. More...
|
|
subroutine | reallocate_charstr1d (acharstr1d, ilen, nrow, name, mem_path) |
| Reallocate a 1-dimensional deferred length string array. More...
|
|
Definition at line 79 of file MemoryManager.f90.
◆ reallocate_charstr1d()
subroutine memorymanagermodule::mem_reallocate::reallocate_charstr1d |
( |
type(characterstringtype), dimension(:), intent(inout), pointer, contiguous |
acharstr1d, |
|
|
integer(i4b), intent(in) |
ilen, |
|
|
integer(i4b), intent(in) |
nrow, |
|
|
character(len=*), intent(in) |
name, |
|
|
character(len=*), intent(in) |
mem_path |
|
) |
| |
|
private |
- Parameters
-
[in,out] | acharstr1d | the reallocated charstring array |
[in] | ilen | string length |
[in] | nrow | number of rows |
[in] | name | variable name |
[in] | mem_path | path where variable is stored |
Definition at line 1180 of file MemoryManager.f90.
1181 type(CharacterStringType),
dimension(:),
pointer,
contiguous, &
1182 intent(inout) :: acharstr1d
1183 integer(I4B),
intent(in) :: ilen
1184 integer(I4B),
intent(in) :: nrow
1185 character(len=*),
intent(in) :: name
1186 character(len=*),
intent(in) :: mem_path
1188 type(MemoryType),
pointer :: mt
1189 logical(LGP) :: found
1190 type(CharacterStringType),
dimension(:),
allocatable :: astrtemp
1191 character(len=ilen) :: string
1192 integer(I4B) :: istat
1193 integer(I4B) :: isize
1194 integer(I4B) :: isize_old
1195 integer(I4B) :: nrow_old
1202 call get_from_memorystore(name, mem_path, mt, found)
1206 isize_old = mt%isize
1207 if (isize_old > 0)
then
1208 nrow_old =
size(acharstr1d)
1217 allocate (astrtemp(nrow), stat=istat, errmsg=errmsg)
1218 if (istat /= 0)
then
1219 call allocate_error(name, mem_path, istat, isize)
1224 astrtemp(n) = acharstr1d(n)
1225 call acharstr1d(n)%destroy()
1229 do n = nrow_old + 1, nrow
1230 astrtemp(n) = string
1234 deallocate (acharstr1d)
1237 allocate (acharstr1d(nrow), stat=istat, errmsg=errmsg)
1238 if (istat /= 0)
then
1239 call allocate_error(name, mem_path, istat, isize)
1244 acharstr1d(n) = astrtemp(n)
1245 call astrtemp(n)%destroy()
1249 deallocate (astrtemp)
1252 mt%acharstr1d => acharstr1d
1253 mt%element_size = ilen
1255 mt%nrealloc = mt%nrealloc + 1
1257 nvalues_astr = nvalues_astr + isize - isize_old
1258 write (mt%memtype,
"(a,' LEN=',i0,' (',i0,')')")
'STRING', ilen, nrow
1260 errmsg =
"Programming error, variable '"//trim(name)//
"' from '"// &
1261 trim(mem_path)//
"' is not defined in the memory manager. Use "// &
1262 "mem_allocate instead."
1263 call store_error(errmsg, terminate=.true.)
◆ reallocate_dbl1d()
subroutine memorymanagermodule::mem_reallocate::reallocate_dbl1d |
( |
real(dp), dimension(:), intent(inout), pointer, contiguous |
adbl, |
|
|
integer(i4b), intent(in) |
nrow, |
|
|
character(len=*), intent(in) |
name, |
|
|
character(len=*), intent(in) |
mem_path |
|
) |
| |
|
private |
- Parameters
-
[in,out] | adbl | the reallocated 1d real array |
[in] | nrow | number of rows |
[in] | name | variable name |
[in] | mem_path | path where variable is stored |
Definition at line 1358 of file MemoryManager.f90.
1359 real(DP),
dimension(:),
pointer,
contiguous,
intent(inout) :: adbl
1360 integer(I4B),
intent(in) :: nrow
1361 character(len=*),
intent(in) :: name
1362 character(len=*),
intent(in) :: mem_path
1364 type(MemoryType),
pointer :: mt
1365 integer(I4B) :: istat
1366 integer(I4B) :: isize
1368 integer(I4B) :: isizeold
1369 integer(I4B) :: ifill
1370 logical(LGP) :: found
1374 call get_from_memorystore(name, mem_path, mt, found)
1378 isizeold =
size(mt%adbl1d)
1379 ifill = min(isizeold, isize)
1380 allocate (adbl(nrow), stat=istat, errmsg=errmsg)
1381 if (istat /= 0)
then
1382 call allocate_error(name, mem_path, istat, isize)
1385 adbl(i) = mt%adbl1d(i)
1389 deallocate (mt%adbl1d)
1391 mt%element_size = dp
1393 mt%nrealloc = mt%nrealloc + 1
1395 nvalues_adbl = nvalues_adbl + isize - isizeold
1396 write (mt%memtype,
"(a,' (',i0,')')")
'DOUBLE', isize
◆ reallocate_dbl2d()
subroutine memorymanagermodule::mem_reallocate::reallocate_dbl2d |
( |
real(dp), dimension(:, :), intent(inout), pointer, contiguous |
adbl, |
|
|
integer(i4b), intent(in) |
ncol, |
|
|
integer(i4b), intent(in) |
nrow, |
|
|
character(len=*), intent(in) |
name, |
|
|
character(len=*), intent(in) |
mem_path |
|
) |
| |
|
private |
- Parameters
-
[in,out] | adbl | the reallocated 2d real array |
[in] | ncol | number of columns |
[in] | nrow | number of rows |
[in] | name | variable name |
[in] | mem_path | path where variable is stored |
Definition at line 1401 of file MemoryManager.f90.
1402 real(DP),
dimension(:, :),
pointer,
contiguous,
intent(inout) :: adbl
1403 integer(I4B),
intent(in) :: ncol
1404 integer(I4B),
intent(in) :: nrow
1405 character(len=*),
intent(in) :: name
1406 character(len=*),
intent(in) :: mem_path
1408 type(MemoryType),
pointer :: mt
1409 logical(LGP) :: found
1410 integer(I4B) :: istat
1411 integer(I4B),
dimension(2) :: ishape
1414 integer(I4B) :: isize
1415 integer(I4B) :: isizeold
1419 call get_from_memorystore(name, mem_path, mt, found)
1422 ishape = shape(mt%adbl2d)
1424 isizeold = ishape(1) * ishape(2)
1425 allocate (adbl(ncol, nrow), stat=istat, errmsg=errmsg)
1426 if (istat /= 0)
then
1427 call allocate_error(name, mem_path, istat, isize)
1431 adbl(j, i) = mt%adbl2d(j, i)
1436 deallocate (mt%adbl2d)
1438 mt%element_size = dp
1440 mt%nrealloc = mt%nrealloc + 1
1442 nvalues_adbl = nvalues_adbl + isize - isizeold
1443 write (mt%memtype,
"(a,' (',i0,',',i0,')')")
'DOUBLE', ncol, nrow
◆ reallocate_int1d()
subroutine memorymanagermodule::mem_reallocate::reallocate_int1d |
( |
integer(i4b), dimension(:), intent(inout), pointer, contiguous |
aint, |
|
|
integer(i4b), intent(in) |
nrow, |
|
|
character(len=*), intent(in) |
name, |
|
|
character(len=*), intent(in) |
mem_path |
|
) |
| |
|
private |
- Parameters
-
[in,out] | aint | the reallocated integer array |
[in] | nrow | number of rows |
[in] | name | variable name |
[in] | mem_path | path where variable is stored |
Definition at line 1269 of file MemoryManager.f90.
1270 integer(I4B),
dimension(:),
pointer,
contiguous,
intent(inout) :: aint
1271 integer(I4B),
intent(in) :: nrow
1272 character(len=*),
intent(in) :: name
1273 character(len=*),
intent(in) :: mem_path
1275 type(MemoryType),
pointer :: mt
1276 logical(LGP) :: found
1277 integer(I4B) :: istat
1278 integer(I4B) :: isize
1280 integer(I4B) :: isizeold
1281 integer(I4B) :: ifill
1285 call get_from_memorystore(name, mem_path, mt, found)
1289 isizeold =
size(mt%aint1d)
1290 ifill = min(isizeold, isize)
1291 allocate (aint(nrow), stat=istat, errmsg=errmsg)
1292 if (istat /= 0)
then
1293 call allocate_error(name, mem_path, istat, isize)
1296 aint(i) = mt%aint1d(i)
1300 deallocate (mt%aint1d)
1302 mt%element_size = i4b
1304 mt%nrealloc = mt%nrealloc + 1
1306 nvalues_aint = nvalues_aint + isize - isizeold
◆ reallocate_int2d()
subroutine memorymanagermodule::mem_reallocate::reallocate_int2d |
( |
integer(i4b), dimension(:, :), intent(inout), pointer, contiguous |
aint, |
|
|
integer(i4b), intent(in) |
ncol, |
|
|
integer(i4b), intent(in) |
nrow, |
|
|
character(len=*), intent(in) |
name, |
|
|
character(len=*), intent(in) |
mem_path |
|
) |
| |
|
private |
- Parameters
-
[in,out] | aint | the reallocated 2d integer array |
[in] | ncol | number of columns |
[in] | nrow | number of rows |
[in] | name | variable name |
[in] | mem_path | path where variable is stored |
Definition at line 1311 of file MemoryManager.f90.
1312 integer(I4B),
dimension(:, :),
pointer,
contiguous,
intent(inout) :: aint
1313 integer(I4B),
intent(in) :: ncol
1314 integer(I4B),
intent(in) :: nrow
1315 character(len=*),
intent(in) :: name
1316 character(len=*),
intent(in) :: mem_path
1318 type(MemoryType),
pointer :: mt
1319 logical(LGP) :: found
1320 integer(I4B) :: istat
1321 integer(I4B),
dimension(2) :: ishape
1324 integer(I4B) :: isize
1325 integer(I4B) :: isizeold
1329 call get_from_memorystore(name, mem_path, mt, found)
1332 ishape = shape(mt%aint2d)
1334 isizeold = ishape(1) * ishape(2)
1335 allocate (aint(ncol, nrow), stat=istat, errmsg=errmsg)
1336 if (istat /= 0)
then
1337 call allocate_error(name, mem_path, istat, isize)
1341 aint(j, i) = mt%aint2d(j, i)
1346 deallocate (mt%aint2d)
1348 mt%element_size = i4b
1350 mt%nrealloc = mt%nrealloc + 1
1352 nvalues_aint = nvalues_aint + isize - isizeold
1353 write (mt%memtype,
"(a,' (',i0,',',i0,')')")
'INTEGER', ncol, nrow
◆ reallocate_str1d()
subroutine memorymanagermodule::mem_reallocate::reallocate_str1d |
( |
character(len=ilen), dimension(:), intent(inout), pointer, contiguous |
astr, |
|
|
integer(i4b), intent(in) |
ilen, |
|
|
integer(i4b), intent(in) |
nrow, |
|
|
character(len=*), intent(in) |
name, |
|
|
character(len=*), intent(in) |
mem_path |
|
) |
| |
|
private |
- Parameters
-
[in] | ilen | string length |
[in] | nrow | number of rows |
[in,out] | astr | the reallocated string array |
[in] | name | variable name |
[in] | mem_path | path where variable is stored |
Definition at line 1098 of file MemoryManager.f90.
1099 integer(I4B),
intent(in) :: ilen
1100 integer(I4B),
intent(in) :: nrow
1101 character(len=ilen),
dimension(:),
pointer,
contiguous,
intent(inout) :: astr
1102 character(len=*),
intent(in) :: name
1103 character(len=*),
intent(in) :: mem_path
1105 type(MemoryType),
pointer :: mt
1106 logical(LGP) :: found
1107 character(len=ilen),
dimension(:),
allocatable :: astrtemp
1108 integer(I4B) :: istat
1109 integer(I4B) :: isize
1110 integer(I4B) :: isize_old
1111 integer(I4B) :: nrow_old
1115 call get_from_memorystore(name, mem_path, mt, found)
1119 isize_old = mt%isize
1120 if (isize_old > 0)
then
1121 nrow_old =
size(astr)
1130 allocate (astrtemp(nrow), stat=istat, errmsg=errmsg)
1131 if (istat /= 0)
then
1132 call allocate_error(name, mem_path, istat, isize)
1137 astrtemp(n) = astr(n)
1141 do n = nrow_old + 1, nrow
1149 allocate (astr(nrow), stat=istat, errmsg=errmsg)
1150 if (istat /= 0)
then
1151 call allocate_error(name, mem_path, istat, isize)
1156 astr(n) = astrtemp(n)
1160 deallocate (astrtemp)
1164 mt%element_size = ilen
1166 mt%nrealloc = mt%nrealloc + 1
1168 nvalues_astr = nvalues_astr + isize - isize_old
1169 write (mt%memtype,
"(a,' LEN=',i0,' (',i0,')')")
'STRING', ilen, nrow
1171 errmsg =
"Programming error, variable '"//trim(name)//
"' from '"// &
1172 trim(mem_path)//
"' is not defined in the memory manager. Use "// &
1173 "mem_allocate instead."
1174 call store_error(errmsg, terminate=.true.)
The documentation for this interface was generated from the following file: