C SUBROUTINE CONFIG(ITER) IMPLICIT DOUBLE PRECISION (A-H,O-Z) PARAMETER(MAXELE=15) COMMON /STUFF/ NAOS,ITYPE(30),GAMMA(30),NSITE(30), + NMOS,NORB(30),JORB(30,30),COEF(30,30),ISPIN(30), + NUP,NDOWN COMMON /C4/ NELEC,X(3,MAXELE),WTOT DIMENSION R(3) C DIMENSION THESE TO BE THE SAME AS M DIMENSION GK(64),GSUM(64),XNEW(3,MAXELE,64) DATA M/64/ C C TAKE THE UPSPIN LOCATIONS FROM XNFIND C WHICH USING SINGLE AVERAGED BIASED SELECTION BASED ON NUCLEI ONLY C SUM=0 DO K=1,M CALL XNFIND(X,WTOT1,NUP) DO IORB=1,NUP DO I=1,3 XNEW(I,IORB,K)=X(I,IORB) ENDDO ENDDO CALL WUP(DET) GK(K)=DET*DET SUM=SUM+DET*DET/WTOT1 GSUM(K)=SUM ENDDO C C PICK A RANDOM NUMBER AND FIND THE FINAL X(IORB) USING IT C RAN1=RNDMF(0.0) RAN=SUM*RAN1 CALL LOCATE(GSUM,M,RAN,J) DO IORB=1,NUP X(1,IORB)=XNEW(1,IORB,J+1) X(2,IORB)=XNEW(2,IORB,J+1) X(3,IORB)=XNEW(3,IORB,J+1) ENDDO GXY=GK(J+1) WTOT=GXY/(SUM/M) C C NOW COMPUTE THE DOWN SPIN ELECTRONS USING XNEFIN WHICH USES SINGLE C AVERAGING BIASED SELECTION BASED ON N-E AND E-E GUIDING FUNCTIONS C SUM=0 DO K=1,M CALL XNEFIN(X,WTOT1,NUP,NUP+NDOWN) DO IORB=1,NDOWN DO I=1,3 XNEW(I,NUP+IORB,K)=X(I,NUP+IORB) ENDDO ENDDO CALL WDOWN(DET) GK(K)=DET*DET SUM=SUM+DET*DET/WTOT1 GSUM(K)=SUM ENDDO C C PICK A RANDOM NUMBER AND FIND THE FINAL X(IORB) USING IT C RAN2=RNDMF(0.0) RAN=SUM*RAN2 CALL LOCATE(GSUM,M,RAN,J) DO IORB=1,NDOWN X(1,NUP+IORB)=XNEW(1,NUP+IORB,J+1) X(2,NUP+IORB)=XNEW(2,NUP+IORB,J+1) X(3,NUP+IORB)=XNEW(3,NUP+IORB,J+1) ENDDO GXY=GK(J+1) WTOT=WTOT*GXY/(SUM/M) RETURN END C