Fortran:在“头模块”中声明函数和子例程

时间:2013-08-22 15:20:15

标签: module compilation makefile fortran

如何在单独的模块声明功能子例程,并在相应的非标头模块中初始化它?

我正在使用 make 进行编译:

# All modules
OBJS        := $(BINDIR)/physics.o $(BINDIR)/particles.o

# Build rules
$(BINDIR)/%.o: $(VPATH)/%.f | $(BINDIR)
$(FC) $(FFLAGS) -c $^ -o $@

$(BINDIR)/%.mod: 

runner: $(OBJS)

..问题是 physics.f 依赖于 particles.f 中的子程序,反之亦然。所以我不能只改变这些文件的编译顺序。

我收到了这样的错误:

src/physics.f:105.23:

      use particles
                   1
Fatal Error: Can't open module file 'particles.mod' for reading at (1): No such file or directory
make: *** [bin/physics.o] Error 1

1 个答案:

答案 0 :(得分:0)

虽然我不清楚你打算做什么,但在我看来,你正在寻找submodules。 不幸的是,他们目前没有被编译器广泛支持。