Ссылаясь на стандарт Fortran 2008, Cl. 12.6.2.6 ENTRY заявление:
[...]
3 Если оператор ENTRY в функции подпрограммы, дополнительный функция определяется тем, что подпрограмма. Имя функции: имя записи, а имя ее переменной результата - имя-результат или имя входа, если не указано имя результата. [...] Если характеристики результата функции имени в операторе ENTRY такие же, как и характеристики результата функции, указанной в операторе FUNCTION , их результат переменных определить ту же переменную , хотя их имена не обязательно совпадают. В противном случае это хранилище , связанное и должно быть неизменным, нераспределяемыми скалярами, которые являются значениями по умолчанию integer, по умолчанию real, double precision real, default сложным или логическим по умолчанию.
Как я прочитал выделенный канал, что линия
myfunc2 = myfunc
действительно не требуется, поскольку MYFUNC
и MYFUNC2
оба являются скалярными целые числа одного и того же рода.
Поскольку ни result
задается либо функцией заявления, ни заявления входа, имя функции становится результатом имя. Это указано в Cl. 12.6.2.2 Функция подпрограмма
[...]
4 Если появляется РЕЗУЛЬТАТ, имя результата переменной функции является результат имя и все вхождения имени функции в инструкции выполнения в своей области относятся к самой функции. Если RESULT не отображается, имя переменной результата: имя-функции, а все вхождения имени функции в оператора выполнения в своей области являются ссылками на переменную . [...]
О единственном, чего не хватает в этом ответе, является: «Не используйте инструкцию' entry' ». – francescalus