300 real(kind(1.d0)),
pointer,
dimension(:) :: a
301 integer,
intent(in) :: n
302 integer,
optional :: info
306 if(
associated(a))
then 316 allocate(a(n), stat=err)
319 allocate(a(n), stat=err)
322 if(
present(info))
then 325 call qrm_err_push(5,sub=
'qrm_palloc_d',ied=(/n,0,0,0,0/))
345 real(kind(1.d0)),
pointer,
dimension(:) :: a
346 integer(kind=8),
intent(in) :: n
347 integer,
optional :: info
351 if(
associated(a))
then 361 allocate(a(n), stat=err)
364 allocate(a(n), stat=err)
367 if(
present(info))
then 370 call qrm_err_push(5,sub=
'qrm_palloc_d',ied=(/int(n,4),0,0,0,0/))
390 real(kind(1.e0)),
pointer,
dimension(:) :: a
391 integer,
intent(in) :: n
392 integer,
optional :: info
398 if(
associated(a))
then 408 allocate(a(n), stat=err)
411 allocate(a(n), stat=err)
414 if(
present(info))
then 417 call qrm_err_push(5,sub=
'qrm_palloc_s',ied=(/n,0,0,0,0/))
438 real(kind(1.e0)),
pointer,
dimension(:) :: a
439 integer(kind=8),
intent(in) :: n
440 integer,
optional :: info
446 if(
associated(a))
then 456 allocate(a(n), stat=err)
459 allocate(a(n), stat=err)
462 if(
present(info))
then 465 call qrm_err_push(5,sub=
'qrm_palloc_s',ied=(/int(n,4),0,0,0,0/))
487 integer,
pointer,
dimension(:) :: a
488 integer,
intent(in) :: n
489 integer,
optional :: info
495 if(
associated(a))
then 505 allocate(a(n), stat=err)
508 allocate(a(n), stat=err)
511 if(
present(info))
then 514 call qrm_err_push(5,sub=
'qrm_palloc_i',ied=(/n,0,0,0,0/))
535 integer,
pointer,
dimension(:) :: a
536 integer(kind=8),
intent(in) :: n
537 integer,
optional :: info
543 if(
associated(a))
then 553 allocate(a(n), stat=err)
556 allocate(a(n), stat=err)
559 if(
present(info))
then 562 call qrm_err_push(5,sub=
'qrm_palloc_i',ied=(/int(n,4),0,0,0,0/))
587 real(kind(1.d0)),
pointer,
dimension(:,:) :: a
588 integer,
intent(in) :: m, n
589 integer,
optional :: info
593 if(min(m,n) .lt. 0)
return 595 if(
associated(a))
then 605 allocate(a(m,n), stat=err)
608 allocate(a(m,n), stat=err)
611 if(
present(info))
then 614 call qrm_err_push(5,sub=
'qrm_palloc_2d',ied=(/m*n,0,0,0,0/))
638 real(kind(1.e0)),
pointer,
dimension(:,:) :: a
639 integer,
intent(in) :: m, n
640 integer,
optional :: info
644 if(min(m,n) .lt. 0)
return 646 if(
associated(a))
then 656 allocate(a(m,n), stat=err)
659 allocate(a(m,n), stat=err)
662 if(
present(info))
then 665 call qrm_err_push(5,sub=
'qrm_palloc_2s',ied=(/m*n,0,0,0,0/))
689 integer,
pointer,
dimension(:,:) :: a
690 integer,
intent(in) :: m, n
691 integer,
optional :: info
695 if(min(m,n) .lt. 0)
return 697 if(
associated(a))
then 707 allocate(a(m,n), stat=err)
710 allocate(a(m,n), stat=err)
713 if(
present(info))
then 716 call qrm_err_push(5,sub=
'qrm_aalloc_2i',ied=(/m*n,0,0,0,0/))
739 complex(kind(1.d0)),
pointer,
dimension(:,:) :: a
740 integer,
intent(in) :: m, n
741 integer,
optional :: info
745 if(min(m,n) .lt. 0)
return 747 if(
associated(a))
then 757 allocate(a(m,n), stat=err)
760 allocate(a(m,n), stat=err)
763 if(
present(info))
then 766 call qrm_err_push(5,sub=
'qrm_aalloc_2z',ied=(/m*n,0,0,0,0/))
789 complex(kind(1.e0)),
pointer,
dimension(:,:) :: a
790 integer,
intent(in) :: m, n
791 integer,
optional :: info
795 if(min(m,n) .lt. 0)
return 797 if(
associated(a))
then 807 allocate(a(m,n), stat=err)
810 allocate(a(m,n), stat=err)
813 if(
present(info))
then 816 call qrm_err_push(5,sub=
'qrm_aalloc_2c',ied=(/n,0,0,0,0/))
843 real(kind(1.d0)),
allocatable,
dimension(:) :: a
844 integer,
intent(in) :: n
845 integer,
optional :: lbnd
846 integer,
optional :: info
848 integer :: err, ilbnd, disp
852 if(
allocated(a))
then 855 if(
present(lbnd))
then 868 allocate(a(ilbnd: ilbnd+n-1), stat=err)
871 allocate(a(ilbnd: ilbnd+n-1), stat=err)
874 if(
present(info))
then 877 call qrm_err_push(5,sub=
'qrm_aalloc_d',ied=(/n,0,0,0,0/))
901 real(kind(1.e0)),
allocatable,
dimension(:) :: a
902 integer,
intent(in) :: n
903 integer,
optional :: lbnd
904 integer,
optional :: info
906 integer :: err, ilbnd, disp
910 if(
allocated(a))
then 913 if(
present(lbnd))
then 926 allocate(a(ilbnd: ilbnd+n-1), stat=err)
929 allocate(a(ilbnd: ilbnd+n-1), stat=err)
932 if(
present(info))
then 935 call qrm_err_push(5,sub=
'qrm_aalloc_s',ied=(/n,0,0,0,0/))
959 integer,
allocatable,
dimension(:) :: a
960 integer,
intent(in) :: n
961 integer,
optional :: lbnd
962 integer,
optional :: info
964 integer :: err, ilbnd, disp
968 if(
allocated(a))
then 971 if(
present(lbnd))
then 984 allocate(a(ilbnd: ilbnd+n-1), stat=err)
987 allocate(a(ilbnd: ilbnd+n-1), stat=err)
990 if(
present(info))
then 993 call qrm_err_push(5,sub=
'qrm_aalloc_i',ied=(/n,0,0,0,0/))
1017 real(kind(1.d0)),
allocatable,
dimension(:,:) :: a
1018 integer,
intent(in) :: m, n
1019 integer,
optional :: info
1021 integer :: err, disp
1023 if(min(m,n) .lt. 0)
return 1025 if(
allocated(a))
then 1035 allocate(a(m,n), stat=err)
1038 allocate(a(m,n), stat=err)
1041 if(
present(info))
then 1044 call qrm_err_push(5,sub=
'qrm_aalloc_2d',ied=(/m*n,0,0,0,0/))
1068 real(kind(1.e0)),
allocatable,
dimension(:,:) :: a
1069 integer,
intent(in) :: m, n
1070 integer,
optional :: info
1072 integer :: err, disp
1074 if(min(m,n) .lt. 0)
return 1076 if(
allocated(a))
then 1086 allocate(a(m,n), stat=err)
1089 allocate(a(m,n), stat=err)
1092 if(
present(info))
then 1095 call qrm_err_push(5,sub=
'qrm_aalloc_2s',ied=(/m*n,0,0,0,0/))
1119 integer,
allocatable,
dimension(:,:) :: a
1120 integer,
intent(in) :: m, n
1121 integer,
optional :: info
1123 integer :: err, disp
1125 if(min(m,n) .lt. 0)
return 1127 if(
allocated(a))
then 1137 allocate(a(m,n), stat=err)
1140 allocate(a(m,n), stat=err)
1143 if(
present(info))
then 1146 call qrm_err_push(5,sub=
'qrm_aalloc_2i',ied=(/m*n,0,0,0,0/))
1173 real(kind(1.d0)),
allocatable,
dimension(:,:,:) :: a
1174 integer,
intent(in) :: m, n, k
1175 integer,
optional :: info
1177 integer :: err, disp
1179 if(min(min(m,n),k) .lt. 0)
return 1181 if(
allocated(a))
then 1191 allocate(a(m,n,k), stat=err)
1194 allocate(a(m,n,k), stat=err)
1197 if(
present(info))
then 1200 call qrm_err_push(5,sub=
'qrm_aalloc_3d',ied=(/m*n*k,0,0,0,0/))
1226 real(kind(1.e0)),
allocatable,
dimension(:,:,:) :: a
1227 integer,
intent(in) :: m, n, k
1228 integer,
optional :: info
1230 integer :: err, disp
1232 if(min(min(m,n),k) .lt. 0)
return 1234 if(
allocated(a))
then 1244 allocate(a(m,n,k), stat=err)
1247 allocate(a(m,n,k), stat=err)
1250 if(
present(info))
then 1253 call qrm_err_push(5,sub=
'qrm_aalloc_3s',ied=(/n,0,0,0,0/))
1271 real(kind(1.d0)),
pointer,
dimension(:) :: a
1275 if(
associated(a))
then 1277 deallocate(a, stat=err)
1282 call qrm_err_push(7,sub=
'qrm_pdealloc_d',ied=(/err,0,0,0,0/))
1295 real(kind(1.e0)),
pointer,
dimension(:) :: a
1299 if(
associated(a))
then 1301 deallocate(a, stat=err)
1306 call qrm_err_push(7,sub=
'qrm_pdealloc_s',ied=(/err,0,0,0,0/))
1319 real(kind(1.d0)),
pointer,
dimension(:,:) :: a
1321 integer :: err=0, n, m
1323 if(
associated(a))
then 1326 deallocate(a, stat=err)
1331 call qrm_err_push(7,sub=
'qrm_pdealloc_2d',ied=(/err,0,0,0,0/))
1344 real(kind(1.e0)),
pointer,
dimension(:,:) :: a
1346 integer :: err=0, n, m
1348 if(
associated(a))
then 1351 deallocate(a, stat=err)
1356 call qrm_err_push(7,sub=
'qrm_pdealloc_2s',ied=(/err,0,0,0,0/))
1369 integer,
pointer,
dimension(:) :: a
1373 if(
associated(a))
then 1375 deallocate(a, stat=err)
1380 call qrm_err_push(7,sub=
'qrm_pdealloc_i',ied=(/err,0,0,0,0/))
1394 integer,
pointer,
dimension(:,:) :: a
1396 integer :: err=0, n, m
1398 if(
associated(a))
then 1401 deallocate(a, stat=err)
1406 call qrm_err_push(7,sub=
'qrm_pdealloc_2i',ied=(/err,0,0,0,0/))
1421 real(kind(1.d0)),
allocatable,
dimension(:) :: a
1426 if(
allocated(a))
then 1428 deallocate(a, stat=err)
1433 call qrm_err_push(7,sub=
'qrm_adealloc_d',ied=(/err,0,0,0,0/))
1446 real(kind(1.e0)),
allocatable,
dimension(:) :: a
1450 if(
allocated(a))
then 1452 deallocate(a, stat=err)
1457 call qrm_err_push(7,sub=
'qrm_adealloc_s',ied=(/err,0,0,0,0/))
1470 integer,
allocatable,
dimension(:) :: a
1474 if(
allocated(a))
then 1476 deallocate(a, stat=err)
1481 call qrm_err_push(7,sub=
'qrm_adealloc_i', ied=(/err,0,0,0,0/))
1494 real(kind(1.d0)),
allocatable,
dimension(:,:) :: a
1496 integer :: err=0, n, m
1498 if(
allocated(a))
then 1501 deallocate(a, stat=err)
1506 call qrm_err_push(7,sub=
'qrm_adealloc_2d',ied=(/err,0,0,0,0/))
1519 real(kind(1.e0)),
allocatable,
dimension(:,:) :: a
1521 integer :: err=0, n, m
1523 if(
allocated(a))
then 1526 deallocate(a, stat=err)
1531 call qrm_err_push(7,sub=
'qrm_adealloc_2s',ied=(/err,0,0,0,0/))
1545 real(kind(1.d0)),
allocatable,
dimension(:,:,:) :: a
1547 integer :: err=0, n, m, k
1549 if(
allocated(a))
then 1553 deallocate(a, stat=err)
1558 call qrm_err_push(7,sub=
'qrm_adealloc_3d',ied=(/err,0,0,0,0/))
1571 real(kind(1.e0)),
allocatable,
dimension(:,:,:) :: a
1573 integer :: err=0, n, m, k
1575 if(
allocated(a))
then 1579 deallocate(a, stat=err)
1584 call qrm_err_push(7,sub=
'qrm_adealloc_3s',ied=(/err,0,0,0,0/))
1599 integer,
allocatable,
dimension(:,:) :: a
1601 integer :: err=0, n, m
1603 if(
allocated(a))
then 1606 deallocate(a, stat=err)
1611 call qrm_err_push(7,sub=
'qrm_adealloc_2i',ied=(/err,0,0,0,0/))
1629 real(kind(1.d0)),
pointer,
dimension(:) :: a
1631 logical,
optional :: force, copy
1633 integer :: err=0, asize,
i 1634 logical :: iforce, icopy
1635 real(kind(1.d0)),
pointer,
dimension(:) :: tmp=>null()
1638 if(
present(force)) iforce=force
1643 if(
present(copy)) icopy=(copy .and. (.not. iforce) .and.
associated(a))
1645 if(
associated(a))
then 1648 if(iforce .or. (
size(a) .lt. n))
then 1655 deallocate(a, stat=err)
1657 call qrm_err_push(7, sub=
'qrm_prealloc_d',ied=(/err,0,0,0,0/))
1663 allocate(a(n), stat=err)
1665 call qrm_err_push(5,sub=
'qrm_palloc_d',ied=(/n,0,0,0,0/))
1674 allocate(a(n), stat=err)
1676 call qrm_err_push(5,sub=
'qrm_palloc_d',ied=(/n,0,0,0,0/))
1687 deallocate(tmp, stat=err)
1689 call qrm_err_push(7, sub=
'qrm_prealloc_d',ied=(/err,0,0,0,0/))
1708 real(kind(1.e0)),
pointer,
dimension(:) :: a
1710 logical,
optional :: force, copy
1712 integer :: err=0, asize,
i 1713 logical :: iforce, icopy
1714 real(kind(1.e0)),
pointer,
dimension(:) :: tmp=>null()
1717 if(
present(force)) iforce=force
1722 if(
present(copy)) icopy=(copy .and. (.not. iforce) .and.
associated(a))
1724 if(
associated(a))
then 1727 if(iforce .or. (
size(a) .lt. n))
then 1734 deallocate(a, stat=err)
1736 call qrm_err_push(7, sub=
'qrm_prealloc_s',ied=(/err,0,0,0,0/))
1742 allocate(a(n), stat=err)
1744 call qrm_err_push(5,sub=
'qrm_prealloc_s',ied=(/n,0,0,0,0/))
1753 allocate(a(n), stat=err)
1755 call qrm_err_push(5,sub=
'qrm_prealloc_s',ied=(/n,0,0,0,0/))
1766 deallocate(tmp, stat=err)
1768 call qrm_err_push(7, sub=
'qrm_prealloc_s',ied=(/err,0,0,0,0/))
1787 integer,
pointer,
dimension(:) :: a
1789 logical,
optional :: force, copy
1791 integer :: err=0, asize,
i 1792 logical :: iforce, icopy
1793 integer,
pointer,
dimension(:) :: tmp=>null()
1796 if(
present(force)) iforce=force
1801 if(
present(copy)) icopy=(copy .and. (.not. iforce) .and.
associated(a))
1803 if(
associated(a))
then 1806 if(iforce .or. (
size(a) .lt. n))
then 1813 deallocate(a, stat=err)
1815 call qrm_err_push(7, sub=
'qrm_prealloc_i',ied=(/err,0,0,0,0/))
1821 allocate(a(n), stat=err)
1823 call qrm_err_push(5,sub=
'qrm_prealloc_i',ied=(/n,0,0,0,0/))
1832 allocate(a(n), stat=err)
1834 call qrm_err_push(5,sub=
'qrm_prealloc_i',ied=(/n,0,0,0,0/))
1845 deallocate(tmp, stat=err)
1847 call qrm_err_push(7, sub=
'qrm_prealloc_i',ied=(/err,0,0,0,0/))
1866 real(kind(1.d0)),
allocatable,
dimension(:) :: a
1868 logical,
optional :: force, copy
1870 integer :: err=0, asize,
i 1871 logical :: iforce, icopy
1872 real(kind(1.d0)),
allocatable,
dimension(:) :: tmp
1875 if(
present(force)) iforce=force
1880 if(
present(copy)) icopy=(copy .and. (.not. iforce) .and.
allocated(a))
1882 if(
allocated(a))
then 1885 if(iforce .or. (
size(a) .lt. n))
then 1887 if(.not. icopy)
then 1888 deallocate(a, stat=err)
1890 call qrm_err_push(7, sub=
'qrm_arealloc_d',ied=(/err,0,0,0,0/))
1896 allocate(tmp(n), stat=err)
1898 call qrm_err_push(5,sub=
'qrm_arealloc_d',ied=(/n,0,0,0,0/))
1907 allocate(tmp(n), stat=err)
1909 call qrm_err_push(5,sub=
'qrm_arealloc_d',ied=(/n,0,0,0,0/))
1920 deallocate(a, stat=err)
1922 call qrm_err_push(7, sub=
'qrm_arealloc_d',ied=(/err,0,0,0,0/))
1928 call move_alloc(from=tmp, to=a)
1943 real(kind(1.e0)),
allocatable,
dimension(:) :: a
1945 logical,
optional :: force, copy
1947 integer :: err=0, asize,
i 1948 logical :: iforce, icopy
1949 real(kind(1.e0)),
allocatable,
dimension(:) :: tmp
1952 if(
present(force)) iforce=force
1957 if(
present(copy)) icopy=(copy .and. (.not. iforce) .and.
allocated(a))
1959 if(
allocated(a))
then 1962 if(iforce .or. (
size(a) .lt. n))
then 1964 if(.not. icopy)
then 1965 deallocate(a, stat=err)
1967 call qrm_err_push(7, sub=
'qrm_arealloc_s',ied=(/err,0,0,0,0/))
1973 allocate(tmp(n), stat=err)
1975 call qrm_err_push(5,sub=
'qrm_arealloc_s',ied=(/n,0,0,0,0/))
1984 allocate(tmp(n), stat=err)
1986 call qrm_err_push(5,sub=
'qrm_arealloc_s',ied=(/n,0,0,0,0/))
1997 deallocate(a, stat=err)
1999 call qrm_err_push(7, sub=
'qrm_arealloc_s',ied=(/err,0,0,0,0/))
2005 call move_alloc(from=tmp, to=a)
2020 integer,
allocatable,
dimension(:) :: a
2022 logical,
optional :: force, copy
2024 integer :: err=0, asize,
i 2025 logical :: iforce, icopy
2026 integer,
allocatable,
dimension(:) :: tmp
2029 if(
present(force)) iforce=force
2034 if(
present(copy)) icopy=(copy .and. (.not. iforce) .and.
allocated(a))
2036 if(
allocated(a))
then 2039 if(iforce .or. (
size(a) .lt. n))
then 2041 if(.not. icopy)
then 2042 deallocate(a, stat=err)
2044 call qrm_err_push(7, sub=
'qrm_arealloc_i',ied=(/err,0,0,0,0/))
2050 allocate(tmp(n), stat=err)
2052 call qrm_err_push(5,sub=
'qrm_arealloc_i',ied=(/n,0,0,0,0/))
2061 allocate(tmp(n), stat=err)
2063 call qrm_err_push(5,sub=
'qrm_arealloc_i',ied=(/n,0,0,0,0/))
2074 deallocate(a, stat=err)
2076 call qrm_err_push(7, sub=
'qrm_arealloc_i',ied=(/err,0,0,0,0/))
2082 call move_alloc(from=tmp, to=a)
2097 integer :: qrm_asize_i
2098 integer,
allocatable :: a(:)
2100 if(
allocated(a))
then 2102 qrm_asize_i =
size(a)
2118 integer :: qrm_asize_s
2119 real(kind(1.e0)),
allocatable :: a(:)
2121 if(
allocated(a))
then 2123 qrm_asize_s =
size(a)
2138 integer :: qrm_asize_d
2139 real(kind(1.d0)),
allocatable :: a(:)
2141 if(
allocated(a))
then 2143 qrm_asize_d =
size(a)
2159 integer :: qrm_asize_2s
2160 real(kind(1.e0)),
allocatable :: a(:,:)
2162 if(
allocated(a))
then 2164 qrm_asize_2s =
size(a)
2179 integer :: qrm_asize_2d
2180 real(kind(1.d0)),
allocatable :: a(:,:)
2182 if(
allocated(a))
then 2184 qrm_asize_2d =
size(a)
2201 integer :: qrm_asize_3s
2202 real(kind(1.e0)),
allocatable :: a(:,:,:)
2204 if(
allocated(a))
then 2206 qrm_asize_3s =
size(a)
2222 integer :: qrm_asize_3d
2223 real(kind(1.d0)),
allocatable :: a(:,:,:)
2225 if(
allocated(a))
then 2227 qrm_asize_3d =
size(a)
2246 complex(kind(1.d0)),
pointer,
dimension(:) :: a
2247 integer,
intent(in) :: n
2248 integer,
optional :: info
2250 integer :: err, disp
2252 if(
associated(a))
then 2262 allocate(a(n), stat=err)
2265 allocate(a(n), stat=err)
2268 if(
present(info))
then 2271 call qrm_err_push(5,sub=
'qrm_palloc_z',ied=(/n,0,0,0,0/))
2291 complex(kind(1.d0)),
pointer,
dimension(:) :: a
2292 integer(kind=8),
intent(in) :: n
2293 integer,
optional :: info
2295 integer :: err, disp
2297 if(
associated(a))
then 2307 allocate(a(n), stat=err)
2310 allocate(a(n), stat=err)
2313 if(
present(info))
then 2316 call qrm_err_push(5,sub=
'qrm_palloc_z',ied=(/int(n,4),0,0,0,0/))
2337 complex(kind(1.e0)),
pointer,
dimension(:) :: a
2338 integer,
intent(in) :: n
2339 integer,
optional :: info
2341 integer :: err, disp
2345 if(
associated(a))
then 2355 allocate(a(n), stat=err)
2358 allocate(a(n), stat=err)
2361 if(
present(info))
then 2364 call qrm_err_push(5,sub=
'qrm_palloc_c',ied=(/n,0,0,0,0/))
2385 complex(kind(1.e0)),
pointer,
dimension(:) :: a
2386 integer(kind=8),
intent(in) :: n
2387 integer,
optional :: info
2389 integer :: err, disp
2393 if(
associated(a))
then 2403 allocate(a(n), stat=err)
2406 allocate(a(n), stat=err)
2409 if(
present(info))
then 2412 call qrm_err_push(5,sub=
'qrm_palloc_c',ied=(/int(n,4),0,0,0,0/))
2436 complex(kind(1.d0)),
allocatable,
dimension(:) :: a
2437 integer,
intent(in) :: n
2438 integer,
optional :: lbnd
2439 integer,
optional :: info
2441 integer :: err, ilbnd, disp
2445 if(
allocated(a))
then 2448 if(
present(lbnd))
then 2461 allocate(a(ilbnd: ilbnd+n-1), stat=err)
2464 allocate(a(ilbnd: ilbnd+n-1), stat=err)
2467 if(
present(info))
then 2470 call qrm_err_push(5,sub=
'qrm_aalloc_z',ied=(/n,0,0,0,0/))
2493 complex(kind(1.e0)),
allocatable,
dimension(:) :: a
2494 integer,
intent(in) :: n
2495 integer,
optional :: lbnd
2496 integer,
optional :: info
2498 integer :: err, ilbnd, disp
2502 if(
allocated(a))
then 2505 if(
present(lbnd))
then 2518 allocate(a(ilbnd: ilbnd+n-1), stat=err)
2521 allocate(a(ilbnd: ilbnd+n-1), stat=err)
2524 if(
present(info))
then 2527 call qrm_err_push(5,sub=
'qrm_aalloc_c',ied=(/n,0,0,0,0/))
2551 complex(kind(1.d0)),
allocatable,
dimension(:,:) :: a
2552 integer,
intent(in) :: m, n
2553 integer,
optional :: info
2555 integer :: err, disp
2557 if(min(m,n) .lt. 0)
return 2559 if(
allocated(a))
then 2569 allocate(a(m,n), stat=err)
2572 allocate(a(m,n), stat=err)
2575 if(
present(info))
then 2578 call qrm_err_push(5,sub=
'qrm_aalloc_2z',ied=(/n,0,0,0,0/))
2601 complex(kind(1.e0)),
allocatable,
dimension(:,:) :: a
2602 integer,
intent(in) :: m, n
2603 integer,
optional :: info
2605 integer :: err, disp
2607 if(min(m,n) .lt. 0)
return 2609 if(
allocated(a))
then 2619 allocate(a(m,n), stat=err)
2622 allocate(a(m,n), stat=err)
2625 if(
present(info))
then 2628 call qrm_err_push(5,sub=
'qrm_aalloc_2c',ied=(/n,0,0,0,0/))
2656 complex(kind(1.d0)),
allocatable,
dimension(:,:,:) :: a
2657 integer,
intent(in) :: m, n, k
2658 integer,
optional :: info
2660 integer :: err, disp
2662 if(min(min(m,n),k) .lt. 0)
return 2664 if(
allocated(a))
then 2674 allocate(a(m,n,k), stat=err)
2677 allocate(a(m,n,k), stat=err)
2680 if(
present(info))
then 2683 call qrm_err_push(5,sub=
'qrm_aalloc_3z',ied=(/n,0,0,0,0/))
2709 complex(kind(1.e0)),
allocatable,
dimension(:,:,:) :: a
2710 integer,
intent(in) :: m, n, k
2711 integer,
optional :: info
2713 integer :: err, disp
2715 if(min(min(m,n),k) .lt. 0)
return 2717 if(
allocated(a))
then 2727 allocate(a(m,n,k), stat=err)
2730 allocate(a(m,n,k), stat=err)
2733 if(
present(info))
then 2736 call qrm_err_push(5,sub=
'qrm_aalloc_3c',ied=(/n,0,0,0,0/))
2759 complex(kind(1.d0)),
pointer,
dimension(:) :: a
2763 if(
associated(a))
then 2765 deallocate(a, stat=err)
2770 call qrm_err_push(7,sub=
'qrm_pdealloc_z',ied=(/err,0,0,0,0/))
2783 complex(kind(1.e0)),
pointer,
dimension(:) :: a
2787 if(
associated(a))
then 2789 deallocate(a, stat=err)
2794 call qrm_err_push(7,sub=
'qrm_pdealloc_c',ied=(/err,0,0,0,0/))
2808 complex(kind(1.d0)),
pointer,
dimension(:,:) :: a
2810 integer :: err=0, n, m
2812 if(
associated(a))
then 2815 deallocate(a, stat=err)
2820 call qrm_err_push(7,sub=
'qrm_pdealloc_2z',ied=(/err,0,0,0,0/))
2833 complex(kind(1.e0)),
pointer,
dimension(:,:) :: a
2835 integer :: err=0, n, m
2837 if(
associated(a))
then 2840 deallocate(a, stat=err)
2845 call qrm_err_push(7,sub=
'qrm_pdealloc_2c',ied=(/err,0,0,0,0/))
2859 complex(kind(1.d0)),
allocatable,
dimension(:) :: a
2864 if(
allocated(a))
then 2866 deallocate(a, stat=err)
2871 call qrm_err_push(7,sub=
'qrm_adealloc_z',ied=(/err,0,0,0,0/))
2884 complex(kind(1.e0)),
allocatable,
dimension(:) :: a
2888 if(
allocated(a))
then 2890 deallocate(a, stat=err)
2895 call qrm_err_push(7,sub=
'qrm_adealloc_c',ied=(/err,0,0,0,0/))
2908 complex(kind(1.d0)),
allocatable,
dimension(:,:) :: a
2910 integer :: err=0, n, m
2912 if(
allocated(a))
then 2915 deallocate(a, stat=err)
2920 call qrm_err_push(7,sub=
'qrm_adealloc_2z',ied=(/err,0,0,0,0/))
2933 complex(kind(1.e0)),
allocatable,
dimension(:,:) :: a
2935 integer :: err=0, n, m
2937 if(
allocated(a))
then 2940 deallocate(a, stat=err)
2945 call qrm_err_push(7,sub=
'qrm_adealloc_2c',ied=(/err,0,0,0,0/))
2959 complex(kind(1.d0)),
allocatable,
dimension(:,:,:) :: a
2961 integer :: err=0, n, m, k
2963 if(
allocated(a))
then 2967 deallocate(a, stat=err)
2972 call qrm_err_push(7,sub=
'qrm_adealloc_3z',ied=(/err,0,0,0,0/))
2985 complex(kind(1.e0)),
allocatable,
dimension(:,:,:) :: a
2987 integer :: err=0, n, m, k
2989 if(
allocated(a))
then 2993 deallocate(a, stat=err)
2998 call qrm_err_push(7,sub=
'qrm_adealloc_3c',ied=(/err,0,0,0,0/))
3022 complex(kind(1.d0)),
pointer,
dimension(:) :: a
3024 logical,
optional :: force, copy
3026 integer :: err=0, asize,
i 3027 logical :: iforce, icopy
3028 complex(kind(1.d0)),
pointer,
dimension(:) :: tmp=>null()
3031 if(
present(force)) iforce=force
3036 if(
present(copy)) icopy=(copy .and. (.not. iforce) .and.
associated(a))
3038 if(
associated(a))
then 3041 if(iforce .or. (
size(a) .lt. n))
then 3048 deallocate(a, stat=err)
3050 call qrm_err_push(7, sub=
'qrm_prealloc_z',ied=(/err,0,0,0,0/))
3056 allocate(a(n), stat=err)
3058 call qrm_err_push(5,sub=
'qrm_palloc_z',ied=(/n,0,0,0,0/))
3067 allocate(a(n), stat=err)
3069 call qrm_err_push(5,sub=
'qrm_palloc_z',ied=(/n,0,0,0,0/))
3080 deallocate(tmp, stat=err)
3082 call qrm_err_push(7, sub=
'qrm_prealloc_z',ied=(/err,0,0,0,0/))
3101 complex(kind(1.e0)),
pointer,
dimension(:) :: a
3103 logical,
optional :: force, copy
3105 integer :: err=0, asize,
i 3106 logical :: iforce, icopy
3107 complex(kind(1.e0)),
pointer,
dimension(:) :: tmp=>null()
3110 if(
present(force)) iforce=force
3115 if(
present(copy)) icopy=(copy .and. (.not. iforce) .and.
associated(a))
3117 if(
associated(a))
then 3120 if(iforce .or. (
size(a) .lt. n))
then 3127 deallocate(a, stat=err)
3129 call qrm_err_push(7, sub=
'qrm_prealloc_c',ied=(/err,0,0,0,0/))
3135 allocate(a(n), stat=err)
3137 call qrm_err_push(5,sub=
'qrm_prealloc_c',ied=(/n,0,0,0,0/))
3146 allocate(a(n), stat=err)
3148 call qrm_err_push(5,sub=
'qrm_prealloc_c',ied=(/n,0,0,0,0/))
3159 deallocate(tmp, stat=err)
3161 call qrm_err_push(7, sub=
'qrm_prealloc_c',ied=(/err,0,0,0,0/))
3180 complex(kind(1.d0)),
allocatable,
dimension(:) :: a
3182 logical,
optional :: force, copy
3184 integer :: err=0, asize,
i 3185 logical :: iforce, icopy
3186 complex(kind(1.d0)),
allocatable,
dimension(:) :: tmp
3189 if(
present(force)) iforce=force
3194 if(
present(copy)) icopy=(copy .and. (.not. iforce) .and.
allocated(a))
3196 if(
allocated(a))
then 3199 if(iforce .or. (
size(a) .lt. n))
then 3201 if(.not. icopy)
then 3202 deallocate(a, stat=err)
3204 call qrm_err_push(7, sub=
'qrm_arealloc_z',ied=(/err,0,0,0,0/))
3210 allocate(tmp(n), stat=err)
3212 call qrm_err_push(5,sub=
'qrm_arealloc_z',ied=(/n,0,0,0,0/))
3221 allocate(tmp(n), stat=err)
3223 call qrm_err_push(5,sub=
'qrm_arealloc_z',ied=(/n,0,0,0,0/))
3234 deallocate(a, stat=err)
3236 call qrm_err_push(7, sub=
'qrm_arealloc_z',ied=(/err,0,0,0,0/))
3242 call move_alloc(from=tmp, to=a)
3257 complex(kind(1.e0)),
allocatable,
dimension(:) :: a
3259 logical,
optional :: force, copy
3261 integer :: err=0, asize,
i 3262 logical :: iforce, icopy
3263 complex(kind(1.e0)),
allocatable,
dimension(:) :: tmp
3266 if(
present(force)) iforce=force
3271 if(
present(copy)) icopy=(copy .and. (.not. iforce) .and.
allocated(a))
3273 if(
allocated(a))
then 3276 if(iforce .or. (
size(a) .lt. n))
then 3278 if(.not. icopy)
then 3279 deallocate(a, stat=err)
3281 call qrm_err_push(7, sub=
'qrm_arealloc_c',ied=(/err,0,0,0,0/))
3287 allocate(tmp(n), stat=err)
3289 call qrm_err_push(5,sub=
'qrm_arealloc_c',ied=(/n,0,0,0,0/))
3298 allocate(tmp(n), stat=err)
3300 call qrm_err_push(5,sub=
'qrm_arealloc_c',ied=(/n,0,0,0,0/))
3311 deallocate(a, stat=err)
3313 call qrm_err_push(7, sub=
'qrm_arealloc_c',ied=(/err,0,0,0,0/))
3319 call move_alloc(from=tmp, to=a)
3332 integer :: qrm_asize_c
3333 complex(kind(1.e0)),
allocatable :: a(:)
3335 if(
allocated(a))
then 3337 qrm_asize_c =
size(a)
3352 integer :: qrm_asize_z
3353 complex(kind(1.d0)),
allocatable :: a(:)
3355 if(
allocated(a))
then 3357 qrm_asize_z =
size(a)
3373 integer :: qrm_asize_2c
3374 complex(kind(1.e0)),
allocatable :: a(:,:)
3376 if(
allocated(a))
then 3378 qrm_asize_2c =
size(a)
3393 integer :: qrm_asize_2z
3394 complex(kind(1.d0)),
allocatable :: a(:,:)
3396 if(
allocated(a))
then 3398 qrm_asize_2z =
size(a)
3415 integer :: qrm_asize_3c
3416 complex(kind(1.e0)),
allocatable :: a(:,:,:)
3418 if(
allocated(a))
then 3420 qrm_asize_3c =
size(a)
3436 integer :: qrm_asize_3z
3437 complex(kind(1.d0)),
allocatable :: a(:,:,:)
3439 if(
allocated(a))
then 3441 qrm_asize_3z =
size(a)
3460 integer :: qrm_psize_i
3461 integer,
pointer :: a(:)
3463 if(
associated(a))
then 3465 qrm_psize_i =
size(a)
3481 integer :: qrm_psize_s
3482 real(kind(1.e0)),
pointer :: a(:)
3484 if(
associated(a))
then 3486 qrm_psize_s =
size(a)
3503 integer :: qrm_psize_c
3504 complex(kind(1.e0)),
pointer :: a(:)
3506 if(
associated(a))
then 3508 qrm_psize_c =
size(a)
3523 integer :: qrm_psize_z
3524 complex(kind(1.d0)),
pointer :: a(:)
3526 if(
associated(a))
then 3528 qrm_psize_z =
size(a)
3543 integer :: qrm_psize_d
3544 real(kind(1.d0)),
pointer :: a(:)
3546 if(
associated(a))
then 3548 qrm_psize_d =
size(a)
3566 integer(kind=8) :: totmem, maxmem
integer(kind=8), parameter qrm_sizeof_c_
subroutine qrm_palloc_2s(a, m, n, info)
Generic interface for the qrm_adealloc_i, qrm_adealloc_2i, qrm_adealloc_s, qrm_adealloc_2s, qrm_adealloc_3s, qrm_adealloc_d, qrm_adealloc_2d, qrm_adealloc_3d, qrm_adealloc_c, qrm_adealloc_2c, qrm_adealloc_3c, qrm_adealloc_z, qrm_adealloc_2z, qrm_adealloc_3z, routines.
subroutine qrm_palloc_d_8(a, n, info)
subroutine qrm_arealloc_i(a, n, force, copy)
subroutine qrm_aalloc_2z(a, m, n, info)
integer function qrm_asize_2d(a)
integer function qrm_asize_2c(a)
integer(kind=8), parameter qrm_sizeof_z_
subroutine qrm_err_push(code, sub, ied, aed)
This subroutine pushes an error on top of the stack.
integer(kind=8), parameter qrm_sizeof_s_
subroutine qrm_adealloc_3s(a)
subroutine qrm_par_mem_finalize()
subroutine qrm_adealloc_2d(a)
subroutine qrm_pdealloc_d(a)
subroutine qrm_prealloc_c(a, n, force, copy)
subroutine qrm_adealloc_3z(a)
subroutine qrm_arealloc_s(a, n, force, copy)
subroutine qrm_aalloc_3c(a, m, n, k, info)
subroutine qrm_pdealloc_2s(a)
subroutine qrm_arealloc_z(a, n, force, copy)
integer, parameter qrm_no_
subroutine qrm_pdealloc_2c(a)
integer(kind=8), parameter qrm_sizeof_d_
subroutine qrm_aalloc_2s(a, m, n, info)
subroutine qrm_aalloc_2i(a, m, n, info)
integer function qrm_psize_c(a)
subroutine qrm_pdealloc_2i(a)
integer(kind=8), parameter qrm_sizeof_i_
integer function qrm_asize_d(a)
subroutine qrm_par_mem_init()
This routine has to be called at the beginning of a parallel section. Afterwards, each thread will up...
integer function qrm_asize_s(a)
integer function qrm_asize_z(a)
integer, parameter qrm_maxthreads
subroutine qrm_pdealloc_2d(a)
subroutine qrm_aalloc_2c(a, m, n, info)
subroutine qrm_arealloc_c(a, n, force, copy)
subroutine qrm_pdealloc_s(a)
integer, parameter qrm_yes_
subroutine qrm_mem_upd(n)
updates memory statistics
This module contains all the error management routines and data.
subroutine qrm_adealloc_2i(a)
subroutine qrm_adealloc_d(a)
subroutine qrm_palloc_c(a, n, info)
subroutine qrm_adealloc_s(a)
Generic interface for the qrm_psize_i qrm_psize_s qrm_psize_d qrm_psize_c qrm_psize_z, routines.
subroutine qrm_aalloc_i(a, n, lbnd, info)
subroutine qrm_aalloc_2d(a, m, n, info)
subroutine qrm_adealloc_3c(a)
integer(kind=8), dimension(0:qrm_maxthreads-1) qrm_max_mem
a counter to keep track of the peak memory, per thread
subroutine qrm_aalloc_3s(a, m, n, k, info)
Generic interface for the qrm_aalloc_i, qrm_aalloc_2i, qrm_aalloc_s, qrm_aalloc_2s, qrm_aalloc_3s, qrm_aalloc_d, qrm_aalloc_2d, qrm_aalloc_3d, qrm_aalloc_c, qrm_aalloc_2c, qrm_aalloc_3c, qrm_aalloc_z, qrm_aalloc_2z, qrm_aalloc_3z, routines.
subroutine qrm_palloc_2z(a, m, n, info)
integer function qrm_psize_d(a)
subroutine qrm_adealloc_i(a)
subroutine qrm_palloc_2d(a, m, n, info)
Generic interface for the qrm_pdealloc_i, qrm_pdealloc_2i, qrm_pdealloc_s, qrm_pdealloc_2s, qrm_pdealloc_d, qrm_pdealloc_2d, qrm_pdealloc_c, qrm_pdealloc_2c, qrm_pdealloc_z, qrm_pdealloc_2z, routines.
subroutine qrm_adealloc_2s(a)
Generic interface for the qrm_prealloc_i qrm_prealloc_s qrm_prealloc_d qrm_prealloc_c qrm_prealloc_z...
integer function qrm_asize_i(a)
subroutine qrm_adealloc_z(a)
integer function qrm_asize_c(a)
integer(kind=8), dimension(0:qrm_maxthreads-1) qrm_tot_mem
a counter to keep track of the currently allocated memory, per thread
integer function qrm_asize_2z(a)
subroutine qrm_adealloc_2z(a)
subroutine qrm_adealloc_c(a)
subroutine qrm_aalloc_3z(a, m, n, k, info)
subroutine qrm_arealloc_d(a, n, force, copy)
subroutine qrm_palloc_z(a, n, info)
integer(kind=8) qrm_mem_lim
subroutine qrm_prealloc_z(a, n, force, copy)
subroutine qrm_palloc_d(a, n, info)
subroutine qrm_aalloc_3d(a, m, n, k, info)
subroutine qrm_prealloc_i(a, n, force, copy)
Generic interface for the qrm_asize_i, qrm_asize_s, qrm_asize_2s, qrm_asize_3s, qrm_asize_d, qrm_asize_2d, qrm_asize_3d, qrm_asize_c, qrm_asize_2c, qrm_asize_3c, qrm_asize_z, qrm_asize_2z, qrm_asize_3z routines.
subroutine qrm_adealloc_3d(a)
subroutine qrm_palloc_c_8(a, n, info)
subroutine qrm_palloc_s(a, n, info)
subroutine qrm_pdealloc_i(a)
integer function qrm_asize_3z(a)
subroutine qrm_pdealloc_c(a)
subroutine qrm_palloc_2i(a, m, n, info)
integer(kind=8) qrm_seq_peak
scratchpad variable to store the memory peak on entry to a parallel region
integer function qrm_psize_i(a)
integer function qrm_asize_3s(a)
Generic interface for the qrm_arealloc_i qrm_arealloc_s qrm_arealloc_d qrm_arealloc_c qrm_arealloc_z...
subroutine qrm_prealloc_s(a, n, force, copy)
integer function qrm_asize_2s(a)
subroutine qrm_palloc_z_8(a, n, info)
subroutine qrm_palloc_i(a, n, info)
subroutine qrm_pdealloc_2z(a)
subroutine qrm_prealloc_d(a, n, force, copy)
subroutine qrm_aalloc_d(a, n, lbnd, info)
subroutine qrm_aalloc_z(a, n, lbnd, info)
subroutine qrm_palloc_i_8(a, n, info)
Generic interface for the qrm_palloc_i, qrm_palloc_2i, qrm_palloc_s, qrm_palloc_2s, qrm_palloc_d, qrm_palloc_2d, qrm_palloc_c, qrm_palloc_2c, qrm_palloc_z, qrm_palloc_2z, routines.
subroutine qrm_pdealloc_z(a)
integer function qrm_psize_z(a)
subroutine qrm_adealloc_2c(a)
subroutine qrm_palloc_2c(a, m, n, info)
subroutine qrm_aalloc_s(a, n, lbnd, info)
integer function qrm_asize_3c(a)
This module implements the memory handling routines. Pretty mucch allocations and deallocations...
subroutine qrm_aalloc_c(a, n, lbnd, info)
integer function qrm_asize_3d(a)
subroutine qrm_get_mem_stats(totmem, maxmem)
subroutine qrm_palloc_s_8(a, n, info)
integer function qrm_psize_s(a)