Statistics
| Branch: | Revision:

root / synthbench / euroben-dm / mod2ci / rotb.f @ 0:839f52ef7657

History | View | Annotate | Download (830 Bytes)

1 0:839f52ef7657 louridas
      Subroutine rotb( arg, c, s )
2 0:839f52ef7657 louridas
! ----------------------------------------------------------------------
3 0:839f52ef7657 louridas
! --- Stores rotation factors arg according to sine/cosine terms of
4 0:839f52ef7657 louridas
!     Givens transformation (used in rgmres).
5 0:839f52ef7657 louridas
! ----------------------------------------------------------------------
6 0:839f52ef7657 louridas
      Use         numerics
7 0:839f52ef7657 louridas
      Use         floptime
8 0:839f52ef7657 louridas
      Implicit    None
9 0:839f52ef7657 louridas
10 0:839f52ef7657 louridas
      Real(l_) :: arg, c, s
11 0:839f52ef7657 louridas
! ----------------------------------------------------------------------
12 0:839f52ef7657 louridas
      If ( c == 0.0_l_ ) Then
13 0:839f52ef7657 louridas
         arg = 1.0_l_
14 0:839f52ef7657 louridas
      Else If ( Abs( s ) < Abs( c ) ) Then
15 0:839f52ef7657 louridas
         arg = 0.5_l_*s*Sign( 1.0_l_, c )
16 0:839f52ef7657 louridas
         flops = flops + 6
17 0:839f52ef7657 louridas
      Else
18 0:839f52ef7657 louridas
         arg = 2.0_l_*Sign( 1.0_l_, s )/c
19 0:839f52ef7657 louridas
         flops = flops + 6
20 0:839f52ef7657 louridas
      End If
21 0:839f52ef7657 louridas
! ----------------------------------------------------------------------
22 0:839f52ef7657 louridas
      End Subroutine rotb