35 #include "./base/base_uses.f90"
41 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'embed_environment'
57 SUBROUTINE embed_init(embed_env, root_section, para_env, force_env_section, &
60 TYPE(embed_env_type),
INTENT(INOUT) :: embed_env
61 TYPE(section_vals_type),
POINTER :: root_section
62 TYPE(mp_para_env_type),
POINTER :: para_env
63 TYPE(section_vals_type),
POINTER :: force_env_section
64 LOGICAL,
INTENT(IN) :: use_motion_section
66 CHARACTER(len=*),
PARAMETER :: routinen =
'embed_init'
69 LOGICAL :: use_ref_cell
70 REAL(kind=
dp),
DIMENSION(3) :: abc
71 TYPE(cell_type),
POINTER :: cell, cell_ref
72 TYPE(cp_subsys_type),
POINTER :: subsys
73 TYPE(section_vals_type),
POINTER :: cell_section, subsys_section
75 CALL timeset(routinen, handle)
77 NULLIFY (subsys, cell, cell_ref)
78 NULLIFY (cell_section)
85 force_env_section=force_env_section, &
86 use_motion_section=use_motion_section)
88 CALL read_cell(cell, cell_ref, use_ref_cell=use_ref_cell, &
89 cell_section=cell_section, para_env=para_env)
96 CALL embed_init_subsys(embed_env, subsys, cell, cell_ref, &
97 force_env_section, subsys_section)
102 CALL timestop(handle)
118 SUBROUTINE embed_init_subsys(embed_env, subsys, cell, cell_ref, &
119 force_env_section, subsys_section)
121 TYPE(embed_env_type),
INTENT(INOUT) :: embed_env
122 TYPE(cp_subsys_type),
POINTER :: subsys
123 TYPE(cell_type),
POINTER :: cell, cell_ref
124 TYPE(section_vals_type),
POINTER :: force_env_section, subsys_section
126 CHARACTER(len=*),
PARAMETER :: routinen =
'embed_init_subsys'
129 TYPE(atomic_kind_type),
DIMENSION(:),
POINTER :: atomic_kind_set
130 TYPE(distribution_1d_type),
POINTER :: local_molecules, local_particles
131 TYPE(molecule_kind_type),
DIMENSION(:),
POINTER :: molecule_kind_set
132 TYPE(molecule_type),
DIMENSION(:),
POINTER :: molecule_set
133 TYPE(particle_type),
DIMENSION(:),
POINTER :: particle_set
135 CALL timeset(routinen, handle)
136 NULLIFY (local_molecules, local_particles)
137 particle_set => subsys%particles%els
138 atomic_kind_set => subsys%atomic_kinds%els
139 molecule_set => subsys%molecules%els
140 molecule_kind_set => subsys%molecule_kinds%els
147 particle_set=particle_set, &
148 local_particles=local_particles, &
149 molecule_kind_set=molecule_kind_set, &
150 molecule_set=molecule_set, &
151 local_molecules=local_molecules, &
152 force_env_section=force_env_section)
160 local_molecules=local_molecules, &
161 local_particles=local_particles)
166 CALL timestop(handle)
168 END SUBROUTINE embed_init_subsys
Define the atomic kind types and their sub types.
Handles all functions related to the CELL.
recursive subroutine, public read_cell(cell, cell_ref, use_ref_cell, cell_section, check_for_ref, para_env)
...
subroutine, public write_cell(cell, subsys_section, tag)
Write the cell parameters to the output unit.
Handles all functions related to the CELL.
subroutine, public cell_release(cell)
releases the given cell (see doc/ReferenceCounting.html)
subroutine, public get_cell(cell, alpha, beta, gamma, deth, orthorhombic, abc, periodic, h, h_inv, symmetry_id, tag)
Get informations about a simulation cell.
Initialize a small environment for a particular calculation.
subroutine, public cp_subsys_create(subsys, para_env, root_section, force_env_section, subsys_section, use_motion_section, qmmm, qmmm_env, exclusions, elkind)
Creates allocates and fills subsys from given input.
types that represent a subsys, i.e. a part of the system
subroutine, public cp_subsys_set(subsys, atomic_kinds, particles, local_particles, molecules, molecule_kinds, local_molecules, para_env, colvar_p, shell_particles, core_particles, gci, multipoles, results, cell)
sets various propreties of the subsys
stores a lists of integer that are local to a processor. The idea is that these integers represent ob...
subroutine, public distribution_1d_release(distribution_1d)
releases the given distribution_1d
Distribution methods for atoms, particles, or molecules.
subroutine, public distribute_molecules_1d(atomic_kind_set, particle_set, local_particles, molecule_kind_set, molecule_set, local_molecules, force_env_section, prev_molecule_kind_set, prev_local_molecules)
Distribute molecules and particles.
initialize embed environment: clone of the mixed environment
subroutine, public embed_init(embed_env, root_section, para_env, force_env_section, use_motion_section)
reads the input and database file for embedding
subroutine, public set_embed_env(embed_env, atomic_kind_set, particle_set, local_particles, local_molecules, molecule_kind_set, molecule_set, cell_ref, subsys, input, sub_para_env)
...
Defines the basic variable types.
integer, parameter, public dp
Interface to the message passing library MPI.
Define the molecule kind structure types and the corresponding functionality.
subroutine, public write_molecule_kind_set(molecule_kind_set, subsys_section)
Write a moleculeatomic kind set data set to the output unit.
Define the data structure for the molecule information.
Define the data structure for the particle information.