1 # 1 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/external/tools_asa007.fypp"
2 # 1 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/external/../instrumentation.fypp" 1
3 # 1 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/external/../subr_list.fypp" 1
12 # 926 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/external/../subr_list.fypp"
13 # 2 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/external/../instrumentation.fypp" 2
22 # 112 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/external/../instrumentation.fypp"
23 # 2 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/external/tools_asa007.fypp" 2
70 integer,
intent(in) :: n
71 integer,
intent(in) :: nn
72 real(kind_real),
intent(in) :: a(nn)
73 real(kind_real),
intent(out) :: u(nn)
76 integer :: i,icol,ii,irow,j,k,kk,l,m
77 real(kind_real) :: w,x
89 if (nn/=(n*(n+1))/2)
call mpl%abort(
'asa007_cholesky',
'wrong size in Cholesky decomposition')
112 if (abs(u(l))>
zero)
then
116 if (
inf(abs(x*a(k)),w**2))
call mpl%abort(
'asa007_cholesky',
'matrix is not positive semi-definite')
121 if (
infeq(abs(w),abs(
eta*a(k))))
then
124 if (w<
zero)
call mpl%abort(
'asa007_cholesky',
'matrix is not positive semi-definite')
145 integer,
intent(in) :: n
146 integer,
intent(in) :: nn
147 real(kind_real),
intent(in) :: a(nn)
148 real(kind_real),
intent(out) :: c(nn)
151 integer :: i,icol,irow,j,jcol,k,l,mdiag,ndiag,nrow
152 real(kind_real) :: w(n),x
162 if (nn/=(n*(n+1))/2)
then
163 call mpl%abort(
'asa007_syminv',
'wrong size in matrix inversion')
175 if (abs(c(ndiag))>
zero)
then
197 if (mdiag<l) l = l-k+1
Generic ranks, dimensions and types.