TABLE OF CONTENTS


ABINIT/getptgroupma [ Functions ]

[ Top ] [ 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