>せめて濡/=0 のGベクトルが0以外の時を全部足す方法が知りたいです。 FORTRANスレ的には,これは3次元逆格子ベクトルに関する和なので, もっとも素朴には3重のDO LOOPを回せばよいとい答えになる. DO n1 = -n, n DO n2 = -n, n DO n2 = -n, n IF(n1==0 .and. n2==0 .and. n3==0) CYCLE 云々 END DO END DO END DO 実際は結晶の対象性があるので,このループの1/8〜1/24位回せばいいはず.