lower_triangle Function

public function lower_triangle(j, k, extra)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: j
integer, intent(in) :: k
integer, intent(in), optional :: extra

Return Value logical, dimension(j,k)


Calls

proc~~lower_triangle~~CallsGraph proc~lower_triangle lower_triangle proc~outerdiff~2 outerdiff proc~lower_triangle->proc~outerdiff~2

Called by

proc~~lower_triangle~~CalledByGraph proc~lower_triangle lower_triangle proc~broyden1~2 broyden1 proc~broyden1~2->proc~lower_triangle

Source Code

  function lower_triangle(j,k,extra)
    integer, intent(in)                    :: j,k
    integer, optional, intent(in)          :: extra
    logical, dimension(j,k)                :: lower_triangle
    integer                                :: n
    n=0;if (present(extra)) n=extra
    lower_triangle=(outerdiff(arth_i(1,1,j),arth_i(1,1,k)) > -n)
  contains
    function arth_i(first,increment,n)
      integer, intent(in)                  :: first,increment,n
      integer, dimension(n)                :: arth_i
      integer                              :: k,k2,temp
      if (n > 0) arth_i(1)=first
      if (n <= npar_arth) then
         do k=2,n
            arth_i(k)=arth_i(k-1)+increment
         end do
      else
         do k=2,npar2_arth
            arth_i(k)=arth_i(k-1)+increment
         end do
         temp=increment*npar2_arth
         k=npar2_arth
         do
            if (k >= n) exit
            k2=k+k
            arth_i(k+1:min(k2,n))=temp+arth_i(1:min(k,n-k))
            temp=temp+temp
            k=k2
         end do
      end if
    end function arth_i
  end function lower_triangle