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