Commit cfdc01a7 authored by Javier Gonzalez-Platas's avatar Javier Gonzalez-Platas
parents 585a1cdf 03124aa5
Pipeline #7424 failed with stages
in 6 minutes and 55 seconds
......@@ -172,7 +172,7 @@ Module CFML_EoS
!!---- Update: 23/09/2016
!!
Type, public :: EoS_Type
character(len=80) :: Title=" " ! Descriptive title of EoS, set by user
character(len=80) :: Title=" " ! Descriptive title of EoS, set by user
character(len=20) :: System=" " ! Crystal system name
character(len=15) :: Model=" " ! Murnaghan, Birch-Murnaghan, Vinet, Natural-Strain
character(len=20) :: TModel=" " ! Name for thermal model
......@@ -225,7 +225,7 @@ Module CFML_EoS
character(len=30) :: system ! Crystal system name, including setting info (e.g. b-unique for mono)
type(EoS_Type), allocatable, dimension(:) :: EoS ! EoS Parameters
End Type EoS_List_Type
!!----
!!---- TYPE :: EOS_CELL_TYPE
!!--..
......@@ -234,13 +234,13 @@ Module CFML_EoS
Type, public :: EoS_Cell_Type
integer :: N=0 ! Max index of used EoS in List - depends on crystal system: 6 for triclinic or mono, 3 for rest
character(len=30) :: system ! Crystal system name, including setting info (e.g. b-unique for mono)
type(EoS_Type),dimension(0:6) :: EoS ! EoS Parameters for V,a,b,c,d100,d010,d001
type(Eos_type) :: eosc ! The common factors to all EoS in an EoS
integer,dimension(0:6) :: loaded = 0 ! 0 when absent, 1 when eos present, 2 set by symmetry, 3 when possible to calc (set by set_cell_types)
type(EoS_Type),dimension(0:6) :: EoS ! EoS Parameters for V,a,b,c,d100,d010,d001
type(Eos_type) :: eosc ! The common factors to all EoS in an EoS
integer,dimension(0:6) :: loaded = 0 ! 0 when absent, 1 when eos present, 2 set by symmetry, 3 when possible to calc (set by set_cell_types)
character(len=1),dimension(0:6,3) :: cout = ' ' ! output array for reporting PV, VT and PVT types of EoS
End Type EoS_Cell_Type
End Type EoS_Cell_Type
!!----
!!---- TYPE :: EOS_DATA_TYPE
!!--..
......@@ -6257,9 +6257,9 @@ Contains
else if(index(text,'COMMENT') /= 0)then
idoc=idoc+1
if(idoc <= size(eos%doc))eos%doc(idoc)=trim(text(c:))
else if(index(text,'SYSTEM') /= 0)then
if(idoc <= size(eos%doc))eos%doc(idoc)=trim(text(c:))
else if(index(text,'SYSTEM') /= 0)then
eos%system=trim(adjustl(text(c:)))
else if(index(text,'MODEL') /= 0)then
......@@ -7505,9 +7505,9 @@ Contains
write(unit=lun,fmt='(a)') 'Comment ='//trim(eos%doc(i))
end if
end do
write(unit=lun,fmt='(a)',iostat=ierr) ' '
!> Crystal system
write(unit=lun,fmt='(a)',iostat=ierr) ' '
!> Crystal system
write(unit=lun,fmt='(a,a)',iostat=ierr) 'System =',trim(eos%system)
!> eos type
......@@ -7629,7 +7629,7 @@ Contains
!real(kind=cp),dimension(6) :: parvals(7)
!real(kind=cp),dimension(6) :: esd
!real(kind=cp),dimension(19):: parout,esdout
!real(kind=cp) :: v0,agt,fp,fs
!real(kind=cp) :: v0,agt,fp,fs
!> init
nprint=0 ! output counter
......
This diff is collapsed.
......@@ -56,7 +56,7 @@
!---- List of public procedures ----!
public :: Allocate_Atom_List, Extend_Atom_List, Init_Atom_Type, Read_Bin_Atom_List, &
Write_Bin_atom_List, Write_Atom_List
public :: Equiv_Atm, Wrt_Lab
public :: Equiv_Atm, Wrt_Lab, Check_Symmetry_Constraints
!---- Parameters ----!
......@@ -289,6 +289,11 @@
integer, intent(in) :: d ! Number of k-vectors
End Subroutine Allocate_Atom_List
Module Subroutine Check_Symmetry_Constraints(SpG,Atm)
class(SpG_Type), intent(in) :: SpG
type(AtList_Type), intent(in out) :: Atm
End Subroutine Check_Symmetry_Constraints
Module Subroutine Read_Bin_Atom_List(filename, A, Type_Atm)
!---- Arguments ----!
character(len=*), intent(in) :: filename
......
Submodule (CFML_Atoms) Atm_Symmetry_Constraints
contains
Module Subroutine Check_Symmetry_Constraints(SpG,Atm)
class(SpG_Type), intent(in) :: SpG
type(AtList_Type), intent(in out) :: Atm
!--- Local variables ---!
integer :: i,codini
real(kind=cp), dimension(3) :: codes
real(kind=cp), dimension(6,8) :: codeT
codini=1
do i=1,Atm%natoms
if(Atm%Atom(i)%Magnetic) then
codes=1.0
call Get_moment_ctr(Atm%Atom(i)%x,Atm%Atom(i)%moment,SpG,codini,codes)
end if
end do
Select Type (SpG)
type is (SuperSpaceGroup_Type)
do i=1,Atm%natoms
Select Type(at => Atm%Atom(i))
class is (MAtm_Std_Type)
if(at%n_mc > 0) then
codeT=1.0
call Get_TFourier_ctr(at%x,at%Mcs(:,1:at%n_mc),codeT(:,1:at%n_mc),SpG,codini,"M")
end if
if(at%n_dc > 0) then
codeT=1.0
call Get_TFourier_ctr(at%x,at%Dcs(:,1:at%n_dc),codeT(:,1:at%n_dc),SpG,codini,"D")
end if
End Select
end do
End Select
Atm%symm_checked=.true.
End Subroutine Check_Symmetry_Constraints
End Submodule Atm_Symmetry_Constraints
!!-------------------------------------------------------
!!---- Crystallographic Fortran Modules Library (CrysFML)
!!-------------------------------------------------------
!!---- The CrysFML project is distributed under LGPL. In agreement with the
!!---- Intergovernmental Convention of the ILL, this software cannot be used
!!---- in military applications.
!!----
!!---- Copyright (C) 1999-2019 Institut Laue-Langevin (ILL), Grenoble, FRANCE
!!---- Universidad de La Laguna (ULL), Tenerife, SPAIN
!!---- Laboratoire Leon Brillouin(LLB), Saclay, FRANCE
!!----
!!---- Authors: Juan Rodriguez-Carvajal (ILL)
!!---- Javier Gonzalez-Platas (ULL)
!!----
!!---- Contributors: Laurent Chapon (ILL)
!!---- Marc Janoschek (Los Alamos National Laboratory, USA)
!!---- Oksana Zaharko (Paul Scherrer Institute, Switzerland)
!!---- Tierry Roisnel (CDIFX,Rennes France)
!!---- Eric Pellegrini (ILL)
!!---- Ross Angel (University of Pavia)
!!----
!!---- This library is free software; you can redistribute it and/or
!!---- modify it under the terms of the GNU Lesser General Public
!!---- License as published by the Free Software Foundation; either
!!---- version 3.0 of the License, or (at your option) any later version.
!!----
!!---- This library is distributed in the hope that it will be useful,
!!---- but WITHOUT ANY WARRANTY; without even the implied warranty of
!!---- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
!!---- Lesser General Public License for more details.
!!----
!!---- You should have received a copy of the GNU Lesser General Public
!!---- License along with this library; if not, see <http://www.gnu.org/licenses/>.
!!----
!!----
!!---- MODULE: CFML_HDF5
!!---- Module for working with HDF5 files.
!!----
!!
Module CFML_HDF5
!---- Use Modules ----!
use HDF5
use CFML_ILL_Instrm_Data, ONLY: SXtal_Numor_type,Initialize_Numor,&
err_ILLData,err_ILLData_mess
use CFML_String_Utilities, ONLY: l_case
implicit none
private
public: Read_Nexus_D19
contains
Interface
Module Subroutine Read_Nexus_D19(filename,numor,counts)
!---- Arguments ----!
character(len=*), intent(in) :: filename
type(SXTAL_NUMOR_type), intent(out) :: numor
integer, dimension(:,:,:), allocatable, intent(out) :: counts
End Subroutine Read_Nexus_D19
End Interface
!!-------------------------------------------------------
!!---- Crystallographic Fortran Modules Library (CrysFML)
!!-------------------------------------------------------
!!---- The CrysFML project is distributed under LGPL. In agreement with the
!!---- Intergovernmental Convention of the ILL, this software cannot be used
!!---- in military applications.
!!----
!!---- Copyright (C) 1999-2019 Institut Laue-Langevin (ILL), Grenoble, FRANCE
!!---- Universidad de La Laguna (ULL), Tenerife, SPAIN
!!---- Laboratoire Leon Brillouin(LLB), Saclay, FRANCE
!!----
!!---- Authors: Juan Rodriguez-Carvajal (ILL)
!!---- Javier Gonzalez-Platas (ULL)
!!----
!!---- Contributors: Laurent Chapon (ILL)
!!---- Marc Janoschek (Los Alamos National Laboratory, USA)
!!---- Oksana Zaharko (Paul Scherrer Institute, Switzerland)
!!---- Tierry Roisnel (CDIFX,Rennes France)
!!---- Eric Pellegrini (ILL)
!!---- Ross Angel (University of Pavia)
!!----
!!---- This library is free software; you can redistribute it and/or
!!---- modify it under the terms of the GNU Lesser General Public
!!---- License as published by the Free Software Foundation; either
!!---- version 3.0 of the License, or (at your option) any later version.
!!----
!!---- This library is distributed in the hope that it will be useful,
!!---- but WITHOUT ANY WARRANTY; without even the implied warranty of
!!---- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
!!---- Lesser General Public License for more details.
!!----
!!---- You should have received a copy of the GNU Lesser General Public
!!---- License along with this library; if not, see <http://www.gnu.org/licenses/>.
!!----
!!----
!!---- MODULE: CFML_HDF5
!!---- Module for working with HDF5 files.
!!----
!!
Module CFML_HDF5
!---- Use Modules ----!
use HDF5
use CFML_ILL_Instrm_Data, ONLY: SXtal_Numor_type,Initialize_Numor,&
err_ILLData,err_ILLData_mess
use CFML_String_Utilities, ONLY: l_case
implicit none
private
public: Read_Nexus_D19
contains
Interface
Module Subroutine Read_Nexus_D19(filename,numor,counts)
!---- Arguments ----!
character(len=*), intent(in) :: filename
type(SXTAL_NUMOR_type), intent(out) :: numor
integer, dimension(:,:,:), allocatable, intent(out) :: counts
End Subroutine Read_Nexus_D19
End Interface
End Module CFML_HDF5
\ No newline at end of file
This diff is collapsed.
......@@ -68,7 +68,7 @@ Module CFML_IOForm
!---- Public subroutines ----!
public :: Read_Xtal_Structure, &
public :: Read_Xtal_Structure, Readn_Set_Xtal_Structure,&
Write_Cif_Template, Write_SHX_Template
!--------------------!
......@@ -116,10 +116,10 @@ Module CFML_IOForm
End Type Job_Info_type
!---- Overloaded Zone ----!
!Interface Readn_Set_Xtal_Structure
! Module Procedure Readn_Set_Xtal_Structure_Split ! For Cell, Spg, A types
! !Module Procedure Readn_Set_Xtal_Structure_Molcr ! For Molecular Crystal Type
!End Interface
Interface Readn_Set_Xtal_Structure
Module Procedure Readn_Set_Xtal_Structure_Split ! For Cell, Spg, A types
!Module Procedure Readn_Set_Xtal_Structure_Molcr ! For Molecular Crystal Type
End Interface
!---- Interface zone ----!
Interface
......@@ -501,75 +501,107 @@ Module CFML_IOForm
!!--++
!!--++ Update: April - 2005, Febraury 2020
!!
!Subroutine Readn_Set_Xtal_Structure_Split(Filenam, Cell, SpG, A,Type_Atm,Mode,Iphase,Job_Info,file_list,CFrame)
!
! select case(modec)
!
! !case("cif")
! ! if (present(iphase)) then
! ! if(present(CFrame)) then
! ! call readn_set_xtal_cif(file_dat,nlines,Cell,Spg, A,CFrame,NPhase=IPhase)
! ! else
! ! call readn_set_xtal_cif(file_dat,nlines,Cell,Spg, A,NPhase=IPhase)
! ! end if
! ! else
! ! if(present(CFrame)) then
! ! call readn_set_xtal_cif(file_dat,nlines,Cell,Spg,A,CFrame)
! ! else
! ! call readn_set_xtal_cif(file_dat,nlines,Cell,Spg,A)
! ! end if
! ! end if
! !
! !case("pcr")
! ! if (present(iphase)) then
! ! if(present(CFrame)) then
! ! call readn_set_xtal_pcr(file_dat,nlines,Cell,Spg, A,CFrame,NPhase=IPhase)
! ! else
! ! call readn_set_xtal_pcr(file_dat,nlines,Cell,Spg, A,NPhase=IPhase)
! ! end if
! ! else
! ! if(present(CFrame)) then
! ! call readn_set_xtal_pcr(file_dat,nlines,Cell,Spg,A,CFrame)
! ! else
! ! call readn_set_xtal_pcr(file_dat,nlines,Cell,Spg,A)
! ! end if
! ! end if
! !
! case default
! !---- CFL Format ----!
! if (present(Job_Info)) then
! if (present(iphase)) then
! if(present(CFrame)) then
! call readn_set_xtal_cfl(file_dat,nlines,Cell,Spg,A,Type_Atm,CFrame,NPhase=IPhase,Job_Info=Job_Info)
! else
! call readn_set_xtal_cfl(file_dat,nlines,Cell,Spg,A,Type_Atm,NPhase=IPhase,Job_Info=Job_Info)
! end if
! else
! if(present(CFrame)) then
! call readn_set_xtal_cfl(file_dat,nlines,Cell,Spg,A,Type_Atm,CFrame,Job_Info=Job_Info)
! else
! call readn_set_xtal_cfl(file_dat,nlines,Cell,Spg,A,Type_Atm,Job_Info=Job_Info)
! end if
! end if
! else
! if (present(iphase)) then
! if(present(CFrame)) then
! call readn_set_xtal_cfl(file_dat,nlines,Cell,Spg,A,Type_Atm,CFrame,NPhase=IPhase)
! else
! call readn_set_xtal_cfl(file_dat,nlines,Cell,Spg,A,Type_Atm,NPhase=IPhase)
! end if
! else
! if(present(CFrame)) then
! call readn_set_xtal_cfl(file_dat,nlines,Cell,Spg,A,Type_Atm,CFrame)
! else
! call readn_set_xtal_cfl(file_dat,nlines,Cell,Spg,A,Type_Atm)
! end if
! end if
! end if
!
! end select
!
!End Subroutine Readn_Set_Xtal_Structure_Split
Subroutine Readn_Set_Xtal_Structure_Split(Filenam, Cell, SpG, A,Type_Atm,Mode,Iphase,Job_Info,file_list,CFrame)
character(len=*), intent( in) :: filenam
Type (Cell_G_Type), intent(out) :: Cell
Type (SpG_Type), intent(out) :: SpG
Type (Atlist_type), intent(out) :: A
Character(len=*), intent( in) :: Type_Atm
Character(len=*), optional, intent( in) :: Mode
Integer, optional, intent( in) :: Iphase
Type(Job_Info_type), optional, intent(out) :: Job_Info
Type(file_type), optional, intent(in out) :: file_list
Character(len=*), optional, intent( in) :: CFrame
!Local variables
character(len=6):: Ext
type(File_Type) :: File_dat
!> Init
call clear_error()
!> Load filename
File_dat=Reading_File(trim(filenam))
if (err_CFML%Ierr /= 0) return
if (File_dat%nlines ==0) then
Err_CFML%Ierr=1
Err_CFML%Msg="Zero lines in the file "//trim(filenam)
return
end if
!> Extension
Ext=get_extension(trim(filenam))
!> Init
call clear_error()
select case(Ext)
!case("cif")
! if (present(iphase)) then
! if(present(CFrame)) then
! call readn_set_xtal_cif(file_dat,nlines,Cell,Spg, A,CFrame,NPhase=IPhase)
! else
! call readn_set_xtal_cif(file_dat,nlines,Cell,Spg, A,NPhase=IPhase)
! end if
! else
! if(present(CFrame)) then
! call readn_set_xtal_cif(file_dat,nlines,Cell,Spg,A,CFrame)
! else
! call readn_set_xtal_cif(file_dat,nlines,Cell,Spg,A)
! end if
! end if
!
!case("pcr")
! if (present(iphase)) then
! if(present(CFrame)) then
! call readn_set_xtal_pcr(file_dat,nlines,Cell,Spg, A,CFrame,NPhase=IPhase)
! else
! call readn_set_xtal_pcr(file_dat,nlines,Cell,Spg, A,NPhase=IPhase)
! end if
! else
! if(present(CFrame)) then
! call readn_set_xtal_pcr(file_dat,nlines,Cell,Spg,A,CFrame)
! else
! call readn_set_xtal_pcr(file_dat,nlines,Cell,Spg,A)
! end if
! end if
!
case default
!---- CFL Format ----!
if (present(Job_Info)) then
if (present(iphase)) then
if(present(CFrame)) then
call readn_set_xtal_cfl(file_dat,nlines,Cell,Spg,A,Type_Atm,CFrame,NPhase=IPhase,Job_Info=Job_Info)
else
call readn_set_xtal_cfl(file_dat,nlines,Cell,Spg,A,Type_Atm,NPhase=IPhase,Job_Info=Job_Info)
end if
else
if(present(CFrame)) then
call readn_set_xtal_cfl(file_dat,nlines,Cell,Spg,A,Type_Atm,CFrame,Job_Info=Job_Info)
else
call readn_set_xtal_cfl(file_dat,nlines,Cell,Spg,A,Type_Atm,Job_Info=Job_Info)
end if
end if
else
if (present(iphase)) then
if(present(CFrame)) then
call readn_set_xtal_cfl(file_dat,nlines,Cell,Spg,A,Type_Atm,CFrame,NPhase=IPhase)
else
call readn_set_xtal_cfl(file_dat,nlines,Cell,Spg,A,Type_Atm,NPhase=IPhase)
end if
else
if(present(CFrame)) then
call readn_set_xtal_cfl(file_dat,nlines,Cell,Spg,A,Type_Atm,CFrame)
else
call readn_set_xtal_cfl(file_dat,nlines,Cell,Spg,A,Type_Atm)
end if
end if
end if
end select
End Subroutine Readn_Set_Xtal_Structure_Split
End Module CFML_IOForm
This diff is collapsed.
Instructions to work with CrysFML and CrysFML08 using Cmake
===========================================================
- Dowload and install Cmake (Windows, Linux or Mac)
- Once Cmake is installed and in the path, go to the CrysFML directory and create a subfolder called "build"
- Within "build", create subdirectories for different compilers and kind of compilations.
Example:
Windows: %CRYSFML%\build\ifort_64_debug
%CRYSFML%\build\ifort_64_production
%CRYSFML%\build\ifort_64_debug08
%CRYSFML%\build\ifort_64_production08
%CRYSFML%\build\ifort_32_production
%CRYSFML%\build\gfortran_debug
%CRYSFML%\build\gfortran_production
Linux: $CRYSFML/build/ifort_64_debug
$CRYSFML/build/ifort_64_production
$CRYSFML/build/ifort_64_debug08
$CRYSFML/build/ifort_64_production08
$CRYSFML/build/ifort_32_production
$CRYSFML/build/gfortran_debug
$CRYSFML/build/gfortran_production
- Go to the appropriate subdirectory of the build directory and execute a command of the type:
cmake -G "NMake Makefiles" -D CMAKE_Fortran_COMPILER=ifort -D GUI=ON ..\..\.
^ ^ ^ ^
Generator of OS dependent Specify compiler Kind of library root CrysFML directory
makefiles
The Cmake scripts are already in the CrysFML directory and in CrysFML\cmake (or CrysFML/cmake)
By default:
compiler: CMAKE_Fortran_COMPILER=ifort
GUI=OFF
CMAKE_BUILD_TYPE=Release
Other options should be provided explicitly
========
Windows:
========
Building CrysFML
================
Within %CRYSFML%\build\ifort_64_debug, execute the command:
Prompt> cmake -G "NMake Makefiles" -D CMAKE_Fortran_COMPILER=ifort -D GUI=ON -D ARCH32=OFF -D CMAKE_BUILD_TYPE=Debug -D CMAKE_INSTALL_PREFIX=%CRYSFML%\ifort64_debug -D CRYSFML_PREFIX=LibC -D WCRYSFML_PREFIX=LibW ..\..\.
If everything is OK, you have created the appropriate makefiles for building CrysFML in console mode and with Winteracter.
For effectively compile and build the library, within the same directory execute the command:
Prompt> nmake install
The libraries (LibC and LibW) will be installed in %CRYSFML%\ifort64_debug
Thats all!
For release mode (production) yo do similarly:
Within %CRYSFML%\build\ifort_64_production, execute the commands:
Prompt> cmake -G "NMake Makefiles" -D CMAKE_Fortran_COMPILER=ifort -D GUI=ON -D ARCH32=OFF -D CMAKE_INSTALL_PREFIX=%CRYSFML%\ifort64 -D CRYSFML_PREFIX=LibC -D WCRYSFML_PREFIX=LibW ..\..\.
Prompt> nmake install
The libraries (LibC and LibW) will be installed in %CRYSFML%\ifort64
For gfortran within MinGW64, the generator of makefiles is "MinGW Makefiles", as an example in debug mode the commands
to be executed within %CRYSFML%\build\gfortran_debug are:
Prompt> cmake -G "MinGW Makefiles" -D CMAKE_Fortran_COMPILER=gfortran -D GUI=OFF -D CMAKE_BUILD_TYPE=Debug -D CMAKE_INSTALL_PREFIX=%CRYSFML%\gfortran_debug -D CRYSFML_PREFIX=LibC ..\..\.
Prompt> mingw32-make install
The library (LibC) will be installed in %CRYSFML%\gfortran_debug
Building CrysFML08
==================
# For the moment only console mode is available
Debug:
Prompt> cmake -G "NMake Makefiles" -D ARCH32=OFF -D CMAKE_BUILD_TYPE=Debug -D CMAKE_Fortran_COMPILER=ifort -D CMAKE_INSTALL_PREFIX=%CRYSFML%\ifort64_debug -D CRYSFML_PREFIX=LibC08 -D CRYSFML08=ON ..\..\.
Prompt> nmake install
The library (LibC08) will be installed in %CRYSFML%\ifort64_debug
Release:
Prompt> cmake -G "NMake Makefiles" -D ARCH32=OFF -D CMAKE_BUILD_TYPE=Release -D CMAKE_Fortran_COMPILER=ifort -D CMAKE_INSTALL_PREFIX=%CRYSFML%\ifort64 -D CRYSFML_PREFIX=LibC08 -D CRYSFML08=ON ..\..\.
Prompt> nmake install
The library (LibC08) will be installed in %CRYSFML%\ifort64
======
Linux:
======
The commands are identical except for "/" instead of "\" and the generators of makefiles is "Unix makefiles"
Examples for working only with console programs:
Prompt> cmake -G "Unix Makefiles" -D CMAKE_Fortran_COMPILER=ifort -D GUI=OFF -D ARCH32=OFF -D CMAKE_INSTALL_PREFIX=$CRYSFML/ifort64 -D CRYSFML_PREFIX=LibC -D WCRYSFML_PREFIX=LibW ../../.
or with gfortran:
Prompt> cmake -G "Unix Makefiles" -D CMAKE_Fortran_COMPILER=gfortran -D GUI=OFF -D ARCH32=OFF -D CMAKE_INSTALL_PREFIX=$CRYSFML/GFortran -D CRYSFML_PREFIX=LibC ../../.
Build the library using:
Prompt> make install
\ No newline at end of file
This diff is collapsed.
!
Title Ideal Hollandite (Priderite structure)
!
Cell 9.2591(5) 9.2591(5) 2.7245(5) 90.00000 90.00000 90.00000
!
SpGR I 4/m
!
! Atom-strings in the order: Label, Species, x, y, z, Biso, Occ [,2*Spin, charge]
Atom Sr1 Sr+2 0.04076(6) 0.33441(6) 0 0.52(2)
Atom Sr2 Sr+2 0 0 0.18(2) 1.9(5)
Atom Mn Mn+3 0.85138(1) 0.33235(1) 0 0.600(8)
Atom O1 O-2 0.65498(6) 0.29604(6) 0 0.49(2)
Atom O2 O-2 0.04076(6) 0.33441(6) 0 0.54(2)
!
!!!!index 2
!!!!full
transf 2a+2b,-2a+2b,2c;0,0,0
! FILE for FullProf Studio: generated automatically by FullProf
!Title: Name: Pyrolusite
SpGR P 42/m n m
CELL 4.4041 4.4041 2.8765 90.0000 90.0000 90.0000
ATOM Mn Mn 0.00000 0.00000 0.00000
ATOM O O 0.30460 0.30460 0.00000
transf a+b,-a+b,2c;0,0,0
index 32
full
\ No newline at end of file
This diff is collapsed.
Program cfl_to_cif
use CFML_GlobalDeps
Use CFML_Metrics
Use CFML_Rational
Use CFML_Maths, only: modulo_lat,Set_Eps_Math, determ3D, Inverse_Matrix
Use CFML_gSpaceGroups, only: Set_SpaceGroup, Write_SpaceGroup_Info, SpG_Type, &
get_stabilizer, Get_multip_pos, Get_Mat_From_Symb, &
get_orbit, Get_SubGroups_full, Identify_Group, &
Change_Setting_SpaceG, Get_SubGroups
Use CFML_Strings, only: l_case, number_lines, pack_string, u_case, File_Type
Use CFML_Atoms, only: AtList_Type, Allocate_Atom_list, Write_Atom_List, &
Extend_Atom_List,Atom_Equiv_List_Type, Atm_Cell_Type
Use CFML_Geom, only: point_list_type, get_transf_list, allocate_point_list, &
deallocate_point_list,set_orbits_inlist,Set_New_AsymUnit
Use CFML_IOForm
Implicit None
type(File_Type) :: file_dat
type(Cell_G_Type) :: Cell, Cell_n
type(SpG_Type) :: SpaceGroup,SpaceGroup_n
type(AtList_Type) :: A, A_n !List of atoms in the asymmetric unit
type(Atom_Equiv_List_Type) :: Ate,Ate_n !List of all atoms in the cell
character(len=1) :: ans
character(len=5) :: so_ord
character(len=20) :: nam
character(len=20) :: spp, sppg,symb !symbol of space group
character(len=80) :: line , title, cmdline, trans_symb
character(len=256) :: filcod,outfil,texto
integer, parameter :: lun1=1,lun2=6,lun=2
integer :: i, j, numops, ier, ln, nauas, len_cmdline, &
lenf, lr