Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex(kind=8), | dimension(size(diag)-1) | :: | sub | |||
complex(kind=8), | dimension(:) | :: | diag | |||
complex(kind=8), | optional, | dimension(size(diag)-1) | :: | over |
function c_build_tridiag(sub,diag,over) result(Amat) complex(8),dimension(:) :: diag complex(8),dimension(size(diag)-1) :: sub complex(8),dimension(size(diag)-1),optional :: over complex(8),dimension(size(diag),size(diag)) :: Amat complex(8),dimension(size(diag)-1) :: over_ integer :: i,N over_=sub;if(present(over))over_=over N=size(diag) Amat=dcmplx(0d0,0d0) forall(i=1:N-1) Amat(i+1,i) = sub(i) Amat(i,i) = diag(i) Amat(i,i+1) = over_(i) end forall Amat(N,N)=diag(N) end function c_build_tridiag