The main program contains the declaration
REAL LOG2
which tells the Fortran compiler the type of value that is returned by the LOG2 function. Such a declaration is not required for intrinsics. Except for this declaration, we can use user-defined functions exactly like intrinsic functions.