diff options
Diffstat (limited to 'src/matexp.F90')
-rw-r--r-- | src/matexp.F90 | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/matexp.F90 b/src/matexp.F90 new file mode 100644 index 0000000..d2ecc77 --- /dev/null +++ b/src/matexp.F90 @@ -0,0 +1,38 @@ +! $Header$ + +#include "cctk.h" +#include "cctk_Parameters.h" + +module matexp + use constants + implicit none + DECLARE_CCTK_PARAMETERS + private + + public calc_exp3 + +contains + + subroutine calc_exp3 (h3, g3) + CCTK_REAL, intent(in) :: h3(3,3) + CCTK_REAL, intent(out) :: g3(3,3) + CCTK_REAL :: nfact + CCTK_REAL :: tmp(3,3) + integer :: n + integer :: i, j + + g3 = delta3 + + nfact = 1 + tmp = delta3 + do n = 1, 18 + nfact = nfact * n + tmp = matmul (h3, tmp) + + ! exp(x) = sum_n x^n / n! + g3 = g3 + tmp / nfact + end do + + end subroutine calc_exp3 + +end module matexp |