202 integer :: qrm_mem_thn=0, qrm_mem_nth=1
206 integer(kind=8) :: qrm_tot_mem(0:qrm_maxthreads-1)=0
209 integer(kind=8) :: qrm_max_mem(0:qrm_maxthreads-1)=0
213 integer(kind=8) :: qrm_seq_peak=0
215 integer :: qrm_exact_mem = qrm_no_
217 integer(kind=8),
parameter :: qrm_sizeof_i_=4
218 integer(kind=8),
parameter :: qrm_sizeof_s_=4
219 integer(kind=8),
parameter :: qrm_sizeof_d_=8
220 integer(kind=8),
parameter :: qrm_sizeof_c_=8
221 integer(kind=8),
parameter :: qrm_sizeof_z_=16
225 integer(kind=8) :: qrm_mem_lim=500000000
237 if(qrm_exact_mem .eq.
qrm_yes_)
then
243 qrm_seq_peak = qrm_max_mem(0)
244 qrm_tot_mem(1:qrm_mem_nth-1)=0
245 qrm_max_mem(0:qrm_mem_nth-1)=0
253 if(qrm_exact_mem .eq.
qrm_yes_)
then
258 qrm_tot_mem(0) = sum(qrm_tot_mem(0:qrm_mem_nth-1))
259 qrm_max_mem(0) = max(sum(qrm_max_mem(0:qrm_mem_nth-1)), &
262 qrm_tot_mem(1:qrm_mem_nth-1)=0
263 qrm_max_mem(1:qrm_mem_nth-1)=0
275 if(qrm_exact_mem .eq.
qrm_yes_)
then
277 qrm_tot_mem(0) = qrm_tot_mem(0)+n
278 if(qrm_tot_mem(0) .gt. qrm_max_mem(0)) &
279 & qrm_max_mem(0) = qrm_tot_mem(0)
282 qrm_tot_mem(qrm_mem_thn) = qrm_tot_mem(qrm_mem_thn)+n
283 if(qrm_tot_mem(qrm_mem_thn) .gt. qrm_max_mem(qrm_mem_thn)) &
284 & qrm_max_mem(qrm_mem_thn) = qrm_tot_mem(qrm_mem_thn)
300 real(kind(1.d0)),
pointer,
dimension(:) :: a
301 integer,
intent(in) :: n
302 integer,
optional :: info
306 if(
associated(a))
then
311 disp = qrm_mem_lim - sum(qrm_tot_mem(0:qrm_mem_nth-1))
313 if( n*qrm_sizeof_d_ .gt. disp )
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
356 disp = qrm_mem_lim - sum(qrm_tot_mem(0:qrm_mem_nth-1))
358 if( n*qrm_sizeof_d_ .gt. disp )
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
403 disp = qrm_mem_lim - sum(qrm_tot_mem(0:qrm_mem_nth-1)
405 if( n*qrm_sizeof_s_ .gt. disp )
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
451 disp = qrm_mem_lim - sum(qrm_tot_mem(0:qrm_mem_nth-1)
453 if( n*qrm_sizeof_s_ .gt. disp )
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
500 disp = qrm_mem_lim - sum(qrm_tot_mem(0:qrm_mem_nth-1)
502 if( n*qrm_sizeof_i_ .gt. disp )
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
548 disp = qrm_mem_lim - sum(qrm_tot_mem(0:qrm_mem_nth-1)
550 if( n*qrm_sizeof_i_ .gt. disp )
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
600 disp = qrm_mem_lim - sum(qrm_tot_mem(0:qrm_mem_nth-1))
602 if( n*m*qrm_sizeof_d_ .gt. disp )
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
651 disp = qrm_mem_lim - sum(qrm_tot_mem(0:qrm_mem_nth-1))
653 if( n*m*qrm_sizeof_s_ .gt. disp )
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
702 disp = qrm_mem_lim - sum(qrm_tot_mem(0:qrm_mem_nth-1))
704 if( n*m*qrm_sizeof_i_ .gt. disp )
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
752 disp = qrm_mem_lim - sum(qrm_tot_mem(0:qrm_mem_nth-1))
754 if( n*m*qrm_sizeof_z_ .gt. disp )
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
802 disp = qrm_mem_lim - sum(qrm_tot_mem(0:qrm_mem_nth-1))
804 if( n*m*qrm_sizeof_c_ .gt. disp )
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
863 disp = qrm_mem_lim - sum(qrm_tot_mem(0:qrm_mem_nth-1))
865 if( n*qrm_sizeof_d_ .gt. disp )
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
921 disp = qrm_mem_lim - sum(qrm_tot_mem(0:qrm_mem_nth-1))
923 if( n*qrm_sizeof_s_ .gt. disp )
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
979 disp = qrm_mem_lim - sum(qrm_tot_mem(0:qrm_mem_nth-1))
981 if( n*qrm_sizeof_i_ .gt. disp )
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
1030 disp = qrm_mem_lim - sum(qrm_tot_mem(0:qrm_mem_nth-1))
1032 if( n*m*qrm_sizeof_d_ .gt. disp )
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
1081 disp = qrm_mem_lim - sum(qrm_tot_mem(0:qrm_mem_nth-1))
1083 if( n*m*qrm_sizeof_s_ .gt. disp )
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
1132 disp = qrm_mem_lim - sum(qrm_tot_mem(0:qrm_mem_nth-1))
1134 if( n*m*qrm_sizeof_i_ .gt. disp )
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
1186 disp = qrm_mem_lim - sum(qrm_tot_mem(0:qrm_mem_nth-1))
1188 if( n*m*k*qrm_sizeof_d_ .gt. disp )
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/))
1203 call
qrm_mem_upd(int(m,8)*int(n,8)*int(k,8)*qrm_sizeof_d_)
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
1239 disp = qrm_mem_lim - sum(qrm_tot_mem(0:qrm_mem_nth-1))
1241 if( n*m*k*qrm_sizeof_s_ .gt. disp )
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/))
1256 call
qrm_mem_upd(m*int(n,8)*int(k,8)*qrm_sizeof_s_)
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/))
1333 call
qrm_mem_upd(-int(m,8)*int(n,8)*qrm_sizeof_d_)
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/))
1358 call
qrm_mem_upd(-int(m,8)*int(n,8)*qrm_sizeof_s_)
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/))
1408 call
qrm_mem_upd(-int(m,8)*int(n,8)*qrm_sizeof_i_)
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/))
1508 call
qrm_mem_upd(-int(m,8)*int(n,8)*qrm_sizeof_d_)
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/))
1533 call
qrm_mem_upd(-int(m,8)*int(n,8)*qrm_sizeof_s_)
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/))
1560 call
qrm_mem_upd(-int(m,8)*int(n,8)*int(k,8)*qrm_sizeof_d_)
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/))
1586 call
qrm_mem_upd(-int(m,8)*int(n,8)*int(k,8)*qrm_sizeof_s_)
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/))
1613 call
qrm_mem_upd(-int(m,8)*int(n,8)*qrm_sizeof_i_)
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)
2098 integer,
allocatable :: a(:)
2100 if(
allocated(a))
then
2119 real(kind(1.e0)),
allocatable :: a(:)
2121 if(
allocated(a))
then
2139 real(kind(1.d0)),
allocatable :: a(:)
2141 if(
allocated(a))
then
2160 real(kind(1.e0)),
allocatable :: a(:,:)
2162 if(
allocated(a))
then
2180 real(kind(1.d0)),
allocatable :: a(:,:)
2182 if(
allocated(a))
then
2202 real(kind(1.e0)),
allocatable :: a(:,:,:)
2204 if(
allocated(a))
then
2223 real(kind(1.d0)),
allocatable :: a(:,:,:)
2225 if(
allocated(a))
then
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
2257 disp = qrm_mem_lim - sum(qrm_tot_mem(0:qrm_mem_nth-1))
2259 if( n*qrm_sizeof_z_ .gt. disp )
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
2302 disp = qrm_mem_lim - sum(qrm_tot_mem(0:qrm_mem_nth-1))
2304 if( n*qrm_sizeof_z_ .gt. disp )
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
2350 disp = qrm_mem_lim - sum(qrm_tot_mem(0:qrm_mem_nth-1))
2352 if( n*qrm_sizeof_c_ .gt. disp )
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
2398 disp = qrm_mem_lim - sum(qrm_tot_mem(0:qrm_mem_nth-1))
2400 if( n*qrm_sizeof_c_ .gt. disp )
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
2456 disp = qrm_mem_lim - sum(qrm_tot_mem(0:qrm_mem_nth-1))
2458 if( n*qrm_sizeof_z_ .gt. disp )
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
2513 disp = qrm_mem_lim - sum(qrm_tot_mem(0:qrm_mem_nth-1))
2515 if( n*qrm_sizeof_c_ .gt. disp )
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
2564 disp = qrm_mem_lim - sum(qrm_tot_mem(0:qrm_mem_nth-1))
2566 if( n*m*qrm_sizeof_z_ .gt. disp )
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/))
2581 call
qrm_mem_upd(+int(m,8)*int(n,8)*qrm_sizeof_z_)
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
2614 disp = qrm_mem_lim - sum(qrm_tot_mem(0:qrm_mem_nth-1))
2616 if( n*m*qrm_sizeof_c_ .gt. disp )
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/))
2631 call
qrm_mem_upd(+int(m,8)*int(n,8)*qrm_sizeof_c_)
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
2669 disp = qrm_mem_lim - sum(qrm_tot_mem(0:qrm_mem_nth-1))
2671 if( n*m*k*qrm_sizeof_z_ .gt. disp )
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/))
2686 call
qrm_mem_upd(+int(m,8)*int(n,8)*int(k,8)*qrm_sizeof_z_)
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
2722 disp = qrm_mem_lim - sum(qrm_tot_mem(0:qrm_mem_nth-1))
2724 if( n*m*k*qrm_sizeof_c_ .gt. disp )
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/))
2739 call
qrm_mem_upd(+int(m,8)*int(n,8)*int(k,8)*qrm_sizeof_c_)
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/))
2822 call
qrm_mem_upd(-int(m,8)*int(n,8)*qrm_sizeof_z_)
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/))
2847 call
qrm_mem_upd(-int(m,8)*int(n,8)*qrm_sizeof_c_)
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/))
2922 call
qrm_mem_upd(-int(m,8)*int(n,8)*qrm_sizeof_z_)
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/))
2947 call
qrm_mem_upd(-int(m,8)*int(n,8)*qrm_sizeof_c_)
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/))
2974 call
qrm_mem_upd(-int(m,8)*int(n,8)*int(k,8)*qrm_sizeof_z_)
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/))
3000 call
qrm_mem_upd(-int(m,8)*int(n,8)*int(k,8)*qrm_sizeof_c_)
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)
3333 complex(kind(1.e0)),
allocatable :: a(:)
3335 if(
allocated(a))
then
3353 complex(kind(1.d0)),
allocatable :: a(:)
3355 if(
allocated(a))
then
3374 complex(kind(1.e0)),
allocatable :: a(:,:)
3376 if(
allocated(a))
then
3394 complex(kind(1.d0)),
allocatable :: a(:,:)
3396 if(
allocated(a))
then
3416 complex(kind(1.e0)),
allocatable :: a(:,:,:)
3418 if(
allocated(a))
then
3437 complex(kind(1.d0)),
allocatable :: a(:,:,:)
3439 if(
allocated(a))
then
3461 integer,
pointer :: a(:)
3463 if(
associated(a))
then
3482 real(kind(1.e0)),
pointer :: a(:)
3484 if(
associated(a))
then
3504 complex(kind(1.e0)),
pointer :: a(:)
3506 if(
associated(a))
then
3524 complex(kind(1.d0)),
pointer :: a(:)
3526 if(
associated(a))
then
3544 real(kind(1.d0)),
pointer :: a(:)
3546 if(
associated(a))
then
3566 integer(kind=8) :: totmem, maxmem
3568 totmem = qrm_tot_mem(0)
3569 maxmem = qrm_max_mem(0)
This module contains all the error management routines and data.
integer function qrm_asize_3d(a)
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.
integer function qrm_asize_c(a)
integer function qrm_psize_c(a)
subroutine qrm_palloc_z_8(a, n, info)
subroutine qrm_palloc_2i(a, m, n, info)
subroutine qrm_aalloc_3s(a, m, n, k, info)
subroutine qrm_pdealloc_2c(a)
integer function qrm_asize_s(a)
integer function qrm_asize_2d(a)
subroutine qrm_palloc_2s(a, m, n, info)
subroutine qrm_adealloc_2c(a)
subroutine qrm_palloc_2z(a, m, n, info)
subroutine qrm_pdealloc_2d(a)
subroutine qrm_palloc_i(a, n, info)
integer function qrm_asize_2z(a)
integer function qrm_psize_s(a)
subroutine qrm_palloc_i_8(a, n, info)
subroutine qrm_pdealloc_s(a)
subroutine qrm_aalloc_z(a, n, lbnd, info)
subroutine qrm_aalloc_d(a, n, lbnd, info)
subroutine qrm_aalloc_2i(a, m, n, info)
subroutine qrm_palloc_d_8(a, n, info)
subroutine qrm_adealloc_i(a)
integer function qrm_asize_d(a)
subroutine qrm_pdealloc_2z(a)
subroutine qrm_aalloc_i(a, n, lbnd, info)
integer function qrm_psize_i(a)
subroutine qrm_pdealloc_i(a)
subroutine qrm_adealloc_z(a)
subroutine qrm_aalloc_2z(a, m, n, info)
integer function qrm_psize_d(a)
subroutine qrm_adealloc_s(a)
subroutine qrm_adealloc_2d(a)
subroutine qrm_palloc_z(a, n, info)
subroutine qrm_mem_upd(n)
updates memory statistics
subroutine qrm_get_mem_stats(totmem, maxmem)
subroutine qrm_adealloc_c(a)
integer function qrm_psize_z(a)
subroutine qrm_aalloc_3z(a, m, n, k, info)
subroutine qrm_pdealloc_2s(a)
subroutine qrm_pdealloc_z(a)
subroutine qrm_palloc_s_8(a, n, info)
Generic interface for the qrm_psize_i qrm_psize_s qrm_psize_d qrm_psize_c qrm_psize_z, routines.
subroutine qrm_prealloc_s(a, n, force, copy)
subroutine qrm_adealloc_3d(a)
integer function qrm_asize_3s(a)
subroutine qrm_adealloc_3c(a)
subroutine qrm_prealloc_z(a, n, force, copy)
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_aalloc_3c(a, m, n, k, info)
subroutine qrm_prealloc_d(a, n, force, copy)
subroutine qrm_palloc_2c(a, m, n, info)
integer function qrm_asize_z(a)
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.
Generic interface for the qrm_prealloc_i qrm_prealloc_s qrm_prealloc_d qrm_prealloc_c qrm_prealloc_z...
subroutine qrm_aalloc_2c(a, m, n, info)
subroutine qrm_arealloc_d(a, n, force, copy)
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_3z(a)
subroutine qrm_arealloc_s(a, n, force, copy)
subroutine qrm_palloc_s(a, n, info)
subroutine qrm_adealloc_2i(a)
subroutine qrm_prealloc_c(a, n, force, copy)
subroutine qrm_pdealloc_d(a)
integer function qrm_asize_i(a)
subroutine qrm_adealloc_2s(a)
subroutine qrm_aalloc_2s(a, m, n, info)
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_palloc_c(a, n, info)
subroutine qrm_aalloc_c(a, n, lbnd, info)
subroutine qrm_par_mem_finalize()
subroutine qrm_aalloc_2d(a, m, n, info)
subroutine qrm_arealloc_i(a, n, force, copy)
subroutine qrm_adealloc_3s(a)
integer function qrm_asize_2s(a)
Generic interface for the qrm_arealloc_i qrm_arealloc_s qrm_arealloc_d qrm_arealloc_c qrm_arealloc_z...
subroutine qrm_adealloc_3z(a)
integer function qrm_asize_2c(a)
This module implements the memory handling routines. Pretty mucch allocations and deallocations...
subroutine qrm_arealloc_c(a, n, force, copy)
subroutine qrm_palloc_c_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_palloc_d(a, n, info)
subroutine qrm_adealloc_2z(a)
subroutine qrm_aalloc_3d(a, m, n, k, info)
subroutine qrm_aalloc_s(a, n, lbnd, info)
subroutine qrm_pdealloc_c(a)
integer function qrm_asize_3c(a)
subroutine qrm_err_push(code, sub, ied, aed)
This subroutine pushes an error on top of the stack.
subroutine qrm_arealloc_z(a, n, force, copy)
subroutine qrm_palloc_2d(a, m, n, info)
subroutine qrm_pdealloc_2i(a)
subroutine qrm_prealloc_i(a, n, force, copy)
subroutine qrm_adealloc_d(a)