Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
doubleprecision | :: | da | ||||
doubleprecision | :: | db | ||||
doubleprecision | :: | c | ||||
doubleprecision | :: | s |
subroutine mat_rrotg(da,db,c,s) ! ident_48="@(#)M_LA::mat_rrotg(3fp): construct Givens plane rotation." doubleprecision :: da doubleprecision :: db doubleprecision :: c doubleprecision :: s doubleprecision :: rho doubleprecision :: r doubleprecision :: z rho = db if ( dabs(da) .gt. dabs(db) ) rho = da c = 1.0d0 s = 0.0d0 z = 1.0d0 r = mat_flop(dsign(mat_pythag(da,db),rho)) if (r .ne. 0.0d0) c = mat_flop(da/r) if (r .ne. 0.0d0) s = mat_flop(db/r) if ( dabs(da) .gt. dabs(db) ) z = s if (dabs(db) .ge. dabs(da) .and. c .ne. 0.0d0)z = mat_flop(1.0d0/c) da = r db = z end subroutine mat_rrotg