********>Master Bugfix File - Amber 8 Bug fixes 1 to 20 Programs: AMBER 8 Description: This is the master bugfix file for Amber 8. It contains all of the bugfixes released to date in a single patch script. Usage: Save this file in your $AMBERHOME directory and then apply this patch file to your amber 8 distribution as follows: cd $AMBERHOME patch -p0 -N -r patch_rejects Bugfix 1: Author: Scott Brozell Date: 03/25/2004 Programs: LEaP Description: tleap and xleap may cause a segmentation fault when saving a prmtop file using a unit containing unbonded hydrogen atoms; the problem occurs when modified GB radii are requested. Fix: apply the following patch to amber8/src/leap/src/leap/unitio.c ------------------------------------------------------------------------------ *** src/leap/src/leap/unitio.c 10 Mar 2004 23:25:00 -0000 7.43 --- src/leap/src/leap/unitio.c 25 Mar 2004 20:20:49 -0000 *************** *** 5177,5202 **** /* make the modifications that hydrogen radii depend upon the atom it is bonded to. iGBparm=1 corresponds to Amber 6, and JACS 122:2489 (2000); ! iGBparm=2 adds the modifcation from Biopolymers 56: 275 (2001) */ ! if( GDefaults.iGBparm == 1 || GDefaults.iGBparm == 2 ){ aAtomA = aAtomBondedNeighbor(saPAtom->aAtom, 0); ! if( sAtomType(aAtomA)[0] == 'C' || ! sAtomType(aAtomA)[0] == 'c' ) dGBrad = 1.3; ! if( sAtomType(aAtomA)[0] == 'O' || ! sAtomType(aAtomA)[0] == 'o' ) dGBrad = 0.8; ! if( sAtomType(aAtomA)[0] == 'S' || ! sAtomType(aAtomA)[0] == 's' ) dGBrad = 0.8; ! if( (sAtomType(aAtomA)[0] == 'N' || ! sAtomType(aAtomA)[0] == 'n') && ! GDefaults.iGBparm == 2) dGBrad = 1.3; } ! ! if( GDefaults.iGBparm == 6 ){ /* try Alexey's scheme */ ! aAtomA = aAtomBondedNeighbor(saPAtom->aAtom, 0); ! if( sAtomType(aAtomA)[0] == 'N' || ! sAtomType(aAtomA)[0] == 'n' ) dGBrad = 1.3; } break; --- 5177,5215 ---- /* make the modifications that hydrogen radii depend upon the atom it is bonded to. iGBparm=1 corresponds to Amber 6, and JACS 122:2489 (2000); ! iGBparm=2 adds the modification from Biopolymers 56: 275 (2001) */ ! if( iAtomCoordination(saPAtom->aAtom) > 0 ) { ! /* For multiply bonded Hydrogen atoms use the first ! * bond for determining modified GB radii. ! * WAT contains multiply bonded Hydrogen atoms ! * so do not emit a warning. */ aAtomA = aAtomBondedNeighbor(saPAtom->aAtom, 0); ! if( GDefaults.iGBparm == 1 || GDefaults.iGBparm == 2 ){ ! if( sAtomType(aAtomA)[0] == 'C' || ! sAtomType(aAtomA)[0] == 'c' ) dGBrad = 1.3; ! if( sAtomType(aAtomA)[0] == 'O' || ! sAtomType(aAtomA)[0] == 'o' ) dGBrad = 0.8; ! if( sAtomType(aAtomA)[0] == 'S' || ! sAtomType(aAtomA)[0] == 's' ) dGBrad = 0.8; ! if( (sAtomType(aAtomA)[0] == 'N' || ! sAtomType(aAtomA)[0] == 'n') && ! GDefaults.iGBparm == 2) dGBrad = 1.3; ! } ! else if( GDefaults.iGBparm == 6 ){ ! /* try Alexey's scheme */ ! if( sAtomType(aAtomA)[0] == 'N' || ! sAtomType(aAtomA)[0] == 'n' ) dGBrad = 1.3; ! } } ! else { ! VP0(( "WARNING: Unbonded Hydrogen atom %s in %s.\n" ! " Cannot determine the requested GB radius" ! " for this atom.\n" ! " Writing the unmodified Bondi GB radius.\n", ! saPAtom->aAtom->cHeader.sName, ! saPAtom->aAtom->cHeader.cContainedBy->sName )); } break; ------------------------------------------------------------------------------ Temporary workarounds: use the unmodified Bondi GB radii via the command set default PBradii bondi ------------------------------------------------------------------------------ ********>Bugfix 2: Author: Scott Brozell Date: 04/12/2004 Programs: sander, sander.LES Description: the configure option -scali does not produce MPI executables; the combination of -static and -scali does not work; notification of an undefined SCALI_HOME environment variable could be improved. Fix: apply the following patch to amber8/src/configure ------------------------------------------------------------------------------ *** src/configure 12 Mar 2004 00:19:15 -0000 1.224 --- src/configure 12 Apr 2004 22:19:36 -0000 *************** *** 282,287 **** --- 282,289 ---- scali_root='/opt/scali' if [ -z "$SCALI_HOME" ] ; then if [ -d $scali_root ]; then + echo "Warning: the SCALI_HOME environment variable is not defined !" + SCALI_HOME="$scali_root" echo "Caution: Setting SCALI_HOME to $scali_root (guessed)" else PAR="SCALI" *************** *** 289,296 **** EXAMPLE="/usr/local/scali" par_error fi fi ! if [ ! -d $SCALI_HOME/lib ] ||[ ! -d $SCALI_HOME/include ] then echo " missing dirs"; missingfiles ; fi if [ ! -f $SCALI_HOME/include/mpif.h ] ; then echo " missing include"; missingfiles ; fi --- 291,301 ---- EXAMPLE="/usr/local/scali" par_error fi + else + echo "SCALI_HOME is set to $SCALI_HOME" fi ! ! if [ ! -d $SCALI_HOME/lib ] || [ ! -d $SCALI_HOME/include ] then echo " missing dirs"; missingfiles ; fi if [ ! -f $SCALI_HOME/include/mpif.h ] ; then echo " missing include"; missingfiles ; fi *************** *** 300,308 **** then echo " missing libs"; missingfiles; fi done ! echo " SCALI_HOME is set to $SCALI_HOME" ! loadlib="$loadlib -lm -L$SCALI_HOME/lib -lfmpi -lmpi -lscasci -lscirtl" ! fppflags="-I$SCALI_HOME/include $fppflags" ;; none) # Nothing to do --- 305,321 ---- then echo " missing libs"; missingfiles; fi done ! if [ $static = "yes" ]; then ! # scali/doc/ScaMPI/FAQ item 20 (Version: 1.20 Date: Oct 15th 2001): ! #loadlib="$loadlib -L$SCALI_HOME/lib -lfmpi -lmpi -Wl,-Bdynamic -lpthread -ldl -Wl,-Bstatic" ! # builds but does not execute. ! # Neither does static linking of -lpthread -ldl. ! echo "Error: static linking with SCALI is not supported !" ! exit 1 ! else ! loadlib="$loadlib -L$SCALI_HOME/lib -lfmpi -lmpi" ! fi ! fppflags="-I$SCALI_HOME/include $fppflags -DMPI" ;; none) # Nothing to do ------------------------------------------------------------------------------ Temporary workarounds: use a different MPI implementation. ------------------------------------------------------------------------------ ********>Bugfix 3: Author: Dave Case Date: 04/20/2004 Programs: antechamber Description: pdb files that have a chainID in column 22 of ATOM cards will be read incorrectly. Fix: apply the following patch to amber8/src/antechamber/pdb.c ------------------------------------------------------------------------------ *** src/antechamber/pdb.c 2003/09/16 19:15:19 1.5 --- src/antechamber/pdb.c 2004/04/20 22:08:14 *************** *** 32,41 **** || strncmp("HETATM", line, 6) == 0) if (overflow_flag == 0) { if (pqr) ! sscanf(&line[21], "%d%lf%lf%lf%lf%lf%s", &tmpint2, &x, &y, &z, &tmpfloat1, &tmpfloat2, tmpchar); else ! sscanf(&line[21], "%d%lf%lf%lf", &tmpint2, &x, &y, &z); /* --- columns 13-16 have the Brookhaven-formatted name: */ --- 32,41 ---- || strncmp("HETATM", line, 6) == 0) if (overflow_flag == 0) { if (pqr) ! sscanf(&line[22], "%d%lf%lf%lf%lf%lf%s", &tmpint2, &x, &y, &z, &tmpfloat1, &tmpfloat2, tmpchar); else ! sscanf(&line[22], "%d%lf%lf%lf", &tmpint2, &x, &y, &z); /* --- columns 13-16 have the Brookhaven-formatted name: */ ------------------------------------------------------------------------------ Temporary workaround: Make sure that your input pdb files have a blank in column 22 of any ATOM or HETATM card ------------------------------------------------------------------------------ ********>Bugfix 4: Author: Chenglong Li and Ray Luo Date: 04/20/2004 Programs: pbsa Description: The program can exit with the error message "PB Bomb in epsbnd()"; this should not be an error, and should be treated as a warning instead. Fix: apply the following patch to amber8/src/pbsa/pb_force.f ------------------------------------------------------------------------------ *** src/pbsa/pb_force.f 2004/03/12 08:10:47 1.9 --- src/pbsa/pb_force.f 2004/04/21 01:18:03 *************** *** 3508,3515 **** if ( abs(insas(i,j,k)) == 2 .or. insas(i,j,k) == -1 ) then clstmp = atmsas(i,j,k) if ( clstmp == 0 ) then ! write(6, *) 'PB Bomb in epsbnd(): No neighbor found for exposed boundary grid', i, j, k ! call mexit(6,1) end if ! for a buried reentry grid point, find the atom that marked its neighoring exposed reentry --- 3508,3515 ---- if ( abs(insas(i,j,k)) == 2 .or. insas(i,j,k) == -1 ) then clstmp = atmsas(i,j,k) if ( clstmp == 0 ) then ! ! write(6, *) 'No neighbor found for exposed boundary grid', i, j, k ! nwarn = nwarn + 1 end if ! for a buried reentry grid point, find the atom that marked its neighoring exposed reentry ------------------------------------------------------------------------------ Temporary workaround: none ------------------------------------------------------------------------------ ********>Bugfix 5: Authors: Andres Gomez and Scott Brozell Date: 04/20/2004 Programs: xleap Description: the configure hpf90 and HP-UX compiler/architectures do not produce a functional xleap because the m4 macro processor push-back buffer is too small. Fix: apply the following patch to amber8/src/configure ------------------------------------------------------------------------------ *** src/configure 2004/03/12 00:19:15 1.224 --- src/configure 2004/04/20 23:07:11 *************** *** 715,720 **** --- 715,721 ---- freeformat_flag='+source=free' ar='ar rvs ' ranlib=/bin/true + m4='m4 -B50000' loadptraj="$load" ;; ------------------------------------------------------------------------------ Temporary workarounds: use tleap. ------------------------------------------------------------------------------ ********>Bugfix 6: Authors: Junmei Wang Date: 04/28/2004 Programs: antechamber Description: When the input is a mol2 file ("-fi mol2") antechamber gets confused, and will give wrong atom types and charges. Other fixups allow cm2 charges to be obtained, and to do some additional error checking, and better identification of aromatic rings Fix: copy this file to "$AMBERHOME/src/antechamber/patchfile". Then: cd $AMBERHOME/src/antechamber patch -p0 < patchfile ------------------------------------------------------------------------------ diff -c -r1.4 am1bcc.c *** src/antechamber/am1bcc.c 2004/02/02 21:46:47 1.4 --- src/antechamber/am1bcc.c 2004/04/28 23:11:49 *************** *** 44,49 **** --- 44,50 ---- char *system_env; char line[MAXCHAR]; int i, j, k, l; + int intstatus =1; double bccparm[MAX_BCCATOMTYPENUM][MAX_BCCATOMTYPENUM][MAX_BCCBONDTYPENUM]; double totalcharge = 0.0; *************** *** 143,148 **** --- 144,150 ---- " -o output file name \n" " -f output file format(pdb or ac, optional, default is ac)\n" " -p bcc parm file name (optional))\n" + " -s status information, can be 0 (brief), 1 (the default) and 2 (verbose)\n" " -j atom and bond type judge option, default is 0)\n" " 0: No judgement\n" " 1: Atom type\n" *************** *** 152,163 **** " 5: Atom and partial bond type\n"); exit(0); } ! if (argc != 7 && argc != 9 && argc != 11) { printf ("Usage: am1bcc -i input file name in ac format \n" " -o output file name \n" " -f output file format(pdb or ac, optional, default is ac)\n" " -p bcc parm file name (optional))\n" " -j atom and bond type judge option, default is 0)\n" " 0: No judgement\n" " 1: Atom type\n" --- 154,166 ---- " 5: Atom and partial bond type\n"); exit(0); } ! if (argc != 7 && argc != 9 && argc != 11 &argc != 13) { printf ("Usage: am1bcc -i input file name in ac format \n" " -o output file name \n" " -f output file format(pdb or ac, optional, default is ac)\n" " -p bcc parm file name (optional))\n" + " -s status information, can be 0 (brief), 1 (the default) and 2 (verbose)\n" " -j atom and bond type judge option, default is 0)\n" " 0: No judgement\n" " 1: Atom type\n" *************** *** 175,180 **** --- 178,184 ---- " -o output file name \n" " -f output file format(pdb or ac, optional, default is ac)\n" " -p bcc parm file name (optional))\n" + " -s status information, can be 0 (brief), 1 (the default) and 2 (verbose)\n" " -j atom and bond type judge option, default is 0)\n" " 0: No judgement\n" " 1: Atom type\n" *************** *** 184,194 **** " 5: Atom and partial bond type\n"); exit(0); } ! if (argc != 7 && argc != 9 && argc != 11) { printf("Usage: am1bcc -i input file name in ac format \n" " -o output file name \n" " -f output file format(pdb or ac, optional, default is ac)\n" " -p bcc parm file name (optional))\n" " -j atom and bond type judge option, default is 0)\n" " 0: No judgement\n" " 1: Atom type\n" --- 188,199 ---- " 5: Atom and partial bond type\n"); exit(0); } ! if (argc != 7 && argc != 9 && argc != 11 && argc != 13) { printf("Usage: am1bcc -i input file name in ac format \n" " -o output file name \n" " -f output file format(pdb or ac, optional, default is ac)\n" " -p bcc parm file name (optional))\n" + " -s status information, can be 0 (brief), 1 (the default) and 2 (verbose)\n" " -j atom and bond type judge option, default is 0)\n" " 0: No judgement\n" " 1: Atom type\n" *************** *** 209,214 **** --- 214,221 ---- strcpy(ofilename, argv[i + 1]); if (strcmp(argv[i], "-j") == 0) judge_flag = atoi(argv[i + 1]); + if (strcmp(argv[i], "-s") == 0) + intstatus = atoi(argv[i + 1]); if (strcmp(argv[i], "-f") == 0) if (strcmp(argv[i + 1], "PDB") == 0 || strcmp(argv[i + 1], "pdb") == 0) *************** *** 244,284 **** if (judge_flag == 1) { strcat(command_at, ifilename); ! if (cinfo.intstatus == 2) fprintf(stderr, "\nRunning: %s\n", command_at); system(command_at); } if (judge_flag == 2) { strcat(command_bt, ifilename); strcat(command_bt, " -j full"); ! if (cinfo.intstatus == 2) fprintf(stderr, "\nRunning: %s\n", command_bt); system(command_bt); } if (judge_flag == 3) { strcat(command_bt, ifilename); ! if (cinfo.intstatus == 2) fprintf(stderr, "\nRunning: %s\n", command_bt); system(command_bt); } if (judge_flag == 4) { strcat(command_bt, ifilename); strcat(command_bt, " -j full"); ! if (cinfo.intstatus == 2) fprintf(stderr, "\nRunning: %s\n", command_bt); system(command_bt); strcat(command_at, "ANTECHAMBER_AM1BCC.AC"); ! if (cinfo.intstatus == 2) fprintf(stderr, "\nRunning: %s\n", command_at); system(command_at); } if (judge_flag == 5) { strcat(command_bt, ifilename); ! if (cinfo.intstatus == 2) fprintf(stderr, "\nRunning: %s\n", command_bt); system(command_bt); strcat(command_at, "ANTECHAMBER_AM1BCC.AC"); ! if (cinfo.intstatus == 2) fprintf(stderr, "\nRunning: %s\n", command_at); system(command_at); } --- 251,291 ---- if (judge_flag == 1) { strcat(command_at, ifilename); ! if (intstatus == 2) fprintf(stderr, "\nRunning: %s\n", command_at); system(command_at); } if (judge_flag == 2) { strcat(command_bt, ifilename); strcat(command_bt, " -j full"); ! if (intstatus == 2) fprintf(stderr, "\nRunning: %s\n", command_bt); system(command_bt); } if (judge_flag == 3) { strcat(command_bt, ifilename); ! if (intstatus == 2) fprintf(stderr, "\nRunning: %s\n", command_bt); system(command_bt); } if (judge_flag == 4) { strcat(command_bt, ifilename); strcat(command_bt, " -j full"); ! if (intstatus == 2) fprintf(stderr, "\nRunning: %s\n", command_bt); system(command_bt); strcat(command_at, "ANTECHAMBER_AM1BCC.AC"); ! if (intstatus == 2) fprintf(stderr, "\nRunning: %s\n", command_at); system(command_at); } if (judge_flag == 5) { strcat(command_bt, ifilename); ! if (intstatus == 2) fprintf(stderr, "\nRunning: %s\n", command_bt); system(command_bt); strcat(command_at, "ANTECHAMBER_AM1BCC.AC"); ! if (intstatus == 2) fprintf(stderr, "\nRunning: %s\n", command_at); system(command_at); } =================================================================== *** src/antechamber/antechamber.c 2004/02/02 21:46:47 1.51 --- src/antechamber/antechamber.c 2004/04/28 23:12:00 *************** *** 299,305 **** char tmpchar[MAXCHAR]; char *system_env; ! wac("ANTECHAMBER_BOND_TYPE.AC", atomnum, atom, bondnum, bond, cinfo, minfo); system_env = (char *) getenv("AMBERHOME"); if (system_env != NULL) { --- 299,305 ---- char tmpchar[MAXCHAR]; char *system_env; ! wac("ANTECHAMBER_BOND_TYPE.AC0", atomnum, atom, bondnum, bond, cinfo, minfo); system_env = (char *) getenv("AMBERHOME"); if (system_env != NULL) { *************** *** 310,316 **** strcpy(tmpchar, "bondtype"); strcat(tmpchar, ! " -i ANTECHAMBER_BOND_TYPE.AC -o ANTECHAMBER_BOND_TYPE.AC -f ac -j "); if (bondtype_flag == 1) strcat(tmpchar, "part"); else --- 310,316 ---- strcpy(tmpchar, "bondtype"); strcat(tmpchar, ! " -i ANTECHAMBER_BOND_TYPE.AC0 -o ANTECHAMBER_BOND_TYPE.AC -f ac -j "); if (bondtype_flag == 1) strcat(tmpchar, "part"); else *************** *** 922,928 **** judgebondtype(atomnum, atom, bondnum, bond, cinfo, minfo, bondtype_flag); if(cinfo.prediction_index ==2||cinfo.prediction_index ==3) cinfo.prediction_index = 0; ! if(cinfo.prediction_index ==3||cinfo.prediction_index ==4) cinfo.prediction_index = 1; } if (duplicatedname_flag) --- 922,928 ---- judgebondtype(atomnum, atom, bondnum, bond, cinfo, minfo, bondtype_flag); if(cinfo.prediction_index ==2||cinfo.prediction_index ==3) cinfo.prediction_index = 0; ! if(cinfo.prediction_index ==4||cinfo.prediction_index ==5) cinfo.prediction_index = 1; } if (duplicatedname_flag) *************** *** 944,954 **** system(tmpchar); rac("ANTECHAMBER_AC.AC", &atomnum, atom, &bondnum, bond, &cinfo, &minfo); - if(strcmp("bcc", cinfo.chargetype) != 0 && strcmp("2", cinfo.chargetype) != 0) { - if(cinfo.prediction_index ==1) cinfo.prediction_index = 0; - if(cinfo.prediction_index ==4) cinfo.prediction_index = 2; - if(cinfo.prediction_index ==5) cinfo.prediction_index = 3; - } } /* the following code readin or calculate charges */ --- 944,949 ---- *************** *** 966,972 **** bcc(ifilename, atomnum, atom, bondnum, bond, arom, &cinfo, &minfo); if (strcmp("cm2", cinfo.chargetype) == 0 || strcmp("3", cinfo.chargetype) == 0) ! cm2(atomnum, atom, cinfo, minfo); if (strcmp("esp", cinfo.chargetype) == 0 || strcmp("4", cinfo.chargetype) == 0) esp(ifilename, atomnum, atom, cinfo, minfo); --- 961,967 ---- bcc(ifilename, atomnum, atom, bondnum, bond, arom, &cinfo, &minfo); if (strcmp("cm2", cinfo.chargetype) == 0 || strcmp("3", cinfo.chargetype) == 0) ! cm2(atomnum, atom, &cinfo, &minfo); if (strcmp("esp", cinfo.chargetype) == 0 || strcmp("4", cinfo.chargetype) == 0) esp(ifilename, atomnum, atom, cinfo, minfo); Index: charge.c =================================================================== RCS file: /thr/gamow/cvsroot/amber8/src/antechamber/charge.c,v retrieving revision 1.8 diff -c -r1.8 charge.c *** src/antechamber/charge.c 2004/02/02 21:44:42 1.8 --- src/antechamber/charge.c 2004/04/28 23:12:10 *************** *** 5,11 **** ! void rmopcharge(char *filename, int atomnum, ATOM atom[], MOLINFO *minfo) { /* now modified for divcon.out output */ --- 5,11 ---- ! void rmopcharge(char *filename, int atomnum, ATOM atom[], MOLINFO *minfo, int flag) { /* now modified for divcon.out output */ *************** *** 24,29 **** --- 24,30 ---- char line[MAXCHAR]; double tmpfloat1; double tmpfloat2; + double tmpfloat3; if ((fpout = fopen(filename, "r")) == NULL) { fprintf(stderr, "Cannot open %s , exit\n", filename); *************** *** 54,62 **** break; } if (index == 2) { ! sscanf(line, "%d%s%lf%lf", &tmpint, tmpchar, &tmpfloat1, ! &tmpfloat2); ! atom[number].charge = tmpfloat1; number++; } } --- 55,68 ---- break; } if (index == 2) { ! sscanf(line, "%d%s%lf%lf%lf", &tmpint, tmpchar, &tmpfloat1, ! &tmpfloat2, &tmpfloat3); ! if(flag == 1) ! atom[number].charge = tmpfloat1; ! if(flag == 2) ! atom[number].charge = tmpfloat2; ! if(flag == 3) ! atom[number].charge = tmpfloat3; number++; } } *************** *** 273,278 **** --- 279,288 ---- strcat(tmpchar1, " -i ANTECHAMBER_AM1BCC_PRE.AC -o ANTECHAMBER_AM1BCC.AC -f ac -p "); strcat(tmpchar1, tmpchar2); + strcat(tmpchar1, " -s "); + newitoa((*cinfo).intstatus, tmpchar2); + strcat(tmpchar1, tmpchar2); + /* if (strcmp((*cinfo).intype, "ac") == 0 || strcmp((*cinfo).intype, "1") == 0 || strcmp((*cinfo).intype, "mol2") == 0 || strcmp((*cinfo).intype, "2") == 0) { *************** *** 283,288 **** --- 293,305 ---- strcat(tmpchar1, tmpchar); } else strcat(tmpchar1, " -j 4"); + */ + if ((*cinfo).prediction_index == -1) + (*cinfo).prediction_index = 0; + newitoa((*cinfo).prediction_index, tmpchar); + strcat(tmpchar1, " -j "); + strcat(tmpchar1, tmpchar); + if ((*cinfo).intstatus == 2) fprintf(stderr, "\nRunning: %s\n", tmpchar1); system(tmpchar1); *************** *** 318,324 **** if (strcmp((*cinfo).intype, "mopout") == 0 || strcmp((*cinfo).intype, "12") == 0) ! rmopcharge(filename, atomnum, atom, minfo); else { wmopcrt("divcon.in", atomnum, atom, *minfo); --- 335,341 ---- if (strcmp((*cinfo).intype, "mopout") == 0 || strcmp((*cinfo).intype, "12") == 0) ! rmopcharge(filename, atomnum, atom, minfo, 1); else { wmopcrt("divcon.in", atomnum, atom, *minfo); *************** *** 332,366 **** if ((*cinfo).intstatus == 2 || (*cinfo).intstatus == 1) fprintf(stderr, "\nRunning: %s\n", tmpchar); system(tmpchar); ! rmopcharge("divcon.out", atomnum, atom, minfo); } bccharge(atomnum, atom, bondnum, bond, arom, cinfo, minfo); } /* CHARGE METHOD : CM2 */ ! void cm2(int atomnum, ATOM atom[], CONTROLINFO cinfo, MOLINFO minfo) { ! char tmpchar[200]; ! char keyword[MAXCHAR]; ! char *system_env; ! strcpy(keyword, minfo.mkeyword); ! strcat(keyword, " CM2 "); ! wmopcrt("ANTECHAMBER_CM2", atomnum, atom, minfo); ! system_env = (char *) getenv("AMBERHOME"); ! if (system_env != NULL) { ! strcpy(tmpchar, system_env); ! strcat(tmpchar, "/exe/"); ! strcat(tmpchar, minfo.mopac_prog); ! } else { ! strcpy(tmpchar, minfo.mopac_prog); ! } ! strcat(tmpchar, " ANTECHAMBER_CM2 ANTECHAMBER_CM2_OUT"); ! if (cinfo.intstatus == 2 || cinfo.intstatus == 1) ! fprintf(stderr, "\nRunning: %s\n", tmpchar); ! ! system(tmpchar); ! rmopcharge("ANTECHAMBER_CM2_OUT", atomnum, atom, &minfo); } /* CHARGE METHOD : Mulliken */ --- 349,376 ---- if ((*cinfo).intstatus == 2 || (*cinfo).intstatus == 1) fprintf(stderr, "\nRunning: %s\n", tmpchar); system(tmpchar); ! rmopcharge("divcon.out", atomnum, atom, minfo, 1); } bccharge(atomnum, atom, bondnum, bond, arom, cinfo, minfo); } /* CHARGE METHOD : CM2 */ ! void cm2(int atomnum, ATOM atom[], CONTROLINFO *cinfo, MOLINFO *minfo) { ! char tmpchar[200]; ! char *system_env; ! wmopcrt("divcon.in", atomnum, atom, *minfo); ! system_env = (char *) getenv("AMBERHOME"); ! if (system_env != NULL) { ! strcpy(tmpchar, system_env); ! strcat(tmpchar, "/exe/divcon"); ! } else ! strcpy(tmpchar, "divcon"); ! if ((*cinfo).intstatus == 2 || (*cinfo).intstatus == 1) ! fprintf(stderr, "\nRunning: %s\n", tmpchar); ! system(tmpchar); ! rmopcharge("divcon.out", atomnum, atom, minfo, 3); } /* CHARGE METHOD : Mulliken */ *************** *** 375,381 **** rgaucharge(filename, "mul", atomnum, atom, minfo); else if (strcmp((*cinfo).intype, "mopout") == 0 || strcmp((*cinfo).intype, "12") == 0) ! rmopcharge(filename, atomnum, atom, minfo); else { wmopcrt("divcon.in", atomnum, atom, *minfo); system_env = (char *) getenv("AMBERHOME"); --- 385,391 ---- rgaucharge(filename, "mul", atomnum, atom, minfo); else if (strcmp((*cinfo).intype, "mopout") == 0 || strcmp((*cinfo).intype, "12") == 0) ! rmopcharge(filename, atomnum, atom, minfo, 1); else { wmopcrt("divcon.in", atomnum, atom, *minfo); system_env = (char *) getenv("AMBERHOME"); *************** *** 388,394 **** if ((*cinfo).intstatus == 2 || (*cinfo).intstatus == 1) fprintf(stderr, "\nRunning: %s\n", tmpchar); system(tmpchar); ! rmopcharge("divcon.out", atomnum, atom, minfo); } } --- 398,404 ---- if ((*cinfo).intstatus == 2 || (*cinfo).intstatus == 1) fprintf(stderr, "\nRunning: %s\n", tmpchar); system(tmpchar); ! rmopcharge("divcon.out", atomnum, atom, minfo, 1); } } =================================================================== *** src/antechamber/ring.c 2003/06/11 05:30:53 1.1 --- src/antechamber/ring.c 2004/04/28 23:12:23 *************** *** 235,244 **** } for (i = 0; i < ringnum; i++) { - /* for pure aliphatic rings*/ tmpint = 0; for (j = 0; j < ring[i].num; j++) tmpint += initarom[ring[i].atomno[j]]; if (tmpint == -2 * ring[i].num) { for (j = 0; j < ring[i].num; j++) arom[ring[i].atomno[j]].ar5++; --- 235,244 ---- } for (i = 0; i < ringnum; i++) { tmpint = 0; for (j = 0; j < ring[i].num; j++) tmpint += initarom[ring[i].atomno[j]]; + /* for pure aliphatic rings*/ if (tmpint == -2 * ring[i].num) { for (j = 0; j < ring[i].num; j++) arom[ring[i].atomno[j]].ar5++; *************** *** 293,302 **** index0 = 0; for (k = 0; k < bondnum; k++) { if (bond[k].bondi == tmpint1 ! && (bond[k].type == 8 || bond[k].type == 2)) index0 = 1; if (bond[k].bondj == tmpint1 ! && (bond[k].type == 8 || bond[k].type == 2)) index0 = 1; } if (index0 == 0) --- 293,302 ---- index0 = 0; for (k = 0; k < bondnum; k++) { if (bond[k].bondi == tmpint1 ! && (bond[k].type == 8 || bond[k].type == 2 || bond[k].type == 10)) index0 = 1; if (bond[k].bondj == tmpint1 ! && (bond[k].type == 8 || bond[k].type == 2 || bond[k].type == 10)) index0 = 1; } if (index0 == 0) =================================================================== *** src/antechamber/bondtype.C 2004/02/26 22:31:28 1.7 --- src/antechamber/bondtype.C 2004/04/28 23:12:34 *************** *** 1154,1159 **** --- 1154,1165 ---- exit(1); } + for(i=0;iBugfix 7: Authors: Viktor Hornak Date: 05/03/2004 Programs: sander Description: The restraintmask or bellymask strings are parsed before the distances are read; hence the options to generate subsets of atoms based on distances will not work. Fix: copy this file to "$AMBERHOME/src/patchfile". Then: cd $AMBERHOME/src patch -p0 < patchfile ------------------------------------------------------------------------------ *** src/sander/findmask.f 2004-01-28 20:34:03.000000000 -0500 --- src/sander.fix/findmask.f 2004-04-26 11:35:20.000000000 -0400 *************** *** 707,713 **** call error1("noneq", "error parsing distance cutoff value") end if ! if (diststr(1:1).eq.'@'.or.diststr(1:1).eq.':') then ! atom based cutoff do i=1,natom if (mask2(i) == 1) then ii = 3*i - 3 --- 707,716 ---- call error1("noneq", "error parsing distance cutoff value") end if ! ! First, find atoms closer than 'dist' (regardless of whether the ! ! selection is atom or residue based and regardless of the distance ! ! operator ('<' or '>') used). ! if (diststr(1:1).eq.'@'.or.diststr(1:1).eq.':') then do i=1,natom if (mask2(i) == 1) then ii = 3*i - 3 *************** *** 716,733 **** r2 = (crd(ii+1)-crd(jj+1))**2 + & (crd(ii+2)-crd(jj+2))**2 + & (crd(ii+3)-crd(jj+3))**2 ! if (op.eq.'<') then ! if (r2 < d2) mask(j) = 1 ! else if (op.eq.'>') then ! if (r2 > d2) mask(j) = 1 ! else ! call error1("noneq","operator is not < or >") ! end if end do ! j end if end do ! i end if ! if (diststr(1:1).eq.':') then ! residue based cutoff ! if at least one atom in a residue is selected (from ! the previous step), select the whole residue --- 719,730 ---- r2 = (crd(ii+1)-crd(jj+1))**2 + & (crd(ii+2)-crd(jj+2))**2 + & (crd(ii+3)-crd(jj+3))**2 ! if (r2 < d2) mask(j) = 1 end do ! j end if end do ! i end if ! if (diststr(1:1).eq.':') then ! residue based cutoff ! if at least one atom in a residue is selected (from ! the previous step), select the whole residue *************** *** 743,748 **** --- 740,762 ---- end do end if + if (op.eq.'<') then + continue ! you're done + else if (op.eq.'>') then + ! Invert the selection: the best way of thinking about it is that + ! if you want atoms/residues further away than 'dist', select + ! atoms/residues that are closer than 'dist' and neg this selection. + do i=1,natom + if (mask(i) == 1) then + mask(i) = 0 + else + mask(i) = 1 + end if + end do ! i + else + call error1("noneq","operator is not < or >") + end if + if (diststr(1:1).ne.'@'.and.diststr(1:1).ne.':') then call error1("noneq", "residue (<:,>:) or atom (<@,>@) " // & "based distance cutoff must be specified") =============================================================================== *** src/sander/getcor.f 2004-03-04 11:39:03.000000000 -0500 --- src/sander.fix/getcor.f 2004-04-26 10:04:00.000000000 -0400 *************** *** 4,12 **** !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ !+ [Enter a one-line description of subroutine getcor here] #ifdef QMMM ! subroutine getcor(nr,x,v,f,ntx,box,irest,tt,temp0,nlink) #else ! subroutine getcor(nr,x,v,f,ntx,box,irest,tt,temp0) #endif ! --- reads initial coords, vel, and box for MD. --- 4,12 ---- !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ !+ [Enter a one-line description of subroutine getcor here] #ifdef QMMM ! subroutine getcor(nr,x,v,f,ntx,box,irest,tt,temp0,writeflag,nlink) #else ! subroutine getcor(nr,x,v,f,ntx,box,irest,tt,temp0,writeflag) #endif ! --- reads initial coords, vel, and box for MD. *************** *** 18,23 **** --- 18,27 ---- ! EWALD: read a modified form of the coordinate/restart file ! IMPLICIT _REAL_ (A-H,O-Z) + + ! writeflag was introduced to avoid false failures in test.sander + ! after atommask() dependency on getcor() was fixed by calling getcor() + ! twice: once before atommask() calls and second time in its usual place. implicit none # include "files.h" *************** *** 31,37 **** integer lun,nr,ntx,irest _REAL_ x(*),v(*),f(*),box(3),tt,temp0,ltemp0 ! logical form _REAL_ fvar(7),a,b,c,alpha,beta,gamma integer i,ivar,ifld(7),ihol(1) integer natom,nr3,ier --- 35,41 ---- integer lun,nr,ntx,irest _REAL_ x(*),v(*),f(*),box(3),tt,temp0,ltemp0 ! logical form, writeflag _REAL_ fvar(7),a,b,c,alpha,beta,gamma integer i,ivar,ifld(7),ihol(1) integer natom,nr3,ier *************** *** 41,48 **** ltemp0 = 0.0d0 nr3 = 3*nr lun = 9 !FIXME: use lun=-1 for new amopen() ! ! write(6,9108) ! ----- OPEN THE COORDINATE FILE ----- --- 45,52 ---- ltemp0 = 0.0d0 nr3 = 3*nr lun = 9 !FIXME: use lun=-1 for new amopen() ! ! if (writeflag) write(6,9108) ! ----- OPEN THE COORDINATE FILE ----- *************** *** 95,102 **** do i = 1,nr3 v(i) = 0.d0 end do ! write(6,9008) title1 ! write(6,9009) tt close(lun, iostat=ier) return end if --- 99,108 ---- do i = 1,nr3 v(i) = 0.d0 end do ! if (writeflag) then ! write(6,9008) title1 ! write(6,9009) tt ! end if close(lun, iostat=ier) return end if *************** *** 108,115 **** #else read(lun,9028,end=1010) (v(i),i=1,nr3) #endif ! write(6,9008) title1 ! write(6,9009) tt close(lun, iostat=ier) return --- 114,123 ---- #else read(lun,9028,end=1010) (v(i),i=1,nr3) #endif ! if (writeflag) then ! write(6,9008) title1 ! write(6,9009) tt ! end if close(lun, iostat=ier) return =============================================================================== *** src/sander/mdread.f 2004-03-04 11:39:04.000000000 -0500 --- src/sander.fix/mdread.f 2004-04-26 10:29:26.000000000 -0400 *************** *** 1581,1586 **** --- 1581,1599 ---- call rdrest(natom,ntx,ntrx,x(lcrdr)) close(10) + + ! inserted here to fix the bug that coords are not available + ! yet when distance based selection (<,>) is requested + #ifdef QMMM + call getcor(nr,x(lcrd),x(lvel),x(lforce),ntx,box,irest,t,temp0, & + .FALSE.,0) + #else + #ifdef LES + call getcor(nr,x(lcrd),x(lvel),x(lforce),ntx,box,irest,t,temp0les,.FALSE.) + #else + call getcor(nr,x(lcrd),x(lvel),x(lforce),ntx,box,irest,t,temp0,.FALSE.) + #endif + #endif ! VH - tgtmd change: preferably call atommask() instead of rgroup() if (konst) then *************** *** 1673,1678 **** --- 1686,1703 ---- belly = ibelly > 0 ngrp = 0 if(belly) then + ! inserted here to fix the bug that coords are not available + ! yet when distance based selection (<,>) is requested + #ifdef QMMM + call getcor(nr,x(lcrd),x(lvel),x(lforce),ntx,box,irest,t,temp0, & + .FALSE.,0) + #else + #ifdef LES + call getcor(nr,x(lcrd),x(lvel),x(lforce),ntx,box,irest,t,temp0les,.FALSE.) + #else + call getcor(nr,x(lcrd),x(lvel),x(lforce),ntx,box,irest,t,temp0,.FALSE.) + #endif + #endif write(6,9418) if( len_trim(bellymask) <= 0 ) then call rgroup(natom,natbel,nres,ngrp,ix(i02),ih(m02), & =============================================================================== *** src/sander/sander.f 2004-03-12 17:03:31.000000000 -0500 --- src/sander.fix/sander.f 2004-04-26 10:15:45.000000000 -0400 *************** *** 780,791 **** #ifdef QMMM nlink = 0 call getcor(nr,x(lcrd),x(lvel),x(lforce),ntx,box,irest,t,temp0, & ! nlink) #else #ifdef LES ! call getcor(nr,x(lcrd),x(lvel),x(lforce),ntx,box,irest,t,temp0les) #else ! call getcor(nr,x(lcrd),x(lvel),x(lforce),ntx,box,irest,t,temp0) #endif #endif #ifdef MPI --- 780,791 ---- #ifdef QMMM nlink = 0 call getcor(nr,x(lcrd),x(lvel),x(lforce),ntx,box,irest,t,temp0, & ! .TRUE.,nlink) #else #ifdef LES ! call getcor(nr,x(lcrd),x(lvel),x(lforce),ntx,box,irest,t,temp0les,.TRUE.) #else ! call getcor(nr,x(lcrd),x(lvel),x(lforce),ntx,box,irest,t,temp0,.TRUE.) #endif #endif #ifdef MPI ------------------------------------------------------------------------------ Temporary workarounds: don't use the distance features of the mask routines ********>Bugfix 8: Authors: Junmei Wang Date: 05/05/2004 Programs: antechamber Description: When the input is a mol2 file ("-fi mol2") antechamber, and the "-j 5" flag is also set, antechamber can give the wrong atom types or charges. Fix: Apply the following patch to $AMBERHOME/src/antechamber/bondtype.C ------------------------------------------------------------------------------ *** src/antechamber/bondtype.C 2004/04/28 23:30:19 1.8 --- src/antechamber/bondtype.C 2004/05/04 23:21:46 *************** *** 49,54 **** --- 49,55 ---- int *va_best; int *conjatom; int maxaps; + int judge_flag = 0; struct Point { int addr; *************** *** 731,739 **** { int i, j, k; int bondi, bondj; ! int flag, flag1, flag2; int num; int index[6]; for (i = 0; i < bondnum; i++) { bondi = bond[i].bondi; bondj = bond[i].bondj; --- 732,762 ---- { int i, j, k; int bondi, bondj; ! int flag, flag0, flag1, flag2 ; int num; int index[6]; + if (judge_flag == 0) { + for (i = 0; i < bondnum; i++) { + if(bond[i].type != 10) + continue; + bondi = bond[i].bondi; + bondj = bond[i].bondj; + flag0 = 0; + for (j = 0; j < bondnum; j++) { + if(i==j) continue; + if(bond[j].bondi == bondi || bond[j].bondj == bondi || + bond[j].bondi == bondj || bond[j].bondj == bondj) + if(bond[j].type == 2 || bond[j].type == 8) { + flag0 = 1; + break; + } + } + if(flag0 == 0) + bond[i].type = 8; + else + bond[i].type = 7; + } + } for (i = 0; i < bondnum; i++) { bondi = bond[i].bondi; bondj = bond[i].bondj; *************** *** 883,889 **** int tmpint1, tmpint2; int tmp_addr, tmp_penalty, tmp_valence; int flag = 0; - int judge_flag = 0; if (strcmp(COLORTEXT, "YES") == 0 || strcmp(COLORTEXT, "yes") == 0) { if (argc == 2 --- 906,911 ---- ------------------------------------------------------------------------------ Temporary workarounds: use pdb format files as input to antechamber, rather than mol2 files ********>Bugfix 9: Authors: Dave Case (reported by Martin Mucha) Date: 05/24/2004 Programs: sander Description: The "ioutfm = 1" option is supposed to make the coordinate, velocity and energy files binary. But sander only supports formatted energy files, so an error occurs. This patch simply makes the energy set formatted, regardless of the value of ioutfm Fix: Apply the following patch to $AMBERHOME/src/sander/dynlib.f ------------------------------------------------------------------------------ *** src/sander/dynlib.f 2004/02/18 16:28:24 7.69 --- src/sander/dynlib.f 2004/05/24 16:04:07 *************** *** 182,189 **** call amopen(mdvel_unit,mdvel,owrite,'U','W') write(mdvel_unit) title end if ! if (ntwe > 0) then ! call amopen(mden_unit,mden,owrite,'U','W') write(mden_unit) title end if end if ! (ioutfm <= 0) --- 182,189 ---- call amopen(mdvel_unit,mdvel,owrite,'U','W') write(mdvel_unit) title end if ! if (ntwe > 0) then ! mden is always formatted, regardless of ioutfm ! call amopen(mden_unit,mden,owrite,'F','W') write(mden_unit) title end if end if ! (ioutfm <= 0) ------------------------------------------------------------------------------ Temporary workarounds: use the default value of 0 for ioutfm ********>Bugfix 10: Authors: Yong Duan Date: 06/01/2004 Programs: LEaP Description: The leaprc.ff03 file loads the N-terminal and C-terminal libraries from ff94 after loading the ff03 libraries. This has the effect of using the old charges for ACE and NME. To get the correct values, one needs to change the order in which these files are loaded. Fix: Apply the following patch to $AMBERHOME/dat/leap/cmd/leaprc.ff03: ------------------------------------------------------------------------------ *** dat/leap/cmd/leaprc.ff03 2004/03/16 23:34:19 8.1 --- dat/leap/cmd/leaprc.ff03 2004/06/02 00:36:40 *************** *** 88,97 **** frcmod03 = loadamberparams frcmod.ff03 # - # Load amino acid libraries. - # - loadOff all_amino03.lib - # # Load water and ions # loadOff ions94.lib --- 88,93 ---- *************** *** 112,117 **** --- 108,114 ---- # loadOff all_aminoct94.lib loadOff all_aminont94.lib + loadOff all_amino03.lib # # Define the PDB name map for the amino acids and DNA. ------------------------------------------------------------------------------ Temporary workarounds: none ------------------------------------------------------------------------------ ********>Bugfix 11: Author: Scott Brozell (reported by Joanna Trylska) Date: 06/08/2004 Programs: addles, anal, ambpdb, new2oldparm, nmode, pbsa, sander Description: prmtop files with more than 999999 lines are not correctly read because of inconsistent loop limits. The failures are of the form: ERROR: Flag "xxxx" not found in PARM file Fix: Apply the following patch to $AMBERHOME/src/lib/nxtsec.f ------------------------------------------------------------------------------ *** src/lib/nxtsec.f 13 Mar 2004 00:27:01 -0000 7.12 --- src/lib/nxtsec.f 9 Jun 2004 05:36:33 -0000 *************** *** 42,47 **** --- 42,50 ---- c Author: David Pearlman c Date: 09/00 c + c Scott Brozell June 2004 + c Converted loop control to Fortran 90; these changes are g77 compatible. + c c The PARM file has the following format. c c %VERSION VERSION_STAMP = Vxxxx.yyy DATE = mm:dd:yy hh:mm:ss *************** *** 84,107 **** c %FLAG cards and store the lines they appear on. That way, on c subsequent calls we'll know immediately if we should read further c down the file, rewind, or exit with an error (flag not found). ! c ! LOGICAL FIRST ! SAVE NXTLC1,NXTLC2,NXTLC3,FIRST DATA FIRST/.TRUE./ c c MXNXFL is maximum number of %FLAG cards that can be specified c PARAMETER (MXNXFL = 500) ! c ! CHARACTER*(*) FMTOLD,FMT,FLAG ! c CHARACTER*80 NXTFLG CHARACTER*8 PRDAT,PRTIM CHARACTER*255 AA COMMON /NXTLC1/INXTFL(2,MXNXFL),IPRVRR,NUMFLG,IBLOCK COMMON /NXTLC2/RPVER COMMON /NXTLC3/NXTFLG(MXNXFL),PRDAT,PRTIM ! c IOK = 0 IF (FIRST) THEN c --- 87,140 ---- c %FLAG cards and store the lines they appear on. That way, on c subsequent calls we'll know immediately if we should read further c down the file, rewind, or exit with an error (flag not found). ! ! implicit none ! integer IUNIT ! integer IOUT ! integer IONERR ! character*(*) FMTOLD,FMT,FLAG ! integer IOK ! ! integer NNBCHR ! ! logical FIRST ! SAVE FIRST DATA FIRST/.TRUE./ c c MXNXFL is maximum number of %FLAG cards that can be specified c + integer MXNXFL PARAMETER (MXNXFL = 500) ! CHARACTER*80 NXTFLG CHARACTER*8 PRDAT,PRTIM CHARACTER*255 AA + integer IBLOCK + integer INXTFL + integer IPRVRR + integer NUMFLG + real RPVER COMMON /NXTLC1/INXTFL(2,MXNXFL),IPRVRR,NUMFLG,IBLOCK COMMON /NXTLC2/RPVER COMMON /NXTLC3/NXTFLG(MXNXFL),PRDAT,PRTIM ! ! integer I ! integer IPT ! integer IPT2 ! integer IPT3 ! integer IPT4 ! integer IPT5 ! integer IPT6 ! integer IPT7 ! integer IPT8 ! integer IPT9 ! integer IPT10 ! integer LFLAG ! integer IL2US ! integer IFIND ! integer MBLOCK ! integer ILFO ! IOK = 0 IF (FIRST) THEN c *************** *** 115,127 **** c in RPVER. Store the date and time strings as character strings in c PRDAT and PRTIM. c ! DO 10 I = 1,9999999 READ(IUNIT,11,END=20) AA 11 FORMAT(A) ! IF (AA(1:8).NE.'%VERSION') GO TO 10 c IPT = INDEX(AA,'VERSION_STAMP') ! IF (IPT.LE.0) GO TO 10 c IPT2 = NNBCHR(AA,IPT+13,0,0) IF (AA(IPT2:IPT2).NE.'=') GO TO 9000 --- 148,160 ---- c in RPVER. Store the date and time strings as character strings in c PRDAT and PRTIM. c ! do READ(IUNIT,11,END=20) AA 11 FORMAT(A) ! IF (AA(1:8).NE.'%VERSION') cycle c IPT = INDEX(AA,'VERSION_STAMP') ! IF (IPT.LE.0) cycle c IPT2 = NNBCHR(AA,IPT+13,0,0) IF (AA(IPT2:IPT2).NE.'=') GO TO 9000 *************** *** 155,161 **** * '| Version = ',F8.3,' Date = ',A,' Time = ',A) IPRVRR = 0 GO TO 50 ! 10 CONTINUE c c Get here if no VERSION flag read. Set IPRVRR = 1 and return. c On subsequent calls, if IPRVRR = 1, we return immediately. --- 188,194 ---- * '| Version = ',F8.3,' Date = ',A,' Time = ',A) IPRVRR = 0 GO TO 50 ! end do c c Get here if no VERSION flag read. Set IPRVRR = 1 and return. c On subsequent calls, if IPRVRR = 1, we return immediately. *************** *** 176,182 **** c 50 REWIND(IUNIT) NUMFLG = 0 ! DO I = 1,999999 READ(IUNIT,11,END=99) AA IF (AA(1:5).EQ.'%FLAG') THEN NUMFLG = NUMFLG + 1 --- 209,216 ---- c 50 REWIND(IUNIT) NUMFLG = 0 ! I = 1 ! do READ(IUNIT,11,END=99) AA IF (AA(1:5).EQ.'%FLAG') THEN NUMFLG = NUMFLG + 1 *************** *** 188,194 **** INXTFL(2,NUMFLG) = IPT3-IPT2+1 NXTFLG(NUMFLG) = AA(IPT2:IPT3) END IF ! END DO 99 REWIND(IUNIT) IBLOCK = 0 FIRST = .FALSE. --- 222,229 ---- INXTFL(2,NUMFLG) = IPT3-IPT2+1 NXTFLG(NUMFLG) = AA(IPT2:IPT3) END IF ! I = I + 1 ! end do 99 REWIND(IUNIT) IBLOCK = 0 FIRST = .FALSE. *************** *** 237,249 **** 120 IFIND = I MBLOCK = IBLOCK IF (IFIND.GT.IBLOCK) THEN ! DO I = 1,999999 READ(IUNIT,11,END=9008) AA IF (AA(1:5).EQ.'%FLAG') THEN MBLOCK = MBLOCK + 1 ! IF (MBLOCK.EQ.IFIND) GO TO 145 END IF ! END DO ELSE REWIND(IUNIT) DO I = 1,IL2US --- 272,284 ---- 120 IFIND = I MBLOCK = IBLOCK IF (IFIND.GT.IBLOCK) THEN ! do READ(IUNIT,11,END=9008) AA IF (AA(1:5).EQ.'%FLAG') THEN MBLOCK = MBLOCK + 1 ! IF (MBLOCK.EQ.IFIND) exit END IF ! end do ELSE REWIND(IUNIT) DO I = 1,IL2US *************** *** 251,271 **** END DO END IF ! 145 DO I = 1,9999999 READ(IUNIT,11,END=9009) AA ! IF (AA(1:7).EQ.'%FORMAT') GO TO 160 END DO c c First %FORMAT found following appropriate %FLAG. Extract the c format and return. All non-blank characters following %FORMAT c comprise the format string (embedded blanks allowed). c ! 160 IPT2 = NNBCHR(AA,8,0,0) IF (IPT2.EQ.-1) GO TO 9010 DO I = LEN(AA),IPT2,-1 ! IF (AA(I:I).NE.' ') GO TO 170 END DO ! 170 IPT3 = I c c Format string is in IPT2:IPT3. Make sure passed FMT string is large c enought to hold this and then return. --- 286,306 ---- END DO END IF ! DO READ(IUNIT,11,END=9009) AA ! IF (AA(1:7).EQ.'%FORMAT') exit END DO c c First %FORMAT found following appropriate %FLAG. Extract the c format and return. All non-blank characters following %FORMAT c comprise the format string (embedded blanks allowed). c ! IPT2 = NNBCHR(AA,8,0,0) IF (IPT2.EQ.-1) GO TO 9010 DO I = LEN(AA),IPT2,-1 ! IF (AA(I:I).NE.' ') exit END DO ! IPT3 = I c c Format string is in IPT2:IPT3. Make sure passed FMT string is large c enought to hold this and then return. *************** *** 336,362 **** c if no non-blank character found (IOPER = 0) or no blank c character found (IOPER = 1). c ! CHARACTER*(*) AA IBG = IBEG IEN = IEND IF (IBEG.LE.0) IBG = 1 IF (IEND.LE.0) IEN = LEN(AA) c IF (IOPER.EQ.0) THEN ! DO 10 I = IBG,IEN IF (AA(I:I).NE.' ') THEN NNBCHR = I RETURN END IF ! 10 CONTINUE NNBCHR = -1 ELSE IF (IOPER.EQ.1) THEN ! DO 20 I = IBG,IEN IF (AA(I:I).EQ.' ') THEN NNBCHR = I RETURN END IF ! 20 CONTINUE NNBCHR = -1 END IF c --- 371,407 ---- c if no non-blank character found (IOPER = 0) or no blank c character found (IOPER = 1). c ! implicit none ! integer NNBCHR ! character*(*) AA ! integer IBEG ! integer IEND ! integer IOPER ! ! integer I ! integer IBG ! integer IEN ! IBG = IBEG IEN = IEND IF (IBEG.LE.0) IBG = 1 IF (IEND.LE.0) IEN = LEN(AA) c IF (IOPER.EQ.0) THEN ! DO I = IBG,IEN IF (AA(I:I).NE.' ') THEN NNBCHR = I RETURN END IF ! end do NNBCHR = -1 ELSE IF (IOPER.EQ.1) THEN ! do I = IBG,IEN IF (AA(I:I).EQ.' ') THEN NNBCHR = I RETURN END IF ! end do NNBCHR = -1 END IF c ------------------------------------------------------------------------------ Temporary workarounds: reformat the prmtop contents to reduce its line count. ********>Bugfix 12: Author: Dave Case (reported by Dat Nguyen) Date: 06/15/2004 Programs: sander Description: When extra points are present, their masses are irrelevant, and are set to zero in the fix_masses() routine in extra_pts.f. However, before this happens, an inverse mass is calculated in rdparm2(). This can lead to a crash for some machines if the input mass is zero. Fix: Apply the following patch to $AMBERHOME/src/sander/rdparm.f ------------------------------------------------------------------------------ *** src/sander/rdparm.f 2004/03/14 06:23:51 8.0 --- src/sander/rdparm.f 2004/06/15 20:47:00 *************** *** 812,818 **** ! -- make inverse in "old" Lwinv area ! x(k) = 1.0d0 / x(k) end do tmass = tmass + x(j) end do --- 812,818 ---- ! -- make inverse in "old" Lwinv area ! if( x(k) /= 0.d0 ) x(k) = 1.0d0 / x(k) end do tmass = tmass + x(j) end do ------------------------------------------------------------------------------ Temporary workarounds: none that make more sense than applying the patch ********>Bugfix 13: Author: Ross Walker, with help from Bing Wang and Dave Case Date: 06/18/2004 Programs: sander.QMMM Description: Several patches are needed to make the QMMM option work correctly, especially for molecular dynamics. These involve glitches in transfering things from the ROAR environment to sander. Fix: save this file to bugfix.13 cd $AMBERHOME patch -N -p0 -r rejects < bugfix.13 ------------------------------------------------------------------------------ *** src/sander/dynlib.f 2004/06/18 15:51:52 7.70 --- src/sander/dynlib.f 2004/06/18 16:01:09 *************** *** 316,322 **** --- 316,327 ---- else write(6,9059) eel,ehbond,econst end if + #ifdef QMMM + !write the SCF energy + write(6,9080) esurf + #else if (gbsa > 0) write(6,9077) esurf + #endif if (econst /= 0.0) write(6,9076) epot-econst if ( dvdl /= 0.d0) write(6,9089) dvdl #ifndef LES *************** *** 367,373 **** --- 372,383 ---- else write(7,9059) eel,ehbond,econst end if + #ifdef QMMM + !write the SCF energy + write(7,9080) esurf + #else if (gbsa > 0) write(7,9077) esurf + #endif if (econst /= 0.0) write(7,9076) epot-econst if ( dvdl /= 0.d0) write(7,9089) dvdl #ifndef LES *************** *** 411,416 **** --- 421,427 ---- 9078 format (1x,'EKCMT = ',f14.4,2x,'VIRIAL = ',f14.4,2x, & 'VOLUME = ',f14.4) 9079 format (52x,'Density = ',f14.4) + 9080 format (1x,'ESCF = ',f14.4) #ifdef LES ! LES and non-LES temperatures (no solvent/solute) *** src/sander/link_atoms.f 2003/12/31 21:19:23 7.5 --- src/sander/link_atoms.f 2004/06/18 16:01:51 *************** *** 1,5 **** subroutine link_atoms(nbonds,x,nlink,npert,ib,jb, & ! qmlink,nquant,labels,natoms,winv,numbon,mmqmbo, & igrp) ! implicit double precision (a-h,o-z) --- 1,5 ---- subroutine link_atoms(nbonds,x,nlink,npert,ib,jb, & ! qmlink,nquant,labels,natoms,winv,amass,numbon,mmqmbo, & igrp) ! implicit double precision (a-h,o-z) *************** *** 9,15 **** ! common/parms/rk(5000),req(5000),tk(900),teq(900),pk(900),pn(900), ! + phase(900),cn1(1830),cn2(1830),solty(60), ! + gamc(900),gams(900),ipn(900),fmn(900) ! dimension x(*),ib(*),jb(*),qmlink(*),labels(*),winv(*) dimension mmqmbo(*),igrp(*) ! ! PMF info: --- 9,15 ---- ! common/parms/rk(5000),req(5000),tk(900),teq(900),pk(900),pn(900), ! + phase(900),cn1(1830),cn2(1830),solty(60), ! + gamc(900),gams(900),ipn(900),fmn(900) ! dimension x(*),ib(*),jb(*),qmlink(*),labels(*),winv(*),amass(*) dimension mmqmbo(*),igrp(*) ! ! PMF info: *************** *** 82,91 **** 150 continue nlink = mm end if ! do 200 i=1,nlink ! winv(i) = atinv ! igrp(i) = 1 ! 200 continue ! ! identify those atoms directly bonded to quantum atoms ! --- 82,92 ---- 150 continue nlink = mm end if ! do i=1,nlink ! winv(i) = atinv ! amass(i) = 1.d0/atinv ! igrp(i) = 1 ! end do ! ! identify those atoms directly bonded to quantum atoms ! *** src/sander/locmem.f 2004/03/14 06:07:35 7.116 --- src/sander/locmem.f 2004/06/18 16:02:58 *************** *** 205,211 **** ! --- real array NMR restraints/weight changes: ! call adj_mem_ptr( r_ptr, lmass, natom ) call adj_mem_ptr( r_ptr, lnmr01, irlreq ) call adj_mem_ptr( r_ptr, l75, natom ) --- 205,211 ---- ! --- real array NMR restraints/weight changes: ! call adj_mem_ptr( r_ptr, lmass, natom + ncpp ) call adj_mem_ptr( r_ptr, lnmr01, irlreq ) call adj_mem_ptr( r_ptr, l75, natom ) *************** *** 214,220 **** --- 214,228 ---- else if (nmropt > 0 ) then call adj_mem_ptr( r_ptr, l95, max(natom, 2*ntbond) ) else + #ifdef QMMM + ! QMMM code uses l95 as xwij(3,ln) in resnba. The memory allocated + ! to this used to be much bigger in the amber 4.1 days and so we + ! need to make sure it is big enough for use in the old nonbond + ! list code. + call adj_mem_ptr( r_ptr, l95, max(3*nmxrs*nmxrs,2*ntbond) ) + #else call adj_mem_ptr( r_ptr, l95, 2*ntbond ) + #endif end if if( igb /= 0 ) then call adj_mem_ptr( r_ptr, l96, natom ) *************** *** 323,329 **** call adj_mem_ptr( i_ptr, i02, nres + 1 ) call adj_mem_ptr( i_ptr, i04, natom+ncpp ) call adj_mem_ptr( i_ptr, i06, ntypes*ntypes ) ! call adj_mem_ptr( i_ptr, i08, natom+ncpp ) call adj_mem_ptr( i_ptr, i10, 2*nnb ) iibh = i_ptr --- 331,337 ---- call adj_mem_ptr( i_ptr, i02, nres + 1 ) call adj_mem_ptr( i_ptr, i04, natom+ncpp ) call adj_mem_ptr( i_ptr, i06, ntypes*ntypes ) ! call adj_mem_ptr( i_ptr, i08, natom + ncpp ) call adj_mem_ptr( i_ptr, i10, 2*nnb ) iibh = i_ptr *** src/sander/rdparm.f 2004/06/15 21:08:03 7.75 --- src/sander/rdparm.f 2004/06/18 16:03:39 *************** *** 207,222 **** left = natom - (num*20) kk = 1 mm = 1 if(num.ge.1) then do i=1,num cstrng(:) = ' ' ll = 1 - FMTIN = AFMT - TYPE = 'ATOM_NAME' - CALL NXTSEC(NF, 6, 0,FMTIN, TYPE, FMT, IOK) - do jtemp = 1, i-1 - read(nf,9108) - enddo read(nf,9138)(cstrng(k),k=1,80) call qmcompare(cstrng,itemp,20) do n=1,20 --- 207,219 ---- left = natom - (num*20) kk = 1 mm = 1 + FMTIN = AFMT + TYPE = 'ATOM_NAME' + CALL NXTSEC(NF, 6, 0,FMTIN, TYPE, FMT, IOK) if(num.ge.1) then do i=1,num cstrng(:) = ' ' ll = 1 read(nf,9138)(cstrng(k),k=1,80) call qmcompare(cstrng,itemp,20) do n=1,20 *************** *** 237,259 **** ll = 1 read(nf,9138)(cstrng(k),k=1,80) call qmcompare(cstrng,itemp,left) ! if(left.eq.1) then if(labels(kk).eq.mm) then ! mlabel(kk) = itemp(1) end if ! else ! do n=1,left ! if(labels(kk).eq.mm) then ! mlabel(kk) = itemp(ll) ! mm = mm + 1 ! ll = ll + 1 ! kk = kk + 1 ! else ! mm = mm + 1 ! ll = ll + 1 ! end if ! end do ! end if end if end if #endif --- 234,250 ---- ll = 1 read(nf,9138)(cstrng(k),k=1,80) call qmcompare(cstrng,itemp,left) ! do n=1,left if(labels(kk).eq.mm) then ! mlabel(kk) = itemp(ll) ! mm = mm + 1 ! ll = ll + 1 ! kk = kk + 1 ! else ! mm = mm + 1 ! ll = ll + 1 end if ! end do end if end if #endif *** src/sander/runmd.f 2004-06-18 13:37:28.000000000 -0700 --- src/sander/runmd.f 2004-06-18 13:37:43.000000000 -0700 *************** *** 185,194 **** lout = .true. loutfm = ioutfm <= 0 nr = nrp - nr3 = 3*nr #ifdef QMMM nr = nr + nlink #endif ekmh = 0.d0 #ifdef LES ekmhles = 0.d0 --- 185,194 ---- lout = .true. loutfm = ioutfm <= 0 nr = nrp #ifdef QMMM nr = nr + nlink #endif + nr3 = 3*nr ekmh = 0.d0 #ifdef LES ekmhles = 0.d0 *************** *** 206,212 **** end if #else istart = 1 ! iend = natom #endif istart3 = 3*istart -2 iend3 = 3*iend --- 206,212 ---- end if #else istart = 1 ! iend = nr #endif istart3 = 3*istart -2 iend3 = 3*iend *************** *** 425,430 **** --- 425,436 ---- fiti = 0.d0 fit2 = 0.d0 + #ifdef QMMM + ! Set ntnb=1 to ensure that we always do an initial non-bond list update + ! before doing any MD, even if this is a restart. + ntnb = 1 + #endif + do i = 1,nren ener(i) = 0.0d0 enert(i) = 0.0d0 *************** *** 460,466 **** ! ----- CALCULATE THE CENTER OF MASS ENERGY AND THE COORDINATES ! OF THE SUB-MOLECULES WITH RESPECT TO ITS OWN CENTER OF ! MASS ----- ! call ekcmr(nspm,nsp,tma,ekcmt,xr,v,amass,1,natom) end if ! ----- CALCULATE THE FORCE ----- --- 466,472 ---- ! ----- CALCULATE THE CENTER OF MASS ENERGY AND THE COORDINATES ! OF THE SUB-MOLECULES WITH RESPECT TO ITS OWN CENTER OF ! MASS ----- ! call ekcmr(nspm,nsp,tma,ekcmt,xr,v,amass,1,nr) end if ! ----- CALCULATE THE FORCE ----- *************** *** 477,483 **** iprint = 1 ! TIME_force is started and stopped inside force #ifdef QMMM - if(nstep == 0) ntnb = 1 call forcecp(xx,ix,ih,ipairs,x,f,ener(23),vir, & r_stack, xx(l96), xx(l97), xx(l98), & do_list_update, ifqnt, nquant, & --- 483,488 ---- *************** *** 937,946 **** nstep + 1 #ifdef PSANDER endif ! call setvel(natom,v,winv,temp0*factt,init,iscale,scalm) if (ibelly > 0) call bellyf(nr,ix(ibellygp),v) #else ! call setvel(natom,v,winv,temp0*factt,init,iscale,scalm) #ifdef LES ! newvel call is fixed for the dual target temperatures --- 942,951 ---- nstep + 1 #ifdef PSANDER endif ! call setvel(nr,v,winv,temp0*factt,init,iscale,scalm) if (ibelly > 0) call bellyf(nr,ix(ibellygp),v) #else ! call setvel(nr,v,winv,temp0*factt,init,iscale,scalm) #ifdef LES ! newvel call is fixed for the dual target temperatures *************** *** 1019,1025 **** ! in order. The unused results are thrown away i3 = 3*(istart-1) ! do j=1,natom if( jiend ) then call gauss( 0.d0, 1.d0, fln ) call gauss( 0.d0, 1.d0, fln ) --- 1024,1030 ---- ! in order. The unused results are thrown away i3 = 3*(istart-1) ! do j=1,nr if( jiend ) then call gauss( 0.d0, 1.d0, fln ) call gauss( 0.d0, 1.d0, fln ) *************** *** 1567,1576 **** ! --- now compute the com motion, remove it, and recompute (just ! to check that it is really gone.....) ! call cenmas(natom,f,v,tmass,tmassinv,amass,ekcm, & xcm,vcm,acm,ekrot,ocm,4) ! call stopcm(natom,f,v,xcm,vcm,ocm) ! call cenmas(natom,f,v,tmass,tmassinv,amass,ekcm, & xcm,vcm,acm,ekrot,ocm,4) else --- 1572,1581 ---- ! --- now compute the com motion, remove it, and recompute (just ! to check that it is really gone.....) ! call cenmas(nr,f,v,tmass,tmassinv,amass,ekcm, & xcm,vcm,acm,ekrot,ocm,4) ! call stopcm(nr,f,v,xcm,vcm,ocm) ! call cenmas(nr,f,v,tmass,tmassinv,amass,ekcm, & xcm,vcm,acm,ekrot,ocm,4) else *************** *** 1822,1828 **** if (itdump) then if( iwrap == 0 ) then ! call corpac(x,1,nrx,12,loutfm) if(ntb > 0) call corpac(box,1,3,12,loutfm) else call get_stack(l_temp,3*natom) --- 1827,1833 ---- if (itdump) then if( iwrap == 0 ) then ! call corpac(x,1,3*natom,12,loutfm) if(ntb > 0) call corpac(box,1,3,12,loutfm) else call get_stack(l_temp,3*natom) *************** *** 1835,1841 **** if (ifbox == 2) call wrap_to(nspm,nsp,r_stack(l_temp),box) end if #endif ! call corpac(r_stack(l_temp),1,nrx,12,loutfm) if(ntb > 0) call corpac(box,1,3,12,loutfm) call free_stack(l_temp) end if --- 1840,1846 ---- if (ifbox == 2) call wrap_to(nspm,nsp,r_stack(l_temp),box) end if #endif ! call corpac(r_stack(l_temp),1,3*natom,12,loutfm) if(ntb > 0) call corpac(box,1,3,12,loutfm) call free_stack(l_temp) end if *************** *** 1844,1850 **** ! Velocity archive: if (ntwv > 0) then ! if (mod(nstep,ntwv) == 0) call corpac(v,1,nrx,13,loutfm) end if ! Energy archive: --- 1849,1855 ---- ! Velocity archive: if (ntwv > 0) then ! if (mod(nstep,ntwv) == 0) call corpac(v,1,3*natom,13,loutfm) end if ! Energy archive: *** src/sander/sander.f 2004/05/03 17:49:03 7.206 --- src/sander/sander.f 2004/06/18 16:05:37 *************** *** 912,918 **** klink = nlink call link_atoms(nbona,x(Lcrd),nlink,npert,ix(iiba), & ix(ijba),x(Lcrd+3*natom),nquant, & ! labels,natom,x(Lwinv+natom),mmqmbo(1),mmqmbo(2), & ix(icnstrgp+nr)) if((imin.eq.0).and.(nlink.ne.0).and.(klink.eq.0)) then write(6,*) 'FATAL ERROR' --- 912,918 ---- klink = nlink call link_atoms(nbona,x(Lcrd),nlink,npert,ix(iiba), & ix(ijba),x(Lcrd+3*natom),nquant, & ! labels,natom,x(Lwinv+natom),x(Lmass+natom),mmqmbo(1),mmqmbo(2), & ix(icnstrgp+nr)) if((imin.eq.0).and.(nlink.ne.0).and.(klink.eq.0)) then write(6,*) 'FATAL ERROR' *************** *** 926,943 **** end if if(nbona.gt.0) then ! itemp = nbona ! call del_bond2(nbona,ix(iibh+nbonh),ix(ijbh+nbonh), & ! ix(iicbh+nbonh),ix(iiba),ix(ijba),ix(iicba), & nquant,labels) - idiff = itemp - nbona - nbona = nbona - idiff - - ! adjust memory location pointers to reflect changes in bonding - - Iiba = Iibh + nbonh - Ijba = Ijbh + nbonh - Iicba = Iicbh + nbonh end if ! now that all of the "qm bonds" have been deleted from the bond lists --- 926,933 ---- end if if(nbona.gt.0) then ! call del_bond(nbona,ix(iiba),ix(ijba),ix(iicba), & nquant,labels) end if ! now that all of the "qm bonds" have been deleted from the bond lists *** src/divcon/dcartcl.f 2004/01/15 00:31:12 1.1 --- src/divcon/dcartcl.f 2004/06/18 16:06:21 *************** *** 27,34 **** IMPLICIT DOUBLE PRECISION (A-H,O-Z) #include "divcon.dim" #include "divcon.h" ! ! c#include "sizesqm.h" DIMENSION COORD(3,*), DXYZQM(3,*),crdsmm(*),DXYZMM(3,*), . chrgs(*),iqmres(*),mark(*),jqatms(*) dimension xyz_qm(3),xyz_mm(3),psum(171) --- 27,34 ---- IMPLICIT DOUBLE PRECISION (A-H,O-Z) #include "divcon.dim" #include "divcon.h" ! #include "sizesqm.h" ! DIMENSION COORD(3,*), DXYZQM(3,*),crdsmm(*),DXYZMM(3,*), . chrgs(*),iqmres(*),mark(*),jqatms(*) dimension xyz_qm(3),xyz_mm(3),psum(171) *************** *** 93,99 **** c DEBUG = (INDEX(KEYWRD,'DCART') .NE. 0) c FORCE = (INDEX(KEYWRD,'PREC')+INDEX(KEYWRD,'FORCE') .NE. 0) ENDIF ! do 20 i=1,natoms do 10 j=1,3 dxyzmm(j,i) = 0.0d0 10 continue --- 93,99 ---- c DEBUG = (INDEX(KEYWRD,'DCART') .NE. 0) c FORCE = (INDEX(KEYWRD,'PREC')+INDEX(KEYWRD,'FORCE') .NE. 0) ENDIF ! do 20 i=1,mxatom do 10 j=1,3 dxyzmm(j,i) = 0.0d0 10 continue *** src/divcon/qm_mm.f 2004/01/15 00:31:23 1.1 --- src/divcon/qm_mm.f 2004/06/18 16:08:07 *************** *** 46,52 **** #include "divcon.dim" #include "divcon.h" ! c#include "OLD/SIZES" C character keywrd*241 C --- 46,52 ---- #include "divcon.dim" #include "divcon.h" ! #include "sizesqm.h" C character keywrd*241 C *************** *** 66,73 **** c COMMON /DIPSTO/ UX,UY,UZ,CH(NUMATM) c#include "../sizesqm.h" - parameter (mxatom=20000) - dimension qcords(3,mxatom),jqatms(*),mlabel(*),x(*),chrgs(*) dimension qmlink(*),forces(*) dimension dxyzqm(3,mxatom),dxyzcl(3,mxatom) --- 66,71 ---- *************** *** 151,157 **** $ nquatm,x,chrgs,iread, $ iqmres,mark,jqatms) endif ! call wrttims if (icalcf.eq.0) then call gcart(dxyzqm) if (idc.eq.1) then --- 149,155 ---- $ nquatm,x,chrgs,iread, $ iqmres,mark,jqatms) endif ! c call wrttims if (icalcf.eq.0) then call gcart(dxyzqm) if (idc.eq.1) then *************** *** 167,181 **** call atmchg call wrtchg endif ! write(iout,'(/" ELECTRONIC ENERGY = ",f25.8," EV", ! . /" CORE-CORE REPULSIONS = ",f25.8," EV")') ! . eelect,ecore ! write(iout,'(" TOTAL ENERGY = ",f25.8," EV", ! . /" HEAT OF FORMATION = ",f25.8," KCAL/MOL")') ! . etot,escf ! write(iout,'(" FERMI ENERGY = ",f25.8," EV")') ! . efermi(1) ! call wrtxyz c c calculate electrostatic potential c --- 165,179 ---- call atmchg call wrtchg endif ! c write(iout,'(/" ELECTRONIC ENERGY = ",f25.8," EV", ! c . /" CORE-CORE REPULSIONS = ",f25.8," EV")') ! c . eelect,ecore ! c write(iout,'(" TOTAL ENERGY = ",f25.8," EV", ! c . /" HEAT OF FORMATION = ",f25.8," KCAL/MOL")') ! c . etot,escf ! c write(iout,'(" FERMI ENERGY = ",f25.8," EV")') ! c . efermi(1) ! c call wrtxyz c c calculate electrostatic potential c *************** *** 218,224 **** enddo endif enddo ! else do 300 i=1,nquatm m = jqatms(i) do 320 j=1,3 --- 216,227 ---- enddo endif enddo ! do i=1,ntotatm ! do j=1,3 ! forces((i-1)*3+j) = forces((i-1)*3+j) - dxyzcl(j,i) ! enddo ! enddo ! else do 300 i=1,nquatm m = jqatms(i) do 320 j=1,3 *** src/divcon/rotatecl.f 2004/01/15 00:31:30 1.1 --- src/divcon/rotatecl.f 2004/06/18 16:13:09 *************** *** 106,117 **** write(iout,*) 'Program terminated' stop C ! ELSE IF (ITYPE.EQ.4) THEN C C MINDO CASE C ! write(iout,*) 'MINDO not supported -- program terminated' ! stop C C MNDO, AM1 PM3 CASES C --- 106,117 ---- write(iout,*) 'Program terminated' stop C ! C ELSE IF (ITYPE.EQ.4) THEN C C MINDO CASE C ! C write(iout,*) 'MINDO not supported -- program terminated' ! C stop C C MNDO, AM1 PM3 CASES C *************** *** 212,234 **** SCALE = EXP(-ACI*RIJ)+EXP(-alph_mm*RIJ) ENUC = ZNUCI*chrg_mm*GAM SCALE=ABS(SCALE*ENUC) ! if(igauss.eq.1)then ! c ! c Add on gaussion functions for QM atom. This repulsion term ! c historically has not been used in QM/MM calculations. ! c ! C IF(ITYPE.EQ.2.OR.ITYPE.EQ.3)THEN ! DO 40 IG=1,4 ! C IF(ABS(FN1(NI,IG)).GT.0.0D0)THEN ! AX = BGI(IG)*(RIJ-CGI(IG))**2 ! IF(AX.LE.25.0D0)THEN ! SCALE = SCALE + ! . ZNUCI*chrg_mm/RIJ*AGI(IG)*EXP(-AX) ! ENDIF ! C ENDIF ! 40 CONTINUE ! C ENDIF ! endif ENUC=ENUC+SCALE ENDIF RETURN --- 212,234 ---- SCALE = EXP(-ACI*RIJ)+EXP(-alph_mm*RIJ) ENUC = ZNUCI*chrg_mm*GAM SCALE=ABS(SCALE*ENUC) ! C if(igauss.eq.1)then ! Cc ! Cc Add on gaussion functions for QM atom. This repulsion term ! Cc historically has not been used in QM/MM calculations. ! Cc ! CC IF(ITYPE.EQ.2.OR.ITYPE.EQ.3)THEN ! C DO 40 IG=1,4 ! CC IF(ABS(FN1(NI,IG)).GT.0.0D0)THEN ! C AX = BGI(IG)*(RIJ-CGI(IG))**2 ! C IF(AX.LE.25.0D0)THEN ! C SCALE = SCALE + ! C . ZNUCI*chrg_mm/RIJ*AGI(IG)*EXP(-AX) ! C ENDIF ! CC ENDIF ! C 40 CONTINUE ! CC ENDIF ! C endif ENUC=ENUC+SCALE ENDIF RETURN *** test/qmmm/standard/lysine.out.save 2004/03/11 23:23:47 1.6 --- test/qmmm/standard/lysine.out.save 2004/06/18 16:26:39 *************** *** 3,9 **** Amber 8 SANDER Scripps/UCSF 2004 ------------------------------------------------------- ! | Run on 01/26/2004 at 01:10:40 [-O]verwriting output File Assignments: --- 3,9 ---- Amber 8 SANDER Scripps/UCSF 2004 ------------------------------------------------------- ! | Run on 06/18/2004 at 09:21:31 [-O]verwriting output File Assignments: *************** *** 28,34 **** imin =1, maxcyc = 20, drms=0.005, scee=1.2, ntpr=5, ntb=0, cut=99., ifqt=1, nqt= 3, idc=0 ! / 8 9 10 END END --- 28,34 ---- imin =1, maxcyc = 20, drms=0.005, scee=1.2, ntpr=5, ntb=0, cut=99., ifqt=1, nqt= 3, idc=0 ! / 8 9 10 END END *************** *** 50,62 **** | Memory Use Allocated ! | Real 4176 | Hollerith 1635 ! | Integer 22805 | Max Pairs 231 | Max Rstack 50220 | Max Istack 110 ! | Total 521 kbytes | Duplicated 0 dihedrals | Duplicated 0 dihedrals --- 50,62 ---- | Memory Use Allocated ! | Real 5886 | Hollerith 1635 ! | Integer 23449 | Max Pairs 231 | Max Rstack 50220 | Max Istack 110 ! | Total 537 kbytes | Duplicated 0 dihedrals | Duplicated 0 dihedrals *************** *** 116,154 **** NSTEP ENERGY RMS GMAX NAME NUMBER ! 5 1.1240E+00 1.2476E+01 4.8342E+01 C 21 ! BOND = 0.3067 ANGLE = 0.4890 DIHED = 0.0039 ! VDWAALS = 0.2595 EEL = -5.6916 HBOND = 0.0000 ! 1-4 VDW = 3.6343 1-4 EEL = 61.6404 RESTRAINT = 0.0000 ! ESCF = -59.5182 NSTEP ENERGY RMS GMAX NAME NUMBER ! 10 1.2645E+00 2.8947E+01 1.2481E+02 C 21 ! BOND = 0.5395 ANGLE = 0.5698 DIHED = 0.0046 ! VDWAALS = 0.2956 EEL = -5.6340 HBOND = 0.0000 ! 1-4 VDW = 3.6447 1-4 EEL = 61.6286 RESTRAINT = 0.0000 ! ESCF = -59.7843 NSTEP ENERGY RMS GMAX NAME NUMBER ! 15 1.2691E+00 4.6916E+01 2.0912E+02 C 21 ! BOND = 0.5454 ANGLE = 0.5716 DIHED = 0.0046 ! VDWAALS = 0.2965 EEL = -5.6328 HBOND = 0.0000 ! 1-4 VDW = 3.6451 1-4 EEL = 61.6285 RESTRAINT = 0.0000 ! ESCF = -59.7897 NSTEP ENERGY RMS GMAX NAME NUMBER ! 20 1.2681E+00 6.4973E+01 2.9359E+02 C 21 ! BOND = 0.5441 ANGLE = 0.5712 DIHED = 0.0046 ! VDWAALS = 0.2963 EEL = -5.6331 HBOND = 0.0000 ! 1-4 VDW = 3.6450 1-4 EEL = 61.6285 RESTRAINT = 0.0000 ! ESCF = -59.7886 Maximum number of minimization cycles reached. --- 116,154 ---- NSTEP ENERGY RMS GMAX NAME NUMBER ! 5 7.3477E-01 2.4227E+00 7.9326E+00 N 1 ! BOND = 0.0972 ANGLE = 0.4191 DIHED = 0.0039 ! VDWAALS = 0.1497 EEL = -5.7891 HBOND = 0.0000 ! 1-4 VDW = 3.4866 1-4 EEL = 61.5670 RESTRAINT = 0.0000 ! ESCF = -59.1996 NSTEP ENERGY RMS GMAX NAME NUMBER ! 10 -2.1110E-01 9.5830E-01 4.1484E+00 CG 8 ! BOND = 0.2291 ANGLE = 0.9455 DIHED = 0.0151 ! VDWAALS = -0.0998 EEL = -5.6180 HBOND = 0.0000 ! 1-4 VDW = 3.0296 1-4 EEL = 61.2042 RESTRAINT = 0.0000 ! ESCF = -59.9167 NSTEP ENERGY RMS GMAX NAME NUMBER ! 15 -4.2612E-01 1.0603E+00 3.3223E+00 C 21 ! BOND = 0.3464 ANGLE = 1.1014 DIHED = 0.0189 ! VDWAALS = -0.1971 EEL = -5.5027 HBOND = 0.0000 ! 1-4 VDW = 2.9251 1-4 EEL = 61.0328 RESTRAINT = 0.0000 ! ESCF = -60.1508 NSTEP ENERGY RMS GMAX NAME NUMBER ! 20 -6.5331E-01 9.8858E-01 2.8940E+00 N 1 ! BOND = 0.4478 ANGLE = 1.4345 DIHED = 0.0264 ! VDWAALS = -0.3677 EEL = -5.2667 HBOND = 0.0000 ! 1-4 VDW = 2.8055 1-4 EEL = 60.6462 RESTRAINT = 0.0000 ! ESCF = -60.3792 Maximum number of minimization cycles reached. *************** *** 159,190 **** NSTEP ENERGY RMS GMAX NAME NUMBER ! 20 1.2681E+00 6.4973E+01 2.9359E+02 C 21 ! BOND = 0.5441 ANGLE = 0.5712 DIHED = 0.0046 ! VDWAALS = 0.2963 EEL = -5.6331 HBOND = 0.0000 ! 1-4 VDW = 3.6450 1-4 EEL = 61.6285 RESTRAINT = 0.0000 ! ESCF = -59.7886 -------------------------------------------------------------------------------- 5. TIMINGS -------------------------------------------------------------------------------- ! | Read coords time 0.00 ( 0.54% of Total) ! | Fast Water setup 0.00 ( 0.18% of Total) ! | Nonbond force 0.00 ( 9.96% of Force) ! | QMMM energy 0.04 (84.85% of Force) ! | Bond/Angle/Dihedral 0.00 ( 4.76% of Force) ! | Other 0.00 ( 0.43% of Force) ! | Force time 0.05 (100.0% of Runmd) ! | Runmd Time 0.05 (83.54% of Total) ! | Other 0.01 (15.73% of Total) ! | Total time 0.06 (100.0% of ALL ) | Highest rstack allocated: 0 | Highest istack allocated: 0 ! | Job began at 01:10:40.034 on 01/26/2004 ! | Setup done at 01:10:40.041 on 01/26/2004 ! | Run done at 01:10:40.089 on 01/26/2004 ! | wallclock() was called 530 times --- 159,188 ---- NSTEP ENERGY RMS GMAX NAME NUMBER ! 20 -6.5331E-01 9.8858E-01 2.8940E+00 N 1 ! BOND = 0.4478 ANGLE = 1.4345 DIHED = 0.0264 ! VDWAALS = -0.3677 EEL = -5.2667 HBOND = 0.0000 ! 1-4 VDW = 2.8055 1-4 EEL = 60.6462 RESTRAINT = 0.0000 ! ESCF = -60.3792 -------------------------------------------------------------------------------- 5. TIMINGS -------------------------------------------------------------------------------- ! | Read coords time 0.02 ( 1.10% of Total) ! | Nonbond force 0.02 ( 2.08% of Force) ! | QMMM energy 0.93 (96.78% of Force) ! | Bond/Angle/Dihedral 0.01 ( 1.14% of Force) ! | Force time 0.96 (100.0% of Runmd) ! | Runmd Time 0.96 (52.77% of Total) ! | Other 0.84 (46.13% of Total) ! | Total time 1.82 (98.38% of ALL ) | Highest rstack allocated: 0 | Highest istack allocated: 0 ! | Job began at 09:21:30.963 on 06/18/2004 ! | Setup done at 09:21:31.754 on 06/18/2004 ! | Run done at 09:21:32.836 on 06/18/2004 ! | wallclock() was called 588 times *** test/qmmm/divcon/crambin.out.save 2004/03/11 23:23:47 1.6 --- test/qmmm/divcon/crambin.out.save 2004/06/18 16:29:20 *************** *** 3,9 **** Amber 8 SANDER Scripps/UCSF 2004 ------------------------------------------------------- ! | Run on 03/04/2004 at 01:21:35 [-O]verwriting output File Assignments: --- 3,9 ---- Amber 8 SANDER Scripps/UCSF 2004 ------------------------------------------------------- ! | Run on 06/18/2004 at 09:27:33 [-O]verwriting output File Assignments: *************** *** 20,34 **** |INPDIP: inpdip |RSTDIP: rstdip ! Here is the input file: ! Crambin: 5 cycles minimization using D&C qm calculation &cntrl imin =1, maxcyc = 5, drms=0.005, scee=1.2, ntpr=1, ntb=0, cut=8.1, ifqt=1, nqt= 80, idc=1, ! / 80 81 82 83 84 85 86 87 88 89 90 91 92 99 100 101 102 103 104 105 106 107 108 115 116 117 118 --- 20,34 ---- |INPDIP: inpdip |RSTDIP: rstdip ! Here is the input file: ! Crambin: 5 cycles minimization using D&C qm calculation &cntrl imin =1, maxcyc = 5, drms=0.005, scee=1.2, ntpr=1, ntb=0, cut=8.1, ifqt=1, nqt= 80, idc=1, ! / 80 81 82 83 84 85 86 87 88 89 90 91 92 99 100 101 102 103 104 105 106 107 108 115 116 117 118 *************** *** 60,72 **** | Memory Use Allocated ! | Real 25280 | Hollerith 5400 | Integer 55343 | Max Pairs 205761 | Max Rstack 56420 | Max Istack 3210 ! | Total 1691 kbytes | Duplicated 0 dihedrals | Duplicated 0 dihedrals --- 60,72 ---- | Memory Use Allocated ! | Real 26010 | Hollerith 5400 | Integer 55343 | Max Pairs 205761 | Max Rstack 56420 | Max Istack 3210 ! | Total 1697 kbytes | Duplicated 0 dihedrals | Duplicated 0 dihedrals *************** *** 117,164 **** NSTEP ENERGY RMS GMAX NAME NUMBER ! 1 1.6067E+03 2.6375E+02 4.2280E+03 SG 373 ! BOND = 51.8279 ANGLE = 71.9091 DIHED = 175.6588 VDWAALS = 2106.9976 EEL = -3217.8815 HBOND = 0.0000 1-4 VDW = 179.4333 1-4 EEL = 2334.7305 RESTRAINT = 0.0000 ESCF = -95.9452 NSTEP ENERGY RMS GMAX NAME NUMBER ! 2 1.5493E+03 2.5693E+02 4.1174E+03 SG 373 ! BOND = 51.7529 ANGLE = 71.8969 DIHED = 175.6565 ! VDWAALS = 2049.6784 EEL = -3217.8951 HBOND = 0.0000 ! 1-4 VDW = 179.4366 1-4 EEL = 2334.7293 RESTRAINT = 0.0000 ! ESCF = -96.0023 NSTEP ENERGY RMS GMAX NAME NUMBER ! 3 1.4822E+03 2.4899E+02 3.9889E+03 SG 373 ! BOND = 51.6618 ANGLE = 71.8833 DIHED = 175.6537 ! VDWAALS = 1982.8540 EEL = -3217.9113 HBOND = 0.0000 ! 1-4 VDW = 179.4406 1-4 EEL = 2334.7276 RESTRAINT = 0.0000 ! ESCF = -96.0725 NSTEP ENERGY RMS GMAX NAME NUMBER ! 4 1.4045E+03 2.3982E+02 3.8403E+03 SG 373 ! BOND = 51.5509 ANGLE = 71.8685 DIHED = 175.6504 ! VDWAALS = 1905.3900 EEL = -3217.9309 HBOND = 0.0000 ! 1-4 VDW = 179.4452 1-4 EEL = 2334.7254 RESTRAINT = 0.0000 ! ESCF = -96.1592 NSTEP ENERGY RMS GMAX NAME NUMBER ! 5 1.3151E+03 2.2929E+02 3.6700E+03 SG 227 ! BOND = 51.4155 ANGLE = 71.8529 DIHED = 175.6464 ! VDWAALS = 1816.2003 EEL = -3217.9544 HBOND = 0.0000 ! 1-4 VDW = 179.4506 1-4 EEL = 2334.7224 RESTRAINT = 0.0000 ! ESCF = -96.2667 Maximum number of minimization cycles reached. --- 117,164 ---- NSTEP ENERGY RMS GMAX NAME NUMBER ! 1 1.6080E+03 2.6376E+02 4.2280E+03 SG 373 ! BOND = 53.1269 ANGLE = 71.9091 DIHED = 175.6588 VDWAALS = 2106.9976 EEL = -3217.8815 HBOND = 0.0000 1-4 VDW = 179.4333 1-4 EEL = 2334.7305 RESTRAINT = 0.0000 ESCF = -95.9452 NSTEP ENERGY RMS GMAX NAME NUMBER ! 2 1.5506E+03 2.5693E+02 4.1175E+03 SG 373 ! BOND = 53.0505 ANGLE = 71.8970 DIHED = 175.6564 ! VDWAALS = 2049.6793 EEL = -3217.8943 HBOND = 0.0000 ! 1-4 VDW = 179.4364 1-4 EEL = 2334.7296 RESTRAINT = 0.0000 ! ESCF = -96.0046 NSTEP ENERGY RMS GMAX NAME NUMBER ! 3 1.4835E+03 2.4900E+02 3.9889E+03 SG 373 ! BOND = 52.9577 ANGLE = 71.8836 DIHED = 175.6537 ! VDWAALS = 1982.8559 EEL = -3217.9096 HBOND = 0.0000 ! 1-4 VDW = 179.4401 1-4 EEL = 2334.7283 RESTRAINT = 0.0000 ! ESCF = -96.0776 NSTEP ENERGY RMS GMAX NAME NUMBER ! 4 1.4058E+03 2.3983E+02 3.8404E+03 SG 373 ! BOND = 52.8446 ANGLE = 71.8690 DIHED = 175.6503 ! VDWAALS = 1905.3932 EEL = -3217.9279 HBOND = 0.0000 ! 1-4 VDW = 179.4444 1-4 EEL = 2334.7265 RESTRAINT = 0.0000 ! ESCF = -96.1677 NSTEP ENERGY RMS GMAX NAME NUMBER ! 5 1.3164E+03 2.2930E+02 3.6700E+03 SG 373 ! BOND = 52.7065 ANGLE = 71.8537 DIHED = 175.6463 ! VDWAALS = 1816.2049 EEL = -3217.9499 HBOND = 0.0000 ! 1-4 VDW = 179.4495 1-4 EEL = 2334.7240 RESTRAINT = 0.0000 ! ESCF = -96.2794 Maximum number of minimization cycles reached. *************** *** 169,199 **** NSTEP ENERGY RMS GMAX NAME NUMBER ! 5 1.3151E+03 2.2929E+02 3.6700E+03 SG 227 ! ! BOND = 51.4155 ANGLE = 71.8529 DIHED = 175.6464 ! VDWAALS = 1816.2003 EEL = -3217.9544 HBOND = 0.0000 ! 1-4 VDW = 179.4506 1-4 EEL = 2334.7224 RESTRAINT = 0.0000 ! ESCF = -96.2667 -------------------------------------------------------------------------------- 5. TIMINGS -------------------------------------------------------------------------------- ! | Read coords time 0.01 ( 0.07% of Total) ! | Nonbond force 0.04 ( 0.52% of Force) ! | QMMM energy 7.10 (99.33% of Force) ! | Bond/Angle/Dihedral 0.01 ( 0.14% of Force) ! | Other 0.00 ( 0.01% of Force) ! | Force time 7.15 (100.0% of Runmd) ! | Runmd Time 7.15 (98.50% of Total) ! | Other 0.10 ( 1.43% of Total) ! | Total time 7.26 (100.0% of ALL ) | Highest rstack allocated: 0 | Highest istack allocated: 0 ! | Job began at 01:21:35.039 on 03/04/2004 ! | Setup done at 01:21:35.112 on 03/04/2004 ! | Run done at 01:21:42.298 on 03/04/2004 | wallclock() was called 206 times --- 169,198 ---- NSTEP ENERGY RMS GMAX NAME NUMBER ! 5 1.3164E+03 2.2930E+02 3.6700E+03 SG 373 + BOND = 52.7065 ANGLE = 71.8537 DIHED = 175.6463 + VDWAALS = 1816.2049 EEL = -3217.9499 HBOND = 0.0000 + 1-4 VDW = 179.4495 1-4 EEL = 2334.7240 RESTRAINT = 0.0000 + ESCF = -96.2794 + -------------------------------------------------------------------------------- 5. TIMINGS -------------------------------------------------------------------------------- ! | Read coords time 0.01 ( 0.08% of Total) ! | Nonbond force 0.10 ( 0.81% of Force) ! | QMMM energy 12.19 (99.11% of Force) ! | Bond/Angle/Dihedral 0.01 ( 0.08% of Force) ! | Force time 12.30 (100.0% of Runmd) ! | Runmd Time 12.30 (98.48% of Total) ! | Other 0.18 ( 1.44% of Total) ! | Total time 12.49 (100.0% of ALL ) | Highest rstack allocated: 0 | Highest istack allocated: 0 ! | Job began at 09:27:33.845 on 06/18/2004 ! | Setup done at 09:27:34.025 on 06/18/2004 ! | Run done at 09:27:46.333 on 06/18/2004 | wallclock() was called 206 times *** src/sander/Makefile 2004/03/16 00:20:27 8.1 --- src/sander/Makefile 2004/06/17 17:31:04 8.2 *************** *** 136,142 **** threeb.o tripl.o nmrrad.o decnvh.o \ fastwt.o echoin.o parallel.o jnrg.o \ shake.o ene.QMMM.o mdwrit.QMMM.o minrit.QMMM.o \ ! set.o setmm.o dynlib.o mdfil.o nmlsrc.o \ pcshift.o align.o \ rstack.o istack.o rfree.o rgroup.o \ random.o lsqfit.o amopen.o \ --- 136,142 ---- threeb.o tripl.o nmrrad.o decnvh.o \ fastwt.o echoin.o parallel.o jnrg.o \ shake.o ene.QMMM.o mdwrit.QMMM.o minrit.QMMM.o \ ! set.o setmm.o dynlib.QMMM.o mdfil.o nmlsrc.o \ pcshift.o align.o \ rstack.o istack.o rfree.o rgroup.o \ random.o lsqfit.o amopen.o \ *************** *** 502,507 **** --- 502,511 ---- $(FC) -c $(FFLAGS) -o $@ _sander.f # --- routines for sander.QMMM: + + dynlib.QMMM.o: dynlib.f + $(FPP) -DQMMM dynlib.f > _dynlib.f + $(FC) -c $(FFLAGS) -o $@ _dynlib.f printe.QMMM.o: printe.f $(FPP) -DQMMM printe.f > _printe.f *** test/qmmm/divcon/crambin_md.out.save 2004-03-11 16:40:21.000000000 -0800 --- test/qmmm/divcon/crambin_md.out.save 2004-06-18 11:33:31.000000000 -0700 *************** *** 3,9 **** Amber 8 SANDER Scripps/UCSF 2004 ------------------------------------------------------- ! | Run on 03/02/2004 at 12:12:18 [-O]verwriting output File Assignments: --- 3,9 ---- Amber 8 SANDER Scripps/UCSF 2004 ------------------------------------------------------- ! | Run on 06/18/2004 at 11:32:49 [-O]verwriting output File Assignments: *************** *** 28,34 **** imin =0, nstlim=10, scee=1.2, ntpr=1, ntb=0, cut=8.1, ifqt=1, nqt= 80, idc=1, ! / 80 81 82 83 84 85 86 87 88 89 90 91 92 99 100 101 102 103 104 105 106 107 108 115 116 117 118 --- 28,34 ---- imin =0, nstlim=10, scee=1.2, ntpr=1, ntb=0, cut=8.1, ifqt=1, nqt= 80, idc=1, ! / 80 81 82 83 84 85 86 87 88 89 90 91 92 99 100 101 102 103 104 105 106 107 108 115 116 117 118 *************** *** 60,72 **** | Memory Use Allocated ! | Real 17536 | Hollerith 5400 | Integer 55343 | Max Pairs 205761 | Max Rstack 56420 | Max Istack 3210 ! | Total 1631 kbytes | Duplicated 0 dihedrals | Duplicated 0 dihedrals --- 60,72 ---- | Memory Use Allocated ! | Real 18266 | Hollerith 5400 | Integer 55343 | Max Pairs 205761 | Max Rstack 56420 | Max Istack 3210 ! | Total 1637 kbytes | Duplicated 0 dihedrals | Duplicated 0 dihedrals *************** *** 116,228 **** NB-update: NPAIRS = 94449 HBPAIR = 0 NSTEP = 0 TIME(PS) = 0.000 TEMP(K) = 0.00 PRESS = 0.0 ! Etot = -866.9698 EKtot = 0.0000 EPtot = -866.9698 ! BOND = 13.7445 ANGLE = 75.7358 DIHED = 173.5178 1-4 NB = 172.5680 1-4 EEL = 2309.5141 VDWAALS = -271.4044 EELEC = -3215.6062 EHBOND = 0.0000 RESTRAINT = 0.0000 ------------------------------------------------------------------------------ ! NSTEP = 1 TIME(PS) = 0.001 TEMP(K) = 0.00 PRESS = 0.0 ! Etot = -866.9698 EKtot = 0.0000 EPtot = -866.9698 ! BOND = 13.7445 ANGLE = 75.7358 DIHED = 173.5178 1-4 NB = 172.5680 1-4 EEL = 2309.5141 VDWAALS = -271.4044 EELEC = -3215.6062 EHBOND = 0.0000 RESTRAINT = 0.0000 ------------------------------------------------------------------------------ ! NSTEP = 2 TIME(PS) = 0.002 TEMP(K) = 1.67 PRESS = 0.0 ! Etot = -867.1063 EKtot = 3.2241 EPtot = -870.3304 ! BOND = 12.8867 ANGLE = 75.0051 DIHED = 173.4872 ! 1-4 NB = 172.4190 1-4 EEL = 2309.3034 VDWAALS = -271.5678 ! EELEC = -3215.7262 EHBOND = 0.0000 RESTRAINT = 0.0000 ------------------------------------------------------------------------------ ! NSTEP = 3 TIME(PS) = 0.003 TEMP(K) = 5.54 PRESS = 0.0 ! Etot = -867.3391 EKtot = 10.6932 EPtot = -878.0323 ! BOND = 11.1917 ANGLE = 73.0103 DIHED = 173.4018 ! 1-4 NB = 171.9992 1-4 EEL = 2308.6660 VDWAALS = -272.0499 ! EELEC = -3216.0256 EHBOND = 0.0000 RESTRAINT = 0.0000 ------------------------------------------------------------------------------ ! NSTEP = 4 TIME(PS) = 0.004 TEMP(K) = 9.45 PRESS = 0.0 ! Etot = -867.4061 EKtot = 18.2594 EPtot = -885.6655 ! BOND = 10.2671 ANGLE = 70.2827 DIHED = 173.2802 ! 1-4 NB = 171.3814 1-4 EEL = 2307.5924 VDWAALS = -272.8338 ! EELEC = -3216.3475 EHBOND = 0.0000 RESTRAINT = 0.0000 ------------------------------------------------------------------------------ ! NSTEP = 5 TIME(PS) = 0.005 TEMP(K) = 12.54 PRESS = 0.0 ! Etot = -867.1638 EKtot = 24.2249 EPtot = -891.3887 ! BOND = 10.6285 ANGLE = 67.5332 DIHED = 173.1507 ! 1-4 NB = 170.6619 1-4 EEL = 2306.0835 VDWAALS = -273.9011 ! EELEC = -3216.5023 EHBOND = 0.0000 RESTRAINT = 0.0000 ------------------------------------------------------------------------------ ! NSTEP = 6 TIME(PS) = 0.006 TEMP(K) = 15.52 PRESS = 0.0 ! Etot = -866.9821 EKtot = 29.9780 EPtot = -896.9600 ! BOND = 11.2789 ANGLE = 65.4617 DIHED = 173.0481 ! 1-4 NB = 169.9327 1-4 EEL = 2304.1671 VDWAALS = -275.2252 ! EELEC = -3216.3493 EHBOND = 0.0000 RESTRAINT = 0.0000 ------------------------------------------------------------------------------ ! NSTEP = 7 TIME(PS) = 0.007 TEMP(K) = 18.77 PRESS = 0.0 ! Etot = -867.0259 EKtot = 36.2533 EPtot = -903.2792 ! BOND = 11.0953 ANGLE = 64.5874 DIHED = 173.0105 ! 1-4 NB = 169.2576 1-4 EEL = 2301.9111 VDWAALS = -276.7513 ! EELEC = -3215.8623 EHBOND = 0.0000 RESTRAINT = 0.0000 ------------------------------------------------------------------------------ ! NSTEP = 8 TIME(PS) = 0.008 TEMP(K) = 21.30 PRESS = 0.0 ! Etot = -867.0781 EKtot = 41.1380 EPtot = -908.2161 ! BOND = 10.2332 ANGLE = 65.1362 DIHED = 173.0753 ! 1-4 NB = 168.6568 1-4 EEL = 2299.4251 VDWAALS = -278.3904 ! EELEC = -3215.1518 EHBOND = 0.0000 RESTRAINT = 0.0000 ------------------------------------------------------------------------------ ! NSTEP = 9 TIME(PS) = 0.009 TEMP(K) = 22.09 PRESS = 0.0 ! Etot = -866.9373 EKtot = 42.6589 EPtot = -909.5962 ! BOND = 9.8683 ANGLE = 66.9992 DIHED = 173.2749 ! 1-4 NB = 168.1032 1-4 EEL = 2296.8495 VDWAALS = -280.0343 ! EELEC = -3214.4341 EHBOND = 0.0000 RESTRAINT = 0.0000 ------------------------------------------------------------------------------ ! NSTEP = 10 TIME(PS) = 0.010 TEMP(K) = 21.48 PRESS = 0.0 ! Etot = -866.6459 EKtot = 41.4931 EPtot = -908.1390 ! BOND = 10.7214 ANGLE = 69.7649 DIHED = 173.6325 ! 1-4 NB = 167.5306 1-4 EEL = 2294.3332 VDWAALS = -281.5833 ! EELEC = -3213.9580 EHBOND = 0.0000 RESTRAINT = 0.0000 ------------------------------------------------------------------------------ A V E R A G E S O V E R 10 S T E P S ! NSTEP = 10 TIME(PS) = 0.010 TEMP(K) = 12.84 PRESS = 0.0 ! Etot = -867.0655 EKtot = 24.7923 EPtot = -891.8577 ! BOND = 11.1916 ANGLE = 69.3516 DIHED = 173.2879 ! 1-4 NB = 170.2510 1-4 EEL = 2303.7845 VDWAALS = -275.3741 ! EELEC = -3215.5963 EHBOND = 0.0000 RESTRAINT = 0.0000 ------------------------------------------------------------------------------ R M S F L U C T U A T I O N S ! NSTEP = 10 TIME(PS) = 0.010 TEMP(K) = 7.93 PRESS = 0.0 ! Etot = 0.2031 EKtot = 15.3140 EPtot = 15.2196 ! BOND = 1.1606 ANGLE = 3.8933 DIHED = 0.2057 ! 1-4 NB = 1.7383 1-4 EEL = 5.1670 VDWAALS = 3.4815 ! EELEC = 0.8035 EHBOND = 0.0000 RESTRAINT = 0.0000 ! |E(PBS) = 0.2608 ------------------------------------------------------------------------------ --- 116,241 ---- NB-update: NPAIRS = 94449 HBPAIR = 0 NSTEP = 0 TIME(PS) = 0.000 TEMP(K) = 0.00 PRESS = 0.0 ! Etot = -856.0350 EKtot = 0.0000 EPtot = -856.0350 ! BOND = 24.6793 ANGLE = 75.7358 DIHED = 173.5178 1-4 NB = 172.5680 1-4 EEL = 2309.5141 VDWAALS = -271.4044 EELEC = -3215.6062 EHBOND = 0.0000 RESTRAINT = 0.0000 + ESCF = -125.0394 ------------------------------------------------------------------------------ ! NSTEP = 1 TIME(PS) = 0.001 TEMP(K) = 0.02 PRESS = 0.0 ! Etot = -856.0018 EKtot = 0.0332 EPtot = -856.0350 ! BOND = 24.6793 ANGLE = 75.7358 DIHED = 173.5178 1-4 NB = 172.5680 1-4 EEL = 2309.5141 VDWAALS = -271.4044 EELEC = -3215.6062 EHBOND = 0.0000 RESTRAINT = 0.0000 + ESCF = -125.0394 ------------------------------------------------------------------------------ ! NSTEP = 2 TIME(PS) = 0.002 TEMP(K) = 2.11 PRESS = 0.0 ! Etot = -856.2042 EKtot = 4.0775 EPtot = -860.2818 ! BOND = 23.1250 ANGLE = 74.9422 DIHED = 173.4796 ! 1-4 NB = 172.4272 1-4 EEL = 2309.3410 VDWAALS = -271.5589 ! EELEC = -3215.6356 EHBOND = 0.0000 RESTRAINT = 0.0000 ! ESCF = -126.4023 ------------------------------------------------------------------------------ ! NSTEP = 3 TIME(PS) = 0.003 TEMP(K) = 7.08 PRESS = 0.0 ! Etot = -856.6141 EKtot = 13.6684 EPtot = -870.2825 ! BOND = 19.5732 ANGLE = 72.8004 DIHED = 173.3731 ! 1-4 NB = 172.0315 1-4 EEL = 2308.8151 VDWAALS = -272.0158 ! EELEC = -3215.6774 EHBOND = 0.0000 RESTRAINT = 0.0000 ! ESCF = -129.1827 ------------------------------------------------------------------------------ ! NSTEP = 4 TIME(PS) = 0.004 TEMP(K) = 12.38 PRESS = 0.0 ! Etot = -856.7865 EKtot = 23.9086 EPtot = -880.6951 ! BOND = 16.2311 ANGLE = 69.9499 DIHED = 173.2208 ! 1-4 NB = 171.4524 1-4 EEL = 2307.9223 VDWAALS = -272.7610 ! EELEC = -3215.6122 EHBOND = 0.0000 RESTRAINT = 0.0000 ! ESCF = -131.0984 ------------------------------------------------------------------------------ ! NSTEP = 5 TIME(PS) = 0.005 TEMP(K) = 16.71 PRESS = 0.0 ! Etot = -856.6969 EKtot = 32.2717 EPtot = -888.9686 ! BOND = 14.3432 ANGLE = 67.2341 DIHED = 173.0568 ! 1-4 NB = 170.7833 1-4 EEL = 2306.6563 VDWAALS = -273.7785 ! EELEC = -3215.3021 EHBOND = 0.0000 RESTRAINT = 0.0000 ! ESCF = -131.9616 ------------------------------------------------------------------------------ ! NSTEP = 6 TIME(PS) = 0.006 TEMP(K) = 20.45 PRESS = 0.0 ! Etot = -856.6346 EKtot = 39.5051 EPtot = -896.1397 ! BOND = 13.5235 ANGLE = 65.4564 DIHED = 172.9226 ! 1-4 NB = 170.1118 1-4 EEL = 2305.0366 VDWAALS = -275.0414 ! EELEC = -3214.6582 EHBOND = 0.0000 RESTRAINT = 0.0000 ! ESCF = -133.4909 ------------------------------------------------------------------------------ ! NSTEP = 7 TIME(PS) = 0.007 TEMP(K) = 23.82 PRESS = 0.0 ! Etot = -856.7552 EKtot = 46.0168 EPtot = -902.7720 ! BOND = 12.9629 ANGLE = 65.1670 DIHED = 172.8628 ! 1-4 NB = 169.4956 1-4 EEL = 2303.1223 VDWAALS = -276.4925 ! EELEC = -3213.6938 EHBOND = 0.0000 RESTRAINT = 0.0000 ! ESCF = -136.1965 ------------------------------------------------------------------------------ ! NSTEP = 8 TIME(PS) = 0.008 TEMP(K) = 25.85 PRESS = 0.0 ! Etot = -856.8532 EKtot = 49.9354 EPtot = -906.7886 ! BOND = 12.7530 ANGLE = 66.5323 DIHED = 172.9210 ! 1-4 NB = 168.9480 1-4 EEL = 2301.0153 VDWAALS = -278.0396 ! EELEC = -3212.5404 EHBOND = 0.0000 RESTRAINT = 0.0000 ! ESCF = -138.3781 ------------------------------------------------------------------------------ ! NSTEP = 9 TIME(PS) = 0.009 TEMP(K) = 25.73 PRESS = 0.0 ! Etot = -856.7500 EKtot = 49.6986 EPtot = -906.4487 ! BOND = 13.6697 ANGLE = 69.3071 DIHED = 173.1346 ! 1-4 NB = 168.4346 1-4 EEL = 2298.8499 VDWAALS = -279.5746 ! EELEC = -3211.4175 EHBOND = 0.0000 RESTRAINT = 0.0000 ! ESCF = -138.8523 ------------------------------------------------------------------------------ ! NSTEP = 10 TIME(PS) = 0.010 TEMP(K) = 24.15 PRESS = 0.0 ! Etot = -856.5124 EKtot = 46.6529 EPtot = -903.1653 ! BOND = 15.8617 ANGLE = 72.9092 DIHED = 173.5310 ! 1-4 NB = 167.8825 1-4 EEL = 2296.7703 VDWAALS = -281.0031 ! EELEC = -3210.5663 EHBOND = 0.0000 RESTRAINT = 0.0000 ! ESCF = -138.5507 ------------------------------------------------------------------------------ A V E R A G E S O V E R 10 S T E P S ! NSTEP = 10 TIME(PS) = 0.010 TEMP(K) = 15.83 PRESS = 0.0 ! Etot = -856.5809 EKtot = 30.5768 EPtot = -887.1577 ! BOND = 16.6722 ANGLE = 70.0034 DIHED = 173.2020 ! 1-4 NB = 170.4135 1-4 EEL = 2304.7043 VDWAALS = -275.1670 ! EELEC = -3214.0710 EHBOND = 0.0000 RESTRAINT = 0.0000 ! ESCF = -132.9153 ------------------------------------------------------------------------------ R M S F L U C T U A T I O N S ! NSTEP = 10 TIME(PS) = 0.010 TEMP(K) = 9.38 PRESS = 0.0 ! Etot = 0.2598 EKtot = 18.1254 EPtot = 18.3276 ! BOND = 4.1048 ANGLE = 3.7120 DIHED = 0.2475 ! 1-4 NB = 1.6104 1-4 EEL = 4.3490 VDWAALS = 3.2914 ! EELEC = 1.8284 EHBOND = 0.0000 RESTRAINT = 0.0000 ! ESCF = 4.8014 ! |E(PBS) = 0.0346 ------------------------------------------------------------------------------ *************** *** 230,248 **** 5. TIMINGS -------------------------------------------------------------------------------- ! | Read coords time 0.01 ( 0.05% of Total) ! | Nonbond force 0.15 ( 0.69% of Force) ! | QMMM energy 21.54 (99.22% of Force) ! | Bond/Angle/Dihedral 0.02 ( 0.09% of Force) ! | Force time 21.71 (100.0% of Runmd) ! | Verlet update time 0.01 ( 0.05% of Runmd) ! | Runmd Time 21.72 (99.45% of Total) ! | Other 0.11 ( 0.51% of Total) ! | Total time 21.84 (100.0% of ALL ) | Highest rstack allocated: 0 | Highest istack allocated: 0 ! | Job began at 12:12:18.246 on 03/02/2004 ! | Setup done at 12:12:18.367 on 03/02/2004 ! | Run done at 12:12:40.088 on 03/02/2004 | wallclock() was called 434 times --- 243,262 ---- 5. TIMINGS -------------------------------------------------------------------------------- ! | Read coords time 0.01 ( 0.02% of Total) ! | Nonbond force 0.11 ( 0.26% of Force) ! | QMMM energy 41.20 (99.68% of Force) ! | Bond/Angle/Dihedral 0.02 ( 0.06% of Force) ! | Force time 41.33 (99.59% of Runmd) ! | Verlet update time 0.16 ( 0.39% of Runmd) ! | Other 0.01 ( 0.03% of Runmd) ! | Runmd Time 41.50 (99.86% of Total) ! | Other 0.05 ( 0.12% of Total) ! | Total time 41.56 (100.0% of ALL ) | Highest rstack allocated: 0 | Highest istack allocated: 0 ! | Job began at 11:32:49.556 on 06/18/2004 ! | Setup done at 11:32:49.616 on 06/18/2004 ! | Run done at 11:33:31.120 on 06/18/2004 | wallclock() was called 434 times ------------------------------------------------------------------------------ Temporary workarounds: none ********>Bugfix 14: Author: Ross Walker & Thomas Steinbrecher Date: 07/01/2004 Programs: LEaP Description: When checking a unit that has both initial and perturbed charges LEaP will incorrectly print a warning message implying that the perturbed charge is not zero when in fact it is. This is due to the checking routine not being updated to the new method of entering the perturbed charge in the form of the difference between the initial charge and the perturbed charge. This error simply involves the printing of perturbed charges. Although the warning is incorrect Leap still writes a correct prmtop file. Fix: save this file to bugfix.14 cd $AMBERHOME patch -N -p0 -r rejects < bugfix.14 ------------------------------------------------------------------------------ *** src/leap/src/leap/unit.c 2004-07-01 14:53:24.000000000 -0700 --- src/leap/src/leap/unit.c 2004-07-01 15:32:23.000000000 -0700 *************** *** 1803,1821 **** (*iPWarnings)++; } if ( bPert == TRUE ) { ! dAbs = fabs(dPertCharge); dFrac = fabs( dAbs - (double)(int)(dAbs+0.5) ); if ( dFrac > 0.01 ) { VP0(( "ERROR: The perturbed charge: %lf is not integral.\n", ! dPertCharge )); (*iPErrors)++; } ! if ( fabs(dPertCharge) > 0.01 ) { VP0(( "WARNING: The perturbed charge: %lf is not zero.\n", ! dPertCharge )); (*iPWarnings)++; } } --- 1803,1825 ---- (*iPWarnings)++; } if ( bPert == TRUE ) { ! /*Note dPertCharge now contains the delta perturbed charge rather than ! the actual perturbed charge. In other words the perturbed charge is now ! dCharge+dPertCharge ! */ ! dAbs = fabs(dCharge+dPertCharge); dFrac = fabs( dAbs - (double)(int)(dAbs+0.5) ); if ( dFrac > 0.01 ) { VP0(( "ERROR: The perturbed charge: %lf is not integral.\n", ! (dCharge+dPertCharge) )); (*iPErrors)++; } ! if ( fabs(dCharge+dPertCharge) > 0.01 ) { VP0(( "WARNING: The perturbed charge: %lf is not zero.\n", ! (dCharge+dPertCharge) )); (*iPWarnings)++; } } *** src/leap/src/leap/container.c 2004-07-01 15:44:27.000000000 -0700 --- src/leap/src/leap/container.c 2004-07-01 16:20:27.000000000 -0700 *************** *** 1149,1159 **** lAtoms = lLoop( (OBJEKT)cCont, ATOMS ); while ( aAtom = (ATOM)oNext(&lAtoms) ) { (*dPCharge) += dAtomCharge(aAtom); ! if ( bAtomPerturbed(aAtom) ) { ! (*dPPertCharge) += dAtomPertCharge(aAtom); ! } else { ! (*dPPertCharge) += dAtomCharge(aAtom); ! } } } --- 1149,1155 ---- lAtoms = lLoop( (OBJEKT)cCont, ATOMS ); while ( aAtom = (ATOM)oNext(&lAtoms) ) { (*dPCharge) += dAtomCharge(aAtom); ! (*dPPertCharge) += dAtomPertCharge(aAtom); } } *** src/leap/src/leap/commands.c 2004-07-01 15:29:11.000000000 -0700 --- src/leap/src/leap/commands.c 2004-07-01 15:31:39.000000000 -0700 *************** *** 2872,2878 **** ContainerTotalCharge( cCont, &dCharge, &dPertCharge ); VP0(( "Total unperturbed charge: %6.4lf\n", dCharge )); ! VP0(( "Total perturbed charge: %6.4lf\n", dPertCharge )); return(NULL); } --- 2872,2879 ---- ContainerTotalCharge( cCont, &dCharge, &dPertCharge ); VP0(( "Total unperturbed charge: %6.4lf\n", dCharge )); ! /*dPertCharge is now the delta of the charge and not the actual perturbed charge*/ ! VP0(( "Total perturbed charge: %6.4lf\n", (dCharge+dPertCharge) )); return(NULL); } ------------------------------------------------------------------------------ Temporary workarounds: Ignore the warnings and manually check the perturbed charge yourself. ********>Bugfix 15: Author: Scott Brozell (reported by F.-Y. Dupradeau) Date: 07/02/2004 Programs: LEaP Description: tleap and xleap may produce an unclear error message when transforming chirality orientations. The underlying cause may be faulty connection atoms in units produced by users. Fix: apply the following patch to amber8/src/leap/src/leap/chirality.c ------------------------------------------------------------------------------ *** src/leap/src/leap/chirality.c 25 Oct 2003 23:07:18 -0000 7.3 --- src/leap/src/leap/chirality.c 2 Jul 2004 23:32:47 -0000 *************** *** 112,124 **** break; } if ( j >= 4 ) { ! VP0(( "ERROR: Comparing atoms %s, %s, %s, %s to atoms %s, %s, %s, %s\n", ! sContainerName(aaOrig[0]), sContainerName(aaOrig[1]), ! sContainerName(aaOrig[2]), sContainerName(aaOrig[3]), ! sContainerName(aaNew[0]), sContainerName(aaNew[1]), ! sContainerName(aaNew[2]), sContainerName(aaNew[3]) )); ! DFATAL(( "Atom %s is not in the first list\n", ! sContainerName(aaNew[i]) )); } /* Swap elements and flip sign */ if ( j != i ) { --- 112,145 ---- break; } if ( j >= 4 ) { ! STRING sOrigDesc[4]; ! STRING sNewDesc[4]; ! VP0(( "ERROR: Comparing atoms\n" ! " %s, \n" ! " %s, \n" ! " %s, and \n" ! " %s \n" ! " to atoms\n" ! " %s, \n" ! " %s, \n" ! " %s, and \n" ! " %s \n" ! " This error may be due to faulty Connection atoms.\n", ! sContainerFullDescriptor( (CONTAINER) aaOrig[0], sOrigDesc[0] ), ! sContainerFullDescriptor( (CONTAINER) aaOrig[1], sOrigDesc[1] ), ! sContainerFullDescriptor( (CONTAINER) aaOrig[2], sOrigDesc[2] ), ! sContainerFullDescriptor( (CONTAINER) aaOrig[3], sOrigDesc[3] ), ! sContainerFullDescriptor( (CONTAINER) aaNew[0], sNewDesc[0] ), ! sContainerFullDescriptor( (CONTAINER) aaNew[1], sNewDesc[1] ), ! sContainerFullDescriptor( (CONTAINER) aaNew[2], sNewDesc[2] ), ! sContainerFullDescriptor( (CONTAINER) aaNew[3], sNewDesc[3] ) )); ! /* ! Describe( cContainerWithin( aaOrig[0] ) ) ; ! Describe( cContainerWithin( aaNew[i] ) ) ; ! */ ! DFATAL(( "Atom named %s from %s did not match !\n", ! sContainerName( aaNew[i] ), ! sContainerName( (CONTAINER) cContainerWithin(aaNew[i]) ) )); } /* Swap elements and flip sign */ if ( j != i ) { ------------------------------------------------------------------------------ Temporary workarounds are unnecessary; this is an enhancement. ********>Bugfix 16: Author: Dave Case Date: 07/29/2004 Programs: sander Description: One of the broadcasts from the master nodes to the slaves (in routine setup) had a bad length. This potentially could cause spurious results (first discovered on MacOSX systems). If your system appears to be working, and passes the parallel tests, then you should not need to worry, although applying the patch is still a good idea. Fix: apply the following patch to amber8/src/sander/parallel.f ------------------------------------------------------------------------------ *** src/sander/parallel.f 2004/02/10 02:10:12 7.112 --- src/sander/parallel.f 2004/07/29 21:25:51 *************** *** 83,89 **** ! extra.h: ! call mpi_bcast(ilbopt,6,MPI_INTEGER,0,commsander,ierr) call mpi_bcast(lbwght,1,MPI_DOUBLE_PRECISION,0,commsander,ierr) ! box.h: --- 83,89 ---- ! extra.h: ! call mpi_bcast(ilbopt,5,MPI_INTEGER,0,commsander,ierr) call mpi_bcast(lbwght,1,MPI_DOUBLE_PRECISION,0,commsander,ierr) ! box.h: ------------------------------------------------------------------------------ Temporary workarounds: none. ********>Bugfix 17: Author: Ross Walker Date: 08/03/2004 Programs: ptraj Description: When writing restrt files ptraj failed to close the open file handle before opening the next file. If you were writing a large number of restrt files this could lead to you exceeding the maximum number of open files allowed on your machine. At this point all further writes would fail. This patch adds the code to close the file correctly before opening the next. Fix: apply the following patch to amber8/src/ptraj/ptraj.c ------------------------------------------------------------------------------ *** src/ptraj/ptraj.c 2004-08-06 22:44:48.000000000 -0700 --- src/ptraj/ptraj.c 2004-08-06 22:47:44.000000000 -0700 *************** *** 3403,3415 **** sprintf(buffer, "%s", outInfo->filename); if ( openFile(&outInfo->file, buffer, "w") ) { dumpAmberRestart(outInfo->file, atoms, X, Y, Z, NULL, NULL, NULL, (outInfo->isBox ? box : NULL)); ! } else { fprintf(stdout, "WARNING in ptrajOutputCoordinates(): Could not open\n"); fprintf(stdout, "output coordinate file %s, not dumping to output file.\n", buffer); } --- 3403,3416 ---- sprintf(buffer, "%s", outInfo->filename); if ( openFile(&outInfo->file, buffer, "w") ) { dumpAmberRestart(outInfo->file, atoms, X, Y, Z, NULL, NULL, NULL, (outInfo->isBox ? box : NULL)); ! safe_fclose(outInfo->file); ! outInfo->file = NULL; } else { fprintf(stdout, "WARNING in ptrajOutputCoordinates(): Could not open\n"); fprintf(stdout, "output coordinate file %s, not dumping to output file.\n", buffer); } ------------------------------------------------------------------------------ Temporary workarounds: break your run up into smaller chunks so that you don't exceed the maximum open file limit. ********>Bugfix 18: Author: Dave Case (reported by Andy Purkiss) Date: 08/03/2004 Programs: anal, mainly; potentially other programs that call rgroup(). Description: The option to set igrp(i) < 0, in order to make a large number of groups, each with an individual residue, is broken. Fix: apply the following patch to amber8/src/lib/rgroup.f ------------------------------------------------------------------------------ *** src/lib/rgroup.f 2002/08/01 21:13:56 7.2 --- src/lib/rgroup.f 2004/08/05 15:54:32 *************** *** 162,168 **** C ----- 1ST GROUP OF 1ST CARD MUST BE - IF ANY - NUMBERS ARE C FOUND ----- C ! IF(ITIME.EQ.2.AND.IGRP(1).LT.0) LSIGN = 1 DO 12 I = 1,7 I1 = IGRP(I) IF (I1.EQ.0) GO TO 10 --- 162,168 ---- C ----- 1ST GROUP OF 1ST CARD MUST BE - IF ANY - NUMBERS ARE C FOUND ----- C ! IF(ITIME.EQ.1.AND.IGRP(1).LT.0) LSIGN = 1 DO 12 I = 1,7 I1 = IGRP(I) IF (I1.EQ.0) GO TO 10 ------------------------------------------------------------------------------ Temporary workarounds: none. ********>Bugfix 19: Author: Yong Duan Date: 08/03/2004 Programs: ff03 force field Description: The charges for the (rarely used) neutral lysine (LYN) were just copied from the ff94 force field, instead of being regenerated with the new charge scheme. Fix: apply the following patch to amber8/dat/leap/prep/all_amino03.in ------------------------------------------------------------------------------ *** dat/leap/prep/all_amino03.in 2003/12/31 18:04:06 1.4 --- dat/leap/prep/all_amino03.in 2004/06/24 17:05:37 *************** *** 780,806 **** 1 DUMM DU M 0 -1 -2 0.000 0.000 0.000 0.00000 2 DUMM DU M 1 0 -1 1.449 0.000 0.000 0.00000 3 DUMM DU M 2 1 0 1.522 111.100 0.000 0.00000 ! 4 N N M 3 2 1 1.335 116.600 180.000 -0.41570 ! 5 H H E 4 3 2 1.010 119.800 0.000 0.27190 ! 6 CA CT M 4 3 2 1.449 121.900 180.000 -0.07206 ! 7 HA H1 E 6 4 3 1.090 109.500 300.000 0.09940 ! 8 CB CT 3 6 4 3 1.525 111.100 60.000 -0.04845 ! 9 HB2 HC E 8 6 4 1.090 109.500 300.000 0.03400 ! 10 HB3 HC E 8 6 4 1.090 109.500 60.000 0.03400 ! 11 CG CT 3 8 6 4 1.525 109.470 180.000 0.06612 ! 12 HG2 HC E 11 8 6 1.090 109.500 300.000 0.01041 ! 13 HG3 HC E 11 8 6 1.090 109.500 60.000 0.01041 ! 14 CD CT 3 11 8 6 1.525 109.470 180.000 -0.03768 ! 15 HD2 HC E 14 11 8 1.090 109.500 300.000 0.01155 ! 16 HD3 HC E 14 11 8 1.090 109.500 60.000 0.01155 ! 17 CE CT 3 14 11 8 1.525 109.470 180.000 0.32604 ! 18 HE2 HP E 17 14 11 1.090 109.500 300.000 -0.03358 ! 19 HE3 HP E 17 14 11 1.090 109.500 60.000 -0.03358 ! 20 NZ N3 B 17 14 11 1.470 109.470 180.000 -1.03581 ! 21 HZ2 H E 20 17 14 1.010 109.470 180.000 0.38604 ! 22 HZ3 H E 20 17 14 1.010 109.470 300.000 0.38604 ! 23 C C M 6 4 3 1.522 111.100 180.000 0.59730 ! 24 O O E 24 6 4 1.229 120.500 0.000 -0.56790 IMPROPER -M CA N H --- 780,814 ---- 1 DUMM DU M 0 -1 -2 0.000 0.000 0.000 0.00000 2 DUMM DU M 1 0 -1 1.449 0.000 0.000 0.00000 3 DUMM DU M 2 1 0 1.522 111.100 0.000 0.00000 ! 4 N N M 3 2 1 1.335 116.600 180.000 -0.453388 ! 5 H H E 4 3 2 1.010 119.800 0.000 0.289695 ! 6 CA CT M 4 3 2 1.449 121.900 180.000 -0.024500 ! 7 HA H1 E 6 4 3 1.090 109.500 300.000 0.099553 ! 8 CB CT 3 6 4 3 1.525 111.100 60.000 0.035478 ! 9 HB2 HC E 8 6 4 1.090 109.500 300.000 0.004797 ! 10 HB3 HC E 8 6 4 1.090 109.500 60.000 0.004797 ! 11 CG CT 3 8 6 4 1.525 109.470 180.000 -0.019962 ! 12 HG2 HC E 11 8 6 1.090 109.500 300.000 -0.015610 ! 13 HG3 HC E 11 8 6 1.090 109.500 60.000 -0.015610 ! 14 CD CT 3 11 8 6 1.525 109.470 180.000 0.041105 ! 15 HD2 HC E 14 11 8 1.090 109.500 300.000 0.008304 ! 16 HD3 HC E 14 11 8 1.090 109.500 60.000 0.008304 ! 17 CE CT 3 14 11 8 1.525 109.470 180.000 0.188382 ! 18 HE2 HP E 17 14 11 1.090 109.500 300.000 0.016810 ! 19 HE3 HP E 17 14 11 1.090 109.500 60.000 0.016810 ! 20 NZ N3 B 17 14 11 1.470 109.470 180.000 -0.894254 ! 21 HZ2 H E 20 17 14 1.010 109.470 180.000 0.332053 ! 22 HZ3 H E 20 17 14 1.010 109.470 300.000 0.332053 ! 23 C C M 6 4 3 1.522 111.100 180.000 0.608464 ! 24 O O E 24 6 4 1.229 120.500 0.000 -0.563281 ! ! CHARGE ! -0.453388 0.289695 -0.024500 0.099553 0.035478 ! 0.004797 0.004797 -0.019962 -0.015610 -0.015610 ! 0.041105 0.008304 0.008304 0.188382 0.016810 ! 0.016810 -0.894254 0.332053 0.332053 0.608464 ! -0.563281 ! IMPROPER -M CA N H ------------------------------------------------------------------------------ Also, you should patch amber8/dat/leap/lib/all_amino03.lib: ------------------------------------------------------------------------------ *** dat/leap/lib/all_amino03.lib 2003/07/23 22:01:01 7.3 --- dat/leap/lib/all_amino03.lib 2004/06/24 17:12:15 *************** *** 2121,2147 **** 0.0 0.0 0.0 0.0 0.0 0.0 !entry.LYN.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg ! "N" "N" 0 1 131072 1 7 -0.415700 ! "H" "H" 0 1 131072 2 1 0.271900 ! "CA" "CT" 0 1 131072 3 6 -0.072060 ! "HA" "H1" 0 1 131072 4 1 0.099400 ! "CB" "CT" 0 1 131072 5 6 -0.048450 ! "HB2" "HC" 0 1 131072 6 1 0.034000 ! "HB3" "HC" 0 1 131072 7 1 0.034000 ! "CG" "CT" 0 1 131072 8 6 0.066120 ! "HG2" "HC" 0 1 131072 9 1 0.010410 ! "HG3" "HC" 0 1 131072 10 1 0.010410 ! "CD" "CT" 0 1 131072 11 6 -0.037680 ! "HD2" "HC" 0 1 131072 12 1 0.011550 ! "HD3" "HC" 0 1 131072 13 1 0.011550 ! "CE" "CT" 0 1 131072 14 6 0.326040 ! "HE2" "HP" 0 1 131072 15 1 -0.033580 ! "HE3" "HP" 0 1 131072 16 1 -0.033580 ! "NZ" "N3" 0 1 131072 17 7 -1.035810 ! "HZ2" "H" 0 1 131072 18 1 0.386040 ! "HZ3" "H" 0 1 131072 19 1 0.386040 ! "C" "C" 0 1 131072 20 6 0.597300 ! "O" "O" 0 1 131072 21 8 -0.567900 !entry.LYN.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg "N" "N" 0 -1 0.0 "H" "H" 0 -1 0.0 --- 2121,2147 ---- 0.0 0.0 0.0 0.0 0.0 0.0 !entry.LYN.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg ! "N" "N" 0 1 131072 1 7 -0.453388 ! "H" "H" 0 1 131072 2 1 0.289695 ! "CA" "CT" 0 1 131072 3 6 -0.024500 ! "HA" "H1" 0 1 131072 4 1 0.099553 ! "CB" "CT" 0 1 131072 5 6 0.035478 ! "HB2" "HC" 0 1 131072 6 1 0.004797 ! "HB3" "HC" 0 1 131072 7 1 0.004797 ! "CG" "CT" 0 1 131072 8 6 -0.019962 ! "HG2" "HC" 0 1 131072 9 1 -0.015610 ! "HG3" "HC" 0 1 131072 10 1 -0.015610 ! "CD" "CT" 0 1 131072 11 6 0.041105 ! "HD2" "HC" 0 1 131072 12 1 0.008304 ! "HD3" "HC" 0 1 131072 13 1 0.008304 ! "CE" "CT" 0 1 131072 14 6 0.188382 ! "HE2" "HP" 0 1 131072 15 1 0.016810 ! "HE3" "HP" 0 1 131072 16 1 0.016810 ! "NZ" "N3" 0 1 131072 17 7 -0.894254 ! "HZ2" "H" 0 1 131072 18 1 0.332053 ! "HZ3" "H" 0 1 131072 19 1 0.332053 ! "C" "C" 0 1 131072 20 6 0.608464 ! "O" "O" 0 1 131072 21 8 -0.563281 !entry.LYN.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg "N" "N" 0 -1 0.0 "H" "H" 0 -1 0.0 ------------------------------------------------------------------------------ Temporary workarounds: none. ********>Bugfix 20: Author: Dave Case and Karl Kirschner Date: 08/04/2004 Programs: glycam force field Description: The glycam04EP.dat parameter file has frcmod-style headers for various sections, but these should not be there. Fix: apply the following patch to amber8/dat/leap/parm/glycam04EP.dat ------------------------------------------------------------------------------ *** dat/leap/parm/glycam04EP.dat 14 Mar 2004 06:14:51 -0000 8.0 --- dat/leap/parm/glycam04EP.dat 30 Jun 2004 13:49:02 -0000 *************** *** 1,5 **** GLYCAM PARAMETERS (FOR AMBER 8.0), COPYRIGHT R.J.WOODS, CCRC 2003 - MASS C 12.01 0.00 sp2 C carbonyl group CG 12.01 0.00 CG ALPHA ANOMERIC CARBON (P94=PARM94) OH 16.00 0.00 OH HYDROXYL OXYGEN --- 1,4 ---- *************** *** 16,22 **** HW 1.008 0.00 H in TIP3P water EP 3.000 0.00 lone pair - BOND CG-CG 310.00 1.520 SCEE=1.0, SCNB=1.0 Butane (g, t) KNK CG-HC 360.00 1.095 SCEE=1.0, SCNB=1.0 Ethane KNK CG-H1 410.00 1.092 SCEE=1.0, SCNB=1.0 Methanol KNK --- 15,20 ---- *************** *** 39,45 **** EP-OS 553.0 0.700 EP-O 553.0 0.450 - ANGLE HC-CG-HC 40.00 109.50 SCEE=1.0, SCNB=1.0 Methane, Ethane KNK H1-CG-H1 45.00 109.50 SCEE=1.0, SCNB=1.0 Methanol, Propanol KNK H2-CG-H2 45.00 109.50 SCEE=1.0, SCNB=1.0 Methanol, Propanol KNK --- 37,42 ---- *************** *** 93,99 **** EP-O -EP 150.00 120.0 EP-O -C 150.00 120.0 - DIHE HC-CG-CG-HC 9 1.20 0.00 3. SCEE=1.0, SCNB=1.0, Ethane Hs=0 charge KNK H1-CG-CG-HC 1 0.17 0.00 3. SCEE=1.0, SCNB=1.0, Ethanol, after H1-CG-CG-CG KNK H2-CG-CG-HC 1 0.17 0.00 3. SCEE=1.0, SCNB=1.0, Ethanol, after H1-CG-CG-CG KNK --- 90,95 ---- *************** *** 160,165 **** --- 156,162 ---- H2-CG-C -O2 2 0.00 0.00 1. SCEE=1.0, SCNB=1.0, 1_1_Dimethoxyacetate KNK OS-CG-C -O2 2 0.00 0.00 1. SCEE=1.0, SCNB=1.0, CG-OS-CG-C 1 0.80 0.00 2. SCEE=1.0, SCNB=1.0, 2-Methylpropanoate, 2-Methoxy-2-Methylpropanoate KNK + X -X -N -H 1.00 180. 2. X -X -C -O 10.5 180. 2. X -X -N -CG 10.5 180. 2. *************** *** 171,183 **** N NA N2 N* NC NB N3 NP NO C C* CA CB CC CN CM CK CQ CW CV CR CA CX CY CD ! NONB H 0.6000 0.0157 !Ferguson base pair geom. HO 0.0000 0.0000 OPLS Jorgensen, JACS,110,(1988),1657 HC 1.4870 0.0157 OPLS H1 1.3870 0.0157 Veenstra et al JCC,8,(1992),963 H2 1.2870 0.0157 Veenstra et al JCC,8,(1992),963 - H3 1.1870 0.0157 Veenstra et al JCC,8,(1992),963 HW 0.0000 0.0000 TIP3P water model O 1.6612 0.2100 OPLS O2 1.6612 0.2100 OPLS --- 168,179 ---- N NA N2 N* NC NB N3 NP NO C C* CA CB CC CN CM CK CQ CW CV CR CA CX CY CD ! MOD4 RE H 0.6000 0.0157 !Ferguson base pair geom. HO 0.0000 0.0000 OPLS Jorgensen, JACS,110,(1988),1657 HC 1.4870 0.0157 OPLS H1 1.3870 0.0157 Veenstra et al JCC,8,(1992),963 H2 1.2870 0.0157 Veenstra et al JCC,8,(1992),963 HW 0.0000 0.0000 TIP3P water model O 1.6612 0.2100 OPLS O2 1.6612 0.2100 OPLS ------------------------------------------------------------------------------ Temporary workarounds: none.