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

          Line data    Source code
       1             : MODULE m_bmt
       2             : contains
       3           0 :   SUBROUTINE bmt(&
       4             :        & stars,input,noco,atoms,sphhar,vacuum,&
       5             :        & cell,sym,oneD)
       6             : 
       7             :     USE m_constants
       8             :     USE m_types
       9             :     USE m_juDFT
      10             :     USE m_cdn_io
      11             :     USE m_wrtdop
      12             :     IMPLICIT NONE
      13             :     !     ..
      14             :     TYPE(t_stars),INTENT(IN)    :: stars
      15             :     TYPE(t_input),INTENT(INOUT) :: input
      16             :     TYPE(t_noco),INTENT(IN)     :: noco
      17             :     TYPE(t_atoms),INTENT(IN)    :: atoms
      18             :     TYPE(t_sphhar),INTENT(IN)   :: sphhar
      19             :     TYPE(t_vacuum),INTENT(IN)   :: vacuum
      20             :     TYPE(t_cell),INTENT(IN)     :: cell
      21             :     TYPE(t_sym),INTENT(IN)      :: sym
      22             :     TYPE(t_oneD),INTENT(IN)     :: oneD
      23             : 
      24           0 :     TYPE(t_potden) :: den
      25             : 
      26             :     INTEGER k,i,ivac
      27             :     INTEGER type,typmag, archiveType
      28             :     REAL fermiEnergyTemp
      29             :     LOGICAL l_qfix
      30             :     CHARACTER(len=8) filename
      31             : 
      32           0 :     typmag= atoms%ntype 
      33             :     ! only muffin-tins with type <= typmag remain magnetic  
      34             : 
      35             : 
      36           0 :     IF (input%jspins/=2) THEN
      37           0 :        CALL juDFT_error("Stop in bmt:  jspins/=2",calledby="bmt")
      38             :     ENDIF
      39             : 
      40             :     !atoms%jmtd = maxval(atoms%jri(:))
      41             :     !sphhar%nlhd = maxval(sphhar%nlh(:))
      42             : 
      43           0 :     CALL den%init(stars,atoms,sphhar,vacuum,noco,input%jspins,POTDEN_TYPE_DEN)
      44           0 :     IF(noco%l_noco) THEN
      45           0 :        archiveType = CDN_ARCHIVE_TYPE_NOCO_const
      46             :     ELSE
      47           0 :        archiveType = CDN_ARCHIVE_TYPE_CDN1_const
      48             :     END IF
      49             : 
      50             :     CALL readDensity(stars,vacuum,atoms,cell,sphhar,input,sym,oneD,archiveType,&
      51           0 :                      CDN_INPUT_DEN_const,0,fermiEnergyTemp,l_qfix,den)
      52             : 
      53             :     IF ( typmag < atoms%ntype ) THEN 
      54             :        DO type= typmag+1,atoms%ntype 
      55             :           DO k= 0,sphhar%nlhd
      56             :              DO i= 1,atoms%jmtd
      57             :                 den%mt(i,k,type,1)= (den%mt(i,k,type,1) + den%mt(i,k,type,2))/2. 
      58             :                 den%mt(i,k,type,2)= den%mt(i,k,type,1) 
      59             :              ENDDO
      60             :           ENDDO
      61             :        ENDDO
      62             :     ENDIF
      63             : 
      64           0 :     DO k= 1,stars%ng3
      65           0 :        den%pw(k,1)= (den%pw(k,1) + den%pw(k,2))/2.0
      66           0 :        den%pw(k,2)= den%pw(k,1)
      67             :     ENDDO
      68           0 :     IF (input%film) THEN
      69           0 :        DO ivac= 1,vacuum%nvac
      70           0 :           DO i= 1,vacuum%nmz
      71           0 :              den%vacz(i,ivac,1)= (den%vacz(i,ivac,1) + den%vacz(i,ivac,2))/2.0
      72           0 :              den%vacz(i,ivac,2)= den%vacz(i,ivac,1)
      73             :           ENDDO
      74           0 :           DO k= 2,stars%ng2
      75           0 :              DO i= 1,vacuum%nmzxy
      76           0 :                 den%vacxy(i,k-1,ivac,1)= (den%vacxy(i,k-1,ivac,1) + den%vacxy(i,k-1,ivac,2))/2.0
      77           0 :                 den%vacxy(i,k-1,ivac,2)= den%vacxy(i,k-1,ivac,1)
      78             :              ENDDO
      79             :           ENDDO
      80             :        ENDDO
      81             :     ENDIF
      82             : 
      83           0 :     filename= 'cdnbmtXX'
      84             :     IF ( typmag < atoms%ntype ) THEN
      85             :        filename(7:7)= ACHAR(IACHAR('0')+ MOD(typmag,100)/10 )
      86             :        filename(8:8)= ACHAR(IACHAR('0')+ MOD(typmag,10) )
      87             :        OPEN(98,file=filename(1:8),form='unformatted',status='replace')
      88             :     ELSE
      89           0 :        OPEN(98,file=filename(1:6),form='unformatted',status='replace')
      90             :     ENDIF
      91             :     CALL wrtdop(&
      92             :          & stars,vacuum,atoms,sphhar,input,sym,&
      93             :          & 98,&
      94           0 :          & den%iter,den%mt,den%pw,den%vacz,den%vacxy)
      95           0 :     CLOSE(98) 
      96             : 
      97           0 :   END SUBROUTINE bmt
      98             : END MODULE m_bmt

Generated by: LCOV version 1.13