TABLE OF CONTENTS
ABINIT/getptgroupma [ Functions ]
NAME
getptgroupma
FUNCTION
Return magnetic point group number from the full point group number and the point group number of the non-magnetic symmetry operations. The (normal) point group numbers are taken from The International Tables for Crystallography Volume A, 1983 Ed. Theo Hahn, D. Reidel Publishing Company The magnetic point group number are taken from The mathematical theory of symmetry in solids, Representation theory for point groups and space groups, 1972, C.J. Bradley and A.P. Cracknell, Clarendon Press, Oxford. In particular, see table 7.1 of the latter reference
COPYRIGHT
Copyright (C) 2002-2018 ABINIT group (XG) This file is distributed under the terms of the GNU General Public License, see ~abinit/COPYING or http://www.gnu.org/copyleft/gpl.txt . For the initials of contributors, see ~abinit/doc/developers/contributors.txt .
INPUTS
ptgroup = character(len=5) point group of all the symmetry operation ptgroupha = character(len=5) point group of the non-magnetic symmetry operation (halved point group)
OUTPUT
ptgroupma = magnetic point group number
PARENTS
symanal
CHILDREN
SOURCE
39 #if defined HAVE_CONFIG_H 40 #include "config.h" 41 #endif 42 43 #include "abi_common.h" 44 45 46 subroutine getptgroupma(ptgroup,ptgroupha,ptgroupma) 47 48 use defs_basis 49 use m_profiling_abi 50 51 !This section has been created automatically by the script Abilint (TD). 52 !Do not modify the following lines by hand. 53 #undef ABI_FUNC 54 #define ABI_FUNC 'getptgroupma' 55 !End of the abilint section 56 57 implicit none 58 59 !Arguments ------------------------------------ 60 !scalars 61 integer,intent(out) :: ptgroupma 62 character(len=5),intent(in) :: ptgroup,ptgroupha 63 64 ! ************************************************************************* 65 66 !DEBUG 67 !write(std_out,*)' getptgroupma : enter ' 68 !write(std_out,*)' ptgroup="',ptgroup,'"' 69 !write(std_out,*)' ptgroupha="',ptgroupha,'"' 70 !ENDDEBUG 71 72 ptgroupma=0 73 select case (ptgroup) 74 case(" -1") 75 ptgroupma=1 76 case(" 2") 77 ptgroupma=2 78 case(" -2") 79 ptgroupma=3 80 case(" 2/m") 81 if(ptgroupha==" 2")ptgroupma=4 82 if(ptgroupha==" -2")ptgroupma=5 83 if(ptgroupha==" -1")ptgroupma=6 84 case(" 222") 85 ptgroupma=7 86 case(" mm2") 87 if(ptgroupha==" 2")ptgroupma=8 88 if(ptgroupha==" -2")ptgroupma=9 89 case(" mmm") 90 if(ptgroupha==" 222")ptgroupma=10 91 if(ptgroupha==" mm2")ptgroupma=11 92 if(ptgroupha==" 2/m")ptgroupma=12 93 case(" 4") 94 ptgroupma=13 95 case(" -4") 96 ptgroupma=14 97 case(" 422") 98 if(ptgroupha==" 4")ptgroupma=15 99 if(ptgroupha==" 222")ptgroupma=16 100 case(" 4/m") 101 if(ptgroupha==" 4")ptgroupma=17 102 if(ptgroupha==" -4")ptgroupma=18 103 if(ptgroupha==" 2/m")ptgroupma=19 104 case(" 4mm") 105 if(ptgroupha==" 4")ptgroupma=20 106 if(ptgroupha==" mm2")ptgroupma=21 107 case(" -42m") 108 if(ptgroupha==" -4")ptgroupma=22 109 if(ptgroupha==" 222")ptgroupma=23 110 if(ptgroupha==" mm2")ptgroupma=24 111 case("4/mmm") 112 if(ptgroupha==" 422")ptgroupma=25 113 if(ptgroupha==" 4mm")ptgroupma=26 114 if(ptgroupha==" mmm")ptgroupma=27 115 if(ptgroupha==" -42m")ptgroupma=28 116 if(ptgroupha==" 4/m")ptgroupma=29 117 case(" 32") 118 ptgroupma=30 119 case(" 3m") 120 ptgroupma=31 121 case(" -6") 122 ptgroupma=32 123 case(" -62m") 124 if(ptgroupha==" -6")ptgroupma=33 125 if(ptgroupha==" 3m")ptgroupma=34 126 if(ptgroupha==" 32")ptgroupma=35 127 case(" 6") 128 ptgroupma=36 129 case(" -3") 130 ptgroupma=37 131 case(" -3m") 132 if(ptgroupha==" -3")ptgroupma=38 133 if(ptgroupha==" 3m")ptgroupma=39 134 if(ptgroupha==" 32")ptgroupma=40 135 case(" 622") 136 if(ptgroupha==" 6")ptgroupma=41 137 if(ptgroupha==" 32")ptgroupma=42 138 case(" 6/m") 139 if(ptgroupha==" 6")ptgroupma=43 140 if(ptgroupha==" -3")ptgroupma=44 141 if(ptgroupha==" -6")ptgroupma=45 142 case(" 6mm") 143 if(ptgroupha==" 6")ptgroupma=46 144 if(ptgroupha==" 3m")ptgroupma=47 145 case("6/mmm") 146 if(ptgroupha==" -62m")ptgroupma=48 147 if(ptgroupha==" -3m")ptgroupma=49 148 if(ptgroupha==" 622")ptgroupma=50 149 if(ptgroupha==" 6mm")ptgroupma=51 150 if(ptgroupha==" 6/m")ptgroupma=52 151 case(" m-3") 152 ptgroupma=53 153 case(" -43m") 154 ptgroupma=54 155 case(" 432") 156 ptgroupma=55 157 case(" m-3m") 158 if(ptgroupha==" 432")ptgroupma=56 159 if(ptgroupha==" -43m")ptgroupma=57 160 if(ptgroupha==" m-3")ptgroupma=58 161 end select 162 163 !DEBUG 164 !write(std_out,*)' getptgroupma : exit ' 165 !write(std_out,*)' ptgroupma="',ptgroupma,'"' 166 !ENDDEBUG 167 168 end subroutine getptgroupma