1,330
edits
(→LCF: get ncol from header) |
(→LCF) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 202: | Line 202: | ||
<pre> | <pre> | ||
! reads cell, column labels, comment, and reflection data from LCF file - Kay Diederichs 7/2019 . | ! reads cell, column labels, comment, and reflection data from LCF file - Kay Diederichs 7/2019 . | ||
! Nota bene - symmetry i.e. space group seemingly not stored in LCF file | ! Nota bene - symmetry i.e. space group seemingly not stored in LCF file | ||
! reading VAX format is easy with the ifort compiler since it understands VAX REAL format: | ! reading VAX format is easy with the ifort compiler since it understands VAX REAL format: | ||
Line 209: | Line 208: | ||
! LCF items | ! LCF items | ||
INTEGER(2) :: header(8) | INTEGER(2) :: header(8),ncol | ||
INTEGER(2), ALLOCATABLE :: refdat(:) | INTEGER(2), ALLOCATABLE :: refdat(:) | ||
REAL :: cell(6) | REAL :: cell(6) | ||
Line 215: | Line 214: | ||
! program variables | ! program variables | ||
INTEGER :: i | INTEGER :: i | ||
CHARACTER :: string*120 | CHARACTER :: string*120 | ||
i=COMMAND_ARGUMENT_COUNT() | i=COMMAND_ARGUMENT_COUNT() | ||
IF (i/= | IF (i/=1) STOP 'usage: lcf_dump <name.LCF>' | ||
! read command line | ! read command line | ||
CALL GET_COMMAND_ARGUMENT(1,string) ! expects LCF filename on command line | CALL GET_COMMAND_ARGUMENT(1,string) ! expects LCF filename on command line | ||
Line 226: | Line 225: | ||
OPEN(1,FILE=string,ACCESS='STREAM',ACTION='READ',CONVERT='VAXG') | OPEN(1,FILE=string,ACCESS='STREAM',ACTION='READ',CONVERT='VAXG') | ||
WRITE(*,*) 'LCF file: ',TRIM(string) | WRITE(*,*) 'LCF file: ',TRIM(string) | ||
! read header and cell | ! read header and cell | ||
Line 235: | Line 230: | ||
WRITE(*,'(a,8(i0,1x))') ' header: ',header | WRITE(*,'(a,8(i0,1x))') ' header: ',header | ||
! the following code determines ncol according to lcflib.f line 1534ff: | |||
IF (header(1) /= -32768) STOP 'error - first header item is not -32768' | IF (header(1) /= -32768) STOP 'error - first header item is not -32768' | ||
IF (header(5) == -12) THEN | IF (header(5) == -12) THEN | ||
Line 244: | Line 240: | ||
IF (ncol<0 .OR. ncol>100) STOP 'error - could not determine ncol' | IF (ncol<0 .OR. ncol>100) STOP 'error - could not determine ncol' | ||
END IF | END IF | ||
WRITE(*,'(a,i0 | WRITE(*,'(a,i0)') ' ncol: ',ncol | ||
ALLOCATE(refdat(ncol)) | ALLOCATE(refdat(ncol)) | ||
Line 254: | Line 250: | ||
! read column labels and comment | ! read column labels and comment | ||
string='' | string='' | ||
DO i=1,( | DO i=1,(header(8)+3)/4 | ||
READ(1)string(1+(i-1)*4:i*4),separator | READ(1)string(1+(i-1)*4:i*4),separator | ||
END DO | END DO |