質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.59%

Fortran コンパイルエラーアドバイス

受付中

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 973

aglioitaliano

score 22

コンパイルがうまくいきません
今の研究室ではfortran95のみPCに入れているのですが、fortran77の形式で書かれているコードをコンパイルしたいです。
しかし、
$ f95 -o lj2d.exe lj2d.f
にてコンパイルを実行すると、アプリケーションは作成されるのですが、実行を押すと一瞬でウィンドウが閉じてしまいます。
自分でいろいろ調べてfortranの形式の違いなどが影響しているのかもしれないとおもい、コンパイルには、
1.$ f95 -o lj2d.exe lj2d.f
2.$ f95 -o lj2d.exe lj2d.f90

  1. $ f77 -o lj2d.exe lj2d.f
  2. $ -f77 -o lj2d.exe lj2d.f
  3. $ gfortran -o lj2d.exe lj2d.f
  4. $ g77 -o lj2d.exe lj2d.f
    などを使ってみたのですがだめでした。

ちなみにlj2d.fファイルの内容は以下のようになります。
出来るだけ早くアドバイスいただけますと助かります。何卒宜しくお願いいたします。


C                              Main Program
PROGRAM LJ2D
IMPLICIT REAL*8  (A-H,O-Z)
IMPLICIT INTEGER (I-N)
PARAMETER (NSP=100)
COMMON /CMXYZ /X(NSP), Y(NSP), DX(NSP), DY(NSP)
COMMON /CMXYZP/XP(NSP),YP(NSP),DXP(NSP),DYP(NSP)
COMMON /CMXYZM/XM(NSP),YM(NSP)
COMMON /CMVXYZ/VX(NSP),VY(NSP)
COMMON /CMFXYZ/FX(NSP),FY(NSP)
COMMON /CMCNST/AVOGAD,BOLTZ,PI
COMMON /CMPHYS/EPS,SIG,TMASS,DT,RCUT
COMMON /CMCELL/CLX,CLY,CLX2,CLY2
COMMON /CMCTRL/NSTEP,N,NTSCAL,NTSSTP,ISEED,ITSCAL
COMMON /CMMOTN/EK,EP,H,TREF,TMP,PRS,VIR,TMPSUM
C
C     Open files with names
OPEN(UNIT=7, FILE='XYOLD.DAT',STATUS='OLD',FORM='FORMATTED')
OPEN(UNIT=8, FILE='VXYOLD.DAT',STATUS='OLD',FORM='FORMATTED')
OPEN(UNIT=9, FILE='F09SIM.DAT',STATUS='NEW',FORM='FORMATTED')
OPEN(UNIT=10,FILE='F10PRO.DAT',STATUS='NEW',FORM='FORMATTED')
OPEN(UNIT=11,FILE='F11XY.DAT',STATUS='NEW',FORM='FORMATTED')
OPEN(UNIT=12,FILE='F12VXY.DAT',STATUS='NEW',FORM='FORMATTED')
C
CALL START
C
C     Set initial configuration
CALL INCONF
C
C     Molecular dynamics calculation
DO 10000 N=0,NSTEP
C
C       Forces at N-th step
CALL FORCE
C
C       Coordinates at (N+1)-th step
C       Velocities at N-th step
CALL VERLET
C
C       Physical values at N-th step
CALL OUTPUT(0)
C
10000 CONTINUE
C
C     Average of physical values
CHS   CALL OUTPUT(1)
C
C     Close files
CLOSE(UNIT=7)
CLOSE(UNIT=8)
CLOSE(UNIT=9)
CLOSE(UNIT=10)
CLOSE(UNIT=11)
CLOSE(UNIT=12)
C
STOP
END

C  *===================================================================*
C        Preparation for Start of Molecular Dynamics Simulation
SUBROUTINE START
IMPLICIT REAL*8  (A-H,O-Z)
IMPLICIT INTEGER (I-N)
PARAMETER (NSP=100)
COMMON /CMXYZ /X(NSP), Y(NSP), DX(NSP), DY(NSP)
COMMON /CMXYZP/XP(NSP),YP(NSP),DXP(NSP),DYP(NSP)
COMMON /CMXYZM/XM(NSP),YM(NSP)
COMMON /CMVXYZ/VX(NSP),VY(NSP)
COMMON /CMFXYZ/FX(NSP),FY(NSP)
COMMON /CMCNST/AVOGAD,BOLTZ,PI
COMMON /CMPHYS/EPS,SIG,TMASS,DT,RCUT
COMMON /CMCELL/CLX,CLY,CLX2,CLY2
COMMON /CMCTRL/NSTEP,N,NTSCAL,NTSSTP,ISEED,ITSCAL
COMMON /CMMOTN/EK,EP,H,TREF,TMP,PRS,VIR,TMPSUM
C
C     Universal constants
AVOGAD=6.0221367D+23
BOLTZ=1.380658D-23
PI=4.D0*DATAN(1.D0)
C     Parameter for argon
TMASSI=40.D0
EPSI=120.D0
SIG=3.4D-10
DT=10.D-15
C
WRITE(*,*) '*---------------------------------------------------*'
WRITE(*,*) '*   Input X-Length of Unit Cell [sigma]             *'
WRITE(*,*) '*---------------------------------------------------*'
READ (*,*) CLXI
WRITE(*,*) '*---------------------------------------------------*'
WRITE(*,*) '*   Input Y-Length of Unit Cell [sigma]             *'
WRITE(*,*) '*---------------------------------------------------*'
READ (*,*) CLYI
WRITE(*,*) '*---------------------------------------------------*'
WRITE(*,*) '*   Input Cut-Off Distance [sigma]                  *'
WRITE(*,*) '*---------------------------------------------------*'
READ (*,*) RCUTI
IF(RCUTI .GE. MIN(CLXI,CLYI)/2.D0) THEN
WRITE(*,*) '!!! Error: Rc < min(Lx,Ly)/2 must be satisfied. !!!'
STOP
END IF
WRITE(*,*) '*---------------------------------------------------*'
WRITE(*,*) '*   Input Temperature [K]                           *'
WRITE(*,*) '*---------------------------------------------------*'
READ (*,*) TREF
WRITE(*,*) '*---------------------------------------------------*'
WRITE(*,*) '*   Temperature Scaling: No (0) or Yes (100,200,)   *'
WRITE(*,*) '*   If Yes, this gives interval steps of scaling.   *'
WRITE(*,*) '*---------------------------------------------------*'
READ (*,*) NTSCAL
IF(NTSCAL .LT. 0) THEN
WRITE(*,*) '!!! Error: Input integer not less than 0.       !!!'
STOP
END IF
IF(NTSCAL .EQ. 0) GOTO 10000
WRITE(*,*) '*---------------------------------------------------*'
WRITE(*,*) '*   Input Final Step of Temp. Scaling [-]           *'
WRITE(*,*) '*---------------------------------------------------*'
READ (*,*) NTSSTP
10000 WRITE(*,*) '*---------------------------------------------------*'
WRITE(*,*) '*   Input Number of Total Steps for Simulation [-]  *'
WRITE(*,*) '*---------------------------------------------------*'
READ (*,*) NSTEP
C
C     Coversion for MKS units
TMASS=(TMASSI*1.D-3)/AVOGAD
EPS=EPSI*BOLTZ
CLX=CLXI*SIG
CLY=CLYI*SIG
RCUT=RCUTI*SIG
C     Set convenient constants
CLX2=CLX*.5D0
CLY2=CLY*.5D0
VOLM=(CLX*CLY)/DBLE(NSP)*AVOGAD
C     Set accumulators zero
TMPSUM=0.D0
ITSCAL=0
C
C     Print simulation conditions
WRITE(9,20000) NSP
WRITE(9,20001) CLXI
WRITE(9,20002) CLYI
WRITE(9,20003) RCUTI
WRITE(9,*) ' '
WRITE(9,20004) TREF
WRITE(9,20005) VOLM
WRITE(9,20009) TREF/EPSI
WRITE(9,20010) DBLE(NSP)/(CLXI*CLYI)
WRITE(9,*) ' '
WRITE(9,20006) NSTEP
IF(NTSCAL .GT. 0) THEN
WRITE(9,20007) NTSCAL,NTSSTP
ELSE
WRITE(9,20008) 
END IF
20000 FORMAT('Number of paritcles  = ',I7)
20001 FORMAT('Cell Length  Lx      = ',E15.7,' [sigma]')
20002 FORMAT('Cell Length  Ly      = ',E15.7,' [sigma]')
20003 FORMAT('Cut-Off Distance     = ',E15.7,' [sigma]')
20004 FORMAT('Reference Temp.      = ',E15.7,' [K]',E15.7)
20005 FORMAT('Molar Volume         = ',E15.7,' [m**2/mol]')
20006 FORMAT('Total Steps          = ',I7)
20007 FORMAT('Temp. Scaling: every ',I4,'-th step until ',I7,' steps')
20008 FORMAT('No Temp. Scaling')
20009 FORMAT('Reference Temp.      = ',F10.5,' [LJ unit]')
20010 FORMAT('Number Density       = ',F10.5,' [LJ unit]')

C
RETURN
END

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • 退会済みユーザー

    2016/11/08 15:20

    こちらの質問が他のユーザから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました
    「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。

回答 1

+1

ここはコードを提示して移行を丸投げする掲示板ではありません。
FORTRAN 77 の互換性: Fortran 95 への移行 を参考にチェックされては?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/11/08 15:40

    そのページはすでにチェックしました。fortran95のコンパイラでコンパイル出来るはずなのですがうまくいきません。

    キャンセル

  • 2016/11/08 16:14

    FORTRANはたぶん使ったことがないので、デバッガが使えるなら、ステップ(1行毎に)実行しては?
    デバッガが使えないなら、ここは実行できたよ、って意味で怪しそうな場所にWRITE文を入れてみて、落ちた場所を探ってみては?

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.59%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る