A parallel algorithm for solving block tridiagonal linear systems