|
subroutine | reallocate_logical1d (alog, nrow, name, mem_path) |
| Reallocate a 1-dimensional logical array. More...
|
|
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 81 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 1271 of file MemoryManager.f90.
1272 type(CharacterStringType),
dimension(:),
pointer,
contiguous, &
1273 intent(inout) :: acharstr1d
1274 integer(I4B),
intent(in) :: ilen
1275 integer(I4B),
intent(in) :: nrow
1276 character(len=*),
intent(in) :: name
1277 character(len=*),
intent(in) :: mem_path
1279 type(MemoryType),
pointer :: mt
1280 logical(LGP) :: found
1281 type(CharacterStringType),
dimension(:),
allocatable :: astrtemp
1282 character(len=ilen) :: string
1283 integer(I4B) :: istat
1284 integer(I4B) :: isize
1285 integer(I4B) :: isize_old
1286 integer(I4B) :: nrow_old
1293 call get_from_memorystore(name, mem_path, mt, found)
1297 isize_old = mt%isize
1298 if (isize_old > 0)
then
1299 nrow_old =
size(acharstr1d)
1308 allocate (astrtemp(nrow), stat=istat, errmsg=errmsg)
1309 if (istat /= 0)
then
1310 call allocate_error(name, mem_path, istat, isize)
1315 astrtemp(n) = acharstr1d(n)
1316 call acharstr1d(n)%destroy()
1320 do n = nrow_old + 1, nrow
1321 astrtemp(n) = string
1325 deallocate (acharstr1d)
1328 allocate (acharstr1d(nrow), stat=istat, errmsg=errmsg)
1329 if (istat /= 0)
then
1330 call allocate_error(name, mem_path, istat, isize)
1335 acharstr1d(n) = astrtemp(n)
1336 call astrtemp(n)%destroy()
1340 deallocate (astrtemp)
1343 mt%acharstr1d => acharstr1d
1344 mt%element_size = ilen
1346 mt%nrealloc = mt%nrealloc + 1
1348 nvalues_astr = nvalues_astr + isize - isize_old
1349 write (mt%memtype,
"(a,' LEN=',i0,' (',i0,')')")
'STRING', ilen, nrow
1351 errmsg =
"Programming error, variable '"//trim(name)//
"' from '"// &
1352 trim(mem_path)//
"' is not defined in the memory manager. Use "// &
1353 "mem_allocate instead."
1354 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 1491 of file MemoryManager.f90.
1492 real(DP),
dimension(:),
pointer,
contiguous,
intent(inout) :: adbl
1493 integer(I4B),
intent(in) :: nrow
1494 character(len=*),
intent(in) :: name
1495 character(len=*),
intent(in) :: mem_path
1497 type(MemoryType),
pointer :: mt
1498 integer(I4B) :: istat
1499 integer(I4B) :: isize
1501 integer(I4B) :: isizeold
1502 integer(I4B) :: ifill
1503 logical(LGP) :: found
1507 call get_from_memorystore(name, mem_path, mt, found)
1511 isizeold =
size(mt%adbl1d)
1512 ifill = min(isizeold, isize)
1513 allocate (adbl(nrow), stat=istat, errmsg=errmsg)
1514 if (istat /= 0)
then
1515 call allocate_error(name, mem_path, istat, isize)
1518 adbl(i) = mt%adbl1d(i)
1522 deallocate (mt%adbl1d)
1524 mt%element_size = dp
1526 mt%nrealloc = mt%nrealloc + 1
1528 nvalues_adbl = nvalues_adbl + isize - isizeold
1529 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 1534 of file MemoryManager.f90.
1535 real(DP),
dimension(:, :),
pointer,
contiguous,
intent(inout) :: adbl
1536 integer(I4B),
intent(in) :: ncol
1537 integer(I4B),
intent(in) :: nrow
1538 character(len=*),
intent(in) :: name
1539 character(len=*),
intent(in) :: mem_path
1541 type(MemoryType),
pointer :: mt
1542 logical(LGP) :: found
1543 integer(I4B) :: istat
1544 integer(I4B),
dimension(2) :: ishape
1547 integer(I4B) :: isize
1548 integer(I4B) :: isizeold
1552 call get_from_memorystore(name, mem_path, mt, found)
1555 ishape = shape(mt%adbl2d)
1557 isizeold = ishape(1) * ishape(2)
1558 allocate (adbl(ncol, nrow), stat=istat, errmsg=errmsg)
1559 if (istat /= 0)
then
1560 call allocate_error(name, mem_path, istat, isize)
1564 adbl(j, i) = mt%adbl2d(j, i)
1569 deallocate (mt%adbl2d)
1571 mt%element_size = dp
1573 mt%nrealloc = mt%nrealloc + 1
1575 nvalues_adbl = nvalues_adbl + isize - isizeold
1576 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 1402 of file MemoryManager.f90.
1403 integer(I4B),
dimension(:),
pointer,
contiguous,
intent(inout) :: aint
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) :: isize
1413 integer(I4B) :: isizeold
1414 integer(I4B) :: ifill
1418 call get_from_memorystore(name, mem_path, mt, found)
1422 isizeold =
size(mt%aint1d)
1423 ifill = min(isizeold, isize)
1424 allocate (aint(nrow), stat=istat, errmsg=errmsg)
1425 if (istat /= 0)
then
1426 call allocate_error(name, mem_path, istat, isize)
1429 aint(i) = mt%aint1d(i)
1433 deallocate (mt%aint1d)
1435 mt%element_size = i4b
1437 mt%nrealloc = mt%nrealloc + 1
1439 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 1444 of file MemoryManager.f90.
1445 integer(I4B),
dimension(:, :),
pointer,
contiguous,
intent(inout) :: aint
1446 integer(I4B),
intent(in) :: ncol
1447 integer(I4B),
intent(in) :: nrow
1448 character(len=*),
intent(in) :: name
1449 character(len=*),
intent(in) :: mem_path
1451 type(MemoryType),
pointer :: mt
1452 logical(LGP) :: found
1453 integer(I4B) :: istat
1454 integer(I4B),
dimension(2) :: ishape
1457 integer(I4B) :: isize
1458 integer(I4B) :: isizeold
1462 call get_from_memorystore(name, mem_path, mt, found)
1465 ishape = shape(mt%aint2d)
1467 isizeold = ishape(1) * ishape(2)
1468 allocate (aint(ncol, nrow), stat=istat, errmsg=errmsg)
1469 if (istat /= 0)
then
1470 call allocate_error(name, mem_path, istat, isize)
1474 aint(j, i) = mt%aint2d(j, i)
1479 deallocate (mt%aint2d)
1481 mt%element_size = i4b
1483 mt%nrealloc = mt%nrealloc + 1
1485 nvalues_aint = nvalues_aint + isize - isizeold
1486 write (mt%memtype,
"(a,' (',i0,',',i0,')')")
'INTEGER', ncol, nrow
◆ reallocate_logical1d()
subroutine memorymanagermodule::mem_reallocate::reallocate_logical1d |
( |
logical(lgp), dimension(:), intent(inout), pointer, contiguous |
alog, |
|
|
integer(i4b), intent(in) |
nrow, |
|
|
character(len=*), intent(in) |
name, |
|
|
character(len=*), intent(in) |
mem_path |
|
) |
| |
|
private |
- Parameters
-
[in,out] | alog | the reallocated logical array |
[in] | nrow | number of rows |
[in] | name | variable name |
[in] | mem_path | path where variable is stored |
Definition at line 1360 of file MemoryManager.f90.
1361 logical(LGP),
dimension(:),
pointer,
contiguous,
intent(inout) :: alog
1362 integer(I4B),
intent(in) :: nrow
1363 character(len=*),
intent(in) :: name
1364 character(len=*),
intent(in) :: mem_path
1366 type(MemoryType),
pointer :: mt
1367 logical(LGP) :: found
1368 integer(I4B) :: istat
1369 integer(I4B) :: isize
1371 integer(I4B) :: isizeold
1372 integer(I4B) :: ifill
1376 call get_from_memorystore(name, mem_path, mt, found)
1380 isizeold =
size(mt%alogical1d)
1381 ifill = min(isizeold, isize)
1382 allocate (alog(nrow), stat=istat, errmsg=errmsg)
1383 if (istat /= 0)
then
1384 call allocate_error(name, mem_path, istat, isize)
1387 alog(i) = mt%alogical1d(i)
1391 deallocate (mt%alogical1d)
1392 mt%alogical1d => alog
1393 mt%element_size = lgp
1395 mt%nrealloc = mt%nrealloc + 1
1397 nvalues_alogical = nvalues_alogical + isize - isizeold
◆ 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 1189 of file MemoryManager.f90.
1190 integer(I4B),
intent(in) :: ilen
1191 integer(I4B),
intent(in) :: nrow
1192 character(len=ilen),
dimension(:),
pointer,
contiguous,
intent(inout) :: astr
1193 character(len=*),
intent(in) :: name
1194 character(len=*),
intent(in) :: mem_path
1196 type(MemoryType),
pointer :: mt
1197 logical(LGP) :: found
1198 character(len=ilen),
dimension(:),
allocatable :: astrtemp
1199 integer(I4B) :: istat
1200 integer(I4B) :: isize
1201 integer(I4B) :: isize_old
1202 integer(I4B) :: nrow_old
1206 call get_from_memorystore(name, mem_path, mt, found)
1210 isize_old = mt%isize
1211 if (isize_old > 0)
then
1212 nrow_old =
size(astr)
1221 allocate (astrtemp(nrow), stat=istat, errmsg=errmsg)
1222 if (istat /= 0)
then
1223 call allocate_error(name, mem_path, istat, isize)
1228 astrtemp(n) = astr(n)
1232 do n = nrow_old + 1, nrow
1240 allocate (astr(nrow), stat=istat, errmsg=errmsg)
1241 if (istat /= 0)
then
1242 call allocate_error(name, mem_path, istat, isize)
1247 astr(n) = astrtemp(n)
1251 deallocate (astrtemp)
1255 mt%element_size = ilen
1257 mt%nrealloc = mt%nrealloc + 1
1259 nvalues_astr = nvalues_astr + isize - isize_old
1260 write (mt%memtype,
"(a,' LEN=',i0,' (',i0,')')")
'STRING', ilen, nrow
1262 errmsg =
"Programming error, variable '"//trim(name)//
"' from '"// &
1263 trim(mem_path)//
"' is not defined in the memory manager. Use "// &
1264 "mem_allocate instead."
1265 call store_error(errmsg, terminate=.true.)
The documentation for this interface was generated from the following file: