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-11-08 08:00:28 Functions: 100.0 % 4 4
Branches: 97.7 % 983 960

             Branch data     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                 :        5255 : 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                 :        5255 :  spgroup=0
      91                 :             : 
      92                 :        6587 :  select case(nsym)
      93                 :             : 
      94                 :             :  case(1)
      95                 :             : 
      96                 :        1332 :    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   [ +  +  +  - ]:       42624 :    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                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=47
     231                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=48
     233                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=49
     235                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=50
     237                 :             : 
     238                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=51
     240                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=52
     242                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=53
     244                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=54
     246                 :             : 
     247                 :         881 :    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   [ +  +  +  + ]:       28192 :    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                 :         881 :    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   [ +  +  +  + ]:       28192 :    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                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=58
     259                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=59
     261                 :             : 
     262                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=61
     264                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=62
     266                 :             : 
     267                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=89
     269                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=90
     271                 :             : 
     272                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=91
     274                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=95
     276                 :             : 
     277                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=92
     279                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=96
     281                 :             : 
     282                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=93
     284                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=94
     286                 :             : 
     287                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=99
     289                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=100
     291                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=101
     293                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=102
     295                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=103
     297                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=104
     299                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=105
     301                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=106
     303                 :             : 
     304                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=83
     306                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=84
     308                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=85
     310                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=86
     312                 :             : 
     313                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=111
     315                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=112
     317                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=113
     319                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=114
     321                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=115
     323                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=116
     325                 :         881 :    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   [ +  +  +  + ]:       28192 :    if(sum((n_axes-n_axest)**2)==0) spgroup=117
     327                 :         881 :    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   [ +  +  +  + ]:       28192 :    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                 :         206 :    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   [ +  +  +  + ]:        6592 :    if(sum((n_axes-n_axest)**2)==0) spgroup=191
     427                 :         206 :    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   [ +  +  +  + ]:        6592 :    if(sum((n_axes-n_axest)**2)==0) spgroup=192
     429                 :         206 :    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   [ +  +  +  + ]:        6592 :    if(sum((n_axes-n_axest)**2)==0) spgroup=193
     431                 :         206 :    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   [ +  +  +  + ]:        6592 :    if(sum((n_axes-n_axest)**2)==0) spgroup=194
     433                 :             : 
     434                 :             : 
     435                 :         206 :    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   [ +  +  +  + ]:        6592 :    if(sum((n_axes-n_axest)**2)==0) spgroup=200
     437                 :         206 :    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   [ +  +  +  + ]:        6592 :    if(sum((n_axes-n_axest)**2)==0) spgroup=201
     439                 :         206 :    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   [ +  +  +  + ]:        6592 :    if(sum((n_axes-n_axest)**2)==0) spgroup=205
     441                 :         206 :    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   [ +  +  +  + ]:        6592 :    if(sum((n_axes-n_axest)**2)==0) spgroup=207
     443                 :         206 :    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   [ +  +  +  + ]:        6592 :    if(sum((n_axes-n_axest)**2)==0) spgroup=208
     445                 :         206 :    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   [ +  +  +  + ]:        6592 :    if(sum((n_axes-n_axest)**2)==0) spgroup=212
     447                 :         206 :    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   [ +  +  +  + ]:        6592 :    if(sum((n_axes-n_axest)**2)==0) spgroup=213
     449                 :             : 
     450                 :         206 :    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   [ +  +  +  + ]:        6592 :    if(sum((n_axes-n_axest)**2)==0) spgroup=215
     452                 :         206 :    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   [ +  +  +  + ]:        6592 :    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   [ +  +  +  +  :       34503 :    if(sum((n_axes-n_axest)**2)==0) spgroup=224
          +  +  +  +  +  
          +  -  +  +  +  
                      + ]
     465                 :             : 
     466                 :             :  end select
     467                 :             : 
     468                 :        5255 : 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                 :        4375 : 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                 :        4375 :  spgroup=0
     703                 :             : 
     704                 :        4390 :  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                 :        1029 :    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   [ +  +  +  + ]:       32928 :    if(sum((n_axes-n_axest)**2)==0) spgroup=202
     732                 :        1029 :    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   [ +  +  +  + ]:       32928 :    if(sum((n_axes-n_axest)**2)==0) spgroup=203
     734                 :        1029 :    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   [ +  +  +  + ]:       32928 :    if(sum((n_axes-n_axest)**2)==0) spgroup=209
     736                 :        1029 :    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   [ +  +  +  + ]:       32928 :    if(sum((n_axes-n_axest)**2)==0) spgroup=210
     738                 :        1029 :    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   [ +  +  +  + ]:       32928 :    if(sum((n_axes-n_axest)**2)==0) spgroup=216
     740                 :        1029 :    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   [ +  +  +  + ]:       32928 :    if(sum((n_axes-n_axest)**2)==0) spgroup=219
     742                 :             : 
     743                 :             : 
     744                 :             :  case(192)
     745                 :             : 
     746                 :        3303 :    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   [ +  +  +  + ]:      105696 :    if(sum((n_axes-n_axest)**2)==0) spgroup=225
     748                 :        3303 :    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   [ +  +  +  + ]:      105696 :    if(sum((n_axes-n_axest)**2)==0) spgroup=226
     750                 :        3303 :    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   [ +  +  +  + ]:      105696 :    if(sum((n_axes-n_axest)**2)==0) spgroup=227
     752                 :        3303 :    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   [ +  +  +  +  :      110071 :    if(sum((n_axes-n_axest)**2)==0) spgroup=228
          +  -  +  +  +  
                      + ]
     754                 :             : 
     755                 :             :  end select
     756                 :             : 
     757                 :        4375 : 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                 :        1411 : 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                 :        1411 :  spgroup=0
     812                 :             : 
     813         [ +  + ]:        1411 :  if(brvltt==4 .or. brvltt==5 .or. brvltt==6)then       !  A, B, C face centered
     814                 :             : 
     815                 :         885 :    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                 :         218 :      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   [ +  +  +  + ]:        6976 :      if(sum((n_axes-n_axest)**2)==0) spgroup=36
     830                 :             : 
     831                 :         218 :      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   [ +  +  +  + ]:        6976 :      if(sum((n_axes-n_axest)**2)==0) spgroup=12
     833                 :         218 :      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   [ +  +  +  + ]:        6976 :      if(sum((n_axes-n_axest)**2)==0) spgroup=15
     835                 :         218 :      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   [ +  +  +  + ]:        6976 :      if(sum((n_axes-n_axest)**2)==0) spgroup=38
     837                 :         218 :      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   [ +  +  +  + ]:        6976 :      if(sum((n_axes-n_axest)**2)==0) spgroup=39
     839                 :         218 :      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   [ +  +  +  + ]:        6976 :      if(sum((n_axes-n_axest)**2)==0) spgroup=40
     841                 :         218 :      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   [ +  +  +  + ]:        6976 :      if(sum((n_axes-n_axest)**2)==0) spgroup=41
     843                 :             : 
     844                 :         218 :      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   [ +  +  +  + ]:        6976 :      if(sum((n_axes-n_axest)**2)==0) spgroup=20
     846                 :         218 :      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   [ +  +  +  + ]:        6976 :      if(sum((n_axes-n_axest)**2)==0) spgroup=35
     848                 :         218 :      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   [ +  +  +  + ]:        6976 :      if(sum((n_axes-n_axest)**2)==0) spgroup=37
     850                 :             : 
     851                 :         218 :      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   [ +  +  +  + ]:        6976 :      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   [ +  +  +  -  :        3639 :      if(sum((n_axes-n_axest)**2)==0) spgroup=66
             +  +  +  + ]
     869                 :             : 
     870                 :             :    end select
     871                 :             : 
     872         [ +  - ]:         812 :  else if(brvltt==7)then                ! Rhombohedral lattice
     873                 :             : 
     874                 :         818 :    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                 :         496 :      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   [ +  +  +  + ]:       15872 :      if(sum((n_axes-n_axest)**2)==0) spgroup=166
     896                 :         496 :      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   [ +  +  +  +  :       16684 :      if(sum((n_axes-n_axest)**2)==0) spgroup=167
             +  +  +  + ]
     898                 :             : 
     899                 :             :    end select
     900                 :             : 
     901                 :             :  end if
     902                 :             : 
     903                 :        1411 : end subroutine symlist_others
     904                 :             : !!***
     905                 :             : 
     906                 :             : end module m_symlist
     907                 :             : !!***
        

Generated by: LCOV version 2.3-1