我有一个名为“mainmodule.f08”的模块和两个模块“module1.f08”和“module2.f08”。在“mainmodule.f08”中,我有:
MODULE mainmodule
use module1
use module2
END MODULE mainmodule
我只能在我的程序中使用“module1”和“module2”use mainmodule
中的程序。
使用子模块可以做同样的事情,但这要复杂得多,因为我需要在“mainmodule”上重新定义“module1”和“module2”中的所有程序作为接口,将“module1”和“module2”视为子模块:
MODULE mainmodule
INTERFACE
! Same subroutine from module1.
subroutine submod1(x)
integer, intent(in) :: x
end subroutine submod1
! Same function from module2.
function funcmod2(x) result(y)
integer, intent(in) :: x
integer :: y
end function funcmod2
END INTERFACE
END MODULE mainmodule
如果两者都以相同的方式工作,那么两种模块的使用模式有什么区别?