Neither OpenMP nor MPI was properly working in the routine just added. The

latter was actually a pre-existing bug: some variables related to the 
treatment of van der Waals interactions were neither set nor properly 
broadcast. Not a big deal until the day you want to use them.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12275 c92efa57-630b-4861-b058-cf58834340f0
This commit is contained in:
giannozz 2016-04-02 07:44:22 +00:00
parent 92564d98a4
commit 78830ab2c8
2 changed files with 14 additions and 2 deletions

View File

@ -109,7 +109,7 @@ SUBROUTINE d2ionq_mm ( alat , nat , ityp , at , bg , tau, q, deriv2_london )
par2 = par**2 par2 = par**2
! !
#if defined(__INTEL_COMPILER) && (__INTEL_COMPILER < 1600) #if defined(__INTEL_COMPILER) && (__INTEL_COMPILER < 1600)
!$omp parallel do private(nr,dist,exparg,expval,fac,add,eiqr,facF,addF,auxr,ipol,jpol) default(shared), reduction(+:aux,+:aux2) !$omp parallel do private(nr,dist,exparg,expval,fac,add,eiqr,facF,addF,auxr,ipol,jpol) default(shared), reduction(+:aux), reduction(+:aux2)
#endif #endif
DO nr = 1 , nrm DO nr = 1 , nrm
! !

View File

@ -2069,6 +2069,9 @@ MODULE pw_restart
CALL mp_bcast( dft_name, ionode_id, intra_image_comm ) CALL mp_bcast( dft_name, ionode_id, intra_image_comm )
CALL mp_bcast( lda_plus_u, ionode_id, intra_image_comm ) CALL mp_bcast( lda_plus_u, ionode_id, intra_image_comm )
CALL mp_bcast( inlc, ionode_id, intra_image_comm ) CALL mp_bcast( inlc, ionode_id, intra_image_comm )
CALL mp_bcast( llondon, ionode_id, intra_image_comm )
CALL mp_bcast( lxdm, ionode_id, intra_image_comm )
CALL mp_bcast( ts_vdw, ionode_id, intra_image_comm )
! !
IF ( lda_plus_u ) THEN IF ( lda_plus_u ) THEN
! !
@ -2087,6 +2090,15 @@ MODULE pw_restart
IF ( inlc == 1 .OR. inlc == 2 ) THEN IF ( inlc == 1 .OR. inlc == 2 ) THEN
CALL mp_bcast( vdw_table_name, ionode_id, intra_image_comm ) CALL mp_bcast( vdw_table_name, ionode_id, intra_image_comm )
END IF END IF
!
IF ( llondon ) THEN
CALL mp_bcast( scal6, ionode_id, intra_image_comm )
CALL mp_bcast( lon_rcut, ionode_id, intra_image_comm )
END IF
!
IF ( ts_vdw ) THEN
CALL mp_bcast( vdw_isolated, ionode_id, intra_image_comm )
END IF
! discard any further attempt to set a different dft ! discard any further attempt to set a different dft
CALL enforce_input_dft( dft_name, nomsg ) CALL enforce_input_dft( dft_name, nomsg )