From 2933c14f78cd78f355e625ffa07dfb84c362dfbb Mon Sep 17 00:00:00 2001 From: pietrodelugas Date: Wed, 27 Jul 2016 17:17:32 +0000 Subject: [PATCH] completed the implementation of the new tq_smoothing variable in the new xml schema git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12620 c92efa57-630b-4861-b058-cf58834340f0 --- Modules/qes_libs.f90 | 12 +++++++++++- Modules/qes_types.f90 | 1 + Modules/qexsd_input.f90 | 2 +- Modules/qexsd_reader_module.f90 | 7 +++++-- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/Modules/qes_libs.f90 b/Modules/qes_libs.f90 index cf6787f1e..f51b4c67a 100644 --- a/Modules/qes_libs.f90 +++ b/Modules/qes_libs.f90 @@ -3678,6 +3678,13 @@ SUBROUTINE qes_write_electron_control(iun, obj) WRITE(iun, '(A)',advance='no') 'false' ENDIF CALL iotk_write_end(iun, 'real_space_q',indentation=.FALSE.) + CALL iotk_write_begin(iun, 'tqr_smoothing',new_line=.FALSE.) + IF (obj%tqr_smoothing) THEN + WRITE(iun, '(A)',advance='no') 'true' + ELSE + WRITE(iun, '(A)',advance='no') 'false' + ENDIF + CALL iotk_write_end(iun, 'tqr_smoothing',indentation=.FALSE.) CALL iotk_write_begin(iun, 'diago_thr_init') WRITE(iun, '(E20.7)') obj%diago_thr_init CALL iotk_write_end(iun, 'diago_thr_init') @@ -3697,7 +3704,8 @@ END SUBROUTINE qes_write_electron_control SUBROUTINE qes_init_electron_control(obj, tagname, diagonalization, mixing_mode, & mixing_beta, conv_thr, mixing_ndim, max_nstep, real_space_q, & - diago_thr_init, diago_full_acc, diago_cg_maxiter) + tqr_smoothing, diago_thr_init, diago_full_acc, & + diago_cg_maxiter) IMPLICIT NONE TYPE(electron_control_type) :: obj @@ -3710,6 +3718,7 @@ SUBROUTINE qes_init_electron_control(obj, tagname, diagonalization, mixing_mode, INTEGER :: mixing_ndim INTEGER :: max_nstep LOGICAL :: real_space_q + LOGICAL :: tqr_smoothing REAL(DP) :: diago_thr_init LOGICAL :: diago_full_acc INTEGER :: diago_cg_maxiter @@ -3722,6 +3731,7 @@ SUBROUTINE qes_init_electron_control(obj, tagname, diagonalization, mixing_mode, obj%mixing_ndim = mixing_ndim obj%max_nstep = max_nstep obj%real_space_q = real_space_q + obj%tqr_smoothing = tqr_smoothing obj%diago_thr_init = diago_thr_init obj%diago_full_acc = diago_full_acc obj%diago_cg_maxiter = diago_cg_maxiter diff --git a/Modules/qes_types.f90 b/Modules/qes_types.f90 index 47d8a7d9c..ac7afa858 100644 --- a/Modules/qes_types.f90 +++ b/Modules/qes_types.f90 @@ -739,6 +739,7 @@ TYPE :: electron_control_type INTEGER :: mixing_ndim INTEGER :: max_nstep LOGICAL :: real_space_q + LOGICAL :: tqr_smoothing REAL(DP) :: diago_thr_init LOGICAL :: diago_full_acc INTEGER :: diago_cg_maxiter diff --git a/Modules/qexsd_input.f90 b/Modules/qexsd_input.f90 index fff38907a..1986a9cb6 100644 --- a/Modules/qexsd_input.f90 +++ b/Modules/qexsd_input.f90 @@ -261,7 +261,7 @@ MODULE qexsd_input CALL qes_init_electron_control(obj,TAGNAME,diagonalization=diagonalization,& mixing_mode=mixing_mode,mixing_beta=mixing_beta,& conv_thr=conv_thr,mixing_ndim=mixing_ndim,max_nstep=max_nstep,& - real_space_q=tqr,tq_smoothing=tq_smoothing,diago_thr_init=diago_thr_init,& + real_space_q=tqr,tqr_smoothing=tq_smoothing,diago_thr_init=diago_thr_init,& diago_full_acc=diago_full_acc,diago_cg_maxiter=diago_cg_maxiter) ! END SUBROUTINE qexsd_init_electron_control diff --git a/Modules/qexsd_reader_module.f90 b/Modules/qexsd_reader_module.f90 index 35fa70d9c..63e88978c 100644 --- a/Modules/qexsd_reader_module.f90 +++ b/Modules/qexsd_reader_module.f90 @@ -1236,7 +1236,7 @@ INTEGER :: ierr CHARACTER(LEN=256) :: diago_str_, mixing_str_ REAL(DP) :: mixing_beta_, conv_thr_, diago_thr_init_ INTEGER :: mixing_ndim_, max_nstep_, diago_cg_maxiter_ -LOGICAL :: real_space_q_, diago_full_acc_ +LOGICAL :: real_space_q_, diago_full_acc_, tqr_smoothing_ ! ispresent = .FALSE. CALL iotk_scan_begin( iunit, "electron_control", FOUND = ispresent, IERR = ierr ) @@ -1263,6 +1263,9 @@ IF ( ierr /= 0 ) RETURN CALL iotk_scan_dat( iunit, "real_space_q" , real_space_q_, IERR = ierr ) IF ( ierr /= 0 ) RETURN ! +CALL iotk_scan_dat ( iunit, "tqr_smoothing", tqr_smoothing_, IERR = ierr ) +IF ( ierr /= 0 ) RETURN +! CALL iotk_scan_dat( iunit, "diago_thr_init" , diago_thr_init_, IERR = ierr ) IF ( ierr /= 0 ) RETURN ! @@ -1278,7 +1281,7 @@ IF ( ierr /= 0 ) THEN RETURN END IF CALL qes_init_electron_control ( obj, "electron_control", diago_str_, mixing_str_, mixing_beta_, & - conv_thr_, mixing_ndim_, max_nstep_, real_space_q_, diago_thr_init_, & + conv_thr_, mixing_ndim_, max_nstep_, real_space_q_, tqr_smoothing_, diago_thr_init_, & diago_full_acc_, diago_cg_maxiter_) ! END SUBROUTINE qexsd_get_electron_control