adapting schema qes_211101 for xml printout of

updates xml printout of PW and CP
This commit is contained in:
Pietro Delugas 2021-12-02 19:00:51 +01:00 committed by Pietro Delugas
parent ff90d73b73
commit 3ca4141caf
12 changed files with 5993 additions and 3138 deletions

View File

@ -44,7 +44,9 @@ MODULE qes_bcast_module
MODULE PROCEDURE qes_bcast_qpoint_grid
MODULE PROCEDURE qes_bcast_dftU
MODULE PROCEDURE qes_bcast_HubbardCommon
MODULE PROCEDURE qes_bcast_SiteMoment
MODULE PROCEDURE qes_bcast_HubbardJ
MODULE PROCEDURE qes_bcast_SitMag
MODULE PROCEDURE qes_bcast_starting_ns
MODULE PROCEDURE qes_bcast_Hubbard_ns
MODULE PROCEDURE qes_bcast_HubbardBack
@ -99,6 +101,17 @@ MODULE qes_bcast_module
MODULE PROCEDURE qes_bcast_band_structure
MODULE PROCEDURE qes_bcast_ks_energies
MODULE PROCEDURE qes_bcast_closed
MODULE PROCEDURE qes_bcast_cpstatus
MODULE PROCEDURE qes_bcast_cpnumstep
MODULE PROCEDURE qes_bcast_cptimesteps
MODULE PROCEDURE qes_bcast_cpstep
MODULE PROCEDURE qes_bcast_cp_ionPos
MODULE PROCEDURE qes_bcast_cp_ionsNose
MODULE PROCEDURE qes_bcast_cp_elecNose
MODULE PROCEDURE qes_bcast_cp_cell
MODULE PROCEDURE qes_bcast_cp_cellNose
MODULE PROCEDURE qes_bcast_scalmags
MODULE PROCEDURE qes_bcast_d3mags
MODULE PROCEDURE qes_bcast_vector
MODULE PROCEDURE qes_bcast_integerVector
MODULE PROCEDURE qes_bcast_matrix
@ -142,9 +155,15 @@ MODULE qes_bcast_module
CALL mp_bcast(obj%output_ispresent, ionode_id, comm)
IF (obj%output_ispresent) &
CALL qes_bcast_output(obj%output, ionode_id, comm)
CALL mp_bcast(obj%status_ispresent, ionode_id, comm)
IF (obj%status_ispresent) &
CALL mp_bcast(obj%status, ionode_id, comm)
CALL mp_bcast(obj%STATUS_ispresent, ionode_id, comm)
IF (obj%STATUS_ispresent) &
CALL qes_bcast_cpstatus(obj%STATUS, ionode_id, comm)
CALL mp_bcast(obj%TIMESTEPS_ispresent, ionode_id, comm)
IF (obj%TIMESTEPS_ispresent) &
CALL qes_bcast_cptimesteps(obj%TIMESTEPS, ionode_id, comm)
CALL mp_bcast(obj%exit_status_ispresent, ionode_id, comm)
IF (obj%exit_status_ispresent) &
CALL mp_bcast(obj%exit_status, ionode_id, comm)
CALL mp_bcast(obj%cputime_ispresent, ionode_id, comm)
IF (obj%cputime_ispresent) &
CALL mp_bcast(obj%cputime, ionode_id, comm)
@ -262,7 +281,9 @@ MODULE qes_bcast_module
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%n_step, ionode_id, comm)
CALL mp_bcast(obj%n_step_ispresent, ionode_id, comm)
IF (obj%n_step_ispresent) &
CALL mp_bcast(obj%n_step, ionode_id, comm)
CALL qes_bcast_scf_conv(obj%scf_conv, ionode_id, comm)
CALL qes_bcast_atomic_structure(obj%atomic_structure, ionode_id, comm)
CALL qes_bcast_total_energy(obj%total_energy, ionode_id, comm)
@ -418,8 +439,12 @@ MODULE qes_bcast_module
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%NAME, ionode_id, comm)
CALL mp_bcast(obj%VERSION, ionode_id, comm)
CALL mp_bcast(obj%NAME_ispresent, ionode_id, comm)
IF (obj%NAME_ispresent) &
CALL mp_bcast(obj%NAME, ionode_id, comm)
CALL mp_bcast(obj%VERSION_ispresent, ionode_id, comm)
IF (obj%VERSION_ispresent) &
CALL mp_bcast(obj%VERSION, ionode_id, comm)
CALL mp_bcast(obj%xml_format, ionode_id, comm)
!
END SUBROUTINE qes_bcast_xml_format
@ -436,8 +461,12 @@ MODULE qes_bcast_module
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%NAME, ionode_id, comm)
CALL mp_bcast(obj%VERSION, ionode_id, comm)
CALL mp_bcast(obj%NAME_ispresent, ionode_id, comm)
IF (obj%NAME_ispresent) &
CALL mp_bcast(obj%NAME, ionode_id, comm)
CALL mp_bcast(obj%VERSION_ispresent, ionode_id, comm)
IF (obj%VERSION_ispresent) &
CALL mp_bcast(obj%VERSION, ionode_id, comm)
CALL mp_bcast(obj%creator, ionode_id, comm)
!
END SUBROUTINE qes_bcast_creator
@ -454,8 +483,12 @@ MODULE qes_bcast_module
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%DATE, ionode_id, comm)
CALL mp_bcast(obj%TIME, ionode_id, comm)
CALL mp_bcast(obj%DATE_ispresent, ionode_id, comm)
IF (obj%DATE_ispresent) &
CALL mp_bcast(obj%DATE, ionode_id, comm)
CALL mp_bcast(obj%TIME_ispresent, ionode_id, comm)
IF (obj%TIME_ispresent) &
CALL mp_bcast(obj%TIME, ionode_id, comm)
CALL mp_bcast(obj%created, ionode_id, comm)
!
END SUBROUTINE qes_bcast_created
@ -473,7 +506,9 @@ MODULE qes_bcast_module
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%ntyp, ionode_id, comm)
CALL mp_bcast(obj%ntyp_ispresent, ionode_id, comm)
IF (obj%ntyp_ispresent) &
CALL mp_bcast(obj%ntyp, ionode_id, comm)
CALL mp_bcast(obj%pseudo_dir_ispresent, ionode_id, comm)
IF (obj%pseudo_dir_ispresent) &
CALL mp_bcast(obj%pseudo_dir, ionode_id, comm)
@ -497,7 +532,9 @@ MODULE qes_bcast_module
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%name, ionode_id, comm)
CALL mp_bcast(obj%name_ispresent, ionode_id, comm)
IF (obj%name_ispresent) &
CALL mp_bcast(obj%name, ionode_id, comm)
CALL mp_bcast(obj%mass_ispresent, ionode_id, comm)
IF (obj%mass_ispresent) &
CALL mp_bcast(obj%mass, ionode_id, comm)
@ -526,7 +563,9 @@ MODULE qes_bcast_module
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%nat, ionode_id, comm)
CALL mp_bcast(obj%nat_ispresent, ionode_id, comm)
IF (obj%nat_ispresent) &
CALL mp_bcast(obj%nat, ionode_id, comm)
CALL mp_bcast(obj%alat_ispresent, ionode_id, comm)
IF (obj%alat_ispresent) &
CALL mp_bcast(obj%alat, ionode_id, comm)
@ -582,7 +621,9 @@ MODULE qes_bcast_module
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%name, ionode_id, comm)
CALL mp_bcast(obj%name_ispresent, ionode_id, comm)
IF (obj%name_ispresent) &
CALL mp_bcast(obj%name, ionode_id, comm)
CALL mp_bcast(obj%position_ispresent, ionode_id, comm)
IF (obj%position_ispresent) &
CALL mp_bcast(obj%position, ionode_id, comm)
@ -606,7 +647,9 @@ MODULE qes_bcast_module
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%space_group, ionode_id, comm)
CALL mp_bcast(obj%space_group_ispresent, ionode_id, comm)
IF (obj%space_group_ispresent) &
CALL mp_bcast(obj%space_group, ionode_id, comm)
CALL mp_bcast(obj%more_options_ispresent, ionode_id, comm)
IF (obj%more_options_ispresent) &
CALL mp_bcast(obj%more_options, ionode_id, comm)
@ -712,9 +755,15 @@ MODULE qes_bcast_module
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%nqx1, ionode_id, comm)
CALL mp_bcast(obj%nqx2, ionode_id, comm)
CALL mp_bcast(obj%nqx3, ionode_id, comm)
CALL mp_bcast(obj%nqx1_ispresent, ionode_id, comm)
IF (obj%nqx1_ispresent) &
CALL mp_bcast(obj%nqx1, ionode_id, comm)
CALL mp_bcast(obj%nqx2_ispresent, ionode_id, comm)
IF (obj%nqx2_ispresent) &
CALL mp_bcast(obj%nqx2, ionode_id, comm)
CALL mp_bcast(obj%nqx3_ispresent, ionode_id, comm)
IF (obj%nqx3_ispresent) &
CALL mp_bcast(obj%nqx3, ionode_id, comm)
CALL mp_bcast(obj%qpoint_grid, ionode_id, comm)
!
END SUBROUTINE qes_bcast_qpoint_grid
@ -841,7 +890,9 @@ MODULE qes_bcast_module
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%specie, ionode_id, comm)
CALL mp_bcast(obj%specie_ispresent, ionode_id, comm)
IF (obj%specie_ispresent) &
CALL mp_bcast(obj%specie, ionode_id, comm)
CALL mp_bcast(obj%label_ispresent, ionode_id, comm)
IF (obj%label_ispresent) &
CALL mp_bcast(obj%label, ionode_id, comm)
@ -850,6 +901,31 @@ MODULE qes_bcast_module
END SUBROUTINE qes_bcast_HubbardCommon
!
!
SUBROUTINE qes_bcast_SiteMoment(obj, ionode_id, comm )
!
IMPLICIT NONE
!
TYPE(SiteMoment_type), INTENT(INOUT) :: obj
INTEGER, INTENT(IN) :: ionode_id, comm
!
CALL mp_bcast(obj%tagname, ionode_id, comm)
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%species_ispresent, ionode_id, comm)
IF (obj%species_ispresent) &
CALL mp_bcast(obj%species, ionode_id, comm)
CALL mp_bcast(obj%atom_ispresent, ionode_id, comm)
IF (obj%atom_ispresent) &
CALL mp_bcast(obj%atom, ionode_id, comm)
CALL mp_bcast(obj%charge_ispresent, ionode_id, comm)
IF (obj%charge_ispresent) &
CALL mp_bcast(obj%charge, ionode_id, comm)
CALL mp_bcast(obj%SiteMoment, ionode_id, comm)
!
END SUBROUTINE qes_bcast_SiteMoment
!
!
SUBROUTINE qes_bcast_HubbardJ(obj, ionode_id, comm )
!
IMPLICIT NONE
@ -861,13 +937,42 @@ MODULE qes_bcast_module
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%specie, ionode_id, comm)
CALL mp_bcast(obj%label, ionode_id, comm)
CALL mp_bcast(obj%specie_ispresent, ionode_id, comm)
IF (obj%specie_ispresent) &
CALL mp_bcast(obj%specie, ionode_id, comm)
CALL mp_bcast(obj%label_ispresent, ionode_id, comm)
IF (obj%label_ispresent) &
CALL mp_bcast(obj%label, ionode_id, comm)
CALL mp_bcast(obj%HubbardJ, ionode_id, comm)
!
END SUBROUTINE qes_bcast_HubbardJ
!
!
SUBROUTINE qes_bcast_SitMag(obj, ionode_id, comm )
!
IMPLICIT NONE
!
TYPE(SitMag_type), INTENT(INOUT) :: obj
INTEGER, INTENT(IN) :: ionode_id, comm
!
CALL mp_bcast(obj%tagname, ionode_id, comm)
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%species_ispresent, ionode_id, comm)
IF (obj%species_ispresent) &
CALL mp_bcast(obj%species, ionode_id, comm)
CALL mp_bcast(obj%atom_ispresent, ionode_id, comm)
IF (obj%atom_ispresent) &
CALL mp_bcast(obj%atom, ionode_id, comm)
CALL mp_bcast(obj%charge_ispresent, ionode_id, comm)
IF (obj%charge_ispresent) &
CALL mp_bcast(obj%charge, ionode_id, comm)
CALL mp_bcast(obj%SitMag, ionode_id, comm)
!
END SUBROUTINE qes_bcast_SitMag
!
!
SUBROUTINE qes_bcast_starting_ns(obj, ionode_id, comm )
!
IMPLICIT NONE
@ -879,9 +984,6 @@ MODULE qes_bcast_module
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%specie, ionode_id, comm)
CALL mp_bcast(obj%label, ionode_id, comm)
CALL mp_bcast(obj%spin, ionode_id, comm)
CALL mp_bcast(obj%size, ionode_id, comm)
IF (.NOT.ionode) ALLOCATE(obj%starting_ns(obj%size))
CALL mp_bcast(obj%starting_ns, ionode_id, comm)
@ -902,10 +1004,6 @@ MODULE qes_bcast_module
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%specie, ionode_id, comm)
CALL mp_bcast(obj%label, ionode_id, comm)
CALL mp_bcast(obj%spin, ionode_id, comm)
CALL mp_bcast(obj%index, ionode_id, comm)
CALL mp_bcast(obj%rank, ionode_id, comm)
IF (.NOT.ionode) ALLOCATE(obj%dims(obj%rank))
CALL mp_bcast(obj%dims, ionode_id, comm)
@ -934,7 +1032,9 @@ MODULE qes_bcast_module
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%species, ionode_id, comm)
CALL mp_bcast(obj%species_ispresent, ionode_id, comm)
IF (obj%species_ispresent) &
CALL mp_bcast(obj%species, ionode_id, comm)
CALL mp_bcast(obj%background, ionode_id, comm)
CALL mp_bcast(obj%ndim_l_number, ionode_id, comm)
IF (.NOT.ionode) ALLOCATE(obj%l_number(obj%ndim_l_number))
@ -956,7 +1056,9 @@ MODULE qes_bcast_module
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%l_index, ionode_id, comm)
CALL mp_bcast(obj%l_index_ispresent, ionode_id, comm)
IF (obj%l_index_ispresent) &
CALL mp_bcast(obj%l_index, ionode_id, comm)
CALL mp_bcast(obj%backL, ionode_id, comm)
!
END SUBROUTINE qes_bcast_backL
@ -1088,7 +1190,9 @@ MODULE qes_bcast_module
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%degauss, ionode_id, comm)
CALL mp_bcast(obj%degauss_ispresent, ionode_id, comm)
IF (obj%degauss_ispresent) &
CALL mp_bcast(obj%degauss, ionode_id, comm)
CALL mp_bcast(obj%smearing, ionode_id, comm)
!
END SUBROUTINE qes_bcast_smearing
@ -1190,9 +1294,15 @@ MODULE qes_bcast_module
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%nr1, ionode_id, comm)
CALL mp_bcast(obj%nr2, ionode_id, comm)
CALL mp_bcast(obj%nr3, ionode_id, comm)
CALL mp_bcast(obj%nr1_ispresent, ionode_id, comm)
IF (obj%nr1_ispresent) &
CALL mp_bcast(obj%nr1, ionode_id, comm)
CALL mp_bcast(obj%nr2_ispresent, ionode_id, comm)
IF (obj%nr2_ispresent) &
CALL mp_bcast(obj%nr2, ionode_id, comm)
CALL mp_bcast(obj%nr3_ispresent, ionode_id, comm)
IF (obj%nr3_ispresent) &
CALL mp_bcast(obj%nr3, ionode_id, comm)
CALL mp_bcast(obj%basisSetItem, ionode_id, comm)
!
END SUBROUTINE qes_bcast_basisSetItem
@ -1252,16 +1362,15 @@ MODULE qes_bcast_module
CALL mp_bcast(obj%diago_david_ndim_ispresent, ionode_id, comm)
IF (obj%diago_david_ndim_ispresent) &
CALL mp_bcast(obj%diago_david_ndim, ionode_id, comm)
!
CALL mp_bcast(obj%diago_rmm_ndim_ispresent, ionode_id, comm)
IF (obj%diago_rmm_ndim_ispresent) &
CALL mp_bcast(obj%diago_rmm_ndim, ionode_id, comm)
CALL mp_bcast(obj%diago_rmm_conv_ispresent, ionode_id, comm)
IF (obj%diago_rmm_conv_ispresent) &
CALL mp_bcast(obj%diago_rmm_conv, ionode_id, comm)
CALL mp_bcast(obj%diago_gs_nblock_ispresent, ionode_id, comm)
IF (obj%diago_gs_nblock_ispresent) &
CALL mp_bcast(obj%diago_gs_nblock, ionode_id, comm)
CALL mp_bcast(obj%diago_rmm_conv_ispresent, ionode_id, comm)
IF (obj%diago_rmm_conv_ispresent) &
CALL mp_bcast(obj%diago_rmm_conv, ionode_id, comm)
!
END SUBROUTINE qes_bcast_electron_control
!
@ -1307,12 +1416,24 @@ MODULE qes_bcast_module
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%nk1, ionode_id, comm)
CALL mp_bcast(obj%nk2, ionode_id, comm)
CALL mp_bcast(obj%nk3, ionode_id, comm)
CALL mp_bcast(obj%k1, ionode_id, comm)
CALL mp_bcast(obj%k2, ionode_id, comm)
CALL mp_bcast(obj%k3, ionode_id, comm)
CALL mp_bcast(obj%nk1_ispresent, ionode_id, comm)
IF (obj%nk1_ispresent) &
CALL mp_bcast(obj%nk1, ionode_id, comm)
CALL mp_bcast(obj%nk2_ispresent, ionode_id, comm)
IF (obj%nk2_ispresent) &
CALL mp_bcast(obj%nk2, ionode_id, comm)
CALL mp_bcast(obj%nk3_ispresent, ionode_id, comm)
IF (obj%nk3_ispresent) &
CALL mp_bcast(obj%nk3, ionode_id, comm)
CALL mp_bcast(obj%k1_ispresent, ionode_id, comm)
IF (obj%k1_ispresent) &
CALL mp_bcast(obj%k1, ionode_id, comm)
CALL mp_bcast(obj%k2_ispresent, ionode_id, comm)
IF (obj%k2_ispresent) &
CALL mp_bcast(obj%k2, ionode_id, comm)
CALL mp_bcast(obj%k3_ispresent, ionode_id, comm)
IF (obj%k3_ispresent) &
CALL mp_bcast(obj%k3, ionode_id, comm)
CALL mp_bcast(obj%monkhorst_pack, ionode_id, comm)
!
END SUBROUTINE qes_bcast_monkhorst_pack
@ -1434,6 +1555,9 @@ MODULE qes_bcast_module
CALL mp_bcast(obj%cell_factor_ispresent, ionode_id, comm)
IF (obj%cell_factor_ispresent) &
CALL mp_bcast(obj%cell_factor, ionode_id, comm)
CALL mp_bcast(obj%cell_do_free_ispresent, ionode_id, comm)
IF (obj%cell_do_free_ispresent) &
CALL mp_bcast(obj%cell_do_free, ionode_id, comm)
CALL mp_bcast(obj%fix_volume_ispresent, ionode_id, comm)
IF (obj%fix_volume_ispresent) &
CALL mp_bcast(obj%fix_volume, ionode_id, comm)
@ -1486,9 +1610,9 @@ MODULE qes_bcast_module
CALL mp_bcast(obj%esm_ispresent, ionode_id, comm)
IF (obj%esm_ispresent) &
CALL qes_bcast_esm(obj%esm, ionode_id, comm)
CALL mp_bcast(obj%fcp_ispresent, ionode_id, comm)
IF (obj%fcp_ispresent) &
CALL mp_bcast(obj%fcp, ionode_id, comm)
CALL mp_bcast(obj%fcp_opt_ispresent, ionode_id, comm)
IF (obj%fcp_opt_ispresent) &
CALL mp_bcast(obj%fcp_opt, ionode_id, comm)
CALL mp_bcast(obj%fcp_mu_ispresent, ionode_id, comm)
IF (obj%fcp_mu_ispresent) &
CALL mp_bcast(obj%fcp_mu, ionode_id, comm)
@ -1682,8 +1806,6 @@ MODULE qes_bcast_module
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%ispin, ionode_id, comm)
CALL mp_bcast(obj%spin_factor, ionode_id, comm)
CALL mp_bcast(obj%size, ionode_id, comm)
IF (.NOT.ionode) ALLOCATE(obj%inputOccupations(obj%size))
CALL mp_bcast(obj%inputOccupations, ionode_id, comm)
@ -2019,7 +2141,6 @@ MODULE qes_bcast_module
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%nat, ionode_id, comm)
CALL mp_bcast(obj%size, ionode_id, comm)
IF (.NOT.ionode) ALLOCATE(obj%equivalent_atoms(obj%size))
CALL mp_bcast(obj%equivalent_atoms, ionode_id, comm)
@ -2082,8 +2203,19 @@ MODULE qes_bcast_module
CALL mp_bcast(obj%lsda, ionode_id, comm)
CALL mp_bcast(obj%noncolin, ionode_id, comm)
CALL mp_bcast(obj%spinorbit, ionode_id, comm)
CALL mp_bcast(obj%total, ionode_id, comm)
CALL mp_bcast(obj%total_ispresent, ionode_id, comm)
IF (obj%total_ispresent) &
CALL mp_bcast(obj%total, ionode_id, comm)
CALL mp_bcast(obj%total_vec_ispresent, ionode_id, comm)
IF (obj%total_vec_ispresent) &
CALL mp_bcast(obj%total_vec, ionode_id, comm)
CALL mp_bcast(obj%absolute, ionode_id, comm)
CALL mp_bcast(obj%Scalar_Site_Magnetic_Moments_ispresent, ionode_id, comm)
IF (obj%Scalar_Site_Magnetic_Moments_ispresent) &
CALL qes_bcast_scalmags(obj%Scalar_Site_Magnetic_Moments, ionode_id, comm)
CALL mp_bcast(obj%Site_Magnetizations_ispresent, ionode_id, comm)
IF (obj%Site_Magnetizations_ispresent) &
CALL qes_bcast_d3mags(obj%Site_Magnetizations, ionode_id, comm)
CALL mp_bcast(obj%do_magnetization_ispresent, ionode_id, comm)
IF (obj%do_magnetization_ispresent) &
CALL mp_bcast(obj%do_magnetization, ionode_id, comm)
@ -2223,13 +2355,264 @@ MODULE qes_bcast_module
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%DATE, ionode_id, comm)
CALL mp_bcast(obj%TIME, ionode_id, comm)
CALL mp_bcast(obj%DATE_ispresent, ionode_id, comm)
IF (obj%DATE_ispresent) &
CALL mp_bcast(obj%DATE, ionode_id, comm)
CALL mp_bcast(obj%TIME_ispresent, ionode_id, comm)
IF (obj%TIME_ispresent) &
CALL mp_bcast(obj%TIME, ionode_id, comm)
CALL mp_bcast(obj%closed, ionode_id, comm)
!
END SUBROUTINE qes_bcast_closed
!
!
SUBROUTINE qes_bcast_cpstatus(obj, ionode_id, comm )
!
IMPLICIT NONE
!
TYPE(cpstatus_type), INTENT(INOUT) :: obj
INTEGER, INTENT(IN) :: ionode_id, comm
!
CALL mp_bcast(obj%tagname, ionode_id, comm)
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL qes_bcast_cpnumstep(obj%STEP, ionode_id, comm)
CALL qes_bcast_scalarQuantity(obj%TIME, ionode_id, comm)
CALL mp_bcast(obj%TITLE, ionode_id, comm)
CALL qes_bcast_scalarQuantity(obj%KINETIC_ENERGY, ionode_id, comm)
CALL qes_bcast_scalarQuantity(obj%HARTREE_ENERGY, ionode_id, comm)
CALL qes_bcast_scalarQuantity(obj%EWALD_TERM, ionode_id, comm)
CALL qes_bcast_scalarQuantity(obj%GAUSS_SELFINT, ionode_id, comm)
CALL qes_bcast_scalarQuantity(obj%LPSP_ENERGY, ionode_id, comm)
CALL qes_bcast_scalarQuantity(obj%NLPSP_ENERGY, ionode_id, comm)
CALL qes_bcast_scalarQuantity(obj%EXC_ENERGY, ionode_id, comm)
CALL qes_bcast_scalarQuantity(obj%AVERAGE_POT, ionode_id, comm)
CALL qes_bcast_scalarQuantity(obj%ENTHALPY, ionode_id, comm)
!
END SUBROUTINE qes_bcast_cpstatus
!
!
SUBROUTINE qes_bcast_cpnumstep(obj, ionode_id, comm )
!
IMPLICIT NONE
!
TYPE(cpnumstep_type), INTENT(INOUT) :: obj
INTEGER, INTENT(IN) :: ionode_id, comm
!
CALL mp_bcast(obj%tagname, ionode_id, comm)
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%ITERATION_ispresent, ionode_id, comm)
IF (obj%ITERATION_ispresent) &
CALL mp_bcast(obj%ITERATION, ionode_id, comm)
CALL mp_bcast(obj%cpnumstep, ionode_id, comm)
!
END SUBROUTINE qes_bcast_cpnumstep
!
!
SUBROUTINE qes_bcast_cptimesteps(obj, ionode_id, comm )
!
IMPLICIT NONE
!
TYPE(cptimesteps_type), INTENT(INOUT) :: obj
INTEGER, INTENT(IN) :: ionode_id, comm
!
CALL mp_bcast(obj%tagname, ionode_id, comm)
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%nt_ispresent, ionode_id, comm)
IF (obj%nt_ispresent) &
CALL mp_bcast(obj%nt, ionode_id, comm)
CALL qes_bcast_cpstep(obj%STEP0, ionode_id, comm)
CALL qes_bcast_cpstep(obj%STEPM, ionode_id, comm)
!
END SUBROUTINE qes_bcast_cptimesteps
!
!
SUBROUTINE qes_bcast_cpstep(obj, ionode_id, comm )
!
IMPLICIT NONE
!
TYPE(cpstep_type), INTENT(INOUT) :: obj
INTEGER, INTENT(IN) :: ionode_id, comm
!
CALL mp_bcast(obj%tagname, ionode_id, comm)
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%ACCUMULATORS_ispresent, ionode_id, comm)
IF (obj%ACCUMULATORS_ispresent) &
CALL mp_bcast(obj%ACCUMULATORS, ionode_id, comm)
CALL qes_bcast_cp_ionPos(obj%IONS_POSITIONS, ionode_id, comm)
CALL qes_bcast_cp_ionsNose(obj%IONS_NOSE, ionode_id, comm)
CALL mp_bcast(obj%ekincm_ispresent, ionode_id, comm)
IF (obj%ekincm_ispresent) &
CALL mp_bcast(obj%ekincm, ionode_id, comm)
CALL qes_bcast_cp_elecNose(obj%ELECTRONS_NOSE, ionode_id, comm)
CALL qes_bcast_cp_cell(obj%CELL_PARAMETERS, ionode_id, comm)
CALL qes_bcast_cp_cellNose(obj%CELL_NOSE, ionode_id, comm)
!
END SUBROUTINE qes_bcast_cpstep
!
!
SUBROUTINE qes_bcast_cp_ionPos(obj, ionode_id, comm )
!
IMPLICIT NONE
!
TYPE(cp_ionPos_type), INTENT(INOUT) :: obj
INTEGER, INTENT(IN) :: ionode_id, comm
!
CALL mp_bcast(obj%tagname, ionode_id, comm)
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%stau, ionode_id, comm)
CALL mp_bcast(obj%svel, ionode_id, comm)
CALL mp_bcast(obj%taui_ispresent, ionode_id, comm)
IF (obj%taui_ispresent) &
CALL mp_bcast(obj%taui, ionode_id, comm)
CALL mp_bcast(obj%cdmi_ispresent, ionode_id, comm)
IF (obj%cdmi_ispresent) &
CALL mp_bcast(obj%cdmi, ionode_id, comm)
CALL mp_bcast(obj%force_ispresent, ionode_id, comm)
IF (obj%force_ispresent) &
CALL mp_bcast(obj%force, ionode_id, comm)
!
END SUBROUTINE qes_bcast_cp_ionPos
!
!
SUBROUTINE qes_bcast_cp_ionsNose(obj, ionode_id, comm )
!
IMPLICIT NONE
!
TYPE(cp_ionsNose_type), INTENT(INOUT) :: obj
INTEGER, INTENT(IN) :: ionode_id, comm
!
CALL mp_bcast(obj%tagname, ionode_id, comm)
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%nhpcl, ionode_id, comm)
CALL mp_bcast(obj%nhpdim, ionode_id, comm)
CALL mp_bcast(obj%xnhp, ionode_id, comm)
CALL mp_bcast(obj%vnhp_ispresent, ionode_id, comm)
IF (obj%vnhp_ispresent) &
CALL mp_bcast(obj%vnhp, ionode_id, comm)
!
END SUBROUTINE qes_bcast_cp_ionsNose
!
!
SUBROUTINE qes_bcast_cp_elecNose(obj, ionode_id, comm )
!
IMPLICIT NONE
!
TYPE(cp_elecNose_type), INTENT(INOUT) :: obj
INTEGER, INTENT(IN) :: ionode_id, comm
!
CALL mp_bcast(obj%tagname, ionode_id, comm)
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%xnhe, ionode_id, comm)
CALL mp_bcast(obj%vnhe_ispresent, ionode_id, comm)
IF (obj%vnhe_ispresent) &
CALL mp_bcast(obj%vnhe, ionode_id, comm)
!
END SUBROUTINE qes_bcast_cp_elecNose
!
!
SUBROUTINE qes_bcast_cp_cell(obj, ionode_id, comm )
!
IMPLICIT NONE
!
TYPE(cp_cell_type), INTENT(INOUT) :: obj
INTEGER, INTENT(IN) :: ionode_id, comm
!
CALL mp_bcast(obj%tagname, ionode_id, comm)
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%ht, ionode_id, comm)
CALL mp_bcast(obj%htvel_ispresent, ionode_id, comm)
IF (obj%htvel_ispresent) &
CALL mp_bcast(obj%htvel, ionode_id, comm)
CALL mp_bcast(obj%gvel_ispresent, ionode_id, comm)
IF (obj%gvel_ispresent) &
CALL mp_bcast(obj%gvel, ionode_id, comm)
!
END SUBROUTINE qes_bcast_cp_cell
!
!
SUBROUTINE qes_bcast_cp_cellNose(obj, ionode_id, comm )
!
IMPLICIT NONE
!
TYPE(cp_cellNose_type), INTENT(INOUT) :: obj
INTEGER, INTENT(IN) :: ionode_id, comm
!
CALL mp_bcast(obj%tagname, ionode_id, comm)
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%xnhh, ionode_id, comm)
CALL mp_bcast(obj%vnhh_ispresent, ionode_id, comm)
IF (obj%vnhh_ispresent) &
CALL mp_bcast(obj%vnhh, ionode_id, comm)
!
END SUBROUTINE qes_bcast_cp_cellNose
!
!
SUBROUTINE qes_bcast_scalmags(obj, ionode_id, comm )
!
IMPLICIT NONE
!
TYPE(scalmags_type), INTENT(INOUT) :: obj
INTEGER, INTENT(IN) :: ionode_id, comm
INTEGER :: i
!
CALL mp_bcast(obj%tagname, ionode_id, comm)
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%nat_ispresent, ionode_id, comm)
IF (obj%nat_ispresent) &
CALL mp_bcast(obj%nat, ionode_id, comm)
CALL mp_bcast(obj%ndim_SiteMagnetization, ionode_id, comm)
IF (.NOT.ionode) ALLOCATE(obj%SiteMagnetization(obj%ndim_SiteMagnetization))
DO i=1, obj%ndim_SiteMagnetization
CALL qes_bcast_SiteMoment(obj%SiteMagnetization(i), ionode_id, comm)
ENDDO
!
END SUBROUTINE qes_bcast_scalmags
!
!
SUBROUTINE qes_bcast_d3mags(obj, ionode_id, comm )
!
IMPLICIT NONE
!
TYPE(d3mags_type), INTENT(INOUT) :: obj
INTEGER, INTENT(IN) :: ionode_id, comm
INTEGER :: i
!
CALL mp_bcast(obj%tagname, ionode_id, comm)
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%nat_ispresent, ionode_id, comm)
IF (obj%nat_ispresent) &
CALL mp_bcast(obj%nat, ionode_id, comm)
CALL mp_bcast(obj%ndim_SiteMagnetization, ionode_id, comm)
IF (.NOT.ionode) ALLOCATE(obj%SiteMagnetization(obj%ndim_SiteMagnetization))
DO i=1, obj%ndim_SiteMagnetization
CALL qes_bcast_SitMag(obj%SiteMagnetization(i), ionode_id, comm)
ENDDO
!
END SUBROUTINE qes_bcast_d3mags
!
!
SUBROUTINE qes_bcast_vector(obj, ionode_id, comm )
!
IMPLICIT NONE
@ -2335,10 +2718,12 @@ MODULE qes_bcast_module
CALL mp_bcast(obj%lwrite, ionode_id, comm)
CALL mp_bcast(obj%lread, ionode_id, comm)
!
CALL mp_bcast(obj%Units, ionode_id, comm)
CALL mp_bcast(obj%Units_ispresent, ionode_id, comm)
IF (obj%Units_ispresent) &
CALL mp_bcast(obj%Units, ionode_id, comm)
CALL mp_bcast(obj%scalarQuantity, ionode_id, comm)
!
END SUBROUTINE qes_bcast_scalarQuantity
!
!
END MODULE qes_bcast_module
END MODULE qes_bcast_module

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -45,7 +45,9 @@ MODULE qes_reset_module
MODULE PROCEDURE qes_reset_qpoint_grid
MODULE PROCEDURE qes_reset_dftU
MODULE PROCEDURE qes_reset_HubbardCommon
MODULE PROCEDURE qes_reset_SiteMoment
MODULE PROCEDURE qes_reset_HubbardJ
MODULE PROCEDURE qes_reset_SitMag
MODULE PROCEDURE qes_reset_starting_ns
MODULE PROCEDURE qes_reset_Hubbard_ns
MODULE PROCEDURE qes_reset_HubbardBack
@ -100,6 +102,17 @@ MODULE qes_reset_module
MODULE PROCEDURE qes_reset_band_structure
MODULE PROCEDURE qes_reset_ks_energies
MODULE PROCEDURE qes_reset_closed
MODULE PROCEDURE qes_reset_cpstatus
MODULE PROCEDURE qes_reset_cpnumstep
MODULE PROCEDURE qes_reset_cptimesteps
MODULE PROCEDURE qes_reset_cpstep
MODULE PROCEDURE qes_reset_cp_ionPos
MODULE PROCEDURE qes_reset_cp_ionsNose
MODULE PROCEDURE qes_reset_cp_elecNose
MODULE PROCEDURE qes_reset_cp_cell
MODULE PROCEDURE qes_reset_cp_cellNose
MODULE PROCEDURE qes_reset_scalmags
MODULE PROCEDURE qes_reset_d3mags
MODULE PROCEDURE qes_reset_vector
MODULE PROCEDURE qes_reset_integerVector
MODULE PROCEDURE qes_reset_matrix
@ -140,7 +153,13 @@ MODULE qes_reset_module
IF (obj%output_ispresent) &
CALL qes_reset_output(obj%output)
obj%output_ispresent = .FALSE.
obj%status_ispresent = .FALSE.
IF (obj%STATUS_ispresent) &
CALL qes_reset_cpstatus(obj%STATUS)
obj%STATUS_ispresent = .FALSE.
IF (obj%TIMESTEPS_ispresent) &
CALL qes_reset_cptimesteps(obj%TIMESTEPS)
obj%TIMESTEPS_ispresent = .FALSE.
obj%exit_status_ispresent = .FALSE.
obj%cputime_ispresent = .FALSE.
IF (obj%timing_info_ispresent) &
CALL qes_reset_timing(obj%timing_info)
@ -251,6 +270,7 @@ MODULE qes_reset_module
obj%stress_ispresent = .FALSE.
obj%FCP_force_ispresent = .FALSE.
obj%FCP_tot_charge_ispresent = .FALSE.
obj%n_step_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_step
!
@ -358,6 +378,8 @@ MODULE qes_reset_module
obj%lwrite = .FALSE.
obj%lread = .FALSE.
!
obj%NAME_ispresent = .FALSE.
obj%VERSION_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_xml_format
!
@ -371,6 +393,8 @@ MODULE qes_reset_module
obj%lwrite = .FALSE.
obj%lread = .FALSE.
!
obj%NAME_ispresent = .FALSE.
obj%VERSION_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_creator
!
@ -384,6 +408,8 @@ MODULE qes_reset_module
obj%lwrite = .FALSE.
obj%lread = .FALSE.
!
obj%DATE_ispresent = .FALSE.
obj%TIME_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_created
!
@ -405,6 +431,7 @@ MODULE qes_reset_module
DEALLOCATE(obj%species)
ENDIF
obj%ndim_species = 0
obj%ntyp_ispresent = .FALSE.
obj%pseudo_dir_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_atomic_species
@ -423,6 +450,7 @@ MODULE qes_reset_module
obj%starting_magnetization_ispresent = .FALSE.
obj%spin_teta_ispresent = .FALSE.
obj%spin_phi_ispresent = .FALSE.
obj%name_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_species
!
@ -446,6 +474,7 @@ MODULE qes_reset_module
CALL qes_reset_atomic_positions(obj%crystal_positions)
obj%crystal_positions_ispresent = .FALSE.
CALL qes_reset_cell(obj%cell)
obj%nat_ispresent = .FALSE.
obj%alat_ispresent = .FALSE.
obj%bravais_index_ispresent = .FALSE.
obj%alternative_axes_ispresent = .FALSE.
@ -483,6 +512,7 @@ MODULE qes_reset_module
obj%lwrite = .FALSE.
obj%lread = .FALSE.
!
obj%name_ispresent = .FALSE.
obj%position_ispresent = .FALSE.
obj%index_ispresent = .FALSE.
!
@ -506,6 +536,7 @@ MODULE qes_reset_module
DEALLOCATE(obj%atom)
ENDIF
obj%ndim_atom = 0
obj%space_group_ispresent = .FALSE.
obj%more_options_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_wyckoff_positions
@ -578,6 +609,9 @@ MODULE qes_reset_module
obj%lwrite = .FALSE.
obj%lread = .FALSE.
!
obj%nqx1_ispresent = .FALSE.
obj%nqx2_ispresent = .FALSE.
obj%nqx3_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_qpoint_grid
!
@ -717,11 +751,28 @@ MODULE qes_reset_module
obj%lwrite = .FALSE.
obj%lread = .FALSE.
!
obj%specie_ispresent = .FALSE.
obj%label_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_HubbardCommon
!
!
SUBROUTINE qes_reset_SiteMoment(obj)
!
IMPLICIT NONE
TYPE(SiteMoment_type),INTENT(INOUT) :: obj
!
obj%tagname = ""
obj%lwrite = .FALSE.
obj%lread = .FALSE.
!
obj%species_ispresent = .FALSE.
obj%atom_ispresent = .FALSE.
obj%charge_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_SiteMoment
!
!
SUBROUTINE qes_reset_HubbardJ(obj)
!
IMPLICIT NONE
@ -731,10 +782,28 @@ MODULE qes_reset_module
obj%lwrite = .FALSE.
obj%lread = .FALSE.
!
obj%specie_ispresent = .FALSE.
obj%label_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_HubbardJ
!
!
SUBROUTINE qes_reset_SitMag(obj)
!
IMPLICIT NONE
TYPE(SitMag_type),INTENT(INOUT) :: obj
!
obj%tagname = ""
obj%lwrite = .FALSE.
obj%lread = .FALSE.
!
obj%species_ispresent = .FALSE.
obj%atom_ispresent = .FALSE.
obj%charge_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_SitMag
!
!
SUBROUTINE qes_reset_starting_ns(obj)
!
IMPLICIT NONE
@ -744,10 +813,13 @@ MODULE qes_reset_module
obj%lwrite = .FALSE.
obj%lread = .FALSE.
!
obj%size = 0
IF (ALLOCATED(obj%starting_ns)) THEN
DEALLOCATE(obj%starting_ns)
ENDIF
obj%size = 0
obj%specie_ispresent = .FALSE.
obj%label_ispresent = .FALSE.
obj%spin_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_starting_ns
!
@ -761,14 +833,21 @@ MODULE qes_reset_module
obj%lwrite = .FALSE.
obj%lread = .FALSE.
!
IF (ALLOCATED(obj%Hubbard_ns)) THEN
DEALLOCATE(obj%Hubbard_ns)
ENDIF
IF (ALLOCATED(obj%dims)) THEN
DEALLOCATE(obj%dims)
ENDIF
obj%rank = 0
obj%order = 'F'
IF (ALLOCATED(obj%Hubbard_ns)) THEN
DEALLOCATE(obj%Hubbard_ns)
ENDIF
obj%rank_ispresent = .FALSE.
obj%dims_ispresent = .FALSE.
obj%order_ispresent = .FALSE.
obj%specie_ispresent = .FALSE.
obj%label_ispresent = .FALSE.
obj%spin_ispresent = .FALSE.
obj%index_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_Hubbard_ns
!
@ -790,6 +869,7 @@ MODULE qes_reset_module
DEALLOCATE(obj%l_number)
ENDIF
obj%ndim_l_number = 0
obj%species_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_HubbardBack
!
@ -803,6 +883,7 @@ MODULE qes_reset_module
obj%lwrite = .FALSE.
obj%lread = .FALSE.
!
obj%l_index_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_backL
!
@ -896,6 +977,7 @@ MODULE qes_reset_module
obj%lwrite = .FALSE.
obj%lread = .FALSE.
!
obj%degauss_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_smearing
!
@ -971,6 +1053,9 @@ MODULE qes_reset_module
obj%lwrite = .FALSE.
obj%lread = .FALSE.
!
obj%nr1_ispresent = .FALSE.
obj%nr2_ispresent = .FALSE.
obj%nr3_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_basisSetItem
!
@ -1003,8 +1088,8 @@ MODULE qes_reset_module
obj%diago_ppcg_maxiter_ispresent = .FALSE.
obj%diago_david_ndim_ispresent = .FALSE.
obj%diago_rmm_ndim_ispresent = .FALSE.
obj%diago_rmm_conv_ispresent = .FALSE.
obj%diago_gs_nblock_ispresent = .FALSE.
obj%diago_rmm_conv_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_electron_control
!
@ -1046,6 +1131,12 @@ MODULE qes_reset_module
obj%lwrite = .FALSE.
obj%lread = .FALSE.
!
obj%nk1_ispresent = .FALSE.
obj%nk2_ispresent = .FALSE.
obj%nk3_ispresent = .FALSE.
obj%k1_ispresent = .FALSE.
obj%k2_ispresent = .FALSE.
obj%k3_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_monkhorst_pack
!
@ -1096,6 +1187,7 @@ MODULE qes_reset_module
obj%lwrite = .FALSE.
obj%lread = .FALSE.
!
!
END SUBROUTINE qes_reset_bfgs
!
!
@ -1123,6 +1215,7 @@ MODULE qes_reset_module
!
obj%wmass_ispresent = .FALSE.
obj%cell_factor_ispresent = .FALSE.
obj%cell_do_free_ispresent = .FALSE.
obj%fix_volume_ispresent = .FALSE.
obj%fix_area_ispresent = .FALSE.
obj%isotropic_ispresent = .FALSE.
@ -1158,7 +1251,7 @@ MODULE qes_reset_module
IF (obj%esm_ispresent) &
CALL qes_reset_esm(obj%esm)
obj%esm_ispresent = .FALSE.
obj%fcp_ispresent = .FALSE.
obj%fcp_opt_ispresent = .FALSE.
obj%fcp_mu_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_boundary_conditions
@ -1290,10 +1383,12 @@ MODULE qes_reset_module
obj%lwrite = .FALSE.
obj%lread = .FALSE.
!
obj%size = 0
IF (ALLOCATED(obj%inputOccupations)) THEN
DEALLOCATE(obj%inputOccupations)
ENDIF
obj%size = 0
obj%ispin_ispresent = .FALSE.
obj%spin_factor_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_inputOccupations
!
@ -1565,10 +1660,11 @@ MODULE qes_reset_module
obj%lwrite = .FALSE.
obj%lread = .FALSE.
!
obj%size = 0
IF (ALLOCATED(obj%equivalent_atoms)) THEN
DEALLOCATE(obj%equivalent_atoms)
ENDIF
obj%size = 0
obj%nat_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_equivalent_atoms
!
@ -1611,6 +1707,14 @@ MODULE qes_reset_module
obj%lwrite = .FALSE.
obj%lread = .FALSE.
!
obj%total_ispresent = .FALSE.
obj%total_vec_ispresent = .FALSE.
IF (obj%Scalar_Site_Magnetic_Moments_ispresent) &
CALL qes_reset_scalmags(obj%Scalar_Site_Magnetic_Moments)
obj%Scalar_Site_Magnetic_Moments_ispresent = .FALSE.
IF (obj%Site_Magnetizations_ispresent) &
CALL qes_reset_d3mags(obj%Site_Magnetizations)
obj%Site_Magnetizations_ispresent = .FALSE.
obj%do_magnetization_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_magnetization
@ -1698,10 +1802,203 @@ MODULE qes_reset_module
obj%lwrite = .FALSE.
obj%lread = .FALSE.
!
obj%DATE_ispresent = .FALSE.
obj%TIME_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_closed
!
!
SUBROUTINE qes_reset_cpstatus(obj)
!
IMPLICIT NONE
TYPE(cpstatus_type),INTENT(INOUT) :: obj
!
obj%tagname = ""
obj%lwrite = .FALSE.
obj%lread = .FALSE.
!
CALL qes_reset_cpnumstep(obj%STEP)
CALL qes_reset_scalarQuantity(obj%TIME)
CALL qes_reset_scalarQuantity(obj%KINETIC_ENERGY)
CALL qes_reset_scalarQuantity(obj%HARTREE_ENERGY)
CALL qes_reset_scalarQuantity(obj%EWALD_TERM)
CALL qes_reset_scalarQuantity(obj%GAUSS_SELFINT)
CALL qes_reset_scalarQuantity(obj%LPSP_ENERGY)
CALL qes_reset_scalarQuantity(obj%NLPSP_ENERGY)
CALL qes_reset_scalarQuantity(obj%EXC_ENERGY)
CALL qes_reset_scalarQuantity(obj%AVERAGE_POT)
CALL qes_reset_scalarQuantity(obj%ENTHALPY)
!
END SUBROUTINE qes_reset_cpstatus
!
!
SUBROUTINE qes_reset_cpnumstep(obj)
!
IMPLICIT NONE
TYPE(cpnumstep_type),INTENT(INOUT) :: obj
!
obj%tagname = ""
obj%lwrite = .FALSE.
obj%lread = .FALSE.
!
obj%ITERATION_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_cpnumstep
!
!
SUBROUTINE qes_reset_cptimesteps(obj)
!
IMPLICIT NONE
TYPE(cptimesteps_type),INTENT(INOUT) :: obj
!
obj%tagname = ""
obj%lwrite = .FALSE.
obj%lread = .FALSE.
!
CALL qes_reset_cpstep(obj%STEP0)
CALL qes_reset_cpstep(obj%STEPM)
obj%nt_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_cptimesteps
!
!
SUBROUTINE qes_reset_cpstep(obj)
!
IMPLICIT NONE
TYPE(cpstep_type),INTENT(INOUT) :: obj
!
obj%tagname = ""
obj%lwrite = .FALSE.
obj%lread = .FALSE.
!
obj%ACCUMULATORS_ispresent = .FALSE.
CALL qes_reset_cp_ionPos(obj%IONS_POSITIONS)
CALL qes_reset_cp_ionsNose(obj%IONS_NOSE)
obj%ekincm_ispresent = .FALSE.
CALL qes_reset_cp_elecNose(obj%ELECTRONS_NOSE)
CALL qes_reset_cp_cell(obj%CELL_PARAMETERS)
CALL qes_reset_cp_cellNose(obj%CELL_NOSE)
!
END SUBROUTINE qes_reset_cpstep
!
!
SUBROUTINE qes_reset_cp_ionPos(obj)
!
IMPLICIT NONE
TYPE(cp_ionPos_type),INTENT(INOUT) :: obj
!
obj%tagname = ""
obj%lwrite = .FALSE.
obj%lread = .FALSE.
!
obj%taui_ispresent = .FALSE.
obj%cdmi_ispresent = .FALSE.
obj%force_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_cp_ionPos
!
!
SUBROUTINE qes_reset_cp_ionsNose(obj)
!
IMPLICIT NONE
TYPE(cp_ionsNose_type),INTENT(INOUT) :: obj
!
obj%tagname = ""
obj%lwrite = .FALSE.
obj%lread = .FALSE.
!
obj%vnhp_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_cp_ionsNose
!
!
SUBROUTINE qes_reset_cp_elecNose(obj)
!
IMPLICIT NONE
TYPE(cp_elecNose_type),INTENT(INOUT) :: obj
!
obj%tagname = ""
obj%lwrite = .FALSE.
obj%lread = .FALSE.
!
obj%vnhe_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_cp_elecNose
!
!
SUBROUTINE qes_reset_cp_cell(obj)
!
IMPLICIT NONE
TYPE(cp_cell_type),INTENT(INOUT) :: obj
!
obj%tagname = ""
obj%lwrite = .FALSE.
obj%lread = .FALSE.
!
obj%htvel_ispresent = .FALSE.
obj%gvel_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_cp_cell
!
!
SUBROUTINE qes_reset_cp_cellNose(obj)
!
IMPLICIT NONE
TYPE(cp_cellNose_type),INTENT(INOUT) :: obj
!
obj%tagname = ""
obj%lwrite = .FALSE.
obj%lread = .FALSE.
!
obj%vnhh_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_cp_cellNose
!
!
SUBROUTINE qes_reset_scalmags(obj)
!
IMPLICIT NONE
TYPE(scalmags_type),INTENT(INOUT) :: obj
INTEGER :: i
!
obj%tagname = ""
obj%lwrite = .FALSE.
obj%lread = .FALSE.
!
IF (ALLOCATED(obj%SiteMagnetization)) THEN
DO i=1, SIZE(obj%SiteMagnetization)
CALL qes_reset_SiteMoment(obj%SiteMagnetization(i))
ENDDO
DEALLOCATE(obj%SiteMagnetization)
ENDIF
obj%ndim_SiteMagnetization = 0
obj%nat_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_scalmags
!
!
SUBROUTINE qes_reset_d3mags(obj)
!
IMPLICIT NONE
TYPE(d3mags_type),INTENT(INOUT) :: obj
INTEGER :: i
!
obj%tagname = ""
obj%lwrite = .FALSE.
obj%lread = .FALSE.
!
IF (ALLOCATED(obj%SiteMagnetization)) THEN
DO i=1, SIZE(obj%SiteMagnetization)
CALL qes_reset_SitMag(obj%SiteMagnetization(i))
ENDDO
DEALLOCATE(obj%SiteMagnetization)
ENDIF
obj%ndim_SiteMagnetization = 0
obj%nat_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_d3mags
!
!
SUBROUTINE qes_reset_vector(obj)
!
IMPLICIT NONE
@ -1753,6 +2050,9 @@ MODULE qes_reset_module
ENDIF
obj%rank = 0
obj%order = 'F'
obj%rank_ispresent = .FALSE.
obj%dims_ispresent = .FALSE.
obj%order_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_matrix
!
@ -1774,6 +2074,7 @@ MODULE qes_reset_module
ENDIF
obj%rank = 0
obj%order = 'F'
obj%order_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_integerMatrix
!
@ -1787,8 +2088,9 @@ MODULE qes_reset_module
obj%lwrite = .FALSE.
obj%lread = .FALSE.
!
obj%Units_ispresent = .FALSE.
!
END SUBROUTINE qes_reset_scalarQuantity
!
!
END MODULE qes_reset_module
END MODULE qes_reset_module

View File

@ -10,7 +10,7 @@ MODULE qes_types_module
!
! Auto-generated code: don't edit this file
!
! Quantum Espresso XSD namespace: http://www.quantum-espresso.org/ns/qes/qes-1.0
! Quantum Espresso XSD namespace: http://www.quantum-espresso.org/ns/qes/qes-1.0
!
USE kinds, only: DP
!
@ -23,7 +23,9 @@ MODULE qes_types_module
LOGICAL :: lread = .FALSE.
!
CHARACTER(len=256) :: NAME
LOGICAL :: NAME_ispresent = .FALSE.
CHARACTER(len=256) :: VERSION
LOGICAL :: VERSION_ispresent = .FALSE.
!
CHARACTER(len=256) :: xml_format
!
@ -36,7 +38,9 @@ MODULE qes_types_module
LOGICAL :: lread = .FALSE.
!
CHARACTER(len=256) :: NAME
LOGICAL :: NAME_ispresent = .FALSE.
CHARACTER(len=256) :: VERSION
LOGICAL :: VERSION_ispresent = .FALSE.
!
CHARACTER(len=256) :: creator
!
@ -49,7 +53,9 @@ MODULE qes_types_module
LOGICAL :: lread = .FALSE.
!
CHARACTER(len=256) :: DATE
LOGICAL :: DATE_ispresent = .FALSE.
CHARACTER(len=256) :: TIME
LOGICAL :: TIME_ispresent = .FALSE.
!
CHARACTER(len=256) :: created
!
@ -62,6 +68,7 @@ MODULE qes_types_module
LOGICAL :: lread = .FALSE.
!
CHARACTER(len=256) :: name
LOGICAL :: name_ispresent = .FALSE.
CHARACTER(len=256) :: position
LOGICAL :: position_ispresent = .FALSE.
INTEGER :: index
@ -78,8 +85,11 @@ MODULE qes_types_module
LOGICAL :: lread = .FALSE.
!
INTEGER :: nqx1
LOGICAL :: nqx1_ispresent = .FALSE.
INTEGER :: nqx2
LOGICAL :: nqx2_ispresent = .FALSE.
INTEGER :: nqx3
LOGICAL :: nqx3_ispresent = .FALSE.
!
CHARACTER(len=256) :: qpoint_grid
!
@ -92,6 +102,7 @@ MODULE qes_types_module
LOGICAL :: lread = .FALSE.
!
CHARACTER(len=256) :: specie
LOGICAL :: specie_ispresent = .FALSE.
CHARACTER(len=256) :: label
LOGICAL :: label_ispresent = .FALSE.
!
@ -99,6 +110,23 @@ MODULE qes_types_module
!
END TYPE HubbardCommon_type
!
TYPE :: SiteMoment_type
!
CHARACTER(len=100) :: tagname
LOGICAL :: lwrite = .FALSE.
LOGICAL :: lread = .FALSE.
!
CHARACTER(len=256) :: species
LOGICAL :: species_ispresent = .FALSE.
INTEGER :: atom
LOGICAL :: atom_ispresent = .FALSE.
REAL(DP) :: charge
LOGICAL :: charge_ispresent = .FALSE.
!
REAL(DP) :: SiteMoment
!
END TYPE SiteMoment_type
!
TYPE :: HubbardJ_type
!
CHARACTER(len=100) :: tagname
@ -106,22 +134,44 @@ MODULE qes_types_module
LOGICAL :: lread = .FALSE.
!
CHARACTER(len=256) :: specie
LOGICAL :: specie_ispresent = .FALSE.
CHARACTER(len=256) :: label
LOGICAL :: label_ispresent = .FALSE.
!
REAL(DP), DIMENSION(3) :: HubbardJ
!
END TYPE HubbardJ_type
!
TYPE :: SitMag_type
!
CHARACTER(len=100) :: tagname
LOGICAL :: lwrite = .FALSE.
LOGICAL :: lread = .FALSE.
!
CHARACTER(len=256) :: species
LOGICAL :: species_ispresent = .FALSE.
INTEGER :: atom
LOGICAL :: atom_ispresent = .FALSE.
REAL(DP) :: charge
LOGICAL :: charge_ispresent = .FALSE.
!
REAL(DP), DIMENSION(3) :: SitMag
!
END TYPE SitMag_type
!
TYPE :: starting_ns_type
!
CHARACTER(len=100) :: tagname
LOGICAL :: lwrite = .FALSE.
LOGICAL :: lread = .FALSE.
!
CHARACTER(len=256) :: specie
CHARACTER(len=256) :: label
INTEGER :: spin
INTEGER :: size
CHARACTER(len=256) :: specie
LOGICAL :: specie_ispresent = .FALSE.
CHARACTER(len=256) :: label
LOGICAL :: label_ispresent = .FALSE.
INTEGER :: spin
LOGICAL :: spin_ispresent = .FALSE.
!
REAL(DP), DIMENSION(:), ALLOCATABLE :: starting_ns
!
@ -133,13 +183,20 @@ MODULE qes_types_module
LOGICAL :: lwrite = .FALSE.
LOGICAL :: lread = .FALSE.
!
CHARACTER(len=256) :: specie
CHARACTER(len=256) :: label
INTEGER :: spin
INTEGER :: index
INTEGER :: rank
LOGICAL :: rank_ispresent = .FALSE.
INTEGER, DIMENSION(:), ALLOCATABLE :: dims
LOGICAL :: dims_ispresent = .FALSE.
CHARACTER(len=256) :: order
LOGICAL :: order_ispresent = .FALSE.
CHARACTER(len=256) :: specie
LOGICAL :: specie_ispresent = .FALSE.
CHARACTER(len=256) :: label
LOGICAL :: label_ispresent = .FALSE.
INTEGER :: spin
LOGICAL :: spin_ispresent = .FALSE.
INTEGER :: index
LOGICAL :: index_ispresent = .FALSE.
!
REAL(DP), DIMENSION(:), ALLOCATABLE :: Hubbard_ns
!
@ -152,6 +209,7 @@ MODULE qes_types_module
LOGICAL :: lread = .FALSE.
!
INTEGER :: l_index
LOGICAL :: l_index_ispresent = .FALSE.
!
INTEGER :: backL
!
@ -164,6 +222,7 @@ MODULE qes_types_module
LOGICAL :: lread = .FALSE.
!
REAL(DP) :: degauss
LOGICAL :: degauss_ispresent = .FALSE.
!
CHARACTER(len=256) :: smearing
!
@ -189,8 +248,11 @@ MODULE qes_types_module
LOGICAL :: lread = .FALSE.
!
INTEGER :: nr1
LOGICAL :: nr1_ispresent = .FALSE.
INTEGER :: nr2
LOGICAL :: nr2_ispresent = .FALSE.
INTEGER :: nr3
LOGICAL :: nr3_ispresent = .FALSE.
!
CHARACTER(len=256) :: basisSetItem
!
@ -203,11 +265,17 @@ MODULE qes_types_module
LOGICAL :: lread = .FALSE.
!
INTEGER :: nk1
LOGICAL :: nk1_ispresent = .FALSE.
INTEGER :: nk2
LOGICAL :: nk2_ispresent = .FALSE.
INTEGER :: nk3
LOGICAL :: nk3_ispresent = .FALSE.
INTEGER :: k1
LOGICAL :: k1_ispresent = .FALSE.
INTEGER :: k2
LOGICAL :: k2_ispresent = .FALSE.
INTEGER :: k3
LOGICAL :: k3_ispresent = .FALSE.
!
CHARACTER(len=256) :: monkhorst_pack
!
@ -234,9 +302,11 @@ MODULE qes_types_module
LOGICAL :: lwrite = .FALSE.
LOGICAL :: lread = .FALSE.
!
INTEGER :: ispin
REAL(DP) :: spin_factor
INTEGER :: size
INTEGER :: ispin
LOGICAL :: ispin_ispresent = .FALSE.
REAL(DP) :: spin_factor
LOGICAL :: spin_factor_ispresent = .FALSE.
!
REAL(DP), DIMENSION(:), ALLOCATABLE :: inputOccupations
!
@ -265,8 +335,9 @@ MODULE qes_types_module
LOGICAL :: lwrite = .FALSE.
LOGICAL :: lread = .FALSE.
!
INTEGER :: nat
INTEGER :: size
INTEGER :: nat
LOGICAL :: nat_ispresent = .FALSE.
!
INTEGER, DIMENSION(:), ALLOCATABLE :: equivalent_atoms
!
@ -296,12 +367,27 @@ MODULE qes_types_module
LOGICAL :: lread = .FALSE.
!
CHARACTER(len=256) :: DATE
LOGICAL :: DATE_ispresent = .FALSE.
CHARACTER(len=256) :: TIME
LOGICAL :: TIME_ispresent = .FALSE.
!
CHARACTER(len=256) :: closed
!
END TYPE closed_type
!
TYPE :: cpnumstep_type
!
CHARACTER(len=100) :: tagname
LOGICAL :: lwrite = .FALSE.
LOGICAL :: lread = .FALSE.
!
INTEGER :: ITERATION
LOGICAL :: ITERATION_ispresent = .FALSE.
!
CHARACTER(len=256) :: cpnumstep
!
END TYPE cpnumstep_type
!
TYPE :: vector_type
!
CHARACTER(len=100) :: tagname
@ -333,8 +419,11 @@ MODULE qes_types_module
LOGICAL :: lread = .FALSE.
!
INTEGER :: rank
LOGICAL :: rank_ispresent = .FALSE.
INTEGER, DIMENSION(:), ALLOCATABLE :: dims
LOGICAL :: dims_ispresent = .FALSE.
CHARACTER(len=256) :: order
LOGICAL :: order_ispresent = .FALSE.
!
REAL(DP), DIMENSION(:), ALLOCATABLE :: matrix
!
@ -349,6 +438,7 @@ MODULE qes_types_module
INTEGER :: rank
INTEGER, DIMENSION(:), ALLOCATABLE :: dims
CHARACTER(len=256) :: order
LOGICAL :: order_ispresent = .FALSE.
!
INTEGER, DIMENSION(:), ALLOCATABLE :: integerMatrix
!
@ -361,6 +451,7 @@ MODULE qes_types_module
LOGICAL :: lread = .FALSE.
!
CHARACTER(len=256) :: Units
LOGICAL :: Units_ispresent = .FALSE.
!
REAL(DP) :: scalarQuantity
!
@ -442,6 +533,7 @@ MODULE qes_types_module
LOGICAL :: lread = .FALSE.
!
CHARACTER(len=256) :: name
LOGICAL :: name_ispresent = .FALSE.
LOGICAL :: mass_ispresent = .FALSE.
REAL(DP) :: mass
CHARACTER(len=256) :: pseudo_file
@ -472,6 +564,7 @@ MODULE qes_types_module
LOGICAL :: lread = .FALSE.
!
INTEGER :: space_group
LOGICAL :: space_group_ispresent = .FALSE.
CHARACTER(len=256) :: more_options
LOGICAL :: more_options_ispresent = .FALSE.
TYPE(atom_type), DIMENSION(:), ALLOCATABLE :: atom
@ -523,6 +616,7 @@ MODULE qes_types_module
LOGICAL :: lread = .FALSE.
!
CHARACTER(len=256) :: species
LOGICAL :: species_ispresent = .FALSE.
CHARACTER(len=256) :: background
TYPE(backL_type), DIMENSION(:), ALLOCATABLE :: l_number
INTEGER :: ndim_l_number
@ -656,13 +750,12 @@ MODULE qes_types_module
INTEGER :: diago_ppcg_maxiter
LOGICAL :: diago_david_ndim_ispresent = .FALSE.
INTEGER :: diago_david_ndim
!
LOGICAL :: diago_rmm_ndim_ispresent = .FALSE.
LOGICAL :: diago_rmm_ndim_ispresent = .FALSE.
INTEGER :: diago_rmm_ndim
LOGICAL :: diago_rmm_conv_ispresent = .FALSE.
LOGICAL :: diago_rmm_conv
LOGICAL :: diago_gs_nblock_ispresent = .FALSE.
LOGICAL :: diago_gs_nblock_ispresent = .FALSE.
INTEGER :: diago_gs_nblock
LOGICAL :: diago_rmm_conv_ispresent = .FALSE.
LOGICAL :: diago_rmm_conv
!
END TYPE electron_control_type
!
@ -726,6 +819,8 @@ MODULE qes_types_module
REAL(DP) :: wmass
LOGICAL :: cell_factor_ispresent = .FALSE.
REAL(DP) :: cell_factor
LOGICAL :: cell_do_free_ispresent = .FALSE.
CHARACTER(len=256) :: cell_do_free
LOGICAL :: fix_volume_ispresent = .FALSE.
LOGICAL :: fix_volume
LOGICAL :: fix_area_ispresent = .FALSE.
@ -964,22 +1059,6 @@ MODULE qes_types_module
!
END TYPE outputPBC_type
!
TYPE :: magnetization_type
!
CHARACTER(len=100) :: tagname
LOGICAL :: lwrite = .FALSE.
LOGICAL :: lread = .FALSE.
!
LOGICAL :: lsda
LOGICAL :: noncolin
LOGICAL :: spinorbit
REAL(DP) :: total
REAL(DP) :: absolute
LOGICAL :: do_magnetization_ispresent = .FALSE.
LOGICAL :: do_magnetization
!
END TYPE magnetization_type
!
TYPE :: total_energy_type
!
CHARACTER(len=100) :: tagname
@ -1023,6 +1102,122 @@ MODULE qes_types_module
!
END TYPE ks_energies_type
!
TYPE :: cpstatus_type
!
CHARACTER(len=100) :: tagname
LOGICAL :: lwrite = .FALSE.
LOGICAL :: lread = .FALSE.
!
TYPE(cpnumstep_type) :: STEP
TYPE(scalarQuantity_type) :: TIME
CHARACTER(len=256) :: TITLE
TYPE(scalarQuantity_type) :: KINETIC_ENERGY
TYPE(scalarQuantity_type) :: HARTREE_ENERGY
TYPE(scalarQuantity_type) :: EWALD_TERM
TYPE(scalarQuantity_type) :: GAUSS_SELFINT
TYPE(scalarQuantity_type) :: LPSP_ENERGY
TYPE(scalarQuantity_type) :: NLPSP_ENERGY
TYPE(scalarQuantity_type) :: EXC_ENERGY
TYPE(scalarQuantity_type) :: AVERAGE_POT
TYPE(scalarQuantity_type) :: ENTHALPY
!
END TYPE cpstatus_type
!
TYPE :: cp_ionPos_type
!
CHARACTER(len=100) :: tagname
LOGICAL :: lwrite = .FALSE.
LOGICAL :: lread = .FALSE.
!
REAL(DP), DIMENSION(:), ALLOCATABLE :: stau
REAL(DP), DIMENSION(:), ALLOCATABLE :: svel
LOGICAL :: taui_ispresent = .FALSE.
REAL(DP), DIMENSION(:), ALLOCATABLE :: taui
LOGICAL :: cdmi_ispresent = .FALSE.
REAL(DP), DIMENSION(3) :: cdmi
LOGICAL :: force_ispresent = .FALSE.
REAL(DP), DIMENSION(:), ALLOCATABLE :: force
!
END TYPE cp_ionPos_type
!
TYPE :: cp_ionsNose_type
!
CHARACTER(len=100) :: tagname
LOGICAL :: lwrite = .FALSE.
LOGICAL :: lread = .FALSE.
!
INTEGER :: nhpcl
INTEGER :: nhpdim
REAL(DP) :: xnhp
LOGICAL :: vnhp_ispresent = .FALSE.
REAL(DP) :: vnhp
!
END TYPE cp_ionsNose_type
!
TYPE :: cp_elecNose_type
!
CHARACTER(len=100) :: tagname
LOGICAL :: lwrite = .FALSE.
LOGICAL :: lread = .FALSE.
!
REAL(DP) :: xnhe
LOGICAL :: vnhe_ispresent = .FALSE.
REAL(DP) :: vnhe
!
END TYPE cp_elecNose_type
!
TYPE :: cp_cell_type
!
CHARACTER(len=100) :: tagname
LOGICAL :: lwrite = .FALSE.
LOGICAL :: lread = .FALSE.
!
REAL(DP), DIMENSION(:), ALLOCATABLE :: ht
LOGICAL :: htvel_ispresent = .FALSE.
REAL(DP), DIMENSION(:), ALLOCATABLE :: htvel
LOGICAL :: gvel_ispresent = .FALSE.
REAL(DP), DIMENSION(:), ALLOCATABLE :: gvel
!
END TYPE cp_cell_type
!
TYPE :: cp_cellNose_type
!
CHARACTER(len=100) :: tagname
LOGICAL :: lwrite = .FALSE.
LOGICAL :: lread = .FALSE.
!
REAL(DP), DIMENSION(:), ALLOCATABLE :: xnhh
LOGICAL :: vnhh_ispresent = .FALSE.
REAL(DP), DIMENSION(:), ALLOCATABLE :: vnhh
!
END TYPE cp_cellNose_type
!
TYPE :: scalmags_type
!
CHARACTER(len=100) :: tagname
LOGICAL :: lwrite = .FALSE.
LOGICAL :: lread = .FALSE.
!
INTEGER :: nat
LOGICAL :: nat_ispresent = .FALSE.
TYPE(SiteMoment_type), DIMENSION(:), ALLOCATABLE :: SiteMagnetization
INTEGER :: ndim_SiteMagnetization
!
END TYPE scalmags_type
!
TYPE :: d3mags_type
!
CHARACTER(len=100) :: tagname
LOGICAL :: lwrite = .FALSE.
LOGICAL :: lread = .FALSE.
!
INTEGER :: nat
LOGICAL :: nat_ispresent = .FALSE.
TYPE(SitMag_type), DIMENSION(:), ALLOCATABLE :: SiteMagnetization
INTEGER :: ndim_SiteMagnetization
!
END TYPE d3mags_type
!
TYPE :: timing_type
!
CHARACTER(len=100) :: tagname
@ -1043,6 +1238,7 @@ MODULE qes_types_module
LOGICAL :: lread = .FALSE.
!
INTEGER :: ntyp
LOGICAL :: ntyp_ispresent = .FALSE.
CHARACTER(len=256) :: pseudo_dir
LOGICAL :: pseudo_dir_ispresent = .FALSE.
TYPE(species_type), DIMENSION(:), ALLOCATABLE :: species
@ -1057,6 +1253,7 @@ MODULE qes_types_module
LOGICAL :: lread = .FALSE.
!
INTEGER :: nat
LOGICAL :: nat_ispresent = .FALSE.
REAL(DP) :: alat
LOGICAL :: alat_ispresent = .FALSE.
INTEGER :: bravais_index
@ -1172,8 +1369,8 @@ MODULE qes_types_module
CHARACTER(len=256) :: assume_isolated
LOGICAL :: esm_ispresent = .FALSE.
TYPE(esm_type) :: esm
LOGICAL :: fcp_ispresent = .FALSE.
LOGICAL :: fcp
LOGICAL :: fcp_opt_ispresent = .FALSE.
LOGICAL :: fcp_opt
LOGICAL :: fcp_mu_ispresent = .FALSE.
REAL(DP) :: fcp_mu
!
@ -1261,6 +1458,29 @@ MODULE qes_types_module
!
END TYPE symmetries_type
!
TYPE :: magnetization_type
!
CHARACTER(len=100) :: tagname
LOGICAL :: lwrite = .FALSE.
LOGICAL :: lread = .FALSE.
!
LOGICAL :: lsda
LOGICAL :: noncolin
LOGICAL :: spinorbit
LOGICAL :: total_ispresent = .FALSE.
REAL(DP) :: total
LOGICAL :: total_vec_ispresent = .FALSE.
REAL(DP), DIMENSION(3) :: total_vec
REAL(DP) :: absolute
LOGICAL :: Scalar_Site_Magnetic_Moments_ispresent = .FALSE.
TYPE(scalmags_type) :: Scalar_Site_Magnetic_Moments
LOGICAL :: Site_Magnetizations_ispresent = .FALSE.
TYPE(d3mags_type) :: Site_Magnetizations
LOGICAL :: do_magnetization_ispresent = .FALSE.
LOGICAL :: do_magnetization
!
END TYPE magnetization_type
!
TYPE :: band_structure_type
!
CHARACTER(len=100) :: tagname
@ -1298,6 +1518,24 @@ MODULE qes_types_module
!
END TYPE band_structure_type
!
TYPE :: cpstep_type
!
CHARACTER(len=100) :: tagname
LOGICAL :: lwrite = .FALSE.
LOGICAL :: lread = .FALSE.
!
LOGICAL :: ACCUMULATORS_ispresent = .FALSE.
REAL(DP), DIMENSION(:), ALLOCATABLE :: ACCUMULATORS
TYPE(cp_ionPos_type) :: IONS_POSITIONS
TYPE(cp_ionsNose_type) :: IONS_NOSE
LOGICAL :: ekincm_ispresent = .FALSE.
REAL(DP) :: ekincm
TYPE(cp_elecNose_type) :: ELECTRONS_NOSE
TYPE(cp_cell_type) :: CELL_PARAMETERS
TYPE(cp_cellNose_type) :: CELL_NOSE
!
END TYPE cpstep_type
!
TYPE :: step_type
!
CHARACTER(len=100) :: tagname
@ -1305,6 +1543,7 @@ MODULE qes_types_module
LOGICAL :: lread = .FALSE.
!
INTEGER :: n_step
LOGICAL :: n_step_ispresent = .FALSE.
TYPE(scf_conv_type) :: scf_conv
TYPE(atomic_structure_type) :: atomic_structure
TYPE(total_energy_type) :: total_energy
@ -1351,6 +1590,19 @@ MODULE qes_types_module
!
END TYPE outputElectricField_type
!
TYPE :: cptimesteps_type
!
CHARACTER(len=100) :: tagname
LOGICAL :: lwrite = .FALSE.
LOGICAL :: lread = .FALSE.
!
INTEGER :: nt
LOGICAL :: nt_ispresent = .FALSE.
TYPE(cpstep_type) :: STEP0
TYPE(cpstep_type) :: STEPM
!
END TYPE cptimesteps_type
!
TYPE :: input_type
!
CHARACTER(len=100) :: tagname
@ -1440,8 +1692,12 @@ MODULE qes_types_module
INTEGER :: ndim_step
LOGICAL :: output_ispresent = .FALSE.
TYPE(output_type) :: output
LOGICAL :: status_ispresent = .FALSE.
INTEGER :: status
LOGICAL :: STATUS_ispresent = .FALSE.
TYPE(cpstatus_type) :: STATUS
LOGICAL :: TIMESTEPS_ispresent = .FALSE.
TYPE(cptimesteps_type) :: TIMESTEPS
LOGICAL :: exit_status_ispresent = .FALSE.
INTEGER :: exit_status
LOGICAL :: cputime_ispresent = .FALSE.
INTEGER :: cputime
LOGICAL :: timing_info_ispresent = .FALSE.
@ -1452,4 +1708,4 @@ MODULE qes_types_module
END TYPE espresso_type
!
!
END MODULE qes_types_module
END MODULE qes_types_module

File diff suppressed because it is too large Load Diff

View File

@ -581,7 +581,7 @@ SUBROUTINE qexsd_init_clocks (timing_, total_clock, partial_clocks)
IF ( TRIM(total_clock) == clock_label(ic) ) EXIT
END DO
t = get_cpu_and_wall(ic)
CALL qes_init ( total_, "total", TRIM(clock_label(ic)), t(1), t(2) )
CALL qes_init ( total_, "total", TRIM(clock_label(ic)), CPU = t(1), WALL = t(2) )
IF ( partial_ndim .GT. 0 ) THEN
ALLOCATE(partial_(partial_ndim), match(nclock) )
DO ipar = 1, partial_ndim
@ -590,10 +590,10 @@ SUBROUTINE qexsd_init_clocks (timing_, total_clock, partial_clocks)
nc = get_index(.TRUE., match)
IF (nc == ic) CYCLE
t = get_cpu_and_wall(nc)
CALL qes_init(partial_(ipar), "partial", TRIM(clock_label(nc)), t(1), t(2),&
called(nc))
CALL qes_init(partial_(ipar), "partial", TRIM(clock_label(nc)), CPU = t(1), WALL = t(2), &
CALLS = called(nc))
ELSE
CALL qes_init (partial_(ipar), "partial", "not_found", -1.d0, -1.d0, 0)
CALL qes_init (partial_(ipar), "partial", "not_found", CPU = -1.d0, WALL = -1.d0, CALLS = 0)
partial_(ipar)%lwrite=.FALSE.
END IF
END DO

View File

@ -153,7 +153,7 @@ CONTAINS
STARTING_MAGNETIZATION = start_mag_, SPIN_TETA = spin_teta, SPIN_PHI = spin_phi )
ENDDO
!
CALL qes_init (obj, "atomic_species", nsp, species)
CALL qes_init (obj, "atomic_species", NTYP = nsp, SPECIES = species)
!
DO i = 1, nsp
CALL qes_reset (species(i))
@ -503,7 +503,7 @@ CONTAINS
!
ALLOCATE (objs(nsp))
DO i = 1, nsp
CALL qes_init( objs(i), TRIM(tag), TRIM(species(i)), dati(i), TRIM(labs(i)))
CALL qes_init( objs(i), TRIM(tag), TRIM(species(i)), TRIM(labs(i)), dati(i))
IF (TRIM(labs(i)) =='no Hubbard') objs(i)%lwrite = .FALSE.
END DO
END SUBROUTINE init_hubbard_commons
@ -777,22 +777,110 @@ CONTAINS
!
!
!---------------------------------------------------------------------------------------
SUBROUTINE qexsd_init_magnetization(obj, lsda, noncolin, spinorbit, total_mag, total_mag_nc, &
absolute_mag, do_magnetization)
SUBROUTINE qexsd_init_magnetization(obj, lsda, noncolin, spinorbit, total_mag, total_mag_nc, absolute_mag, &
atm, ityp, site_mag_pol, site_mag, site_charges, do_magnetization)
!------------------------------------------------------------------------------------
IMPLICIT NONE
!
TYPE(magnetization_type) :: obj
LOGICAL, INTENT(IN) :: lsda, noncolin, spinorbit
REAL(DP), INTENT(IN) :: total_mag, absolute_mag
REAL(DP), INTENT(IN) :: total_mag_nc(3)
LOGICAL,OPTIONAL,INTENT(IN) :: do_magnetization
TYPE(magnetization_type) :: obj
!! magnetization object to initialize
LOGICAL, INTENT(IN) :: lsda, noncolin, spinorbit
!! flag: true for spin-polarized calculations
!! flag: true for noncolinear calculations
!! flag: true for fully relativistic calculations
REAL(DP),OPTIONAL,INTENT(IN) :: total_mag
!! total scalar magnetization present for spin-polarized calculation
REAL(DP), INTENT(IN) :: absolute_mag
!! sum of the magnetization's module (scalar or colinear)
CHARACTER(LEN=*),INTENT(IN) :: atm(:)
!! species labels
INTEGER,INTENT(IN) :: ityp(:)
!! species index for each atom
REAL(DP),OPTIONAL,INTENT(IN) :: total_mag_nc(3)
!! total magnetization (vector) present for noncolinear magnetic calculations
REAL(DP),OPTIONAL,INTENT(IN) :: site_charges(:)
!! array with the estimate charge of the site
LOGICAL,OPTIONAL, INTENT(IN) :: do_magnetization
!! flag: true if the noncolinear calculation has a finite magnetization
REAL(DP),DIMENSION(:,:),OPTIONAL,INTENT(IN) :: site_mag
!! array with the estimated magnetization per site (noncollinear case)
REAL(DP),DIMENSION(:) ,OPTIONAL,INTENT(IN) :: site_mag_pol
!! array with the magnetic polarization per site (nspin=2 case)
!
CALL qes_init(obj, "magnetization", lsda, noncolin, spinorbit, total_mag, absolute_mag, &
do_magnetization)
INTEGER :: iobj
TYPE (scalmags_type),TARGET :: smag_obj
TYPE (scalmags_type),POINTER :: smag_ptr => NULL()
TYPE (d3mags_type), TARGET :: vmag_obj
TYPE (d3mags_type), POINTER :: vmag_ptr => NULL()
IF (PRESENT(site_mag_pol)) THEN
CALL qexsd_init_scalmags(smag_obj, SIZE(site_mag_pol), site_mag_pol, ityp, atm, site_charges)
smag_ptr => smag_obj
ELSE IF (PRESENT(site_mag)) THEN
CALL qexsd_init_d3mags (vmag_obj, SIZE(site_mag, 2), site_mag, ityp, atm, site_charges )
vmag_ptr => vmag_obj
END IF
CALL qes_init(obj, "magnetization", lsda, noncolin, spinorbit, absolute_mag, total_mag, total_mag_nc,&
smag_ptr, vmag_ptr, do_magnetization)
!
END SUBROUTINE qexsd_init_magnetization
!
!----------------------------------------------------------------------------------------------
SUBROUTINE qexsd_init_scalmags(obj, nat_, data, ityp, atm, charges)
!! stores site scalar magnetization into a structure for XML output
!-------------------------------------------------------------------------------------------
IMPLICIT NONE
TYPE (scalmags_type),INTENT(INOUT) :: obj
!! structure where to store data
INTEGER :: nat_
!! number of atomic sites
REAL(DP), INTENT(IN) :: data (:)
!! site magnetizations
REAL(DP), OPTIONAL,INTENT(IN) :: charges(:)
!! site charges
INTEGER,INTENT(IN) :: ityp(:)
!! species index for each atom
CHARACTER(LEN=*),INTENT(IN) :: atm(:)
!! species labels
!
INTEGER :: ia
TYPE(SiteMoment_type),ALLOCATABLE :: site_obj(:)
ALLOCATE (site_obj(nat_))
DO ia = 1, nat_
CALL qes_init(site_obj(ia), "SiteMagnetization", SPECIES=atm(ityp(ia)), ATOM=ia, CHARGE = charges(ia), &
SiteMoment= data(ia))
END DO
CALL qes_init(obj, "Scalar_Site_Magnetic_Moments", NAT = nat_, SiteMagnetization=site_obj )
DEALLOCATE (site_obj)
END SUBROUTINE qexsd_init_scalmags
!
!
!---------------------------------------------------------------------------------------
SUBROUTINE qexsd_init_d3mags (obj, nat_, data, ityp, atm, charges)
!---------------------------------------------------------------------------------------
IMPLICIT NONE
TYPE (d3mags_type),INTENT(INOUT) :: obj
!! structure where to store data
INTEGER :: nat_
!! number of atomic sites
REAL(DP), INTENT(IN) :: data (:,:)
!! site magnetizations (vectors)
REAL(DP), OPTIONAL,INTENT(IN) :: charges(:)
!! site charges
INTEGER,INTENT(IN) :: ityp(:)
!! species index for each atom
CHARACTER(LEN=*),INTENT(IN) :: atm(:)
!! species labels
!
INTEGER :: ia
TYPE(SitMag_type),ALLOCATABLE :: site_obj(:)
ALLOCATE (site_obj(nat_))
DO ia = 1, nat_
CALL qes_init(site_obj(ia), "SiteMagnetization", SPECIES=atm(ityp(ia)), ATOM=ia, CHARGE = charges(ia), &
SitMag = data(1:3,ia))
END DO
CALL qes_init(obj, "Site_Magnetizations", NAT = nat_, SiteMagnetization = site_obj )
DEALLOCATE (site_obj)
END SUBROUTINE qexsd_init_d3mags
!
!---------------------------------------------------------------------------------------
SUBROUTINE qexsd_init_band_structure(obj, lsda, noncolin, lspinorb, nelec, n_wfc_at, et, wg, nks, xk, ngk, wk, &

View File

@ -476,7 +476,7 @@ MODULE qexsd_input
!
IF (esm_ispresent) THEN
IF (PRESENT(fcp)) THEN
CALL qes_init (obj, TAGNAME, ASSUME_ISOLATED=assume_isolated, ESM=esm_obj, FCP=fcp, FCP_MU=fcp_mu)
CALL qes_init (obj, TAGNAME, ASSUME_ISOLATED=assume_isolated, ESM=esm_obj, FCP_OPT=fcp, FCP_MU=fcp_mu)
ELSE
CALL qes_init (obj, TAGNAME, ASSUME_ISOLATED=assume_isolated, ESM=esm_obj)
END IF

View File

@ -47,6 +47,7 @@ MODULE pw_restart_new
IMPLICIT NONE
!
CHARACTER(LEN=6), EXTERNAL :: int_to_char
REAL(DP),ALLOCATABLE :: local_charges(:), local_mag(:,:)
PRIVATE
PUBLIC :: pw_write_schema, write_collected_wfc
PUBLIC :: read_xml_file, read_collected_wfc
@ -200,7 +201,7 @@ MODULE pw_restart_new
LOGICAL,POINTER :: ts_isol_pt, dftd3_threebody_pt, ts_vdw_isolated_pt, domag_opt
INTEGER,POINTER :: dftd3_version_pt
TYPE(smearing_type),TARGET :: smear_obj
TYPE(smearing_type),POINTER:: smear_obj_ptr
TYPE(smearing_type),POINTER:: smear_obj_ptr
NULLIFY( degauss_, demet_, efield_corr, potstat_corr, gatefield_corr)
NULLIFY( gate_info_ptr, dipol_ptr, bp_obj_ptr, hybrid_obj, vdw_obj, dftU_obj, lumo_energy, ef_point)
@ -502,12 +503,17 @@ MODULE pw_restart_new
! ... MAGNETIZATION
!-------------------------------------------------------------------------------
!
IF (noncolin) THEN
domag_ = domag
domag_opt=> domag_
END IF
CALL qexsd_init_magnetization(output_obj%magnetization, lsda, noncolin, lspinorb, &
magtot, magtot_nc, absmag, domag_opt )
IF (noncolin) THEN
CALL qexsd_init_magnetization(output_obj%magnetization, lsda, noncolin, lspinorb, TOTAL_MAG_NC = magtot_nc,&
ABSOLUTE_MAG = absmag, ATM = upf(1:nsp)%psd, ITYP = ityp, DO_MAGNETIZATION = domag, &
SITE_MAG = local_mag, SITE_CHARGES = local_charges )
ELSE IF (lsda) THEN
ALLOCATE (charges(nat), mags(1,nat))
CALL get_locals(charges, mags(1,nat), rho%of_r)
CALL qexsd_init_magnetization(output_obj%magnetization, lsda, noncolin, lspinorb, TOTAL_MAG = magtot, &
ABSOLUTE_MAG = absmag, ATM = upf(1:nsp)%psd, ITYP = ityp, SITE_MAG_POL = local_mag(1,1:nat), &
SITE_CHARGES = local_charges)
END IF
!
!--------------------------------------------------------------------------------------

View File

@ -157,6 +157,9 @@ MODULE lsda_mod
!! spin of the current kpoint
INTEGER :: isk(npk)
!! for each k-point: 1=spin up, 2=spin down
REAL(DP),ALLOCATABLE :: local_charges(:), local_mag(:,:)
!! used to store the local charges and magnetizatiom computed in report_mag
!! (e.g. for printing them in the XML file)
!
END MODULE lsda_mod
!

View File

@ -7,7 +7,7 @@
!
!
!----------------------------------------------------------------------------
SUBROUTINE report_mag
SUBROUTINE report_mag(save_locals)
!------------------------------------------------------------------------
!! This subroutine prints out information about the local magnetization
!! and/or charge, integrated around the atomic positions at points which
@ -19,9 +19,11 @@ SUBROUTINE report_mag
use constants, ONLY: pi
USE scf, ONLY: rho
USE noncollin_module, ONLY: noncolin, mcons, i_cons, r_m
USE lsda_mod, ONLY: nspin
USE lsda_mod, ONLY: nspin, local_charges, local_mag
!
IMPLICIT NONE
LOGICAL,INTENT(IN) :: save_locals
!! if .TRUE. locals are saved in two local_charges and local_mag of lsda_mod
!
REAL(DP) :: theta, phi, norm, norm1
INTEGER :: ipol, na, nt
@ -29,7 +31,13 @@ SUBROUTINE report_mag
!
! get_local integrates on the previously determined points
!
CALL get_locals( r1_loc, m1_loc, rho%of_r )
CALL get_locals( r1_loc, m1_loc, rho%of_r )
IF (save_locals) THEN
IF ALLOCATED (local_charges) DEALLOCATE (local_charges)
IF ALLOCATED (local_mag) DEALLOCATE (local_mag)
ALLOCATE (local_charges, SOURCE = r1_loc)
ALLOCATE (local_mag, SOURCE = m1_loc)
END IF
!
IF (nspin == 2) THEN
WRITE( stdout, * )