5
$\begingroup$

I need to access to the DICTNRY File of GAMESS-US, I need to ivestigate the overlap matrix elements (written as "12" in the Programmer's Reference Tools) and change them to "trick" the GAMESS to calculate the transiton matrix elements to compute the FSD of a molecule. In short, How can I access this so called DICTNRY files? I'm looking into the "source" directory in gamess files but I can't find anything in there. Thanks in advance!

$\endgroup$
3
  • $\begingroup$ I am not completely sure, but the DICTNRY file looks like it is a temporary disk file (i.e. scratch file), so it would be deleted once the calculation finishes. Maybe you can obtain some data from the .dat files? Not sure what FSD is sorry $\endgroup$
    – S R Maiti
    Sep 8, 2022 at 15:19
  • $\begingroup$ From the rungms code, I can disable deleting the scratch files but they're binary, so it is a bit useless. I'll look into the source codes with grep to find anything useful. Thanks for the comment! $\endgroup$
    – Alert
    Sep 9, 2022 at 14:58
  • $\begingroup$ @Alert Does my answer help you solve your question? If yes, could you please mark it as the accepted answer by clicking on the tick mark next to it? $\endgroup$ May 18, 2023 at 18:28

1 Answer 1

3
$\begingroup$

On section 5 of the GAMESS-US manual , it says the following.

For smaller data, such as CI vectors, where all processes want to store exactly the same data, only the master process needs to maintain the file. This situation is DSKWRK=.FALSE. When the data is to be recovered from disk, only the master process reads the disk, after which, the data is sent as a broadcast message to all other processes. The special file DICTNRY is always processed in this second way, so data recovered from it is the same (to the least significant bits) on every process. Another example of a file read by only one process is the run's INPUT file.

So from this, my understanding is that this DICTNRY file is written to disk during some processing.

And I see that GAMESS-US is written using fortran from the manual:

GAMESS will run on essentially any machine with a FORTRAN 77 compiler.

I tried to access the source code from here. However, I am hit with a non-responsive webpage. So my recommendation would be to look into the source with the following in mind.

  • Look for the files with the extensions .f, .for, f90. In those files, look for the keywords: OPEN and WRITE

  • So the DICTNRY file will be written to disk in a statement like this:

    OPEN(UNIT=some 
    number,FILE=DICTNRY_FILE_PATH,FORM='FORMATTED',STATUS='NEW')
    

    So this statement will essentially create a file and connect it to a
    unit defined by the number in the UNIT. And the data values will be written to the DICTNRY file in a statemen that looks like:

    WRITE(same number used with the UNIT before, either some datatypes like 
    '(4F10.5,A)' or *) 
    quantity_1,quantity_2,quantity_3,quantity_4,some_string
    

    In the above WRITE statement, 4F10.5 means 4 float values with 10 digits in total with 5 decimal digits and A represents string.

  • So you can look for the path to the DICTNRY file in the OPEN and then double check it in the WRITE statements by looking for some values of quantities like Atomic coordinates or any of the 817 parameters that are written to that file.

    Once you have path you can access it on the disk using the path during/after a run.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .