From e5ed49a0180cab8e831302f2a4a8f6c573d1aa30 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Tue, 4 Sep 2018 17:40:51 +0100 Subject: [PATCH] Add N to get_vect. --- base/modules/serial/psb_c_base_vect_mod.f90 | 11 +- base/modules/serial/psb_c_vect_mod.F90 | 5 +- base/modules/serial/psb_d_base_vect_mod.f90 | 11 +- base/modules/serial/psb_d_vect_mod.F90 | 5 +- base/modules/serial/psb_i_base_vect_mod.f90 | 11 +- base/modules/serial/psb_i_vect_mod.F90 | 5 +- base/modules/serial/psb_s_base_vect_mod.f90 | 11 +- base/modules/serial/psb_s_vect_mod.F90 | 5 +- base/modules/serial/psb_z_base_vect_mod.f90 | 11 +- base/modules/serial/psb_z_vect_mod.F90 | 5 +- docs/psblas-3.5.pdf | 118 ++++++++++---------- docs/src/datastruct.tex | 11 +- 12 files changed, 125 insertions(+), 84 deletions(-) diff --git a/base/modules/serial/psb_c_base_vect_mod.f90 b/base/modules/serial/psb_c_base_vect_mod.f90 index 518b154a..6fa0bc70 100644 --- a/base/modules/serial/psb_c_base_vect_mod.f90 +++ b/base/modules/serial/psb_c_base_vect_mod.f90 @@ -688,19 +688,24 @@ contains !! \brief Extract a copy of the contents !! ! - function c_base_get_vect(x) result(res) + function c_base_get_vect(x,n) result(res) class(psb_c_base_vect_type), intent(inout) :: x complex(psb_spk_), allocatable :: res(:) integer(psb_ipk_) :: info + integer(psb_ipk_), optional :: n + ! Local variables + integer(psb_ipk_) :: isz if (.not.allocated(x%v)) return if (.not.x%is_host()) call x%sync() - allocate(res(x%get_nrows()),stat=info) + isz = x%get_nrows() + if (present(n)) isz = max(0,min(isz,n)) + allocate(res(isz),stat=info) if (info /= 0) then call psb_errpush(psb_err_alloc_dealloc_,'base_get_vect') return end if - res(:) = x%v(:) + res(1:isz) = x%v(1:isz) end function c_base_get_vect ! diff --git a/base/modules/serial/psb_c_vect_mod.F90 b/base/modules/serial/psb_c_vect_mod.F90 index 73d07ace..208561b6 100644 --- a/base/modules/serial/psb_c_vect_mod.F90 +++ b/base/modules/serial/psb_c_vect_mod.F90 @@ -227,13 +227,14 @@ contains end subroutine c_vect_bld_n - function c_vect_get_vect(x) result(res) + function c_vect_get_vect(x,n) result(res) class(psb_c_vect_type), intent(inout) :: x complex(psb_spk_), allocatable :: res(:) integer(psb_ipk_) :: info + integer(psb_ipk_), optional :: n if (allocated(x%v)) then - res = x%v%get_vect() + res = x%v%get_vect(n) end if end function c_vect_get_vect diff --git a/base/modules/serial/psb_d_base_vect_mod.f90 b/base/modules/serial/psb_d_base_vect_mod.f90 index 96344633..36e95142 100644 --- a/base/modules/serial/psb_d_base_vect_mod.f90 +++ b/base/modules/serial/psb_d_base_vect_mod.f90 @@ -688,19 +688,24 @@ contains !! \brief Extract a copy of the contents !! ! - function d_base_get_vect(x) result(res) + function d_base_get_vect(x,n) result(res) class(psb_d_base_vect_type), intent(inout) :: x real(psb_dpk_), allocatable :: res(:) integer(psb_ipk_) :: info + integer(psb_ipk_), optional :: n + ! Local variables + integer(psb_ipk_) :: isz if (.not.allocated(x%v)) return if (.not.x%is_host()) call x%sync() - allocate(res(x%get_nrows()),stat=info) + isz = x%get_nrows() + if (present(n)) isz = max(0,min(isz,n)) + allocate(res(isz),stat=info) if (info /= 0) then call psb_errpush(psb_err_alloc_dealloc_,'base_get_vect') return end if - res(:) = x%v(:) + res(1:isz) = x%v(1:isz) end function d_base_get_vect ! diff --git a/base/modules/serial/psb_d_vect_mod.F90 b/base/modules/serial/psb_d_vect_mod.F90 index 47870bbb..68b10b2e 100644 --- a/base/modules/serial/psb_d_vect_mod.F90 +++ b/base/modules/serial/psb_d_vect_mod.F90 @@ -227,13 +227,14 @@ contains end subroutine d_vect_bld_n - function d_vect_get_vect(x) result(res) + function d_vect_get_vect(x,n) result(res) class(psb_d_vect_type), intent(inout) :: x real(psb_dpk_), allocatable :: res(:) integer(psb_ipk_) :: info + integer(psb_ipk_), optional :: n if (allocated(x%v)) then - res = x%v%get_vect() + res = x%v%get_vect(n) end if end function d_vect_get_vect diff --git a/base/modules/serial/psb_i_base_vect_mod.f90 b/base/modules/serial/psb_i_base_vect_mod.f90 index 9eaa8fc6..4cc592ac 100644 --- a/base/modules/serial/psb_i_base_vect_mod.f90 +++ b/base/modules/serial/psb_i_base_vect_mod.f90 @@ -657,19 +657,24 @@ contains !! \brief Extract a copy of the contents !! ! - function i_base_get_vect(x) result(res) + function i_base_get_vect(x,n) result(res) class(psb_i_base_vect_type), intent(inout) :: x integer(psb_ipk_), allocatable :: res(:) integer(psb_ipk_) :: info + integer(psb_ipk_), optional :: n + ! Local variables + integer(psb_ipk_) :: isz if (.not.allocated(x%v)) return if (.not.x%is_host()) call x%sync() - allocate(res(x%get_nrows()),stat=info) + isz = x%get_nrows() + if (present(n)) isz = max(0,min(isz,n)) + allocate(res(isz),stat=info) if (info /= 0) then call psb_errpush(psb_err_alloc_dealloc_,'base_get_vect') return end if - res(:) = x%v(:) + res(1:isz) = x%v(1:isz) end function i_base_get_vect ! diff --git a/base/modules/serial/psb_i_vect_mod.F90 b/base/modules/serial/psb_i_vect_mod.F90 index 0671bc33..149e5cab 100644 --- a/base/modules/serial/psb_i_vect_mod.F90 +++ b/base/modules/serial/psb_i_vect_mod.F90 @@ -200,13 +200,14 @@ contains end subroutine i_vect_bld_n - function i_vect_get_vect(x) result(res) + function i_vect_get_vect(x,n) result(res) class(psb_i_vect_type), intent(inout) :: x integer(psb_ipk_), allocatable :: res(:) integer(psb_ipk_) :: info + integer(psb_ipk_), optional :: n if (allocated(x%v)) then - res = x%v%get_vect() + res = x%v%get_vect(n) end if end function i_vect_get_vect diff --git a/base/modules/serial/psb_s_base_vect_mod.f90 b/base/modules/serial/psb_s_base_vect_mod.f90 index 62ba7c1e..9ee77ea6 100644 --- a/base/modules/serial/psb_s_base_vect_mod.f90 +++ b/base/modules/serial/psb_s_base_vect_mod.f90 @@ -688,19 +688,24 @@ contains !! \brief Extract a copy of the contents !! ! - function s_base_get_vect(x) result(res) + function s_base_get_vect(x,n) result(res) class(psb_s_base_vect_type), intent(inout) :: x real(psb_spk_), allocatable :: res(:) integer(psb_ipk_) :: info + integer(psb_ipk_), optional :: n + ! Local variables + integer(psb_ipk_) :: isz if (.not.allocated(x%v)) return if (.not.x%is_host()) call x%sync() - allocate(res(x%get_nrows()),stat=info) + isz = x%get_nrows() + if (present(n)) isz = max(0,min(isz,n)) + allocate(res(isz),stat=info) if (info /= 0) then call psb_errpush(psb_err_alloc_dealloc_,'base_get_vect') return end if - res(:) = x%v(:) + res(1:isz) = x%v(1:isz) end function s_base_get_vect ! diff --git a/base/modules/serial/psb_s_vect_mod.F90 b/base/modules/serial/psb_s_vect_mod.F90 index 30c51082..00be9839 100644 --- a/base/modules/serial/psb_s_vect_mod.F90 +++ b/base/modules/serial/psb_s_vect_mod.F90 @@ -227,13 +227,14 @@ contains end subroutine s_vect_bld_n - function s_vect_get_vect(x) result(res) + function s_vect_get_vect(x,n) result(res) class(psb_s_vect_type), intent(inout) :: x real(psb_spk_), allocatable :: res(:) integer(psb_ipk_) :: info + integer(psb_ipk_), optional :: n if (allocated(x%v)) then - res = x%v%get_vect() + res = x%v%get_vect(n) end if end function s_vect_get_vect diff --git a/base/modules/serial/psb_z_base_vect_mod.f90 b/base/modules/serial/psb_z_base_vect_mod.f90 index ffccc9ab..0960624a 100644 --- a/base/modules/serial/psb_z_base_vect_mod.f90 +++ b/base/modules/serial/psb_z_base_vect_mod.f90 @@ -688,19 +688,24 @@ contains !! \brief Extract a copy of the contents !! ! - function z_base_get_vect(x) result(res) + function z_base_get_vect(x,n) result(res) class(psb_z_base_vect_type), intent(inout) :: x complex(psb_dpk_), allocatable :: res(:) integer(psb_ipk_) :: info + integer(psb_ipk_), optional :: n + ! Local variables + integer(psb_ipk_) :: isz if (.not.allocated(x%v)) return if (.not.x%is_host()) call x%sync() - allocate(res(x%get_nrows()),stat=info) + isz = x%get_nrows() + if (present(n)) isz = max(0,min(isz,n)) + allocate(res(isz),stat=info) if (info /= 0) then call psb_errpush(psb_err_alloc_dealloc_,'base_get_vect') return end if - res(:) = x%v(:) + res(1:isz) = x%v(1:isz) end function z_base_get_vect ! diff --git a/base/modules/serial/psb_z_vect_mod.F90 b/base/modules/serial/psb_z_vect_mod.F90 index e5b24540..e1573e07 100644 --- a/base/modules/serial/psb_z_vect_mod.F90 +++ b/base/modules/serial/psb_z_vect_mod.F90 @@ -227,13 +227,14 @@ contains end subroutine z_vect_bld_n - function z_vect_get_vect(x) result(res) + function z_vect_get_vect(x,n) result(res) class(psb_z_vect_type), intent(inout) :: x complex(psb_dpk_), allocatable :: res(:) integer(psb_ipk_) :: info + integer(psb_ipk_), optional :: n if (allocated(x%v)) then - res = x%v%get_vect() + res = x%v%get_vect(n) end if end function z_vect_get_vect diff --git a/docs/psblas-3.5.pdf b/docs/psblas-3.5.pdf index 4f87af12..7c9050aa 100644 --- a/docs/psblas-3.5.pdf +++ b/docs/psblas-3.5.pdf @@ -7528,7 +7528,7 @@ endstream endobj 951 0 obj << -/Length 3935 +/Length 5078 >> stream 0 g 0 G @@ -7539,60 +7539,64 @@ BT 0 g 0 G /F8 9.9626 Tf 11.028 0 Td [(the)-333(dense)-334(v)28(ector)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ 0 g 0 G - -57.286 -37.031 Td [(alpha)]TJ + -57.286 -30.343 Td [(alpha)]TJ 0 g 0 G -/F8 9.9626 Tf 32.033 0 Td [(A)-333(scalar)-334(v)56(alue.)]TJ -7.126 -11.956 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)28(yp)-28(e)-334(ind)1(ic)-1(ated)-333(in)-333(T)83(able)]TJ +/F8 9.9626 Tf 32.033 0 Td [(A)-333(scalar)-334(v)56(alue.)]TJ -7.126 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)28(yp)-28(e)-334(ind)1(ic)-1(ated)-333(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG [-333(1)]TJ 0 g 0 G [(.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -25.076 Td [(\014rst,last)]TJ +/F27 9.9626 Tf -24.907 -18.387 Td [(\014rst,last)]TJ 0 g 0 G -/F8 9.9626 Tf 45.949 0 Td [(Boundaries)-333(for)-334(setting)-333(in)-333(the)-333(v)27(ector.)]TJ -21.042 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.956 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.955 Td [(Sp)-28(eci\014ed)-333(as:)-445(in)28(tegers.)]TJ +/F8 9.9626 Tf 45.949 0 Td [(Boundaries)-333(for)-334(setting)-333(in)-333(the)-333(v)27(ector.)]TJ -21.042 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(in)28(tegers.)]TJ 0 g 0 G -/F27 9.9626 Tf -24.907 -25.076 Td [(v)32(ect)]TJ +/F27 9.9626 Tf -24.907 -18.387 Td [(v)32(ect)]TJ 0 g 0 G /F8 9.9626 Tf 25.509 0 Td [(An)-333(arra)28(y)]TJ -0.602 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf -32.379 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(required)]TJ/F8 9.9626 Tf -29.611 -11.955 Td [(In)28(ten)28(t:)]TJ/F27 9.9626 Tf 33.486 0 Td [(in)]TJ/F8 9.9626 Tf 9.547 0 Td [(.)]TJ -43.033 -11.956 Td [(Sp)-28(eci\014ed)-333(as:)-445(a)-333(n)28(um)28(b)-28(er)-333(of)-334(the)-333(data)-333(t)28(yp)-28(e)-334(ind)1(ic)-1(ated)-333(in)-333(T)83(able)]TJ 0 0 1 rg 0 0 1 RG [-333(1)]TJ 0 g 0 G - [(.)]TJ -24.907 -27.068 Td [(Note)-392(t)1(hat)-392(a)-391(call)-392(to)]TJ/F30 9.9626 Tf 87.3 0 Td [(v%zero\050\051)]TJ/F8 9.9626 Tf 45.742 0 Td [(is)-391(pro)27(vided)-391(as)-391(a)-392(shorthand,)-406(but)-391(is)-391(equiv)55(alen)28(t)-391(to)]TJ -133.042 -11.955 Td [(a)-320(call)-319(to)]TJ/F30 9.9626 Tf 38.336 0 Td [(v%set\050zero\051)]TJ/F8 9.9626 Tf 60.718 0 Td [(with)-320(the)]TJ/F30 9.9626 Tf 39.579 0 Td [(zero)]TJ/F8 9.9626 Tf 24.106 0 Td [(constan)28(t)-320(ha)28(ving)-320(the)-319(appropriate)-320(t)28(yp)-28(e)-320(and)]TJ -162.739 -11.956 Td [(kind.)]TJ + [(.)]TJ -24.907 -18.073 Td [(Note)-392(t)1(hat)-392(a)-391(call)-392(to)]TJ/F30 9.9626 Tf 87.3 0 Td [(v%zero\050\051)]TJ/F8 9.9626 Tf 45.742 0 Td [(is)-391(pro)27(vided)-391(as)-391(a)-392(shorthand,)-406(but)-391(is)-391(equiv)55(alen)28(t)-391(to)]TJ -133.042 -11.955 Td [(a)-320(call)-319(to)]TJ/F30 9.9626 Tf 38.336 0 Td [(v%set\050zero\051)]TJ/F8 9.9626 Tf 60.718 0 Td [(with)-320(the)]TJ/F30 9.9626 Tf 39.579 0 Td [(zero)]TJ/F8 9.9626 Tf 24.106 0 Td [(constan)28(t)-320(ha)28(ving)-320(the)-319(appropriate)-320(t)28(yp)-28(e)-320(and)]TJ -162.739 -11.955 Td [(kind.)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -27.068 Td [(On)-383(Return)]TJ +/F27 9.9626 Tf 0 -18.073 Td [(On)-383(Return)]TJ 0 g 0 G 0 g 0 G - 0 -25.076 Td [(v)]TJ + 0 -18.387 Td [(v)]TJ 0 g 0 G -/F8 9.9626 Tf 11.028 0 Td [(the)-333(dense)-334(v)28(ector,)-333(with)-334(up)-27(dated)-334(en)28(tries)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ -57.286 -44.683 Td [(get)]TJ +/F8 9.9626 Tf 11.028 0 Td [(the)-333(dense)-334(v)28(ector,)-333(with)-334(up)-27(dated)-334(en)28(tries)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ -57.286 -37.189 Td [(get)]TJ ET q -1 0 0 1 116.018 303.966 cm +1 0 0 1 116.018 356.206 cm []0 d 0 J 0.398 w 0 0 m 3.437 0 l S Q BT -/F27 9.9626 Tf 119.455 303.767 Td [(v)32(ect)-383(|)-384(Get)-383(a)-383(cop)32(y)-384(of)-383(the)-383(v)31(ector)-383(con)32(ten)32(ts)]TJ +/F27 9.9626 Tf 119.455 356.007 Td [(v)32(ect)-383(|)-384(Get)-383(a)-383(cop)32(y)-384(of)-383(the)-383(v)31(ector)-383(con)32(ten)32(ts)]TJ 0 g 0 G 0 g 0 G -/F30 9.9626 Tf -19.56 -20.786 Td [(extv)-525(=)-525(v%get_vect\050\051)]TJ +/F30 9.9626 Tf -19.56 -18.39 Td [(extv)-525(=)-525(v%get_vect\050[n]\051)]TJ 0 g 0 G -/F27 9.9626 Tf 0 -25.781 Td [(T)32(yp)-32(e:)]TJ +/F27 9.9626 Tf 0 -18.073 Td [(T)32(yp)-32(e:)]TJ 0 g 0 G /F8 9.9626 Tf 33.797 0 Td [(Async)28(hronous.)]TJ 0 g 0 G -/F27 9.9626 Tf -33.797 -25.076 Td [(On)-383(En)32(try)]TJ +/F27 9.9626 Tf -33.797 -18.387 Td [(On)-383(En)32(try)]TJ 0 g 0 G 0 g 0 G - 0 -25.076 Td [(v)]TJ + 0 -18.387 Td [(v)]TJ 0 g 0 G /F8 9.9626 Tf 11.028 0 Td [(the)-333(dense)-334(v)28(ector)]TJ 13.879 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ 0 g 0 G - -57.286 -37.736 Td [(On)-383(Return)]TJ + -57.286 -30.343 Td [(n)]TJ 0 g 0 G +/F8 9.9626 Tf 11.347 0 Td [(Size)-333(to)-334(b)-27(e)-334(returned)]TJ 13.56 -11.955 Td [(Scop)-28(e:)]TJ/F27 9.9626 Tf 32.379 0 Td [(lo)-32(cal)]TJ/F8 9.9626 Tf 23.073 0 Td [(.)]TJ -55.452 -11.955 Td [(T)28(yp)-28(e:)]TJ/F27 9.9626 Tf 29.611 0 Td [(optional)]TJ/F8 9.9626 Tf 40.577 0 Td [(;)-333(default:)-445(en)28(tire)-333(v)28(ector.)]TJ 0 g 0 G - 0 -25.076 Td [(F)96(unction)-384(v)64(alue)]TJ +/F27 9.9626 Tf -95.095 -30.028 Td [(On)-383(Return)]TJ 0 g 0 G -/F8 9.9626 Tf 78.387 0 Td [(An)-353(allo)-28(catable)-354(arra)28(y)-353(holding)-354(a)-353(cop)28(y)-354(of)-353(the)-354(dense)-353(v)28(ector)-354(con-)]TJ -53.48 -11.955 Td [(ten)28(ts.)]TJ +0 g 0 G + 0 -18.388 Td [(F)96(unction)-384(v)64(alue)]TJ +0 g 0 G +/F8 9.9626 Tf 78.387 0 Td [(An)-353(allo)-28(catable)-354(arra)28(y)-353(holding)-354(a)-353(cop)28(y)-354(of)-353(the)-354(dense)-353(v)28(ector)-354(con-)]TJ -53.48 -11.955 Td [(ten)28(ts.)-440(If)-319(the)-320(argumen)28(t)]TJ/F11 9.9626 Tf 99.799 0 Td [(n)]TJ/F8 9.9626 Tf 9.161 0 Td [(is)-319(sp)-28(eci\014ed,)-322(the)-320(size)-319(of)-319(the)-320(returned)-319(arra)28(y)-319(e)-1(qu)1(als)]TJ -108.96 -11.955 Td [(the)-401(minim)28(um)-401(b)-28(et)28(w)28(een)]TJ/F11 9.9626 Tf 102.199 0 Td [(n)]TJ/F8 9.9626 Tf 9.974 0 Td [(and)-401(the)-401(in)28(ternal)-401(size)-401(of)-400(the)-401(v)27(ector,)-417(or)-401(0)-401(if)]TJ/F11 9.9626 Tf 189.961 0 Td [(n)]TJ/F8 9.9626 Tf 9.973 0 Td [(is)]TJ -312.107 -11.955 Td [(negativ)28(e;)-389(otherwise,)-380(the)-371(size)-370(of)-371(the)-370(arra)28(y)-371(is)-370(the)-371(same)-371(as)-370(the)-371(in)28(ternal)-370(size)]TJ 0 -11.955 Td [(of)-333(the)-334(v)28(ector.)]TJ 0 g 0 G 141.968 -29.888 Td [(25)]TJ 0 g 0 G @@ -8313,7 +8317,7 @@ endobj /Type /ObjStm /N 100 /First 888 -/Length 10167 +/Length 10180 >> stream 115 0 908 56 915 148 917 262 119 319 123 376 127 432 914 489 919 581 921 695 @@ -8321,11 +8325,11 @@ stream 147 1500 151 1556 927 1612 932 1704 934 1818 155 1875 159 1932 163 1989 931 2046 938 2138 935 2280 936 2427 940 2573 167 2629 171 2685 941 2741 937 2798 944 2903 946 3017 942 3074 175 3131 179 3188 183 3245 187 3302 943 3359 950 3451 947 3593 948 3738 952 3883 191 3939 -949 3995 958 4087 955 4229 956 4375 960 4522 195 4579 199 4636 961 4692 963 4749 204 4806 -957 4863 965 4981 967 5095 964 5151 969 5230 971 5344 208 5401 968 5458 980 5537 972 5711 -973 5856 974 5999 975 6144 976 6289 977 6432 982 6577 212 6633 954 6689 979 6745 986 6876 -978 7026 983 7172 984 7314 988 7459 985 7516 995 7621 989 7787 990 7929 991 8074 992 8216 -993 8360 997 8505 216 8561 998 8617 994 8674 1002 8818 1000 8956 1004 9102 1005 9161 1006 9220 +949 3995 958 4100 955 4242 956 4388 960 4535 195 4592 199 4649 961 4705 963 4762 204 4819 +957 4876 965 4994 967 5108 964 5164 969 5243 971 5357 208 5414 968 5471 980 5550 972 5724 +973 5869 974 6012 975 6157 976 6302 977 6445 982 6590 212 6646 954 6702 979 6758 986 6889 +978 7039 983 7185 984 7327 988 7472 985 7529 995 7634 989 7800 990 7942 991 8087 992 8229 +993 8373 997 8518 216 8574 998 8630 994 8687 1002 8831 1000 8969 1004 9115 1005 9174 1006 9233 % 115 0 obj << /D [909 0 R /XYZ 99.895 279.894 null] @@ -8565,7 +8569,7 @@ stream /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [382.088 606.388 389.062 617.237] +/Rect [382.088 613.077 389.062 623.925] /A << /S /GoTo /D (table.1) >> >> % 948 0 obj @@ -8573,7 +8577,7 @@ stream /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [382.088 460.595 389.062 471.443] +/Rect [382.088 480.661 389.062 491.509] /A << /S /GoTo /D (table.1) >> >> % 952 0 obj @@ -8582,11 +8586,11 @@ stream >> % 191 0 obj << -/D [950 0 R /XYZ 99.895 315.722 null] +/D [950 0 R /XYZ 99.895 367.962 null] >> % 949 0 obj << -/Font << /F27 560 0 R /F8 561 0 R /F30 769 0 R >> +/Font << /F27 560 0 R /F8 561 0 R /F30 769 0 R /F11 755 0 R >> /ProcSet [ /PDF /Text ] >> % 958 0 obj @@ -28544,8 +28548,8 @@ endobj 2028 0 obj << /Title (Parallel Sparse BLAS V. 3.5.0) /Subject (Parallel Sparse Basic Linear Algebra Subroutines) /Keywords (Computer Science Linear Algebra Fluid Dynamics Parallel Linux MPI PSBLAS Iterative Solvers Preconditioners) /Creator (pdfLaTeX) /Producer ($Id$) /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.18)/Keywords() -/CreationDate (D:20180702164032+01'00') -/ModDate (D:20180702164032+01'00') +/CreationDate (D:20180904173147+01'00') +/ModDate (D:20180904173147+01'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017) kpathsea version 6.2.3) >> @@ -28710,7 +28714,7 @@ endobj /W [1 3 1] /Root 2027 0 R /Info 2028 0 R -/ID [<7594D57317A5C89F9FDA464D6C941754> <7594D57317A5C89F9FDA464D6C941754>] +/ID [<92A2920F2726132CA3CAC852168500EC> <92A2920F2726132CA3CAC852168500EC>] /Length 10150 >> stream @@ -28724,33 +28728,33 @@ stream k k k kkkkkkkkkkkkkkkkk"k S( kksk#k$k%k&k'k(k)k*k+k,k-k.k/k0k1k2k3k4k5k6k7k8k9k:k;k<k=k>k?k@kAkBkCkDkEkFkGkHkIkJkKkLkMkNkOkPkTkRk!kQkUkVkWkXkYkZk[k\k]k^k_k`kakbkc     kS:]!"#$%&'()*, ^3E%E+NE;OMBCL?@23497-E6./01rA:;@8<E'E EE#E>E!?KEFJAGHBCD>=LMOKN][PAQESTUVWXYZ@ @ \P^_`abc@@@@@@@@@E(E,^@ @@ -m@ @@@@@@@@@ @@@@ @!@.@/@,@@@"@#@$@%@&@'@(@)@*@+@8@-'@0@1@2@3@4@5@:@;@@@9ܐ@<@F@A@BE-@M@G@H@J@O@P@Q@X@N@R@U@V@WJ@^@Y?@Z@_O@`@b3 + E. ȕ$S #',%&./2-,0E/M45<369E):?=+>C@.:AEFGHIJPND/KQRTOLSVWXYZ^UV[]E0`_tabc_  - F ґ?#F !"%&'+$V(*E1-./3,I02<47r56789:;>?@D=FACGEcFIJKOHfvLNXPQRSTUVWE2Z[\`YG]_bc^a^^f/^^^ -^^E$^ ^ ^ ^^^^^ ^^^^^^^^^^^^^!^^ ^#^)^'^":)^$^&E3^*^+^,^-^.^/^1^(T^0^3^4^6^2s^5^8^;^7^9^=^>^?^N^F^<^@^B^C^D^E ^O^R^Gg^P^Q^H^I^J^K^L^M{^U^S!^TE"E4^W^X^Y^`^V-^Z^\^]^^^_^b^c^aO ){5  -   $ <E5"*(!B{#%&'+,.)a3-3/q058467:=9;<E>7?@ABCDE6GJFHLQKMNOPSTXR UWZ[^Y q\`c_ {aCCCC UgC -ZE7C -C lCCC C C CC  s;CCCCCCCCC CC&C CCCCC C!C"C#C$C%C(C)C,C' C*C5C- :C.C/C0C1C2C3C4E8C7C8C;C6 ?C9C=C>CBC< C?CACDCECHCC \CFCJCKCNCI - CLCSCO -&nCPCQCRCUCVCWCZCT -+CXE9C\C]C`C[ -?C^Ca -MCb  - +m@ @@@@@@@@@ @@@@ @!@.@/@,@@@"@#@$@%@&@'@(@)@*@+@8@-'@0@1@2@3@4@5@:@;@@@9ܐ@<@F@A@BE-@M@G@H@J@O@P@Q@X@N@R@U@V@WJ@^@Y?@Z@_O@`@b + E. ȕ$S #',%&./2-,0E/M45<3>69E):?=/>C@2AEFGHIJPND3KQRTOPSVWXYZ^U[#[]E0`_ysabc  +  # !"%&'+$(*E1-./3,02<4;56789:;>?@D=KYACGEhMFIJKOHjLNXPuQRSTUVWE2Z[\`Y]_bc^a^^j^^^ +^^E$^ ^ ^ ^^^^^ S^^^^^^^^^^^^^!^#0^ ^#^)^'^">^$^&E3^*^+^,^-^.^/^1^(Ym^0^3^4^6^2x^5^8^;^7^9^=^>^?^N^F^<S^@^B^C^D^E^O^R^G^P^Q^H^I^J^K^L^Mn^U^S&^TE"E4^W^X^Y^`^V2-^Z^\^]^^^_^b^c^aS -  +   9@ AE5"*(!F#%&'+,.)e-3/vI058467:=9=;<E>ѻ?@ABCDE6GJF\HLQKMNOPSTXR -UWZ[^Y \`c_ $aCCCC YC +_@E7C +C qOCCC C C CC  wCCCCCCCCC CC&C CCCCC C!C"C#C$C%C(C)C,C' C*C5C- ־C.C/C0C1C2C3C4E8C7C8C;C6 C9C=C>CBC< C?CACDCECHCC CFCJCKCNCI +CLCSCO +*CPCQCRCUCVCWCZCT +/CXE9C\C]C`C[ +D&C^Ca +QCb & +&  -r    -c  -E: - ! - #'" -$&).( -b*,-05/ 1347:6 8E;@; -<=>?BCDGA <EKH LIWL cMNOPQRSTUV[X RYa\ J]_`E<b Fc 8 - :   {  ( 1 E= )"  (# $&'.) -D*,-4/ A023:5 V689E>@; j<>?GA BDEEFLH (IKQM ^NPSTWR ƒUX YZ[E\]^_`abc  -   E? c \ +$# 0!")$ 7t%'(-* ?+/4. B?023E@6;5 U479:=B< i>@AHC xrDFGJOI KMNUP QSTYV WEA[\`Z ]_bca    -    %EB)"4 $%.,#7h&()*+E/013-X2574s6G8t9:<DFECQHIPRSTUVWXYZ[\]^_`abcE{E(E@hEEEҽEE1EXUE wE -sE `E ;E `EEUEE5Ee0EEEEDEEEFEGEHEIEJ.lTmw w wwwwwwwwwwwwwwwwwww w!w"w#w$w%w&w'w(w)w*w+w,w-w.w/w0w1w2w3w4w5w6w7w8w9w:w;w<w=w>w?w@wAwBwCwDwEwFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVwWwXwYwZw[w\w]w^w_w`wawbwc  -    +    +  +E: +ɐ! +D #'" +)$&).( +*,-05/ 1347:6 8E;@; 2g<=>?BCDGA A#EKH Q{IWL hFMNOPQRSTUV[X Ya\ ]_`E<b c  + Ծ       E= " 7 (# <$&'.) 1*,-4/ F$023:5 Z689E>@; oT<>?GA *BDEEFLH IKQM NPSTWR UX KYZ[E\]^_`abc  +   E?   /# 5[!")$ ;%'(-* Dl+/4. F023E@6;5 Y79:=B< nl>@AHC |DFGJOI KMNUP 0QSTYV WEA[\`Z ]_bca c    +   *XEB.r"9Y $%.,#;&()*+E/013-\2574x}6G89:<DFECQHIPRSTUVWXYZ[\]^_`abcEEEDEEEAEhE6fE\E |>E +E E #E ehE.EEzE:=EiEEOEEDEEEFEGEHEIEJ2Xw w wwwwwwwwwwwwwwwwwww w!w"w#w$w%w&w'w(w)w*w+w,w-w.w/w0w1w2w3w4w5w6w7w8w9w:w;w<w=w>w?w@wAwBwCwDwEwFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVwWwXwYwZw[w\w]w^w_w`wawbwc  +   _I endstream endobj startxref -1289925 +1291081 %%EOF diff --git a/docs/src/datastruct.tex b/docs/src/datastruct.tex index 361b07ac..5edb7816 100644 --- a/docs/src/datastruct.tex +++ b/docs/src/datastruct.tex @@ -1127,7 +1127,7 @@ Scope: {\bf local}\\ \addcontentsline{toc}{paragraph}{get\_vect } \begin{verbatim} -extv = v%get_vect() +extv = v%get_vect([n]) \end{verbatim} \begin{description} @@ -1138,12 +1138,19 @@ Scope: {\bf local}\\ % Type: {\bf required}\\ % Intent: {\bf in}.\\ % Specified as: a object of type \spdata. +\item[n] Size to be returned\\ +Scope: {\bf local}.\\ +Type: {\bf optional}; default: entire vector.\\ + \end{description} \begin{description} \item[\bf On Return] \item[Function value] An allocatable array holding a copy of the dense - vector contents. + vector contents. If the argument $n$ is specified, the size of the + returned array equals the minimum between $n$ and the internal size + of the vector, or 0 if $n$ is negative; otherwise, the size of the + array is the same as the internal size of the vector. \end{description} \subsubsection*{clone --- Clone current object}