Как вы проверяете значения в Fortran, как в Matlab? Например, в маленькой программе, почему она показывает c=0
в главном, когда она c=36
в подпрограмме testing
? Как вы делаете так c=36
в основной программе?Проверить значения локальных переменных в подпрограммах извне
Можете ли вы назвать значение c
каким-то образом? Я понимаю, что в основной программе переменная c
либо не определена, либо имеет значение 0
, но есть ли способ сохранить значение c
в подпрограмме, чтобы вы могли использовать ее снова в других подпрограммах, не вычисляя ее снова?
Когда программа достаточно велика, удобно проверять значения по мере их поступления.
program main
use test
implicit none
integer :: a,b,c
call testing(a,b)
write(*,*)'Test of c in main program',c
end program main
module test
implicit none
contains
subroutine testing(a,b)
integer :: a,b,c
a=2
b=3
c=(a*b)**a
write(*,*)'Value of c in subroutine',c
end subroutine testing
end module test
Вы спрашиваете «почему это значение переменной' c' в основной программе (которая не определена) не совпадает со значением переменной 'c' в подпрограмме ? "? – francescalus
Нет, больше похоже на то, как вы вызываете значение c из подпрограммы «тестирование», так что она становится 36 в основной программе. –
Посмотрите мой комментарий http://stackoverflow.com/questions/35604523/fortran-reusing-a-variable-in-different-subroutine#comment58893727_35604523 и комментарий @ VladimirF рядом с ним. –