TABLE OF CONTENTS


ABINIT/symlist_fcc [ Functions ]

[ Top ] [ Functions ]

NAME

 symlist_fcc

FUNCTION

 Determine the space group from the number and type of symmetry operations
 FCC case

COPYRIGHT

 Copyright (C) 2000-2018 ABINIT group (RC)
 This file is distributed under the terms of the
 GNU General Public License, see ~abinit/COPYING
 or http://www.gnu.org/copyleft/gpl.txt .
 For the initials of contributors, see ~abinit/doc/developers/contributors.txt .

INPUTS

 nsym=actual number of symmetries
 n_axes(31)=array containing the number of all the possible symmetry operations

OUTPUT

 spgroup=space group number ; returns 0 if not found

NOTES

 The list of symmetry operations is for the conventional cell

TODO

 For the time being there are several groups where uncertainties still exist
 This will be solved in the very next ABINIT version

PARENTS

      symspgr

CHILDREN

SOURCE

 39 #if defined HAVE_CONFIG_H
 40 #include "config.h"
 41 #endif
 42 
 43 #include "abi_common.h"
 44 
 45 
 46 subroutine symlist_fcc(nsym,n_axes,spgroup)
 47 
 48  use defs_basis
 49  use m_profiling_abi
 50 
 51 !This section has been created automatically by the script Abilint (TD).
 52 !Do not modify the following lines by hand.
 53 #undef ABI_FUNC
 54 #define ABI_FUNC 'symlist_fcc'
 55 !End of the abilint section
 56 
 57  implicit none
 58 
 59 !Arguments ------------------------------------
 60 !scalars
 61  integer,intent(in) :: nsym
 62  integer,intent(out) :: spgroup
 63 !arrays
 64  integer,intent(in) :: n_axes(31)
 65 
 66 !Local variables-------------------------------
 67 !character(len=500) :: message
 68 !arrays
 69  integer :: n_axest(31)
 70 
 71 !**************************************************************************
 72 
 73 !DEBUG
 74 !write(std_out,*) ' symlist_fcc : enter '
 75 !write(std_out,*) ' nsym = ', nsym
 76 !write(std_out,'(a,10i3)' ) ' n_axes(1:10) =',n_axes(1:10)
 77 !write(std_out,'(a,10i3)' ) ' n_axes(11:20)=',n_axes(11:20)
 78 !write(std_out,'(a,11i3)' ) ' n_axes(21:31)=',n_axes(21:31)
 79 !ENDDEBUG
 80 
 81  spgroup=0
 82 
 83  select case(nsym)
 84 
 85  case(16)
 86 
 87    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/)
 88    if(sum((n_axes-n_axest)**2)==0) spgroup=22
 89    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/)
 90    if(sum((n_axes-n_axest)**2)==0) spgroup=42
 91    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/)
 92    if(sum((n_axes-n_axest)**2)==0) spgroup=43
 93 
 94 
 95  case(32)
 96 
 97    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/)
 98    if(sum((n_axes-n_axest)**2)==0) spgroup=69
 99    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/)
100    if(sum((n_axes-n_axest)**2)==0) spgroup=70
101 
102  case(48)
103 
104    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/)
105    if(sum((n_axes-n_axest)**2)==0) spgroup=196
106 
107  case(96)
108 
109    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/)
110    if(sum((n_axes-n_axest)**2)==0) spgroup=202
111    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/)
112    if(sum((n_axes-n_axest)**2)==0) spgroup=203
113    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/)
114    if(sum((n_axes-n_axest)**2)==0) spgroup=209
115    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/)
116    if(sum((n_axes-n_axest)**2)==0) spgroup=210
117    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/)
118    if(sum((n_axes-n_axest)**2)==0) spgroup=216
119    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/)
120    if(sum((n_axes-n_axest)**2)==0) spgroup=219
121 
122 
123  case(192)
124 
125    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/)
126    if(sum((n_axes-n_axest)**2)==0) spgroup=225
127    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/)
128    if(sum((n_axes-n_axest)**2)==0) spgroup=226
129    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/)
130    if(sum((n_axes-n_axest)**2)==0) spgroup=227
131    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/)
132    if(sum((n_axes-n_axest)**2)==0) spgroup=228
133 
134  end select
135 
136 end subroutine symlist_fcc