Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer | :: | Nblock | ||||
integer | :: | Nsize | ||||
complex(kind=8), | dimension(Nblock*Nsize,Nblock*Nsize) | :: | Amat |
function c_check_tridiag_block(Nblock,Nsize,Amat) result(Mcheck) integer :: Nblock integer :: Nsize complex(8),dimension(Nblock*Nsize,Nblock*Nsize) :: Amat logical,dimension(Nblock*Nsize,Nblock*Nsize) :: Lmat integer :: i,j,iblock,is,js logical :: Mcheck Lmat=.true. do iblock=1,Nblock-1 do i=1,Nsize do j=1,Nsize is = i + (iblock-1)*Nsize js = j + (iblock-1)*Nsize Lmat(Nsize+is,js) =.false. Lmat(is,js) =.false. Lmat(is,Nsize+js) =.false. enddo enddo enddo do i=1,Nsize do j=1,Nsize is = i + (Nblock-1)*Nsize js = j + (Nblock-1)*Nsize Lmat(is,js)=.false. enddo enddo Mcheck = .not.(sum(abs(Amat),mask=Lmat)>0d0) end function c_check_tridiag_block