RE: AMBER: process_mdout modify

From: Ross Walker <ross.rosswalker.co.uk>
Date: Tue, 4 Nov 2008 07:41:33 -0800

Hi Naser,

 

You might find it more useful to adjust the code to print you the time to
more decimal places. Line 584 of dynlib.f in amber 10:

 

9018 format(/1x, 'NSTEP =',i9,3x,'TIME(PS) =',f12.3,2x, &

         'TEMP(K) =',f9.2,2x,'PRESS =',f8.1)

 

Change this to (f13.4 for Time and 2x to 1x)

 

9018 format(/1x, 'NSTEP =',i9,3x,'TIME(PS) =',f13.4,1x, &

         'TEMP(K) =',f9.2,2x,'PRESS =',f8.1)

 

And then recompile and you' get the time printed to 1/10 of a fs. I am
intrigued why you would want to be printing on every step and processing it
when you have a 0.2fs time step. I'm not sure you will learn a lot here but
the above should work to do what you want.

 

All the best

Ross

 

From: owner-amber.scripps.edu [mailto:owner-amber.scripps.edu] On Behalf Of
Naser Alijabbari
Sent: Monday, November 03, 2008 10:20 PM
To: amber.scripps.edu
Subject: AMBER: process_mdout modify

 

I needed a quick modification of the process_mdout.perl code to print
everything vs NSTEP instead of time. Once you go below 1fs time step with
ntpr=1 the output time intervals are truncated to 1fs. For example, multple
steps would have the same time:

NSTEP = 3 TIME(PS) = 116.001 TEMP(K) = 300.04 PRESS =
0.0
 Etot = -27701.6678 EKtot = 7491.6008 EPtot =
-35193.2686
 BOND = 312.5384 ANGLE = 876.3279 DIHED =
1136.3668
 1-4 NB = 392.6529 1-4 EEL = 5940.3176 VDWAALS =
4059.5920
 EELEC = -47911.0642 EHBOND = 0.0000 RESTRAINT =
0.0000
 Ewald error estimate: 0.2806E-04
 
----------------------------------------------------------------------------
--
 NSTEP =        4   TIME(PS) =     116.001  TEMP(K) =   298.48  PRESS =
0.0
 Etot   =    -27701.6341  EKtot   =      7452.6978  EPtot      =
-35154.3319
 BOND   =       317.3204  ANGLE   =       891.9842  DIHED      =
1137.7979
 1-4 NB =       393.1169  1-4 EEL =      5941.1097  VDWAALS    =
4061.7963
 EELEC  =    -47897.4572  EHBOND  =         0.0000  RESTRAINT  =
0.0000
 Ewald error estimate:   0.2840E-04
 
----------------------------------------------------------------------------
--
 NSTEP =        5   TIME(PS) =     116.001  TEMP(K) =   296.98  PRESS =
0.0
 Etot   =    -27701.6027  EKtot   =      7415.3336  EPtot      =
-35116.9363
 BOND   =       321.6989  ANGLE   =       906.8489  DIHED      =
1139.1966
 1-4 NB =       393.5432  1-4 EEL =      5941.9198  VDWAALS    =
4063.9960
 EELEC  =    -47884.1397  EHBOND  =         0.0000  RESTRAINT  =
0.0000
 Ewald error estimate:   0.2879E-04
 
----------------------------------------------------------------------------
--
 NSTEP =        6   TIME(PS) =     116.001  TEMP(K) =   295.56  PRESS =
0.0
 Etot   =    -27701.5814  EKtot   =      7379.9188  EPtot      =
-35081.5003
 BOND   =       325.5899  ANGLE   =       920.6791  DIHED      =
1140.5501
 1-4 NB =       393.9271  1-4 EEL =      5942.7437  VDWAALS    =
4066.1768
 EELEC  =    -47871.1671  EHBOND  =         0.0000  RESTRAINT  =
0.0000
 Ewald error estimate:   0.2892E-04
 
----------------------------------------------------------------------------
--
 NSTEP =        7   TIME(PS) =     116.002  TEMP(K) =   294.24  PRESS =
0.0
 Etot   =    -27701.5630  EKtot   =      7346.8308  EPtot      =
-35048.3937
 BOND   =       328.9197  ANGLE   =       933.2512  DIHED      =
1141.8464
 1-4 NB =       394.2643  1-4 EEL =      5943.5774  VDWAALS    =
4068.3392
 EELEC  =    -47858.5921  EHBOND  =         0.0000  RESTRAINT  =
0.0000
 Ewald error estimate:   0.2894E-04
 
 
 
 
I have just started trying to understand perl so things are a bit condusing.
I tried simpilistically:
 
.sortedkeys = sort by_number keys(%NSTEP);
.sortedavgkeys = sort by_number keys(%AVG_TIME);
foreach $i ( TEMP, TSOLUTE, TSOLVENT, PRES, EKCMT, ETOT, EKTOT, EPTOT,
DENSITY, VOLUME ) {
    print "Outputing summary.$i\n";
    open(OUTPUT, "> $i.txt");
    %outarray = eval "\%$i";
    foreach $j ( .sortedkeys ) {
 print OUTPUT "$j  ", $outarray{$j}, "\n";
    }
    close (OUTPUT);
 
And added 
#       update arrays
 $NSTEP              =$nstep;
 $TIME{$time}       = $time;
  $TEMP{$time}       = $temp;
  $PRES{$time}       = $pres;
  $ETOT{$time}       = $etot;
This just prints the last energy value. Isn't there a NSTEP hash? 
-----------------------------------------------------------------------
The AMBER Mail Reflector
To post, send mail to amber.scripps.edu
To unsubscribe, send "unsubscribe amber" (in the *body* of the email)
      to majordomo.scripps.edu
Received on Fri Dec 05 2008 - 10:41:48 PST
Custom Search