[CPMD-list] Possible Bug?

Ali Hassanali ahassana at chemistry.ohio-state.edu
Wed Nov 21 18:00:52 CET 2007


Dear cpmd users,

I am currently using CPMD_v3.11.1.  For a VIBRATIONAL ANALYSIS
calculation, when calculating FINITE DIFFERENCES for only those atoms
within a specified sphere, I have found that when the ANGSTROM keyword
is specified in the SYSTEM section, the variables COORD_FDIFF and
R_FDIFF are only converted to Bohr on the PARENT processor.  The effect
was for my parallel jobs to hang.  Adding a few lines of code after line
1021 in setsys.f appears to have solved the problem, for my input files
at least.


      IF(.NOT.PARENT) THEN ! < -- line 1056 in setsys.f
        CALL MEMORY(IP_KGEMAX,NKPTS,'KGEMAX')
        CALL AZZERO(KGEMAX,NKPTS)
        CALL MEMORY(IP_KCNORM,NKPTS,'KCNORM')
        CALL AZZERO(KCNORM,NKPTS)
ck                         ! < -- convert Angstrom to Bohr
      IF(.NOT.BOHR) THEN
         DO I=1,3
            COORD_FDIFF(I) = COORD_FDIFF(I)*FBOHR
         END DO
         R_FDIFF = R_FDIFF*FBOHR
      END IF
ck                         ! < -- convert Angstrom to Bohr
      ENDIF


Also, purely cosmetic, I added an IF(PARENT) to the write statement on
line 307 of secder.f

               IF(PARENT) WRITE(*,'(A,I7,4X,A4,4X,A,T54,1PE12.5)')
     $              " **** ATOM=",IAT,EL(IATYP(IS)),"DISTANCE=",DIST

Can someone please check this for me?  Did I make any mistakes?

Thanks,

Chris Knight


Ali



More information about the CPMD-list mailing list