Module that contains dcdwriter class.
More...
Module that contains dcdwriter class.
◆ dcdwriter_close()
subroutine dcdfort_writer::dcdwriter_close |
( |
class(dcdwriter), intent(inout) |
this | ) |
|
Closes DCD file.
- Parameters
-
[in,out] | this | dcdwriter object |
151 class(dcdwriter),
intent(inout) :: this
◆ dcdwriter_open()
subroutine dcdfort_writer::dcdwriter_open |
( |
class(dcdwriter), intent(inout) |
this, |
|
|
character (len=*), intent(in) |
filename |
|
) |
| |
Opens new file to write to.
- Parameters
-
[in,out] | this | dcdwriter object |
[in] | filename | name of new DCD file to write to |
61 character (len=*),
intent(in) :: filename
62 class(dcdwriter),
intent(inout) :: this
66 open(newunit=this%u, file=trim(filename), form=
"unformatted", access=
"stream", status=
"new")
◆ dcdwriter_write_header()
subroutine dcdfort_writer::dcdwriter_write_header |
( |
class(dcdwriter), intent(inout) |
this, |
|
|
integer, intent(in) |
istart, |
|
|
integer, intent(in) |
nevery, |
|
|
real, intent(in) |
timestep, |
|
|
integer, intent(in) |
natoms |
|
) |
| |
Writes header to new DCD file.
- Parameters
-
[in,out] | this | dcdwriter object |
[in] | istart | first timestep in file |
[in] | nevery | how often snapshots written (in timesteps) |
[in] | timestep | simulation timestep |
[in] | natoms | number of atoms in each snapshot |
80 integer :: dummy, i, n
81 integer,
intent(in) :: istart, nevery, natoms
82 real,
intent(in) :: timestep
83 class(dcdwriter),
intent(inout) :: this
84 character (len=79) :: remarks1, remarks2
85 character (len=8) :: date
86 character (len=10) :: time
88 call date_and_time(date=date,time=time)
89 remarks1 =
"Created by libdcdfort" 90 remarks2 =
"REMARK Created on "//date//
" "//time
99 inquire(unit=this%u, pos=this%nframes_pos)
101 write(this%u) this%nframes
109 inquire(unit=this%u, pos=this%iend_pos)
111 write(this%u) this%iend
121 write(this%u) timestep
133 write(this%u) remarks1//c_null_char
134 write(this%u) remarks2//c_null_char
◆ dcdwriter_write_next()
subroutine dcdfort_writer::dcdwriter_write_next |
( |
class(dcdwriter), intent(inout) |
this, |
|
|
real, dimension(:,:), intent(in) |
xyz, |
|
|
real(8), dimension(6), intent(in) |
box_in |
|
) |
| |
Writes snapshot to an open DCD file.
Writes a new snapshot to a DCD file. Header should have already been written.
- Parameters
-
[in,out] | this | dcdwriter object |
[in] | xyz | coordinates of all atoms in this snapshot |
[in] | box_in | box dimensions for this snapshot |
165 real,
intent(in) :: xyz(:,:)
166 real(8),
intent(in) :: box_in(6)
169 class(dcdwriter),
intent(inout) :: this
170 integer :: coord_size
172 coord_size =
size(xyz,2)*4
178 box(4) = (90.0 - box(4)) * dsin(pi/180.0)
179 box(5) = (90.0 - box(5)) * dsin(pi/180.0)
180 box(6) = (90.0 - box(6)) * dsin(pi/180.0)
189 write(this%u) coord_size
191 write(this%u) xyz(1,:)
194 write(this%u) coord_size
196 write(this%u) xyz(2,:)
199 write(this%u) coord_size
201 write(this%u) xyz(3,:)
205 inquire(unit=this%u, pos=this%curr_pos)
207 this%nframes = this%nframes+1
208 this%iend = this%iend + this%nevery
211 write(this%u, pos=this%nframes_pos) this%nframes
212 write(this%u, pos=this%iend_pos) this%iend
213 write(this%u, pos=this%curr_pos)