LCOV - code coverage report
Current view: top level - io - writeBasis.F90 (source / functions) Hit Total Coverage
Test: combined.info Lines: 0 370 0.0 %
Date: 2019-09-08 04:53:50 Functions: 0 1 0.0 %

          Line data    Source code
       1             : !--------------------------------------------------------------------------------
       2             : ! Copyright (c) 2018 Peter Grünberg Institut, Forschungszentrum Jülich, Germany
       3             : ! This file is part of FLEUR and available as free software under the conditions
       4             : ! of the MIT license as expressed in the LICENSE file in more detail.
       5             : !--------------------------------------------------------------------------------
       6             : 
       7             : MODULE m_writeBasis
       8             : 
       9             : CONTAINS
      10             : 
      11           0 : SUBROUTINE writeBasis(input,noco,kpts,atoms,sym,cell,enpara,vTot,vCoul,vx,mpi,DIMENSION,results,eig_id,oneD,sphhar,stars,vacuum)
      12             : 
      13             :    USE m_types
      14             :    USE m_juDFT
      15             : #ifdef CPP_HDF   
      16             :    USE hdf5
      17             :    USE m_hdf_tools
      18             : #endif   
      19             :    USE m_genmtbasis
      20             :    USE m_pot_io
      21             :    USE m_abcof
      22             :    USE m_abcrot
      23             :    USE m_eig66_io, ONLY : read_eig
      24             : 
      25             :    IMPLICIT NONE
      26             : !     TYPE(t_results),INTENT(IN)    :: results
      27             :       TYPE(t_dimension),INTENT(IN)  :: DIMENSION
      28             :       TYPE(t_enpara),INTENT(IN)     :: enpara
      29             : !     TYPE(t_banddos),INTENT(IN)    :: banddos
      30             : 
      31             :       TYPE(t_sphhar),INTENT(IN)     :: sphhar
      32             :       TYPE(t_stars),INTENT(IN)      :: stars
      33             :       TYPE(t_vacuum),INTENT(IN)     :: vacuum
      34             : 
      35             :       TYPE(t_input),INTENT(IN)      :: input
      36             :       TYPE(t_noco),INTENT(IN)       :: noco
      37             :       TYPE(t_kpts),INTENT(IN)       :: kpts
      38             :       TYPE(t_atoms),INTENT(INOUT)   :: atoms
      39             :       TYPE(t_sym),INTENT(IN)        :: sym
      40             :       TYPE(t_cell),INTENT(IN)       :: cell
      41             :       TYPE(t_potden), INTENT(INOUT) :: vTot
      42             :       TYPE(t_potden), INTENT(INOUT) :: vCoul
      43             :       TYPE(t_potden), INTENT(INOUT) :: vx
      44             :       TYPE(t_mpi), INTENT(IN)       :: mpi
      45             :       TYPE(t_results), INTENT(INOUT):: results
      46             :       INTEGER, INTENT(IN)           :: eig_id
      47             :       TYPE(t_oneD), INTENT(IN)      :: oneD
      48             : 
      49           0 :       TYPE (t_usdus)                :: usdus
      50           0 :       TYPE(t_lapw)                  :: lapw
      51           0 :       TYPE (t_eigVecCoeffs)         :: eigVecCoeffs
      52           0 :       TYPE (t_force)                :: force
      53           0 :       TYPE(t_mat)                   :: zMat
      54             : 
      55             : #ifdef CPP_HDF   
      56             :       
      57             :       LOGICAL           :: l_exist
      58             :       CHARACTER(LEN=30) :: filename
      59             :       CHARACTER(LEN=50) :: kpt_name
      60             :       CHARACTER(LEN=30) :: jsp_name
      61             :       CHARACTER(LEN=30) :: itype_name
      62             : !     CHARACTER(LEN=30) :: l_name
      63             : 
      64             :    
      65             :       INTEGER(HID_T)    :: fileID
      66             :       INTEGER(HID_T)    :: metaGroupID
      67             :       INTEGER(HID_T)    :: generalGroupID
      68             :       INTEGER(HID_T)    :: cellGroupID
      69             :       INTEGER(HID_T)    :: atomsGroupID
      70             :       INTEGER(HID_T)    :: kptsGroupID
      71             :       INTEGER(HID_T)    :: kptGroupID
      72             :       INTEGER(HID_T)    :: jspGroupID
      73             :       INTEGER(HID_T)    :: itypeGroupID,  itypeSpaceID, itypeSetID
      74             : !     INTEGER(HID_T)    :: lGroupID
      75             : 
      76             : !     INTEGER(HID_T)    :: stringTypeID
      77             : !     INTEGER(SIZE_T)   :: stringLength
      78             : 
      79             :       INTEGER(HID_T)    :: bravaisMatrixSpaceID, bravaisMatrixSetID
      80             :       INTEGER(HID_T)    :: reciprocalCellSpaceID, reciprocalCellSetID
      81             : 
      82             :       INTEGER(HID_T)    :: atomPosSpaceID, atomPosSetID
      83             :       INTEGER(HID_T)    :: gvecSpaceID, gvecSetID
      84             :       INTEGER(HID_T)    :: eigSpaceID, eigSetID
      85             :       INTEGER(HID_T)    :: zmatSpaceID, zmatSetID
      86             :       INTEGER(HID_T)    :: atomicNumbersSpaceID, atomicNumbersSetID
      87             :       INTEGER(HID_T)    :: equivAtomsClassSpaceID, equivAtomsClassSetID
      88             : 
      89             :       INTEGER(HID_T)    :: kptCoordSpaceID, kptCoordSetID
      90             :       INTEGER(HID_T)    :: kptWeightSpaceID, kptWeightSetID
      91             : !     INTEGER(HID_T)    :: kptSPLabelsSpaceID, kptSPLabelsSetID
      92             : !     INTEGER(HID_T)    :: kptsSPIndicesSpaceID, kptsSPIndicesSetID
      93             :       INTEGER(HSIZE_T)  :: dims(7)
      94             : 
      95             :       INTEGER           :: j, iAtom, i
      96             : !     INTEGER           :: noded, nodeu
      97             : 
      98             :       INTEGER           :: hdfError, dimsInt(7)
      99             :       INTEGER           :: version
     100           0 :       REAL, ALLOCATABLE :: output(:,:,:,:),output5(:,:,:,:,:),output3(:,:,:)
     101             : !     INTEGER           :: fakeLogical
     102             : !     REAL              :: eFermiPrev
     103             : !     LOGICAL           :: l_error
     104             : 
     105           0 :       INTEGER           :: atomicNumbers(atoms%nat),ngopr_temp(atoms%nat)
     106           0 :       INTEGER           :: equivAtomsGroup(atoms%nat)
     107             : 
     108             : 
     109             : 
     110           0 :       REAL, ALLOCATABLE :: f(:,:,:,:),g(:,:,:,:)
     111           0 :       REAL, ALLOCATABLE :: flo(:,:,:)
     112             : 
     113           0 :       real, allocatable :: cof(:,:,:,:)
     114             :       integer(HSIZE_T)  :: Hdim1(4)
     115             :       INTEGER           :: lmn, na,lm,n,nn, m
     116             :       complex,parameter :: img=(0.,1.)
     117             :       REAL              :: bk(3)
     118             : 
     119             :       LOGICAL l_zref,l_real, link_exists
     120             :       INTEGER jsp,nk,l,itype
     121             :       INTEGER numbands, nbasfcn, ndbands !ndbands number of bands without highest (degenerate)
     122             : 
     123             :     !WRITE(5000,*) 'writeBasis entry'
     124             : 
     125           0 :     CALL force%init1(input,atoms)
     126             : 
     127           0 :     IF (noco%l_mperp) THEN
     128           0 :        ALLOCATE ( f(atoms%jmtd,2,0:atoms%lmaxd,input%jspins),g(atoms%jmtd,2,0:atoms%lmaxd,input%jspins) )
     129             :     ELSE
     130           0 :        ALLOCATE ( f(atoms%jmtd,2,0:atoms%lmaxd,1:input%jspins) )
     131           0 :        ALLOCATE ( g(atoms%jmtd,2,0:atoms%lmaxd,1:input%jspins) )
     132             :     ENDIF
     133           0 :     ALLOCATE (flo(atoms%jmtd,2,atoms%nlod))
     134           0 :     flo(:,:,:) = 0.0
     135             : 
     136             : 
     137             :     !-------------------------write potential--------------------
     138           0 :     IF(input%gw==1) THEN
     139           0 :        CALL writePotential(stars,vacuum,atoms,cell,sphhar,input,sym,oneD,POT_ARCHIVE_TYPE_TOT_const,vTot%iter,vTot,vTot%pw_w)
     140           0 :        CALL writePotential(stars,vacuum,atoms,cell,sphhar,input,sym,oneD,POT_ARCHIVE_TYPE_COUL_const,vCoul%iter,vCoul,vCoul%pw_w)
     141           0 :        CALL writePotential(stars,vacuum,atoms,cell,sphhar,input,sym,oneD,POT_ARCHIVE_TYPE_X_const,vx%iter,vx,vx%pw_w)
     142             :     END IF
     143             : 
     144             : 
     145           0 :       l_real=sym%invs.AND..NOT.noco%l_noco
     146             : !     check if z-reflection trick can be used
     147           0 :       l_zref=(sym%zrfs.AND.(SUM(ABS(kpts%bk(3,:kpts%nkpt))).LT.1e-9).AND..NOT.noco%l_noco)
     148             : !     IF (mpi%n_size > 1) l_zref = .FALSE.
     149           0 :       version = 1
     150           0 :       filename = 'basis.hdf'
     151             : 
     152           0 :       INQUIRE(FILE=TRIM(ADJUSTL(filename)),EXIST=l_exist)
     153           0 :       IF(l_exist) THEN
     154           0 :          CALL system('rm '//TRIM(ADJUSTL(filename)))       
     155             :       END IF
     156             : 
     157           0 :       CALL h5fcreate_f(TRIM(ADJUSTL(filename)), H5F_ACC_TRUNC_F, fileID, hdfError, H5P_DEFAULT_F, H5P_DEFAULT_F)
     158             : 
     159           0 :       CALL h5gcreate_f(fileID, '/meta', metaGroupID, hdfError)
     160           0 :       CALL io_write_attint0(metaGroupID,'version',version)
     161           0 :       CALL h5gclose_f(metaGroupID, hdfError)
     162             : 
     163           0 :       CALL h5gcreate_f(fileID, '/general', generalGroupID, hdfError)
     164           0 :       CALL io_write_attint0(generalGroupID,'jspins',input%jspins)
     165           0 :       CALL io_write_attlog0(generalGroupID,'invs',sym%invs)
     166           0 :       CALL io_write_attlog0(generalGroupID,'l_soc',noco%l_soc)
     167           0 :       CALL io_write_attlog0(generalGroupID,'l_real',l_real)
     168           0 :       CALL io_write_attreal0(generalGroupID,'rkmax',input%rkmax)
     169           0 :       CALL h5gclose_f(generalGroupID, hdfError)      
     170             : 
     171           0 :       CALL h5gcreate_f(fileID, '/cell', cellGroupID, hdfError)
     172             : 
     173           0 :       dims(:2)=(/3,3/)
     174           0 :       dimsInt=dims
     175           0 :       CALL h5screate_simple_f(2,dims(:2),bravaisMatrixSpaceID,hdfError)
     176           0 :       CALL h5dcreate_f(cellGroupID, "amat", H5T_NATIVE_DOUBLE, bravaisMatrixSpaceID, bravaisMatrixSetID, hdfError)
     177           0 :       CALL h5sclose_f(bravaisMatrixSpaceID,hdfError)
     178           0 :       CALL io_write_real2(bravaisMatrixSetID,(/1,1/),dimsInt(:2),cell%amat)
     179           0 :       CALL h5dclose_f(bravaisMatrixSetID, hdfError)
     180             : 
     181           0 :       dims(:2)=(/3,3/)
     182           0 :       dimsInt=dims
     183           0 :       CALL h5screate_simple_f(2,dims(:2),reciprocalCellSpaceID,hdfError)
     184           0 :       CALL h5dcreate_f(cellGroupID, "bmat", H5T_NATIVE_DOUBLE, reciprocalCellSpaceID, reciprocalCellSetID, hdfError)
     185           0 :       CALL h5sclose_f(reciprocalCellSpaceID,hdfError)
     186           0 :       CALL io_write_real2(reciprocalCellSetID,(/1,1/),dimsInt(:2),cell%bmat)
     187           0 :       CALL h5dclose_f(reciprocalCellSetID, hdfError)
     188             :       
     189           0 :       CALL io_write_attreal0(cellGroupID,'scaleCell',input%scaleCell)
     190           0 :       CALL io_write_attreal0(cellGroupID,'scaleA1',input%scaleA1)
     191           0 :       CALL io_write_attreal0(cellGroupID,'scaleA2',input%scaleA2)
     192           0 :       CALL io_write_attreal0(cellGroupID,'scaleC',input%scaleC)
     193             : 
     194             : 
     195           0 :       CALL h5gclose_f(cellGroupID, hdfError)
     196           0 :       iAtom = 0
     197           0 :       DO iType = 1, atoms%ntype
     198           0 :          DO j = 1, atoms%neq(iType)
     199           0 :             iAtom = iAtom + 1
     200           0 :             atomicNumbers(iAtom) = atoms%nz(iType)
     201           0 :             equivAtomsGroup(iAtom) = iType
     202             :          END DO
     203             :       END DO
     204             : 
     205           0 :       CALL h5gcreate_f(fileID, '/atoms', atomsGroupID, hdfError)
     206           0 :       CALL io_write_attint0(atomsGroupID,'nAtoms',atoms%nat)
     207           0 :       CALL io_write_attint0(atomsGroupID,'nTypes',atoms%ntype)
     208           0 :       CALL io_write_attint0(atomsGroupID,'nlod',atoms%nlod)
     209           0 :       CALL io_write_attint0(atomsGroupID,'llod',atoms%llod)
     210           0 :       CALL io_write_attint0(atomsGroupID,'nlotot',atoms%nlotot)
     211           0 :       CALL io_write_attint0(atomsGroupID,'lmaxd',atoms%lmaxd)
     212           0 :       CALL io_write_attint0(atomsGroupID,'jmtd',atoms%jmtd)
     213             : 
     214           0 :       dims(:1)=(/atoms%ntype/)
     215           0 :       dimsInt=dims
     216           0 :       CALL h5screate_simple_f(1,dims(:1),atomicNumbersSpaceID,hdfError)
     217           0 :       CALL h5dcreate_f(atomsGroupID, "jri", H5T_NATIVE_INTEGER, atomicNumbersSpaceID, atomicNumbersSetID, hdfError)
     218           0 :       CALL h5sclose_f(atomicNumbersSpaceID,hdfError)
     219           0 :       CALL io_write_integer1(atomicNumbersSetID,(/1/),dimsInt(:1),atoms%jri)
     220           0 :       CALL h5dclose_f(atomicNumbersSetID, hdfError)
     221             : 
     222           0 :       dims(:1)=(/atoms%ntype/)
     223           0 :       dimsInt=dims
     224           0 :       CALL h5screate_simple_f(1,dims(:1),atomicNumbersSpaceID,hdfError)
     225           0 :       CALL h5dcreate_f(atomsGroupID, "lmax", H5T_NATIVE_INTEGER, atomicNumbersSpaceID, atomicNumbersSetID, hdfError)
     226           0 :       CALL h5sclose_f(atomicNumbersSpaceID,hdfError)
     227           0 :       CALL io_write_integer1(atomicNumbersSetID,(/1/),dimsInt(:1),atoms%lmax)
     228           0 :       CALL h5dclose_f(atomicNumbersSetID, hdfError)
     229             :       
     230           0 :       dims(:1)=(/atoms%ntype/)
     231           0 :       dimsInt=dims
     232           0 :       CALL h5screate_simple_f(1,dims(:1),atomicNumbersSpaceID,hdfError)
     233           0 :       CALL h5dcreate_f(atomsGroupID, "neq", H5T_NATIVE_INTEGER, atomicNumbersSpaceID, atomicNumbersSetID, hdfError)
     234           0 :       CALL h5sclose_f(atomicNumbersSpaceID,hdfError)
     235           0 :       CALL io_write_integer1(atomicNumbersSetID,(/1/),dimsInt(:1),atoms%neq)
     236           0 :       CALL h5dclose_f(atomicNumbersSetID, hdfError)
     237             : 
     238           0 :       dims(:1)=(/atoms%ntype/)
     239           0 :       dimsInt=dims
     240           0 :       CALL h5screate_simple_f(1,dims(:1),atomicNumbersSpaceID,hdfError)
     241           0 :       CALL h5dcreate_f(atomsGroupID, "nlo", H5T_NATIVE_INTEGER, atomicNumbersSpaceID, atomicNumbersSetID, hdfError)
     242           0 :       CALL h5sclose_f(atomicNumbersSpaceID,hdfError)
     243           0 :       CALL io_write_integer1(atomicNumbersSetID,(/1/),dimsInt(:1),atoms%nlo)
     244           0 :       CALL h5dclose_f(atomicNumbersSetID, hdfError)
     245             : 
     246           0 :       dims(:2)=(/atoms%nlod,atoms%ntype/)
     247           0 :       dimsInt=dims
     248           0 :       CALL h5screate_simple_f(2,dims(:2),atomPosSpaceID,hdfError)
     249           0 :       CALL h5dcreate_f(atomsGroupID, "llo", H5T_NATIVE_INTEGER, atomPosSpaceID, atomPosSetID, hdfError)
     250           0 :       CALL h5sclose_f(atomPosSpaceID,hdfError)
     251           0 :       CALL io_write_integer2(atomPosSetID,(/1,1/),dimsInt(:2),atoms%llo)
     252           0 :       CALL h5dclose_f(atomPosSetID, hdfError)
     253             : 
     254           0 :       dims(:2)=(/atoms%jmtd,atoms%ntype/)
     255           0 :       dimsInt=dims
     256           0 :       CALL h5screate_simple_f(2,dims(:2),atomPosSpaceID,hdfError)
     257           0 :       CALL h5dcreate_f(atomsGroupID, "rmsh", H5T_NATIVE_DOUBLE, atomPosSpaceID, atomPosSetID, hdfError)
     258           0 :       CALL h5sclose_f(atomPosSpaceID,hdfError)
     259           0 :       CALL io_write_real2(atomPosSetID,(/1,1/),dimsInt(:2),atoms%rmsh)
     260           0 :       CALL h5dclose_f(atomPosSetID, hdfError)
     261             : 
     262           0 :       dims(:2)=(/3,atoms%nat/)
     263           0 :       dimsInt=dims
     264           0 :       CALL h5screate_simple_f(2,dims(:2),atomPosSpaceID,hdfError)
     265           0 :       CALL h5dcreate_f(atomsGroupID, "ratoms", H5T_NATIVE_DOUBLE, atomPosSpaceID, atomPosSetID, hdfError)
     266           0 :       CALL h5sclose_f(atomPosSpaceID,hdfError)
     267           0 :       CALL io_write_real2(atomPosSetID,(/1,1/),dimsInt(:2),atoms%taual)
     268           0 :       CALL h5dclose_f(atomPosSetID, hdfError)
     269             : 
     270           0 :       dims(:1)=(/atoms%nat/)
     271           0 :       dimsInt=dims
     272           0 :       CALL h5screate_simple_f(1,dims(:1),atomicNumbersSpaceID,hdfError)
     273           0 :       CALL h5dcreate_f(atomsGroupID, "zatoms", H5T_NATIVE_INTEGER, atomicNumbersSpaceID, atomicNumbersSetID, hdfError)
     274           0 :       CALL h5sclose_f(atomicNumbersSpaceID,hdfError)
     275           0 :       CALL io_write_integer1(atomicNumbersSetID,(/1/),dimsInt(:1),atomicNumbers)
     276           0 :       CALL h5dclose_f(atomicNumbersSetID, hdfError)
     277             : 
     278           0 :       dims(:1)=(/atoms%ntype/)
     279           0 :       dimsInt=dims
     280           0 :       CALL h5screate_simple_f(1,dims(:1),atomicNumbersSpaceID,hdfError)
     281           0 :       CALL h5dcreate_f(atomsGroupID, "ztype", H5T_NATIVE_INTEGER, atomicNumbersSpaceID, atomicNumbersSetID, hdfError)
     282           0 :       CALL h5sclose_f(atomicNumbersSpaceID,hdfError)
     283           0 :       CALL io_write_integer1(atomicNumbersSetID,(/1/),dimsInt(:1),atoms%nz)
     284           0 :       CALL h5dclose_f(atomicNumbersSetID, hdfError)
     285             : 
     286           0 :       dims(:1)=(/atoms%nat/)
     287           0 :       dimsInt=dims
     288           0 :       CALL h5screate_simple_f(1,dims(:1),equivAtomsClassSpaceID,hdfError)
     289           0 :       CALL h5dcreate_f(atomsGroupID, "equivAtomsGroup", H5T_NATIVE_INTEGER, equivAtomsClassSpaceID, equivAtomsClassSetID, hdfError)
     290           0 :       CALL h5sclose_f(equivAtomsClassSpaceID,hdfError)
     291           0 :       CALL io_write_integer1(equivAtomsClassSetID,(/1/),dimsInt(:1),equivAtomsGroup)
     292           0 :       CALL h5dclose_f(equivAtomsClassSetID, hdfError)
     293             : 
     294           0 :       CALL h5gclose_f(atomsGroupID, hdfError)
     295             : 
     296           0 :       CALL h5gcreate_f(fileID, '/kpts', kptsGroupID, hdfError)
     297             : 
     298           0 :       CALL io_write_attint0(kptsGroupID,'nkpt',kpts%nkpt)
     299             : 
     300           0 :       dims(:2)=(/3,kpts%nkpt/)
     301           0 :       dimsInt=dims
     302           0 :       CALL h5screate_simple_f(2,dims(:2),kptCoordSpaceID,hdfError)
     303           0 :       CALL h5dcreate_f(kptsGroupID, "coordinates", H5T_NATIVE_DOUBLE, kptCoordSpaceID, kptCoordSetID, hdfError)
     304           0 :       CALL h5sclose_f(kptCoordSpaceID,hdfError)
     305           0 :       CALL io_write_real2(kptCoordSetID,(/1,1/),dimsInt(:2),kpts%bk)
     306           0 :       CALL h5dclose_f(kptCoordSetID, hdfError)
     307             : 
     308           0 :       dims(:1)=(/kpts%nkpt/)
     309           0 :       dimsInt=dims
     310           0 :       CALL h5screate_simple_f(1,dims(:1),kptWeightSpaceID,hdfError)
     311           0 :       CALL h5dcreate_f(kptsGroupID, "weights", H5T_NATIVE_DOUBLE, kptWeightSpaceID, kptWeightSetID, hdfError)
     312           0 :       CALL h5sclose_f(kptWeightSpaceID,hdfError)
     313           0 :       CALL io_write_real1(kptWeightSetID,(/1/),dimsInt(:1),kpts%wtkpt)
     314           0 :       CALL h5dclose_f(kptWeightSetID, hdfError)
     315             : 
     316           0 :       CALL h5gclose_f(kptsGroupID, hdfError)
     317             : 
     318           0 :       CALL usdus%init(atoms,input%jspins)
     319             : 
     320           0 :       DO jsp = 1,MERGE(1,input%jspins,noco%l_noco)
     321           0 :          write(jsp_name , '(a,i0)') '/jsp_',jsp
     322           0 :          CALL h5gcreate_f(fileID, TRIM(ADJUSTL(jsp_name)), jspGroupID, hdfError)
     323             : !        DO nk = mpi%n_start,kpts%nkpt,mpi%n_stride
     324           0 :          DO nk = 1,kpts%nkpt
     325           0 :             CALL lapw%init(input,noco,kpts,atoms,sym,nk,cell,l_zref)
     326           0 :             bk(:) = kpts%bk(:,nk)
     327           0 :             IF(abs(bk(1)).LT.1e-7) bk(1) = abs(bk(1))
     328           0 :             IF(abs(bk(2)).LT.1e-7) bk(2) = abs(bk(2))
     329           0 :             IF(abs(bk(3)).LT.1e-7) bk(3) = abs(bk(3))
     330             :             !write(kpt_name , '(2a,i0)') TRIM(ADJUSTL(jsp_name)),'/kpt_',nk
     331           0 :             write(kpt_name , '(2a,f12.10,a,f12.10,a,f12.10)') TRIM(ADJUSTL(jsp_name)),'/kpt_',bk(1),',',bk(2),',',bk(3)
     332           0 :             CALL h5lexists_f(fileID, TRIM(ADJUSTL(kpt_name)), link_exists, hdfError)
     333           0 :             IF (link_exists) CYCLE
     334           0 :             CALL h5gcreate_f(fileID, TRIM(ADJUSTL(kpt_name)), kptGroupID, hdfError)
     335             : !--------------------enter output gvec etc here--------------------
     336           0 :             CALL io_write_attint0(kptGroupID,'nv',lapw%nv(jsp))
     337             : 
     338           0 :             dims(:2)=(/3,lapw%nv(jsp)/)
     339           0 :             dimsInt=dims
     340           0 :             CALL h5screate_simple_f(2,dims(:2),gvecSpaceID,hdfError)
     341           0 :             CALL h5dcreate_f(kptGroupID, "gvec", H5T_NATIVE_INTEGER, gvecSpaceID, gvecSetID, hdfError)
     342           0 :             CALL h5sclose_f(gvecSpaceID,hdfError)
     343           0 :             CALL io_write_integer2(gvecSetID,(/1,1/),dimsInt(:2),lapw%gvec(:,:lapw%nv(jsp),jsp))
     344           0 :             CALL h5dclose_f(gvecSetID, hdfError)        
     345             :               
     346           0 :             CALL h5gclose_f(kptGroupID, hdfError)   
     347             :          END DO
     348             : 
     349           0 :          DO itype = 1,atoms%ntype
     350           0 :             write(itype_name , '(2a,i0)') TRIM(ADJUSTL(jsp_name)),'/itype_',itype
     351           0 :             CALL h5gcreate_f(fileID, TRIM(ADJUSTL(itype_name)), itypeGroupID, hdfError)
     352             : 
     353           0 :             CALL genMTBasis(atoms,enpara,vTot,mpi,itype,jsp,usdus,f(:,:,0:,jsp),g(:,:,0:,jsp),flo)
     354           0 :             dims(:3)=(/atoms%jmtd,2,atoms%lmaxd+1/)
     355           0 :             dimsInt = dims
     356           0 :             CALL h5screate_simple_f(3,dims(:3),itypeSpaceID,hdfError)
     357           0 :             CALL h5dcreate_f(itypeGroupID, "f", H5T_NATIVE_DOUBLE, itypeSpaceID, itypeSetID, hdfError)
     358           0 :             CALL h5sclose_f(itypeSpaceID,hdfError)
     359           0 :             CALL io_write_real3(itypeSetID,(/1,1,1/),dimsInt(:3),f(:,:,0:,jsp))
     360           0 :             CALL h5dclose_f(itypeSetID, hdfError)
     361             : 
     362           0 :             CALL h5screate_simple_f(3,dims(:3),itypeSpaceID,hdfError)
     363           0 :             CALL h5dcreate_f(itypeGroupID, "g", H5T_NATIVE_DOUBLE, itypeSpaceID, itypeSetID, hdfError)
     364           0 :             CALL h5sclose_f(itypeSpaceID,hdfError)
     365           0 :             CALL io_write_real3(itypeSetID,(/1,1,1/),dimsInt(:3),g(:,:,0:,jsp))
     366           0 :             CALL h5dclose_f(itypeSetID, hdfError)
     367             : 
     368           0 :             dims(:3)=(/atoms%jmtd,2,atoms%nlod/)
     369           0 :             dimsInt = dims
     370           0 :             CALL h5screate_simple_f(3,dims(:3),itypeSpaceID,hdfError)
     371           0 :             CALL h5dcreate_f(itypeGroupID, "flo", H5T_NATIVE_DOUBLE, itypeSpaceID, itypeSetID, hdfError)
     372           0 :             CALL h5sclose_f(itypeSpaceID,hdfError)
     373           0 :             CALL io_write_real3(itypeSetID,(/1,1,1/),dimsInt(:3),flo(:,:,:))
     374           0 :             CALL h5dclose_f(itypeSetID, hdfError)
     375             : 
     376           0 :             dims(:1)=(/atoms%lmaxd+1/)
     377           0 :             dimsInt = dims
     378           0 :             CALL h5screate_simple_f(1,dims(:1),itypeSpaceID,hdfError)
     379           0 :             CALL h5dcreate_f(itypeGroupID, "us", H5T_NATIVE_DOUBLE, itypeSpaceID, itypeSetID, hdfError)
     380           0 :             CALL h5sclose_f(itypeSpaceID,hdfError)
     381           0 :             CALL io_write_real1(itypeSetID,(/1/),dimsInt(:1),usdus%us(:,itype,jsp))
     382           0 :             CALL h5dclose_f(itypeSetID, hdfError)
     383             : 
     384           0 :             CALL h5screate_simple_f(1,dims(:1),itypeSpaceID,hdfError)
     385           0 :             CALL h5dcreate_f(itypeGroupID, "dus", H5T_NATIVE_DOUBLE, itypeSpaceID, itypeSetID, hdfError)
     386           0 :             CALL h5sclose_f(itypeSpaceID,hdfError)
     387           0 :             CALL io_write_real1(itypeSetID,(/1/),dimsInt(:1),usdus%dus(:,itype,jsp))
     388           0 :             CALL h5dclose_f(itypeSetID, hdfError)
     389             : 
     390           0 :             CALL h5screate_simple_f(1,dims(:1),itypeSpaceID,hdfError)
     391           0 :             CALL h5dcreate_f(itypeGroupID, "uds", H5T_NATIVE_DOUBLE, itypeSpaceID, itypeSetID, hdfError)
     392           0 :             CALL h5sclose_f(itypeSpaceID,hdfError)
     393           0 :             CALL io_write_real1(itypeSetID,(/1/),dimsInt(:1),usdus%uds(:,itype,jsp))
     394           0 :             CALL h5dclose_f(itypeSetID, hdfError)
     395             : 
     396           0 :             CALL h5screate_simple_f(1,dims(:1),itypeSpaceID,hdfError)
     397           0 :             CALL h5dcreate_f(itypeGroupID, "duds", H5T_NATIVE_DOUBLE, itypeSpaceID, itypeSetID, hdfError)
     398           0 :             CALL h5sclose_f(itypeSpaceID,hdfError)
     399           0 :             CALL io_write_real1(itypeSetID,(/1/),dimsInt(:1),usdus%duds(:,itype,jsp))
     400           0 :             CALL h5dclose_f(itypeSetID, hdfError)
     401             : 
     402           0 :             dims(:1)=(/atoms%nlod/)
     403           0 :             dimsInt = dims
     404           0 :             CALL h5screate_simple_f(1,dims(:1),itypeSpaceID,hdfError)
     405           0 :             CALL h5dcreate_f(itypeGroupID, "dulos", H5T_NATIVE_DOUBLE, itypeSpaceID, itypeSetID, hdfError)
     406           0 :             CALL h5sclose_f(itypeSpaceID,hdfError)
     407           0 :             CALL io_write_real1(itypeSetID,(/1/),dimsInt(:1),usdus%dulos(:,itype,jsp))
     408           0 :             CALL h5dclose_f(itypeSetID, hdfError)
     409             : 
     410           0 :             CALL h5screate_simple_f(1,dims(:1),itypeSpaceID,hdfError)
     411           0 :             CALL h5dcreate_f(itypeGroupID, "ulos", H5T_NATIVE_DOUBLE, itypeSpaceID, itypeSetID, hdfError)
     412           0 :             CALL h5sclose_f(itypeSpaceID,hdfError)
     413           0 :             CALL io_write_real1(itypeSetID,(/1/),dimsInt(:1),usdus%ulos(:,itype,jsp))
     414           0 :             CALL h5dclose_f(itypeSetID, hdfError)
     415             : 
     416           0 :             dims(:1)=(/atoms%lmaxd+1/)
     417           0 :             dimsInt = dims
     418           0 :             CALL h5screate_simple_f(1,dims(:1),itypeSpaceID,hdfError)
     419           0 :             CALL h5dcreate_f(itypeGroupID, "el0", H5T_NATIVE_DOUBLE, itypeSpaceID, itypeSetID, hdfError)
     420           0 :             CALL h5sclose_f(itypeSpaceID,hdfError)
     421           0 :             CALL io_write_real1(itypeSetID,(/1/),dimsInt(:1),enpara%el0(:,itype,jsp))
     422           0 :             CALL h5dclose_f(itypeSetID, hdfError)
     423             : 
     424           0 :             dims(:1)=(/atoms%nlod/)
     425           0 :             dimsInt = dims
     426           0 :             CALL h5screate_simple_f(1,dims(:1),itypeSpaceID,hdfError)
     427           0 :             CALL h5dcreate_f(itypeGroupID, "ello0", H5T_NATIVE_DOUBLE, itypeSpaceID, itypeSetID, hdfError)
     428           0 :             CALL h5sclose_f(itypeSpaceID,hdfError)
     429           0 :             CALL io_write_real1(itypeSetID,(/1/),dimsInt(:1),enpara%ello0(:,itype,jsp))
     430           0 :             CALL h5dclose_f(itypeSetID, hdfError)
     431             : 
     432             : 
     433             : !           write(kpt_name , '(3a,i0)') TRIM(ADJUSTL(jsp_name)),TRIM(ADJUSTL(itype_name)),'/l_',l
     434             : !           CALL h5gcreate_f(fileID, TRIM(ADJUSTL(l_name)), lGroupID, hdfError)
     435             : !           CALL h5gclose_f(lGroupID, hdfError)
     436           0 :             CALL h5gclose_f(itypeGroupID, hdfError)
     437             :         END DO
     438             : 
     439           0 :        CALL h5gclose_f(jspGroupID, hdfError)
     440             :     END DO
     441           0 :     CALL h5fclose_f(fileID, hdfError)
     442           0 :     version = 1
     443           0 :     filename = 'eig_gw.hdf'
     444             : 
     445             : 
     446           0 :     IF(input%gw==2) THEN
     447           0 :       INQUIRE(FILE=TRIM(ADJUSTL(filename)),EXIST=l_exist)
     448           0 :       IF(l_exist) THEN
     449           0 :         CALL system('rm '//TRIM(ADJUSTL(filename)))       
     450             :       END IF
     451             : 
     452           0 :       CALL h5fcreate_f(TRIM(ADJUSTL(filename)), H5F_ACC_TRUNC_F, fileID, hdfError, H5P_DEFAULT_F, H5P_DEFAULT_F)
     453             : 
     454           0 :       CALL h5gcreate_f(fileID, '/meta', metaGroupID, hdfError)
     455           0 :       CALL io_write_attint0(metaGroupID,'version',version)
     456           0 :       CALL h5gclose_f(metaGroupID, hdfError)
     457             : 
     458           0 :    DO jsp = 1,MERGE(1,input%jspins,noco%l_noco)
     459           0 :        write(jsp_name , '(a,i0)') '/jsp_',jsp
     460           0 :        CALL h5gcreate_f(fileID, TRIM(ADJUSTL(jsp_name)), jspGroupID, hdfError)
     461             : !      DO nk = mpi%n_start,kpts%nkpt,mpi%n_stride
     462           0 :        DO nk = 1,kpts%nkpt
     463           0 :             CALL lapw%init(input,noco,kpts,atoms,sym,nk,cell,l_zref)
     464           0 :             bk(:) = kpts%bk(:,nk)
     465           0 :             IF(abs(bk(1)).LT.1e-7) bk(1) = abs(bk(1))
     466           0 :             IF(abs(bk(2)).LT.1e-7) bk(2) = abs(bk(2))
     467           0 :             IF(abs(bk(3)).LT.1e-7) bk(3) = abs(bk(3))
     468             :             !write(kpt_name , '(2a,i0)') TRIM(ADJUSTL(jsp_name)),'/kpt_',nk
     469           0 :             write(kpt_name , '(2a,f12.10,a,f12.10,a,f12.10)') TRIM(ADJUSTL(jsp_name)),'/kpt_',bk(1),',',bk(2),',',bk(3)
     470           0 :             CALL h5lexists_f(fileID, TRIM(ADJUSTL(kpt_name)), link_exists, hdfError)
     471           0 :             IF (link_exists) CYCLE
     472           0 :             CALL h5gcreate_f(fileID, TRIM(ADJUSTL(kpt_name)), kptGroupID, hdfError)
     473             : !--------------------abcoff, zmat, eig output here-------------------
     474             : !,results%neig(nk,jsp),results%eig(:,nk,jsp)
     475           0 :             numbands=results%neig(nk,jsp)
     476           0 :             nbasfcn = MERGE(lapw%nv(1)+lapw%nv(2)+2*atoms%nlotot,lapw%nv(1)+atoms%nlotot,noco%l_noco)
     477           0 :             CALL zMat%init(l_real,nbasfcn,numbands)
     478           0 :             CALL read_eig(eig_id,nk,jsp,zmat=zMat)
     479           0 :             CALL eigVecCoeffs%init(input,DIMENSION,atoms,noco,jsp,numbands)
     480           0 :             IF (input%l_f) CALL force%init2(numbands,input,atoms)
     481             : !            DO i=1,atoms%nat
     482             : !               ngopr_temp(i)=atoms%ngopr(i)
     483             : !               atoms%ngopr(i)=1
     484             : !            END DO
     485             :                 CALL abcof(input,atoms,sym,cell,lapw,numbands,usdus,noco,jsp,oneD,&
     486             :                     eigVecCoeffs%acof(:,0:,:,jsp),eigVecCoeffs%bcof(:,0:,:,jsp),&
     487           0 :                     eigVecCoeffs%ccof(-atoms%llod:,:,:,:,jsp),zMat,results%eig(:,nk,jsp),force) 
     488             : !            DO i=1,atoms%nat
     489             : !               atoms%ngopr(i)=ngopr_temp(i)
     490             : !            END DO
     491             :                 CALL abcrot(atoms%ntype,atoms%nat,numbands,atoms%lmaxd,dimension%lmd,atoms%llod,atoms%nlod,atoms%ntype,atoms%neq,&
     492             :                             numbands,atoms%lmax,atoms%nlo,atoms%llo,sym%nop,atoms%ngopr,sym%mrot,atoms%invsat,sym%invsatnr,cell%bmat,&
     493             :                            oneD%odi,oneD%ods,&
     494           0 :                            eigVecCoeffs%acof(:,0:,:,jsp),eigVecCoeffs%bcof(:,0:,:,jsp),eigVecCoeffs%ccof(-atoms%llod:,:,:,:,jsp))
     495             : !-------------------------for spex output: nbasfcn=nv(because lo info not needed) and numbands setting to numbands without highest (degenerat) state-------- 
     496             : !                nbasfcn= MERGE(lapw%nv(1)+lapw%nv(2)+2*atoms%nlotot,lapw%nv(1)+atoms%nlotot,noco%l_noco)
     497           0 :                 ndbands=numbands-1
     498           0 :                 DO i=(numbands-1),1,-1
     499           0 :                     IF (abs(results%eig(i+1,nk,jsp)-results%eig(i,nk,jsp)).LT.0.000001) THEN
     500           0 :                         ndbands=ndbands-1
     501             :                     ELSE
     502             :                         EXIT
     503             :                     END IF
     504             :                 END DO
     505           0 :                 write(*,*)numbands,ndbands
     506           0 :                 numbands=ndbands
     507             : !------------------------setting variables numbands and nbasfcn end -------------------
     508             :                 !CALL read_eig(eig_id,nk,jsp,eig=results%eig(:,nk,jsp),zmat=zMat)
     509           0 :                 dims(:1)=(/numbands/)
     510           0 :                 dimsInt=dims
     511           0 :                 CALL h5screate_simple_f(1,dims(:1),eigSpaceID,hdfError)
     512           0 :                 CALL h5dcreate_f(kptGroupID, "eig", H5T_NATIVE_DOUBLE, eigSpaceID, eigSetID, hdfError)
     513           0 :                 CALL h5sclose_f(eigSpaceID,hdfError)
     514           0 :                 CALL io_write_real1(eigSetID,(/1/),dimsInt(:1),results%eig(:numbands,nk,jsp))
     515           0 :                 CALL h5dclose_f(eigSetID, hdfError)
     516             :    
     517           0 :                 CALL io_write_attint0(kptGroupID,'numbands',numbands)            
     518           0 :                 IF (zMat%l_real) THEN
     519           0 :                       dims(:2)=(/nbasfcn,numbands/)
     520           0 :                       dimsInt=dims
     521           0 :                       CALL h5screate_simple_f(2,dims(:2),kptCoordSpaceID,hdfError)
     522           0 :                       CALL h5dcreate_f(kptGroupID, "pw", H5T_NATIVE_DOUBLE, kptCoordSpaceID, kptCoordSetID, hdfError)
     523           0 :                       CALL h5sclose_f(kptCoordSpaceID,hdfError)
     524           0 :             CALL io_write_real2(kptCoordSetID,(/1,1/),dimsInt(:2),zMat%data_r(:nbasfcn,:numbands))
     525           0 :                       CALL h5dclose_f(kptCoordSetID, hdfError)
     526             :                 ELSE
     527           0 :                       AllOCATE(output3(2,nbasfcn,numbands))
     528             : !                       SIZE(zMat%data_c,1),SIZE(zMat%data_c,2)
     529           0 :                       output3(1,:,:)=REAL(zMat%data_c(:,:numbands))
     530           0 :                       output3(2,:,:)=AIMAG(zMat%data_c(:,:numbands))
     531           0 :                       dims(:3)=(/2,nbasfcn,numbands/)
     532           0 :                       dimsInt=dims
     533           0 :                       CALL h5screate_simple_f(3,dims(:3),zmatSpaceID,hdfError)
     534           0 :                       CALL h5dcreate_f(kptGroupID, "pw", H5T_NATIVE_DOUBLE, zmatSpaceID, zmatSetID, hdfError)
     535           0 :                       CALL h5sclose_f(zmatSpaceID,hdfError)
     536           0 :                       CALL io_write_real3(zmatSetID,(/1,1,1/),dimsInt(:3),output3(:2,:nbasfcn,:numbands))
     537           0 :                       CALL h5dclose_f(zmatSetID, hdfError)
     538           0 :                       DEAllOCATE(output3)
     539             :                 END IF
     540             :                 !AllOCATE(output(2,numbands,dimension%lmd+1,atoms%nat))
     541             :                 !output(1,:,:,:)=REAL(eigVecCoeffs%acof(:,0:,:,jsp))
     542             :                 !output(2,:,:,:)=AIMAG(eigVecCoeffs%acof(:,0:,:,jsp))
     543             :                 !dims(:4)=(/2,numbands,dimension%lmd+1,atoms%nat/)
     544             :                 !dimsInt = dims
     545             :                 !CALL h5screate_simple_f(4,dims(:4),itypeSpaceID,hdfError)
     546             :                 !CALL h5dcreate_f(kptGroupID, "acof", H5T_NATIVE_DOUBLE, itypeSpaceID, itypeSetID, hdfError)
     547             :                 !CALL h5sclose_f(itypeSpaceID,hdfError)
     548             :                 !CALL io_write_real4(itypeSetID,(/1,1,1,1/),dimsInt(:4), output)
     549             :                 !CALL h5dclose_f(itypeSetID, hdfError)
     550             :                 !DEAllOCATE(output)
     551             : 
     552             :                 !AllOCATE(output(2,numbands,dimension%lmd+1,atoms%nat))
     553             :                 !output(1,:,:,:)=REAL(eigVecCoeffs%bcof(:,0:,:,jsp))
     554             :                 !output(2,:,:,:)=AIMAG(eigVecCoeffs%bcof(:,0:,:,jsp))
     555             :                 !dims(:4)=(/2,numbands,dimension%lmd+1,atoms%nat/)
     556             :                 !dimsInt = dims
     557             :                 !CALL h5screate_simple_f(4,dims(:4),itypeSpaceID,hdfError)
     558             :                 !CALL h5dcreate_f(kptGroupID, "bcof", H5T_NATIVE_DOUBLE, itypeSpaceID, itypeSetID, hdfError)
     559             :                 !CALL h5sclose_f(itypeSpaceID,hdfError)
     560             :                 !CALL io_write_real4(itypeSetID,(/1,1,1,1/),dimsInt(:4), output)
     561             :                 !CALL h5dclose_f(itypeSetID, hdfError)
     562             :                 !DEAllOCATE(output)
     563             : 
     564             :                 !AllOCATE(output5(2,atoms%llod*2+1,numbands,atoms%nlod,atoms%nat))
     565             :                 !output5(1,:,:,:,:)=REAL(eigVecCoeffs%ccof(-atoms%llod:,:,:,:,jsp))
     566             :                 !output5(2,:,:,:,:)=AIMAG(eigVecCoeffs%ccof(-atoms%llod:,:,:,:,jsp))
     567             :                 !dims(:5)=(/2,atoms%llod*2+1,numbands,atoms%nlod,atoms%nat/)
     568             :                 !dimsInt = dims
     569             :                 !CALL h5screate_simple_f(5,dims(:5),itypeSpaceID,hdfError)
     570             :                 !CALL h5dcreate_f(kptGroupID, "ccof", H5T_NATIVE_DOUBLE, itypeSpaceID, itypeSetID, hdfError)
     571             :                 !CALL h5sclose_f(itypeSpaceID,hdfError)
     572             :                 !CALL io_write_real5(itypeSetID,(/1,1,1,1,1/),dimsInt(:5), output5)
     573             :                 !CALL h5dclose_f(itypeSetID, hdfError)
     574             :                 !DEAllOCATE(output5)
     575             : 
     576             : !-------------------------output spex format-------------------
     577             :               ! get dimensions for MT cof
     578           0 :               lmn = 0
     579           0 :               na  = 0
     580           0 :               do n = 1,atoms%ntype
     581           0 :                 do nn = 1,atoms%neq(n)
     582           0 :                   na = na + 1
     583           0 :                   lm = 0
     584           0 :                   do l = 0,atoms%lmax(n)
     585           0 :                     lm = lm + 2*(2*l+1)
     586             :                   enddo
     587           0 :                   do i = 1,atoms%nlo(n)
     588           0 :                     lm = lm + 2*atoms%llo(i,n)+1
     589             :                   enddo
     590           0 :                   lmn = max(lmn,lm)
     591             :                 enddo
     592             :               enddo
     593           0 :               Hdim1 = (/ 2,lmn,na,numbands /)
     594             : 
     595           0 :                 allocate ( cof(Hdim1(1),Hdim1(2),Hdim1(3),Hdim1(4)) )
     596           0 :                       cof = 0
     597             :                       na  = 0
     598           0 :                       do n = 1,atoms%ntype
     599           0 :                         do nn = 1,atoms%neq(n)
     600           0 :                           na = na + 1
     601           0 :                           lm  = 0
     602           0 :                           lmn = 0
     603           0 :                           do l = 0,atoms%lmax(n)
     604           0 :                             do m = -l,l              
     605           0 :                               cof(1,lmn+1,na,:) = real ( eigVecCoeffs%acof(:numbands,lm,na,jsp) * img**l )
     606           0 :                               cof(1,lmn+2,na,:) = real ( eigVecCoeffs%bcof(:numbands,lm,na,jsp) * img**l )
     607           0 :                               cof(2,lmn+1,na,:) = aimag ( eigVecCoeffs%acof(:numbands,lm,na,jsp) * img**l )
     608           0 :                               cof(2,lmn+2,na,:) = aimag ( eigVecCoeffs%bcof(:numbands,lm,na,jsp) * img**l )
     609           0 :                               lm  = lm  + 1
     610           0 :                               lmn = lmn + 2
     611           0 :                               do i = 1,atoms%nlo(n)
     612           0 :                                 if(atoms%llo(i,n).eq.l) then
     613           0 :                                   lmn = lmn + 1
     614           0 :                                   cof(1,lmn,na,:) = real( eigVecCoeffs%ccof(m,:numbands,i,na,jsp) * img**l )
     615           0 :                                   cof(2,lmn,na,:) = aimag( eigVecCoeffs%ccof(m,:numbands,i,na,jsp) * img**l )
     616             :                                 endif
     617             :                               enddo
     618             :                             enddo
     619             :                           enddo
     620             :                         enddo
     621           0 :                         if(lmn.gt.size(cof,2)) then
     622           0 :                           write(*,*) lmn,size(cof,2)
     623             :                         endif
     624             :                       enddo
     625             : 
     626           0 :                 dims(:4)=Hdim1
     627           0 :                 dimsInt = dims
     628           0 :                 CALL h5screate_simple_f(4,dims(:4),itypeSpaceID,hdfError)
     629           0 :                 CALL h5dcreate_f(kptGroupID, "mt", H5T_NATIVE_DOUBLE, itypeSpaceID, itypeSetID, hdfError)
     630           0 :                 CALL h5sclose_f(itypeSpaceID,hdfError)
     631           0 :                 CALL io_write_real4(itypeSetID,(/1,1,1,1/),dimsInt(:4), cof)
     632           0 :                 CALL h5dclose_f(itypeSetID, hdfError)
     633           0 :                 deallocate ( cof )
     634             : !-------------------------end output spex format-----------------
     635             : 
     636           0 :                 CALL h5gclose_f(kptGroupID, hdfError)
     637             :             
     638             :         END DO
     639           0 :        CALL h5gclose_f(jspGroupID, hdfError)
     640             :    END DO
     641           0 :    CALL h5fclose_f(fileID, hdfError)  
     642             : 
     643             :    END IF
     644             :    
     645             : #else
     646             :    CALL juDFT_error("writeBasis called without HDF5! ",calledby="writeBasis")
     647             : #endif
     648             : 
     649           0 : END SUBROUTINE writeBasis
     650             : 
     651             : END MODULE m_writeBasis

Generated by: LCOV version 1.13