Skip to content

Commit 9982df3

Browse files
committed
remove a couple gotos
1 parent 9696a00 commit 9982df3

File tree

1 file changed

+28
-28
lines changed

1 file changed

+28
-28
lines changed

fypp/src/la_lapack_c.fypp

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -743,9 +743,8 @@ module la_lapack_c
743743
rowcnd = max( rcmin, smlnum ) / min( rcmax, bignum )
744744
end if
745745
! compute column scale factors.
746-
do j = 1, n
747-
c( j ) = zero
748-
end do
746+
c(1:n) = zero
747+
749748
! find the maximum element in each column,
750749
! assuming the row scaling computed above.
751750
do j = 1, n
@@ -1620,60 +1619,61 @@ module la_lapack_c
16201619
if( n==0 )return
16211620
if( m==0 )return
16221621
if( la_lsame( job, 'N' ) )return
1623-
if( ilo==ihi )go to 30
1624-
! backward balance
1625-
if( la_lsame( job, 'S' ) .or. la_lsame( job, 'B' ) ) then
1626-
! backward transformation on right eigenvectors
1627-
if( rightv ) then
1628-
do i = ilo, ihi
1629-
call la_csscal( m, rscale( i ), v( i, 1 ), ldv )
1630-
end do
1631-
end if
1632-
! backward transformation on left eigenvectors
1633-
if( leftv ) then
1634-
do i = ilo, ihi
1635-
call la_csscal( m, lscale( i ), v( i, 1 ), ldv )
1636-
end do
1637-
end if
1638-
end if
1622+
1623+
backward_balance: if( ilo/=ihi ) then
1624+
! backward balance
1625+
if( la_lsame( job, 'S' ) .or. la_lsame( job, 'B' ) ) then
1626+
! backward transformation on right eigenvectors
1627+
if( rightv ) then
1628+
do i = ilo, ihi
1629+
call la_csscal( m, rscale( i ), v( i, 1 ), ldv )
1630+
end do
1631+
end if
1632+
! backward transformation on left eigenvectors
1633+
if( leftv ) then
1634+
do i = ilo, ihi
1635+
call la_csscal( m, lscale( i ), v( i, 1 ), ldv )
1636+
end do
1637+
end if
1638+
end if
1639+
endif backward_balance
1640+
16391641
! backward permutation
1640-
30 continue
16411642
if( la_lsame( job, 'P' ) .or. la_lsame( job, 'B' ) ) then
16421643
! backward permutation on right eigenvectors
16431644
if( rightv ) then
1644-
if( ilo==1 )go to 50
1645+
16451646
loop_40: do i = ilo - 1, 1, -1
16461647
k = rscale( i )
16471648
if( k==i )cycle loop_40
16481649
call la_cswap( m, v( i, 1 ), ldv, v( k, 1 ), ldv )
16491650
end do loop_40
1650-
50 continue
1651-
if( ihi==n )go to 70
1651+
16521652
loop_60: do i = ihi + 1, n
16531653
k = rscale( i )
16541654
if( k==i )cycle loop_60
16551655
call la_cswap( m, v( i, 1 ), ldv, v( k, 1 ), ldv )
16561656
end do loop_60
1657+
16571658
end if
1659+
16581660
! backward permutation on left eigenvectors
1659-
70 continue
16601661
if( leftv ) then
1661-
if( ilo==1 )go to 90
1662+
16621663
loop_80: do i = ilo - 1, 1, -1
16631664
k = lscale( i )
16641665
if( k==i )cycle loop_80
16651666
call la_cswap( m, v( i, 1 ), ldv, v( k, 1 ), ldv )
16661667
end do loop_80
1667-
90 continue
1668-
if( ihi==n )go to 110
1668+
16691669
loop_100: do i = ihi + 1, n
16701670
k = lscale( i )
16711671
if( k==i )cycle loop_100
16721672
call la_cswap( m, v( i, 1 ), ldv, v( k, 1 ), ldv )
16731673
end do loop_100
16741674
end if
16751675
end if
1676-
110 continue
1676+
16771677
return
16781678
end subroutine la_cggbak
16791679

0 commit comments

Comments
 (0)