LCOV - code coverage report
Current view: top level - src/41_geometry - m_spgdata.F90 (source / functions) Coverage Total Hit
Test: coverage.info Lines: 71.1 % 1298 923
Test Date: 2026-09-20 18:56:22 Functions: 100.0 % 5 5

            Line data    Source code
       1              : !!****m* ABINIT/m_spgdata
       2              : !! NAME
       3              : !!  m_spgdata
       4              : !!
       5              : !! FUNCTION
       6              : !!
       7              : !!
       8              : !! COPYRIGHT
       9              : !!  Copyright (C) 2000-2026 ABINIT group (RC, XG)
      10              : !!  This file is distributed under the terms of the
      11              : !!  GNU General Public License, see ~abinit/COPYING
      12              : !!  or http://www.gnu.org/copyleft/gpl.txt .
      13              : !!
      14              : !! SOURCE
      15              : 
      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
      34              : !!***
      35              : 
      36              :  public :: prtspgroup
      37              :  public :: spgdata
      38              :  public :: getptgroupma
      39              :  public :: symptgroup
      40              : 
      41              : contains
      42              : !!***
      43              : 
      44              : !!****f* m_spgdata/prtspgroup
      45              : !! NAME
      46              : !! prtspgroup
      47              : !!
      48              : !! FUNCTION
      49              : !! Print the space group (first, the dataset)
      50              : !!
      51              : !! INPUTS
      52              : !!  bravais(11)=characteristics of Bravais lattice (see symlatt.f)
      53              : !!  genafm(3)=generator of magnetic translations, in case of
      54              : !!            Shubnikov type IV magnetic groups (if zero, the group is
      55              : !!            not a type IV magnetic group)
      56              : !!  iimage (optional) = index of the image, for possible printing purpose
      57              : !!  iout=unit number of output file
      58              : !!  jdtset= actual number of the dataset to be read
      59              : !!  ptgroupma=magnetic point group, in case of
      60              : !!            Shubnikov type III magnetic groups (if zero, the group is
      61              : !!            not a type III magnetic group)
      62              : !!  spgroup=space group number
      63              : !!
      64              : !! OUTPUT
      65              : !!
      66              : !! SOURCE
      67              : 
      68        19629 : 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        19629 :  center=bravais(2)
     100        19629 :  iholohedry=bravais(1)
     101              : 
     102              : !Determine the magnetic type
     103        19629 :  shubnikov=1
     104        19629 :  if(ptgroupma/=0)shubnikov=3
     105        78516 :  if(sum(abs(genafm(:)))>tol6)then
     106         4660 :    shubnikov=4
     107              : !  Produce genafm in conventional axes,
     108         4660 :    rprimdconv(:,1)=bravais(3:5)
     109         4660 :    rprimdconv(:,2)=bravais(6:8)
     110         4660 :    rprimdconv(:,3)=bravais(9:11)
     111         3685 :    if(center/=0)rprimdconv(:,:)=rprimdconv(:,:)*half
     112         1165 :    call xred2xcart(1,rprimdconv,genafmconv,genafm)
     113              : !  Gives the associated translation, with components in the
     114              : !  interval ]-0.5,0.5] .
     115         4660 :    genafmconv(:)=genafmconv(:)-nint(genafmconv(:)-tol6)
     116         4660 :    do ii=1,3
     117         3495 :      genafmint(ii)=-1
     118         3495 :      if(abs(genafmconv(ii)-zero)<tol6)genafmint(ii)=0
     119         4660 :      if(abs(genafmconv(ii)-half)<tol6)genafmint(ii)=1
     120              :    end do
     121         4660 :    if(minval(genafmint(:))==-1)then
     122              :      write(message, '(3a,3es12.2,a)' )&
     123            0 : &     'The magnetic translation generator,',ch10,&
     124            0 : &     'genafmconv(:)=',genafmconv(:),&
     125            0 : &     'could not be identified.'
     126            0 :      ABI_BUG(message)
     127              :    end if
     128              :  end if
     129              : 
     130              : !Prepare the print : establish message header
     131        19629 :  if(jdtset/=0)then
     132        18302 :    if(present(iimage))then
     133          252 :      write(msg_header,'(a,i5,a,i5)')' DATASET',jdtset,' IMAGE NUMBER',iimage
     134              :    else
     135        18050 :      write(msg_header,'(a,i5)')' DATASET',jdtset
     136              :    endif
     137              :  else
     138         1327 :    if(present(iimage))then
     139           69 :      write(msg_header,'(a,i5)')' IMAGE NUMBER',iimage
     140              :    else
     141         1258 :      write(msg_header,'(a)')' Symmetries'
     142              :    endif
     143              :  endif
     144              : 
     145              : !Determine whether the space group can be printed
     146        19629 :  if(iholohedry<=0)then
     147          453 :    write(message,'(a,a)')trim(msg_header),' : the unit cell is not primitive'
     148          453 :    call wrtout(iout,message,'COLL')
     149        19176 :  else if(spgroup==0)then
     150           20 :    write(message,'(a,a)')trim(msg_header),' : the space group has not been recognized'
     151           20 :    call wrtout(iout,message,'COLL')
     152              :  else
     153              : 
     154              : !  ------------------------------------------------------------------
     155              : !  The space group can be printed
     156              : 
     157              : !  Determine the Bravais lattice
     158              : 
     159        19156 :    bravais_name=' (the Bravais lattice could not be identified)'
     160              : 
     161              :    if(iholohedry==7)then ! Cubic
     162              : 
     163         8478 :      if(center==0) then
     164         1413 :        if(shubnikov/=4)bravais_name='cP (primitive cubic)'
     165           54 :        if(shubnikov==4)bravais_name='cP_I (primitive cubic, inner magnetic, #33)'
     166         7065 :      else if(center==-1) then
     167          441 :        if(shubnikov/=4)bravais_name='cI (body-center cubic)' ! Only non-magnetic is possible
     168         6624 :      else if(center==-3) then
     169         6624 :        if(shubnikov/=4)bravais_name='cF (face-center cubic)'
     170           22 :        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         2450 :      if(center==0) then
     176         1981 :        if(shubnikov/=4)bravais_name='tP (primitive tetrag.)'
     177         1981 :        if(shubnikov==4)then
     178         1252 :          sumgen=sum(genafmint(:))
     179          313 :          if(sumgen==1)bravais_name='tP_c (primitive tetrag., c-magnetic, #23)'
     180          313 :          if(sumgen==2)bravais_name='tP_C (primitive tetrag., C-magnetic, #24)'
     181          313 :          if(sumgen==3)bravais_name='tP_I (primitive tetrag., centered magnetic, #25)'
     182              :        end if
     183          469 :      else if(center==-1)then
     184          469 :        if(shubnikov/=4)bravais_name='tI (body-center tetrag.)'
     185           38 :        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         2041 :      if(center==0) then
     191         1431 :        if(shubnikov/=4)bravais_name='oP (primitive ortho.)'
     192         1431 :        if(shubnikov==4)then
     193         1328 :          sumgen=sum(genafmint(:))
     194          332 :          if(sumgen==1)then
     195          136 :            if(genafmint(1)==1)bravais_name='oP_a (primitive ortho., a-magnetic, #11)'
     196          136 :            if(genafmint(2)==1)bravais_name='oP_b (primitive ortho., b-magnetic, #11)'
     197          136 :            if(genafmint(3)==1)bravais_name='oP_c (primitive ortho., c-magnetic, #11)'
     198          196 :          else if(sumgen==2)then
     199          136 :            if(genafmint(1)==0)bravais_name='oP_A (primitive ortho., A-magnetic, #12)'
     200          136 :            if(genafmint(2)==0)bravais_name='oP_B (primitive ortho., B-magnetic, #12)'
     201          136 :            if(genafmint(3)==0)bravais_name='oP_C (primitive ortho., C-magnetic, #12)'
     202           60 :          else if(sumgen==3)then
     203           60 :            bravais_name='oP_I (primitive ortho., centered magnetic, #13)'
     204              :          end if
     205              :        end if
     206          610 :      else if(center==-1)then
     207          226 :        if(shubnikov/=4)bravais_name='oI (body-center ortho.)'
     208           30 :        if(shubnikov==4)bravais_name='oI_c (body-center ortho., simple ortho. magn., #21)'
     209          384 :      else if(center==1 .or. center==2 .or. center==3)then
     210          327 :        if(shubnikov/=4) bravais_name='oC (1-face-center ortho.)'
     211          327 :        if(shubnikov==4)then
     212          360 :          sumgen=sum(genafmint(:))
     213           90 :          if(sumgen==1)then
     214              : !          One should work more to distinguish these magnetic groups
     215           60 :            bravais_name='oC_(a,b,c) (1-face-cent. ortho., 1-magn., #15 or 16)'
     216           30 :          else if(sumgen==2)then
     217           30 :            bravais_name='oC_A (1-face-centered ortho., 1-face-magnetic, #17)'
     218            0 :          else if(sumgen==3)then
     219            0 :            bravais_name='oC_c (C-face-centered ortho., c-magnetic, #15)'
     220              :          end if
     221              :        end if
     222           57 :      else if(center==-3)then
     223           57 :        if(shubnikov/=4)bravais_name='oF (face-center ortho.)'
     224           10 :        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         1209 :      if(shubnikov/=4)bravais_name='hP (primitive hexag.)'
     230           90 :      if(shubnikov==4)bravais_name='hP_c (primitive hexag., c-magnetic, #29)'
     231              : 
     232              :    else if(iholohedry==5)then ! Rhombohedral
     233              : 
     234         1201 :      if(shubnikov/=4)bravais_name='hR (rhombohedral)'
     235           82 :      if(shubnikov==4)bravais_name='hR_I (rhombohedral, centered magnetic, #31)'
     236              : 
     237              :    else if(iholohedry==2)then ! Monoclinic
     238              : 
     239          717 :      if(center==0)then
     240          246 :        if(shubnikov/=4)bravais_name='mP (primitive monocl.)'
     241          246 :        if(shubnikov==4)then
     242          240 :          sumgen=sum(genafmint(:))
     243           60 :          if(sumgen==1)then
     244           38 :            if(genafmint(1)==1)bravais_name='mP_a (primitive monocl., a-magnetic, #5)'
     245           38 :            if(genafmint(2)==1)bravais_name='mP_b (primitive monocl., b-magnetic, #4)'
     246           38 :            if(genafmint(3)==1)bravais_name='mP_c (primitive monocl., c-magnetic, #5)'
     247           22 :          else if(sumgen==2)then
     248           22 :            if(genafmint(1)==0)bravais_name='mP_A (primitive monocl., A-magnetic, #6)'
     249           22 :            if(genafmint(2)==0)bravais_name='mP_B (primitive monocl., B-magnetic, #6)'
     250           22 :            if(genafmint(3)==0)bravais_name='mP_C (primitive monocl., C-magnetic, #6)'
     251              :          end if
     252              :        end if
     253          471 :      else if(center==3)then
     254          471 :        if(shubnikov/=4)bravais_name='mC (1-face-center monocl.)'
     255              :        if(shubnikov==4)then
     256           20 :          if(genafmint(3)==1)bravais_name='mC_c (C-face-center monocl., c-magnetic, #8)'
     257           20 :          if(genafmint(3)/=1)bravais_name='mC_a (C-face-center monocl., a-magnetic, #9)'
     258              :        end if
     259            0 :      else if(center==-3)then
     260            0 :        if(shubnikov/=4)bravais_name='(reduction of face-center)'
     261              :      end if
     262              : 
     263              :    else if(iholohedry==1)then ! Triclinic
     264              : 
     265         3060 :      if(shubnikov/=4)bravais_name='aP (primitive triclinic)'
     266            4 :      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        19156 :    spgaxor=1 ; spgorig=1
     272        19156 :    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        19156 :    if(shubnikov==1)then
     276              : 
     277        16348 :      write(message,'(5a,i3,a,a,a)' )trim(msg_header), &
     278        16348 : &     ' : space group ',trim(brvsb),trim(intsb),' (#',spgroup,')',&
     279        32696 : &     '; Bravais ',trim(bravais_name)
     280        16348 :      call wrtout(iout,message,'COLL')
     281              : 
     282         2808 :    else if(shubnikov==3)then
     283              : 
     284         1663 :      if(jdtset/=0 .or. present(iimage))then
     285         1657 :        write(message,'(2a)' )trim(msg_header),' : magnetic group, Shubnikov type III '
     286              :      else
     287            6 :        write(message,'(a)' )' Magnetic group, Shubnikov type III '
     288              :      end if
     289         1663 :      call wrtout(iout,message,'COLL')
     290              : 
     291              :      write(message,'(a,a,a,a,i3,a,a,a)' )&
     292         1663 : &     ' Fedorov space group ',trim(brvsb),trim(intsb),' (#',spgroup,')',&
     293         3326 : &     '; Bravais ',trim(bravais_name)
     294         1663 :      call wrtout(iout,message,'COLL')
     295              : 
     296         1663 :      call ptgmadata(ptgroupma,ptgrpmasb)
     297              : 
     298              :      write(message,'(3a,i3,a)' )&
     299         1663 : &     ' Magnetic point group ',trim(ptgrpmasb),' (#',ptgroupma,')'
     300         1663 :      call wrtout(iout,message,'COLL')
     301              : 
     302              :    else if(shubnikov==4)then
     303              : 
     304         1145 :      if(jdtset/=0 .or. present(iimage))then
     305         1124 :        write(message,'(2a)' )trim(msg_header),' : magnetic group, Shubnikov type IV '
     306              :      else
     307           21 :        write(message,'(a)' )' Magnetic group, Shubnikov type IV '
     308              :      end if
     309         1145 :      call wrtout(iout,message,'COLL')
     310              : 
     311              :      write(message,'(a,a,a,a,i3,a)' )&
     312         1145 : &     ' Fedorov space group ',trim(brvsb),trim(intsb),' (#',spgroup,')'
     313         1145 :      call wrtout(iout,message,'COLL')
     314              : 
     315              :      write(message,'(2a)' )&
     316         1145 : &     ' Magnetic Bravais lattice ',trim(bravais_name)
     317         1145 :      call wrtout(iout,message,'COLL')
     318              : 
     319              :    end if
     320              :  end if
     321              : 
     322        19629 : end subroutine prtspgroup
     323              : !!***
     324              : 
     325              : !!****f* m_spgdata/spgdata
     326              : !! NAME
     327              : !! spgdata
     328              : !!
     329              : !! FUNCTION
     330              : !! Return point and space group data: Bravais lattice symbol,
     331              : !! international symbol, Schonflies symbol, multiplicity
     332              : !! The symbols are taken from  The International Tables for Crystallography
     333              : !! Volume A, 1983 Ed. Theo Hahn, D. Reidel Publishing Company and
     334              : !! The mathematical theory of symmetry in solids, Representation theory for point
     335              : !! groups and space groups, 1972, C.J. Bradley and A.P.
     336              : !! Cracknell, Clarendon Press, Oxford.
     337              : !!
     338              : !! INPUTS
     339              : !! spgroup = space group number
     340              : !! spgorig = space group origin
     341              : !! spgaxor = space group axis orientation
     342              : !!
     343              : !! OUTPUT
     344              : !! brvsb=Bravais lattice symbol (P, I, F, A, B, C, R)
     345              : !! intsb=international symbol (like m3m, 222, 2_12_12_1)
     346              : !! intsbl=international symbol in long format like P2_b = P121)
     347              : !! ptintsb=International point group symbol
     348              : !! ptschsb=Schoenflies point group symbol
     349              : !! sporder=multiplicity of the space group
     350              : !! schsb=Schoenflies symbol
     351              : !!
     352              : !! NOTES
     353              : !! brvsb, intsb, and schsb have been extensively checked, while
     354              : !! more checking should be done for the others
     355              : !! XG20160612 : in particular, at present it might be that spgaxor and spgorig are indetermined
     356              : !! (e.g. spgaxor=-1;spgorig=-1) at input.
     357              : !! When this has a bearing on some of the output variables (even brvsb or intsb !),
     358              : !! these are mentioned as being X, unknown, or to be determined.
     359              : !!
     360              : !! SOURCE
     361              : 
     362              : 
     363        32167 : 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        32167 :  intsbl="same"
     376              : !defaults for case spgroup is not well defined (eg chkprim 0)
     377        32167 :  brvsb="P"
     378        32167 :  intsb="1"
     379        32167 :  schsb="C1^1"
     380        32167 :  sporder=1
     381              : 
     382        36361 :  select case (spgroup)
     383              :  case(1)
     384         4194 :    brvsb="P"; intsb="1"; schsb="C1^1"; sporder=1
     385              :  case(2)
     386          265 :    brvsb="P"; intsb="-1"; schsb="Ci^1"; sporder=2
     387              :  case(3)
     388           30 :    brvsb="P"; intsb="2"; schsb="C2^1"; sporder=2
     389           80 :    select case (spgaxor)
     390              :    case(1)
     391           30 :      intsbl="P 2 _b = P 1 2 1"
     392              :    case(2)
     393            0 :      intsbl="P 2_a = P 2 1 1"
     394              :    case(3)
     395            0 :      intsbl="P 2 _c = P 1 1 2"
     396              :    case default
     397           30 :      intsbl="intsbl to be determined"
     398              :    end select
     399              :  case(4)
     400           20 :    brvsb="P"; intsb="2_1"; schsb="C2^2"; sporder=2
     401           99 :    select case (spgaxor)
     402              :    case(1)
     403           20 :      intsbl="P 2 1 _b = P 1 2_1 1"
     404              :    case(2)
     405            0 :      intsbl="P 2 1 _a = P 2_1 1 1"
     406              :    case(3)
     407            0 :      intsbl="P 2 1 _c = P 1 1 2_1"
     408              :    case default
     409           20 :      intsbl="intsbl to be determined"
     410              :    end select
     411              :  case(5)
     412           59 :    brvsb="C"; intsb="2"; schsb="C2^3"; sporder=2
     413          277 :    select case (spgaxor)
     414              :    case(1)
     415           59 :      intsbl="C 2 _b1 =  C 1 2 1"
     416              :    case(2)
     417            0 :      intsbl="C 2 _a1 =  B 2 1 1"
     418              :    case(3)
     419            0 :      intsbl="C 2 _a2 =  C 2 1 1"
     420              :    case(4)
     421            0 :      intsbl="C 2 _a3 =  I 2 1 1"
     422              :    case(5)
     423            0 :      intsbl="C 2 _b2 =  A 1 2 1"
     424              :    case(6)
     425            0 :      intsbl="C 2 _b3 =  I 1 2 1"
     426              :    case(7)
     427            0 :      intsbl="C 2 _c1 =  A 1 1 2"
     428              :    case(8)
     429            0 :      intsbl="C 2 _c2 =  B 1 1 2 = B 2"
     430              :    case(9)
     431            0 :      intsbl="C 2 _c3 =  I 1 1 2"
     432              :    case default
     433           59 :      intsbl="intsbl to be determined"
     434              :    end select
     435              :  case(6)
     436          159 :    brvsb="P"; intsb="m"; schsb="Cs^1"; sporder=2
     437          346 :    select case (spgaxor)
     438              :    case(1)
     439          159 :      intsbl="P m _b = P 1 m 1"
     440              :    case(2)
     441            0 :      intsbl="P m _a = P m 1 1"
     442              :    case(3)
     443            0 :      intsbl="P m _c = P 1 1 m"
     444              :    case default
     445          159 :      intsbl="intsbl to be determined"
     446              :    end select
     447              :  case(7)
     448           28 :    brvsb="P"; intsb="c"; schsb="Cs^2"; sporder=2
     449          571 :    select case (spgaxor)
     450              :    case(1)
     451           28 :      intsbl="P c _b1 = P 1 c 1"
     452              :    case(2)
     453            0 :      intsbl="P c _a1 = P b 1 1"
     454              :    case(3)
     455            0 :      intsbl="P c _a2 = P n 1 1"
     456              :    case(4)
     457            0 :      intsbl="P c _a3 = P c 1 1"
     458              :    case(5)
     459            0 :      intsbl="P c _b2 = P 1 n 1"
     460              :    case(6)
     461            0 :      intsbl="P c _b3 = P 1 a 1"
     462              :    case(7)
     463            0 :      intsbl="P c _c1 = P 1 1 a"
     464              :    case(8)
     465            0 :      intsbl="P c _c2 = P 1 1 n"
     466              :    case(9)
     467            0 :      intsbl="P c _c3 = P 1 1 b = P b"
     468              :    case default
     469           28 :      intsbl="intsbl to be determined"
     470              :    end select
     471              :  case(8)
     472          515 :    brvsb="C"; intsb="m"; schsb="Cs^3"; sporder=4
     473         1078 :    select case (spgaxor)
     474              :    case(1)
     475          515 :      intsbl="C m _b1 = C 1 m 1"
     476              :    case(2)
     477            0 :      intsbl="C m _a1 = B m 1 1"
     478              :    case(3)
     479            0 :      intsbl="C m _a2 = C m 1 1"
     480              :    case(4)
     481            0 :      intsbl="C m _a3 = I m 1 1"
     482              :    case(5)
     483            0 :      intsbl="C m _b2 = A 1 m 1"
     484              :    case(6)
     485            0 :      intsbl="C m _b3 = I 1 m 1"
     486              :    case(7)
     487            0 :      intsbl="C m _c1 = A 1 1 m"
     488              :    case(8)
     489            0 :      intsbl="C m _c2 = B 1 1 m = B m"
     490              :    case(9)
     491            0 :      intsbl="C m _c3 = I 1 1 m"
     492              :    case default
     493          515 :      intsbl="intsbl to be determined"
     494              :    end select
     495              :  case(9)
     496           48 :    brvsb="C"; intsb="c"; schsb="Cs^4"; sporder=4
     497          167 :    select case (spgaxor)
     498              :    case(1)
     499           48 :      intsbl="C c _b1 = C 1 c 1"
     500              :    case(2)
     501            0 :      intsbl="C c _a1 = B b 1 1"
     502              :    case(3)
     503            0 :      intsbl="C c _a2 = C n 1 1"
     504              :    case(4)
     505            0 :      intsbl="C c _a3 = I c 1 1"
     506              :    case(5)
     507            0 :      intsbl="C c _b2 = A 1 n 1"
     508              :    case(6)
     509            0 :      intsbl="C c _b3 = I 1 a 1"
     510              :    case(7)
     511            0 :      intsbl="C c _c1 = A 1 1 a"
     512              :    case(8)
     513            0 :      intsbl="C c _c2 = B 1 1 n"
     514              :    case(9)
     515            0 :      intsbl="C c _c3 = I 1 1 b"
     516              :    case default
     517           48 :      intsbl="intsbl to be determined"
     518              :    end select
     519              :  case(10)
     520           71 :    brvsb="P"; intsb="2/m"; schsb="C2h^1"; sporder=4
     521          176 :    select case (spgaxor)
     522              :    case(1)
     523           71 :      intsbl="P 2/m _b = P 1 2/m 1"
     524              :    case(2)
     525            0 :      intsbl="P 2/m _a = P 2/m 1 1"
     526              :    case(3)
     527            0 :      intsbl="P 2/m _c = P 1 1 2/m"
     528              :    case default
     529           71 :      intsbl="intsbl to be determined"
     530              :    end select
     531              :  case(11)
     532              :    brvsb="P"
     533           34 :    intsb="2_1/m"
     534           34 :    schsb="C2h^2"
     535           34 :    sporder=4
     536          283 :    select case (spgaxor)
     537              :    case(1)
     538           34 :      intsbl="P 2_1/m _b = P 1 2_1/m 1"
     539              :    case(2)
     540            0 :      intsbl="P 2_1/m _a = P 2_1/m 1 1"
     541              :    case(3)
     542            0 :      intsbl="P 2_1/m _c = P 1 1 2_1/m"
     543              :    case default
     544           34 :      intsbl="intsbl to be determined"
     545              :    end select
     546              :  case(12)
     547          215 :    brvsb="C"; intsb="2/m"; schsb="C2h^3"; sporder=8
     548          490 :    select case (spgaxor)
     549              :    case(1)
     550          215 :      intsbl="C 2/m _b1 = C 1 2/m 1"
     551              :    case(2)
     552            0 :      intsbl="C 2/m _a1 = B 2/m 1 1"
     553              :    case(3)
     554            0 :      intsbl="C 2/m _a2 = C 2/m 1 1"
     555              :    case(4)
     556            0 :      intsbl="C 2/m _a3 = I 2/m 1 1"
     557              :    case(5)
     558            0 :      intsbl="C 2/m _b2 = A 1 2/m 1"
     559              :    case(6)
     560            0 :      intsbl="C 2/m _b3 = I 1 2/m 1"
     561              :    case(7)
     562            0 :      intsbl="C 2/m _c1 = A 1 1 2/m"
     563              :    case(8)
     564            0 :      intsbl="C 2/m _c2 = B 1 1 2/m = B 2/m"
     565              :    case(9)
     566            0 :      intsbl="C 2/m _c3 = I 1 1 2/m"
     567              :    case default
     568          215 :      intsbl="intsbl to be determined"
     569              :    end select
     570              :  case(13)
     571           60 :    brvsb="P"; intsb="2/c"; schsb="C2h^4"; sporder=4
     572          166 :    select case (spgaxor)
     573              :    case(1)
     574           60 :      intsbl="P 2/c _b1 = P 1 2/c 1"
     575              :    case(2)
     576            0 :      intsbl="P 2/c _a1 = P 2/b 1 1"
     577              :    case(3)
     578            0 :      intsbl="P 2/c _a2 = P 2/n 1 1"
     579              :    case(4)
     580            0 :      intsbl="P 2/c _a3 = P 2/c 1 1"
     581              :    case(5)
     582            0 :      intsbl="P 2/c _b2 = P 1 2/n 1"
     583              :    case(6)
     584            0 :      intsbl="P 2/c _b3 = P 1 2/a 1"
     585              :    case(7)
     586            0 :      intsbl="P 2/c _c1 = P 1 1 2/a"
     587              :    case(8)
     588            0 :      intsbl="P 2/c _c2 = P 1 1 2/n"
     589              :    case(9)
     590            0 :      intsbl="P 2/c _c3 = P 1 1 2/b = P 2/b"
     591              :    case default
     592           60 :      intsbl="intsbl to be determined"
     593              :    end select
     594              :  case(14)
     595           46 :    brvsb="P"; intsb="2_1/c"; schsb="C2h^5"; sporder=4
     596          129 :    select case (spgaxor)
     597              :    case(1)
     598           46 :      intsbl="P 2_1/c _b1 = P 1 2_1/c 1"
     599              :    case(2)
     600            0 :      intsbl="P 2_1/c _a1 = P 2_1/b 1 1"
     601              :    case(3)
     602            0 :      intsbl="P 2_1/c _a2 = P 2_1/n 1 1"
     603              :    case(4)
     604            0 :      intsbl="P 2_1/c _a3 = P 2_1/c 1 1"
     605              :    case(5)
     606            0 :      intsbl="P 2_1/c _b2 = P 1 2_1/n 1"
     607              :    case(6)
     608            0 :      intsbl="P 2_1/c _b3 = P 1 2_1/a 1"
     609              :    case(7)
     610            0 :      intsbl="P 2_1/c _c1 = P 1 1 2_1/a"
     611              :    case(8)
     612            0 :      intsbl="P 2_1/c _c2 = P 1 1 2_1/n"
     613              :    case(9)
     614            0 :      intsbl="P 2_1/c _c3 = P 1 1 2_1/b = P 2_1/b"
     615              :    case default
     616           46 :      intsbl="intsbl to be determined"
     617              :    end select
     618              :  case(15)
     619           37 :    brvsb="C"; intsb="2/c"; schsb="C2h^6"; sporder=8
     620          106 :    select case (spgaxor)
     621              :    case(1)
     622           37 :      intsbl="C 2/c _b1 = C 1 2/c 1"
     623              :    case(2)
     624            0 :      intsbl="C 2/c _a1 = B 2/b 1 1"
     625              :    case(3)
     626            0 :      intsbl="C 2/c _a2 = C 2/n 1 1"
     627              :    case(4)
     628            0 :      intsbl="C 2/c _a3 = I 2/c 1 1"
     629              :    case(5)
     630            0 :      intsbl="C 2/c _b2 = A 1 2/n 1"
     631              :    case(6)
     632            0 :      intsbl="C 2/c _b3 = I 1 2/a 1"
     633              :    case(7)
     634            0 :      intsbl="C 2/c _c1 = A 1 1 2/a"
     635              :    case(8)
     636            0 :      intsbl="C 2/c _c2 = B 1 1 2/n"
     637              :    case(9)
     638            0 :      intsbl="C 2/c _c3 = I 1 1 2/b"
     639              :    case default
     640           37 :      intsbl="intsbl to be determined"
     641              :    end select
     642              :  case(16)
     643           32 :    brvsb="P"; intsb="2 2 2"; schsb="D2^1"; sporder=4
     644              :  case(17)
     645           32 :    brvsb="P"; intsb="2 2 2_1"; schsb="D2^2"; sporder=4
     646           96 :    select case (spgaxor)
     647              :    case(1)
     648           32 :      intsbl="P 2 2 2_1"
     649              :    case(2)
     650            0 :      intsbl="P 2_1 2 2"
     651              :    case(3)
     652            0 :      intsbl="P 2 2_1 2"
     653              :    case default
     654           32 :      intsbl="intsbl to be determined"
     655              :    end select
     656              :  case(18)
     657           32 :    brvsb="P"; intsb="2_1 2_1 2"; schsb="D2^3"; sporder=4
     658           84 :    select case (spgaxor)
     659              :    case(1)
     660           32 :      intsbl="P 2_1 2_1 2"
     661              :    case(2)
     662            0 :      intsbl="P 2 2_1 2_1"
     663              :    case(3)
     664            0 :      intsbl="P 2_1 2 2_1"
     665              :    case default
     666           32 :      intsbl="intsbl to be determined"
     667              :    end select
     668              :  case(19)
     669           20 :    brvsb="P"; intsb="2_1 2_1 2_1"; schsb="D2^4"; sporder=4
     670              :  case(20)
     671           24 :    schsb="D2^5"; sporder=8
     672           72 :    select case (spgaxor)
     673              :    case(1)
     674           24 :      brvsb="C"; intsb="2 2 2_1"
     675              :    case(2)
     676            0 :      brvsb="A"; intsb="2_1 2 2"
     677              :    case(3)
     678            0 :      brvsb="B"; intsb="2 2_1 2"
     679              :    case default
     680            0 :      brvsb="X"
     681           24 :      intsbl="intsbl to be determined"
     682              :    end select
     683              :  case(21)
     684           24 :    schsb="D2^6"; sporder=8
     685           70 :    select case (spgaxor)
     686              :    case(1)
     687           24 :      brvsb="C"; intsb="2 2 2"
     688              :    case(2)
     689            0 :      brvsb="A"; intsb="2 2 2"
     690              :    case(3)
     691            0 :      brvsb="B"; intsb="2 2 2"
     692              :    case default
     693            0 :      brvsb="X"
     694           24 :      intsbl="intsbl to be determined"
     695              :    end select
     696              :  case(22)
     697           22 :    brvsb="F"; intsb="2 2 2"; schsb="D2^7"; sporder=16
     698              :  case(23)
     699           12 :    brvsb="I"; intsb="2 2 2"; schsb="D2^8"; sporder=8
     700              :  case(24)
     701           12 :    brvsb="I"; intsb="2_1 2_1 2_1"; schsb="D2^9"; sporder=8
     702              :  case(25)
     703          309 :    brvsb="P"; schsb="C2v^1"; sporder=4
     704          666 :    select case (spgaxor)
     705              :    case(1)
     706          309 :      intsb="m m 2"
     707              :    case(2)
     708            0 :      intsb="2 m m"
     709              :    case(3)
     710            0 :      intsb="m 2 m"
     711              :    case default
     712          309 :      intsb="intsb unknown"
     713              :    end select
     714              :  case(26)
     715           48 :    brvsb="P"; schsb="C2v^2"; sporder=4
     716          128 :    select case (spgaxor)
     717              :    case(1)
     718           48 :      intsb="m c 2_1"
     719              :    case(2)
     720            0 :      intsb="2_1 m a"
     721              :    case(3)
     722            0 :      intsb="b 2_1 m"
     723              :    case(4)
     724            0 :      intsb="m 2_1 b"
     725              :    case(5)
     726            0 :      intsb="c m 2_1"
     727              :    case(6)
     728            0 :      intsb="2_1 a m"
     729              :    case default
     730           48 :      intsb="intsb unknown"
     731              :    end select
     732              :  case(27)
     733           32 :    brvsb="P"; schsb="C2v^3"; sporder=4
     734          108 :    select case (spgaxor)
     735              :    case(1)
     736           32 :      intsb="c c 2"
     737              :    case(2)
     738            0 :      intsb="2 a a"
     739              :    case(3)
     740            0 :      intsb="b 2 b"
     741              :    case default
     742           32 :      intsb="intsb unknown"
     743              :    end select
     744              :  case(28)
     745           44 :    brvsb="P"; schsb="C2v^4"; sporder=4
     746          132 :    select case (spgaxor)
     747              :    case(1)
     748           44 :      intsb="m a 2"
     749              :    case(2)
     750            0 :      intsb="2 m b"
     751              :    case(3)
     752            0 :      intsb="c 2 m"
     753              :    case(4)
     754            0 :      intsb="m 2 a"
     755              :    case(5)
     756            0 :      intsb="b m 2"
     757              :    case(6)
     758            0 :      intsb="2 c m"
     759              :    case default
     760           44 :      intsb="intsb unknown"
     761              :    end select
     762              :  case(29)
     763           44 :    brvsb="P"; schsb="C2v^5"; sporder=4
     764          132 :    select case (spgaxor)
     765              :    case(1)
     766           44 :      intsb="c a 2_1"
     767              :    case(2)
     768            0 :      intsb="2_1 a b"
     769              :    case(3)
     770            0 :      intsb="c 2_1 b"
     771              :    case(4)
     772            0 :      intsb="b 2_1 a"
     773              :    case(5)
     774            0 :      intsb="b c 2_1"
     775              :    case(6)
     776            0 :      intsb="2_1 c a"
     777              :    case default
     778           44 :      intsb="intsb unknown"
     779              :    end select
     780              :  case(30)
     781           44 :    brvsb="P"; schsb="C2v^6"; sporder=4
     782          132 :    select case (spgaxor)
     783              :    case(1)
     784           44 :      intsb="n c 2"
     785              :    case(2)
     786            0 :      intsb="2 n a"
     787              :    case(3)
     788            0 :      intsb="b 2 n"
     789              :    case(4)
     790            0 :      intsb="n 2 b"
     791              :    case(5)
     792            0 :      intsb="c n 2"
     793              :    case(6)
     794            0 :      intsb="2 a n"
     795              :    case default
     796           44 :      intsb="intsb unknown"
     797              :    end select
     798              :  case(31)
     799           44 :    brvsb="P"; schsb="C2v^7"; sporder=4
     800          120 :    select case (spgaxor)
     801              :    case(1)
     802           44 :      intsb="m n 2_1"
     803              :    case(2)
     804            0 :      intsb="2_1 m n"
     805              :    case(3)
     806            0 :      intsb="n 2_1 m"
     807              :    case(4)
     808            0 :      intsb="m 2_1 n"
     809              :    case(5)
     810            0 :      intsb="n m 2_1"
     811              :    case(6)
     812            0 :      intsb="2_1 n m"
     813              :    case default
     814           44 :      intsb="intsb unknown"
     815              :    end select
     816              :  case(32)
     817           32 :    brvsb="P"; schsb="C2v^8"; sporder=4
     818          108 :    select case (spgaxor)
     819              :    case(1)
     820           32 :      intsb="b a 2"
     821              :    case(2)
     822            0 :      intsb="2 c b"
     823              :    case(3)
     824            0 :      intsb="c 2 a"
     825              :    case default
     826           32 :      intsb="intsb unknown"
     827              :    end select
     828              :  case(33)
     829           44 :    brvsb="P"; schsb="C2v^9"; sporder=4
     830          120 :    select case (spgaxor)
     831              :    case(1)
     832           44 :      intsb="n a 2_1"
     833              :    case(2)
     834            0 :      intsb="2_1 n b"
     835              :    case(3)
     836            0 :      intsb="c 2_1 n"
     837              :    case(4)
     838            0 :      intsb="n 2_1 a"
     839              :    case(5)
     840            0 :      intsb="b n 2_1"
     841              :    case(6)
     842            0 :      intsb="2_1 c n"
     843              :    case default
     844           44 :      intsb="intsb unknown"
     845              :    end select
     846              :  case(34)
     847           32 :    brvsb="P"; schsb="C2v^10"; sporder=4
     848           92 :    select case (spgaxor)
     849              :    case(1)
     850           32 :      intsb="n n 2"
     851              :    case(2)
     852            0 :      intsb="2 n n"
     853              :    case(3)
     854            0 :      intsb="n 2 n"
     855              :    case default
     856           32 :      intsb="intsb unknown"
     857              :    end select
     858              :  case(35)
     859           28 :    schsb="C2v^11"; sporder=8
     860          105 :    select case (spgaxor)
     861              :    case(1)
     862           28 :      brvsb="C"; intsb="m m 2"
     863              :    case(2)
     864            0 :      brvsb="A"; intsb="2 m m"
     865              :    case(3)
     866            0 :      brvsb="B"; intsb="m 2 m"
     867              :    case default
     868            0 :      brvsb="X"
     869           28 :      intsb="intsb unknown"
     870              :    end select
     871              :  case(36)
     872           49 :    schsb="C2v^12"; sporder=8
     873          122 :    select case (spgaxor)
     874              :    case(1)
     875           49 :      brvsb="C"; intsb="m c 2_1"
     876              :    case(2)
     877            0 :      brvsb="A"; intsb="2_1 m a"
     878              :    case(3)
     879            0 :      brvsb="B"; intsb="b 2_1 m"
     880              :    case(4)
     881            0 :      brvsb="B"; intsb="m 2_1 b"
     882              :    case(5)
     883            0 :      brvsb="C"; intsb="c m 2_1"
     884              :    case(6)
     885            0 :      brvsb="A"; intsb="2_1 a m"
     886              :    case default
     887            0 :      brvsb="X"
     888           49 :      intsb="intsb unknown"
     889              :    end select
     890              :  case(37)
     891           24 :    schsb="C2v^13"; sporder=8
     892          161 :    select case (spgaxor)
     893              :    case(1)
     894           24 :      brvsb="C"; intsb="c c 2"
     895              :    case(2)
     896            0 :      brvsb="A"; intsb="2 a a"
     897              :    case(3)
     898            0 :      brvsb="B"; intsb="b 2 b"
     899              :    case default
     900            0 :      brvsb="X"
     901           24 :      intsb="intsb unknown"
     902              :    end select
     903              :  case(38)
     904          113 :    schsb="C2v^14"; sporder=8
     905          254 :    select case (spgaxor)
     906              :    case(1)
     907          113 :      brvsb="A"; intsb="m m 2"
     908              :    case(2)
     909            0 :      brvsb="B"; intsb="2 m m"
     910              :    case(3)
     911            0 :      brvsb="C"; intsb="m 2 m"
     912              :    case(4)
     913            0 :      brvsb="A"; intsb="m 2 m"
     914              :    case(5)
     915            0 :      brvsb="B"; intsb="m m 2"
     916              :    case(6)
     917            0 :      brvsb="C"; intsb="2 m m"
     918              :    case default
     919            0 :      brvsb="X"
     920          113 :      intsb="intsb unknown"
     921              :    end select
     922              :  case(39)
     923           28 :    schsb="C2v^15"; sporder=8
     924           84 :    select case (spgaxor)
     925              :    case(1)
     926           28 :      brvsb="A"; intsb="b m 2"
     927              :    case(2)
     928            0 :      brvsb="B"; intsb="2 c m"
     929              :    case(3)
     930            0 :      brvsb="C"; intsb="m 2 a"
     931              :    case(4)
     932            0 :      brvsb="A"; intsb="c 2 m"
     933              :    case(5)
     934            0 :      brvsb="B"; intsb="m a 2"
     935              :    case(6)
     936            0 :      brvsb="C"; intsb="2 m b"
     937              :    case default
     938            0 :      brvsb="X"
     939           28 :      intsb="intsb unknown"
     940              :    end select
     941              :  case(40)
     942           28 :    schsb="C2v^16"; sporder=8
     943           84 :    select case (spgaxor)
     944              :    case(1)
     945           28 :      brvsb="A"; intsb="m a 2"
     946              :    case(2)
     947            0 :      brvsb="B"; intsb="2 m b"
     948              :    case(3)
     949            0 :      brvsb="C"; intsb="c 2 m"
     950              :    case(4)
     951            0 :      brvsb="A"; intsb="m 2 a"
     952              :    case(5)
     953            0 :      brvsb="B"; intsb="b m 2"
     954              :    case(6)
     955            0 :      brvsb="C"; intsb="2 c m"
     956              :    case default
     957            0 :      brvsb="X"
     958           28 :      intsb="intsb unknown"
     959              :    end select
     960              :  case(41)
     961           28 :    schsb="C2v^17"; sporder=8
     962           72 :    select case (spgaxor)
     963              :    case(1)
     964           28 :      brvsb="A"; intsb="b a 2"
     965              :    case(2)
     966            0 :      brvsb="B"; intsb="2 c b"
     967              :    case(3)
     968            0 :      brvsb="C"; intsb="c 2 a"
     969              :    case(4)
     970            0 :      brvsb="A"; intsb="c 2 a"
     971              :    case(5)
     972            0 :      brvsb="B"; intsb="b a 2"
     973              :    case(6)
     974            0 :      brvsb="C"; intsb="2 c b"
     975              :    case default
     976            0 :      brvsb="X"
     977           28 :      intsb="intsb unknown"
     978              :    end select
     979              :  case(42)
     980           16 :    brvsb="F"; schsb="C2v^18"; sporder=16
     981           48 :    select case (spgaxor)
     982              :    case(1)
     983           16 :      intsb="m m 2"
     984              :    case(2)
     985            0 :      intsb="2 m m"
     986              :    case(3)
     987            0 :      intsb="m 2 m"
     988              :    case default
     989           16 :      intsb="intsb unknown"
     990              :    end select
     991              :  case(43)
     992           16 :    brvsb="F"; schsb="C2v^19"; sporder=16
     993          179 :    select case (spgaxor)
     994              :    case(1)
     995           16 :      intsb="d d 2"
     996              :    case(2)
     997            0 :      intsb="2 d d"
     998              :    case(3)
     999            0 :      intsb="d 2 d"
    1000              :    case default
    1001           16 :      intsb="intsb unknown"
    1002              :    end select
    1003              :  case(44)
    1004          147 :    brvsb="I"; schsb="C2v^20"; sporder=8
    1005          314 :    select case (spgaxor)
    1006              :    case(1)
    1007          147 :      intsb="m m 2"
    1008              :    case(2)
    1009            0 :      intsb="2 m m"
    1010              :    case(3)
    1011            0 :      intsb="m 2 m"
    1012              :    case default
    1013          147 :      intsb="intsb unknown"
    1014              :    end select
    1015              :  case(45)
    1016           20 :    brvsb="I"; schsb="C2v^21"; sporder=8
    1017           68 :    select case (spgaxor)
    1018              :    case(1)
    1019           20 :      intsb="b a 2"
    1020              :    case(2)
    1021            0 :      intsb="2 c b"
    1022              :    case(3)
    1023            0 :      intsb="c 2 a"
    1024              :    case default
    1025           20 :      intsb="intsb unknown"
    1026              :    end select
    1027              :  case(46)
    1028           28 :    brvsb="I"; schsb="C2v^22"; sporder=8
    1029          936 :    select case (spgaxor)
    1030              :    case(1)
    1031           28 :      intsb="m a 2"
    1032              :    case(2)
    1033            0 :      intsb="2 m b"
    1034              :    case(3)
    1035            0 :      intsb="c 2 m"
    1036              :    case(4)
    1037            0 :      intsb="m 2 a"
    1038              :    case(5)
    1039            0 :      intsb="b m 2"
    1040              :    case(6)
    1041            0 :      intsb="2 c m"
    1042              :    case default
    1043           28 :      intsb="intsb unknown"
    1044              :    end select
    1045              :  case(47)
    1046          880 :    brvsb="P"; intsb="m m m"; schsb="D2h^1"; sporder=8
    1047              :  case(48)
    1048           28 :    brvsb="P"; intsb="n n n"; schsb="D2h^2"; sporder=8
    1049          100 :    select case (spgorig)
    1050              :    case(1)
    1051           28 :      intsbl="n n n _1"
    1052              :    case(2)
    1053            0 :      intsbl="n n n _2"
    1054              :    case default
    1055           28 :      intsbl="intsbl to be determined"
    1056              :    end select
    1057              :  case(49)
    1058           44 :    brvsb="P"; schsb="D2h^3"; sporder=8
    1059          132 :    select case (spgaxor)
    1060              :    case(1)
    1061           44 :      intsb="c c m"
    1062              :    case(2)
    1063            0 :      intsb="m a a"
    1064              :    case(3)
    1065            0 :      intsb="b m b"
    1066              :    case default
    1067           44 :      intsb="intsb unknown"
    1068              :    end select
    1069              :  case(50)
    1070           44 :    brvsb="P"; schsb="D2h^4"; sporder=8
    1071          180 :    select case(spgorig)
    1072              :    case(1)
    1073           88 :      select case(spgaxor)
    1074              :      case(1)
    1075           44 :        intsb="b a n"; intsbl="b a n _1"
    1076              :      case(2)
    1077            0 :        intsb="n c b"; intsbl="n c b _1"
    1078              :      case(3)
    1079            0 :        intsb="c n a"; intsbl="c n a _1"
    1080              :      case default
    1081            0 :        intsb="intsb unknown"
    1082           44 :        intsbl="intsbl to be determined"
    1083              :      end select
    1084              :    case(2)
    1085            0 :      select case(spgaxor)
    1086              :      case(5)
    1087            0 :        intsb="b a n"; intsbl="b a n _2"
    1088              :      case(6)
    1089            0 :        intsb="n c b"; intsbl="n c b _2"
    1090              :      case(4)
    1091            0 :        intsb="c n a"; intsbl="c n a _2"
    1092              :      case default
    1093            0 :        intsb="intsb unknown"
    1094            0 :        intsbl="intsbl to be determined"
    1095              :      end select
    1096              :    case default
    1097            0 :      intsb="intsb unknown"
    1098           44 :      intsbl="intsbl to be determined"
    1099              :    end select
    1100              :  case(51)
    1101           92 :    brvsb="P"; schsb="D2h^5"; sporder=8
    1102          244 :    select case (spgaxor)
    1103              :    case(1)
    1104           92 :      intsb="m m a"
    1105              :    case(2)
    1106            0 :      intsb="b m m"
    1107              :    case(3)
    1108            0 :      intsb="m c m"
    1109              :    case(4)
    1110            0 :      intsb="m a m"
    1111              :    case(5)
    1112            0 :      intsb="m m b"
    1113              :    case(6)
    1114            0 :      intsb="c m m"
    1115              :    case default
    1116           92 :      intsb="intsb unknown"
    1117              :    end select
    1118              :  case(52)
    1119           60 :    brvsb="P"; schsb="D2h^6"; sporder=8
    1120          183 :    select case (spgaxor)
    1121              :    case(1)
    1122           60 :      intsb="n n a"
    1123              :    case(2)
    1124            0 :      intsb="b n n"
    1125              :    case(3)
    1126            0 :      intsb="n c n"
    1127              :    case(4)
    1128            0 :      intsb="n a n"
    1129              :    case(5)
    1130            0 :      intsb="n n b"
    1131              :    case(6)
    1132            0 :      intsb="c n n"
    1133              :    case default
    1134           60 :      intsb="intsb unknown"
    1135              :    end select
    1136              :  case(53)
    1137              :    brvsb="P"
    1138           63 :    schsb="D2h^7"
    1139           63 :    sporder=8
    1140          186 :    select case (spgaxor)
    1141              :    case(1)
    1142           63 :      intsb="m n a"
    1143              :    case(2)
    1144            0 :      intsb="b m n"
    1145              :    case(3)
    1146            0 :      intsb="n c m"
    1147              :    case(4)
    1148            0 :      intsb="m a n"
    1149              :    case(5)
    1150            0 :      intsb="n m b"
    1151              :    case(6)
    1152            0 :      intsb="c n m"
    1153              :    case default
    1154           63 :      intsb="intsb unknown"
    1155              :    end select
    1156              :  case(54)
    1157           60 :    brvsb="P"; schsb="D2h^8"; sporder=8
    1158          164 :    select case (spgaxor)
    1159              :    case(1)
    1160           60 :      intsb="c c a"
    1161              :    case(2)
    1162            0 :      intsb="b a a"
    1163              :    case(3)
    1164            0 :      intsb="b c b"
    1165              :    case(4)
    1166            0 :      intsb="b a b"
    1167              :    case(5)
    1168            0 :      intsb="c c b"
    1169              :    case(6)
    1170            0 :      intsb="c a a"
    1171              :    case default
    1172           60 :      intsb="intsb unknown"
    1173              :    end select
    1174              :  case(55)
    1175           44 :    brvsb="P"; schsb="D2h^9"; sporder=8
    1176          132 :    select case (spgaxor)
    1177              :    case(1)
    1178           44 :      intsb="b a m"
    1179              :    case(2)
    1180            0 :      intsb="m c b"
    1181              :    case(3)
    1182            0 :      intsb="c m a"
    1183              :    case default
    1184           44 :      intsb="intsb unknown"
    1185              :    end select
    1186              :  case(56)
    1187           44 :    brvsb="P"; schsb="D2h^10"; sporder=8
    1188          148 :    select case (spgaxor)
    1189              :    case(1)
    1190           44 :      intsb="c c n"
    1191              :    case(2)
    1192            0 :      intsb="n a a"
    1193              :    case(3)
    1194            0 :      intsb="b n b"
    1195              :    case default
    1196           44 :      intsb="intsb unknown"
    1197              :    end select
    1198              :  case(57)
    1199           60 :    brvsb="P"; schsb="D2h^11"; sporder=8
    1200          164 :    select case (spgaxor)
    1201              :    case(1)
    1202           60 :      intsb="b c m"
    1203              :    case(2)
    1204            0 :      intsb="m c a"
    1205              :    case(3)
    1206            0 :      intsb="b m a"
    1207              :    case(4)
    1208            0 :      intsb="c m b"
    1209              :    case(5)
    1210            0 :      intsb="c a m"
    1211              :    case(6)
    1212            0 :      intsb="m a b"
    1213              :    case default
    1214           60 :      intsb="intsb unknown"
    1215              :    end select
    1216              :  case(58)
    1217           44 :    brvsb="P"; schsb="D2h^12"; sporder=8
    1218          132 :    select case (spgaxor)
    1219              :    case(1)
    1220           44 :      intsb="n n m"
    1221              :    case(2)
    1222            0 :      intsb="m n n"
    1223              :    case(3)
    1224            0 :      intsb="n m n"
    1225              :    case default
    1226           44 :      intsb="intsb unknown"
    1227              :    end select
    1228              :  case(59)
    1229           44 :    brvsb="P"; schsb="D2h^13"; sporder=8
    1230           44 :    if (spgorig==1) then
    1231           88 :      select case (spgaxor)
    1232              :      case(1)
    1233           44 :        intsb="m m n"; intsbl="m m n _1"
    1234              :      case(2)
    1235            0 :        intsb="m m n"; intsbl="n m m _1"
    1236              :      case(3)
    1237            0 :        intsb="m m n"; intsbl="m n m _1"
    1238              :      case default
    1239            0 :        intsb="intsb unknown"
    1240           44 :        intsbl="intsbl to be determined"
    1241              :      end select
    1242            0 :    else if(spgorig==2) then
    1243            0 :      select case (spgaxor)
    1244              :      case(5)
    1245            0 :        intsb="m m n"; intsbl="m m n _2"
    1246              :      case(6)
    1247            0 :        intsb="m m n"; intsbl="n m m _2"
    1248              :      case(4)
    1249            0 :        intsb="m m n"; intsbl="m n m _2"
    1250              :      case default
    1251            0 :        intsb="intsb unknown"
    1252            0 :        intsbl="intsbl to be determined"
    1253              :      end select
    1254              :    else
    1255            0 :      intsb="intsb unknown"
    1256            0 :      intsbl="intsbl to be determined"
    1257              :    end if
    1258              :  case(60)
    1259           60 :    brvsb="P"; schsb="D2h^14"; sporder=8
    1260          148 :    select case (spgaxor)
    1261              :    case(1)
    1262           60 :      intsb="b c n"
    1263              :    case(2)
    1264            0 :      intsb="n c a"
    1265              :    case(3)
    1266            0 :      intsb="b n a"
    1267              :    case(4)
    1268            0 :      intsb="c n b"
    1269              :    case(5)
    1270            0 :      intsb="c a n"
    1271              :    case(6)
    1272            0 :      intsb="n a b"
    1273              :    case default
    1274           60 :      intsb="intsb unknown"
    1275              :    end select
    1276              :  case(61)
    1277           28 :    brvsb="P"; schsb="D2h^15"; sporder=8
    1278           28 :    if (spgaxor==1)then
    1279           28 :      intsb="b c a"
    1280            0 :    else if (spgaxor==2)then
    1281            0 :      intsb="c a b"
    1282              :    else
    1283            0 :      intsb="intsb unknown"
    1284              :    end if
    1285              :  case(62)
    1286           86 :    brvsb="P"; schsb="D2h^16"; sporder=8
    1287          220 :    select case (spgaxor)
    1288              :    case(1)
    1289           83 :      intsb="n m a"
    1290              :    case(2)
    1291            0 :      intsb="b n m"
    1292              :    case(3)
    1293            1 :      intsb="m c n"
    1294              :    case(4)
    1295            0 :      intsb="n a m"
    1296              :    case(5)
    1297            1 :      intsb="m n b"
    1298              :    case(6)
    1299            0 :      intsb="c m n"
    1300              :    case default
    1301           86 :      intsb="intsb unknown"
    1302              :    end select
    1303              :  case(63)
    1304           51 :    schsb="D2h^17"; sporder=16
    1305          146 :    select case (spgaxor)
    1306              :    case(1)
    1307           51 :      brvsb="C"; intsb="m c m"
    1308              :    case(2)
    1309            0 :      brvsb="A"; intsb="m m a"
    1310              :    case(3)
    1311            0 :      brvsb="B"; intsb="b m m"
    1312              :    case(4)
    1313            0 :      brvsb="B"; intsb="m m b"
    1314              :    case(5)
    1315            0 :      brvsb="C"; intsb="c m m"
    1316              :    case(6)
    1317            0 :      brvsb="A"; intsb="m a m"
    1318              :    case default
    1319            0 :      brvsb="X"
    1320           51 :      intsbl="intsbl unknown"
    1321              :    end select
    1322              :  case(64)
    1323           44 :    schsb="D2h^18"; sporder=16
    1324          198 :    select case (spgaxor)
    1325              :    case(1)
    1326           44 :      brvsb="C"; intsb="m c a"
    1327              :    case(2)
    1328            0 :      brvsb="A"; intsb="b m a"
    1329              :    case(3)
    1330            0 :      brvsb="B"; intsb="b c m"
    1331              :    case(4)
    1332            0 :      brvsb="B"; intsb="m a b"
    1333              :    case(5)
    1334            0 :      brvsb="C"; intsb="c m b"
    1335              :    case(6)
    1336            0 :      brvsb="A"; intsb="c a m"
    1337              :    case default
    1338            0 :      brvsb="X"
    1339           44 :      intsb="intsb unknown"
    1340              :    end select
    1341              :  case(65)
    1342          110 :    schsb="D2h^19"; sporder=16
    1343          256 :    select case (spgaxor)
    1344              :    case(1)
    1345          110 :      brvsb="C"; intsb="m m m"
    1346              :    case(2)
    1347            0 :      brvsb="A"; intsb="m m m"
    1348              :    case(3)
    1349            0 :      brvsb="B"; intsb="m m m"
    1350              :    case default
    1351            0 :      brvsb="X"
    1352          110 :      intsb="intsb unknown"
    1353              :    end select
    1354              :  case(66)
    1355           36 :    schsb="D2h^20"; sporder=16
    1356          108 :    select case (spgaxor)
    1357              :    case(1)
    1358           36 :      brvsb="C"; intsb="c c m"
    1359              :    case(2)
    1360            0 :      brvsb="A"; intsb="m a a"
    1361              :    case(3)
    1362            0 :      brvsb="B"; intsb="b m b"
    1363              :    case default
    1364            0 :      brvsb="X"
    1365           36 :      intsb="intsb unknown"
    1366              :    end select
    1367              :  case(67)
    1368           36 :    schsb="D2h^21"; sporder=16
    1369          120 :    select case (spgaxor)
    1370              :    case(1)
    1371           36 :      brvsb="C"; intsb="m m a"
    1372              :    case(2)
    1373            0 :      brvsb="A"; intsb="b m m"
    1374              :    case(3)
    1375            0 :      brvsb="B"; intsb="m c m"
    1376              :    case(4)
    1377            0 :      brvsb="B"; intsb="m a m"
    1378              :    case(5)
    1379            0 :      brvsb="C"; intsb="m m b"
    1380              :    case(6)
    1381            0 :      brvsb="A"; intsb="c m m"
    1382              :    case default
    1383            0 :      brvsb="X"
    1384           36 :      intsb="intsb unknown"
    1385              :    end select
    1386              :  case(68)
    1387           48 :    schsb="D2h^22"; sporder=16
    1388           48 :    if (spgorig==1) then
    1389           79 :      select case (spgaxor)
    1390              :      case(1)
    1391           37 :        brvsb="C"; intsb="c c a"; intsbl="c c a _1"
    1392              :      case(2)
    1393            1 :        brvsb="A"; intsb="b a a"; intsbl="b a a _1"
    1394              :      case(3)
    1395            1 :        brvsb="B"; intsb="b c b"; intsbl="b c b _1"
    1396              :      case(4)
    1397            1 :        brvsb="B"; intsb="b a b"; intsbl="b a b _1"
    1398              :      case(5)
    1399            1 :        brvsb="C"; intsb="c c b"; intsbl="c c b _1"
    1400              :      case(6)
    1401            1 :        brvsb="A"; intsb="c a a"; intsbl="c a a _1"
    1402              :      case default
    1403            0 :        brvsb="X"
    1404            0 :        intsb="intsb unknown"
    1405           42 :        intsbl="intsbl to be determined"
    1406              :      end select
    1407            6 :    else if(spgorig==2)then
    1408            7 :      select case (spgaxor)
    1409              :      case(1)
    1410            1 :        brvsb="C"; intsb="c c a"; intsbl="c c a _2"
    1411              :      case(2)
    1412            1 :        brvsb="A"; intsb="b a a"; intsbl="b a a _2"
    1413              :      case(3)
    1414            1 :        brvsb="B"; intsb="b c b"; intsbl="b c b _2"
    1415              :      case(4)
    1416            1 :        brvsb="B"; intsb="b a b"; intsbl="b a b _2"
    1417              :      case(5)
    1418            1 :        brvsb="C"; intsb="c c b"; intsbl="c c b _2"
    1419              :      case(6)
    1420            1 :        brvsb="A"; intsb="c a a"; intsbl="c a a _2"
    1421              :      case default
    1422            0 :        brvsb="X"
    1423            0 :        intsb="intsb unknown"
    1424            6 :        intsbl="intsbl to be determined"
    1425              :      end select
    1426              :    else
    1427            0 :      brvsb="X"
    1428            0 :      intsb="intsb unknown"
    1429            0 :      intsbl="intsbl to be determined"
    1430              :    end if
    1431              :  case(69)
    1432           35 :    brvsb="F"; intsb="m m m"; schsb="D2h^23"; sporder=32
    1433              :  case(70)
    1434           20 :    brvsb="F"; intsb="d d d"; schsb="D2h^24"; sporder=32
    1435           20 :    if (spgorig==1)then
    1436           20 :      intsbl="d d d _1"
    1437            0 :    else if (spgorig==2)then
    1438            0 :      intsbl="d d d _2"
    1439              :    else
    1440            0 :      intsbl="intsbl to be determined"
    1441              :    end if
    1442              :  case(71)
    1443           85 :    brvsb="I"; intsb="m m m"; schsb="D2h^25"; sporder=16
    1444              :  case(72)
    1445           32 :    brvsb="I"; schsb="D2h^26"; sporder=16
    1446           84 :    select case (spgaxor)
    1447              :    case(1)
    1448           32 :      intsb="b a m"
    1449              :    case(2)
    1450            0 :      intsb="m c b"
    1451              :    case(3)
    1452            0 :      intsb="c m a"
    1453              :    case default
    1454           32 :      intsb="intsb unknown"
    1455              :    end select
    1456              :  case(73)
    1457           20 :    brvsb="I"; schsb="D2h^27"; sporder=16
    1458           20 :    if (spgorig==1)then
    1459           20 :      intsb="b c a"
    1460            0 :    else if (spgorig==2)then
    1461            0 :      intsb="c a b"
    1462              :    else
    1463            0 :      intsb="intsb unknown"
    1464              :    end if
    1465              :  case(74)
    1466           54 :    brvsb="I"; schsb="D2h^28"; sporder=16
    1467          153 :    select case (spgaxor)
    1468              :    case(1)
    1469           54 :      intsb="m m a"
    1470              :    case(2)
    1471            0 :      intsb="b m m"
    1472              :    case(3)
    1473            0 :      intsb="m c m"
    1474              :    case(4)
    1475            0 :      intsb="m a m"
    1476              :    case(5)
    1477            0 :      intsb="m m b"
    1478              :    case(6)
    1479            0 :      intsb="c m m"
    1480              :    case default
    1481           54 :      intsb="intsb unknown"
    1482              :    end select
    1483              :  case(75)
    1484           45 :    brvsb="P"; intsb="4"; schsb="C4^1"; sporder=4
    1485              :  case(76)
    1486           23 :    brvsb="P"; intsb="4_1"; schsb="C4^2"; sporder=4
    1487              :  case(77)
    1488           20 :    brvsb="P"; intsb="4_2"; schsb="C4^3"; sporder=4
    1489              :  case(78)
    1490           20 :    brvsb="P"; intsb="4_3"; schsb="C4^4"; sporder=4
    1491              :  case(79)
    1492           12 :    brvsb="I"; intsb="4"; schsb="C4^5"; sporder=8
    1493              :  case(80)
    1494           12 :    brvsb="I"; intsb="4_1"; schsb="C4^6"; sporder=8
    1495              :  case(81)
    1496           20 :    brvsb="P"; intsb="-4"; schsb="S4^1"; sporder=4
    1497              :  case(82)
    1498           60 :    brvsb="I"; intsb="-4"; schsb="S4^2"; sporder=8
    1499              :  case(83)
    1500           59 :    brvsb="P"; intsb="4/m"; schsb="C4h^1"; sporder=8
    1501              :  case(84)
    1502           28 :    brvsb="P"; intsb="4_2/m"; schsb="C4h^2"; sporder=8
    1503              :  case(85)
    1504           28 :    brvsb="P"; intsb="4/n"; schsb="C4h^3"; sporder=8
    1505           28 :    if (spgorig==1)then
    1506           28 :      intsbl="4/n _1"
    1507            0 :    else if (spgorig==2)then
    1508            0 :      intsbl="4/n _2"
    1509              :    else
    1510            0 :      intsbl="intsbl to be determined"
    1511              :    end if
    1512              :  case(86)
    1513           28 :    brvsb="P"; intsb="4_2/n"; schsb="C4h^4"; sporder=8
    1514           28 :    if (spgorig==1)then
    1515           28 :      intsbl="4_2/n _1"
    1516            0 :    else if (spgorig==2)then
    1517            0 :      intsbl="4_2/n _2"
    1518              :    else
    1519            0 :      intsbl="intsbl to be determined"
    1520              :    end if
    1521              :  case(87)
    1522           24 :    brvsb="I"; intsb="4/m"; schsb="C4h^5"; sporder=16
    1523              :  case(88)
    1524           20 :    brvsb="I"; intsb="4_1/a"; schsb="C4h^6"; sporder=16
    1525           20 :    if (spgorig==1)then
    1526           20 :      intsbl="4_1/a _1"
    1527            0 :    else if (spgorig==2)then
    1528            0 :      intsbl="4_1/a _2"
    1529              :    else
    1530            0 :      intsbl="intsbl to be determined"
    1531              :    end if
    1532              :  case(89)
    1533           33 :    brvsb="P"; intsb="4 2 2"; schsb="D4^1"; sporder=8
    1534              :  case(90)
    1535           28 :    brvsb="P"; intsb="4 2_1 2"; schsb="D4^2"; sporder=8
    1536              :  case(91)
    1537           28 :    brvsb="P"; intsb="4_1 2 2"; schsb="D4^3"; sporder=8
    1538              :  case(92)
    1539           28 :    brvsb="P"; intsb="4_1 2_1 2"; schsb="D4^4"; sporder=8
    1540              :  case(93)
    1541           28 :    brvsb="P"; intsb="4_2 2 2"; schsb="D4^5"; sporder=8
    1542              :  case(94)
    1543           28 :    brvsb="P"; intsb="4_2 2_1 2"; schsb="D4^6"; sporder=8
    1544              :  case(95)
    1545           28 :    brvsb="P"; intsb="4_3 2 2"; schsb="D4^7"; sporder=8
    1546              :  case(96)
    1547           28 :    brvsb="P"; intsb="4_3 2_1 2"; schsb="D4^8"; sporder=8
    1548              :  case(97)
    1549           65 :    brvsb="I"; intsb="4 2 2"; schsb="D4^9"; sporder=16
    1550              :  case(98)
    1551           20 :    brvsb="I"; intsb="4_1 2 2"; schsb="D4^10"; sporder=16
    1552              :  case(99)
    1553          479 :    brvsb="P"; intsb="4 m m"; schsb="C4v^1"; sporder=8
    1554              :  case(100)
    1555           28 :    brvsb="P"; intsb="4 b m"; schsb="C4v^2"; sporder=8
    1556              :  case(101)
    1557           28 :    brvsb="P"; intsb="4_2 c m"; schsb="C4v^3"; sporder=8
    1558              :  case(102)
    1559           28 :    brvsb="P"; intsb="4_2 n m"; schsb="C4v^4"; sporder=8
    1560              :  case(103)
    1561           28 :    brvsb="P"; intsb="4 c c"; schsb="C4v^5"; sporder=8
    1562              :  case(104)
    1563           28 :    brvsb="P"; intsb="4 n c"; schsb="C4v^6"; sporder=8
    1564              :  case(105)
    1565           28 :    brvsb="P"; intsb="4_2 m c"; schsb="C4v^7"; sporder=8
    1566              :  case(106)
    1567           28 :    brvsb="P"; intsb="4_2 b c"; schsb="C4v^8"; sporder=8
    1568              :  case(107)
    1569           20 :    brvsb="I"; intsb="4 m m"; schsb="C4v^9"; sporder=16
    1570              :  case(108)
    1571           20 :    brvsb="I"; intsb="4 c m"; schsb="C4v^10"; sporder=16
    1572              :  case(109)
    1573           20 :    brvsb="I"; intsb="4_1 m d"; schsb="C4v^11"; sporder=16
    1574              :  case(110)
    1575           20 :    brvsb="I"; intsb="4_1 c d"; schsb="C4v^12"; sporder=16
    1576              :  case(111)
    1577           28 :    brvsb="P"; intsb="-4 2 m"; schsb="D2d^1"; sporder=8
    1578              :  case(112)
    1579           28 :    brvsb="P"; intsb="-4 2 c"; schsb="D2d^2"; sporder=8
    1580              :  case(113)
    1581           28 :    brvsb="P"; intsb="-4 2_1 m"; schsb="D2d^3"; sporder=8
    1582              :  case(114)
    1583           28 :    brvsb="P"; intsb="-4 2_1 c"; schsb="D2d^4"; sporder=8
    1584              :  case(115)
    1585           28 :    brvsb="P"; intsb="-4 m 2"; schsb="D2d^5"; sporder=8
    1586              :  case(116)
    1587           28 :    brvsb="P"; intsb="-4 c 2"; schsb="D2d^6"; sporder=8
    1588              :  case(117)
    1589           28 :    brvsb="P"; intsb="-4 b 2"; schsb="D2d^7"; sporder=8
    1590              :  case(118)
    1591           28 :    brvsb="P"; intsb="-4 n 2"; schsb="D2d^8"; sporder=8
    1592              :  case(119)
    1593           20 :    brvsb="I"; intsb="-4 m 2"; schsb="D2d^9"; sporder=16
    1594              :  case(120)
    1595           20 :    brvsb="I"; intsb="-4 c 2"; schsb="D2d^10"; sporder=16
    1596              :  case(121)
    1597           29 :    brvsb="I"; intsb="-4 2 m"; schsb="D2d^11"; sporder=16
    1598              :  case(122)
    1599           20 :    brvsb="I"; intsb="-4 2 d"; schsb="D2d^12"; sporder=16
    1600              :  case(123)
    1601         1426 :    brvsb="P"; intsb="4/m m m"; schsb="D4h^1"; sporder=16
    1602              :  case(124)
    1603           44 :    brvsb="P"; intsb="4/m c c"; schsb="D4h^2"; sporder=16
    1604              :  case(125)
    1605           44 :    brvsb="P"; intsb="4/n b m"; schsb="D4h^3"; sporder=16
    1606           44 :    if (spgorig==1)then
    1607           44 :      intsbl="4/n b m _1"
    1608            0 :    else if (spgorig==2)then
    1609            0 :      intsbl="4/n b m _2"
    1610              :    else
    1611            0 :      intsbl="intsbl to be determined"
    1612              :    end if
    1613              :  case(126)
    1614           44 :    brvsb="P"; intsb="4/n n c"; schsb="D4h^4"; sporder=16
    1615           44 :    if (spgorig==1)then
    1616           44 :      intsbl="4/n n c _1"
    1617            0 :    else if (spgorig==2)then
    1618            0 :      intsbl="4/n n c _2"
    1619              :    else
    1620            0 :      intsbl="intsbl to be determined"
    1621              :    end if
    1622              :  case(127)
    1623           44 :    brvsb="P"; intsb="4/m b m"; schsb="D4h^5"; sporder=16
    1624              :  case(128)
    1625           44 :    brvsb="P"; intsb="4/m n c"; schsb="D4h^6"; sporder=16
    1626              :  case(129)
    1627           89 :    brvsb="P"; intsb="4/n m m"; schsb="D4h^7"; sporder=16
    1628           89 :    if (spgorig==1)then
    1629           89 :      intsbl="4/n m m _1"
    1630            0 :    else if (spgorig==2)then
    1631            0 :      intsbl="4/n m m _2"
    1632              :    else
    1633            0 :      intsbl="intsbl to be determined"
    1634              :    end if
    1635              :  case(130)
    1636           44 :    brvsb="P"; intsb="4/n c c"; schsb="D4h^8"; sporder=16
    1637           44 :    if (spgorig==1)then
    1638           44 :      intsbl="4/n c c _1"
    1639            0 :    else if (spgorig==2) then
    1640            0 :      intsbl="4/n c c _2"
    1641              :    else
    1642            0 :      intsbl="intsbl to be determined"
    1643              :    end if
    1644              :  case(131)
    1645           44 :    brvsb="P"; intsb="4_2/m m c"; schsb="D4h^9"; sporder=16
    1646              :  case(132)
    1647           44 :    brvsb="P"; intsb="4_2/m c m"; schsb="D4h^10"; sporder=16
    1648              :  case(133)
    1649           44 :    brvsb="P"; intsb="4_2/n b c"; schsb="D4h^11"; sporder=16
    1650           44 :    if (spgorig==1)then
    1651           44 :      intsbl="4_2/n b c _1"
    1652            0 :    else if (spgorig==2)then
    1653            0 :      intsbl="4_2/n b c _2"
    1654              :    else
    1655            0 :      intsbl="intsbl to be determined"
    1656              :    end if
    1657              :  case(134)
    1658           44 :    brvsb="P"; intsb="4_2/n n m"; schsb="D4h^12"; sporder=16
    1659           44 :    if (spgorig==1)then
    1660           44 :      intsbl="4_2/n n m _1"
    1661            0 :    else if (spgorig==2)then
    1662            0 :      intsbl="4_2/n n m _2"
    1663              :    else
    1664            0 :      intsbl="intsbl to be determined"
    1665              :    end if
    1666              :  case(135)
    1667           44 :    brvsb="P"; intsb="4_2/m b c"; schsb="D4h^13"; sporder=16
    1668              :  case(136)
    1669          144 :    brvsb="P"; intsb="4_2/m n m"; schsb="D4h^14"; sporder=16
    1670              :  case(137)
    1671           44 :    brvsb="P"; intsb="4_2/n m c"; schsb="D4h^15"; sporder=16
    1672           44 :    if (spgorig==1)then
    1673           44 :      intsbl="4_2/n m c _1"
    1674            0 :    else if (spgorig==2)then
    1675            0 :      intsbl="4_2/n m c _2"
    1676              :    else
    1677            0 :      intsbl="intsbl to be determined"
    1678              :    end if
    1679              :  case(138)
    1680           44 :    brvsb="P"; intsb="4_2/n c m"; schsb="D4h^16"; sporder=16
    1681           44 :    if (spgorig==1)then
    1682           44 :      intsbl="4_2/n c m _1"
    1683            0 :    else if (spgorig==2)then
    1684            0 :      intsbl="4_2/n c m _2"
    1685              :    else
    1686            0 :      intsbl="intsbl to be determined"
    1687              :    end if
    1688              :  case(139)
    1689          316 :    brvsb="I"; intsb="4/m m m"; schsb="D4h^17"; sporder=32
    1690              :  case(140)
    1691           36 :    brvsb="I"; intsb="4/m c m"; schsb="D4h^18"; sporder=32
    1692              :  case(141)
    1693           88 :    brvsb="I"; intsb="4_1/a m d"; schsb="D4h^19"; sporder=32
    1694           88 :    if (spgorig==1)then
    1695           88 :      intsbl="4_1/a m d _1"
    1696            0 :    else if (spgorig==2)then
    1697            0 :      intsbl="4_1/a m d _2"
    1698              :    else
    1699            0 :      intsbl="intsbl to be determined"
    1700              :    end if
    1701              :  case(142)
    1702           36 :    brvsb="I"; intsb="4_1/a c d"; schsb="D4h^20"; sporder=32
    1703           36 :    if (spgorig==1)then
    1704           36 :      intsbl="4_1/a c d _1"
    1705            0 :    else if (spgorig==2)then
    1706            0 :      intsbl="4_1/a c d _2"
    1707              :    else
    1708            0 :      intsbl="intsbl to be determined"
    1709              :    end if
    1710              :  case(143)
    1711           21 :    brvsb="P"; intsb="3"; schsb="C3^1"; sporder=3
    1712              :  case(144)
    1713           12 :    brvsb="P"; intsb="3_1"; schsb="C3^2"; sporder=3
    1714              :  case(145)
    1715           12 :    brvsb="P"; intsb="3_2"; schsb="C3^3"; sporder=3
    1716              :  case(146)
    1717           19 :    brvsb="R"; intsb="3"; schsb="C3^4"
    1718           19 :    if (spgorig==1)then
    1719           19 :      intsbl="3 _H" ; sporder=9
    1720            0 :    else if (spgorig==2)then
    1721            0 :      intsbl="3 _R" ; sporder=3
    1722              :    else
    1723            0 :      intsbl="intsbl to be determined"
    1724              :    end if
    1725              :  case(147)
    1726           33 :    brvsb="P"; intsb="-3"; schsb="C3i^1"; sporder=6
    1727              :  case(148)
    1728           42 :    brvsb="R"; intsb="-3"; schsb="C3i^2"
    1729           42 :    if (spgorig==1) then
    1730           42 :      intsbl="-3 _H" ; sporder=9
    1731            0 :    else if (spgorig==2) then
    1732            0 :      intsbl="-3 _R" ; sporder=3
    1733              :    else
    1734            0 :      intsbl="intsbl to be determined"
    1735              :    end if
    1736              :  case(149)
    1737           48 :    brvsb="P"; intsb="3 1 2"; schsb="D3^1"; sporder=6
    1738              :  case(150)
    1739           33 :    brvsb="P"; intsb="3 2 1"; schsb="D3^2"; sporder=6
    1740              :  case(151)
    1741           24 :    brvsb="P"; intsb="3_1 1 2"; schsb="D3^3"; sporder=6
    1742              :  case(152)
    1743           51 :    brvsb="P"; intsb="3_1 2 1"; schsb="D3^4"; sporder=6
    1744              :  case(153)
    1745           21 :    brvsb="P"; intsb="3_2 1 2"; schsb="D3^5"; sporder=6
    1746              :  case(154)
    1747          241 :    brvsb="P"; intsb="3_2 2 1"; schsb="D3^6"; sporder=6
    1748              :  case(155)
    1749          163 :    brvsb="R"; intsb="3 2"; schsb="D3^7"
    1750          163 :    if (spgorig==1) then
    1751          163 :      intsbl="3 2 _H" ; sporder=18
    1752            0 :    else if (spgorig==2) then
    1753            0 :      intsbl="3 2 _R" ; sporder=6
    1754              :    else
    1755            0 :      intsbl="intsbl to be determined"
    1756              :    end if
    1757              :  case(156)
    1758           52 :    brvsb="P"; intsb="3 m 1"; schsb="C3v^1"; sporder=6
    1759              :  case(157)
    1760           24 :    brvsb="P"; intsb="3 1 m"; schsb="C3v^2"; sporder=6
    1761              :  case(158)
    1762           24 :    brvsb="P"; intsb="3 c 1"; schsb="C3v^3"; sporder=6
    1763              :  case(159)
    1764           21 :    brvsb="P"; intsb="3 1 c"; schsb="C3v^4"; sporder=6
    1765              :  case(160)
    1766          391 :    brvsb="R"; intsb="3 m"; schsb="C3v^5"
    1767          391 :    if (spgorig==1) then
    1768          391 :      intsbl="3 m _H" ; sporder=18
    1769            0 :    else if (spgorig==2) then
    1770            0 :      intsbl="3 m _R" ; sporder=6
    1771              :    else
    1772            0 :      intsbl="intsbl to be determined"
    1773              :    end if
    1774              :  case(161)
    1775           45 :    brvsb="R"; intsb="3 c"; schsb="C3v^6"
    1776           45 :    if (spgorig==1) then
    1777           45 :      intsbl="3 m _H" ; sporder=18
    1778            0 :    else if (spgorig==2)then
    1779            0 :      intsbl="3 m _R" ; sporder=6
    1780              :    else
    1781            0 :      intsbl="intsbl to be determined"
    1782              :    end if
    1783              :  case(162)
    1784           54 :    brvsb="P"; intsb="-3 1 m"; schsb="D3d^1"; sporder=12
    1785              :  case(163)
    1786           45 :    brvsb="P"; intsb="-3 1 c"; schsb="D3d^2"; sporder=12
    1787              :  case(164)
    1788          106 :    brvsb="P"; intsb="-3 m 1"; schsb="D3d^3"; sporder=12
    1789              :  case(165)
    1790           39 :    brvsb="P"; intsb="-3 c 1"; schsb="D3d^4"; sporder=12
    1791              :  case(166)
    1792         1273 :    brvsb="R"; intsb="-3 m"; schsb="D3d^5"
    1793         1273 :    if (spgorig==1) then
    1794         1273 :      intsbl="3 m _H"; sporder=18
    1795            0 :    else if (spgorig==2) then
    1796            0 :      intsbl="3 m _R"; sporder=6
    1797              :    else
    1798            0 :      intsbl="intsbl to be determined"
    1799              :    end if
    1800              :  case(167)
    1801           59 :    brvsb="R"; intsb="-3 c"; schsb="D3d^6"
    1802           59 :    if (spgorig==1) then
    1803           59 :      intsbl="-3 c _H"; sporder=36
    1804            0 :    else if (spgorig==2) then
    1805            0 :      intsbl="-3 c _R"; sporder=12
    1806              :    else
    1807            0 :      intsbl="intsbl to be determined"
    1808            0 :      sporder=-1
    1809              :    end if
    1810              :  case(168)
    1811           15 :    brvsb="P"; intsb="6"; schsb="C6^1"; sporder=6
    1812              :  case(169)
    1813           15 :    brvsb="P"; intsb="6_1"; schsb="C6^2"; sporder=6
    1814              :  case(170)
    1815           15 :    brvsb="P"; intsb="6_5"; schsb="C6^3"; sporder=6
    1816              :  case(171)
    1817           15 :    brvsb="P"; intsb="6_2"; schsb="C6^4"; sporder=6
    1818              :  case(172)
    1819           15 :    brvsb="P"; intsb="6_4"; schsb="C6^5"; sporder=6
    1820              :  case(173)
    1821           15 :    brvsb="P"; intsb="6_3"; schsb="C6^6"; sporder=6
    1822              :  case(174)
    1823           15 :    brvsb="P"; intsb="-6"; schsb="C3h^1"; sporder=6
    1824              :  case(175)
    1825           23 :    brvsb="P"; intsb="6/m"; schsb="C6h^1"; sporder=12
    1826              :  case(176)
    1827           23 :    brvsb="P"; intsb="6_3/m"; schsb="C6h^2"; sporder=12
    1828              :  case(177)
    1829           23 :    brvsb="P"; intsb="6 2 2"; schsb="D6^1"; sporder=12
    1830              :  case(178)
    1831           26 :    brvsb="P"; intsb="6_1 2 2"; schsb="D6^2"; sporder=12
    1832              :  case(179)
    1833           23 :    brvsb="P"; intsb="6_5 2 2"; schsb="D6^3"; sporder=12
    1834              :  case(180)
    1835           26 :    brvsb="P"; intsb="6_2 2 2"; schsb="D6^4"; sporder=12
    1836              :  case(181)
    1837           28 :    brvsb="P"; intsb="6_4 2 2"; schsb="D6^5"; sporder=12
    1838              :  case(182)
    1839           23 :    brvsb="P"; intsb="6_3 2 2"; schsb="D6^6"; sporder=12
    1840              :  case(183)
    1841           23 :    brvsb="P"; intsb="6 m m"; schsb="C6v^1"; sporder=12
    1842              :  case(184)
    1843           23 :    brvsb="P"; intsb="6 c c"; schsb="C6v^2"; sporder=12
    1844              :  case(185)
    1845           23 :    brvsb="P"; intsb="6_3 c m"; schsb="C6v^3"; sporder=12
    1846              :  case(186)
    1847          235 :    brvsb="P"; intsb="6_3 m c"; schsb="C6v^4"; sporder=12
    1848              :  case(187)
    1849          142 :    brvsb="P"; intsb="-6 m 2"; schsb="D3h^1"; sporder=12
    1850              :  case(188)
    1851           23 :    brvsb="P"; intsb="-6 c 2"; schsb="D3h^2"; sporder=12
    1852              :  case(189)
    1853           23 :    brvsb="P"; intsb="-6 2 m"; schsb="D3h^3"; sporder=12
    1854              :  case(190)
    1855           23 :    brvsb="P"; intsb="-6 2 c"; schsb="D3h^4"; sporder=12
    1856              :  case(191)
    1857          118 :    brvsb="P"; intsb="6/m m m"; schsb="D6h^1"; sporder=24
    1858              :  case(192)
    1859           39 :    brvsb="P"; intsb="6/m c c"; schsb="D6h^2"; sporder=24
    1860              :  case(193)
    1861           39 :    brvsb="P"; intsb="6_3/m c m"; schsb="D6h^3"; sporder=24
    1862              :  case(194)
    1863          171 :    brvsb="P"; intsb="6_3/m m c"; schsb="D6h^4"; sporder=24
    1864              :  case(195)
    1865            8 :    brvsb="P"; intsb="2 3"; schsb="T^1"; sporder=12
    1866              :  case(196)
    1867           36 :    brvsb="F"; intsb="2 3"; schsb="T^2"; sporder=48
    1868              :  case(197)
    1869            4 :    brvsb="I"; intsb="2 3"; schsb="T^3"; sporder=24
    1870              :  case(198)
    1871            8 :    brvsb="P"; intsb="2_1 3"; schsb="T^4"; sporder=12
    1872              :  case(199)
    1873            4 :    brvsb="I"; intsb="2_1 3"; schsb="T^5"; sporder=24
    1874              :  case(200)
    1875           16 :    brvsb="P"; intsb="m -3"; schsb="Th^1"; sporder=24
    1876              :  case(201)
    1877           27 :    brvsb="P"; intsb="n -3"; schsb="Th^2"; sporder=24
    1878           27 :    if (spgorig==1) then
    1879           26 :      intsbl="n -3 _1"
    1880            1 :    else if (spgorig==2)then
    1881            1 :      intsbl="n -3 _2"
    1882              :    else
    1883            0 :      intsbl="intsbl to be determined"
    1884              :    end if
    1885              :  case(202)
    1886           12 :    brvsb="F"; intsb="m -3"; schsb="Th^3"; sporder=96
    1887              :  case(203)
    1888           12 :    brvsb="F"; intsb="d -3"; schsb="Th^4"; sporder=96
    1889           12 :    if (spgorig==1) then
    1890           12 :      intsbl="d -3 _1"
    1891            0 :    else if (spgorig==2) then
    1892            0 :      intsbl="d -3 _2"
    1893              :    else
    1894            0 :      intsbl="intsbl to be determined"
    1895              :    end if
    1896              :  case(204)
    1897            8 :    brvsb="I"; intsb="m -3"; schsb="Th^5"; sporder=48
    1898              :  case(205)
    1899           12 :    brvsb="P"; intsb="a -3"; schsb="Th^6"; sporder=24
    1900              :  case(206)
    1901            8 :    brvsb="I"; intsb="a -3"; schsb="Th^7"; sporder=48
    1902              :  case(207)
    1903           14 :    brvsb="P"; intsb="4 3 2"; schsb="O^1"; sporder=24
    1904              :  case(208)
    1905           12 :    brvsb="P"; intsb="4_2 3 2"; schsb="O^2"; sporder=24
    1906              :  case(209)
    1907           32 :    brvsb="F"; intsb="4 3 2"; schsb="O^3"; sporder=96
    1908              :  case(210)
    1909           42 :    brvsb="F"; intsb="4_1 3 2"; schsb="O^4"; sporder=96
    1910              :  case(211)
    1911            8 :    brvsb="I"; intsb="4 3 2"; schsb="O^5"; sporder=48
    1912              :  case(212)
    1913           12 :    brvsb="P"; intsb="4_3 3 2"; schsb="O^6"; sporder=24
    1914              :  case(213)
    1915           12 :    brvsb="P"; intsb="4_1 3 2"; schsb="O^7"; sporder=24
    1916              :  case(214)
    1917            8 :    brvsb="I"; intsb="4_1 3 2"; schsb="O^8"; sporder=48
    1918              :  case(215)
    1919          126 :    brvsb="P"; intsb="-4 3 m"; schsb="Td^1"; sporder=24
    1920              :  case(216)
    1921         2663 :    brvsb="F"; intsb="-4 3 m"; schsb="Td^2"; sporder=96
    1922              :  case(217)
    1923            8 :    brvsb="I"; intsb="-4 3 m"; schsb="Td^3"; sporder=48
    1924              :  case(218)
    1925           12 :    brvsb="P"; intsb="-4 3 n"; schsb="Td^4"; sporder=24
    1926              :  case(219)
    1927           12 :    brvsb="F"; intsb="-4 3 c"; schsb="Td^5"; sporder=96
    1928              :  case(220)
    1929            8 :    brvsb="I"; intsb="-4 3 d"; schsb="Td^6"; sporder=48
    1930              :  case(221)
    1931         2138 :    brvsb="P"; intsb="m -3 m"; schsb="Oh^1"; sporder=48
    1932              :  case(222)
    1933           20 :    brvsb="P"; intsb="n -3 n"; schsb="Oh^2"; sporder=48
    1934           20 :    if (spgorig==1) then
    1935           20 :      intsbl="n -3 n _1"
    1936            0 :    else if (spgorig==2) then
    1937            0 :      intsbl="n -3 n _2"
    1938              :    else
    1939            0 :      intsbl="intsbl to be determined"
    1940              :    end if
    1941              :  case(223)
    1942           20 :    brvsb="P"; intsb="m -3 n"; schsb="Oh^3"; sporder=48
    1943              :  case(224)
    1944           25 :    brvsb="P"; intsb="n -3 m"; schsb="Oh^4"; sporder=48
    1945           25 :    if (spgorig==1) then
    1946           25 :      intsbl="n -3 m _1"
    1947            0 :    else if (spgorig==2)then
    1948            0 :      intsbl="n -3 m _2"
    1949              :    else
    1950            0 :      intsbl="intsbl to be determined"
    1951              :    end if
    1952              :  case(225)
    1953         2617 :    brvsb="F"; intsb="m -3 m"; schsb="Oh^5"; sporder=192
    1954              :  case(226)
    1955           20 :    brvsb="F"; intsb="m -3 c"; schsb="Oh^6"; sporder=192
    1956              :  case(227)
    1957         5511 :    brvsb="F"; intsb="d -3 m"; schsb="Oh^7"; sporder=192
    1958         5511 :    if (spgorig==1) then
    1959         5511 :      intsbl="d -3 m _1"
    1960            0 :    else if (spgorig==2) then
    1961            0 :      intsbl="d -3 m _2"
    1962              :    else
    1963            0 :      intsbl="intsbl to be determined"
    1964              :    end if
    1965              :  case(228)
    1966           20 :    brvsb="F"; intsb="d -3 c"; schsb="Oh^8"; sporder=192
    1967           20 :    if (spgorig==1) then
    1968           20 :      intsbl="d -3 c _1"
    1969            0 :    else if (spgorig==2) then
    1970            0 :      intsbl="d -3 c _2"
    1971              :    else
    1972            0 :      intsbl="intsbl to be determined"
    1973              :    end if
    1974              :  case(229)
    1975          675 :    brvsb="I"; intsb="m -3 m"; schsb="Oh^9"; sporder=96
    1976              :  case(230)
    1977        32167 :    brvsb="I"; intsb="a -3 d"; schsb="Oh^10"; sporder=96
    1978              :  end select
    1979              : 
    1980        32167 :  if(trim(intsbl)=="same")intsbl=intsb
    1981              : 
    1982              : !Assignment of the point group number
    1983        32167 :  if(spgroup<=2)then  ! Triclinic system
    1984         4194 :    select case(spgroup)
    1985              :    case (1)
    1986         4194 :      ptintsb="1"; ptschsb="C1"
    1987              :    case (2)
    1988         4476 :      ptintsb="-1"; ptschsb="Ci"
    1989              :    end select
    1990        27691 :  else if(spgroup<=15)then  ! Monoclinic system
    1991          109 :    select case(spgroup)
    1992              :    case (3:5)
    1993          109 :      ptintsb="2"; ptschsb="C2"
    1994              :    case (6:9)
    1995          750 :      ptintsb="m"; ptschsb="Cs = C1h "
    1996              :    case (10:15)
    1997         1322 :      ptintsb="2/m"; ptschsb="C2h"
    1998              :    end select
    1999        26369 :  else if(spgroup<=74)then  ! Orthorhombic system
    2000          210 :    select case(spgroup)
    2001              :    case (16:24)
    2002          210 :      ptintsb="2 2 2"; ptschsb="D2"
    2003              :    case (25:46)
    2004         1198 :      ptintsb="m m 2"; ptschsb="C2v"
    2005              :    case (47:74)
    2006         3660 :      ptintsb="m m m"; ptschsb="D2h"
    2007              :    end select
    2008        22709 :  else if(spgroup<=142)then  ! Tetragonal system
    2009          132 :    select case(spgroup)
    2010              :    case (75:80)
    2011          132 :      ptintsb="4"; ptschsb="C4"
    2012              :    case (81,82)
    2013           80 :      ptintsb="-4"; ptschsb="S4"
    2014              :    case (83:88)
    2015          187 :      ptintsb="4/m"; ptschsb="C4h"
    2016              :    case (89:98)
    2017          314 :      ptintsb="4 2 2"; ptschsb="D4"
    2018              :    case (99:110)
    2019          755 :      ptintsb="4 m m"; ptschsb="C4v"
    2020              :    case (111:114,121,122)
    2021          161 :      ptintsb="-4 2 m"; ptschsb="D2d^1"
    2022              :    case (115:120)
    2023          152 :      ptintsb="-4 m 2"; ptschsb="D2h^2"
    2024              :    case (123:142)
    2025         2707 :      ptintsb="4/m m m"
    2026         4488 :      ptschsb="D4h"
    2027              :    end select
    2028        18221 :  else if(spgroup<=167)then  ! Trigonal system
    2029           64 :    select case(spgroup)
    2030              :    case (143:146)
    2031           64 :      ptintsb="3"; ptschsb="C3"
    2032              :    case (147,148)
    2033           75 :      ptintsb="-3"; ptschsb="C3i"
    2034              :    case (149,151,153)
    2035           93 :      ptintsb="3 1 2"; ptschsb="D3^1"
    2036              :    case (150,152,154,155)
    2037          488 :      ptintsb="3 2 1"; ptschsb="D3^2"
    2038              :    case (156,158,160,161)
    2039          512 :      ptintsb="3 m 1"; ptschsb="C3v^1"
    2040              :    case (157,159)
    2041           45 :      ptintsb="3 1 m"; ptschsb="C3v^2"
    2042              :    case (162,163)
    2043           99 :      ptintsb="-3 1 m"; ptschsb="D3d^1"
    2044              :    case (164:167)
    2045         2853 :      ptintsb="-3 m 1"; ptschsb="D3d^2"
    2046              :    end select
    2047        15368 :  else if(spgroup<=194)then  ! Hexagonal system
    2048           90 :    select case(spgroup)
    2049              :    case (168:173)
    2050           90 :      ptintsb="6"; ptschsb="C6"
    2051              :    case (174)
    2052           15 :      ptintsb="-6"; ptschsb="C3h"
    2053              :    case (175,176)
    2054           46 :      ptintsb="6/m"; ptschsb="C6h"
    2055              :    case (177:182)
    2056          149 :      ptintsb="6 2 2"; ptschsb="D6"
    2057              :    case (183:186)
    2058          304 :      ptintsb="6 m m"; ptschsb="C6v"
    2059              :    case (187,188)
    2060          165 :      ptintsb="-6 m 2"; ptschsb="D3h^1"
    2061              :    case (189,190)
    2062           46 :      ptintsb="-6 2 m"; ptschsb="D3h^2"
    2063              :    case (191:194)
    2064         1182 :      ptintsb="6/m m m"; ptschsb="D6h"
    2065              :    end select
    2066              :  else                        ! Cubic system
    2067           60 :    select case(spgroup)
    2068              :    case (195:199)
    2069           60 :      ptintsb="2 3"; ptschsb="T"
    2070              :    case (200:206)
    2071           95 :      ptintsb="m 3"; ptschsb="Th"
    2072              :    case (207:214)
    2073          140 :      ptintsb="4 3 2"; ptschsb="O"
    2074              :    case (215:220)
    2075         2829 :      ptintsb="4 3 m"; ptschsb="Td"
    2076              :    case (221:230)
    2077        14186 :      ptintsb="m -3 m"; ptschsb="Oh"
    2078              :    end select
    2079              :  end if
    2080              : 
    2081        32167 : end subroutine spgdata
    2082              : !!***
    2083              : 
    2084              : 
    2085              : !!****f* m_spgdata/ptgmadata
    2086              : !! NAME
    2087              : !! ptgmadata
    2088              : !!
    2089              : !! FUNCTION
    2090              : !! Return magnetic point group symbol from the magnetic point group number
    2091              : !! The symbols and numbers are taken from  The Internationl Tables for Crystallography
    2092              : !! Volume A, 1983 Ed. Theo Hahn, D. Reidel Publishing Company and
    2093              : !! The mathematical theory of symmetry in solids, Representation theory for point
    2094              : !! groups and space groups, 1972, C.J. Bradley and A.P.
    2095              : !! Cracknell, Clarendon Press, Oxford.
    2096              : !!
    2097              : !! INPUTS
    2098              : !! ptgroupma = space group number
    2099              : !!
    2100              : !! OUTPUT
    2101              : !! ptgrpmasb= symbol
    2102              : !!
    2103              : !! SOURCE
    2104              : 
    2105         1663 : 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         1669 :  select case (ptgroupma)
    2115              :  case(1)
    2116            6 :    ptgrpmasb="-1'"
    2117              :  case(2)
    2118           28 :    ptgrpmasb="2'"
    2119              :  case(3)
    2120           44 :    ptgrpmasb="m'"
    2121              :  case(4)
    2122           16 :    ptgrpmasb="2/m'"
    2123              :  case(5)
    2124           12 :    ptgrpmasb="2'/m"
    2125              :  case(6)
    2126           27 :    ptgrpmasb="2'/m'"
    2127              :  case(7)
    2128           32 :    ptgrpmasb="2'2'2"
    2129              :  case(8)
    2130           44 :    ptgrpmasb="m'm'2"
    2131              :  case(9)
    2132           74 :    ptgrpmasb="m'm2'"
    2133              :  case(10)
    2134           56 :    ptgrpmasb="m'm'm'"
    2135              :  case(11)
    2136          125 :    ptgrpmasb="mmm'"
    2137              :  case(12)
    2138          120 :    ptgrpmasb="m'm'm"
    2139              :  case(13)
    2140           12 :    ptgrpmasb="4'"
    2141              :  case(14)
    2142            4 :    ptgrpmasb="-4'"
    2143              :  case(15)
    2144           50 :    ptgrpmasb="42'2'"
    2145              :  case(16)
    2146           40 :    ptgrpmasb="4'22'"
    2147              :  case(17)
    2148           12 :    ptgrpmasb="4/m'"
    2149              :  case(18)
    2150           12 :    ptgrpmasb="4'/m'"
    2151              :  case(19)
    2152           12 :    ptgrpmasb="4'/m"
    2153              :  case(20)
    2154           24 :    ptgrpmasb="4m'm'"
    2155              :  case(21)
    2156           48 :    ptgrpmasb="4'mm'"
    2157              :  case(22)
    2158           29 :    ptgrpmasb="-42'm'"
    2159              :  case(23)
    2160           24 :    ptgrpmasb="-4'2m'"
    2161              :  case(24)
    2162           24 :    ptgrpmasb="-4'm2'"
    2163              :  case(25)
    2164           41 :    ptgrpmasb="4/m'm'm'"
    2165              :  case(26)
    2166           93 :    ptgrpmasb="4/m'mm"
    2167              :  case(27)
    2168           83 :    ptgrpmasb="4'/mmm'"
    2169              :  case(28)
    2170           85 :    ptgrpmasb="4'/m'm'm"
    2171              :  case(29)
    2172           75 :    ptgrpmasb="4/mm'm'"
    2173              :  case(30)
    2174           76 :    ptgrpmasb="32'"
    2175              :  case(31)
    2176           12 :    ptgrpmasb="3m'"
    2177              :  case(32)
    2178            2 :    ptgrpmasb="-6'"
    2179              :  case(33)
    2180            8 :    ptgrpmasb="-6m'2'"
    2181              :  case(34)
    2182            8 :    ptgrpmasb="-6'm2'"
    2183              :  case(35)
    2184            8 :    ptgrpmasb="-6'm'2"
    2185              :  case(36)
    2186           12 :    ptgrpmasb="6'"
    2187              :  case(37)
    2188            8 :    ptgrpmasb="-3'"
    2189              :  case(38)
    2190           12 :    ptgrpmasb="-3m'"
    2191              :  case(39)
    2192           12 :    ptgrpmasb="-3'm"
    2193              :  case(40)
    2194           23 :    ptgrpmasb="-3'm'"
    2195              :  case(41)
    2196           12 :    ptgrpmasb="62'2'"
    2197              :  case(42)
    2198           24 :    ptgrpmasb="6'2'2"
    2199              :  case(43)
    2200            4 :    ptgrpmasb="6/m'"
    2201              :  case(44)
    2202            4 :    ptgrpmasb="6'/m'"
    2203              :  case(45)
    2204            4 :    ptgrpmasb="6'/m"
    2205              :  case(46)
    2206            8 :    ptgrpmasb="6m'm'"
    2207              :  case(47)
    2208           16 :    ptgrpmasb="6'm'm"
    2209              :  case(48)
    2210           16 :    ptgrpmasb="6'/mmm'"
    2211              :  case(49)
    2212           16 :    ptgrpmasb="6'/m'm'm"
    2213              :  case(50)
    2214            8 :    ptgrpmasb="6/m'm'm'"
    2215              :  case(51)
    2216            8 :    ptgrpmasb="6/m'mm"
    2217              :  case(52)
    2218            8 :    ptgrpmasb="6/mm'm'"
    2219              :  case(53)
    2220           14 :    ptgrpmasb="m'3"
    2221              :  case(54)
    2222           12 :    ptgrpmasb="-4'3m'"
    2223              :  case(55)
    2224           16 :    ptgrpmasb="4'32'"
    2225              :  case(56)
    2226           20 :    ptgrpmasb="m'3m'"
    2227              :  case(57)
    2228           20 :    ptgrpmasb="m'3m"
    2229              :  case(58)
    2230         1663 :    ptgrpmasb="m3m'"
    2231              :  end select
    2232              : 
    2233         1663 : end subroutine ptgmadata
    2234              : !!***
    2235              : 
    2236              : !!****f* m_spgdata/getptgroupma
    2237              : !! NAME
    2238              : !! getptgroupma
    2239              : !!
    2240              : !! FUNCTION
    2241              : !! Return magnetic point group number from the full point group number
    2242              : !! and the point group number of the non-magnetic symmetry operations.
    2243              : !! The (normal) point group numbers are taken from
    2244              : !! The International Tables for Crystallography
    2245              : !! Volume A, 1983 Ed. Theo Hahn, D. Reidel Publishing Company
    2246              : !! The magnetic point group number are taken from
    2247              : !! The mathematical theory of symmetry in solids, Representation theory for point
    2248              : !! groups and space groups, 1972, C.J. Bradley and A.P.
    2249              : !! Cracknell, Clarendon Press, Oxford.
    2250              : !! In particular, see table 7.1 of the latter reference
    2251              : !!
    2252              : !! INPUTS
    2253              : !! ptgroup = character(len=5) point group of all the symmetry operation
    2254              : !! ptgroupha = character(len=5) point group of the non-magnetic symmetry operation (halved point group)
    2255              : !!
    2256              : !! OUTPUT
    2257              : !! ptgroupma = magnetic point group number
    2258              : !!
    2259              : !! SOURCE
    2260              : 
    2261          898 : 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          898 :  ptgroupma=0
    2277            4 :  select case (ptgroup)
    2278              :  case("   -1")
    2279            4 :    ptgroupma=1
    2280              :  case("    2")
    2281           18 :    ptgroupma=2
    2282              :  case("   -2")
    2283           28 :    ptgroupma=3
    2284              :  case("  2/m")
    2285           34 :    if(ptgroupha=="    2")ptgroupma=4
    2286           34 :    if(ptgroupha=="   -2")ptgroupma=5
    2287           34 :    if(ptgroupha=="   -1")ptgroupma=6
    2288              :  case("  222")
    2289           17 :    ptgroupma=7
    2290              :  case("  mm2")
    2291           60 :    if(ptgroupha=="    2")ptgroupma=8
    2292           60 :    if(ptgroupha=="   -2")ptgroupma=9
    2293              :  case("  mmm")
    2294          153 :    if(ptgroupha=="  222")ptgroupma=10
    2295          153 :    if(ptgroupha=="  mm2")ptgroupma=11
    2296          153 :    if(ptgroupha=="  2/m")ptgroupma=12
    2297              :  case("    4")
    2298            6 :    ptgroupma=13
    2299              :  case("   -4")
    2300            2 :    ptgroupma=14
    2301              :  case("  422")
    2302           50 :    if(ptgroupha=="    4")ptgroupma=15
    2303           50 :    if(ptgroupha=="  222")ptgroupma=16
    2304              :  case("  4/m")
    2305           18 :    if(ptgroupha=="    4")ptgroupma=17
    2306           18 :    if(ptgroupha=="   -4")ptgroupma=18
    2307           18 :    if(ptgroupha=="  2/m")ptgroupma=19
    2308              :  case("  4mm")
    2309           36 :    if(ptgroupha=="    4")ptgroupma=20
    2310           36 :    if(ptgroupha=="  mm2")ptgroupma=21
    2311              :  case(" -42m")
    2312           40 :    if(ptgroupha=="   -4")ptgroupma=22
    2313           40 :    if(ptgroupha=="  222")ptgroupma=23
    2314           40 :    if(ptgroupha=="  mm2")ptgroupma=24
    2315              :  case("4/mmm")
    2316          212 :    if(ptgroupha=="  422")ptgroupma=25
    2317          212 :    if(ptgroupha=="  4mm")ptgroupma=26
    2318          212 :    if(ptgroupha=="  mmm")ptgroupma=27
    2319          212 :    if(ptgroupha==" -42m")ptgroupma=28
    2320          212 :    if(ptgroupha=="  4/m")ptgroupma=29
    2321              :  case("   32")
    2322           49 :    ptgroupma=30
    2323              :  case("   3m")
    2324            6 :    ptgroupma=31
    2325              :  case("   -6")
    2326            1 :    ptgroupma=32
    2327              :  case(" -62m")
    2328           12 :    if(ptgroupha=="   -6")ptgroupma=33
    2329           12 :    if(ptgroupha=="   3m")ptgroupma=34
    2330           12 :    if(ptgroupha=="   32")ptgroupma=35
    2331              :  case("    6")
    2332            6 :    ptgroupma=36
    2333              :  case("   -3")
    2334            5 :    ptgroupma=37
    2335              :  case("  -3m")
    2336           26 :    if(ptgroupha=="   -3")ptgroupma=38
    2337           26 :    if(ptgroupha=="   3m")ptgroupma=39
    2338           26 :    if(ptgroupha=="   32")ptgroupma=40
    2339              :  case("  622")
    2340           18 :    if(ptgroupha=="    6")ptgroupma=41
    2341           18 :    if(ptgroupha=="   32")ptgroupma=42
    2342              :  case("  6/m")
    2343            6 :    if(ptgroupha=="    6")ptgroupma=43
    2344            6 :    if(ptgroupha=="   -3")ptgroupma=44
    2345            6 :    if(ptgroupha=="   -6")ptgroupma=45
    2346              :  case("  6mm")
    2347           12 :    if(ptgroupha=="    6")ptgroupma=46
    2348           12 :    if(ptgroupha=="   3m")ptgroupma=47
    2349              :  case("6/mmm")
    2350           28 :    if(ptgroupha==" -62m")ptgroupma=48
    2351           28 :    if(ptgroupha=="  -3m")ptgroupma=49
    2352           28 :    if(ptgroupha=="  622")ptgroupma=50
    2353           28 :    if(ptgroupha=="  6mm")ptgroupma=51
    2354           28 :    if(ptgroupha=="  6/m")ptgroupma=52
    2355              :  case("  m-3")
    2356            7 :    ptgroupma=53
    2357              :  case(" -43m")
    2358            6 :    ptgroupma=54
    2359              :  case("  432")
    2360            8 :    ptgroupma=55
    2361              :  case(" m-3m")
    2362           30 :    if(ptgroupha=="  432")ptgroupma=56
    2363           30 :    if(ptgroupha==" -43m")ptgroupma=57
    2364          928 :    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          898 : end subroutine getptgroupma
    2373              : !!***
    2374              : 
    2375              : !!****f* m_spgdata/symptgroup
    2376              : !! NAME
    2377              : !! symptgroup
    2378              : !!
    2379              : !! FUNCTION
    2380              : !! Derive the name of the point group (+holohedry), from symrel.
    2381              : !! Warning: might have to change the holohedry hR to hP, if hexagonal axes
    2382              : !!
    2383              : !! INPUTS
    2384              : !! nsym=actual number of symmetries
    2385              : !! symrel(3,3,nsym)=nsym symmetry operations in real space in terms of primitive translations
    2386              : !!
    2387              : !! OUTPUT
    2388              : !! iholohedry=holohedry number
    2389              : !! ptgroup=symmetry point group
    2390              : !!
    2391              : !! SOURCE
    2392              : 
    2393        11936 : 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        11936 :  integer,allocatable :: determinant(:),order(:),root_invers(:)
    2410        11936 :  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        11936 :  identity(:,:)=0
    2422        11936 :  identity(1,1)=1 ; identity(2,2)=1 ; identity(3,3)=1
    2423        11936 :  n_axes(:)=0
    2424              : 
    2425        35808 :  ABI_MALLOC(determinant,(nsym))
    2426        23872 :  ABI_MALLOC(order,(nsym))
    2427        23872 :  ABI_MALLOC(ptsym,(nsym))
    2428        23872 :  ABI_MALLOC(root_invers,(nsym))
    2429              : 
    2430              : !Get the determinant
    2431        11936 :  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       298545 :  do isym=1,nsym
    2438              : 
    2439       286609 :    trial(:,:)=identity(:,:)
    2440      3725917 :    matrix(:,:)=symrel(:,:,isym)
    2441       286609 :    order(isym)=0
    2442       286609 :    root_invers(isym)=0
    2443       892854 :    do iorder=1,6
    2444     35714160 :      trial=matmul(matrix,trial)
    2445     11607102 :      if(sum((trial-identity)**2)==0)then
    2446       286609 :        order(isym)=iorder
    2447       286609 :        exit
    2448              :      end if
    2449      7881185 :      if(sum((trial+identity)**2)==0)then
    2450        44390 :        root_invers(isym)=iorder
    2451        44390 :        if(iorder==1)inversion=isym
    2452              :      end if
    2453              :    end do
    2454       286609 :    if(order(isym)==0)then
    2455            0 :      write(message, '(a,i0,a)' )' The symmetry operation number',isym,' is not a root of unity'
    2456            0 :      ABI_BUG(message)
    2457              :    end if
    2458              : 
    2459              : !  determinant, order and root_invers are enough to determine the
    2460              : !  kind of symmetry operation
    2461       286609 :    ptsym(isym)='no'
    2462        11936 :    select case(order(isym))
    2463              :    case(1)
    2464        11936 :      ptsym(isym)=' 1' ; n_axes(1)=n_axes(1)+1
    2465              :    case(2)
    2466       123249 :      if(determinant(isym)== 1)then
    2467        56264 :        ptsym(isym)=' 2' ; n_axes(2)=n_axes(2)+1
    2468        66985 :      else if(determinant(isym)==-1 .and. root_invers(isym)==1)then
    2469         7156 :        ptsym(isym)='-1' ; n_axes(-1)=n_axes(-1)+1
    2470        59829 :      else if(determinant(isym)==-1 .and. root_invers(isym)==0)then
    2471        59829 :        ptsym(isym)='-2' ; n_axes(-2)=n_axes(-2)+1
    2472              :      end if
    2473              :    case(3)
    2474        47904 :      ptsym(isym)=' 3' ; n_axes(3)=n_axes(3)+1
    2475              :    case(4)
    2476        65206 :      if(determinant(isym)== 1)then
    2477        29912 :        ptsym(isym)=' 4' ; n_axes(4)=n_axes(4)+1
    2478        35294 :      else if(determinant(isym)==-1)then
    2479        35294 :        ptsym(isym)='-4' ; n_axes(-4)=n_axes(-4)+1
    2480              :      end if
    2481              :    case(6)
    2482       286609 :      if(determinant(isym)== 1)then
    2483          628 :        ptsym(isym)=' 6' ; n_axes(6)=n_axes(6)+1
    2484        37686 :      else if(determinant(isym)==-1 .and. root_invers(isym)==3)then
    2485        37234 :        ptsym(isym)='-3' ; n_axes(-3)=n_axes(-3)+1
    2486          452 :      else if(determinant(isym)==-1 .and. root_invers(isym)==0)then
    2487          452 :        ptsym(isym)='-6' ; n_axes(-6)=n_axes(-6)+1
    2488              :      end if
    2489              :    end select
    2490              : 
    2491       298545 :    if(ptsym(isym)=='no')then
    2492              :      write(message,'(a,i4,a,a,a,i4,a,a,i4,a,a,i4)' )&
    2493            0 :        'The symmetry operation number',isym,' could not be identified',ch10,&
    2494            0 :        'order(isym)      =',order(isym),ch10,&
    2495            0 :        'determinant(isym)=',determinant(isym),ch10,&
    2496            0 :        'root_invers(isym)=',root_invers(isym)
    2497            0 :      ABI_BUG(message)
    2498              :    end if
    2499              : 
    2500              :  end do
    2501              : 
    2502        11936 :  iholohedry=0
    2503       167104 :  if     (sum((n_axes-(/0,0,0,0,0,0, 0 ,1,0,0,0,0,0/))**2)==0)then
    2504         1333 :    ptgroup='    1' ; iholohedry=1
    2505       148442 :  else if(sum((n_axes-(/0,0,0,0,0,1, 0 ,1,0,0,0,0,0/))**2)==0)then
    2506          133 :    ptgroup='   -1' ; iholohedry=1
    2507              : 
    2508       146580 :  else if(sum((n_axes-(/0,0,0,0,0,0, 0 ,1,1,0,0,0,0/))**2)==0)then
    2509           85 :    ptgroup='    2' ; iholohedry=2
    2510       145390 :  else if(sum((n_axes-(/0,0,0,0,1,0, 0 ,1,0,0,0,0,0/))**2)==0)then
    2511          362 :    ptgroup='   -2' ; iholohedry=2
    2512       140322 :  else if(sum((n_axes-(/0,0,0,0,1,1, 0 ,1,1,0,0,0,0/))**2)==0)then
    2513          206 :    ptgroup='  2/m' ; iholohedry=2
    2514              : 
    2515       137438 :  else if(sum((n_axes-(/0,0,0,0,0,0, 0 ,1,3,0,0,0,0/))**2)==0)then
    2516           89 :    ptgroup='  222' ; iholohedry=3
    2517       136192 :  else if(sum((n_axes-(/0,0,0,0,2,0, 0 ,1,1,0,0,0,0/))**2)==0)then
    2518          369 :    ptgroup='  mm2' ; iholohedry=3
    2519       131026 :  else if(sum((n_axes-(/0,0,0,0,3,1, 0 ,1,3,0,0,0,0/))**2)==0)then
    2520          592 :    ptgroup='  mmm' ; iholohedry=3
    2521              : 
    2522       122738 :  else if(sum((n_axes-(/0,0,0,0,0,0, 0 ,1,1,0,2,0,0/))**2)==0)then
    2523           71 :    ptgroup='    4' ; iholohedry=4
    2524       121744 :  else if(sum((n_axes-(/0,0,2,0,0,0, 0 ,1,1,0,0,0,0/))**2)==0)then
    2525           48 :    ptgroup='   -4' ; iholohedry=4
    2526       121072 :  else if(sum((n_axes-(/0,0,2,0,1,1, 0 ,1,1,0,2,0,0/))**2)==0)then
    2527           89 :    ptgroup='  4/m' ; iholohedry=4
    2528       119826 :  else if(sum((n_axes-(/0,0,0,0,0,0, 0 ,1,5,0,2,0,0/))**2)==0)then
    2529           81 :    ptgroup='  422' ; iholohedry=4
    2530       118692 :  else if(sum((n_axes-(/0,0,0,0,4,0, 0 ,1,1,0,2,0,0/))**2)==0)then
    2531          271 :    ptgroup='  4mm' ; iholohedry=4
    2532       114898 :  else if(sum((n_axes-(/0,0,2,0,2,0, 0 ,1,3,0,0,0,0/))**2)==0)then
    2533           96 :    ptgroup=' -42m' ; iholohedry=4
    2534       113554 :  else if(sum((n_axes-(/0,0,2,0,5,1, 0 ,1,5,0,2,0,0/))**2)==0)then
    2535          953 :    ptgroup='4/mmm' ; iholohedry=4
    2536              : 
    2537       100212 :  else if(sum((n_axes-(/0,0,0,0,0,0, 0 ,1,0,2,0,0,0/))**2)==0)then
    2538           84 :    ptgroup='    3' ; iholohedry=5
    2539        99036 :  else if(sum((n_axes-(/0,0,0,2,0,1, 0 ,1,0,2,0,0,0/))**2)==0)then
    2540           32 :    ptgroup='   -3' ; iholohedry=5
    2541        98588 :  else if(sum((n_axes-(/0,0,0,0,0,0, 0 ,1,3,2,0,0,0/))**2)==0)then
    2542          240 :    ptgroup='   32' ; iholohedry=5
    2543        95228 :  else if(sum((n_axes-(/0,0,0,0,3,0, 0 ,1,0,2,0,0,0/))**2)==0)then
    2544          269 :    ptgroup='   3m' ; iholohedry=5
    2545        91462 :  else if(sum((n_axes-(/0,0,0,2,3,1, 0 ,1,3,2,0,0,0/))**2)==0)then
    2546          534 :    ptgroup='  -3m' ; iholohedry=5
    2547              : 
    2548        83986 :  else if(sum((n_axes-(/0,0,0,0,0,0, 0 ,1,1,2,0,0,2/))**2)==0)then
    2549           30 :    ptgroup='    6' ; iholohedry=6
    2550        83566 :  else if(sum((n_axes-(/2,0,0,0,1,0, 0 ,1,0,2,0,0,0/))**2)==0)then
    2551            9 :    ptgroup='   -6' ; iholohedry=6
    2552        83440 :  else if(sum((n_axes-(/2,0,0,2,1,1, 0 ,1,1,2,0,0,2/))**2)==0)then
    2553           14 :    ptgroup='  6/m' ; iholohedry=6
    2554        83244 :  else if(sum((n_axes-(/0,0,0,0,0,0, 0 ,1,7,2,0,0,2/))**2)==0)then
    2555           38 :    ptgroup='  622' ; iholohedry=6
    2556        82712 :  else if(sum((n_axes-(/0,0,0,0,6,0, 0 ,1,1,2,0,0,2/))**2)==0)then
    2557          107 :    ptgroup='  6mm' ; iholohedry=6
    2558        81214 :  else if(sum((n_axes-(/2,0,0,0,4,0, 0 ,1,3,2,0,0,0/))**2)==0)then
    2559           78 :    ptgroup=' -62m' ; iholohedry=6
    2560        80122 :  else if(sum((n_axes-(/2,0,0,2,7,1, 0 ,1,7,2,0,0,2/))**2)==0)then
    2561          125 :    ptgroup='6/mmm' ; iholohedry=6
    2562              : 
    2563        78372 :  else if(sum((n_axes-(/0,0,0,0,0,0, 0 ,1,3,8,0,0,0/))**2)==0)then
    2564           36 :    ptgroup='   23' ; iholohedry=7
    2565        77868 :  else if(sum((n_axes-(/0,0,0,8,3,1, 0 ,1,3,8,0,0,0/))**2)==0)then
    2566           28 :    ptgroup='  m-3' ; iholohedry=7
    2567        77476 :  else if(sum((n_axes-(/0,0,0,0,0,0, 0 ,1,9,8,6,0,0/))**2)==0)then
    2568           47 :    ptgroup='  432' ; iholohedry=7
    2569        76818 :  else if(sum((n_axes-(/0,0,6,0,6,0, 0 ,1,3,8,0,0,0/))**2)==0)then
    2570         1037 :    ptgroup=' -43m' ; iholohedry=7
    2571        62300 :  else if(sum((n_axes-(/0,0,6,8,9,1, 0 ,1,9,8,6,0,0/))**2)==0)then
    2572         4450 :    ptgroup=' m-3m' ; iholohedry=7
    2573              : 
    2574              :  end if
    2575              : 
    2576        11936 :  if(iholohedry==0)then
    2577            0 :    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)' )' symptgroup : isym,determinant,order=',isym,determinant(isym),order(isym)
    2583              : !end do
    2584              : 
    2585              : !write(std_out,'(a,13i3)' )' symptgroup : n_axes(-6:6)=',n_axes(-6:6)
    2586              : !write(std_out,*)' iholohedry, ptgroup=',iholohedry,',',ptgroup
    2587              : !ENDDEBUG
    2588              : 
    2589        11936 :  ABI_FREE(determinant)
    2590        11936 :  ABI_FREE(order)
    2591        11936 :  ABI_FREE(ptsym)
    2592        11936 :  ABI_FREE(root_invers)
    2593              : 
    2594        11936 : end subroutine symptgroup
    2595              : !!***
    2596              : 
    2597              : end module m_spgdata
    2598              : !!***
        

Generated by: LCOV version 2.3-1