0

FORTRAN 77 プログラム コードがあります。Windows で Fortran Power Station 4.0 を使用しています。これは非常に長い有限要素法コードです。

コードは次のとおりです。


1 メインプログラムは

PARAMETER (HLENGTH=600.0,VLENGTH=600.0,NHELE=6,NVELE=6,NTYPE=1) 
PARAMETER (DENSITY=2.78E-6,POISON=0.34,THICK=1.0,EMODULE=6.87E4)
PARAMETER (NTOTALNODE=(NHELE+1)*(NVELE+1))                  
PARAMETER (NHNODE=NHELE+1,NVNODE=NVELE+1)                   
PARAMETER (MK=(NTOTALNODE-2*NHNODE-2*(NVNODE-2))*5)      
PARAMETER (DELTAH=(HLENGTH+0.0)/(NHELE+0.0))
PARAMETER (DELTAV=(VLENGTH+0.0)/(NVELE+0.0)) 


DIMENSION NODEMATRIX(NTOTALELE,4)                           
REAL*8    STIFFMATRIX(20,20),MASSMATRIX(20,20)
REAL*8    STIFFMATRIXS(20,20),MASSMATRIXS(20,20)
DIMENSION NODEROWT(4),NODEROWT2(20)     
DIMENSION NM(NVNODE,NHNODE)                                                
REAL*8 GSM(NTOTALNODE*5,NTOTALNODE*5),NCARRIER(MK),
      &GMM(NTOTALNODE*5,NTOTALNODE*5),AA(MK,MK),BB(MK,MK)


CALL STIFFMAT(STIFFMATRIX,DELTAV,DELTAH,THICK,EMODULE)
CALL MASSMAT(MASSMATRIX,DELTAV,DELTAH,THICK,DENSITY)
CALL STIFFMATS(STIFFMATRIXS,DELTAV,DELTAH)
CALL MASSMATS(MASSMATRIXS,DELTAV,DELTAH,DENSITY)
.
.
.
. etc

2 - サブルーチンは次のように開始されます。

SUBROUTINE STIFFMAT(STIFFMATRIX,DELTAV,DELTAH,THICK,EMODULE)

   REAL*8 STIFFMATRIX(20,20),B(6,20),BT(20,6),D(6,6)

   REAL*8 CC(5),ZETAM(5),ETAM(5),CA,CB,ZETA,ETA,SUM,SUM2,SUM3

   .
   .
   .etc



SUBROUTINE MASSMAT(MASSMATRIX,DELTAV,DELTAH,THICK,DENSITY)

   REAL*8 MASSMATRIX(20,20),B(5,20),BT(20,5),D(5,5)

   REAL*8 CC(5),ZETAM(5),ETAM(5),CA,CB,ZETA,ETA,SUM,SUM2,SUM3

   .
   .
   .etc



SUBROUTINE MASSMATS(MASSMATRIXS,DELTAV,DELTAH,DENSITY)

   REAL*8 MASSMATRIXS(20,20),B(5,20),BT(20,5),D(5,5),IS,JS,AS

   REAL*8 CC(5),ZETAM(5),CA,ZETA,ETA,SUM,SUM2,SUM3

   .
   .
   .etc



SUBROUTINE STIFFMATS(STIFFMATRIXS,DELTAV,DELTAH)

   REAL*8 STIFFMATRIXS(20,20),B(3,20),BT(20,3),D(3,3)

   REAL*8 CC(5),ZETAM(5),CA,ZETA,ETA,SUM,SUM2,SUM3

   .
   .
   .etc

コンパイル コマンドを押すと、次のメッセージが表示されます。

致命的なエラー F1002: パス 2 でコンパイラがヒープ領域を使い果たしました

問題をグーグルで調べたところ、次の解決策が見つかりました

しかし、私は解決策を理解していませんでした!

Ziオプションの変更方法がわかりません。どこで確認できますか?

私のコードは良くて明確だと思います。この問題を解決するための提案はありますか?

4

4 に答える 4

1

インターネットで提供できる支援は限られています。また、ドキュメントが不足している古い製品 (MS Fortran Power Station) で実行できることは限られています。いくつかの提案があります。最新のコンパイラを入手してください。コンピューターの経験があり、MS Windows を使用しているので、Intel Visual Fortran Compiler for Windows などの商用製品を使用することをお勧めします。

教育割引が適用される場合があります。おそらく試用版のダウンロード (時間制限のあるデモ) があります。それでも問題が解決しない場合 (プログラムのインストール、コンパイルなど)、コンピューターに詳しい学部生にお金を払って、数時間手伝ってもらいましょう。また、Fortran 95 を学習することもお勧めします。FORTRAN 77 から Fortran 95 へは互換性があるため、徐々に切り替えることができます。Fortran 95 は、より機能的な言語です。また、コンパイラーがプログラマーのミスを見つけやすくする機能も備えているため、開発プロセスが高速化されます。

于 2010-05-22T04:51:28.807 に答える
1

プロジェクト ワークスペースがネストされたフォルダーに配置されているためパスが大きくなる場合、powerstation コンパイラーはこのエラーを表示します。これに対する解決策は、プロジェクト ワークスペースのパスを c ドライブの近くに配置することで、たとえばドキュメント フォルダーに配置することです。

于 2011-10-30T20:58:31.577 に答える
0

あなたが提供したリンクから:

これらの問題を解決するには、次の 3 つの方法があります。

  • 構造を並べ替えます。小さなアイテムを最初に置くと、多くの場合、両方のエラーが解消されます。-また-

  • 1 文字の長さのメンバー名を使用してください。-また-

  • -Zi なしで再コンパイルします。

-Zi パラメーターを使用してコンパイルしている場合は、パラメーターをオフにします。

それでもうまくいかない場合は、構造を並べ替えます。これは、より小さな個別の INTEGER、FLOAT などの要素をプログラムの前に配置し、その後に配列宣言を配置することを意味します。

それでもうまくいかない場合は、プログラムが Fortran power station に対して大きすぎます。

于 2010-05-20T19:35:42.793 に答える