85 USE modi_gltools_glterr
90 REAL,
DIMENSION(:,:),
INTENT(inout) :: &
99 REAL,
DIMENSION(:,:),
ALLOCATABLE :: &
113 ALLOCATE( zmat(iim,2*iim) )
115 zmat(:,1:iim) = pmat(:,:)
127 IF ( kdiag<1 .OR. kdiag>iim )
THEN
128 IF(lwg)
WRITE(noutlu,*)
' kdiag =',kdiag,
' is lower than 1 or', &
129 ' greater than matrix dimension'
140 IF ( abs(zmat(jpiv,jpiv))>1.e-10 )
THEN
141 imax = min( jpiv+kdiag,iim )
143 zfac = zmat(jdiag,jpiv) / zmat(jpiv,jpiv)
144 zmat(jdiag,:) = zmat(jdiag,:) - zfac*zmat(jpiv,:)
148 WRITE(noutlu,*)
' This kind of matrix cannot be ', &
149 'inverted by this programme !'
150 WRITE(noutlu,*)
' Current status of the matrix:'
152 WRITE(noutlu,*)
' ',zmat(ji,:)
163 zmat(iim,:) = zmat(iim,:) / zmat(iim,iim)
166 zmat(ji,:) = zmat(ji,:)-zmat(ji,jpiv)*zmat(jpiv,:)
168 zmat(jpiv-1,:) = zmat(jpiv-1,:) / zmat(jpiv-1,jpiv-1)
175 pmat(:,:) = zmat(:,iim+1:2*iim)
subroutine glt_invert(kdiag, pmat)