ここで新しく登場した重要な事項のみを列挙する。
dimension a1(natomx,3),a2(natomx,3),a3(natomx,3)
大きさnatomxおよび3の大きさの2次元配列a1,a2,a3の3つを使用することを宣言す
ると同時にその配列の大きさを指定する。ここでは、その大きさは1000および3に
なっており、あらかじめ大きさが確定している必要がある。natomxの代わりに、
1000と書いても同じであるが、このようにしておけば、変更する場合に便利である。
FORTRANでは、配列a1のデータは、
a1(1,1)
a1(2,1)
a1(3,1)
a1(4,1)
.
.
a1(natomx,1)
a1(1,2)
a1(2,1)
a1(3,1)
.
.
a1(natomx,natomx)
といった順に並んでいる。通常、a1(natomx+1,1)を参照すると
、a1(1,2)が得られる。
if( natom .gt. natomx )then
write(06,*)' error #### natom > natomx ####'
stop
endif
read(15,*)(a1(i,1),a1(i,2),a1(i,3),i=1,natom)
粒子の初期座標を読み込んでいる。この例は 15番(装置番号15)のファイルから
a1(i,1),a1(i,2),a1(i,3)に左から
c
c coordinates
c
do i=1,natom
a3(i,1)=2.0d0*a2(i,1)-a1(i,1)+f(i,1)*dt**2/am
a3(i,2)=2.0d0*a2(i,2)-a1(i,2)+f(i,2)*dt**2/am
a3(i,3)=2.0d0*a2(i,3)-a1(i,3)+f(i,3)*dt**2/am
enddo
c
c velocities
c
do i=1,natom
b1(i,1)=(a3(i,1)-a1(i,1))/(2.0d0*dt)
b1(i,2)=(a3(i,2)-a1(i,2))/(2.0d0*dt)
b1(i,3)=(a3(i,3)-a1(i,3))/(2.0d0*dt)
enddo
c
粒子の座標についても出力するのがよいが、可視化のために
新しいソフトウエアが必要なので、この授業では行わない。
XcrysDenと呼ばれるソフトウエアが広く使われている。