##
Changing Intrinsic Functions which Convert

A small number of Fortran intrinsic functions have an optional final argument which specifies the kind of the result.
Thus, for example, if n is an integer, REAL(n,4) returns a real
value of kind 4, which is usually a 4-byte real. The expression REAL(n,8) returns a real of kind 8,
usually an 8-byte real.

The author has not found a reliable way to implement a user-written function which returns a value where the kind depends
on the function arguments. The engineering tool is therefore used to replace these function invocations, either using
the obsolescent intrinsics DBLE and SNGL or by a
two stage process. For example, where r8 is an emulated 8-byte real variable, and
i8 is an 8-byte integer variable, the code:

r8 = REAL(i8,8)

is replaced by

r8 = DBLE(i8)

The code:

i8 = INT(r8,8)

is replaced by

i8 = INT(r8%value,8)