TABLE OF CONTENTS


ABINIT/m_spgdata [ Modules ]

[ Top ] [ Modules ]

NAME

  m_spgdata

FUNCTION

COPYRIGHT

  Copyright (C) 2000-2024 ABINIT group (RC, 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 .

SOURCE

16 #if defined HAVE_CONFIG_H
17 #include "config.h"
18 #endif
19 
20 #include "abi_common.h"
21 
22 module m_spgdata
23 
24  use defs_basis
25  use m_abicore
26  use m_errors
27 
28  use m_symtk,     only : symdet
29  use m_geometry,  only : xred2xcart
30 
31  implicit none
32 
33  private

m_spgdata/getptgroupma [ Functions ]

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

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

SOURCE

2261 subroutine getptgroupma(ptgroup,ptgroupha,ptgroupma)
2262 
2263 !Arguments ------------------------------------
2264 !scalars
2265  integer,intent(out) :: ptgroupma
2266  character(len=5),intent(in) :: ptgroup,ptgroupha
2267 
2268 ! *************************************************************************
2269 
2270 !DEBUG
2271 !write(std_out,*)' getptgroupma : enter '
2272 !write(std_out,*)' ptgroup="',ptgroup,'"'
2273 !write(std_out,*)' ptgroupha="',ptgroupha,'"'
2274 !ENDDEBUG
2275 
2276  ptgroupma=0
2277  select case (ptgroup)
2278  case("   -1")
2279    ptgroupma=1
2280  case("    2")
2281    ptgroupma=2
2282  case("   -2")
2283    ptgroupma=3
2284  case("  2/m")
2285    if(ptgroupha=="    2")ptgroupma=4
2286    if(ptgroupha=="   -2")ptgroupma=5
2287    if(ptgroupha=="   -1")ptgroupma=6
2288  case("  222")
2289    ptgroupma=7
2290  case("  mm2")
2291    if(ptgroupha=="    2")ptgroupma=8
2292    if(ptgroupha=="   -2")ptgroupma=9
2293  case("  mmm")
2294    if(ptgroupha=="  222")ptgroupma=10
2295    if(ptgroupha=="  mm2")ptgroupma=11
2296    if(ptgroupha=="  2/m")ptgroupma=12
2297  case("    4")
2298    ptgroupma=13
2299  case("   -4")
2300    ptgroupma=14
2301  case("  422")
2302    if(ptgroupha=="    4")ptgroupma=15
2303    if(ptgroupha=="  222")ptgroupma=16
2304  case("  4/m")
2305    if(ptgroupha=="    4")ptgroupma=17
2306    if(ptgroupha=="   -4")ptgroupma=18
2307    if(ptgroupha=="  2/m")ptgroupma=19
2308  case("  4mm")
2309    if(ptgroupha=="    4")ptgroupma=20
2310    if(ptgroupha=="  mm2")ptgroupma=21
2311  case(" -42m")
2312    if(ptgroupha=="   -4")ptgroupma=22
2313    if(ptgroupha=="  222")ptgroupma=23
2314    if(ptgroupha=="  mm2")ptgroupma=24
2315  case("4/mmm")
2316    if(ptgroupha=="  422")ptgroupma=25
2317    if(ptgroupha=="  4mm")ptgroupma=26
2318    if(ptgroupha=="  mmm")ptgroupma=27
2319    if(ptgroupha==" -42m")ptgroupma=28
2320    if(ptgroupha=="  4/m")ptgroupma=29
2321  case("   32")
2322    ptgroupma=30
2323  case("   3m")
2324    ptgroupma=31
2325  case("   -6")
2326    ptgroupma=32
2327  case(" -62m")
2328    if(ptgroupha=="   -6")ptgroupma=33
2329    if(ptgroupha=="   3m")ptgroupma=34
2330    if(ptgroupha=="   32")ptgroupma=35
2331  case("    6")
2332    ptgroupma=36
2333  case("   -3")
2334    ptgroupma=37
2335  case("  -3m")
2336    if(ptgroupha=="   -3")ptgroupma=38
2337    if(ptgroupha=="   3m")ptgroupma=39
2338    if(ptgroupha=="   32")ptgroupma=40
2339  case("  622")
2340    if(ptgroupha=="    6")ptgroupma=41
2341    if(ptgroupha=="   32")ptgroupma=42
2342  case("  6/m")
2343    if(ptgroupha=="    6")ptgroupma=43
2344    if(ptgroupha=="   -3")ptgroupma=44
2345    if(ptgroupha=="   -6")ptgroupma=45
2346  case("  6mm")
2347    if(ptgroupha=="    6")ptgroupma=46
2348    if(ptgroupha=="   3m")ptgroupma=47
2349  case("6/mmm")
2350    if(ptgroupha==" -62m")ptgroupma=48
2351    if(ptgroupha=="  -3m")ptgroupma=49
2352    if(ptgroupha=="  622")ptgroupma=50
2353    if(ptgroupha=="  6mm")ptgroupma=51
2354    if(ptgroupha=="  6/m")ptgroupma=52
2355  case("  m-3")
2356    ptgroupma=53
2357  case(" -43m")
2358    ptgroupma=54
2359  case("  432")
2360    ptgroupma=55
2361  case(" m-3m")
2362    if(ptgroupha=="  432")ptgroupma=56
2363    if(ptgroupha==" -43m")ptgroupma=57
2364    if(ptgroupha=="  m-3")ptgroupma=58
2365  end select
2366 
2367 !DEBUG
2368 !write(std_out,*)' getptgroupma : exit '
2369 !write(std_out,*)' ptgroupma="',ptgroupma,'"'
2370 !ENDDEBUG
2371 
2372 end subroutine getptgroupma

m_spgdata/prtspgroup [ Functions ]

[ Top ] [ m_spgdata ] [ Functions ]

NAME

 prtspgroup

FUNCTION

 Print the space group (first, the dataset)

INPUTS

  bravais(11)=characteristics of Bravais lattice (see symlatt.f)
  genafm(3)=generator of magnetic translations, in case of
            Shubnikov type IV magnetic groups (if zero, the group is
            not a type IV magnetic group)
  iimage (optional) = index of the image, for possible printing purpose
  iout=unit number of output file
  jdtset= actual number of the dataset to be read
  ptgroupma=magnetic point group, in case of
            Shubnikov type III magnetic groups (if zero, the group is
            not a type III magnetic group)
  spgroup=space group number

OUTPUT

SOURCE

 68 subroutine prtspgroup(bravais,genafm,iout,jdtset,ptgroupma,spgroup,iimage)
 69 
 70 !Arguments ------------------------------------
 71 !scalars
 72  integer,intent(in) :: iout,jdtset,ptgroupma,spgroup
 73  integer,intent(in),optional :: iimage
 74 !arrays
 75  integer,intent(in) :: bravais(11)
 76  real(dp),intent(in) :: genafm(3)
 77 
 78 !Local variables -------------------------------
 79 !scalars
 80  integer :: center,iholohedry,ii,shubnikov,spgaxor,spgorig,sporder,sumgen
 81  character(len=1) :: brvsb
 82  character(len=10) :: ptgrpmasb
 83  character(len=15) :: intsb,ptintsb,ptschsb,schsb
 84  character(len=35) :: intsbl
 85  character(len=500) :: message
 86  character(len=80) :: msg_header,bravais_name
 87 !arrays
 88  integer :: genafmint(3)
 89  real(dp) :: genafmconv(3),rprimdconv(3,3)
 90 
 91 !*************************************************************************
 92 
 93 !DEBUG
 94 !write(std_out,*)' prtspgroup : enter '
 95 !write(std_out,*)' ptgroupma=',ptgroupma
 96 !write(std_out,*)' genafm(:)=',genafm(:)
 97 !ENDDEBUG
 98 
 99  center=bravais(2)
100  iholohedry=bravais(1)
101 
102 !Determine the magnetic type
103  shubnikov=1
104  if(ptgroupma/=0)shubnikov=3
105  if(sum(abs(genafm(:)))>tol6)then
106    shubnikov=4
107 !  Produce genafm in conventional axes,
108    rprimdconv(:,1)=bravais(3:5)
109    rprimdconv(:,2)=bravais(6:8)
110    rprimdconv(:,3)=bravais(9:11)
111    if(center/=0)rprimdconv(:,:)=rprimdconv(:,:)*half
112    call xred2xcart(1,rprimdconv,genafmconv,genafm)
113 !  Gives the associated translation, with components in the
114 !  interval ]-0.5,0.5] .
115    genafmconv(:)=genafmconv(:)-nint(genafmconv(:)-tol6)
116    do ii=1,3
117      genafmint(ii)=-1
118      if(abs(genafmconv(ii)-zero)<tol6)genafmint(ii)=0
119      if(abs(genafmconv(ii)-half)<tol6)genafmint(ii)=1
120    end do
121    if(minval(genafmint(:))==-1)then
122      write(message, '(3a,3es12.2,a)' )&
123 &     'The magnetic translation generator,',ch10,&
124 &     'genafmconv(:)=',genafmconv(:),&
125 &     'could not be identified.'
126      ABI_BUG(message)
127    end if
128  end if
129 
130 !Prepare the print : establish message header
131  if(jdtset/=0)then
132    if(present(iimage))then
133      write(msg_header,'(a,i5,a,i5)')' DATASET',jdtset,' IMAGE NUMBER',iimage
134    else
135      write(msg_header,'(a,i5)')' DATASET',jdtset
136    endif
137  else
138    if(present(iimage))then
139      write(msg_header,'(a,i5)')' IMAGE NUMBER',iimage
140    else
141      write(msg_header,'(a)')' Symmetries'
142    endif
143  endif
144 
145 !Determine whether the space group can be printed
146  if(iholohedry<=0)then
147    write(message,'(a,a)')trim(msg_header),' : the unit cell is not primitive'
148    call wrtout(iout,message,'COLL')
149  else if(spgroup==0)then
150    write(message,'(a,a)')trim(msg_header),' : the space group has not been recognized'
151    call wrtout(iout,message,'COLL')
152  else
153 
154 !  ------------------------------------------------------------------
155 !  The space group can be printed
156 
157 !  Determine the Bravais lattice
158 
159    bravais_name=' (the Bravais lattice could not be identified)'
160 
161    if(iholohedry==7)then ! Cubic
162 
163      if(center==0) then
164        if(shubnikov/=4)bravais_name='cP (primitive cubic)'
165        if(shubnikov==4)bravais_name='cP_I (primitive cubic, inner magnetic, #33)'
166      else if(center==-1) then
167        if(shubnikov/=4)bravais_name='cI (body-center cubic)' ! Only non-magnetic is possible
168      else if(center==-3) then
169        if(shubnikov/=4)bravais_name='cF (face-center cubic)'
170        if(shubnikov==4)bravais_name='cF_s (face-center cubic, simple cubic magnetic, #35)'
171      end if
172 
173    else if(iholohedry==4)then ! Tetragonal
174 
175      if(center==0) then
176        if(shubnikov/=4)bravais_name='tP (primitive tetrag.)'
177        if(shubnikov==4)then
178          sumgen=sum(genafmint(:))
179          if(sumgen==1)bravais_name='tP_c (primitive tetrag., c-magnetic, #23)'
180          if(sumgen==2)bravais_name='tP_C (primitive tetrag., C-magnetic, #24)'
181          if(sumgen==3)bravais_name='tP_I (primitive tetrag., centered magnetic, #25)'
182        end if
183      else if(center==-1)then
184        if(shubnikov/=4)bravais_name='tI (body-center tetrag.)'
185        if(shubnikov==4)bravais_name='tI_c (body-center tetrag., simple tetragonal magnetic, #27)'
186      end if
187 
188    else if(iholohedry==3)then ! Orthorhombic
189 
190      if(center==0) then
191        if(shubnikov/=4)bravais_name='oP (primitive ortho.)'
192        if(shubnikov==4)then
193          sumgen=sum(genafmint(:))
194          if(sumgen==1)then
195            if(genafmint(1)==1)bravais_name='oP_a (primitive ortho., a-magnetic, #11)'
196            if(genafmint(2)==1)bravais_name='oP_b (primitive ortho., b-magnetic, #11)'
197            if(genafmint(3)==1)bravais_name='oP_c (primitive ortho., c-magnetic, #11)'
198          else if(sumgen==2)then
199            if(genafmint(1)==0)bravais_name='oP_A (primitive ortho., A-magnetic, #12)'
200            if(genafmint(2)==0)bravais_name='oP_B (primitive ortho., B-magnetic, #12)'
201            if(genafmint(3)==0)bravais_name='oP_C (primitive ortho., C-magnetic, #12)'
202          else if(sumgen==3)then
203            bravais_name='oP_I (primitive ortho., centered magnetic, #13)'
204          end if
205        end if
206      else if(center==-1)then
207        if(shubnikov/=4)bravais_name='oI (body-center ortho.)'
208        if(shubnikov==4)bravais_name='oI_c (body-center ortho., simple ortho. magn., #21)'
209      else if(center==1 .or. center==2 .or. center==3)then
210        if(shubnikov/=4) bravais_name='oC (1-face-center ortho.)'
211        if(shubnikov==4)then
212          sumgen=sum(genafmint(:))
213          if(sumgen==1)then
214 !          One should work more to distinguish these magnetic groups
215            bravais_name='oC_(a,b,c) (1-face-cent. ortho., 1-magn., #15 or 16)'
216          else if(sumgen==2)then
217            bravais_name='oC_A (1-face-centered ortho., 1-face-magnetic, #17)'
218          else if(sumgen==3)then
219            bravais_name='oC_c (C-face-centered ortho., c-magnetic, #15)'
220          end if
221        end if
222      else if(center==-3)then
223        if(shubnikov/=4)bravais_name='oF (face-center ortho.)'
224        if(shubnikov==4)bravais_name='oF_s (face-center ortho., simple ortho. magnetic, #19)'
225      end if
226 
227    else if(iholohedry==6)then ! Hexagonal
228 
229      if(shubnikov/=4)bravais_name='hP (primitive hexag.)'
230      if(shubnikov==4)bravais_name='hP_c (primitive hexag., c-magnetic, #29)'
231 
232    else if(iholohedry==5)then ! Rhombohedral
233 
234      if(shubnikov/=4)bravais_name='hR (rhombohedral)'
235      if(shubnikov==4)bravais_name='hR_I (rhombohedral, centered magnetic, #31)'
236 
237    else if(iholohedry==2)then ! Monoclinic
238 
239      if(center==0)then
240        if(shubnikov/=4)bravais_name='mP (primitive monocl.)'
241        if(shubnikov==4)then
242          sumgen=sum(genafmint(:))
243          if(sumgen==1)then
244            if(genafmint(1)==1)bravais_name='mP_a (primitive monocl., a-magnetic, #5)'
245            if(genafmint(2)==1)bravais_name='mP_b (primitive monocl., b-magnetic, #4)'
246            if(genafmint(3)==1)bravais_name='mP_c (primitive monocl., c-magnetic, #5)'
247          else if(sumgen==2)then
248            if(genafmint(1)==0)bravais_name='mP_A (primitive monocl., A-magnetic, #6)'
249            if(genafmint(2)==0)bravais_name='mP_B (primitive monocl., B-magnetic, #6)'
250            if(genafmint(3)==0)bravais_name='mP_C (primitive monocl., C-magnetic, #6)'
251          end if
252        end if
253      else if(center==3)then
254        if(shubnikov/=4)bravais_name='mC (1-face-center monocl.)'
255        if(shubnikov==4)then
256          if(genafmint(3)==1)bravais_name='mC_c (C-face-center monocl., c-magnetic, #8)'
257          if(genafmint(3)/=1)bravais_name='mC_a (C-face-center monocl., a-magnetic, #9)'
258        end if
259      else if(center==-3)then
260        if(shubnikov/=4)bravais_name='(reduction of face-center)'
261      end if
262 
263    else if(iholohedry==1)then ! Triclinic
264 
265      if(shubnikov/=4)bravais_name='aP (primitive triclinic)'
266      if(shubnikov==4)bravais_name='aP_s (primitive triclinic, simple magnetic, #2)'
267 
268    end if
269 
270 !  Determine the symbol of the Fedorov space group
271    spgaxor=1 ; spgorig=1
272    call spgdata(brvsb,intsb,intsbl,ptintsb,ptschsb,schsb,spgaxor,spgroup,sporder,spgorig)
273 
274 !  Prepare print of the dataset, symmetry point group, Bravais lattice
275    if(shubnikov==1)then
276 
277      write(message,'(5a,i3,a,a,a)' )trim(msg_header), &
278 &     ' : space group ',trim(brvsb),trim(intsb),' (#',spgroup,')',&
279 &     '; Bravais ',trim(bravais_name)
280      call wrtout(iout,message,'COLL')
281 
282    else if(shubnikov==3)then
283 
284      if(jdtset/=0 .or. present(iimage))then
285        write(message,'(2a)' )trim(msg_header),' : magnetic group, Shubnikov type III '
286      else
287        write(message,'(a)' )' Magnetic group, Shubnikov type III '
288      end if
289      call wrtout(iout,message,'COLL')
290 
291      write(message,'(a,a,a,a,i3,a,a,a)' )&
292 &     ' Fedorov space group ',trim(brvsb),trim(intsb),' (#',spgroup,')',&
293 &     '; Bravais ',trim(bravais_name)
294      call wrtout(iout,message,'COLL')
295 
296      call ptgmadata(ptgroupma,ptgrpmasb)
297 
298      write(message,'(3a,i3,a)' )&
299 &     ' Magnetic point group ',trim(ptgrpmasb),' (#',ptgroupma,')'
300      call wrtout(iout,message,'COLL')
301 
302    else if(shubnikov==4)then
303 
304      if(jdtset/=0 .or. present(iimage))then
305        write(message,'(2a)' )trim(msg_header),' : magnetic group, Shubnikov type IV '
306      else
307        write(message,'(a)' )' Magnetic group, Shubnikov type IV '
308      end if
309      call wrtout(iout,message,'COLL')
310 
311      write(message,'(a,a,a,a,i3,a)' )&
312 &     ' Fedorov space group ',trim(brvsb),trim(intsb),' (#',spgroup,')'
313      call wrtout(iout,message,'COLL')
314 
315      write(message,'(2a)' )&
316 &     ' Magnetic Bravais lattice ',trim(bravais_name)
317      call wrtout(iout,message,'COLL')
318 
319    end if
320  end if
321 
322 end subroutine prtspgroup

m_spgdata/ptgmadata [ Functions ]

[ Top ] [ m_spgdata ] [ Functions ]

NAME

 ptgmadata

FUNCTION

 Return magnetic point group symbol from the magnetic point group number
 The symbols and numbers are taken from  The Internationl Tables for Crystallography
 Volume A, 1983 Ed. Theo Hahn, D. Reidel Publishing Company and
 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.

INPUTS

 ptgroupma = space group number

OUTPUT

 ptgrpmasb= symbol

SOURCE

2105 subroutine ptgmadata(ptgroupma,ptgrpmasb)
2106 
2107 !Arguments ------------------------------------
2108 !scalars
2109  integer,intent(in) :: ptgroupma
2110  character(len=10),intent(out) :: ptgrpmasb
2111 
2112 ! *************************************************************************
2113 
2114  select case (ptgroupma)
2115  case(1)
2116    ptgrpmasb="-1'"
2117  case(2)
2118    ptgrpmasb="2'"
2119  case(3)
2120    ptgrpmasb="m'"
2121  case(4)
2122    ptgrpmasb="2/m'"
2123  case(5)
2124    ptgrpmasb="2'/m"
2125  case(6)
2126    ptgrpmasb="2'/m'"
2127  case(7)
2128    ptgrpmasb="2'2'2"
2129  case(8)
2130    ptgrpmasb="m'm'2"
2131  case(9)
2132    ptgrpmasb="m'm2'"
2133  case(10)
2134    ptgrpmasb="m'm'm'"
2135  case(11)
2136    ptgrpmasb="mmm'"
2137  case(12)
2138    ptgrpmasb="m'm'm"
2139  case(13)
2140    ptgrpmasb="4'"
2141  case(14)
2142    ptgrpmasb="-4'"
2143  case(15)
2144    ptgrpmasb="42'2'"
2145  case(16)
2146    ptgrpmasb="4'22'"
2147  case(17)
2148    ptgrpmasb="4/m'"
2149  case(18)
2150    ptgrpmasb="4'/m'"
2151  case(19)
2152    ptgrpmasb="4'/m"
2153  case(20)
2154    ptgrpmasb="4m'm'"
2155  case(21)
2156    ptgrpmasb="4'mm'"
2157  case(22)
2158    ptgrpmasb="-42'm'"
2159  case(23)
2160    ptgrpmasb="-4'2m'"
2161  case(24)
2162    ptgrpmasb="-4'm2'"
2163  case(25)
2164    ptgrpmasb="4/m'm'm'"
2165  case(26)
2166    ptgrpmasb="4/m'mm"
2167  case(27)
2168    ptgrpmasb="4'/mmm'"
2169  case(28)
2170    ptgrpmasb="4'/m'm'm"
2171  case(29)
2172    ptgrpmasb="4/mm'm'"
2173  case(30)
2174    ptgrpmasb="32'"
2175  case(31)
2176    ptgrpmasb="3m'"
2177  case(32)
2178    ptgrpmasb="-6'"
2179  case(33)
2180    ptgrpmasb="-6m'2'"
2181  case(34)
2182    ptgrpmasb="-6'm2'"
2183  case(35)
2184    ptgrpmasb="-6'm'2"
2185  case(36)
2186    ptgrpmasb="6'"
2187  case(37)
2188    ptgrpmasb="-3'"
2189  case(38)
2190    ptgrpmasb="-3m'"
2191  case(39)
2192    ptgrpmasb="-3'm"
2193  case(40)
2194    ptgrpmasb="-3'm'"
2195  case(41)
2196    ptgrpmasb="62'2'"
2197  case(42)
2198    ptgrpmasb="6'2'2"
2199  case(43)
2200    ptgrpmasb="6/m'"
2201  case(44)
2202    ptgrpmasb="6'/m'"
2203  case(45)
2204    ptgrpmasb="6'/m"
2205  case(46)
2206    ptgrpmasb="6m'm'"
2207  case(47)
2208    ptgrpmasb="6'm'm"
2209  case(48)
2210    ptgrpmasb="6'/mmm'"
2211  case(49)
2212    ptgrpmasb="6'/m'm'm"
2213  case(50)
2214    ptgrpmasb="6/m'm'm'"
2215  case(51)
2216    ptgrpmasb="6/m'mm"
2217  case(52)
2218    ptgrpmasb="6/mm'm'"
2219  case(53)
2220    ptgrpmasb="m'3"
2221  case(54)
2222    ptgrpmasb="-4'3m'"
2223  case(55)
2224    ptgrpmasb="4'32'"
2225  case(56)
2226    ptgrpmasb="m'3m'"
2227  case(57)
2228    ptgrpmasb="m'3m"
2229  case(58)
2230    ptgrpmasb="m3m'"
2231  end select
2232 
2233 end subroutine ptgmadata

m_spgdata/spgdata [ Functions ]

[ Top ] [ m_spgdata ] [ Functions ]

NAME

 spgdata

FUNCTION

 Return point and space group data: Bravais lattice symbol,
 international symbol, Schonflies symbol, multiplicity
 The symbols are taken from  The International Tables for Crystallography
 Volume A, 1983 Ed. Theo Hahn, D. Reidel Publishing Company and
 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.

INPUTS

 spgroup = space group number
 spgorig = space group origin
 spgaxor = space group axis orientation

OUTPUT

 brvsb=Bravais lattice symbol (P, I, F, A, B, C, R)
 intsb=international symbol (like m3m, 222, 2_12_12_1)
 intsbl=international symbol in long format like P2_b = P121)
 ptintsb=International point group symbol
 ptschsb=Schoenflies point group symbol
 sporder=multiplicity of the space group
 schsb=Schoenflies symbol

NOTES

 brvsb, intsb, and schsb have been extensively checked, while
 more checking should be done for the others
 XG20160612 : in particular, at present it might be that spgaxor and spgorig are indetermined
 (e.g. spgaxor=-1;spgorig=-1) at input.
 When this has a bearing on some of the output variables (even brvsb or intsb !),
 these are mentioned as being X, unknown, or to be determined.

SOURCE

 363 subroutine spgdata(brvsb,intsb,intsbl,ptintsb,ptschsb,schsb,spgaxor,spgroup,sporder,spgorig)
 364 
 365 !Arguments ------------------------------------
 366 !scalars
 367  integer,intent(in) :: spgaxor,spgorig,spgroup
 368  integer,intent(out) :: sporder
 369  character(len=1),intent(out) :: brvsb
 370  character(len=15),intent(out) :: intsb,ptintsb,ptschsb,schsb
 371  character(len=35),intent(out) :: intsbl
 372 
 373 ! *************************************************************************
 374 
 375  intsbl="same"
 376 !defaults for case spgroup is not well defined (eg chkprim 0)
 377  brvsb="P"
 378  intsb="1"
 379  schsb="C1^1"
 380  sporder=1
 381 
 382  select case (spgroup)
 383  case(1)
 384    brvsb="P"; intsb="1"; schsb="C1^1"; sporder=1
 385  case(2)
 386    brvsb="P"; intsb="-1"; schsb="Ci^1"; sporder=2
 387  case(3)
 388    brvsb="P"; intsb="2"; schsb="C2^1"; sporder=2
 389    select case (spgaxor)
 390    case(1)
 391      intsbl="P 2 _b = P 1 2 1"
 392    case(2)
 393      intsbl="P 2_a = P 2 1 1"
 394    case(3)
 395      intsbl="P 2 _c = P 1 1 2"
 396    case default
 397      intsbl="intsbl to be determined"
 398    end select
 399  case(4)
 400    brvsb="P"; intsb="2_1"; schsb="C2^2"; sporder=2
 401    select case (spgaxor)
 402    case(1)
 403      intsbl="P 2 1 _b = P 1 2_1 1"
 404    case(2)
 405      intsbl="P 2 1 _a = P 2_1 1 1"
 406    case(3)
 407      intsbl="P 2 1 _c = P 1 1 2_1"
 408    case default
 409      intsbl="intsbl to be determined"
 410    end select
 411  case(5)
 412    brvsb="C"; intsb="2"; schsb="C2^3"; sporder=2
 413    select case (spgaxor)
 414    case(1)
 415      intsbl="C 2 _b1 =  C 1 2 1"
 416    case(2)
 417      intsbl="C 2 _a1 =  B 2 1 1"
 418    case(3)
 419      intsbl="C 2 _a2 =  C 2 1 1"
 420    case(4)
 421      intsbl="C 2 _a3 =  I 2 1 1"
 422    case(5)
 423      intsbl="C 2 _b2 =  A 1 2 1"
 424    case(6)
 425      intsbl="C 2 _b3 =  I 1 2 1"
 426    case(7)
 427      intsbl="C 2 _c1 =  A 1 1 2"
 428    case(8)
 429      intsbl="C 2 _c2 =  B 1 1 2 = B 2"
 430    case(9)
 431      intsbl="C 2 _c3 =  I 1 1 2"
 432    case default
 433      intsbl="intsbl to be determined"
 434    end select
 435  case(6)
 436    brvsb="P"; intsb="m"; schsb="Cs^1"; sporder=2
 437    select case (spgaxor)
 438    case(1)
 439      intsbl="P m _b = P 1 m 1"
 440    case(2)
 441      intsbl="P m _a = P m 1 1"
 442    case(3)
 443      intsbl="P m _c = P 1 1 m"
 444    case default
 445      intsbl="intsbl to be determined"
 446    end select
 447  case(7)
 448    brvsb="P"; intsb="c"; schsb="Cs^2"; sporder=2
 449    select case (spgaxor)
 450    case(1)
 451      intsbl="P c _b1 = P 1 c 1"
 452    case(2)
 453      intsbl="P c _a1 = P b 1 1"
 454    case(3)
 455      intsbl="P c _a2 = P n 1 1"
 456    case(4)
 457      intsbl="P c _a3 = P c 1 1"
 458    case(5)
 459      intsbl="P c _b2 = P 1 n 1"
 460    case(6)
 461      intsbl="P c _b3 = P 1 a 1"
 462    case(7)
 463      intsbl="P c _c1 = P 1 1 a"
 464    case(8)
 465      intsbl="P c _c2 = P 1 1 n"
 466    case(9)
 467      intsbl="P c _c3 = P 1 1 b = P b"
 468    case default
 469      intsbl="intsbl to be determined"
 470    end select
 471  case(8)
 472    brvsb="C"; intsb="m"; schsb="Cs^3"; sporder=4
 473    select case (spgaxor)
 474    case(1)
 475      intsbl="C m _b1 = C 1 m 1"
 476    case(2)
 477      intsbl="C m _a1 = B m 1 1"
 478    case(3)
 479      intsbl="C m _a2 = C m 1 1"
 480    case(4)
 481      intsbl="C m _a3 = I m 1 1"
 482    case(5)
 483      intsbl="C m _b2 = A 1 m 1"
 484    case(6)
 485      intsbl="C m _b3 = I 1 m 1"
 486    case(7)
 487      intsbl="C m _c1 = A 1 1 m"
 488    case(8)
 489      intsbl="C m _c2 = B 1 1 m = B m"
 490    case(9)
 491      intsbl="C m _c3 = I 1 1 m"
 492    case default
 493      intsbl="intsbl to be determined"
 494    end select
 495  case(9)
 496    brvsb="C"; intsb="c"; schsb="Cs^4"; sporder=4
 497    select case (spgaxor)
 498    case(1)
 499      intsbl="C c _b1 = C 1 c 1"
 500    case(2)
 501      intsbl="C c _a1 = B b 1 1"
 502    case(3)
 503      intsbl="C c _a2 = C n 1 1"
 504    case(4)
 505      intsbl="C c _a3 = I c 1 1"
 506    case(5)
 507      intsbl="C c _b2 = A 1 n 1"
 508    case(6)
 509      intsbl="C c _b3 = I 1 a 1"
 510    case(7)
 511      intsbl="C c _c1 = A 1 1 a"
 512    case(8)
 513      intsbl="C c _c2 = B 1 1 n"
 514    case(9)
 515      intsbl="C c _c3 = I 1 1 b"
 516    case default
 517      intsbl="intsbl to be determined"
 518    end select
 519  case(10)
 520    brvsb="P"; intsb="2/m"; schsb="C2h^1"; sporder=4
 521    select case (spgaxor)
 522    case(1)
 523      intsbl="P 2/m _b = P 1 2/m 1"
 524    case(2)
 525      intsbl="P 2/m _a = P 2/m 1 1"
 526    case(3)
 527      intsbl="P 2/m _c = P 1 1 2/m"
 528    case default
 529      intsbl="intsbl to be determined"
 530    end select
 531  case(11)
 532    brvsb="P"
 533    intsb="2_1/m"
 534    schsb="C2h^2"
 535    sporder=4
 536    select case (spgaxor)
 537    case(1)
 538      intsbl="P 2_1/m _b = P 1 2_1/m 1"
 539    case(2)
 540      intsbl="P 2_1/m _a = P 2_1/m 1 1"
 541    case(3)
 542      intsbl="P 2_1/m _c = P 1 1 2_1/m"
 543    case default
 544      intsbl="intsbl to be determined"
 545    end select
 546  case(12)
 547    brvsb="C"; intsb="2/m"; schsb="C2h^3"; sporder=8
 548    select case (spgaxor)
 549    case(1)
 550      intsbl="C 2/m _b1 = C 1 2/m 1"
 551    case(2)
 552      intsbl="C 2/m _a1 = B 2/m 1 1"
 553    case(3)
 554      intsbl="C 2/m _a2 = C 2/m 1 1"
 555    case(4)
 556      intsbl="C 2/m _a3 = I 2/m 1 1"
 557    case(5)
 558      intsbl="C 2/m _b2 = A 1 2/m 1"
 559    case(6)
 560      intsbl="C 2/m _b3 = I 1 2/m 1"
 561    case(7)
 562      intsbl="C 2/m _c1 = A 1 1 2/m"
 563    case(8)
 564      intsbl="C 2/m _c2 = B 1 1 2/m = B 2/m"
 565    case(9)
 566      intsbl="C 2/m _c3 = I 1 1 2/m"
 567    case default
 568      intsbl="intsbl to be determined"
 569    end select
 570  case(13)
 571    brvsb="P"; intsb="2/c"; schsb="C2h^4"; sporder=4
 572    select case (spgaxor)
 573    case(1)
 574      intsbl="P 2/c _b1 = P 1 2/c 1"
 575    case(2)
 576      intsbl="P 2/c _a1 = P 2/b 1 1"
 577    case(3)
 578      intsbl="P 2/c _a2 = P 2/n 1 1"
 579    case(4)
 580      intsbl="P 2/c _a3 = P 2/c 1 1"
 581    case(5)
 582      intsbl="P 2/c _b2 = P 1 2/n 1"
 583    case(6)
 584      intsbl="P 2/c _b3 = P 1 2/a 1"
 585    case(7)
 586      intsbl="P 2/c _c1 = P 1 1 2/a"
 587    case(8)
 588      intsbl="P 2/c _c2 = P 1 1 2/n"
 589    case(9)
 590      intsbl="P 2/c _c3 = P 1 1 2/b = P 2/b"
 591    case default
 592      intsbl="intsbl to be determined"
 593    end select
 594  case(14)
 595    brvsb="P"; intsb="2_1/c"; schsb="C2h^5"; sporder=4
 596    select case (spgaxor)
 597    case(1)
 598      intsbl="P 2_1/c _b1 = P 1 2_1/c 1"
 599    case(2)
 600      intsbl="P 2_1/c _a1 = P 2_1/b 1 1"
 601    case(3)
 602      intsbl="P 2_1/c _a2 = P 2_1/n 1 1"
 603    case(4)
 604      intsbl="P 2_1/c _a3 = P 2_1/c 1 1"
 605    case(5)
 606      intsbl="P 2_1/c _b2 = P 1 2_1/n 1"
 607    case(6)
 608      intsbl="P 2_1/c _b3 = P 1 2_1/a 1"
 609    case(7)
 610      intsbl="P 2_1/c _c1 = P 1 1 2_1/a"
 611    case(8)
 612      intsbl="P 2_1/c _c2 = P 1 1 2_1/n"
 613    case(9)
 614      intsbl="P 2_1/c _c3 = P 1 1 2_1/b = P 2_1/b"
 615    case default
 616      intsbl="intsbl to be determined"
 617    end select
 618  case(15)
 619    brvsb="C"; intsb="2/c"; schsb="C2h^6"; sporder=8
 620    select case (spgaxor)
 621    case(1)
 622      intsbl="C 2/c _b1 = C 1 2/c 1"
 623    case(2)
 624      intsbl="C 2/c _a1 = B 2/b 1 1"
 625    case(3)
 626      intsbl="C 2/c _a2 = C 2/n 1 1"
 627    case(4)
 628      intsbl="C 2/c _a3 = I 2/c 1 1"
 629    case(5)
 630      intsbl="C 2/c _b2 = A 1 2/n 1"
 631    case(6)
 632      intsbl="C 2/c _b3 = I 1 2/a 1"
 633    case(7)
 634      intsbl="C 2/c _c1 = A 1 1 2/a"
 635    case(8)
 636      intsbl="C 2/c _c2 = B 1 1 2/n"
 637    case(9)
 638      intsbl="C 2/c _c3 = I 1 1 2/b"
 639    case default
 640      intsbl="intsbl to be determined"
 641    end select
 642  case(16)
 643    brvsb="P"; intsb="2 2 2"; schsb="D2^1"; sporder=4
 644  case(17)
 645    brvsb="P"; intsb="2 2 2_1"; schsb="D2^2"; sporder=4
 646    select case (spgaxor)
 647    case(1)
 648      intsbl="P 2 2 2_1"
 649    case(2)
 650      intsbl="P 2_1 2 2"
 651    case(3)
 652      intsbl="P 2 2_1 2"
 653    case default
 654      intsbl="intsbl to be determined"
 655    end select
 656  case(18)
 657    brvsb="P"; intsb="2_1 2_1 2"; schsb="D2^3"; sporder=4
 658    select case (spgaxor)
 659    case(1)
 660      intsbl="P 2_1 2_1 2"
 661    case(2)
 662      intsbl="P 2 2_1 2_1"
 663    case(3)
 664      intsbl="P 2_1 2 2_1"
 665    case default
 666      intsbl="intsbl to be determined"
 667    end select
 668  case(19)
 669    brvsb="P"; intsb="2_1 2_1 2_1"; schsb="D2^4"; sporder=4
 670  case(20)
 671    schsb="D2^5"; sporder=8
 672    select case (spgaxor)
 673    case(1)
 674      brvsb="C"; intsb="2 2 2_1"
 675    case(2)
 676      brvsb="A"; intsb="2_1 2 2"
 677    case(3)
 678      brvsb="B"; intsb="2 2_1 2"
 679    case default
 680      brvsb="X"
 681      intsbl="intsbl to be determined"
 682    end select
 683  case(21)
 684    schsb="D2^6"; sporder=8
 685    select case (spgaxor)
 686    case(1)
 687      brvsb="C"; intsb="2 2 2"
 688    case(2)
 689      brvsb="A"; intsb="2 2 2"
 690    case(3)
 691      brvsb="B"; intsb="2 2 2"
 692    case default
 693      brvsb="X"
 694      intsbl="intsbl to be determined"
 695    end select
 696  case(22)
 697    brvsb="F"; intsb="2 2 2"; schsb="D2^7"; sporder=16
 698  case(23)
 699    brvsb="I"; intsb="2 2 2"; schsb="D2^8"; sporder=8
 700  case(24)
 701    brvsb="I"; intsb="2_1 2_1 2_1"; schsb="D2^9"; sporder=8
 702  case(25)
 703    brvsb="P"; schsb="C2v^1"; sporder=4
 704    select case (spgaxor)
 705    case(1)
 706      intsb="m m 2"
 707    case(2)
 708      intsb="2 m m"
 709    case(3)
 710      intsb="m 2 m"
 711    case default
 712      intsb="intsb unknown"
 713    end select
 714  case(26)
 715    brvsb="P"; schsb="C2v^2"; sporder=4
 716    select case (spgaxor)
 717    case(1)
 718      intsb="m c 2_1"
 719    case(2)
 720      intsb="2_1 m a"
 721    case(3)
 722      intsb="b 2_1 m"
 723    case(4)
 724      intsb="m 2_1 b"
 725    case(5)
 726      intsb="c m 2_1"
 727    case(6)
 728      intsb="2_1 a m"
 729    case default
 730      intsb="intsb unknown"
 731    end select
 732  case(27)
 733    brvsb="P"; schsb="C2v^3"; sporder=4
 734    select case (spgaxor)
 735    case(1)
 736      intsb="c c 2"
 737    case(2)
 738      intsb="2 a a"
 739    case(3)
 740      intsb="b 2 b"
 741    case default
 742      intsb="intsb unknown"
 743    end select
 744  case(28)
 745    brvsb="P"; schsb="C2v^4"; sporder=4
 746    select case (spgaxor)
 747    case(1)
 748      intsb="m a 2"
 749    case(2)
 750      intsb="2 m b"
 751    case(3)
 752      intsb="c 2 m"
 753    case(4)
 754      intsb="m 2 a"
 755    case(5)
 756      intsb="b m 2"
 757    case(6)
 758      intsb="2 c m"
 759    case default
 760      intsb="intsb unknown"
 761    end select
 762  case(29)
 763    brvsb="P"; schsb="C2v^5"; sporder=4
 764    select case (spgaxor)
 765    case(1)
 766      intsb="c a 2_1"
 767    case(2)
 768      intsb="2_1 a b"
 769    case(3)
 770      intsb="c 2_1 b"
 771    case(4)
 772      intsb="b 2_1 a"
 773    case(5)
 774      intsb="b c 2_1"
 775    case(6)
 776      intsb="2_1 c a"
 777    case default
 778      intsb="intsb unknown"
 779    end select
 780  case(30)
 781    brvsb="P"; schsb="C2v^6"; sporder=4
 782    select case (spgaxor)
 783    case(1)
 784      intsb="n c 2"
 785    case(2)
 786      intsb="2 n a"
 787    case(3)
 788      intsb="b 2 n"
 789    case(4)
 790      intsb="n 2 b"
 791    case(5)
 792      intsb="c n 2"
 793    case(6)
 794      intsb="2 a n"
 795    case default
 796      intsb="intsb unknown"
 797    end select
 798  case(31)
 799    brvsb="P"; schsb="C2v^7"; sporder=4
 800    select case (spgaxor)
 801    case(1)
 802      intsb="m n 2_1"
 803    case(2)
 804      intsb="2_1 m n"
 805    case(3)
 806      intsb="n 2_1 m"
 807    case(4)
 808      intsb="m 2_1 n"
 809    case(5)
 810      intsb="n m 2_1"
 811    case(6)
 812      intsb="2_1 n m"
 813    case default
 814      intsb="intsb unknown"
 815    end select
 816  case(32)
 817    brvsb="P"; schsb="C2v^8"; sporder=4
 818    select case (spgaxor)
 819    case(1)
 820      intsb="b a 2"
 821    case(2)
 822      intsb="2 c b"
 823    case(3)
 824      intsb="c 2 a"
 825    case default
 826      intsb="intsb unknown"
 827    end select
 828  case(33)
 829    brvsb="P"; schsb="C2v^9"; sporder=4
 830    select case (spgaxor)
 831    case(1)
 832      intsb="n a 2_1"
 833    case(2)
 834      intsb="2_1 n b"
 835    case(3)
 836      intsb="c 2_1 n"
 837    case(4)
 838      intsb="n 2_1 a"
 839    case(5)
 840      intsb="b n 2_1"
 841    case(6)
 842      intsb="2_1 c n"
 843    case default
 844      intsb="intsb unknown"
 845    end select
 846  case(34)
 847    brvsb="P"; schsb="C2v^10"; sporder=4
 848    select case (spgaxor)
 849    case(1)
 850      intsb="n n 2"
 851    case(2)
 852      intsb="2 n n"
 853    case(3)
 854      intsb="n 2 n"
 855    case default
 856      intsb="intsb unknown"
 857    end select
 858  case(35)
 859    schsb="C2v^11"; sporder=8
 860    select case (spgaxor)
 861    case(1)
 862      brvsb="C"; intsb="m m 2"
 863    case(2)
 864      brvsb="A"; intsb="2 m m"
 865    case(3)
 866      brvsb="B"; intsb="m 2 m"
 867    case default
 868      brvsb="X"
 869      intsb="intsb unknown"
 870    end select
 871  case(36)
 872    schsb="C2v^12"; sporder=8
 873    select case (spgaxor)
 874    case(1)
 875      brvsb="C"; intsb="m c 2_1"
 876    case(2)
 877      brvsb="A"; intsb="2_1 m a"
 878    case(3)
 879      brvsb="B"; intsb="b 2_1 m"
 880    case(4)
 881      brvsb="B"; intsb="m 2_1 b"
 882    case(5)
 883      brvsb="C"; intsb="c m 2_1"
 884    case(6)
 885      brvsb="A"; intsb="2_1 a m"
 886    case default
 887      brvsb="X"
 888      intsb="intsb unknown"
 889    end select
 890  case(37)
 891    schsb="C2v^13"; sporder=8
 892    select case (spgaxor)
 893    case(1)
 894      brvsb="C"; intsb="c c 2"
 895    case(2)
 896      brvsb="A"; intsb="2 a a"
 897    case(3)
 898      brvsb="B"; intsb="b 2 b"
 899    case default
 900      brvsb="X"
 901      intsb="intsb unknown"
 902    end select
 903  case(38)
 904    schsb="C2v^14"; sporder=8
 905    select case (spgaxor)
 906    case(1)
 907      brvsb="A"; intsb="m m 2"
 908    case(2)
 909      brvsb="B"; intsb="2 m m"
 910    case(3)
 911      brvsb="C"; intsb="m 2 m"
 912    case(4)
 913      brvsb="A"; intsb="m 2 m"
 914    case(5)
 915      brvsb="B"; intsb="m m 2"
 916    case(6)
 917      brvsb="C"; intsb="2 m m"
 918    case default
 919      brvsb="X"
 920      intsb="intsb unknown"
 921    end select
 922  case(39)
 923    schsb="C2v^15"; sporder=8
 924    select case (spgaxor)
 925    case(1)
 926      brvsb="A"; intsb="b m 2"
 927    case(2)
 928      brvsb="B"; intsb="2 c m"
 929    case(3)
 930      brvsb="C"; intsb="m 2 a"
 931    case(4)
 932      brvsb="A"; intsb="c 2 m"
 933    case(5)
 934      brvsb="B"; intsb="m a 2"
 935    case(6)
 936      brvsb="C"; intsb="2 m b"
 937    case default
 938      brvsb="X"
 939      intsb="intsb unknown"
 940    end select
 941  case(40)
 942    schsb="C2v^16"; sporder=8
 943    select case (spgaxor)
 944    case(1)
 945      brvsb="A"; intsb="m a 2"
 946    case(2)
 947      brvsb="B"; intsb="2 m b"
 948    case(3)
 949      brvsb="C"; intsb="c 2 m"
 950    case(4)
 951      brvsb="A"; intsb="m 2 a"
 952    case(5)
 953      brvsb="B"; intsb="b m 2"
 954    case(6)
 955      brvsb="C"; intsb="2 c m"
 956    case default
 957      brvsb="X"
 958      intsb="intsb unknown"
 959    end select
 960  case(41)
 961    schsb="C2v^17"; sporder=8
 962    select case (spgaxor)
 963    case(1)
 964      brvsb="A"; intsb="b a 2"
 965    case(2)
 966      brvsb="B"; intsb="2 c b"
 967    case(3)
 968      brvsb="C"; intsb="c 2 a"
 969    case(4)
 970      brvsb="A"; intsb="c 2 a"
 971    case(5)
 972      brvsb="B"; intsb="b a 2"
 973    case(6)
 974      brvsb="C"; intsb="2 c b"
 975    case default
 976      brvsb="X"
 977      intsb="intsb unknown"
 978    end select
 979  case(42)
 980    brvsb="F"; schsb="C2v^18"; sporder=16
 981    select case (spgaxor)
 982    case(1)
 983      intsb="m m 2"
 984    case(2)
 985      intsb="2 m m"
 986    case(3)
 987      intsb="m 2 m"
 988    case default
 989      intsb="intsb unknown"
 990    end select
 991  case(43)
 992    brvsb="F"; schsb="C2v^19"; sporder=16
 993    select case (spgaxor)
 994    case(1)
 995      intsb="d d 2"
 996    case(2)
 997      intsb="2 d d"
 998    case(3)
 999      intsb="d 2 d"
1000    case default
1001      intsb="intsb unknown"
1002    end select
1003  case(44)
1004    brvsb="I"; schsb="C2v^20"; sporder=8
1005    select case (spgaxor)
1006    case(1)
1007      intsb="m m 2"
1008    case(2)
1009      intsb="2 m m"
1010    case(3)
1011      intsb="m 2 m"
1012    case default
1013      intsb="intsb unknown"
1014    end select
1015  case(45)
1016    brvsb="I"; schsb="C2v^21"; sporder=8
1017    select case (spgaxor)
1018    case(1)
1019      intsb="b a 2"
1020    case(2)
1021      intsb="2 c b"
1022    case(3)
1023      intsb="c 2 a"
1024    case default
1025      intsb="intsb unknown"
1026    end select
1027  case(46)
1028    brvsb="I"; schsb="C2v^22"; sporder=8
1029    select case (spgaxor)
1030    case(1)
1031      intsb="m a 2"
1032    case(2)
1033      intsb="2 m b"
1034    case(3)
1035      intsb="c 2 m"
1036    case(4)
1037      intsb="m 2 a"
1038    case(5)
1039      intsb="b m 2"
1040    case(6)
1041      intsb="2 c m"
1042    case default
1043      intsb="intsb unknown"
1044    end select
1045  case(47)
1046    brvsb="P"; intsb="m m m"; schsb="D2h^1"; sporder=8
1047  case(48)
1048    brvsb="P"; intsb="n n n"; schsb="D2h^2"; sporder=8
1049    select case (spgorig)
1050    case(1)
1051      intsbl="n n n _1"
1052    case(2)
1053      intsbl="n n n _2"
1054    case default
1055      intsbl="intsbl to be determined"
1056    end select
1057  case(49)
1058    brvsb="P"; schsb="D2h^3"; sporder=8
1059    select case (spgaxor)
1060    case(1)
1061      intsb="c c m"
1062    case(2)
1063      intsb="m a a"
1064    case(3)
1065      intsb="b m b"
1066    case default
1067      intsb="intsb unknown"
1068    end select
1069  case(50)
1070    brvsb="P"; schsb="D2h^4"; sporder=8
1071    select case(spgorig)
1072    case(1)
1073      select case(spgaxor)
1074      case(1)
1075        intsb="b a n"; intsbl="b a n _1"
1076      case(2)
1077        intsb="n c b"; intsbl="n c b _1"
1078      case(3)
1079        intsb="c n a"; intsbl="c n a _1"
1080      case default
1081        intsb="intsb unknown"
1082        intsbl="intsbl to be determined"
1083      end select
1084    case(2)
1085      select case(spgaxor)
1086      case(5)
1087        intsb="b a n"; intsbl="b a n _2"
1088      case(6)
1089        intsb="n c b"; intsbl="n c b _2"
1090      case(4)
1091        intsb="c n a"; intsbl="c n a _2"
1092      case default
1093        intsb="intsb unknown"
1094        intsbl="intsbl to be determined"
1095      end select
1096    case default
1097      intsb="intsb unknown"
1098      intsbl="intsbl to be determined"
1099    end select
1100  case(51)
1101    brvsb="P"; schsb="D2h^5"; sporder=8
1102    select case (spgaxor)
1103    case(1)
1104      intsb="m m a"
1105    case(2)
1106      intsb="b m m"
1107    case(3)
1108      intsb="m c m"
1109    case(4)
1110      intsb="m a m"
1111    case(5)
1112      intsb="m m b"
1113    case(6)
1114      intsb="c m m"
1115    case default
1116      intsb="intsb unknown"
1117    end select
1118  case(52)
1119    brvsb="P"; schsb="D2h^6"; sporder=8
1120    select case (spgaxor)
1121    case(1)
1122      intsb="n n a"
1123    case(2)
1124      intsb="b n n"
1125    case(3)
1126      intsb="n c n"
1127    case(4)
1128      intsb="n a n"
1129    case(5)
1130      intsb="n n b"
1131    case(6)
1132      intsb="c n n"
1133    case default
1134      intsb="intsb unknown"
1135    end select
1136  case(53)
1137    brvsb="P"
1138    schsb="D2h^7"
1139    sporder=8
1140    select case (spgaxor)
1141    case(1)
1142      intsb="m n a"
1143    case(2)
1144      intsb="b m n"
1145    case(3)
1146      intsb="n c m"
1147    case(4)
1148      intsb="m a n"
1149    case(5)
1150      intsb="n m b"
1151    case(6)
1152      intsb="c n m"
1153    case default
1154      intsb="intsb unknown"
1155    end select
1156  case(54)
1157    brvsb="P"; schsb="D2h^8"; sporder=8
1158    select case (spgaxor)
1159    case(1)
1160      intsb="c c a"
1161    case(2)
1162      intsb="b a a"
1163    case(3)
1164      intsb="b c b"
1165    case(4)
1166      intsb="b a b"
1167    case(5)
1168      intsb="c c b"
1169    case(6)
1170      intsb="c a a"
1171    case default
1172      intsb="intsb unknown"
1173    end select
1174  case(55)
1175    brvsb="P"; schsb="D2h^9"; sporder=8
1176    select case (spgaxor)
1177    case(1)
1178      intsb="b a m"
1179    case(2)
1180      intsb="m c b"
1181    case(3)
1182      intsb="c m a"
1183    case default
1184      intsb="intsb unknown"
1185    end select
1186  case(56)
1187    brvsb="P"; schsb="D2h^10"; sporder=8
1188    select case (spgaxor)
1189    case(1)
1190      intsb="c c n"
1191    case(2)
1192      intsb="n a a"
1193    case(3)
1194      intsb="b n b"
1195    case default
1196      intsb="intsb unknown"
1197    end select
1198  case(57)
1199    brvsb="P"; schsb="D2h^11"; sporder=8
1200    select case (spgaxor)
1201    case(1)
1202      intsb="b c m"
1203    case(2)
1204      intsb="m c a"
1205    case(3)
1206      intsb="b m a"
1207    case(4)
1208      intsb="c m b"
1209    case(5)
1210      intsb="c a m"
1211    case(6)
1212      intsb="m a b"
1213    case default
1214      intsb="intsb unknown"
1215    end select
1216  case(58)
1217    brvsb="P"; schsb="D2h^12"; sporder=8
1218    select case (spgaxor)
1219    case(1)
1220      intsb="n n m"
1221    case(2)
1222      intsb="m n n"
1223    case(3)
1224      intsb="n m n"
1225    case default
1226      intsb="intsb unknown"
1227    end select
1228  case(59)
1229    brvsb="P"; schsb="D2h^13"; sporder=8
1230    if (spgorig==1) then
1231      select case (spgaxor)
1232      case(1)
1233        intsb="m m n"; intsbl="m m n _1"
1234      case(2)
1235        intsb="m m n"; intsbl="n m m _1"
1236      case(3)
1237        intsb="m m n"; intsbl="m n m _1"
1238      case default
1239        intsb="intsb unknown"
1240        intsbl="intsbl to be determined"
1241      end select
1242    else if(spgorig==2) then
1243      select case (spgaxor)
1244      case(5)
1245        intsb="m m n"; intsbl="m m n _2"
1246      case(6)
1247        intsb="m m n"; intsbl="n m m _2"
1248      case(4)
1249        intsb="m m n"; intsbl="m n m _2"
1250      case default
1251        intsb="intsb unknown"
1252        intsbl="intsbl to be determined"
1253      end select
1254    else
1255      intsb="intsb unknown"
1256      intsbl="intsbl to be determined"
1257    end if
1258  case(60)
1259    brvsb="P"; schsb="D2h^14"; sporder=8
1260    select case (spgaxor)
1261    case(1)
1262      intsb="b c n"
1263    case(2)
1264      intsb="n c a"
1265    case(3)
1266      intsb="b n a"
1267    case(4)
1268      intsb="c n b"
1269    case(5)
1270      intsb="c a n"
1271    case(6)
1272      intsb="n a b"
1273    case default
1274      intsb="intsb unknown"
1275    end select
1276  case(61)
1277    brvsb="P"; schsb="D2h^15"; sporder=8
1278    if (spgaxor==1)then
1279      intsb="b c a"
1280    else if (spgaxor==2)then
1281      intsb="c a b"
1282    else
1283      intsb="intsb unknown"
1284    end if
1285  case(62)
1286    brvsb="P"; schsb="D2h^16"; sporder=8
1287    select case (spgaxor)
1288    case(1)
1289      intsb="n m a"
1290    case(2)
1291      intsb="b n m"
1292    case(3)
1293      intsb="m c n"
1294    case(4)
1295      intsb="n a m"
1296    case(5)
1297      intsb="m n b"
1298    case(6)
1299      intsb="c m n"
1300    case default
1301      intsb="intsb unknown"
1302    end select
1303  case(63)
1304    schsb="D2h^17"; sporder=16
1305    select case (spgaxor)
1306    case(1)
1307      brvsb="C"; intsb="m c m"
1308    case(2)
1309      brvsb="A"; intsb="m m a"
1310    case(3)
1311      brvsb="B"; intsb="b m m"
1312    case(4)
1313      brvsb="B"; intsb="m m b"
1314    case(5)
1315      brvsb="C"; intsb="c m m"
1316    case(6)
1317      brvsb="A"; intsb="m a m"
1318    case default
1319      brvsb="X"
1320      intsbl="intsbl unknown"
1321    end select
1322  case(64)
1323    schsb="D2h^18"; sporder=16
1324    select case (spgaxor)
1325    case(1)
1326      brvsb="C"; intsb="m c a"
1327    case(2)
1328      brvsb="A"; intsb="b m a"
1329    case(3)
1330      brvsb="B"; intsb="b c m"
1331    case(4)
1332      brvsb="B"; intsb="m a b"
1333    case(5)
1334      brvsb="C"; intsb="c m b"
1335    case(6)
1336      brvsb="A"; intsb="c a m"
1337    case default
1338      brvsb="X"
1339      intsb="intsb unknown"
1340    end select
1341  case(65)
1342    schsb="D2h^19"; sporder=16
1343    select case (spgaxor)
1344    case(1)
1345      brvsb="C"; intsb="m m m"
1346    case(2)
1347      brvsb="A"; intsb="m m m"
1348    case(3)
1349      brvsb="B"; intsb="m m m"
1350    case default
1351      brvsb="X"
1352      intsb="intsb unknown"
1353    end select
1354  case(66)
1355    schsb="D2h^20"; sporder=16
1356    select case (spgaxor)
1357    case(1)
1358      brvsb="C"; intsb="c c m"
1359    case(2)
1360      brvsb="A"; intsb="m a a"
1361    case(3)
1362      brvsb="B"; intsb="b m b"
1363    case default
1364      brvsb="X"
1365      intsb="intsb unknown"
1366    end select
1367  case(67)
1368    schsb="D2h^21"; sporder=16
1369    select case (spgaxor)
1370    case(1)
1371      brvsb="C"; intsb="m m a"
1372    case(2)
1373      brvsb="A"; intsb="b m m"
1374    case(3)
1375      brvsb="B"; intsb="m c m"
1376    case(4)
1377      brvsb="B"; intsb="m a m"
1378    case(5)
1379      brvsb="C"; intsb="m m b"
1380    case(6)
1381      brvsb="A"; intsb="c m m"
1382    case default
1383      brvsb="X"
1384      intsb="intsb unknown"
1385    end select
1386  case(68)
1387    schsb="D2h^22"; sporder=16
1388    if (spgorig==1) then
1389      select case (spgaxor)
1390      case(1)
1391        brvsb="C"; intsb="c c a"; intsbl="c c a _1"
1392      case(2)
1393        brvsb="A"; intsb="b a a"; intsbl="b a a _1"
1394      case(3)
1395        brvsb="B"; intsb="b c b"; intsbl="b c b _1"
1396      case(4)
1397        brvsb="B"; intsb="b a b"; intsbl="b a b _1"
1398      case(5)
1399        brvsb="C"; intsb="c c b"; intsbl="c c b _1"
1400      case(6)
1401        brvsb="A"; intsb="c a a"; intsbl="c a a _1"
1402      case default
1403        brvsb="X"
1404        intsb="intsb unknown"
1405        intsbl="intsbl to be determined"
1406      end select
1407    else if(spgorig==2)then
1408      select case (spgaxor)
1409      case(1)
1410        brvsb="C"; intsb="c c a"; intsbl="c c a _2"
1411      case(2)
1412        brvsb="A"; intsb="b a a"; intsbl="b a a _2"
1413      case(3)
1414        brvsb="B"; intsb="b c b"; intsbl="b c b _2"
1415      case(4)
1416        brvsb="B"; intsb="b a b"; intsbl="b a b _2"
1417      case(5)
1418        brvsb="C"; intsb="c c b"; intsbl="c c b _2"
1419      case(6)
1420        brvsb="A"; intsb="c a a"; intsbl="c a a _2"
1421      case default
1422        brvsb="X"
1423        intsb="intsb unknown"
1424        intsbl="intsbl to be determined"
1425      end select
1426    else
1427      brvsb="X"
1428      intsb="intsb unknown"
1429      intsbl="intsbl to be determined"
1430    end if
1431  case(69)
1432    brvsb="F"; intsb="m m m"; schsb="D2h^23"; sporder=32
1433  case(70)
1434    brvsb="F"; intsb="d d d"; schsb="D2h^24"; sporder=32
1435    if (spgorig==1)then
1436      intsbl="d d d _1"
1437    else if (spgorig==2)then
1438      intsbl="d d d _2"
1439    else
1440      intsbl="intsbl to be determined"
1441    end if
1442  case(71)
1443    brvsb="I"; intsb="m m m"; schsb="D2h^25"; sporder=16
1444  case(72)
1445    brvsb="I"; schsb="D2h^26"; sporder=16
1446    select case (spgaxor)
1447    case(1)
1448      intsb="b a m"
1449    case(2)
1450      intsb="m c b"
1451    case(3)
1452      intsb="c m a"
1453    case default
1454      intsb="intsb unknown"
1455    end select
1456  case(73)
1457    brvsb="I"; schsb="D2h^27"; sporder=16
1458    if (spgorig==1)then
1459      intsb="b c a"
1460    else if (spgorig==2)then
1461      intsb="c a b"
1462    else
1463      intsb="intsb unknown"
1464    end if
1465  case(74)
1466    brvsb="I"; schsb="D2h^28"; sporder=16
1467    select case (spgaxor)
1468    case(1)
1469      intsb="m m a"
1470    case(2)
1471      intsb="b m m"
1472    case(3)
1473      intsb="m c m"
1474    case(4)
1475      intsb="m a m"
1476    case(5)
1477      intsb="m m b"
1478    case(6)
1479      intsb="c m m"
1480    case default
1481      intsb="intsb unknown"
1482    end select
1483  case(75)
1484    brvsb="P"; intsb="4"; schsb="C4^1"; sporder=4
1485  case(76)
1486    brvsb="P"; intsb="4_1"; schsb="C4^2"; sporder=4
1487  case(77)
1488    brvsb="P"; intsb="4_2"; schsb="C4^3"; sporder=4
1489  case(78)
1490    brvsb="P"; intsb="4_3"; schsb="C4^4"; sporder=4
1491  case(79)
1492    brvsb="I"; intsb="4"; schsb="C4^5"; sporder=8
1493  case(80)
1494    brvsb="I"; intsb="4_1"; schsb="C4^6"; sporder=8
1495  case(81)
1496    brvsb="P"; intsb="-4"; schsb="S4^1"; sporder=4
1497  case(82)
1498    brvsb="I"; intsb="-4"; schsb="S4^2"; sporder=8
1499  case(83)
1500    brvsb="P"; intsb="4/m"; schsb="C4h^1"; sporder=8
1501  case(84)
1502    brvsb="P"; intsb="4_2/m"; schsb="C4h^2"; sporder=8
1503  case(85)
1504    brvsb="P"; intsb="4/n"; schsb="C4h^3"; sporder=8
1505    if (spgorig==1)then
1506      intsbl="4/n _1"
1507    else if (spgorig==2)then
1508      intsbl="4/n _2"
1509    else
1510      intsbl="intsbl to be determined"
1511    end if
1512  case(86)
1513    brvsb="P"; intsb="4_2/n"; schsb="C4h^4"; sporder=8
1514    if (spgorig==1)then
1515      intsbl="4_2/n _1"
1516    else if (spgorig==2)then
1517      intsbl="4_2/n _2"
1518    else
1519      intsbl="intsbl to be determined"
1520    end if
1521  case(87)
1522    brvsb="I"; intsb="4/m"; schsb="C4h^5"; sporder=16
1523  case(88)
1524    brvsb="I"; intsb="4_1/a"; schsb="C4h^6"; sporder=16
1525    if (spgorig==1)then
1526      intsbl="4_1/a _1"
1527    else if (spgorig==2)then
1528      intsbl="4_1/a _2"
1529    else
1530      intsbl="intsbl to be determined"
1531    end if
1532  case(89)
1533    brvsb="P"; intsb="4 2 2"; schsb="D4^1"; sporder=8
1534  case(90)
1535    brvsb="P"; intsb="4 2_1 2"; schsb="D4^2"; sporder=8
1536  case(91)
1537    brvsb="P"; intsb="4_1 2 2"; schsb="D4^3"; sporder=8
1538  case(92)
1539    brvsb="P"; intsb="4_1 2_1 2"; schsb="D4^4"; sporder=8
1540  case(93)
1541    brvsb="P"; intsb="4_2 2 2"; schsb="D4^5"; sporder=8
1542  case(94)
1543    brvsb="P"; intsb="4_2 2_1 2"; schsb="D4^6"; sporder=8
1544  case(95)
1545    brvsb="P"; intsb="4_3 2 2"; schsb="D4^7"; sporder=8
1546  case(96)
1547    brvsb="P"; intsb="4_3 2_1 2"; schsb="D4^8"; sporder=8
1548  case(97)
1549    brvsb="I"; intsb="4 2 2"; schsb="D4^9"; sporder=16
1550  case(98)
1551    brvsb="I"; intsb="4_1 2 2"; schsb="D4^10"; sporder=16
1552  case(99)
1553    brvsb="P"; intsb="4 m m"; schsb="C4v^1"; sporder=8
1554  case(100)
1555    brvsb="P"; intsb="4 b m"; schsb="C4v^2"; sporder=8
1556  case(101)
1557    brvsb="P"; intsb="4_2 c m"; schsb="C4v^3"; sporder=8
1558  case(102)
1559    brvsb="P"; intsb="4_2 n m"; schsb="C4v^4"; sporder=8
1560  case(103)
1561    brvsb="P"; intsb="4 c c"; schsb="C4v^5"; sporder=8
1562  case(104)
1563    brvsb="P"; intsb="4 n c"; schsb="C4v^6"; sporder=8
1564  case(105)
1565    brvsb="P"; intsb="4_2 m c"; schsb="C4v^7"; sporder=8
1566  case(106)
1567    brvsb="P"; intsb="4_2 b c"; schsb="C4v^8"; sporder=8
1568  case(107)
1569    brvsb="I"; intsb="4 m m"; schsb="C4v^9"; sporder=16
1570  case(108)
1571    brvsb="I"; intsb="4 c m"; schsb="C4v^10"; sporder=16
1572  case(109)
1573    brvsb="I"; intsb="4_1 m d"; schsb="C4v^11"; sporder=16
1574  case(110)
1575    brvsb="I"; intsb="4_1 c d"; schsb="C4v^12"; sporder=16
1576  case(111)
1577    brvsb="P"; intsb="-4 2 m"; schsb="D2d^1"; sporder=8
1578  case(112)
1579    brvsb="P"; intsb="-4 2 c"; schsb="D2d^2"; sporder=8
1580  case(113)
1581    brvsb="P"; intsb="-4 2_1 m"; schsb="D2d^3"; sporder=8
1582  case(114)
1583    brvsb="P"; intsb="-4 2_1 c"; schsb="D2d^4"; sporder=8
1584  case(115)
1585    brvsb="P"; intsb="-4 m 2"; schsb="D2d^5"; sporder=8
1586  case(116)
1587    brvsb="P"; intsb="-4 c 2"; schsb="D2d^6"; sporder=8
1588  case(117)
1589    brvsb="P"; intsb="-4 b 2"; schsb="D2d^7"; sporder=8
1590  case(118)
1591    brvsb="P"; intsb="-4 n 2"; schsb="D2d^8"; sporder=8
1592  case(119)
1593    brvsb="I"; intsb="-4 m 2"; schsb="D2d^9"; sporder=16
1594  case(120)
1595    brvsb="I"; intsb="-4 c 2"; schsb="D2d^10"; sporder=16
1596  case(121)
1597    brvsb="I"; intsb="-4 2 m"; schsb="D2d^11"; sporder=16
1598  case(122)
1599    brvsb="I"; intsb="-4 2 d"; schsb="D2d^12"; sporder=16
1600  case(123)
1601    brvsb="P"; intsb="4/m m m"; schsb="D4h^1"; sporder=16
1602  case(124)
1603    brvsb="P"; intsb="4/m c c"; schsb="D4h^2"; sporder=16
1604  case(125)
1605    brvsb="P"; intsb="4/n b m"; schsb="D4h^3"; sporder=16
1606    if (spgorig==1)then
1607      intsbl="4/n b m _1"
1608    else if (spgorig==2)then
1609      intsbl="4/n b m _2"
1610    else
1611      intsbl="intsbl to be determined"
1612    end if
1613  case(126)
1614    brvsb="P"; intsb="4/n n c"; schsb="D4h^4"; sporder=16
1615    if (spgorig==1)then
1616      intsbl="4/n n c _1"
1617    else if (spgorig==2)then
1618      intsbl="4/n n c _2"
1619    else
1620      intsbl="intsbl to be determined"
1621    end if
1622  case(127)
1623    brvsb="P"; intsb="4/m b m"; schsb="D4h^5"; sporder=16
1624  case(128)
1625    brvsb="P"; intsb="4/m n c"; schsb="D4h^6"; sporder=16
1626  case(129)
1627    brvsb="P"; intsb="4/n m m"; schsb="D4h^7"; sporder=16
1628    if (spgorig==1)then
1629      intsbl="4/n m m _1"
1630    else if (spgorig==2)then
1631      intsbl="4/n m m _2"
1632    else
1633      intsbl="intsbl to be determined"
1634    end if
1635  case(130)
1636    brvsb="P"; intsb="4/n c c"; schsb="D4h^8"; sporder=16
1637    if (spgorig==1)then
1638      intsbl="4/n c c _1"
1639    else if (spgorig==2) then
1640      intsbl="4/n c c _2"
1641    else
1642      intsbl="intsbl to be determined"
1643    end if
1644  case(131)
1645    brvsb="P"; intsb="4_2/m m c"; schsb="D4h^9"; sporder=16
1646  case(132)
1647    brvsb="P"; intsb="4_2/m c m"; schsb="D4h^10"; sporder=16
1648  case(133)
1649    brvsb="P"; intsb="4_2/n b c"; schsb="D4h^11"; sporder=16
1650    if (spgorig==1)then
1651      intsbl="4_2/n b c _1"
1652    else if (spgorig==2)then
1653      intsbl="4_2/n b c _2"
1654    else
1655      intsbl="intsbl to be determined"
1656    end if
1657  case(134)
1658    brvsb="P"; intsb="4_2/n n m"; schsb="D4h^12"; sporder=16
1659    if (spgorig==1)then
1660      intsbl="4_2/n n m _1"
1661    else if (spgorig==2)then
1662      intsbl="4_2/n n m _2"
1663    else
1664      intsbl="intsbl to be determined"
1665    end if
1666  case(135)
1667    brvsb="P"; intsb="4_2/m b c"; schsb="D4h^13"; sporder=16
1668  case(136)
1669    brvsb="P"; intsb="4_2/m n m"; schsb="D4h^14"; sporder=16
1670  case(137)
1671    brvsb="P"; intsb="4_2/n m c"; schsb="D4h^15"; sporder=16
1672    if (spgorig==1)then
1673      intsbl="4_2/n m c _1"
1674    else if (spgorig==2)then
1675      intsbl="4_2/n m c _2"
1676    else
1677      intsbl="intsbl to be determined"
1678    end if
1679  case(138)
1680    brvsb="P"; intsb="4_2/n c m"; schsb="D4h^16"; sporder=16
1681    if (spgorig==1)then
1682      intsbl="4_2/n c m _1"
1683    else if (spgorig==2)then
1684      intsbl="4_2/n c m _2"
1685    else
1686      intsbl="intsbl to be determined"
1687    end if
1688  case(139)
1689    brvsb="I"; intsb="4/m m m"; schsb="D4h^17"; sporder=32
1690  case(140)
1691    brvsb="I"; intsb="4/m c m"; schsb="D4h^18"; sporder=32
1692  case(141)
1693    brvsb="I"; intsb="4_1/a m d"; schsb="D4h^19"; sporder=32
1694    if (spgorig==1)then
1695      intsbl="4_1/a m d _1"
1696    else if (spgorig==2)then
1697      intsbl="4_1/a m d _2"
1698    else
1699      intsbl="intsbl to be determined"
1700    end if
1701  case(142)
1702    brvsb="I"; intsb="4_1/a c d"; schsb="D4h^20"; sporder=32
1703    if (spgorig==1)then
1704      intsbl="4_1/a c d _1"
1705    else if (spgorig==2)then
1706      intsbl="4_1/a c d _2"
1707    else
1708      intsbl="intsbl to be determined"
1709    end if
1710  case(143)
1711    brvsb="P"; intsb="3"; schsb="C3^1"; sporder=3
1712  case(144)
1713    brvsb="P"; intsb="3_1"; schsb="C3^2"; sporder=3
1714  case(145)
1715    brvsb="P"; intsb="3_2"; schsb="C3^3"; sporder=3
1716  case(146)
1717    brvsb="R"; intsb="3"; schsb="C3^4"
1718    if (spgorig==1)then
1719      intsbl="3 _H" ; sporder=9
1720    else if (spgorig==2)then
1721      intsbl="3 _R" ; sporder=3
1722    else
1723      intsbl="intsbl to be determined"
1724    end if
1725  case(147)
1726    brvsb="P"; intsb="-3"; schsb="C3i^1"; sporder=6
1727  case(148)
1728    brvsb="R"; intsb="-3"; schsb="C3i^2"
1729    if (spgorig==1) then
1730      intsbl="-3 _H" ; sporder=9
1731    else if (spgorig==2) then
1732      intsbl="-3 _R" ; sporder=3
1733    else
1734      intsbl="intsbl to be determined"
1735    end if
1736  case(149)
1737    brvsb="P"; intsb="3 1 2"; schsb="D3^1"; sporder=6
1738  case(150)
1739    brvsb="P"; intsb="3 2 1"; schsb="D3^2"; sporder=6
1740  case(151)
1741    brvsb="P"; intsb="3_1 1 2"; schsb="D3^3"; sporder=6
1742  case(152)
1743    brvsb="P"; intsb="3_1 2 1"; schsb="D3^4"; sporder=6
1744  case(153)
1745    brvsb="P"; intsb="3_2 1 2"; schsb="D3^5"; sporder=6
1746  case(154)
1747    brvsb="P"; intsb="3_2 2 1"; schsb="D3^6"; sporder=6
1748  case(155)
1749    brvsb="R"; intsb="3 2"; schsb="D3^7"
1750    if (spgorig==1) then
1751      intsbl="3 2 _H" ; sporder=18
1752    else if (spgorig==2) then
1753      intsbl="3 2 _R" ; sporder=6
1754    else
1755      intsbl="intsbl to be determined"
1756    end if
1757  case(156)
1758    brvsb="P"; intsb="3 m 1"; schsb="C3v^1"; sporder=6
1759  case(157)
1760    brvsb="P"; intsb="3 1 m"; schsb="C3v^2"; sporder=6
1761  case(158)
1762    brvsb="P"; intsb="3 c 1"; schsb="C3v^3"; sporder=6
1763  case(159)
1764    brvsb="P"; intsb="3 1 c"; schsb="C3v^4"; sporder=6
1765  case(160)
1766    brvsb="R"; intsb="3 m"; schsb="C3v^5"
1767    if (spgorig==1) then
1768      intsbl="3 m _H" ; sporder=18
1769    else if (spgorig==2) then
1770      intsbl="3 m _R" ; sporder=6
1771    else
1772      intsbl="intsbl to be determined"
1773    end if
1774  case(161)
1775    brvsb="R"; intsb="3 c"; schsb="C3v^6"
1776    if (spgorig==1) then
1777      intsbl="3 m _H" ; sporder=18
1778    else if (spgorig==2)then
1779      intsbl="3 m _R" ; sporder=6
1780    else
1781      intsbl="intsbl to be determined"
1782    end if
1783  case(162)
1784    brvsb="P"; intsb="-3 1 m"; schsb="D3d^1"; sporder=12
1785  case(163)
1786    brvsb="P"; intsb="-3 1 c"; schsb="D3d^2"; sporder=12
1787  case(164)
1788    brvsb="P"; intsb="-3 m 1"; schsb="D3d^3"; sporder=12
1789  case(165)
1790    brvsb="P"; intsb="-3 c 1"; schsb="D3d^4"; sporder=12
1791  case(166)
1792    brvsb="R"; intsb="-3 m"; schsb="D3d^5"
1793    if (spgorig==1) then
1794      intsbl="3 m _H"; sporder=18
1795    else if (spgorig==2) then
1796      intsbl="3 m _R"; sporder=6
1797    else
1798      intsbl="intsbl to be determined"
1799    end if
1800  case(167)
1801    brvsb="R"; intsb="-3 c"; schsb="D3d^6"
1802    if (spgorig==1) then
1803      intsbl="-3 c _H"; sporder=36
1804    else if (spgorig==2) then
1805      intsbl="-3 c _R"; sporder=12
1806    else
1807      intsbl="intsbl to be determined"
1808      sporder=-1
1809    end if
1810  case(168)
1811    brvsb="P"; intsb="6"; schsb="C6^1"; sporder=6
1812  case(169)
1813    brvsb="P"; intsb="6_1"; schsb="C6^2"; sporder=6
1814  case(170)
1815    brvsb="P"; intsb="6_5"; schsb="C6^3"; sporder=6
1816  case(171)
1817    brvsb="P"; intsb="6_2"; schsb="C6^4"; sporder=6
1818  case(172)
1819    brvsb="P"; intsb="6_4"; schsb="C6^5"; sporder=6
1820  case(173)
1821    brvsb="P"; intsb="6_3"; schsb="C6^6"; sporder=6
1822  case(174)
1823    brvsb="P"; intsb="-6"; schsb="C3h^1"; sporder=6
1824  case(175)
1825    brvsb="P"; intsb="6/m"; schsb="C6h^1"; sporder=12
1826  case(176)
1827    brvsb="P"; intsb="6_3/m"; schsb="C6h^2"; sporder=12
1828  case(177)
1829    brvsb="P"; intsb="6 2 2"; schsb="D6^1"; sporder=12
1830  case(178)
1831    brvsb="P"; intsb="6_1 2 2"; schsb="D6^2"; sporder=12
1832  case(179)
1833    brvsb="P"; intsb="6_5 2 2"; schsb="D6^3"; sporder=12
1834  case(180)
1835    brvsb="P"; intsb="6_2 2 2"; schsb="D6^4"; sporder=12
1836  case(181)
1837    brvsb="P"; intsb="6_4 2 2"; schsb="D6^5"; sporder=12
1838  case(182)
1839    brvsb="P"; intsb="6_3 2 2"; schsb="D6^6"; sporder=12
1840  case(183)
1841    brvsb="P"; intsb="6 m m"; schsb="C6v^1"; sporder=12
1842  case(184)
1843    brvsb="P"; intsb="6 c c"; schsb="C6v^2"; sporder=12
1844  case(185)
1845    brvsb="P"; intsb="6_3 c m"; schsb="C6v^3"; sporder=12
1846  case(186)
1847    brvsb="P"; intsb="6_3 m c"; schsb="C6v^4"; sporder=12
1848  case(187)
1849    brvsb="P"; intsb="-6 m 2"; schsb="D3h^1"; sporder=12
1850  case(188)
1851    brvsb="P"; intsb="-6 c 2"; schsb="D3h^2"; sporder=12
1852  case(189)
1853    brvsb="P"; intsb="-6 2 m"; schsb="D3h^3"; sporder=12
1854  case(190)
1855    brvsb="P"; intsb="-6 2 c"; schsb="D3h^4"; sporder=12
1856  case(191)
1857    brvsb="P"; intsb="6/m m m"; schsb="D6h^1"; sporder=24
1858  case(192)
1859    brvsb="P"; intsb="6/m c c"; schsb="D6h^2"; sporder=24
1860  case(193)
1861    brvsb="P"; intsb="6_3/m c m"; schsb="D6h^3"; sporder=24
1862  case(194)
1863    brvsb="P"; intsb="6_3/m m c"; schsb="D6h^4"; sporder=24
1864  case(195)
1865    brvsb="P"; intsb="2 3"; schsb="T^1"; sporder=12
1866  case(196)
1867    brvsb="F"; intsb="2 3"; schsb="T^2"; sporder=48
1868  case(197)
1869    brvsb="I"; intsb="2 3"; schsb="T^3"; sporder=24
1870  case(198)
1871    brvsb="P"; intsb="2_1 3"; schsb="T^4"; sporder=12
1872  case(199)
1873    brvsb="I"; intsb="2_1 3"; schsb="T^5"; sporder=24
1874  case(200)
1875    brvsb="P"; intsb="m -3"; schsb="Th^1"; sporder=24
1876  case(201)
1877    brvsb="P"; intsb="n -3"; schsb="Th^2"; sporder=24
1878    if (spgorig==1) then
1879      intsbl="n -3 _1"
1880    else if (spgorig==2)then
1881      intsbl="n -3 _2"
1882    else
1883      intsbl="intsbl to be determined"
1884    end if
1885  case(202)
1886    brvsb="F"; intsb="m -3"; schsb="Th^3"; sporder=96
1887  case(203)
1888    brvsb="F"; intsb="d -3"; schsb="Th^4"; sporder=96
1889    if (spgorig==1) then
1890      intsbl="d -3 _1"
1891    else if (spgorig==2) then
1892      intsbl="d -3 _2"
1893    else
1894      intsbl="intsbl to be determined"
1895    end if
1896  case(204)
1897    brvsb="I"; intsb="m -3"; schsb="Th^5"; sporder=48
1898  case(205)
1899    brvsb="P"; intsb="a -3"; schsb="Th^6"; sporder=24
1900  case(206)
1901    brvsb="I"; intsb="a -3"; schsb="Th^7"; sporder=48
1902  case(207)
1903    brvsb="P"; intsb="4 3 2"; schsb="O^1"; sporder=24
1904  case(208)
1905    brvsb="P"; intsb="4_2 3 2"; schsb="O^2"; sporder=24
1906  case(209)
1907    brvsb="F"; intsb="4 3 2"; schsb="O^3"; sporder=96
1908  case(210)
1909    brvsb="F"; intsb="4_1 3 2"; schsb="O^4"; sporder=96
1910  case(211)
1911    brvsb="I"; intsb="4 3 2"; schsb="O^5"; sporder=48
1912  case(212)
1913    brvsb="P"; intsb="4_3 3 2"; schsb="O^6"; sporder=24
1914  case(213)
1915    brvsb="P"; intsb="4_1 3 2"; schsb="O^7"; sporder=24
1916  case(214)
1917    brvsb="I"; intsb="4_1 3 2"; schsb="O^8"; sporder=48
1918  case(215)
1919    brvsb="P"; intsb="-4 3 m"; schsb="Td^1"; sporder=24
1920  case(216)
1921    brvsb="F"; intsb="-4 3 m"; schsb="Td^2"; sporder=96
1922  case(217)
1923    brvsb="I"; intsb="-4 3 m"; schsb="Td^3"; sporder=48
1924  case(218)
1925    brvsb="P"; intsb="-4 3 n"; schsb="Td^4"; sporder=24
1926  case(219)
1927    brvsb="F"; intsb="-4 3 c"; schsb="Td^5"; sporder=96
1928  case(220)
1929    brvsb="I"; intsb="-4 3 d"; schsb="Td^6"; sporder=48
1930  case(221)
1931    brvsb="P"; intsb="m -3 m"; schsb="Oh^1"; sporder=48
1932  case(222)
1933    brvsb="P"; intsb="n -3 n"; schsb="Oh^2"; sporder=48
1934    if (spgorig==1) then
1935      intsbl="n -3 n _1"
1936    else if (spgorig==2) then
1937      intsbl="n -3 n _2"
1938    else
1939      intsbl="intsbl to be determined"
1940    end if
1941  case(223)
1942    brvsb="P"; intsb="m -3 n"; schsb="Oh^3"; sporder=48
1943  case(224)
1944    brvsb="P"; intsb="n -3 m"; schsb="Oh^4"; sporder=48
1945    if (spgorig==1) then
1946      intsbl="n -3 m _1"
1947    else if (spgorig==2)then
1948      intsbl="n -3 m _2"
1949    else
1950      intsbl="intsbl to be determined"
1951    end if
1952  case(225)
1953    brvsb="F"; intsb="m -3 m"; schsb="Oh^5"; sporder=192
1954  case(226)
1955    brvsb="F"; intsb="m -3 c"; schsb="Oh^6"; sporder=192
1956  case(227)
1957    brvsb="F"; intsb="d -3 m"; schsb="Oh^7"; sporder=192
1958    if (spgorig==1) then
1959      intsbl="d -3 m _1"
1960    else if (spgorig==2) then
1961      intsbl="d -3 m _2"
1962    else
1963      intsbl="intsbl to be determined"
1964    end if
1965  case(228)
1966    brvsb="F"; intsb="d -3 c"; schsb="Oh^8"; sporder=192
1967    if (spgorig==1) then
1968      intsbl="d -3 c _1"
1969    else if (spgorig==2) then
1970      intsbl="d -3 c _2"
1971    else
1972      intsbl="intsbl to be determined"
1973    end if
1974  case(229)
1975    brvsb="I"; intsb="m -3 m"; schsb="Oh^9"; sporder=96
1976  case(230)
1977    brvsb="I"; intsb="a -3 d"; schsb="Oh^10"; sporder=96
1978  end select
1979 
1980  if(trim(intsbl)=="same")intsbl=intsb
1981 
1982 !Assignment of the point group number
1983  if(spgroup<=2)then  ! Triclinic system
1984    select case(spgroup)
1985    case (1)
1986      ptintsb="1"; ptschsb="C1"
1987    case (2)
1988      ptintsb="-1"; ptschsb="Ci"
1989    end select
1990  else if(spgroup<=15)then  ! Monoclinic system
1991    select case(spgroup)
1992    case (3:5)
1993      ptintsb="2"; ptschsb="C2"
1994    case (6:9)
1995      ptintsb="m"; ptschsb="Cs = C1h "
1996    case (10:15)
1997      ptintsb="2/m"; ptschsb="C2h"
1998    end select
1999  else if(spgroup<=74)then  ! Orthorhombic system
2000    select case(spgroup)
2001    case (16:24)
2002      ptintsb="2 2 2"; ptschsb="D2"
2003    case (25:46)
2004      ptintsb="m m 2"; ptschsb="C2v"
2005    case (47:74)
2006      ptintsb="m m m"; ptschsb="D2h"
2007    end select
2008  else if(spgroup<=142)then  ! Tetragonal system
2009    select case(spgroup)
2010    case (75:80)
2011      ptintsb="4"; ptschsb="C4"
2012    case (81,82)
2013      ptintsb="-4"; ptschsb="S4"
2014    case (83:88)
2015      ptintsb="4/m"; ptschsb="C4h"
2016    case (89:98)
2017      ptintsb="4 2 2"; ptschsb="D4"
2018    case (99:110)
2019      ptintsb="4 m m"; ptschsb="C4v"
2020    case (111:114,121,122)
2021      ptintsb="-4 2 m"; ptschsb="D2d^1"
2022    case (115:120)
2023      ptintsb="-4 m 2"; ptschsb="D2h^2"
2024    case (123:142)
2025      ptintsb="4/m m m"
2026      ptschsb="D4h"
2027    end select
2028  else if(spgroup<=167)then  ! Trigonal system
2029    select case(spgroup)
2030    case (143:146)
2031      ptintsb="3"; ptschsb="C3"
2032    case (147,148)
2033      ptintsb="-3"; ptschsb="C3i"
2034    case (149,151,153)
2035      ptintsb="3 1 2"; ptschsb="D3^1"
2036    case (150,152,154,155)
2037      ptintsb="3 2 1"; ptschsb="D3^2"
2038    case (156,158,160,161)
2039      ptintsb="3 m 1"; ptschsb="C3v^1"
2040    case (157,159)
2041      ptintsb="3 1 m"; ptschsb="C3v^2"
2042    case (162,163)
2043      ptintsb="-3 1 m"; ptschsb="D3d^1"
2044    case (164:167)
2045      ptintsb="-3 m 1"; ptschsb="D3d^2"
2046    end select
2047  else if(spgroup<=194)then  ! Hexagonal system
2048    select case(spgroup)
2049    case (168:173)
2050      ptintsb="6"; ptschsb="C6"
2051    case (174)
2052      ptintsb="-6"; ptschsb="C3h"
2053    case (175,176)
2054      ptintsb="6/m"; ptschsb="C6h"
2055    case (177:182)
2056      ptintsb="6 2 2"; ptschsb="D6"
2057    case (183:186)
2058      ptintsb="6 m m"; ptschsb="C6v"
2059    case (187,188)
2060      ptintsb="-6 m 2"; ptschsb="D3h^1"
2061    case (189,190)
2062      ptintsb="-6 2 m"; ptschsb="D3h^2"
2063    case (191:194)
2064      ptintsb="6/m m m"; ptschsb="D6h"
2065    end select
2066  else                        ! Cubic system
2067    select case(spgroup)
2068    case (195:199)
2069      ptintsb="2 3"; ptschsb="T"
2070    case (200:206)
2071      ptintsb="m 3"; ptschsb="Th"
2072    case (207:214)
2073      ptintsb="4 3 2"; ptschsb="O"
2074    case (215:220)
2075      ptintsb="4 3 m"; ptschsb="Td"
2076    case (221:230)
2077      ptintsb="m -3 m"; ptschsb="Oh"
2078    end select
2079  end if
2080 
2081 end subroutine spgdata

m_spgdata/symptgroup [ Functions ]

[ Top ] [ m_spgdata ] [ Functions ]

NAME

 symptgroup

FUNCTION

 Derive the name of the point group (+holohedry), from symrel.
 Warning: might have to change the holohedry hR to hP, if hexagonal axes

INPUTS

 nsym=actual number of symmetries
 symrel(3,3,nsym)=nsym symmetry operations in real space in terms of primitive translations

OUTPUT

 iholohedry=holohedry number
 ptgroup=symmetry point group

SOURCE

2393 subroutine symptgroup(iholohedry,nsym,ptgroup,symrel)
2394 
2395 !Arguments ------------------------------------
2396 !scalars
2397  integer,intent(in) :: nsym
2398  integer,intent(out) :: iholohedry
2399  character(len=5),intent(out) :: ptgroup
2400 !arrays
2401  integer,intent(in) :: symrel(3,3,nsym)
2402 
2403 !Local variables-------------------------------
2404 !scalars
2405  integer :: inversion,iorder,isym
2406  character(len=500) :: message
2407 !arrays
2408  integer :: identity(3,3),matrix(3,3),n_axes(-6:6),trial(3,3)
2409  integer,allocatable :: determinant(:),order(:),root_invers(:)
2410  character(len=2),allocatable :: ptsym(:)
2411 
2412 !**************************************************************************
2413 
2414 !DEBUG
2415 !write(std_out,*)' symptgroup : enter'
2416 !do isym=1,nsym
2417 !write(std_out,'(i3,2x,9i3)' )isym,symrel(:,:,isym)
2418 !end do
2419 !ENDDEBUG
2420 
2421  identity(:,:)=0
2422  identity(1,1)=1 ; identity(2,2)=1 ; identity(3,3)=1
2423  n_axes(:)=0
2424 
2425  ABI_MALLOC(determinant,(nsym))
2426  ABI_MALLOC(order,(nsym))
2427  ABI_MALLOC(ptsym,(nsym))
2428  ABI_MALLOC(root_invers,(nsym))
2429 
2430 !Get the determinant
2431  call symdet(determinant,nsym,symrel)
2432 
2433 !Get the order of each the symmetry operation, as well as the maximal order
2434 !Also, examine whether each symmetry operation is the inversion, or a root
2435 !of the inversion (like -3)
2436 !Finally, decide which kind of point symmetry operation it is
2437  do isym=1,nsym
2438 
2439    trial(:,:)=identity(:,:)
2440    matrix(:,:)=symrel(:,:,isym)
2441    order(isym)=0
2442    root_invers(isym)=0
2443    do iorder=1,6
2444      trial=matmul(matrix,trial)
2445      if(sum((trial-identity)**2)==0)then
2446        order(isym)=iorder
2447        exit
2448      end if
2449      if(sum((trial+identity)**2)==0)then
2450        root_invers(isym)=iorder
2451        if(iorder==1)inversion=isym
2452      end if
2453    end do
2454    if(order(isym)==0)then
2455      write(message, '(a,i0,a)' )' The symmetry operation number',isym,' is not a root of unity'
2456      ABI_BUG(message)
2457    end if
2458 
2459 !  determinant, order and root_invers are enough to determine the
2460 !  kind of symmetry operation
2461    ptsym(isym)='no'
2462    select case(order(isym))
2463    case(1)
2464      ptsym(isym)=' 1' ; n_axes(1)=n_axes(1)+1
2465    case(2)
2466      if(determinant(isym)== 1)then
2467        ptsym(isym)=' 2' ; n_axes(2)=n_axes(2)+1
2468      else if(determinant(isym)==-1 .and. root_invers(isym)==1)then
2469        ptsym(isym)='-1' ; n_axes(-1)=n_axes(-1)+1
2470      else if(determinant(isym)==-1 .and. root_invers(isym)==0)then
2471        ptsym(isym)='-2' ; n_axes(-2)=n_axes(-2)+1
2472      end if
2473    case(3)
2474      ptsym(isym)=' 3' ; n_axes(3)=n_axes(3)+1
2475    case(4)
2476      if(determinant(isym)== 1)then
2477        ptsym(isym)=' 4' ; n_axes(4)=n_axes(4)+1
2478      else if(determinant(isym)==-1)then
2479        ptsym(isym)='-4' ; n_axes(-4)=n_axes(-4)+1
2480      end if
2481    case(6)
2482      if(determinant(isym)== 1)then
2483        ptsym(isym)=' 6' ; n_axes(6)=n_axes(6)+1
2484      else if(determinant(isym)==-1 .and. root_invers(isym)==3)then
2485        ptsym(isym)='-3' ; n_axes(-3)=n_axes(-3)+1
2486      else if(determinant(isym)==-1 .and. root_invers(isym)==0)then
2487        ptsym(isym)='-6' ; n_axes(-6)=n_axes(-6)+1
2488      end if
2489    end select
2490 
2491    if(ptsym(isym)=='no')then
2492      write(message,'(a,i4,a,a,a,i4,a,a,i4,a,a,i4)' )&
2493 &     'The symmetry operation number',isym,' could not be identified',ch10,&
2494 &     'order(isym)      =',order(isym),ch10,&
2495 &     'determinant(isym)=',determinant(isym),ch10,&
2496 &     'root_invers(isym)=',root_invers(isym)
2497      ABI_BUG(message)
2498    end if
2499 
2500  end do
2501 
2502  iholohedry=0
2503  if     (sum((n_axes-(/0,0,0,0,0,0, 0 ,1,0,0,0,0,0/))**2)==0)then
2504    ptgroup='    1' ; iholohedry=1
2505  else if(sum((n_axes-(/0,0,0,0,0,1, 0 ,1,0,0,0,0,0/))**2)==0)then
2506    ptgroup='   -1' ; iholohedry=1
2507 
2508  else if(sum((n_axes-(/0,0,0,0,0,0, 0 ,1,1,0,0,0,0/))**2)==0)then
2509    ptgroup='    2' ; iholohedry=2
2510  else if(sum((n_axes-(/0,0,0,0,1,0, 0 ,1,0,0,0,0,0/))**2)==0)then
2511    ptgroup='   -2' ; iholohedry=2
2512  else if(sum((n_axes-(/0,0,0,0,1,1, 0 ,1,1,0,0,0,0/))**2)==0)then
2513    ptgroup='  2/m' ; iholohedry=2
2514 
2515  else if(sum((n_axes-(/0,0,0,0,0,0, 0 ,1,3,0,0,0,0/))**2)==0)then
2516    ptgroup='  222' ; iholohedry=3
2517  else if(sum((n_axes-(/0,0,0,0,2,0, 0 ,1,1,0,0,0,0/))**2)==0)then
2518    ptgroup='  mm2' ; iholohedry=3
2519  else if(sum((n_axes-(/0,0,0,0,3,1, 0 ,1,3,0,0,0,0/))**2)==0)then
2520    ptgroup='  mmm' ; iholohedry=3
2521 
2522  else if(sum((n_axes-(/0,0,0,0,0,0, 0 ,1,1,0,2,0,0/))**2)==0)then
2523    ptgroup='    4' ; iholohedry=4
2524  else if(sum((n_axes-(/0,0,2,0,0,0, 0 ,1,1,0,0,0,0/))**2)==0)then
2525    ptgroup='   -4' ; iholohedry=4
2526  else if(sum((n_axes-(/0,0,2,0,1,1, 0 ,1,1,0,2,0,0/))**2)==0)then
2527    ptgroup='  4/m' ; iholohedry=4
2528  else if(sum((n_axes-(/0,0,0,0,0,0, 0 ,1,5,0,2,0,0/))**2)==0)then
2529    ptgroup='  422' ; iholohedry=4
2530  else if(sum((n_axes-(/0,0,0,0,4,0, 0 ,1,1,0,2,0,0/))**2)==0)then
2531    ptgroup='  4mm' ; iholohedry=4
2532  else if(sum((n_axes-(/0,0,2,0,2,0, 0 ,1,3,0,0,0,0/))**2)==0)then
2533    ptgroup=' -42m' ; iholohedry=4
2534  else if(sum((n_axes-(/0,0,2,0,5,1, 0 ,1,5,0,2,0,0/))**2)==0)then
2535    ptgroup='4/mmm' ; iholohedry=4
2536 
2537  else if(sum((n_axes-(/0,0,0,0,0,0, 0 ,1,0,2,0,0,0/))**2)==0)then
2538    ptgroup='    3' ; iholohedry=5
2539  else if(sum((n_axes-(/0,0,0,2,0,1, 0 ,1,0,2,0,0,0/))**2)==0)then
2540    ptgroup='   -3' ; iholohedry=5
2541  else if(sum((n_axes-(/0,0,0,0,0,0, 0 ,1,3,2,0,0,0/))**2)==0)then
2542    ptgroup='   32' ; iholohedry=5
2543  else if(sum((n_axes-(/0,0,0,0,3,0, 0 ,1,0,2,0,0,0/))**2)==0)then
2544    ptgroup='   3m' ; iholohedry=5
2545  else if(sum((n_axes-(/0,0,0,2,3,1, 0 ,1,3,2,0,0,0/))**2)==0)then
2546    ptgroup='  -3m' ; iholohedry=5
2547 
2548  else if(sum((n_axes-(/0,0,0,0,0,0, 0 ,1,1,2,0,0,2/))**2)==0)then
2549    ptgroup='    6' ; iholohedry=6
2550  else if(sum((n_axes-(/2,0,0,0,1,0, 0 ,1,0,2,0,0,0/))**2)==0)then
2551    ptgroup='   -6' ; iholohedry=6
2552  else if(sum((n_axes-(/2,0,0,2,1,1, 0 ,1,1,2,0,0,2/))**2)==0)then
2553    ptgroup='  6/m' ; iholohedry=6
2554  else if(sum((n_axes-(/0,0,0,0,0,0, 0 ,1,7,2,0,0,2/))**2)==0)then
2555    ptgroup='  622' ; iholohedry=6
2556  else if(sum((n_axes-(/0,0,0,0,6,0, 0 ,1,1,2,0,0,2/))**2)==0)then
2557    ptgroup='  6mm' ; iholohedry=6
2558  else if(sum((n_axes-(/2,0,0,0,4,0, 0 ,1,3,2,0,0,0/))**2)==0)then
2559    ptgroup=' -62m' ; iholohedry=6
2560  else if(sum((n_axes-(/2,0,0,2,7,1, 0 ,1,7,2,0,0,2/))**2)==0)then
2561    ptgroup='6/mmm' ; iholohedry=6
2562 
2563  else if(sum((n_axes-(/0,0,0,0,0,0, 0 ,1,3,8,0,0,0/))**2)==0)then
2564    ptgroup='   23' ; iholohedry=7
2565  else if(sum((n_axes-(/0,0,0,8,3,1, 0 ,1,3,8,0,0,0/))**2)==0)then
2566    ptgroup='  m-3' ; iholohedry=7
2567  else if(sum((n_axes-(/0,0,0,0,0,0, 0 ,1,9,8,6,0,0/))**2)==0)then
2568    ptgroup='  432' ; iholohedry=7
2569  else if(sum((n_axes-(/0,0,6,0,6,0, 0 ,1,3,8,0,0,0/))**2)==0)then
2570    ptgroup=' -43m' ; iholohedry=7
2571  else if(sum((n_axes-(/0,0,6,8,9,1, 0 ,1,9,8,6,0,0/))**2)==0)then
2572    ptgroup=' m-3m' ; iholohedry=7
2573 
2574  end if
2575 
2576  if(iholohedry==0)then
2577    ABI_ERROR_CLASS('Could not find the point group', "TolSymError")
2578  end if
2579 
2580 !DEBUG
2581 !do isym=1,nsym
2582 !write(std_out,'(a,3i5)' )&
2583 !&  ' symptgroup : isym,determinant,order=',isym,determinant(isym),order(isym)
2584 !end do
2585 
2586 !write(std_out,'(a,13i3)' )' symptgroup : n_axes(-6:6)=',n_axes(-6:6)
2587 !write(std_out,*)' iholohedry, ptgroup=',iholohedry,',',ptgroup
2588 !ENDDEBUG
2589 
2590  ABI_FREE(determinant)
2591  ABI_FREE(order)
2592  ABI_FREE(ptsym)
2593  ABI_FREE(root_invers)
2594 
2595 end subroutine symptgroup