is there any routine to get the inverse of a matrix directly? Or do I have do use SVD to get the inverse?
The Lapack users guide has a comment that you should not really need to do this
Try looking at dgetri. It appears to provide an inverse, using LU factorization. It probably fails if the matrix is singular.
If your matrix has various other special properties, there are a few other routines that might be useful.