Модуль компиляции и основная программа в одном файле с помощью GFortran? - PullRequest
0 голосов
/ 17 мая 2019

Я новичок в fortran, и у меня есть эта программа fortran90, которую я пытаюсь запустить, когда модуль и основной файл находятся в одном файле с именем 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 Ответ

2 голосов
/ 17 мая 2019

selected_real_kind(p) возвращает параметр типа real с точностью до не менее p цифр (если таковой существует). Он не дает доброго параметра для реального с такой точностью.

Если у вашего компилятора нет действительного с точностью менее q, то selected _real_kind(q) и selected_real_kind(q-1) не будут возвращать параметры другого типа.

...