mirror of https://gitlab.com/QEF/q-e.git
More xml cleanup, cray workarounds, fix for a small error previosly introduced
This commit is contained in:
parent
b3efa66ce8
commit
754321ec01
|
@ -70,29 +70,27 @@ CONTAINS
|
|||
!
|
||||
CHARACTER(27) :: subname="qexsd_init_convergence_info"
|
||||
TYPE(scf_conv_type) :: scf_conv
|
||||
TYPE(opt_conv_type),POINTER :: opt_conv
|
||||
TYPE(opt_conv_type) :: opt_conv
|
||||
!
|
||||
NULLIFY(opt_conv)
|
||||
call qes_init (scf_conv, "scf_conv", scf_has_converged, n_scf_steps, scf_error)
|
||||
!
|
||||
IF ( PRESENT(optimization_has_converged )) THEN
|
||||
!
|
||||
IF ( .NOT. PRESENT(n_opt_steps) ) CALL errore(subname,"n_opt_steps not present",10)
|
||||
IF ( .NOT. PRESENT(grad_norm) ) CALL errore(subname,"grad_norm not present",10)
|
||||
ALLOCATE ( opt_conv)
|
||||
!
|
||||
call qes_init (opt_conv, "opt_conv", optimization_has_converged, n_opt_steps, grad_norm)
|
||||
call qes_init (obj, "convergence_info", scf_conv, opt_conv)
|
||||
call qes_reset (scf_conv)
|
||||
CALL qes_reset (opt_conv)
|
||||
!
|
||||
ELSE
|
||||
!
|
||||
call qes_init (obj, "convergence_info", scf_conv)
|
||||
call qes_reset (scf_conv)
|
||||
!
|
||||
ENDIF
|
||||
!
|
||||
call qes_init (obj, "convergence_info", scf_conv, opt_conv)
|
||||
!
|
||||
call qes_reset (scf_conv)
|
||||
IF (ASSOCIATED(opt_conv)) THEN
|
||||
CALL qes_reset (opt_conv)
|
||||
DEALLOCATE(opt_conv)
|
||||
NULLIFY ( opt_conv)
|
||||
END IF
|
||||
!
|
||||
END SUBROUTINE qexsd_init_convergence_info
|
||||
!
|
||||
!
|
||||
|
@ -185,34 +183,34 @@ CONTAINS
|
|||
TYPE(wyckoff_positions_type) :: wyckoff_pos
|
||||
REAL(DP) :: new_alat
|
||||
INTEGER,TARGET :: ibrav_tgt
|
||||
INTEGER,POINTER :: ibrav_ptr
|
||||
CHARACTER(LEN=256),POINTER :: use_alt_axes_
|
||||
INTEGER,POINTER :: ibrav_ptr => null ()
|
||||
CHARACTER(LEN=256),TARGET :: use_alt_axes
|
||||
CHARACTER(LEN=256),POINTER :: use_alt_axes_ => null ()
|
||||
!
|
||||
! atomic positions
|
||||
!
|
||||
NULLIFY(use_alt_axes_, ibrav_ptr)
|
||||
IF ( ibrav .ne. 0 ) THEN
|
||||
ibrav_tgt = abs(ibrav)
|
||||
ibrav_ptr => ibrav_tgt
|
||||
use_alt_axes_ => use_alt_axes
|
||||
SELECT CASE(ibrav)
|
||||
CASE(-3)
|
||||
use_alt_axes="b:a-b+c:-c"
|
||||
use_alt_axes_ => use_alt_axes
|
||||
CASE(-5)
|
||||
use_alt_axes="3fold-111"
|
||||
use_alt_axes_ => use_alt_axes
|
||||
CASE(-9)
|
||||
use_alt_axes="-b:a:c"
|
||||
use_alt_axes_ => use_alt_axes
|
||||
CASE (91)
|
||||
ibrav_tgt = 9
|
||||
use_alt_axes ="bcoA-type"
|
||||
use_alt_axes_ => use_alt_axes
|
||||
CASE(-12,-13)
|
||||
use_alt_axes="unique-axis-b"
|
||||
CASE default
|
||||
NULLIFY (use_alt_axes_)
|
||||
use_alt_axes_ => use_alt_axes
|
||||
END SELECT
|
||||
END IF
|
||||
|
||||
!
|
||||
ALLOCATE(atom(nat))
|
||||
DO ia = 1, nat
|
||||
|
@ -1006,8 +1004,8 @@ CONTAINS
|
|||
END DO
|
||||
CALL qes_reset( starting_k_points_ )
|
||||
DEALLOCATE (ks_objs,eigenvalues, occupations)
|
||||
END SUBROUTINE qexsd_init_band_structure
|
||||
!
|
||||
END SUBROUTINE qexsd_init_band_structure
|
||||
!
|
||||
!---------------------------------------------------------------------------------------
|
||||
SUBROUTINE qexsd_init_total_energy(obj, etot, eband, ehart, vtxc, etxc, ewald, degauss, demet, &
|
||||
|
|
|
@ -291,13 +291,12 @@ MODULE pw_restart_new
|
|||
call qexsd_init_convergence_info(output_obj%convergence_info, &
|
||||
SCF_HAS_CONVERGED = scf_has_converged, &
|
||||
N_SCF_STEPS = n_scf_steps_, SCF_ERROR=scf_error/e2,&
|
||||
OPTIMIZATION_HAS_CONVERGED = conv_ions, &
|
||||
N_OPT_STEPS = n_opt_steps, GRAD_NORM = sumfor)
|
||||
ELSE
|
||||
call qexsd_init_convergence_info(output_obj%convergence_info, &
|
||||
SCF_HAS_CONVERGED = scf_has_converged, &
|
||||
OPTIMIZATION_HAS_CONVERGED = conv_ions, &
|
||||
N_SCF_STEPS = n_scf_steps_, SCF_ERROR=scf_error/e2,&
|
||||
N_OPT_STEPS = n_opt_steps, GRAD_NORM = sumfor)
|
||||
N_SCF_STEPS = n_scf_steps_, SCF_ERROR=scf_error/e2)
|
||||
END IF
|
||||
output_obj%convergence_info_ispresent = .TRUE.
|
||||
!
|
||||
|
@ -496,7 +495,7 @@ MODULE pw_restart_new
|
|||
CALL qexsd_init_dft (output_obj%dft, dft_name, hybrid_obj_opt, vdw_obj_opt, dftU_obj_opt)
|
||||
CALL qes_reset(hybrid_obj_opt)
|
||||
CALL qes_reset(vdw_obj_opt)
|
||||
CALL qes_reset( dftU_obj_opt)
|
||||
CALL qes_reset(dftU_obj_opt)
|
||||
!
|
||||
!-------------------------------------------------------------------------------
|
||||
! ... PERIODIC BOUNDARY CONDITIONS
|
||||
|
|
Loading…
Reference in New Issue