chfl_trajectory
type¶
-
type
chfl_trajectory
¶ The
chfl_trajectory
type is the main entry point when using chemfiles. Achfl_trajectory
behave a like a file, allowing to read and/or writechfl_frame
.- Type fields
%
open
[subroutine] ::chfl_trajectory%open()
%
memory_reader
[subroutine] ::chfl_trajectory%memory_reader()
%
memory_writer
[subroutine] ::chfl_trajectory%memory_writer()
%
memory_buffer
[subroutine] ::chfl_trajectory%memory_buffer()
%
path
[function] ::chfl_trajectory%path()
%
nsteps
[function] ::chfl_trajectory%nsteps()
%
read
[subroutine] ::chfl_trajectory%read()
%
read_step
[subroutine] ::chfl_trajectory%read_step()
%
write
[subroutine] ::chfl_trajectory%write()
%
set_topology
[subroutine] ::chfl_trajectory%set_topology()
%
topology_file
[subroutine] ::chfl_trajectory%topology_file()
%
set_cell
[subroutine] ::chfl_trajectory%set_cell()
%
close
[subroutine] ::chfl_trajectory%close()
-
subroutine
chfl_trajectory%
open
(path, mode[, format, status])¶ Open the file at the given
path
using the givenmode
. Valid modes are'r'
for read,'w'
for write and'a'
for append.If
format
is not given or an empty string, the format will be guessed from the extension.This subroutine allocate memory which must be released with
chfl_trajectory%close()
.- Parameters
path [character(len=*)] :: path to the trajectory file
mode [character] :: opening mode
- Options
format [character(len=*)] :: format to use to read and write to the file
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_trajectory%
memory_reader
(data, format[, status])¶ Read the
data
memory buffer as though it were a formatted file. Theformat
parameter is required and may contain a compression method.This subroutine allocate memory which must be released with
chfl_trajectory%close()
.- Parameters
data [character(len=*)] :: memory to read
format [character(len=*)] :: format uses to read the buffer
- 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_trajectory%
memory_writer
(format[, status])¶ Write to a memory buffer as though it were a formatted file
The
format
parameter is required. To retrieve the memory written to by thechfl_trajectory
, usechfl_trajectory%memory_buffer
.This subroutine allocate memory which must be released with
chfl_trajectory%close()
.- Parameters
format [character(len=*)] :: format used to write to the file
- 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_trajectory%
memory_buffer
(buffer[, status])¶ Obtain the memory buffer written to by the
chfl_trajectory
.- Parameters
buffer [character(len=:),allocatable] :: buffer to fill with the data written to this trajectory
- 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_trajectory%
path
([status])¶ Get the path used to open the trajectory. If the path 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.
-
function
chfl_trajectory%
nsteps
([status])¶ Get the number of steps (the number of frames) in the trajectory.
- 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_trajectory%
read
(frame[, status])¶ Read the next step of the trajectory into a
frame
.If the number of atoms in frame does not correspond to the number of atom in the next step, the frame is resized.
- Parameters
frame [type(chfl_frame)] :: frame to fill with the data
- 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_trajectory%
read_step
(step, frame[, status])¶ Read a specific
step
of the trajectory into aframe
. The first trajectory step is the step 0.If the number of atoms in frame does not correspond to the number of atom in the step, the frame is resized.
- Parameters
step [integer] :: step to read
frame [type(chfl_frame)] :: frame to fill with the data
- 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_trajectory%
write
(frame[, status])¶ Write a single
frame
to the trajectory.- Parameters
frame [type(chfl_frame)] :: frame to be writen to the file
- 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_trajectory%
set_topology
(topology[, status])¶ Set the
topology
associated with the trajectory. This topology will be used when reading and writing the files, replacing any topology in the frames or files.- Parameters
topology [type(chfl_topology)] :: new topology to use
- 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_trajectory%
topology_file
(path[, format, status])¶ Set the topology associated with the trajectory by reading the first frame of the file at the given
path
using the file format informat
; and extracting the topology of this frame.If
format
is an empty string or not given, the format will be guessed from the extension.- Parameters
path [character(len=*)] :: file to read in order to get the new topology
- Options
format [character(len=*)] :: format to use for the topology file
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_trajectory%
set_cell
(cell[, status])¶ Set the unit
cell
associated with the trajectory. This cell will be used when reading and writing the files, replacing any pre-existing unit cell.- Parameters
cell [type(chfl_cell)] :: new cell to use
- 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_trajectory%
close
([status])¶ Close a trajectory file, and free the associated memory.
Closing a file will synchronize all changes made to the file with the storage (hard drive, network, …) used for this file.