Я пытаюсь понять, как передать некоторые переменные со значениями, подпрограмму, из другой подпрограммы.Передача параметров подпрограмме в Fortran
У меня есть код:
program pg
call sub()
end
subroutine sub()
character :: P(12,12)
character :: D(20), N(26), userInput
integer :: A,B
A = 5
B = 2
userInput = "hello"
call test(P,D,N,userInput,A,B)
end subroutine
subroutine test(P,D,N,userInput,A,B)
end subroutine test
Но это дает мне предупреждение:
Warning: Type mismatch in argument 'p' at (1); passed CHARACTER(1) to REAL(4)
Я не совсем уверен, о том, как избавиться от этого предупреждения, не говоря уже, если вызов подпрограммы правильный (синтаксис мудрый). Любая помощь приветствуется.
Вы должны выполнить подпрограмму 'test'. Как бы то ни было, вы не указали типы аргументов, поэтому используются правила типизации по умолчанию. Похоже, ваш компилятор проверяет интерфейсы и обнаруживает, что они не совпадают. – francescalus
Я довольно новичок в fortran, как бы объявить здесь типы аргументов? Я действительно не знаю, как это сделать. – werrer
Это, возможно, слишком велико, чтобы ответить здесь, но может оказаться полезным [документация] (http://stackoverflow.com/documentation/fortran/1106/procedures-functions-and-subroutines#t=20170206030408357924). – francescalus