1 SUBROUTINE slasorte( S, LDS, J, OUT, INFO )
12 REAL OUT( J, * ), S( LDS, * )
55 parameter( zero = 0.0e+0 )
58 INTEGER BOT, I, LAST, TOP
69 DO 10 i = j - 1, 1, -1
70 IF( s( i+1, i ).EQ.zero )
THEN
71 IF( last-i.EQ.2 )
THEN
72 out( bot-1, 1 ) = s( i+1, i+1 )
73 out( bot, 2 ) = s( i+2, i+2 )
74 out( bot-1, 2 ) = s( i+1, i+2 )
75 out( bot, 1 ) = s( i+2, i+1 )
78 IF( last-i.EQ.1 )
THEN
79 IF( mod( top, 2 ).EQ.1 )
THEN
83 IF( ( i.EQ.j-1 ) .OR. ( i.EQ.1 ) )
THEN
84 out( top, 1 ) = s( i+1, i+1 )
86 out( top, 1 ) = s( i+1, i+1 )
93 IF( ( i.EQ.j-1 ) .OR. ( i.EQ.1 ) )
THEN
94 out( top, 2 ) = s( i+1, i+1 )
96 out( top, 2 ) = s( i+1, i+1 )
102 IF( last-i.GT.2 )
THEN
113 out( bot-1, 1 ) = s( 1, 1 )
114 out( bot, 2 ) = s( 2, 2 )
115 out( bot-1, 2 ) = s( 1, 2 )
116 out( bot, 1 ) = s( 2, 1 )
119 IF( last.EQ.1 .and. mod(top, 2) .eq. 0 )
THEN
127 IF( top-1.NE.bot )
THEN
135 s( i, i ) = out( i, 1 )
136 s( i+1, i ) = out( i+1, 1 )
137 s( i, i+1 ) = out( i, 2 )
138 s( i+1, i+1 ) = out( i+1, 2 )