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