*** src/dcqtp/src/io/rdnmr.F90 2006-10-19 11:42:24.000000000 -0700 --- src/dcqtp/src/io/rdnmr.F90 2006-10-19 11:42:30.000000000 -0700 *************** *** 81,92 **** j2 = irpnt(k+1)-1 endif do j=j1,j2 nat = nat + 1 - if ( .not. calcMemRequirements) then inmratm(nat) = j - endif enddo enddo nnmrATM = nat endif --- 81,96 ---- j2 = irpnt(k+1)-1 endif + if (calcMemRequirements) then + do j=j1,j2 + nat = nat + 1 + enddo + else do j=j1,j2 nat = nat + 1 inmratm(nat) = j enddo + endif enddo nnmrATM = nat endif *************** *** 227,238 **** ierror = 1 return endif do j=ibeg+1,inum nnmratm = nnmratm + 1 - if ( .not. calcMemRequirements) then inmratm(nnmratm) = j endif - enddo range = .false. goto 233 else --- 231,246 ---- ierror = 1 return endif + if (calcMemRequirements) then + do j=ibeg+1,inum + nnmratm = nnmratm + 1 + end do + else do j=ibeg+1,inum nnmratm = nnmratm + 1 inmratm(nnmratm) = j + end do endif range = .false. goto 233 else *** src/dcqtp/src/scf/fock.F90 2006-10-19 11:41:51.000000000 -0700 --- src/dcqtp/src/scf/fock.F90 2006-10-19 11:42:12.000000000 -0700 *************** *** 54,67 **** IIMAX = IIMAT(NATOMS+1)-1 IPMAX = IP1(NATOMS+1) IJMAX = IJMAT(IPMAX)-1 ! DO 10 II=1,IIMAX FDIAG(II) = 0.0D0 ! if(donmr) FIDIAG(II) = 0.0d0 ! 10 ENDDO ! DO 20 IJ=1,IJMAX FDIAT(IJ) = 0.0D0 ! if(donmr) FIDIAT(IJ) = 0.0d0 ! 20 ENDDO #ifdef MPI_NOMC IF ( .NOT. STAND) THEN --- 54,76 ---- IIMAX = IIMAT(NATOMS+1)-1 IPMAX = IP1(NATOMS+1) IJMAX = IJMAT(IPMAX)-1 ! if (donmr) then ! DO II=1,IIMAX ! FDIAG(II) = 0.0D0 ! FIDIAG(II) = 0.0d0 ! ENDDO ! DO IJ=1,IJMAX ! FDIAT(IJ) = 0.0D0 ! FIDIAT(IJ) = 0.0d0 ! ENDDO ! else ! DO II=1,IIMAX FDIAG(II) = 0.0D0 ! ENDDO ! DO IJ=1,IJMAX FDIAT(IJ) = 0.0D0 ! ENDDO ! endif #ifdef MPI_NOMC IF ( .NOT. STAND) THEN *************** *** 87,102 **** ! JV First init everything to zero, then go back and do diagonal of hdiag ! Can leave this in serial version, but done this way for parallel version ! do II=1,IIMAX ! HDIAG(II) = 0.0D0 ! if(donmr) HIDIAG(II) = 0.0d0 ! ! enddo ! do IJ=1,IJMAX ! HDIAT(IJ) = 0.0D0 ! if(donmr) HIDIAT(IJ) = 0.0d0 ! ! enddo ! JV Must set whole arrays to zero before doing any of this in parallel ! because after first cycle arrays will have garabage all over the place --- 96,118 ---- ! JV First init everything to zero, then go back and do diagonal of hdiag ! Can leave this in serial version, but done this way for parallel version ! if(donmr) then ! do II=1,IIMAX ! HDIAG(II) = 0.0D0 ! HIDIAG(II) = 0.0d0 ! enddo ! do IJ=1,IJMAX ! HDIAT(IJ) = 0.0D0 ! HIDIAT(IJ) = 0.0d0 ! enddo ! else ! do II=1,IIMAX ! HDIAG(II) = 0.0D0 ! enddo ! do IJ=1,IJMAX ! HDIAT(IJ) = 0.0D0 ! enddo ! endif ! JV Must set whole arrays to zero before doing any of this in parallel ! because after first cycle arrays will have garabage all over the place *************** *** 824,840 **** ! ADD IN 1-ELECTRON MATRIX. ! !c write(*,*) "%% ============================" ! DO 1010 II=1,IIMAX FDIAG(II) = FDIAG(II) + HDIAG(II) ! if(donmr) FIDIAG(II) = FIDIAG(II) + HIDIAG(II) ! 1010 ENDDO ! !c write(*,*) "%% ============================" ! ! DO 1020 IJ=1,IJMAX FDIAT(IJ) = FDIAT(IJ) + HDIAT(IJ) ! if(donmr) FIDIAT(IJ) = FIDIAT(IJ) + HIDIAT(IJ) ! 1020 ENDDO RETURN end SUBROUTINE FOCK --- 840,862 ---- ! ADD IN 1-ELECTRON MATRIX. ! if (donmr) then ! DO II=1,IIMAX FDIAG(II) = FDIAG(II) + HDIAG(II) ! FIDIAG(II) = FIDIAG(II) + HIDIAG(II) ! ENDDO ! DO IJ=1,IJMAX ! FDIAT(IJ) = FDIAT(IJ) + HDIAT(IJ) ! FIDIAT(IJ) = FIDIAT(IJ) + HIDIAT(IJ) ! ENDDO ! else ! DO II=1,IIMAX ! FDIAG(II) = FDIAG(II) + HDIAG(II) ! ENDDO ! DO IJ=1,IJMAX FDIAT(IJ) = FDIAT(IJ) + HDIAT(IJ) ! ENDDO ! endif RETURN end SUBROUTINE FOCK *** src/dcqtp/src/scf/fockqmmm.F90 2006-10-19 11:41:57.000000000 -0700 --- src/dcqtp/src/scf/fockqmmm.F90 2006-10-19 11:42:12.000000000 -0700 *************** *** 55,68 **** IIMAX = IIMAT(NATOMS+1)-1 IPMAX = IP1(NATOMS+1) IJMAX = IJMAT(IPMAX)-1 ! DO 10 II=1,IIMAX FDIAG(II) = 0.0D0 ! if(donmr) FIDIAG(II) = 0.0d0 ! 10 ENDDO ! DO 20 IJ=1,IJMAX FDIAT(IJ) = 0.0D0 ! if(donmr) FIDIAT(IJ) = 0.0d0 ! 20 ENDDO #ifdef MPI_NOMC IF ( .NOT. STAND) THEN --- 55,78 ---- IIMAX = IIMAT(NATOMS+1)-1 IPMAX = IP1(NATOMS+1) IJMAX = IJMAT(IPMAX)-1 ! ! if (donmr) then ! DO II=1,IIMAX ! FDIAG(II) = 0.0D0 ! FIDIAG(II) = 0.0d0 ! ENDDO ! DO IJ=1,IJMAX ! FDIAT(IJ) = 0.0D0 ! FIDIAT(IJ) = 0.0d0 ! ENDDO ! else ! DO II=1,IIMAX FDIAG(II) = 0.0D0 ! ENDDO ! DO IJ=1,IJMAX FDIAT(IJ) = 0.0D0 ! ENDDO ! endif #ifdef MPI_NOMC IF ( .NOT. STAND) THEN *************** *** 88,104 **** ! JV First init everything to zero, then go back and do diagonal of hdiag ! Can leave this in serial version, but done this way for parallel version ! do II=1,IIMAX ! HDIAG(II) = 0.0D0 ! if(donmr) HIDIAG(II) = 0.0d0 ! ! enddo ! do IJ=1,IJMAX ! HDIAT(IJ) = 0.0D0 ! if(donmr) HIDIAT(IJ) = 0.0d0 ! ! enddo ! ! JV Must set whole arrays to zero before doing any of this in parallel ! because after first cycle arrays will have garabage all over the place ! Want everything zero, but diagonal done only by pieces --- 98,120 ---- ! JV First init everything to zero, then go back and do diagonal of hdiag ! Can leave this in serial version, but done this way for parallel version ! if(donmr) then ! do II=1,IIMAX ! HDIAG(II) = 0.0D0 ! HIDIAG(II) = 0.0d0 ! enddo ! do IJ=1,IJMAX ! HDIAT(IJ) = 0.0D0 ! HIDIAT(IJ) = 0.0d0 ! enddo ! else ! do II=1,IIMAX ! HDIAG(II) = 0.0D0 ! enddo ! do IJ=1,IJMAX ! HDIAT(IJ) = 0.0D0 ! enddo ! endif ! JV Must set whole arrays to zero before doing any of this in parallel ! because after first cycle arrays will have garabage all over the place ! Want everything zero, but diagonal done only by pieces *************** *** 573,579 **** 160 ENDDO 170 ENDDO ENDIF - ! INTEGRAL COMPUTATION ! -------------------- --- 589,594 ---- *************** *** 828,845 **** ! ADD IN 1-ELECTRON MATRIX. ! ! !c write(*,*) "%% ============================" ! DO 1010 II=1,IIMAX FDIAG(II) = FDIAG(II) + HDIAG(II) ! if(donmr) FIDIAG(II) = FIDIAG(II) + HIDIAG(II) ! 1010 ENDDO ! !c write(*,*) "%% ============================" ! ! DO 1020 IJ=1,IJMAX FDIAT(IJ) = FDIAT(IJ) + HDIAT(IJ) ! if(donmr) FIDIAT(IJ) = FIDIAT(IJ) + HIDIAT(IJ) ! 1020 ENDDO RETURN end SUBROUTINE FOCK --- 843,865 ---- ! ADD IN 1-ELECTRON MATRIX. ! if (donmr) then ! DO II=1,IIMAX FDIAG(II) = FDIAG(II) + HDIAG(II) ! FIDIAG(II) = FIDIAG(II) + HIDIAG(II) ! ENDDO ! DO IJ=1,IJMAX ! FDIAT(IJ) = FDIAT(IJ) + HDIAT(IJ) ! FIDIAT(IJ) = FIDIAT(IJ) + HIDIAT(IJ) ! ENDDO ! else ! DO II=1,IIMAX ! FDIAG(II) = FDIAG(II) + HDIAG(II) ! ENDDO ! DO IJ=1,IJMAX FDIAT(IJ) = FDIAT(IJ) + HDIAT(IJ) ! ENDDO ! endif RETURN end SUBROUTINE FOCK