Он не входит в подпрограмму sub, поскольку sub не может вызывать подпрограммы или использовать переменные из mod, потому что sub
не является частью программы main
.
Рассмотрим это:
program main
external sub
call sub
end program main
subroutine sub
use mod
! code here calls subroutines in mod
end subroutine sub
Здесь вы можете использовать переменные и mod
, потому что sub
явно использует mod
.
Другой пример, где sub
является внутренней процедурой main
:
program main
use mod
call sub
contains
subroutine sub
! code here calls subroutines in mod
end subroutine sub
end program main
Также в этом случае вы можете использовать вещи из mod
в sub
, потому что все из main
находится в области видимости в sub
.
Наконец, в этом случае mod
не используется по объему, он похож на исходный случай.
program main
use mod
use mod2
call sub
end program main
module mod2
contains
subroutine sub
! code here calls subroutines in mod
end subroutine sub
end module mod2
Другая проблема - это неопределение переменных модуля, когда они выходят за рамки. Fortran 2008 решил это, сделав все модульные переменные неявно save
.
Откройте оболочку и попробуйте нажать Ctrl-v, а затем клавишу, которую хотите привязать (например, Home). Это последовательность клавиш, которую вы должны использовать с привязкой.
My bindings for Home/End (начало/окончание строки) on Snow Leopard:
bindkey '^[[H' beginning-of-line
bindkey '^[[F' end-of-line
Still trying to bind cmd-left though ...