CalculiX  2.13
A Free Software Three-Dimensional Structural Finite Element Program
rearrange.f File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine rearrange (au, irow, icol, ndim, neq)
 

Function/Subroutine Documentation

◆ rearrange()

subroutine rearrange ( real*8, dimension(*)  au,
integer, dimension(*)  irow,
integer, dimension(*)  icol,
integer  ndim,
integer  neq 
)
20 !
21 ! modifies the sparse storage mode for the iterative solver of
22 ! Ernst Rank (pcgsolver)
23 !
24  implicit none
25 !
26  integer irow(*),icol(*),ndim,i,neq,k,icr,istart,idiag,kflag
27  real*8 au(*)
28 !
29  kflag=2
30 !
31  call isortiid(irow,icol,au,ndim,kflag)
32 !
33  istart=1
34  k=irow(1)
35  icr=0
36  idiag=0
37 !
38  do i=1,ndim
39  if(irow(i).eq.k) then
40  icr=icr+1
41  cycle
42  else
43  call isortid(icol(istart),au(istart),icr,kflag)
44  icr=1
45  istart=i
46  k=irow(i)
47  idiag=idiag+1
48  irow(idiag)=i-1
49  endif
50  enddo
51 !
52 ! last row
53 !
54  call isortid(icol(istart),au(istart),icr,kflag)
55  idiag=idiag+1
56  irow(idiag)=ndim
57 !
58  return
subroutine isortid(ix, dy, n, kflag)
Definition: isortid.f:6
subroutine isortiid(ix, iy, dy, n, kflag)
Definition: isortiid.f:6
Hosted by OpenAircraft.com, (Michigan UAV, LLC)