LCOV - code coverage report
Current view: top level - io - inpnoco.F90 (source / functions) Hit Total Coverage
Test: combined.info Lines: 14 19 73.7 %
Date: 2019-09-08 04:53:50 Functions: 1 1 100.0 %

          Line data    Source code
       1             : !--------------------------------------------------------------------------------
       2             : ! Copyright (c) 2016 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_inpnoco
       8             : 
       9             : !**********************************************************************
      10             : !     This subroutine reads the  Euler angles of the  magnetic field 
      11             : !     directions and other noncollinear parameters from the file nocoinp
      12             : !
      13             : !                                                 Philipp Kurz 98/01/28
      14             : !******** ABBREVIATIONS ***********************************************
      15             : !     alpha,beta:Euler angles of the local magnetic field direction of
      16             : !                each atom(-type). 
      17             : !**********************************************************************
      18             :       CONTAINS
      19           6 :       SUBROUTINE inpnoco(atoms,input,vacuum,noco)
      20             : 
      21             :       USE m_constants, ONLY : tpi_const
      22             :       USE m_rwnoco
      23             :       USE m_types
      24             :       USE m_nocoInputCheck
      25             :       IMPLICIT NONE
      26             :       TYPE(t_atoms),INTENT(INOUT) ::atoms
      27             :       TYPE(t_input),INTENT(INOUT) ::input
      28             :       TYPE(t_vacuum),INTENT(IN)   ::vacuum
      29             :       TYPE(t_noco),INTENT(INOUT)  ::noco
      30             : 
      31             : !     ..
      32             : !     .. Local Scalars ..
      33             :       INTEGER itype,iatom
      34             : 
      35           6 :       OPEN (24,file='nocoinp',form='formatted',status='old')
      36             : 
      37           6 :       WRITE (6,*)'This is a non-collinear calculation. The magnetic'
      38           6 :       WRITE (6,*)'moments of the atoms have a fixed direction.'
      39           6 :       WRITE (6,*)'The Euler-angles alpha and beta of this direction'
      40           6 :       WRITE (6,*)'are equal to the polar angles of the magnetic'
      41           6 :       WRITE (6,*)'moment vector phi and theta respectively.'
      42           6 :       WRITE (6,*)
      43             : 
      44           6 :       CALL rw_noco_read(atoms,noco,input)
      45             : 
      46           6 :       CALL nocoInputCheck(atoms,input,vacuum,noco)
      47             :          
      48           6 :       IF (noco%l_ss) THEN
      49             : !
      50             : !--->    the angle beta is relative to the spiral in a spin-spiral
      51             : !--->    calculation, i.e. if beta = 0 for all atoms in the unit cell
      52             : !--->    that means that the moments are "in line" with the spin-spiral
      53             : !--->    (beta = qss * taual). note: this means that only atoms within
      54             : !--->    a plane perpendicular to qss can be equivalent!
      55           0 :          iatom = 1
      56           0 :          DO itype = 1,atoms%ntype
      57           0 :             noco%phi = tpi_const*dot_product(noco%qss,atoms%taual(:,iatom))
      58           0 :             noco%alph(itype) = noco%alph(itype) + noco%phi
      59           0 :             iatom = iatom + atoms%neq(itype)
      60             :          ENDDO
      61             :       ENDIF
      62             : 
      63           6 :       WRITE (6,*)
      64           6 :       CLOSE (24)
      65             : 
      66           6 :       END SUBROUTINE inpnoco
      67             :       END MODULE m_inpnoco

Generated by: LCOV version 1.13