Alex Granovsky
gran@classic.chem.msu.su
Sorry for delay with my reply.
I decided to put (significantly simplified) pieces of Fortran code
to allow one to read DICTNRY file.
First, one need to open DICTNRY file:
irecln = 4096 ! record size in DP words
open (unit=idaf, file='DICTNRY', status='OLD',
* access='DIRECT', form='UNFORMATTED',
* action='READ', recl=irecln*8)
Then, one need to read master record:
read(unit=idaf,rec=1,err=100)idummy,ioda,ifilen,idummy2,idummy3
integer ioda(496), ifilen(496)
Finally, one can read information records:
RETURN DIMENSION V(LEN) CALL READREC(V,LEN,IDAF,NS) RETURN dimension xbuf(len) read (unit=is, rec=irc) xbuf return
N = IODA(NREC)
IF(N .EQ. -1) CALL ABORT()
IS = -IRECLN + 1
NS = N
LENT = LEN
DO
100 CONTINUE
IS = IS + IRECLN
IF = IS + LENT - 1
IF ((IF-IS+1) .GT. IRECLN) IF = IS + IRECLN - 1
NSP = NS
LENW = IF - IS + 1
CALL DARD(V(IS),LENW,IDAF,NSP,IDTYP,NREC)
LENT = LENT - IRECLN
NS = NS + 1
N = NS
IF (LENT .LT. 1) EXIT
END DO
END
SUBROUTINE DARD(V,LEN,IDAF,NS,IDTYP,NREC)
IMPLICIT DOUBLE PRECISION (A-H,O-Z)
END
subroutine readrec(xbuf,len, is,irc)
implicit double precision (a-h,o-z)
end
The list of some useful records is:
1. Atomic coordinates 3. Gradient vector 4. Hessian (force constant) matrix 11. Bare nucleus Hamiltonian integrals 12. Overlap integrals 13. Kinetic energy integrals 14. Alpha Fock matrix (current) 15. Alpha orbitals 16. Alpha density matrix 17. Alpha energies or occupation numbers 18. Beta Fock matrix (current) 19. Beta orbitals 20. Beta density matrix 21. Beta energies or occupation numbers
Note, symmetric matrices are stored in packed upper triangular form thus consuming (N*(N+1))/2 DP words of storage.
Hope this helps.
Kind regards,
Alex Granovsky
On Thu Aug 11 '11 1:33am, Andriy Zhugayevych wrote
--------------------------------------------------
>Thank you, Alex,
>Please give the information on the structure of DICTNRY file. I will write a Maple routine (Fortran-like syntax) for extracting eigenelements and overlap matrix and will post the code here.
>Maple users, please visit http://zhugayevych.me/maple/index.htmhttp://zhugayevych.me/maple/index.htm for a Maple package providing interface to Firefly. The current version of the package, which is the first version ("as is" version), will be updated at the end of this year (with the mentioned code included).
>Best regards,
>Andriy Zhugayevych
>
>
>
>On Wed Aug 10 '11 3:29pm, Alex Granovsky wrote
>----------------------------------------------
>>Dear Andriy,
>>actually, with present versions of Firefly, file DICTNRY
>>has rather simple structure which is closely resembling
>>that of GAMESS (US). Basically, all you need is to know
>>the structure of record no. 1, the size of physical records
>>and the logical record numbers for data you are interested in.
>>If you do not hate some low-level file I/O programming,
>>please let me know and I'll post additional information here.
>>Perhaps, you could be interested to make your program publicly available to the Community.
>>Kind regards,
>>Alex Granovsky
>>
>>
>>
>>On Thu Aug 4 '11 8:02pm, Andriy Zhugayevych wrote
>>-------------------------------------------------
>>>Thank you, do you know such kind of conversion program, except Datagam? If the only solution is to read Firefly output file, do you know how to change the default 6-digits precision of the Firefly and avoid fixed-text-field-width overflow for large atomic basis sets and heavy atoms?
>>>
>>>
>>>On Thu Aug 4 '11 2:24am, Amir Nasser Shamkhali wrote
>>>----------------------------------------------------
>>>>Dear Andriy
>>>>I think that you can open very larg output files by programmer file editor (PFE32.exe) program which is free for download. This software opens verly larg text files rapidly with variety of options. Also in order to read very large results such as molecular orbitals and etc, you can write a simple fortran program too read and save a part of out file.
>>>>Sincerely
>>>>
>>>>
>>>>On Tue Aug 2 '11 3:26am, Andriy Zhugayevych wrote
>>>>-------------------------------------------------
>>>>>For large scale calculations (say 2000 basis functions) the standard Firefly-output requires a lot of time (comparable with Firefly run-time) to read eigenvectors, overlap matrix etc. when importing them into other programs, mainly because of keyword searching through large-size file, human-oriented formatting, text-field overflow checking. PUNCH file is more machine-friendly, but it does not contain e.g. overlap matrix. DICTNRY is not documented as far as I know. Datagam postprocessing capabilities are very limited. Is there a way to obtain eigenvalues, eigenvectors, overlap matrix in a compact format, e.g. binary or text similar to AUX-file in MOPAC (with the possibility to increase the output precision)?