0

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 の間に何かループがありますか?doenddo

4

1 に答える 1