Statistiques
| Révision :

root / src / Io_module.f90 @ 9

Historique | Voir | Annoter | Télécharger (3,75 ko)

1
MODULE Io_Module
2
! This module contains all variables related to IO
3

    
4
  use VarTypes
5

    
6
  IMPLICIT NONE
7

    
8
  SAVE
9

    
10
  INTEGER(KINT) :: IOIN=11, IOOUT=12, IOCART=14
11
  INTEGER(KINT) :: IOGEOM=15, IODAT=16,IoGplot=17
12
  INTEGER(KINT), PARAMETER :: IOTMP=21,IOTMP2=22, IOTMP3=23
13
  INTEGER(KINT), PARAMETER :: IOERR=19
14
  CHARACTER(SCHARS) :: RunMode
15

    
16
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
17
! 
18
!  Some parameters for unit conversion
19
!
20
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
21

    
22
  REAL(KREAL), PARAMETER :: au2eV=27.21183d0
23
  REAL(KREAL), PARAMETER :: ev2au= 1.d0/au2eV
24
  REAL(KREAL), PARAMETER :: au2kcal=627.509608d0
25
  REAL(KREAL), PARAMETER :: eV2kcal=23.06035d0
26

    
27
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
28
!
29
! Variables for Gaussian input
30
!
31
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
32
  TYPE (Input_line), POINTER :: Gauss_Root, Gauss_End, Gauss_Comment
33
  TYPE (Input_Line), POINTER :: Current, Previous
34

    
35
  CHARACTER(LCHARS) :: Gauss_Charge
36
  CHARACTER(LCHARS), ALLOCATABLE :: Gauss_paste(:)
37

    
38
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
39
!
40
! Variables for MOPAC input
41
!
42
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
43
  TYPE (Input_line), POINTER :: Mopac_Root, Mopac_End, Mopac_Comment
44
  TYPE (Input_Line), POINTER :: CurCom
45
  CHARACTER(LCHARS) :: Mopac_EndGeom
46

    
47
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
48
!
49
! Variables for VASP input/output
50
!
51
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
52
  CHARACTER(LCHARS) :: Vasp_Title, Vasp_Types, Vasp_comment, Vasp_direct
53
  REAL(KREAL) :: vasp_Param
54
  CHARACTER(4), ALLOCATABLE :: FFF(:,:) !(3,na)
55
  INTEGER(KINT) :: NbTypes
56
  INTEGER(KINT), PARAMETER :: MaxType=100
57
  CHARACTER(2) :: Attypes(MaxType)='  '
58
! WriteVasp controls the printing of the images coordinates in POSCAR files.
59
  LOGICAL :: WriteVasp
60

    
61
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
62
!
63
! Variables for SIESTA input
64
!
65
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
66
  TYPE (Input_line), POINTER :: Siesta_Input
67
  TYPE (Input_line), POINTER :: Siesta_Comment_Species,Siesta_Comment_Coord
68
  TYPE (Input_Line), POINTER :: CurComSpec, CurComCoord
69
  CHARACTER(LCHARS) :: Siesta_Label, Siesta_CoordFile
70
! Number of species used in Siesta
71
  INTEGER(KINT) :: Siesta_NbSpecies
72
! Mass number for each species (atomic number)
73
  INTEGER(KINT), ALLOCATABLE :: Siesta_SpeciesMass(:) ! NbSpecies
74
! Name of each species
75
  CHARACTER(LCHARS), ALLOCATABLE :: Siesta_SpeciesName(:) ! NbSpecies
76
! Species for each atom
77
  INTEGER(KINT), ALLOCATABLE :: IdxSpecies(:) ! NAt
78
! What to add at the end of each coordinate line
79
  CHARACTER(LCHARS), ALLOCATABLE :: Siesta_Paste(:) ! Nat
80
! This is the unit (ang or bohr) to read/write the coordinates
81
  REAL(KREAL) :: Siesta_Unit_Read, Siesta_Unit_Write
82
! The lattice constant in case we are in periodic calculation
83
  REAL(KREAL) :: Siesta_LatticeConstant,Siesta_lat_unit
84

    
85
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
86
!
87
! For debug
88
!
89
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
90
  CHARACTER(132) :: DebugFile='Path.valid'
91

    
92
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
93
!
94
! For Printing
95
!
96
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
97
  CHARACTER(LCHARS) :: PathName
98

    
99
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
100
!
101
! For Energy+Gradient calculations
102
!
103
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
104
! CalcName: Prefix for the files used for the energy and gradient calculations
105
  CHARACTER(LCHARS) :: CalcName
106

    
107
! ISuffix: Suffix for the input file
108
  CHARACTER(LCHARS) :: ISuffix
109
! OSuffix: suffix for the output file.
110
  CHARACTER(LCHARS) :: OSuffix
111

    
112
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
113
!
114
! For printing energies
115
!
116
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
117
! Name of the unit used by internally by the 'engine' program
118
  CHARACTER(SCHARS) :: UnitProg="au"
119
! Conversion factor from energy program to kcal/mol
120
  REAL(KREAL) :: ConvE
121

    
122
END MODULE IO_MODULE