LCOV - code coverage report
Current view: top level - src/41_geometry - m_symlist.F90 (source / functions) Coverage Total Hit
Test: coverage.info Lines: 97.8 % 498 487
Test Date: 2026-09-20 18:56:22 Functions: 100.0 % 4 4

            Line data    Source code
       1              : !!****m* ABINIT/m_symlist
       2              : !! NAME
       3              : !!  m_symlist
       4              : !!
       5              : !! FUNCTION
       6              : !! Determine the space group from the number and type of symmetry operations
       7              : !!
       8              : !! COPYRIGHT
       9              : !!  Copyright (C) 2008-2026 ABINIT group (RC)
      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_symlist
      23              : 
      24              :  use defs_basis
      25              : 
      26              :  implicit none
      27              : 
      28              :  private
      29              : !!***
      30              : 
      31              :  public :: symlist_prim
      32              :  public :: symlist_bcc
      33              :  public :: symlist_fcc
      34              :  public :: symlist_others
      35              : !!***
      36              : 
      37              : contains
      38              : !!***
      39              : 
      40              : !!****f* m_symlist/symlist_prim
      41              : !! NAME
      42              : !! symlist_prim
      43              : !!
      44              : !! FUNCTION
      45              : !! Determine the space group from the number and type of symmetry operations
      46              : !!
      47              : !! INPUTS
      48              : !! additional_info=information that is needed beyond n_axes, in order
      49              : !!  to discriminate between specific space groups
      50              : !! nsym=actual number of symmetries
      51              : !! n_axes(31)=array containing the number of all the possible symmetry operations
      52              : !!
      53              : !! OUTPUT
      54              : !! spgroup=space group number ; returns 0 if not found
      55              : !!
      56              : !! NOTES
      57              : !!
      58              : !! The list of symmetry operations is for the conventional cell
      59              : !!
      60              : !! TODO
      61              : !! For the time being there are several groups where uncertainties still exist
      62              : !! This will be solved in the very next ABINIT version
      63              : !!
      64              : !! SOURCE
      65              : 
      66         5204 : subroutine symlist_prim(additional_info,nsym,n_axes,spgroup)
      67              : 
      68              : !Arguments ------------------------------------
      69              : !scalars
      70              :  integer,intent(in) :: additional_info,nsym
      71              :  integer,intent(out) :: spgroup
      72              : !arrays
      73              :  integer,intent(in) :: n_axes(31)
      74              : 
      75              : !Local variables-------------------------------
      76              : !character(len=500) :: message
      77              : !arrays
      78              :  integer :: n_axest(31)
      79              : 
      80              : !**************************************************************************
      81              : 
      82              : !DEBUG
      83              : !write(std_out,*) ' symlist_prim : enter '
      84              : !write(std_out,*) ' nsym = ', nsym
      85              : !write(std_out,'(a,10i3)' ) ' n_axes(1:10) =',n_axes(1:10)
      86              : !write(std_out,'(a,10i3)' ) ' n_axes(11:20)=',n_axes(11:20)
      87              : !write(std_out,'(a,11i3)' ) ' n_axes(21:31)=',n_axes(21:31)
      88              : !ENDDEBUG
      89              : 
      90         5204 :  spgroup=0
      91              : 
      92         6488 :  select case(nsym)
      93              : 
      94              :  case(1)
      95              : 
      96         1284 :    n_axest=(/0,0,0,0,0,0,0,1,0,0,  0,0,0,0,0,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
      97        41088 :    if(sum((n_axes-n_axest)**2)==0) spgroup=1
      98              : 
      99              :  case(2)
     100              : 
     101          196 :    n_axest=(/0,0,0,0,1,0,0,1,0,0,  0,0,0,0,0,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     102         6272 :    if(sum((n_axes-n_axest)**2)==0) spgroup=2
     103          196 :    n_axest=(/0,0,0,0,0,0,0,1,1,0,  0,0,0,0,0,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     104         6272 :    if(sum((n_axes-n_axest)**2)==0) spgroup=3
     105          196 :    n_axest=(/0,0,0,0,0,0,0,1,0,0,  0,0,0,0,0,0,0,0,0,1,  0,0,0,0,0,0,0,0,0,0,0/)
     106         6272 :    if(sum((n_axes-n_axest)**2)==0) spgroup=4
     107          196 :    n_axest=(/0,0,0,0,0,0,0,1,0,0,  0,0,0,0,1,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     108         6272 :    if(sum((n_axes-n_axest)**2)==0) spgroup=6
     109          196 :    n_axest=(/0,0,0,0,0,0,0,1,0,0,  0,0,0,0,0,1,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     110         6272 :    if(sum((n_axes-n_axest)**2)==0) spgroup=7
     111          196 :    n_axest=(/0,0,0,0,0,0,0,1,0,0,  0,0,0,0,0,0,0,1,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     112         6272 :    if(sum((n_axes-n_axest)**2)==0) spgroup=7
     113              : 
     114              :  case(3)
     115              : 
     116           15 :    n_axest=(/0,0,0,0,0,0,0,1,0,2,  0,0,0,0,0,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     117          480 :    if(sum((n_axes-n_axest)**2)==0) spgroup=143
     118           15 :    n_axest=(/0,0,0,0,0,0,0,1,0,0,  0,0,0,0,0,0,0,0,0,0,  0,2,0,0,0,0,0,0,0,0,0/)
     119          480 :    if(sum((n_axes-n_axest)**2)==0) spgroup=144
     120           15 :    n_axest=(/0,0,0,0,0,0,0,1,0,0,  0,0,0,0,0,0,0,0,0,0,  0,0,2,0,0,0,0,0,0,0,0/)
     121          480 :    if(sum((n_axes-n_axest)**2)==0) spgroup=145
     122              : 
     123              :  case(4)
     124              : 
     125          309 :    n_axest=(/0,0,0,0,1,0,0,1,1,0,  0,0,0,0,1,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     126         9888 :    if(sum((n_axes-n_axest)**2)==0) spgroup=10
     127          309 :    n_axest=(/0,0,0,0,1,0,0,1,0,0,  0,0,0,0,1,0,0,0,0,1,  0,0,0,0,0,0,0,0,0,0,0/)
     128         9888 :    if(sum((n_axes-n_axest)**2)==0) spgroup=11
     129          309 :    n_axest=(/0,0,0,0,1,0,0,1,1,0,  0,0,0,0,0,1,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     130         9888 :    if(sum((n_axes-n_axest)**2)==0) spgroup=13
     131          309 :    n_axest=(/0,0,0,0,1,0,0,1,1,0,  0,0,0,0,0,0,0,1,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     132         9888 :    if(sum((n_axes-n_axest)**2)==0) spgroup=13
     133          309 :    n_axest=(/0,0,0,0,1,0,0,1,0,0,  0,0,0,0,0,1,0,0,0,1,  0,0,0,0,0,0,0,0,0,0,0/)
     134         9888 :    if(sum((n_axes-n_axest)**2)==0) spgroup=14
     135          309 :    n_axest=(/0,0,0,0,1,0,0,1,0,0,  0,0,0,0,0,0,0,1,0,1,  0,0,0,0,0,0,0,0,0,0,0/)
     136         9888 :    if(sum((n_axes-n_axest)**2)==0) spgroup=14
     137              : 
     138          309 :    n_axest=(/0,0,0,0,0,0,0,1,3,0,  0,0,0,0,0,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     139         9888 :    if(sum((n_axes-n_axest)**2)==0) spgroup=16
     140          309 :    n_axest=(/0,0,0,0,0,0,0,1,2,0,  0,0,0,0,0,0,0,0,0,1,  0,0,0,0,0,0,0,0,0,0,0/)
     141         9888 :    if(sum((n_axes-n_axest)**2)==0) spgroup=17
     142          309 :    n_axest=(/0,0,0,0,0,0,0,1,1,0,  0,0,0,0,0,0,0,0,0,2,  0,0,0,0,0,0,0,0,0,0,0/)
     143         9888 :    if(sum((n_axes-n_axest)**2)==0) spgroup=18
     144          309 :    n_axest=(/0,0,0,0,0,0,0,1,0,0,  0,0,0,0,0,0,0,0,0,3,  0,0,0,0,0,0,0,0,0,0,0/)
     145         9888 :    if(sum((n_axes-n_axest)**2)==0) spgroup=19
     146          309 :    n_axest=(/0,0,0,0,0,0,0,1,1,0,  0,0,0,0,2,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     147              : 
     148         9888 :    if(sum((n_axes-n_axest)**2)==0) spgroup=25
     149          309 :    n_axest=(/0,0,0,0,0,0,0,1,0,0,  0,0,0,0,1,1,0,0,0,1,  0,0,0,0,0,0,0,0,0,0,0/)
     150         9888 :    if(sum((n_axes-n_axest)**2)==0) spgroup=26
     151          309 :    n_axest=(/0,0,0,0,0,0,0,1,0,0,  0,0,0,0,0,2,0,0,0,1,  0,0,0,0,0,0,0,0,0,0,0/)
     152         9888 :    if(sum((n_axes-n_axest)**2)==0) spgroup=29
     153          309 :    n_axest=(/0,0,0,0,0,0,0,1,1,0,  0,0,0,0,0,2,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     154         9888 :    if(sum((n_axes-n_axest)**2)==0) then
     155           16 :      if(additional_info==1) spgroup=27
     156           16 :      if(additional_info==2) spgroup=32
     157              :    end if
     158          309 :    n_axest=(/0,0,0,0,0,0,0,1,1,0,  0,0,0,0,1,1,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     159         9888 :    if(sum((n_axes-n_axest)**2)==0) spgroup=28
     160          309 :    n_axest=(/0,0,0,0,0,0,0,1,1,0,  0,0,0,0,0,1,0,1,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     161         9888 :    if(sum((n_axes-n_axest)**2)==0) spgroup=30
     162          309 :    n_axest=(/0,0,0,0,0,0,0,1,0,0,  0,0,0,0,1,0,0,1,0,1,  0,0,0,0,0,0,0,0,0,0,0/)
     163         9888 :    if(sum((n_axes-n_axest)**2)==0) spgroup=31
     164          309 :    n_axest=(/0,0,0,0,0,0,0,1,0,0,  0,0,0,0,0,1,0,1,0,1,  0,0,0,0,0,0,0,0,0,0,0/)
     165         9888 :    if(sum((n_axes-n_axest)**2)==0) spgroup=33
     166          309 :    n_axest=(/0,0,0,0,0,0,0,1,1,0,  0,0,0,0,0,0,0,2,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     167         9888 :    if(sum((n_axes-n_axest)**2)==0) spgroup=34
     168              : 
     169          309 :    n_axest=(/0,0,0,0,0,0,0,1,1,0,  0,2,0,0,0,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     170         9888 :    if(sum((n_axes-n_axest)**2)==0) spgroup=75
     171          309 :    n_axest=(/0,0,0,0,0,0,0,1,0,0,  0,0,0,0,0,0,0,0,0,1,  0,0,0,2,0,0,0,0,0,0,0/)
     172         9888 :    if(sum((n_axes-n_axest)**2)==0) spgroup=76
     173          309 :    n_axest=(/0,0,0,0,0,0,0,1,1,0,  0,0,0,0,0,0,0,0,0,0,  0,0,0,0,2,0,0,0,0,0,0/)
     174         9888 :    if(sum((n_axes-n_axest)**2)==0) spgroup=77
     175          309 :    n_axest=(/0,0,0,0,0,0,0,1,0,0,  0,0,0,0,0,0,0,0,0,1,  0,0,0,0,0,2,0,0,0,0,0/)
     176         9888 :    if(sum((n_axes-n_axest)**2)==0) spgroup=78
     177              : 
     178              : 
     179          309 :    n_axest=(/0,2,0,0,0,0,0,1,1,0,  0,0,0,0,0,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     180         9888 :    if(sum((n_axes-n_axest)**2)==0) spgroup=81
     181              : 
     182              :  case(6)
     183              : 
     184          235 :    n_axest=(/0,0,2,0,1,0,0,1,0,2,  0,0,0,0,0,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     185         7520 :    if(sum((n_axes-n_axest)**2)==0) spgroup=147
     186              : 
     187          235 :    n_axest=(/0,0,0,0,0,0,0,1,0,2,  0,0,0,0,0,0,0,0,0,0,  3,0,0,0,0,0,0,0,0,0,0/)
     188         7520 :    if(sum((n_axes-n_axest)**2)==0) spgroup=149
     189          235 :    n_axest=(/0,0,0,3,0,0,0,1,0,2,  0,0,0,0,0,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     190         7520 :    if(sum((n_axes-n_axest)**2)==0) spgroup=150
     191          235 :    n_axest=(/0,0,0,0,0,0,0,1,0,0,  0,0,0,0,0,0,0,0,0,0,  3,2,0,0,0,0,0,0,0,0,0/)
     192         7520 :    if(sum((n_axes-n_axest)**2)==0) spgroup=151
     193          235 :    n_axest=(/0,0,0,0,0,0,0,1,0,0,  0,0,0,0,0,0,0,0,0,0,  3,0,2,0,0,0,0,0,0,0,0/)
     194         7520 :    if(sum((n_axes-n_axest)**2)==0) spgroup=153
     195              : 
     196          235 :    n_axest=(/0,0,0,3,0,0,0,1,0,0,  0,0,0,0,0,0,0,0,0,0,  0,2,0,0,0,0,0,0,0,0,0/)
     197         7520 :    if(sum((n_axes-n_axest)**2)==0) spgroup=152
     198          235 :    n_axest=(/0,0,0,3,0,0,0,1,0,0,  0,0,0,0,0,0,0,0,0,0,  0,0,2,0,0,0,0,0,0,0,0/)
     199         7520 :    if(sum((n_axes-n_axest)**2)==0) spgroup=154
     200              : 
     201          235 :    n_axest=(/0,0,0,0,0,0,0,1,0,2,  0,0,0,0,3,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     202         7520 :    if(sum((n_axes-n_axest)**2)==0) spgroup=156
     203          235 :    n_axest=(/0,0,0,0,0,0,0,1,0,2,  0,0,0,0,0,0,3,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     204         7520 :    if(sum((n_axes-n_axest)**2)==0) spgroup=157
     205          235 :    n_axest=(/0,0,0,0,0,0,0,1,0,2,  0,0,0,0,0,3,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     206         7520 :    if(sum((n_axes-n_axest)**2)==0) spgroup=158
     207          235 :    n_axest=(/0,0,0,0,0,0,0,1,0,2,  0,0,0,0,0,0,0,3,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     208         7520 :    if(sum((n_axes-n_axest)**2)==0) spgroup=159
     209              : 
     210          235 :    n_axest=(/0,0,0,0,0,0,0,1,1,2,  0,0,0,2,0,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     211         7520 :    if(sum((n_axes-n_axest)**2)==0) spgroup=168
     212          235 :    n_axest=(/0,0,0,0,0,0,0,1,0,0,  0,0,0,0,0,0,0,0,0,1,  0,2,0,0,0,0,2,0,0,0,0/)
     213         7520 :    if(sum((n_axes-n_axest)**2)==0) spgroup=169
     214          235 :    n_axest=(/0,0,0,0,0,0,0,1,0,0,  0,0,0,0,0,0,0,0,0,1,  0,0,2,0,0,0,0,0,0,0,2/)
     215         7520 :    if(sum((n_axes-n_axest)**2)==0) spgroup=170
     216              : 
     217          235 :    n_axest=(/0,0,0,0,0,0,0,1,1,0,  0,0,0,0,0,0,0,0,0,0,  0,0,2,0,0,0,0,2,0,0,0/)
     218         7520 :    if(sum((n_axes-n_axest)**2)==0) spgroup=171
     219          235 :    n_axest=(/0,0,0,0,0,0,0,1,1,0,  0,0,0,0,0,0,0,0,0,0,  0,2,0,0,0,0,0,0,0,2,0/)
     220         7520 :    if(sum((n_axes-n_axest)**2)==0) spgroup=172
     221              : 
     222          235 :    n_axest=(/0,0,0,0,0,0,0,1,0,2,  0,0,0,0,0,0,0,0,0,1,  0,0,0,0,0,0,0,0,2,0,0/)
     223         7520 :    if(sum((n_axes-n_axest)**2)==0) spgroup=173
     224          235 :    n_axest=(/2,0,0,0,0,0,0,1,0,2,  0,0,0,0,1,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     225         7520 :    if(sum((n_axes-n_axest)**2)==0) spgroup=174
     226              : 
     227              :  case(8)
     228              : 
     229          879 :    n_axest=(/0,0,0,0,1,0,0,1,3,0,  0,0,0,0,3,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     230        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=47
     231          879 :    n_axest=(/0,0,0,0,1,0,0,1,3,0,  0,0,0,0,0,0,0,3,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     232        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=48
     233          879 :    n_axest=(/0,0,0,0,1,0,0,1,3,0,  0,0,0,0,1,2,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     234        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=49
     235          879 :    n_axest=(/0,0,0,0,1,0,0,1,3,0,  0,0,0,0,0,2,0,1,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     236        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=50
     237              : 
     238          879 :    n_axest=(/0,0,0,0,1,0,0,1,2,0,  0,0,0,0,2,1,0,0,0,1,  0,0,0,0,0,0,0,0,0,0,0/)
     239        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=51
     240          879 :    n_axest=(/0,0,0,0,1,0,0,1,2,0,  0,0,0,0,0,1,0,2,0,1,  0,0,0,0,0,0,0,0,0,0,0/)
     241        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=52
     242          879 :    n_axest=(/0,0,0,0,1,0,0,1,2,0,  0,0,0,0,1,1,0,1,0,1,  0,0,0,0,0,0,0,0,0,0,0/)
     243        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=53
     244          879 :    n_axest=(/0,0,0,0,1,0,0,1,2,0,  0,0,0,0,0,3,0,0,0,1,  0,0,0,0,0,0,0,0,0,0,0/)
     245        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=54
     246              : 
     247          879 :    n_axest=(/0,0,0,0,1,0,0,1,1,0,  0,0,0,0,1,2,0,0,0,2,  0,0,0,0,0,0,0,0,0,0,0/)
     248        28128 :    if(sum((n_axes-n_axest)**2)==0)  then
     249           26 :      if(additional_info==1) spgroup=55
     250           26 :      if(additional_info==2) spgroup=57
     251              :    end if
     252          879 :    n_axest=(/0,0,0,0,1,0,0,1,1,0,  0,0,0,0,0,2,0,1,0,2,  0,0,0,0,0,0,0,0,0,0,0/)
     253        28128 :    if(sum((n_axes-n_axest)**2)==0)  then
     254           26 :      if(additional_info==1) spgroup=56
     255           26 :      if(additional_info==2) spgroup=60
     256              :    end if
     257          879 :    n_axest=(/0,0,0,0,1,0,0,1,1,0,  0,0,0,0,1,0,0,2,0,2,  0,0,0,0,0,0,0,0,0,0,0/)
     258        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=58
     259          879 :    n_axest=(/0,0,0,0,1,0,0,1,1,0,  0,0,0,0,2,0,0,1,0,2,  0,0,0,0,0,0,0,0,0,0,0/)
     260        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=59
     261              : 
     262          879 :    n_axest=(/0,0,0,0,1,0,0,1,0,0,  0,0,0,0,0,3,0,0,0,3,  0,0,0,0,0,0,0,0,0,0,0/)
     263        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=61
     264          879 :    n_axest=(/0,0,0,0,1,0,0,1,0,0,  0,0,0,0,1,1,0,1,0,3,  0,0,0,0,0,0,0,0,0,0,0/)
     265        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=62
     266              : 
     267          879 :    n_axest=(/0,0,0,0,0,0,0,1,3,0,  0,2,0,0,0,0,0,0,0,0,  2,0,0,0,0,0,0,0,0,0,0/)
     268        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=89
     269          879 :    n_axest=(/0,0,0,0,0,0,0,1,1,0,  0,2,0,0,0,0,0,0,0,2,  2,0,0,0,0,0,0,0,0,0,0/)
     270        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=90
     271              : 
     272          879 :    n_axest=(/0,0,0,0,0,0,0,1,2,0,  0,0,0,0,0,0,0,0,0,1,  2,0,0,2,0,0,0,0,0,0,0/)
     273        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=91
     274          879 :    n_axest=(/0,0,0,0,0,0,0,1,2,0,  0,0,0,0,0,0,0,0,0,1,  2,0,0,0,0,2,0,0,0,0,0/)
     275        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=95
     276              : 
     277          879 :    n_axest=(/0,0,0,0,0,0,0,1,0,0,  0,0,0,0,0,0,0,0,0,3,  2,0,0,2,0,0,0,0,0,0,0/)
     278        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=92
     279          879 :    n_axest=(/0,0,0,0,0,0,0,1,0,0,  0,0,0,0,0,0,0,0,0,3,  2,0,0,0,0,2,0,0,0,0,0/)
     280        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=96
     281              : 
     282          879 :    n_axest=(/0,0,0,0,0,0,0,1,3,0,  0,0,0,0,0,0,0,0,0,0,  2,0,0,0,2,0,0,0,0,0,0/)
     283        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=93
     284          879 :    n_axest=(/0,0,0,0,0,0,0,1,1,0,  0,0,0,0,0,0,0,0,0,2,  2,0,0,0,2,0,0,0,0,0,0/)
     285        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=94
     286              : 
     287          879 :    n_axest=(/0,0,0,0,0,0,0,1,1,0,  0,2,0,0,4,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     288        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=99
     289          879 :    n_axest=(/0,0,0,0,0,0,0,1,1,0,  0,2,0,0,2,2,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     290        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=100
     291          879 :    n_axest=(/0,0,0,0,0,0,0,1,1,0,  0,0,0,0,2,0,2,0,0,0,  0,0,0,0,2,0,0,0,0,0,0/)
     292        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=101
     293          879 :    n_axest=(/0,0,0,0,0,0,0,1,1,0,  0,0,0,0,2,0,0,2,0,0,  0,0,0,0,2,0,0,0,0,0,0/)
     294        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=102
     295          879 :    n_axest=(/0,0,0,0,0,0,0,1,1,0,  0,2,0,0,0,0,2,0,2,0,  0,0,0,0,0,0,0,0,0,0,0/)
     296        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=103
     297          879 :    n_axest=(/0,0,0,0,0,0,0,1,1,0,  0,2,0,0,0,0,0,2,2,0,  0,0,0,0,0,0,0,0,0,0,0/)
     298        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=104
     299          879 :    n_axest=(/0,0,0,0,0,0,0,1,1,0,  0,0,0,0,2,0,0,0,2,0,  0,0,0,0,2,0,0,0,0,0,0/)
     300        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=105
     301          879 :    n_axest=(/0,0,0,0,0,0,0,1,1,0,  0,0,0,0,0,2,0,0,2,0,  0,0,0,0,2,0,0,0,0,0,0/)
     302        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=106
     303              : 
     304          879 :    n_axest=(/0,2,0,0,1,0,0,1,1,0,  0,2,0,0,1,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     305        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=83
     306          879 :    n_axest=(/0,2,0,0,1,0,0,1,1,0,  0,0,0,0,1,0,0,0,0,0,  0,0,0,0,2,0,0,0,0,0,0/)
     307        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=84
     308          879 :    n_axest=(/0,2,0,0,1,0,0,1,1,0,  0,2,0,0,0,0,0,1,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     309        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=85
     310          879 :    n_axest=(/0,2,0,0,1,0,0,1,1,0,  0,0,0,0,0,0,0,1,0,0,  0,0,0,0,2,0,0,0,0,0,0/)
     311        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=86
     312              : 
     313          879 :    n_axest=(/0,2,0,0,0,0,0,1,3,0,  0,0,0,0,2,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     314        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=111
     315          879 :    n_axest=(/0,2,0,0,0,0,0,1,3,0,  0,0,0,0,0,0,0,0,2,0,  0,0,0,0,0,0,0,0,0,0,0/)
     316        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=112
     317          879 :    n_axest=(/0,2,0,0,0,0,0,1,1,0,  0,0,0,0,2,0,0,0,0,2,  0,0,0,0,0,0,0,0,0,0,0/)
     318        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=113
     319          879 :    n_axest=(/0,2,0,0,0,0,0,1,1,0,  0,0,0,0,0,0,0,0,2,2,  0,0,0,0,0,0,0,0,0,0,0/)
     320        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=114
     321          879 :    n_axest=(/0,2,0,0,0,0,0,1,1,0,  0,0,0,0,2,0,0,0,0,0,  2,0,0,0,0,0,0,0,0,0,0/)
     322        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=115
     323          879 :    n_axest=(/0,2,0,0,0,0,0,1,1,0,  0,0,0,0,0,0,2,0,0,0,  2,0,0,0,0,0,0,0,0,0,0/)
     324        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=116
     325          879 :    n_axest=(/0,2,0,0,0,0,0,1,1,0,  0,0,0,0,0,2,0,0,0,0,  2,0,0,0,0,0,0,0,0,0,0/)
     326        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=117
     327          879 :    n_axest=(/0,2,0,0,0,0,0,1,1,0,  0,0,0,0,0,0,0,2,0,0,  2,0,0,0,0,0,0,0,0,0,0/)
     328        28128 :    if(sum((n_axes-n_axest)**2)==0) spgroup=118
     329              : 
     330              :  case(12)
     331              : 
     332          321 :    n_axest=(/0,0,2,0,1,0,0,1,0,2,  0,0,0,0,0,0,3,0,0,0,  3,0,0,0,0,0,0,0,0,0,0/)
     333        10272 :    if(sum((n_axes-n_axest)**2)==0) spgroup=162
     334          321 :    n_axest=(/0,0,2,0,1,0,0,1,0,2,  0,0,0,0,0,0,0,3,0,0,  3,0,0,0,0,0,0,0,0,0,0/)
     335        10272 :    if(sum((n_axes-n_axest)**2)==0) spgroup=163
     336          321 :    n_axest=(/0,0,2,3,1,0,0,1,0,2,  0,0,0,0,3,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     337        10272 :    if(sum((n_axes-n_axest)**2)==0) spgroup=164
     338          321 :    n_axest=(/0,0,2,3,1,0,0,1,0,2,  0,0,0,0,0,3,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     339        10272 :    if(sum((n_axes-n_axest)**2)==0) spgroup=165
     340              : 
     341          321 :    n_axest=(/2,0,2,0,1,0,0,1,1,2,  0,0,0,2,1,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     342        10272 :    if(sum((n_axes-n_axest)**2)==0) spgroup=175
     343          321 :    n_axest=(/2,0,2,0,1,0,0,1,0,2,  0,0,0,0,1,0,0,0,0,1,  0,0,0,0,0,0,0,0,2,0,0/)
     344        10272 :    if(sum((n_axes-n_axest)**2)==0) spgroup=176
     345              : 
     346          321 :    n_axest=(/0,0,0,3,0,0,0,1,1,2,  0,0,0,2,0,0,0,0,0,0,  3,0,0,0,0,0,0,0,0,0,0/)
     347        10272 :    if(sum((n_axes-n_axest)**2)==0) spgroup=177
     348              : 
     349          321 :    n_axest=(/0,0,0,3,0,0,0,1,0,0,  0,0,0,0,0,0,0,0,0,1,  3,2,0,0,0,0,2,0,0,0,0/)
     350        10272 :    if(sum((n_axes-n_axest)**2)==0) spgroup=178
     351          321 :    n_axest=(/0,0,0,3,0,0,0,1,0,0,  0,0,0,0,0,0,0,0,0,1,  3,0,2,0,0,0,0,0,0,0,2/)
     352        10272 :    if(sum((n_axes-n_axest)**2)==0) spgroup=179
     353              : 
     354          321 :    n_axest=(/0,0,0,3,0,0,0,1,1,0,  0,0,0,0,0,0,0,0,0,0,  3,0,2,0,0,0,0,2,0,0,0/)
     355        10272 :    if(sum((n_axes-n_axest)**2)==0) spgroup=180
     356          321 :    n_axest=(/0,0,0,3,0,0,0,1,1,0,  0,0,0,0,0,0,0,0,0,0,  3,2,0,0,0,0,0,0,0,2,0/)
     357        10272 :    if(sum((n_axes-n_axest)**2)==0) spgroup=181
     358              : 
     359          321 :    n_axest=(/0,0,0,3,0,0,0,1,0,2,  0,0,0,0,0,0,0,0,0,1,  3,0,0,0,0,0,0,0,2,0,0/)
     360        10272 :    if(sum((n_axes-n_axest)**2)==0) spgroup=182
     361              : 
     362          321 :    n_axest=(/0,0,0,0,0,0,0,1,1,2,  0,0,0,2,3,0,3,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     363        10272 :    if(sum((n_axes-n_axest)**2)==0) spgroup=183
     364          321 :    n_axest=(/0,0,0,0,0,0,0,1,1,2,  0,0,0,2,0,3,0,3,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     365        10272 :    if(sum((n_axes-n_axest)**2)==0) spgroup=184
     366          321 :    n_axest=(/0,0,0,0,0,0,0,1,0,2,  0,0,0,0,0,3,3,0,0,1,  0,0,0,0,0,0,0,0,2,0,0/)
     367        10272 :    if(sum((n_axes-n_axest)**2)==0) spgroup=185
     368          321 :    n_axest=(/0,0,0,0,0,0,0,1,0,2,  0,0,0,0,3,0,0,3,0,1,  0,0,0,0,0,0,0,0,2,0,0/)
     369        10272 :    if(sum((n_axes-n_axest)**2)==0) spgroup=186
     370              : 
     371          321 :    n_axest=(/2,0,0,0,0,0,0,1,0,2,  0,0,0,0,4,0,0,0,0,0,  3,0,0,0,0,0,0,0,0,0,0/)
     372        10272 :    if(sum((n_axes-n_axest)**2)==0) spgroup=187
     373          321 :    n_axest=(/2,0,0,0,0,0,0,1,0,2,  0,0,0,0,1,3,0,0,0,0,  3,0,0,0,0,0,0,0,0,0,0/)
     374        10272 :    if(sum((n_axes-n_axest)**2)==0) spgroup=188
     375          321 :    n_axest=(/2,0,0,3,0,0,0,1,0,2,  0,0,0,0,1,0,3,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     376        10272 :    if(sum((n_axes-n_axest)**2)==0) spgroup=189
     377          321 :    n_axest=(/2,0,0,3,0,0,0,1,0,2,  0,0,0,0,1,0,0,3,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     378        10272 :    if(sum((n_axes-n_axest)**2)==0) spgroup=190
     379              : 
     380          321 :    n_axest=(/0,0,0,0,0,0,0,1,3,8,  0,0,0,0,0,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     381        10272 :    if(sum((n_axes-n_axest)**2)==0) spgroup=195
     382          321 :    n_axest=(/0,0,0,0,0,0,0,1,0,8,  0,0,0,0,0,0,0,0,0,3,  0,0,0,0,0,0,0,0,0,0,0/)
     383        10272 :    if(sum((n_axes-n_axest)**2)==0) spgroup=198
     384              : 
     385              :  case(16)
     386              : 
     387          846 :    n_axest=(/0,2,0,0,1,0,0,1,3,0,  0,2,0,0,5,0,0,0,0,0,  2,0,0,0,0,0,0,0,0,0,0/)
     388        27072 :    if(sum((n_axes-n_axest)**2)==0) spgroup=123
     389          846 :    n_axest=(/0,2,0,0,1,0,0,1,3,0,  0,2,0,0,1,0,2,0,2,0,  2,0,0,0,0,0,0,0,0,0,0/)
     390        27072 :    if(sum((n_axes-n_axest)**2)==0) spgroup=124
     391          846 :    n_axest=(/0,2,0,0,1,0,0,1,3,0,  0,2,0,0,2,2,0,1,0,0,  2,0,0,0,0,0,0,0,0,0,0/)
     392        27072 :    if(sum((n_axes-n_axest)**2)==0) spgroup=125
     393          846 :    n_axest=(/0,2,0,0,1,0,0,1,3,0,  0,2,0,0,0,0,0,3,2,0,  2,0,0,0,0,0,0,0,0,0,0/)
     394        27072 :    if(sum((n_axes-n_axest)**2)==0) spgroup=126
     395              : 
     396          846 :    n_axest=(/0,2,0,0,1,0,0,1,1,0,  0,2,0,0,3,2,0,0,0,2,  2,0,0,0,0,0,0,0,0,0,0/)
     397        27072 :    if(sum((n_axes-n_axest)**2)==0) spgroup=127
     398          846 :    n_axest=(/0,2,0,0,1,0,0,1,1,0,  0,2,0,0,1,0,0,2,2,2,  2,0,0,0,0,0,0,0,0,0,0/)
     399        27072 :    if(sum((n_axes-n_axest)**2)==0) spgroup=128
     400          846 :    n_axest=(/0,2,0,0,1,0,0,1,1,0,  0,2,0,0,4,0,0,1,0,2,  2,0,0,0,0,0,0,0,0,0,0/)
     401        27072 :    if(sum((n_axes-n_axest)**2)==0) spgroup=129
     402          846 :    n_axest=(/0,2,0,0,1,0,0,1,1,0,  0,2,0,0,0,0,2,1,2,2,  2,0,0,0,0,0,0,0,0,0,0/)
     403        27072 :    if(sum((n_axes-n_axest)**2)==0) spgroup=130
     404              : 
     405          846 :    n_axest=(/0,2,0,0,1,0,0,1,3,0,  0,0,0,0,3,0,0,0,2,0,  2,0,0,0,2,0,0,0,0,0,0/)
     406        27072 :    if(sum((n_axes-n_axest)**2)==0) spgroup=131
     407          846 :    n_axest=(/0,2,0,0,1,0,0,1,3,0,  0,0,0,0,3,0,2,0,0,0,  2,0,0,0,2,0,0,0,0,0,0/)
     408        27072 :    if(sum((n_axes-n_axest)**2)==0) spgroup=132
     409          846 :    n_axest=(/0,2,0,0,1,0,0,1,3,0,  0,0,0,0,0,2,0,1,2,0,  2,0,0,0,2,0,0,0,0,0,0/)
     410        27072 :    if(sum((n_axes-n_axest)**2)==0) spgroup=133
     411          846 :    n_axest=(/0,2,0,0,1,0,0,1,3,0,  0,0,0,0,2,0,0,3,0,0,  2,0,0,0,2,0,0,0,0,0,0/)
     412        27072 :    if(sum((n_axes-n_axest)**2)==0) spgroup=134
     413              : 
     414          846 :    n_axest=(/0,2,0,0,1,0,0,1,1,0,  0,0,0,0,1,2,0,0,2,2,  2,0,0,0,2,0,0,0,0,0,0/)
     415        27072 :    if(sum((n_axes-n_axest)**2)==0) spgroup=135
     416          846 :    n_axest=(/0,2,0,0,1,0,0,1,1,0,  0,0,0,0,3,0,0,2,0,2,  2,0,0,0,2,0,0,0,0,0,0/)
     417        27072 :    if(sum((n_axes-n_axest)**2)==0) spgroup=136
     418          846 :    n_axest=(/0,2,0,0,1,0,0,1,1,0,  0,0,0,0,2,0,0,1,2,2,  2,0,0,0,2,0,0,0,0,0,0/)
     419        27072 :    if(sum((n_axes-n_axest)**2)==0) spgroup=137
     420          846 :    n_axest=(/0,2,0,0,1,0,0,1,1,0,  0,0,0,0,2,0,2,1,0,2,  2,0,0,0,2,0,0,0,0,0,0/)
     421        27072 :    if(sum((n_axes-n_axest)**2)==0) spgroup=138
     422              : 
     423              :  case(24)
     424              : 
     425          205 :    n_axest=(/2,0,2,3,1,0,0,1,1,2,  0,0,0,2,4,0,3,0,0,0,  3,0,0,0,0,0,0,0,0,0,0/)
     426         6560 :    if(sum((n_axes-n_axest)**2)==0) spgroup=191
     427          205 :    n_axest=(/2,0,2,3,1,0,0,1,1,2,  0,0,0,2,1,3,0,3,0,0,  3,0,0,0,0,0,0,0,0,0,0/)
     428         6560 :    if(sum((n_axes-n_axest)**2)==0) spgroup=192
     429          205 :    n_axest=(/2,0,2,3,1,0,0,1,0,2,  0,0,0,0,1,3,3,0,0,1,  3,0,0,0,0,0,0,0,2,0,0/)
     430         6560 :    if(sum((n_axes-n_axest)**2)==0) spgroup=193
     431          205 :    n_axest=(/2,0,2,3,1,0,0,1,0,2,  0,0,0,0,4,0,0,3,0,1,  3,0,0,0,0,0,0,0,2,0,0/)
     432         6560 :    if(sum((n_axes-n_axest)**2)==0) spgroup=194
     433              : 
     434              : 
     435          205 :    n_axest=(/0,0,8,0,1,0,0,1,3,8,  0,0,0,0,3,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     436         6560 :    if(sum((n_axes-n_axest)**2)==0) spgroup=200
     437          205 :    n_axest=(/0,0,8,0,1,0,0,1,3,8,  0,0,0,0,0,0,0,3,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     438         6560 :    if(sum((n_axes-n_axest)**2)==0) spgroup=201
     439          205 :    n_axest=(/0,0,8,0,1,0,0,1,0,8,  0,0,0,0,0,0,0,3,0,3,  0,0,0,0,0,0,0,0,0,0,0/)
     440         6560 :    if(sum((n_axes-n_axest)**2)==0) spgroup=205
     441          205 :    n_axest=(/0,0,0,0,0,0,0,1,3,8,  0,6,0,0,0,0,0,0,0,0,  6,0,0,0,0,0,0,0,0,0,0/)
     442         6560 :    if(sum((n_axes-n_axest)**2)==0) spgroup=207
     443          205 :    n_axest=(/0,0,0,0,0,0,0,1,3,8,  0,0,0,0,0,0,0,0,0,0,  6,0,0,0,6,0,0,0,0,0,0/)
     444         6560 :    if(sum((n_axes-n_axest)**2)==0) spgroup=208
     445          205 :    n_axest=(/0,0,0,0,0,0,0,1,0,8,  0,0,0,0,0,0,0,0,0,3,  6,0,0,0,0,6,0,0,0,0,0/)
     446         6560 :    if(sum((n_axes-n_axest)**2)==0) spgroup=212
     447          205 :    n_axest=(/0,0,0,0,0,0,0,1,0,8,  0,0,0,0,0,0,0,0,0,3,  6,0,0,6,0,0,0,0,0,0,0/)
     448         6560 :    if(sum((n_axes-n_axest)**2)==0) spgroup=213
     449              : 
     450          205 :    n_axest=(/0,6,0,0,0,0,0,1,3,8,  0,0,0,0,6,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     451         6560 :    if(sum((n_axes-n_axest)**2)==0) spgroup=215
     452          205 :    n_axest=(/0,6,0,0,0,0,0,1,3,8,  0,0,0,0,0,0,0,6,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     453         6560 :    if(sum((n_axes-n_axest)**2)==0) spgroup=218
     454              : 
     455              :  case(48)
     456              : 
     457          914 :    n_axest=(/0,6,8,0,1,0,0,1,3,8,  0,6,0,0,9,0,0,0,0,0,  6,0,0,0,0,0,0,0,0,0,0/)
     458        29248 :    if(sum((n_axes-n_axest)**2)==0) spgroup=221
     459          914 :    n_axest=(/0,6,8,0,1,0,0,1,3,8,  0,6,0,0,0,0,0,9,0,0,  6,0,0,0,0,0,0,0,0,0,0/)
     460        29248 :    if(sum((n_axes-n_axest)**2)==0) spgroup=222
     461          914 :    n_axest=(/0,6,8,0,1,0,0,1,3,8,  0,0,0,0,3,0,0,6,0,0,  6,0,0,0,6,0,0,0,0,0,0/)
     462        29248 :    if(sum((n_axes-n_axest)**2)==0) spgroup=223
     463          914 :    n_axest=(/0,6,8,0,1,0,0,1,3,8,  0,0,0,0,6,0,0,3,0,0,  6,0,0,0,6,0,0,0,0,0,0/)
     464        34452 :    if(sum((n_axes-n_axest)**2)==0) spgroup=224
     465              : 
     466              :  end select
     467              : 
     468         5204 : end subroutine symlist_prim
     469              : !!***
     470              : 
     471              : !!****f* m_symlist/symlist_bcc
     472              : !! NAME
     473              : !! symlist_bcc
     474              : !!
     475              : !! FUNCTION
     476              : !! Determine the space group from the number and type of symmetry operations
     477              : !! BCC case.
     478              : !!
     479              : !! INPUTS
     480              : !! additional_info=information that is needed beyond n_axes, in order
     481              : !!  to discriminate between specific space groups
     482              : !! nsym=actual number of symmetries
     483              : !! n_axes(31)=array containing the number of all the possible symmetry operations
     484              : !!
     485              : !! OUTPUT
     486              : !! spgroup=space group number ; returns 0 if not found
     487              : !!
     488              : !! NOTES
     489              : !!
     490              : !! The list of symmetry operations is for the conventional cell
     491              : !!
     492              : !! TODO
     493              : !! For the time being there are several groups where uncertainties still exist
     494              : !! This will be solved in the very next ABINIT version
     495              : !!
     496              : !! SOURCE
     497              : 
     498          698 : subroutine symlist_bcc(additional_info,nsym,n_axes,spgroup)
     499              : 
     500              : !Arguments ------------------------------------
     501              : !scalars
     502              :  integer,intent(in) :: additional_info,nsym
     503              :  integer,intent(out) :: spgroup
     504              : !arrays
     505              :  integer,intent(in) :: n_axes(31)
     506              : 
     507              : !Local variables-------------------------------
     508              : !character(len=500) :: message
     509              : !scalars
     510              :  integer :: ii
     511              : !arrays
     512              :  integer :: n_axest(31)
     513              : 
     514              : !**************************************************************************
     515              : 
     516              : !DEBUG
     517              : !write(std_out,*) ' symlist_bcc : enter '
     518              : !write(std_out,*) ' nsym = ', nsym
     519              : !write(std_out,'(a,10i3)' ) ' n_axes(1:10) =',n_axes(1:10)
     520              : !write(std_out,'(a,10i3)' ) ' n_axes(11:20)=',n_axes(11:20)
     521              : !write(std_out,'(a,11i3)' ) ' n_axes(21:31)=',n_axes(21:31)
     522              : !ENDDEBUG
     523              : 
     524          698 :  spgroup=0
     525              : 
     526          698 :  select case(nsym)
     527              : 
     528              :  case(4)
     529              : !    XG021015, from LSi.
     530              : !    The coding of this case is different because of a compiler problem on
     531              : !    SUN. Seems that an internal limit is reached. Do not know why.
     532            0 :    do ii=1,3
     533            0 :      if(ii==1)then
     534            0 :        n_axest(:)=0 ; n_axest(7)=1 ; n_axest(8)=1 ; n_axest(9)=1 ; n_axest(20)=1
     535            0 :        spgroup=5
     536            0 :      else if(ii==2)then
     537            0 :        n_axest(:)=0 ; n_axest(7)=1 ; n_axest(8)=1 ; n_axest(15)=1 ; n_axest(18)=1
     538            0 :        spgroup=8
     539              :      else if(ii==3)then
     540            0 :        n_axest(:)=0 ; n_axest(7)=1 ; n_axest(8)=1 ; n_axest(16)=1 ; n_axest(18)=1
     541            0 :        spgroup=9
     542              :      end if
     543            0 :      if(sum((n_axes-n_axest)**2)==0)exit
     544            0 :      spgroup=0
     545              :    end do
     546              : 
     547              :  case(8)
     548              : 
     549          105 :    n_axest=(/0,0,0,0,2,0,1,1,1,0,  0,0,0,0,0,2,0,0,0,1,  0,0,0,0,0,0,0,0,0,0,0/)
     550         3360 :    if(sum((n_axes-n_axest)**2)==0) spgroup=15
     551          105 :    n_axest=(/0,0,0,0,0,0,1,1,3,0,  0,0,0,0,0,0,0,0,0,3,  0,0,0,0,0,0,0,0,0,0,0/)
     552         3360 :    if(sum((n_axes-n_axest)**2)==0) then
     553            6 :      if(additional_info==1) spgroup=23
     554            6 :      if(additional_info==2) spgroup=24
     555              :    end if
     556          105 :    n_axest=(/0,0,0,0,0,0,1,1,1,0,  0,0,0,0,2,0,0,2,0,1,  0,0,0,0,0,0,0,0,0,0,0/)
     557         3360 :    if(sum((n_axes-n_axest)**2)==0) spgroup=44
     558          105 :    n_axest=(/0,0,0,0,0,0,1,1,1,0,  0,0,0,0,0,4,0,0,0,1,  0,0,0,0,0,0,0,0,0,0,0/)
     559         3360 :    if(sum((n_axes-n_axest)**2)==0) spgroup=45
     560          105 :    n_axest=(/0,0,0,0,0,0,1,1,1,0,  0,0,0,0,1,2,0,1,0,1,  0,0,0,0,0,0,0,0,0,0,0/)
     561         3360 :    if(sum((n_axes-n_axest)**2)==0) spgroup=46
     562          105 :    n_axest=(/0,0,0,0,0,0,1,1,2,0,  0,2,0,0,0,0,0,0,0,0,  0,0,0,0,2,0,0,0,0,0,0/)
     563         3360 :    if(sum((n_axes-n_axest)**2)==0) spgroup=79
     564          105 :    n_axest=(/0,0,0,0,0,0,1,1,2,0,  0,0,0,0,0,0,0,0,0,0,  0,0,0,4,0,0,0,0,0,0,0/)
     565         3360 :    if(sum((n_axes-n_axest)**2)==0) spgroup=80
     566              : 
     567          105 :    n_axest=(/0,4,0,0,0,0,1,1,2,0,  0,0,0,0,0,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     568         3360 :    if(sum((n_axes-n_axest)**2)==0) spgroup=82
     569              : 
     570              :  case(16)
     571              : 
     572          145 :    n_axest=(/0,0,0,0,2,0,1,1,3,0,  0,0,0,0,3,0,0,3,0,3,  0,0,0,0,0,0,0,0,0,0,0/)
     573         4640 :    if(sum((n_axes-n_axest)**2)==0) spgroup=71
     574          145 :    n_axest=(/0,0,0,0,2,0,1,1,3,0,  0,0,0,0,1,4,0,1,0,3,  0,0,0,0,0,0,0,0,0,0,0/)
     575         4640 :    if(sum((n_axes-n_axest)**2)==0) spgroup=72
     576          145 :    n_axest=(/0,0,0,0,2,0,1,1,3,0,  0,0,0,0,0,6,0,0,0,3,  0,0,0,0,0,0,0,0,0,0,0/)
     577         4640 :    if(sum((n_axes-n_axest)**2)==0) spgroup=73
     578          145 :    n_axest=(/0,0,0,0,2,0,1,1,3,0,  0,0,0,0,2,2,0,2,0,3,  0,0,0,0,0,0,0,0,0,0,0/)
     579         4640 :    if(sum((n_axes-n_axest)**2)==0) spgroup=74
     580          145 :    n_axest=(/0,0,0,0,0,0,1,1,6,0,  0,2,0,0,0,0,0,0,0,0,  4,0,0,0,2,0,0,0,0,0,0/)
     581         4640 :    if(sum((n_axes-n_axest)**2)==0) spgroup=97
     582          145 :    n_axest=(/0,0,0,0,0,0,1,1,6,0,  0,0,0,0,0,0,0,0,0,0,  4,0,0,4,0,0,0,0,0,0,0/)
     583         4640 :    if(sum((n_axes-n_axest)**2)==0) spgroup=98
     584          145 :    n_axest=(/0,0,0,0,0,0,1,1,2,0,  0,2,0,0,8,0,0,0,0,0,  0,0,0,0,2,0,0,0,0,0,0/)
     585         4640 :    if(sum((n_axes-n_axest)**2)==0) spgroup=107
     586          145 :    n_axest=(/0,0,0,0,0,0,1,1,2,0,  0,2,0,0,4,4,0,0,0,0,  0,0,0,0,2,0,0,0,0,0,0/)
     587         4640 :    if(sum((n_axes-n_axest)**2)==0) spgroup=108
     588          145 :    n_axest=(/0,0,0,0,0,0,1,1,2,0,  0,0,0,0,4,0,4,0,0,0,  0,0,0,4,0,0,0,0,0,0,0/)
     589         4640 :    if(sum((n_axes-n_axest)**2)==0) spgroup=109
     590          145 :    n_axest=(/0,0,0,0,0,0,1,1,2,0,  0,0,0,0,0,4,4,0,0,0,  0,0,0,4,0,0,0,0,0,0,0/)
     591         4640 :    if(sum((n_axes-n_axest)**2)==0) spgroup=110
     592              : 
     593          145 :    n_axest=(/0,4,0,0,2,0,1,1,2,0,  0,2,0,0,2,0,0,0,0,0,  0,0,0,0,2,0,0,0,0,0,0/)
     594         4640 :    if(sum((n_axes-n_axest)**2)==0) spgroup=87
     595          145 :    n_axest=(/0,4,0,0,2,0,1,1,2,0,  0,0,0,0,0,2,0,0,0,0,  0,0,0,4,0,0,0,0,0,0,0/)
     596         4640 :    if(sum((n_axes-n_axest)**2)==0) spgroup=88
     597          145 :    n_axest=(/0,4,0,0,0,0,1,1,2,0,  0,0,0,0,4,0,0,0,0,0,  4,0,0,0,0,0,0,0,0,0,0/)
     598         4640 :    if(sum((n_axes-n_axest)**2)==0) spgroup=119
     599          145 :    n_axest=(/0,4,0,0,0,0,1,1,2,0,  0,0,0,0,0,4,0,0,0,0,  4,0,0,0,0,0,0,0,0,0,0/)
     600         4640 :    if(sum((n_axes-n_axest)**2)==0) spgroup=120
     601          145 :    n_axest=(/0,4,0,0,0,0,1,1,6,0,  0,0,0,0,4,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     602         4640 :    if(sum((n_axes-n_axest)**2)==0) spgroup=121
     603          145 :    n_axest=(/0,4,0,0,0,0,1,1,6,0,  0,0,0,0,0,0,4,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     604         4640 :    if(sum((n_axes-n_axest)**2)==0) spgroup=122
     605              : 
     606              :  case(24)
     607              : 
     608            2 :    n_axest=(/0,0,0,0,0,0,1,1,3,16, 0,0,0,0,0,0,0,0,0,3,  0,0,0,0,0,0,0,0,0,0,0/)
     609           64 :    if(sum((n_axes-n_axest)**2)==0) then
     610            2 :      if(additional_info==1) spgroup=197
     611            2 :      if(additional_info==2) spgroup=199
     612              :    end if
     613              : 
     614              :  case(32)
     615              : 
     616          164 :    n_axest=(/0,4,0,0,2,0,1,1,6,0,  0,2,0,0,10,0,0,0,0,0, 4,0,0,0,2,0,0,0,0,0,0/)
     617         5248 :    if(sum((n_axes-n_axest)**2)==0) spgroup=139
     618          164 :    n_axest=(/0,4,0,0,2,0,1,1,6,0,  0,2,0,0,6,4,0,0,0,0,  4,0,0,0,2,0,0,0,0,0,0/)
     619         5248 :    if(sum((n_axes-n_axest)**2)==0) spgroup=140
     620          164 :    n_axest=(/0,4,0,0,2,0,1,1,6,0,  0,0,0,0,4,2,4,0,0,0,  4,0,0,4,0,0,0,0,0,0,0/)
     621         5248 :    if(sum((n_axes-n_axest)**2)==0) spgroup=141
     622          164 :    n_axest=(/0,4,0,0,2,0,1,1,6,0,  0,0,0,0,0,6,4,0,0,0,  4,0,0,4,0,0,0,0,0,0,0/)
     623         5248 :    if(sum((n_axes-n_axest)**2)==0) spgroup=142
     624              : 
     625              :  case(48)
     626              : 
     627           12 :    n_axest=(/0,0,16,0,2,0,1,1,3,16,  0,0,0,0,3,0,0,3,0,3,  0,0,0,0,0,0,0,0,0,0,0/)
     628          384 :    if(sum((n_axes-n_axest)**2)==0) spgroup=204
     629           12 :    n_axest=(/0,0,16,0,2,0,1,1,3,16,  0,0,0,0,0,0,0,6,0,3,  0,0,0,0,0,0,0,0,0,0,0/)
     630          384 :    if(sum((n_axes-n_axest)**2)==0) spgroup=206
     631           12 :    n_axest=(/0,0,0,0,0,0,1,1,12,16,  0,6,0,0,0,0,0,0,0,6,  0,0,0,0,6,0,0,0,0,0,0/)
     632          384 :    if(sum((n_axes-n_axest)**2)==0) spgroup=211
     633           12 :    n_axest=(/0,0,0,0,0,0,1,1,12,16,  0,0,0,0,0,0,0,0,0,6,  0,0,0,12,0,0,0,0,0,0,0/)
     634          384 :    if(sum((n_axes-n_axest)**2)==0) spgroup=214
     635           12 :    n_axest=(/0,12,0,0,0,0,1,1,3,16,  0,0,0,0,6,0,0,6,0,3,  0,0,0,0,0,0,0,0,0,0,0/)
     636          384 :    if(sum((n_axes-n_axest)**2)==0) spgroup=217
     637           12 :    n_axest=(/0,12,0,0,0,0,1,1,3,16,  0,0,0,0,0,0,12,0,0,3, 0,0,0,0,0,0,0,0,0,0,0/)
     638          384 :    if(sum((n_axes-n_axest)**2)==0) spgroup=220
     639              : 
     640              :  case(96)
     641              : 
     642              : !    Note that the identification of the mirror planes is still ambiguous for cI
     643          270 :    n_axest=(/0,12,16,0,2,0,1,1,12,16,  0,6,0,0,9,0,0,9,0,6,  0,0,0,0,6,0,0,0,0,0,0/)
     644         8640 :    if(sum((n_axes-n_axest)**2)==0) spgroup=229
     645          270 :    n_axest=(/0,12,16,0,2,0,1,1,12,16,  0,0,0,0,0,0,12,6,0,6, 0,0,0,12,0,0,0,0,0,0,0/)
     646         9338 :    if(sum((n_axes-n_axest)**2)==0) spgroup=230
     647              : 
     648              :  end select
     649              : 
     650          698 : end subroutine symlist_bcc
     651              : !!***
     652              : 
     653              : !!****f* m_symlist/symlist_fcc
     654              : !! NAME
     655              : !! symlist_fcc
     656              : !!
     657              : !! FUNCTION
     658              : !! Determine the space group from the number and type of symmetry operations
     659              : !! FCC case
     660              : !!
     661              : !! INPUTS
     662              : !! nsym=actual number of symmetries
     663              : !! n_axes(31)=array containing the number of all the possible symmetry operations
     664              : !!
     665              : !! OUTPUT
     666              : !! spgroup=space group number ; returns 0 if not found
     667              : !!
     668              : !! NOTES
     669              : !!
     670              : !! The list of symmetry operations is for the conventional cell
     671              : !!
     672              : !! TODO
     673              : !! For the time being there are several groups where uncertainties still exist
     674              : !! This will be solved in the very next ABINIT version
     675              : !!
     676              : !! SOURCE
     677              : 
     678         4342 : subroutine symlist_fcc(nsym,n_axes,spgroup)
     679              : 
     680              : !Arguments ------------------------------------
     681              : !scalars
     682              :  integer,intent(in) :: nsym
     683              :  integer,intent(out) :: spgroup
     684              : !arrays
     685              :  integer,intent(in) :: n_axes(31)
     686              : 
     687              : !Local variables-------------------------------
     688              : !character(len=500) :: message
     689              : !arrays
     690              :  integer :: n_axest(31)
     691              : 
     692              : !**************************************************************************
     693              : 
     694              : !DEBUG
     695              : !write(std_out,*) ' symlist_fcc : enter '
     696              : !write(std_out,*) ' nsym = ', nsym
     697              : !write(std_out,'(a,10i3)' ) ' n_axes(1:10) =',n_axes(1:10)
     698              : !write(std_out,'(a,10i3)' ) ' n_axes(11:20)=',n_axes(11:20)
     699              : !write(std_out,'(a,11i3)' ) ' n_axes(21:31)=',n_axes(21:31)
     700              : !ENDDEBUG
     701              : 
     702         4342 :  spgroup=0
     703              : 
     704         4357 :  select case(nsym)
     705              : 
     706              :  case(16)
     707              : 
     708           15 :    n_axest=(/0,0,0,0,0,0,3,1,6,0,  0,0,0,0,0,0,0,0,0,6,  0,0,0,0,0,0,0,0,0,0,0/)
     709          480 :    if(sum((n_axes-n_axest)**2)==0) spgroup=22
     710           15 :    n_axest=(/0,0,0,0,0,0,3,1,2,0,  0,0,0,0,2,4,0,2,0,2,  0,0,0,0,0,0,0,0,0,0,0/)
     711          480 :    if(sum((n_axes-n_axest)**2)==0) spgroup=42
     712           15 :    n_axest=(/0,0,0,0,0,0,3,1,2,0,  0,0,0,0,0,0,8,0,0,2,  0,0,0,0,0,0,0,0,0,0,0/)
     713          480 :    if(sum((n_axes-n_axest)**2)==0) spgroup=43
     714              : 
     715              : 
     716              :  case(32)
     717              : 
     718           16 :    n_axest=(/0,0,0,0,4,0,3,1,6,0,  0,0,0,0,3,6,0,3,0,6,  0,0,0,0,0,0,0,0,0,0,0/)
     719          512 :    if(sum((n_axes-n_axest)**2)==0) spgroup=69
     720           16 :    n_axest=(/0,0,0,0,4,0,3,1,6,0,  0,0,0,0,0,0,12,0,0,6, 0,0,0,0,0,0,0,0,0,0,0/)
     721          512 :    if(sum((n_axes-n_axest)**2)==0) spgroup=70
     722              : 
     723              :  case(48)
     724              : 
     725           12 :    n_axest=(/0,0,0,0,0,0,3,1,6,32, 0,0,0,0,0,0,0,0,0,6, 0,0,0,0,0,0,0,0,0,0,0/)
     726          384 :    if(sum((n_axes-n_axest)**2)==0) spgroup=196
     727              : 
     728              :  case(96)
     729              : 
     730         1009 :    n_axest=(/0,0,32,0,4,0,3,1,6,32,  0,0,0,0,3,0,0,9,0,6,   0,0,0,0,0,0,0,0,0,0,0/)
     731        32288 :    if(sum((n_axes-n_axest)**2)==0) spgroup=202
     732         1009 :    n_axest=(/0,0,32,0,4,0,3,1,6,32,  0,0,0,0,0,0,12,0,0,6,  0,0,0,0,0,0,0,0,0,0,0/)
     733        32288 :    if(sum((n_axes-n_axest)**2)==0) spgroup=203
     734         1009 :    n_axest=(/0,0,0,0,0,0,3,1,18,32,  0,12,0,0,0,0,0,0,0,18, 0,0,0,0,12,0,0,0,0,0,0/)
     735        32288 :    if(sum((n_axes-n_axest)**2)==0) spgroup=209
     736         1009 :    n_axest=(/0,0,0,0,0,0,3,1,18,32,  0,0,0,0,0,0,0,0,0,18,  0,0,0,24,0,0,0,0,0,0,0/)
     737        32288 :    if(sum((n_axes-n_axest)**2)==0) spgroup=210
     738         1009 :    n_axest=(/0,24,0,0,0,0,3,1,6,32,  0,0,0,0,24,0,0,0,0,6,   0,0,0,0,0,0,0,0,0,0,0/)
     739        32288 :    if(sum((n_axes-n_axest)**2)==0) spgroup=216
     740         1009 :    n_axest=(/0,24,0,0,0,0,3,1,6,32,  0,0,0,0,0,0,0,24,0,6,   0,0,0,0,0,0,0,0,0,0,0/)
     741        32288 :    if(sum((n_axes-n_axest)**2)==0) spgroup=219
     742              : 
     743              : 
     744              :  case(192)
     745              : 
     746         3290 :    n_axest=(/0,24,32,0,4,0,3,1,18,32,  0,12,0,0,27,0,0,9,0,18, 0,0,0,0,12,0,0,0,0,0,0/)
     747       105280 :    if(sum((n_axes-n_axest)**2)==0) spgroup=225
     748         3290 :    n_axest=(/0,24,32,0,4,0,3,1,18,32,  0,12,0,0,3,0,0,33,0,18,  0,0,0,0,12,0,0,0,0,0,0/)
     749       105280 :    if(sum((n_axes-n_axest)**2)==0) spgroup=226
     750         3290 :    n_axest=(/0,24,32,0,4,0,3,1,18,32,  0,0,0,0,24,0,12,0,0,18,  0,0,0,24,0,0,0,0,0,0,0/)
     751       105280 :    if(sum((n_axes-n_axest)**2)==0) spgroup=227
     752         3290 :    n_axest=(/0,24,32,0,4,0,3,1,18,32,  0,0,0,0,0,0,12,24,0,18,  0,0,0,24,0,0,0,0,0,0,0/)
     753       109622 :    if(sum((n_axes-n_axest)**2)==0) spgroup=228
     754              : 
     755              :  end select
     756              : 
     757         4342 : end subroutine symlist_fcc
     758              : !!***
     759              : 
     760              : !!****f* m_symlist/symlist_others
     761              : !! NAME
     762              : !! symlist_others
     763              : !!
     764              : !! FUNCTION
     765              : !! Determine the space group from the number and type of symmetry operations
     766              : !! Non primitive, non BCC, non FCC case : rhombohedral or face centered
     767              : !!
     768              : !! INPUTS
     769              : !! brvltt=Bravais lattice type
     770              : !! nsym=actual number of symmetries
     771              : !! n_axes(31)=array containing the number of all the possible symmetry operations
     772              : !!
     773              : !! OUTPUT
     774              : !! spgroup=space group number ; returns 0 if not found
     775              : !!
     776              : !! NOTES
     777              : !!
     778              : !! The list of symmetry operations is for the conventional cell
     779              : !!
     780              : !! TODO
     781              : !! For the time being there are several groups where uncertainties still exist
     782              : !! This will be solved in the very next ABINIT version
     783              : !!
     784              : !! SOURCE
     785              : 
     786         1401 : subroutine symlist_others(brvltt,nsym,n_axes,spgroup)
     787              : 
     788              : !Arguments ------------------------------------
     789              : !scalars
     790              :  integer,intent(in) :: brvltt,nsym
     791              :  integer,intent(out) :: spgroup
     792              : !arrays
     793              :  integer,intent(in) :: n_axes(31)
     794              : 
     795              : !Local variables-------------------------------
     796              : !character(len=500) :: message
     797              : !arrays
     798              :  integer :: n_axest(31)
     799              : 
     800              : !**************************************************************************
     801              : 
     802              : !DEBUG
     803              : !write(std_out,*) ' symlist_others : enter '
     804              : !write(std_out,*) ' nsym = ', nsym
     805              : !write(std_out,*) ' brvltt = ',brvltt
     806              : !write(std_out,'(a,10i3)' ) ' n_axes(1:10) =',n_axes(1:10)
     807              : !write(std_out,'(a,10i3)' ) ' n_axes(11:20)=',n_axes(11:20)
     808              : !write(std_out,'(a,11i3)' ) ' n_axes(21:31)=',n_axes(21:31)
     809              : !ENDDEBUG
     810              : 
     811         1401 :  spgroup=0
     812              : 
     813         1401 :  if(brvltt==4 .or. brvltt==5 .or. brvltt==6)then       !  A, B, C face centered
     814              : 
     815          879 :    select case(nsym)
     816              : 
     817              :    case(4)
     818              : 
     819          286 :      n_axest=(/0,0,0,0,0,0,1,1,1,0,  0,0,0,0,0,0,0,0,0,1,  0,0,0,0,0,0,0,0,0,0,0/)
     820         9152 :      if(sum((n_axes-n_axest)**2)==0) spgroup=5
     821          286 :      n_axest=(/0,0,0,0,0,0,1,1,0,0,  0,0,0,0,1,1,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     822         9152 :      if(sum((n_axes-n_axest)**2)==0) spgroup=8
     823          286 :      n_axest=(/0,0,0,0,0,0,1,1,0,0,  0,0,0,0,0,1,0,1,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     824         9152 :      if(sum((n_axes-n_axest)**2)==0) spgroup=9
     825              : 
     826              :    case(8)
     827              : 
     828          212 :      n_axest=(/0,0,0,0,0,0,1,1,0,0,  0,0,0,0,1,2,0,1,0,2,  0,0,0,0,0,0,0,0,0,0,0/)
     829         6784 :      if(sum((n_axes-n_axest)**2)==0) spgroup=36
     830              : 
     831          212 :      n_axest=(/0,0,0,0,2,0,1,1,1,0,  0,0,0,0,1,1,0,0,0,1,  0,0,0,0,0,0,0,0,0,0,0/)
     832         6784 :      if(sum((n_axes-n_axest)**2)==0) spgroup=12
     833          212 :      n_axest=(/0,0,0,0,2,0,1,1,1,0,  0,0,0,0,0,1,0,1,0,1,  0,0,0,0,0,0,0,0,0,0,0/)
     834         6784 :      if(sum((n_axes-n_axest)**2)==0) spgroup=15
     835          212 :      n_axest=(/0,0,0,0,0,0,1,1,1,0,  0,0,0,0,2,1,0,1,0,1,  0,0,0,0,0,0,0,0,0,0,0/)
     836         6784 :      if(sum((n_axes-n_axest)**2)==0) spgroup=38
     837          212 :      n_axest=(/0,0,0,0,0,0,1,1,1,0,  0,0,0,0,1,3,0,0,0,1,  0,0,0,0,0,0,0,0,0,0,0/)
     838         6784 :      if(sum((n_axes-n_axest)**2)==0) spgroup=39
     839          212 :      n_axest=(/0,0,0,0,0,0,1,1,1,0,  0,0,0,0,1,1,0,2,0,1,  0,0,0,0,0,0,0,0,0,0,0/)
     840         6784 :      if(sum((n_axes-n_axest)**2)==0) spgroup=40
     841          212 :      n_axest=(/0,0,0,0,0,0,1,1,1,0,  0,0,0,0,0,3,0,1,0,1,  0,0,0,0,0,0,0,0,0,0,0/)
     842         6784 :      if(sum((n_axes-n_axest)**2)==0) spgroup=41
     843              : 
     844          212 :      n_axest=(/0,0,0,0,0,0,1,1,2,0,  0,0,0,0,0,0,0,0,0,4,  0,0,0,0,0,0,0,0,0,0,0/)
     845         6784 :      if(sum((n_axes-n_axest)**2)==0) spgroup=20
     846          212 :      n_axest=(/0,0,0,0,0,0,1,1,2,0,  0,0,0,0,2,2,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     847         6784 :      if(sum((n_axes-n_axest)**2)==0) spgroup=35
     848          212 :      n_axest=(/0,0,0,0,0,0,1,1,2,0,  0,0,0,0,0,2,0,2,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     849         6784 :      if(sum((n_axes-n_axest)**2)==0) spgroup=37
     850              : 
     851          212 :      n_axest=(/0,0,0,0,0,0,1,1,4,0,  0,0,0,0,0,0,0,0,0,2,  0,0,0,0,0,0,0,0,0,0,0/)
     852         6784 :      if(sum((n_axes-n_axest)**2)==0) spgroup=21
     853              : 
     854              :    case(16)
     855              : 
     856           95 :      n_axest=(/0,0,0,0,2,0,1,1,2,0,  0,0,0,0,2,2,0,2,0,4,  0,0,0,0,0,0,0,0,0,0,0/)
     857         3040 :      if(sum((n_axes-n_axest)**2)==0) spgroup=63
     858           95 :      n_axest=(/0,0,0,0,2,0,1,1,2,0,  0,0,0,0,1,4,0,1,0,4,  0,0,0,0,0,0,0,0,0,0,0/)
     859         3040 :      if(sum((n_axes-n_axest)**2)==0) spgroup=64
     860              : 
     861           95 :      n_axest=(/0,0,0,0,2,0,1,1,4,0,  0,0,0,0,3,2,0,1,0,2,  0,0,0,0,0,0,0,0,0,0,0/)
     862         3040 :      if(sum((n_axes-n_axest)**2)==0) spgroup=65
     863           95 :      n_axest=(/0,0,0,0,2,0,1,1,4,0,  0,0,0,0,2,4,0,0,0,2,  0,0,0,0,0,0,0,0,0,0,0/)
     864         3040 :      if(sum((n_axes-n_axest)**2)==0) spgroup=67
     865           95 :      n_axest=(/0,0,0,0,2,0,1,1,4,0,  0,0,0,0,0,4,0,2,0,2,  0,0,0,0,0,0,0,0,0,0,0/)
     866         3040 :      if(sum((n_axes-n_axest)**2)==0) spgroup=68
     867           95 :      n_axest=(/0,0,0,0,2,0,1,1,4,0,  0,0,0,0,1,2,0,3,0,2,  0,0,0,0,0,0,0,0,0,0,0/)
     868         3633 :      if(sum((n_axes-n_axest)**2)==0) spgroup=66
     869              : 
     870              :    end select
     871              : 
     872          808 :  else if(brvltt==7)then                ! Rhombohedral lattice
     873              : 
     874          814 :    select case(nsym)
     875              : 
     876              :    case(3)
     877              : 
     878            6 :      n_axest=(/0,0,0,0,0,0,0,1,0,2,  0,0,0,0,0,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     879          192 :      if(sum((n_axes-n_axest)**2)==0) spgroup=146
     880              : 
     881              :    case(6)
     882              : 
     883          293 :      n_axest=(/0,0,2,0,1,0,0,1,0,2,  0,0,0,0,0,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     884         9376 :      if(sum((n_axes-n_axest)**2)==0) spgroup=148
     885          293 :      n_axest=(/0,0,0,0,0,0,0,1,3,2,  0,0,0,0,0,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     886         9376 :      if(sum((n_axes-n_axest)**2)==0) spgroup=155
     887          293 :      n_axest=(/0,0,0,0,0,0,0,1,0,2,  0,0,0,0,3,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     888         9376 :      if(sum((n_axes-n_axest)**2)==0) spgroup=160
     889          293 :      n_axest=(/0,0,0,0,0,0,0,1,0,2,  0,0,0,0,0,3,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     890         9376 :      if(sum((n_axes-n_axest)**2)==0) spgroup=161
     891              : 
     892              :    case(12)
     893              : 
     894          492 :      n_axest=(/0,0,2,0,1,0,0,1,3,2,  0,0,0,0,3,0,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     895        15744 :      if(sum((n_axes-n_axest)**2)==0) spgroup=166
     896          492 :      n_axest=(/0,0,2,0,1,0,0,1,3,2,  0,0,0,0,0,3,0,0,0,0,  0,0,0,0,0,0,0,0,0,0,0/)
     897        16552 :      if(sum((n_axes-n_axest)**2)==0) spgroup=167
     898              : 
     899              :    end select
     900              : 
     901              :  end if
     902              : 
     903         1401 : end subroutine symlist_others
     904              : !!***
     905              : 
     906              : end module m_symlist
     907              : !!***
        

Generated by: LCOV version 2.3-1