Fortran の固有値問題に取り組んでいます。Lapack を使用して問題を解決し、固有値と固有ベクトルを取得しました。これは、201x101 の波数、対称性による波空間の半分のみ、および大きなドメイン (海洋内) の各グリッドポイントに対して行われます。各グリッドポイントの最大固有値を探しています。固有値の 201x101 マトリックスで絶対最大値を選択するだけでなく、波空間で方位角平均を実行し、最大平均を選択したいと考えています。私はこれを行う方法を見るのに苦労しています。
最初は次のようにコーディングしました。
! 波数ドメイン
dx=4000.
pi = 4.*atan(1.)
DO m=1,ktot
kx(m) = -(2.*pi)/(dx) + ((m-1)*2.*pi)/(100.*dx)
END DO
DO l=1,ltot
ly(l)= ((l-1)*2.*pi)/(100.*dx)
END DO
!半径距離
DO m=1,ktot
DO l=1,ltot
raddist(m,l)=sqrt(kx(m)**2+ly(l)**2)
END DO
END DO
! 方位平均 (ωi は私が見つけた固有値、ktot*ltot の大きな行列)
DO i=1,ltot-1
ind=(raddist(:,i).GE.ly(i).AND.raddist(:,i).LT.ly(i+1))
length=count(ind)
WHERE (ind) average_omegai = sum(omegai)/length
END DO
しかし、ly(i) と ly(i+1) の間の k 方向のすべての波数の水平方向のチャンクを合計しているようです。中間のすべてのオメガ値を合計するために、波空間で半円を作成する必要があります。誰でもこれを手伝ってもらえますか?前もって感謝します!!