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