Некоторые дополнительные замечания.Вы можете поместить функцию внутри подпрограммы, если эта функция используется только этой подпрограммой.В этом случае вложение функций является полезной концепцией.
Если вы хотите скрыть некоторые функции в модуле для внешней программы (навсегда), вы объявляете эти скрытые функции как частные в вашем модуле.
т. Е.
module useful
public y,x ! shall be accessible by "use useful" statement in external program
private ! anything else declared in the module is hidden for external program
integer, parameter :: N=2
!...
contains
subroutine y(n1)
end subroutine y
function x(n1)
end function x
end module useful
, используя общедоступные и приватные, поможет вам избежать ошибок с загрязнением вашего пространства имен, используя выражения
use useful, only: y,x
use useful2, only: x,y,z
use useful3, only: x2,x3,x4