mat_wlog Subroutine

public subroutine mat_wlog(in_real, in_imag, out_real, out_imag)

Arguments

Type IntentOptional Attributes Name
doubleprecision :: in_real
doubleprecision :: in_imag
doubleprecision :: out_real
doubleprecision :: out_imag

Source Code

subroutine mat_wlog(in_real,in_imag,out_real,out_imag)

! ident_22="@(#)M_LA::mat_wlog(3fp): y = log(x)"

doubleprecision :: in_real, in_imag
doubleprecision :: out_real, out_imag
doubleprecision :: t
doubleprecision :: r
   r = mat_pythag(in_real,in_imag)

   if (r .eq. 0.0d0) then
      call la_err(32) !  Singularity of LOG or ATAN
   else
      t = datan2(in_imag,in_real)
      if (in_imag.eq.0.0d0 .and. in_real.lt.0.0d0) t = dabs(t)
      out_real = dlog(r)
      out_imag = t
   endif

end subroutine mat_wlog