gvectors.hdf5 containing the Miller indexes of G vectors is now written inside the pwscf.save directory

git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12988 c92efa57-630b-4861-b058-cf58834340f0
This commit is contained in:
pietrodelugas 2016-09-20 12:36:07 +00:00
parent eb290b0d59
commit f92ae3341a
4 changed files with 74 additions and 4 deletions

View File

@ -473,10 +473,10 @@ module hdf5_qe
TYPE(C_PTR) :: f_ptr
character*12 kstring
counts=size(var,1)*size(var,2)
if(present(kpoint))then
write(kstring,'(I0)') kpoint
kstring='KPOINT'//kstring
counts=size(var)
CALL h5screate_simple_f(1, counts, dspace_id, error) !create the dataspace
CALL h5gopen_f(hdf5desc%file_id,kstring,hdf5desc%group_id,error)
CALL h5dcreate_f(hdf5desc%group_id, kstring, H5T_NATIVE_INTEGER, dspace_id, &
@ -488,7 +488,7 @@ module hdf5_qe
CALL h5gclose_f(hdf5desc%group_id, error)
else
CALL h5screate_simple_f(1, counts, dspace_id, error) !create the dataspace
CALL h5dcreate_f(hdf5desc%file_id, 'gvec', H5T_NATIVE_INTEGER, dspace_id, &
CALL h5dcreate_f(hdf5desc%file_id, 'Miller indexes', H5T_NATIVE_INTEGER, dspace_id, &
dset_id, error)
f_ptr = C_LOC(var(1,1))
CALL h5dwrite_f(dset_id, H5T_NATIVE_INTEGER, f_ptr, error)

View File

@ -221,6 +221,19 @@ pw_dot.o : kind.o
pw_dot.o : mp.o
pw_dot.o : mp_global.o
pw_dot.o : recvec.o
pw_init_qexsd_input.o : @fixed_occ@
pw_init_qexsd_input.o : cell_base.o
pw_init_qexsd_input.o : constants.o
pw_init_qexsd_input.o : control_flags.o
pw_init_qexsd_input.o : funct.o
pw_init_qexsd_input.o : input_parameters.o
pw_init_qexsd_input.o : ions_base.o
pw_init_qexsd_input.o : kind.o
pw_init_qexsd_input.o : parameters.o
pw_init_qexsd_input.o : qes_module.o
pw_init_qexsd_input.o : qexsd.o
pw_init_qexsd_input.o : qexsd_input.o
pw_init_qexsd_input.o : uspp.o
qes_libs.o : ../iotk/src/iotk_module.o
qes_libs.o : qes_types.o
qes_module.o : ../iotk/src/iotk_module.o

View File

@ -253,6 +253,30 @@ cegterg.o : ../../Modules/kind.o
cegterg.o : ../../Modules/mp.o
cegterg.o : ../../Modules/mp_bands.o
cegterg.o : ../../Modules/mp_diag.o
check_bz_info.o : pwcom.o
check_bz_info.o : start_k.o
check_bz_info.o : symm_base.o
check_cell_info.o : ../../Modules/cell_base.o
check_cell_info.o : ../../Modules/control_flags.o
check_cell_info.o : ../../Modules/run_info.o
check_cell_info.o : esm.o
check_cell_info.o : martyna_tuckerman.o
check_cell_info.o : pwcom.o
check_dim_info.o : ../../Modules/control_flags.o
check_dim_info.o : ../../Modules/fft_base.o
check_dim_info.o : ../../Modules/gvecw.o
check_dim_info.o : ../../Modules/ions_base.o
check_dim_info.o : ../../Modules/mp_global.o
check_dim_info.o : ../../Modules/mp_pools.o
check_dim_info.o : ../../Modules/noncol.o
check_dim_info.o : ../../Modules/recvec.o
check_dim_info.o : pwcom.o
check_dim_info.o : symm_base.o
check_plane_wave_info.o : ../../Modules/control_flags.o
check_plane_wave_info.o : ../../Modules/fft_base.o
check_plane_wave_info.o : ../../Modules/gvecw.o
check_plane_wave_info.o : ../../Modules/recvec.o
check_plane_wave_info.o : pwcom.o
clean_pw.o : ../../FFTXlib/fft_types.o
clean_pw.o : ../../Modules/atom.o
clean_pw.o : ../../Modules/constraints_module.o

View File

@ -424,6 +424,9 @@ MODULE pw_restart_new
USE mp_bands, ONLY : nproc_bgrp, me_bgrp, root_bgrp, &
intra_bgrp_comm, nbgrp, ntask_groups
USE mp_diag, ONLY : nproc_ortho
#if defined(__HDF5)
USE hdf5_qe, ONLY : hdf5_type
#endif
!
IMPLICIT NONE
!
@ -437,6 +440,9 @@ MODULE pw_restart_new
CHARACTER(LEN=320) :: filename
CHARACTER(iotk_attlenx) :: attr
LOGICAL :: ionode_k
#if defined(__HDF5)
TYPE(hdf5_type) :: gvecs_h5desc
#endif
!
!
dirname = TRIM( tmp_dir ) // TRIM( prefix ) // '.save'
@ -465,8 +471,10 @@ MODULE pw_restart_new
CALL mp_sum( mill_g, intra_bgrp_comm )
!
IF ( ionode ) THEN
#if defined __HDF5
#if defined (__HDF5)
filename =trim(dirname) //"/gvectors.hdf5"
CALL h5_write_gvecs(gvecs_h5desc, filename, dfftp%nr1,dfftp%nr2, dfftp%nr3,&
ngm_g, gamma_only, mill_g(:,:) )
#else
!
@ -605,6 +613,31 @@ MODULE pw_restart_new
!
END SUBROUTINE write_gvecs
!
#if defined(__HDF5)
!---------------------------------------------------------------------------------
SUBROUTINE h5_write_gvecs(h5_desc, filename, nr1, nr2, nr3, ngm, gamma_only, mill)
!------------------------------------------------------------------------------
USE hdf5_qe, ONLY: write_g, prepare_for_writing_final, add_attributes_hdf5
IMPLICIT NONE
!
TYPE (hdf5_type),INTENT(INOUT) :: h5_desc
CHARACTER(LEN=*),INTENT(IN) :: filename
INTEGER,INTENT(IN) :: nr1, nr2, nr3, ngm, mill(:,:)
LOGICAL,INTENT(IN) :: gamma_only
!
INTEGER :: gammaonly_ = 0
CALL prepare_for_writing_final(h5_desc,0,filename)
IF ( gamma_only) gammaonly_ =1
CALL add_attributes_hdf5(h5_desc, gammaonly_, "gamma_only")
CALL add_attributes_hdf5(h5_desc, nr1, "nr1s")
CALL add_attributes_hdf5(h5_desc, nr2, "nr2s")
CALL add_attributes_hdf5(h5_desc, nr3, "nr3s")
CALL add_attributes_hdf5(h5_desc, ngm, "gvect_number")
CALL add_attributes_hdf5(h5_desc, "crystal", "units" )
!
CALL write_g(h5_desc, mill)
END SUBROUTINE h5_write_gvecs
#endif
!--------------------------------------------------------------------
SUBROUTINE write_gk( iun, ionode_k, ik, ik_g )
!--------------------------------------------------------------------