ATOM_IN_MOLECULE module to define atomic data within a molecule written by Son, Sang-Kil in Mar. 2014
USAGE: type(Atom_set) :: A(:) call construct_Atom_set( P, A )
contains atom information
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public | :: | i_nuc | ||||
real(kind=long), | public | :: | x | ||||
real(kind=long), | public | :: | y | ||||
real(kind=long), | public | :: | z | ||||
integer, | public | :: | charge | ||||
real(kind=long), | public | :: | fcharge | ||||
real(kind=long), | public | :: | sigma | ||||
character(len=6), | public | :: | label | ||||
integer, | public | :: | n_r | ||||
integer, | public | :: | n_ang | ||||
integer, | public | :: | lmax_ang | ||||
real(kind=long), | public | :: | rmax | ||||
real(kind=long), | public | :: | mapping_l | ||||
real(kind=long), | public, | allocatable | :: | y_lm(:,:) | |||
type(grid), | public | :: | radial | ||||
type(angular_grid), | public | :: | angular | ||||
integer, | public | :: | n_nao | ||||
real(kind=long), | public, | allocatable | :: | u_ao(:,:) | |||
real(kind=long), | public, | allocatable | :: | d2_ao(:,:) | |||
real(kind=long), | public, | allocatable | :: | dao_dr(:,:) | |||
integer, | public, | allocatable | :: | n_ao(:) | |||
integer, | public, | allocatable | :: | l_ao(:) | |||
integer, | public | :: | n_orb | ||||
integer, | public, | allocatable | :: | config(:,:) |
atomic configuration config(i,1) -> quantum number n config(i,2) -> quantum number l config(i,3) -> occupation number |
||
character(len=80), | public | :: | nao_name |
the basis name printed out Basis functions to be read in read_molecule_param() -------------------- We employ NAO (Numerical Atomic Orbital) as basis functions for molecular calculations. N_nao_table(:,:) : specifying # of NAO functions per l and each atom (0:MAX_lmax,1:N_nuc) where MAX_lmax = max. of lmax for all atoms Remember that 2s1p means two s orbitals and one p orbital, so # of basis functions becomes 5!!! N_basis : total # of basis functions, considering l |
|||
integer, | public, | allocatable | :: | n_nao_table(:) | |||
character(len=512), | public | :: | hole_string | ||||
character(len=512), | public | :: | conf_string | ||||
character(len=512), | public | :: | nao_file_nuc | ||||
character(len=512), | public | :: | auger_file_nuc | ||||
character(len=512), | public | :: | tdipole_file_nuc | ||||
integer, | public | :: | sym_op_pair(8) |
symmetry operations pairs contains for every defined symmetry operation (i=1..8) the atom index to which the specific atom is translated under the symmetry operation i ( or -1 if symmetry operation does change the molecule ). Symmetry operations are: 1 E : identity 2 C2X : 180 degree rotation around X axis 3 C2Y : 180 degree rotation around Y axis 4 C2Z : 180 degree rotation around Z axis 5 i : inversion 6 SIGXY: reflection on XY plane 7 SIGXZ: reflection on XZ plane 8 SIGYZ: reflection on YZ plane |
subshell_name: return 1s, 2s, 2p, ... according to (n,l)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | n | |||
integer, | intent(in) | :: | l |
deallocates array of atom_sets
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(atom_set), | intent(inout), | allocatable | :: | a(:) |
update Atom_set with new NAOs it rereads the NAO files assigned in A(:).
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(atom_set), | intent(inout) | :: | a(:) |
update Atom_set with displacement
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(atom_set), | intent(inout) | :: | a(:) | |||
real(kind=long), | intent(in) | :: | displacement(:) |
prints atom set information
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(atom_set), | intent(in) | :: | a(:) | |||
integer, | intent(in), | optional | :: | iout |