クラッシュしているコードに取り組んでいます。コンパイルされたプログラムが変数の割り当てを解除しているときにクラッシュすることに気付きましたが、修正方法がわかりません。
コードを実行すると、Windows から次のようなポップアップが表示されます。
main.exe has stopped working.
Windows can check for a solution to the problem.
コンパイラはメッセージを表示しますProcess returned -1073740940 (0xC0000374) execution time : 1.171 s
以下にコードのサンプルを示します。
Subroutine PoissonCode()
Use Mesh
Implicit none
Real(8), Allocatable :: u(:,:),v(:,:),p(:,:)
Character(50) :: Nome
Allocate(u(0:Imax,0:jmax),v(0:Imax,0:jmax),p(0:Imax,0:jmax),fx(0:Imax,0:jmax),fy(0:Imax,0:jmax))
Allocate(xd(0:Imax),yd(0:Jmax))
........Code Here...............
Deallocate(u,v,p,fx,fy,xd,yd)
Deallocate(xd,yd)
End Subroutine PoissonCode
さらに調査するために、ここに完全なコードを置きます。また、Windows 7 x64 および Windows XP x86 で異なるバージョンの GFortran を使用してコードを実行しようとしましたが、成功しませんでした。
編集:
コードの正しい終わりは次のとおりです。
...
Deallocate(u,v,p,fx,fy)
Deallocate(xd,yd)
End Subroutine PoissonCode
アップデート:
コードを別のコンパイラ (Intel Visual Fortran) でテストしましたが、成功しませんでした。