OPTIONAL
Fortran 95 の関数とサブルーチンのステートメントに問題があります。現在、Silverfrost の Plato とその FTN95 コンパイラ ("Release Win32" モード) を使用しています。私が書いているより複雑なプログラムで OPTIONAL ステートメントを実装しようとした後、それをテストするための非常に単純なプログラムを作成しました。コードは次のとおりです。
program TEST
implicit none
integer :: a=1, b=2
call Z(a,b)
call Z(a)
call Z(b)
end program TEST
subroutine Z(x,y)
implicit none
integer :: x
integer, optional :: y
if (present(y)) then
write(*,*) x, y
else
write(*,*) x
endif
end subroutine Z
画面に次の結果が表示されることを期待していました。
1 2
1
2
コードはコンパイルされますが、「SUBROUTINE Z が呼び出された引数が少なすぎます」という警告 (673) が表示されます。それを実行した後、私は自分の画面に行きます:
1 2
その後、「アクセス違反」エラー メッセージが表示されます。誰かがここで何が悪いのか理解できますか?
どうもありがとう!ジルベルト