2014-03-05 5 views
0

Почему этот фрагмент кода не работает и что является альтернативой?Объявление переменных в Fortran

module find_integers_module 
    implicit none 
    contains 
    integer function function1(r) result(rnext) 
    implicit none 
    integer,intent(in) :: r  
    integer :: k = r  
    rnext = -1   
    end function function1  
end module 

ответ

4

Фортран стандарт требует, чтобы RHS из инициализации в integer :: k = r быть постоянным выражением; вы можете подумать об этом как , который можно вычислить во время компиляции, хотя это не так, как это ставит стандарт.

Обходной прост:

integer :: k 
k = r 
+1

Не забудьте СОХРАНИТЬ. – IanH

+1

Я забыл 'save'. –

Смежные вопросы