fortran で小さなアルゴリズムを実行しようとしています (残念ながら fortran プログラマーではありません) が、それが何をしているのかを理解する必要があります。
omega = 0.d0
s = 1.d0
i = 1
j = 2
k = 3
101 do iperm = 1, 3
omega = omega + s * a1 (i) * a2 (j) * a3 (k)
l = i
i = j
j = k
k = l
enddo
i = 2
j = 1
k = 3
s = - s
if (s.lt.0.d0) goto 101
omega = abs (omega) * alat**3
a1,a2,a3
ベクトル(それぞれ3つの要素、実数値、3次元空間のベクトルを表す)
s
は単位整数(交互に1または-1にすることができます)でありi,j,k
、整数ですがomega
(これはどのように到達したかを理解する必要があるものです)は浮動小数点です価値あるものですalat
。今何が起こっているのですか?特にそのiperm =1,3
部分は、ベクトルが作成されていますか?最初は iperm は派手な関数/ルーチンまたはイテレータかもしれないと思っていましたが、検索した結果、そうではないと思います.ipermの目的は何ですか? " " と " "iperm
の間に何かループがありますか?do
enddo