3 #include "sll_working_precision.h"
37 sll_int32,
dimension(:),
intent(in) :: mudl
38 sll_real64,
dimension(:),
intent(in) :: ae
39 sll_real64,
dimension(:),
intent(inout) :: as
41 sll_int32 :: kj, jid, jmi, ij, jj, id, imi, ii, ntest
45 sll_real64,
parameter :: eps = 1.0e-10_f64
59 jj = mudl(imi + id - 1)
68 do kj = max(jmi, imi - jid), jj - 1
69 s = s + as(kj)*as(kj + jid)
72 as(ij) = (ae(ij) - s)/as(jj)
73 xii = xii + as(ij)*as(ij)
77 if (xii < eps*abs(ae(ii)))
then
79 write (6, 901) xii, eps, ae(ii)
94 900
format(/10x,
'resultats a verifier : le coefficient diagonal du dl' &
95 , i6,
' est inferieur au seuil de precision', e14.7)
96 901
format(/10x,
'xii:', e14.7, e14.7, e14.7)
97 902
format(/10x,
'************ Erreur dans sll_s_choles *************'/)
115 sll_int32,
intent(in) :: mudl(0:*)
116 sll_real64,
intent(in) :: a(*)
117 sll_real64,
intent(in) :: be(*)
118 sll_int32,
intent(in) :: ntdl
119 sll_real64,
intent(inout) :: bs(*)
121 sll_int32 :: ii, ij, kj, il, i, j
137 y = y + a(il)*bs(il + kj)
139 bs(i) = (be(i) - y)/a(ii)
151 do j = ij - kj, i - 1
152 bs(j) = bs(j) - a(j + kj)*bs(i)
subroutine, public sll_s_choles(mudl, ae, as)
subroutine, public sll_s_desrem(mudl, a, be, ntdl, bs)