Next: Example: Computation of Up: Electron Density Maps Previous: Requirements

# Electron Density Map File

The output file of the xrefin map statement contains information about the unit cell, indexing of the map, and the actual electron density map. It can be read by a modified version of MAPPAGE to provide a ``DSN6'' file for FRODO. Modified versions of this program are included in the directory ``[.VAX.FRODOMAP]" for the VAX/VMS system and ``sgi/fft" for the SGI systems. The grid size of the map is determined by the GRID parameter in the FFT statement. The following is a FORTRAN example of how to read the formatted (QFORM=.TRUE.) or unformatted (QFORM=.FALSE.) version of the electron density maps:

    C
    C read title
          IF (QFORM) THEN
          READ(UNIT,'(/I8)',END=6,ERR=7) NTITLE
          IF (NTITLE .LE. 0) THEN
          READ( UNIT, '(A)',END=6,ERR=7)
          ELSE
          DO J = 1, NTITLE
          TITLE(J) = ' '
          READ (UNIT, '(A)',END=6,ERR=7) TITLE(J)
          ENDDO
          ENDIF
          ELSE
          DO J=1,MXTITL
          TITLE(J)=' '
          END DO
          READ(UNIT,END=6,ERR=7) NTITLE,(TITLE(J)(1:80),J=1,NTITLE)
          END IF
    C
    C read sectioning information
          IF (QFORM) THEN
          READ(U,'(9I8)',END=6,ERR=7)
         &  NA,AMIN,AMAX,NB,BMIN,BMAX,NC,CMIN,CMAX
          ELSE
          READ(U,END=6,ERR=7)
         &  NA,AMIN,AMAX,NB,BMIN,BMAX,NC,CMIN,CMAX
          END IF
    C
    C read unit cell constants in angstroms and degrees
          IF (QFORM) THEN
          READ(U,'(6E12.5)',END=6,ERR=7) (CELL(I),I=1,6)
          ELSE
          READ(U,END=6,ERR=7) (CELL(I),I=1,6)
          END IF
          END IF
    C
    C read matrix mode
          IF (QFORM) THEN
          READ(U,'(3A)',END=6,ERR=7) MODE
          ELSE
          READ(U,END=6,ERR=7) MODE
          END IF
          IF (MODE.NE.'ZYX') THEN
          CALL WRNDIE(-5,'RMAP','error in matrix mode')
          GOTO 7
          END IF
    C
    C read density matrix, c is slowest ("z-sections").
          DO C=CMIN,CMAX
    C
    C read next section
          IF (QFORM) THEN
          READ(U,'(I8)',END=6,ERR=7) KSECT
          READ(U,'(6E12.5)',END=6,ERR=7)
         &  ((MAP(A,B,C),A=AMIN,AMAX),B=BMIN,BMAX)
          ELSE
          READ(U,END=6,ERR=7) KSECT
          READ(U,END=6,ERR=7)
         &  ((MAP(A,B,C),A=AMIN,AMAX),B=BMIN,BMAX)
          END IF
          END DO

The following lines show the beginning of a typical electron density map file:

           2 !NTITLE
     REMARKS FILENAME=""
     REMARKS DATE:18-Jun-90  12:24:08       created by user:
     XMAP: extend NA=(  30   4  12) NB=(  15   5  10) NC=(  16   2  12)
          30       4      12      15       5      10      16       2      12
     XMAP: a= 40.96, b= 18.65, c= 22.52, alpha= 90.00, beta= 90.77, gamma= 90.00
     0.40960E+02 0.18650E+02 0.22520E+02 0.90000E+02 0.90770E+02 0.90000E+02
     XMAP: written in ZYX mode (z-sections)
    ZYX
     XMAP: section #   0 average density=-0.336     sigma= 0.907
           0
    -0.97086E+00-0.49927E+00-0.82774E+00-0.13491E+01-0.57034E+00-0.71253E-01
    -0.19491E+00 0.61017E+00 0.10064E+01-0.22888E+01-0.94020E+00 0.77451E+00
     0.57539E+00-0.31211E-01-0.27430E+00-0.36526E+00 0.34772E+00 0.81884E+00
    -0.19954E+01-0.10117E+01 0.18038E+01 0.19008E+01 0.11886E+00-0.41646E+00
     0.47560E-01 0.48855E+00 0.57606E+00-0.22320E+00-0.12787E+01 0.47590E+00