使用GFortran在同一文件中编译模块和主程序?

时间:2019-05-17 16:57:26

标签: compilation fortran gfortran

我是fortran的新手,我有这个fortran90程序,我正在尝试在模块和main位于同一文件main.f90中的位置运行:

module real_precision
    implicit none

    integer, parameter :: sp = selected_real_kind(1)
    integer, parameter :: dp = selected_real_kind(15)

end module real_precision

program main_program

    use real_precision

    implicit none

    real(sp) :: a = 1.0_sp
    real(dp) :: b = 1.0_dp

    print *, a
    print *, b

end program main_program

我一次编译它:

gfortran main.f90 -o main.x

然后运行它:

./main.x

但是我对模块进行了更改并保存了,但是以相同的方式编译和运行它提供了相同的输出,这使我认为需要编译模块?如何编译它们在同一文件中的两个位置?我可以将模块设为单独的文件,但我想知道如何用这种方式!

1 个答案:

答案 0 :(得分:2)

selected_real_kind(p)返回精度至少为 p位(如果存在)的实数的种类参数。它没有给出具有精确度的实数的实参。

如果编译器的实数精度不低于q,则selected _real_kind(q)selected_real_kind(q-1)将不会返回不同种类的参数。