The LOG function returns the natural logarithm of a real or complex argument.
x is an INTENT(IN) scalar or array of type REAL or COMPLEX.
If x is REAL, it must be greater than zero.
If x is COMPLEX, it must not be equal to zero.
The result is of the same type and kind as x.
If x is REAL, its value is equal to a REAL representation of log ex.
If x is COMPLEX, its value is equal to the principal value with imaginary part Ω in the range
If x is REAL and equal to zero, a floating divide exception occurs, and unless trapped, the value -Inf (negative infinity) is returned.
If x is REAL and less than zero, an invalid operation exception occurs, and unless trapped, the value -NaN (not a number) is returned.
If x is COMPLEX with both the real and imaginary parts equal to zero, a runtime error occurs and execution is terminated.
Examplereal :: x.1.,xa(2)=(/.5,1.5/),pi=3.141592654 real :: re,im complex :: q=(-1.,1.) write(*,*) log(x) ! writes 0.0 write(*,*) log(xa) ! writes -.69314718 .40546509 write(*,*) log(q) ! writes (.34657359, 2.3561945) re=log((sqrt(real(q)**2+aimag(q)**2))) ! real part of log(q) im=-atan2(real(q),aimag(q))+pi/2. ! imag part of log(q) write(*,*) re,im write(*,*) log(0.) ! writes -Inf or error occurs write(*,*) log(-1.) ! writes -NaN or error occurs