makefile模块在fortran 90中编译gfortran

时间:2013-12-04 14:32:37

标签: module makefile fortran90

我尝试使用makefile将一些模块链接到主程序。

我有一个名为SimParam_mod.f90的模块,其中包含:

MODULE simParam
  integer, parameter:: yDim = 80
  integer, parameter:: xDim = 80

  integer, parameter:: iterper = 100
  integer, parameter:: tMax = 2000
END MODULE simParam

使用make选项编译后:

MODDIR =../module 
CFLAGS=-I$(IDIR)
OBJDIR=obj
LIBDIR =../lib

LIBS=-lm

CF=gfortran
CFLAGS=-I.

OBJ = main.o D2Q9Const_mod.o SimParam_mod.o 


%.o: %.f90
        $(CF) -c -O3 -o $@ $< -I$(MODDIR)

run: $(OBJ)
    $(CF) -o $@ $^ $(CFLAGS)

不会更新为 iterper tMax 存储的值。我保存正确,用gfortran -c编译的模块没有看到任何问题,并创建.mod文件。

我检查了.mod文件,它们存储的值不是module.f90中指定的值,iterper = 1和tMax = 20,分别应该是100和2000。我所能说的就是我真的不知道如何使用make指令,并且这些存储的错误值是我之前定义的以前的值..有些东西我想念..

提前感谢您的帮助!

Puigar

1 个答案:

答案 0 :(得分:0)

我只需添加,因为Mark在makefile中添加了一个命令来删除.o和.mod文件并重新编译程序。在这种情况下效果很好。

只需添加:     rm -f * .o

感谢所有对该主题感兴趣的人!

Puigar