TABLE OF CONTENTS


ABINIT/m_symlist [ Modules ]

[ Top ] [ 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