次のコードは、Linuxシステムでpgf90でコンパイルするとセグメンテーションエラーが発生しますが、Windows上でインテルVisual FORTRANを使用すると正常に実行されます。Fortranでサブルーチンを呼び出す(セグメンテーションフォールト)
program main
implicit none
integer:: a(3), b(3) ,c(3)
a=[3, 4, 5]
b=[1, 2, 3]
call sub(a,b,c)
write(*,*)'a+b = ',c
end program main
subroutine sub(a,b,c)
implicit none
integer, intent(in)::a(:),b(:)
integer, intent(out)::c(:)
c=a+b
end subroutine sub
これに関する説明はありますか?
整数:: a(3)、b(3)、c(6)ではいけませんか? –
segfaultはどこにありますか?モジュールを使用できますか? – haraldkl
@JulienMay:そうは思わない。サイズ3の配列を2つ追加すると、サイズ6ではなくサイズ3の配列が返されます。 – eriktous