Correction of the Hall symbol of the Ibam space group in the symmetry tables....

Correction of the Hall symbol of the Ibam space group in the symmetry tables. New version of the space_group_info.f90 example program.
parent 565445db
Pipeline #9313 passed with stages
in 12 minutes and 58 seconds
......@@ -26,15 +26,14 @@ rem ****---- Absoft Compiler ----****
rem
rem ****---- Lahey Compiler ----****
:LF95
lf95 -c space_group_info.f90 -info -o1 -chk -mod ".;C:\crysFML\lahey\libC"
lf95 *.obj -out space_group_info -o1 -lib C:\crysFML\lahey\libC\crysFML -chk
lf95 -c space_group_info.f90 -info -o1 -chk -mod ".;%CRYSFML%\lahey\libC"
lf95 *.obj -out space_group_info -o1 -lib %CRYSFML%\lahey\libC\crysFML -chk
goto END
rem
rem ****---- Intel Compiler ----****
:IFORT
ifort /c space_group_info.f90 /O2 /nologo /IC:\CrysFML\ifort\LibC
ifort /exe:space_group_info *.obj C:\CrysFML\ifort\LibC\crysfml.lib
rem link /subsystem:console /out:space_group_info.exe *.obj C:\CrysFML\ifort\LibC\crysfml.lib
ifort /c space_group_info.f90 /O2 /nologo /I%CRYSFML%\ifort64\LibC
ifort /exe:space_group_info *.obj %CRYSFML%\ifort64\LibC\crysfml.lib
goto END
rem
rem **---- G95 Compiler ----**
......
......@@ -32,9 +32,9 @@ rem ****---- Lahey Compiler ----****
rem
rem ****---- Intel Compiler ----****
:IFORT
ifort /c subgroups.f90 /O2 /nologo /IC:\CrysFML\ifort\LibC
ifort /c subgroups.f90 /O2 /nologo /I%CRYSFML%\ifort\LibC
rem ifort /exe:subgroups *.obj C:\CrysFML\ifort\LibC\crysfml.lib
link /subsystem:console /out:subgroups.exe *.obj C:\CrysFML\ifort\LibC\crysfml.lib
link /subsystem:console /out:subgroups.exe *.obj %CRYSFML%\ifort\LibC\crysfml.lib
goto END
rem
rem **---- G95 Compiler ----**
......
!!----
!!---- Program: SPG_INFO
!!---- Example of simple program using CFML
!!----
!!---- Author: Juan Rodriguez-Carvajal
!!---- Revision: February-2017
!!
Program SPG_Info
!---- Use Modules ----!
use CFML_Crystallographic_Symmetry, only: Space_Group_Type, set_SpaceGroup, &
Write_SpaceGroup, Symmetry_Symbol, &
Get_Generators_From_SpGSymbol, &
err_symm, err_symm_mess
!---- Variables ----!
implicit none
character(len=20) :: spgr
type(Space_Group_type) :: grp_espacial
integer, dimension(10) :: point_op
character(len=50), dimension(10) :: gen
character(len=70) :: op_symb
character(len=6), dimension(10) :: sgen
integer :: ngen,i,j
!---- Procedure ----!
do
write(unit=*,fmt="(a)") " => Enter a space group: "
write(unit=*,fmt="(a)",advance="no") " => Space Group (HM/Hall symbol or number): "
read(unit=*,fmt="(a)") spgr
if (len_trim(spgr)==0) exit
!> Setting the Space Group Information
call set_spacegroup(spgr,grp_espacial)
if(err_symm) then
write(unit=*,fmt="(a)") " Warning: "//trim(err_symm_mess)
cycle
end if
!> Writing the SpaceGroup Information
call Write_SpaceGroup(grp_espacial, full=.true.)
! Pointing out the operators in the HM-symbol
call Get_Generators_From_SpGSymbol(grp_espacial,gen,point_op,ngen)
if(ngen > 0 .and. point_op(1) > 0) then
write(unit=*,fmt="(/,a,i3,a)") " => Generators of the Space Group: # ",grp_espacial%NumSpg," "//trim(grp_espacial%SPG_Symb)
do i=1,ngen
j=point_op(i)
call Symmetry_Symbol(grp_espacial%SymopSymb(j),op_symb)
write(unit=*,fmt="(a,i3,a)") " Generator #",i, " "//gen(i)(1:30)//"Symbol: "//trim(op_symb)
end do
end if
write(unit=*,fmt="(a)") " "
end do
End Program SPG_Info
!!----
!!---- Program: SPG_INFO
!!---- Example of simple program using CFML
!!----
!!---- Author: Juan Rodriguez-Carvajal
!!---- Revision: February-2017
!!
Program SPG_Info
!---- Use Modules ----!
use CFML_Crystallographic_Symmetry, only: Space_Group_Type, set_SpaceGroup, &
Write_SpaceGroup, Symmetry_Symbol, &
Get_Generators_From_SpGSymbol, &
err_symm, err_symm_mess
!---- Variables ----!
implicit none
character(len=120) :: spgr
type(Space_Group_type) :: grp_espacial
integer, dimension(20) :: point_op
character(len=50), dimension(20) :: gen
character(len=70) :: op_symb
character(len=6), dimension(20) :: sgen
integer :: ngen,i,j
!---- Procedure ----!
do
write(unit=*,fmt="(a)") " => Enter a space group: "
write(unit=*,fmt="(a)",advance="no") " => Space Group (HM/Hall symbol, number or list of generators): "
read(unit=*,fmt="(a)") spgr
if (len_trim(spgr)==0) exit
if(index(spgr,"x") /= 0 .and. index(spgr,"y") /= 0 .and. index(spgr,"z") /= 0) then
ngen=0
do
i=index(spgr,";")
if(i == 0) then
ngen=ngen+1
gen(ngen)=adjustl(spgr)
exit
end if
ngen=ngen+1
gen(ngen) = adjustl(spgr(1:i-1))
spgr=adjustl(spgr(i+1:))
end do
call set_spacegroup(spgr,grp_espacial,gen,ngen,"gen")
else
!> Setting the Space Group Information
call set_spacegroup(spgr,grp_espacial)
end if
if(err_symm) then
write(unit=*,fmt="(a)") " Warning: "//trim(err_symm_mess)
cycle
end if
!> Writing the SpaceGroup Information
call Write_SpaceGroup(grp_espacial, full=.true.)
! Pointing out the operators in the HM-symbol
call Get_Generators_From_SpGSymbol(grp_espacial,gen,point_op,ngen)
if(ngen > 0 .and. point_op(1) > 0) then
write(unit=*,fmt="(/,a,i3,a)") " => Generators of the Space Group: # ",grp_espacial%NumSpg," "//trim(grp_espacial%SPG_Symb)
do i=1,ngen
j=point_op(i)
call Symmetry_Symbol(grp_espacial%SymopSymb(j),op_symb)
write(unit=*,fmt="(a,i3,a)") " Generator #",i, " "//gen(i)(1:30)//"Symbol: "//trim(op_symb)
end do
end if
write(unit=*,fmt="(a)") " "
end do
End Program SPG_Info
......@@ -1548,7 +1548,7 @@
spgr_info_type( 70,"F D D D:1 ","F 2 2 -1d ", 3,10, (/ 0, 0, 0, 3, 6, 24/),"1 ") , &
spgr_info_type( 70,"F D D D ","-F 2uv 2vw ", 3,10, (/ 0,-3, 0, 3, 3, 24/),"2 ") , &
spgr_info_type( 71,"I M M M ","-I 2 2 ", 3,10, (/ 0, 0, 0, 6, 12, 12/)," ") , &
spgr_info_type( 72,"I B A M ","-I 2 2c ", 3,10, (/ 0, 0, 0, 6, 12, 12/)," ") , &
spgr_info_type( 72,"I B A M ","-I 2 2ab ", 3,10, (/ 0, 0, 0, 6, 12, 12/)," ") , &
spgr_info_type( 72,"I M C B ","-I 2a 2 ", 3,10, (/ 0, 0, 0, 12, 6, 12/),"cab ") , &
spgr_info_type( 72,"I C M A:1 ","I 2 2 -1b ", 3,10, (/ 0, 0, 0, 12, 12, 6/)," ") , &
spgr_info_type( 72,"I C M A ","-I 2b 2b ", 3,10, (/ 0, 0, 0, 12, 12, 6/),"bca ") , &
......
......@@ -2507,7 +2507,7 @@
!!----
!!---- Determines the Hall symbol. In general this routine try to obtain
!!---- the Hall symbol from generators so you need call Get_So_from_Gener
!!---- before and call Set_Spgr_Info.It doesn't work for arbitrary settings.
!!---- before and call Set_Spgr_Info. It doesn't work for arbitrary settings.
!!---- If one wants to use arbitrary settings the subroutine Get_GenSymb_from_Gener
!!----
!!---- Update: February - 2005
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment