23 lines
669 B
Fortran
23 lines
669 B
Fortran
c { dg-do compile }
|
|
SUBROUTINE SWEEP
|
|
PARAMETER(MAXDIM=4,MAXVEC=4**3*8,MAXT=20)
|
|
REAL(KIND=8) B,W1,W2,BNORM,BINV,WT,W0,C1,C2,R1,R2
|
|
DIMENSION B(MAXVEC,0:3),W1(MAXVEC,0:3),W2(MAXVEC,0:3)
|
|
DIMENSION BNORM(MAXVEC),BINV(MAXVEC),WT(MAXVEC),W0(MAXVEC)
|
|
DIMENSION C1(MAXVEC),C2(MAXVEC),R1(MAXVEC),R2(MAXVEC)
|
|
DO 200 ILAT=1,2**IDIM
|
|
DO 200 I1=1,IDIM
|
|
DO 220 I2=1,IDIM
|
|
CALL INTACT(ILAT,I1,I1,W1)
|
|
220 CONTINUE
|
|
DO 310 IATT=1,IDIM
|
|
DO 311 I=1,100
|
|
WT(I)=ONE + C1(I)*LOG(EPS+R1(I))
|
|
IF( R2(I)**2 .LE. (ONE-WT(I)**2) )THEN
|
|
W0(I)=WT(I)
|
|
ENDIF
|
|
311 CONTINUE
|
|
310 CONTINUE
|
|
200 CONTINUE
|
|
END
|