支持情况与编译器
快速上手示例
module mymodule
implicit none
integer, parameter :: myint = 10
real, dimension(10) :: myarray
contains
subroutine myssubroutine(a, b)
integer, intent(in) :: a
real, intent(inout) :: b(:)
b = b + a
end subroutine myssubroutine
end module mymodule
program main
use mymodule
implicit none
call myssubroutine(myint, myarray)
print *, myarray(1:5)
end program main
gfortran -o main main.f90 mymodule.f90
./main
上述示例展示了模块定义、use 引入以及直接编译链接的完整流程。
多文件工程与编译方式
gfortran -o main main.f90 mymodule.f90
gfortran -c mymodule.f90 # 生成 mymodule.o
gfortran -c main.f90 # 生成 main.o
gfortran main.o mymodule.o -o main
FC = gfortran
OBJ = main.o mymodule.o
main: $(OBJ)
$(FC) -o main $(OBJ)
%.o: %.f90
$(FC) -c $<
clean:
rm -f *.o main
以上多文件与分步构建方式与 Linux/Fortran 的常规工程实践一致,可显著提升可维护性与编译效率。
实践建议