Если приспичила эмуляция, то как временное решение - пихнуть реал в структуру

type _real
struct
x : real;
end_struct
end_type

причем синоним
type
_real : real;
end_type
не катит


var
number2 : _real;

function3
var_in_out
param : _real;
---
param.x := param.x + 1;
...

вызов:
...
function3(number2);
...


А ввиду того что размер структуры совпадает с размером поля, то для function2 можно передать и adr(number) и adr(number.x) - без разницы