Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
doubleprecision, | intent(in) | :: | ar | |||
doubleprecision, | intent(in) | :: | ai | |||
doubleprecision, | intent(in) | :: | br | |||
doubleprecision, | intent(in) | :: | bi | |||
doubleprecision, | intent(out) | :: | cr | |||
doubleprecision, | intent(out) | :: | ci |
subroutine mat_wmul(ar,ai,br,bi,cr,ci) ! ident_25="@(#)M_LA::mat_wmul(3fp) c = a*b" doubleprecision,intent(in) :: ar doubleprecision,intent(in) :: ai doubleprecision,intent(in) :: br doubleprecision,intent(in) :: bi doubleprecision,intent(out) :: cr doubleprecision,intent(out) :: ci doubleprecision :: t t = ar*bi + ai*br if (t .ne. 0.0d0) t = mat_flop(t) cr = mat_flop(ar*br - ai*bi) ci = t end subroutine mat_wmul