ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/freemol/branches/sync4pymol12/src/mengine/src/readprm.c
(Generate patch)
# Line 6 | Line 6
6   #include "pot.h"
7   #include "field.h"
8   #include "atom_k.h"
9 #include "pdb.h"
10
11 #define MAXOPLS  600
9  
10   FILE * fopen_path ( char * , char * , char * ) ;
11   void zero_data(void);
# Line 204 | Line 201
201           float charge[MAXATOMTYPE], bcharge[MAXBONDCONST], formchrg[MAXATOMTYPE], bchargedel[MAXBONDCONST];
202           float typechrg[MAXATOMTYPE];
203           } charge_k;
207
208 struct t_amberchrg_k {
209         int ncharge, type[MAXATOMTYPE], res_type[MAXATOMTYPE];
210         char symbol[MAXATOMTYPE][4];
211         float chrg[MAXATOMTYPE];
212         } amberchrg_k;
204          
214 struct t_oplschrg_k {
215         int ncharge, type[MAXOPLS];
216         char chrgstring[MAXOPLS][25];
217         float chrg[MAXOPLS];
218         } oplschrg_k;
219
205   struct  t_dipole_k {
206          int ndipole,ndipole3,ndipole4,ndipole5;
207          char   kb[MAXBONDCONST][7], kb3[MAXBOND3CONST][7], kb4[MAXBOND4CONST][7], kb5[MAXBOND5CONST][7];
# Line 305 | Line 290
290        charge_k.ncharge = 0;
291        charge_k.nbndchrg = 0;
292        charge_k.nbndchrgdel = 0;
308      amberchrg_k.ncharge = 0;
309      oplschrg_k.ncharge = 0;
293        for (ii = 0; ii < MAXATOMTYPE; ii ++)
294        {
295            atom_k.type[ii]= 0;
# Line 323 | Line 306
306            charge_k.charge[ii] = 0.00F;
307            charge_k.formchrg[ii] = 0.00F;
308            charge_k.typechrg[ii] = 0.00F;
326          amberchrg_k.type[ii] = 0;
327          amberchrg_k.res_type[ii] = 0;
328          amberchrg_k.chrg[ii] = 0.0;
329          strcpy(amberchrg_k.symbol[ii],"   ");
330      }
331      for (ii = 0; ii < MAXOPLS; ii++)
332      {
333          oplschrg_k.type[ii] = 0;
334          oplschrg_k.chrg[ii] = 0.0;
335          strcpy(oplschrg_k.chrgstring[ii],"    ");
309        }
310   //  metals
311        metaldata.nmetal = 0;
# Line 1676 | Line 1649
1649              if (strcmp(iptemp,"forcefield") == 0)
1650              {
1651                  sscanf(line,"%s %s",dumm, field.name);
1652 <                if (strcmp(field.name,"AMBER95") == 0)
1680 <                   field.type = AMBER;
1681 <                else if (strcmp(field.name,"MMX") == 0)
1652 >                if (strcmp(field.name,"MMX") == 0)
1653                     field.type = MMX;
1654                  else if (strcmp(field.name,"MM2-1991") == 0)
1655                     field.type = MM2;
# Line 1686 | Line 1657
1657                     field.type = MM2;
1658                  else if (strcmp(field.name,"MM3-1992") == 0 || strcmp(field.name,"MM3-1996") == 0 )
1659                     field.type = MM3;
1689                else if (strcmp(field.name,"CHARMM22-PROTEIN") == 0)
1690                   field.type = CHARMM;
1660                  else if (strcmp(field.name,"MMFF94") == 0)
1661                     field.type = MMFF94;
1693                else if (strcmp(field.name,"OPLSAA") == 0)
1694                   field.type = OPLSAA;
1662                  else
1663                     field.type = UNKNOWN;                  
1664              } else if (strcmp(iptemp,"bondunit") == 0)
# Line 2231 | Line 2198
2198                  }
2199                  sscanf( line,"%s %d %f", dumm, &charge_k.type[charge_k.ncharge], &charge_k.charge[charge_k.ncharge]);
2200                  charge_k.ncharge++;
2234            } else if (strcmp(iptemp, "oplschrg") == 0)
2235            {
2236                if (oplschrg_k.ncharge > MAXOPLS)
2237                {
2238                    message_alert("Error - Too many opls charges","Read Parameter");
2239                    fprintf(pcmlogfile,"Maximum number of opls charge constants exceeded. Others will be ignored\n");
2240                    //fclose(datafile);
2241                    return;
2242                }
2243                sscanf(line,"%s %d %f %s\n",dumm,&oplschrg_k.type[oplschrg_k.ncharge],&oplschrg_k.chrg[oplschrg_k.ncharge],
2244                   oplschrg_k.chrgstring[oplschrg_k.ncharge]);
2245                oplschrg_k.ncharge++;
2246            } else if (strcmp(iptemp, "amberchrg") == 0)
2247            {
2248                if (amberchrg_k.ncharge > MAXATOMTYPE)
2249                {
2250                    message_alert("Error - Too many amber charges","Read Parameter");
2251                    fprintf(pcmlogfile,"Maximum number of amber charge constants exceeded. Others will be ignored\n");
2252                    //fclose(datafile);
2253                    return;
2254                }
2255                for (iz=0;iz < 25; iz++) descript[iz] = ' ';
2256                
2257                sscanf(line,"%s %d %f %s %25c",dumm,&amberchrg_k.type[amberchrg_k.ncharge],
2258                   &amberchrg_k.chrg[amberchrg_k.ncharge],amberchrg_k.symbol[amberchrg_k.ncharge], descript);
2259                for (iz=24; iz > 0; iz--)
2260                {
2261                    if ( isalpha(descript[iz]) != 0)
2262                    {
2263                      descript[iz+1] = '\0';
2264                      break;
2265                    }
2266                }
2267                if (strcmp(descript,"Glycine") == 0)
2268                   amberchrg_k.res_type[amberchrg_k.ncharge] = GLY;
2269                else if (strcmp(descript,"Alanine") == 0)
2270                   amberchrg_k.res_type[amberchrg_k.ncharge] = ALA;
2271                else if (strcmp(descript,"Valine") == 0)
2272                   amberchrg_k.res_type[amberchrg_k.ncharge] = VAL;
2273                else if (strcmp(descript,"Leucine") == 0)
2274                   amberchrg_k.res_type[amberchrg_k.ncharge] = LEU;
2275                else if (strcmp(descript,"Isoleucine") == 0)
2276                   amberchrg_k.res_type[amberchrg_k.ncharge] = ILE;
2277                else if (strcmp(descript,"Serine") == 0)
2278                   amberchrg_k.res_type[amberchrg_k.ncharge] = SER;
2279                else if (strcmp(descript,"Threonine") == 0)
2280                   amberchrg_k.res_type[amberchrg_k.ncharge] = THR;
2281                else if (strcmp(descript,"Cysteine (-SH") == 0)
2282                   amberchrg_k.res_type[amberchrg_k.ncharge] = CYSH;
2283                else if (strcmp(descript,"Cystine (-SS") == 0)
2284                   amberchrg_k.res_type[amberchrg_k.ncharge] = CYS;
2285                else if (strcmp(descript,"Proline") == 0)
2286                   amberchrg_k.res_type[amberchrg_k.ncharge] = PRO;
2287                else if (strcmp(descript,"Phenylalanine") == 0)
2288                   amberchrg_k.res_type[amberchrg_k.ncharge] = PHE;
2289                else if (strcmp(descript,"Tyrosine") == 0)
2290                   amberchrg_k.res_type[amberchrg_k.ncharge] = TYR;
2291                else if (strcmp(descript,"Tryptophan") == 0)
2292                   amberchrg_k.res_type[amberchrg_k.ncharge] = TRP;
2293                else if (strcmp(descript,"Histidine") == 0)
2294                   amberchrg_k.res_type[amberchrg_k.ncharge] = HISP;
2295                else if (strcmp(descript,"Histidine (HD") == 0)
2296                   amberchrg_k.res_type[amberchrg_k.ncharge] = HIS;
2297                else if (strcmp(descript,"Histidine (HE") == 0)
2298                   amberchrg_k.res_type[amberchrg_k.ncharge] = HISE;
2299                else if (strcmp(descript,"Aspartic Acid") == 0)
2300                   amberchrg_k.res_type[amberchrg_k.ncharge] = ASP;
2301                else if (strcmp(descript,"Asparagine") == 0)
2302                   amberchrg_k.res_type[amberchrg_k.ncharge] = ASN;
2303                else if (strcmp(descript,"Glutamic Acid") == 0)
2304                   amberchrg_k.res_type[amberchrg_k.ncharge] = GLU;
2305                else if (strcmp(descript,"Glutamine") == 0)
2306                   amberchrg_k.res_type[amberchrg_k.ncharge] = GLN;
2307                else if (strcmp(descript,"Methionine") == 0)
2308                   amberchrg_k.res_type[amberchrg_k.ncharge] = MET;
2309                else if (strcmp(descript,"Lysine") == 0)
2310                   amberchrg_k.res_type[amberchrg_k.ncharge] = LYS;
2311                else if (strcmp(descript,"Arginine") == 0)
2312                   amberchrg_k.res_type[amberchrg_k.ncharge] = ARG;
2313                else
2314                   amberchrg_k.res_type[amberchrg_k.ncharge] = UNK;
2315                amberchrg_k.ncharge++;
2201              } else if (strcmp(iptemp, "mmffchrg") == 0)
2202              {
2203                  if (charge_k.ncharge > MAXATOMTYPE)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines