Re: dcd binary file format

From: Peter Freddolino (petefred_at_ks.uiuc.edu)
Date: Tue May 01 2007 - 17:34:27 CDT

If you don't mind looking at C code, you might also want to have a look
at the VMD molfile plugin code for this (found in the
plugins/molfile_plugin directory of the VMD source distribution).
Best,
Peter

Jeffrey A Tibbitt wrote:
> Jianhui,
>
> Here is some fortran code that works for me. A couple of things:
> 1. Code assumes no fixed atoms
> You need to modify it with an if........then type statement
> if you have fixed atoms.
> 2. The dimension of x( ) y( ) z( ) need to be set to the number of
> atoms before running.
>
> What I do when I don't want to set the dimensions is to place the code
> inside of a shell script and read in both a dcd and a psf. The script
> reads the number of atoms from the psf and sets it to a variable then uses
> that variable as it reads the dcd file. I attached the file for doing
> that. It uses the code below. Try running it in a directory where you
> have a dcd and its corresponding psf.
>
> Jeff
>
>
> ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
> c
> program readdcd
>
> character*4 header
> integer control(20),i,ntitle,natom
> character*80 title(4)
> real*4 x( )
> real*4 y( )
> real*4 z( )
>
> c OPEN TRAJECTORY FILE
> open(unit=56,file="tmp.dcd",status='old',form='unformatted')
>
> c READ IN HEADER AND CONTROL INFO
> read(56) header,control
> write (*,*) "Type:
> ",header
> write (*,*) "Number of Frames:
> ",control(1)
> write (*,*) "Number of Previous Dynamic Steps: ",control(2)
> write (*,*) "Skip Frequency:
> ",control(3)
> write (*,*) "Number of Dynamics Steps: ",control(4)
>
> c READ IN THE TITLE LINES
> read(56) ntitle,(title(j),j=1,ntitle)
>
> c READ IN NUMBER OF ATOMS
> read(56) natom
> write (*,*) "Number of Atoms: ",natom
>
> c READ IN COORDINATES AND CONVERT TO DOUBLE PRECISION
> do i=1,control(1)
> read(56) x
> read(56) y
> read(56) z
> enddo
> close(56)
> end program
> c
> c
> c
> cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc

This archive was generated by hypermail 2.1.6 : Wed Feb 29 2012 - 15:44:37 CST