chfl_atom type¶
-
type
chfl_atom¶ A
chfl_atomis a particle in the currentchfl_frame.All atoms have an atomic name; an atomic type; an atomic mass and an atomic charge.
The atomic name is usually an unique identifier (
H1,C_a) while the atomic type will be shared between all particles of the same type:H,Ow,CH3.- Type fields
%init[subroutine] ::chfl_atom%init()%copy[subroutine] ::chfl_atom%copy()%mass[function] ::chfl_atom%mass()%set_mass[subroutine] ::chfl_atom%set_mass()%charge[function] ::chfl_atom%charge()%set_charge[subroutine] ::chfl_atom%set_charge()%type[function] ::chfl_atom%type()%set_type[subroutine] ::chfl_atom%set_type()%name[function] ::chfl_atom%name()%set_name[subroutine] ::chfl_atom%set_name()%full_name[function] ::chfl_atom%full_name()%vdw_radius[function] ::chfl_atom%vdw_radius()%covalent_radius[function] ::chfl_atom%covalent_radius()%atomic_number[function] ::chfl_atom%atomic_number()%set[subroutine] ::chfl_atom%set()%get[subroutine] ::chfl_atom%get()%properties_count[function] ::chfl_atom%properties_count()%list_properties[function] ::chfl_atom%list_properties()%free[subroutine] ::chfl_atom%free()
-
subroutine
chfl_atom%init(name[, status])¶ Initialize this atom with the given
name, and set the atom type toname. This subroutine allocate memory which must be released withchfl_atom%free().- Parameters
name [character(len=*)] :: atom name
- Options
status [integer(chfl_status)] :: status code of the operation. If it is not
CHFL_SUCCESS, usechfl_last_error()to learn more about the error.
-
subroutine
chfl_atom%copy(atom[, status])¶ Initialize this atom with a copy of
atom. This subroutine allocate memory which must be released withchfl_atom%free().- Parameters
atom [type(chfl_atom)] :: atom to copy
- Options
status [integer(chfl_status)] :: status code of the operation. If it is not
CHFL_SUCCESS, usechfl_last_error()to learn more about the error.
-
function
chfl_atom%mass([status])¶ Get the mass of the atom in atomic mass units.
- Return
real
- Options
status [integer(chfl_status)] :: status code of the operation. If it is not
CHFL_SUCCESS, usechfl_last_error()to learn more about the error.
-
subroutine
chfl_atom%set_mass(mass[, status])¶ Set the mass of the atom to
mass. The value should be in atomic mass units.- Parameters
mass [real] :: new atom mass
- Options
status [integer(chfl_status)] :: status code of the operation. If it is not
CHFL_SUCCESS, usechfl_last_error()to learn more about the error.
-
function
chfl_atom%charge([status])¶ Get the charge of the atom in number of the electron charge e.
- Return
real
- Options
status [integer(chfl_status)] :: status code of the operation. If it is not
CHFL_SUCCESS, usechfl_last_error()to learn more about the error.
-
subroutine
chfl_atom%set_charge(charge[, status])¶ Set the charge of the atom to
charge. The charge should be in number of the electron charge e.- Parameters
charge [real] :: new atom charge
- Options
status [integer(chfl_status)] :: status code of the operation. If it is not
CHFL_SUCCESS, usechfl_last_error()to learn more about the error.
-
function
chfl_atom%name([status])¶ Get the name of an atom. If the name is longer than
CHFL_STRING_LENGTH, it will be truncated.- Return
character (len=CHFL_STRING_LENGTH)
- Options
status [integer(chfl_status)] :: status code of the operation. If it is not
CHFL_SUCCESS, usechfl_last_error()to learn more about the error.
-
subroutine
chfl_atom%set_name(name[, status])¶ Set the name of an atom to
name.- Parameters
name [character(len=*)] :: new atom name
- Options
status [integer(chfl_status)] :: status code of the operation. If it is not
CHFL_SUCCESS, usechfl_last_error()to learn more about the error.
-
function
chfl_atom%full_name([status])¶ Get the full name of an
atomfrom its type. If the name is longer thanCHFL_STRING_LENGTH, it will be truncated.- Return
character (len=CHFL_STRING_LENGTH)
- Options
status [integer(chfl_status)] :: status code of the operation. If it is not
CHFL_SUCCESS, usechfl_last_error()to learn more about the error.
-
function
chfl_atom%type([status])¶ Get the type of an atom. If the name is longer than
CHFL_STRING_LENGTH, it will be truncated.- Return
character (len=CHFL_STRING_LENGTH)
- Options
status [integer(chfl_status)] :: status code of the operation. If it is not
CHFL_SUCCESS, usechfl_last_error()to learn more about the error.
-
subroutine
chfl_atom%set_type(type[, status])¶ Set the type of an atom to
type.- Parameters
name [character(len=*)] :: new atom type
- Options
status [integer(chfl_status)] :: status code of the operation. If it is not
CHFL_SUCCESS, usechfl_last_error()to learn more about the error.
-
function
chfl_atom%vdw_radius([status])¶ Get the Van der Waals radius of an atom from the atom type. If the radius in unknown, this function returns 0.
- Return
real
- Options
status [integer(chfl_status)] :: status code of the operation. If it is not
CHFL_SUCCESS, usechfl_last_error()to learn more about the error.
-
function
chfl_atom%covalent_radius([status])¶ Get the covalent radius of an atom from the atom type. If the radius in unknown, this function set
radiusto 0.- Return
real
- Options
status [integer(chfl_status)] :: status code of the operation. If it is not
CHFL_SUCCESS, usechfl_last_error()to learn more about the error.
-
function
chfl_atom%atomic_number([status])¶ Get the atomic number of an atom from the atom type. If the atomic number in unknown, this function set
numberto 0.- Parameters
integer
- Options
status [integer(chfl_status)] :: status code of the operation. If it is not
CHFL_SUCCESS, usechfl_last_error()to learn more about the error.
-
subroutine
chfl_atom%set(name, property[, status])¶ Add a new
propertywith the givennameto this atom.If a property with the same name already exists, this function override the existing property with the new one.
propertycan either be achfl_property, or any value that can be stored in achfl_property: logical, real, string, or vector3d.- Parameters
name [character(len=*)] :: property name
property [type(chfl_property)] :: the new property
- Options
status [integer(chfl_status)] :: status code of the operation. If it is not
CHFL_SUCCESS, usechfl_last_error()to learn more about the error.
-
function
chfl_atom%get(name[, status])¶ Get a copy of the property with the given
namein this atom. If no property exist with this name,statuswill be set toCHFL_PROPERTY_ERROR.The associated memory must be released by calling
chfl_property%free().- Return
type (chfl_property)
- Parameters
name [character(len=*)] :: property name
- Options
status [integer(chfl_status)] :: status code of the operation. If it is not
CHFL_SUCCESS, usechfl_last_error()to learn more about the error.
-
function
chfl_atom%properties_count([status])¶ Get the number of properties in this atom.
- Return
integer
- Options
status [integer(chfl_status)] :: status code of the operation. If it is not
CHFL_SUCCESS, usechfl_last_error()to learn more about the error.
-
subroutine
chfl_atom%list_properties(names[, status])¶ Fill the pre-allocated array
nameswith the names of the properties in this atom. The array must have room forchfl_atom%properties_count()values of typecharacter(len=CHFL_STRING_LENGTH).- Return
integer
- Parameters
names (:) [character(len=CHFL_STRING_LENGTH)] :: list of properties names
- Options
status [integer(chfl_status)] :: status code of the operation. If it is not
CHFL_SUCCESS, usechfl_last_error()to learn more about the error.
-
subroutine
chfl_atom%free()¶ Destroy an atom, and free the associated memory