main.f90
program main
use func_m
implicit none
real(fp):: a(5)
call sub(a)
write(*,*) a
end program main
fun.f90
module func_m
implicit none
#ifdef DOUBLE_PRECISION
integer,parameter :: fp = kind(1.0d0)
#else
integer,parameter :: fp = kind(1.0)
#endif
contains
subroutine sub(a)
real(fp):: a(:)
a = 10.0_fp
end subroutine
end module
makefile
#!/usr/bin/bash
SRC = fun.f90
SRC:= $(SRC) main.f90
OBJ = $(SRC:.f90=.o)
FC = gfortran
FF = -cpp -O0 -g -fbacktrace
DF = -DDOUBLE_PRECISION
EXE = myPro
ALL : $(OBJ)
$(FC) $(FF) $(DF) -o $(EXE) $(OBJ)
$(OBJ):%.o:%.f90
$(FC) $(FF) $(DF) -c $< -o $@
.PONHY: clean
clean :
rm -rf *.mod *.o $(EXE)
Screenshot_2018-11-06_08-47-22.png (80.47 KB, 下载次数: 281)
演示
liudy02 发表于 2018-11-14 10:43
额,不知道楼主这里为何会这么顺利,实际在运用中的话有个问题是
会提示.mod文件找不到,但是事实上是.mod ...
liudy02 发表于 2018-11-14 10:43
额,不知道楼主这里为何会这么顺利,实际在运用中的话有个问题是
会提示.mod文件找不到,但是事实上是.mod ...
Jackdaw 发表于 2018-11-18 10:18
在编译阶段,生成目标文件或者可执行文件,如果用到了module,会同时生成模块描述文件,也就是 nameOfModu ...
静待花开 发表于 2023-8-4 19:38
这样的话,不是每个module都要写一行这种代码?我有几十个module……
欢迎光临 Fortran Coder (http://bbs.fcode.cn/) | Powered by Discuz! X3.2 |