/algorithms_for_tapenade/fortran_code/dense_inverse.f

http://github.com/b45ch1/hpsc_hanoi_2009_walter · FORTRAN Legacy · 25 lines · 21 code · 3 blank · 1 comment · 0 complexity · 80de0a4491d8840de49338f8f08f9dec MD5 · raw file

  1. subroutine inv(A,QT,R,NA)
  2. implicit none
  3. integer*4 NA
  4. real*8 A(NA*NA), QT(NA*NA), R(NA*NA)
  5. integer*4 n,m,k
  6. real*8 tmp
  7. call qr(A,QT,R,NA)
  8. do n= NA-1,0,-1
  9. tmp = R(n*NA + n + 1)
  10. do m = 0, NA-1
  11. R (n*NA + m + 1) = R (n*NA + m + 1)/ tmp
  12. QT(n*NA + m + 1) = QT(n*NA + m + 1)/ tmp
  13. enddo
  14. do m=n+1,NA-1
  15. tmp = R(n*NA + m + 1)
  16. R( n*NA + m + 1) = 0
  17. do k=0,NA-1
  18. QT(n*NA + k + 1) = QT(n*NA + k + 1) - QT( m*NA + k + 1) * tmp
  19. enddo
  20. enddo
  21. enddo
  22. end