C^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SUBROUTINE CONV2(ETONEW,ETOOLD,IMD,ITERMD,CMIX) C^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ IMPLICIT REAL(A-H,O-Y) IMPLICIT COMPLEX(Z) INCLUDE 'PACVPP' IF (ITER.EQ.IMD+1) WRITE (6,*) 'MIXING RATE = ',CMIX IF (ITER.GE.IMD+1) PMIX(ITER)=CMIX ZFFF=DCMPLX(0.0D0,0.0D0) PPMIX = PMIX(ITER) QQMIX = 1.D0 - PPMIX DO 1100 I=1,KG ZUU1=ZCHG(I)-ZCHGO(I) ZFFF=ZFFF+DCONJG(ZUU1)*ZUU1 ZCHO1 = ZCHGO(I) ZCHGO(I) = ZCHG(I) ZCHG(I) = ZCHO1*PPMIX + ZCHGO(I)*QQMIX 1100 CONTINUE DCHG=DSQRT(DREAL(ZFFF)) 5000 CONTINUE IF(ITER.NE.1) THEN EPP2=ABS(ETONEW-ETOOLD) IF(ETOOLD.LT.ETONEW) THEN C-------------------------------WRITE(6,*) '**********************' WRITE(6,*) '>> ETOOLD.LT.ETONEW <<' C-------------------------------WRITE(6,*) '**********************' WRITE(6,*) 'ETONEW-ETTOOLD=', & ETONEW-ETOOLD EPP2=1.0D0 END IF ETOOLD=ETONEW ELSE EPP2 =1.0D5 ETOOLD=ETONEW END IF EDEV=27200.0D0*EPP2 WRITE(6,610) ITER,EPP2,EDEV,DCHG 610 FORMAT(1H ,' ITER=',I3,' ET(H)=',D15.7,' ET(M)=',F10.6,' DC=' & ,D15.7) IF( ITER.LE.ITEMAX ) THEN C IF(EPP2.LE.CONV) GOTO 2000 IF(ITER.NE.ITEMAX) THEN IFLAG=1 GO TO 9999 END IF END IF WRITE(6,*) '////////////////////////////////////////////' WRITE(6,*) '// UNLUCKY! CONVERGENCE WAS NOT ACHIEVED! //' WRITE(6,*) '////////////////////////////////////////////' GO TO 2001 2000 CONTINUE WRITE(6,*) '///////////////////////////////////////////////' WRITE(6,*) '// CONGRATULATION! CONVERGENCE WAS ACHIEVED! //' WRITE(6,*) '///////////////////////////////////////////////' 2001 CONTINUE IFLAG=0 9999 CONTINUE RETURN END