Global change in name of the solvent-related module, going from Solvent to Environ. All the modifications are still

contained within #ifdef __ENVIRON ... #endif statements, so no effects should be present for normal compilations.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@8646 c92efa57-630b-4861-b058-cf58834340f0
This commit is contained in:
oliviero 2012-02-14 16:18:50 +00:00
parent 4e195472f5
commit e070fdc000
12 changed files with 179 additions and 206 deletions

View File

@ -35,7 +35,7 @@ default :
###########################################################
# Main targets
###########################################################
pw : bindir mods liblapack libblas libs libiotk libsolvent
pw : bindir mods liblapack libblas libs libiotk libenviron
if test -d PW ; then \
( cd PW ; if test "$(MAKE)" = "" ; then make $(MFLAGS) TLDEPS= all ; \
else $(MAKE) $(MFLAGS) TLDEPS= all ; fi ) ; fi
@ -127,8 +127,8 @@ libs : mods
( cd flib ; if test "$(MAKE)" = "" ; then make $(MFLAGS) TLDEPS= $(FLIB_TARGETS) ; \
else $(MAKE) $(MFLAGS) TLDEPS= $(FLIB_TARGETS) ; fi )
libsolvent : mods
( if test -d Solvent ; then cd Solvent ; if test "$(MAKE)" = "" ; \
libenviron : mods
( if test -d Environ ; then cd Environ ; if test "$(MAKE)" = "" ; \
then make $(MFLAGS) TLDEPS= all; else $(MAKE) $(MFLAGS) TLDEPS= all ; fi ; fi )
bindir :
@ -202,7 +202,7 @@ clean :
CPV PHonon/D3 PHonon/Gamma Modules PHonon/PH PP PW PWCOND \
NEB VdW ACFDT EE \
atomic/src clib flib pwtools upftools iotk GIPAW XSpectra \
dev-tools GWW extlibs TDDFPT Solvent EPW \
dev-tools GWW extlibs TDDFPT Environ EPW \
; do \
if test -d $$dir ; then \
( cd $$dir ; \

View File

@ -450,9 +450,9 @@ MODULE input_parameters
! other DFT-D parameters ( see PW/mm_dispersion.f90 )
REAL ( DP ) :: london_s6 = 0.75_DP , & ! default global scaling parameter for PBE
london_rcut = 200.00_DP
#ifdef __SOLVENT
#ifdef __ENVIRON
!
LOGICAL :: do_solvent = .false.
LOGICAL :: do_environ = .false.
#endif
!
CHARACTER(LEN=3) :: esm_bc = 'pbc'
@ -489,8 +489,8 @@ MODULE input_parameters
nqx1, nqx2, nqx3, &
exxdiv_treatment, x_gamma_extrapolation, yukawa, ecutvcut, &
exx_fraction, screening_parameter, &
#ifdef __SOLVENT
do_solvent, &
#ifdef __ENVIRON
do_environ, &
#endif
noncolin, lspinorb, starting_spin_angle, lambda, angle1, angle2, &
report, &
@ -500,10 +500,10 @@ MODULE input_parameters
spline_ps, one_atom_occupations, london, london_s6, london_rcut, &
step_pen, A_pen, sigma_pen, alpha_pen, no_t_rev, &
esm_bc, esm_efield, esm_w, esm_nfit, esm_debug, esm_debug_gpmax
#ifdef __SOLVENT
#ifdef __ENVIRON
!
!=----------------------------------------------------------------------------=!
! SOLVENT Namelist Input Parameters
! ENVIRON Namelist Input Parameters
!=----------------------------------------------------------------------------=!
!
! Global parameters
@ -512,7 +512,7 @@ MODULE input_parameters
! verbosity 0: only prints summary of polarization charge calculation;
! 1: prints an extra file with details of iterative convergence;
! 2: prints 3D cube files of physical properties
REAL(DP) :: solvent_thr = 1.d-1
REAL(DP) :: environ_thr = 1.d-1
! how early in scf should the corrective pot start being calculated
!
! Switching function parameters
@ -531,7 +531,7 @@ MODULE input_parameters
!
! Dielectric solvent parameters
!
REAL(DP) :: epszero = 78.D0
REAL(DP) :: env_static_permittivity = 78.D0
! static dielectric permittivity of the solvation model. If set equal
! to one (=vacuum) no dielectric effects
CHARACTER( LEN = 256 ) :: eps_mode = 'electronic'
@ -570,24 +570,25 @@ MODULE input_parameters
!
! Cavitation energy parameters
!
REAL(DP) :: gamma = 0.D0
REAL(DP) :: env_surface_tension = 0.D0
! solvent surface tension, if equal to zero no cavitation term
REAL(DP) :: delta = 0.00001D0
! finite difference parameter to compute the molecular surface
!
! PV energy parameters
!
REAL(DP) :: extpressure = 0.D0
REAL(DP) :: env_pressure = 0.D0
! external pressure for PV energy, if equal to zero no pressure term
NAMELIST / solvent / &
verbose, solvent_thr, &
NAMELIST / environ / &
verbose, environ_thr, &
stype, rhomax, rhomin, tbeta, &
epszero, eps_mode, solvationrad, atomicspread, &
env_static_permittivity, eps_mode, &
solvationrad, atomicspread, &
ifdtype, nfdpoint, &
mixrhopol, tolrhopol, &
gamma, delta, &
extpressure
env_surface_tension, delta, &
env_pressure
#endif
!
!=----------------------------------------------------------------------------=!

View File

@ -234,10 +234,10 @@ MODULE read_namelists_module
london_s6 = 0.75_DP
london_rcut = 200.00_DP
!
#ifdef __SOLVENT
! ... Solvent
#ifdef __ENVIRON
! ... Environ
!
do_solvent = .false.
do_environ = .false.
!
#endif
! ... ESM
@ -253,15 +253,15 @@ MODULE read_namelists_module
!
END SUBROUTINE
#ifdef __SOLVENT
#ifdef __ENVIRON
!=----------------------------------------------------------------------=!
!
! Variables initialization for Namelist SOLVENT
! Variables initialization for Namelist ENVIRON
!
!=----------------------------------------------------------------------=!
!
!-----------------------------------------------------------------------
SUBROUTINE solvent_defaults( prog )
SUBROUTINE environ_defaults( prog )
!-----------------------------------------------------------------------
!
IMPLICIT NONE
@ -269,15 +269,15 @@ MODULE read_namelists_module
CHARACTER(LEN=2) :: prog ! ... specify the calling program
!
!
verbose = 0
solvent_thr = 1.D-1
verbose = 0
environ_thr = 1.D-1
!
stype = 1
rhomax = 0.005
rhomin = 0.0001
tbeta = 4.8
!
epszero = 78.D0
env_static_permittivity = 78.D0
eps_mode = 'electronic'
solvationrad(:) = 3.D0
atomicspread(:) = 0.5D0
@ -288,10 +288,10 @@ MODULE read_namelists_module
mixrhopol = 0.5
tolrhopol = 1.D-10
!
gamma = 50.D0
env_surface_tension = 50.D0
delta = 0.00001D0
!
extpressure = -0.35D0
env_pressure = -0.35D0
!
RETURN
!
@ -866,8 +866,8 @@ MODULE read_namelists_module
CALL mp_bcast( london_rcut, ionode_id )
!
CALL mp_bcast( no_t_rev, ionode_id )
#ifdef __SOLVENT
CALL mp_bcast( do_solvent, ionode_id )
#ifdef __ENVIRON
CALL mp_bcast( do_environ, ionode_id )
#endif
!
! ... ESM method broadcast
@ -882,15 +882,15 @@ MODULE read_namelists_module
RETURN
!
END SUBROUTINE
#ifdef __SOLVENT
#ifdef __ENVIRON
!=----------------------------------------------------------------------=!
!
! Broadcast variables values for Namelist SOLVENT
! Broadcast variables values for Namelist ENVIRON
!
!=----------------------------------------------------------------------=!
!
!-----------------------------------------------------------------------
SUBROUTINE solvent_bcast()
SUBROUTINE environ_bcast()
!-----------------------------------------------------------------------
!
USE io_global, ONLY : ionode_id
@ -899,14 +899,14 @@ MODULE read_namelists_module
IMPLICIT NONE
!
CALL mp_bcast( verbose, ionode_id )
CALL mp_bcast( solvent_thr, ionode_id )
CALL mp_bcast( environ_thr, ionode_id )
!
CALL mp_bcast( stype, ionode_id )
CALL mp_bcast( rhomax, ionode_id )
CALL mp_bcast( rhomax, ionode_id )
CALL mp_bcast( rhomin, ionode_id )
CALL mp_bcast( tbeta, ionode_id )
!
CALL mp_bcast( epszero, ionode_id )
CALL mp_bcast( env_static_permittivity, ionode_id )
CALL mp_bcast( eps_mode, ionode_id )
CALL mp_bcast( solvationrad, ionode_id )
CALL mp_bcast( atomicspread, ionode_id )
@ -917,10 +917,10 @@ MODULE read_namelists_module
CALL mp_bcast( mixrhopol, ionode_id )
CALL mp_bcast( tolrhopol, ionode_id )
!
CALL mp_bcast( gamma, ionode_id )
CALL mp_bcast( env_surface_tension, ionode_id )
CALL mp_bcast( delta, ionode_id )
!
CALL mp_bcast( extpressure, ionode_id )
CALL mp_bcast( env_pressure, ionode_id )
!
RETURN
!
@ -1869,8 +1869,8 @@ MODULE read_namelists_module
CALL electrons_defaults( prog )
CALL ions_defaults( prog )
CALL cell_defaults( prog )
#ifdef __SOLVENT
CALL solvent_defaults( prog )
#ifdef __ENVIRON
CALL environ_defaults( prog )
#endif
CALL ee_defaults( prog )
ENDIF
@ -1991,18 +1991,18 @@ MODULE read_namelists_module
END IF
!
CALL press_ai_bcast()
#ifdef __SOLVENT
#ifdef __ENVIRON
!
! ... SOLVENT namelist
! ... ENVIRON namelist
!
IF ( do_solvent ) THEN
IF ( do_environ ) THEN
ios = 0
IF( ionode ) READ( 5, solvent, iostat = ios )
IF( ionode ) READ( 5, environ, iostat = ios )
CALL mp_bcast( ios, ionode_id )
IF( ios /= 0 ) CALL errore( ' read_namelists ', &
& ' reading namelist solvent ', ABS(ios) )
& ' reading namelist environ ', ABS(ios) )
END IF
CALL solvent_bcast()
CALL environ_bcast()
#endif
!
! ... EE namelist

View File

@ -32,9 +32,6 @@ SUBROUTINE clean_pw( lflag )
USE force_mod, ONLY : force
USE scf, ONLY : rho, v, vltot, rho_core, rhog_core, &
vrs, kedtau, destroy_scf_type, vnew
#ifdef __SOLVENT
USE scf, ONLY : vltot_zero
#endif
USE symm_base, ONLY : irt
USE symme, ONLY : sym_rho_deallocate
USE wavefunctions_module, ONLY : evc, psic, psic_nc
@ -60,8 +57,8 @@ SUBROUTINE clean_pw( lflag )
USE pseudo_types, ONLY : deallocate_pseudo_upf
USE bp, ONLY : deallocate_bp_efield
USE exx, ONLY : deallocate_exx
#ifdef __SOLVENT
USE solvent_base, ONLY : do_solvent
#ifdef __ENVIRON
USE environ_base, ONLY : do_environ
#endif
!
IMPLICIT NONE
@ -123,9 +120,6 @@ SUBROUTINE clean_pw( lflag )
call destroy_scf_type(vnew)
IF ( ALLOCATED( kedtau ) ) DEALLOCATE( kedtau )
IF ( ALLOCATED( vltot ) ) DEALLOCATE( vltot )
#ifdef __SOLVENT
IF ( ALLOCATED( vltot_zero ) ) DEALLOCATE( vltot_zero )
#endif
IF ( ALLOCATED( rho_core ) ) DEALLOCATE( rho_core )
IF ( ALLOCATED( rhog_core ) ) DEALLOCATE( rhog_core )
IF ( ALLOCATED( psic ) ) DEALLOCATE( psic )
@ -198,10 +192,10 @@ SUBROUTINE clean_pw( lflag )
if (use_wannier) CALL wannier_clean()
!
CALL deallocate_exx ( )
#ifdef __SOLVENT
! ... additional arrays for solvent medium
#ifdef __ENVIRON
! ... additional arrays for external environment
!
if (do_solvent) CALL solvent_clean()
if (do_environ) CALL environ_clean()
!
#endif
!

View File

@ -71,12 +71,12 @@ SUBROUTINE electrons()
USE paw_onecenter, ONLY : PAW_potential
USE paw_symmetry, ONLY : PAW_symmetrize_ddd
USE uspp_param, ONLY : nh, nhm ! used for PAW
#ifdef __SOLVENT
USE scf, ONLY : vltot_zero
USE control_flags, ONLY : save_vltot
USE solvent_base, ONLY : do_solvent, update_vsolvent, solvent_thr, &
epszero, gamma, extpressure, &
desolvent, esolvent, ecavity, epressure
#ifdef __ENVIRON
USE environ_base, ONLY : do_environ, update_venviron, &
vltot_zero, environ_thr, &
env_static_permittivity, &
env_surface_tension, env_pressure, &
deenviron, esolvent, ecavity, epressure
#endif
USE dfunct, only : newd
USE esm, ONLY : do_comp_esm, esm_printpot
@ -177,15 +177,14 @@ SUBROUTINE electrons()
CALL set_vrs( vrs, vltot, v%of_r, kedtau, v%kin_r, dfftp%nnr, nspin, doublegrid )
end if
!
#ifdef __SOLVENT
IF ( do_solvent ) THEN
CALL solvent_initions( nat, nsp, ityp, zv, tau )
CALL solvent_initcell( at, bg, alat, omega, tpiba2 )
#ifdef __ENVIRON
IF ( do_environ ) THEN
vltot_zero = vltot
CALL environ_initions( nat, nsp, ityp, zv, tau )
CALL environ_initcell( dfftp%nr1*dfftp%nr2*dfftp%nr3, omega )
END IF
!
IF ( save_vltot ) vltot_zero = vltot
#endif
!
!
CALL flush_unit( stdout )
!
! ... calculates the ewald contribution to total energy
@ -434,21 +433,21 @@ SUBROUTINE electrons()
!
END DO scf_step
!
#ifdef __SOLVENT
IF ( save_vltot ) vltot = vltot_zero
#ifdef __ENVIRON
! ... computes the external environment contribution to energy and potential
!
! ... computes the solvation contribution to energy and potential
!
IF ( do_solvent ) THEN
IF ( do_environ ) THEN
!
CALL calc_esolvent( dfftp%nnr, nspin, rhoin%of_r, vltot_zero, &
desolvent, esolvent, ecavity, epressure )
vltot = vltot_zero
!
update_vsolvent = .NOT. conv_elec .AND. dr2 .LT. solvent_thr
CALL calc_eenviron( dfftp%nnr, nspin, rhoin%of_r, vltot_zero, &
deenviron, esolvent, ecavity, epressure )
!
IF ( update_vsolvent ) WRITE( stdout, 9200 )
update_venviron = .NOT. conv_elec .AND. dr2 .LT. environ_thr
!
CALL calc_vsolvent( update_vsolvent, dfftp%nnr, nspin, rhoin%of_r, vltot )
IF ( update_venviron ) WRITE( stdout, 9200 )
!
CALL calc_venviron( update_venviron, dfftp%nnr, nspin, rhoin%of_r, vltot )
!
END IF
#endif
@ -569,11 +568,11 @@ SUBROUTINE electrons()
hwf_energy = hwf_energy + etotefield
END IF
!
#ifdef __SOLVENT
#ifdef __ENVIRON
!
! ... adds the solvation contribution to the energy
! ... adds the external environment contribution to the energy
!
IF ( do_solvent ) etot = etot + desolvent + esolvent + ecavity + epressure
IF ( do_environ ) etot = etot + deenviron + esolvent + ecavity + epressure
#endif
!
IF ( ( conv_elec .OR. MOD( iter, iprint ) == 0 ) .AND. .NOT. lmd ) THEN
@ -624,11 +623,11 @@ SUBROUTINE electrons()
END IF
END IF
!
#ifdef __SOLVENT
IF ( do_solvent ) THEN
IF ( epszero .GT. 1.D0 ) WRITE( stdout, 9201 ) esolvent
IF ( gamma .GT. 0.D0 ) WRITE( stdout, 9202 ) ecavity
IF ( extpressure .NE. 0.D0 ) WRITE( stdout, 9203 ) epressure
#ifdef __ENVIRON
IF ( do_environ ) THEN
IF ( env_static_permittivity .GT. 1.D0 ) WRITE( stdout, 9201 ) esolvent
IF ( env_surface_tension .GT. 0.D0 ) WRITE( stdout, 9202 ) ecavity
IF ( env_pressure .NE. 0.D0 ) WRITE( stdout, 9203 ) epressure
ENDIF
#endif
!
@ -749,8 +748,8 @@ SUBROUTINE electrons()
9110 FORMAT(/' convergence has been achieved in ',i3,' iterations' )
9120 FORMAT(/' convergence NOT achieved after ',i3,' iterations: stopping' )
9121 FORMAT(/' scf convergence threshold =',1PE17.1,' Ry' )
#ifdef __SOLVENT
9200 FORMAT(/' add solvent contribution to local potential')
#ifdef __ENVIRON
9200 FORMAT(/' add environment contribution to local potential')
9201 FORMAT( ' solvation energy =',F17.8,' Ry' )
9202 FORMAT( ' cavitation energy =',F17.8,' Ry' )
9203 FORMAT( ' PV energy =',F17.8,' Ry' )

View File

@ -39,8 +39,8 @@ SUBROUTINE forces()
USE extfield, ONLY : tefield, forcefield
USE control_flags, ONLY : gamma_only, remove_rigid_rot, textfor, &
iverbosity, llondon
#ifdef __SOLVENT
USE solvent_base, ONLY : do_solvent, epszero, eps_mode, rhopol
#ifdef __ENVIRON
USE environ_base, ONLY : do_environ, env_static_permittivity, eps_mode, rhopol
#endif
USE bp, ONLY : lelfield, gdir, l3dstring, efield_cart, &
efield_cry,efield
@ -61,8 +61,8 @@ SUBROUTINE forces()
forces_bp_efield(:,:), &
forceh(:,:)
! nonlocal, local, core-correction, ewald, scf correction terms, and hubbard
#ifdef __SOLVENT
REAL(DP), ALLOCATABLE :: force_solvent(:,:)
#ifdef __ENVIRON
REAL(DP), ALLOCATABLE :: force_environ(:,:)
#endif
REAL(DP) :: sumfor, sumscf, sum_mm
@ -127,23 +127,25 @@ SUBROUTINE forces()
nspin, rho%of_g, force_mt )
END IF
#ifdef __SOLVENT
IF (do_solvent) THEN
#ifdef __ENVIRON
IF (do_environ) THEN
!
! ... The external environment contribution
!
CALL start_clock('calc_fsolv')
!
ALLOCATE ( force_solvent ( 3 , nat ) )
ALLOCATE ( force_environ ( 3 , nat ) )
!
force_solvent = 0.0_DP
force_environ = 0.0_DP
!
IF ( epszero .GT. 1.D0 ) THEN
IF ( env_static_permittivity .GT. 1.D0 ) THEN
!
IF ( TRIM(eps_mode) .NE. 'ionic' ) THEN
CALL force_lc( nat, tau, ityp, alat, omega, ngm, ngl, igtongl, &
g, rhopol, nl, 1, gstart, gamma_only, vloc, &
force_solvent )
force_environ )
ELSE
CALL calc_fsolvent( dfftp%nnr, force_solvent )
CALL calc_fsolvent( dfftp%nnr, force_environ )
END IF
!
END IF
@ -196,8 +198,8 @@ SUBROUTINE forces()
IF (do_comp_mt)force(ipol,na) = force(ipol,na) + force_mt(ipol,na)
! DCC
! IF (do_comp) force(ipol,na) = force(ipol,na) + force_vcorr(ipol,na)
#ifdef __SOLVENT
IF (do_solvent) force(ipol,na) = force(ipol,na) + force_solvent(ipol,na)
#ifdef __ENVIRON
IF (do_environ) force(ipol,na) = force(ipol,na) + force_environ(ipol,na)
#endif
sumfor = sumfor + force(ipol,na)
@ -284,11 +286,11 @@ SUBROUTINE forces()
DO na = 1, nat
WRITE( stdout, 9035) na, ityp(na), ( forcescc(ipol,na), ipol = 1, 3 )
END DO
#ifdef __SOLVENT
IF ( do_solvent ) THEN
WRITE( stdout, '(5x,"The continuum solvent correction to forces")')
#ifdef __ENVIRON
IF ( do_environ ) THEN
WRITE( stdout, '(5x,"The external environment correction to forces")')
DO na = 1, nat
WRITE( stdout, 9035) na, ityp(na), ( force_solvent(ipol,na), ipol = 1, 3 )
WRITE( stdout, 9035) na, ityp(na), ( force_environ(ipol,na), ipol = 1, 3 )
END DO
END IF
#endif
@ -343,8 +345,8 @@ SUBROUTINE forces()
& "reduce conv_thr to get better values")')
!
IF(ALLOCATED(force_mt)) DEALLOCATE( force_mt )
#ifdef __SOLVENT
IF(ALLOCATED(force_solvent)) DEALLOCATE( force_solvent )
#ifdef __ENVIRON
IF(ALLOCATED(force_environ)) DEALLOCATE( force_environ )
#endif
RETURN

View File

@ -22,9 +22,9 @@ SUBROUTINE init_run()
USE paw_init, ONLY : paw_post_init
#endif
USE bp, ONLY : allocate_bp_efield, bp_global_map
#ifdef __SOLVENT
#ifdef __ENVIRON
USE fft_base, ONLY : dfftp
USE solvent_base, ONLY : do_solvent
USE environ_base, ONLY : do_environ
#endif
USE recvec_subs, ONLY : ggen
USE wannier_new, ONLY : use_wannier
@ -67,8 +67,8 @@ SUBROUTINE init_run()
CALL allocate_wfc()
CALL allocate_bp_efield()
CALL bp_global_map()
#ifdef __SOLVENT
IF ( do_solvent ) CALL solvent_initbase( dfftp%nnr )
#ifdef __ENVIRON
IF ( do_environ ) CALL environ_initbase( dfftp%nnr )
#endif
!
CALL memory_report()

View File

@ -102,27 +102,26 @@ SUBROUTINE iosys()
niter_with_fixed_ns, starting_ns, U_projection
!
USE martyna_tuckerman, ONLY: do_comp_mt
#ifdef __SOLVENT
USE control_flags, ONLY : save_vltot
USE constants, ONLY : rydberg_si, bohr_radius_si
USE solvent_base, ONLY : do_solvent_ => do_solvent, &
verbose_ => verbose, &
solvent_thr_ => solvent_thr, &
stype_ => stype, &
rhomax_ => rhomax, &
rhomin_ => rhomin, &
tbeta_ => tbeta, &
epszero_ => epszero, &
eps_mode_ => eps_mode, &
solvationrad_ => solvationrad, &
atomicspread_ => atomicspread, &
ifdtype_ => ifdtype, &
nfdpoint_ => nfdpoint, &
mixrhopol_ => mixrhopol, &
tolrhopol_ => tolrhopol, &
gamma_ => gamma, &
delta_ => delta, &
extpressure_ => extpressure
#ifdef __ENVIRON
USE constants, ONLY : rydberg_si, bohr_radius_si
USE environ_base, ONLY : do_environ_ => do_environ, &
verbose_ => verbose, &
environ_thr_ => environ_thr, &
stype_ => stype, &
rhomax_ => rhomax, &
rhomin_ => rhomin, &
tbeta_ => tbeta, &
env_static_permittivity_ => env_static_permittivity, &
eps_mode_ => eps_mode, &
solvationrad_ => solvationrad, &
atomicspread_ => atomicspread, &
ifdtype_ => ifdtype, &
nfdpoint_ => nfdpoint, &
mixrhopol_ => mixrhopol, &
tolrhopol_ => tolrhopol, &
env_surface_tension_ => env_surface_tension, &
delta_ => delta, &
env_pressure_ => env_pressure
#endif
!
USE esm, ONLY: do_comp_esm, &
@ -240,8 +239,8 @@ SUBROUTINE iosys()
x_gamma_extrapolation, nqx1, nqx2, nqx3, &
exxdiv_treatment, yukawa, ecutvcut, &
exx_fraction, screening_parameter, &
#ifdef __SOLVENT
do_solvent, &
#ifdef __ENVIRON
do_environ, &
#endif
edir, emaxpos, eopreg, eamp, noncolin, lambda, &
angle1, angle2, constrained_magnetization, &
@ -250,17 +249,18 @@ SUBROUTINE iosys()
assume_isolated, spline_ps, london, london_s6, &
london_rcut, one_atom_occupations, &
esm_bc, esm_efield, esm_w, esm_nfit
#ifdef __SOLVENT
#ifdef __ENVIRON
!
! ... SOLVENT namelist
! ... ENVIRON namelist
!
USE input_parameters, ONLY : verbose, solvent_thr, &
stype, rhomax, rhomin, tbeta, &
epszero, eps_mode, solvationrad, atomicspread, &
ifdtype, nfdpoint, &
mixrhopol, tolrhopol, &
gamma, delta, &
extpressure
USE input_parameters, ONLY : verbose, environ_thr, &
stype, rhomax, rhomin, tbeta, &
env_static_permittivity, eps_mode, &
solvationrad, atomicspread, &
ifdtype, nfdpoint, &
mixrhopol, tolrhopol, &
env_surface_tension, delta, &
env_pressure
#endif
!
! ... ELECTRONS namelist
@ -1185,15 +1185,13 @@ SUBROUTINE iosys()
w_1_ = w_1
w_2_ = w_2
!
#ifdef __SOLVENT
#ifdef __ENVIRON
!
! ... Solvent
! ... Environ
!
do_solvent_ = do_solvent
save_vltot = .false.
IF ( do_solvent ) save_vltot = .true.
verbose_ = verbose
solvent_thr_ = solvent_thr
do_environ_ = do_environ
verbose_ = verbose
environ_thr_ = environ_thr
!
stype_ = stype
rhomax_ = rhomax
@ -1203,7 +1201,7 @@ SUBROUTINE iosys()
tbeta_ = LOG( rhomax / rhomin )
END IF
!
epszero_ = epszero
env_static_permittivity_ = env_static_permittivity
eps_mode_ = eps_mode
ALLOCATE( solvationrad_( ntyp ) )
solvationrad_( 1:ntyp ) = solvationrad( 1:ntyp )
@ -1216,10 +1214,11 @@ SUBROUTINE iosys()
mixrhopol_ = mixrhopol
tolrhopol_ = tolrhopol
!
gamma_ = gamma*1.D-3*bohr_radius_si**2/rydberg_si
env_surface_tension_ = &
env_surface_tension*1.D-3*bohr_radius_si**2/rydberg_si
delta_ = delta
!
extpressure_ = extpressure*1.D9/rydberg_si*bohr_radius_si**3
env_pressure_ = env_pressure*1.D9/rydberg_si*bohr_radius_si**3
!
#endif
!

View File

@ -19,8 +19,8 @@ SUBROUTINE makov_payne( etot )
USE io_global, ONLY : stdout
USE ions_base, ONLY : nat, tau, ityp, zv
USE cell_base, ONLY : at, bg
#ifdef __SOLVENT
USE solvent_base, ONLY : do_solvent, pol_dipole, pol_quadrupole
#ifdef __ENVIRON
USE environ_base, ONLY : do_environ, pol_dipole, pol_quadrupole
#endif
!
IMPLICIT NONE
@ -47,9 +47,9 @@ SUBROUTINE makov_payne( etot )
x0(:) = x0(:) / zvtot
!
CALL compute_e_dipole( x0, e_dipole, e_quadrupole )
#ifdef __SOLVENT
#ifdef __ENVIRON
!
IF ( do_solvent ) CALL compute_pol_dipole( x0, pol_dipole, pol_quadrupole )
IF ( do_environ ) CALL compute_pol_dipole( x0, pol_dipole, pol_quadrupole )
#endif
!
CALL write_dipole( etot, x0, e_dipole, e_quadrupole, qq )
@ -182,8 +182,8 @@ SUBROUTINE write_dipole( etot, x0, dipole_el, quadrupole_el, qq )
USE ions_base, ONLY : nat, ityp, tau, zv
USE cell_base, ONLY : at, bg, omega, alat, ibrav
USE io_global, ONLY : ionode
#ifdef __SOLVENT
USE solvent_base, ONLY : do_solvent, pol_dipole, pol_quadrupole
#ifdef __ENVIRON
USE environ_base, ONLY : do_environ, pol_dipole, pol_quadrupole
#endif
!
IMPLICIT NONE
@ -235,8 +235,8 @@ SUBROUTINE write_dipole( etot, x0, dipole_el, quadrupole_el, qq )
!
dipole(:) = -dipole_el(1:3) + dipole_ion(:)
quadrupole = -quadrupole_el + quadrupole_ion
#ifdef __SOLVENT
IF ( do_solvent ) THEN
#ifdef __ENVIRON
IF ( do_environ ) THEN
qq = qq - pol_dipole(0)
dipole(:) = dipole(:) - pol_dipole(1:3)
quadrupole = quadrupole - pol_quadrupole
@ -256,8 +256,8 @@ SUBROUTINE write_dipole( etot, x0, dipole_el, quadrupole_el, qq )
(-dipole_el(ip), ip = 1, 3), (-dipole_el(ip)*au_debye, ip = 1, 3 )
WRITE( stdout, '( 5X,"Ionic",3F9.4," au (Ha),", 3F9.4," Debye")' ) &
( dipole_ion(ip),ip = 1, 3), ( dipole_ion(ip)*au_debye,ip = 1, 3 )
#ifdef __SOLVENT
IF ( do_solvent ) &
#ifdef __ENVIRON
IF ( do_environ ) &
WRITE( stdout, '( 5X,"Diele",3F9.4," au (Ha),", 3F9.4," Debye")' ) &
(-pol_dipole(ip),ip = 1, 3), (-pol_dipole(ip)*au_debye,ip = 1, 3 )
#endif
@ -270,8 +270,8 @@ SUBROUTINE write_dipole( etot, x0, dipole_el, quadrupole_el, qq )
-quadrupole_el
WRITE( stdout, '( 5X," Ions quadrupole moment",F20.8," a.u. (Ha)")' ) &
quadrupole_ion
#ifdef __SOLVENT
IF ( do_solvent ) &
#ifdef __ENVIRON
IF ( do_environ ) &
WRITE( stdout, '( 5X,"Dielectr. quadrupole moment",F20.8," a.u. (Ha)")' ) &
-pol_quadrupole
#endif
@ -508,7 +508,7 @@ SUBROUTINE vacuum_level( x0, zion )
!
END SUBROUTINE vacuum_level
#ifdef __SOLVENT
#ifdef __ENVIRON
!---------------------------------------------------------------------------
SUBROUTINE compute_pol_dipole( x0, pol_dipole, pol_quadrupole )
!---------------------------------------------------------------------------
@ -517,7 +517,7 @@ SUBROUTINE compute_pol_dipole( x0, pol_dipole, pol_quadrupole )
USE kinds, ONLY : DP
USE ions_base, ONLY : nat, tau
USE cell_base, ONLY : at, bg, omega, alat
USE solvent_base, ONLY : epszero, rhopol
USE environ_base, ONLY : env_static_permittivity, rhopol
USE fft_base, ONLY : dfftp
USE mp_global, ONLY : me_pool, intra_pool_comm, &
me_bgrp, intra_bgrp_comm
@ -540,7 +540,7 @@ SUBROUTINE compute_pol_dipole( x0, pol_dipole, pol_quadrupole )
pol_dipole(:) = 0.D0
pol_quadrupole = 0.D0
!
IF ( epszero .LE. 1.D0 ) RETURN
IF ( env_static_permittivity .LE. 1.D0 ) RETURN
!
index0 = 0
!

View File

@ -16,8 +16,8 @@ SUBROUTINE print_clock_pw()
USE control_flags, ONLY : isolve, iverbosity, gamma_only
USE paw_variables, ONLY : okpaw
USE realus, ONLY : real_space
#ifdef __SOLVENT
USE solvent_base, ONLY : do_solvent, epszero, gamma, extpressure
#ifdef __ENVIRON
USE environ_base, ONLY : do_environ
#endif
!
IMPLICIT NONE
@ -198,30 +198,8 @@ SUBROUTINE print_clock_pw()
CALL print_clock ('PAW_grad')
END IF
!
#ifdef __SOLVENT
IF ( do_solvent ) THEN
WRITE( stdout, * )
WRITE( stdout, '(5X,"Solvent routines")' )
! dielectric subroutines
IF ( epszero .GT. 1.D0 ) THEN
CALL print_clock ('calc_esolv')
CALL print_clock ('calc_vsolv')
CALL print_clock ('dielectric')
CALL print_clock ('get_rhopol')
CALL print_clock ('calc_veps' )
CALL print_clock ('calc_fsolv')
END IF
! cavitation subroutines
IF ( gamma .GT. 0.D0 ) THEN
CALL print_clock ('calc_ecav')
CALL print_clock ('calc_vcav')
END IF
! PV subroutines
IF ( extpressure .NE. 0.D0 ) THEN
CALL print_clock ('calc_epre')
CALL print_clock ('calc_vpre')
END IF
ENDIF
#ifdef __ENVIRON
IF ( do_environ ) call environ_clock( stdout )
#endif
!
RETURN

View File

@ -47,8 +47,8 @@ SUBROUTINE summary()
USE lsda_mod, ONLY : nspin
USE mp_global, ONLY : intra_pool_comm
USE mp, ONLY : mp_sum
#ifdef __SOLVENT
USE solvent_base, ONLY : do_solvent
#ifdef __ENVIRON
USE environ_base, ONLY : do_environ
#endif
! DCC
! USE ee_mod, ONLY : do_comp, do_coarse, do_mltgrid, mr1, mr2, mr3
@ -143,8 +143,8 @@ SUBROUTINE summary()
!
END IF
#ifdef __SOLVENT
IF ( do_solvent ) CALL solvent_summary()
#ifdef __ENVIRON
IF ( do_environ ) CALL environ_summary()
#endif
! DCC
! IF ( do_comp ) CALL write_ee_summary()

View File

@ -13,7 +13,7 @@ if test $# = 0
then
dirs=" Modules clib PW/src CPV/src flib PW/tools upftools PP/src PWCOND/src \
PHonon/Gamma PHonon/PH PHonon/D3 atomic/src VdW/src XSpectra/src \
GWW/gww GWW/pw4gww GWW/head ACFDT NEB/src Solvent TDDFPT/src"
GWW/gww GWW/pw4gww GWW/head ACFDT NEB/src Environ/src TDDFPT/src"
else
dirs=$*
@ -34,7 +34,7 @@ for dir in $dirs; do
LEVEL2=../..
DEPENDS="$LEVEL1/include $LEVEL1/iotk/src"
case $DIR in
EE | flib | upftools | Solvent )
EE | flib | upftools )
DEPENDS="$LEVEL1/include $LEVEL1/iotk/src $LEVEL1/Modules" ;;
PP/src )
DEPENDS="$LEVEL2/include $LEVEL2/iotk/src $LEVEL2/Modules \
@ -46,7 +46,7 @@ for dir in $dirs; do
DEPENDS="$LEVEL1/include $LEVEL1/iotk/src $LEVEL1/Modules \
$LEVEL1/PW/src $LEVEL1/PHonon/PH" ;;
PW/src )
PW/src | Environ/src )
DEPENDS="$LEVEL2/include $LEVEL2/iotk/src $LEVEL2/Modules" ;;
PW/tools | PWCOND/src )
DEPENDS="$LEVEL2/include $LEVEL2/PW/src $LEVEL2/iotk/src $LEVEL2/Modules" ;;
@ -89,7 +89,7 @@ for dir in $dirs; do
if test "$DIR" = "PW/src"
then
mv make.depend make.depend.tmp
sed '/@solvent_base@/d' make.depend.tmp > make.depend
sed '/@environ_base@/d' make.depend.tmp > make.depend
fi
rm -f make.depend.tmp