﻿ CMPLX Function
 LF Fortran 95

CMPLX Function

Description

The CMPLX function uses REAL or INTEGER arguments to compose a result of type COMPLEX. It may also convert between different kinds of COMPLEX numbers, possibly resulting in a loss of precision.

```Syntax

CMPLX (x [, y] [, kind] )
```

Required Arguments

x is an INTENT(IN) scalar or array of type REAL, INTEGER, or COMPLEX.

Optional Arguments

y is INTENT(IN) and of type REAL or INTEGER. If x is of type COMPLEX, y cannot be present.

kind is a number which determines the kind of the result. It must be a scalar INTEGER expression that can be evaluated at compile time. To maintain portability, this argument should be the result of a KIND Function, or SELECTED_REAL_KIND Function.

Result

The result is of type COMPLEX.

If x is INTEGER or REAL, the value of the result is the complex number whose real part has the value of x, and whose imaginary part has the value of y. If y is absent, the imaginary part of the result is zero.

If x is COMPLEX, it is as if x and y were present with the values REAL(x), AIMAG(x)).

If kind is present, the result is of the kind specified by kind.

If kind is absent, the result is default kind.

```Example
real :: x=1.,y=1.
integer :: ix=1,iy=1
complex(kind(1.d0)) :: z=(1.d0,1.d0)
write(*,*) cmplx(x)    ! y assumed to be zero
write(*,*) cmplx(x,y)
write(*,*) cmplx(ix,iy,kind(1.d0))
write(*,*) cmplx(ix,y)
write(*,*) z, cmplx(z) ! precision is lost
```