Я пытаюсь сделать что-то реальное просто, просто вызовите функцию, которая определена в модуле, но не работает, и я не могу понять, почему.Вызов функции из модуля
это то, что я делаю, чтобы скомпилировать его с помощью Linux
gfortran -o testingMOD testMod.f90 doubleMod.f90
это ошибка
testMod.f90:3.4:
use doubleMod
1
testMod.f90:8.15:
call double(n)
2
Error: 'double' at (1) has a type, which is not consistent with the CALL at (2)
здесь код модуль:
module doubleMod
implicit none
contains
function double (n)
implicit none
integer :: n, double
double = 2*n
write(*,*) double
end function double
end module doubleMod
файл, вызывающий его:
program testMod
use doubleMod
implicit none
integer :: n = 3
call double(n)
end program testMod
'call' для подпрограмм, а не функции. – francescalus
Попробуйте заменить 'call double (n)' на 'write (*, *) double (n)' и посмотреть, что произойдет. –
Рекурсивный ввод-вывод может быть проблематичным, однако, @HighPerformanceMark. Итак, возможно, «n = double (n)». – francescalus