コンパイルがうまくいきません
今の研究室ではfortran95のみPCに入れているのですが、fortran77の形式で書かれているコードをコンパイルしたいです。
しかし、
$ f95 -o lj2d.exe lj2d.f
にてコンパイルを実行すると、アプリケーションは作成されるのですが、実行を押すと一瞬でウィンドウが閉じてしまいます。
自分でいろいろ調べてfortranの形式の違いなどが影響しているのかもしれないとおもい、コンパイルには、
1.$ f95 -o lj2d.exe lj2d.f
2.$ f95 -o lj2d.exe lj2d.f90
3. $ f77 -o lj2d.exe lj2d.f
4. $ -f77 -o lj2d.exe lj2d.f
5. $ gfortran -o lj2d.exe lj2d.f
6. $ 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 REAL8 (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.D0DATAN(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=(TMASSI1.D-3)/AVOGAD
EPS=EPSIBOLTZ
CLX=CLXISIG
CLY=CLYISIG
RCUT=RCUTISIG
C Set convenient constants
CLX2=CLX*.5D0
CLY2=CLY*.5D0
VOLM=(CLXCLY)/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)/(CLXICLYI)
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
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/08 06:40
2016/11/08 07:14