Index / dimension confusion in numerical recipes svdcmp



I translated svdcmp from numerical recipes (2nd edition book in F77)
into C++.
If I am not mistaken I see that there is potential overflow of the
array a.
The "do 32 loop" goes from n down to 1 and subsequent "do 26 loop" goes
upto n,
but there is an a[i, j] there and a is m x n (actually mp x np), the
expression is
v[j, i] = (a[i, j] / a[i, l] ) / g

Is this correct and should a be large enough to accomodate n x n ?

.